:root{--bg:#05090d;--panel:#0c141b;--panel-2:#111c25;--line:#1f2f3b;--text:#d7e3ea;--muted:#7d93a1;--accent:#7cf29a;--atc:#9ecbff;--pilot:#f2f2f2;--warn:#ffd24a;--bad:#ff7a6b;--tx:#ff4d4d;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0}#app{grid-template-columns:250px 1fr 400px;height:100vh;display:grid}#strip-bay{border-right:1px solid var(--line);background:var(--panel);flex-direction:column;gap:8px;min-height:0;padding:12px 10px;display:flex}#strip-bay h2{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:13px;font-weight:600}#strip-list{flex:1;min-height:0;overflow-y:auto}#strip-list .strips{max-height:none;overflow:visible}#scope-wrap{min-height:0;position:relative}#scope{cursor:crosshair;width:100%;height:100%;display:block}#scope-help{color:var(--muted);font-size:12px;position:absolute;bottom:10px;left:12px}#side{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;gap:10px;min-height:0;padding:14px;display:flex}h1{letter-spacing:.02em;margin:0 0 8px;font-size:18px}h1 span{color:var(--muted);text-transform:uppercase;margin-left:6px;font-size:12px;font-weight:500}h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 6px;font-size:12px}.status-row{gap:8px;display:flex}.pill{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 10px;font:600 12px ui-monospace,Consolas,monospace}.pill.tx.on{background:var(--tx);border-color:var(--tx);color:#fff}.pill.freq.on{background:var(--warn);border-color:var(--warn);color:#111}.status-lines{color:var(--muted);gap:4px;margin-top:8px;font-size:12px;display:grid}.mic-line{align-items:center;gap:8px;display:flex}.voice-line{justify-content:space-between;align-items:center;gap:8px;display:flex}#test-sound{border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:6px;padding:3px 10px;font-size:12px}.meter{background:var(--panel-2);border-radius:3px;flex:1;height:6px;overflow:hidden}#meter-fill{background:var(--accent);width:0;height:100%;transition:width 60ms linear}#ptt{border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:10px;padding:14px;font-size:16px;font-weight:600}#ptt.on{background:var(--tx);border-color:var(--tx);color:#fff}kbd{opacity:.8;border:1px solid;border-radius:4px;padding:1px 6px;font:12px ui-monospace,Consolas,monospace}#log{flex-direction:column;flex:1;gap:8px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.entry{background:var(--panel-2);border-left:3px solid var(--line);border-radius:8px;padding:8px 10px}.entry.atc{border-left-color:var(--atc)}.entry.pilot{border-left-color:var(--pilot)}.entry.sys{border-left-color:var(--muted);color:var(--muted);font-size:13px}.entry.pending{font-style:italic}.entry-head{color:var(--muted);justify-content:space-between;margin-bottom:3px;font:600 11px ui-monospace,Consolas,monospace;display:flex}.entry.atc .who{color:var(--atc)}.entry.pilot .who{color:var(--pilot)}.meta{font-weight:400}.text{font-size:14px;line-height:1.35}.chips{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.chip{border:1px solid;border-radius:4px;padding:2px 6px;font:11px ui-monospace,Consolas,monospace}.chip.ok{color:var(--accent);border-color:#7cf29a66}.chip.warn{color:var(--warn);border-color:#ffd24a66}.chip.bad{color:var(--bad);border-color:#ff7a6b66}#hints{gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}#hints li{background:var(--panel-2);cursor:pointer;color:var(--text);border-radius:6px;padding:5px 8px}#hints li:hover{outline:1px solid var(--line)}#type-input{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--text);border-radius:8px;padding:10px;font-size:14px}#start{background:#030609e0;place-items:center;padding:16px;display:grid;position:fixed;inset:0}#start.hidden{display:none}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;max-width:520px;padding:22px}.card h2{text-transform:none;letter-spacing:0;color:var(--text);font-size:18px}.card p,.card li{font-size:14px;line-height:1.5}.card ul{padding-left:18px}#start-btn,#signin-btn{background:var(--accent);color:#062010;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:8px;padding:12px;font-size:15px;font-weight:600}#signin-btn{color:#fff;background:#5865f2}#start-btn:disabled,#signin-btn:disabled{opacity:.6;cursor:wait}.card .auth-error{color:var(--bad)}.card .auth-line{color:var(--muted);text-align:center;margin-bottom:0;font-size:12px}.auth-line .text-btn{margin-top:0}@media (width<=860px){#app{grid-template-rows:auto 55vh 1fr;grid-template-columns:1fr;height:auto;min-height:100vh}#strip-bay{border-right:none;border-bottom:1px solid var(--line);max-height:30vh}#side{border-left:none;border-top:1px solid var(--line)}#log{max-height:40vh}}#mode-title{color:var(--muted);margin-left:6px;font-size:12px;font-weight:500}#map-overlay{pointer-events:none;max-width:min(420px,100% - 24px);position:absolute;top:12px;left:12px}#map-overlay>*{pointer-events:auto}#mode-panel{flex-direction:column;gap:8px;display:flex}#mode-panel:empty{display:none}.mode-bar{flex-wrap:wrap;gap:6px;display:flex}.small-btn{border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:12px}.small-btn:hover{border-color:var(--muted)}.primary-btn{background:var(--accent);color:#062010;cursor:pointer;border:none;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600}.atis-card{background:var(--panel-2);border-radius:8px;padding:8px 10px;font-size:12px}.atis-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.atis-head span{color:var(--muted);flex:1}.atis-body{color:var(--muted);line-height:1.4}.safety-line{color:var(--muted);font-size:12px}.safety-line.alert{color:var(--bad);font-weight:600}.strips{flex-direction:column;gap:4px;max-height:200px;display:flex;overflow-y:auto}.strip{background:var(--panel-2);border-left:4px solid var(--muted);cursor:pointer;border-radius:6px;padding:5px 8px;font-size:12px}.strip.ground{border-left-color:#7ee0a0}.strip.air{border-left-color:#f2f5f7}.strip.selected{outline:1px solid #ffb347}.strip.empty{color:var(--muted);cursor:default}.strip-top,.strip-bottom{align-items:baseline;gap:8px;display:flex}.strip-top span{color:var(--muted);flex:1}.strip-bottom{color:var(--muted);justify-content:space-between}.strip-status{color:var(--text)}.freq-tag{border:1px solid var(--line);border-radius:4px;padding:1px 5px;font:600 10px ui-monospace,Consolas,monospace;flex:0!important}.lesson-card{border:1px solid var(--line);background:#0c141bf5;border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.45;box-shadow:0 8px 30px #00000073}.lesson-head{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.lesson-tag{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px}.lesson-head strong{font-size:16px}.lesson-body p{margin:0 0 8px}.lesson-say{background:var(--panel-2);border-left:3px solid var(--atc);border-radius:8px;gap:6px;margin-top:6px;padding:8px 10px;display:grid}.lesson-say-label{text-transform:uppercase;letter-spacing:.06em;color:var(--atc);font-size:11px}.lesson-say-text{font-family:ui-monospace,Consolas,monospace;font-size:13px}.lesson-feedback{color:var(--bad);background:#ff7a6b1f;border-radius:6px;margin-top:8px;padding:6px 10px;font-size:13px}.lesson-nav{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.lesson-waiting{color:var(--muted);font-size:12px;font-style:italic}#menu{background:#030609e6;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}#menu.hidden{display:none}.menu-card{background:var(--panel);border:1px solid var(--line);border-radius:6px;gap:14px;width:min(920px,100%);padding:20px 22px 18px;display:grid}.menu-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.menu-card h2{white-space:nowrap;text-transform:none;letter-spacing:0;color:var(--text);margin:0;font-size:22px}#menu-status{color:var(--muted);font-size:12px}.menu-card h3{text-transform:none;letter-spacing:0;color:var(--text);margin:4px 0 8px;font-size:13px;font-weight:600}.menu-tabs{border-bottom:1px solid var(--line);gap:22px;display:flex}.menu-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:8px 0;font-size:14px}.menu-tabs button:hover{color:var(--text)}.menu-tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent);font-weight:600}@media (width<=520px){.menu-card{padding:16px 14px}.go-btn{width:100%}}.menu-panel[hidden]{display:none}.lesson-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin-bottom:12px;display:grid}.airport-group-head{align-items:baseline;gap:10px;margin:10px 0 6px;font-size:13px;font-weight:600;display:flex}.airport-group-head span{color:var(--muted);font-size:12px;font-weight:400}.airport-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;display:grid}.airport-card{text-align:left;border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:4px;gap:1px;padding:8px 10px;display:grid}.airport-card:hover{border-color:var(--muted)}.airport-card[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.airport-card .ident{color:var(--muted);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:11px}.airport-card .name{font-size:13px;font-weight:600}.airport-card .blurb{color:var(--muted);font-size:12px}.menu-bar{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:14px;padding-top:12px;font-size:13px;display:flex}.seg-field{align-items:center;gap:8px;display:flex}.seg{border:1px solid var(--line);border-radius:4px;display:inline-flex;overflow:hidden}.seg label{cursor:pointer;position:relative}.seg label+label{border-left:1px solid var(--line)}.seg input{opacity:0;pointer-events:none;position:absolute}.seg span{color:var(--muted);background:var(--panel-2);padding:5px 11px;display:block}.seg label:hover span{color:var(--text)}.seg input:checked+span{background:var(--text);color:var(--bg);font-weight:600}.seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:-2px}.menu-bar label.check{cursor:pointer;align-items:center;gap:6px;display:flex}.go-btn{background:var(--accent);color:#062010;cursor:pointer;border:none;border-radius:4px;margin-left:auto;padding:8px 18px;font-size:14px;font-weight:600}.go-btn:hover{filter:brightness(1.08)}.text-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-top:12px;padding:0;font-size:12px;text-decoration:underline}.text-btn:hover{color:var(--text)}.lesson-btn{text-align:left;border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:4px;gap:4px;padding:10px 12px;display:grid}.lesson-btn span{color:var(--muted);font-size:13px}.lesson-btn:hover{border-color:var(--accent)}.sector-pick{border:1px solid var(--line);color:var(--muted);border-radius:4px;margin:0 0 10px;padding:8px 10px 4px;font-size:13px}.sector-pick legend{padding:0 4px}#tracon-sectors,#tower-freq-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 12px;display:grid}#tracon-sectors label,#tower-freq-list label{color:var(--text);align-items:baseline;gap:6px;display:flex}#tracon-sectors label span,#tower-freq-list label span{color:var(--muted)}.sector-note{margin:6px 0 4px;font-size:12px}.field-error{color:#ff7b72;margin:0 0 8px;font-size:13px}.sector-list{color:var(--muted);gap:2px;font-size:12px;display:grid}.sector-list .mine{color:var(--text)}.info-card{background:var(--panel-2);border-left:3px solid #ffb347;border-radius:8px;gap:3px;padding:8px 10px;font-size:12px;display:grid}.info-card.hidden{display:none}.info-row{grid-template-columns:78px 1fr;gap:8px;display:grid}.info-key{color:var(--muted)}.debrief{background:var(--panel);border:1px solid var(--line);z-index:1000;border-radius:12px;gap:12px;width:min(560px,100% - 32px);max-height:calc(100% - 32px);padding:18px 20px;display:grid;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000073,0 12px 40px #00000080}.debrief-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.debrief-head span{color:var(--muted);font-size:13px}.debrief-score{align-items:baseline;gap:16px;display:flex}.debrief-grade{font-size:48px;font-weight:700;line-height:1}.debrief-total{color:var(--muted);font-size:20px}.debrief-table{border-collapse:collapse;width:100%;font-size:13px}.debrief-table td{border-bottom:1px solid var(--line);padding:4px 0}.debrief-table td:nth-child(2),.debrief-table td:nth-child(3){text-align:right;width:56px}.debrief-table .neg{color:#ff7b72}.debrief-table .pos{color:var(--accent)}.debrief-sub{color:var(--muted);font-size:13px;font-weight:600}.debrief-events{gap:4px;margin:0;padding-left:18px;font-size:12px;display:grid}.debrief-events .serious{color:#ff7b72}.debrief-btns{justify-content:flex-end;gap:8px;display:flex}.runway-row{align-items:center;gap:10px;margin:4px 0;display:flex}.runway-row .seg-label{flex:none;width:72px}.runway-chips{flex-wrap:wrap;gap:4px;display:flex}.runway-chips label{border:1px solid var(--line,#2a3640);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.runway-chips label:has(input:checked){border-color:var(--accent,#7ee0a0);color:var(--accent,#7ee0a0)}.runway-chips input{margin:0}.info-card.scope-info{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0e161ce0;width:min(320px,100vw - 32px);max-height:min(60vh,420px);overflow-y:auto;box-shadow:0 4px 14px #00000059}#map-overlay>.info-card.scope-info+*,#map-overlay>*+.info-card.scope-info{margin-top:8px}.sector-details summary{cursor:pointer;color:var(--muted);margin-top:4px;font-size:12px}.sector-details[open] summary{margin-bottom:4px}
