:root{--bg:#16171d;--panel-bg:#1f2028;--border:#2e303a;--text:#d1d5db;--text-dim:#9ca3af;--accent:#38bdf8;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:14px/1.45 system-ui,Segoe UI,Roboto,sans-serif}html,body,#root{height:100%;margin:0;overflow-x:hidden}.app{flex-direction:column;height:100%;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--panel-bg);justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.app-brand{align-items:center;gap:10px;display:flex}.brand-logo{width:auto;height:34px;display:block}@media (width<=768px){.brand-logo{height:42px}}.app-title{font-size:16px;font-weight:600}.app-header-actions{align-items:center;gap:12px;display:flex}.token-warning{color:#fbbf24;font-size:12px}.lang-switch{min-width:34px;font-weight:600}.app-main{flex:1;min-height:0;display:flex}.viewer-container{flex:1;min-width:0;position:relative}.viewer-container .cesium-viewer,.viewer-container .cesium-widget,.viewer-container canvas{width:100%;height:100%}.viewer-container .cesium-viewer-bottom{transform-origin:0 100%;transform:scale(.7)}.viewer-error{background:var(--bg);color:#f87171;place-content:center;padding:24px;display:grid;position:absolute;inset:0}.telemetry-profile-banner{z-index:8;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);pointer-events:auto;background:#16171d40;height:150px;position:absolute;bottom:0;left:0;right:0}.telemetry-profile-banner canvas{cursor:crosshair;width:100%;height:100%;display:block}.telemetry-profile-banner--none{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0}.profile-mode-toggle{pointer-events:auto;background:#16171d66;border-radius:7px;gap:2px;padding:1px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.profile-mode-toggle button{color:var(--text-dim);background:0 0;border:none;border-radius:6px;padding:2px 8px;font-size:11px}.profile-mode-toggle button.active{color:var(--text);background:0 0;font-weight:600}.side-panel{border-left:1px solid var(--border);background:var(--panel-bg);width:260px;padding:12px 16px;overflow-y:auto}.side-panel h2{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:12px 0 4px;font-size:13px}.controls-bar{border-top:1px solid var(--border);background:var(--panel-bg);padding:10px 16px}.placeholder{color:var(--text-dim);margin:0}.error-banner{color:#fecaca;border-bottom:1px solid var(--border);background:#7f1d1d;padding:8px 16px}.flight-info{margin:0;font-size:13px}.flight-info dt{color:var(--text-dim);margin-top:6px}.flight-info dd{margin:0}.quality-warning{color:#fbbf24;margin-top:6px}.replay-controls{align-items:center;gap:10px;display:flex}.replay-controls .play-button{min-width:44px}.replay-controls select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:5px 6px}.replay-controls .timeline{accent-color:var(--accent);flex:1}.time-display{font-variant-numeric:tabular-nums;color:var(--text-dim);white-space:nowrap}.controls-bar{flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}.controls-bar .replay-controls{flex:1;min-width:320px}.trail-controls{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.trail-controls select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:5px 6px}.trail-controls label{color:var(--text-dim);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.trail-controls input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;width:28px;height:24px;padding:0}.trail-controls input[type=range]{width:70px}.options-group{border:1px solid var(--border);border-radius:8px;min-width:0;margin:0;padding:10px 10px 8px}.options-group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:0 4px;font-size:11px;font-weight:700}.camera-controls{white-space:nowrap;border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;padding:4px 8px;display:flex}.camera-controls button{padding:4px 10px}.transport-group{border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;padding:4px 6px;display:inline-flex}.transport-group button{padding:4px 10px}.map-touch-controls{z-index:10;flex-direction:column;gap:8px;display:flex;position:absolute;bottom:160px;left:10px}.map-touch-controls button{background:#16171d8c;border-radius:50%;width:42px;height:42px;padding:0;font-size:20px;line-height:1}.camera-smoothing-control{white-space:nowrap;align-items:center;display:flex}.camera-smoothing-control label{color:var(--text-dim);align-items:center;gap:8px;display:inline-flex}.camera-smoothing-control input[type=range]{width:110px}.flyover-controls,.chase-controls{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.flyover-controls label,.chase-controls label{color:var(--text-dim);align-items:center;gap:8px;display:flex}.flyover-controls select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:5px 6px}.flyover-controls input[type=range],.chase-controls input[type=range]{width:90px}.settings-panel .flyover-controls,.settings-panel .chase-controls{flex-direction:column;align-items:stretch}.settings-panel .flyover-controls label,.settings-panel .chase-controls label{justify-content:space-between}.settings-gear{padding:4px 12px;font-size:22px;line-height:1}.settings-panel-backdrop{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.settings-panel{background:var(--panel-bg);border:1px solid var(--border);border-bottom:none;border-radius:12px 12px 0 0;width:min(680px,100%);max-height:min(80vh,560px);padding:12px 16px 20px;overflow-y:auto;box-shadow:0 -8px 24px #0006}.settings-panel-body{columns:2;column-gap:22px}.settings-panel-body>*{break-inside:avoid;margin-top:10px}@media (width<=480px){.settings-panel-body{columns:1}}.settings-panel-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.settings-panel-header h2{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:0;font-size:14px}.settings-panel-close{padding:4px 9px}.settings-panel .settings-reset{width:100%;color:var(--text-dim);margin-top:14px}.share-dialog{width:min(520px,100%)}.share-consent{margin:0 0 14px;line-height:1.55}.share-primary{width:100%;padding:9px 12px;font-weight:600}.share-link-row{gap:8px;display:flex}.share-link-row input{min-width:0;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;flex:1;padding:6px 8px;font-size:13px}.share-error{color:#f87171;margin:10px 0 0}.share-list{border-top:1px solid var(--border);margin-top:18px;padding-top:10px}.share-list h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:0 0 6px;font-size:12px}.share-list ul{margin:0;padding:0;list-style:none}.share-list li{align-items:center;gap:8px;padding:4px 0;display:flex}.share-list-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.share-list-expiry{color:var(--text-dim);white-space:nowrap;font-size:12px}.register-form{gap:8px;display:flex}.register-form input{min-width:0;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;flex:1;padding:7px 10px}.register-form .share-primary{flex-shrink:0;width:auto}.register-code-input{letter-spacing:.35em;font-variant-numeric:tabular-nums;text-align:center}.register-back{width:100%;color:var(--text-dim);margin-top:10px}.camera-controls .control-label{color:var(--text-dim);margin-right:2px}.camera-controls button.active{border-color:var(--accent);color:var(--accent)}.viewer-wrap{flex:1;min-width:0;display:flex;position:relative}.telemetry-overlay{z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#16171da6;padding:8px 14px;position:absolute;top:0;left:0;right:0}.telemetry-overlay .flight-info{flex-wrap:wrap;align-items:stretch;row-gap:4px;display:flex}.telemetry-overlay .flight-info .field{border:1px solid var(--border);white-space:nowrap;align-items:baseline;gap:4px;padding:3px 10px;display:flex}.telemetry-overlay .flight-info .field:not(:first-child){margin-left:-1px}.telemetry-overlay .flight-info .field-group{border:1px solid var(--border);white-space:nowrap;color:var(--text-dim);align-items:baseline;gap:10px;margin-left:8px;padding:3px 10px;display:flex}.telemetry-overlay .flight-info dt{white-space:nowrap;flex-shrink:0;margin-top:0}.telemetry-overlay .flight-info dt:after{content:" :"}.telemetry-overlay .flight-info dd{white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:600}.telemetry-overlay .flight-info dd.v-num{min-width:58px}.telemetry-overlay .flight-info dd.v-vario,.telemetry-overlay .flight-info dd.v-dist{min-width:66px}.telemetry-overlay .flight-info dd.v-cap{min-width:84px}.cap-arrow{color:var(--accent);display:inline-block}.display-toggles{flex-wrap:wrap;gap:8px 16px;display:flex}.display-toggles label{color:var(--text-dim);white-space:nowrap}.vario-up{color:#4ade80}.vario-down{color:#f87171}.speed-controls{align-items:center;gap:4px;display:inline-flex}.speed-controls button{padding:6px 10px;font-weight:700}.speed-display{text-align:center;font-variant-numeric:tabular-nums;min-width:42px}.compass-wrap{z-index:10;flex-direction:column;align-items:center;gap:3px;transition:bottom .2s;display:flex;position:absolute;bottom:160px;right:14px}.compass-wrap--low{bottom:14px}.map-mode-toggle{z-index:10;border:1px solid var(--border);background:#16171d8c;border-radius:8px;gap:2px;padding:2px;transition:top .2s;display:flex;position:absolute;left:10px}.map-mode-toggle button{color:var(--text-dim);background:0 0;border:none;border-radius:6px;padding:4px 11px;font-size:12px;font-weight:600}.map-mode-toggle button.active{background:var(--panel-bg);color:var(--text)}.map-controls{flex-direction:column;gap:7px;display:flex}.map-controls label{color:var(--text-dim);white-space:nowrap}.map-overlays-subtitle{color:var(--text-dim);opacity:.75;margin-top:-4px;font-size:11px}.overlay-disabled{opacity:.45;cursor:not-allowed}.info-icon{border:1px solid var(--text-dim);width:13px;height:13px;color:var(--text-dim);cursor:help;-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;font-size:9px;line-height:1;display:inline-flex}.map-brand-logo-wrap{z-index:10;opacity:.85;transition:top .2s;display:block;position:absolute;right:10px}.map-brand-logo{width:auto;height:60px;display:block}.compass{border:1px solid var(--border);background:#16171d8c;border-radius:50%;width:64px;height:64px}.compass-rose{width:100%;height:100%;transition:transform .1s linear;position:relative}.compass-label{color:var(--text);font-size:12px;font-weight:600;position:absolute}.compass-n{color:#f87171;top:2px;left:50%;transform:translate(-50%)}.compass-s{bottom:2px;left:50%;transform:translate(-50%)}.compass-e{top:50%;right:5px;transform:translateY(-50%)}.compass-o{top:50%;left:5px;transform:translateY(-50%)}.wind-arrow{color:var(--accent);place-content:center;font-size:20px;display:grid;position:absolute;inset:0}.recording-controls{border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;padding:4px 6px;display:inline-flex}.recording-controls select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:5px 6px}.record-button{color:#f87171;min-width:74px;font-weight:600}.record-button--dot{border-radius:50%;justify-content:center;align-items:center;width:28px;min-width:0;height:28px;padding:0;font-size:13px;display:inline-flex}.record-button.recording{color:#fecaca;background:#7f1d1d;border-color:#f87171}.recording-error{color:#fbbf24;font-size:12px}.wind-speed{color:var(--text);background:#16171d8c;border-radius:6px;padding:1px 6px;font-size:11px}button{font:inherit;color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px}button:disabled{opacity:.5;cursor:default}.camera-controls-mobile select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:5px 6px}@media (width<=768px){.app-header{gap:6px;padding:6px}.app-header-actions{flex-wrap:nowrap;gap:3px;overflow-x:auto}.app-header-actions>button{padding:6px 5px}.recording-controls{gap:4px;padding:2px 3px}.lang-switch{min-width:28px}.controls-bar{flex-wrap:nowrap;gap:6px;padding:5px 8px;overflow-x:auto}.controls-bar button,.controls-bar select{padding:5px 7px;font-size:13px}.controls-bar .replay-controls-mobile{flex:1 1 0;align-items:center;gap:6px;min-width:0;display:flex}.replay-controls-mobile .play-button{flex:none;padding:5px 8px}.replay-controls-mobile .timeline{flex:auto;min-width:30px}.replay-controls-mobile select{flex:none;width:46px;padding:5px 2px}.camera-controls-mobile{flex:none}.camera-controls-mobile select{width:62px}.telemetry-overlay{padding:5px 10px}.telemetry-overlay .flight-info.telemetry-mobile{flex-wrap:nowrap;column-gap:4px;font-size:12px;overflow-x:auto}.telemetry-overlay .flight-info.telemetry-mobile .field,.telemetry-overlay .flight-info.telemetry-mobile .field-group{flex-shrink:0;padding:2px 7px}.telemetry-overlay .flight-info.telemetry-mobile dd{min-width:0}.telemetry-datetime{margin-top:2px}}
