:root{color-scheme:dark;--bg:#08111b;--sidebar:#0b1825;--panel:#102030;--panel2:#13283a;--edge:#223a4b;--text:#e6f1f5;--sub:#8ba5b4;--gold:#ebba75;--cyan:#8fd0e2;--red:#e16b6b;font-family:Inter,"Segoe UI",system-ui,-apple-system,Arial,sans-serif;font-size:13px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,select,input{font:inherit}button{cursor:pointer}h1,h2,p{margin:0}.shell{height:100vh;min-height:670px;display:flex;flex-direction:column;overflow:hidden}.topbar{height:78px;flex:0 0 78px;background:#091724;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 29px;border-bottom:1px solid var(--edge)}.identity{display:flex;gap:15px;align-items:center;min-width:310px}.identity img{height:47px;width:70px;object-fit:cover;object-position:23% 60%;border-radius:3px;border:1px solid #243e4d}.identity small,.section-title small{color:var(--gold);letter-spacing:.18em;font-size:9px;font-weight:700}.identity h1{font-size:19px;letter-spacing:.13em;font-weight:780;margin-top:3px}.identity h1 span{color:#9db2c0;font-weight:400}.head-center{display:flex;align-items:center;gap:10px;color:#91abb9;letter-spacing:.14em;font-size:10px;font-weight:650}.separate{color:#355062;margin:0 4px}.live-dot{width:7px;height:7px;border-radius:50%;background:#7fe4ab;box-shadow:0 0 10px #5dcca4;display:inline-block}.top-actions{display:flex;align-items:center;gap:22px}.digital-clock{font-size:22px;letter-spacing:.09em;color:#d8eff0;font-weight:650;font-variant-numeric:tabular-nums}.button{border:1px solid #3b5361;color:var(--text);background:#223747;border-radius:3px;min-height:34px;padding:9px 12px;font-size:10px;letter-spacing:.1em;font-weight:750;transition:background .16s,border-color .16s}.button:hover{background:#365367;border-color:#74939b}.button.subtle{background:transparent}.button.danger{background:#683638;border-color:#985558;color:#fff}.button.danger:hover{background:#9a4b4d}.button.switch{width:100%;background:#18323e;border:1px solid #386678;color:#b9e4ed}.button.primary-button{width:100%;background:#a8753f;border-color:#e1ae6d;color:#fff;margin-top:15px}.layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(500px,1fr) 340px}.sim-panel{min-height:0;display:flex;flex-direction:column;overflow-y:auto;background:#091520}.viewport{flex:1;min-height:390px;position:relative;overflow:hidden;background:linear-gradient(180deg,#4f7c9d,#a7bdc3 51%,#304758)}.viewport canvas{display:block;width:100%;height:100%;position:absolute;inset:0;z-index:0;touch-action:none}.viewport .vignette{position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(0deg,rgba(3,14,23,.61),transparent 30%,transparent 66%,rgba(5,19,30,.28)),linear-gradient(90deg,rgba(4,17,28,.2),transparent 40%,rgba(4,17,28,.14))}.view-header{z-index:2;position:absolute;left:26px;right:24px;top:25px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.corner-label,.state-pill{background:rgba(9,27,42,.63);border:1px solid #ffffff30;backdrop-filter:blur(12px);padding:10px 14px;letter-spacing:.12em;color:#d7ebeb;font-size:9px;font-weight:700;display:flex;align-items:center;gap:10px}.state-pill{color:#e9c595}.view-bottom{position:absolute;z-index:2;bottom:29px;left:29px;right:30px;display:flex;justify-content:space-between;align-items:end;gap:15px;pointer-events:none}.camera-caption{font-size:15px;font-weight:750;letter-spacing:.14em;text-shadow:0 2px 12px #0007}.camera-instructions{font-size:9px;letter-spacing:.07em;color:#c4d0d7;margin-top:9px}.view-stamp{text-align:right;color:#f2e1bf;font-weight:750;letter-spacing:.12em;font-size:17px}.view-stamp span{font-size:8px;font-weight:500;color:#aabac7}.loading{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0d2131f0;text-align:center;padding:36px}.loading.hidden{display:none}.spinner{height:36px;width:36px;border:2px solid #678392;border-top-color:#f5c984;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:19px}@keyframes spin{to{transform:rotate(360deg)}}.loadTitle{color:#ffe1ac;letter-spacing:.16em;font-weight:780}.loading p{font-size:12px;color:#a4b9c5;margin:12px 0}.fx-precip{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0}.viewport[data-weather="rain"] .fx-precip{opacity:.24;background:repeating-linear-gradient(113deg,transparent 0 11px,#c7e7ec 11px 12px,transparent 12px 27px);background-size:190px 190px;animation:rain .5s linear infinite}.viewport[data-weather="snow"] .fx-precip{opacity:.36;background-image:radial-gradient(#fff 1.7px,transparent 2.2px),radial-gradient(#fff 1px,transparent 2px);background-size:80px 70px,47px 50px;animation:rain 5s linear infinite}@keyframes rain{to{background-position:-80px 190px,40px 130px}}.telemetry{min-height:100px;display:flex;align-items:stretch;padding:0 22px;background:#122738;border-top:1px solid #446170;border-bottom:1px solid #345365;overflow:auto}.stat{padding:20px 22px;min-width:114px;border-right:1px solid #2b4a5a;flex:1}.stat.primary{background:#16374b;min-width:155px}.stat.wide{flex:1.6;min-width:205px}.stat label{font-size:9px;letter-spacing:.11em;color:#93aebd;font-weight:720}.stat div{display:flex;gap:6px;align-items:baseline;margin-top:10px}.stat strong{font-size:25px;font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap;color:#e5f4fa}.stat.primary strong{font-size:32px;color:var(--gold)}.stat small{font-size:11px;color:#a4b8c5}.stat.wide strong{font-size:14px;color:#def5f7}.under-view{padding:21px 28px;background:#0c1c2a;min-height:141px}.panel-heading{display:flex;justify-content:space-between}.panel-heading h2,.section-title h2{font-size:12px;letter-spacing:.14em;font-weight:760}.tag{font-size:9px;color:#9ec8d1;border:1px solid #416070;padding:5px 8px;letter-spacing:.05em}.route-slider{margin:19px 0 9px}.route-ends{display:flex;justify-content:space-between;color:#9cb4bd;font-size:9px;letter-spacing:.08em;margin-bottom:8px}.route-ends span:nth-child(2){color:var(--gold);font-weight:bold}.quick-stats{display:flex;gap:28px;margin-top:14px;color:#637e8d;font-size:9px;letter-spacing:.12em}.quick-stats b{color:#b8ced4;margin-left:5px}.sidebar{border-left:1px solid #284251;background:#0b1b28;min-height:0;overflow:hidden}.aside-scroll{overflow-y:auto;height:100%;padding:24px 23px 35px;scrollbar-color:#24485a transparent;scrollbar-width:thin}.section-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:19px}.section-title h2{margin-top:7px}.control-box{margin-bottom:21px}.control-box>label{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;font-weight:750;color:#b8cbd5;margin-bottom:16px}.control-box strong{color:var(--gold)}.control-box p{font-size:10px;color:#6f899a;line-height:1.5;margin-top:9px}input[type=range]{width:100%;height:4px;appearance:none;background:#305165;border-radius:3px;cursor:pointer;accent-color:var(--gold)}input[type=range]::-webkit-slider-thumb{appearance:none;height:15px;width:15px;border:2px solid #243d4e;background:#e9b879;border-radius:50%;box-shadow:0 0 0 2px #e9b87955}input[type=range].red::-webkit-slider-thumb{background:#ed7c82;box-shadow:0 0 0 2px #ed7c8255}.actions{display:flex;gap:8px}.actions .button:first-child{flex:2}.actions .button:last-child{flex:1}.toggle{display:flex;align-items:center;gap:10px;background:#142c3b;padding:12px;margin:15px 0;color:#d8e5ec;font-size:11px;cursor:pointer;border:1px solid #294d5c}.toggle input{accent-color:var(--gold)}.toggle small{margin-left:auto;color:#7aaf8f;font-size:8px}hr{border:0;border-top:1px solid #284251;margin:25px 0}.form-row{margin:18px 0}.form-row>label{display:block;font-size:9px;letter-spacing:.12em;color:#a7c0cc;font-weight:750;margin-bottom:11px}.form-row>select{width:100%;padding:11px;color:#deedf0;background:#142d3d;border:1px solid #355669;border-radius:3px;font-size:11px}.range-ends{display:flex;justify-content:space-between;margin-top:9px;color:#658699;font-size:9px}.small-note{font-size:10px;line-height:1.6;color:#78909e;margin-top:9px}.route-map{display:block;width:100%;height:155px;border:1px solid #284558;background:radial-gradient(ellipse at center,#152f40,#0a1723)}.map-legend{display:flex;justify-content:space-between;margin-top:10px;font-size:9px;color:#9bb4bd}.map-legend .line{display:inline-block;background:#f2bb69;width:14px;height:2px;vertical-align:middle}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:3px}.dot.player{background:#ff5e66}.dot.stop{background:#b5e8f6}.schedule{border-collapse:collapse;font-size:10px;width:100%;text-align:left;color:#b8cdd4}.schedule th{font-size:8px;letter-spacing:.07em;color:#7293a4;padding:0 4px 8px}.schedule td{padding:9px 4px;border-top:1px solid #254455}.schedule td:first-child{font-weight:700;color:#f1ce92}.event-log{min-height:70px;max-height:175px;overflow:auto;background:#061521;color:#7db3b1;padding:12px;font-family:ui-monospace,Consolas,monospace;font-size:9px;line-height:1.7;border:1px solid #254554}.event-log>div{padding-bottom:6px}.credits{color:#527180;font-size:8px;line-height:2.0;text-align:center;margin-top:28px;letter-spacing:.1em}
@media(max-width:1100px){.head-center{display:none}.layout{grid-template-columns:minmax(430px,1fr) 320px}.stat{padding:16px 13px;min-width:94px}.stat.primary{min-width:112px}.stat strong{font-size:21px}.stat.primary strong{font-size:26px}.stat.wide{min-width:155px}.camera-instructions{max-width:440px;line-height:1.6}}
@media(max-width:750px){.shell{height:auto;min-height:100vh;overflow:visible}.topbar{padding:0 14px;height:64px;flex-basis:64px}.identity{min-width:0;gap:8px}.identity img{width:44px;height:40px}.identity h1{font-size:13px}.identity small{font-size:7px}.digital-clock{font-size:15px}.top-actions .button{display:none}.layout{display:block}.sim-panel{overflow:visible}.viewport{height:390px;min-height:390px;flex:none}.view-header{left:10px;right:10px;top:10px}.view-bottom{bottom:12px;left:12px;right:12px}.camera-caption{font-size:10px}.camera-instructions{font-size:7px}.corner-label{font-size:7px;padding:8px}.state-pill{font-size:7px;padding:8px}.telemetry{overflow-x:auto;padding:0}.stat{min-width:112px}.under-view{padding:18px 12px}.quick-stats{gap:10px;flex-wrap:wrap}.sidebar{overflow:visible}.aside-scroll{overflow:visible;padding:23px}.map-legend{justify-content:flex-start;gap:20px}}
