/* ══════════════════════════════════════════════════════════════════════════════════════════════
   1120 SHARED·CALLSOMEONE — when to call someone: the warning signs, and who to call.
   ──────────────────────────────────────────────────────────────────────────────────────────────
   BUILT 2026-09-10 (lane 110). The third of the three elements all ten guide area specs proposed
   independently; three of them said it should be ONE standing surface, and the reason is not
   tidiness — it is that a shared escalation component is the only arrangement where the clinician
   signs the escalation wording ONCE instead of nine times.

   🔴 THIS FILE DRAWS THE INSIDE OF THE BOX. IT DOES NOT DRAW A BOX. Safety means gold, everywhere
   (D-734), and 411 SHARED·NOTICEBOX owns that gold box — `.ntc.acute` already takes a caller's
   authored head and a caller-owned body, and already sets `.ntc.acute > :not(.bxh) { margin-top }`
   for exactly this. So there is no background, no border, no radius and no padding on `.esn`.
   Two surfaces have drawn their own safety box in this repo's history (chat's `.safety-card`,
   search's `.ssf-safe`) and both were pulled back into 411 on 2026-08-25. This card does not make
   it three.

   ⚠️ EVERYTHING HERE IS SIZED FOR THE GOLD GROUND IT SITS ON. Contrast computed at build time
   against --gold-100, the acute fill (values are named by TOKEN, never by hex — the token linter
   is right that a literal colour has no business in a card file, comment or not):
       --text-primary → 15.31:1     the signs, the "when" label
       --ink-600      →  6.10:1     the closing line, the stamps (1118's own ink)
       --teal-700     →  5.33:1     the tel: link — .safety-tel's ink, matched
   (--gold-700 was the obvious label ink and is 4.50:1 here — over the floor by a hundredth, which
   is not a margin worth spending on a safety surface.) The hexes behind these names, and the
   command that computed them, are in ~/BabyWeeks-inbox/REPORT-guide-chassis-2026-09-10.md.

   🔴 THE NUMBER IS A REAL 44px TARGET AND THE DIGITS DO NOT GROW. Lifted from `.safety-tel`,
   which solved this on the chat gate: an invisible centred ::after grows the HIT AREA to
   --tap-target without moving the line. This link is tapped by a parent who has already decided
   she needs help, usually one-handed and often not looking; a text-sized target in running prose
   is a miss she pays for.

   ⚠️ NO ALARM REGISTER. No flashing, no all-caps sentence, no red. The gold box is the whole of
   the urgency signal and it is the same box in every tier (D-595). A surface that shouts is a
   surface parents learn to skip, and this one has to work on the day it matters.

   ⚠️ NOTHING HERE IS KEYED ON A VALUE, AND THERE IS NO SELECTOR THAT COULD BE. No `.esn-sign.hot`,
   no severity class, no ordering rule — the rows are drawn in the caller's order and the CSS has
   no opinion about which one matters more. SaMD rule 1 is enforced in the renderer with a throw;
   this file simply offers nothing to hang a computed state on.

   ⚠️ SINGLE SOURCE (check 16 rule 3): the `.stamp` prefix belongs to sourcestamp.css and is not
   styled here. An attributed sign carries 1118's inline stamp at 1118's own size and ink.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */

.esn { font-family: var(--font-body); }

/* ── the signs — what to look for. A plain list, marked with the estate's em-dash (419's own
   marker), because a bullet glyph at this size reads as decoration and the dash reads as a row. */
.esn-signs { list-style: none; margin: 0; padding: 0; }

.esn-sign {
  position: relative;
  padding-left: var(--space-20);
  font-size: var(--text-body-sm);
  line-height: var(--leading-150);
  color: var(--text-primary);
  margin-bottom: var(--space-8);
}
.esn-sign:last-child { margin-bottom: 0; }
/* the attribution tag stays on ONE line: it drops below the sign whole rather than splitting
   between the authority and its page. */
.esn-stamp { white-space: nowrap; }
.esn-sign::before { content: "—"; position: absolute; left: 0; color: var(--ink-600); }

/* ── the ladder — who to call, and when. One rung per row: the moment on the left, the route on
   the right. Not a table: a two-column grid collapses badly at 390px and the pairing is what
   carries the meaning, so the rows stack and the label leads. */
.esn-ladder {
  list-style: none;
  margin: var(--space-16) 0 0;
  padding: var(--space-12) 0 0;
  border-top: 1px solid var(--gold-200); /* token-exception: a hairline, in the box's own family */
}

.esn-rung { margin-bottom: var(--space-8); }
.esn-rung:last-child { margin-bottom: 0; }

/* the moment. Label face, uppercase and tracked so it reads as the row's key rather than as the
   first two words of the sentence beside it. */
.esn-when {
  display: block;
  font-family: var(--font-label);
  font-size: var(--text-label);
  font-weight: var(--weight-700);
  text-transform: uppercase;
  letter-spacing: var(--tracking-05);
  line-height: var(--leading-140);
  color: var(--text-primary);
}

/* the route. As plain text when we do not know the digits — the honest state (D-537), never a
   guessed number — and as a real control when we do. */
.esn-who {
  display: block;
  font-size: var(--text-body-sm);
  font-weight: var(--weight-600);
  line-height: var(--leading-150);
  color: var(--text-primary);
  margin-top: var(--space-4);
}

/* ⚠️ `a.esn-who` ONLY. The plain-text rung is a span and must not inherit one pixel of the link's
   affordance — .safety-chip is the precedent and the warning: a de-afforded signpost that wears
   the control's clothes is the one thing on a safety surface that most invites a tap and has
   nowhere to go. */
a.esn-who {
  position: relative;
  color: var(--teal-700);
  text-decoration: underline;
  text-underline-offset: 2px; /* token-exception — .safety-tel's own offset, matched */
  white-space: nowrap;
}
/* the 44px touch floor, without growing the digits or moving the line (.safety-tel's solution) */
a.esn-who::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--tap-target);
  height: var(--tap-target);
  transform: translate(-50%, -50%);
}
/* micro-states (D-422 / G6): the number is a real control — press dims, focus rings */
a.esn-who:active { opacity: 0.8; }
a.esn-who:focus-visible { outline: var(--focus-ring); outline-offset: var(--focus-offset); }

/* The closing line, if the source printed one. Quiet, because it is context and not an
   instruction. ⚠️ It is a <div> in the renderer ON PURPOSE: 411's `.ntc.acute p` is (0,2,1) and
   would out-specify this rule if the element were a <p>. Not being a <p> settles it outright,
   where `.esn p.esn-foot` would only tie and be decided by stylesheet order. */
.esn-foot {
  font-size: var(--text-caption);
  line-height: var(--leading-145);
  color: var(--ink-600);
  margin: var(--space-12) 0 0;
}
