/* AeroNav 2.x design system (phase 2, 2026-09-30).
   Colour: Radix-Colors-style 12-step scales per theme, mapped to SEMANTIC roles that components use:
     --bg  --surface  --surface-2  --text  --text-muted  --border  --accent  --accent-contrast  --warn  --danger  --ok  --focus
   plus role tokens for fills/tints (--*-fill, --on-*, --*-bg), the checklist tokens (--row, --pill …), map/instrument inks.
   Legacy short names (--tx --mu --card --btn --line --ac --on-ac --bad) are aliases of the semantic roles (tests + older code).
   Themes: day (default, porcelain / navy / cobalt) · dark (navy-black, cyan) · sun (sunlight high contrast) · night (red only).
   Meaning: accent = interactive / pilot-set; --act (magenta; red in night) = active / current / route; ok / warn / danger = status only.
   Night rule (tested for every colour in effect): B <= G, B <= 0x9A, G <= 0xC0 — red / salmon only, nothing blue, green or white. */
@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{
  /* legacy aliases → semantic roles */
  --tx:var(--text);--mu:var(--text-muted);--card:var(--surface);--btn:var(--surface-2);--line:var(--border);--ac:var(--accent);--on-ac:var(--accent-contrast);--bad:var(--danger);
  --border-strong:var(--edge);
  /* motion (all non-essential motion is removed by prefers-reduced-motion or Settings › Motion off → [data-motion=off]) */
  --ease:cubic-bezier(.2,.8,.2,1);--dur-press:100ms;--dur-tab:160ms;--dur-sheet:200ms;--dur-confirm:140ms;--dur-theme:200ms;
  --tap:56px;--rad:12px;--rad-sm:8px;--rad-lg:16px;--bw:1px;--bw-strong:2px;
  --num:"B612 Mono",system-ui,sans-serif;
}
/* ---- DARK: navy-black glass cockpit, cyan accent (the v2.0 look) ---- */
[data-theme=dark]{
  color-scheme:dark;
  --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;--chk-chip:#00000047;--chk-hi:#ffffff2e;--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;--surface:#111823;--surface-2:#18212f;--btn-hi:#1f2b3d;--border:#243044;--edge:#5a6b85;
  --text:#eef3f8;--text-muted:#9fadc1;--accent:#3fd8f2;--accent-contrast:#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;
  --danger:#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;--press-shadow:0 4px 10px #00000066;
  --map-bg:#0d1626;--map-label:#ffffff;--map-halo:#000000;--inst-bg:#000000;--inst-scrim:#000000cc;--inst-warn:#fbbf24;--inst-tx:#ffffff;
  --cat-vfr:#22c55e;--cat-mvfr:#3b82f6;--cat-ifr:#ef4444;--cat-lifr:#d946ef;--on-cat:#000000;--on-cat-mvfr:#ffffff;
}
/* ---- DAY: warm porcelain, white surfaces, deep navy text, cobalt controls, restrained amber, thin borders, minimal shadows ---- */
[data-theme=day]{
  color-scheme:light;
  /* scales (Radix-style steps: 1–2 app bg, 3–5 component bg, 6–8 borders, 9–10 solid, 11–12 text) */
  --sand-1:#fdfdfc;--sand-2:#f5f4f0;--sand-3:#eeede8;--sand-4:#e6e4de;--sand-6:#d7d4cc;--sand-8:#a9a498;
  --navy-9:#5b6781;--navy-11:#3a465e;--navy-12:#13203a;
  --cobalt-3:#edf2fe;--cobalt-4:#e1e9fd;--cobalt-6:#b8caf6;--cobalt-9:#2152d6;--cobalt-10:#1b46bd;--cobalt-11:#1a3fa6;
  --amber-3:#fdf3df;--amber-7:#e9c27a;--amber-9:#f0b429;--amber-11:#87490c;
  --green-3:#e7f4ec;--green-9:#1e7a4c;--green-11:#17643e;
  --red-3:#fcebed;--red-9:#b42335;--red-11:#a01e2f;
  --magenta-3:#faeef9;--magenta-9:#98208d;
  /* roles */
  --bg:var(--sand-2);--bar:#ffffff;--surface:#ffffff;--surface-2:#ffffff;--btn-hi:var(--cobalt-3);--border:var(--sand-6);--edge:var(--sand-8);
  --text:var(--navy-12);--text-muted:var(--navy-11);--accent:var(--cobalt-9);--accent-contrast:#ffffff;
  --act:var(--magenta-9);--act-fill:var(--magenta-9);--on-act:#ffffff;
  --ok:var(--green-11);--ok-fill:var(--green-9);--on-ok:#ffffff;
  --warn:var(--amber-11);--warn-fill:var(--amber-9);--on-warn:#241600;
  --danger:var(--red-11);--bad-fill:var(--red-9);--on-bad:#ffffff;--bad-bg:var(--red-3);
  --scrim:#13203a73;--focus:var(--cobalt-9);
  --shadow:0 1px 2px #13203a0f;--shadow-2:0 10px 30px #13203a24;--press-shadow:0 1px 2px #13203a1f;
  --row:#ffffff;--row-edge:var(--sand-6);--cur-bg:var(--cobalt-3);--pill:var(--cobalt-3);--pill-tx:var(--cobalt-11);--pill-edge:var(--cobalt-6);--badge:var(--sand-3);--badge-tx:var(--navy-12);
  --track:var(--sand-3);--track-edge:var(--sand-6);--chk-top:var(--cobalt-9);--chk-bot:var(--cobalt-10);--on-chk:#ffffff;--chk-chip:#ffffff2e;--chk-hi:#ffffff2e;--good-bg:var(--green-3);--amb-bg:var(--amber-3);--bad-soft:var(--red-3);--sub:var(--sand-1);
  --row-shadow:0 1px 2px #13203a0d;--glow:0 0 0 3px #2152d62e;
  --map-bg:#e8eef0;--map-label:#13203a;--map-halo:#ffffff;--inst-bg:#000000;--inst-scrim:#000000cc;--inst-warn:#fbbf24;--inst-tx:#ffffff;
  --cat-vfr:#1e7a4c;--cat-mvfr:#2152d6;--cat-ifr:#b42335;--cat-lifr:#98208d;--on-cat:#ffffff;--on-cat-mvfr:#ffffff;
}
/* ---- SUN: direct-sunlight high contrast — white / black, 2–3 px teal lines, no greys ---- */
[data-theme=sun]{
  color-scheme:light;
  --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;--chk-chip:#000000;--chk-hi:#ffffff00;--good-bg:#e2f7ea;--amb-bg:#fff4dc;--bad-soft:#ffe6e9;--sub:#ffffff;
  --row-shadow:none;--glow:0 0 0 3px #a3008f;
  --bg:#ffffff;--bar:#ffffff;--surface:#ffffff;--surface-2:#ffffff;--btn-hi:#e3f7fb;--border:#00606e;--edge:#00606e;
  --text:#000000;--text-muted:#1d2530;--accent:#00596a;--accent-contrast:#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;
  --danger:#b3001b;--bad-fill:#b3001b;--on-bad:#ffffff;--bad-bg:#ffecee;
  --scrim:#000000cc;--focus:#000000;--shadow:none;--shadow-2:none;--press-shadow:none;--bw:2px;--bw-strong:3px;
  --map-bg:#e8eef0;--map-label:#000000;--map-halo:#ffffff;--inst-bg:#000000;--inst-scrim:#000000cc;--inst-warn:#fbbf24;--inst-tx:#ffffff;
  --cat-vfr:#006b33;--cat-mvfr:#00407a;--cat-ifr:#b3001b;--cat-lifr:#8e0f9c;--on-cat:#ffffff;--on-cat-mvfr:#ffffff;
}
/* ---- NIGHT (cockpit, dark-adapted): near-black warm bg, brown-black panels, warm red / salmon text and controls ---- */
[data-theme=night]{
  color-scheme:dark;
  --ember-1:#0e0807;--ember-2:#140b09;--ember-3:#1a0f0d;--ember-4:#22130f;--ember-5:#2e1813;--ember-6:#4a2a22;--ember-8:#8a4535;
  --ember-9:#f0907a;--ember-10:#ff7a62;--ember-11:#c07e6e;--ember-12:#ec9a88;
  --bg:var(--ember-1);--bar:var(--ember-2);--surface:var(--ember-3);--surface-2:var(--ember-4);--btn-hi:var(--ember-5);--border:var(--ember-6);--edge:var(--ember-8);
  --text:var(--ember-12);--text-muted:var(--ember-11);--accent:var(--ember-9);--accent-contrast:#1a0907;
  --act:var(--ember-10);--act-fill:#4a1a12;--on-act:#ff9a80;
  --ok:#e0a878;--ok-fill:#b8703f;--on-ok:#120604;
  --warn:#ffa060;--warn-fill:#ff8c3a;--on-warn:#140600;
  --danger:#ff5a42;--bad-fill:#e8321c;--on-bad:#000000;--bad-bg:#1f0605;
  --scrim:#000000e6;--focus:#ffa060;--shadow:none;--shadow-2:none;--press-shadow:none;
  --row:#170c0a;--row-edge:#3a1d16;--cur-bg:#2e120d;--pill:#22100c;--pill-tx:#f0a080;--pill-edge:#5a2518;--badge:#2a130e;--badge-tx:#f0a080;
  --track:#22100c;--track-edge:#a8452a;--chk-top:#8a2412;--chk-bot:#6a1a0c;--on-chk:#ffc09a;--chk-chip:#00000066;--chk-hi:#00000000;--good-bg:#221008;--amb-bg:#2a1206;--bad-soft:#300806;--sub:#120a08;
  --row-shadow:0 6px 18px #00000099;--glow:0 0 0 3px #ff7a6240;
  --map-bg:#000000;--map-label:#ff6a55;--map-halo:#000000;--inst-bg:#000000;--inst-scrim:#000000;--inst-warn:#ffa060;--inst-tx:#c07e6e;
  --cat-vfr:#2e1813;--cat-mvfr:#2e1813;--cat-ifr:#2e1813;--cat-lifr:#2e1813;--on-cat:#ec9a88;--on-cat-mvfr:#ec9a88;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);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(--text)}
button{min-height:var(--tap);min-width:var(--tap);padding:0 16px;border-radius:var(--rad);border:var(--bw) solid var(--border);background:var(--surface-2);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(--accent);color:var(--accent-contrast);border-color:var(--accent)}
button[aria-pressed=true],button.on{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}
input,select{min-height:52px;padding:0 12px;border-radius:10px;border:var(--bw) solid var(--border);background:var(--bg);width:100%}
input:focus,select:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
label{display:flex;flex-direction:column;font-size:.8rem;color:var(--text-muted);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(--text-muted);font-weight:400;font-size:.8rem;margin-left:4px}
.muted{color:var(--text-muted)}.small{font-size:.85rem}.src{color:var(--text-muted);font-size:.78rem;margin:.6rem 0 0}
.kicker{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-weight:700}
.good{color:var(--ok)}.bad{color:var(--danger)}.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(--border)}
.brand{font-size:1.05rem;white-space:nowrap;letter-spacing:.02em}.reg{color:var(--accent);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(--accent);font-size:.8em;margin-left:1px}.clock small{color:var(--text-muted);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(--danger);color:var(--danger)}#gps-pill.fix{border-color:var(--ok);color:var(--ok);background:var(--surface-2)}#gps-pill.sim{border-color:var(--act);color:var(--act);background:var(--surface-2)}
#btn-freda{font-variant-numeric:tabular-nums}
#btn-freda.run{border-color:var(--accent)}
#btn-freda.due{background:var(--warn-fill);border-color:var(--warn-fill);color:var(--on-warn)}
#btn-emer{margin-left:10px;background:var(--bad-fill);border-color:var(--bad-fill);color:var(--on-bad);letter-spacing:.06em}
#vbar{display:flex;gap:5px;padding:5px 10px;overflow-x:auto;background:var(--bar);border-bottom:var(--bw) solid var(--border);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(--border);border-radius:8px;padding:2px 9px;line-height:1.2;background:var(--surface)}
.vs b{font-size:1.15rem;color:var(--accent);font-variant-numeric:tabular-nums}.vs small{font-size:.68rem;color:var(--text-muted);font-weight:700}
.vs.red b{color:var(--danger)}.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(--surface);border:2px solid var(--accent);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(--text-muted);display:block}mark{background:var(--accent);color:var(--accent-contrast);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(--surface);border:var(--bw) solid var(--border);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(--text-muted);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(--border);text-align:left}
.tbl th{font-size:.78rem;color:var(--text-muted);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(--text-muted);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(--text-muted);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(--surface)}
.tile small{display:block;color:var(--text-muted);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(--text-muted);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(--accent);font-weight:800;font-variant-numeric:tabular-nums}
#apt-phones a{color:var(--accent)}

/* ---------- 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(--danger)}
.groups button small{font-size:.72rem;color:var(--text-muted)}.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(--text-muted);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(--danger)}
.em-view{border-color:var(--danger);background:linear-gradient(var(--bad-bg),var(--surface) 140px)}.em-view #cl-title{color:var(--danger)}.em-view #cl-bar{background:var(--danger)}
#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(--surface) 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(--border);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(--border)}
.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(--danger)}.rt-em h2{color:var(--danger)}

/* ---------- 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(--accent);color:var(--accent-contrast);border-color:var(--accent)}
#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(--text)}
.cpt.vrp{background:var(--accent);color:var(--accent-contrast)}
#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:var(--map-bg)}
#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(--surface) 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(--accent);color:var(--accent-contrast)}
#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(--surface) 90%,transparent);border:var(--bw) solid var(--border);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(--text-muted);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(--surface);padding:6px 12px;border-radius:10px;max-width:calc(100% - 110px);border:var(--bw) solid var(--border)}
#map-msg:empty{display:none}
#hud{position:absolute;z-index:1000;left:10px;bottom:10px;border-radius:12px;border:2px solid var(--border);width:340px;height:227px}
.vrp-lbl{background:transparent;border:0;box-shadow:none;color:var(--map-label);font-weight:700;text-shadow:0 0 3px var(--map-halo),0 0 3px var(--map-halo),0 0 2px var(--map-halo)}
.vrp-lbl::before{display:none}
.acft{filter:drop-shadow(0 0 2px var(--map-halo))}
[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] .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:var(--inst-bg)}
#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:var(--inst-tx);font-size:.8rem;text-shadow:0 0 3px var(--inst-bg)}
.pfd-warn{position:absolute;top:10px;right:10px;max-width:34%;background:var(--inst-scrim);color:var(--inst-warn);padding:6px 12px;border-radius:10px;font-size:.78rem;font-weight:700}

/* ---------- plan / wx ---------- */
.wx{border-top:1px solid var(--border);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:var(--on-cat);margin-right:6px}
.VFR{background:var(--cat-vfr)}.MVFR{background:var(--cat-mvfr);color:var(--on-cat-mvfr)}.IFR{background:var(--cat-ifr)}.LIFR{background:var(--cat-lifr)}
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px;margin-top:8px}
.kv div{border:var(--bw) solid var(--border);border-radius:10px;padding:5px 10px}.kv small{display:block;color:var(--text-muted);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(--border);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(--text-muted)}

/* ---------- 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(--border);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(--text-muted)}
#tabs button.act{color:var(--act);box-shadow:inset 0 4px 0 var(--act)}
[data-theme=sun] #tabs button{color:var(--text)}[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(--surface);border:2px solid var(--border);border-radius:18px;padding:14px;width:min(900px,100%)}
.em-box{border-color:var(--danger)}
.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(--danger);color:var(--danger)}
.emer-grid h3{grid-column:1/-1;margin:.4rem 0 0;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
.freda{font-size:1.2rem;padding-left:1.4rem}.freda li{margin:6px 0}.freda b{color:var(--accent)}
#toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 120px);transform:translateX(-50%);pointer-events:none;background:var(--accent);color:var(--accent-contrast);padding:12px 20px;border-radius:12px;font-weight:700;z-index:3000;max-width:90vw;box-shadow:var(--shadow-2)}

/* ---------- 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(--border)}
  .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(--accent);color:var(--accent-contrast);border-color:var(--accent)}
.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(--text-muted);font-weight:700}
.chip-v b{font-size:1.35rem;color:var(--accent);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(--text-muted);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(--text-muted)}
.kp.two{grid-template-columns:1fr 1fr}.kp.two b{font-size:2.2rem}.kp.two small{color:var(--text-muted)}
.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(--border);padding-top:10px}
.scr-wrap{position:relative}
#scribble{width:100%;height:300px;display:block;border-radius:12px;border:var(--bw) dashed var(--border);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(--border)}.pad-log li b:first-child{color:var(--text-muted);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(--surface-2);border:var(--bw) solid var(--border);color:var(--accent)}
.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(--border)}
.gl-l{font-size:.72rem;font-weight:800;letter-spacing:.1em;padding-top:6px;color:var(--text-muted)}
.gl.say .gl-l{color:var(--accent)}.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(--text-muted);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(--border)}
#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(--danger)}.tile.bad-t b,.tile.bad-t small{color:var(--danger)}
.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(--text-muted);margin-left:6px}
.gng-v.go{color:var(--ok)}.gng-v.caution{color:var(--warn)}.gng-v.nogo{color:var(--danger)}
.set-b{color:var(--accent)}
/* 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(--border);border-radius:var(--rad);color:var(--accent);font-weight:700;text-decoration:none;background:var(--surface-2)}
.tel-btn b{font-size:1.25rem;font-variant-numeric:tabular-nums;white-space:nowrap}.tel-btn span{color:var(--text);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(--border);border-radius:var(--rad);color:var(--accent);font-weight:700;text-decoration:none;background:var(--surface-2)}
.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(--accent)}.setchips{display:flex;flex-wrap:wrap;gap:6px}.setchips span{border:var(--bw) solid var(--border);border-radius:10px;padding:4px 10px;font-weight:700}.setchips small{display:block;font-size:.66rem;color:var(--text-muted);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(--border);border-radius:12px;padding:10px 14px;min-height:64px}
.set-row small{font-weight:800;color:var(--text-muted);letter-spacing:.1em}.set-row b{font-size:1.45rem;color:var(--accent);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(--danger)}
/* 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(--text-muted);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(--text-muted)}
.badge.high{color:var(--ok)}.badge.medium{color:var(--warn)}.badge.low{color:var(--danger)}.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(--text);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(--border);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(--border);padding:4px 0}
.fq-row small{display:block;font-size:.75rem;color:var(--text-muted)}.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(--accent);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(--accent)}
/* 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(--text-muted);font-size:.78rem;font-weight:500}
.nr-num{text-align:right;white-space:nowrap}.nr-num b{font-size:1.4rem;color:var(--accent);font-variant-numeric:tabular-nums}.nr-num small{display:block;color:var(--text);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(--text-muted);margin-bottom:3px}
.pp-chips{margin:0 0 4px}.pp-chips button.on{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}
#ppr-prev{white-space:pre-wrap;font:.85rem/1.35 ui-monospace,Consolas,monospace;color:var(--text-muted);border:var(--bw) dashed var(--border);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(--border);margin-top:10px}#tk-side button.on{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}
.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(--text);min-height:56px;padding:0 8px;border:var(--bw) solid var(--border);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(--accent)}
.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(--surface);border:2px solid var(--accent)}
}
@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(--text-muted);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(--text-muted);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(--text-muted);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(--border);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(--border);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(--border)}
.brand{font-weight:800;letter-spacing:.04em}
#btn-pad{background:transparent;color:var(--accent);border:var(--bw-strong) solid var(--accent)}
#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(--border)}
.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(--border)}
.vs b{color:var(--text);font-size:1.2rem;font-weight:700}
.vs small{color:var(--accent);font-weight:800;letter-spacing:.04em}
.vs small i{color:var(--text-muted);font-weight:500}
.vs.grn b{color:var(--ok)}.vs.red b{color:var(--danger)}
/* phase bar */
.phases-bar button{background:var(--surface)}
.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(--border)}
.phases-bar button.done small::after{content:" ✓"}
/* cards */
.card{border-radius:var(--rad-lg);box-shadow:var(--shadow)}
.next-card{border-color:var(--border);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(--text-muted);letter-spacing:.1em}
/* tiles */
.tile{background:var(--surface);border-color:var(--border);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(--danger);box-shadow:inset 4px 0 0 var(--danger)}
/* chips */
.chip-v{background:var(--surface)}
.chip-v.empty{border-style:dashed;border-color:var(--edge)}
.chip-v.empty b{color:var(--text-muted);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(--border);border-top:0}
#tabs button{color:var(--text-muted);font-weight:700;position:relative}
#tabs button.act{color:var(--text);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(--danger);border-width:3px;box-shadow:inset 0 6px 0 var(--danger),var(--shadow-2)}
#toast{background:var(--surface);color:var(--text);border:var(--bw-strong) solid var(--accent);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(--text)}
#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:var(--text)}[data-theme=sun] .vs.red b{color:var(--danger)}[data-theme=sun] .vs.grn b{color:var(--ok)}
[data-theme=sun] #cl-items li.it.ok{color:var(--text)}
[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(--border)}
[data-theme=sun] #top,[data-theme=sun] #vbar{border-bottom:3px solid var(--border);box-shadow:none}
/* night: nothing blue / green / white anywhere (weather categories, Leaflet controls, map background, PFD caption) */
[data-theme=night] .cat{border:1px solid var(--edge)}
[data-theme=night] .leaflet-bar a,[data-theme=night] .leaflet-bar a:hover{background:var(--surface-2);color:var(--text);border-color:var(--border)}
[data-theme=night] .leaflet-container{background:var(--map-bg)}
[data-theme=night] #pfd-fps{color:var(--text-muted);text-shadow:none}
[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(--accent);border:2px solid var(--accent)}
[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(--text)}
[data-theme=night] button.primary{background:var(--btn-hi);color:var(--accent);border:2px solid var(--accent)}
[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(--danger);font-weight:700;border-bottom:var(--bw) solid var(--danger)}
#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(--accent);letter-spacing:.14em}
.cl-head h2{margin:4px 0 0;font-size:1.65rem;letter-spacing:-.01em}
.cl-head button{background:var(--surface-2);color:var(--text);border:1px solid var(--edge);box-shadow:var(--shadow)}
.cl-head button[aria-pressed=true]{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}
.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(--accent),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(--text-muted);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(--text-muted);font-weight:500}
#cl-items li.it.ok .a{background:transparent;border-color:transparent;color:var(--text-muted)}
#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(--accent);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(--border);background:var(--surface-2);color:var(--text)}
.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(--danger);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(--text-muted)}
.aid-subs li.ok{color:var(--text-muted)}.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(--accent);border:1px solid var(--accent);background:var(--surface-2)}
.aid-ntm h4{margin:12px 0 6px;font-size:.95rem}.aid-ntm h4 small{color:var(--text-muted);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(--text)}
.cl-foot{position:sticky;bottom:0;display:flex;gap:12px;padding-top:14px;background:linear-gradient(transparent,var(--surface) 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 var(--chk-hi),0 4px 0 var(--chk-bot),var(--press-shadow);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 var(--chk-hi),0 1px 0 var(--chk-bot),var(--press-shadow)}
#cl-check small{margin-left:12px;padding:4px 10px;border-radius:8px;background:var(--chk-chip);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 var(--chk-bot)}
#cl-next{flex:1;min-height:76px;border-radius:16px;background:var(--surface-2);color:var(--text);border:1px solid var(--edge);font-weight:600}
[data-theme=sun] #cl-check,[data-theme=night] #cl-check,[data-theme=day] #cl-check{box-shadow:0 3px 0 var(--chk-bot)}
@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))}}

/* Pre-flight brief panel (route planner) — theme tokens only */
#rp-brief.rpb{display:block;border:2px solid var(--edge);border-radius:10px;padding:10px 12px;margin:10px 0;background:var(--surface)}#rp-brief.rpb[hidden]{display:none}
.brief-v{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:8px 12px;border-radius:8px;border:3px solid var(--edge);margin-bottom:8px}
.brief-v b{font-size:1.5rem;letter-spacing:.06em}.brief-v span{font-weight:700;letter-spacing:.1em;color:var(--text-muted)}.brief-v small{color:var(--text-muted)}
.brief-v.go{border-color:var(--ok)}.brief-v.go b{color:var(--ok)}.brief-v.caution{border-color:var(--warn)}.brief-v.caution b{color:var(--warn)}.brief-v.nogo{border-color:var(--danger)}.brief-v.nogo b{color:var(--danger)}
.brief-s h4{margin:12px 0 4px}.brief-s ul{margin:0;padding-left:18px}.brief-s li{margin:3px 0;line-height:1.35;overflow-wrap:anywhere}
.brief-s li.bl-nogo{color:var(--danger)}.brief-s li.bl-caution{color:var(--warn)}.brief-s li.bl-ok{color:var(--ok)}
.brief-ai{border-top:2px dashed var(--edge);margin-top:12px;padding-top:4px}.brief-ai h4 small{display:block;font-weight:400;color:var(--warn)}
#rp-brief-btn.on{border-color:var(--act);box-shadow:inset 0 -4px 0 var(--act)}

/* ===== Phase 2 design system (2026-09-30): icons, header toggles, Settings sheet, Day theme details, motion ===== */
/* icons: local Lucide-style sprite in index.html, stroke = currentColor so every theme (incl. Night) inks them */
svg.i{width:20px;height:20px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-4px}
button > svg.i:first-child,a > svg.i:first-child{margin-right:8px}
button.hb > svg.i:first-child,#tabs button > svg.i{margin-right:0}
h2 > svg.i{margin-right:8px;vertical-align:-3px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* header buttons with icon + label (label stays visible; stacks under the icon on portrait tablets) */
#top button.hb{display:inline-flex;align-items:center;justify-content:center;gap:8px}
#btn-theme{min-width:var(--tap)}
#btn-theme[aria-pressed=true]{background:var(--btn-hi);color:var(--act);border:var(--bw-strong) solid var(--act)}
#btn-set{background:transparent;box-shadow:none}
/* search box with a leading icon (icon sits in the same grid cell as the input) */
.q-wrap{flex:1;min-width:120px;display:grid;align-items:center}
.q-wrap > *{grid-area:1/1}
.q-wrap .q-ic{justify-self:start;margin-left:14px;color:var(--text-muted);pointer-events:none;z-index:1}
#q{flex:none;min-width:0;width:100%;padding-left:44px}
@media (max-width:1400px){   /* tablets: icon over label keeps the header one row */
  #top button.hb{flex-direction:column;gap:3px;font-size:.74rem;line-height:1;padding:0 8px}
  #top button.hb svg.i{width:22px;height:22px}
}
@media (max-width:800px){
  #top button.hb{padding:0 6px;font-size:.72rem}
  #btn-freda{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;padding:0 8px!important}
  #btn-emer{min-width:72px}
  .q-wrap{flex:0 0 56px;min-width:56px}
  .q-wrap .q-ic{justify-self:center;margin-left:0;width:22px;height:22px}
  #q{flex:none;width:56px;padding:0}
  #q:not(:focus):not(.has)::placeholder{color:transparent}
  #q:focus,#q.has{padding-left:12px}
}
@media (max-width:700px){.q-wrap{order:9;flex:1 1 100%}.q-wrap .q-ic{justify-self:start;margin-left:14px}#q{width:100%;padding-left:44px}}
/* tab bar: icon over label, one sliding indicator */
#tabs{position:relative}
#tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1.1}
#tabs button svg.i{width:22px;height:22px}
#tabs button.act::before{display:none}
#tab-ind{position:absolute;left:0;top:0;height:4px;width:0;border-radius:0 0 4px 4px;background:var(--act);pointer-events:none;
  transition:transform var(--dur-tab) var(--ease),width var(--dur-tab) var(--ease)}
[data-theme=sun] #tab-ind{display:none}
@media (max-width:480px){#tabs{overflow-x:auto;scrollbar-width:none}#tabs button{flex:0 0 auto;min-width:64px;padding:0 6px;font-size:.78rem}}
/* Settings sheet */
.set-box h3{margin:14px 0 8px;font-size:1rem}
.theme-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.theme-pick button{display:flex;align-items:center;gap:12px;text-align:left;min-height:64px;padding:8px 14px}
.theme-pick button span{display:flex;flex-direction:column;line-height:1.2}.theme-pick small{color:var(--text-muted);font-weight:500;font-size:.8rem}
.theme-pick button svg.i{width:24px;height:24px;margin:0}
.theme-pick button[aria-checked=true]{background:var(--btn-hi);color:var(--text);border:var(--bw-strong) solid var(--accent);box-shadow:inset 4px 0 0 var(--accent)}
.set-sw{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(360px,100%)}
.set-sw b{min-width:3.2em;padding:6px 10px;border-radius:99px;background:var(--surface-2);border:var(--bw) solid var(--edge);text-align:center}
.set-sw[aria-checked=true] b{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}
[data-theme=night] .set-sw[aria-checked=true] b{background:var(--btn-hi);color:var(--accent)}
/* Day theme: thin borders, minimal shadows, cobalt primary controls, restrained amber */
[data-theme=day] .card{box-shadow:var(--shadow)}
[data-theme=day] #top{box-shadow:0 1px 0 var(--border)}
[data-theme=day] #tabs button.act{background:var(--btn-hi);color:var(--accent)}
[data-theme=day] #tab-ind{background:var(--accent)}
[data-theme=day] .next-card{box-shadow:inset 4px 0 0 var(--accent),var(--shadow)}
[data-theme=day] .next-card .go{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}
[data-theme=day] #btn-pad{border-width:var(--bw)}
[data-theme=day] #btn-emer{background:var(--surface);color:var(--danger);border:var(--bw-strong) solid var(--danger);box-shadow:none}
[data-theme=day] #btn-emer:active{background:var(--bad-soft)}
[data-theme=day] .phases-bar button.now{box-shadow:inset 0 -4px 0 var(--accent);border-color:var(--accent)}
[data-theme=day] .phases-bar button.now small{color:var(--accent)}
[data-theme=day] .groups button.sel,[data-theme=day] .cl-list button.cur,[data-theme=day] .apt-row.sel,[data-theme=day] .nr-go.on{border-color:var(--accent);box-shadow:inset 5px 0 0 var(--accent)}
[data-theme=day] #cl-items li.it.cur{border-color:var(--accent)}
[data-theme=day] #cl-items li.it.cur .ck{background:var(--accent)}
[data-theme=day] #cl-bar{background:var(--accent)}
[data-theme=day] input,[data-theme=day] select{background:var(--surface);border-color:var(--sand-8)}
[data-theme=day] .sheet{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
[data-theme=day] .leaflet-bar a{color:var(--text)}
/* ---- motion ---- */
button{transition:background-color var(--dur-press) var(--ease),border-color var(--dur-press) var(--ease),color var(--dur-press) var(--ease),transform var(--dur-press) var(--ease)}
button:active{transform:scale(.97)}
#tabs button:active,#top button:active{transform:scale(.95)}
#cl-check{transition:transform var(--dur-press) var(--ease),box-shadow var(--dur-press) var(--ease)}
#cl-bar{transition:width var(--dur-tab) var(--ease)}
#cl-items li.it{transition:background-color var(--dur-confirm) var(--ease),border-color var(--dur-confirm) var(--ease),box-shadow var(--dur-confirm) var(--ease)}
#cl-items li.it.just-ok{animation:cl-ok var(--dur-confirm) var(--ease)}
#cl-items li.it.just-ok .ck{animation:ck-pop var(--dur-confirm) var(--ease)}
@keyframes cl-ok{from{background-color:var(--good-bg);transform:scale(.985)}to{transform:none}}
@keyframes ck-pop{from{transform:scale(.7)}to{transform:none}}
.sheet:not([hidden]){animation:sheet-scrim var(--dur-sheet) var(--ease)}
.sheet:not([hidden]) > .sheet-box{animation:sheet-in var(--dur-sheet) var(--ease)}
@keyframes sheet-scrim{from{opacity:0}}
@keyframes sheet-in{from{opacity:0;transform:translateY(18px)}}
.sheet-ghost{position:fixed;inset:0;z-index:2499;display:flex;align-items:flex-start;justify-content:center;padding:70px 12px 12px;overflow:hidden;background:var(--scrim);pointer-events:none}
.sheet-ghost *{pointer-events:none!important}
/* theme change: Day ↔ Dark ↔ Sunlight cross-fade (~200 ms, ground only); into / out of Night instant */
.theme-fade,.theme-fade *,.theme-fade *::before,.theme-fade *::after{transition:background-color var(--dur-theme) linear,color var(--dur-theme) linear,border-color var(--dur-theme) linear,fill var(--dur-theme) linear,stroke var(--dur-theme) linear!important}
.theme-instant,.theme-instant *,.theme-instant *::before,.theme-instant *::after{transition:none!important;animation:none!important}
/* no motion: Settings › Motion off, or the OS "reduce motion" setting (map zoom keeps Leaflet's own functional animation) */
[data-motion=off] *,[data-motion=off] *::before,[data-motion=off] *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
[data-motion=off] .leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)!important}
[data-theme=day] li.aid{border-left-color:var(--accent)}
@media (max-width:700px){#q:not(:focus):not(.has)::placeholder{color:var(--text-muted)}}

/* ===== v2.1 phase 3: information architecture — six tabs, Navigate switch, calm header, Flight home, Plan status ===== */
#top [hidden]{display:none!important}
.q-wrap .q-lbl{justify-self:start;display:inline-flex;align-items:center;gap:8px;margin-left:12px;color:var(--text);pointer-events:none;z-index:1;font-size:.95rem;line-height:1}
.q-wrap .q-lbl .q-ic{margin:0;width:22px;height:22px;color:var(--accent);justify-self:auto}
.q-wrap .q-lbl b{font-weight:800}
#q{padding-left:112px}
@media (max-width:800px){
  .q-wrap .q-lbl{justify-self:center;margin-left:0;flex-direction:column;gap:3px;font-size:.72rem}
  #q{padding-left:0}
  #q:focus,#q.has{padding-left:12px}
}
@media (max-width:700px){.q-wrap .q-lbl{justify-self:start;margin-left:12px;flex-direction:row;gap:8px;font-size:.95rem}#q{padding-left:112px}#q:focus,#q.has{padding-left:112px}}
/* Navigate: segmented switch over Map / PFD / Circuit / Airports / Radio calls */
#nav-seg{display:flex;gap:6px;padding:6px 10px;background:var(--bar);border-bottom:var(--bw) solid var(--border)}
#nav-seg[hidden]{display:none}
#nav-seg button{flex:1 1 0;min-width:0;min-height:56px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;padding:0 8px;box-shadow:none}
#nav-seg button svg.i{width:20px;height:20px;margin:0;flex:none}
#nav-seg button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:640px){#nav-seg{gap:4px;padding:4px 6px}#nav-seg button{flex-direction:column;gap:2px;font-size:.74rem;padding:0 2px}}
/* six bottom tabs always fit: no sideways scrolling on a phone */
@media (max-width:480px){#tabs{overflow-x:visible}#tabs button{flex:1 1 0;min-width:0;padding:0 2px;font-size:.74rem}}
/* Flight home */
.fl-grid{display:grid;gap:12px;margin-bottom:12px;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-areas:"next ready" "route ready" "resume ready";align-items:start}
.fl-grid{grid-template-rows:auto auto 1fr}
.fl-grid>.card{margin:0;min-width:0}
.fl-grid>#ph-card{grid-area:next}.fl-grid>.fl-route{grid-area:route}.fl-grid>.fl-ready{grid-area:ready}.fl-grid>.fl-resume{grid-area:resume}
@media (max-width:900px){.fl-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"next" "route" "ready" "resume"}}
.fl-top{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-start;justify-content:space-between;margin-bottom:8px}
.fl-ac{display:flex;align-items:center;gap:8px;min-width:0}.fl-ac svg.i{width:22px;height:22px;color:var(--accent);margin:0;flex:none}
.fl-ac b{font:700 1.3rem var(--num);letter-spacing:.02em}.fl-ac span{font-size:.95rem}
.fl-where{display:flex;flex-direction:column;align-items:flex-end;text-align:right;line-height:1.25;min-width:0}
.fl-where small{color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800}
.fl-where>b{font-size:1.1rem}.fl-where span{color:var(--text-muted);font-size:.9rem}.fl-where span b{color:var(--text)}
.fl-rt{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:10px 0;border-top:var(--bw) solid var(--border)}
.fl-apt{display:flex;flex-direction:column;min-width:0}.fl-apt b{font:700 1.8rem/1.1 var(--num);letter-spacing:.01em}.fl-apt small{color:var(--text-muted);font-size:.9rem}
.fl-rt .fl-apt:only-of-type b{font:800 1.35rem/1.2 system-ui,sans-serif}
.fl-arr{width:26px;height:26px;color:var(--accent);margin:0;flex:none}
.fl-map{width:100%;height:auto;max-height:150px;display:block;background:var(--surface-2);border:var(--bw) solid var(--border);border-radius:10px;margin:2px 0 10px}
.fl-line{fill:none;stroke:var(--act);stroke-width:3;stroke-dasharray:9 6;stroke-linecap:round}
.fl-pt{fill:var(--surface);stroke:var(--accent);stroke-width:3}.fl-pt.dep{fill:var(--accent)}
.fl-map text{fill:var(--text);font:700 14px system-ui,sans-serif;paint-order:stroke;stroke:var(--surface-2);stroke-width:4px}
.fl-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}
.fl-kv>div{display:flex;flex-direction:column;padding:8px 10px;background:var(--surface-2);border-radius:10px;min-width:0}
.fl-kv small{color:var(--text-muted);font-size:.75rem;font-weight:700}.fl-kv b{font:700 1.2rem var(--num)}.fl-kv span{color:var(--text-muted);font-size:.74rem}
.fl-ready h2{display:flex;align-items:baseline;gap:10px}.fl-ready h2 small{margin-left:auto}
.fl-rows{display:flex;flex-direction:column;gap:4px}
.fl-row{display:grid;grid-template-columns:22px auto minmax(0,1fr);align-items:center;gap:10px;min-height:56px;width:100%;text-align:left;padding:6px 12px;background:var(--surface);box-shadow:none;font-weight:600}
.fl-row svg.i{width:20px;height:20px;margin:0;color:var(--text-muted)}
.fl-rl{white-space:nowrap}
.fl-rv{justify-self:end;text-align:right;font-size:.88rem;font-weight:700;min-width:0;overflow-wrap:anywhere}
.fl-row.ok .fl-rv{color:var(--ok)}.fl-row.warn .fl-rv{color:var(--warn)}.fl-row.bad .fl-rv{color:var(--danger)}.fl-row.muted .fl-rv{color:var(--text-muted)}
.fl-row.bad{border-color:var(--danger);box-shadow:inset 4px 0 0 var(--danger)}
@media (max-width:520px){.fl-row{grid-template-columns:22px minmax(0,1fr);row-gap:0}.fl-rv{grid-column:2;justify-self:start;text-align:left}}
.fl-resume{display:flex;align-items:center;gap:12px}
.fl-res-i{width:26px;height:26px;color:var(--accent);flex:none;margin:0}
.fl-res-t{display:flex;flex-direction:column;min-width:0;flex:1}.fl-res-t small{color:var(--text-muted)}
.fl-more>summary{min-height:56px}.fl-more>summary h2 small{font-weight:500}
.fl-more .tiles{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin:6px 0 12px}
.next-card h2{margin:2px 0 4px}
/* Plan: preparation status strip */
.pl-status{margin:2px 0 12px;padding:10px 12px;border:var(--bw) solid var(--border);border-radius:12px;background:var(--surface-2)}
.ps-head{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-bottom:8px}
.ps-aid{color:var(--warn);font-weight:700;font-size:.85rem}
.ps-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.ps{display:flex;flex-direction:column;gap:2px;padding:6px 8px 7px 26px;position:relative;border-radius:8px;background:var(--surface);border:var(--bw) solid var(--border);min-width:0}
.ps-dot{position:absolute;left:9px;top:11px;width:10px;height:10px;border-radius:50%;border:2px solid var(--text-muted);box-sizing:border-box}
.ps-n{font-weight:800;font-size:.85rem}
.ps-v{font-size:.78rem;color:var(--text-muted);overflow-wrap:anywhere}
.ps.off .ps-n{color:var(--text-muted)}
.ps.warnoff .ps-v{color:var(--warn)}
.ps.on.acc{border-color:var(--accent)}.ps.on.acc .ps-dot{background:var(--accent);border-color:var(--accent)}
.ps.on.act{border-color:var(--act)}.ps.on.act .ps-dot{background:var(--act);border-color:var(--act)}
.ps.on.ok{border-color:var(--ok)}.ps.on.ok .ps-dot{background:var(--ok);border-color:var(--ok)}
.ps.on.bad{border-color:var(--danger)}.ps.on.bad .ps-dot{background:var(--danger);border-color:var(--danger)}.ps.on.bad .ps-v{color:var(--danger)}
.ps.on.warn{border-color:var(--warn)}.ps.on.warn .ps-dot{background:var(--warn);border-color:var(--warn)}.ps.on.warn .ps-v{color:var(--warn)}
.ps.on.info .ps-dot{background:var(--text-muted)}
@media (max-width:1100px){.ps-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
.rp-rev{margin-top:10px;align-items:center;gap:10px}
/* Settings pane */
.set-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}
.set-grid .card{margin:0 0 12px;min-width:0}.set-col{min-width:0}
#p-settings h2 svg.i{width:22px;height:22px;vertical-align:-4px;margin-right:8px}
@media (max-width:900px){.set-grid{grid-template-columns:minmax(0,1fr)}}
.fl-grid+.phases-bar{margin-top:0}
.tel-row .tel-btn{min-width:0}.tel-btn span{min-width:0;overflow-wrap:anywhere}
@media (max-width:480px){   /* phone: header wraps to two tidy rows — controls + EMER, then AIRBORNE + Manual search */
  #top{gap:3px}
  #clock{min-width:0;padding:0 6px!important}
  #gps-pill{min-width:56px;padding:0 6px!important}
  #btn-pad .lbl{font-size:.72rem}
  #btn-air,#btn-freda{order:8}
  .q-wrap{order:9;flex:1 1 150px}
}

/* ---------- v2.1 phase 4: checklist states, Undo / Pause / Restart, source header, "Show me", Radio now (theme tokens only) ---------- */
.cl-src{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px;font-size:.85rem;color:var(--text)}
.cl-src span{display:inline-flex;align-items:baseline;gap:6px}.cl-src small{font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.cl-src .bad{color:var(--danger);font-weight:700}
#cl-items li.it{grid-template-columns:44px minmax(0,1fr) fit-content(40%) auto;grid-template-areas:"ck n a sm" "ck st a sm";row-gap:0}   /* phase 6: action pill ≤40% of the row so a long YAA action never squeezes the item name */
#cl-items li.it:has(.aid-t){grid-template-columns:44px minmax(0,1fr) fit-content(40%) auto auto;grid-template-areas:"ck n a aid sm" "ck st a aid sm"}
#cl-items li.it .ck{grid-area:ck}#cl-items li.it .n{grid-area:n;align-self:end}#cl-items li.it .stt{grid-area:st;align-self:start}#cl-items li.it .a{grid-area:a}#cl-items li.it .aid-t{grid-area:aid}#cl-items li.it .showme{grid-area:sm}
#cl-items li.it .stt{display:block;margin-top:3px;font:700 .72rem/1.2 var(--num);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
#cl-items li.it .stt-cur{color:var(--act)}#cl-items li.it .stt-done{color:var(--ok)}
[data-theme=day] #cl-items li.it .stt-cur{color:var(--accent)}
.showme{display:inline-flex;align-items:center;gap:6px;padding:0 12px;font-weight:700;font-size:.92rem;color:var(--accent);border:1px solid var(--pill-edge)!important;white-space:nowrap}
.showme .i{width:18px;height:18px}.showme[aria-expanded=true]{border-color:var(--accent)!important;box-shadow:inset 0 0 0 1px var(--accent)}
li.gd{margin:-2px 0 6px 26px;padding:14px 16px;background:var(--sub);border:1px solid var(--row-edge);border-left:3px solid var(--accent);border-radius:0 12px 12px 12px;cursor:default;animation:gd-in var(--dur-sheet) var(--ease)}
@keyframes gd-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
li.gd dl{margin:0;display:grid;gap:0}
.gd-r{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:8px 0;border-top:1px solid var(--border)}.gd-r:first-child{border-top:0}
.gd-r dt{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding-top:4px}
.gd-r dd{margin:0;min-width:0}.gd-r p{margin:4px 0;line-height:1.4}.gd-r ul{margin:4px 0;padding-left:20px}.gd-r li{margin:2px 0}
.gd-tag{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.04em;padding:2px 8px;border-radius:6px;border:1px solid var(--warn);color:var(--warn);margin-bottom:2px}
.gd-tag.cl{border-color:var(--ok);color:var(--ok)}
.gd-none{color:var(--text-muted);font-style:italic}
.gd-pre{white-space:pre-line}.gd-q{font:700 1.05rem/1.3 var(--num)}
.gd-svg{display:block;width:100%;max-width:380px;height:auto;border:1px solid var(--border);border-radius:10px;background:var(--bg)}
.cl-ctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 12px}
.cl-ctl button{display:inline-flex;align-items:center;gap:6px;max-width:100%}.cl-ctl small{font-weight:500;color:var(--text-muted);max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-ctl button:disabled{opacity:.55;cursor:default}
#cl-pause[aria-pressed=true]{background:var(--amb-bg);color:var(--warn);border:2px solid var(--warn)}
.cl-rs{margin:0 0 12px;padding:12px 14px;border:2px solid var(--danger);border-radius:12px;background:var(--bad-soft)}.cl-rs p{margin:0 0 10px}
.cl-rs .row{gap:8px}.rs-yes{color:var(--danger);border:2px solid var(--danger)!important;background:var(--surface);font-weight:800}
.cl-paused{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:8px 12px;border:2px solid var(--warn);border-radius:12px;background:var(--amb-bg)}
.cl-paused .i{flex:none;color:var(--warn)}.cl-pz-t{flex:1;min-width:0;display:flex;flex-direction:column}.cl-pz-t b{color:var(--warn)}.cl-pz-t small{color:var(--text)}
.fl-resume.paused{border-color:var(--warn);box-shadow:inset 4px 0 0 var(--warn)}.fl-resume.paused .fl-res-t b{color:var(--warn)}
.rt-now h2 small{font-weight:500;color:var(--text-muted);font-size:.8rem}
.rn-head{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;margin-bottom:10px}
.rn-k{display:flex;flex-direction:column;min-width:0}.rn-k small{font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.rn-k b{font-size:1.3rem}.rn-k span{font-size:.85rem;color:var(--text-muted)}.rn-all{margin-left:auto}
.rn-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:10px}
.rn-f{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;padding:6px 12px;min-width:0;line-height:1.15}
.rn-f small{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:800}
.rn-f b{font:700 1.3rem var(--num);color:var(--accent);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rn-f span{font-size:.76rem;color:var(--text-muted);white-space:normal}
.rn-f.empty b{color:var(--text-muted)}.rn-f.amb{border-color:var(--warn)}.rn-f.amb span{color:var(--warn);font-weight:700}
.rn-notes{grid-column:span 2}.rn-notes b{font:600 1rem system-ui}
.rn-dl{margin:0;display:grid;gap:0}.rn-dl>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:8px 0;border-top:1px solid var(--border)}
.rn-dl dt{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);padding-top:6px}.rn-dl dd{margin:0;min-width:0}.rn-dl p{margin:4px 0}
.rn-dl .rt-call{border-top:0;padding:4px 0}
.rn-cp{list-style:none;margin:4px 0;padding:0;display:grid;gap:6px}.rn-cp li{display:flex;gap:10px;align-items:flex-start}.rn-cp .cpt{flex:none;display:inline-block}
.pad-now{border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin:6px 0 10px;background:var(--surface-2)}
@media (max-width:760px){.gd-r,.rn-dl>div{grid-template-columns:1fr;gap:2px}.rn-notes{grid-column:1/-1}li.gd{margin-left:6px}}
@media (max-width:600px){
  #cl-items li.it,#cl-items li.it:has(.aid-t){grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"ck n sm" "ck st sm" "ck a a";row-gap:4px;column-gap:10px}
  #cl-items li.it:has(.aid-t){grid-template-areas:"ck n sm" "ck st sm" "ck a a" "ck aid aid"}
  #cl-items li.it .a{justify-self:start;text-align:left;max-width:100%}#cl-items li.it .aid-t{justify-self:start}
  .rn-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.rn-all{margin-left:0}
  .cl-head{flex-wrap:wrap}.cl-head>div:first-child{flex:1 1 100%;min-width:0}.cl-head>.grow{display:none}#cl-pics{flex-wrap:wrap;max-width:100%}#cl-pics svg{height:72px;max-width:100%}
}

/* ---- v2.1 phase 5: Manual search groups, GPS/data source strip, PFD source label, offline flight pack ---- */
#search-res .sr-h{font-size:.85rem;margin:8px 4px 6px;color:var(--text);border-bottom:var(--bw) solid var(--border);padding-bottom:4px}
#search-res .sr-h small{display:block;font-weight:600;color:var(--text-muted);font-size:.72rem}
#search-res .sr-none{padding:10px 12px;margin:4px 0;color:var(--text)}
.hit.mhit,.hit.ahit{border-left:4px solid var(--accent)}.hit.ahit{border-left-color:var(--warn)}
.hit .mh-src{color:var(--text-muted);display:block;font-size:.74rem;line-height:1.3;margin-bottom:4px}.hit .mh-src b{color:var(--text)}
.hit .mx{display:block}.hit .mx-l{display:block;font-family:var(--num);font-size:.9rem;line-height:1.35;overflow-wrap:anywhere}
.hit .mx-more{display:block;font-size:.72rem;color:var(--text-muted);margin-top:2px}
.hit .mh-go{display:block;margin-top:6px;font-size:.8rem;font-weight:800;color:var(--accent)}
.hit.ahit .mh-go{color:var(--text)}
#map-top{position:absolute;z-index:1000;left:10px;top:10px;max-width:min(560px,calc(100% - 110px));display:flex;flex-direction:column;gap:6px;pointer-events:none}
#map-top #map-msg{position:static;max-width:none}
.nav-gps{background:color-mix(in srgb,var(--surface) 92%,transparent);border:var(--bw) solid var(--border);border-radius:10px;padding:5px 10px;font-size:.76rem;line-height:1.35;color:var(--text)}
.nav-gps:empty{display:none}
.nav-gps span{display:block;color:var(--text-muted)}.nav-gps .ng-c{color:var(--warn);font-weight:700}
.nav-gps .ng-st{display:block;font-size:.82rem}.nav-gps .ng-st.fix{color:var(--ok)}.nav-gps .ng-st.sim,.nav-gps .ng-st.stale,.nav-gps .ng-st.search{color:var(--warn)}
.nav-gps .ng-st.denied,.nav-gps .ng-st.unavail{color:var(--danger)}
#gps-pill.stale{border-color:var(--warn);color:var(--warn)}#gps-pill.denied,#gps-pill.unavail{border-color:var(--danger);color:var(--danger)}
.pfd-src{display:block;margin-bottom:2px}
.pack-list{list-style:none;margin:8px 0;padding:0;display:grid;gap:4px}
.pack-list .pk{display:flex;align-items:center;gap:10px;padding:6px 10px;border:var(--bw) solid var(--border);border-radius:10px;background:var(--surface-2);min-height:44px}
.pack-list .pk-t{font-weight:900;width:1.2em;text-align:center}.pack-list .pk.ok .pk-t{color:var(--ok)}.pack-list .pk.no .pk-t{color:var(--text-muted)}
.pack-list .pk-l{flex:1;min-width:0;font-weight:700}.pack-list .pk-l small{display:block;font-weight:500;color:var(--text-muted);overflow-wrap:anywhere}
.pack-list .pk-v{font-weight:900;font-size:.8rem;padding:2px 8px;border-radius:8px;border:var(--bw) solid currentColor}.pack-list .pk-v.ok{color:var(--ok)}.pack-list .pk-v:not(.ok){color:var(--danger)}
@media (max-width:700px){#map-top{max-width:calc(100% - 122px)}.nav-gps{font-size:.7rem;padding:4px 8px}}

/* v2.1 phase 6: 601–900 px (iPad mini / Lenovo portrait): a checklist line with a plain-English aid button stacks its action pill
   under the name, so the name and the "Now — check" state never overlap the pill. */
@media (min-width:601px) and (max-width:900px){
  #cl-items li.it:has(.aid-t){grid-template-columns:44px minmax(0,1fr) auto auto;grid-template-areas:"ck n aid sm" "ck st aid sm" "ck a a a";row-gap:4px;column-gap:10px}
  #cl-items li.it:has(.aid-t) .a{justify-self:start;text-align:left;max-width:100%}
}
