/* Theorem in C — figure, ledger and controls, on top of paper.css        */

:root { --err: #d99a8f; }

/* subtitle line in the title block */
.note-sub {
  color: var(--dim);
  font-style: italic;
  font-size: 0.95rem;
  margin: 0 0 0.2rem;
}

/* displayed derivation */
.deriv {
  margin: 1.4rem auto;
  border-collapse: collapse;
  font-size: 1rem;
}
.deriv td { padding: 0.12rem 0.55rem; }
.deriv .no { color: var(--dim); text-align: right; }
.deriv .by { color: var(--dim); }

/* controls */
.ctl {
  display: flex;
  gap: 0.7rem;
  align-items: center;
  margin: 1.6rem 0 0.7rem;
}
.ctl button {
  font-family: var(--mono);
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  background: transparent;
  border: 1px solid var(--rule);
  padding: 0.45rem 1.1rem;
  cursor: pointer;
}
.ctl button:hover { border-color: var(--faint); }
.ctl button:focus-visible { outline: 2px solid var(--link); outline-offset: 3px; }
.ctl button:disabled { color: var(--faint); cursor: default; border-color: var(--rule); }

/* the roll */
.rollbox {
  border: 1px solid var(--rule);
  overflow-x: auto;
  background: var(--paper);
}
.laneline { stroke: var(--rule); }
.beatline { stroke: var(--rule); }
.hatchline { stroke: var(--rule); }
.lanelbl {
  font-family: var(--mono);
  font-size: 11px;
  fill: var(--faint);
}
.lanelbl.off { opacity: 0.5; }
.phnum {
  font-family: var(--mono);
  font-size: 11.5px;
  fill: var(--dim);
}
.phnum.bad { fill: var(--err); }
.slot { fill: var(--ink); cursor: pointer; }
.slot.v2 { opacity: 0.72; }
.slot.bad { stroke: var(--err); stroke-width: 2; }
.slot:focus-visible { outline: none; stroke: var(--link); stroke-width: 2; }
.playhead { stroke: var(--link); stroke-width: 2; }

/* the ledger */
.ledgerbox {
  border: 1px solid var(--rule);
  overflow-x: auto;
  margin: 0.4rem 0 0.8rem;
}
.ledgerbox table {
  border-collapse: collapse;
  width: 100%;
  font-family: var(--mono);
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
}
.ledgerbox th {
  font-weight: 400;
  text-align: left;
  font-size: 0.64rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
  border-bottom: 1px solid var(--rule);
  padding: 0.55rem 0.8rem;
}
.ledgerbox td {
  padding: 0.45rem 0.8rem;
  border-bottom: 1px solid var(--rule);
  white-space: nowrap;
}
.ledgerbox tr:last-child td { border-bottom: none; }
.ledgerbox td.fml { font-family: var(--serif); font-size: 0.92rem; }
.ledgerbox td.ok { color: var(--dim); }
.ledgerbox td.no { color: var(--err); }
.ledgerbox tr.bad td { background: rgba(217, 154, 143, 0.06); }
.ledgerbox tr.now td { background: rgba(143, 179, 217, 0.08); }

.fml { font-family: var(--serif); white-space: nowrap; }
#verdict.err, #verdict.err strong { color: var(--err); }
#verdict .qed { border-color: var(--dim); margin-left: 0.4em; }

.table-caption {
  font-size: 0.85rem;
  color: var(--dim);
  line-height: 1.55;
  margin: 0.8rem 0 0.4rem;
}

@media print {
  .ctl { display: none; }
}
