/* Kinesis Roles: night edition, VerseGlass 2 Darkroom, under the device's own appearance.

   A layer on top of tokens.css and styles.css. It changes colours only: no size, position, spacing, font or
   layout rule is touched, so the rail, the top bar and every page keep their geometry. By day none of it applies.

   Loads after styles.css. Reads the Steward's roles from kinesis-theme.ns.css (--k-*) and the lamp layer from
   kinesis-glass.ns.css, both copied unedited from kinesis-theme/dist. This file points Roles' own variables
   (--paper, --ink, --cream, --yellow ...) at those roles in one block, then fixes what the variables cannot:
   edges and hard plates (generated, below), labels that were hard white, and a few tints that turn too bright.

   Switch: the same one the app has. <html data-theme="auto"> follows the system. A forced data-theme="paper"
   (or "light") stays day under a dark system. data-theme="paper-dark" and .paper-dark also get this edition
   under a dark system. A forced dark on a light system keeps tokens.css' Paper Dark; nothing in the app sets it.

   Glass is on section panels only (.card, .legend, .phase, .trip-ticket, .move-card), one blur each; rows, menus,
   dialogs, toasts and fields are opaque. Letters, the signature pad and SOP documents stay paper with dark ink. */

/* Lamp layer: the app adds <div class="k-lamps"> to index.html. Fixed so it lasts the whole scroll. Display is none by day. */
.k-lamps { position: fixed; }
@media print { .k-lamps { display: none !important; } }

/* A forced day edition stays day. kinesis-theme.ns.css turns the lamps on and the scheme to dark for any data-theme except
   "light", so "paper" (and "light") are put back here. Same specificity, later in the cascade. */
@media screen and (prefers-color-scheme: dark) {
  :root:is([data-theme="paper"], [data-theme="light"]) { color-scheme: light; --k-lamps-display: none; }
}

@media screen and (prefers-color-scheme: dark) {
/* ---- 1. Roles' variables at night, pointed at the shared roles -------------------------------------------------- */
:root:not([data-theme="paper"], [data-theme="light"]) {
  color-scheme: dark;
  --paper: var(--k-paper);
  --paper-raised: var(--k-stand-raised);
  --paper-sunk: var(--k-stand-sunk);
  --ink: var(--k-ink);
  --ink-soft: var(--k-ink-soft);
  --ink-muted: var(--k-muted);
  --ink-faint: var(--k-muted);
  --ink-ghost: var(--k-ink-ghost);
  --rule-soft: var(--k-edge-soft);
  --paper-disabled: var(--k-stand-sunk);
  --paper-track: var(--k-scroll-track);
  --on-ink: var(--k-paper);
  --on-plate: var(--k-on-solid);
  --cyan: var(--k-process-cyan);
  --magenta: var(--k-process-magenta);
  --yellow: var(--k-yellow);
  --cyan-ink: var(--k-link);
  --magenta-ink: var(--k-link-hover);
  --yellow-ink: var(--k-gold-dark);
  --success: var(--k-green);
  --warning: var(--k-gold-dark);
  --error: var(--k-red);
  --info: var(--k-link);
  --selection: var(--k-selection);
  --plate-sm: 2px 2px 0 var(--k-plate);
  --plate: 3px 3px 0 var(--k-plate);
  --plate-lg: 4px 4px 0 var(--k-plate);
  --plate-xl: 5px 5px 0 var(--k-plate);
  --plate-hover: 3px 3px 0 var(--k-plate), 6px 6px 0 var(--k-plate-2);
  --focus-ring: 0 0 0 6px color-mix(in srgb, var(--k-focus) 35%, transparent);
  /* Roles' own highlighters, solid fills that carry dark ink (--on-accent), as the yellow key does. */
  --sage: var(--k-lamp-acid);
  --orange: var(--k-gold-dark);
  --done: var(--k-fill-success);
  --rule: var(--k-edge-soft);
  --frost: color-mix(in srgb, var(--k-paper) var(--k-veil-strong), transparent);
  --on-accent: var(--k-accent-ink);
}

/* ---- 2. Ground: the lamps replace the drifting paper shapes and the halftone floor ----------------------------- */
:where(:root:not([data-theme="paper"], [data-theme="light"])) body::before,
:where(:root:not([data-theme="paper"], [data-theme="light"])) body::after { display: none; }
:where(:root:not([data-theme="paper"], [data-theme="light"])) ::selection { background: var(--k-selection); color: var(--k-on-selection); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline-color: var(--k-focus); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) tr[data-ctx]:focus-visible { outline-color: var(--k-focus); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) input:not([type=checkbox]):not([type=radio]),
:where(:root:not([data-theme="paper"], [data-theme="light"])) select,
:where(:root:not([data-theme="paper"], [data-theme="light"])) textarea { background: var(--k-stand-sunk); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) ::placeholder { color: var(--k-ink-ghost); opacity: 1; }

/* ---- 3. Glass: section panels only, one blur each. Children only tint (they are solid raised faces) ------------- */
:where(:root:not([data-theme="paper"], [data-theme="light"])) :is(.card, .legend, .phase, .trip-ticket, .move-card):not(.inverse) {
  background-color: var(--k-cream);
  background-image:
    radial-gradient(130% 110% at 100% 0%, var(--k-glass-tint), transparent 55%),
    radial-gradient(120% 110% at 0% 100%, var(--k-glass-tint-2), transparent 55%),
    linear-gradient(160deg, var(--k-glass-frost), transparent);
  -webkit-backdrop-filter: var(--k-glass-filter);
  backdrop-filter: var(--k-glass-filter);
}
:where(:root:not([data-theme="paper"], [data-theme="light"])) :is(.card, .legend, .phase, .trip-ticket, .move-card) :is(.card, .legend, .phase, .trip-ticket, .move-card) {
  background-color: var(--k-stand-raised); background-image: none; -webkit-backdrop-filter: none; backdrop-filter: none;
}
/* The legend's header was a black bar with light type. A violet-tinted band keeps it a heavy header without the glare. */
:where(:root:not([data-theme="paper"], [data-theme="light"])) .legend > header { background: color-mix(in srgb, var(--k-selection) 38%, var(--k-stand-raised)); color: var(--k-ink); }
/* The inverse card was ink on paper. At night it is a solid raised face; its heading is already a yellow label. */
:where(:root:not([data-theme="paper"], [data-theme="light"])) .card.inverse { background: var(--k-stand-raised); color: var(--k-ink); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) .card.inverse .muted { color: var(--k-muted); }
/* styles.css turns this heading into an inline-block chip with padding under any dark system, which moves the layout.
   Night keeps the day geometry: a plain heading, yellow on the dark card. */
:where(:root:not([data-theme="paper"], [data-theme="light"])) .card.inverse > h2.section { display: block; padding: 0; background: none; color: var(--yellow); }

/* ---- 4. Labels that were hard white. On the light status and lamp fills the ink is the dark on-solid. ----------- */
:where(:root:not([data-theme="paper"], [data-theme="light"])) .rail .count,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .now-plate,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .btn.danger:hover,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .seg button[data-s="done"][aria-pressed="true"],
:where(:root:not([data-theme="paper"], [data-theme="light"])) .seg button[data-s="blocked"][aria-pressed="true"],
:where(:root:not([data-theme="paper"], [data-theme="light"])) .pill.red,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .pill.green,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .accent-magenta .avatar,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .avatar.accent-magenta,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .accent-magenta .phase.current > header,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .rung.on.l2,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .rung.on.l3,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .who i.accent-magenta,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .who i.accent-ink,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .answers-seg .a-do input:checked + span,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .pill.a-do,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .idea-due.late { color: var(--k-on-solid); }
/* Highlighter words. styles.css draws them as a band under the lower half of the line, with the ink on top. A bright band
   under light ink fails, so at night the word sits on a solid highlighter, dark ink on yellow, as the yellow key does. */
:where(:root:not([data-theme="paper"], [data-theme="light"])) .hl { background: var(--yellow); color: var(--k-accent-ink); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) .hl.cyan { background: var(--cyan); color: var(--k-accent-ink); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) .hl.magenta { background: var(--magenta); color: var(--k-accent-ink); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) .hl.sage { background: var(--sage); color: var(--k-accent-ink); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) .hl.orange { background: var(--orange); color: var(--k-accent-ink); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) .now-plate .label { text-shadow: 2px 2px 0 var(--k-plate); }

/* Ink on a bright fill: the link in today's calendar header and the Admin-style pill inside a current phase header. */
:where(:root:not([data-theme="paper"], [data-theme="light"])) .cal-head.today a { color: var(--k-accent-ink); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) .phase.current > header .pill.ink { background: var(--k-night); color: var(--k-starlight); }

/* ---- 5. Tints that would turn too bright once the highlighters are lamp colours -------------------------------- */
:where(:root:not([data-theme="paper"], [data-theme="light"])) .k-rest { background: color-mix(in srgb, var(--sage) 26%, var(--cream)); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) .toast.ok { background: color-mix(in srgb, var(--k-green) 16%, var(--cream)); border-color: var(--k-green); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) .toast.err { border-color: var(--k-red); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) .tone-yellow { --tone-fill: color-mix(in srgb, var(--yellow) 24%, var(--cream)); }

/* ---- 6. Overlays are opaque stand. The context menu paints itself from --cream, --ink, --magenta and --yellow. ---- */
:where(:root:not([data-theme="paper"], [data-theme="light"])) dialog.quick-idea { background: var(--k-stand); }
:where(:root:not([data-theme="paper"], [data-theme="light"])) dialog.quick-idea::backdrop { background: color-mix(in srgb, var(--k-paper) 72%, transparent); }

/* ---- 7. Paper that stays paper: the letter, SOP documents and the signature pad read as documents ---------------- */
:where(:root:not([data-theme="paper"], [data-theme="light"])) .letter,
:where(:root:not([data-theme="paper"], [data-theme="light"])) .sigpad {
  --ink: var(--k-night);
  --ink-soft: var(--k-night-soft);
  --muted: color-mix(in srgb, var(--k-night) 74%, var(--k-accent-paper));
  --paper: var(--k-starlight);
  --cream: var(--k-accent-paper);
  --sand: color-mix(in srgb, var(--k-night) 7%, var(--k-accent-paper));
  --rule: color-mix(in srgb, var(--k-night) 30%, var(--k-accent-paper));
  --link: var(--k-night);
  --link-hover: var(--k-night);
  --magenta: color-mix(in srgb, var(--k-lamp-magenta) 68%, var(--k-night));
  --done: color-mix(in srgb, var(--k-fill-success) 50%, var(--k-night));
  --red: color-mix(in srgb, var(--k-fill-error) 50%, var(--k-night));
  --k-edge: var(--k-night);
  background: var(--k-accent-paper);
  color: var(--k-night);
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
:where(:root:not([data-theme="paper"], [data-theme="light"])) .letter .display { text-shadow: 2px 2px 0 var(--cream), 4px 4px 0 var(--ink); }
}


/* ---- Edges and plates: every border and hard offset shadow that styles.css draws with var(--ink), re-pointed at the
   night roles. Width, style and offset are copied as they are, only the colour moves, so nothing shifts.
   Generated from styles.css at 2ccc21e (92 rules); the exceptions (stamps, the current menu item, the count badge) are left out on purpose. ---- */
@media screen and (prefers-color-scheme: dark) {
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .display {
    text-shadow: 2px 2px 0 var(--cream), 4px 4px 0 var(--k-plate);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .topbar {
    border-bottom-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .rail {
    border-bottom-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .rail a:hover {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .card {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .legend {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .now-plate {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .now-plate .label {
    text-shadow: 2px 2px 0 var(--k-plate);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .phase-banner {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .btn {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .btn:hover {
    box-shadow: 4px 4px 0 var(--k-plate);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .btn:active {
    box-shadow: 1px 1px 0 var(--k-plate);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .btn.small {
    box-shadow: 2px 2px 0 var(--k-plate);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .btn.ghost:hover {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .seg {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .seg button {
    border-right-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) input:not([type=checkbox]):not([type=radio]),
  :where(:root:not([data-theme="paper"], [data-theme="light"])) select,
  :where(:root:not([data-theme="paper"], [data-theme="light"])) textarea {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .pill {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .pip {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .avatar {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .req {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .req::before {
    border-right-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .dod {
    border-left-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .chev {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .table-wrap {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) th {
    border-bottom-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .spark i.warn {
    outline-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .ot-track {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .ot-track > i {
    border-right-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .ot-track::after {
    border-left-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .rowcard {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .filters button {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .empty {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .score-badge {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .phase {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .phase > header {
    border-bottom-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .rung .n {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .rung.on {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .iw-head {
    border-bottom-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .iw-block {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .iw-key {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .letter {
    border-color: var(--k-edge);
    box-shadow: 8px 8px 0 var(--k-plate);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .letter .scope {
    border-left-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .sigpad {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .sigpad::after {
    border-bottom-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .sigblock .sig {
    border-bottom-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .letter.addendum {
    box-shadow: 5px 5px 0 var(--k-plate);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .letter.addendum::before {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .edge-status {
    border-top-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .trip-ticket {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .trip-punches .hole {
    border-color: color-mix(in srgb, var(--k-edge) 40%, var(--cream));
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .trip-punches .on .hole {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .trip-punches .stop .hole {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .trip-proposed {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .trip-weeks li {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .code-out {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .seg a {
    border-right-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .plate {
    border-color: var(--k-edge);
    border-left-color: var(--accent, var(--k-edge));
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .roll-next {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .standup {
    border-top-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) button.rc-name:hover,
  :where(:root:not([data-theme="paper"], [data-theme="light"])) button.rc-name[aria-expanded="true"] {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .rc-items {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .lead-card {
    border-left-color: var(--accent, var(--k-edge));
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .goal {
    border-left-color: var(--accent, var(--k-edge));
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .goal-wins {
    border-left-color: var(--accent, var(--k-edge));
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .b3-mark {
    border-color: var(--k-edge);
    box-shadow: 2px 2px 0 var(--k-plate);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .standup-banner {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .seg a {
    border-right-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .filters a {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .cal-head {
    border-bottom-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .cal-corner {
    border-bottom-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .cal-strip {
    border-bottom-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .cal-iw {
    border-top-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .cal-ev {
    border-color: var(--k-edge);
    box-shadow: 2px 2px 0 var(--k-plate);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .cal-ev::before {
    border-right-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .cal-point {
    border-top-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .cal-point span {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .who i {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .who.all {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .cal-chip {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .cal-row {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .prop {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) dialog.quick-idea {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .seg.radios label {
    border-right-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .move-card {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .idea-due {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .filter-asks {
    border-left-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .answer-slip {
    border-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .answer-slip::before {
    border-right-color: var(--k-edge);
  }
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .toast {
    border-color: var(--k-edge);
  }
}
@media screen and (prefers-color-scheme: dark) and (min-width: 980px) {
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .rail {
    border-right-color: var(--k-edge);
  }
}
@media screen and (prefers-color-scheme: dark) and (min-width: 760px) {
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .trip-ticket::before,
  :where(:root:not([data-theme="paper"], [data-theme="light"])) .trip-ticket::after {
    border-color: var(--k-edge);
  }
}


@media screen and (prefers-color-scheme: dark) {
/* The generated block above turns every ink shadow into a plate. A button on paper keeps its dark shadow. */
:where(:root:not([data-theme="paper"], [data-theme="light"])) .letter .btn { box-shadow: 2px 2px 0 var(--k-night); }
}
