/* Show day and Site control. NO LOCAL PALETTE: every colour is a --platform-*
   token or a color-mix of one, so the light theme and the brand swap reach it. */
main#day,main#site{max-inline-size:84rem}
.day-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:24px;align-items:start}
.day-head .page-title{font-size:clamp(30px,3.4vw,46px)}
.lede{margin-bottom:24px}

/* ── the day strip: one chip per day, each carrying its own 24-hour shape ── */
.strip-wrap{margin:0 0 28px}
.strip{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;scroll-snap-type:x proximity;
}
.chip{flex:none;scroll-snap-align:start;display:grid;gap:6px;inline-size:118px;padding:10px 11px 9px;
  text-align:left;cursor:pointer;color:var(--platform-ink);background:var(--platform-panel);
  border:1px solid var(--platform-line);border-radius:var(--platform-radius);font:inherit}
.chip:hover{border-color:color-mix(in srgb,var(--platform-accent) 60%,var(--platform-line))}
.chip:active{background:var(--platform-bg)}
.chip:focus-visible{outline:2px solid var(--platform-accent);outline-offset:2px}
.chip[aria-pressed="true"]{border-color:var(--platform-accent);
  background:color-mix(in srgb,var(--platform-accent) 12%,var(--platform-panel))}
.chip-day{font:600 10px var(--platform-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--platform-dim)}
.chip-date{font-size:15px;font-weight:600;letter-spacing:-.01em}
.chip svg{inline-size:100%;block-size:26px;display:block}
.chip-cov{font:10px var(--platform-mono);color:var(--platform-dim);font-variant-numeric:tabular-nums}
.chip-cov.is-gap{color:var(--platform-warn)}

/* ── lead ── */
.lead-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);gap:12px;margin-bottom:12px}
.hero{border:1px solid var(--platform-line);border-radius:var(--platform-radius);background:
  radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--platform-accent) 16%,var(--platform-panel)),var(--platform-panel) 60%);
  padding:clamp(22px,3vw,34px);display:grid;align-content:space-between;gap:18px;min-inline-size:0}
.hero .reading{font:600 clamp(72px,9vw,128px)/.88 var(--platform-ui);letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.hero .reading.is-absent{font-size:clamp(26px,3vw,36px);letter-spacing:-.02em;color:var(--platform-dim)}
.hero-cap{font-size:15px;color:var(--platform-dim);margin:0;max-inline-size:34ch}
.hero-cap b{color:var(--platform-ink);font-weight:600}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.stat{border:1px solid var(--platform-line);border-radius:var(--platform-radius);background:var(--platform-panel);
  padding:16px 18px;display:grid;align-content:start;gap:4px;min-inline-size:0}
.stat b{font:600 clamp(26px,2.6vw,34px)/1.05 var(--platform-ui);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stat b.is-absent{font-size:16px;letter-spacing:0;color:var(--platform-dim);font-weight:500}
.stat i{font-style:normal;font:10px var(--platform-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--platform-dim)}
.stat span{font-size:12.5px;color:var(--platform-dim)}
.cov{display:flex;align-items:center;gap:8px;font:10.5px var(--platform-mono);color:var(--platform-dim)}
.cov-bar{flex:1;block-size:4px;border-radius:2px;background:var(--platform-line);overflow:hidden;max-inline-size:120px}
.cov-bar>span{display:block;block-size:100%;background:var(--platform-dim)}
.cov.is-partial .cov-bar>span{background:var(--platform-warn)}

/* ── floor + hours ── */
.stage{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:12px}
.panel{border:1px solid var(--platform-line);border-radius:var(--platform-radius);background:var(--platform-panel);
  padding:18px;min-inline-size:0;display:grid;gap:12px;align-content:start}
.panel-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;justify-content:space-between}
.panel-head h2{margin:0;font-size:16px}
.panel-sub{margin:0;font-size:13px;color:var(--platform-dim);max-inline-size:70ch}
.floor{position:relative;border-radius:4px;overflow:hidden;background:var(--platform-bg);aspect-ratio:16/10}
.floor canvas{position:absolute;inset:0;inline-size:100%;block-size:100%;display:block;touch-action:none}
.floor.is-drawing canvas{cursor:crosshair}
.floor-tip{position:absolute;pointer-events:none;padding:6px 9px;border-radius:4px;font:11px var(--platform-mono);
  background:var(--platform-panel);border:1px solid var(--platform-line);color:var(--platform-ink);white-space:nowrap;
  transform:translate(12px,12px)}
.ramp{display:flex;align-items:center;gap:10px;font:10.5px var(--platform-mono);color:var(--platform-dim);flex-wrap:wrap}
.ramp canvas{inline-size:140px;block-size:8px;border-radius:2px}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.toolbar .btn{min-block-size:36px;padding:0 12px;font-size:13px}
.measure{border:1px solid var(--platform-accent);border-radius:var(--platform-radius);padding:14px 16px;display:grid;gap:8px;
  background:color-mix(in srgb,var(--platform-accent) 7%,var(--platform-panel))}
.measure-figs{display:flex;gap:28px;flex-wrap:wrap}
.measure-figs b{display:block;font:600 24px var(--platform-ui);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.measure-figs i{display:block;font-style:normal;font:10px var(--platform-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--platform-dim)}
/* Unit and refusal reason on their own lines: run together they read as one phrase. */
.measure-figs>div{display:grid;gap:4px;align-content:start;max-inline-size:28ch;min-inline-size:0}
.measure-figs>div>*:not(b):not(i){display:block;font-size:12px;line-height:1.45;color:var(--platform-dim);overflow-wrap:anywhere}

.hours svg{inline-size:100%;block-size:auto;display:block;overflow:visible}
.hours .axis text,.mini text{font:10px var(--platform-mono);fill:var(--platform-dim)}
.hours .grid line{stroke:var(--platform-line);stroke-width:1}
.hours .gap{fill:url(#hatch)}
.hours .area{fill:color-mix(in srgb,var(--platform-accent) 28%,transparent);stroke:none}
.hours .line{fill:none;stroke:var(--platform-accent);stroke-width:2}
.hours .peak{fill:none;stroke:var(--platform-ink);stroke-width:1.4;stroke-dasharray:3 3}
.hours .dw{fill:color-mix(in srgb,var(--platform-ink) 16%,transparent)}
.hours .odd{fill:color-mix(in srgb,var(--platform-warn) 45%,transparent);stroke:var(--platform-warn);stroke-width:1}
.hours .odd-mark{font:700 11px var(--platform-mono);fill:var(--platform-warn)}
.sw.d{background:color-mix(in srgb,var(--platform-ink) 16%,transparent)}
.refusal-line{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:12.5px;color:var(--platform-dim);
  border:1px solid var(--platform-warn);border-radius:var(--platform-radius);padding:10px 12px}
.refusal-line b{color:var(--platform-ink)}
.refusal-line svg{inline-size:16px;block-size:16px;flex:none;fill:none;stroke:var(--platform-warn);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.hatch-line{stroke:color-mix(in srgb,var(--platform-warn) 55%,transparent);stroke-width:1.5}
.ev line{stroke:var(--platform-ink);stroke-width:1}
.ev circle{fill:var(--platform-panel);stroke:var(--platform-ink);stroke-width:1.4}
.legend{display:flex;gap:16px;flex-wrap:wrap;font:11px var(--platform-mono);color:var(--platform-dim)}
.legend span{display:inline-flex;gap:6px;align-items:center}
.sw{inline-size:14px;block-size:8px;border-radius:2px;display:inline-block}
.sw.a{background:color-mix(in srgb,var(--platform-accent) 28%,transparent);border-top:2px solid var(--platform-accent)}
.sw.p{border-top:2px dashed var(--platform-ink);block-size:0}
.sw.w{background:color-mix(in srgb,var(--platform-warn) 45%,transparent);outline:1px solid var(--platform-warn)}
.sw.g{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--platform-warn) 55%,transparent) 0 2px,transparent 2px 5px)}

/* ── way-ins ── */
.ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px}
/* Native day evidence has several independent zones; keep it readable instead
   of squeezing the whole table into one of the totals cards. */
#zone-figs{align-items:start}
#native-zones{grid-column:1/-1;min-width:0}
#native-zones .panel-head h3{margin:0}
.native-rows{list-style:none;margin:16px 0 0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:24px}
.native-rows>li{min-width:0;border-top:1px solid var(--platform-line);padding-top:12px}
.native-rows .why+.why{margin-top:8px}
.way h3{font-size:15px;margin:0}
.way-figs{display:flex;gap:22px;flex-wrap:wrap}
.way-figs{gap:16px!important}
.way-figs b{display:block;font:600 22px var(--platform-ui);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.way-figs b.is-absent{font-size:15px;font-weight:500;color:var(--platform-dim);letter-spacing:0}
.way-figs i{font-style:normal;font:10px var(--platform-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--platform-dim)}
.mini{inline-size:100%;block-size:64px;display:block}
.mini .in{fill:var(--platform-accent)}
.mini .out{fill:color-mix(in srgb,var(--platform-ink) 55%,transparent)}
.mini .mgap{fill:url(#hatch)}
.mini .mid{stroke:var(--platform-line)}
.live{font-size:12.5px;color:var(--platform-dim);margin:0;border-top:1px solid var(--platform-line);padding-top:10px}
.live b{color:var(--platform-ink);font-weight:600}

/* ── refusals as figures ── */
.why{font-size:12.5px;color:var(--platform-dim);margin:0;max-inline-size:62ch}
.tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{font:10px var(--platform-mono);letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:999px;
  border:1px solid var(--platform-line);color:var(--platform-dim);white-space:nowrap}
.tag.is-warn{border-color:var(--platform-warn);color:var(--platform-warn)}
.tag.is-red{border-color:var(--platform-red);color:var(--platform-red)}

/* ── timeline of changes ── */
.changes{list-style:none;margin:0;padding:0;display:grid;gap:0}
.changes li{display:grid;grid-template-columns:72px minmax(0,auto) minmax(0,1fr);gap:12px;padding:9px 0;
  border-top:1px solid var(--platform-line);align-items:baseline;font-size:13px}
.changes time{font:12px var(--platform-mono);color:var(--platform-dim);font-variant-numeric:tabular-nums}
.changes p{margin:0;color:var(--platform-dim);overflow-wrap:anywhere}

/* ── exports ── */
.manifest{inline-size:100%;border-collapse:collapse;font-size:12.5px}
.manifest th{text-align:center;font:600 10px var(--platform-mono);letter-spacing:.12em;text-transform:uppercase;
  color:var(--platform-dim);padding:6px 8px;border-bottom:1px solid var(--platform-line)}
.manifest td{padding:8px;border-bottom:1px solid var(--platform-line);vertical-align:top}
.manifest td.n{text-align:right;font-family:var(--platform-mono);font-variant-numeric:tabular-nums}
.manifest code{font:11px var(--platform-mono);color:var(--platform-dim);overflow-wrap:anywhere}
.manifest tr[aria-current="true"] td{background:color-mix(in srgb,var(--platform-accent) 8%,transparent)}
.scroll-x{overflow-x:auto}

.section-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:40px 0 14px}
.section-h h2{margin:0}
.section-h p{margin:0;font-size:13px;color:var(--platform-dim)}

/* ── health ── */
.alert-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--platform-red);
  border-radius:var(--platform-radius);color:var(--platform-ink);font-size:13px;text-decoration:none!important;background:var(--platform-panel)}
.alert-pill svg{inline-size:15px;block-size:15px;flex:none;fill:none;stroke:var(--platform-red);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

@media (max-width:1100px){
  .stage{grid-template-columns:minmax(0,1fr)}
  .lead-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:720px){
  .day-head{grid-template-columns:minmax(0,1fr)}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .changes li{grid-template-columns:60px minmax(0,1fr)}
  .changes li p{grid-column:1/-1}
}
@media (max-width:420px){.stats{grid-template-columns:minmax(0,1fr)}}

.busy{border-top:1px solid var(--platform-line);padding-top:12px;display:grid;gap:8px}
.busy h3{font-size:13px;margin:0;color:var(--platform-dim);font-weight:600}
.busy ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.busy li{display:grid;grid-template-columns:48px minmax(60px,1fr) auto minmax(0,1.6fr);gap:10px;align-items:center;font-size:12.5px;color:var(--platform-dim)}
.busy time{font:600 13px var(--platform-mono);color:var(--platform-ink)}
.busy b{min-inline-size:2ch;text-align:right;font:600 18px var(--platform-ui);color:var(--platform-ink);font-variant-numeric:tabular-nums}
.busy-bar{block-size:8px;border-radius:2px;background:var(--platform-line);overflow:hidden}
.busy-bar>span{display:block;block-size:100%;background:var(--platform-accent)}
@media (max-width:520px){.busy li{grid-template-columns:48px minmax(0,1fr) auto}.busy li>span:last-child{grid-column:1/-1}}
