/* Flight details use the same neutral surfaces as the radar, in both themes. */
.sky-timing-card{background:var(--sky-surface,#141414);border:1px solid var(--sky-border,#333);border-radius:20px;padding:20px;color:var(--sky-text,#f5f5f5);font-family:var(--sky-ui-font,system-ui,sans-serif);font-variant-numeric:tabular-nums}
.sky-timing-card [hidden]{display:none!important}
.sky-timing-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sky-timing-columns>section{display:flex;flex-direction:column;min-width:0}.sky-timing-columns>section:last-child{text-align:right;align-items:flex-end}
.sky-timing-kind,.sky-timing-date,.sky-timing-delta,.sky-timing-scheduled{color:var(--sky-muted,#999);font-size:11px;line-height:1.5}.sky-timing-kind{font-size:10px}.sky-timing-clock{font-size:clamp(34px,5vw,53px);line-height:1.2;letter-spacing:-2px;margin:5px 0;font-weight:750}.sky-timing-relative{font-size:13px;font-weight:600;margin:12px 0 4px}.sky-timing-delta{font-weight:600}.sky-timing-scheduled{font-size:10px}
.sky-timing-gates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0 0;padding:16px 0 0;border-top:1px solid var(--sky-border,#333)}.sky-timing-gates dt{color:var(--sky-muted,#aaa);font-size:11px}.sky-timing-gates dd{font-size:18px;font-weight:650;margin:6px 0 0;overflow-wrap:anywhere}.sky-timing-gates>div:nth-child(n+3){text-align:right}
.sky-timing-footer{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:20px;color:var(--sky-muted,#999);font-size:10px}.sky-timing-footer small{font-size:10px}.sky-timing-footer small:last-child{margin-left:auto}
.sky-timing-card[data-compact=true]{padding:12px;border-radius:13px;margin-top:10px}.sky-timing-card[data-compact=true] .sky-timing-clock{font-size:28px;letter-spacing:-1px}.sky-timing-card[data-compact=true] .sky-timing-relative{font-size:10px;margin-top:5px}.sky-timing-card[data-compact=true] .sky-timing-kind,.sky-timing-card[data-compact=true] .sky-timing-date{font-size:9px}.sky-timing-card[data-compact=true] .sky-timing-footer,.sky-timing-card[data-compact=true] .sky-timing-gates,.sky-timing-card[data-compact=true] .sky-timing-scheduled,.sky-timing-card[data-compact=true] .sky-timing-delta{display:none}
.sni-dialog{width:min(650px,calc(100% - 24px));font-family:var(--sky-ui-font,system-ui,sans-serif);border-radius:24px}.sni-header{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:20px 22px 10px;border:0;align-items:start}.sni-header-main{display:flex;gap:12px;align-items:center;min-width:0}.sni-airline-icon{flex:none;width:46px;height:46px;border:1px solid var(--sky-border,#333);background:var(--sky-surface,#151515);border-radius:13px;display:grid;place-items:center}.sni-airline-icon img{width:36px;height:36px;object-fit:contain}.sni-airline-icon svg{width:27px;height:27px}.sni-identity-copy{min-width:0}.sni-title-line{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.sni-header .sni-title-line h2{font:750 32px/1.05 var(--sky-ui-font,system-ui,sans-serif);letter-spacing:-1px;margin:0}.sni-header .sni-title-line span{font-size:12px;font-weight:650;color:var(--sky-muted,#999)}.sni-header #sni-subtitle{font-size:12px;margin:8px 0 0}.sni-header .sni-kicker{font-size:8px;letter-spacing:.1em;margin-bottom:9px;display:block}.sni-dialog #sni-close{border:0;background:transparent;min-width:36px;padding:0;color:var(--sky-muted,#aaa);font-size:28px}.sni-live-telemetry{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;gap:16px;font-size:19px;font-weight:700;margin:14px 0 0;letter-spacing:-.5px}.sni-live-telemetry small{font-size:11px;font-weight:500;color:var(--sky-muted,#aaa)}
.sni-dialog .sni-scroll{padding:0 22px 20px}.sni-dialog .sni-status{font:10px/1.45 var(--sky-ui-font,system-ui,sans-serif);min-height:0;margin:8px 0 12px}.sni-journey{padding:0;border:0;margin:0 0 16px}.sni-airports strong{font:750 43px/1.1 var(--sky-ui-font,system-ui,sans-serif);letter-spacing:-1.5px}.sni-airports small{font:9px/1.5 var(--sky-ui-font,system-ui,sans-serif)}.sni-airports span{font:13px/1.5 var(--sky-ui-font,system-ui,sans-serif)}.sni-dialog #sni-progress{height:5px;margin:15px 0 9px;background:var(--sky-border,#333)}.sni-dialog #sni-progress>span{background:var(--sky-text,#eee)}.sni-dialog .sni-flight-times{display:none}.sni-dialog #sni-route-source{font:10px/1.5 var(--sky-ui-font,system-ui,sans-serif);margin-bottom:14px}.sni-dialog #sni-schedule{display:none}.sni-photo-details{margin:0 0 12px;border-bottom:1px solid var(--sky-border,#333)}.sni-photo-details>summary{cursor:pointer;padding:12px 0;font:600 12px/1.5 var(--sky-ui-font,system-ui,sans-serif);min-height:44px}.sni-photo-details .sni-photo{margin:0 0 12px}.sni-photo img{max-height:300px}.sni-dialog .sni-section{border-radius:13px}.sni-dialog .sni-section>summary{font-family:var(--sky-ui-font,system-ui,sans-serif)}.sni-dialog .sni-grid dd{font-family:var(--sky-ui-font,system-ui,sans-serif)}.sni-dialog .sni-actions{gap:6px;padding:10px 16px}.sni-dialog .sni-actions button{font:600 11px/1.3 var(--sky-ui-font,system-ui,sans-serif);border-radius:10px;padding:8px;min-width:0}
.sky-3d-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid var(--sky-border,#444);background:var(--sky-surface,#111);color:var(--sky-text,#eee);border-radius:9px;padding:7px 10px;min-height:36px;font:600 11px/1.4 var(--sky-ui-font,system-ui,sans-serif);cursor:pointer}.sky-3d-button:disabled{opacity:.4;cursor:default}.sky-flight-card-header .sky-3d-button{margin-left:auto;flex:none}.sky-flight-card-header .sni-entry-button{margin-left:0}
#world-selected .world-flight-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}#world-selected .world-flight-actions .sky-3d-button{font-size:10px}#world-selected .world-flight-telemetry{position:static;max-width:none;flex-direction:row;justify-content:space-between;align-items:center;margin-top:9px}#world-selected .world-preview-summary{padding-right:28px!important}#world-selected .world-airline-pill{max-width:55%;font:500 10px/1.4 var(--sky-ui-font,system-ui,sans-serif);background:transparent;padding:0;border:0}#world-selected .world-airline-pill .sky-airline-badge{margin-right:6px}#world-selected .world-flight-identity{grid-template-columns:28px minmax(0,1fr)}#world-selected .world-route-airports strong{font-family:var(--sky-ui-font,system-ui,sans-serif);font-weight:750}#world-selected .world-route-info .sky-flight-progress-fill{background:var(--sky-text,#eee)}#world-selected .world-reference-timing{display:none}#world-selected[data-expanded=true] .world-reference-timing{display:block}#world-selected[data-expanded=true]{max-height:min(680px,69dvh)}
.sky-selected-flight .sky-flight-symbol{border-radius:10px}.sky-selected-flight .sky-flight-airports strong{font:750 37px/1.1 var(--sky-ui-font,system-ui,sans-serif);letter-spacing:-1px}.sky-selected-flight .sky-flight-airline{background:transparent;padding:0}.sky-selected-flight .sky-flight-progress-fill{background:var(--sky-text,#eee)}
.sky-selected-flight .sky-flight-journey>.sky-flight-times{display:none}
.sky-flight-symbol:has(img)::before{display:none!important}
.ac3d-dialog{box-sizing:border-box;width:min(1200px,calc(100% - 24px));height:min(950px,calc(100dvh - 24px));max-width:none;max-height:calc(100dvh - 24px);border:1px solid var(--sky-border,#333);border-radius:22px;padding:0;overflow:hidden;background:var(--sky-panel,#090909);color:var(--sky-text,#eee);font-family:var(--sky-ui-font,system-ui,sans-serif)}.ac3d-dialog[open]{display:flex;flex-direction:column}.ac3d-dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.ac3d-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;flex:none}.ac3d-header small{font-size:8px;color:var(--sky-muted,#999);letter-spacing:.13em}.ac3d-header h2{font-size:27px;letter-spacing:-.7px;margin:3px 0}.ac3d-header p{font-size:11px;color:var(--sky-muted,#aaa);margin:0}.ac3d-dialog button,.ac3d-dialog select{font:600 12px/1.3 var(--sky-ui-font,system-ui,sans-serif);border:1px solid var(--sky-border,#444);border-radius:9px;background:var(--sky-surface,#151515);color:inherit;min-height:40px;padding:8px 12px;cursor:pointer}.ac3d-dialog button:focus-visible,.ac3d-dialog select:focus-visible,.ac3d-dialog canvas:focus-visible{outline:2px solid var(--sky-accent,#2fd37a);outline-offset:-3px}.ac3d-dialog #ac3d-close{font-size:27px;background:transparent;border:0;min-width:44px;min-height:44px}.ac3d-stage{position:relative;flex:1;min-height:200px;background:#152022;overflow:hidden}.ac3d-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.ac3d-stage canvas:active{cursor:grabbing}.ac3d-readout{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:14px;border:1px solid #ffffff24;background:#050708d9;color:#fff;border-radius:11px;padding:10px 13px;pointer-events:none}.ac3d-readout span{font-size:8px;color:#bcdfcc;letter-spacing:.04em}.ac3d-readout span[data-stale=true]{color:#e7c693}.ac3d-readout strong{font-size:14px}.ac3d-gesture{position:absolute;bottom:20px;left:14px;font-size:10px;color:white;text-shadow:0 1px 3px #000;pointer-events:none}.ac3d-credit{position:absolute;bottom:4px;right:8px;font:9px/1.4 system-ui,sans-serif;color:#eee;text-shadow:0 1px 3px #000;pointer-events:none}#ac3d-graphics-status{position:absolute;left:14px;right:14px;bottom:38px;color:#fff;background:#080b0ecf;border-radius:9px;font-size:11px;line-height:1.5;padding:10px;pointer-events:none}#ac3d-graphics-status:empty{display:none}.ac3d-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:10px 14px;flex:none;border-bottom:1px solid var(--sky-border,#333)}.ac3d-controls label{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--sky-muted,#aaa);margin-left:auto}.ac3d-controls button[data-ac3d]{min-width:40px}.ac3d-footer{flex:none;padding:10px 18px}.ac3d-footer p{font-size:10px;line-height:1.5;color:var(--sky-muted,#aaa);margin:3px 0}.ac3d-footer p:first-child{color:var(--sky-text,#ddd);font-weight:600}
@media(max-width:700px){.sni-dialog{width:calc(100% - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);border-radius:20px}.sni-header{padding:16px 14px 8px;gap:5px}.sni-header-main{gap:9px}.sni-header .sni-title-line h2{font-size:27px}.sni-header .sni-title-line span{font-size:10px}.sni-airline-icon{width:39px;height:39px;border-radius:11px}.sni-airline-icon img{width:30px;height:30px}.sni-dialog .sni-scroll{padding:0 14px 16px}.sni-live-telemetry{font-size:17px;margin-top:12px}.sky-timing-card{padding:15px;border-radius:17px}.sky-timing-clock{font-size:40px}.sky-timing-relative{font-size:12px}.sky-timing-footer{margin-top:17px;row-gap:6px}.sky-timing-columns{gap:12px}.sni-dialog .sni-sections{grid-template-columns:1fr}.sni-dialog .sni-actions{padding:8px;gap:5px}.sni-dialog .sni-actions button{font-size:10px;min-height:44px}.sky-flight-card-header .sky-3d-button{min-height:44px;min-width:44px;font-size:10px;padding:5px}.ac3d-dialog{width:calc(100% - 8px);height:calc(100dvh - 8px);max-height:calc(100dvh - 8px);border-radius:17px}.ac3d-header{padding:10px 12px}.ac3d-header h2{font-size:24px}.ac3d-header p{font-size:10px}.ac3d-readout{gap:9px;padding:8px 10px;left:8px;top:8px}.ac3d-readout strong{font-size:12px}.ac3d-readout span{font-size:7px}.ac3d-controls{padding:8px;gap:5px}.ac3d-controls button,.ac3d-controls select{min-height:44px;min-width:44px;font-size:11px;padding:7px}.ac3d-controls label{margin-left:0}.ac3d-footer{padding:8px 12px}.ac3d-footer p{font-size:9px}#world-selected .world-plane-motion{font-size:12px!important}}
@media(max-width:360px){.sni-header .sni-title-line h2{font-size:23px}.sni-airline-icon{width:34px;height:34px}.sky-timing-clock{font-size:34px}.sky-timing-kind{font-size:9px}.sky-timing-relative{font-size:10px}.ac3d-readout{flex-wrap:wrap;max-width:calc(100% - 16px)}.sky-flight-card-header{flex-wrap:wrap}.sky-flight-card-header .sky-3d-button{margin-left:0}}

/* Aircraft Studio: controls live in one compact panel. */
.ac3d-header-actions{display:flex;gap:6px;align-items:center}.ac3d-header-actions button{font:inherit;font-size:12px;padding:8px 10px;border-radius:10px}.ac3d-header-actions #ac3d-close{font-size:26px;padding:2px 10px}.ac3d-studio-panel{position:absolute;top:72px;right:12px;z-index:6;width:min(280px,calc(100% - 48px));max-height:calc(100% - 110px);overflow:auto;padding:18px;border:1px solid #59636a;border-radius:18px;background:var(--sky-panel,#090909);color:var(--sky-text,#eff3f5);box-shadow:0 12px 40px #0008}.ac3d-studio-panel[hidden],.ac3d-photo-toolbar[hidden]{display:none}.ac3d-panel-heading{display:flex;justify-content:space-between;align-items:center}.ac3d-panel-heading h3{margin:0 0 10px}.ac3d-studio-panel label{display:flex;flex-direction:column;gap:5px;margin:12px 0;font-size:13px}.ac3d-studio-panel select,.ac3d-studio-panel button{font:inherit;border:1px solid #5e6870;border-radius:10px;color:inherit;background:var(--sky-surface,#202020);padding:9px;max-width:100%}.ac3d-studio-panel>button{width:100%;margin-top:8px}.ac3d-studio-panel .ac3d-check{flex-direction:row;align-items:center}.ac3d-studio-panel input[type=checkbox]{width:17px;height:17px}.ac3d-studio-panel p{font:12px/1.5 system-ui;margin:8px 0;color:#b8c4cb}.ac3d-photo-toolbar{position:absolute;z-index:8;top:12px;left:12px;right:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ac3d-photo-toolbar button{font:12px system-ui;color:white;border:1px solid #7a858d;border-radius:12px;background:#12171be6;padding:10px}.ac3d-photo-toolbar span{font:12px system-ui;background:#101418d9;color:white;padding:4px 8px;border-radius:8px}.ac3d-dialog[data-photo=true]{height:94dvh;grid-template-rows:minmax(220px,1fr)}.ac3d-dialog[data-photo=true]>.ac3d-header,.ac3d-dialog[data-photo=true]>.ac3d-controls,.ac3d-dialog[data-photo=true]>.ac3d-footer,.ac3d-dialog[data-photo=true] .ac3d-readout,.ac3d-dialog[data-photo=true] .ac3d-gesture{display:none}.ac3d-dialog[data-photo=true] .ac3d-stage{height:100%}.ac3d-hangar,.ac3d-report{color:var(--sky-text,#f1f2f3);background:var(--sky-panel,#101214);border:1px solid var(--sky-border,#42494d);border-radius:22px;padding:22px;width:min(900px,calc(100vw - 50px));max-height:88dvh;overflow:auto;font:14px/1.5 system-ui}.ac3d-hangar::backdrop,.ac3d-report::backdrop{background:#000b;backdrop-filter:blur(8px)}.ac3d-hangar header,.ac3d-report header{display:flex;align-items:center;justify-content:space-between;gap:12px}.ac3d-hangar header h2,.ac3d-report header h2{margin:0}.ac3d-hangar button,.ac3d-hangar select,.ac3d-hangar input,.ac3d-report button,.ac3d-report input,.ac3d-report select,.ac3d-report textarea{font:inherit;color:inherit;background:var(--sky-surface,#20262a);border:1px solid var(--sky-border,#596269);border-radius:10px;padding:11px;box-sizing:border-box;max-width:100%}.ac3d-hangar-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.ac3d-hangar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ac3d-hangar-grid button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:5px;min-height:90px;cursor:pointer}.ac3d-hangar-grid strong{font-size:20px}.ac3d-hangar-grid span{font-size:12px;opacity:.75}.ac3d-report{max-width:520px}.ac3d-report form>label{display:flex;flex-direction:column;gap:5px;margin:14px 0}.ac3d-report textarea{min-height:110px;resize:vertical}.ac3d-report [role=status]{min-height:24px}.ac3d-report button[type=submit]{width:100%}@media(max-width:600px){.ac3d-header{gap:5px}.ac3d-header-actions{gap:4px}.ac3d-header-actions button{padding:7px;font-size:11px}.ac3d-header h2{font-size:25px}.ac3d-hangar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ac3d-hangar-filters{grid-template-columns:1fr}.ac3d-hangar,.ac3d-report{padding:15px;width:calc(100vw - 36px)}.ac3d-photo-toolbar span{flex-basis:100%}}
