/* itsdown.ca — "Highway 511 variable-message sign" world.
   Operate surface: dark board, one committed amber, honest state colours.
   Type: Overpass (FHWA-derived) + Overpass Mono. Mobile-first. */
:root{
  --bg:#0b0d0e; --panel:#14181a; --panel2:#191e21; --edge:#272d30;
  --amber:#ffb300; --amber-ink:#2a2208; --white:#f1f4f3; --txt:#c9d0d1;
  --mut:#9aa1a3; --red:#ff4f3f; --green:#3ad98c;
  --radius:7px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--white);font-family:"Overpass",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;line-height:1.5;font-size:16px}
a{color:inherit;text-decoration:none}
.wrap{max-width:560px;margin:0 auto;padding-bottom:48px}
.mono{font-family:"Overpass Mono",ui-monospace,monospace}

/* ---- gantry header ---- */
.gantry{position:sticky;top:0;z-index:20;background:linear-gradient(#181c1e,#111517);
  border-bottom:3px solid var(--amber)}
.gantry-in{max-width:560px;margin:0 auto;padding:13px 16px 12px}
.gantry .top{display:flex;justify-content:space-between;align-items:center;
  font-family:"Overpass Mono";font-size:12px;letter-spacing:.12em;color:var(--mut);text-transform:uppercase}
.live{display:inline-flex;align-items:center;gap:7px;color:var(--white)}
.live::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green)}
.brand{display:flex;align-items:baseline;gap:10px;margin-top:8px}
.brand .logo{font-weight:900;font-size:30px;letter-spacing:.005em;text-transform:uppercase;line-height:1}
.brand .logo b{color:var(--amber)}
.brand .by{font-family:"Overpass Mono";font-size:12px;color:var(--mut);letter-spacing:.1em;text-transform:uppercase}

/* ---- problem strip ---- */
.strip{background:var(--amber);color:var(--amber-ink);padding:11px 16px;display:flex;
  align-items:center;gap:10px;font-weight:800;font-size:15px;letter-spacing:.01em;text-transform:uppercase}
.strip.clear{background:var(--panel2);color:var(--green);border-bottom:1px solid var(--edge)}
.strip .dot{width:11px;height:11px;border-radius:50%;background:var(--red);flex:0 0 auto}
.strip.clear .dot{background:var(--green)}

/* ---- search ---- */
.search{margin:14px 16px 10px;display:flex;align-items:center;gap:10px;background:#0f1314;
  border:1.5px solid var(--edge);border-radius:var(--radius);padding:13px 14px}
.search .ic{color:var(--amber);font-size:17px}
.search input{all:unset;flex:1;font-family:"Overpass Mono";font-size:15px;color:var(--txt);min-width:0}
.search input::placeholder{color:var(--mut)}

/* ---- category filters ---- */
.filters{display:flex;gap:8px;overflow-x:auto;padding:4px 16px 12px;-webkit-overflow-scrolling:touch}
.chip{flex:0 0 auto;font-size:13px;font-weight:600;letter-spacing:.03em;padding:8px 14px;border-radius:20px;
  border:1px solid var(--edge);color:var(--mut);background:var(--panel)}
.chip.on,.chip:focus-visible{background:var(--amber);color:var(--amber-ink);border-color:var(--amber);font-weight:800;outline:none}

/* ---- section heads ---- */
.shead{display:flex;align-items:center;gap:10px;padding:10px 16px 8px;
  font-family:"Overpass Mono";font-size:13px;letter-spacing:.14em;color:var(--mut);text-transform:uppercase}
.shead::after{content:"";flex:1;height:1px;background:var(--edge)}

/* ---- board rows ---- */
.board{padding:0 12px}
.vms{display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:center;
  background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);padding:13px 14px;margin-bottom:9px}
.vms.alert{border-color:#4a2a26;background:linear-gradient(var(--panel2),var(--panel))}
.vms .svc{font-weight:800;font-size:19px;letter-spacing:.01em;text-transform:uppercase}
.vms .meta{grid-column:1;font-family:"Overpass Mono";font-size:12.5px;color:var(--mut);
  display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.shield{background:var(--amber-ink);color:var(--amber);font-weight:600;font-size:12px;
  padding:2px 7px;border-radius:3px;letter-spacing:.04em}

/* ---- the illuminated status sign (signature move) ---- */
.led{font-weight:900;letter-spacing:.07em;text-transform:uppercase;text-align:center;
  padding:11px 13px;border-radius:5px;min-width:94px;font-size:15px;
  background-color:#060708;border:1px solid var(--edge);
  background-image:radial-gradient(circle at 2px 2px, rgba(255,255,255,.09) 1px, transparent 1.6px);
  background-size:4px 4px}
.vms .led{grid-column:2;grid-row:1/3;align-self:center}
.led.out{color:var(--red);text-shadow:0 0 12px rgba(255,79,63,.55);border-color:#4a211c}
.led.deg{color:var(--amber);text-shadow:0 0 11px rgba(255,179,0,.45);border-color:#49390e}
.led.ok{color:var(--green)}

/* ---- sparkline ---- */
.spark{display:flex;gap:2px;height:22px;align-items:flex-end;grid-column:2;margin-top:2px}
.spark i{width:3px;background:#333b3d;border-radius:1px;display:block}
.spark.hot i{background:var(--red)} .spark.warm i{background:var(--amber)}

/* ---- status page verdict ---- */
.crumb{font-family:"Overpass Mono";font-size:12px;color:var(--mut);padding:12px 16px 4px;
  letter-spacing:.05em;text-transform:uppercase}
.crumb a{color:var(--amber)}
.verdict{margin:6px 16px 0;background:radial-gradient(130% 100% at 50% 0,#1a1f22,#0e1113);
  border:1px solid var(--edge);border-radius:12px;padding:24px 18px 20px;text-align:center}
.verdict.out{border-color:#3a211d}.verdict.deg{border-color:#49390e}
.verdict .svc{font-family:"Overpass Mono";font-size:14px;letter-spacing:.28em;color:var(--mut);text-transform:uppercase}
.sign{font-weight:900;font-size:60px;line-height:.95;letter-spacing:.02em;margin:10px 0 6px;text-transform:uppercase}
.sign.out{color:var(--red);text-shadow:0 0 26px rgba(255,79,63,.5)}
.sign.deg{color:var(--amber);text-shadow:0 0 22px rgba(255,179,0,.42)}
.sign.ok{color:var(--green)}
.answer{font-weight:700;font-size:17px;color:var(--white);margin-top:4px}
.answer b.out{color:var(--red)} .answer b.deg{color:var(--amber)} .answer b.ok{color:var(--green)}
.vtime{font-family:"Overpass Mono";font-size:12.5px;color:var(--mut);margin-top:10px}

/* ---- blocks / signals / charts ---- */
.block{margin:16px}
.block h2{font-family:"Overpass Mono";font-size:13px;letter-spacing:.13em;color:var(--mut);
  text-transform:uppercase;margin-bottom:11px;display:flex;justify-content:space-between}
.sig{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:16px}
.card{background:var(--panel);border:1px solid var(--edge);border-radius:9px;padding:14px}
.card .clabel{font-family:"Overpass Mono";font-size:12px;letter-spacing:.12em;color:var(--mut);text-transform:uppercase;margin-bottom:9px}
.card .big{font-weight:900;font-size:26px;line-height:1}.card .big.red{color:var(--red)}
.card .cap{font-size:12.5px;color:var(--txt);margin-top:6px}
.chk{display:flex;justify-content:space-between;font-family:"Overpass Mono";font-size:12.5px;margin-top:7px;color:var(--txt)}
.chk .g{color:var(--green)} .chk .r{color:var(--red)} .chk .m{color:var(--mut)}
.chart{display:flex;gap:2px;align-items:flex-end;height:98px;
  background:linear-gradient(var(--edge),var(--edge)) left 0/100% 1px no-repeat,
    linear-gradient(var(--edge),var(--edge)) left 50%/100% 1px no-repeat,
    linear-gradient(var(--edge),var(--edge)) left 100%/100% 1px no-repeat}
.chart i{flex:1;background:#2b3133;border-radius:1px 1px 0 0;min-height:2px}
.chart i.a{background:var(--amber)} .chart i.r{background:var(--red)}
.cnote{font-family:"Overpass Mono";font-size:12px;color:var(--amber);margin-top:8px}
.bar{display:grid;grid-template-columns:110px 1fr 44px;gap:10px;align-items:center;margin-bottom:9px;font-size:13.5px}
.bar .t{font-weight:600}.bar .track{height:9px;background:#20262a;border-radius:5px;overflow:hidden}
.bar .fill{height:100%;background:var(--amber);border-radius:5px}
.bar .pct{font-family:"Overpass Mono";font-size:12.5px;color:var(--mut);text-align:right}
.empty{font-family:"Overpass Mono";font-size:13px;color:var(--mut);padding:6px 0}

/* ---- report CTA + form ---- */
.report{margin:16px;background:var(--amber);color:var(--amber-ink);border:none;border-radius:10px;
  width:calc(100% - 32px);padding:16px;font-family:"Overpass";font-weight:900;font-size:17px;
  letter-spacing:.02em;text-transform:uppercase;cursor:pointer;display:block;text-align:center}
.report small{display:block;font-weight:600;font-size:12.5px;letter-spacing:.01em;text-transform:none;opacity:.82;margin-top:3px}
.report[disabled]{opacity:.55;cursor:default}
.offl{display:block;text-align:center;font-family:"Overpass Mono";font-size:13.5px;color:var(--amber);margin:0 16px 6px}
.rform{margin:0 16px}
.rform .opts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.rform label.opt{font-size:13px;border:1px solid var(--edge);border-radius:18px;padding:7px 13px;color:var(--txt);cursor:pointer}
.rform input[type=radio]{position:absolute;opacity:0}
.rform input[type=radio]:checked + span{color:var(--amber-ink)}
.rform label.opt:has(input:checked){background:var(--amber);border-color:var(--amber);color:var(--amber-ink);font-weight:700}
.hp{position:absolute;left:-9999px}
.toast{margin:12px 16px;padding:12px 14px;border-radius:8px;background:#10312013;border:1px solid var(--green);
  color:var(--green);font-weight:700;font-size:14px;display:none}
.toast.show{display:block}.toast.err{color:var(--red);border-color:var(--red)}

/* ---- NetDNA house card + ads ---- */
.netdna{margin:16px;border:1px solid #3a3320;border-radius:10px;padding:16px;
  background:linear-gradient(180deg,#1b1810,#131510)}
.netdna .k{font-family:"Overpass Mono";font-size:11.5px;letter-spacing:.16em;color:var(--amber);text-transform:uppercase}
.netdna h3,.netdna .nh{font-weight:800;font-size:19px;margin:7px 0 5px;line-height:1.2}
.vq{font-family:"Overpass Mono";font-weight:600;font-size:18px;letter-spacing:.01em;color:var(--txt);text-transform:none}
.netdna p{font-size:14px;color:var(--txt);margin-bottom:12px}
.netdna a.cta{display:inline-block;background:var(--amber);color:var(--amber-ink);font-weight:800;
  font-size:14px;padding:11px 16px;border-radius:7px;text-transform:uppercase;letter-spacing:.03em}
.ad{margin:14px 16px;border:1px dashed var(--edge);border-radius:6px;min-height:92px;
  display:flex;align-items:center;justify-content:center;color:var(--mut);font-family:"Overpass Mono";
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;overflow:hidden}
.ad.filled{border-style:solid;color:inherit;min-height:0;padding:0}

/* ---- faq / prose ---- */
.faq{margin:4px 16px}
.faq .q{font-weight:800;font-size:15.5px;margin-top:15px}
.faq .a{font-size:14.5px;color:var(--txt);line-height:1.6;margin-top:5px}
.prose{margin:16px;font-size:15px;color:var(--txt);line-height:1.65}
.prose h1{font-size:26px;color:var(--white);text-transform:uppercase;letter-spacing:.01em;margin-bottom:12px}
.prose h2{font-size:17px;color:var(--white);margin:20px 0 6px}
.prose a{color:var(--amber)}
.h1{font-weight:900;font-size:24px;text-transform:uppercase;letter-spacing:.01em;margin:4px 16px 0}

/* ---- footer ---- */
footer{margin:22px 16px 0;padding-top:16px;border-top:1px solid var(--edge);
  font-family:"Overpass Mono";font-size:12px;color:var(--mut);line-height:1.7}
.fnav{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px}
.fnav a{color:var(--amber)}
.poweredby{margin-top:8px}.poweredby a{color:var(--amber)}

:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:4px}

/* ---- desktop widen ---- */
@media(min-width:720px){
  .wrap,.gantry-in{max-width:720px}
  .brand .logo{font-size:34px}
  .sign{font-size:76px}
  .block,.sig,.netdna,.ad,.report,.faq,.prose{margin-left:24px;margin-right:24px}
  .report{width:calc(100% - 48px)}
}
