/* Forecast Flight — airfield-signage theme.
   The Forecast Network's Interstate sign system, translated to the taxiway:
   black-on-amber location plates, Overpass/Overpass Mono, flight-category scale. */
:root{
  --paper:#f7f5ef; --ink:#1d1f21; --muted:#5c5a52; --line:#d9d5c8;
  --amber:#f5a800; --amber-ink:#8a6100;
  --plate:#101214; --plate-text:#f5a800;
  --blue:#0a5ca8; --card:#fdfcf8; --shade:#efece2;
  --vfr:#04663d; --mvfr:#0a5ca8; --ifr:#b0201f; --lifr:#8b2a8f;
  --board:#14161a; --board-text:#e8e4d8;
  --sky0:#f2f6f8; --sky1:#dfe9ee; --land:#efede3; --landline:#b9b5a6;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#17191c; --ink:#e6e3da; --muted:#a09d92; --line:#33363b;
    --amber:#f5a800; --amber-ink:#f0b32e;
    --plate:#0b0c0e; --plate-text:#f5a800;
    --blue:#6aa9e8; --card:#1e2125; --shade:#22252a;
    --vfr:#4dbf8a; --mvfr:#6aa9e8; --ifr:#e8807f; --lifr:#d98add;
    --board:#0b0c0e; --board-text:#e8e4d8;
    --sky0:#101317; --sky1:#161b21; --land:#242830; --landline:#4a4f58;
  }
}
*{box-sizing:border-box}
body{background:var(--paper); color:var(--ink); margin:0;
  font:16px/1.6 Overpass,system-ui,sans-serif;}
a{color:var(--blue); text-decoration-thickness:1px; text-underline-offset:2px;}
.wrap{max-width:1060px; margin:0 auto; padding:0 20px;}
h1,h2{text-wrap:balance; font-weight:800; line-height:1.2;}
.mono{font-family:"Overpass Mono",monospace;}

/* masthead */
.masthead{border-bottom:4px solid var(--amber); padding:26px 0 20px;}
.masthead .row{display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
.plate{display:inline-flex; align-items:center; gap:12px; background:var(--plate);
  color:var(--plate-text); border:3px solid var(--plate-text); border-radius:10px;
  padding:10px 16px; flex:none;}
.plate .code{font:900 1.6rem/1 Overpass,sans-serif;}
.plate .lbl{font:600 .62rem/1.25 "Overpass Mono",monospace; letter-spacing:.12em;}
.masthead h1{font-size:1.7rem; margin:0;}
.masthead .tag{color:var(--muted); margin:2px 0 0; font-size:.98rem;}
.clock{margin-left:auto; text-align:right; font:600 .78rem/1.5 "Overpass Mono",monospace;
  color:var(--muted); letter-spacing:.06em;}
.clock b{color:var(--ink); font-size:1rem;}

/* sections */
.eyebrow{font:600 .72rem/1 "Overpass Mono",monospace; letter-spacing:.14em;
  text-transform:uppercase; color:var(--amber-ink); display:flex; gap:10px;
  align-items:baseline; margin:2.4em 0 .8em;}
.eyebrow .asof{margin-left:auto; color:var(--muted); text-transform:none; letter-spacing:.04em;}

/* NAS events */
.events{display:grid; gap:10px;}
.event{background:var(--card); border:1px solid var(--line); border-left:5px solid var(--amber);
  border-radius:6px; padding:12px 16px;}
.event.red{border-left-color:var(--ifr);}
.event b{display:block; font-size:1.02rem;}
.event span{color:var(--muted); font-size:.94rem;}
.allclear{background:var(--card); border:1px solid var(--line); border-left:5px solid var(--vfr);
  border-radius:6px; padding:14px 16px; color:var(--muted);}
.allclear b{color:var(--vfr);}

/* airport board */
.board{display:grid; grid-template-columns:repeat(auto-fill,minmax(148px,1fr)); gap:8px;}
.apt{background:var(--card); border:1px solid var(--line); border-radius:6px;
  padding:10px 12px 9px; display:flex; flex-direction:column; gap:2px; cursor:default;}
.apt .top{display:flex; align-items:baseline; justify-content:space-between;}
.apt .id{font:800 1.15rem/1 Overpass,sans-serif;}
.apt .cat{font:700 .62rem/1 "Overpass Mono",monospace; letter-spacing:.08em;
  padding:3px 6px 2px; border-radius:4px; color:#fff;}
.apt .cat.VFR{background:var(--vfr);} .apt .cat.MVFR{background:var(--mvfr);}
.apt .cat.IFR{background:var(--ifr);} .apt .cat.LIFR{background:var(--lifr);}
.apt .obs{font:400 .78rem/1.45 "Overpass Mono",monospace; color:var(--muted);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.apt .wx{color:var(--amber-ink); font-weight:600;}
.apt[title]{cursor:help;}

/* legend + coming soon */
.legend{display:flex; gap:14px; flex-wrap:wrap; font:600 .7rem/1 "Overpass Mono",monospace;
  letter-spacing:.06em; color:var(--muted); margin-top:10px;}
.legend i{display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:5px;}
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:12px;}
.card{background:var(--card); border:1px solid var(--line); border-radius:8px; padding:16px 18px;}
.card .soon{font:700 .6rem/1 "Overpass Mono",monospace; letter-spacing:.12em;
  text-transform:uppercase; background:var(--shade); color:var(--muted);
  border-radius:4px; padding:4px 7px 3px; float:right;}
.card b{display:block; font-size:1.05rem; margin-bottom:4px;}
.card p{color:var(--muted); font-size:.92rem; margin:.3em 0 0;}

/* maps */
.airmap{background:linear-gradient(180deg,var(--sky0),var(--sky1)); border:1px solid var(--line);
  border-radius:8px; overflow:hidden;}
.airmap svg{display:block; width:100%; height:auto;}
.mapland{fill:var(--land); stroke:var(--landline); stroke-width:.8;}
.sg{stroke-width:1.6; stroke-dasharray:6 4;}
.sg.convective{fill:rgba(198,40,40,.16); stroke:#c62828;}
.sg.turb{fill:rgba(245,168,0,.10); stroke:#c88a00;}
.sg.ice{fill:rgba(10,92,168,.10); stroke:#4d84c0;}
.dot{fill:var(--vfr); stroke:var(--paper); stroke-width:1.6;}
.dot.MVFR{fill:var(--mvfr);} .dot.IFR{fill:var(--ifr);} .dot.LIFR{fill:var(--lifr);}
.ring{fill:none; stroke-width:2.4; opacity:.9;}
.ring.amber{stroke:#c88a00;} .ring.red{stroke:#c62828;}
@media (prefers-reduced-motion: no-preference){
  .ring{animation:ffpulse 2.2s ease-out infinite;}
  @keyframes ffpulse{0%{stroke-opacity:.95}55%{stroke-opacity:.25}100%{stroke-opacity:.95}}
}
.maplbl{font:700 12px "Overpass Mono",monospace; fill:var(--ink); paint-order:stroke;
  stroke:var(--paper); stroke-width:3px; stroke-linejoin:round;}
.arc{fill:none; stroke-width:1.2; opacity:.5; stroke:var(--vfr);}
.arc.CHOP{stroke:#e07b00; stroke-width:2.2; opacity:.85;}
.arc.MODERATE{stroke:#c62828; stroke-width:2.6; opacity:.95;}
.arc.STRONG{stroke:#8b2a8f; stroke-width:3; opacity:1;}
a:hover .arc{stroke-width:5; opacity:1;}
.trk{stroke:var(--vfr); stroke-width:3.5; stroke-linecap:round;}
.trk.CHOP{stroke:#e07b00;} .trk.MODERATE{stroke:#c62828;} .trk.STRONG{stroke:#8b2a8f;}
.maplegend{display:flex; gap:14px; flex-wrap:wrap; font:600 .68rem/1 "Overpass Mono",monospace;
  letter-spacing:.05em; color:var(--muted); padding:10px 12px;}
.maplegend i{display:inline-block; width:11px; height:11px; border-radius:2px; margin-right:5px; vertical-align:-2px;}

/* footer */
footer{margin-top:64px; border-top:4px solid var(--amber); padding:18px 0 40px;
  font:400 .78rem/1.7 "Overpass Mono",monospace; color:var(--muted);}
footer .disc{margin-top:6px;}
