/* GENERATED by scripts/gen-reference.mjs from
 * public/renderer/modules/form-metrics/*.mjs — DO NOT EDIT.
 * Regenerate: npm run gen:reference   (npm run validate byte-diffs this file)
 *
 * THE VARIANT CONTRACT (docs/craft/ARRANGEMENT.md §3): every number here is
 * interpolated from a constant the matching atom's estimate imports, so the
 * stylesheet and the arithmetic cannot disagree. Editing this file by hand
 * breaks the byte-diff; editing it and re-running the emitter reverts you.
 */

/* ── THE TAUGHT FORM — session card, ARRANGEMENT.md §2 axis 5 ───────────
   Numbered steps walking the reader box to box, the marking instruction
   printed beside the field it fills, and a pointer to where the rules
   live. The bare form draws none of this and stamps no attribute. */

.session-card[data-form-variant="taught"] .session-step-marker{
  display:flex;
  flex-direction:column;
  gap:2px;
  /* THE ABSORPTION LAW (D198). `.session-body` is a flex column; a marker
     that could shrink would print at a height the estimate did not predict
     and the planner would never see the difference. The notes box carries
     `flex:1 1 auto` and is what absorbs a squeeze. */
  flex:0 0 auto;
}

.session-card[data-form-variant="taught"] .session-step-head{
  display:flex;
  align-items:center;
  gap:4px;
  height:11px;
  flex:0 0 auto;
}

/* The numeral. Absolute px, not `pt` and not `em`: the estimate has no theme
   knowledge, so this row must measure the same under every archetype. */
.session-card[data-form-variant="taught"] .session-step-index{
  font-family:var(--theme-label-family,var(--mono));
  font-size:7px;
  line-height:11px;
  letter-spacing:.08em;
  color:var(--muted);
  flex:0 0 auto;
}

/* The rule that runs from the numeral to the edge — the Basic sheet's
   walk-me-through-it gesture. Zero height inside a fixed-height row, so it
   is pure paint and charges nothing. */
.session-card[data-form-variant="taught"] .session-step-rule{
  flex:1 1 auto;
  height:0;
  min-width:0;
  border-top:var(--theme-hair-width,1px) var(--theme-line-style,solid) var(--theme-field-rule,var(--rule));
}

/* The pointer chip. Sized STRICTLY BELOW the head row and centred in it, so
   it costs zero added height — which is why the estimate carries no pointer
   term. Raising this above the head height would make that silence a lie. */
.session-card[data-form-variant="taught"] .session-step-pointer{
  flex:0 0 auto;
  height:9px;
  line-height:9px;
  font-family:var(--theme-label-family,var(--mono));
  font-size:6px;
  letter-spacing:.06em;
  padding:0 4px;
  color:var(--muted);
  border:var(--theme-hair-width,1px) var(--theme-line-style,solid) var(--theme-field-rule,var(--rule));
  border-radius:2px;
  white-space:nowrap;
  overflow:hidden;
  max-width:45%;
}

/* The marking instruction, printed inside the mark strip's own marker — the
   axis's central claim: the instruction beside the field it fills. Inside
   the marker, not beside it, so it adds no body child and no body gap. */
.session-card[data-form-variant="taught"] .session-step-note{
  font-family:var(--serif);
  font-size:7px;
  line-height:9px;
  color:var(--ink);
  flex:0 0 auto;
  min-width:0;
  overflow-wrap:break-word;
}

/* ── THE TAUGHT FORM — oracle table, ARRANGEMENT.md §2 axis 5 ──────────
   The how-to-roll instruction, drawn as an instrument instead of printed
   as flavour: a framed band with a leader rule and a chip naming what the
   table pays in. The bare form draws none of this and stamps no
   attribute — its instruction stays the plain `.oracle-instruction` line. */

.oracle-zone[data-form-variant="taught"] .oracle-teach-band{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:3px 6px;
  margin-bottom:4px;
  border-bottom:1px var(--theme-line-style,solid) var(--theme-field-rule,var(--rule));
  /* THE ABSORPTION LAW (D198). A band that could shrink would print at a
     height the estimate did not predict, and the planner would never be
     told the difference. */
  flex:0 0 auto;
}

.oracle-zone[data-form-variant="taught"] .oracle-teach-head{
  display:flex;
  align-items:center;
  gap:4px;
  height:11px;
  flex:0 0 auto;
}

/* The leader rule. Zero height inside a fixed-height row, so it is pure
   paint and charges nothing. */
.oracle-zone[data-form-variant="taught"] .oracle-teach-rule{
  flex:1 1 auto;
  height:0;
  min-width:0;
  border-top:var(--theme-hair-width,1px) var(--theme-line-style,solid) var(--theme-field-rule,var(--rule));
}

/* The pointer chip — the book's own name for what this table pays in.
   Sized STRICTLY BELOW the head row and centred in it, so it costs zero
   added height, which is why the arithmetic carries no pointer term. */
.oracle-zone[data-form-variant="taught"] .oracle-teach-pointer{
  flex:0 0 auto;
  height:9px;
  line-height:9px;
  font-family:var(--theme-label-family,var(--mono));
  font-size:6px;
  letter-spacing:.06em;
  padding:0 4px;
  color:var(--muted);
  border:var(--theme-hair-width,1px) var(--theme-line-style,solid) var(--theme-field-rule,var(--rule));
  border-radius:2px;
  white-space:nowrap;
  overflow:hidden;
  max-width:45%;
}

/* The authored instruction, MOVED here rather than copied: the taught form
   builds no `.oracle-instruction`, so nothing on the page says it twice. */
.oracle-zone[data-form-variant="taught"] .oracle-teach-text{
  font-family:var(--serif);
  font-size:7px;
  line-height:9px;
  color:var(--ink);
  flex:0 0 auto;
  min-width:0;
  overflow-wrap:break-word;
}

/* ── THE TAUGHT FORM — found document, ARRANGEMENT.md §2 axis 5 ────────
   A routing band in the shell's own citation vocabulary: what this world
   calls a filed thing, this document's reference, and the citation it was
   filed under. The bare form draws none of it and stamps no attribute. */

.fragment-doc[data-form-variant="taught"] .fragment-route-band{
  display:flex;
  align-items:center;
  gap:4px;
  height:12px;
  margin-bottom:4px;
  border-bottom:1px var(--theme-line-style,solid) var(--theme-field-rule,var(--rule));
  /* THE ABSORPTION LAW (D198). `.fragment-doc` is a flex column; a band
     that could shrink would print shorter than the estimate charged and
     nothing would ever report the difference. */
  flex:0 0 auto;
}

.fragment-doc[data-form-variant="taught"] .fragment-route-label{
  font-family:var(--theme-label-family,var(--mono));
  font-size:7px;
  line-height:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  flex:0 0 auto;
}

.fragment-doc[data-form-variant="taught"] .fragment-route-ref{
  font-family:var(--theme-label-family,var(--mono));
  font-size:7px;
  line-height:11px;
  letter-spacing:.08em;
  color:var(--ink);
  flex:0 0 auto;
  white-space:nowrap;
}

/* The leader rule. Zero height inside a fixed-height row: pure paint. */
.fragment-doc[data-form-variant="taught"] .fragment-route-rule{
  flex:1 1 auto;
  height:0;
  min-width:0;
  border-top:var(--theme-hair-width,1px) var(--theme-line-style,solid) var(--theme-field-rule,var(--rule));
}

/* The filed citation, when the document carries one. Sized strictly below
   the band row, so the arithmetic's silence about it stays honest. */
.fragment-doc[data-form-variant="taught"] .fragment-route-cite{
  flex:0 0 auto;
  height:9px;
  line-height:9px;
  font-family:var(--theme-label-family,var(--mono));
  font-size:6px;
  letter-spacing:.06em;
  padding:0 4px;
  color:var(--muted);
  border:var(--theme-hair-width,1px) var(--theme-line-style,solid) var(--theme-field-rule,var(--rule));
  border-radius:2px;
  white-space:nowrap;
  overflow:hidden;
  max-width:40%;
}

/* ── THE REGISTER FORM — ledger, ARRANGEMENT.md §2 axis 5 ──────────────
   The ledger drawn as a register: the movement label at the TOP of its
   band, against the rule that opens it, and the bands sharing the whole
   sheet. The bare form bottom-aligns the label and caps the band, and
   stamps no attribute. D198's recorded dissent, ruled in at D200-4. */

/* The label moves to the head of its own band. This is the change the cap
   existed to compensate for — a bottom-aligned label in a tall band prints
   far from its column head; a top-aligned one never does. */
.ledger-table[data-form-variant="register"] .ledger-name{
  align-items:flex-start;
  padding-top:2px;
  padding-bottom:0px;
}

/* The rule opens the band instead of closing it, so every label has a line
   directly above it. One rule either way — this replaces, never adds, so
   the row's measured height is identical to the bare form's at the same
   band size and the estimate needs no term for it.

   `max-height:none` is D300-1a: the bands absorb whatever the chrome
   actually consumed instead of stopping at the fair share of the chrome
   the atom CHARGED. The charge is conservative by design (`LEDE_PX` prices
   the instruction at two lines; the neutral substrate fits it on one), so a
   bound ceiling left the closing page of every forward book 11.7px short of
   the sheet — measured, canonical fixture: bands 71.25px, table 705.97px,
   ink stopping at 694.27px. Removing the ceiling prints 72.44px bands and
   closes the sheet. The browser is the only party that knows what the chrome
   consumed: the atom renders on a detached tree and has no layout to read.
   `--ledger-row-max` is still stamped and is now the FLOOR — the band the
   sheet guarantees — which is what check-form-variants.mjs asserts. */
.ledger-table[data-form-variant="register"] .ledger-row{
  border-bottom:0;
  border-top:1px var(--theme-line-style,solid) var(--theme-field-rule,var(--rule));
  max-height:none;
}

/* The last band would otherwise print unclosed. The table carries the
   closing rule so no row needs a :last-child exception the estimate would
   have to know about. */
.ledger-table[data-form-variant="register"]{
  border-bottom:1px var(--theme-line-style,solid) var(--theme-field-rule,var(--rule));
}

/* map-panel bare form: the measured existing rendering; no attribute chrome. */

/* cipher-panel bare form: the measured existing rendering; no attribute chrome. */

/* tracker taught form: add the same 14px teaching frame to either runtime root. */
.tracker-atom[data-form-variant="taught"]{
  padding:6px;
  border:1px var(--theme-line-style,solid) var(--theme-field-rule,var(--rule));
}
/* The companion base already owns 6px vertical padding and a 1px rule.
 * Doubling both makes the measured delta, rather than replacing its box. */
.companion-component[data-form-variant="taught"]{
  padding:12px 8px;
  border-width:2px;
}

/* constrained-grid bare form: the measured existing rendering; no attribute chrome. */

/* word-grid bare form: the measured existing rendering; no attribute chrome. */
