/* FlightWatch — dashboard styles
   Extracted from metar-dashboard.html. Edit styles here; the HTML links to this file. */

:root{
  --vfr:#1f9d55; --mvfr:#2f6fd0; --ifr:#d4392b; --lifr:#9b34b5;
  --ink:#0e1622; --bg:#f4f6fb; --panelbg:#ffffff; --card:#ffffff;
  --line:#dbe3ef; --line2:#c4d0e2; --muted:#5e708c;
  --text:#16263a; --land:#dde6f2; --land-h:#c9d7ea; --water:#eef3fa;
  --mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --sans:'Inter',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);background:var(--bg);color:var(--text);min-height:100vh}
header{display:flex;align-items:center;gap:16px;padding:14px 22px;background:var(--ink);color:#fff;position:relative}
header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:repeating-linear-gradient(90deg,#f2c200 0 24px,transparent 24px 48px)}
.logo{display:flex;align-items:center;gap:10px}
.logo .mark{font-family:var(--mono);font-weight:700;font-size:13px;background:#f2c200;color:#0a1626;padding:5px 9px;border-radius:4px}
.logo h1{font-size:18px;font-weight:700;letter-spacing:-.3px}
.logo .sub{font-size:10px;color:#9db2cf;font-family:var(--mono);text-transform:uppercase;letter-spacing:1.5px}
.live{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#5fd08b;font-family:var(--mono);margin-left:8px}
.live .dot{width:8px;height:8px;border-radius:50%;background:#5fd08b;animation:pulse 1.8s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
.clock{margin-left:auto;text-align:right;font-family:var(--mono)}
.clock .z{font-size:19px;font-weight:600;letter-spacing:1px}
.clock .lbl{font-size:9px;color:#9db2cf;text-transform:uppercase;letter-spacing:2px}
.controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 22px;background:var(--panelbg);border-bottom:1px solid var(--line)}
.controls .scope{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:1px}
.chip{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.5px;padding:7px 13px;border-radius:20px;
  border:1.5px solid var(--line2);background:#fff;color:var(--text);cursor:pointer;transition:.15s;display:flex;align-items:center;gap:7px}
.chip .sw{width:10px;height:10px;border-radius:50%}
.chip .ct{font-weight:700;opacity:.6;font-size:11px}
.chip[data-cat=VFR] .sw{background:var(--vfr)} .chip[data-cat=MVFR] .sw{background:var(--mvfr)}
.chip[data-cat=IFR] .sw{background:var(--ifr)} .chip[data-cat=LIFR] .sw{background:var(--lifr)}
.chip.off{opacity:.4;background:#f0f3f8}
.chip:hover{border-color:var(--ink)}
.search{margin-left:6px;display:flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--line2);border-radius:20px;padding:5px 12px}
.search input{border:none;outline:none;font-family:var(--mono);font-size:12px;width:120px;color:var(--text)}
.crumbs{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--muted)}
.crumbs b{color:var(--text)} .crumbs a{color:#c8870a;cursor:pointer;font-weight:600}
.wrap{display:grid;grid-template-columns:1fr 370px;height:calc(100vh - 156px)}
@media(max-width:900px){.wrap{grid-template-columns:1fr;height:auto}}
.map{position:relative;background:var(--water);overflow:hidden}
.map svg{width:100%;height:100%;display:block}
#states path{fill:var(--land);stroke:#fff;stroke-width:1;cursor:pointer;transition:fill .15s}
#states path:hover{fill:var(--land-h)}
#states path.zoomed{fill:#bcd0ea}
.station{cursor:pointer;transition:opacity .12s;stroke:#fff;stroke-width:.6}
.station:hover{stroke:#0e1622;stroke-width:2}
.station.dim{opacity:.06;pointer-events:none}
.st-VFR{fill:var(--vfr)} .st-MVFR{fill:var(--mvfr)} .st-IFR{fill:var(--ifr)} .st-LIFR{fill:var(--lifr)}
.st-label{font-family:var(--mono);font-size:9px;fill:#16263a;font-weight:600;
  paint-order:stroke;stroke:#fff;stroke-width:3px;pointer-events:none;opacity:0}
.station-grp.show-lbl .st-label{opacity:1}
.legend{position:absolute;top:12px;right:14px;background:rgba(255,255,255,.94);border:1px solid var(--line);
  border-radius:8px;padding:10px 13px;font-family:var(--mono);font-size:11px;box-shadow:0 2px 10px rgba(20,40,70,.08)}
.legend div{display:flex;align-items:center;gap:8px;margin:4px 0;color:var(--text)}
.legend .sw{width:11px;height:11px;border-radius:50%}
.map-hint{position:absolute;bottom:12px;left:14px;font-family:var(--mono);font-size:11px;color:var(--muted);
  background:rgba(255,255,255,.92);padding:6px 11px;border-radius:6px;border:1px solid var(--line)}
.tooltip{position:absolute;pointer-events:none;background:var(--ink);color:#fff;font-family:var(--mono);font-size:11px;
  padding:4px 8px;border-radius:4px;opacity:0;transition:.1s;white-space:nowrap;z-index:5}
.panel{background:var(--panelbg);border-left:1px solid var(--line);overflow-y:auto}
.empty{padding:34px 26px;color:var(--muted);font-family:var(--mono);font-size:13px;line-height:1.7}
.empty .big{font-size:34px;margin-bottom:10px;opacity:.3;text-align:center}
.natsum{margin:8px 0 0;border-top:1px solid var(--line);padding-top:18px}
.natsum .h{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin-bottom:10px}
.natrow{display:flex;align-items:center;gap:10px;margin:7px 0;font-size:12px;color:var(--text)}
.natrow .bar{height:9px;border-radius:5px;flex:none}
.natrow .lab{width:46px;font-weight:600}
.natrow .n{margin-left:auto;color:var(--muted)}
.card-head{padding:20px 22px 16px;border-bottom:1px solid var(--line)}
.card-head .id{font-family:var(--mono);font-size:30px;font-weight:700;letter-spacing:1px}
.card-head .nm{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.4}
.cat-badge{display:inline-block;font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:1px;
  padding:5px 13px;border-radius:5px;color:#fff;margin-top:12px}
.cat-VFR{background:var(--vfr)} .cat-MVFR{background:var(--mvfr)} .cat-IFR{background:var(--ifr)} .cat-LIFR{background:var(--lifr)}
.compass{display:flex;align-items:center;gap:14px;padding:16px 22px;border-bottom:1px solid var(--line)}
.rose{width:64px;height:64px;flex:none} .rose svg{width:100%;height:100%}
.wind-txt .dir{font-family:var(--mono);font-size:18px;font-weight:600}
.wind-txt .spd{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:2px}
.metrics{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.metric{background:var(--card);padding:15px 22px}
.metric .k{font-family:var(--mono);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1.3px}
.metric .v{font-family:var(--mono);font-size:22px;font-weight:600;margin-top:4px}
.metric .v small{font-size:12px;color:var(--muted);font-weight:400}
.raw{margin:18px 22px;background:#0e1622;border-radius:8px;padding:14px}
.raw .lbl{font-family:var(--mono);font-size:10px;color:#7e93b3;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px}
.raw code{font-family:var(--mono);font-size:12px;line-height:1.7;color:#8fe0a8;word-break:break-word;display:block}
.obs-time{font-family:var(--mono);font-size:11px;color:var(--muted);padding:0 22px 16px}
.sectional{margin:0 22px 24px}
.sectional .btn{width:100%;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.5px;padding:13px;
  border-radius:8px;border:1.5px solid var(--ink);background:var(--ink);color:#f2c200;cursor:pointer;transition:.15s}
.sectional .btn:hover{background:#1c2c42}
.modal-bg{position:fixed;inset:0;background:rgba(10,18,30,.72);z-index:100;display:none;align-items:center;justify-content:center;padding:24px}
.modal-bg.open{display:flex}
.modal{background:var(--panelbg);border-radius:12px;width:min(1000px,96vw);height:min(740px,92vh);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 70px rgba(8,16,30,.5)}
.modal-head{display:flex;align-items:center;gap:14px;padding:15px 20px;background:var(--ink);color:#fff}
.modal-head .mid{font-family:var(--mono);font-weight:700;font-size:18px;letter-spacing:1px}
.modal-head .mnm{font-size:12px;color:#9db2cf;font-family:var(--mono)}
.modal-head .mcat{font-family:var(--mono);font-weight:700;font-size:12px;letter-spacing:1px;padding:4px 11px;border-radius:5px;color:#fff}
.modal-head .layer-sw{margin-left:auto;display:flex;border:1px solid #2b425f;border-radius:7px;overflow:hidden}
.modal-head .layer-sw button{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.4px;padding:7px 13px;background:#16263a;color:#9db2cf;border:none;cursor:pointer;transition:.12s}
.modal-head .layer-sw button.on{background:#f2c200;color:#0a1626}
.modal-head .layer-sw button:hover:not(.on){background:#1c3050;color:#fff}
.modal-head .close{background:#16263a;color:#fff;border:none;width:34px;height:34px;border-radius:7px;font-size:18px;cursor:pointer;margin-left:10px}
.modal-head .close:hover{background:#27425f}
#faaMap{flex:1;background:#dde6f2}
.leaflet-popup-content{font-family:var(--mono);font-size:12px;line-height:1.6}
.wx-marker{border-radius:50%;border:2.5px solid #fff;box-shadow:0 0 0 1.5px rgba(0,0,0,.35),0 2px 6px rgba(0,0,0,.4)}
.modal-foot{padding:9px 20px;font-family:var(--mono);font-size:10px;color:var(--muted);border-top:1px solid var(--line);background:var(--panelbg);display:flex;gap:16px;flex-wrap:wrap}
footer{padding:10px 22px;font-family:var(--mono);font-size:10px;color:var(--muted);border-top:1px solid var(--line);background:var(--panelbg)}
