/* ShiftReady design tokens and base styles. Shared by the landing page, the app and the report.
   Contrast (light / dark): body text ≥ 12:1, muted text ≥ 5.5:1, status text on its soft
   background ≥ 4.6:1, field borders and focus rings ≥ 3:1 (WCAG 2.2 AA, 1.4.3 / 1.4.11). */
:root{
  /* Surfaces */
  --bg:#F2F4F6; --panel:#FFFFFF; --panel2:#F6F8FA; --sunken:#E9EDF1;
  /* Text */
  --ink:#121B24; --muted:#56636F;
  /* Lines: --line is decorative; --field is for control boundaries (≥ 3:1) */
  --line:#D3DAE1; --field:#7C8B99;
  /* Brand + status */
  --accent:#0B6E6E; --accent-ink:#FFFFFF; --accent-soft:#D9ECEB; --accent-hover:#095B5B;
  --bad:#B42318; --bad-soft:#FBE3E0;
  --ok:#1E7A3C; --ok-soft:#DFF2E4;
  --warn:#8A5A09; --warn-soft:#FBEFD6;
  --shadow-1:0 1px 2px rgba(18,27,36,.06),0 2px 8px rgba(18,27,36,.04);
  --shadow-2:0 2px 4px rgba(18,27,36,.06),0 12px 32px rgba(18,27,36,.12);
  /* Type */
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --cond:"IBM Plex Sans Condensed","IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Menlo,Consolas,monospace;
  --fs-xs:12px; --fs-sm:14px; --fs-md:16px; --fs-lg:18px; --fs-xl:22px; --fs-2xl:28px;
  /* Spacing: 4px scale */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px;
  --r1:6px; --r2:10px; --r3:14px;
  --ease:cubic-bezier(.2,.7,.2,1); --t-fast:150ms; --t-med:220ms;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){color-scheme:dark;
    --bg:#0E141A; --panel:#161F28; --panel2:#1B2530; --sunken:#111920;
    --ink:#E6ECF1; --muted:#9BA9B6; --line:#2A3643; --field:#6B7B8B;
    --accent:#4FC1B8; --accent-ink:#0B1A1A; --accent-soft:#143533; --accent-hover:#6FD3CB;
    --bad:#F0776B; --bad-soft:#3D1B18; --ok:#5CC98A; --ok-soft:#173524; --warn:#E3A63C; --warn-soft:#3A2C10;
    --shadow-1:0 1px 2px rgba(0,0,0,.35); --shadow-2:0 2px 6px rgba(0,0,0,.4),0 16px 40px rgba(0,0,0,.45);}
}
:root[data-theme="dark"]{color-scheme:dark;
  --bg:#0E141A; --panel:#161F28; --panel2:#1B2530; --sunken:#111920;
  --ink:#E6ECF1; --muted:#9BA9B6; --line:#2A3643; --field:#6B7B8B;
  --accent:#4FC1B8; --accent-ink:#0B1A1A; --accent-soft:#143533; --accent-hover:#6FD3CB;
  --bad:#F0776B; --bad-soft:#3D1B18; --ok:#5CC98A; --ok-soft:#173524; --warn:#E3A63C; --warn-soft:#3A2C10;
  --shadow-1:0 1px 2px rgba(0,0,0,.35); --shadow-2:0 2px 6px rgba(0,0,0,.4),0 16px 40px rgba(0,0,0,.45);}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--fs-md);line-height:1.55}
h1,h2,h3,h4{font-family:var(--cond);line-height:1.15;margin:0;text-wrap:balance;letter-spacing:-.005em}
p{margin:0}
a{color:var(--accent);text-underline-offset:2px}
a:hover{color:var(--accent-hover)}
img,svg{max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
[hidden]{display:none!important}
.mono{font-family:var(--mono)}
.muted{color:var(--muted)}
.num{font-variant-numeric:tabular-nums}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;inset-inline-start:var(--s4);top:-100px;z-index:100;background:var(--panel);color:var(--ink);padding:var(--s2) var(--s4);border-radius:var(--r1);box-shadow:var(--shadow-2)}
.skip:focus{top:var(--s4)}
.eyebrow{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
