@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/montserrat-variable-BB6x-mlj.ttf) format("truetype")}:root{color:#e9eff2;background:#0c1012;--ui-font-family: "Montserrat", Arial, Helvetica, "Liberation Sans", sans-serif;font-family:var(--ui-font-family);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden}button{border:1px solid #44535b;border-radius:5px;padding:.52rem .78rem;color:#e9eff2;background:#202a2f;font:inherit;cursor:pointer}button:hover:not(:disabled){background:#2b383f}button:disabled{cursor:not-allowed;opacity:.5}.app-shell{display:flex;flex-direction:column;width:100%;height:100%;background:#000}.signaller-logo{display:inline-flex;align-items:center;gap:.7rem;color:#f1f6f8;-webkit-user-select:none;user-select:none;text-decoration:none}.signaller-logo:hover,.signaller-logo:focus-visible{color:#fff}.signaller-logo-icon{display:block;width:clamp(2.75rem,7vw,3.5rem);height:clamp(2.75rem,7vw,3.5rem)}.signaller-logo-wordmark{font-size:clamp(1.4rem,3.5vw,2rem);font-weight:700;letter-spacing:-.035em}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;min-height:2.35rem;padding:.1rem .2rem;border-bottom:1px solid #000000;background:#fff}.topbar-left{display:flex;min-width:0;align-items:center;gap:.5rem;grid-column:1;justify-self:start}.pause-menu-toggle,.chat-toggle{display:grid;width:2rem;height:2rem;margin:0;padding:.25rem;place-items:center;border:1px solid #000000;border-radius:4px;color:#000;background:#fff}.pause-menu-toggle svg,.chat-toggle svg{width:1.2rem;height:1.2rem}.pause-menu-toggle:hover:not(:disabled),.pause-menu-toggle:focus-visible,.chat-toggle:hover:not(:disabled),.chat-toggle:focus-visible{color:#fff;background:#303030}.zone-label{grid-column:2;grid-row:1;color:#000;font-size:1.25rem;font-weight:700;line-height:1}.network-status{display:inline-flex;align-items:center;gap:.45rem;grid-column:3;grid-row:1;justify-self:end;color:#000;font-size:1.25rem}.network-bars{display:inline-flex;align-items:flex-end;gap:.12rem;height:1.25rem}.network-bar{width:.25rem;border:1px solid #000000;background:#fff}.network-bar:nth-child(1){height:.5rem}.network-bar:nth-child(2){height:.85rem}.network-bar:nth-child(3){height:1.2rem}.network-bar.active{background:#000}.latency-label{min-width:5rem;font-variant-numeric:tabular-nums}.map-viewport{position:relative;flex:1;min-height:0;overflow:hidden;touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;background:#000;cursor:grab}.map-viewport.dragging{cursor:grabbing}.map-scene{position:absolute;inset:0;z-index:0;transform-origin:0 0;--scene-inverse-scale: 1}.map-scene-annotation{transform:scale(var(--scene-inverse-scale));transform-origin:0 0}.tile-layer{position:absolute;inset:0;overflow:visible;background:#000;z-index:0}.map-tile,.map-tile-placeholder{position:absolute;display:block;max-width:none;pointer-events:none;transform-origin:0 0}.map-tile{pointer-events:none;image-rendering:auto}.map-tile-placeholder{background:#000}.map-vector-layer{position:absolute;top:0;left:0;display:block;overflow:visible;pointer-events:none}.platform-layer,.platform-hit-layer{position:absolute;inset:0;width:100%;height:100%}.platform-layer{z-index:1;overflow:visible;pointer-events:none}@keyframes platform-ready-flash{0%,49.999%{fill:#f0c600}50%,to{fill:#f4f4f4}}@keyframes platform-overdue-flash{0%,49.999%{fill:#ff2929}50%,to{fill:#f4f4f4}}.platform-glyph-ready .platform-glyph-fill{animation:platform-ready-flash 1s steps(1,end) infinite}.platform-glyph-overdue .platform-glyph-fill{animation:platform-overdue-flash 1s steps(1,end) infinite}.platform-hit-layer{z-index:1;pointer-events:none}.platform-hit-target{position:absolute;padding:0;border:0;border-radius:2px;opacity:0;pointer-events:auto;background:transparent;appearance:none;outline:none}.train-layer{position:absolute;inset:0;z-index:1;overflow:visible;pointer-events:none}.train-describer-block{position:absolute;display:grid;place-items:center;width:3.675rem;height:1.35rem;margin:0;padding:0;overflow:hidden;border:1px solid #0b4d17;border-radius:1px;color:#06210a;background:#00d52a;box-shadow:none;font-family:var(--ui-font-family);font-size:1.1rem;font-weight:900;letter-spacing:.01em;line-height:1;text-overflow:clip;white-space:nowrap;transform:translate(-50%,-50%);pointer-events:auto;appearance:none}.train-describer-block.lateness-on-time{border-color:#0b4d17;color:#06210a;background:#00d52a}.train-describer-block.lateness-yellow{border-color:#846900;color:#332900;background:#f5d335}.train-describer-block.lateness-orange{border-color:#8d4500;color:#351900;background:#ff922e}.train-describer-block.lateness-red{border-color:#8d151b;color:#fff4f4;background:#ed303b}.train-describer-text{max-width:100%;margin:0;padding:0;overflow:hidden;text-overflow:clip;white-space:nowrap}.train-describer-block:focus-visible,.train-describer-block.selected{outline:2px solid #ffffff;outline-offset:1px}.train-describer-block.spad{box-shadow:0 0 0 3px #ff1717}.train-describer-block.selected{border-color:#fff;box-shadow:0 0 0 1px #00b088}.train-describer-block.spad.selected{box-shadow:0 0 0 2px #00b088,0 0 0 4px #ff1717}.train-describer-panel{position:absolute;z-index:4;width:270px;height:116px;min-height:116px;padding:0;overflow:hidden;border:0;border-radius:0;color:#f2f2f2;background:#373536;box-shadow:0 .5rem 1.3rem #0000006b;font-weight:700;-webkit-user-select:none;user-select:none}.train-describer-panel-heading{display:flex;align-items:center;justify-content:space-between;height:39px;padding:3px 7px 0 6px}.train-describer-panel-heading>strong{color:#eee;font-size:2rem;font-weight:800;letter-spacing:-.06em;line-height:.95}.train-describer-panel-identity{display:flex;align-items:flex-start;flex-direction:column;padding-top:1px;color:#aeb0b1;line-height:1}.train-describer-panel-identity span{font-size:.75rem;font-weight:700}.train-describer-panel-identity strong{color:#aeb0b1;font-size:1rem;font-weight:700;line-height:1.05}.train-describer-panel-destination{height:27px;margin:0;padding:6px 8px 0;color:#f4f4f4;background:#4a4849;font-size:.9rem;font-weight:800;line-height:1;text-align:center}.train-describer-panel-footer{display:flex;align-items:flex-end;justify-content:space-between;height:50px;padding:5px 8px 7px}.train-describer-panel-next-stop{display:flex;align-items:flex-start;flex-direction:column;gap:3px;min-width:0}.train-describer-panel-next-stop span{color:#9b9b9b;font-size:.72rem;font-weight:700;line-height:1}.train-describer-panel-next-stop strong{overflow:hidden;color:#f4f4f4;font-size:.9rem;font-weight:800;line-height:1;text-overflow:ellipsis;white-space:nowrap}.train-describer-status{color:#48e33f!important;font-size:1.05rem;font-weight:800;line-height:1}.train-describer-panel.lateness-yellow .train-describer-status{color:#ffe044!important}.train-describer-panel.lateness-orange .train-describer-status{color:#ff9d32!important}.train-describer-panel.lateness-red .train-describer-status{color:#ff4d55!important}.signal-layer,.signal-hit-layer{position:absolute;inset:0;width:100%;height:100%}.signal-layer{z-index:2;overflow:visible;pointer-events:none}.signal-hit-layer{z-index:3;pointer-events:none}.signal-hit-target{position:absolute;width:2.2rem;height:2.2rem;padding:0;border:0;border-radius:50%;transform:translate(-50%,-50%) scale(var(--scene-inverse-scale, 1));opacity:0;pointer-events:auto;background:transparent;appearance:none;outline:none}.signal-tooltip{position:absolute;z-index:4;width:292px;max-width:calc(100% - 1rem);height:124px;min-height:124px;padding:7px 9px 3px;border:0;border-radius:2px;color:#f2f2f2;background:#383637;box-shadow:0 .5rem 1.3rem #0000006b;font-family:var(--ui-font-family);font-weight:700;-webkit-user-select:none;user-select:none}.signal-tooltip-info-open{z-index:5}.platform-tooltip{width:258px;height:115px;min-height:115px;padding:4px 9px 5px;background:#373536f0;text-align:center}.platform-tooltip-station{color:#d7d5d6;font-size:20px;font-weight:700;line-height:23px;white-space:nowrap}.platform-tooltip-number{margin-top:0;color:#fff;font-size:29px;font-weight:800;line-height:33px;white-space:nowrap}.platform-tooltip-actions{display:flex;align-items:center;gap:10px;margin-top:3px}.platform-camera{flex:0 0 120px;width:120px;height:43px;margin:0;padding:0;border:2px solid #f2f2f2;border-radius:0;color:#fff;background:#9300cf;font-size:23px;font-weight:800;line-height:1}.platform-camera:hover:not(:disabled){background:#a817df}.platform-tooltip-operation{flex:1 1 auto;margin:0;color:#d4d0d1;font-size:18px;font-weight:700;line-height:19px;text-align:center}.signal-tooltip:before,.signal-tooltip:after{position:absolute;z-index:1;width:0;height:0;border-style:solid;content:"";pointer-events:none}.signal-tooltip:after{z-index:2}.signal-tooltip-below:before{top:calc(-1.12rem + 1px);left:var(--signal-arrow-offset);transform:translate(-50%);border-width:0 1.12rem 1.12rem;border-color:transparent transparent #34383d}.signal-tooltip-below:after{top:calc(-.86rem + 1px);left:var(--signal-arrow-offset);transform:translate(-50%);border-width:0 .86rem .86rem;border-color:transparent transparent #373536}.signal-tooltip-above:before{top:calc(100% - 1px);left:var(--signal-arrow-offset);transform:translate(-50%);border-width:1.12rem 1.12rem 0;border-color:#34383d transparent transparent}.signal-tooltip-above:after{top:calc(100% - 1px);left:var(--signal-arrow-offset);transform:translate(-50%);border-width:.86rem .86rem 0;border-color:#373536 transparent transparent}.signal-tooltip-right:before{top:var(--signal-arrow-offset);left:calc(-1.12rem + 1px);transform:translateY(-50%);border-width:1.12rem 1.12rem 1.12rem 0;border-color:transparent #34383d transparent transparent}.signal-tooltip-right:after{top:var(--signal-arrow-offset);left:calc(-.86rem + 1px);transform:translateY(-50%);border-width:.86rem .86rem .86rem 0;border-color:transparent #373536 transparent transparent}.signal-tooltip-left:before{top:var(--signal-arrow-offset);right:calc(-1.12rem + 1px);transform:translateY(-50%);border-width:1.12rem 0 1.12rem 1.12rem;border-color:transparent transparent transparent #34383d}.signal-tooltip-left:after{top:var(--signal-arrow-offset);right:calc(-.86rem + 1px);transform:translateY(-50%);border-width:.86rem 0 .86rem .86rem;border-color:transparent transparent transparent #373536}.signal-tooltip-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:0 12px 3px 2px}.signal-tooltip-heading strong{font-size:34px;font-weight:800;line-height:1;letter-spacing:-.04em}.signal-tooltip-heading span{color:#c7c9ca;font-size:24px;font-weight:700}.signal-control-row{display:flex;align-items:flex-start;justify-content:center;gap:10px;padding-bottom:14px}.signal-uncontrollable-row{display:flex;align-items:center;justify-content:center;gap:.48rem;padding-bottom:1.35rem}.signal-not-controllable{color:#8a8f94;font-size:.95rem;font-weight:700;line-height:1;text-transform:lowercase}.signal-control-slot{position:relative;display:flex;flex:0 0 44px;align-items:center;justify-content:flex-start;width:44px;min-width:0;flex-direction:column}.signal-control-slot-double-yellow{flex-basis:20px;width:20px}.signal-control,.signal-info-action{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;margin:0;border:0;border-radius:50%;color:#fff;font-family:var(--ui-font-family);font-size:1.75rem;font-weight:900;letter-spacing:-.06em;line-height:.9;text-shadow:0 1px 2px rgb(0 0 0 / 35%);-webkit-text-stroke:.022em currentColor}.signal-control-red{background:#650000}.signal-control-yellow{background:#5d3d00;color:#fff}.signal-control-row.semi-caution .signal-control-yellow{background:#5d3d00}.signal-control-double-yellow{flex-basis:44px;width:20px;min-width:20px;height:44px;min-height:44px;border-radius:999px;background:#5d3d00}.signal-control-green{background:#006f0b}.signal-control-red.current{background:#ff1717}.signal-control-yellow.current,.signal-control-double-yellow.current{background:#f3c400}.signal-control-green.current{background:#00c900}.signal-control.selected{box-shadow:0 0 0 2px #00b088,0 0 0 4px #00b08861}.signal-control:disabled{opacity:1;cursor:not-allowed;color:transparent;box-shadow:none}.signal-control-double-yellow.current{background:#f3c400}.signal-control-green:disabled{color:#8a8f94;background:transparent;text-shadow:none}.signal-control.current:disabled{color:#fff;text-shadow:0 1px 2px rgb(0 0 0 / 35%)}.signal-control.selected:disabled{box-shadow:0 0 0 2px #00b088,0 0 0 4px #00b08861}.signal-control:not(:disabled){cursor:pointer}.signal-control:not(:disabled):focus-visible{filter:brightness(1.18);outline:2px solid #ffffff;outline-offset:2px}.signal-info-action{flex-basis:44px;background:#5b5a59;font-size:1.35rem}.signal-info-action svg{display:block;width:1.22rem;height:1.22rem;fill:#fff}.signal-tooltip .signal-control-row{gap:10px}.signal-tooltip .signal-control-slot{flex-basis:52px;width:52px}.signal-tooltip .signal-control-slot-double-yellow{flex-basis:26px;width:26px}.signal-tooltip .signal-control,.signal-tooltip .signal-info-action{flex-basis:52px;width:52px;height:52px}.signal-tooltip .signal-control-double-yellow{flex-basis:52px;width:26px;min-width:26px;height:52px;min-height:52px}.signal-tooltip .signal-info-action svg{width:26px;height:26px}.signal-auto-indicator{position:absolute;top:calc(100% + 3px);left:50%;display:flex;align-items:center;flex-direction:column;gap:1px;color:#f4df00;font-size:10px;font-weight:900;line-height:1;white-space:nowrap;transform:translate(-50%)}.signal-tooltip .signal-auto-indicator{top:calc(100% + 6px);font-size:12px}.signal-auto-triangle{width:.58rem;height:.38rem;background:#f4df00;clip-path:polygon(50% 0,100% 100%,0 100%)}.signal-info-panel{position:absolute;z-index:5;top:0;right:0;bottom:0;display:block;width:min(20rem,calc(100% - 1rem));max-width:100%;overflow-x:hidden;overflow-y:auto;padding:.85rem .7rem .75rem;color:#171619;background:#c3bcbd;box-shadow:-.55rem 0 1.3rem #0000004d;font-family:var(--ui-font-family);font-weight:600;touch-action:auto;-webkit-user-select:none;user-select:none}.signal-info-display{position:relative;min-height:6.2rem;margin:.05rem .05rem .72rem;padding:.45rem 2.8rem .65rem .55rem;color:#f2f1f1;background:#000}.signal-info-display-id{overflow:hidden;font-size:2.2rem;font-weight:800;letter-spacing:-.035em;line-height:1.05;text-align:center;text-overflow:ellipsis;white-space:nowrap}.signal-info-display-aspect{font-size:1.65rem;font-weight:900;line-height:1.1;text-align:center}.signal-info-lamp-stack{position:absolute;top:.5rem;bottom:.5rem;right:1rem;display:flex;align-items:center;flex-direction:column-reverse;justify-content:space-between}.signal-info-lamp{display:block;width:1.15rem;height:1.15rem;border-radius:50%;background:#686868}.signal-info-heading{margin:.5rem 0 .3rem;padding-bottom:.23rem;color:#686467;font-size:1rem;font-weight:800;line-height:1.2;text-align:center}.signal-info-centered-value{color:#171619;font-size:1.05rem;font-weight:800;line-height:1.25;text-align:center}.signal-info-train-list{display:grid;gap:.25rem}.signal-info-block-box{display:grid;min-height:7rem;margin:.2rem .05rem 0;padding:.35rem;align-content:start;gap:.25rem;border:2px solid #171619;background:transparent}.signal-info-train-row{display:grid;grid-template-columns:auto 1fr;gap:.12rem .42rem;align-items:baseline;padding:.25rem .35rem;border:1px solid rgb(23 22 25 / 55%);color:#171619;background:#ffffff38;font-size:.78rem;line-height:1.15}.signal-info-train-headcode{display:inline-grid;place-items:center;min-width:2.45rem;height:.9rem;padding:0 .12rem;border:1px solid #0b4d17;border-radius:1px;color:#06210a!important;background:#00d52a;font-size:.52rem;font-weight:900!important;letter-spacing:.01em;line-height:1}.signal-info-train-row strong:not(.signal-info-train-headcode){color:#0b5d1e;font-weight:900}.signal-info-train-row span{overflow:hidden;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.signal-info-train-row small{grid-column:1 / -1;color:#686467;font-size:.65rem;font-weight:800;text-transform:capitalize}.signal-info-platform-state{margin:.28rem .05rem 0;color:#fff;background:#5d5d60;font-size:.75rem;font-weight:900;line-height:1.2;text-align:center;text-transform:capitalize}.signal-info-platform-state-loading{background:#b17700}.signal-info-platform-state-ready{background:#168f45}.signal-info-platform-state-overdue{background:#a90000}.signal-info-divider{height:2px;margin:.7rem .05rem;background:#171619}.signal-info-platform-tag{margin:.25rem .05rem 0;padding:.2rem .25rem;color:#fff;background:#5d5d60;font-size:1.7rem;font-weight:800;line-height:1.2;text-align:center}.signal-info-driver{padding:.25rem 0;color:#a7a1a3;font-size:1.05rem;font-weight:800;line-height:1.25;text-align:center}.signal-info-rollback{display:block;width:calc(100% - .1rem);margin:.1rem .05rem 0;padding:.35rem .3rem;border:2px solid #f2f2f2;border-radius:0;color:#f3f3f3;background:#67707c;font-size:1.35rem;font-weight:800;line-height:1.2;text-align:center}.signal-info-rollback:hover:not(:disabled){background:#75808e}.signal-info-rollback.disabled{background:#00b088}.signal-info-panel p{margin:.28rem 0;color:#171619;font-size:.85rem;font-weight:600;line-height:1.25;text-align:center}.signal-info-controls{margin:0 .05rem;padding:.45rem .1rem 0;background:#5d5d60}.signal-info-controls .signal-info-heading{margin:0 0 .3rem;color:#fff}.signal-info-controls .signal-control-row{padding-bottom:1.35rem}.signal-info-camera{display:block;width:calc(100% - .1rem);margin:.5rem .05rem 0;padding:.3rem .25rem;border:2px solid #f2f2f2;border-radius:0;color:#fff;background:#9300cf;font-size:1.6rem;font-weight:800;line-height:1.2;text-align:center}.signal-info-camera:hover:not(:disabled){background:#a817df}.bottom-bar{position:relative;display:flex;align-items:center;justify-content:space-between;flex:0 0 3.6rem;padding:0 .3rem;color:#eee;background:#1d1d1d;border-top:1px solid #303030;font-size:clamp(1rem,1.7vw,1.55rem);line-height:1}.signal-processing{position:absolute;top:50%;left:50%;color:#f4df00;font-size:.9rem;font-weight:700;line-height:1;pointer-events:none;transform:translate(-50%,-50%)}.bottom-bar-side{display:flex;align-items:center;gap:.45rem;white-space:nowrap}.footer-arrow{display:grid;place-items:center;width:1.6rem;height:1.6rem;color:#fff;background:#00b088;font-size:1.05rem}.loading{display:grid;place-items:center;width:100%;height:100%;color:#93a1a8;font-size:.9rem}.viewport-status{position:absolute;right:.8rem;bottom:.7rem;display:flex;gap:.8rem;padding:.38rem .55rem;border:1px solid rgb(82 98 106 / 55%);border-radius:4px;color:#a8b4b9;background:#111518db;font-size:.7rem}.feedback-popup{position:fixed;z-index:30;top:1rem;left:50%;display:flex;align-items:flex-start;gap:.8rem;width:min(34rem,calc(100vw - 2rem));padding:.9rem 1rem;border:2px solid #ff4d55;border-radius:4px;color:var(--panel-text, #f2f2f2);background:#383637fa;box-shadow:0 .8rem 2rem #00000073;transform:translate(-50%);animation:feedback-popup-enter .16s ease-out}.feedback-popup-success{border-color:#00d6a5}.feedback-popup-copy{min-width:0;flex:1}.feedback-popup-copy strong{display:block;color:#fff;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.feedback-popup-copy p{margin:.2rem 0 0;color:var(--panel-muted, #c7c9ca);font-size:.82rem;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.feedback-popup-dismiss{display:grid;width:1.55rem;height:1.55rem;flex:0 0 auto;place-items:center;margin:-.25rem -.35rem 0 0;padding:0;border:1px solid transparent;border-radius:3px;color:var(--panel-muted, #c7c9ca);background:transparent;font-size:1.25rem;line-height:1}.feedback-popup-dismiss:hover:not(:disabled),.feedback-popup-dismiss:focus-visible{border-color:var(--panel-muted, #c7c9ca);color:#fff;background:#ffffff1a}@keyframes feedback-popup-enter{0%{opacity:0;transform:translate(-50%,-.5rem)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.feedback-popup{animation:none}}.debug-overlay{position:absolute;z-index:8;top:0;right:0;bottom:0;display:flex;width:min(45rem,100%);flex-direction:column;overflow:hidden;padding:.9rem;border-left:1px solid #40535b;color:#dce8ec;background:#0c1215f7;box-shadow:-.8rem 0 2rem #0006;font-size:.72rem;touch-action:auto;-webkit-user-select:text;user-select:text}.debug-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid #304149}.debug-kicker{color:#64d2ef;font-size:.62rem;font-weight:800;letter-spacing:.15em}.debug-header h2{margin:.2rem 0 0;color:#fff;font-size:1.15rem;font-weight:800}.debug-close{display:grid;place-items:center;width:1.8rem;height:1.8rem;padding:0;border-color:#536870;color:#fff;background:#25343a;font-size:1.25rem;line-height:1}.debug-recorder{display:grid;gap:.55rem;margin-top:.65rem;padding:.62rem .68rem;border:1px solid #344a53;border-radius:3px;background:#121e23}.debug-recorder.active{border-color:#9b3f46;background:#25191c;box-shadow:inset 3px 0 #ee5962}.debug-recorder.error{border-color:#9b3f46;box-shadow:inset 3px 0 #ee5962}.debug-recorder.error .debug-recorder-state{color:#ffe5e6;background:#682a30}.debug-recorder.error .debug-recorder-state:before{background:#ff6871}.debug-recorder-main{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:.7rem}.debug-recorder-copy{display:grid;min-width:0;gap:.16rem}.debug-recorder-copy strong{color:#f2f8fa;font-size:.72rem}.debug-recorder-copy span{color:#9bafb6;font-size:.62rem;line-height:1.35}.debug-recorder-copy code{overflow:hidden;color:#74cde4;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.debug-recorder-state{display:inline-flex;flex:0 0 auto;align-items:center;gap:.28rem;padding:.18rem .32rem;border-radius:999px;color:#aebdc2;background:#26363c;font-size:.58rem;font-weight:800;text-transform:uppercase}.debug-recorder-state:before{width:.38rem;height:.38rem;border-radius:50%;background:#73858b;content:""}.debug-recorder.active .debug-recorder-state{color:#ffe5e6;background:#682a30}.debug-recorder.active .debug-recorder-state:before{background:#ff6871;box-shadow:0 0 0 3px #ff687126}.debug-recorder-actions{display:flex;flex-wrap:wrap;gap:.38rem}.debug-recorder-actions button,.debug-recorder-actions a{display:inline-flex;min-height:1.8rem;align-items:center;justify-content:center;padding:.34rem .55rem;border:1px solid #4d707d;border-radius:3px;color:#eaf9fd;background:#1c4d5d;font:inherit;font-size:.63rem;font-weight:800;line-height:1;text-decoration:none}.debug-recorder-actions button:hover:not(:disabled),.debug-recorder-actions a:hover{border-color:#72d8f2;background:#24677b}.debug-recorder-actions button:disabled{cursor:wait;opacity:.55}.debug-recorder-actions .debug-recorder-stop{border-color:#86464b;background:#6c2a30}.debug-recorder-actions .debug-recorder-stop:hover:not(:disabled){border-color:#ff7a82;background:#8a343b}.debug-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem;padding:.7rem 0}.debug-summary>div{display:grid;min-width:0;padding:.42rem .28rem;border:1px solid #2e424a;background:#172328;text-align:center}.debug-summary strong{color:#e9f8fc;font-size:1.05rem;line-height:1.1}.debug-summary span{overflow:hidden;margin-top:.18rem;color:#91a5ad;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.debug-summary-red{color:#f77!important}.debug-summary-yellow{color:#f6d66b!important}.debug-summary-green{color:#6ee993!important}.debug-summary-purple{color:#d4a6ff!important}.debug-tabs{display:flex;gap:.35rem;padding-bottom:.6rem}.debug-tabs button{flex:1;padding:.42rem .5rem;border-color:#344b55;border-radius:3px;color:#a9bbc1;background:#172328;font-size:.7rem;font-weight:800}.debug-tabs button.active,.debug-tabs button:hover:not(:disabled){border-color:#51c7e7;color:#fff;background:#1c5364}.debug-search{display:flex;align-items:center;gap:.55rem;padding-bottom:.65rem;color:#8fa4ac;font-size:.66rem;font-weight:800;text-transform:uppercase}.debug-search input{min-width:0;flex:1;padding:.42rem .55rem;border:1px solid #38515b;border-radius:3px;outline:none;color:#e8f2f5;background:#10191d;font:inherit;text-transform:none}.debug-search input:focus{border-color:#65d4f1;box-shadow:0 0 0 2px #65d4f12e}.debug-content-grid{display:grid;min-height:0;flex:1;grid-template-columns:minmax(12rem,.82fr) minmax(16rem,1.18fr);gap:.55rem}.debug-list,.debug-conflict-list,.debug-detail{min-height:0;overflow:auto}.debug-list{display:grid;align-content:start;gap:.28rem;padding-right:.25rem}.debug-list-row,.debug-conflict-row{display:block;width:100%;padding:.48rem .55rem;border:1px solid #2b414a;border-radius:3px;color:#dce9ed;background:#162227;font-size:.68rem;text-align:left}.debug-list-row:hover:not(:disabled),.debug-list-row.selected,.debug-conflict-row:hover:not(:disabled),.debug-conflict-row.active{border-color:#52c7e8;background:#1c3b46}.debug-list-row-heading,.debug-conflict-heading{display:flex;align-items:center;justify-content:space-between;gap:.45rem}.debug-list-row-heading strong,.debug-conflict-heading strong{overflow:hidden;color:#fff;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.debug-list-row small,.debug-conflict-row small{display:block;overflow:hidden;margin-top:.28rem;color:#91a8b0;font-size:.62rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.debug-aspect,.debug-phase,.debug-conflict-status{flex:0 0 auto;padding:.12rem .25rem;border-radius:2px;color:#fff;background:#52636a;font-size:.58rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.debug-aspect-red{background:#a6262b}.debug-aspect-yellow,.debug-aspect-double-yellow{color:#1e1b0c;background:#e4bd38}.debug-aspect-green,.debug-aspect-white{color:#0a2413;background:#5fe28a}.debug-aspect-off,.debug-aspect-unknown{background:#566169}.debug-phase{background:#315c69}.debug-detail{padding:.58rem .65rem;border:1px solid #2c444d;background:#111b1f}.debug-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem;margin-bottom:.65rem;padding-bottom:.55rem;border-bottom:1px solid #2d4149}.debug-detail-heading strong{display:block;color:#fff;font-size:1rem;line-height:1.1}.debug-detail-heading small{display:block;margin-top:.2rem;color:#8da2aa;font-size:.63rem}.debug-key-value{display:grid;grid-template-columns:minmax(6rem,.72fr) minmax(0,1.28fr);gap:.45rem;padding:.24rem 0;border-bottom:1px solid rgb(54 74 82 / 45%);line-height:1.25}.debug-key-value span,.debug-label{color:#8ea3aa}.debug-key-value strong{overflow-wrap:anywhere;color:#e5f0f3;font-weight:700;text-align:right}.debug-heading{margin:.85rem 0 .35rem;padding-bottom:.22rem;border-bottom:1px solid #35505a;color:#65d2ee;font-size:.67rem;letter-spacing:.08em;text-transform:uppercase}.debug-reason-list{display:grid;gap:.28rem;margin:0;padding-left:1.1rem;color:#e1ecef;line-height:1.35}.debug-compact-list{display:flex;flex-wrap:wrap;align-items:center;gap:.28rem;color:#d4e0e4;line-height:1.3}.debug-chip{padding:.22rem .3rem;border:1px solid #38515b;border-radius:2px;color:#bcd0d6;background:#1a2a30;font-size:.6rem}.debug-chip.active{border-color:#d66a6a;color:#ffd2d2;background:#4d2227}.debug-conflict-items{display:grid;gap:.38rem}.debug-conflict-item{display:grid;gap:.25rem}.debug-conflict-rules{display:grid;gap:.12rem;padding-left:.35rem;color:#8fa7af;font-size:.58rem;line-height:1.25}.debug-route-window{display:flex;flex-wrap:wrap;gap:.28rem;padding:.4rem 0}.debug-route-window span{padding:.25rem .32rem;border:1px solid #354b54;color:#9fb4bb;background:#17252a;font-size:.59rem}.debug-route-window span.stop{border-color:#7d6332;color:#f4d784}.debug-route-window span.current{border-color:#64d4f0;color:#fff;background:#1b5668}.debug-route-window span.next{box-shadow:inset 0 -2px #61e48b}.debug-conflict-list{display:grid;align-content:start;gap:.3rem}.debug-conflict-heading{justify-content:flex-start}.debug-conflict-heading span[aria-hidden=true]{color:#6e8d98}.debug-conflict-status{margin-left:auto;color:#aab9bd;background:#35454a}.debug-conflict-row.active .debug-conflict-status{color:#ffe1e1;background:#a6262b}.debug-empty{display:grid;min-height:5rem;place-items:center;padding:1rem;color:#91a5ad;text-align:center}.debug-updated{flex:0 0 auto;padding-top:.55rem;color:#6e858e;font-size:.6rem;text-align:right}@media(max-width:600px){.topbar{min-height:2.35rem}.debug-overlay{width:100%;padding:.65rem}.debug-content-grid{grid-template-columns:1fr;grid-template-rows:minmax(8rem,.8fr) minmax(12rem,1.2fr)}.bottom-bar{flex-basis:3rem;font-size:.95rem}.footer-arrow{width:1.35rem;height:1.35rem;font-size:.9rem}}:root{--panel-surface: #383637;--panel-surface-raised: #4a4849;--panel-surface-deep: #272526;--panel-border: #171617;--panel-text: #f2f2f2;--panel-muted: #c7c9ca;--panel-dim: #9b9b9b;--panel-blue: #00b088;--signal-blue: #168fc9}.topbar{border-bottom-color:var(--panel-border);background:var(--panel-surface);font-family:var(--ui-font-family)}.pause-menu-toggle,.chat-toggle{border-color:var(--panel-border);color:var(--panel-text);background:var(--panel-surface-raised)}.pause-menu-toggle:hover:not(:disabled),.pause-menu-toggle:focus-visible,.chat-toggle:hover:not(:disabled),.chat-toggle:focus-visible{border-color:var(--panel-blue);color:var(--panel-text);background:var(--panel-surface-deep)}.zone-label,.network-status{color:var(--panel-text)}.network-bar{border-color:var(--panel-muted);background:var(--panel-surface)}.network-bar.active{background:var(--panel-text)}.bottom-bar{border-top-color:var(--panel-border);color:var(--panel-text);background:var(--panel-surface);font-family:var(--ui-font-family)}.viewport-status{border-color:var(--panel-border);border-radius:2px;color:var(--panel-muted);background:#383637f0}.loading{color:var(--panel-muted);background:#202020;font-family:var(--ui-font-family)}.debug-overlay{border-left-color:var(--panel-border);color:var(--panel-text);background:#383637f7;font-family:var(--ui-font-family)}.footer-arrow{background:var(--panel-blue)}.signal-info-rollback.disabled{background:var(--signal-blue)}.train-describer-block.selected{box-shadow:0 0 0 1px var(--signal-blue)}.train-describer-block.spad.selected{box-shadow:0 0 0 2px var(--signal-blue),0 0 0 4px #ff1717}.signal-control.selected,.signal-control.selected:disabled{box-shadow:0 0 0 2px var(--signal-blue),0 0 0 4px #168fc961}.bottom-bar-button{min-height:100%;margin:0;padding:0 .3rem;border:0;border-radius:0;color:inherit;background:transparent;text-align:left}.bottom-bar-button:hover:not(:disabled),.bottom-bar-button:focus-visible{background:#454344}.platform-allocations-screen{display:flex;min-height:0;flex:1;flex-direction:column;overflow:hidden;color:#eee;background:#303030;font-family:var(--ui-font-family)}.platform-allocations-header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;height:clamp(1.8rem,7.05vh,2.45rem);gap:clamp(.4rem,1.5vw,1rem);padding:0 .35rem 0 .4rem;color:#171717;background:#f0eeee}.platform-allocations-header h1{margin:0;font-size:clamp(1.15rem,5.45vh,1.8rem);font-weight:800;line-height:1;white-space:nowrap}.platform-allocations-header input{width:min(32vw,14rem);height:calc(100% - .5rem);min-width:8rem;margin:.25rem 0;padding:.15rem .5rem;border:0;border-radius:0;outline:0;color:#242424;background:#d8d1d2;font:inherit;font-size:clamp(.7rem,3vh,.95rem);font-weight:600}.platform-allocations-header input::placeholder{color:#555052;opacity:1}.platform-allocations-header input:focus-visible{outline:2px solid #168fc9;outline-offset:-2px}.platform-allocations-table-wrap{min-height:0;flex:1;overflow:auto}.platform-allocations-table{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;color:#eee;font-size:clamp(.68rem,2.75vh,.9rem);font-weight:600}.platform-allocations-col-station{width:25%}.platform-allocations-col-number{width:7%}.platform-allocations-col-status{width:24%}.platform-allocations-col-guard{width:19%}.platform-allocations-col-dispatcher{width:18%}.platform-allocations-col-zone{width:7%}.platform-allocations-table th,.platform-allocations-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform-allocations-table th{height:clamp(1.35rem,5.1vh,1.85rem);padding:.15rem .35rem;color:#dedede;background:#555;font-size:clamp(.68rem,2.75vh,.9rem);font-weight:800;text-align:left}.platform-allocations-table th:first-child,.platform-allocations-table td:first-child{padding-left:1.65rem}.platform-allocations-table td{height:clamp(1.5rem,5.7vh,2rem);padding:.2rem .35rem;border-top:1px solid rgb(24 25 24 / 36%);background:#444243}.platform-allocations-row{cursor:pointer}.platform-allocations-row:hover td{background:#504e4f}.platform-allocations-row:focus-visible td{box-shadow:inset 0 2px #fff,inset 0 -2px #fff}.platform-allocations-row.expanded td{border-bottom-color:transparent}.platform-allocations-number,.platform-allocations-guard,.platform-allocations-dispatcher,.platform-allocations-zone{text-align:center}.platform-allocations-status{color:#eee;background:#5a5859!important;text-align:center}.platform-allocations-row.occupied .platform-allocations-status{color:#171717;background:#f0eeee!important}.platform-allocations-occupied-indicator{position:absolute;left:.5rem;display:inline-block;width:clamp(.6rem,2.25vh,.72rem);height:clamp(.6rem,2.25vh,.72rem);border:2px solid #b7b7b7;border-radius:50%;vertical-align:middle}.platform-allocations-row td:first-child{position:relative}.platform-allocations-details-row td{height:auto;padding:0;border-top:0;background:linear-gradient(to bottom,#444243,#303030)}.platform-allocations-details{display:grid;grid-template-columns:30% 24% 46%;grid-auto-rows:clamp(1.5rem,5.7vh,2rem);align-items:center;padding:0 .55rem;color:#eee;font-size:clamp(.68rem,2.75vh,.9rem);font-weight:600}.platform-allocations-detail-field{display:flex;min-width:0;align-items:center;gap:clamp(.45rem,1.2vw,.75rem);white-space:nowrap}.platform-allocations-detail-field>strong{flex:0 0 auto;font-weight:800}.platform-allocations-detail-field>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.platform-allocations-detail-spacer{min-width:0}.platform-allocations-camera,.platform-allocations-zoom{min-width:4.3rem;height:1.25rem;margin:0;padding:0 .35rem;border:1px solid #f2f2f2;border-radius:0;color:#fff;font:inherit;font-size:.78em;font-weight:800;line-height:1}.platform-allocations-camera{background:#a000d0}.platform-allocations-camera:hover:not(:disabled){background:#b51be2}.platform-allocations-zoom{background:#00a52a}.platform-allocations-zoom:hover:not(:disabled){background:#00bf31}.platform-allocations-empty{padding:1.5rem!important;color:#aeb2b0;background:#303030!important;text-align:center}.platform-allocations-bottom-bar{justify-content:flex-end;flex-basis:clamp(1.8rem,6.9vh,2.25rem);font-size:clamp(.85rem,3.1vh,1.25rem)}.platform-allocations-bottom-bar .footer-arrow{width:clamp(1.05rem,4vh,1.35rem);height:clamp(1.05rem,4vh,1.35rem);font-size:.9em}.full-train-list-screen{display:flex;min-height:0;flex:1;flex-direction:column;overflow:hidden;color:#eee;background:#303030;font-family:var(--ui-font-family)}.full-train-list-header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;height:clamp(1.8rem,7.05vh,2.45rem);gap:clamp(.4rem,1.5vw,1rem);padding:0 .35rem 0 .4rem;color:#171717;background:#f0eeee}.full-train-list-header h1{margin:0;font-size:clamp(1.15rem,5.45vh,1.8rem);font-weight:800;line-height:1;white-space:nowrap}.full-train-list-filter{display:inline-flex;align-items:center;min-height:100%;gap:clamp(.3rem,1.2vw,.45rem);padding:0 .2rem;color:#242424;font-size:clamp(.7rem,3vh,.95rem);font-weight:700;line-height:1;cursor:pointer;white-space:nowrap}.full-train-list-filter input{width:clamp(.85rem,3.1vh,1.05rem);height:clamp(.85rem,3.1vh,1.05rem);margin:0;border:1px solid #505050;border-radius:50%;background:#eee;appearance:none;cursor:pointer}.full-train-list-filter input:checked{border-color:#171717;background:radial-gradient(circle,#202020 0 35%,transparent 38%)}.full-train-list-filter input:focus-visible{outline:2px solid #168fc9;outline-offset:2px}.full-train-list-table-wrap{min-height:0;flex:1;overflow:auto}.full-train-list-table{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;color:#e9e9e9;font-size:clamp(.68rem,2.75vh,.9rem);font-weight:600}.full-train-list-col-trts{width:4%}.full-train-list-col-id{width:7.5%}.full-train-list-col-stop{width:21.5%}.full-train-list-col-status{width:14%}.full-train-list-col-destination{width:19.5%}.full-train-list-col-driver{width:18%}.full-train-list-col-guard{width:8.5%}.full-train-list-col-zone{width:7%}.full-train-list-table th,.full-train-list-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.full-train-list-table th{height:clamp(1.35rem,5.1vh,1.85rem);padding:.15rem .35rem;color:#dedede;background:#555;font-size:clamp(.68rem,2.75vh,.9rem);font-weight:800;text-align:left}.full-train-list-sort-button{display:inline-flex;width:100%;height:100%;min-width:0;align-items:center;gap:.25rem;margin:0;padding:0;overflow:hidden;border:0;border-radius:0;color:inherit;background:transparent;font:inherit;line-height:1;text-align:left;text-overflow:ellipsis;white-space:nowrap}.full-train-list-sort-button:hover:not(:disabled),.full-train-list-sort-button:focus-visible{color:#fff;background:transparent}.full-train-list-sort-indicator{display:inline-block;flex:0 0 auto;width:0;height:0;border-right:.25rem solid transparent;border-left:.25rem solid transparent}.full-train-list-sort-indicator.asc{border-bottom:.35rem solid #168fc9}.full-train-list-sort-indicator.desc{border-top:.35rem solid #168fc9}.full-train-list-table td{height:clamp(1.5rem,5.7vh,2rem);padding:.2rem .35rem;border-top:1px solid rgb(24 25 24 / 36%);background:#28442d}.full-train-list-row:hover td{background:#35563b}.full-train-list-row{cursor:pointer}.full-train-list-row:focus-visible td{box-shadow:inset 0 2px #fff,inset 0 -2px #fff}.full-train-list-row.expanded td{border-bottom-color:transparent}.full-train-list-row.late-yellow td{background:#4b4822}.full-train-list-row.late-orange td{background:#4b3c20}.full-train-list-row.late-red td{background:#4d252a}.full-train-list-row.late-yellow:hover td,.full-train-list-row.late-orange:hover td,.full-train-list-row.late-red:hover td{background:#5e5030}.full-train-list-details-row td{height:auto;padding:0;border-top:0;background:linear-gradient(to bottom,var(--full-train-list-details-start) 0%,#303030 100%)}.full-train-list-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(1.5rem,5.7vh,2rem);align-items:center;column-gap:clamp(.35rem,1vw,.75rem);padding:0 .55rem;color:#eee;font-size:clamp(.68rem,2.75vh,.9rem);font-weight:600}.full-train-list-details-row{--full-train-list-details-start: #28442d}.full-train-list-details-row.late-yellow{--full-train-list-details-start: #4b4822}.full-train-list-details-row.late-orange{--full-train-list-details-start: #4b3c20}.full-train-list-details-row.late-red{--full-train-list-details-start: #4d252a}.full-train-list-detail-field{display:flex;min-width:0;align-items:center;gap:clamp(.55rem,1.35vw,.9rem);white-space:nowrap}.full-train-list-detail-field>strong{flex:0 0 auto;font-weight:800}.full-train-list-detail-field>span:not(.full-train-list-driver-value):not(.full-train-list-operator){min-width:0;overflow:hidden;text-overflow:ellipsis}.full-train-list-driver-value{display:inline-flex;min-width:0;align-items:center;gap:.35rem;overflow:hidden}.full-train-list-driver-value>span:last-child{overflow:hidden;text-overflow:ellipsis}.full-train-list-driver-badge{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:1.7rem;height:1rem;padding:0 .22rem;border-radius:.28rem;color:#fff;background:#ed303b;font-size:.58em;font-weight:900;line-height:1}.full-train-list-operator{display:inline-flex;min-width:4.9rem;justify-content:center;padding:.16rem .45rem;font-weight:800;line-height:1}.full-train-list-operator.operator-metro{color:#fff;background:#ee4044}.full-train-list-operator.operator-connect{color:#062c39;background:#0096ee}.full-train-list-operator.operator-express{color:#fff;background:#ff0080}.full-train-list-operator.operator-airlink{color:#241304;background:#ec7d33}.full-train-list-operator.operator-waterline{color:#fff;background:#34495e}.full-train-list-operator.operator-default{color:#062c39;background:#0096ee}.full-train-list-trts-cell,.full-train-list-guard-cell,.full-train-list-zone{text-align:center}.full-train-list-headcode{color:#00d5a5;font-weight:800}.full-train-list-status{padding-right:.2rem!important;padding-left:.2rem!important;color:#071407;font-weight:800;text-align:center}.full-train-list-row.on-time .full-train-list-status{background:#00d51e}.full-train-list-row.late-yellow .full-train-list-status{background:#f1e600}.full-train-list-row.late-orange .full-train-list-status{background:#f58220}.full-train-list-row.late-red .full-train-list-status{color:#fff;background:#e82e3c}.full-train-list-trts,.full-train-list-guard{display:inline-block;width:clamp(.6rem,2.25vh,.72rem);height:clamp(.6rem,2.25vh,.72rem);border:2px solid #b7b7b7;border-radius:50%;vertical-align:middle}.full-train-list-trts.trts-yellow{border-color:#f0d900;background:#f0d900;animation:full-train-list-trts-yellow 1s steps(1,end) infinite}.full-train-list-trts.trts-red{border-color:#ff303b;background:#ff303b;animation:full-train-list-trts-red 1s steps(1,end) infinite}@keyframes full-train-list-trts-yellow{0%,49.999%{opacity:1}50%,to{opacity:.18}}@keyframes full-train-list-trts-red{0%,49.999%{opacity:1}50%,to{opacity:.18}}.full-train-list-empty{padding:1.5rem!important;color:#aeb2b0;background:#303030!important;text-align:center}.full-train-list-bottom-bar{justify-content:flex-start;flex-basis:clamp(1.8rem,6.9vh,2.25rem);font-size:clamp(.85rem,3.1vh,1.25rem)}.full-train-list-bottom-bar .footer-arrow{width:clamp(1.05rem,4vh,1.35rem);height:clamp(1.05rem,4vh,1.35rem);font-size:.9em}.chat-window{position:absolute;z-index:7;top:clamp(.45rem,1.5vw,.85rem);left:clamp(.45rem,1.5vw,.85rem);display:flex;width:min(30rem,calc(100% - 1rem));height:min(15rem,calc(100% - 1rem));flex-direction:column;overflow:hidden;border:2px solid #090909;border-radius:clamp(.7rem,1.6vw,1rem);color:#eee;background:#000000b3;box-shadow:0 .6rem 1.5rem #0000006b;font-family:var(--ui-font-family);pointer-events:auto;touch-action:auto;-webkit-user-select:text;user-select:text}.chat-window[hidden]{display:none}.chat-window-messages{display:flex;min-height:0;flex:1;flex-direction:column;overflow:auto;padding:.6rem .85rem .35rem;scrollbar-color:#777476 transparent}.chat-window-help,.chat-window-message{margin:0;padding:.12rem 0;font-size:clamp(.75rem,2.1vw,1.2rem);line-height:1.35;overflow-wrap:anywhere}.chat-window-help{flex:0 0 auto;color:#d1d1d1}.chat-window-message{display:flex;flex:0 0 auto;gap:.4rem}.chat-window-message strong{flex:0 0 auto;font-weight:800}.chat-window-message span{min-width:0;color:#eee}.chat-window-message.system strong{color:#f4df00}.chat-window-form{position:relative;display:flex;flex:0 0 auto;padding:.45rem .65rem .65rem}.chat-window-form input{width:100%;height:clamp(2.4rem,5.8vw,3.6rem);min-width:0;flex:1;padding:0 4.5rem 0 1rem;border:2px solid #171717;border-radius:clamp(.55rem,1.2vw,.8rem);outline:none;color:#eee;background:#030303;font:inherit;font-size:clamp(.8rem,2.1vw,1.2rem)}.chat-window-form input:focus{border-color:#363636;box-shadow:0 0 0 2px #ffffff1f}.chat-window-send{position:absolute;top:50%;right:.95rem;display:grid;width:clamp(2rem,4.5vw,3rem);height:clamp(2rem,4.5vw,3rem);place-items:center;padding:0;border:0;color:#a6a6a6;background:transparent;transform:translateY(-50%)}.chat-window-send svg{width:100%;height:100%}.chat-window-send:hover:not(:disabled),.chat-window-send:focus-visible{color:#eee;background:transparent}@media(max-width:420px){.full-train-list-header{align-items:flex-start;flex-direction:column;gap:.2rem;padding-top:.35rem;padding-bottom:.35rem}.full-train-list-filter{min-height:1.4rem}}html,body,#root,*{scrollbar-width:thin;scrollbar-color:rgb(242 242 242 / 42%) transparent}*::-webkit-scrollbar{width:4px;height:4px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{min-height:2rem;border:1px solid transparent;border-radius:999px;background:#f2f2f26b;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--panel-blue);background-clip:padding-box}.debug-list,.debug-conflict-list,.debug-detail,.platform-allocations-table-wrap,.full-train-list-table-wrap,.chat-window-messages{overflow:overlay;scrollbar-gutter:auto}@supports not (overflow: overlay){.debug-list,.debug-conflict-list,.debug-detail,.platform-allocations-table-wrap,.full-train-list-table-wrap,.chat-window-messages{scrollbar-gutter:stable}}.menu-theme{--glass: rgb(0 0 0 / 72%);--glass-strong: rgb(0 0 0 / 86%);--glass-hover: rgb(20 20 20 / 82%);--glass-border: #090909;--glass-shadow: 0 .6rem 1.5rem rgb(0 0 0 / 42%);--tint: rgb(255 255 255 / 5%);--tint-hover: rgb(255 255 255 / 10%);--tint-active: rgb(255 255 255 / 16%);--hairline: rgb(255 255 255 / 8%);--hairline-strong: rgb(255 255 255 / 16%);--field: #030303;--field-border: #171717;--field-focus: #363636;--focus-ring: 0 0 0 2px rgb(255 255 255 / 30%);--text: #eeeeee;--soft: #d1d1d1;--muted: #a6a6a6;--faint: #6f6c6d;--highlight: #f4df00;--danger: #ff5a5a;--warning: #f0c600;--ok: #3fd07a;--radius-panel: 13px;--radius-card: 10px;--radius-control: 7px;--gap: 12px;display:contents;color:var(--text);font-family:var(--ui-font-family);font-size:13px}.menu-theme *{scrollbar-color:#777476 transparent}.menu-theme *::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:padding-box}.menu-theme button{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--hairline);border-radius:var(--radius-control);padding:.4rem .75rem;color:var(--text);background:var(--tint);font:inherit;font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.menu-theme button:hover:not(:disabled){border-color:var(--hairline-strong);background:var(--tint-hover)}.menu-theme button:disabled{cursor:not-allowed;opacity:.4}.menu-theme :is(button,a,input,summary):focus-visible{outline:none;box-shadow:var(--focus-ring)}.menu-theme :is(.primary-button,.start-button,.reconnect-button){justify-content:center;border-color:var(--text);color:#030303;background:var(--text);font-weight:700}.menu-theme :is(.primary-button,.start-button,.reconnect-button):hover:not(:disabled){border-color:#fff;background:#fff}.menu-theme :is(.primary-button,.start-button,.reconnect-button):disabled{border-color:var(--hairline);color:var(--faint);background:var(--tint);opacity:1}.menu-theme :is(.entry-back-button,.lobby-back-button,.session-pause-back),.menu-theme .privacy-back-link{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem .35rem .4rem;border:1px solid transparent;border-radius:var(--radius-control);color:var(--soft);background:transparent;font-weight:600;text-decoration:none;transition:background-color .12s ease,color .12s ease}.menu-theme :is(.entry-back-button,.lobby-back-button,.session-pause-back):hover:not(:disabled),.menu-theme .privacy-back-link:hover{border-color:transparent;color:var(--text);background:var(--tint-hover)}.menu-theme .text-field-label{display:grid;gap:.4rem;color:var(--muted);font-size:12px;font-weight:600}.menu-theme .text-field,.menu-theme .traffic-number-grid input[type=number]{width:100%;min-width:0;border:2px solid var(--field-border);border-radius:var(--radius-control);padding:.5rem .65rem;color:var(--text);background:var(--field);font:inherit;font-size:14px;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.menu-theme .text-field:focus,.menu-theme .traffic-number-grid input[type=number]:focus{border-color:var(--field-focus);box-shadow:var(--focus-ring)}.menu-theme .text-field-hint{color:var(--faint);font-size:11.5px;font-weight:500;line-height:1.35}.menu-theme .menu-status{margin:0;color:var(--muted);font-size:12px}.menu-theme .traffic-options{display:flex;gap:.2rem;padding:.2rem;border:2px solid var(--field-border);border-radius:var(--radius-card);background:var(--field)}.menu-theme .traffic-options button{flex:1;justify-content:center;padding:.38rem .75rem;border:0;border-radius:var(--radius-control);color:var(--muted);background:transparent;font-weight:700}.menu-theme .traffic-options button:hover:not(:disabled){color:var(--text);background:var(--tint)}.menu-theme .traffic-options button.selected,.menu-theme .traffic-options button.selected:hover:not(:disabled){color:#fff;background:var(--tint-active)}.menu-theme :is(.changelog-eyebrow,.lobby-overview-label,.menu-tile-eyebrow){margin:0;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.menu-theme :is(.entry-choice-shell,.entry-details-shell,.lobby-shell,.privacy-shell){position:relative;isolation:isolate;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;color:var(--text);background-color:#000}.menu-theme :is(.entry-choice-shell,.entry-details-shell,.lobby-shell,.privacy-shell):before{content:"";position:fixed;inset:-24px;z-index:-1;background-image:radial-gradient(circle at center,#0000008c,#000000e5),url(/backgrounds/signalling-map.png);background-position:center;background-size:cover;filter:blur(3px);pointer-events:none}.menu-theme :is(.entry-details-panel,.privacy-panel,.lobby-overview,.lobby-panel,.session-pause-panel){border:2px solid var(--glass-border);border-radius:var(--radius-panel);color:var(--text);background:var(--glass);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.menu-theme .signaller-logo{color:var(--text)}.menu-theme .new-badge{position:absolute;z-index:2;top:-13px;right:-13px;width:44px;height:44px;filter:drop-shadow(0 2px 3px rgb(0 0 0 / 55%));pointer-events:none;transform:rotate(12deg);transition:transform .18s ease}.menu-theme .new-badge-left{right:auto;left:-13px;transform:rotate(-12deg)}.menu-theme .new-badge-small{top:-12px;right:-12px;width:30px;height:30px}.menu-theme :hover>.new-badge{transform:rotate(4deg) scale(1.08)}.menu-theme :hover>.new-badge-left{transform:rotate(-4deg) scale(1.08)}.menu-theme :is(.lobby-more-link,.workshop-make-card,.has-new-badge){position:relative}.menu-theme .entry-choice-shell{display:grid;place-items:center}.menu-theme .entry-home{display:grid;gap:var(--gap);width:min(100%,48rem);padding:2rem 16px}.menu-theme .entry-home-header{display:flex;justify-content:center;margin-bottom:.75rem;padding-bottom:1rem;border-bottom:2px solid var(--hairline-strong)}.menu-theme .entry-home-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,11.5rem);gap:var(--gap)}.menu-theme .entry-tile-create{grid-column:1 / 3;grid-row:1 / 3}.menu-theme .entry-tile-join{grid-column:3 / 5}.menu-theme .entry-home-grid:not(:has(.entry-tile-small)) .entry-tile-join{grid-row:1 / 3}.menu-theme .entry-tile-small:only-of-type{grid-column:3 / 5}.menu-theme .menu-tile{position:relative;display:flex;flex-direction:column;align-items:stretch;min-width:0;padding:0;border:2px solid rgb(255 255 255 / 14%);border-radius:var(--radius-panel);color:var(--text);background:var(--glass);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:left;text-decoration:none;white-space:normal;transition:background-color .16s ease,border-color .16s ease}.menu-theme .menu-tile:hover:not(:disabled){border-color:#ffffff52;background:var(--glass-hover)}.menu-theme .menu-tile:focus-visible{border-color:#ffffff73}.menu-theme .menu-tile-icon{flex:none;width:3rem;height:3rem;margin:auto;color:var(--soft);transition:color .16s ease,transform .2s ease}.menu-theme .entry-tile-create .menu-tile-icon{width:6.5rem;height:6.5rem}.menu-theme .entry-tile-join .menu-tile-icon{width:3.75rem;height:3.75rem}.menu-theme .menu-tile:hover .menu-tile-icon{color:#fff;transform:scale(1.06)}.menu-theme .menu-tile-copy{display:grid;gap:.15rem;min-width:0;padding:.9rem 1rem}.menu-theme .menu-tile-eyebrow{margin-bottom:.1rem}.menu-theme .menu-tile-label{font-size:19px;font-weight:800;line-height:1.15}.menu-theme .entry-tile-create .menu-tile-label{font-size:24px}.menu-theme .menu-tile-description{color:var(--soft);font-size:12px;font-weight:500;line-height:1.35}.menu-theme .menu-tile-corner{position:absolute;top:.65rem;right:.7rem;display:flex;align-items:center;gap:.45rem;color:var(--soft)}.menu-theme .menu-tile-badge{padding:.12rem .45rem;border:1px solid var(--hairline-strong);border-radius:999px;color:var(--muted);background:#0009;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.menu-theme .entry-home-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}.menu-theme .entry-bar-button:only-child{grid-column:1 / -1}.menu-theme .entry-bar-button{display:flex;align-items:center;gap:.7rem;min-width:0;padding:.85rem 1rem;border:2px solid rgb(255 255 255 / 10%);border-radius:var(--radius-panel);color:var(--text);background:var(--glass);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-decoration:none;transition:background-color .12s ease,border-color .12s ease}.menu-theme .entry-bar-button:hover{border-color:#ffffff3d;background:var(--glass-hover)}.menu-theme .entry-bar-button>svg{flex:none;color:var(--soft)}.menu-theme .entry-bar-discord{width:22px;height:22px}.menu-theme .entry-bar-label{flex:1;min-width:0;font-size:16px;font-weight:800}.menu-theme .entry-bar-value{flex:none;color:var(--muted);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.menu-theme .entry-home-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin-top:.25rem;padding:0 .25rem;color:var(--faint);font-size:11.5px;font-weight:600}.menu-theme .entry-legal-links{display:flex;flex-wrap:wrap;gap:.9rem}.menu-theme .entry-privacy-link,.menu-theme .legal-nav-links a{color:var(--muted);font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:.2em}.menu-theme .entry-privacy-link:hover,.menu-theme .legal-nav-links a:hover{color:var(--text)}@media(max-width:560px){.menu-theme .entry-home{padding-top:1.25rem}.menu-theme .entry-home-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:13rem;grid-auto-rows:8.5rem}.menu-theme .entry-tile-create,.menu-theme .entry-tile-join,.menu-theme .entry-home-grid:not(:has(.entry-tile-small)) .entry-tile-join,.menu-theme .entry-tile-small:only-of-type{grid-column:1 / -1;grid-row:auto}.menu-theme .entry-tile-small{grid-column:auto}.menu-theme .entry-tile-create .menu-tile-label{font-size:21px}.menu-theme .menu-tile-label{font-size:17px}.menu-theme .entry-tile-create .menu-tile-icon{width:4.5rem;height:4.5rem}.menu-theme .entry-tile-join .menu-tile-icon,.menu-theme .entry-tile-small .menu-tile-icon{width:2.75rem;height:2.75rem}.menu-theme .menu-tile-badge{display:none}.menu-theme .entry-bar-label{font-size:15px;white-space:nowrap}.menu-theme .entry-bar-changelog .entry-bar-value{display:none}}.menu-theme .entry-tile-create{view-transition-name:entry-create}.menu-theme .entry-tile-join{view-transition-name:entry-join}.menu-theme .entry-tile-workshop,.menu-theme .workshop-page-panel{view-transition-name:entry-workshop}.menu-theme .entry-bar-changelog,.menu-theme .changelog-panel{view-transition-name:entry-changelog}.menu-theme .entry-home-header .signaller-logo,.menu-theme .entry-details-layout>.signaller-logo{view-transition-name:signaller-logo}:root[data-morphing] .menu-theme *{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}::view-transition-group(*){animation-duration:.42s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}::view-transition-group(entry-create),::view-transition-group(entry-join),::view-transition-group(entry-workshop),::view-transition-group(entry-changelog),::view-transition-group(lobby-zone),::view-transition-group(lobby-map),::view-transition-group(lobby-settings),::view-transition-group(lobby-news),::view-transition-group(pause-panel),::view-transition-group(pause-zone),::view-transition-group(pause-players),::view-transition-group(pause-session),::view-transition-group(pause-news){overflow:clip;border-radius:var(--radius-panel, 13px)}::view-transition-old(entry-create),::view-transition-old(entry-join),::view-transition-old(entry-workshop),::view-transition-old(entry-changelog),::view-transition-old(lobby-zone),::view-transition-old(lobby-map),::view-transition-old(lobby-settings),::view-transition-old(lobby-news),::view-transition-old(pause-panel),::view-transition-old(pause-zone),::view-transition-old(pause-players),::view-transition-old(pause-session),::view-transition-old(pause-news){animation:.18s ease-out both morph-fade-out}::view-transition-new(entry-create),::view-transition-new(entry-join),::view-transition-new(entry-workshop),::view-transition-new(entry-changelog),::view-transition-new(lobby-zone),::view-transition-new(lobby-map),::view-transition-new(lobby-settings),::view-transition-new(lobby-news),::view-transition-new(pause-panel),::view-transition-new(pause-zone),::view-transition-new(pause-players),::view-transition-new(pause-session),::view-transition-new(pause-news){animation:.26s ease-in .11s both morph-fade-in}::view-transition-old(entry-create):only-child,::view-transition-old(entry-join):only-child,::view-transition-old(entry-workshop):only-child,::view-transition-old(entry-changelog):only-child,::view-transition-old(lobby-zone):only-child,::view-transition-old(lobby-map):only-child,::view-transition-old(lobby-settings):only-child,::view-transition-old(lobby-news):only-child,::view-transition-old(pause-panel):only-child,::view-transition-old(pause-zone):only-child,::view-transition-old(pause-players):only-child,::view-transition-old(pause-session):only-child,::view-transition-old(pause-news):only-child{animation:.42s ease both morph-fade-out}::view-transition-new(entry-create):only-child,::view-transition-new(entry-join):only-child,::view-transition-new(entry-workshop):only-child,::view-transition-new(entry-changelog):only-child,::view-transition-new(lobby-zone):only-child,::view-transition-new(lobby-map):only-child,::view-transition-new(lobby-settings):only-child,::view-transition-new(lobby-news):only-child,::view-transition-new(pause-panel):only-child,::view-transition-new(pause-zone):only-child,::view-transition-new(pause-players):only-child,::view-transition-new(pause-session):only-child,::view-transition-new(pause-news):only-child{animation:.42s ease both morph-fade-in}@keyframes morph-fade-out{to{opacity:0}}@keyframes morph-fade-in{0%{opacity:0}}.menu-theme .changelog-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:16px;background:#0000008c}.menu-theme .changelog-overlay-panel{display:flex;flex-direction:column;width:min(100%,46rem);max-height:min(100%,44rem);border:2px solid rgb(255 255 255 / 14%);border-radius:var(--radius-panel);background:var(--glass-strong);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.menu-theme .changelog-overlay-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem .9rem;border-bottom:1px solid var(--hairline)}.menu-theme .changelog-overlay-header h2{margin:0;font-size:20px;font-weight:800}.menu-theme .changelog-overlay-header p{margin:.25rem 0 0;color:var(--muted);font-size:12.5px}.menu-theme .changelog-overlay-close{justify-content:center;width:2.1rem;height:2.1rem;padding:0}.menu-theme .changelog-overlay-body{min-height:0;overflow-y:auto;padding:0 1.25rem}.menu-theme .changelog-item{padding:1.25rem 0 1.35rem}.menu-theme .changelog-item+.changelog-item{border-top:1px solid var(--hairline)}.menu-theme .changelog-header{display:flex;align-items:start;justify-content:space-between;gap:1rem;padding-bottom:.7rem;border-bottom:1px solid var(--hairline)}.menu-theme .changelog-eyebrow{margin-bottom:.3rem}.menu-theme .changelog-item h2{margin:0;font-size:17px;font-weight:800}.menu-theme .changelog-meta{display:grid;flex:none;justify-items:end;gap:.3rem;color:var(--muted);font-size:11.5px;font-weight:600;text-align:right}.menu-theme .changelog-meta span{padding:.05rem .4rem;border-radius:.3rem;color:var(--text);background:var(--tint-hover);font-weight:700;font-variant-numeric:tabular-nums}.menu-theme .changelog-post{color:var(--soft);line-height:1.55}.menu-theme .changelog-post h3,.menu-theme .changelog-post h4{margin:1rem 0 .35rem;color:var(--text);font-size:13.5px;font-weight:800}.menu-theme .changelog-post p{margin:.7rem 0 0}.menu-theme .changelog-post ul{margin:.55rem 0 0;padding-left:1.15rem}.menu-theme .changelog-post li+li{margin-top:.25rem}.menu-theme .changelog-post a{color:var(--text);text-underline-offset:.15em}.menu-theme .changelog-post code{padding:.05rem .3rem;border-radius:.3rem;color:var(--text);background:var(--tint-hover);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.menu-theme :is(.changelog-loading,.changelog-end,.changelog-sentinel){min-height:1.5rem;margin:0;padding:.8rem 0 .95rem;color:var(--faint);font-size:11.5px;font-weight:600;text-align:center}.menu-theme .entry-details-shell{display:grid;place-items:center;padding:1.5rem 16px}.menu-theme .entry-details-layout{display:grid;justify-items:center;gap:1.25rem;width:min(100%,26rem)}.menu-theme .entry-details-panel{display:grid;gap:1rem;width:100%;padding:1.1rem 1.4rem 1.4rem}.menu-theme .entry-back-button{justify-self:start;margin-left:-.5rem}.menu-theme .entry-details-heading{display:grid;gap:.35rem}.menu-theme .entry-details-panel h1{margin:0;font-size:20px;font-weight:800}.menu-theme .entry-details-heading p{margin:0;color:var(--muted);line-height:1.5}.menu-theme .entry-details-panel form{display:grid;gap:.9rem}.menu-theme .entry-details-panel .primary-button{width:100%;margin-top:.25rem;padding:.6rem 1rem;font-size:14px}.menu-theme .activity-state-panel{justify-items:center;padding-top:1.6rem;text-align:center}.menu-theme .activity-state-panel p{margin:0;color:var(--soft);line-height:1.5}.menu-theme .activity-state-panel h1{font-size:19px}.menu-theme .activity-state-spinner{animation:menu-spin 1.1s linear infinite}.menu-theme .activity-steps{display:grid;gap:.55rem;width:100%;margin:.25rem 0 .2rem;padding:0;list-style:none;text-align:left}.menu-theme .activity-steps li{display:flex;align-items:center;gap:.7rem;padding:.65rem .8rem;border:1px solid var(--hairline);border-radius:var(--radius-card);color:var(--faint);background:var(--tint);font-weight:700;transition:color .2s ease,border-color .2s ease}.menu-theme .activity-steps li.current{border-color:var(--hairline-strong);color:var(--text)}.menu-theme .activity-steps li.done{color:var(--soft)}.menu-theme .activity-step-mark{display:grid;flex:none;place-items:center;width:1.4rem;height:1.4rem;border:2px solid currentColor;border-radius:50%}.menu-theme .activity-steps li.current .activity-step-mark{border-color:transparent}.menu-theme .activity-steps li.done .activity-step-mark{border-color:var(--ok);color:#030303;background:var(--ok)}.menu-theme .activity-state-badge{display:grid;place-items:center;width:3.4rem;height:3.4rem;border:1px solid var(--hairline-strong);border-radius:50%;color:var(--soft);background:var(--tint)}.menu-theme .activity-state-panel.error .activity-state-badge{border-color:#ff5a5a73;color:var(--danger);background:#ff5a5a1a}.menu-theme .activity-retry-button{width:100%;padding:.6rem 1rem;font-size:14px}.menu-theme .activity-state-panel .activity-help{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:.1rem;padding-top:.85rem;border-top:1px solid var(--hairline);color:var(--muted);font-size:12px}.menu-theme .activity-help span{flex:0 1 auto;text-align:left}.menu-theme .activity-help svg{flex:none;width:1.1rem;height:1.1rem;color:#5865f2}.menu-theme .activity-help strong{color:var(--text)}.menu-theme .privacy-shell{padding:clamp(16px,4vw,2.5rem) 16px}.menu-theme .privacy-panel{width:min(100%,52rem);margin:0 auto;padding:clamp(1.1rem,4vw,2.25rem);background:var(--glass-strong)}.menu-theme .privacy-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin:-.4rem -.5rem 1.5rem}.menu-theme .legal-nav-links{display:inline-flex;gap:.9rem;padding-right:.5rem}.menu-theme .privacy-header{padding-bottom:1.25rem;border-bottom:1px solid var(--hairline)}.menu-theme .privacy-header h1{margin:0;font-size:clamp(22px,4vw,30px);font-weight:800}.menu-theme .privacy-header p{max-width:46rem;margin:.7rem 0 0;color:var(--soft);font-size:14px;line-height:1.6}.menu-theme .privacy-header>:is(span,time){display:block;margin-top:.8rem;color:var(--faint);font-size:12px;font-weight:600}.menu-theme .privacy-sections{display:grid;gap:1.5rem;padding-top:1.5rem}.menu-theme .privacy-sections section{max-width:48rem}.menu-theme .privacy-sections h2{margin:0 0 .5rem;font-size:16px;font-weight:800}.menu-theme .privacy-sections h3{margin:.9rem 0 .35rem;font-size:13.5px;font-weight:800}.menu-theme .privacy-sections :is(p,li){color:var(--soft);font-size:13.5px;line-height:1.65}.menu-theme .privacy-sections p{margin:0}.menu-theme .privacy-sections p+p{margin-top:.7rem}.menu-theme .privacy-sections ul{margin:0 0 .7rem;padding-left:1.15rem}.menu-theme .privacy-sections li+li{margin-top:.3rem}.menu-theme .privacy-sections a{color:var(--text);text-decoration:underline;text-underline-offset:.2em}.menu-theme .privacy-sections a:hover{color:#fff}@media(max-width:600px){.menu-theme .privacy-shell{padding:0}.menu-theme .privacy-panel{min-height:100%;border-width:0;border-radius:0}}.menu-theme .lobby-header,.menu-theme .lobby-content{width:min(100% - 32px,66rem);margin:0 auto}.menu-theme .lobby-header{display:grid;place-items:center;margin-bottom:var(--gap);padding:1.25rem 0 1rem;border-bottom:2px solid var(--hairline-strong)}.menu-theme .lobby-content{display:grid;gap:var(--gap);padding-bottom:1.25rem}.menu-theme .lobby-shell:not(.workshop-shell){display:flex;flex-direction:column}.menu-theme .lobby-shell:not(.workshop-shell)>:is(.lobby-header,.lobby-content){flex-shrink:0}.menu-theme .lobby-shell:not(.workshop-shell)>.lobby-header{margin-top:auto}.menu-theme .lobby-shell:not(.workshop-shell)>.lobby-content{margin-bottom:auto}.menu-theme .lobby-overview{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .9rem .75rem 1.1rem}.menu-theme .lobby-session-details{display:grid;gap:.35rem;min-width:0}.menu-theme .lobby-code-row{display:flex;align-items:center;gap:.5rem}.menu-theme .lobby-code{font-size:clamp(22px,5vw,28px);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.12em;line-height:1}.menu-theme .lobby-code.hidden{color:var(--muted);letter-spacing:.2em}.menu-theme .lobby-icon-button{justify-content:center;width:2rem;height:2rem;padding:0;color:var(--soft)}.menu-theme .lobby-leave-button{color:var(--soft)}.menu-theme .lobby-leave-button.armed,.menu-theme .lobby-leave-button.armed:hover:not(:disabled){border-color:#ff5a5a8c;color:#fff;background:#ff5a5a2e}.menu-theme .lobby-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.35fr);grid-template-rows:repeat(2,11rem);gap:var(--gap)}.menu-theme .lobby-tile-zone{grid-column:1 / 3;grid-row:1 / 3}.menu-theme .lobby-tile-map{grid-column:3;grid-row:1}.menu-theme .lobby-tile-settings{grid-column:3;grid-row:2}.menu-theme .lobby-tile-zone .menu-tile-icon{width:6.5rem;height:6.5rem}.menu-theme .lobby-grid .menu-tile-label{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.menu-theme .lobby-tile-zone .menu-tile-label{font-size:26px}.menu-theme :is(.lobby-tile-map,.lobby-tile-settings) .menu-tile-label{font-size:16px}.menu-theme .lobby-tile-zone.attention{border-color:#f0c60073;animation:lobby-attention 2.4s ease-in-out infinite}.menu-theme .lobby-tile-zone.attention .menu-tile-icon,.menu-theme .lobby-tile-zone.attention .menu-tile-eyebrow{color:var(--warning)}@keyframes lobby-attention{50%{box-shadow:var(--glass-shadow),0 0 0 4px #f0c6001f}}@media(prefers-reduced-motion:reduce){.menu-theme .lobby-tile-zone.attention{animation:none}}.menu-theme .menu-tile:disabled{cursor:not-allowed;opacity:.5}.menu-theme .lobby-panel{min-width:0;padding:.9rem 1rem 1rem}.menu-theme .lobby-players-panel{grid-column:4;grid-row:1 / 3;display:flex;flex-direction:column;min-height:0;border-color:#ffffff24}.menu-theme .lobby-panel-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.75rem;padding-bottom:.7rem;border-bottom:1px solid var(--hairline)}.menu-theme .lobby-panel-heading h2{margin:0;font-size:16px;font-weight:800}.menu-theme .lobby-panel-heading>span{color:var(--muted);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.menu-theme .lobby-players-panel .player-list{flex:0 1 auto;align-content:start;grid-auto-rows:2.85rem;min-height:0;overflow-y:auto}.menu-theme .lobby-players-panel .player-row{height:2.85rem;min-height:2.85rem}.menu-theme .lobby-invite-row{display:flex;flex:none;align-items:center;gap:.7rem;width:100%;margin-top:.35rem;padding:.55rem .8rem;border:1px dashed var(--hairline-strong);border-radius:var(--radius-card);color:var(--soft);background:transparent;text-align:left}.menu-theme .lobby-invite-row:hover:not(:disabled){border-color:#ffffff52;color:var(--text);background:var(--tint)}.menu-theme .lobby-invite-copy{display:grid;min-width:0}.menu-theme .lobby-invite-copy strong{font-size:13px;font-weight:700}.menu-theme .lobby-invite-copy small{overflow:hidden;color:var(--muted);font-size:11.5px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.menu-theme .lobby-full{margin:.5rem 0 0;color:var(--muted);font-size:12px;text-align:center}.menu-theme .lobby-more{display:grid;gap:.5rem;margin-top:.25rem}.menu-theme .lobby-more-heading{margin:0;padding:0 .25rem;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.menu-theme .lobby-more-links{display:flex;flex-wrap:wrap;gap:var(--gap)}.menu-theme .lobby-more-link{display:flex;flex:1 1 10rem;align-items:center;gap:.7rem;min-width:0;padding:.7rem .9rem;border:2px solid rgb(255 255 255 / 10%);border-radius:var(--radius-panel);color:var(--text);background:var(--glass);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:left;text-decoration:none;white-space:normal;transition:background-color .12s ease,border-color .12s ease}.menu-theme .lobby-more-link:hover:not(:disabled){border-color:#ffffff3d;background:var(--glass-hover)}.menu-theme .lobby-more-link>svg{flex:none;color:var(--soft)}.menu-theme .lobby-more-copy{display:grid;flex:1;min-width:0}.menu-theme .lobby-more-copy strong{font-size:14px;font-weight:800}.menu-theme .lobby-more-copy small{overflow:hidden;color:var(--muted);font-size:11.5px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.menu-theme .lobby-more-discord{flex:2 1 18rem}.menu-theme .lobby-more-discord-badge{display:grid;flex:none;place-items:center;width:2.4rem;height:2.4rem;border-radius:var(--radius-card);color:#fff;background:#5865f2;font-size:20px}.menu-theme .lobby-more-discord .lobby-more-copy strong{font-size:15px}.menu-theme .lobby-more-trailing{color:var(--muted)}.menu-theme .lobby-actions{position:sticky;bottom:12px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.25rem;padding:.55rem .55rem .55rem 1rem;border:2px solid rgb(255 255 255 / 14%);border-radius:var(--radius-panel);background:var(--glass-strong);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.menu-theme .lobby-steps{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:0;padding:0;list-style:none}.menu-theme .lobby-steps li{display:flex;align-items:center;gap:.45rem;color:var(--faint);font-size:12.5px;font-weight:700;white-space:nowrap}.menu-theme .lobby-step-mark{display:grid;place-items:center;width:1.35rem;height:1.35rem;border:2px solid currentColor;border-radius:50%;font-size:11px;font-weight:800}.menu-theme .lobby-steps li.current{color:var(--text)}.menu-theme .lobby-steps li.done{color:var(--soft)}.menu-theme .lobby-steps li.done .lobby-step-mark{border-color:var(--ok);color:#030303;background:var(--ok)}.menu-theme .lobby-start-status{flex:1 1 12rem;min-width:0;margin:0;color:var(--muted);font-size:12.5px;font-weight:600}.menu-theme .lobby-action-buttons{display:flex;gap:.5rem;margin-left:auto}.menu-theme .lobby-actions :is(.ready-button,.start-button){width:auto;min-width:8.5rem;min-height:2.6rem;margin:0;padding-inline:1.2rem;font-size:14px;font-weight:800}.menu-theme .lobby-actions .start-button{min-width:10.5rem}.menu-theme .ready-button.is-ready,.menu-theme .ready-button.is-ready:hover:not(:disabled){border-color:var(--ok);color:var(--ok);background:#3fd07a1f}.menu-theme .lobby-submenu{padding:.9rem 1.1rem 1.2rem}.menu-theme .lobby-submenu-header{padding-bottom:.8rem;border-bottom:1px solid var(--hairline)}.menu-theme .lobby-back-button{margin:0 0 .4rem -.4rem}.menu-theme .lobby-submenu-title h2{margin:0;font-size:18px;font-weight:800}.menu-theme .lobby-submenu-title p{margin:.3rem 0 0;color:var(--muted);font-size:12.5px;line-height:1.45}.menu-theme .lobby-zone-menu .zone-card-grid{margin-top:1rem}.menu-theme .lobby-tile-zone,.menu-theme .lobby-zone-menu{view-transition-name:lobby-zone}.menu-theme .lobby-tile-map,.menu-theme .lobby-map-menu{view-transition-name:lobby-map}.menu-theme .lobby-tile-settings,.menu-theme .lobby-settings-menu{view-transition-name:lobby-settings}.menu-theme .changelog-overlay-panel{view-transition-name:lobby-news}.menu-theme .lobby-overview{view-transition-name:lobby-session}.menu-theme .lobby-actions{view-transition-name:lobby-actions}.menu-theme .lobby-header .signaller-logo{view-transition-name:signaller-logo}@media(max-width:860px){.menu-theme .lobby-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:12rem 9.5rem 9.5rem}.menu-theme .lobby-tile-zone{grid-column:1 / -1;grid-row:1}.menu-theme .lobby-tile-zone .menu-tile-icon{width:4.5rem;height:4.5rem}.menu-theme .lobby-tile-map{grid-column:1;grid-row:2}.menu-theme .lobby-tile-settings{grid-column:1;grid-row:3}.menu-theme .lobby-players-panel{grid-column:2;grid-row:2 / 4}}@media(max-width:560px){.menu-theme .lobby-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:11rem 10rem auto}.menu-theme :is(.lobby-tile-map,.lobby-tile-settings) .menu-tile-icon{width:2.5rem;height:2.5rem}.menu-theme .lobby-tile-map{grid-row:2;grid-column:1}.menu-theme .lobby-tile-settings{grid-row:2;grid-column:2}.menu-theme .lobby-players-panel{grid-column:1 / -1;grid-row:3}.menu-theme .lobby-tile-zone .menu-tile-label{font-size:22px}.menu-theme .lobby-leave-button span{display:none}.menu-theme .lobby-leave-button.armed span{display:inline}.menu-theme .lobby-actions{bottom:8px;padding:.6rem}.menu-theme .lobby-steps li:not(.current) span:last-child{display:none}.menu-theme .lobby-start-status{display:none}.menu-theme .lobby-action-buttons{flex:1 1 100%}.menu-theme .lobby-actions :is(.ready-button,.start-button){flex:1;min-width:0}}.menu-theme .traffic-options button{min-width:4.5rem;text-transform:capitalize}.menu-theme .settings-section{display:grid;gap:.75rem;min-width:0;padding-top:1.1rem}.menu-theme .settings-section+.settings-section{margin-top:.4rem;border-top:1px solid var(--hairline)}.menu-theme .settings-section-heading{margin:0;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.menu-theme .traffic-preset-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}.menu-theme .traffic-preset{display:grid;grid-template-rows:auto auto 1fr;align-content:start;justify-items:start;gap:.3rem;min-width:0;padding:.8rem .9rem .9rem;border:2px solid var(--field-border);border-radius:var(--radius-card);background:var(--field);text-align:left;white-space:normal}.menu-theme .traffic-preset:hover:not(:disabled){border-color:var(--field-focus);background:var(--field)}.menu-theme .traffic-preset.selected,.menu-theme .traffic-preset.selected:hover:not(:disabled){border-color:var(--text);background:var(--tint-active)}.menu-theme .traffic-preset:disabled{cursor:default;opacity:.6}.menu-theme .traffic-preset.selected:disabled{opacity:1}.menu-theme .traffic-preset strong{margin-top:.2rem;font-size:14px;font-weight:800}.menu-theme .traffic-preset small{color:var(--muted);font-size:11.5px;font-weight:500;line-height:1.4}.menu-theme .traffic-preset-icon{height:18px;color:var(--soft)}.menu-theme .traffic-meter{display:flex;align-items:flex-end;gap:3px;height:18px}.menu-theme .traffic-meter span{width:6px;border-radius:2px;background:var(--hairline-strong)}.menu-theme .traffic-meter span:nth-child(1){height:7px}.menu-theme .traffic-meter span:nth-child(2){height:12px}.menu-theme .traffic-meter span:nth-child(3){height:18px}.menu-theme .traffic-meter span.on{background:var(--soft)}.menu-theme .traffic-preset.selected .traffic-meter span.on{background:var(--text)}.menu-theme .traffic-summary{margin:0;color:var(--soft);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}.menu-theme .traffic-custom{display:grid;gap:.75rem;min-width:0;padding:.9rem 1rem 1rem;border:1px solid var(--hairline-strong);border-radius:var(--radius-card);background:var(--tint)}.menu-theme .traffic-custom-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem}.menu-theme .traffic-custom-header h4{margin:0;font-size:14px;font-weight:800}.menu-theme .traffic-save-status{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:12px;font-weight:700}.menu-theme .traffic-save-status.saved{color:var(--ok)}.menu-theme .traffic-save-status.error{color:var(--danger)}.menu-theme .traffic-custom-group{display:grid;gap:.2rem;min-width:0;padding-top:.75rem;border-top:1px solid var(--hairline)}.menu-theme .traffic-custom-group h5{margin:0 0 .5rem;color:var(--text);font-size:13px;font-weight:800}.menu-theme .traffic-group-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.menu-theme .traffic-group-heading h5{margin-bottom:0}.menu-theme .traffic-group-heading span{color:var(--muted);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.menu-theme .traffic-group-heading span.over{color:var(--danger)}.menu-theme .traffic-profile-sliders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.5rem}.menu-theme .traffic-slider{display:grid;gap:.3rem;min-width:0;color:var(--soft);font-size:12.5px;font-weight:600}.menu-theme .traffic-slider>span{display:flex;justify-content:space-between;gap:.75rem}.menu-theme .traffic-slider output{color:var(--text);font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.menu-theme .traffic-slider small,.menu-theme .traffic-profile-description{color:var(--muted);font-size:11.5px;font-weight:500;line-height:1.4}.menu-theme .traffic-slider input[type=range]{width:100%;accent-color:var(--text)}.menu-theme .traffic-profile-description{margin:.2rem 0 0}.menu-theme .traffic-number-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.5rem 1.25rem;margin-top:.6rem}.menu-theme .traffic-number-grid label{display:grid;grid-template-columns:minmax(0,1fr) 7.5rem;align-items:center;gap:.5rem;min-width:0;color:var(--soft);font-size:12.5px;font-weight:600}.menu-theme .traffic-number-grid label>span:first-child{display:flex;align-items:baseline;gap:.4rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-theme .traffic-stock-operator+.traffic-stock-operator{margin-top:.9rem}.menu-theme .traffic-stock-operator .traffic-number-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.menu-theme .traffic-stock-operator h6{margin:.8rem 0 0;color:var(--soft);font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.menu-theme .traffic-share{color:var(--muted);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.menu-theme .traffic-number-control{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:.25rem;min-width:0}.menu-theme .traffic-number-control button{justify-content:center;width:28px;height:28px;padding:0;font-size:15px;line-height:1}.menu-theme .traffic-number-grid input[type=number]{height:28px;padding:.15rem .4rem;font-size:12.5px;text-align:right;appearance:textfield}.menu-theme .traffic-number-grid input[type=number]::-webkit-inner-spin-button,.menu-theme .traffic-number-grid input[type=number]::-webkit-outer-spin-button{margin:0;appearance:none}@media(max-width:760px){.menu-theme .traffic-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-theme .traffic-profile-sliders{grid-template-columns:1fr}}.menu-theme .session-setting-toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.75rem;padding:.75rem .9rem;border:1px solid var(--hairline);border-radius:var(--radius-card);color:var(--text);background:var(--tint);cursor:pointer}.menu-theme .session-setting-toggle.disabled{cursor:not-allowed;opacity:.55}.menu-theme .session-setting-copy{display:grid;gap:.2rem;min-width:0}.menu-theme .session-setting-copy strong{font-size:13px;font-weight:700}.menu-theme .session-setting-copy small{color:var(--muted);font-size:12px;line-height:1.35}.menu-theme .toggle-switch{position:relative;flex:none;width:38px;height:22px}.menu-theme .toggle-switch input{position:absolute;z-index:1;inset:0;width:100%;height:100%;margin:0;cursor:inherit;opacity:0}.menu-theme .toggle-switch-track{position:absolute;inset:0;border:2px solid var(--field-border);border-radius:999px;background:var(--field);transition:background-color .14s ease,border-color .14s ease}.menu-theme .toggle-switch-track:after{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:var(--muted);content:"";transition:transform .14s ease,background-color .14s ease}.menu-theme .toggle-switch input:checked+.toggle-switch-track{border-color:var(--text);background:var(--text)}.menu-theme .toggle-switch input:checked+.toggle-switch-track:after{background:#030303;transform:translate(16px)}.menu-theme .toggle-switch input:focus-visible+.toggle-switch-track{outline:none;box-shadow:var(--focus-ring)}.menu-theme .session-pause-overlay{position:fixed;z-index:40;inset:0;display:grid;place-items:center;padding:16px;background:radial-gradient(circle at center,#00000073,#000000d1);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.menu-theme .session-pause-stack{display:flex;flex-direction:column;align-items:center;gap:1rem;width:min(100%,32rem);max-height:calc(100vh - 32px)}.menu-theme .session-pause-panel{display:flex;flex-direction:column;gap:.75rem;width:100%;min-height:0;max-height:100%;overflow:hidden;padding:1rem 1.1rem 1.1rem;border-color:#ffffff24;background:var(--glass-strong)}.menu-theme .session-pause-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;min-width:0}.menu-theme .session-pause-header h2{margin:0;font-size:18px;font-weight:800}.menu-theme .session-pause-header>span{flex:none;padding:.1rem .55rem;border:1px solid var(--hairline-strong);border-radius:999px;color:var(--soft);font-size:12px;font-weight:700}.menu-theme .session-pause-note,.menu-theme .session-pause-copy{margin:0;color:var(--muted);font-size:12.5px;line-height:1.45}.menu-theme .session-pause-copy{color:var(--soft);font-size:13px}.menu-theme .session-pause-header+.session-pause-note{margin-top:-.45rem}.menu-theme .session-pause-resume{position:relative;justify-content:center;width:100%;min-height:2.9rem;border-color:var(--text);color:#030303;background:var(--text);font-size:14.5px;font-weight:800}.menu-theme .session-pause-resume:hover:not(:disabled){border-color:#fff;background:#fff}.menu-theme .session-pause-resume kbd{position:absolute;right:.75rem;padding:.05rem .4rem;border:1px solid rgb(0 0 0 / 22%);border-radius:.3rem;color:#4a4a4a;font:inherit;font-size:11px;font-weight:700}.menu-theme .pause-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.menu-theme .pause-tiles .menu-tile{height:8.5rem;border-width:1px;background:var(--tint);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.menu-theme .pause-tiles .menu-tile:hover:not(:disabled){background:var(--tint-hover)}.menu-theme .pause-tiles .menu-tile-icon{width:2.1rem;height:2.1rem}.menu-theme .pause-tiles .menu-tile-copy{padding:.65rem .75rem}.menu-theme .pause-tiles .menu-tile-label{overflow:hidden;font-size:14.5px;text-overflow:ellipsis;white-space:nowrap}.menu-theme .pause-tiles .menu-tile-description{font-size:11.5px}.menu-theme .pause-links{display:flex;flex-wrap:wrap;gap:.5rem}.menu-theme .pause-link{display:inline-flex;flex:1 1 8rem;align-items:center;justify-content:center;gap:.45rem;min-height:2.3rem;padding:.4rem .75rem;border:1px solid var(--hairline);border-radius:var(--radius-control);color:var(--soft);background:var(--tint);font-weight:700;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.menu-theme .pause-link:hover:not(:disabled){border-color:var(--hairline-strong);color:var(--text);background:var(--tint-hover)}.menu-theme .pause-link-discord svg{width:1.05rem;height:1.05rem;color:#5865f2}.menu-theme .session-pause-leave{justify-content:center;width:100%;min-height:2.5rem;margin-top:.1rem;border-color:#ff5a5a4d;color:#ffb3b3;background:#ff5a5a14}.menu-theme .session-pause-leave:hover:not(:disabled),.menu-theme .session-pause-leave.armed{border-color:#ff5a5a8c;color:#fff;background:#ff5a5a2e}.menu-theme .session-pause-submenu-header{padding-bottom:.75rem;border-bottom:1px solid var(--hairline)}.menu-theme .session-pause-back{margin:-.3rem 0 .35rem -.45rem}.menu-theme .session-pause-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.menu-theme .session-pause-actions button{justify-content:center;min-height:2.6rem;white-space:normal}.menu-theme .session-pause-players-list{flex:1 1 auto;min-height:0;margin:0 -.25rem;padding:.25rem;overflow-y:auto}.menu-theme .session-pause-empty{margin:0;padding:1rem .5rem;color:var(--muted);text-align:center}.menu-theme .session-pause-session-settings{display:grid;gap:.75rem}.menu-theme .session-pause-news{flex:1 1 auto;min-height:0;max-height:60vh;margin:-.5rem -.25rem 0;padding:0 .25rem;overflow-y:auto}.menu-theme .pause-tile-zone{view-transition-name:pause-zone}.menu-theme .pause-tile-players{view-transition-name:pause-players}.menu-theme .pause-tile-session{view-transition-name:pause-session}.menu-theme .pause-link-news{view-transition-name:pause-news}@media(max-width:480px){.menu-theme .session-pause-overlay{align-items:end;padding:0}.menu-theme .session-pause-stack{width:100%;max-height:100dvh;gap:.75rem}.menu-theme .session-pause-panel{border-bottom-width:0;border-radius:var(--radius-panel) var(--radius-panel) 0 0}.menu-theme .pause-tiles .menu-tile{height:7.5rem}.menu-theme .pause-tiles .menu-tile-description{display:none}}.menu-theme .player-list{display:grid;gap:.35rem}.menu-theme .player-row{display:grid;grid-template-columns:18px minmax(0,1fr);grid-auto-columns:auto;grid-auto-flow:column;align-items:center;gap:.7rem;height:3.1rem;min-height:3.1rem;padding:0 .5rem 0 .8rem;border:1px solid var(--hairline);border-radius:var(--radius-card);color:var(--text);background:var(--tint)}.menu-theme .player-row.without-ready{grid-template-columns:minmax(0,1fr)}.menu-theme .player-row.current{border-color:var(--hairline-strong);background:var(--tint-active)}.menu-theme .player-row.confirming{border-color:#ff5a5a73;background:#ff5a5a1a}.menu-theme .player-ready{display:grid;place-items:center;width:18px;height:18px;border:2px solid #3a3a3a;border-radius:50%;color:#030303;background:var(--field)}.menu-theme .player-row:has(.player-ready:not(:empty)) .player-ready{border-color:var(--ok);color:#030303;background:var(--ok)}.menu-theme .player-ready svg{display:block}.menu-theme .player-identity{display:grid;min-width:0}.menu-theme .player-name{display:flex;align-items:center;gap:.4rem;min-width:0;font-size:13.5px}.menu-theme .player-name strong{min-width:0;overflow:hidden;color:var(--text);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.menu-theme .player-host-icon{flex:none;color:var(--highlight);stroke:var(--highlight)}.menu-theme .player-zone{overflow:hidden;padding-right:.3rem;color:var(--muted);font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.menu-theme .player-kick-button{justify-content:center;width:1.9rem;height:1.9rem;padding:0;border-color:transparent;color:var(--faint);background:transparent}.menu-theme .player-kick-button:hover:not(:disabled),.menu-theme .player-kick-button:focus-visible{border-color:#ff5a5a73;color:var(--danger);background:#ff5a5a1a}.menu-theme .player-kick-confirm{display:flex;gap:.3rem}.menu-theme .player-kick-confirm button{padding:.3rem .6rem;font-size:12px}.menu-theme .player-kick-confirm .player-kick-yes,.menu-theme .player-kick-confirm .player-kick-yes:hover:not(:disabled){border-color:var(--danger);color:#fff;background:#be2828d9}.menu-theme .zone-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.6rem}.menu-theme .zone-card{display:grid;min-width:0;padding:0;overflow:hidden;border:2px solid var(--field-border);border-radius:var(--radius-card);background:var(--field);text-align:left;white-space:normal}.menu-theme .zone-card:hover:not(:disabled){border-color:var(--field-focus);background:var(--field)}.menu-theme .zone-card.selected,.menu-theme .zone-card.selected:hover:not(:disabled){border-color:var(--text);background:var(--field)}.menu-theme .zone-card.pending{border-color:var(--hairline-strong);border-style:dashed}.menu-theme .zone-card:disabled{opacity:.45}.menu-theme .zone-card.selected:disabled{opacity:1}.menu-theme .zone-card img,.menu-theme .zone-preview-fallback{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;background:#000}.menu-theme .zone-preview-fallback{display:grid;place-items:center;color:var(--faint);font-size:20px;font-weight:800}.menu-theme .zone-card-footer{display:grid;gap:.1rem;padding:.5rem .65rem .6rem;border-top:1px solid var(--hairline);background:transparent}.menu-theme .zone-card.selected .zone-card-footer{background:var(--tint-active)}.menu-theme .zone-card-footer strong{color:var(--text);font-size:13px;font-weight:700}.menu-theme .zone-card-footer small{overflow:hidden;color:var(--muted);font-size:11.5px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.menu-theme .zone-card.selected .zone-card-footer small{color:var(--text)}@media(max-width:560px){.menu-theme .zone-card-grid{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.5rem}}.menu-theme .feedback-popup{gap:.6rem;width:min(30rem,calc(100vw - 32px));padding:.75rem .7rem .8rem .95rem;border:2px solid rgb(255 90 90 / 45%);border-radius:var(--radius-panel);color:var(--text);background:var(--glass-strong);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.menu-theme .feedback-popup.feedback-popup-success{border-color:#3fd07a66}.menu-theme .feedback-popup.reconnect-popup{border-color:#f0c60066}.menu-theme .feedback-popup-copy strong{color:var(--danger);font-size:11px}.menu-theme .feedback-popup-success .feedback-popup-copy strong{color:var(--ok)}.menu-theme .reconnect-popup .feedback-popup-copy>strong,.menu-theme .reconnect-icon{color:var(--warning)}.menu-theme .reconnect-icon{flex:none;margin-top:.1rem}.menu-theme .feedback-popup-copy p,.menu-theme .reconnect-copy{margin:.25rem 0 0;color:var(--soft);font-size:13px;font-weight:500}.menu-theme .reconnect-popup .reconnect-copy strong{display:inline;color:var(--text);font-size:inherit;font-weight:800;letter-spacing:.08em}.menu-theme .reconnect-popup .reconnect-error{margin:.35rem 0 0;color:var(--danger);font-size:12px;line-height:1.4}.menu-theme .reconnect-actions{display:flex;align-items:center;justify-content:flex-start;gap:.35rem;margin-top:.7rem}.menu-theme .feedback-popup-dismiss{justify-content:center;width:26px;height:26px;margin:-.2rem 0 0;padding:0;border-color:transparent;border-radius:var(--radius-control);color:var(--soft);background:transparent;font-size:18px;font-weight:500}.menu-theme .feedback-popup-dismiss:hover:not(:disabled){border-color:transparent;color:var(--text);background:var(--tint-hover)}.menu-theme .connection-lost-overlay{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:16px;background:#0000009e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.menu-theme .connection-lost-popup{display:grid;justify-items:center;gap:.55rem;width:min(100%,19rem);padding:1.4rem 1.25rem 1.3rem;border:2px solid rgb(255 90 90 / 45%);border-radius:var(--radius-panel);color:var(--text);background:var(--glass-strong);box-shadow:var(--glass-shadow);text-align:center}.menu-theme .connection-lost-icon{color:var(--danger)}.menu-theme .connection-lost-popup h2{margin:0;font-size:17px;font-weight:800}.menu-theme .connection-lost-status{display:inline-flex;align-items:center;gap:.45rem;padding:.25rem .7rem;border:1px solid var(--hairline);border-radius:999px;color:var(--soft);background:var(--tint);font-size:12.5px;font-weight:600}.menu-theme .connection-lost-spinner{animation:menu-spin 1s linear infinite}.menu-theme .zone-selection-overlay{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:16px;background:radial-gradient(circle at center,#00000073,#000000d1);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.menu-theme .zone-selection-panel{display:grid;gap:1rem;width:min(100%,46rem);max-height:min(100%,46rem);padding:1.1rem 1.2rem 1.25rem;overflow:auto;border:2px solid var(--glass-border);border-radius:var(--radius-panel);color:var(--text);background:var(--glass-strong);box-shadow:var(--glass-shadow)}.menu-theme .zone-selection-heading{display:flex;align-items:flex-start;gap:.65rem;padding-bottom:.9rem;border-bottom:1px solid var(--hairline)}.menu-theme .zone-selection-heading>svg{flex:none;margin-top:.1rem;color:var(--soft)}.menu-theme .zone-selection-heading h2{margin:0;font-size:18px;font-weight:800}.menu-theme .zone-selection-heading p{margin:.3rem 0 0;color:var(--muted);font-size:12.5px;line-height:1.45}.menu-theme .zone-selection-status{margin:0;color:var(--muted);font-size:12.5px;font-weight:600;text-align:center}.menu-theme .zone-selection-status-error{color:var(--danger)}.menu-theme .map-assets-loading{position:absolute;z-index:8;inset:0;display:grid;place-items:center;padding:16px;background:radial-gradient(circle at center,#000000b3,#000000f0);cursor:wait}.menu-theme .map-assets-loading-card{display:grid;gap:.7rem;width:min(100%,25rem);padding:1.15rem 1.25rem 1.2rem;border:2px solid var(--glass-border);border-radius:var(--radius-panel);color:var(--text);background:var(--glass-strong);box-shadow:var(--glass-shadow)}.menu-theme .map-assets-loading-heading{display:flex;align-items:center;gap:.55rem}.menu-theme .map-assets-loading-icon{flex:none;color:var(--soft)}.menu-theme .map-assets-loading-card strong{flex:1;font-size:15px;font-weight:800}.menu-theme .map-assets-loading-heading span{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}.menu-theme .map-assets-loading-card progress{display:block;width:100%;height:8px;overflow:hidden;border:0;border-radius:999px;background:var(--field);appearance:none}.menu-theme .map-assets-loading-card progress::-webkit-progress-bar{border-radius:999px;background:var(--field);box-shadow:inset 0 0 0 1px var(--field-border)}.menu-theme .map-assets-loading-card progress::-webkit-progress-value{border-radius:999px;background:var(--text);transition:width .16s ease}.menu-theme .map-assets-loading-card progress::-moz-progress-bar{border-radius:999px;background:var(--text)}.menu-theme .map-assets-loading-progress{display:flex;justify-content:space-between;gap:1rem;color:var(--soft);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.menu-theme .map-assets-loading-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.menu-theme .map-assets-loading-error{justify-items:center;border-color:#ff5a5a73;text-align:center;cursor:default}.menu-theme .map-assets-loading-error .map-assets-loading-icon{color:var(--danger)}.menu-theme .map-assets-loading-error .primary-button{width:100%;margin-top:.25rem;padding:.55rem 1rem}@keyframes menu-spin{to{transform:rotate(360deg)}}.menu-theme .map-preview-svg{display:block;width:100%;aspect-ratio:16 / 9;background:#000}.menu-theme .zone-card .zone-card-preview{display:block;width:100%;aspect-ratio:16 / 9}.menu-theme .workshop-page-panel{display:grid;gap:1rem;padding:1rem 1.25rem 1.3rem;border-color:#ffffff24}.menu-theme :is(.workshop-page-header,.workshop-submenu-header){display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.8rem}.menu-theme .workshop-page-header{padding-bottom:.9rem;border-bottom:1px solid var(--hairline)}.menu-theme .workshop-page-header h1{margin:0;font-size:22px;font-weight:800}.menu-theme .workshop-page-header p{margin:.3rem 0 0;color:var(--muted);font-size:12.5px}.menu-theme .workshop-account{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .3rem .25rem .45rem;border:1px solid var(--hairline);border-radius:999px;background:var(--tint)}.menu-theme .workshop-account-name{max-width:12rem;overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.menu-theme .workshop-icon-button{padding:.3rem;border-radius:999px}.menu-theme .workshop-avatar{flex:none;width:22px;height:22px;border-radius:999px;object-fit:cover}.menu-theme .workshop-avatar-initial{display:inline-grid;place-items:center;color:var(--text);background:var(--tint-active);font-size:11px;font-weight:800}.menu-theme .workshop-sign-in{border-color:#5865f2;color:#fff;background:#5865f2}.menu-theme .workshop-sign-in:hover:not(:disabled){border-color:#4752c4;background:#4752c4}.menu-theme .workshop-browser{display:grid;gap:.9rem}.menu-theme .workshop-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.menu-theme .workshop-search{position:relative;flex:1 1 16rem}.menu-theme .workshop-search svg{position:absolute;top:50%;left:.7rem;color:var(--muted);transform:translateY(-50%);pointer-events:none}.menu-theme .workshop-search .text-field{width:100%;padding-left:2.1rem}.menu-theme .workshop-sort{flex:none;width:auto}.menu-theme .workshop-notice{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:.6rem .75rem;border:1px solid var(--hairline);border-radius:var(--radius-card);color:var(--soft);background:var(--tint);line-height:1.4}.menu-theme .workshop-notice.error{border-color:#ff5a5a73}.menu-theme .workshop-notice.error>svg{color:var(--danger)}.menu-theme .workshop-notice button{margin-left:auto}.menu-theme .workshop-empty{display:grid;justify-items:center;gap:.8rem;padding:1.6rem 1.2rem;border:1px dashed var(--hairline-strong);border-radius:var(--radius-card);color:var(--muted);text-align:center}.menu-theme .workshop-empty p{margin:0}.menu-theme .workshop-editor-link{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .8rem;border:1px solid var(--hairline-strong);border-radius:var(--radius-control);color:var(--text);background:var(--tint);font-weight:700;text-decoration:none}.menu-theme .workshop-editor-link:hover{background:var(--tint-hover)}.menu-theme .workshop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.8rem}.menu-theme .workshop-card{position:relative;display:grid;min-width:0;overflow:hidden;border:1px solid rgb(255 255 255 / 12%);border-radius:var(--radius-panel);background:var(--tint);transition:border-color .14s ease,background-color .14s ease}.menu-theme .workshop-card:hover{border-color:#ffffff47;background:var(--tint-hover)}.menu-theme .workshop-card.subscribed{border-color:#3fd07a73}.menu-theme .workshop-card-open{display:grid;width:100%;padding:0;border:0;border-radius:0;text-align:left;white-space:normal;background:transparent}.menu-theme .workshop-card-open:hover:not(:disabled){border:0;background:transparent}.menu-theme :is(.workshop-card-preview,.workshop-detail-picture){display:grid;place-items:center;aspect-ratio:16 / 9;overflow:hidden;background:#000}.menu-theme .workshop-preview-status{color:var(--faint);font-size:12px;font-weight:600}.menu-theme .workshop-card-body{display:grid;gap:.35rem;padding:.7rem .8rem .8rem;border-top:1px solid var(--hairline)}.menu-theme .workshop-card-title{overflow:hidden;font-size:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.menu-theme .workshop-card-author{display:inline-flex;align-items:center;gap:.4rem;min-width:0;color:var(--soft);font-size:12px;font-weight:600}.menu-theme .workshop-card-stats{display:flex;gap:.8rem;color:var(--muted);font-size:11.5px;font-weight:600}.menu-theme .workshop-card-stats span{display:inline-flex;align-items:center;gap:.25rem}.menu-theme .workshop-subscribe{justify-content:center}.menu-theme .workshop-subscribe.compact{position:absolute;top:.55rem;right:.55rem;padding:.3rem .65rem;border-color:#ffffff38;border-radius:999px;color:var(--text);background:#000000c7;font-size:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.menu-theme .workshop-subscribe.compact:hover:not(:disabled){border-color:var(--text);background:#000000e0}.menu-theme .workshop-subscribe.subscribed,.menu-theme .workshop-subscribe.subscribed:hover:not(:disabled){border-color:#3fd07a8c;color:var(--ok)}.menu-theme .workshop-subscribe.subscribed:not(.compact){background:#3fd07a1a}.menu-theme .workshop-make-card{display:grid;place-content:center;justify-items:center;gap:.4rem;min-height:12rem;padding:1rem;border:1px dashed var(--hairline-strong);border-radius:var(--radius-panel);color:var(--soft);text-align:center;text-decoration:none;transition:border-color .14s ease,background-color .14s ease}.menu-theme .workshop-make-card:hover{border-color:#ffffff52;color:var(--text);background:var(--tint)}.menu-theme .workshop-make-card strong{font-size:14px;font-weight:800}.menu-theme .workshop-make-card small{max-width:14rem;color:var(--muted);font-size:12px;line-height:1.4}.menu-theme .workshop-more{justify-self:center}.menu-theme .workshop-detail{display:grid;gap:.6rem}.menu-theme .workshop-detail>.lobby-back-button{justify-self:start}.menu-theme .workshop-detail-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(16rem,1fr);align-items:start;gap:1rem}.menu-theme .workshop-detail-preview{display:grid;gap:.6rem;min-width:0}.menu-theme .workshop-detail-picture{border:1px solid rgb(255 255 255 / 12%);border-radius:var(--radius-panel)}.menu-theme .workshop-zone-chips{display:flex;flex-wrap:wrap;gap:.35rem}.menu-theme .workshop-zone-chips button{padding:.25rem .6rem;border-radius:999px;font-size:12px}.menu-theme .workshop-zone-chips button.selected{border-color:var(--text);background:var(--tint-active)}.menu-theme .workshop-detail-info{display:grid;align-content:start;gap:.9rem;min-width:0}.menu-theme .workshop-detail-title{display:grid;gap:.35rem}.menu-theme .workshop-detail-info h2{margin:0;font-size:22px;font-weight:800;overflow-wrap:anywhere}.menu-theme .workshop-description{margin:0;color:var(--soft);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.menu-theme .workshop-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:0}.menu-theme .workshop-facts div{display:grid;gap:.1rem;padding:.55rem .65rem;border:1px solid var(--hairline);border-radius:var(--radius-card);background:var(--tint)}.menu-theme .workshop-facts dt{color:var(--muted);font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.menu-theme .workshop-facts dd{margin:0;font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}.menu-theme .workshop-detail-action{display:grid;gap:.5rem}.menu-theme .workshop-detail-action .workshop-subscribe{min-height:2.6rem;font-size:14px}.menu-theme .workshop-detail-hint{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.menu-theme .workshop-detail-hint svg{vertical-align:-2px}.menu-theme .workshop-updated{margin:0;color:var(--faint);font-size:11.5px}.menu-theme .lobby-map-menu{display:grid;gap:1rem}.menu-theme .lobby-map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.6rem}.menu-theme .lobby-map-card{position:relative;display:grid;min-width:0;padding:0;overflow:hidden;border:2px solid var(--field-border);border-radius:var(--radius-card);background:var(--field);text-align:left;white-space:normal}.menu-theme .lobby-map-card:hover:not(:disabled){border-color:var(--field-focus);background:var(--field)}.menu-theme .lobby-map-card.selected,.menu-theme .lobby-map-card.selected:hover:not(:disabled){border-color:var(--text)}.menu-theme .lobby-map-card:disabled{opacity:.6}.menu-theme .lobby-map-card.selected:disabled{opacity:1}.menu-theme .lobby-map-card-preview{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;background:#000}.menu-theme .lobby-map-card-placeholder{display:grid;place-items:center;color:var(--faint)}.menu-theme .lobby-map-card-footer{display:grid;gap:.15rem;padding:.5rem .65rem .6rem;border-top:1px solid var(--hairline)}.menu-theme .lobby-map-card.selected .lobby-map-card-footer{background:var(--tint-active)}.menu-theme .lobby-map-card-footer strong{overflow:hidden;font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.menu-theme .lobby-map-card-footer small{overflow:hidden;color:var(--muted);font-size:11.5px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.menu-theme .lobby-map-card-author{display:flex;align-items:center;gap:.35rem}.menu-theme .lobby-map-card-author .workshop-avatar{width:16px;height:16px}.menu-theme .lobby-map-card-check{position:absolute;top:.45rem;right:.45rem;padding:.15rem;border-radius:999px;color:#030303;background:var(--text)}.menu-theme .lobby-map-workshop{display:grid;gap:.7rem}.menu-theme .lobby-map-sign-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.7rem;padding:.75rem .85rem;border:1px dashed var(--hairline-strong);border-radius:var(--radius-card)}.menu-theme .lobby-map-sign-in p{flex:1 1 18rem;margin:0;color:var(--soft);line-height:1.45}.menu-theme .lobby-map-actions{display:flex;flex-wrap:wrap;gap:.4rem}@media(max-width:760px){.menu-theme .workshop-detail-layout{grid-template-columns:1fr}}
