@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Roboto+Mono:wght@400;500;600&display=swap";:root{color:#edf4ef;font-synthesis:none;--accent:#b8f35a;--muted:#94a5a6;--line:#c9e1d824;--panel:#0a161bd1;background:#0b151a;font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}svg{width:20px;height:20px;display:block}#simulator,#scene{position:fixed;inset:0}#scene canvas{width:100%;height:100%;display:block}.vignette{pointer-events:none;background:linear-gradient(#02090c47 0%,#0000 22% 68%,#030a0c59 100%);position:fixed;inset:0}.hud{transition:opacity .3s,transform .3s}.hud-hidden .hud{opacity:0!important;pointer-events:none!important}.glass-panel{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);background:linear-gradient(145deg,#0f1e23e6,#071318d1);box-shadow:0 20px 55px #0000002e,inset 0 1px #ffffff06}.topbar{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(#061116cc,#06111670);border-bottom:1px solid #daede621;justify-content:space-between;align-items:center;height:78px;padding:0 28px;display:flex;position:fixed;top:0;left:0;right:0}.brand{align-items:center;gap:12px;min-width:265px;display:flex}.brand-mark{width:42px;height:42px;color:var(--accent);clip-path:polygon(12% 0,100% 0,100% 88%,88% 100%,0 100%,0 12%);background:#b8f35a0f;border:1px solid #b8f35a4d;place-items:center;display:grid}.brand-mark svg{width:25px;height:25px}.brand-name{letter-spacing:3.5px;font-size:17px;font-weight:800;line-height:1.1}.brand-subtitle{color:#91a3a3;letter-spacing:2.3px;margin-top:5px;font-family:Roboto Mono,monospace;font-size:8px}.mission-status{letter-spacing:1.1px;white-space:nowrap;align-items:center;gap:9px;font-family:Roboto Mono,monospace;font-size:10px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.status-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse;box-shadow:0 0 0 4px #b8f35a1a,0 0 12px #b8f35a99}.is-paused .status-dot{background:#ffc76a;animation:none;box-shadow:0 0 0 4px #ffc76a1a}.mission-id{color:#7f9495;border-left:1px solid var(--line);margin-left:4px;padding-left:12px}.top-actions{align-items:center;gap:10px;display:flex}.utc-clock{align-items:baseline;gap:7px;margin-right:10px;font-family:Roboto Mono,monospace;font-size:13px;display:flex}.utc-clock small{color:var(--muted);font-size:8px}.icon-button{border:1px solid var(--line);cursor:pointer;background:#ffffff06;border-radius:4px;place-items:center;width:36px;height:36px;transition:all .2s;display:grid}.icon-button:hover{color:var(--accent);background:#b8f35a14;border-color:#b8f35a66}.icon-button svg{width:17px;height:17px}.telemetry-panel{z-index:5;border-radius:6px;width:276px;padding:18px;position:fixed;top:102px;left:24px}.panel-eyebrow{letter-spacing:1.3px;color:#9eb0af;font-family:Roboto Mono,monospace;font-size:8px}.telemetry-panel>.panel-eyebrow{justify-content:space-between;align-items:flex-end;display:flex}.signal-bars{align-items:flex-end;gap:2px;height:10px;display:flex}.signal-bars i{background:var(--accent);width:2px}.signal-bars i:first-child{height:3px}.signal-bars i:nth-child(2){height:5px}.signal-bars i:nth-child(3){height:7px}.signal-bars i:nth-child(4){height:10px}.aircraft-id{border-bottom:1px solid var(--line);align-items:center;gap:10px;margin:16px 0 18px;padding-bottom:16px;display:flex}.aircraft-symbol{width:38px;height:38px;color:var(--accent);background:#b8f35a14;border:1px solid #b8f35a33;border-radius:4px;place-items:center;display:grid}.aircraft-symbol svg{width:22px;height:22px}.aircraft-id strong{letter-spacing:1px;font-family:Roboto Mono,monospace;font-size:15px;display:block}.aircraft-id div>span{color:var(--muted);margin-top:3px;font-size:10px;display:block}.live-tag{letter-spacing:1px;color:var(--accent);background:#b8f35a14;border-radius:2px;align-self:flex-start;margin-left:auto;padding:4px 5px;font-family:Roboto Mono,monospace;font-size:7px}.primary-metrics{grid-template-columns:1fr 1fr;gap:16px;display:grid}.metric>span{letter-spacing:.7px;min-height:22px;color:var(--muted);font-family:Roboto Mono,monospace;font-size:7px;line-height:1.5;display:block}.metric>div{align-items:baseline;gap:5px;display:flex}.metric strong{letter-spacing:-1.5px;font-family:Roboto Mono,monospace;font-size:27px;font-weight:400}.metric small{color:var(--muted);font-size:9px}.metric .metric-scale{gap:3px;margin-top:8px;display:flex}.metric-scale i{background:#b8f35a85;flex:1;height:2px}.metric-scale i:nth-last-child(-n+2){background:#ffffff1f}.metrics-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:15px 12px;margin-top:16px;padding:18px 0;display:grid}.metrics-grid span{color:var(--muted);margin-bottom:5px;font-size:9px;display:block}.metrics-grid strong{font-family:Roboto Mono,monospace;font-size:13px;font-weight:500}.metrics-grid small{color:var(--muted);font-size:8px;font-weight:400}.descending{color:#ffd083}.maneuver-block{padding:15px 0 13px}.maneuver-heading{color:var(--muted);letter-spacing:.8px;justify-content:space-between;font-family:Roboto Mono,monospace;font-size:7px;display:flex}.maneuver-current{align-items:center;gap:8px;margin-top:9px;display:flex}.maneuver-current>span{width:25px;height:25px;color:var(--accent);border:1px solid #b8f35a33;border-radius:50%;place-items:center;font-size:16px;display:grid}.maneuver-current strong{font-size:11px;font-weight:600}.coordinates{border-top:1px solid var(--line);color:#809596;justify-content:space-between;padding-top:12px;font-family:Roboto Mono,monospace;font-size:7px;display:flex}.coordinates b{color:var(--accent);font-weight:500}.settings-panel{z-index:6;border-radius:6px;width:304px;max-height:calc(100vh - 126px);padding:20px;position:fixed;top:102px;right:24px;overflow-y:auto}.settings-title{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.settings-title h2{letter-spacing:-.3px;margin:5px 0 0;font-size:17px;font-weight:600}.setting-group{margin-bottom:21px}.setting-label{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.setting-label label{color:#c4d0cd;font-size:10px}.setting-label output{color:var(--accent);font-family:Roboto Mono,monospace;font-size:12px}.setting-label output small{color:var(--muted);font-size:8px}input[type=range]{--range-progress:50%;appearance:none;background:linear-gradient(to right, var(--accent) 0 var(--range-progress), #ffffff24 var(--range-progress) 100%);cursor:pointer;border-radius:2px;width:100%;height:3px;display:block}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 1px var(--accent);border:3px solid #1c2c29;border-radius:50%}input[type=range]::-moz-range-thumb{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 1px var(--accent);border:2px solid #1c2c29;border-radius:50%}.range-labels{color:#718789;justify-content:space-between;margin-top:8px;font-family:Roboto Mono,monospace;font-size:7px;display:flex}.toggle-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin:2px 0 18px;padding:15px 0;display:flex}.toggle-row strong{font-size:10px;font-weight:600;display:block}.toggle-row div>span{color:var(--muted);margin-top:4px;font-size:8px;display:block}.switch{flex-shrink:0;width:34px;height:19px;position:relative}.switch input{opacity:0;width:0;height:0}.switch>span{cursor:pointer;background:#344448;border-radius:20px;transition:all .2s;position:absolute;inset:0}.switch>span:after{content:"";background:#a9b6b5;border-radius:50%;width:13px;height:13px;transition:all .2s;position:absolute;top:3px;left:3px}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:after{background:#172219;transform:translate(15px)}.section-label{letter-spacing:1px;color:var(--muted);margin-bottom:9px;font-family:Roboto Mono,monospace;font-size:7px}.segmented-control{border:1px solid var(--line);background:#0000001f;border-radius:4px;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;display:grid}.camera-mode{color:#879a9b;cursor:pointer;background:0 0;border:0;border-radius:3px;flex-direction:column;align-items:center;gap:5px;padding:9px 2px 7px;font-size:8px;display:flex}.camera-mode svg{width:16px;height:16px}.camera-mode.active{color:var(--accent);background:#b8f35a1a;box-shadow:inset 0 0 0 1px #b8f35a2e}.camera-mode:hover:not(.active){color:#d5dfdb;background:#ffffff0a}.wind-row{color:#8fa2a3;align-items:center;gap:10px;margin:18px 0;display:flex}.wind-row>svg{width:18px;height:18px}.wind-row div span{font-size:8px;display:block}.wind-row div strong{color:#c6d1cd;margin-top:3px;font-family:Roboto Mono,monospace;font-size:9px;font-weight:400;display:block}.weather-good{letter-spacing:.7px;color:var(--accent);margin-left:auto;font-family:Roboto Mono,monospace;font-size:7px}.settings-actions{grid-template-columns:.8fr 1.2fr;gap:8px;display:grid}.primary-button,.secondary-button{cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:8px;height:42px;transition:all .2s;display:flex}.primary-button{border:1px solid var(--accent);background:var(--accent);color:#172215;font-size:10px;font-weight:700}.primary-button:hover{background:#c9ff70;box-shadow:0 0 20px #b8f35a21}.primary-button:disabled{opacity:.55;cursor:wait}.secondary-button{border:1px solid var(--line);background:#ffffff09;font-size:9px}.secondary-button:hover{color:var(--accent);border-color:#b8f35a66}.primary-button svg,.secondary-button svg{flex-shrink:0;width:15px;height:15px}.keyboard-hint{text-align:center;color:#667b7e;margin-top:13px;font-size:7px}kbd{color:#9aabab;font-family:Roboto Mono,monospace;font-size:7px}.keyboard-hint>span{padding:0 3px}.token-button{color:#829797;cursor:pointer;background:0 0;border:0;width:100%;margin-top:10px;padding:6px;font-size:8px}.token-button:hover{color:var(--accent)}.token-button:disabled{opacity:.35;cursor:default}.stream-control{border-top:1px solid var(--line);margin-top:9px;padding-top:12px}.stream-heading{color:#8fa2a3;justify-content:space-between;align-items:center;gap:8px;font-family:Roboto Mono,monospace;font-size:7px;display:flex}.stream-heading output{color:#9eb0af;text-align:right;font-size:7px}.stream-button{width:100%;height:32px;color:var(--accent);cursor:pointer;background:#b8f35a12;border:1px solid #b8f35a47;border-radius:4px;margin-top:9px;font-size:9px}.stream-button:hover{background:#b8f35a24}.stream-button:disabled{opacity:.55;cursor:wait}.broadcast-mode .hud,.broadcast-mode .vignette,.broadcast-mode .toast,.broadcast-mode .auth-screen{display:none!important}.user-button{border:1px solid var(--line);cursor:pointer;background:#ffffff06;border-radius:4px;align-items:center;gap:9px;height:36px;padding:0 11px;display:flex}.user-button span{text-overflow:ellipsis;color:#d7e3dc;max-width:110px;font-size:9px;overflow:hidden}.user-button b{color:#829797;font-size:8px;font-weight:500}.user-button:hover{border-color:#b8f35a59}.user-button:hover b{color:var(--accent)}[hidden]{display:none!important}.auth-screen{z-index:200;background:radial-gradient(circle at 50% 20%,#385b4f33,#0000 42%),#081318;place-items:center;padding:24px;transition:opacity .35s,visibility .35s;display:grid;position:fixed;inset:0;overflow-y:auto}.auth-screen:before{content:"";pointer-events:none;opacity:.18;background-image:linear-gradient(#b8f35a14 1px,#0000 1px),linear-gradient(90deg,#b8f35a14 1px,#0000 1px);background-size:52px 52px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 80%);mask-image:linear-gradient(#000,#0000 80%)}.auth-screen.authenticated{opacity:0;visibility:hidden;pointer-events:none}.auth-card{background:linear-gradient(145deg,#112126f7,#071318f7);border:1px solid #c9e1d829;border-radius:8px;width:min(410px,100%);padding:34px;position:relative;box-shadow:0 35px 100px #00000073}.auth-brand{align-items:center;gap:12px;display:flex}.auth-heading{margin:34px 0 24px}.auth-heading h1{letter-spacing:-.8px;margin:9px 0 10px;font-size:26px;font-weight:600}.auth-heading p{color:var(--muted);margin:0;font-size:11px;line-height:1.65}.auth-tabs{border:1px solid var(--line);background:#00000029;border-radius:5px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:22px;padding:4px;display:grid}.auth-tabs button{color:#829797;cursor:pointer;background:0 0;border:0;border-radius:3px;height:34px;font-size:10px}.auth-tabs button.active{color:var(--accent);background:#b8f35a1a;box-shadow:inset 0 0 0 1px #b8f35a2b}.auth-field{margin-bottom:16px;display:block}.auth-field>span{color:#a9b8b4;margin-bottom:8px;font-size:9px;display:block}.auth-field input{border:1px solid var(--line);color:#edf4ef;background:#020a0d6b;border-radius:4px;outline:none;width:100%;height:44px;padding:0 13px;font-size:12px;transition:border-color .2s,box-shadow .2s}.auth-field input:focus{border-color:#b8f35a8c;box-shadow:0 0 0 3px #b8f35a0f}.auth-field input::placeholder{color:#566d70}#auth-form .primary-button{width:100%;margin-top:5px}.auth-error{color:#ffab91;text-align:center;min-height:18px;margin-top:12px;font-size:10px;line-height:1.5}.auth-footnote{border-top:1px solid var(--line);color:#637a7c;text-align:center;margin-top:15px;padding-top:17px;font-family:Roboto Mono,monospace;font-size:7px;line-height:1.7}.target-marker{z-index:4;pointer-events:none;will-change:transform;width:76px;height:54px;position:fixed;top:0;left:0}.target-marker>i{border-style:solid;border-color:#d3f4b7b8;width:12px;height:12px;position:absolute}.target-marker>i:first-child{border-width:1px 0 0 1px;top:0;left:0}.target-marker>i:nth-child(2){border-width:1px 1px 0 0;top:0;right:0}.target-marker>i:nth-child(3){border-width:0 0 1px 1px;bottom:0;left:0}.target-marker>i:nth-child(4){border-width:0 1px 1px 0;bottom:0;right:0}.target-label{white-space:nowrap;letter-spacing:.8px;text-shadow:0 1px 4px #000;gap:7px;font-family:Roboto Mono,monospace;font-size:7px;display:flex;position:absolute;top:-19px;left:50%;transform:translate(-50%)}.target-label small{color:var(--accent);font-size:7px}.manual-camera-controls{z-index:7;border-radius:6px;width:304px;padding:15px;display:none;position:fixed;bottom:24px;right:24px}.manual-camera-controls.visible{animation:.25s ease-out camera-panel-in;display:block}.manual-camera-title{letter-spacing:1px;color:#a4b4b2;justify-content:space-between;align-items:center;margin-bottom:12px;font-family:Roboto Mono,monospace;font-size:8px;display:flex}.manual-camera-title output{color:var(--accent);letter-spacing:0;font-size:10px}.camera-control-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.camera-control-grid button{border:1px solid var(--line);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;background:#ffffff09;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:4px;height:54px;transition:background .15s,border-color .15s,color .15s,transform .15s;display:flex;position:relative}.camera-control-grid button strong{font-family:Roboto Mono,monospace;font-size:21px;font-weight:400;line-height:1}.camera-control-grid button span{color:#a1b0ae;font-size:8px}.camera-control-grid button kbd{color:#64797a;font-size:6px;position:absolute;top:4px;right:5px}.camera-control-grid button:hover,.camera-control-grid button.pressed{color:var(--accent);background:#b8f35a1a;border-color:#b8f35a6b}.camera-control-grid button.pressed{transform:translateY(1px);box-shadow:inset 0 0 15px #b8f35a0d}.camera-control-grid button.pressed span{color:var(--accent)}.find-drone-button{width:100%;height:36px;color:var(--accent);cursor:pointer;background:#b8f35a12;border:1px solid #b8f35a4d;border-radius:4px;justify-content:center;align-items:center;gap:8px;margin-top:9px;font-size:9px;transition:all .2s;display:flex}.find-drone-button:hover{background:#b8f35a24;border-color:#b8f35a8c}.find-drone-button strong{font-family:Roboto Mono,monospace;font-size:18px;font-weight:400;line-height:1}.manual-camera-help{text-align:center;color:#718688;margin-top:11px;font-size:7px;line-height:1.8}.manual-camera-help kbd{color:#b3c1bc}.minimap-panel{z-index:5;border-radius:6px;width:242px;height:176px;position:fixed;bottom:24px;left:24px;overflow:hidden}.minimap-title,.minimap-footer{letter-spacing:.7px;color:#9aabab;justify-content:space-between;align-items:center;height:34px;padding:0 12px;font-family:Roboto Mono,monospace;font-size:7px;display:flex}.minimap-title b{color:var(--accent);font-size:8px;font-weight:400}#minimap{background:#01090c47;border-top:1px solid #ffffff0a;border-bottom:1px solid #ffffff0a;width:100%;height:108px;display:block}.minimap-footer{height:32px}.minimap-footer span{align-items:center;gap:5px;display:flex}.map-drone{background:var(--accent);width:4px;height:4px;box-shadow:0 0 5px var(--accent);border-radius:50%}.scene-caption{z-index:4;text-shadow:0 1px 6px #000000b3;align-items:center;gap:10px;display:flex;position:fixed;bottom:29px;left:50%;transform:translate(-50%)}.caption-line{background:var(--accent);width:22px;height:1px}.scene-caption strong{letter-spacing:1.4px;font-family:Roboto Mono,monospace;font-size:8px;font-weight:500;display:block}.scene-caption div>span{color:#e5efeaa6;margin-top:4px;font-size:8px;display:block}.toast{z-index:20;opacity:0;pointer-events:none;color:#dbe8df;background:#09161aeb;border:1px solid #b8f35a40;border-radius:4px;padding:11px 18px;font-size:10px;transition:all .25s;position:fixed;bottom:90px;left:50%;transform:translate(-50%,15px)}.toast.visible{opacity:1;transform:translate(-50%)}.map-attribution{z-index:3;color:#e1ece7a8;text-align:right;pointer-events:none;background:#040c0f94;border-radius:3px;max-width:min(580px,100vw - 24px);padding:4px 7px;font-size:7px;line-height:1.35;display:none;position:fixed;bottom:7px;right:12px}.map-attribution.visible{display:block}.loading-screen{z-index:100;background:#0a151a;flex-direction:column;justify-content:center;align-items:center;transition:opacity .7s,visibility .7s;display:flex;position:fixed;inset:0}.loading-screen.loaded{opacity:0;visibility:hidden}.loading-mark{color:var(--accent);margin-bottom:20px;animation:2s ease-in-out infinite hover}.loading-mark svg{width:48px;height:48px}.loading-title{letter-spacing:6px;margin-left:6px;font-size:21px;font-weight:800}.loading-line{background:#ffffff1a;width:180px;height:1px;margin:25px 0 16px;overflow:hidden}.loading-line span{background:var(--accent);width:45%;height:100%;animation:1.4s ease-in-out infinite load;display:block}.loading-copy{color:#7f9394;letter-spacing:.5px;font-size:9px}.mobile-only,#mobile-settings{display:none}@keyframes pulse{50%{opacity:.55}}@keyframes hover{50%{transform:translateY(-6px)}}@keyframes load{0%{transform:translate(-110%)}to{transform:translate(330%)}}@keyframes camera-panel-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (height<=790px){.settings-panel{padding:16px 18px}.settings-title,.setting-group{margin-bottom:16px}.toggle-row{margin-bottom:14px;padding:12px 0}.wind-row{margin:13px 0}.telemetry-panel{padding:16px}.aircraft-id{margin:12px 0 14px;padding-bottom:13px}.metrics-grid{margin-top:12px;padding:14px 0}.manual-camera-help{display:none}.manual-mode .settings-panel{max-height:calc(100vh - 265px);overflow-y:auto}}@media (width<=1000px){.mission-id{display:none}.settings-panel{width:280px;right:16px}.telemetry-panel{width:250px;left:16px}.minimap-panel{width:220px;left:16px}}@media (width<=760px){.topbar{height:66px;padding:0 14px}.brand{min-width:0}.brand-mark{width:36px;height:36px}.brand-name{letter-spacing:2.5px;font-size:14px}.brand-subtitle{letter-spacing:1.6px;font-size:6px}.mission-status,.utc-clock,#fullscreen{display:none}#mobile-settings,.mobile-only{display:grid}.telemetry-panel{width:218px;padding:13px;top:80px;left:12px}.aircraft-id{margin:10px 0 12px;padding-bottom:11px}.aircraft-symbol{width:31px;height:31px}.primary-metrics{gap:10px}.metric strong{font-size:22px}.metrics-grid{gap:11px 8px;margin-top:10px;padding:12px 0}.maneuver-block{padding:11px 0}.coordinates{display:none}.settings-panel{width:min(320px,100vw - 24px);max-height:calc(100vh - 92px);display:none;top:78px;right:12px;overflow-y:auto}.settings-panel.open{z-index:9;display:block}.minimap-panel{width:180px;height:137px;bottom:14px;left:12px}#minimap{height:72px}.minimap-title,.minimap-footer{height:31px;font-size:6px}.minimap-footer{height:32px}.scene-caption{bottom:24px;left:auto;right:14px;transform:none}.manual-camera-controls{width:224px;padding:12px;bottom:14px;right:12px}.manual-camera-help{display:none}.camera-control-grid button{height:58px}.manual-mode .minimap-panel,.manual-mode .scene-caption{opacity:0;pointer-events:none}}@media (width<=430px){.telemetry-panel{width:194px}.telemetry-panel>.panel-eyebrow,.metric>span{font-size:6px}.metric strong{font-size:20px}.aircraft-id .live-tag{display:none}.metrics-grid strong{font-size:11px}.maneuver-current strong{font-size:9px}.scene-caption{display:none}}
