/* Halo final design (1 Nov 2026): Anna's structure, Matt's chrome, Chris's Guardian build.
   Shared by final-*.html. Tokens first, then the handful of shared components. */
:root{
  color-scheme: light;
  /* Matt's mono chrome */
  --bg:#ffffff; --page:#f3f4f6; --surface:#ffffff; --surface-2:#f3f4f6; --surface-3:#e6e8ec;
  --ink:#0a0a0a; --muted:#6b6f76; --faint:#9ea3ab;
  --rule:#e3e5e9; --rule-strong:#c9ccd2;
  --graphite:#1f2226; --on-ink:#ffffff;
  /* the only attention colour: Matt's red dot */
  --red:#e5484d; --red-soft:#fdecec;
  /* Anna's green: brand only (logo, selected menu item, done ticks, live) */
  --green:#1d4d36; --green-soft:#d8e5dd; --green-ink:#176938; --focus:#007254;
  --display:"Inter Tight","Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r-card:18px; --r-tile:16px; --r-pill:999px; --r-btn:999px;
  --shadow:0 18px 50px -18px rgba(0,0,0,.22);
  --pane-w:452px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --bg:#0f1012; --page:#15171a; --surface:#1a1c1f; --surface-2:#202327; --surface-3:#2a2d32;
  --ink:#f1f2f4; --muted:#a3a8b0; --faint:#6f747c; --rule:#2a2d32; --rule-strong:#3a3e44;
  --graphite:#f1f2f4; --on-ink:#0a0a0a; --red:#f2555a; --red-soft:#3a1d1f;
  --green:#5fb98a; --green-soft:#1c3328; --green-ink:#7fd0a5; --focus:#5fb98a;
  --shadow:0 18px 50px -18px rgba(0,0,0,.6);
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0f1012; --page:#15171a; --surface:#1a1c1f; --surface-2:#202327; --surface-3:#2a2d32;
  --ink:#f1f2f4; --muted:#a3a8b0; --faint:#6f747c; --rule:#2a2d32; --rule-strong:#3a3e44;
  --graphite:#f1f2f4; --on-ink:#0a0a0a; --red:#f2555a; --red-soft:#3a1d1f;
  --green:#5fb98a; --green-soft:#1c3328; --green-ink:#7fd0a5; --focus:#5fb98a;
  --shadow:0 18px 50px -18px rgba(0,0,0,.6);
}
[hidden]{display:none!important}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--page);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;line-height:1.1;margin:0}
.num{font-family:var(--display);font-weight:800;letter-spacing:-.045em;font-variant-numeric:tabular-nums;line-height:.95}

/* Matt: black pill buttons */
.pill{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 18px;border-radius:var(--r-pill);border:1px solid var(--rule-strong);background:var(--surface);font-weight:600;font-size:14px}
.pill.primary{background:var(--graphite);color:var(--on-ink);border-color:var(--graphite)}
.pill:disabled{opacity:.45;cursor:default}
/* Matt: chips */
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-pill);background:var(--surface-2);font-size:12.5px;color:var(--muted);font-weight:500}
.chip.live{background:var(--green-soft);color:var(--green-ink)}
.chip.needs{background:var(--red-soft);color:var(--red)}
/* Matt: white tiles */
.tile{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-tile);padding:16px}
.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-card);padding:20px}
/* Matt: the one red dot. Only one element on a page may carry it at a time. */
.dot{width:9px;height:9px;border-radius:50%;background:var(--red);display:inline-block;flex:none}
/* Done tick: Anna's green */
.tick{color:var(--green-ink)}
/* Matt: side pane from the left on desktop, sheet from the bottom on a phone */
.pane{position:fixed;z-index:50;background:var(--surface);box-shadow:var(--shadow);display:flex;flex-direction:column;
  top:0;left:0;bottom:0;width:var(--pane-w);max-width:100vw;border-right:1px solid var(--rule);transform:translateX(-102%);transition:transform .38s cubic-bezier(.2,.8,.2,1)}
.pane.open{transform:none}
@media (max-width:640px){
  .pane{top:auto;right:0;width:auto;max-height:88vh;border-right:0;border-radius:22px 22px 0 0;transform:translateY(102%)}
  .pane.open{transform:none}
}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
