/* ══════════════════════════════════════════════════════════════════════════════════════════════
   1118 SHARED·SOURCESTAMP — the stamp that says which authority a line came from.
   ──────────────────────────────────────────────────────────────────────────────────────────────
   BUILT 2026-09-10 (lane 110). The first of the three elements every one of the ten guide area
   specs proposed independently (PLAN-the-guides-2026-09-10.md §4 — per-line source attribution,
   10 of 10). It is the ATOM of the other two: 1119 SHARED·AUTHORITIES draws one per authority
   row, 1120 SHARED·CALLSOMEONE draws one per warning sign that carries an attribution.

   REUSE CHECKED BEFORE BUILDING (LANE-RULES §3 — assess, adopt, build):
   · 402 SHARED·PROVENANCE is a UNIT footrow — one source + one reviewer, once, at the foot of a
     whole card. It cannot stamp a LINE, and the ten specs all ask for line granularity.
   · 419 SHARED·SOURCES is a linked bibliography and its admission gate REQUIRES an http(s) URL
     (D-439). An authority's printed brochure has an edition and a page and frequently no URL —
     under 419's gate that row is refused, which is correct for a bibliography and wrong for a
     stamp.
   · 1053 SHARED·SOURCECARD carries ONE source for a whole tool (label/body/cite/disclaimer).
   · 1116 TOOLS·APPROACHCARD (lane 07, unmerged) has `.apc-who` — the only worked example of this
     exact stamp anywhere in the estate. THIS CARD IS THAT SHAPE, generalised off the weaning
     overlay's private palette onto app tokens. 1116's own `.apc-who` is a private copy the moment
     both land; the migration is named in the report and is OWED, not done here — its file is on a
     branch this tree does not contain, and LANE-RULES §3's "delete the private copy" cannot be
     performed on a file that is not here.

   🔴 THE INK IS `--teal-700` — ANDREW'S RULING 2026-10-02 ("Think we put sources in teal"),
   reversing the original `--ink-600`. That ink was D-439/D-465: 402 draws the SOURCE (theirs) in
   `--ink-600` and the REVIEWER (ours) in teal so a fused row never reads as an endorsement. A teal
   stamp moves an authority's name toward the app's own voice; the founder chose it knowingly. The
   stamp still names THEIR authority and stays uppercase, tracked and separate from our copy.
       --teal-700 on --surface-card 5.82:1 · on --surface-ground 4.69:1 · on --gold-100 5.33:1
   (figures from the original build-time computation; re-measure on any new ground).

   ⚠️ NO "UNVERIFIED" MARK, DELIBERATELY. `web/data/weaning-guidance.json` distinguishes a
   `claimed_source` that has been CHECKED_AGAINST_SOURCE from one nobody opened, and it would be
   easy to surface that as a badge. 402 already ruled the shape: `.prov-none`, the dashed "missing
   provenance" flag, is WORKBENCH-ONLY — a unit missing its provenance is fixed before live, never
   annotated in front of a parent. This card holds the same line and renders no such state.

   ⚠️ SaMD: this card TEACHES and ATTRIBUTES. It displays no child's data and computes nothing,
   so it never crosses the MDR line. Its copy is the authority's own name, edition and locator —
   nothing here can be made to say detect/screen/monitor/diagnose/predict.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */

.stamp {
  display: block;
  font-family: var(--font-label);
  line-height: var(--leading-140);
  color: var(--teal-700);
}

/* the authority's name. Uppercase + tracked so it reads as a LABEL rather than as the start of
   the sentence underneath it — the .apc-who treatment, on app tokens. */
/* the authority's name. Uppercase + tracked so it reads as a LABEL rather than as the start of
   the sentence underneath it — the .apc-who treatment, on app tokens. When there is a citation
   behind it the name is a <button> (tap to open, tap again to close); the resets below keep it
   looking exactly like the plain name plus a chevron. */
.stamp-who {
  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: inherit;
  color: var(--teal-700);
}
button.stamp-who {
  appearance: none;
  background: none;
  border: 0;
  margin: 0;
  padding: 0;
  text-align: left;
  cursor: pointer;
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
}
/* a wider invisible hit area: the visible label is small, a thumb is not */
button.stamp-who::before {
  content: "";
  position: absolute;
  inset: calc(-1 * var(--space-12)) calc(-1 * var(--space-8));
}
button.stamp-who:focus-visible { outline: var(--focus-ring); outline-offset: var(--focus-offset); }
.stamp-out { display: inline-block; vertical-align: middle; margin-left: var(--space-4); width: var(--dim-12); height: var(--dim-12); }
.stamp-out svg { display: block; width: var(--dim-12); height: var(--dim-12); }
.stamp-chev { display: inline-block; width: var(--dim-12); height: var(--dim-12); flex: none; }
.stamp-chev svg { display: block; width: var(--dim-12); height: var(--dim-12); }
.stamp-open .stamp-chev { transform: rotate(90deg); }

/* the detail that opens: edition + locator, then the optional link. White-space is reset here so
   a host that keeps the name on one line (the escalation signs) does not stretch the detail. */
.stamp-detail { display: block; white-space: normal; margin-top: var(--space-4); }
.stamp-detail[hidden] { display: none; }

/* edition + locator — what makes the stamp checkable rather than decorative. Not uppercase: it
   is a citation, and a case-flattened document title is harder to recognise, not easier. */
.stamp-cite {
  display: inline;
  font-size: var(--text-label);
  font-weight: var(--weight-400);
  color: var(--teal-700);
}

/* the optional link to the right place in the original: only drawn when the caller holds a real
   address. Linking elsewhere in the app is 419's job, under 419's http(s) gate. */
.stamp-link {
  display: inline;
  font-size: var(--text-label);
  font-weight: var(--weight-700);
  color: var(--teal-700);
  text-decoration: underline;
}

/* ── inline placement — the closed stamp trails the line it attributes, on the same baseline ────
   Opened, the detail drops to its own line under the sentence: a long edition title wrapped
   mid-title beside the name reads as two sentences, so the citation gets a line of its own. */
.stamp.inline { display: inline; }
