:root{color-scheme:dark;--navy:#081625;--panel:#0e2334;--panel2:#0b1c2c;--line:#1a3947;--muted:#76919e;--text:#eaf3f5;--aqua:#63dfd0;--amber:#efb765;--red:#f16f6f;--font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html,body{margin:0;min-width:320px;min-height:100%;background:var(--navy);color:var(--text);font-family:var(--font);font-size:13px}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--aqua);outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}button{transition:background .16s ease,border-color .16s ease,filter .16s ease}#app{max-width:1920px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.header{height:80px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #163240;padding:0 31px;background:#0a1a29}.brand{display:flex;align-items:center;gap:17px}.brand-mark{display:grid;place-items:center;width:42px;height:45px;border:2px solid #4ed9c5;color:#e5f7ee;clip-path:polygon(0 0,100% 0,100% 74%,55% 100%,0 74%);font-size:24px;font-weight:850;letter-spacing:-5px;padding-right:8px;background:#153943}.brand-glow{color:#e6ac57}.brand-title{letter-spacing:.2em;font-size:19px;font-weight:800}.brand-muted{font-weight:500;color:#a1bac1;letter-spacing:.04em}.brand-sub{font-size:9px;letter-spacing:.17em;color:#748c9d;margin-top:5px}.brand-dot{color:#c49a63}.header-right{display:flex;align-items:center;gap:22px}.seed{color:#7d98a3;font-size:10px;letter-spacing:.09em}.seed strong{color:#d4dde0;margin-left:4px}.status{display:flex;align-items:center;gap:9px;color:#7de0bf;letter-spacing:.10em;font-size:10px;font-weight:700;background:#10352e;border:1px solid #276b59;border-radius:4px;padding:10px 12px}.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:#58e1b2;box-shadow:0 0 10px #58e1b277}.tiny{background:transparent;border:1px solid #274250;color:#a5c1c8;border-radius:4px;padding:9px 13px;font-size:10px;font-weight:800;letter-spacing:.1em}.tiny:hover{background:#153446}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#1a3b46;border-bottom:1px solid #1a3b46}.metric{background:#0d2231;padding:17px 28px 16px;min-height:116px}.metric-top{display:flex;justify-content:space-between;align-items:center;letter-spacing:.13em;font-size:10px;font-weight:750;color:#93a9b2}.metric-icon{font-size:18px;color:#55818e}.metric-reading{margin-top:7px;display:flex;align-items:baseline;gap:8px;font-size:31px;line-height:1.15;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.metric-reading small{font-size:10px;font-weight:750;letter-spacing:.11em;color:#79c7c8}.metric-foot{color:#628492;font-size:10px;margin-top:5px;letter-spacing:.035em}.positive{color:#5bd9a5;margin-right:3px}.workspace{display:grid;grid-template-columns:290px minmax(0,1fr) 305px;min-height:760px;flex:1}.sidebar{background:#091c2b;padding:24px 17px 22px;overflow:auto}.left-side{border-right:1px solid #21404b}.right-side{border-left:1px solid #21404b;background:#0a1c2b}.section-head{display:flex;align-items:center;gap:10px;font-size:10px;font-weight:800;letter-spacing:.12em;color:#7eaaaf}.section-head .line{width:18px;height:2px;background:#7cd7c4}.left-side h1{font-weight:650;line-height:1.1;font-size:28px;letter-spacing:-.035em;margin:19px 2px 12px}.left-side h1 em{font-style:normal;color:#85ddce}.intro{line-height:1.65;color:#809ca9;font-size:11px;margin:0 1px 24px}.panel{background:#0e2535;border:1px solid #244250;border-radius:6px;padding:16px;margin-bottom:14px;box-shadow:0 8px 24px #00111b16}.panel-top{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:800;letter-spacing:.11em;margin-bottom:18px;color:#dbecee}.pill{font-size:8px;color:#9bb7bf;background:#183746;padding:5px 7px;border:1px solid #345260;border-radius:2px}.pill.amber{background:#433622;color:#f1c787;border-color:#76603a}.pill.cyan{background:#143e3b;color:#74e0cb;border-color:#286960}.panel label{display:block;font-size:9px;color:#8eacb6;letter-spacing:.12em;font-weight:800;margin:11px 0 8px}.field{width:100%;padding:12px 12px;color:#e6f3f1;background:#081b2b;border:1px solid #315364;border-radius:3px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7'%3E%3Cpath d='m1 1 4 4 4-4' stroke='%2393b3bf' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:calc(100% - 12px) center;letter-spacing:.055em;font-size:11px;font-weight:750}.field.compact{padding:11px}.transfer-swap{height:22px;position:relative;text-align:center}.transfer-swap:before{content:"";position:absolute;left:12px;right:12px;top:13px;border-top:1px dashed #28505b}.transfer-swap button{position:relative;border:1px solid #406574;border-radius:30px;background:#183748;color:#76e0d3;height:28px;width:31px;font-size:17px}.route-preview{background:#0b1f2e;border:1px dashed #2b5160;padding:12px;margin-top:16px;margin-bottom:12px;display:grid;gap:6px;line-height:1.5}.route-preview span{font-size:9px;color:#73939e;font-weight:800;letter-spacing:.1em}.route-preview strong{font-size:11px;color:#b8e8da;letter-spacing:.04em;overflow-wrap:anywhere}.action{width:100%;border-radius:3px;font-weight:800;letter-spacing:.08em;font-size:11px;min-height:41px}.primary{display:flex;align-items:center;justify-content:space-between;padding:0 15px;border:1px solid #f5c57d;background:linear-gradient(100deg,#e9b467,#f5cf8a);color:#16313b}.primary:hover{filter:brightness(1.07)}.primary span{font-size:17px}.controls-panel .panel-top{margin-bottom:23px}.small-indicator{color:#61caac;font-size:9px}.range-header{display:flex;align-items:center;justify-content:space-between;margin:19px 0 8px}.range-header label{margin:0}.range-header output{font-weight:800;font-size:11px;color:#d4eced;font-variant-numeric:tabular-nums}input[type=range]{appearance:none;width:100%;height:4px;border-radius:99px;background:#2f5059;margin:0;cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;width:13px;height:13px;border-radius:50%;background:#8aead7;border:3px solid #16474a;box-shadow:0 0 0 1px #75ceb9}input[type=range]::-moz-range-thumb{width:9px;height:9px;border-radius:50%;background:#8aead7;border:3px solid #16474a}.range-ticks{display:flex;justify-content:space-between;font-size:9px;color:#5e7c8a;margin-top:8px;margin-bottom:12px}.preset-row{display:flex;gap:6px;margin-top:14px}.preset-row button{flex:1;font-size:9px;letter-spacing:.08em;font-weight:800;background:#142e3c;color:#7797a2;border:1px solid #31515e;padding:11px 3px;border-radius:3px}.preset-row button.on,.preset-row button:hover{background:#245548;color:#aff1dc;border-color:#448d77}.stage{min-width:0;display:flex;flex-direction:column;background:radial-gradient(ellipse 75% 55% at 50% 25%,#193e52,#0c2132 70%);overflow:hidden}.stage-head{height:102px;display:flex;align-items:center;justify-content:space-between;padding:18px 24px 14px;border-bottom:1px solid #1a3f4b}.eyebrow{font-size:9px;letter-spacing:.15em;font-weight:800;color:#74b8b3}.stage-head h2{font-size:25px;letter-spacing:-.03em;margin:6px 0 0;font-weight:680}.stage-head h2 span{color:#76cbc0;font-weight:400}.stage-head-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}.view-chip{padding:8px 10px;border:1px solid #37656b;color:#a5d5d3;font-size:9px;font-weight:800;letter-spacing:.08em;border-radius:3px}.chip-circle{display:inline-block;width:6px;height:6px;border:1px solid #83ddcb;border-radius:100%;margin-right:5px}.clock{font-size:10px;letter-spacing:.08em;font-variant-numeric:tabular-nums;color:#b6d4d8}.clock span{color:#e7f0e9;font-weight:800}.viewport{position:relative;flex:1;min-height:445px;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#16384c 0%,#07182a 75%)}#scene,#labels{position:absolute;inset:0;width:100%;height:100%}#scene{cursor:grab;touch-action:none}#scene:active{cursor:grabbing}#labels{pointer-events:none}.compass{position:absolute;left:18px;top:20px;background:#0c2435b8;border:1px solid #396071;padding:9px 11px;border-radius:3px;font-size:9px;letter-spacing:.08em;color:#a5c0c8;pointer-events:none}.compass-cross{color:#70d6c4;margin-right:6px}.view-actions{position:absolute;right:18px;top:18px;display:flex;gap:5px}.view-actions button{border:1px solid #396071;background:#0a2535cc;color:#bbdfdd;border-radius:3px;width:35px;height:32px;font-size:16px}.view-actions button:hover,.view-actions button.on{background:#1b574e;border-color:#64c8af}.scene-legend{position:absolute;left:19px;bottom:56px;display:flex;gap:13px;flex-wrap:wrap;background:#061b2abe;border:1px solid #264958;border-radius:3px;padding:10px 11px;color:#bdd5d7;font-size:9px;font-weight:750;letter-spacing:.04em}.scene-legend>span{display:flex;align-items:center;gap:6px}.disc{display:inline-block;width:7px;height:7px;border-radius:100%}.disc.emerald{background:#55f4b7}.disc.cyan{background:#5faeb7}.disc.red{background:#e76b66}.disc.gold{background:#eec07a}.scene-hint{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:9px;color:#6e929d;letter-spacing:.065em;font-weight:700;pointer-events:none}.scene-hint b{color:#b68a53;margin:0 5px}.toast{position:absolute;top:70px;left:50%;transform:translateX(-50%) translateY(-10px);opacity:0;pointer-events:none;padding:12px 18px;border:1px solid #5ca69c;background:#123a44ed;box-shadow:0 14px 30px #0006;border-radius:3px;color:#d9faf2;font-size:12px;font-weight:650;text-align:center;transition:opacity .22s ease,transform .22s ease;max-width:90%}.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}.toast.error{background:#502d36ef;color:#ffe9e9;border-color:#a65959}.render-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:#081b29;gap:10px;padding:20px}.render-fallback[hidden]{display:none}.render-fallback strong{font-size:20px}.render-fallback span{color:#9fbbc6;max-width:340px;line-height:1.5}.stage-bottom{height:215px;border-top:1px solid #1b424d;background:#0a2030;padding:18px 24px 14px;display:flex;flex-direction:column;min-width:0}.chart-header{display:flex;align-items:center;justify-content:space-between}.chart-header h3{font-size:16px;margin:5px 0 0;font-weight:650}.chart-header h3 span{font-size:11px;font-weight:450;color:#7da6b1;margin-left:5px}.chart-live{font-size:9px;color:#7fabae;letter-spacing:.09em}.chart-live .pulse{width:6px;height:6px;margin-right:5px}.chart-wrap{flex:1;min-height:60px;position:relative}#telemetry{width:100%;height:100%}.chart-key{position:absolute;right:16px;top:10px;color:#8addc7;font-size:9px;font-weight:800;letter-spacing:.05em;pointer-events:none}.right-title{margin:18px 0 24px}.right-title h2{margin:5px 0 0;line-height:1.1;font-size:25px;letter-spacing:-.03em}.right-title h2>span:last-child{font-weight:380;color:#7acec1}.title-slash{font-weight:350;color:#4f8c9a}.line-panel .panel-top{margin-bottom:16px}.segment-data{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:15px 0;border-top:1px solid #244452;border-bottom:1px solid #244452;padding:14px 0}.segment-data span{display:block;font-size:8px;letter-spacing:.08em;color:#71909b;font-weight:750;margin-bottom:5px}.segment-data strong{font-size:10px;font-variant-numeric:tabular-nums;color:#a6f2d3}.secondary{background:#1b3946;border:1px solid #44656e;color:#d0e7e7}.secondary:hover{background:#26505c}.network-health{margin-top:17px}.network-health>div:first-child{display:flex;justify-content:space-between;font-size:9px;color:#83a5ac;font-weight:700;letter-spacing:.045em}.network-health strong{color:#aae2d4}.health-bar{background:#17323c;border-radius:3px;height:4px;margin-top:9px;overflow:hidden}.health-bar>div{height:100%;width:100%;background:#65dfb8;transition:width .2s}.capsule-panel{min-height:145px}.manifest{max-height:205px;overflow:auto}.empty{padding:17px 5px;text-align:center;color:#688895;font-size:11px;line-height:1.65}.manifest-item{display:flex;justify-content:space-between;gap:8px;padding:11px 0;border-top:1px solid #244452}.manifest-item strong{font-size:11px;color:#f7c987}.manifest-item p{margin:4px 0 0;font-size:10px;color:#9ab6ba}.manifest-item .progress-label{font-size:9px;color:#70cfbb;text-align:right}.microprogress{height:3px;background:#204451;border-radius:3px;width:65px;margin-top:9px}.microprogress>div{height:3px;background:#62debe}.events-panel .panel-top{gap:4px}.text-button{border:0;background:none;padding:0;color:#8ee4cc;font-size:9px;font-weight:800;letter-spacing:.035em}.text-button:hover{text-decoration:underline}.event-list{max-height:200px;overflow:auto}.event{display:flex;gap:10px;line-height:1.45;padding:9px 0;border-top:1px solid #21424c}.event-time{font-size:9px;color:#5a8794;font-variant-numeric:tabular-nums;flex-shrink:0}.event-msg{color:#adc6cc;font-size:10px}.event.arrival .event-msg{color:#8ee9c5}.event.fault .event-msg{color:#f3b27b}.event.reject .event-msg{color:#ea8888}.command-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.command{height:35px;background:#102b3b;border:1px solid #35525e;color:#c3d7dc;font-size:10px;font-weight:800;letter-spacing:.06em;border-radius:3px}.command:hover{background:#21505c}.emergency{width:100%;margin-top:10px;height:42px;border-radius:3px;border:1px solid #925b57;background:#46292e;color:#ffb4aa;font-size:10px;font-weight:850;letter-spacing:.07em}.emergency:hover{background:#62343a}.emergency.latched{background:#1b524b;color:#a0f0d5;border-color:#4c9f86}.safety-note{font-size:9px;color:#627f8b;line-height:1.55;margin-top:17px;letter-spacing:.06em}.footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;background:#071622;border-top:1px solid #1a3843;font-size:9px;font-weight:750;letter-spacing:.065em;color:#668692}.footer b{color:#ba9256;font-weight:500;margin:0 5px}.modal-cover{position:fixed;inset:0;background:#000a;z-index:10;display:grid;place-items:center;padding:25px}.modal-cover[hidden]{display:none}.modal{position:relative;background:#102b3b;border:1px solid #46817d;max-width:580px;padding:28px;border-radius:7px;box-shadow:0 25px 90px #000a}.modal h2{font-size:24px}.modal p{line-height:1.7;color:#c0d6d8}.modal li{margin:10px 0;color:#a1d3cf}kbd{background:#1b4650;color:#f6dda8;padding:3px 6px;border:1px solid #45717a;border-radius:3px;font-size:10px}.modal-warning{color:#dda6a0!important;font-size:11px}.modal-close{position:absolute;right:15px;top:15px;background:transparent;border:0;color:#bad8da;font-size:18px}@media(max-width:1350px){.workspace{grid-template-columns:260px minmax(0,1fr) 266px}.sidebar{padding:20px 11px}.panel{padding:13px}.scene-legend{gap:8px}.metric{padding:16px 20px}}@media(max-width:1120px){.workspace{grid-template-columns:242px minmax(0,1fr)}.right-side{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 12px;border-left:0;border-top:1px solid #24404a}.right-side>.section-head,.right-title,.command-row,.emergency,.safety-note{grid-column:1/-1}.right-title{margin:10px 0}.stage{min-height:760px}.line-panel,.capsule-panel,.events-panel{align-self:start}.footer{flex-wrap:wrap}.compass{display:none}}@media(max-width:750px){.header{padding:12px 15px;height:auto;min-height:72px}.brand-title{font-size:16px}.brand-sub{font-size:7px}.seed,.tiny{display:none}.header-right{gap:5px}.status{font-size:9px;padding:8px}.metrics{grid-template-columns:repeat(2,1fr)}.metric{min-height:94px;padding:14px}.metric-reading{font-size:25px}.workspace{display:flex;flex-direction:column}.left-side{order:2;border-right:0}.stage{order:1;min-height:0}.right-side{order:3}.left-side h1{font-size:23px}.intro{margin-bottom:13px}.left-side .panel{display:block}.stage-head{height:80px;padding:12px}.stage-head h2{font-size:21px}.stage-head-right{gap:6px}.view-chip{display:none}.viewport{height:400px;flex:none;min-height:400px}.stage-bottom{height:190px;padding:14px 12px}.scene-legend{bottom:56px;left:7px;right:7px;justify-content:center;gap:7px;padding:8px}.scene-hint{font-size:7px;letter-spacing:0}.right-side{display:block}.footer{padding:15px;line-height:1.6}.footer span:last-child{display:none}}@media(max-width:420px){.viewport{height:340px;min-height:340px}.brand-sub{letter-spacing:0}.status{font-size:8px}.stage-head h2{font-size:19px}.scene-legend{font-size:8px;gap:6px}.scene-hint{font-size:6.5px}.chart-live{display:none}}
