/* Shared semantic palette: editor tokens and assembled memory fields. */
#editor .ace_keyword.ace_instruction {
  color: #6a2889;
  font-weight: bold;
}
#editor .ace_keyword.ace_directive {
  color: #136248;
  font-weight: bold;
}
#editor .ace_variable.ace_register {
  color: #164f9c;
}
#editor .ace_constant.ace_numeric {
  color: #895000;
}
#editor .ace_entity.ace_name.ace_label {
  color: #9c2858;
  font-weight: bold;
}
#editor .ace_variable.ace_label {
  color: #9c2858;
}
#editor .ace_comment {
  color: #626b67;
  font-style: italic;
}
#editor .ace_punctuation.ace_operator {
  color: #525866;
}

.mem-kind-opcode {
  color: #6a2889;
  background: #eee0fa;
}
.mem-kind-register {
  color: #164f9c;
  background: #dcecff;
}
.mem-kind-immediate {
  color: #895000;
  background: #ffedcc;
}
.mem-kind-address {
  color: #9c2858;
  background: #fbe0eb;
}
.mem-kind-data {
  color: #136248;
  background: #d9efe5;
}
.mem-kind-padding {
  color: #5a596e;
  background: #e5e5ed;
}
.mem-kind-unused {
  color: #666;
  background: #dfdfdf;
}
.mem-kind-mixed {
  color: #303038;
  background: var(--field-fill);
}

.mem-source-start {
  box-shadow: -1px 0 0 #777;
}

/* Access highlights take precedence, including whole-row highlights applied to
   a parent span. Keep the semantic text colors and source-line underline. */
.memory .memread .mem-nibble,
.memory .memwrite .mem-nibble,
.memory .cachemiss .mem-nibble {
  background: transparent;
}

/* A compact marker in Ace's existing gutter, without changing its width. */
.ace_gutter-cell.ace_breakpoint::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #d32f2f;
}
