:root{color-scheme:dark;--glass:rgba(11,23,34,.88);--edge:rgba(208,233,246,.15);--muted:#94a4b1;--white:#f4f8fb;--aqua:#9bdbd4;--blue:#7fb7ed;--gold:#e4b578;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#0f2438;color:var(--white)}button,select,input{font-family:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #a2e3d9;outline-offset:2px}#viewport{position:absolute;inset:0;background:linear-gradient(#577f9e 0%,#b1cedb 57%,#dce4d7 62%,#56616b 100%)}#viewport canvas{display:block;width:100%;height:100%}.app{position:absolute;inset:0;pointer-events:none}.app>*{pointer-events:auto}small{letter-spacing:.12em;color:var(--muted);font-size:9px;font-weight:700}.topbar{position:absolute;top:0;left:0;right:0;height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:linear-gradient(to bottom,rgba(7,19,31,.86),rgba(8,18,27,.34));border-bottom:1px solid rgba(255,255,255,.08)}.brand{display:flex;gap:13px;align-items:center}.brand-symbol{width:41px;height:41px;border:1px solid #a0d4d5;color:#d2f0e4;transform:rotate(45deg);text-align:center;line-height:38px;font-size:12px;font-weight:900;letter-spacing:-2px}.brand-symbol::first-letter{color:#e6c588}.brand-symbol span{font-size:6px}.brand>b{display:block}.brand b{font-size:15px;letter-spacing:.24em}.brand em{font-weight:500;color:var(--aqua);font-size:10px;letter-spacing:.1em;font-style:normal;margin-left:7px}.brand small{display:block;margin-top:4px;font-size:8px;letter-spacing:.2em}.top-metrics{display:flex;align-items:center;gap:55px;margin-left:auto;margin-right:55px}.top-metrics b,.top-metrics small{display:block}.top-metrics b{font-size:14px;margin-top:6px;letter-spacing:.07em}.top-controls{display:flex;gap:7px}.top-controls button{color:#edf9ff;background:rgba(26,44,58,.65);border:1px solid var(--edge);padding:10px 13px;border-radius:3px;font-size:10px;font-weight:750;letter-spacing:.09em}.top-controls .pausebtn{background:#c3d9d9;color:#112635}.panel{background:var(--glass);backdrop-filter:blur(17px);border:1px solid var(--edge);box-shadow:0 16px 45px rgba(0,0,0,.25);border-radius:5px}.leftpane{position:absolute;top:104px;left:25px;width:310px;padding:21px}.rightpane{position:absolute;top:104px;right:25px;width:310px;padding:21px}.section-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--edge);padding-bottom:17px}.section-heading h2{font-size:18px;margin:7px 0 0;font-weight:600;letter-spacing:-.03em}.onair{font-size:9px;color:var(--aqua);letter-spacing:.08em;border:1px solid #6eb69a6a;padding:5px 7px}.header-glyph{font-size:25px;color:var(--gold)}.panel-line{display:flex;justify-content:space-between;align-items:center;padding-top:17px}.panel-line strong{letter-spacing:.08em;font-size:11px}.label-muted{font-size:9px;color:#b5c0c8;letter-spacing:.08em}.control-number{display:flex;align-items:center;gap:13px;padding:14px 0 0}.control-number>span{font-size:69px;line-height:1;font-weight:260;font-variant-numeric:tabular-nums;letter-spacing:-.09em}.control-number b{font-weight:450;font-size:18px}.control-number small{display:block;margin-top:5px;font-size:7px}.speedtrack{height:4px;background:#293e4c;position:relative;margin:16px 0 19px}.speedtrack #speedFill{height:100%;background:var(--aqua);width:0;transition:width .12s}.speedtrack #limitMark{position:absolute;left:70%;width:2px;height:12px;top:-4px;background:var(--gold)}.control-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;border-bottom:1px solid var(--edge);padding-bottom:19px}.control-grid b,.control-grid small{display:block}.control-grid b{font-size:11px;margin-top:7px;font-weight:600}.sliderbox{margin:18px 0 22px}.sliderlabel,.slidernote{display:flex;justify-content:space-between}.sliderlabel{font-size:10px;letter-spacing:.1em}.sliderlabel b:last-child{color:var(--aqua)}input[type=range]{appearance:none;width:100%;height:5px;outline:0;border-radius:0;background:#354d5d;margin:18px 0 12px;cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;background:#a2dbd3;width:15px;height:20px;border:3px solid #102b35;box-shadow:0 0 0 1px #a2dbd3}input[type=range]::-moz-range-thumb{background:#a2dbd3;width:12px;height:16px;border:2px solid #102b35;border-radius:0}.slidernote{font-size:8px;letter-spacing:.1em;color:#8b9eaa}.toggleline{display:grid;grid-template-columns:1fr 1fr;gap:8px}.toggleline button{background:#17313e;border:1px solid #34515b;color:#d5e8e8;padding:13px 9px;font-size:9px;letter-spacing:.05em;font-weight:700}.togglebox span{display:block;color:var(--aqua);margin-top:5px}.toggleline button.redbtn{border-color:#9f4f51;color:#f6cbcd;background:#512729}.equipment{display:flex;gap:9px;margin-top:15px}.equipment button{display:flex;flex:1;align-items:center;text-align:left;gap:7px;background:#152b3a;color:#d6e4e6;border:1px solid var(--edge);padding:11px 8px;font-size:8px}.equipment button>b{font-size:20px}.equipment small{display:block;font-size:8px;color:#9bcdbf;margin-top:5px}.trainsystem{display:flex;gap:10px;justify-content:space-between;padding-top:18px;margin-top:20px;border-top:1px solid var(--edge)}.trainsystem small{font-size:7px;display:block}.trainsystem b{display:block;margin-top:7px;font-size:11px}.rightpane .control-label{display:block;color:#b4c5cf;font-size:9px;font-weight:750;letter-spacing:.12em;margin:20px 0 9px}.rightpane select{appearance:none;width:100%;background:#1c3546;color:#e8f3f7;border:1px solid #405a65;padding:12px 9px;font-size:11px}.withvalue{display:flex!important;justify-content:space-between;margin:22px 0 0!important}.withvalue span:last-child{color:var(--aqua)}.rightpane>input[type=range]{margin-top:14px}.switchheader{display:flex;align-items:center;justify-content:space-between;margin:20px 0 10px;padding-top:14px;border-top:1px solid var(--edge)}.switchheader h3{font-size:12px;font-weight:700;margin:0}.switchheader small{font-size:7px}.switchrow{padding:13px 0;border-bottom:1px solid #ffffff12;display:flex;justify-content:space-between;align-items:center}.switchrow strong{display:block;font-size:10px;font-weight:600}.switchrow small{display:block;margin-top:5px;font-size:8px;letter-spacing:.03em}.switchrow button{border:1px solid #4e7a76;background:#173a39;color:#a8e5d5;font-weight:800;font-size:9px;letter-spacing:.07em;min-width:63px;padding:9px 7px}.switchrow button.divert{background:#6a4e2c;border-color:#ad8651;color:#ffe4a4}.timetable{max-height:150px;overflow:auto;scrollbar-color:#476275 transparent}.timeitem{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #ffffff12}.timeitem>b{font-size:10px;font-weight:550}.timeitem small{display:block;margin-top:3px;font-size:8px;letter-spacing:.01em}.timeitem>span{font-size:11px;color:var(--aqua);font-variant-numeric:tabular-nums}.statusline{margin-top:16px;color:#a7c3ca;font-size:10px;line-height:1.4;display:flex;gap:8px}.statusdot,.live-dot:before{content:'';width:7px;height:7px;background:#85d6b1;display:inline-block;border-radius:50%;box-shadow:0 0 10px #85d6b1;flex-shrink:0;margin-top:4px}.camera-pill{position:absolute;top:101px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:2px;background:rgba(8,25,36,.77);padding:4px;border:1px solid var(--edge);border-radius:5px;backdrop-filter:blur(9px)}.camera-pill span{font-size:8px;letter-spacing:.11em;color:#b9c7d0;padding:0 10px}.camera-pill button{font-size:9px;letter-spacing:.09em;border:0;background:transparent;color:#bbccd5;padding:9px 11px}.camera-pill button.active{background:#d5e5e4;color:#19313b}.bottompane{position:absolute;bottom:22px;left:25px;right:25px;display:flex;align-items:center;justify-content:space-between;gap:26px;background:rgba(9,23,35,.88);backdrop-filter:blur(16px);border:1px solid var(--edge);padding:16px 19px;border-radius:5px}.bottom-left{flex:1}.bottom-left>small{display:block;margin-bottom:10px}.bar{height:6px;background:#324c60;position:relative}.bar span{display:block;width:16.2%;height:100%;background:linear-gradient(90deg,#68aea7,#e0e0a2)}.bar:before{content:'';position:absolute;z-index:2;top:-3px;left:40%;width:1px;height:12px;background:#ffffff90}.stations{display:flex;justify-content:space-between;padding-top:9px;gap:5px}.stations span{font-size:7px;color:#9db0bd;letter-spacing:.06em}.bottom-right{display:flex;gap:26px;align-items:center;padding-left:24px;border-left:1px solid var(--edge)}.bottom-right b,.bottom-right small{display:block}.bottom-right b{font-size:10px;margin-top:6px}.live-dot{color:#90ddbf;font-size:9px;font-weight:700;letter-spacing:.08em}.live-dot:before{margin-right:7px}.hudtip{position:absolute;bottom:114px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.03em;background:rgba(9,27,39,.6);border-radius:3px;padding:9px 18px;color:#e1e7ee;white-space:nowrap}.route-button{position:absolute;bottom:127px;right:25px;border:1px solid #b5c4cc6b;background:#d3dfe1;color:#1a323d;font-size:9px;font-weight:800;letter-spacing:.09em;padding:11px 15px}.route-modal{position:absolute;bottom:132px;left:50%;transform:translateX(-50%);background:#0c2130ed;width:min(94vw,880px);border:1px solid #67939c;padding:24px;box-shadow:0 15px 80px #0008;backdrop-filter:blur(16px)}.route-modal .modal-title{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.16em;color:var(--aqua)}.route-modal .modal-title button{color:white;background:none;border:0;font-size:26px}.route-modal h2{font-size:21px;margin:10px 0}.route-modal p{font-size:11px;color:#a6bac3}.route-modal canvas{display:block;width:100%;height:auto;max-height:230px;cursor:crosshair}.route-modal #routeKey{font-size:10px;color:#b6c3c8}.boot{position:absolute;inset:0;z-index:11;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(ellipse at 50% 30%,#1f5364 0,#0b1c2d 70%)}.bootmark{font-weight:800;letter-spacing:.35em;font-size:30px;color:#e4f4f6}.bootmark span{color:#d4ae70}.bootsubtitle{margin:14px;font-size:10px;letter-spacing:.3em;color:#a4cbd4}.bootsubtitle b{color:#d4ae70}.loadbar{width:240px;height:3px;background:#344e5b;margin:28px}.loadbar i{display:block;background:#bbdedb;height:100%;width:75%;animation:pulse 1.4s infinite alternate}@keyframes pulse{to{width:100%}}.boot small{font-size:10px}#error{position:absolute;inset:30px;z-index:20;background:#1b1920;color:white;padding:35px;font-family:monospace;overflow:auto}dialog{background:#102b39;color:#e4f4f6;border:1px solid #719a9d;padding:25px;max-width:520px;box-shadow:0 15px 55px #000a}dialog::backdrop{background:#0009}dialog h2{font-size:20px;letter-spacing:.08em}dialog p{color:#b1c5ce;font-size:12px;line-height:1.7}dialog .helpgrid{display:grid;grid-template-columns:120px 1fr;gap:7px 20px;font-size:11px}.helpgrid b{color:#91d3c6}dialog button{background:#d1e8e5;border:0;margin-top:20px;padding:13px 20px;color:#1a3641;font-weight:800}@media (max-height:860px){.leftpane,.rightpane{top:90px}.leftpane,.rightpane{transform:scale(.87);transform-origin:top left}.rightpane{transform-origin:top right}.hudtip{bottom:102px}.bottompane{bottom:10px;padding:13px 16px}.route-button{bottom:110px}}@media (max-width:1180px){.top-metrics{gap:20px;margin-right:25px}.leftpane,.rightpane{width:280px;padding:15px}.bottom-right{gap:12px}.bottompane{gap:15px}.stations{display:none}}@media(max-width:860px){.topbar{padding:0 12px}.top-metrics{display:none}.topbar{height:65px}.leftpane{width:220px;top:76px;left:8px;transform:scale(.85);transform-origin:top left}.rightpane{top:76px;width:230px;right:8px;transform:scale(.85);transform-origin:top right}.camera-pill{top:75px;transform:translateX(-50%) scale(.77)}.bottompane{left:8px;right:8px;padding:12px}.bottom-right{display:none}.hudtip{display:none}}@media(max-width:560px){.rightpane{display:none}.leftpane{top:108px}.top-controls #toggleUI{display:none}.camera-pill{top:70px;left:50%;white-space:nowrap}.brand small{display:none}.brand b{font-size:11px}.bottompane{bottom:12px}.route-button{bottom:95px}}
body.hide-ui .leftpane,body.hide-ui .rightpane,body.hide-ui .bottompane,body.hide-ui .hudtip,body.hide-ui .camera-pill{display:none}
