/* ==========================================================================
   VerifyPro — design tokens (light + dark)
   Shared by index.html and the app shell. Load this BEFORE app.css.

   Dark is a SELECTED palette, not an inversion. Both modes were run through
   the dataviz six-checks validator:
     light marks #199C6B/#EBA400/#5F6B85/#96150C — all-pairs CVD dE 12.0 PASS
     dark  marks #60BA8D/#EABF3A/#768096/#DB5436 — all-pairs CVD dE 11.6 PASS
   Deliberate, documented deviations in BOTH modes:
     - chroma floor on the Unknown slate: Unknown must read neutral. This is a
       status palette, not a categorical one.
     - dark lightness band: green/amber sit above the 0.67 ceiling because
       contrast against a dark surface requires it. Contrast won.
   Every verdict always carries its WORD — colour is never the only signal.
   Do not hand-tune these values; re-run the validator instead.
   ========================================================================== */

:root{
  --paper:#EAEAE4;
  --card:#FBFAF7;
  --rail:#16181C;
  --rail-2:#22252B;
  --rail-ink:#D9DBDF;
  --rail-ink-2:#C3C7CD;
  --rail-mute:#767C86;
  --rail-rule:#2B2F36;
  --rail-track:#2B2F36;

  --ink:#16181C;
  --ink-2:#4A4F57;
  --ink-3:#8A8F97;
  --rule:#D3D1C8;
  --rule-2:#C2BFB4;

  --air-red:#C8102E;
  --air-blue:#14346B;

  --m-ok:#199C6B;   --m-warn:#EBA400;  --m-unk:#5F6B85;  --m-bad:#96150C;
  --t-ok:#0E6647;   --t-warn:#7A5200;  --t-unk:#414B60;  --t-bad:#8A1309;

  --w-ok:rgba(25,156,107,.09);
  --w-warn:rgba(235,164,0,.12);
  --w-unk:rgba(95,107,133,.09);
  --w-bad:rgba(150,21,12,.08);

  --btn-ink:#FBFAF7;
  --row-hover:rgba(20,52,107,.035);
  --shadow:0 18px 40px -28px rgba(20,22,26,.4);

  --f-disp:'Archivo',system-ui,sans-serif;
  --f-stamp:'Big Shoulders Display','Archivo',sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,monospace;
  --rail-w:238px;
}

/* system preference — only when the user hasn't chosen light explicitly */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#16181C;
    --card:#1E2127;
    --rail:#101216;
    --rail-2:#22252B;
    --rail-ink:#D9DBDF;
    --rail-ink-2:#C3C7CD;
    --rail-mute:#868C96;
    --rail-rule:#2B2F36;
    --rail-track:#2B2F36;

    --ink:#E9E9E4;
    --ink-2:#B4B8C0;
    --ink-3:#868C96;
    --rule:#2B2F36;
    --rule-2:#3A3F48;

    --air-red:#F04A63;
    --air-blue:#6D9BE0;

    --m-ok:#60BA8D;   --m-warn:#EABF3A;  --m-unk:#768096;  --m-bad:#DB5436;
    --t-ok:#7FD0A5;   --t-warn:#F0CD63;  --t-unk:#A3ACBE;  --t-bad:#F0846A;

    --w-ok:rgba(96,186,141,.13);
    --w-warn:rgba(234,191,58,.13);
    --w-unk:rgba(118,128,150,.15);
    --w-bad:rgba(219,84,54,.13);

    --btn-ink:#16181C;
    --row-hover:rgba(109,155,224,.07);
    --shadow:0 18px 40px -28px rgba(0,0,0,.75);
  }
}

/* explicit choice always wins, in both directions */
:root[data-theme="dark"]{
  --paper:#16181C;
  --card:#1E2127;
  --rail:#101216;
  --rail-2:#22252B;
  --rail-ink:#D9DBDF;
  --rail-ink-2:#C3C7CD;
  --rail-mute:#868C96;
  --rail-rule:#2B2F36;
  --rail-track:#2B2F36;

  --ink:#E9E9E4;
  --ink-2:#B4B8C0;
  --ink-3:#868C96;
  --rule:#2B2F36;
  --rule-2:#3A3F48;

  --air-red:#F04A63;
  --air-blue:#6D9BE0;

  --m-ok:#60BA8D;   --m-warn:#EABF3A;  --m-unk:#768096;  --m-bad:#DB5436;
  --t-ok:#7FD0A5;   --t-warn:#F0CD63;  --t-unk:#A3ACBE;  --t-bad:#F0846A;

  --w-ok:rgba(96,186,141,.13);
  --w-warn:rgba(234,191,58,.13);
  --w-unk:rgba(118,128,150,.15);
  --w-bad:rgba(219,84,54,.13);

  --btn-ink:#16181C;
  --row-hover:rgba(109,155,224,.07);
  --shadow:0 18px 40px -28px rgba(0,0,0,.75);
}

/* ── theme toggle ────────────────────────────────────────────────────── */
.theme-toggle{
  display:inline-flex;align-items:center;gap:0;
  border:1.5px solid var(--rule-2);background:var(--card);
  border-radius:2px;padding:2px;cursor:pointer;
}
.theme-toggle button{
  font-family:var(--f-stamp);font-weight:700;font-size:12px;letter-spacing:.13em;
  text-transform:uppercase;padding:5px 9px;border:0;background:transparent;
  color:var(--ink-3);cursor:pointer;border-radius:1px;line-height:1.4;transition:.13s;
}
.theme-toggle button:hover{color:var(--ink)}
.theme-toggle button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.theme-toggle button:focus-visible{outline:2px solid var(--air-blue);outline-offset:2px}

/* the airmail chevron reads in both modes */
.airmail{
  height:7px;width:100%;
  background:repeating-linear-gradient(-45deg,var(--air-red) 0 11px,transparent 11px 22px),
             repeating-linear-gradient(-45deg,transparent 0 11px,var(--air-blue) 11px 22px);
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}
