@import url('data:text/css,');
:root{--bg:#06101b;--glass:rgba(7,18,30,.88);--border:rgba(117,170,189,.17);--line:rgba(129,183,196,.12);--text:#d5e8ef;--muted:#76919e;--cyan:#5be5ed;--gold:#eac18b;--red:#ef9280;--mono:'Consolas','SFMono-Regular',monospace;--sans:'Segoe UI',Inter,Arial,sans-serif}
*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--sans)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}#world{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none}.ui-panel{background:var(--glass);backdrop-filter:blur(18px);border:1px solid var(--border)}.header{height:72px;position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:0 32px;z-index:10;border-width:0 0 1px}.brand{display:flex;align-items:center;gap:14px;min-width:280px}.brand-icon{width:41px;height:41px;border:1px solid var(--cyan);display:grid;place-items:center;font:700 26px/1 var(--mono);color:var(--cyan);clip-path:polygon(15% 0,85% 0,100% 15%,100% 85%,85% 100%,15% 100%,0 85%,0 15%)}.brand-icon span{font-size:12px;align-self:end;transform:translate(3px,-7px)}.brand strong{display:block;letter-spacing:3px;font-size:17px}.brand-dash{color:var(--cyan)}.brand small{display:block;color:var(--muted);font:9px/2 var(--mono);letter-spacing:1.6px}.locations{display:flex;gap:2px;background:rgba(23,43,57,.6);padding:5px;border:1px solid var(--border)}.mode{border:1px solid transparent;color:var(--muted);background:transparent;padding:10px 17px;font:10px var(--mono);letter-spacing:1px}.mode b{font-weight:600;font-size:11px;margin-left:8px}.mode.active,.mode:hover{border-color:rgba(93,226,235,.34);background:rgba(48,134,151,.18);color:var(--cyan)}.header-right{display:flex;align-items:center;gap:14px;min-width:260px;justify-content:flex-end;color:var(--muted);font:10px var(--mono)}.header-right>button{background:none;border:1px solid var(--border);color:var(--text);font-size:18px;width:30px;height:29px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5eedbd;box-shadow:0 0 8px #4cf4aa}.status-dot.mini{width:5px;height:5px}.hud{position:absolute;inset:72px 0 66px;display:flex;justify-content:space-between;pointer-events:none}.side{pointer-events:auto;width:316px;overflow:auto;scrollbar-width:thin;scrollbar-color:#355263 transparent;padding:22px 21px;display:flex;flex-direction:column}.left{border-width:0 1px 0 0}.right{border-width:0 0 0 1px;width:309px;gap:13px}.eyebrow{font:10px var(--mono);letter-spacing:2px;color:var(--cyan)}h1,h2,p{margin:0}.side-header h1{font-weight:500;font-size:23px;letter-spacing:2.1px;margin:13px 0 8px}.side-header h1 em{font:10px var(--mono);color:var(--gold);vertical-align:super}.side-header p{font-size:11px;color:var(--muted);line-height:1.6;max-width:240px}.segmented{display:flex;margin:23px 0 17px;border-bottom:1px solid var(--border)}.tab{flex:1;border:0;border-bottom:2px solid transparent;padding:0 0 13px;background:none;font:10px var(--mono);letter-spacing:1.8px;color:var(--muted)}.tab.active{color:var(--cyan);border-bottom-color:var(--cyan)}.panel-body{display:block}.hidden{display:none!important}.section-label{font:9px var(--mono);color:var(--muted);letter-spacing:1.1px;display:flex;align-items:center;justify-content:space-between;margin:17px 0 13px}.section-label>span:last-child{font-size:9px;color:#668e9e}.section-label .live{color:#5be7b8!important}.selected-vehicle{display:flex;align-items:center;justify-content:space-between;padding:12px;background:rgba(52,114,131,.08);border:1px solid var(--border)}.selected-vehicle small{display:block;color:var(--muted);font:9px var(--mono);letter-spacing:1px}.selected-vehicle strong{font:600 19px/1.6 var(--mono);letter-spacing:1px}.vehicle-chip{padding:5px 7px;border:1px solid rgba(73,230,194,.29);color:#71e4ba;font:9px var(--mono)}.main-stat{position:relative;padding:18px 0 10px}.main-stat>span{font:300 43px/1 var(--mono);letter-spacing:-2px}.main-stat sup{font:14px var(--mono);color:var(--cyan);margin-left:9px}.main-stat>small{display:block;margin:8px 0 15px;font:9px var(--mono);letter-spacing:1.1px;color:var(--muted)}.progress-track,.bar{height:5px;background:#243846;overflow:hidden}.progress-track>i,.bar>i{display:block;width:0;height:100%;background:linear-gradient(90deg,#14658e,#6ce8e8);box-shadow:0 0 8px rgba(100,240,240,.5);transition:width .2s}.minmax{display:flex;justify-content:space-between;color:#637f8c;font:8px var(--mono);margin-top:8px}.stats-2,.fleet-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stats-2{margin-bottom:14px}.stats-2>div,.fleet-stats>div{background:rgba(23,45,59,.32);border:1px solid var(--border);padding:11px 9px}.stats-2 small,.fleet-stats small{display:block;font:9px var(--mono);color:var(--muted);margin-bottom:7px}.stats-2 b{display:block;font:17px var(--mono);font-weight:500}.stats-2 i{font:10px var(--mono);color:var(--muted)}.actions{display:grid;grid-template-columns:1fr;gap:8px}.actions button{padding:12px 8px;background:transparent;border:1px solid var(--border);font:600 10px var(--mono);letter-spacing:1px;color:var(--text)}.actions .primary{background:linear-gradient(110deg,#1c727f,#166073);border-color:#55d3dd;color:#eaffff}.actions .primary:hover{background:#268895}.actions .danger{border-color:rgba(239,146,128,.33);color:#f1aa9d}.actions .danger:hover{background:rgba(230,99,85,.12)}.slider-line{display:flex;justify-content:space-between;align-items:center;color:#afc2cc;font-size:11px;margin-top:13px}.slider-line strong{font:11px var(--mono);color:var(--cyan)}.panel-body input[type=range]{width:100%;height:3px;margin:9px 0 4px;accent-color:#66d4df;cursor:pointer}.toggles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.toggles.vertical{grid-template-columns:1fr}.toggles label{display:flex;align-items:center;gap:7px;font-size:10px;color:#a8c0cc}.toggles input{accent-color:#5bd8e4;margin:0}.left-footer{display:flex;justify-content:space-between;margin-top:auto;padding-top:19px;font:9px var(--mono);color:#6b8393}.monogram{color:var(--cyan)}.center{flex:1;position:relative;min-width:100px;pointer-events:none}#scene-title{position:absolute;left:38px;top:27px;max-width:350px;text-shadow:0 2px 10px #0009}#scene-title small{font:10px var(--mono);color:var(--cyan);letter-spacing:2px}#scene-title h2{margin:11px 0 7px;font-size:24px;line-height:1.2;letter-spacing:1.5px;font-weight:400}#scene-title p{color:#bdd1d9;font-size:11px;line-height:1.5}.view-caption{position:absolute;bottom:24px;left:38px;color:#b8d8e0;font:9px var(--mono);letter-spacing:1px;display:flex;align-items:center;gap:12px;text-shadow:0 2px 8px black}.reticle{font-size:22px;color:var(--cyan)}.floating-hint{margin-left:22px;color:#789aab}.world-label{position:absolute;transform:translate(-50%,-50%);min-width:100px;pointer-events:none;font:9px var(--mono);letter-spacing:1px;color:#e0f6f4;text-shadow:0 2px 6px #000;white-space:nowrap}.world-label:before{content:'';display:inline-block;width:6px;height:6px;border:1px solid var(--cyan);transform:rotate(45deg);margin-right:7px}.world-label small{display:block;margin-left:14px;color:var(--cyan);font:8px var(--mono)}.right-heading{padding-bottom:12px;border-bottom:1px solid var(--border)}.right-heading>div{display:flex;justify-content:space-between;align-items:center;margin-top:11px}.right-heading h2{font-size:16px;font-weight:500;letter-spacing:2px}.nominal{font:9px var(--mono);color:#7af4c7;padding:5px 6px;background:#1e553e44;border:1px solid #3d9b7255}.readout{padding-bottom:5px}.readout-top{display:flex;justify-content:space-between;color:var(--muted);font:9px var(--mono);letter-spacing:1px}.number{margin:7px 0 8px;font:300 26px var(--mono);color:#e0f5ff}.number small{font:11px var(--mono);color:var(--muted)}.bar{height:4px}.fleet-stats{gap:8px}.fleet-stats>div{padding:10px 9px}.fleet-stats strong{font:18px var(--mono);font-weight:400;color:var(--cyan)}.chart-header{display:flex;justify-content:space-between;margin-top:5px;font:9px var(--mono);letter-spacing:1px;color:var(--muted)}#plot{width:100%;height:115px;display:block;background:rgba(24,56,73,.17);border:1px solid var(--border)}#scenario{width:100%;padding:11px 8px;background:#0d2634;color:var(--text);border:1px solid var(--border);font:10px var(--mono)}.event-list{display:flex;flex-direction:column;gap:8px;overflow:auto;min-height:64px;max-height:160px;scrollbar-width:thin}.event-list>div{padding:0 0 8px 9px;border-left:2px solid #2b778a;font:10px/1.35 var(--mono);color:#abc8d1}.event-list time{display:block;color:#6794a2;font-size:9px;margin-bottom:3px}.credits{display:flex;flex-direction:column;gap:5px;font:8px var(--mono);letter-spacing:.25px;color:#607c8b;margin-top:auto;padding-top:7px}.bottom{position:absolute;bottom:0;left:0;right:0;height:66px;border-width:1px 0 0;display:flex;align-items:center;gap:12px;padding:0 23px;z-index:10}.mission-clock{min-width:178px}.mission-clock small{display:block;font:8px var(--mono);letter-spacing:1px;color:var(--muted)}.mission-clock strong{display:block;color:var(--cyan);font:17px var(--mono);margin-top:3px}.transport{background:rgba(56,107,130,.15);border:1px solid var(--border);height:30px;width:31px;color:var(--cyan)}.time-warp{display:flex;align-items:center;gap:10px;font:9px var(--mono);color:var(--muted);min-width:206px}.time-warp select{background:#0d2634;color:var(--cyan);border:1px solid var(--border);padding:7px;font:10px var(--mono)}.timeline{display:flex;align-items:center;gap:14px;flex:1;min-width:100px;font:9px var(--mono);letter-spacing:1px;color:var(--muted)}.timeline input{flex:1;accent-color:#60d9e7}.export{white-space:nowrap;background:transparent;border:1px solid var(--border);color:#b5d3dc;font:9px var(--mono);letter-spacing:1px;padding:10px 12px}#toast{position:absolute;bottom:79px;left:50%;transform:translateX(-50%);background:#0e2835e8;border:1px solid #53cbd777;color:var(--cyan);padding:10px 19px;font:11px var(--mono);z-index:30;opacity:0;transition:opacity .3s;pointer-events:none}#toast.visible{opacity:1}.boot{position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,#153e53,#03070e 68%);z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;letter-spacing:3px;font:11px var(--mono);transition:opacity .6s}.boot-icon{font-size:72px;color:var(--cyan);text-shadow:0 0 30px #57aabd}.boot-loader{width:280px;height:2px;background:#204251}.boot-loader i{display:block;width:50%;height:100%;background:var(--cyan);animation:loader 1.6s ease-in-out infinite alternate}.boot small{font:10px var(--mono);letter-spacing:1px;color:var(--muted)}@keyframes loader{to{width:95%}}
body.hud-hidden .header,body.hud-hidden .side,body.hud-hidden .bottom{opacity:0;pointer-events:none}body.hud-hidden #scene-title{opacity:0}
@media(max-width:1200px){.side{width:262px;padding:16px}.right{width:264px}.brand{min-width:200px}.header{padding:0 16px}.header-right{min-width:auto}.floating-hint{display:none}.locations .mode{padding:9px}.bottom{gap:8px}.time-warp{min-width:125px}.time-warp>span{display:none}}
@media(max-width:900px){.header{height:62px}.brand small,.header-right .status-text,.header-right #fps{display:none}.brand{min-width:140px}.locations{margin:auto}.mode b{font-size:9px}.hud{inset:62px 0 60px}.side{width:230px}.right{width:220px}.center #scene-title{left:15px}#scene-title h2{font-size:17px}.view-caption{left:15px}.bottom{height:60px;padding:0 10px}.mission-clock{min-width:115px}.mission-clock strong{font-size:12px}.export{display:none}}
@media(max-width:680px){.side.right{display:none}.side.left{width:180px;padding:10px}.header{padding:0 6px}.brand strong{font-size:11px;letter-spacing:1px}.brand-icon{width:29px;height:29px}.mode{padding:6px!important;font-size:8px}.mode b{display:block;margin:0}.header-right{gap:3px}.header-right button{width:24px;height:24px}.left .side-header{display:none}.side-header h1{font-size:16px}.main-stat>span{font-size:27px}.center #scene-title{display:none}.actions button{font-size:8px}.timeline>span{display:none}.time-warp{min-width:70px}.bottom{gap:5px}.mission-clock{min-width:80px}.transport{height:24px;width:23px}}
