/* SHARED·SLEEPWINDOWROW (450) — a single sleep window as one compact row. Copy-first port off
 * logger-surface.css's own `.slot` block — class names unchanged for check 65. Owns
 * `.slot`/`.slot input`/`.slot .ar`/`.slot .x`/`.slot .x svg`.
 *
 * ⚠️ ONE ADDITION NOT IN THE KEPT SOURCE, DISCLOSED: `.slot .sr-only` — a visually-hidden label
 * class, needed for the real `<label for=>` bindings Andrew's standing ruling asks for (see
 * sleepwindowrow.render.js's own header for the full reasoning). No app-wide sr-only utility
 * exists yet (checked directly — zero hits for a clip-based visually-hidden pattern anywhere in
 * web/css/), so this is scoped to `.slot` rather than claimed as a bare global `.sr-only` class
 * this file has no business declaring app-wide. If a shared a11y-utility file is ever built, this
 * rule migrates there; until then it lives with the one component that needs it.
 *
 * Font-size role token: 16->--text-body, exact match.
 */
/* ⚠️ RULED 2026-08-30 (Andrew: "all text and icons should align middle") — a deliberate
 * departure from the kept source, not a fidelity fix: the kept original has this same
 * misalignment (verified by rendering it verbatim, unmodified — both times, the arrow and the
 * × never shared one line there either). align-items: flex-end matched the kept source exactly;
 * center is the new ruling. Same pattern as 439's left-hand-pair centring — text/icon rows of
 * mismatched height centre on one shared line now, by standing rule, not per-component taste. */
.slot { display: flex; align-items: center; gap: var(--space-16);
  padding: var(--space-12) var(--space-16); background: var(--surface-card);
  border-radius: var(--radius-control); margin-top: var(--space-8); }
/* -1px is the standard WCAG visually-hidden technique's own required value (clip to 1x1px, pull
 * fully off any visible box via a matching negative margin) — not a spacing choice, an off-grid
 * value the technique cannot work without. Grid-snapping it to 0 would leave a 1px visible
 * artifact and defeat the whole point of the rule. */
.slot .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; /* token-exception */
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.slot input { border: 0; background: none; padding: 0; font-family: var(--font-body);
  font-size: var(--text-body); font-weight: var(--weight-600); color: var(--text-primary); }
.slot input:focus-visible { outline: var(--radius-2) solid var(--accent);
  outline-offset: var(--radius-2); }
/* ⚠️ DELIBERATE DEVIATION: --text-tertiary is D-740's NON-TEXT-only token; the arrow is a mark,
 * but `.slot` sits on --surface-card (4.23:1 for --text-tertiary — under the 4.5:1 floor even at
 * the looser 3:1 icon rule's own edge case; measured directly). --text-secondary clears it. */
.slot .ar { color: var(--text-secondary); }
.slot .x { margin-left: auto; background: none; border: 0; padding: 0; cursor: pointer;
  color: var(--text-secondary); display: inline-flex; }
.slot .x svg { width: var(--dim-16); height: var(--dim-16); }
.slot .x:active { color: var(--danger); }
