:root{--bg-primary:#10152a;--bg-hud:#0d1117;--bg-hud-border:#1a2332;--text-primary:#c0d0e0;--text-secondary:#6a7a8a;--text-bright:#e0f0ff;--accent-cyan:#0df;--accent-green:#0f8;--accent-yellow:#fd0;--accent-red:#f33;--accent-orange:#f80;--accent-selection:#f4f;--font-mono:"Consolas", "Monaco", "Courier New", monospace;--data-tag-font-size:12px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);font-family:var(--font-mono);touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font-size:12px;overflow:hidden}input,textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}#canvas-container{position:absolute;inset:36px 0 80px}#atc-canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block}#overlay-container{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.hud-bar{background:var(--bg-hud);border-color:var(--bg-hud-border);z-index:10;touch-action:none;align-items:center;padding:0 12px;display:flex;position:absolute;left:0;right:0}.hud-top{border-bottom:1px solid var(--bg-hud-border);justify-content:space-between;height:36px;top:0}.hud-bottom{border-top:1px solid var(--bg-hud-border);height:80px;bottom:0}.hud-group{align-items:center;gap:8px;display:flex}.hud-btn{border:1px solid var(--bg-hud-border);color:var(--text-primary);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:3px;padding:3px 8px;font-size:11px;transition:background .15s,border-color .15s}.hud-btn:hover{border-color:var(--accent-cyan);background:#ffffff0d}.hud-btn.active{border-color:var(--accent-cyan);color:var(--accent-cyan)}.hud-btn.share-btn-live{border-color:var(--accent-green);color:var(--accent-green)}.share-dot{background:var(--accent-green);vertical-align:middle;width:8px;height:8px;box-shadow:0 0 6px var(--accent-green);border-radius:50%;margin-right:6px;animation:1.5s ease-in-out infinite share-pulse;display:inline-block}.share-dot.share-dot-dim{background:var(--accent-green);opacity:.4;box-shadow:none;animation:none}@keyframes share-pulse{0%,to{opacity:1;box-shadow:0 0 6px var(--accent-green)}50%{opacity:.55;box-shadow:0 0 2px var(--accent-green)}}.share-modal-overlay{z-index:10000;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.zoom-reset-overlay{z-index:10001;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.zoom-reset-card{background:var(--bg-hud);border:1px solid var(--bg-hud-border);text-align:center;border-radius:6px;max-width:280px;padding:20px 24px}.zoom-reset-title{color:var(--text-bright);margin-bottom:8px;font-size:14px}.zoom-reset-hint{color:var(--text-secondary);margin-bottom:16px;font-size:11px}.zoom-reset-btn{padding:8px 16px;font-size:13px}.maintenance-banner{z-index:9000;color:var(--accent-orange);border:1px solid var(--accent-orange);pointer-events:none;white-space:nowrap;background:#281c00eb;border-radius:4px;padding:6px 14px;font-size:13px;position:fixed;top:44px;left:50%;transform:translate(-50%)}.maintenance-banner.urgent{color:var(--accent-red);border-color:var(--accent-red);background:#2d0000eb;animation:1s step-end infinite maint-pulse}@keyframes maint-pulse{50%{opacity:.45}}.share-modal{background:var(--bg-hud);border:1px solid var(--bg-hud-border);color:var(--text-primary);font-family:var(--font-mono);min-width:500px;max-width:90vw;font-size:12px;box-shadow:0 8px 32px #0009}.share-modal-header{border-bottom:1px solid var(--bg-hud-border);background:#ffffff05;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.share-modal-title{color:var(--text-bright);letter-spacing:1.5px;text-transform:uppercase;font-size:11px}.share-modal-status{color:var(--accent-green);letter-spacing:.5px;align-items:center;font-size:11px;display:flex}.share-modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;margin-left:12px;padding:0 4px;font-family:inherit;font-size:18px;line-height:1}.share-modal-close:hover{color:var(--text-bright)}.share-modal-body{padding:16px 14px}.share-modal-url{background:var(--bg-primary);border:1px solid var(--bg-hud-border);width:100%;color:var(--text-bright);box-sizing:border-box;border-radius:2px;padding:8px 10px;font-family:inherit;font-size:12px}.share-modal-url:focus{border-color:var(--accent-cyan);outline:none}.share-modal-copy-row{justify-content:flex-end;margin-top:10px;display:flex}.share-modal-copy{border-color:var(--accent-cyan);color:var(--accent-cyan);letter-spacing:1px;padding:5px 18px}.share-modal-copy:hover{background:#00ddff1a}.share-modal-note{color:var(--text-secondary);margin-top:16px;font-size:11px;line-height:1.5}.share-modal-divider{background:var(--bg-hud-border);height:1px;margin:18px 0 14px}.share-modal-revoke-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.share-modal-revoke-label{color:var(--text-secondary);font-size:11px}.share-modal-revoke{border-color:var(--accent-red);color:var(--accent-red);letter-spacing:.5px}.share-modal-revoke:hover{background:#ff33331f}.hud-brand{color:var(--text-secondary);letter-spacing:1px;opacity:.6;font-size:12px}.hud-time{color:var(--accent-green);letter-spacing:1px;font-size:14px;font-weight:700}.hud-speed{color:var(--text-secondary)}.hud-fps{color:var(--text-secondary);font-size:10px}.hud-ac-count{color:var(--accent-cyan);font-size:11px}.data-tag{color:var(--accent-green);font-size:var(--data-tag-font-size);white-space:pre;pointer-events:none;text-shadow:0 0 4px #fff3;z-index:5;line-height:15px;position:absolute}.data-tag.tag-selected{color:var(--accent-selection);text-shadow:0 0 6px #f4f6}.data-tag.tag-conflict{border:1px solid #f80;padding:2px}.tag-ca{color:#f80;font-size:var(--data-tag-font-size);font-family:JetBrains Mono,Fira Code,Consolas,monospace;line-height:1}.tag-ca-blink{animation:.5s step-end infinite ca-blink}@keyframes ca-blink{50%{opacity:0}}.tag-callsign{pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none}.tag-callsign:hover{cursor:pointer}.tag-handoff-chevron{pointer-events:auto;cursor:pointer;color:#e8e8e8;-webkit-user-select:none;user-select:none;margin:0 -2px;padding:0 4px;font-weight:700}.tag-handoff-chevron:hover{color:#fff}.tag-handoff-chevron.tag-handoff-overdue{color:#fff;opacity:1;margin:0;padding:0}.tag-speed{pointer-events:auto;touch-action:none;cursor:ns-resize;border-radius:2px;margin:-1px -2px;padding:1px 2px;transition:background .1s;position:relative}.tag-speed:before{content:"";position:absolute;inset:-1px -10px -1px 0}.tag-speed:hover{background:#00ff8826}.tag-speed.speed-dragging{color:var(--accent-cyan);text-shadow:0 0 6px #0df6;background:#00ffff40}.data-tag.tag-selected .tag-speed:hover{background:#ff44ff26}.data-tag.tag-selected .tag-speed.speed-dragging{color:var(--accent-cyan);text-shadow:0 0 6px #0df6;background:#00ffff40}.tag-alt{pointer-events:auto;touch-action:none;cursor:ns-resize;border-radius:2px;margin:-1px -2px;padding:1px 2px;transition:background .1s;position:relative}.tag-alt:before{content:"";position:absolute;inset:-1px -10px -1px 0}.tag-alt:hover{background:#00ff8826}.tag-alt .alt-changing{text-underline-offset:2px;pointer-events:none;text-decoration:underline}.tag-alt.alt-dragging{color:var(--accent-cyan);text-shadow:0 0 6px #0df6;background:#00ffff40}.data-tag.tag-selected .tag-alt:hover{background:#ff44ff26}.data-tag.tag-selected .tag-alt.alt-dragging{color:var(--accent-cyan);text-shadow:0 0 6px #0df6;background:#00ffff40}.tag-descrate{pointer-events:auto;touch-action:none;cursor:ns-resize;color:#c8d8e88c;text-underline-offset:2px;border-radius:2px;margin:-1px -2px;padding:1px 2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;transition:background .1s;position:relative}.tag-descrate.tag-descrate-assigned{color:#fa0;text-decoration:none}.tag-descrate:hover{background:#ff44ff2e}.tag-descrate.descrate-dragging{color:var(--accent-cyan);text-shadow:0 0 6px #0df6;background:#00ffff40}.tag-route-fix{pointer-events:auto;cursor:pointer;border-radius:2px;margin:-1px -2px;padding:1px 2px}.tag-route-fix:hover{background:#f4f3;text-decoration:underline}.tag-route-fix-disabled{pointer-events:none;cursor:default;opacity:.5}.tag-ils-eligible{pointer-events:auto;cursor:pointer;color:#fff;border-radius:2px;margin:-1px -2px;padding:1px 2px;animation:1s ease-in-out infinite ils-blink}.tag-ils-eligible:hover{opacity:1;background:#8df3;text-decoration:underline;animation:none}.tag-ils-urgent{animation:.5s ease-in-out infinite ils-pulse}@keyframes ils-blink{0%,to{opacity:.3;color:#fff}50%{opacity:1;color:#fff}}@keyframes ils-pulse{0%,to{opacity:.3;color:#fff}50%{opacity:1;color:#fa0}}.tag-dest-line,.tag-tsas-line{color:inherit;font-size:var(--data-tag-font-size)}.tag-tsas-runway-clickable{pointer-events:auto;cursor:pointer}.tag-tsas-runway-clickable:hover{opacity:1;background:#8df3}.tag-tsas-orphan{color:#fa0;animation:1s step-end infinite tsas-orphan-blink}@keyframes tsas-orphan-blink{0%,to{opacity:1}50%{opacity:.25}}.tsas-timeline{z-index:11;pointer-events:auto;background:#0d1117e0;border:1px solid #00ddff4d;border-radius:4px;width:auto;font-family:JetBrains Mono,Fira Code,monospace;position:absolute;top:10px;bottom:10px;left:12px}.tsas-timeline-header{color:#0df;border-bottom:1px solid #0df3;padding:6px 8px;font-size:12px;font-weight:700}.tsas-timeline-canvas{display:block}.enroute-meter-list{z-index:11;pointer-events:auto;background:#0d1117;border:1px solid #00ddff4d;border-radius:4px;flex-direction:column;width:222px;font-family:JetBrains Mono,Fira Code,monospace;display:flex;position:absolute;top:10px;bottom:10px;left:12px}.enroute-meter-list-header{border-bottom:1px solid #0df3;justify-content:space-between;align-items:baseline;padding:6px 8px;font-size:12px;display:flex}.enroute-meter-list-title{color:#0df;font-weight:700}.enroute-meter-list-legend{color:#8ac;flex:0 0 138px;gap:4px;font-size:10px;font-weight:400;display:flex}.enroute-meter-list-legend>span{text-align:right}.enroute-meter-list-legend-eta{flex:0 0 38px}.enroute-meter-list-legend-delta{flex:0 0 52px}.enroute-meter-list-legend-mit{flex:0 0 40px}.enroute-meter-list-body{flex-direction:column;gap:10px;padding:4px 4px 6px;display:flex;overflow-y:auto}.enroute-meter-list-empty{color:#8ac;padding:8px;font-size:11px;font-style:italic}.enroute-meter-list-col{flex-direction:column;min-width:0;transition:opacity .12s;display:flex}.enroute-meter-list-rows{flex-direction:column;display:flex}.enroute-meter-list-col-header{text-align:left;border-bottom:1px dotted #8df6;margin-bottom:3px;padding:2px 4px 3px;line-height:1.15}.enroute-meter-list-col-airport{color:#88ddffbf;letter-spacing:.5px;font-size:10px;font-weight:400}.enroute-meter-list-col-fix{color:#8df;font-size:11px;font-weight:400;display:inline-block}.enroute-meter-list-col-bulb{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-left:5px;display:inline-block}.enroute-meter-list-col-bulb.bulb-green{background:#36d07a;box-shadow:0 0 4px #36d07ad9}.enroute-meter-list-col-bulb.bulb-amber{background:#ffb020;box-shadow:0 0 5px #ffb020f2}.enroute-meter-list-col-bulb.bulb-red{background:#ff4d4d;animation:1s ease-in-out infinite enroute-bulb-pulse;box-shadow:0 0 6px #ff4d4d}@keyframes enroute-bulb-pulse{0%,to{opacity:1}50%{opacity:.4}}.enroute-meter-list-row{color:#c8d4e3;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:1px 4px;font-size:11px;line-height:1.35;transition:opacity .12s,background .1s;display:flex}.enroute-meter-list-row:hover{background:#ff44ff14}.enroute-meter-list-row.selected{color:var(--accent-selection);background:#ff44ff2e}.enroute-meter-list-row.selected .enroute-meter-list-eta{color:var(--accent-selection)}.enroute-meter-list-callsign{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:400;overflow:hidden}.enroute-meter-list-eta{color:#8df;text-align:right;font-variant-numeric:tabular-nums;flex:0 0 38px}.enroute-meter-list-delta{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;flex:0 0 52px}.enroute-meter-list-delta.delta-early{color:#0df}.enroute-meter-list-delta.delta-late{color:#fa0}.enroute-meter-list-delta.delta-none{color:#8ac6}.enroute-meter-list-mit{font-variant-numeric:tabular-nums;text-align:right;flex:0 0 40px}.enroute-meter-list-mit.mit-ok{color:#6c9}.enroute-meter-list-mit.mit-short{color:#f67}.enroute-meter-list-grip{color:#88ddff73;cursor:grab;flex:none;margin:-2px 0 -2px -2px;padding:2px;font-size:11px}.enroute-meter-list-grip:hover{color:#8dfc}.enroute-meter-list-row.dragging .enroute-meter-list-grip{cursor:grabbing}.enroute-meter-list-pin{flex:none;font-size:10px}.enroute-meter-list-pin.pin-priority{color:#fc5}.enroute-meter-list-pin:empty{display:none}.enroute-meter-list-row.pinned-manual{background:#78b4ff1a;border-left:3px solid #8df;padding-left:1px}.enroute-meter-list-row.pinned-priority{background:#ffc8502e;border-left:3px solid #fc5;padding-left:1px}.enroute-meter-list-body.is-dragging .enroute-meter-list-col{opacity:.35}.enroute-meter-list-body.is-dragging .enroute-meter-list-col:has(.enroute-meter-list-row.dragging){opacity:1}.enroute-meter-list-body.is-dragging .enroute-meter-list-row:hover{background:0 0}.enroute-meter-list-row.dragging{opacity:.4;outline-offset:-1px;background:#00ddff1a;outline:1px dashed #00ddffb3}.loa-mit-strip{color:#c8d4e3;z-index:8;pointer-events:none;background:#080e18d9;border:1px solid #78a0c840;border-radius:3px;padding:4px 6px;font-family:monospace;font-size:11px;position:absolute;top:10px;right:12px}.loa-mit-strip-header{letter-spacing:.5px;color:#8df;text-align:center;text-transform:uppercase;margin-bottom:3px;font-size:10px;font-weight:700}.loa-mit-strip-body{flex-direction:column;display:flex}.loa-mit-strip-row{font-variant-numeric:tabular-nums;white-space:pre;align-items:baseline;gap:4px;display:flex}.loa-mit-strip-gate{font-weight:600}.loa-mit-strip-arrow{color:#6080a0}.loa-mit-strip-dest{color:#8ab}.loa-mit-strip-mit,.loa-mit-strip-alt,.loa-mit-strip-spd{color:#c8d4e3;text-align:right}.loa-mit-strip-mit{min-width:22px;margin-left:auto;padding-left:6px}.loa-mit-strip-alt,.loa-mit-strip-spd{min-width:30px}.loa-mit-strip-labels .loa-mit-strip-mit,.loa-mit-strip-labels .loa-mit-strip-alt,.loa-mit-strip-labels .loa-mit-strip-spd{color:#6080a0;font-weight:700}.waypoint-label{color:var(--text-secondary);white-space:nowrap;pointer-events:none;opacity:.7;z-index:3;font-size:9px;position:absolute}.sector-label{white-space:nowrap;pointer-events:none;z-index:2;letter-spacing:.3px;font-family:monospace;font-size:9px;font-weight:500;position:absolute}.airway-label{white-space:nowrap;pointer-events:none;color:var(--bg-primary);z-index:2;transform-origin:50%;padding:0 2px;font-family:monospace;font-size:9px;font-weight:700;position:absolute;top:0;left:0}.route-constraint-label{color:var(--accent-selection);white-space:nowrap;pointer-events:none;opacity:1;z-index:3;font-family:monospace;font-size:10px;position:absolute}.route-constraint-label-bright{color:var(--accent-yellow);opacity:1}.airport-label{color:var(--accent-cyan);white-space:nowrap;pointer-events:none;opacity:.25;z-index:3;font-size:10px;font-weight:700;position:absolute}.localizer-label{color:#0cc;white-space:nowrap;pointer-events:none;opacity:.7;z-index:3;font-size:10px;font-weight:700;position:absolute;transform:translate(-50%,-50%)}.faf-marker{color:#0cc;pointer-events:none;opacity:.45;z-index:3;font-size:14px;position:absolute;transform:translate(-50%,-50%)}.ils-debug-label{white-space:nowrap;pointer-events:none;opacity:.7;z-index:4;text-shadow:0 0 2px #000c;font-family:monospace;font-size:9px;font-weight:700;position:absolute;transform:translateY(-50%)}.comms-log{touch-action:pan-y;width:100%;height:100%;padding:4px 0;overflow-y:auto}.comms-line{color:var(--text-secondary);padding:1px 0;font-size:10px}.comms-conflict{color:var(--accent-orange);font-weight:700}.comms-resolved{color:var(--accent-green)}.comms-advisory{color:var(--accent-cyan);font-style:italic}.comms-voice-ok{color:var(--accent-green)}.conflict-alert-container{pointer-events:auto;z-index:15;flex-direction:column;gap:6px;display:flex;position:absolute;top:10px;right:10px}.conflict-alert{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0d1117eb;border-radius:4px;min-width:180px;padding:8px 10px;font-size:11px}.severity-critical{border:1px solid var(--accent-red);color:var(--accent-red)}.severity-wake_turbulence{color:#f90;border:1px solid #f90}.alert-header{margin-bottom:2px;font-size:12px;font-weight:700}.alert-pair{margin-bottom:2px;font-size:11px}.alert-info,.alert-ttc{opacity:.8;font-size:10px}.icao-input-group{align-items:center;gap:4px;display:flex}.icao-input{border:1px solid var(--bg-hud-border);color:var(--accent-cyan);font-family:var(--font-mono);text-transform:uppercase;background:0 0;border-radius:3px;outline:none;width:56px;padding:3px 6px;font-size:12px}.icao-input:focus{border-color:var(--accent-cyan)}.icao-input:disabled{opacity:.5}.icao-status{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:9px;overflow:hidden}.scale-bar{pointer-events:none;z-index:5;position:absolute;bottom:12px;left:12px}.scale-bar-label{color:var(--text-secondary);margin-bottom:2px;font-size:9px}.scale-bar-line{background:var(--text-secondary);opacity:.6;min-width:20px;height:2px;position:relative}.scale-bar-line:before,.scale-bar-line:after{content:"";background:var(--text-secondary);opacity:.6;width:1px;height:6px;position:absolute;bottom:0}.scale-bar-line:before{left:0}.scale-bar-line:after{right:0}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-hud-border);border-radius:2px}.hud-info-btn{border:1px solid var(--text-bright);color:var(--text-bright);cursor:pointer;opacity:.9;width:18px;height:18px;font-size:11px;font-weight:700;font-family:var(--font-mono);vertical-align:middle;text-align:center;background:0 0;border-radius:50%;padding:0;line-height:16px}.hud-info-btn:hover{opacity:1}.about-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.about-modal{background:var(--bg-hud);border:1px solid var(--bg-hud-border);max-width:440px;font-family:var(--font-mono);color:var(--text-primary);border-radius:8px;padding:28px 36px;line-height:1.5}.about-title{letter-spacing:6px;color:var(--accent-cyan);text-align:center;font-size:24px;font-weight:700}.about-subtitle{letter-spacing:2px;color:var(--text-secondary);text-align:center;margin-bottom:16px;font-size:11px}.about-body p{color:var(--text-secondary);text-align:center;margin-bottom:14px;font-size:12px}.about-section{letter-spacing:1px;color:var(--text-bright);margin:12px 0 6px;font-size:11px}.about-body ul{color:var(--text-secondary);margin:0;padding-left:16px;font-size:12px}.about-body li{margin-bottom:3px}.about-disclaimer{color:var(--accent-yellow);text-align:center;letter-spacing:1px;margin-top:16px;font-size:10px}.about-discord{color:var(--text-secondary);text-align:center;margin-top:16px;margin-bottom:12px;font-size:12px}.about-discord a{color:var(--accent-cyan);text-decoration:none}.about-discord a:hover{text-decoration:underline}.about-credits{color:#fff;text-align:center;opacity:.6;margin-top:12px;font-size:12px}.about-version{color:var(--text-secondary);text-align:center;opacity:.5;margin-top:8px;font-size:12px}.session-summary-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;padding:32px 16px;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.session-summary-modal{color:#e2e8f0;background:#151b2e;border:1px solid #1e2a45;border-radius:14px;width:100%;max-width:420px;font-family:-apple-system,Segoe UI,sans-serif;overflow:hidden;box-shadow:0 24px 60px #0009}.session-summary-modal.ssm-modal-alert{border-top:3px solid #f59e0b}.session-summary-modal.ssm-modal-alert.ssm-modal-alert-critical{border-top-color:#ef4444}.ssm-safety-banner{letter-spacing:.06em;background:#1c1a0d;border-bottom:1px solid #3a3010;align-items:center;gap:10px;padding:8px 20px;font-size:11px;display:flex}.ssm-safety-banner-label{color:#b08838;text-transform:uppercase;font-weight:600}.ssm-safety-banner-detail{color:#d4a04a}.ssm-safety-banner.ssm-safety-banner-critical{background:#1a0d0d;border-bottom-color:#4a1c1c}.ssm-safety-banner.ssm-safety-banner-critical .ssm-safety-banner-label{color:#b06060}.ssm-safety-banner.ssm-safety-banner-critical .ssm-safety-banner-detail{color:#c87878}.ssm-session-header{padding:20px 20px 16px}.ssm-airport-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.ssm-airport-row-left{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.ssm-airport-code{color:#e2e8f0;letter-spacing:.04em;font-size:22px;font-weight:700}.ssm-runway-tag{color:#64748b;letter-spacing:.06em;background:#1a2236;border:1px solid #2d3f60;border-radius:4px;padding:2px 7px;font-size:11px}.ssm-session-score{color:#475569;letter-spacing:-.01em;flex-shrink:0;font-size:22px;font-weight:700}.ssm-session-score.ssm-score-good{color:#34d399}.ssm-session-score.ssm-score-warn{color:#f59e0b}.ssm-session-score.ssm-score-bad{color:#ef4444}.ssm-session-score-denom{color:#2d3f60;font-size:13px;font-weight:400}.ssm-grade-block{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.ssm-grade-letter{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:38px;font-weight:800;line-height:1}.ssm-grade-letter.ssm-score-good{color:#34d399}.ssm-grade-letter.ssm-score-warn{color:#f59e0b}.ssm-grade-letter.ssm-score-bad{color:#ef4444}.ssm-grade-technique{color:#64748b;text-align:right;letter-spacing:.02em;max-width:240px;font-size:11px;line-height:1.35}.ssm-personal-best{color:#64748b;letter-spacing:.04em;margin-top:4px;font-size:11px}.ssm-personal-best.ssm-personal-best-new{color:#fbbf24;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.ssm-still-in-sector-warn{color:#f59e0b;font-weight:500}.ssm-session-facts{color:#64748b;margin-top:6px;font-size:13px}.ssm-session-facts strong{color:#94a3b8;font-weight:500}.ssm-traffic-composition{color:#3d4f6a;margin-top:4px;font-size:11px}.ssm-divider{background:#1a2236;height:1px}.ssm-section{border-left:3px solid #0000}.ssm-section-seq{border-color:#38bdf8}.ssm-section-safety{border-color:#f59e0b}.ssm-section-thru{border-color:#34d399}.ssm-section-handoff{border-color:#818cf8}.ssm-section-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:12px 20px 12px 17px;display:flex}.ssm-section-header:hover{background:#ffffff05}.ssm-section-title{letter-spacing:.14em;text-transform:uppercase;flex-shrink:0;font-size:10px;font-weight:700}.ssm-section-seq .ssm-section-title{color:#38bdf8}.ssm-section-safety .ssm-section-title{color:#f59e0b}.ssm-section-thru .ssm-section-title{color:#34d399}.ssm-section-handoff .ssm-section-title{color:#818cf8}.ssm-section-summary{color:#64748b;text-align:right;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.ssm-chevron{color:#475569;flex-shrink:0;font-size:18px;line-height:1;transition:transform .18s}.ssm-section.ssm-section-open .ssm-chevron{transform:rotate(90deg)}.ssm-section-body{padding:0 20px 14px 17px;display:none}.ssm-section.ssm-section-open .ssm-section-body{display:block}.ssm-stat-row{justify-content:space-between;align-items:baseline;padding:3px 0;display:flex}.ssm-stat-label{color:#94a3b8;flex-shrink:0;padding-right:8px;font-size:12px}.ssm-stat-value{color:#e2e8f0;text-align:right;font-size:12px;font-weight:500}.ssm-stat-ref{color:#475569;margin-left:5px;font-size:12px;font-weight:400}.ssm-stat-note{color:#64748b;margin-bottom:4px;padding-left:2px;font-size:11px}.ssm-cmd-section{padding:16px 20px 18px}.ssm-cmd-label{text-transform:uppercase;letter-spacing:.1em;color:#3d4f6a;margin-bottom:12px;font-size:10px}.ssm-cmd-content{align-items:center;gap:18px;display:flex}.ssm-cmd-pie{border-radius:50%;flex-shrink:0;width:80px;height:80px}.ssm-cmd-legend{flex-direction:column;flex:1;gap:5px;display:flex}.ssm-legend-row{align-items:center;gap:7px;display:flex}.ssm-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ssm-legend-name{color:#64748b;flex:1;font-size:11px}.ssm-legend-val{color:#94a3b8;text-align:right;font-size:11px;font-weight:500}.ssm-legend-pct{color:#475569;text-align:right;width:32px;font-size:10px}.ssm-footer{padding:14px 20px 20px}.ssm-btn-row{gap:10px;display:flex}.ssm-btn{cursor:pointer;letter-spacing:.02em;border:none;border-radius:8px;flex:1;padding:11px;font-family:-apple-system,Segoe UI,sans-serif;font-size:13px;font-weight:600}.ssm-btn-primary{color:#fff;background:#1d4ed8}.ssm-btn-secondary{color:#94a3b8;background:#1e2a45}.ssm-end-btn{color:var(--accent-orange);border-color:var(--accent-orange);letter-spacing:.5px;padding:3px 12px;font-weight:700}.ssm-end-btn:hover{background:var(--accent-orange);color:var(--bg-hud);border-color:var(--accent-orange)}.ssm-link-btn{color:#475569;text-align:center;background:0 0;margin-top:14px;padding:6px;font-size:12px;text-decoration:none;display:block}a.ssm-link-btn{text-decoration:none}.ssm-link-btn:hover{color:#94a3b8}.ssm-short-session{color:#4a5568;padding:14px 20px;font-size:12px;line-height:1.5}.hud-settings-btn{letter-spacing:1px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:flex}.hud-settings-icon{font-size:18px;line-height:1}.settings-panel{z-index:100;background:var(--bg-hud);border:1px solid var(--bg-hud-border);font-family:var(--font-mono);border-radius:4px;min-width:240px;padding:6px 10px;position:fixed;top:40px;left:50%;transform:translate(-50%)}.stg-row{border-bottom:1px solid var(--bg-hud-border);justify-content:space-between;align-items:center;padding:4px 0;display:flex}.stg-row-last{border-bottom:none}.stg-left{align-items:baseline;gap:8px;min-width:0;display:flex}.stg-label{color:var(--text-bright);white-space:nowrap;font-size:11px}.stg-desc{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.stg-toggle{border:1px solid var(--bg-hud-border);cursor:pointer;background:0 0;border-radius:7px;flex-shrink:0;width:28px;height:14px;margin-left:10px;transition:background .15s,border-color .15s}.stg-toggle.active{background:var(--accent-cyan);border-color:var(--accent-cyan)}.stg-terrain-group{flex-shrink:0;gap:1px;margin-left:10px;display:flex}.stg-terrain-btn{font-family:var(--font-mono);border:1px solid var(--bg-hud-border);color:var(--text-secondary);cursor:pointer;background:0 0;padding:1px 5px;font-size:9px;transition:background .15s,border-color .15s}.stg-terrain-btn:first-child{border-radius:3px 0 0 3px}.stg-terrain-btn:last-child{border-radius:0 3px 3px 0}.stg-terrain-btn.active{background:var(--accent-cyan);color:#000;border-color:var(--accent-cyan)}.stg-disabled{opacity:.3;pointer-events:none}.idle-overlay{z-index:900;opacity:0;pointer-events:none;cursor:pointer;background:#000000b8;flex-direction:column;justify-content:center;align-items:center;gap:12px;transition:opacity .3s;display:flex;position:fixed;inset:0}.idle-overlay.visible{opacity:1;pointer-events:auto}.idle-overlay-title{letter-spacing:.12em;color:var(--text-primary);text-transform:uppercase;font-size:1.1rem}.idle-overlay-sub{color:var(--text-secondary);letter-spacing:.08em;font-size:.75rem}.loading-overlay{z-index:1000;opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.loading-overlay.visible{opacity:1;pointer-events:auto}.loading-overlay.visible:not(.splash){background:var(--bg-primary)}.loading-overlay-content{flex-direction:column;align-items:center;gap:16px;display:flex}.loading-overlay-spinner{border:2px solid var(--bg-hud-border);border-top-color:var(--accent-cyan);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.loading-overlay-spinner.hidden{display:none}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay-content.error{gap:8px}.loading-overlay-message{color:var(--text-primary);text-align:center;font-size:16px}.loading-overlay-hint{color:var(--text-secondary);text-align:center;letter-spacing:.05em;font-size:13px}.loading-overlay-retry{letter-spacing:.1em;min-height:44px;margin-top:16px;padding:8px 24px;font-size:13px}.loading-splash{flex-direction:column;align-items:center;gap:12px}.loading-splash-icao{color:var(--text-bright);letter-spacing:.05em;font-family:Consolas,Monaco,Courier New,monospace;font-size:clamp(48px,24vw,260px);font-weight:900;line-height:1}.loading-splash-subtitle{color:var(--text-primary);letter-spacing:.3em;font-family:Consolas,Monaco,Courier New,monospace;font-size:clamp(13px,2vw,20px)}.controls-legend{z-index:15;flex-direction:column;align-items:flex-end;display:flex;position:fixed;bottom:48px;right:8px}.controls-legend-tab{border:1px solid var(--bg-hud-border);background:var(--bg-hud);width:28px;height:28px;color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;font-size:14px;transition:border-color .15s;display:flex}.controls-legend-tab:hover{border-color:var(--accent-cyan);color:var(--text-bright)}.controls-legend-body{background:var(--bg-hud);border:1px solid var(--bg-hud-border);border-radius:4px;min-width:280px;max-height:60vh;margin-bottom:4px;padding:6px 10px;overflow-y:auto}.cl-section-title{font-family:var(--font-mono);color:var(--accent-cyan);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--bg-hud-border);margin-top:12px;margin-bottom:3px;padding-bottom:2px;font-size:10px}.cl-section-title:first-child{margin-top:2px}.cl-row{justify-content:space-between;gap:12px;padding:1px 4px;display:flex}.cl-section-rows .cl-row:nth-child(2n){background:#ffffff0a;border-radius:2px}.cl-cmd{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;font-size:12px}.cl-ctrl{font-family:var(--font-mono);color:var(--text-bright);white-space:nowrap;text-align:right;font-size:12px}
