/* ============================================================
   GCPS Schedule — Month → Week → Day, slot level.
   Tokens = the GCPS Billing "river" design system (river.css over theme2.css):
   sky canvas by day, night field by dark; Manrope UI, Newsreader for dates and
   headings, IBM Plex Mono for times and counts.

   Design rules (v3 polish, 2026-09-14):
   - Ink budget. A booked visit is a chip; designed-but-open capacity is a faint
     band with no border and no text. Only what needs a decision is loud.
   - Two color families with fixed meaning: facility (where) on Month/Week hour
     blocks; slot type (what) on the Day grid, in eCW's own palette.
   - Status color is earned, never decorative: rose = over / must move,
     amber = under or partial, and it appears only where the alert engine says so.
   - One weight ladder: 700 names, 600 labels, 500 body, mono for every count.
   ============================================================ */
:root{
  --bg:#e7edf5; --bg-2:#dde6f1; --surface:rgba(255,255,255,.72); --surface-2:rgba(255,255,255,.5); --solid:#ffffff;
  --ink:#1e2637; --ink-2:#3f4859; --mut:#6f788b; --mut-2:#98a1b3;
  --line:rgba(30,40,60,.10); --line-2:rgba(30,40,60,.18); --line-3:rgba(30,40,60,.06);
  --navy:#1e2637; --teal:#2b8c88; --teal-soft:rgba(43,140,136,.12);
  --blue:#3f7fd8; --blue-soft:rgba(63,127,216,.12); --violet:#7b6bd1; --violet-soft:rgba(123,107,209,.12);
  --rose:#c94f73; --rose-soft:rgba(201,79,115,.12); --amber:#c98a1a; --amber-soft:rgba(201,138,26,.14);
  --green:#2f9e6a; --green-soft:rgba(47,158,106,.12); --info:#3f7fd8; --info-soft:rgba(63,127,216,.12);
  --acc:#3f7fd8; --acc-2:#2f6fc8; --acc-soft:rgba(63,127,216,.12); --on-acc:#ffffff;
  --f-main:#1e2637; --f-asc:#7b6bd1; --f-asc-soft:rgba(123,107,209,.12); --f-web:#7fa9e0;
  --t-fu:#2b8c88; --t-fu-soft:rgba(43,140,136,.13); --t-fu-cap:rgba(43,140,136,.07);
  --t-new:#3f7fd8; --t-new-soft:rgba(63,127,216,.13); --t-new-cap:rgba(63,127,216,.07);
  --t-pro:#2f9e6a; --t-pro-soft:rgba(47,158,106,.13); --t-pro-cap:rgba(47,158,106,.07);
  --t-asc:#a24fa8; --t-asc-soft:rgba(162,79,168,.12); --t-asc-cap:rgba(162,79,168,.06);
  --hatch:rgba(201,79,115,.14);
  --shadow-1:0 8px 26px rgba(40,60,95,.07), inset 0 1px 0 #fff; --shadow-2:0 14px 38px rgba(40,60,95,.11), inset 0 1px 0 #fff; --shadow-3:0 24px 64px rgba(40,60,95,.16);
  --pane-border:rgba(255,255,255,.85);
  --canvas:radial-gradient(720px 420px at 12% 18%, rgba(255,255,255,.85), transparent 65%),
    radial-gradient(800px 520px at 88% 82%, rgba(255,238,214,.85), transparent 65%),
    radial-gradient(560px 420px at 68% 10%, rgba(176,204,240,.7), transparent 65%),
    radial-gradient(500px 380px at 30% 92%, rgba(205,222,245,.7), transparent 65%),
    linear-gradient(180deg,#d7e5f6 0%,#e7edf5 46%,#f5f1e9 100%);
  --font-ui:Manrope,"Helvetica Neue",Arial,sans-serif; --font-serif:Newsreader,Georgia,"Times New Roman",serif; --font-mono:"IBM Plex Mono",Menlo,monospace;
  --r:14px; --r-sm:10px; --r-xs:7px; --ease:.16s cubic-bezier(.4,0,.2,1);
  --bar-h:58px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#070b16; --bg-2:#0a1020; --surface:rgba(255,255,255,.055); --surface-2:rgba(255,255,255,.035); --solid:#0d1526;
    --ink:#eef3fb; --ink-2:#c4d0e2; --mut:#8ea3bd; --mut-2:#66799a;
    --line:rgba(255,255,255,.085); --line-2:rgba(255,255,255,.14); --line-3:rgba(255,255,255,.05);
    --navy:#8fb6ff; --teal:#2dd4bf; --teal-soft:rgba(45,212,191,.13);
    --blue:#60a5fa; --blue-soft:rgba(96,165,250,.14); --violet:#a78bfa; --violet-soft:rgba(167,139,250,.14);
    --rose:#fb7185; --rose-soft:rgba(251,113,133,.13); --amber:#fbbf24; --amber-soft:rgba(251,191,36,.12);
    --green:#34d399; --green-soft:rgba(52,211,153,.13); --info:#60a5fa; --info-soft:rgba(96,165,250,.14);
    --acc:#60a5fa; --acc-2:#93c5fd; --acc-soft:rgba(96,165,250,.16); --on-acc:#05101f;
    --f-main:#8fb6ff; --f-asc:#a78bfa; --f-asc-soft:rgba(167,139,250,.14); --f-web:#5eead4;
    --t-fu:#2dd4bf; --t-fu-soft:rgba(45,212,191,.14); --t-fu-cap:rgba(45,212,191,.07);
    --t-new:#60a5fa; --t-new-soft:rgba(96,165,250,.15); --t-new-cap:rgba(96,165,250,.07);
    --t-pro:#34d399; --t-pro-soft:rgba(52,211,153,.14); --t-pro-cap:rgba(52,211,153,.07);
    --t-asc:#e879f9; --t-asc-soft:rgba(232,121,249,.13); --t-asc-cap:rgba(232,121,249,.06);
    --hatch:rgba(251,113,133,.16);
    --shadow-1:0 1px 2px rgba(0,0,0,.35), 0 8px 24px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.07); --shadow-2:0 2px 10px rgba(0,0,0,.4), 0 16px 40px rgba(0,0,0,.35); --shadow-3:0 24px 64px rgba(0,0,0,.5), 0 6px 16px rgba(0,0,0,.35);
    --pane-border:rgba(255,255,255,.10);
    --canvas:radial-gradient(1000px 500px at 50% 45%, rgba(45,140,255,.09), transparent 60%),
      radial-gradient(700px 500px at 90% 90%, rgba(94,234,212,.08), transparent 60%),
      linear-gradient(180deg,#0a1122 0%, #070b16 55%, #05080f 100%);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#070b16; --bg-2:#0a1020; --surface:rgba(255,255,255,.055); --surface-2:rgba(255,255,255,.035); --solid:#0d1526;
  --ink:#eef3fb; --ink-2:#c4d0e2; --mut:#8ea3bd; --mut-2:#66799a;
  --line:rgba(255,255,255,.085); --line-2:rgba(255,255,255,.14); --line-3:rgba(255,255,255,.05);
  --navy:#8fb6ff; --teal:#2dd4bf; --teal-soft:rgba(45,212,191,.13);
  --blue:#60a5fa; --blue-soft:rgba(96,165,250,.14); --violet:#a78bfa; --violet-soft:rgba(167,139,250,.14);
  --rose:#fb7185; --rose-soft:rgba(251,113,133,.13); --amber:#fbbf24; --amber-soft:rgba(251,191,36,.12);
  --green:#34d399; --green-soft:rgba(52,211,153,.13); --info:#60a5fa; --info-soft:rgba(96,165,250,.14);
  --acc:#60a5fa; --acc-2:#93c5fd; --acc-soft:rgba(96,165,250,.16); --on-acc:#05101f;
  --f-main:#8fb6ff; --f-asc:#a78bfa; --f-asc-soft:rgba(167,139,250,.14); --f-web:#5eead4;
  --t-fu:#2dd4bf; --t-fu-soft:rgba(45,212,191,.14); --t-fu-cap:rgba(45,212,191,.07);
  --t-new:#60a5fa; --t-new-soft:rgba(96,165,250,.15); --t-new-cap:rgba(96,165,250,.07);
  --t-pro:#34d399; --t-pro-soft:rgba(52,211,153,.14); --t-pro-cap:rgba(52,211,153,.07);
  --t-asc:#e879f9; --t-asc-soft:rgba(232,121,249,.13); --t-asc-cap:rgba(232,121,249,.06);
  --hatch:rgba(251,113,133,.16);
  --shadow-1:0 1px 2px rgba(0,0,0,.35), 0 8px 24px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.07); --shadow-2:0 2px 10px rgba(0,0,0,.4), 0 16px 40px rgba(0,0,0,.35); --shadow-3:0 24px 64px rgba(0,0,0,.5), 0 6px 16px rgba(0,0,0,.35);
  --pane-border:rgba(255,255,255,.10);
  --canvas:radial-gradient(1000px 500px at 50% 45%, rgba(45,140,255,.09), transparent 60%),
    radial-gradient(700px 500px at 90% 90%, rgba(94,234,212,.08), transparent 60%),
    linear-gradient(180deg,#0a1122 0%, #070b16 55%, #05080f 100%);
  color-scheme:dark;
}

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font-ui);font-size:13.5px;line-height:1.45;
  color:var(--ink);background:var(--canvas),var(--bg);background-attachment:fixed;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;min-height:100vh}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}
button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.disp,.crumb.cur,.wh .d b,.dtop h2,.dh h3,.dn,.wk .wn b,.hrs{font-family:var(--font-serif);font-weight:500;letter-spacing:-.02em}
.mono,.axisc div,.vis small,.case small,.std .times,.fl,.ftab td,.hrs,.sess .sh span:last-child,.fill,.podband .n,.badge,.cnt{font-family:var(--font-mono)}

/* ---------- command bar ---------- */
.bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:10px 22px;flex-wrap:wrap;row-gap:8px;min-height:var(--bar-h);
  background:var(--surface);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--pane-border)}
.logo{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none;color:#fff;font-weight:800;font-size:13px;background:linear-gradient(135deg,var(--blue),var(--teal));box-shadow:0 8px 22px rgba(63,127,216,.35)}
.crumbs{display:flex;align-items:center;gap:4px;min-width:0;flex-wrap:wrap}
.crumb{font-weight:600;font-size:13px;color:var(--mut);padding:5px 8px;border-radius:8px;white-space:nowrap;transition:var(--ease)}
.crumb:hover{background:var(--surface);color:var(--acc)}
.crumb.cur{color:var(--ink);font-weight:500;font-size:23px;cursor:default}
.crumb.cur:hover{background:transparent;color:var(--ink)}
.crumbs .sep{color:var(--mut-2);font-size:12px}
.seg{display:inline-flex;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:2px;gap:2px;flex:none}
.seg button{font-size:12px;font-weight:650;padding:5px 12px;border-radius:8px;color:var(--mut);transition:var(--ease);white-space:nowrap}
.seg button:hover{color:var(--ink)}
.seg button.on{background:var(--solid);color:var(--ink);box-shadow:var(--shadow-1)}
.navg{display:inline-flex;align-items:center;gap:2px;flex:none}
.ib{width:30px;height:30px;border-radius:9px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font-size:14px;display:grid;place-items:center;transition:var(--ease)}
.ib:hover{border-color:var(--acc);color:var(--acc)}
.tb{height:30px;padding:0 11px;border-radius:9px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font-size:12px;font-weight:650;transition:var(--ease);white-space:nowrap}
.tb:hover{border-color:var(--acc);color:var(--acc)}
.tb.primary{background:var(--acc);border-color:var(--acc);color:var(--on-acc);box-shadow:0 6px 18px rgba(63,127,216,.3)}
.tb.primary:hover{background:var(--acc-2);color:var(--on-acc)}
.grow{flex:1}
.people{display:flex;gap:5px;flex-wrap:wrap}
@media (max-width:1560px){.people{order:10;width:100%}}
.pchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);border-radius:999px;padding:3px 10px 3px 4px;font-size:11.5px;font-weight:600;color:var(--ink-2);transition:var(--ease);white-space:nowrap}
.pchip:hover{border-color:var(--acc)}
.pchip.on{background:var(--acc-soft);border-color:var(--acc);color:var(--ink)}
.pchip.dim{opacity:.4}
.av{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:800;color:var(--on-acc);background:var(--acc);flex:none}
.av.np{background:var(--surface);color:var(--ink-2);border:1.5px solid var(--mut-2)}
.pchip .n{opacity:.7;font-weight:500}
.bar .asof{font-size:11px;font-weight:650;color:var(--mut);white-space:nowrap}
.bar .asof.stale{color:var(--amber)} .bar .asof.old{color:var(--rose)}

/* ---------- canvas ---------- */
.wrap{padding:16px 22px 60px;max-width:1900px;margin:0 auto;min-width:0}
.canvas{animation:zoom .22s cubic-bezier(.4,0,.2,1)}
@keyframes zoom{from{opacity:0;transform:scale(.988)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.canvas{animation:none}.drawer,.scrim{transition:none}}

.strip{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px;font-size:12px;color:var(--mut)}
.strip .lg{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--ink-2)}
.strip .lg i{width:10px;height:10px;border-radius:3px;display:inline-block}
.strip .lg i.hatch{background:repeating-linear-gradient(135deg,var(--rose) 0 2px,transparent 2px 5px);border:1px solid var(--rose)}
.strip .lg i.late{background:var(--amber-soft);border:1px solid var(--amber)}
.strip .lg i.closed{background:var(--amber);opacity:.9}
.strip .lg i.open{border:1px dashed var(--mut);background:transparent}
.strip .lg i.over{background:var(--rose)} .strip .lg i.under{background:var(--amber)}
.strip .tally{display:inline-flex;gap:14px;flex-wrap:wrap}
.strip .tally b{color:var(--ink);font-weight:700;font-family:var(--font-mono)}
.i-main{background:var(--f-main)} .i-asc{background:var(--f-asc)} .i-web{background:var(--f-web)} .i-admin{background:transparent;border:1px dashed var(--mut-2)}
.i-fu{background:var(--t-fu)} .i-new{background:var(--t-new)} .i-pro{background:var(--t-pro)} .i-ascp{background:var(--t-asc)}

/* fill readouts — quiet mono numbers; color only when the engine flagged it */
.fills{display:flex;gap:2px 10px;flex-wrap:wrap}
.fl{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:var(--mut);white-space:nowrap}
.fl i{width:6px;height:6px;border-radius:2px;display:inline-block;flex:none;opacity:.9}
.fl b{font-weight:600;color:var(--ink-2)}
.fl small{font-weight:500;color:var(--mut-2);font-size:11px}
.fl.over b{color:var(--rose)} .fl.under b{color:var(--amber)}
.fl.over{color:var(--rose)} .fl.under{color:var(--amber)}
.fl.none{opacity:.45}
.badge{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:999px;line-height:1.5}
.badge.bad{background:var(--rose-soft);color:var(--rose)} .badge.warn{background:var(--amber-soft);color:var(--amber)}
.badge.info{background:var(--info-soft);color:var(--info)}

/* ---------- MONTH ---------- */
.month{background:var(--surface);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--pane-border);border-radius:var(--r);box-shadow:var(--shadow-1);overflow:hidden}
.mhead{display:grid;grid-template-columns:78px repeat(5,1fr);border-bottom:1px solid var(--line);background:var(--surface-2)}
.mhead div{padding:8px 12px;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;color:var(--mut)}
.mweek{display:grid;grid-template-columns:78px repeat(5,1fr);border-bottom:1px solid var(--line-3)}
.mweek.thisweek .wk{box-shadow:inset 3px 0 0 var(--acc)}
.mweek:last-child{border-bottom:0}
.wk{padding:10px 8px 10px 12px;border-right:1px solid var(--line);background:var(--surface-2);display:flex;flex-direction:column;gap:6px;text-align:left;transition:var(--ease)}
.wk:hover{background:var(--acc-soft)}
.wk .wn{font-size:11px;font-weight:700;color:var(--mut)}
.wk .wn b{color:var(--ink);font-size:13px;display:block}
.wk .cov{display:flex;gap:2px;height:5px;border-radius:99px;overflow:hidden}
.wk .cov i{flex:1;display:block;background:var(--mut-2);opacity:.3}
.wk .cov i.w{background:var(--amber);opacity:1} .wk .cov i.b{background:var(--rose);opacity:1} .wk .cov i.c{opacity:.12}
.wk .hint{font-size:10.5px;color:var(--mut-2);font-weight:500}
.wk:hover .hint{color:var(--acc)}
.day{min-height:176px;padding:10px 12px 10px;border-right:1px solid var(--line-3);text-align:left;display:flex;flex-direction:column;gap:5px;transition:var(--ease);position:relative}
.day:last-child{border-right:0}
.day:hover{background:var(--surface-2)}
.day.out{background:var(--bg-2);color:var(--mut-2)} .day.out .dn{color:var(--mut-2)}
.day.closed{background:repeating-linear-gradient(135deg,var(--amber-soft) 0 6px,transparent 6px 14px)}
.day .top{display:flex;align-items:center;gap:6px}
.dn{font-size:21px;font-weight:500;color:var(--ink);width:30px;height:30px;display:grid;place-items:center;border-radius:9px}
.day.today{background:color-mix(in srgb,var(--acc) 6%,transparent)}
.day.today .dn{background:var(--acc);color:var(--on-acc);box-shadow:0 4px 12px rgba(63,127,216,.35)}
.pips{display:flex;gap:5px;margin-left:auto}
.pod{display:inline-flex;gap:2px;padding:2px;border-radius:5px;background:var(--bg-2)}
.pip{width:8px;height:11px;border-radius:2px;background:var(--f-main);opacity:.55}
.pip.np{background:var(--f-main);opacity:.28}
.pip.off{background:repeating-linear-gradient(135deg,var(--rose) 0 2px,var(--rose-soft) 2px 4px);opacity:1}
.pip.part{background:linear-gradient(180deg,var(--f-main) 55%,var(--amber) 55%);opacity:1}
.pip.late{background:linear-gradient(180deg,var(--amber) 45%,var(--f-main) 45%);opacity:1}
.pip.adm{background:transparent;border:1px dashed var(--mut-2);opacity:1}
.band{display:block;min-width:0;font-size:10.5px;font-weight:700;padding:3px 7px;border-radius:6px;background:var(--amber-soft);color:var(--amber);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.band.hol{background:var(--amber);color:#fff}
.band.hol-open{background:var(--amber-soft);color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber)}
.band.asc{background:var(--f-asc-soft);color:var(--f-asc)}
.line{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.line i{width:7px;height:7px;border-radius:50%;flex:none}
.line i.off{background:var(--rose)} .line i.part{background:var(--amber)}
.line b{font-weight:650;color:var(--ink)}
.line .why{color:var(--mut);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis}
.line.more{color:var(--mut-2);font-size:11px}
/* month foot: one fill bar per pod, no text; alert badges at right */
.mfoot{margin-top:auto;display:flex;align-items:flex-end;gap:8px}
.meters{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;flex:1}
.meter{display:grid;gap:2px}
.meter .k{font-size:9.5px;font-weight:600;color:var(--mut);letter-spacing:.2px}
.meter .b{height:5px;border-radius:99px;background:var(--line);overflow:hidden}
.meter .b i{display:block;height:100%;border-radius:99px;background:var(--mut-2);opacity:.6}
.meter .b i.over{background:var(--rose);opacity:1} .meter .b i.under{background:var(--amber);opacity:1} .meter .b i.ok{background:var(--teal);opacity:.75}
.mbadges{display:inline-flex;gap:4px;flex:none}
.mfoot.quiet .meters{opacity:.35}

/* month: per-pod lines */
.strip .explain{font-size:11.5px;color:var(--mut);line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.strip .q{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1.3px solid var(--mut-2);color:var(--mut-2);font-size:9.5px;font-weight:800;margin-left:6px;cursor:help;vertical-align:-2px}
.strip .explain b{color:var(--ink-2);font-weight:600}
.strip .explain b.over{color:var(--rose)} .strip .explain b.under{color:var(--amber)}
.sw{display:inline-block;width:9px;height:9px;border-radius:2px;vertical-align:-1px;margin:0 2px 0 4px}
.sw.bad{background:var(--rose)} .sw.warn{background:var(--amber)} .sw.off{background:repeating-linear-gradient(135deg,var(--rose) 0 2px,transparent 2px 4px);border:1px solid var(--rose)}
.sw.fu{background:var(--t-fu)} .sw.new{background:var(--t-new)} .sw.pro{background:var(--t-pro)} .sw.ascp{background:var(--t-asc)}
.mcols{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;margin-top:4px;min-width:0}
.mcol + .mcol{border-left:1px solid var(--line);padding-left:12px}
.mcol{display:grid;gap:5px;align-content:start;min-width:0}
.meye{font-size:9px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:var(--mut-2);padding-left:11px;margin-bottom:2px}
.mrows{display:grid;gap:3px;margin-top:2px}
.mrow{display:grid;grid-template-columns:1fr auto;gap:1px 8px;align-items:baseline;font-size:11.5px;line-height:1.25;min-width:0;padding-left:11px;position:relative}
.mrow:before{content:"";position:absolute;left:0;top:5px;width:6px;height:6px;border-radius:50%;background:var(--line-2)}
.mrow.ok:before{background:var(--green);opacity:.7} .mrow.bad:before{background:var(--rose)} .mrow.warn:before{background:var(--amber)}
.mrow.off:before,.mrow.part:before{background:transparent;border:1.5px solid var(--rose);width:6px;height:6px;border-radius:50%}
.mrow.part:before{border-color:var(--amber);background:repeating-linear-gradient(135deg,var(--amber) 0 2px,transparent 2px 4px)}
.mrow .pn{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrow .pv{font-family:var(--font-mono);color:var(--mut);font-size:10.5px;white-space:nowrap;text-align:right}
.mrow .pv .okk{margin-left:5px}
.okk{font-style:normal;color:var(--green);font-weight:700;font-size:10.5px}
.mrow .pf{grid-column:1/-1;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-2);font-weight:600;line-height:1.25;min-width:0}
.mrow.muted .pf{color:var(--mut-2);font-weight:500}
.mrow .pi{grid-column:1/-1;color:var(--mut);white-space:normal;min-width:0;line-height:1.25;font-size:11px;font-weight:600}
.mrow.bad .pi{color:var(--rose);font-weight:600} .mrow.warn .pi{color:var(--amber);font-weight:600}
.mrow.off .pi{color:var(--rose);font-weight:600} .mrow.part .pi{color:var(--amber);font-weight:600}
.mrow.muted .pv,.mrow.muted .pn{color:var(--mut-2)} .mrow.muted:before{opacity:.3}
.mrow.adm:before{background:transparent;border:1px dashed var(--mut-2)} .mrow.adm .pi{color:var(--mut-2);font-weight:500}
.mfoot{margin-top:auto;padding-top:6px}
.msum{font-size:10.5px;color:var(--mut);font-weight:600}
.msum b{font-family:var(--font-mono);font-weight:600} .msum b.bad{color:var(--rose)} .msum b.warn{color:var(--amber)} .msum b.note{color:var(--mut)}

/* KPI row */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:2px 0 12px}
@media (max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}}
.kpi{background:var(--surface);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--pane-border);border-radius:var(--r);box-shadow:var(--shadow-1);padding:13px 18px 12px;cursor:default;transition:var(--ease)}
.kpi:hover{box-shadow:var(--shadow-2);border-color:var(--line-2)}
.kpi .kl{font-size:11.5px;font-weight:600;color:var(--mut)}
.kpi .kv{font-family:var(--font-serif);font-size:34px;font-weight:500;letter-spacing:-.02em;color:var(--ink);line-height:1.1;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi .ks{font-size:11px;color:var(--mut-2);margin-top:4px}
.kpi .ks b{font-family:var(--font-mono);font-weight:600} .kpi .ks b.up{color:var(--green)} .kpi .ks b.down{color:var(--rose)}
.tip .tr.up i{color:var(--green)} .tip .tr.down i{color:var(--rose)}
#lens{margin-left:-6px}
.pods.locs{grid-template-columns:repeat(4,1fr)}
.tile.off b.txt{color:var(--amber)}

.kpi{text-align:left;cursor:pointer}
.tip .tr.ref{opacity:.6} .tip .tr.main b{font-size:12.5px}
/* chart modal */
.modal{position:fixed;inset:0;z-index:960;background:rgba(3,6,14,.45);display:none;align-items:center;justify-content:center;padding:24px}
.modal.open{display:flex}
.modal-card{width:min(960px,96vw);background:var(--solid);border:1px solid var(--line-2);border-radius:16px;box-shadow:var(--shadow-3);overflow:hidden}
.modal .mh{display:flex;align-items:center;gap:12px;padding:16px 20px 12px;border-bottom:1px solid var(--line)}
.modal .mh h3{font-family:var(--font-serif);font-size:20px;font-weight:500;color:var(--ink)}
.modal .mh .sub{font-size:11.5px;color:var(--mut);margin-top:2px}
.modal .mh .seg{margin-left:auto}
.cbody{padding:14px 20px 18px}
.cwrap{position:relative}
.chart{width:100%;height:auto;display:block;overflow:visible}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .base{stroke:var(--line-2);stroke-width:1}
.chart .ylab{fill:var(--mut-2);font-size:10.5px;text-anchor:end;font-family:var(--font-mono)}
.chart .xlab{fill:var(--mut);font-size:10.5px;text-anchor:middle;font-family:var(--font-ui)}
.chart .ylr{fill:var(--mut-2);font-size:10px;text-anchor:middle;font-family:var(--font-mono);font-weight:600}
.chart .vlab{fill:var(--ink-2);font-size:11px;text-anchor:middle;font-family:var(--font-mono);font-weight:600}
.chart .bar path{fill:var(--acc);opacity:.85;transition:opacity .12s}
.chart .bar.partial path{fill:var(--acc);opacity:.35;stroke:var(--acc);stroke-dasharray:3 2;stroke-width:1}
.chart .bar .hit{fill:transparent}
.chart .bar.on path{opacity:1}
.ctip{position:absolute;pointer-events:none;background:var(--solid);border:1px solid var(--line-2);border-radius:8px;padding:5px 9px;font-size:12px;color:var(--ink-2);box-shadow:var(--shadow-2);white-space:nowrap}
.ctip b{font-family:var(--font-mono);color:var(--ink);font-weight:600;margin-right:4px}
.ctab{width:100%;border-collapse:collapse;font-size:12.5px;max-height:360px}
.ctab th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--mut-2);padding:4px 6px;border-bottom:1px solid var(--line)}
.ctab td{padding:5px 6px;border-bottom:1px solid var(--line-3);color:var(--ink-2)} .ctab td:last-child{text-align:right;font-family:var(--font-mono);color:var(--ink)}
.ctable{max-height:380px;overflow:auto}

/* answer strip + away card side by side */
.toprow{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:12px;margin:2px 0 14px;align-items:stretch}
@media (max-width:1300px){.toprow{grid-template-columns:1fr}}
.toprow .answer{margin:0;align-content:flex-start}
.away{padding:12px 14px 8px;min-width:0}
.away h4{margin-bottom:6px}
.alist{display:grid;gap:1px;max-height:190px;overflow:auto;scrollbar-width:thin}
.arow{display:grid;grid-template-columns:78px minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:5px 6px;border-radius:7px;text-align:left;font-size:12px;color:var(--ink-2);transition:var(--ease);min-width:0}
.arow:hover{background:var(--acc-soft)}
.arow.focus{background:color-mix(in srgb,var(--acc) 7%,transparent);box-shadow:inset 3px 0 0 var(--acc)}
.arow .ad{font-family:var(--font-mono);font-size:11px;color:var(--mut);white-space:nowrap}
.arow .aw{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arow .aw .av{width:18px;height:18px;font-size:8px}
.arow .aw b{color:var(--ink);font-weight:700}
.arow .ar{color:var(--mut);overflow:hidden;text-overflow:ellipsis}
.arow.notice .aw{font-weight:600;color:var(--ink)}
.arow.notice.closed .aw{color:var(--amber)}
.atag{font-size:10px;font-weight:700;padding:2px 7px;border-radius:6px;white-space:nowrap}
.atag.off{background:var(--rose-soft);color:var(--rose)} .atag.part{background:var(--amber-soft);color:var(--amber)}
.atag.note{background:var(--surface-2);color:var(--mut)} .atag.req{background:var(--amber-soft);color:var(--amber);font-weight:600}
.side .away .alist{max-height:none}

/* answer strip */
.answer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:2px 0 14px;padding:13px 20px;background:var(--surface);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--pane-border);border-radius:var(--r);box-shadow:var(--shadow-1)}
.a-main{font-family:var(--font-serif);font-size:20px;color:var(--ink);letter-spacing:-.01em;white-space:nowrap}
.a-main b{color:var(--rose);font-weight:500}
.a-main .okk{font-size:16px;margin-right:4px}
.a-chips{display:flex;gap:6px;flex-wrap:wrap}
.achip{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:999px;border:1px solid color-mix(in srgb,var(--rose) 35%,var(--line));background:var(--rose-soft);color:var(--rose);font-size:12px;font-weight:600;transition:var(--ease)}
.achip b{font-family:var(--font-mono);font-weight:600;font-size:11px}
.achip:hover{background:var(--rose);color:#fff}
.a-side{margin-left:auto;display:flex;gap:14px;align-items:center;font-size:12px;color:var(--mut);white-space:nowrap}
.a-side b{color:var(--ink);font-weight:600;font-family:var(--font-mono)}
.a-side .q{margin-left:0}

/* month tiles: one big number per person */
.pods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 12px;margin-top:8px}
.podcol{display:grid;gap:8px;align-content:start;min-width:0}
.tile .fillbar{display:flex;width:100%;height:4px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:6px}
.tile .fillbar i{display:block;height:100%;background:var(--teal);opacity:.7}
.tile .fillbar i.ov{background:var(--rose);opacity:1}
.tile.bad .bar i{background:var(--rose);opacity:.55}
.tile.muted .bar i{background:var(--mut-2);opacity:.45}
.tile .tn em{font-style:normal;color:var(--mut-2);font-weight:500;margin-left:4px;font-size:9.5px}
.dbadge{margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--rose);color:#fff;font-size:11.5px;font-weight:700;display:inline-grid;place-items:center;font-family:var(--font-mono);box-shadow:0 4px 10px rgba(201,79,115,.3)}
.day.flag{background:color-mix(in srgb,var(--rose) 3%,transparent)}
.day.today.flag{background:color-mix(in srgb,var(--acc) 6%,transparent)}
.mtiles{display:grid;gap:2px 0;margin-top:4px}
.mtiles .meye{padding-left:2px;margin:3px 0 1px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:3px}
.tile{display:flex;flex-direction:column;align-items:stretch;padding:4px 7px 5px;border-radius:8px;line-height:1;cursor:default;transition:var(--ease);min-width:0}
.tile:hover{background:var(--acc-soft)}
.tile b{font-family:var(--font-serif);font-size:27px;font-weight:500;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
.tile b.txt{font-size:14px;color:var(--mut);padding-top:7px;padding-bottom:6px;font-family:var(--font-ui);font-weight:600}
.tile small{font-family:var(--font-mono);font-size:10px;color:var(--mut-2);margin-left:2px}
.tile .tn{font-size:11px;font-weight:600;color:var(--mut);margin-top:5px;white-space:nowrap;display:flex;align-items:center;gap:3px;overflow:hidden;text-overflow:ellipsis}
.tile .pf{font-style:normal;color:var(--amber);font-size:9px}
.tile .pf.dot{width:6px;height:6px;border-radius:50%;background:var(--amber);display:inline-block}
.tile.bad b{color:var(--rose)} .tile.bad .pf.dot{background:var(--rose)}
.tile.warn b{color:var(--amber)}
.tile.off b.txt{color:var(--rose)} .tile.part b{color:var(--amber)}
.tile.muted b{color:var(--mut-2)}
/* hover card */
.tip{position:fixed;z-index:950;width:260px;background:var(--solid);border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--shadow-3);padding:11px 13px 9px;font-size:12px;color:var(--ink-2);pointer-events:none;display:none}
.tip .th{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}
.tip .th b{color:var(--ink);font-weight:700} .tip .th span{font-size:10.5px;color:var(--mut-2);white-space:nowrap}
.tip .tb{display:flex;align-items:baseline;gap:5px;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.tip .tb b{font-family:var(--font-serif);font-size:26px;font-weight:500;color:var(--ink);line-height:1}
.tip .tb i{font-style:normal;font-size:11px;color:var(--mut)} .tip .tb em{margin-left:auto;font-size:10.5px}
.tip .tr{display:grid;grid-template-columns:1fr auto auto;gap:6px;padding:2px 0;font-size:11.5px}
.tip .tr span{color:var(--mut)} .tip .tr b{font-family:var(--font-mono);font-weight:600;color:var(--ink);text-align:right} .tip .tr i{font-style:normal;font-family:var(--font-mono);color:var(--mut-2);font-size:11px}
.tip .tr.over b{color:var(--rose)} .tip .tr.under b{color:var(--amber)} .tip .tr.sub{font-size:11px;color:var(--mut-2)}
.tip .ti{margin-top:5px;padding:4px 8px;border-radius:6px;font-size:11.5px;font-weight:600}
.tip .ti.bad{background:var(--rose-soft);color:var(--rose)} .tip .ti.warn{background:var(--amber-soft);color:var(--amber)}
.tip .ti.info{background:var(--surface-2);color:var(--mut);font-weight:500}
.tip .ti.off{background:var(--rose-soft);color:var(--rose)} .tip .ti.part{background:var(--amber-soft);color:var(--amber)} .tip .ti.adm{background:var(--surface-2);color:var(--mut)}
.tip .tw{margin-top:6px;font-size:10.5px;color:var(--mut-2)}
.tip .tf{margin-top:6px;font-size:10px;color:var(--mut-2);border-top:1px solid var(--line);padding-top:5px}

/* ---------- WEEK (headline numbers) ---------- */
.wgrid2{display:grid}
.wgrid2>*{border-bottom:1px solid var(--line-3);border-right:1px solid var(--line-3);min-width:0}
.wgrid2>*:nth-child(7n){border-right:0}
.wh2{padding:12px 14px 10px;background:var(--surface-2);display:flex;flex-direction:column;gap:4px;text-align:left;transition:var(--ease)}
.wh2.click:hover{background:var(--acc-soft)}
.wh2.today .dn2{color:var(--acc)}
.wh2 .d{display:flex;align-items:baseline;gap:7px}
.wh2 .dn2{font-family:var(--font-serif);font-size:24px;font-weight:500;color:var(--ink);line-height:1}
.wh2 .dw{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.4px}
.wh2 .dbadge{margin-left:auto}
.wh2 .hx{font-size:11.5px;font-weight:600;color:var(--ink-2)}
.wh2 .hx em{font-style:normal;color:var(--rose);font-weight:600}
.wh2 .hx .okk{margin-right:2px}
.wh2 .exp{font-size:10.5px;color:var(--mut-2);font-weight:600}
.wh2.corner{justify-content:flex-end}
.wh2 .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;color:var(--mut)}
.podhead2{background:var(--surface-2);padding:5px 14px;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-2);border-right:0!important}
.podhead2 small{font-weight:500;text-transform:none;letter-spacing:0;color:var(--mut-2);margin-left:6px}
.who2{display:flex;align-items:center;gap:9px;padding:12px 14px;min-width:0}
.who2 b{display:block;font-weight:700;color:var(--ink);font-size:13px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.who2 span{font-size:10.5px;color:var(--mut);font-weight:600}
.who2 .av{width:26px;height:26px;font-size:10px}
.wcell{padding:9px 12px;text-align:left;display:flex;align-items:stretch;transition:var(--ease);cursor:pointer}
.wcell:hover{background:var(--surface-2)}
.wcell.closed{background:repeating-linear-gradient(135deg,var(--amber-soft) 0 6px,transparent 6px 14px);cursor:default}
.wcell .tile{width:100%;padding:2px 4px}
.wcell .tile b{font-size:30px}
.wcell .tile .tn{color:var(--mut);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.wcell .tile .tn.bad{color:var(--rose);font-weight:600} .wcell .tile .tn.part{color:var(--amber);font-weight:600}
.wcell .tile.off b.txt{color:var(--rose)} .wcell .tile.off .tn{color:var(--rose);font-weight:600}
.wtot{padding:12px 14px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;text-align:right}
.wtot b{font-family:var(--font-serif);font-size:24px;font-weight:500;color:var(--ink);line-height:1}
.wtot small{font-family:var(--font-mono);font-size:10.5px;color:var(--mut-2);margin-top:3px}

/* ---------- WEEK ---------- */
.week{background:var(--surface);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--pane-border);border-radius:var(--r);box-shadow:var(--shadow-1);overflow:hidden}
.wgrid{display:grid;grid-template-columns:190px repeat(5,1fr) 70px}
.wh{padding:10px 12px 9px;border-bottom:1px solid var(--line);background:var(--surface-2);text-align:left;display:flex;flex-direction:column;gap:5px;transition:var(--ease);min-width:0}
.wh.click:hover{background:var(--acc-soft)}
.wh .d{display:flex;align-items:baseline;gap:6px}
.wh .d b{font-size:19px;font-weight:500;color:var(--ink)}
.wh .d span{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.4px}
.wh.today .d b{color:var(--acc)}
.wh .cv{display:flex;gap:8px;font-size:10.5px;color:var(--mut);font-weight:600;flex-wrap:wrap}
.wh .cv span{display:inline-flex;align-items:center;gap:4px}
.wh .cv i{width:7px;height:7px;border-radius:2px;display:inline-block}
.wh .cv em{font-style:normal;color:var(--ink);font-weight:700;font-family:var(--font-mono)}
.wh .cv em.zero{color:var(--rose)}
.wh .cv em.bad{color:var(--rose)} .wh .cv em.warn{color:var(--amber)} .wh .cv em.note{color:var(--mut)} .wh .cv em.okc{color:var(--green);font-weight:600;font-family:var(--font-ui)} .wh .cv em.offc{color:var(--rose);font-family:var(--font-ui);font-weight:600}
.wh .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;color:var(--mut)}
.wh .exp{font-size:10px;color:var(--mut-2);font-weight:600}
.wr{display:contents}
.wr>*{border-bottom:1px solid var(--line)}
.wr.podhead>*{background:var(--surface-2);padding:5px 12px;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--mut)}
.wr.podhead .pn{color:var(--ink-2)}
.wr.podhead .pn small{font-weight:500;text-transform:none;letter-spacing:0;color:var(--mut-2);margin-left:6px}
.who{display:flex;align-items:center;gap:9px;padding:9px 12px;min-width:0}
.who .nm{font-weight:700;color:var(--ink);font-size:12.5px;line-height:1.2}
.who .rl{font-size:10.5px;color:var(--mut);font-weight:600}
.who .av{width:26px;height:26px;font-size:10px}
.cell{padding:9px 10px;min-width:0;text-align:left;transition:var(--ease);position:relative;display:flex;flex-direction:column;gap:6px;justify-content:center}
.cell:hover{background:var(--surface-2)}
.cell.closed{background:repeating-linear-gradient(135deg,var(--amber-soft) 0 6px,transparent 6px 14px)}
.tl{position:relative;height:18px;border-radius:5px;background:var(--line-3);overflow:hidden}
.tl .blk{position:absolute;top:0;bottom:0;border-radius:4px;display:flex;align-items:center;padding:0 6px;font-size:10px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl .blk.main{background:var(--f-main)} .tl .blk.asc{background:var(--f-asc)} .tl .blk.web{background:var(--f-web)}
.tl .blk.admin{background:transparent;border:1px dashed var(--mut-2);color:var(--mut)}
.tl .blk.gone{background:repeating-linear-gradient(135deg,var(--hatch) 0 4px,transparent 4px 8px);border:1px dashed var(--rose);color:var(--rose)}
.tl .noon{position:absolute;top:0;bottom:0;left:47.6%;width:1px;background:var(--solid);opacity:.9}
.tl.off{background:repeating-linear-gradient(135deg,var(--hatch) 0 4px,transparent 4px 8px);border:1px dashed var(--rose)}
.tl.off .blk{color:var(--rose);left:0;right:0;justify-content:center}
.wstrip{position:relative;height:20px;border-radius:5px;background:var(--line-3);overflow:hidden}
.wstrip.asc{height:14px;margin-top:3px}
.wstrip .wl{position:absolute;left:5px;top:0;bottom:0;display:flex;align-items:center;font-size:8.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--mut-2);pointer-events:none;z-index:1}
.wstrip i{position:absolute;top:0;bottom:0;display:block}
.wstrip .hl{background:repeating-linear-gradient(135deg,var(--line) 0 3px,transparent 3px 7px);opacity:.7}
.wstrip .cap{border-radius:2px} .wstrip .cap.fu{background:var(--t-fu-cap)} .wstrip .cap.new{background:var(--t-new-cap)} .wstrip .cap.pro{background:var(--t-pro-cap)}
.wstrip .v{top:4px;bottom:4px;border-radius:2px;box-shadow:inset 1px 0 0 rgba(255,255,255,.5)}
.wstrip .v.fu{background:var(--t-fu)} .wstrip .v.new{background:var(--t-new)} .wstrip .v.pro{background:var(--t-pro)} .wstrip .v.ascp{background:var(--t-asc)}
.wstrip .v.over{background:var(--rose);top:1px;bottom:12px} .wstrip .v.gone{background:var(--rose);opacity:.7}
.wstrip .sess{background:var(--t-asc-cap);border:1px dashed color-mix(in srgb,var(--t-asc) 40%,transparent);border-radius:4px}
.wstrip .gone{background:repeating-linear-gradient(135deg,var(--amber-soft) 0 4px,transparent 4px 8px);border:1px dashed var(--amber);border-radius:4px}
.wstrip.off,.wstrip.adm,.wstrip.none{display:flex;align-items:center;padding:0 8px;font-size:10.5px;font-weight:600}
.wstrip.off{color:var(--rose);background:repeating-linear-gradient(135deg,var(--hatch) 0 4px,transparent 4px 8px);border:1px dashed var(--rose)}
.wstrip.off.amber{color:var(--amber);background:repeating-linear-gradient(135deg,var(--amber-soft) 0 4px,transparent 4px 8px);border-color:var(--amber)}
.wstrip.adm{color:var(--mut);border:1px dashed var(--mut-2);background:transparent}
.wstrip.none{color:var(--mut-2);background:transparent}
.wnums{display:flex;flex-wrap:wrap;gap:0 2px;font-size:10.5px;color:var(--mut);line-height:1.3}
.wnums span{white-space:nowrap} .wnums b{font-family:var(--font-mono);font-weight:600;color:var(--ink-2)}
.wnums span.over b{color:var(--rose)} .wnums span.under b{color:var(--amber)}
.wnums i{font-style:normal;color:var(--mut-2);margin:0 4px}
.note{font-size:10.5px;color:var(--mut);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:5px}
.note i{width:6px;height:6px;border-radius:50%;background:var(--amber);flex:none}
.note.off i{background:var(--rose)}
.note b{color:var(--ink-2)}
.hrs{padding:9px 12px;text-align:right;font-size:14px;font-weight:500;color:var(--ink);display:flex;flex-direction:column;justify-content:center;align-items:flex-end;font-family:var(--font-mono)}
.hrs small{font-size:10px;color:var(--mut-2);font-weight:600}
.hrs.low{color:var(--amber)}
.wfoot{grid-column:1/-1;padding:10px 12px;background:var(--surface-2);display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--mut)}
.wfoot b{color:var(--ink);font-family:var(--font-mono)}

.alerts{display:grid;gap:6px;margin-bottom:12px}
.alert{display:flex;align-items:flex-start;gap:10px;padding:9px 13px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1);font-size:12.5px;color:var(--ink-2);line-height:1.4}
.alert .ic{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;flex:none;font-size:11px;font-weight:800;margin-top:1px}
.alert.bad{border-color:color-mix(in srgb,var(--rose) 45%,var(--line))}.alert.bad .ic{background:var(--rose-soft);color:var(--rose)}
.alert.warn .ic{background:var(--amber-soft);color:var(--amber)}
.alert.info .ic{background:var(--info-soft);color:var(--info)}
.alert b{color:var(--ink);font-weight:700;white-space:nowrap}
.alert .rest{color:var(--mut);margin-left:8px}
.alert .when{margin-left:auto;font-size:11px;color:var(--acc);font-weight:650;white-space:nowrap;padding:2px 6px;border-radius:6px}
.alert .when:hover{background:var(--acc-soft)}
.alert .kind{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:1px 6px;border-radius:5px;margin-right:6px;vertical-align:1px}
.alert.bad .kind{background:var(--rose-soft);color:var(--rose)} .alert.warn .kind{background:var(--amber-soft);color:var(--amber)} .alert.info .kind{background:var(--info-soft);color:var(--info)}

/* ---------- DAY (slot grid) ----------
   Scale 1.6 px per minute: F/U 24px, PRO 32px, NEW 48px, hour 96px.
   The board scrolls inside the page; the pod band and column headers stay put. */
.daylayout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
@media (max-width:1700px){.daylayout{grid-template-columns:1fr}.side{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}
.dayboard{background:var(--surface);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--pane-border);border-radius:var(--r);box-shadow:var(--shadow-1);overflow:hidden;min-width:0}
.dtop{display:flex;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.dtop h2{font-size:22px;font-weight:500}
.dtop .sub{font-size:11.5px;color:var(--mut);margin-top:1px}
.dtop .sub b{color:var(--ink-2);font-weight:600}
.dtop .closedb{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--amber);color:#fff}
.dtop .right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.focuspill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--ink-2);border:1px solid var(--line-2);border-radius:999px;padding:3px 10px;background:var(--surface-2)}
.focuspill button{color:var(--acc);font-weight:700;font-size:11px}
.podseg{background:var(--surface-2)}
.podseg button{font-size:12px;padding:5px 12px}
.dlegend{padding:8px 18px;border-top:1px solid var(--line);display:flex;gap:14px;flex-wrap:wrap;font-size:10.5px;color:var(--mut);font-weight:600;align-items:center}
.dlegend span{display:inline-flex;align-items:center;gap:5px}
.dlegend kbd{font:600 10px/1 var(--font-mono);border:1px solid var(--line-2);border-bottom-width:2px;border-radius:4px;padding:1px 4px;color:var(--mut)}
.dlegend i{width:9px;height:9px;border-radius:2px;display:inline-block}
.dlegend i.cap{background:var(--t-fu-cap);border-left:2px dotted var(--t-fu)}
.dlegend i.ov{background:var(--rose-soft);border-left:2px solid var(--rose)}
.dlegend i.un{border:1.5px solid var(--mut-2);border-radius:50%;background:transparent}

.dscroll{overflow:auto;max-height:calc(100vh - var(--bar-h) - 150px);position:relative;scrollbar-width:thin}
.dgrid{display:grid;min-width:960px;position:relative}
/* sticky header rows */
.podband,.colh,.axis-h{position:sticky;z-index:5;background:var(--solid)}
.podband{top:0;padding:6px 10px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;min-width:0;font-size:11px;font-weight:700;color:var(--ink);letter-spacing:.2px}
.podband.axis-h{padding:0}
.podband .n{font-weight:500;color:var(--mut);font-size:11px}
.podband .n b{font-weight:600;color:var(--ink-2)}
.podband .mbadges{margin-left:2px}
.podband .fx{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--acc);padding:2px 8px;border-radius:6px;border:1px solid transparent}
.podband .fx:hover{background:var(--acc-soft)}
.podband.on{background:color-mix(in srgb,var(--acc) 9%,var(--solid))}
.colh{top:33px;padding:8px 10px 9px;border-bottom:1px solid var(--line-2);border-right:1px solid var(--line-3);min-width:0;display:flex;flex-direction:column;gap:3px}
.colh .lane{font-size:9.5px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:var(--mut-2)}
.colh .nm{font-weight:700;font-size:13px;color:var(--ink);display:flex;align-items:center;gap:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.colh .nm .av{width:20px;height:20px;font-size:8.5px}
.colh .nm span{font-weight:600;color:var(--mut);font-size:10.5px}
.colh .st{font-size:10.5px;color:var(--mut);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.colh .st.bad{color:var(--rose);font-weight:600} .colh .st.warn{color:var(--amber);font-weight:600}
.colh .st i{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:4px;vertical-align:0}
.colh .fill{font-size:11px;color:var(--mut);margin-top:2px;display:flex;flex-wrap:wrap;gap:0 2px;line-height:1.35}
.colh .fill .fi{white-space:nowrap}
.colh .fill b{font-weight:600;color:var(--ink-2)}
.colh .fill b.over{color:var(--rose)} .colh .fill b.under{color:var(--amber)}
.colh .fill .sep{color:var(--mut-2);margin:0 5px;opacity:.6}
.colh.rail{padding:8px 4px;align-items:center}
.gutter{background:transparent;border:0}
.podband.gutter,.colh.gutter{background:var(--solid);border-bottom-color:transparent;border-right:0}

.axisc{position:relative;border-right:1px solid var(--line)}
.axisc div{position:absolute;right:8px;font-size:10.5px;font-weight:500;color:var(--mut-2);transform:translateY(-50%)}
.scol{position:relative;border-right:1px solid var(--line-3);text-align:left;padding:0;
  background:repeating-linear-gradient(180deg,transparent 0 47px,var(--line-3) 47px 48px,transparent 48px 95px,var(--line) 95px 96px)}
.scol.closed{background:repeating-linear-gradient(135deg,var(--amber-soft) 0 8px,transparent 8px 18px)}
.scol.rail{background:var(--surface-2)}
.raillabel{position:absolute;top:8px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10px;color:var(--mut);font-weight:600}
.raillabel .v{writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.3px;white-space:nowrap}
.raillabel .pct{font-family:var(--font-mono);font-weight:600;color:var(--ink-2)}
.lunch{position:absolute;left:0;right:0;background:repeating-linear-gradient(135deg,var(--line-3) 0 5px,transparent 5px 10px);opacity:.9;pointer-events:none}
/* designed-but-open capacity: a faint band, dotted left rail, no border, no text unless the run is tall */
.cap{position:absolute;left:5px;right:5px;border-radius:4px;border-left:2px dotted transparent;pointer-events:none}
.cap.fu{background:var(--t-fu-cap);border-left-color:var(--t-fu)}
.cap.new{background:var(--t-new-cap);border-left-color:var(--t-new)}
.cap.pro{background:var(--t-pro-cap);border-left-color:var(--t-pro)}
.cap.star{background:transparent;border-left-style:dashed;opacity:.7}
.cap.gone{opacity:.35}
.caplbl{position:absolute;left:5px;right:5px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--mut-2);pointer-events:none;letter-spacing:.2px}
/* a booked visit */
.vis{position:absolute;left:5px;right:5px;border-radius:5px;padding:0 7px 0 8px;font-size:11.5px;font-weight:600;line-height:1.15;color:var(--ink);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center;gap:6px;border-left:3px solid transparent;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.vis.fu{background:var(--t-fu-soft);border-left-color:var(--t-fu)}
.vis.new{background:var(--t-new-soft);border-left-color:var(--t-new)}
.vis.pro{background:var(--t-pro-soft);border-left-color:var(--t-pro)}
.vis.tall{align-items:flex-start;padding-top:5px;flex-direction:column;gap:1px;white-space:normal}
.vis .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.vis .tag{font-size:9px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;flex:none;padding:0 4px;border-radius:3px;line-height:1.5}
.vis.new .tag{background:var(--t-new);color:#fff} .vis.pro .tag{background:var(--t-pro);color:#fff}
.vis small{font-weight:500;color:var(--mut);font-size:10px;flex:none}
.vis .unc{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--mut-2);flex:none;margin-left:auto}
.vis.over{background:var(--rose-soft);border-left-color:var(--rose);color:var(--rose)}
.vis.over .nm:before{content:"+ ";font-weight:800}
.vis.gone{background:var(--rose-soft);border-left-color:var(--rose);color:var(--rose)}
.vis:hover{filter:brightness(.97);z-index:3}
.gonebox{position:absolute;left:4px;right:4px;border-radius:8px;background:repeating-linear-gradient(135deg,var(--amber-soft) 0 5px,transparent 5px 10px);border:1.5px dashed var(--amber);z-index:2;pointer-events:none}
.gonebox span{position:absolute;top:4px;left:6px;font-size:10px;font-weight:700;color:var(--amber);background:var(--solid);padding:1px 5px;border-radius:4px}
.offcol{position:absolute;inset:6px;border-radius:10px;background:repeating-linear-gradient(135deg,var(--hatch) 0 6px,transparent 6px 12px);border:1.5px dashed var(--rose);display:grid;place-items:center;text-align:center;color:var(--rose);font-weight:700;font-size:12px;padding:12px}
.offcol small{display:block;font-weight:500;color:var(--mut);margin-top:4px;font-size:11px}
.offcol b{display:block;font-size:11px;margin-top:6px;color:var(--rose)}
/* ASC session block: case flow, not clock position */
.sess{position:absolute;left:5px;right:5px;border-radius:8px;background:var(--t-asc-cap);border:1px solid color-mix(in srgb,var(--t-asc) 30%,transparent);display:flex;flex-direction:column;overflow:visible}
.sess .sh{padding:5px 8px;font-size:10px;font-weight:700;color:var(--t-asc);letter-spacing:.4px;text-transform:uppercase;display:flex;justify-content:space-between;border-bottom:1px dashed color-mix(in srgb,var(--t-asc) 35%,transparent)}
.sess .sh.over{color:var(--rose)}
.case{margin:3px 4px 0;border-radius:5px;background:var(--solid);border-left:3px solid var(--t-asc);padding:0 7px;font-size:11.5px;font-weight:600;line-height:1.15;overflow:hidden;display:flex;align-items:center;gap:6px;flex:none;box-shadow:0 1px 2px rgba(20,30,50,.08)}
.case .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.case .k{font-size:10px;font-weight:700;color:var(--t-asc);flex:none;letter-spacing:.2px}
.case small{font-weight:500;color:var(--mut-2);font-size:10px;flex:none}
.case.tall{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px}
.case.anes{border-left-color:var(--info)} .case.anes .k{color:var(--info)}
.case .an{font-size:9.5px;font-weight:700;color:var(--info);background:var(--info-soft);padding:0 5px;border-radius:3px;flex:none}
.case.over{background:var(--rose-soft);border-left-color:var(--rose);color:var(--rose)} .case.over .k{color:var(--rose)}
.case.open{background:transparent;box-shadow:none;border-left:2px dotted var(--t-asc);color:var(--mut-2);font-weight:600;font-size:10.5px}
.case.dock{background:var(--info-soft);border-left-color:var(--info);color:var(--info);font-size:10.5px}
.capline{position:absolute;left:0;right:0;border-top:2px dashed var(--rose);font-size:9.5px;font-weight:800;color:var(--rose);text-align:right;padding-right:6px;pointer-events:none;z-index:2}
.nowline{position:absolute;left:0;right:0;height:2px;background:var(--acc);z-index:4;pointer-events:none}
.nowline:before{content:"";position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--acc)}

/* ---------- DAY overview: one card per pod ---------- */
.ov{padding:10px 18px 14px;display:grid;gap:10px}
.ov-ruler{position:relative;height:16px;margin-left:calc(200px + 14px + 118px);margin-right:calc(230px + 14px);font-size:10px;color:var(--mut-2);font-family:var(--font-mono)}
.ov-ruler span{position:absolute;transform:translateX(-50%)}
.ov-card{display:grid;grid-template-columns:200px 1fr 230px;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);text-align:left;transition:var(--ease);width:100%}
.ov-card:hover{border-color:var(--acc);box-shadow:var(--shadow-1)}
.ov-card.bad{box-shadow:inset 3px 0 0 var(--rose)} .ov-card.warn{box-shadow:inset 3px 0 0 var(--amber)}
.ov-title{font-family:var(--font-serif);font-size:18px;font-weight:500;color:var(--ink);line-height:1.1}
.ov-meta{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:11px;color:var(--mut)}
.ov-meta .cnt b{color:var(--ink-2);font-weight:600}
.ov-away{margin-top:6px;font-size:11px;font-weight:600;color:var(--rose)}
.ov-alerts{margin-top:6px;display:grid;gap:2px;font-size:10.5px;color:var(--mut);line-height:1.3}
.ov-alerts span{display:flex;gap:5px;align-items:flex-start}
.ov-alerts i{width:6px;height:6px;border-radius:50%;flex:none;margin-top:4px;background:var(--amber)}
.ov-alerts .bad i{background:var(--rose)}
.ov-alerts .more{color:var(--mut-2)}
.ov-lanes{display:grid;gap:5px;min-width:0}
.ov-lane{display:grid;grid-template-columns:118px 1fr;gap:0;align-items:center}
.ov-who{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--mut);min-width:0;white-space:nowrap;overflow:hidden}
.ov-who .av{width:18px;height:18px;font-size:8px}
.ov-who .av.asc{background:var(--t-asc);color:#fff;font-size:7.5px;border:0}
.ov-who b{color:var(--ink);font-weight:700}
.ov-tl{position:relative;height:22px;border-radius:5px;background:var(--line-3);overflow:hidden}
.ov-tl i{position:absolute;top:0;bottom:0;display:block}
.ov-hl{width:1px;background:var(--line)}
.ov-lunch{background:repeating-linear-gradient(135deg,var(--line) 0 3px,transparent 3px 7px);opacity:.7}
.ov-cap{border-radius:2px}
.ov-cap.fu{background:var(--t-fu-cap)} .ov-cap.new{background:var(--t-new-cap)} .ov-cap.pro{background:var(--t-pro-cap)}
.ov-cap.star{opacity:.5}
.ov-vis{border-radius:2px;top:4px!important;bottom:4px!important;box-shadow:inset 1px 0 0 rgba(255,255,255,.5)}
.ov-vis.fu{background:var(--t-fu)} .ov-vis.new{background:var(--t-new)} .ov-vis.pro{background:var(--t-pro)}
.ov-vis.over{background:var(--rose);top:1px!important;bottom:12px!important}
.ov-vis.gone{background:var(--rose);opacity:.7}
.ov-gone{background:repeating-linear-gradient(135deg,var(--amber-soft) 0 4px,transparent 4px 8px);border:1px dashed var(--amber);border-radius:4px}
.ov-sess{background:var(--t-asc-cap);border:1px dashed color-mix(in srgb,var(--t-asc) 40%,transparent);border-radius:4px}
.ov-case{background:var(--t-asc);top:4px!important;bottom:4px!important;border-radius:2px;box-shadow:inset 1px 0 0 rgba(255,255,255,.6)}
.ov-case.anes{background:var(--info)} .ov-case.over{background:var(--rose)}
.ov-off{position:absolute;inset:0;display:flex;align-items:center;padding:0 10px;font-size:11px;font-weight:600;color:var(--rose);background:repeating-linear-gradient(135deg,var(--hatch) 0 5px,transparent 5px 10px)}
.ov-off.amber{color:var(--amber);background:repeating-linear-gradient(135deg,var(--amber-soft) 0 5px,transparent 5px 10px)}
.ov-off b{margin-left:4px}
.ov-adm{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding:0 8px;font-size:11px;color:var(--mut-2);font-weight:600;background:repeating-linear-gradient(135deg,var(--hatch) 0 4px,transparent 4px 8px);border-left:1px dashed var(--mut-2)}
.ov-fills{display:grid;gap:6px;font-size:11px;color:var(--mut);align-content:center}
.ov-fills .fill{display:flex;flex-wrap:wrap;gap:0 2px;line-height:1.35}
.ov-fills .fill b{font-weight:600;color:var(--ink-2)} .ov-fills .fill b.over{color:var(--rose)} .ov-fills .fill b.under{color:var(--amber)}
.ov-fills .fill .sep{color:var(--mut-2);margin:0 5px;opacity:.6}
.ov-open{font-size:11.5px;font-weight:700;color:var(--acc)}
@media (max-width:1400px){.ov-card{grid-template-columns:170px 1fr 200px}.ov-ruler{margin-left:calc(170px + 14px + 118px);margin-right:calc(200px + 14px)}}

/* location lens: stats, load strips, load column */
.lens{margin-right:4px}
.ov-stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:11px;color:var(--mut)}
.ov-stats b{color:var(--ink-2);font-weight:600;font-family:var(--font-mono)}
.ov-card.quiet{opacity:.55;cursor:default}
.ov-card.quiet:hover{border-color:var(--line);box-shadow:none}
.ov-lane.load{margin-top:2px}
.ov-load{position:relative;height:30px;border-radius:5px;background:var(--line-3);overflow:hidden;border-bottom:1px solid var(--line)}
.ov-load i{position:absolute;bottom:0;display:block;background:var(--acc);opacity:.55;border-right:1px solid var(--solid);border-radius:2px 2px 0 0;transition:var(--ease)}
.ov-load i b{position:absolute;left:0;right:0;top:-13px;text-align:center;font-size:9.5px;font-weight:600;color:var(--ink-2);font-family:var(--font-mono)}
.ov-load i:hover{opacity:.85}
.colh.loadh{align-items:center;text-align:center}
.colh.loadh .nm{font-size:10.5px;color:var(--mut);justify-content:center}
.loadcol{background:var(--surface-2)!important;border-right:1px solid var(--line)}
.loadcol .lb{position:absolute;left:0;right:0;display:flex;align-items:center;padding:0 6px;gap:5px;border-bottom:1px dotted var(--line)}
.loadcol .lb i{display:block;height:8px;border-radius:2px;background:var(--acc);opacity:.45;flex:none}
.loadcol .lb b{font-size:10.5px;font-weight:600;color:var(--ink-2);font-family:var(--font-mono);margin-left:auto}

/* clickable rows and headers */
.click{cursor:pointer}
.ftab tr.click:hover td{background:var(--acc-soft)}
.att .row.click:hover,.outrow.click:hover{background:var(--surface-2);border-radius:6px}
.colh.click:hover{background:var(--acc-soft)}
.scol{cursor:default}
.vis,.case{cursor:default}
.tip .tv{font-size:12px;color:var(--ink-2);margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.tip .tv b{color:var(--ink);font-family:var(--font-mono);font-weight:600}

/* side rail */
.side{display:grid;gap:12px;align-content:start}
.card{background:var(--surface);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--pane-border);border-radius:var(--r);box-shadow:var(--shadow-1);padding:13px 15px}
.card h4{font-size:12.5px;font-weight:700;color:var(--ink);display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.card h4 span{font-size:10.5px;color:var(--mut-2);text-transform:uppercase;letter-spacing:.5px;font-weight:700}
.outrow{display:flex;align-items:center;gap:9px;padding:6px 0;border-top:1px solid var(--line);font-size:12px}
.outrow:first-of-type{border-top:0}
.outrow .av{width:22px;height:22px;font-size:9px}
.outrow .t{flex:1;min-width:0}
.outrow .t b{display:block;color:var(--ink);font-weight:700}
.outrow .t span{color:var(--mut);font-size:11px}
.outrow .tag{font-size:10px;font-weight:700;padding:2px 7px;border-radius:6px;white-space:nowrap}
.tag.off{background:var(--rose-soft);color:var(--rose)} .tag.part{background:var(--amber-soft);color:var(--amber)}
.empty{font-size:12px;color:var(--mut-2);padding:6px 0}
.ftab{width:100%;border-collapse:collapse;font-size:11.5px}
.ftab th{font-size:9.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--mut-2);font-weight:700;text-align:right;padding:2px 4px}
.ftab th:first-child{text-align:left}
.ftab td{padding:4px 4px;border-top:1px solid var(--line);text-align:right;font-weight:500;color:var(--ink-2)}
.ftab td:first-child{text-align:left;font-weight:700;color:var(--ink);font-family:var(--font-ui)}
.ftab td.over{color:var(--rose);font-weight:600} .ftab td.under{color:var(--amber);font-weight:600} .ftab td.none{color:var(--mut-2)}
.hint{font-size:11.5px;color:var(--mut);line-height:1.5}
/* attention list in the rail: kind tag, person, message */
.att{display:grid;gap:4px}
.att .row{display:grid;gap:2px;padding:7px 0 7px 10px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-2);line-height:1.35;position:relative}
.att .row:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:2px;background:var(--amber)}
.att .row.bad:before{background:var(--rose)} .att .row.info:before{background:var(--line-2)}
.att .row.info .lead{font-weight:500;color:var(--mut)}
.att .row .lead{font-weight:600;color:var(--ink)}
.att .row:first-child{border-top:0}
.att .row .kind{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:2px 6px;border-radius:5px;white-space:nowrap;margin-top:1px}
.att .row.bad .kind{background:var(--rose-soft);color:var(--rose)} .att .row.warn .kind{background:var(--amber-soft);color:var(--amber)} .att .row.info .kind{background:var(--info-soft);color:var(--info)}
.att .row b{color:var(--ink);font-weight:700}
.att .row .msg{color:var(--mut);display:block;font-size:11.5px}
.pending{font-size:10px;font-weight:700;color:var(--amber);margin-left:6px}

/* ---------- drawer ---------- */
.scrim{position:fixed;inset:0;background:rgba(3,6,14,.45);z-index:900;opacity:0;pointer-events:none;transition:opacity .18s ease}
.scrim.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,96vw);z-index:901;background:var(--solid);border-left:1px solid var(--line-2);box-shadow:var(--shadow-3);
  transform:translateX(102%);transition:transform .22s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
.drawer.open{transform:none}
.dh{padding:16px 20px 12px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.dh .row{display:flex;align-items:center;gap:10px}
.dh h3{font-size:18px;font-weight:500}
.dh .sub{font-size:12px;color:var(--mut);margin-top:2px}
.dbody{padding:16px 20px;display:grid;gap:14px;overflow:auto}
.fld{display:grid;gap:5px}
.fld label{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;color:var(--mut)}
.fld select,.fld input{height:34px;border:1px solid var(--line-2);border-radius:9px;background:var(--surface-2);color:var(--ink);font:inherit;font-size:12.5px;padding:0 10px;outline:none}
.fld select:focus,.fld input:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}
.fld .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kind{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.kind button{border:1px solid var(--line-2);border-radius:9px;padding:8px 6px;font-size:11.5px;font-weight:650;color:var(--ink-2);background:var(--surface-2)}
.kind button.on{border-color:var(--acc);background:var(--acc-soft);color:var(--ink)}
.std{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px}
.std .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;color:var(--mut);margin-bottom:6px}
.std .tl{height:26px}
.std .times{display:flex;justify-content:space-between;font-size:10.5px;color:var(--mut-2);margin-top:4px}
.std .fills{margin-top:8px}
.dfoot{margin-top:auto;padding:14px 20px;border-top:1px solid var(--line);background:var(--surface-2);display:flex;gap:8px;justify-content:flex-end}

/* production extras */
.menu-wrap{position:relative}
.menu{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;background:var(--solid);border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--shadow-2);padding:6px;z-index:40}
.menu button{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:8px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.menu button:hover{background:var(--acc-soft);color:var(--ink)}
body.legacy-on .bar, body.legacy-on .wrap, body.legacy-on .scrim, body.legacy-on .drawer{display:none}
body.legacy-on #legacy{display:block}
#legacy{display:none}
#legacy .backbar{padding:10px 22px;display:flex;align-items:center;gap:10px;background:var(--surface);border-bottom:1px solid var(--pane-border)}
