/* AeroNav 2.0 — glass-cockpit palette. Cyan = interactive / pilot-set values, magenta = active / current / route,
   green / amber / red = status only. Three themes: dark (default), sun (glare), night (red, dark-adapted). */
@font-face{font-family:"B612 Mono";src:url(vendor/b612mono-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"B612 Mono";src:url(vendor/b612mono-700.woff2) format("woff2");font-weight:700 900;font-display:swap}
:root{
  --row:#161f2d;--row-edge:#2a3850;--cur-bg:#2a1633;--pill:#0a2a33;--pill-tx:#8feaf8;--pill-edge:#1d5866;--badge:#223047;--badge-tx:#d5deea;
  --track:#1c2636;--track-edge:#5a6b85;--chk-top:#b4309f;--chk-bot:#8e2380;--on-chk:#ffffff;--good-bg:#0c2a1a;--amb-bg:#2e2208;--bad-soft:#331416;--sub:#131b27;
  --row-shadow:0 1px 0 #ffffff0a inset,0 6px 18px #00000073;--glow:0 0 0 3px #f06be82e;
  --bg:#080c12;--bar:#0c1119;--card:#111823;--btn:#18212f;--btn-hi:#1f2b3d;--line:#243044;--edge:#5a6b85;
  --tx:#eef3f8;--mu:#9fadc1;--ac:#3fd8f2;--on-ac:#00161c;
  --act:#f06be8;--act-fill:#b4309f;--on-act:#ffffff;
  --ok:#3ddc84;--ok-fill:#1fae62;--on-ok:#00170b;
  --warn:#ffb627;--warn-fill:#ffb627;--on-warn:#1c1200;
  --bad:#ff6b6b;--bad-fill:#d42a35;--on-bad:#ffffff;--bad-bg:#2a0d12;
  --scrim:#000000b3;--focus:#3fd8f2;
  --shadow:0 1px 0 #ffffff0d inset,0 1px 2px #0008;--shadow-2:0 1px 0 #ffffff0f inset,0 8px 24px #0009;
  --tap:56px;--rad:12px;--rad-sm:8px;--rad-lg:16px;--bw:1px;--bw-strong:2px;
  --num:"B612 Mono",system-ui,sans-serif;
}
[data-theme=sun]{
  --row:#ffffff;--row-edge:#007a87;--cur-bg:#fdeefb;--pill:#e3f8fb;--pill-tx:#004e58;--pill-edge:#007a87;--badge:#000000;--badge-tx:#ffffff;
  --track:#e3f8fb;--track-edge:#007a87;--chk-top:#a3008f;--chk-bot:#85006f;--on-chk:#ffffff;--good-bg:#e2f7ea;--amb-bg:#fff4dc;--bad-soft:#ffe6e9;--sub:#ffffff;
  --row-shadow:none;--glow:0 0 0 3px #a3008f;
  --bg:#ffffff;--bar:#ffffff;--card:#ffffff;--btn:#ffffff;--btn-hi:#e3f7fb;--line:#00606e;--edge:#00606e;
  --tx:#000000;--mu:#1d2530;--ac:#00596a;--on-ac:#ffffff;
  --act:#8e0f9c;--act-fill:#8e0f9c;--on-act:#ffffff;
  --ok:#005c2b;--ok-fill:#006b33;--on-ok:#ffffff;
  --warn:#7a3b00;--warn-fill:#ffb000;--on-warn:#000000;
  --bad:#b3001b;--bad-fill:#b3001b;--on-bad:#ffffff;--bad-bg:#ffecee;
  --scrim:#000000cc;--focus:#000000;--shadow:none;--shadow-2:none;--bw:2px;--bw-strong:3px;
}
[data-theme=night]{
  --row:#140200;--row-edge:#3a0c00;--cur-bg:#2a0600;--pill:#1f0400;--pill-tx:#ff9a70;--pill-edge:#5a1400;--badge:#2a0600;--badge-tx:#ff9a70;
  --track:#1f0400;--track-edge:#b83a10;--chk-top:#8a1a00;--chk-bot:#6a1200;--on-chk:#ffc09a;--good-bg:#200600;--amb-bg:#2a0a00;--bad-soft:#300400;--sub:#100100;
  --row-shadow:0 6px 18px #00000099;--glow:0 0 0 3px #ff5a3040;
  --bg:#000000;--bar:#050000;--card:#0b0202;--btn:#160404;--btn-hi:#220706;--line:#3d0d08;--edge:#a9331f;
  --tx:#ff6a50;--mu:#d94d36;--ac:#f28c52;--on-ac:#000000;
  --act:#ff5040;--act-fill:#4a0f08;--on-act:#ff7a5c;
  --ok:#e8945e;--ok-fill:#c86a30;--on-ok:#000000;
  --warn:#ff8c3a;--warn-fill:#ff8c3a;--on-warn:#000000;
  --bad:#ff3a24;--bad-fill:#e8321c;--on-bad:#000000;--bad-bg:#1a0000;
  --scrim:#000000e6;--focus:#ff8c3a;--shadow:none;--shadow-2:none;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--tx);font:17px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-tap-highlight-color:transparent}
[data-theme=sun] body{font-weight:600}
body{display:flex;flex-direction:column;overflow:hidden}
button,input,select{font:inherit;color:var(--tx)}
button{min-height:var(--tap);min-width:var(--tap);padding:0 16px;border-radius:var(--rad);border:var(--bw) solid var(--line);background:var(--btn);cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;box-shadow:var(--shadow)}
button:active{transform:scale(.97);background:var(--btn-hi)}
button.big{font-weight:700}
button.ghost{background:transparent;box-shadow:none}
button.primary{background:var(--ac);color:var(--on-ac);border-color:var(--ac)}
button[aria-pressed=true],button.on{background:var(--ac);color:var(--on-ac);border-color:var(--ac)}
input,select{min-height:52px;padding:0 12px;border-radius:10px;border:var(--bw) solid var(--line);background:var(--bg);width:100%}
input:focus,select:focus,button:focus-visible{outline:2px solid var(--ac);outline-offset:1px}
label{display:flex;flex-direction:column;font-size:.8rem;color:var(--mu);gap:3px}
label.inl{flex-direction:row;align-items:center;gap:8px;font-size:1rem}label.inl input{width:5em}
h2{margin:0 0 .6rem;font-size:1.15rem;letter-spacing:.01em}h2 small{color:var(--mu);font-weight:400;font-size:.8rem;margin-left:4px}
.muted{color:var(--mu)}.small{font-size:.85rem}.src{color:var(--mu);font-size:.78rem;margin:.6rem 0 0}
.kicker{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mu);font-weight:700}
.good{color:var(--ok)}.bad{color:var(--bad)}.amb{color:var(--warn)}
[hidden]{display:none!important}

/* ---------- header ---------- */
#top{display:flex;gap:8px;align-items:center;padding:6px 10px;padding-top:max(6px,env(safe-area-inset-top));background:var(--bar);border-bottom:var(--bw) solid var(--line)}
.brand{font-size:1.05rem;white-space:nowrap;letter-spacing:.02em}.reg{color:var(--ac);font-weight:800;margin-left:4px}
.clock{font-variant-numeric:tabular-nums;font-weight:800;white-space:nowrap;font-size:1.15rem;background:transparent;box-shadow:none;border-color:transparent;padding:0 8px!important}.clock #clk-sw{color:var(--act);margin-left:6px;display:inline}.clock i{font-style:normal;color:var(--ac);font-size:.8em;margin-left:1px}.clock small{color:var(--mu);margin-left:6px;font-weight:600;font-size:.8rem}
#q{flex:1;min-width:120px;min-height:var(--tap)}
#top button{padding:0 14px}
#btn-air.on{background:var(--ok-fill);border-color:var(--ok-fill);color:var(--on-ok)}
#btn-air.arm{background:var(--warn-fill);border-color:var(--warn-fill);color:var(--on-warn)}
#gps-pill{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;padding:0 10px!important;min-width:64px}#gps-pill small{font-size:.7rem;font-weight:800}
#gps-pill.off,#gps-pill.nofix{border-color:var(--warn);color:var(--warn)}#gps-pill.nofix{border-color:var(--bad);color:var(--bad)}#gps-pill.fix{border-color:var(--ok);color:var(--ok);background:var(--btn)}#gps-pill.sim{border-color:var(--act);color:var(--act);background:var(--btn)}
#btn-freda{font-variant-numeric:tabular-nums}
#btn-freda.run{border-color:var(--ac)}
#btn-freda.due{background:var(--warn-fill);border-color:var(--warn-fill);color:var(--on-warn);animation:pulse 1s infinite}
#btn-emer{margin-left:10px;background:var(--bad-fill);border-color:var(--bad-fill);color:var(--on-bad);letter-spacing:.06em}
@keyframes pulse{50%{opacity:.55}}
#vbar{display:flex;gap:5px;padding:5px 10px;overflow-x:auto;background:var(--bar);border-bottom:var(--bw) solid var(--line);scrollbar-width:none}
#vbar::-webkit-scrollbar{display:none}
.vs{flex:0 0 auto;display:flex;align-items:baseline;gap:5px;border:var(--bw) solid var(--line);border-radius:8px;padding:2px 9px;line-height:1.2;background:var(--card)}
.vs b{font-size:1.15rem;color:var(--ac);font-variant-numeric:tabular-nums}.vs small{font-size:.68rem;color:var(--mu);font-weight:700}
.vs.red b{color:var(--bad)}.vs.grn b{color:var(--ok)}
#search-res{position:absolute;z-index:2000;left:10px;right:10px;top:120px;max-height:60vh;overflow:auto;background:var(--card);border:2px solid var(--ac);border-radius:14px;padding:6px;box-shadow:var(--shadow-2)}
.hit{display:block;width:100%;text-align:left;padding:10px 12px;margin:0 0 4px;min-height:var(--tap);box-shadow:none}
.hit small{color:var(--mu);display:block}mark{background:var(--ac);color:var(--on-ac);border-radius:3px}

/* ---------- layout ---------- */
main{flex:1;overflow:auto;position:relative;-webkit-overflow-scrolling:touch}
.pane{display:none;padding:12px;max-width:1400px;margin:0 auto}
.pane.act{display:block}
.pane-full.act{position:absolute;inset:0;padding:0;max-width:none}
.card{background:var(--card);border:var(--bw) solid var(--line);border-radius:16px;padding:14px;margin-bottom:12px}
.card.warn{border-color:var(--warn)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.grid2>.card{margin:0;min-width:0}
.grid2.wide-left{grid-template-columns:3fr 2fr}
.row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.row.wrap{flex-wrap:wrap}.grow{flex:1}
.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-bottom:8px}
.fields.f4{grid-template-columns:repeat(4,minmax(0,1fr))}
.fields label button{width:100%;padding:0 6px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.chips button{flex:0 0 auto;white-space:nowrap;font-weight:700}
details>summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center}
details>summary::-webkit-details-marker{display:none}
details>summary h2{margin:0}details>summary::after{content:"▾";margin-left:auto;color:var(--mu);font-size:1.2rem}
details[open]>summary::after{content:"▴"}details[open]>summary{margin-bottom:8px}
table.tbl{width:100%;border-collapse:collapse}.tbl td,.tbl th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}
.tbl th{font-size:.78rem;color:var(--mu);text-transform:uppercase;letter-spacing:.05em}
.tbl input{min-height:48px}
.tscroll{overflow-x:auto}
.small-btn{min-height:48px;font-size:.8rem;margin-left:6px}

/* ---------- home ---------- */
.phases-bar{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:12px}
.phases-bar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:4px 6px;min-height:64px;line-height:1.15;position:relative}
.phases-bar button small{font-size:.7rem;color:var(--mu);font-weight:700}
.phases-bar button.done small{color:var(--ok)}
.phases-bar button.now{border-color:var(--act);box-shadow:inset 0 -4px 0 var(--act)}
.phases-bar button.sel{background:var(--btn-hi);border-color:var(--act)}
.home-grid{display:grid;grid-template-columns:3fr 2fr;gap:12px;margin-bottom:12px}.home-grid>.card{margin:0}
.next-card{border-color:var(--act)}
.next-card .go{width:100%;min-height:72px;font-size:1.25rem;background:var(--act-fill);color:var(--on-act);border-color:var(--act-fill);display:flex;align-items:center;justify-content:center;gap:10px;margin:6px 0 10px}
.next-card .go small{font-weight:600;opacity:.85}
.cl-rows{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.cl-rows button,.tools button{text-align:left;display:flex;align-items:center;gap:8px;font-weight:600;font-size:.95rem;padding:6px 12px}
.cl-rows button b{margin-left:auto;font-size:.8rem;color:var(--mu);font-variant-numeric:tabular-nums}
.cl-rows button.done b{color:var(--ok)}
.cl-rows button.opt{border-style:dashed}
.tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-content:start}
.tile{display:block;text-align:left;padding:10px 12px;min-height:84px;background:var(--card)}
.tile small{display:block;color:var(--mu);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.tile b{display:block;font-size:1.55rem;font-variant-numeric:tabular-nums;line-height:1.2}
.tile span{display:block;font-size:.8rem;color:var(--mu);font-weight:500}
.tile.w2{grid-column:span 2}
.tile.alert{border-color:var(--warn)}.tile.alert b{color:var(--warn)}
.freq{font-size:1.25rem;color:var(--ac);font-weight:800;font-variant-numeric:tabular-nums}
#apt-phones a{color:var(--ac)}

/* ---------- checklists ---------- */
.split{display:grid;grid-template-columns:280px 1fr;gap:12px;align-items:start}.split>*,.home-grid>*{min-width:0}
.side{position:sticky;top:0;display:flex;flex-direction:column;gap:8px}
.groups{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.groups button{min-height:48px;padding:0 8px;font-size:.82rem;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:4px}
.groups button.sel{border-color:var(--act);background:var(--btn-hi)}
.groups button.em{color:var(--bad)}
.groups button small{font-size:.72rem;color:var(--mu)}.groups button.done small{color:var(--ok)}
.cl-list{display:flex;flex-direction:column;gap:5px;max-height:calc(100vh - 330px);overflow:auto}
.cl-list button{text-align:left;font-size:.95rem;display:flex;align-items:center;gap:8px;padding:6px 12px;box-shadow:none}
.cl-list button b{margin-left:auto;font-size:.78rem;color:var(--mu);font-variant-numeric:tabular-nums;white-space:nowrap}
.cl-list button.cur{border-color:var(--act);box-shadow:inset 5px 0 0 var(--act)}
.cl-list button.done b{color:var(--ok)}
.cl-list button.em{color:var(--bad)}
.em-view{border-color:var(--bad);background:linear-gradient(var(--bad-bg),var(--card) 140px)}.em-view #cl-title{color:var(--bad)}.em-view #cl-bar{background:var(--bad)}
#cl-items{list-style:none;margin:0;padding:0}
#cl-items li.nt{padding:8px 14px;font-style:italic;color:var(--warn);font-weight:700}
.cl-foot{position:sticky;bottom:0;display:flex;gap:8px;padding-top:10px;background:linear-gradient(transparent,var(--card) 12px)}
#cl-pics{display:flex;gap:4px;cursor:zoom-in;flex:0 0 auto}
#cl-pics svg{height:88px;width:auto;display:block;border:var(--bw) solid var(--line);border-radius:10px;background:var(--bg)}
.pics-big .cl-head{flex-wrap:wrap}.pics-big #cl-pics{order:9;flex-basis:100%;justify-content:center;cursor:zoom-out}.pics-big #cl-pics svg{height:auto;width:100%;max-height:230px;border:0;background:none}

/* ---------- radio ---------- */
.rt-ph{margin-bottom:12px}
.rt-call{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.rt-call .w{display:inline-block;font-size:.8rem;font-weight:700;color:var(--act);border:1px solid var(--act);border-radius:6px;padding:1px 8px;margin-bottom:4px}
.rt-call .say{font-size:1.12rem;font-weight:600}
.rt-em{border-color:var(--bad)}.rt-em h2{color:var(--bad)}

/* ---------- circuit ---------- */
#circ-svg{width:100%;height:auto;display:block}
.legs{padding-left:1.3rem;margin:0}.legs li{margin-bottom:10px}
.seg.on{background:var(--ac);color:var(--on-ac);border-color:var(--ac)}
#circ-map{height:400px;border-radius:12px}
.leaflet-touch .leaflet-bar a{width:56px!important;height:56px!important;line-height:56px!important;font-size:28px!important}
.cpt{background:var(--act-fill);color:var(--on-act);border-radius:50%;width:28px;height:28px;line-height:24px;text-align:center;font-weight:900;border:2px solid var(--tx)}
.cpt.vrp{background:var(--ac);color:var(--on-ac)}
#circ-pts td:first-child{width:36px}
.mono{font-family:ui-monospace,Consolas,monospace;font-size:.85rem;white-space:nowrap}

/* ---------- map ---------- */
#map{position:absolute;inset:0;background:#0d1626}
#map-ui{position:absolute;z-index:1000;right:10px;top:10px;display:flex;flex-direction:column;gap:6px}
#map-ui button,#pfd-ui button{background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);min-width:72px}
#map-ui button[aria-pressed=true],#pfd-ui button[aria-pressed=true]{background:var(--ac);color:var(--on-ac)}
#zin-btn,#zout-btn{font-size:1.6rem;padding:0}
#map-data{position:absolute;z-index:1000;left:10px;bottom:10px;right:96px;display:flex;gap:6px;flex-wrap:wrap;pointer-events:none}
#map-data div{background:color-mix(in srgb,var(--card) 90%,transparent);border:var(--bw) solid var(--line);border-radius:10px;padding:3px 12px;text-align:center;min-width:80px}
#p-map.hud-on #map-data{left:360px}
#map-data div.nx{border-color:var(--act)}#map-data .nx b{color:var(--act)}
#map-data small{display:block;color:var(--mu);font-size:.68rem;font-weight:700;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#map-data b{font-size:1.35rem;font-variant-numeric:tabular-nums;white-space:nowrap}
#map-msg{position:absolute;z-index:1000;left:10px;top:10px;background:var(--card);padding:6px 12px;border-radius:10px;max-width:calc(100% - 110px);border:var(--bw) solid var(--line)}
#map-msg:empty{display:none}
#hud{position:absolute;z-index:1000;left:10px;bottom:10px;border-radius:12px;border:2px solid var(--line);width:340px;height:227px}
.vrp-lbl{background:transparent;border:0;box-shadow:none;color:#fff;font-weight:700;text-shadow:0 0 3px #000,0 0 3px #000,0 0 2px #000}
.vrp-lbl::before{display:none}
.acft{filter:drop-shadow(0 0 2px #000)}
[data-theme=dark] #map .leaflet-tile-pane{filter:brightness(.82) saturate(.9)}
[data-theme=night] .leaflet-tile-pane{filter:grayscale(1) invert(1) brightness(.5) sepia(1) saturate(6) hue-rotate(-30deg)}
[data-theme=night] #pfd,[data-theme=night] #hud,[data-theme=night] #circ-svg{filter:brightness(.7) sepia(1) saturate(4) hue-rotate(-35deg)}
[data-theme=night] .vrp-lbl{color:#ff6a55}
[data-theme=night] .leaflet-overlay-pane,[data-theme=night] .leaflet-marker-pane,[data-theme=night] .leaflet-tooltip-pane{filter:sepia(1) saturate(5) hue-rotate(-40deg) brightness(.85)}

/* ---------- PFD ---------- */
#pfd{position:absolute;inset:0;width:100%;height:100%;background:#000}
#pfd-ui{position:absolute;left:10px;top:10px;display:flex;gap:8px;z-index:5;align-items:center;flex-wrap:wrap;max-width:60%}
#pfd-fps{color:#fff;font-size:.8rem;text-shadow:0 0 3px #000}
.pfd-warn{position:absolute;top:10px;right:10px;max-width:34%;background:#000c;color:#fbbf24;padding:6px 12px;border-radius:10px;font-size:.78rem;font-weight:700}

/* ---------- plan / wx ---------- */
.wx{border-top:1px solid var(--line);padding:8px 0}.wx .raw{font-family:ui-monospace,Consolas,monospace;font-size:.9rem;word-break:break-word}
.cat{display:inline-block;padding:0 8px;border-radius:6px;font-weight:800;color:#000;margin-right:6px}
.VFR{background:#22c55e}.MVFR{background:#3b82f6;color:#fff}.IFR{background:#ef4444}.LIFR{background:#d946ef}
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px;margin-top:8px}
.kv div{border:var(--bw) solid var(--line);border-radius:10px;padding:5px 10px}.kv small{display:block;color:var(--mu);font-size:.72rem}.kv b{font-size:1.25rem}
#pl-route,#pl-add{flex:1}

/* ---------- log ---------- */
.phases{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
.phases div{border:var(--bw) solid var(--line);border-radius:12px;padding:8px;text-align:center}.phases div.on{border-color:var(--ok);box-shadow:inset 0 -4px 0 var(--ok)}
.phases b{display:block;font-size:1.4rem;font-variant-numeric:tabular-nums}.phases small{color:var(--mu)}

/* ---------- drill ---------- */
#dr-card .q{font-size:1.4rem;font-weight:700;margin-bottom:12px}
#dr-card .opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#dr-card .opts button{font-size:1.3rem}
#dr-card ol li{font-size:1.15rem;margin:6px 0}

/* ---------- tabs ---------- */
#tabs{display:flex;border-top:var(--bw) solid var(--line);background:var(--bar);padding-bottom:env(safe-area-inset-bottom)}
#tabs button{flex:1;border:0;border-radius:0;background:transparent;font-weight:700;min-height:62px;font-size:1rem;min-width:0;padding:0 2px;box-shadow:none;color:var(--mu)}
#tabs button.act{color:var(--act);box-shadow:inset 0 4px 0 var(--act)}
[data-theme=sun] #tabs button{color:var(--tx)}[data-theme=sun] #tabs button.act{background:var(--act-fill);color:var(--on-act);box-shadow:none}

/* ---------- sheets / toast ---------- */
.sheet{position:fixed;inset:0;z-index:2500;background:var(--scrim);display:flex;align-items:flex-start;justify-content:center;padding:70px 12px 12px;overflow:auto}
.sheet-box{background:var(--card);border:2px solid var(--line);border-radius:18px;padding:14px;width:min(900px,100%)}
.em-box{border-color:var(--bad)}
.emer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;margin-bottom:12px}
.emer-grid button{text-align:left;min-height:64px;font-weight:700}
.emer-grid button.em{border-color:var(--bad);color:var(--bad)}
.emer-grid h3{grid-column:1/-1;margin:.4rem 0 0;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mu)}
.freda{font-size:1.2rem;padding-left:1.4rem}.freda li{margin:6px 0}.freda b{color:var(--ac)}
#toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 120px);transform:translateX(-50%);pointer-events:none;background:var(--ac);color:var(--on-ac);padding:12px 20px;border-radius:12px;font-weight:700;z-index:3000;max-width:90vw;box-shadow:0 8px 30px #000a}

/* ---------- sunlight: sharp, heavy borders ---------- */
[data-theme=sun] .card,[data-theme=sun] .sheet-box{border-width:3px}
[data-theme=sun] #cl-items li.it.cur{border-width:3px}

/* ---------- responsive ---------- */
@media (max-width:1100px){.brand{display:none}}
@media (max-width:1000px){#vbar{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px;padding:4px 8px}.vs{flex-direction:column;align-items:center;gap:0;padding:1px 2px}.vs b{font-size:1.05rem}.vs small{font-size:.62rem}}
@media (max-width:900px){
  .grid2,.grid2.wide-left,.home-grid{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .side{position:sticky;top:-12px;z-index:5;background:var(--bg);margin:-12px -12px 0;padding:10px 12px 8px;border-bottom:var(--bw) solid var(--line)}
  .groups{display:flex;overflow-x:auto;scrollbar-width:none}.groups button{flex:0 0 auto;white-space:nowrap}
  .cl-list{flex-direction:row;overflow-x:auto;max-height:none;scrollbar-width:none}.cl-list button{flex:0 0 auto;white-space:nowrap;min-height:48px}
  .clock small{display:none}
  #hud{width:240px;height:160px}#p-map.hud-on #map-data{left:260px}
}
@media (max-width:700px){#top{flex-wrap:wrap}#q{order:9;flex-basis:100%}}
@media (max-width:760px){
  .phases-bar{grid-template-columns:repeat(3,1fr)}
  .fields.f4{grid-template-columns:1fr 1fr}
  .cl-rows{grid-template-columns:1fr}
  #tabs button{font-size:.85rem}
}

/* ---------- PAD (ATIS / clearance entry + notes) ---------- */
#btn-pad{background:var(--ac);color:var(--on-ac);border-color:var(--ac)}
.padrow{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}
.chip-v{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:96px;padding:4px 14px;line-height:1.1;text-align:left}
.chip-v small{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mu);font-weight:700}
.chip-v b{font-size:1.35rem;color:var(--ac);font-variant-numeric:tabular-nums}
.chip-v.empty b{color:var(--warn);font-size:1rem}
.chip-v.sel{border-color:var(--act);box-shadow:inset 0 0 0 2px var(--act)}
.pad-box{width:min(980px,100%)}
.pad-disp{display:flex;align-items:baseline;gap:12px;margin:2px 0 8px}.pad-disp small{color:var(--mu);font-weight:700}
.pad-disp b{font-size:2.4rem;color:var(--act);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.kp{display:grid;gap:8px;margin-bottom:8px}
.kp.num{grid-template-columns:repeat(3,1fr);max-width:420px}.kp.num button{min-height:68px;font-size:1.8rem;font-weight:800}
.kp.num button:disabled{opacity:.25}
.kp.letters{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}
.kp.letters button,.kp.two button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:64px;line-height:1.05}
.kp.letters b{font-size:1.5rem}.kp.letters small{font-size:.66rem;color:var(--mu)}
.kp.two{grid-template-columns:1fr 1fr}.kp.two b{font-size:2.2rem}.kp.two small{color:var(--mu)}
.kp.picks{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.pad-notes{display:grid;grid-template-columns:1.3fr 1fr;gap:12px;margin-top:10px;border-top:var(--bw) solid var(--line);padding-top:10px}
.scr-wrap{position:relative}
#scribble{width:100%;height:300px;display:block;border-radius:12px;border:var(--bw) dashed var(--line);background:var(--bg);touch-action:none}
.scr-tools{display:flex;gap:6px;margin-top:6px}
.small-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.small-chips button{min-height:48px;padding:0 10px;font-size:.85rem}
.pad-log{list-style:none;padding:0;margin:0;max-height:220px;overflow:auto;font-size:.95rem}.pad-log li{padding:6px 0;border-bottom:1px solid var(--line)}.pad-log li b:first-child{color:var(--mu);margin-right:6px}

/* ---------- stage guide ---------- */
.stage{scroll-margin-top:60px}.stage.now{border-color:var(--act);box-shadow:inset 4px 0 0 var(--act)}
.st-head{display:flex;gap:12px;align-items:center;margin-bottom:6px}.st-head h2{margin:0}
.st-n{flex:0 0 40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:var(--btn);border:var(--bw) solid var(--line);color:var(--ac)}
.stage.now .st-n{background:var(--act-fill);color:var(--on-act);border-color:var(--act)}
.gl{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:6px 0;border-top:1px solid var(--line)}
.gl-l{font-size:.72rem;font-weight:800;letter-spacing:.1em;padding-top:6px;color:var(--mu)}
.gl.say .gl-l{color:var(--ac)}.gl.rb .gl-l{color:var(--act)}.gl.watch .gl-l{color:var(--warn)}.gl.exp .gl-l{color:var(--ok)}
.gl p{margin:4px 0}.gl .rt-call{border-top:0;padding:4px 0}
.st-foot{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}.st-foot button{min-height:48px;font-size:.9rem}.st-foot button.done{opacity:.6}
@media (max-width:760px){.pad-notes{grid-template-columns:1fr}.gl{grid-template-columns:1fr;gap:2px}.gl-l{padding-top:0}#scribble{height:240px}}
#top button{white-space:nowrap}
.home-pad{grid-column:1/-1}.home-pad .padrow{margin:4px 0 0}
@media (max-width:900px){#top{gap:6px}#top button{padding:0 10px}#btn-freda span{font-variant-numeric:tabular-nums}}
@media (max-width:800px){#top .clock small{display:none}}

/* ---------- 2026-09-29: touch targets ≥56 px everywhere ---------- */
.groups button,.st-foot button,.small-btn,.small-chips button,.cl-list button,.chips button{min-height:var(--tap)}
h3{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mu);margin:14px 0 6px}
.fields.f3{grid-template-columns:repeat(3,minmax(0,1fr))}.fields.f2{grid-template-columns:1fr 1fr}
#rt-nav{position:sticky;top:-12px;z-index:5;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;background:var(--bg);margin:-12px -12px 10px;padding:10px 12px 8px;border-bottom:var(--bw) solid var(--line)}
#rt-nav::-webkit-scrollbar{display:none}#rt-nav button.on{border-color:var(--act);box-shadow:inset 0 -4px 0 var(--act)}
.stage{scroll-margin-top:84px}
.tile.bad-t{border-color:var(--bad)}.tile.bad-t b,.tile.bad-t small{color:var(--bad)}
.gng{font-style:normal;padding:0 7px;border-radius:6px;margin-left:4px;letter-spacing:.04em}.gng.go{background:var(--ok-fill);color:var(--on-ok)}.gng.caution{background:var(--warn-fill);color:var(--on-warn)}.gng.nogo{background:var(--bad-fill);color:var(--on-bad)}
.gng-v{font-size:1.3rem;font-weight:900;padding:8px 12px;border-radius:12px;margin:8px 0;border:2px solid}.gng-v small{font-size:.8rem;font-weight:600;color:var(--mu);margin-left:6px}
.gng-v.go{color:var(--ok)}.gng-v.caution{color:var(--warn)}.gng-v.nogo{color:var(--bad)}
.set-b{color:var(--ac)}
/* phones: tap-to-call + copy (Wi-Fi tablets can't dial) */
.tels{display:flex;flex-direction:column;gap:6px;margin:6px 0}
.tel-row{display:flex;gap:6px}.tel-row .tel-btn{flex:1}
.tel-btn{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:var(--tap);padding:0 16px;border:var(--bw) solid var(--line);border-radius:var(--rad);color:var(--ac);font-weight:700;text-decoration:none;background:var(--btn)}
.tel-btn b{font-size:1.25rem;font-variant-numeric:tabular-nums;white-space:nowrap}.tel-btn span{color:var(--tx);font-size:.95rem}
.tel-row.atis .tel-btn{border-color:var(--act);border-width:2px}.tel-row.atis .tel-btn span{color:var(--act)}
.tel-row .copy{flex:0 0 auto;font-size:.9rem}
.btn-link{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 14px;border:var(--bw) solid var(--line);border-radius:var(--rad);color:var(--ac);font-weight:700;text-decoration:none;background:var(--btn)}
.btn-link.disabled{opacity:.4;pointer-events:none}
.brief{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}.brief .tel-row{grid-column:1/-1}
/* guide SET row */
.gl.set .gl-l{color:var(--ac)}.setchips{display:flex;flex-wrap:wrap;gap:6px}.setchips span{border:var(--bw) solid var(--line);border-radius:10px;padding:4px 10px;font-weight:700}.setchips small{display:block;font-size:.66rem;color:var(--mu);letter-spacing:.08em}
.set-rows{display:grid;gap:8px;margin:8px 0}.set-row{display:grid;grid-template-columns:80px 1fr;align-items:center;border:var(--bw) solid var(--line);border-radius:12px;padding:10px 14px;min-height:64px}
.set-row small{font-weight:800;color:var(--mu);letter-spacing:.1em}.set-row b{font-size:1.45rem;color:var(--ac);font-variant-numeric:tabular-nums}
#set-nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}#set-nav button.on{border-color:var(--act);box-shadow:inset 0 -4px 0 var(--act)}#set-nav button.bad{color:var(--bad)}
/* airports */
.apt-split{display:grid;grid-template-columns:360px 1fr;gap:12px;align-items:start}.apt-split>*{min-width:0}
.apt-side{position:sticky;top:0}.apt-side .row{margin-bottom:6px}#apt-q{flex:1;min-height:var(--tap)}
.seg2 .seg{flex:1}
.apt-list{display:flex;flex-direction:column;gap:6px;max-height:calc(100vh - 290px);overflow:auto}
.apt-list .kicker{margin:8px 2px 0}
.apt-row{display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:10px;text-align:left;min-height:64px;padding:6px 12px;box-shadow:none}
.apt-row .icao{font-weight:800;font-size:1.15rem;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.apt-row .nm{font-weight:600;line-height:1.2;min-width:0}.apt-row .nm small,.apt-row .dist small{display:block;color:var(--mu);font-size:.78rem;font-weight:500}
.apt-row .dist{text-align:right;white-space:nowrap}
.apt-row.sel{border-color:var(--act);box-shadow:inset 5px 0 0 var(--act)}
.apt-row.closed{opacity:.55}
.apt-h{display:flex;gap:10px;align-items:flex-start}.apt-h h2{margin:0}.big-icao{font-size:2rem;font-weight:900;letter-spacing:.04em;line-height:1.1}
#apt-back{display:none}
.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.78rem;font-weight:800;border:2px solid currentColor;text-decoration:none;color:var(--mu)}
.badge.high{color:var(--ok)}.badge.medium{color:var(--warn)}.badge.low{color:var(--bad)}.badge.closed{background:var(--bad-fill);color:var(--on-bad);border-color:var(--bad-fill)}
#apt-fav{font-size:1.5rem}#apt-fav[aria-pressed=true]{background:var(--warn-fill);border-color:var(--warn-fill);color:var(--on-warn)}
.apt-range{margin:8px 0}
.apt-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:10px 0}
.apt-acts>*,.big-act{min-height:72px;font-size:1.05rem;font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none}
.big-act small{font-size:.85rem;color:var(--tx);font-variant-numeric:tabular-nums}
.apt-acts .dest{background:var(--act-fill);color:var(--on-act);border-color:var(--act-fill)}
.card-in{border:var(--bw) solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0}.card-in p{margin:4px 0}.card-in ul{margin:4px 0;padding-left:1.2rem}
.warn-b{border-color:var(--warn)}.warn-b>b{color:var(--warn)}.good-b{border-color:var(--ok)}
.card-in input{width:9em;min-height:48px;display:inline-block}
.apt-fq{display:flex;flex-direction:column;gap:4px}
.fq-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:4px 0}
.fq-row small{display:block;font-size:.75rem;color:var(--mu)}.fq-row .freq{font-size:1.6rem}
ul.plain{list-style:none;padding:0;margin:4px 0}ul.plain li{padding:3px 0}
.lnk{color:var(--ac);font-weight:700;margin-right:14px;display:inline-block;min-height:56px;line-height:56px}
.src-l{font-size:.78rem;word-break:break-all;padding-left:1.1rem}.src-l a{color:var(--ac)}
/* nearest */
.nr-row{display:flex;gap:6px;margin-bottom:6px}
.nr-go{flex:1;display:grid;grid-template-columns:62px 1fr auto;gap:10px;align-items:center;text-align:left;min-height:64px;padding:6px 12px}
.nr-go.on{border-color:var(--act);box-shadow:inset 5px 0 0 var(--act)}
.nr-go .icao{font-size:1.15rem}.nr-go .nm{min-width:0}.nr-go .nm small{display:block;color:var(--mu);font-size:.78rem;font-weight:500}
.nr-num{text-align:right;white-space:nowrap}.nr-num b{font-size:1.4rem;color:var(--ac);font-variant-numeric:tabular-nums}.nr-num small{display:block;color:var(--tx);font-weight:700}
.nr-info{font-size:1.3rem}
/* PPR email */
.pp-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:12px}
.pp-form{display:flex;flex-direction:column;gap:8px}.pp-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pp-3{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lbl{font-size:.8rem;color:var(--mu);margin-bottom:3px}
.pp-chips{margin:0 0 4px}.pp-chips button.on{background:var(--ac);color:var(--on-ac);border-color:var(--ac)}
#ppr-prev{white-space:pre-wrap;font:.85rem/1.35 ui-monospace,Consolas,monospace;color:var(--mu);border:var(--bw) dashed var(--line);border-radius:10px;padding:10px;margin:0;max-height:52vh;overflow:auto}
/* stopwatch + fuel tank */
.sw-disp{font-size:4.5rem;font-weight:900;text-align:center;font-variant-numeric:tabular-nums;color:var(--act);margin:6px 0 10px}
.tank{border-top:var(--bw) solid var(--line);margin-top:10px}#tk-side button.on{background:var(--ac);color:var(--on-ac);border-color:var(--ac)}
.chk-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px;margin:6px 0}
label.chk{flex-direction:row;align-items:center;gap:10px;font-size:.92rem;color:var(--tx);min-height:56px;padding:0 8px;border:var(--bw) solid var(--line);border-radius:10px}
label.chk input{width:26px;height:26px;min-height:0;flex:0 0 auto}label.chk b{margin-left:auto;color:var(--ac)}
.lg-ft input{font-size:1.2rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
@media (max-width:900px){
  .apt-split{grid-template-columns:1fr}.apt-split.detail .apt-side{display:none}.apt-split:not(.detail) .apt-detail{display:none}
  #apt-back{display:inline-flex;align-items:center}.apt-list{max-height:none}
  .pp-grid{grid-template-columns:1fr}
}
@media (max-width:800px){
  #q{flex:0 0 56px;min-width:56px;padding:0;text-align:center;font-size:1.2rem}
  #q:focus,#q.has{position:absolute;left:8px;right:8px;top:calc(max(6px,env(safe-area-inset-top)) + 64px);z-index:2100;text-align:left;padding:0 12px;width:auto;font-size:1rem;background:var(--card);border:2px solid var(--ac)}
}
@media (max-width:760px){.pp-2,.fields.f3{grid-template-columns:1fr 1fr}.fq-row .freq{font-size:1.35rem}}
.apt-sw{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}.apt-sw small{color:var(--mu);font-weight:700;margin-right:4px}
.kp.rw{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.kp.rw button{display:flex;flex-direction:column;align-items:center;min-height:68px;line-height:1.1}.kp.rw b{font-size:1.8rem}.kp.rw small{color:var(--mu);font-size:.72rem}
.vs small i{display:block;font-style:normal;font-weight:600;font-size:.62rem;letter-spacing:0;text-transform:none;color:var(--mu);white-space:nowrap;line-height:1.1}
@media (max-width:1000px){.vs small i{white-space:normal;font-size:.55rem;text-align:center}}
/* V-speed bar: 11 equal columns at every width, meaning under each code */
#vbar{display:grid!important;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px;padding:4px 8px;overflow:hidden}
.vs{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:2px 2px;min-width:0;text-align:center}
.vs b{font-size:1.15rem;line-height:1.05}.vs small{font-size:.66rem;line-height:1.05}
.vs small i{white-space:normal;font-size:.58rem;text-align:center;overflow:hidden;text-overflow:ellipsis}
@media (max-height:820px){#map-ui{display:grid;grid-template-columns:auto auto;grid-auto-flow:row;gap:6px}#map-data{right:180px}}
#cl-items .h{white-space:pre-line}

/* ===== 2026-09-29 visual refresh (research/visual_spec.md) ===== */
/* numbers (pure-number displays only; mixed text such as set-up rows stays system-ui) */
.vs b,.freq,.chip-v b,.nr-num b,#map-data b,.phases b,.pad-disp b,.sw-disp,.kp.num button,.tel-btn b,.tile b.num{font-family:var(--num);font-variant-numeric:tabular-nums slashed-zero;letter-spacing:-.01em}
/* buttons */
button{border-color:var(--line);transition:background-color .12s,border-color .12s}
button:active{transform:none;background:var(--btn-hi);border-color:var(--edge)}
button.primary,button[aria-pressed=true],button.on{font-weight:800}
button.ghost{background:transparent;border-color:var(--line);box-shadow:none}
input,select{border-color:var(--edge);background:var(--bar)}
input:focus,select:focus,button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
/* header */
#top{background:var(--bar);box-shadow:0 1px 0 var(--line)}
.brand{font-weight:800;letter-spacing:.04em}
#btn-pad{background:transparent;color:var(--ac);border:var(--bw-strong) solid var(--ac)}
#btn-emer{background:var(--bad-fill);border:0;color:var(--on-bad);font-weight:900;letter-spacing:.1em;min-width:96px;box-shadow:0 0 0 2px var(--bar),0 0 0 4px var(--bad-fill)}
#btn-air.on{background:var(--ok-fill);border-color:var(--ok-fill);color:var(--on-ok)}
#btn-air.arm,#btn-freda.due,#apt-fav[aria-pressed=true]{background:var(--warn-fill);border-color:var(--warn-fill);color:var(--on-warn)}
/* V-speed bar */
#vbar{background:var(--bar);border-bottom:var(--bw) solid var(--line)}
.vs{background:transparent;border:0;border-radius:var(--rad-sm);position:relative}
.vs + .vs::before{content:"";position:absolute;left:-2px;top:18%;bottom:18%;width:1px;background:var(--line)}
.vs b{color:var(--tx);font-size:1.2rem;font-weight:700}
.vs small{color:var(--ac);font-weight:800;letter-spacing:.04em}
.vs small i{color:var(--mu);font-weight:500}
.vs.grn b{color:var(--ok)}.vs.red b{color:var(--bad)}
/* phase bar */
.phases-bar button{background:var(--card)}
.phases-bar button.now{background:var(--btn-hi);border-color:var(--act);box-shadow:inset 0 -4px 0 var(--act)}
.phases-bar button.now small{color:var(--act)}
.phases-bar button.done{border-color:var(--line)}
.phases-bar button.done small::after{content:" ✓"}
/* cards */
.card{border-radius:var(--rad-lg);box-shadow:var(--shadow)}
.next-card{border-color:var(--line);box-shadow:inset 4px 0 0 var(--act),var(--shadow)}
.next-card .go,#cl-check{background:var(--act-fill);border-color:var(--act-fill);color:var(--on-act);font-weight:800}
.kicker,.tile small,.chip-v small{color:var(--mu);letter-spacing:.1em}
/* tiles */
.tile{background:var(--card);border-color:var(--line);box-shadow:none}
.tile b{font-size:1.6rem;font-weight:700}
.tile.alert{border-color:var(--warn);box-shadow:inset 4px 0 0 var(--warn)}
.tile.bad-t{border-color:var(--bad);box-shadow:inset 4px 0 0 var(--bad)}
/* chips */
.chip-v{background:var(--card)}
.chip-v.empty{border-style:dashed;border-color:var(--edge)}
.chip-v.empty b{color:var(--mu);font-weight:600}
/* checklist rows */
#cl-bar{background:var(--act)}
/* groups / lists selected */
.groups button.sel,.cl-list button.cur,.apt-row.sel,.nr-go.on{background:var(--btn-hi);border-color:var(--act);box-shadow:inset 5px 0 0 var(--act)}
/* tab bar */
#tabs{background:var(--bar);box-shadow:0 -1px 0 var(--line);border-top:0}
#tabs button{color:var(--mu);font-weight:700;position:relative}
#tabs button.act{color:var(--tx);box-shadow:none;background:var(--btn-hi)}
#tabs button.act::before{content:"";position:absolute;left:18%;right:18%;top:0;height:4px;border-radius:0 0 4px 4px;background:var(--act)}
[data-theme=sun] #tabs button.act{background:var(--act-fill);color:var(--on-act)}
[data-theme=sun] #tabs button.act::before{display:none}
/* sheets / toast */
.sheet{background:var(--scrim);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.sheet-box{border-color:var(--edge);box-shadow:var(--shadow-2);border-radius:20px}
.em-box{border-color:var(--bad);border-width:3px;box-shadow:inset 0 6px 0 var(--bad),var(--shadow-2)}
#toast{background:var(--card);color:var(--tx);border:var(--bw-strong) solid var(--ac);box-shadow:var(--shadow-2)}
/* map overlays */
#map-ui button,#pfd-ui button{background:color-mix(in srgb,var(--bar) 86%,transparent);border-color:var(--edge);font-weight:800}
#map-data div{background:color-mix(in srgb,var(--bar) 88%,transparent);border-color:var(--edge);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
#map-data b{color:var(--tx)}
#map-data div.nx{border-color:var(--act);border-width:2px}
/* sun: no greys, thick lines */
[data-theme=sun] .card,[data-theme=sun] .sheet-box,[data-theme=sun] #cl-items li.it.cur,[data-theme=sun] .phases-bar button.now{border-width:3px}
[data-theme=sun] .vs b{color:#000}[data-theme=sun] .vs.red b{color:var(--bad)}[data-theme=sun] .vs.grn b{color:var(--ok)}
[data-theme=sun] #cl-items li.it.ok{color:#000}
[data-theme=night] .next-card .go,[data-theme=night] #cl-check{border:2px solid var(--act)}
[data-theme=sun] #tabs{box-shadow:0 -3px 0 var(--line)}
[data-theme=sun] #top,[data-theme=sun] #vbar{border-bottom:3px solid var(--line);box-shadow:none}
/* night: nothing blue / green / white anywhere (weather categories, Leaflet controls, map background, PFD caption) */
[data-theme=night] .cat{background:var(--btn-hi);color:var(--tx);border:1px solid var(--edge)}
[data-theme=night] #map{background:#000}
[data-theme=night] .leaflet-bar a,[data-theme=night] .leaflet-bar a:hover{background:var(--btn);color:var(--tx);border-color:var(--line)}
[data-theme=night] .leaflet-container{background:#000}
[data-theme=night] #pfd-fps{color:var(--mu);text-shadow:none}
[data-theme=night] .pfd-warn{background:#000;color:var(--warn)}
[data-theme=night] .cpt{border-color:var(--act)}
/* PAD QNH carried over from another airfield */
.chip-v.stale{border-color:var(--warn);border-style:dashed}.chip-v.stale small{color:var(--warn)}
#rt-booked.done{opacity:1;border-color:var(--ok);color:var(--ok)}
/* header: buttons never shrink below their label (only the search box gives way); tighter at iPad-mini portrait */
#top>button{flex-shrink:0}
@media (max-width:800px){#top{gap:4px;padding-left:6px;padding-right:6px}#top button{padding:0 8px}#btn-emer{min-width:84px;margin-left:6px;letter-spacing:.06em}}
@media (max-width:1180px){.brand{display:none}}
@media (max-width:800px){#top button{font-size:.92rem}}
@media (max-width:800px){#btn-emer{margin-left:auto}}
/* night: EMER is the only large bright fill — pressed / on states become outlines */
[data-theme=night] button[aria-pressed=true],[data-theme=night] button.on,[data-theme=night] .seg.on,[data-theme=night] #map-ui button[aria-pressed=true],[data-theme=night] #pfd-ui button[aria-pressed=true],[data-theme=night] .pp-chips button.on,[data-theme=night] #tk-side button.on{background:var(--btn-hi);color:var(--ac);border:2px solid var(--ac)}
[data-theme=night] #btn-air.on{background:var(--btn-hi);color:var(--ok);border:2px solid var(--ok)}
[data-theme=night] #btn-air.arm,[data-theme=night] #btn-freda.due,[data-theme=night] #apt-fav[aria-pressed=true]{background:var(--btn-hi);color:var(--warn);border:2px solid var(--warn)}
[data-theme=night] #ac-svg path{fill:var(--tx)}
[data-theme=night] button.primary{background:var(--btn-hi);color:var(--ac);border:2px solid var(--ac)}
[data-theme=night] #cl-check.fin{background:var(--btn-hi);color:var(--ok);border:2px solid var(--ok)}

/* aircraft profiles */
.acft-warn{margin:0;padding:8px 12px;background:var(--bad-bg);color:var(--bad);font-weight:700;border-bottom:var(--bw) solid var(--bad)}
#ac-reg{flex:1 1 180px;min-height:56px;text-transform:uppercase}
#ac-list button.on{outline:3px solid var(--act);outline-offset:-3px}
@media (max-width:780px){#acft-reg{display:none}}   /* iPad mini portrait: ✈ icon only, header stays one row */

/* ---- Checklist v2 (2026-09-30): raised numbered rows, value pills, one strong current-item signal, visible progress, planning brief ---- */
.cl-head{display:flex;gap:10px;align-items:flex-end;margin-bottom:14px}
.cl-head .kicker{color:var(--ac);letter-spacing:.14em}
.cl-head h2{margin:4px 0 0;font-size:1.65rem;letter-spacing:-.01em}
.cl-head button{background:var(--btn);color:var(--tx);border:1px solid var(--edge);box-shadow:var(--shadow)}
.cl-head button[aria-pressed=true]{background:var(--ac);color:var(--on-ac);border-color:var(--ac)}
.prog{height:12px;border-radius:99px;background:var(--track);border:1px solid var(--track-edge);overflow:hidden;margin:0 0 16px}
#cl-bar{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--ac),var(--ok));transition:width .35s cubic-bezier(.2,.8,.2,1)}
#cl-items{list-style:none;margin:0;padding:0;counter-reset:cl;display:grid;gap:8px}
#cl-items li.it{counter-increment:cl;display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:14px;min-height:64px;padding:8px 14px 8px 12px;
  background:var(--row);border:1px solid var(--row-edge);border-radius:14px;box-shadow:var(--row-shadow);cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}
#cl-items li.it .ck{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--badge);font-size:0;color:transparent}
#cl-items li.it .ck::before{content:counter(cl);font:700 17px var(--num);color:var(--badge-tx)}
#cl-items li.it .n{font-size:1.2rem;font-weight:600;min-width:0}
#cl-items li.it .h{display:block;font-size:.8rem;color:var(--mu);font-weight:400;margin-top:2px}
#cl-items li.it .a{justify-self:end;text-align:right;max-width:46ch;padding:8px 14px;border-radius:10px;background:var(--pill);color:var(--pill-tx);border:1px solid var(--pill-edge);font:700 1rem/1.25 var(--num)}
#cl-items li.it.cur{background:var(--cur-bg);border:2px solid var(--act);box-shadow:var(--glow),var(--row-shadow);min-height:74px}
#cl-items li.it.cur .ck{background:var(--act-fill)}#cl-items li.it.cur .ck::before{color:var(--on-act)}
#cl-items li.it.cur .n{font-size:1.35rem;font-weight:700}
#cl-items li.it.ok{box-shadow:none}
#cl-items li.it.ok .ck{background:var(--ok-fill)}#cl-items li.it.ok .ck::before{content:"\2713";font:900 22px system-ui;color:var(--on-ok)}
#cl-items li.it.ok .n{color:var(--mu);font-weight:500}
#cl-items li.it.ok .a{background:transparent;border-color:transparent;color:var(--mu)}
#cl-items li.nt{padding:8px 14px;font-style:italic;color:var(--warn);font-weight:700}
.aid-t{padding:0 12px;font:700 .95rem var(--num);color:var(--ac);border:1px solid var(--pill-edge)!important}
li.aid{margin:-2px 0 6px 26px;padding:16px 18px;background:var(--sub);border:1px solid var(--row-edge);border-left:3px solid var(--act);border-radius:0 12px 12px 12px;cursor:default}
.aid-why{margin:0 0 10px;font-size:1.05rem;line-height:1.45}
.aid-live{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.chip{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:99px;font:700 .85rem var(--num);border:1px solid var(--line);background:var(--btn);color:var(--tx)}
.chip.good{background:var(--good-bg);color:var(--ok);border-color:currentColor}.chip.amb{background:var(--amb-bg);color:var(--warn);border-color:currentColor}.chip.bad{background:var(--bad-soft);color:var(--bad);border-color:currentColor}
.aid-subs{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;counter-reset:st}
.aid-subs li{counter-increment:st;display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 14px;background:var(--row);border:1px solid var(--row-edge);border-radius:10px;font-size:.98rem;line-height:1.3;cursor:pointer}
.aid-subs .sck{flex:none;width:28px;height:28px;border-radius:7px;border:2px solid var(--edge);display:grid;place-items:center;font-size:0;color:transparent}
.aid-subs .sck::before{content:counter(st);font:700 13px var(--num);color:var(--mu)}
.aid-subs li.ok{color:var(--mu)}.aid-subs li.ok .sck{background:var(--ok-fill);border-color:var(--ok-fill)}.aid-subs li.ok .sck::before{content:"\2713";font:900 16px system-ui;color:var(--on-ok)}
.aid-tools{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.aid-tools button{color:var(--ac);border:1px solid var(--ac);background:var(--btn)}
.aid-ntm h4{margin:12px 0 6px;font-size:.95rem}.aid-ntm h4 small{color:var(--mu);font-family:var(--num)}
.ntm{border:1px solid var(--row-edge);border-radius:10px;margin-bottom:6px;background:var(--row)}
.ntm summary{min-height:48px;display:flex;align-items:center;gap:8px;padding:0 12px;cursor:pointer;font-family:var(--num);font-size:.9rem}
.ntm pre{margin:0;padding:8px 12px 12px;white-space:pre-wrap;font:.9rem/1.4 var(--num);color:var(--tx)}
.cl-foot{position:sticky;bottom:0;display:flex;gap:12px;padding-top:14px;background:linear-gradient(transparent,var(--card) 14px)}
#cl-check{flex:2;min-height:76px;border:0;border-radius:16px;color:var(--on-chk);background:linear-gradient(180deg,var(--chk-top),var(--chk-bot));
  box-shadow:inset 0 1px 0 #ffffff2e,0 4px 0 var(--chk-bot),0 10px 24px #00000066;font-size:1.5rem;font-weight:800;letter-spacing:.06em;transition:transform .06s,box-shadow .06s}
#cl-check:active{transform:translateY(3px);box-shadow:inset 0 1px 0 #ffffff1f,0 1px 0 var(--chk-bot),0 4px 10px #00000066}
#cl-check small{margin-left:12px;padding:4px 10px;border-radius:8px;background:#00000047;font:700 1rem var(--num);letter-spacing:0;opacity:1}
#cl-check.fin{background:var(--ok-fill);color:var(--on-ok);box-shadow:0 4px 0 #0000004d}
#cl-next{flex:1;min-height:76px;border-radius:16px;background:var(--btn);color:var(--tx);border:1px solid var(--edge);font-weight:600}
[data-theme=sun] #cl-check,[data-theme=night] #cl-check{box-shadow:0 3px 0 var(--chk-bot)}
[data-theme=sun] #cl-check small{background:#000}
@media (prefers-reduced-motion:reduce){#cl-bar,#cl-items li.it,#cl-check{transition:none}}
@media (max-width:900px){.aid-subs{grid-template-columns:1fr}li.aid{margin-left:10px}#cl-items li.it .a{max-width:40vw}}

/* ---- Route planner ---- */
.rp h3{margin:16px 0 8px;font-size:1.05rem}.rp h3 small{font-weight:400;font-size:.8rem}
.rp-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px}
.rp-sum{margin-top:12px}.rp-sum b{font-family:var(--num)}
.rp-flags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.rp-ap{border:1px solid var(--row-edge);background:var(--row);border-radius:12px;padding:10px 12px;margin-bottom:8px}
.rp-ap-h{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:4px}
.rp-ap .raw{font:.85rem/1.35 var(--num);margin-top:4px}
.rp-price{cursor:pointer;text-decoration:underline dotted}
@media (max-width:900px){.rp-form{grid-template-columns:repeat(3,minmax(0,1fr))}}
