:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e8eef8;background:#070d16;color-scheme:dark;--border:#223248;--panel:#0a121e;--panel2:#0e1927;--muted:#71839a;--text:#e8eef8;--good:#59d7a7;--warn:#ffbd61;--bad:#ff727a}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#070d16}button,input,select{font:inherit}.app{height:100vh;display:grid;grid-template-rows:68px 1fr 28px;background:radial-gradient(circle at 50% 0%,#142239 0,#07101c 42%,#050a11 100%)}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid #26364a;background:rgba(7,13,22,.97);z-index:1200;gap:14px}.brand{display:flex;align-items:center;gap:12px;min-width:240px}.brand-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#1c77ff,#0f4ca8);box-shadow:0 0 22px #1668db55;font-size:20px}.brand strong{display:block;font-size:16px;letter-spacing:.15px}.brand span{display:block;font-size:10px;color:#75859c;margin-top:2px;text-transform:uppercase;letter-spacing:1.1px}.statusbar{display:flex;align-items:center;gap:7px;min-width:0}.network-status{height:34px;padding:0 11px;border:1px solid #1a5546;border-radius:8px;display:flex;align-items:center;gap:7px;font-size:11px;color:#63e6be;background:#0d211d;white-space:nowrap}.network-status i{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 9px currentColor}.network-status.warn{color:#ffbd61;border-color:#705327;background:#231b0e}.network-status.bad{color:#ff7b82;border-color:#6b3337;background:#241419}.clock{padding:0 11px;border-left:1px solid #25364d;min-width:102px}.clock b{display:block;font-size:15px;font-variant-numeric:tabular-nums}.clock span{display:block;font-size:9px;color:#64758c;text-transform:uppercase}.ctrl,.difficulty,.tiny-btn{height:34px;border-radius:8px;border:1px solid #293950;background:#101a28;color:#9fb0c4;cursor:pointer}.ctrl{min-width:38px}.ctrl:hover,.ctrl.active,.tiny-btn:hover{background:#163a69;border-color:#2866a9;color:#fff}.difficulty{padding:0 10px;outline:none;font-size:11px}.tiny-btn{height:27px;font-size:9px;padding:0 8px}
.workspace{display:grid;grid-template-columns:286px minmax(560px,1fr) 340px;min-height:0}.sidebar{background:var(--panel);min-height:0;overflow:auto}.left-panel{border-right:1px solid var(--border)}.right-panel{border-left:1px solid var(--border);padding-bottom:18px}.panel-heading{height:66px;padding:12px 14px;border-bottom:1px solid #1c2a3b;display:flex;align-items:center;justify-content:space-between;color:#7e90a8;position:sticky;top:0;background:#0a121ef2;backdrop-filter:blur(12px);z-index:3}.panel-heading h2{margin:2px 0 0;color:#ecf2fb;font-size:14px}.eyebrow{font-size:8px;letter-spacing:1.5px;text-transform:uppercase;color:#5f7390}.search-wrap{padding:9px 9px 2px}.search-wrap input{width:100%;height:34px;border-radius:8px;border:1px solid #22344a;background:#08111c;color:#dce6f2;outline:none;padding:0 10px;font-size:11px}.search-wrap input:focus{border-color:#386b9e;box-shadow:0 0 0 2px #22518033}.line-list{padding:6px 8px}.line-row{width:100%;border:0;border-radius:8px;background:transparent;color:#d8e2f0;display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center;text-align:left;padding:7px 8px;cursor:pointer;margin-bottom:2px}.line-row:hover,.line-row.active{background:#111f30}.line-row:not(.active){opacity:.43}.line-chip{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;color:#fff;font-weight:850;font-size:12px;box-shadow:inset 0 0 0 1px #ffffff2b}.line-dest b,.line-dest small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.line-dest b{font-size:11px;font-weight:700}.line-dest small{margin-top:2px;color:#6f8199;font-size:9px}.line-kpi{font-variant-numeric:tabular-nums;text-align:right}.line-kpi b{display:block;font-size:10px;color:#a9b9cb}.line-kpi small{font-size:8px;color:#60738b}.line-kpi .late{color:#ff8d92}.data-note{margin:10px 12px 14px;display:flex;gap:8px;padding:10px;border-radius:9px;border:1px solid #24364d;background:#0d1928;color:#7f93ac}.data-note b,.data-note span{display:block}.data-note b{font-size:10px;color:#b9c8da}.data-note span{font-size:9px;line-height:1.45;margin-top:3px}
.center-stage{position:relative;min-width:0;display:grid;grid-template-rows:minmax(0,1fr) 66px 118px}.map-wrap{position:relative;min-height:0;background:#07101c}.map{height:100%;width:100%;background:#101722}.map-badge{position:absolute;top:12px;left:12px;z-index:800;padding:7px 10px;border:1px solid #335177;border-radius:7px;background:#0b1624eb;display:flex;gap:6px;align-items:center}.map-badge b{font-size:10px;color:#d6e5f8;letter-spacing:1.4px}.map-badge span{font-size:8px;color:#7389a4;letter-spacing:1px}.map-legend{position:absolute;top:12px;right:12px;z-index:800;padding:7px 9px;border:1px solid #263d58;border-radius:7px;background:#0b1624e8;display:flex;gap:10px;color:#8297b0;font-size:8px}.map-legend span{display:flex;align-items:center;gap:4px}.legend-stop{width:7px;height:7px;border:1px solid #d8e5f4;border-radius:50%;background:#122032}.legend-train{width:9px;height:9px;border-radius:3px;background:#3b80e5;border:1px solid #fff}.leaflet-container{background:#0b121c}.leaflet-tile-pane{filter:saturate(.16) brightness(.46) contrast(1.28) hue-rotate(175deg)}.leaflet-control-zoom a{background:#0e1927!important;color:#c4d0de!important;border-color:#26384f!important}.leaflet-control-attribution{background:#0b1420c9!important;color:#71839a!important;font-size:8px!important}.leaflet-control-attribution a{color:#8fa9c8!important}.station-marker{width:9px;height:9px;border:2px solid #d6e4f4;border-radius:50%;background:#122032;box-shadow:0 0 8px #000;cursor:pointer;transition:.15s}.station-marker.hub{width:13px;height:13px;border-width:2px;background:#1b3857;box-shadow:0 0 12px #1b6fbf66}.station-marker.selected{outline:3px solid #ffffff55;transform:scale(1.35)}.train-marker{min-width:25px;height:25px;padding:0 5px;border-radius:7px;border:2px solid rgba(255,255,255,.82);display:grid;place-items:center;color:#fff;font-weight:900;font-size:10px;box-shadow:0 3px 13px #000b;cursor:pointer}.train-marker.selected{outline:3px solid #fff8;transform:scale(1.15)}.train-marker.late{border-color:#ffd27c;box-shadow:0 0 0 2px #5d411c,0 3px 13px #000b}.train-marker.very-late{border-color:#ff7c83;box-shadow:0 0 0 2px #681f26,0 3px 13px #000b}.leaflet-tooltip.stop-tooltip{background:#08121e;border:1px solid #2b425d;color:#dce8f5;box-shadow:0 7px 20px #0009;border-radius:7px;padding:6px 8px;font-size:10px}.leaflet-tooltip-top.stop-tooltip:before{border-top-color:#2b425d}.toast{position:absolute;right:16px;bottom:16px;z-index:1000;background:#102034;border:1px solid #31547b;border-radius:9px;padding:10px 12px;font-size:11px;box-shadow:0 9px 25px #0008;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}
.metrics{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid #223248;border-bottom:1px solid #1d2c3e;background:#09121d}.metric{display:flex;flex-direction:column;justify-content:center;padding:0 14px;border-right:1px solid #1d2d40;min-width:0}.metric span{font-size:8px;text-transform:uppercase;letter-spacing:.75px;color:#62758d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric b{font-size:18px;margin-top:3px;color:#dfe8f3;font-variant-numeric:tabular-nums}.metric.warning b{color:#ffbd61}.metric.danger b{color:#ff7a82}.log-panel{min-height:0;background:#07101a}.log-head{height:31px;padding:0 11px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #172536;color:#61758e;font-size:9px}.log-head b{color:#93a7be;text-transform:uppercase;letter-spacing:.8px}.log-head button{border:0;background:transparent;color:#60758f;font-size:9px;cursor:pointer}.log-list{height:86px;overflow:auto;padding:4px 0}.log-row{min-height:25px;display:grid;grid-template-columns:52px 58px 1fr;align-items:center;padding:3px 11px;font-size:9px;color:#7f92aa;border-bottom:1px solid #0e1b29}.log-row time{font-variant-numeric:tabular-nums;color:#52657d}.log-row .tag{font-size:8px;text-transform:uppercase;letter-spacing:.5px}.log-row .tag.info{color:#7aaee8}.log-row .tag.warn{color:#ffc270}.log-row .tag.bad{color:#ff8188}.log-row .tag.action{color:#67d4ab}.log-row strong{color:#b7c6d8;font-weight:600}
.empty-state{margin:22px 16px;padding:16px;border:1px dashed #273a50;border-radius:10px;color:#70839b;text-align:center}.empty-state strong,.empty-state span{display:block}.empty-state strong{font-size:12px;color:#9cafc4}.empty-state span{font-size:10px;line-height:1.45;margin-top:5px}.detail-card{margin:13px;border:1px solid #26384f;border-radius:10px;background:linear-gradient(145deg,#101c2b,#0c1521);padding:12px}.detail-title{display:flex;gap:10px;align-items:center}.line-chip.big{width:42px;height:42px;font-size:18px;border-radius:9px}.detail-title h3{font-size:13px;margin:0}.detail-title p{font-size:9px;color:#768aa4;margin:3px 0 0;line-height:1.35}.status-badge{margin-left:auto;padding:4px 7px;border-radius:999px;font-size:8px;text-transform:uppercase;letter-spacing:.5px;background:#0d2d24;color:#65dcae}.status-badge.warn{background:#342611;color:#ffc16a}.status-badge.bad{background:#35171b;color:#ff7c84}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.detail-grid>div{padding:8px;border-radius:7px;background:#09131f;min-width:0}.detail-grid span,.detail-grid b{display:block}.detail-grid span{font-size:8px;color:#62768f;text-transform:uppercase;letter-spacing:.45px}.detail-grid b{font-size:10px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.good{color:#66ddb3}.warn-text{color:#ffc16a}.bad-text{color:#ff7c83}.section-label{margin:16px 13px 7px;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#8194aa}.actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 13px}.actions button{min-height:55px;border:1px solid #25364b;border-radius:8px;background:#0e1927;color:#99abc0;display:flex;flex-direction:column;gap:5px;align-items:flex-start;justify-content:center;padding:9px;cursor:pointer}.actions button:hover{background:#14243a;color:#fff;border-color:#375b88}.actions button.danger:hover{background:#32181d;border-color:#713940;color:#ff9da2}.actions span{font-size:9px}.actions b{font-size:15px;font-weight:500}.next-stops{margin:0 13px;border:1px solid #22344a;border-radius:8px;overflow:hidden}.stop-row{display:grid;grid-template-columns:48px 1fr auto;gap:8px;align-items:center;min-height:34px;padding:5px 8px;border-bottom:1px solid #18283a;background:#0b1521}.stop-row:last-child{border-bottom:0}.stop-row time{font-size:9px;color:#7288a1;font-variant-numeric:tabular-nums}.stop-row b{font-size:9px}.stop-row small{font-size:8px;color:#60738b}.departure-board{margin:12px 13px 0;border:1px solid #27394f;border-radius:9px;overflow:hidden}.departure-head,.departure-row{display:grid;grid-template-columns:33px 1fr 43px 45px;gap:6px;align-items:center}.departure-head{height:27px;padding:0 7px;background:#101d2c;color:#61758e;font-size:7px;text-transform:uppercase;letter-spacing:.5px}.departure-row{min-height:36px;padding:5px 7px;background:#0b1521;border-top:1px solid #18283a}.departure-row .mini-line{width:25px;height:22px;border-radius:5px;display:grid;place-items:center;font-size:9px;font-weight:800;color:#fff}.departure-row b{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.departure-row span{font-size:9px;font-variant-numeric:tabular-nums}.departure-row .delay{color:#67d5aa}.departure-row .delay.late{color:#ffc16a}.departure-row .delay.bad{color:#ff7b82}.station-lines{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.station-lines .mini-line{width:24px;height:20px;border-radius:5px;display:grid;place-items:center;font-size:8px;font-weight:800;color:#fff}.incident-head{display:flex;justify-content:space-between;align-items:center;margin:20px 13px 8px}.incident-head h3{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#879ab2;margin:0}.incident-head span{font-size:8px;color:#ff9b9f}.incident-list{margin-bottom:8px}.incident{margin:0 13px 6px;padding:9px;border:1px solid #25364a;border-radius:8px;background:#0e1825;display:grid;grid-template-columns:20px 1fr auto;gap:8px;align-items:center;color:#8092a9;cursor:pointer}.incident:hover{border-color:#36516f}.incident.critical{border-color:#6b3337;background:#241419;color:#f07e82}.incident.warning{border-color:#654b28;background:#21180e;color:#f5bc67}.incident b,.incident span{display:block}.incident b{font-size:9px;color:#d7e1ed}.incident span{font-size:8px;color:#70839b;margin-top:3px;line-height:1.35}.incident button{border:1px solid #31455e;background:#111e2d;color:#8ca1b8;border-radius:6px;font-size:8px;padding:5px 6px;cursor:pointer}.incident button:hover{color:white;border-color:#4a6d95}
footer{height:28px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #1b2a3a;background:#070d14;color:#55677d;font-size:8px;text-transform:uppercase;letter-spacing:.7px}footer strong{color:#8194aa}
@media(max-width:1180px){.workspace{grid-template-columns:240px 1fr 290px}.brand span{display:none}.difficulty{max-width:120px}.map-legend{display:none}}@media(max-width:900px){html,body{overflow:auto}.app{height:auto;min-height:100vh;grid-template-rows:auto auto 28px}.topbar{min-height:68px;flex-wrap:wrap;gap:8px;padding:10px}.statusbar{flex-wrap:wrap}.workspace{display:flex;flex-direction:column}.left-panel{order:2;border-right:0}.center-stage{order:1;height:78vh;grid-template-rows:1fr 120px 120px}.right-panel{order:3;border-left:0}.metrics{grid-template-columns:1fr 1fr}.metric{min-height:60px}.line-list{display:grid;grid-template-columns:1fr 1fr}.sidebar{overflow:visible}.panel-heading{position:static}.log-panel{min-height:120px}}@media(max-width:620px){.line-list{grid-template-columns:1fr}.brand{min-width:0}.network-status{display:none}.clock{min-width:88px}.difficulty{width:120px}.center-stage{height:85vh}.departure-head,.departure-row{grid-template-columns:32px 1fr 42px 42px}}

/* v0.3 Alpha – Betriebsstörungen, Sperren & SEV */
.metrics{grid-template-columns:repeat(7,1fr)}
.legend-incident{width:9px;height:9px;border-radius:50%;background:#ff5964;border:1px solid #ffd2d5;box-shadow:0 0 8px #ff5964aa}
.legend-sev{width:14px;height:4px;border-top:2px dashed #ffb84d}
.train-marker.blocked{border-color:#fff;box-shadow:0 0 0 3px #d9303b,0 0 18px #ff4d58,0 3px 13px #000b;animation:blockedPulse 1.1s ease-in-out infinite}
@keyframes blockedPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.45)}}
.incident-marker{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:2px solid #fff;color:#fff;font-weight:950;background:#d6323f;box-shadow:0 0 0 4px #641821aa,0 0 22px #ff4654cc;cursor:pointer;animation:incidentPulse 1.4s ease-in-out infinite}
.incident-marker.slow{background:#c47b18;box-shadow:0 0 0 4px #65400faa,0 0 18px #ffb84daa}
@keyframes incidentPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}
.sev-badge{height:20px;min-width:36px;padding:0 5px;border-radius:5px;border:1px solid #ffe2a8;background:#ce7f13;color:#fff;display:grid;place-items:center;font-size:8px;font-weight:900;box-shadow:0 4px 13px #000b}
.blocked-callout{margin-top:10px;padding:9px 10px;border:1px solid #6d3038;border-radius:8px;background:#2a1419}.blocked-callout b,.blocked-callout span{display:block}.blocked-callout b{font-size:10px;color:#ff8b92}.blocked-callout span{margin-top:3px;font-size:8px;color:#bd7d83}
.incident-v03{grid-template-columns:22px 1fr;margin-bottom:8px;padding:10px;align-items:start}.incident-v03 .incident-symbol{font-size:15px;margin-top:0}.incident-main b{font-size:10px}.incident-main>span{font-size:8px}.incident-main small{display:block;margin-top:5px;color:#9bacc0;font-size:8px;line-height:1.35}.incident-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:3px}.incident-actions button{min-height:28px;padding:5px 7px}.incident-actions button:disabled,.actions button:disabled{opacity:.43;cursor:default;background:#0b1420;color:#617086;border-color:#233044}.incident-actions button:disabled:hover,.actions button:disabled:hover{background:#0b1420;color:#617086;border-color:#233044}
.incident-detail .station-big{font-size:23px}.workflow{margin-top:10px;padding:9px;border-radius:8px;background:#09131f;border:1px solid #25384e}.workflow b,.workflow span{display:block}.workflow b{font-size:9px;color:#b8c8da}.workflow span{font-size:8px;color:#6f8299;margin-top:3px;line-height:1.4}.incident-detail-actions button{min-height:61px}
@media(max-width:1320px){.metrics{grid-template-columns:repeat(4,1fr)}.center-stage{grid-template-rows:minmax(0,1fr) 118px 118px}.metric{min-height:58px}}
@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}.center-stage{height:90vh;grid-template-rows:1fr 220px 130px}}

/* v0.4 Alpha – Fahrgast-Simulation */
.metrics{grid-template-columns:repeat(9,1fr)}
.map-mode-btn{height:22px;padding:0 7px;border:1px solid #31506f;border-radius:5px;background:#102034;color:#8ea5bd;font-size:8px;cursor:pointer;white-space:nowrap}
.map-mode-btn:hover,.map-mode-btn.active{background:#173b61;border-color:#4c7fb1;color:#fff}
.station-marker.load-low{background:#174d40;border-color:#7de6c0;box-shadow:0 0 9px #35c89577}
.station-marker.load-medium{background:#64501a;border-color:#ffd477;box-shadow:0 0 10px #ffbd5166}
.station-marker.load-high{background:#7a431b;border-color:#ffac68;box-shadow:0 0 13px #ff8b3d88;transform:scale(1.15)}
.station-marker.load-critical{background:#7c2028;border-color:#ff9ca2;box-shadow:0 0 17px #ff4f5caa;transform:scale(1.35);animation:paxPulse 1.2s ease-in-out infinite}
.station-marker.selected.load-high,.station-marker.selected.load-critical{transform:scale(1.55)}
@keyframes paxPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.45)}}
.train-marker.packed:not(.blocked){box-shadow:0 0 0 3px #ff9d4f,0 0 17px #ff843d88,0 3px 13px #000b}
.loadbar,.station-loadbar{height:7px;margin-top:10px;border-radius:999px;background:#07101a;border:1px solid #24364b;overflow:hidden}
.loadbar>span,.station-loadbar>span{display:block;height:100%;border-radius:999px;background:#5bcda7;transition:width .25s ease}
.loadbar>span.high,.station-loadbar>span.high{background:#e9a84f}
.loadbar>span.critical,.station-loadbar>span.critical{background:#ed6670}
.passenger-warning{margin-top:9px;padding:8px 9px;border:1px solid #64462a;border-radius:8px;background:#241a10}
.passenger-warning b,.passenger-warning span{display:block}.passenger-warning b{font-size:9px;color:#ffc06d}.passenger-warning span{margin-top:3px;font-size:8px;color:#9d8468}
.pax-dest-list{margin:0 13px;border:1px solid #22344a;border-radius:8px;overflow:hidden;background:#0b1521}
.pax-dest{min-height:31px;padding:6px 9px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #17283a}
.pax-dest:last-child{border-bottom:0}.pax-dest b{font-size:9px;color:#bccbdd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pax-dest span{font-size:10px;color:#76d9b3;font-variant-numeric:tabular-nums}
.empty-mini{padding:10px;color:#6f8298;font-size:8px;text-align:center}
@media(max-width:1500px){.metrics{grid-template-columns:repeat(5,1fr)}.center-stage{grid-template-rows:minmax(0,1fr) 122px 118px}.metric{min-height:58px}}
@media(max-width:1180px){.map-legend{display:flex;top:auto;bottom:12px;right:12px}.map-legend>span{display:none}}
@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}.center-stage{height:96vh;grid-template-rows:1fr 290px 130px}.map-legend{display:flex}}

/* v0.5 Alpha – Infrastruktur & Stellwerk */
.metrics{grid-template-columns:repeat(10,1fr)}
.map-mode-btn.primary{border-color:#4d6f9a;background:#173153;color:#dcecff}
.train-marker.signal-stop{border-color:#fff;box-shadow:0 0 0 3px #b63b3f,0 0 18px #ff5b61aa,0 3px 13px #000b;animation:signalHoldPulse 1.15s ease-in-out infinite}
@keyframes signalHoldPulse{0%,100%{filter:brightness(.88)}50%{filter:brightness(1.35)}}
.signal-callout{margin-top:10px;padding:9px 10px;border:1px solid #6d3038;border-radius:8px;background:#27151a}.signal-callout b,.signal-callout span{display:block}.signal-callout b{font-size:10px;color:#ff8b92}.signal-callout span{margin-top:3px;font-size:8px;color:#b8868a;line-height:1.4}
.map-signal{position:relative;width:30px;height:38px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;filter:drop-shadow(0 4px 7px #000a)}.map-signal:before{content:"";width:13px;height:20px;border-radius:7px;background:#101820;border:2px solid #d7e0ea;box-shadow:0 0 0 2px #06101a}.map-signal i{position:absolute;top:6px;width:7px;height:7px;border-radius:50%;background:#f0545d;box-shadow:0 0 10px #f0545d}.map-signal.green i{background:#4ce0a6;box-shadow:0 0 11px #4ce0a6}.map-signal span{margin-top:24px;font-size:7px;font-weight:850;color:#d7e5f4;background:#07111dbd;border:1px solid #314660;border-radius:4px;padding:1px 3px;line-height:1}
.interlocking-panel{position:absolute;z-index:930;left:18px;right:18px;top:18px;bottom:18px;display:none;grid-template-columns:minmax(360px,1.4fr) minmax(270px,.8fr);grid-template-rows:auto auto minmax(240px,1fr) auto;background:rgba(7,14,24,.97);border:1px solid #37506c;border-radius:14px;box-shadow:0 24px 60px #000c;overflow:hidden;backdrop-filter:blur(18px)}.interlocking-panel.open{display:grid}.interlocking-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #24364c;background:#0b1624}.interlocking-head h3{margin:2px 0 0;font-size:17px}.interlocking-head-actions{display:flex;align-items:center;gap:8px}.route-lock-badge{border:1px solid #4a3b25;background:#1d180f;color:#bda36f;padding:5px 8px;border-radius:6px;font-size:8px;font-weight:800;letter-spacing:.5px}.route-lock-badge.active{border-color:#25614e;background:#10251f;color:#62e0ae}.interlocking-close{width:31px;height:31px;border-radius:7px;border:1px solid #334860;background:#111d2b;color:#94a9c0;font-size:20px;cursor:pointer}.interlocking-close:hover{color:#fff;background:#1b2d42}.interlocking-toolbar{grid-column:1/-1;min-height:48px;display:flex;align-items:center;gap:7px;padding:8px 13px;border-bottom:1px solid #1f3044;background:#09131f}.interlocking-toolbar>span{font-size:8px;color:#788ba3;text-transform:uppercase;letter-spacing:1px;margin-right:4px}.mode-select{height:28px;padding:0 10px;border:1px solid #31445b;border-radius:6px;background:#0f1a28;color:#8499af;font-size:8px;font-weight:800;cursor:pointer}.mode-select.active{background:#15365a;border-color:#4779aa;color:#fff}.interlocking-toolbar small{margin-left:auto;max-width:460px;color:#647890;font-size:8px;line-height:1.35}.interlocking-diagram{position:relative;display:grid;place-items:center;min-height:0;padding:12px;border-right:1px solid #203145;background:radial-gradient(circle at 50% 50%,#112137 0,#09131f 67%)}.interlocking-diagram svg{width:100%;height:100%;max-height:420px}.track{stroke:#667589;stroke-width:7;fill:none;stroke-linecap:round}.route-path{stroke:#42d7a0;stroke-width:5;fill:none;stroke-linecap:round;opacity:0;filter:drop-shadow(0 0 5px #42d7a0)}.route-path.active{opacity:1}.platform-box{fill:#17283b;stroke:#60758d;stroke-width:2}.diagram-small{fill:#dce7f4;font-size:10px;font-weight:800}.diagram-label{fill:#8ca0b7;font-size:9px;font-weight:800}.diagram-caption{fill:#6e829b;font-size:9px}.signal-light{stroke:#e9eef5;stroke-width:2;fill:#f05a61}.signal-light.green{fill:#4fe1a9;filter:drop-shadow(0 0 6px #4fe1a9)}.signal-light.yellow{fill:#ffc461;filter:drop-shadow(0 0 5px #ffc461)}.signal-light.red{fill:#f05a61;filter:drop-shadow(0 0 6px #f05a61)}
.interlocking-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-content:start;padding:12px 12px 6px;background:#0a141f}.interlocking-status-grid>div{padding:8px;border:1px solid #26394f;border-radius:7px;background:#0e1b29}.interlocking-status-grid span,.interlocking-status-grid b{display:block}.interlocking-status-grid span{font-size:7px;color:#70849b;text-transform:uppercase;letter-spacing:.7px}.interlocking-status-grid b{font-size:10px;margin-top:3px}.interlocking-status-grid .free{color:#59d7a7}.interlocking-status-grid .occupied{color:#ff8b92}.route-buttons{grid-column:2;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px 12px 10px;background:#0a141f}.route-buttons button{min-height:49px;border:1px solid #2b4057;border-radius:7px;background:#101d2b;color:#8fa2b8;text-align:left;padding:7px 8px;cursor:pointer}.route-buttons button b,.route-buttons button span{display:block}.route-buttons button b{font-size:9px;color:#d1deeb}.route-buttons button span{font-size:7px;color:#697d94;margin-top:3px}.route-buttons button:hover:not(:disabled),.route-buttons button.active{border-color:#3f7a69;background:#123127}.route-buttons button:disabled{opacity:.38;cursor:default}.route-buttons .release-route{grid-column:1/-1}.interlocking-trains{grid-column:1/-1;border-top:1px solid #213247;min-height:104px;background:#08121d}.mini-head{height:31px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;color:#7b8fa7}.mini-head b{font-size:8px;text-transform:uppercase;letter-spacing:.8px}.mini-head span{font-size:9px}.approach-list{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;padding:0 10px 10px}.approach-row{min-height:42px;display:grid;grid-template-columns:27px 1fr auto;gap:7px;align-items:center;border:1px solid #213449;border-radius:7px;background:#0c1825;padding:5px 7px}.approach-row .mini-line{width:24px;height:22px;border-radius:5px;display:grid;place-items:center;font-size:9px;font-weight:850;color:#fff}.approach-row b,.approach-row small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.approach-row b{font-size:8px;color:#c6d4e3}.approach-row small{font-size:7px;color:#687d95;margin-top:2px}.signal-pill{font-size:7px;font-weight:900;border-radius:5px;padding:4px 5px;border:1px solid}.signal-pill.go{color:#5be0ad;border-color:#285f4e;background:#10251f}.signal-pill.stop{color:#ff858c;border-color:#68373b;background:#251519}.interlocking-note{grid-column:1/-1;padding:7px 12px;border-top:1px solid #1d2e40;background:#070f19;color:#526880;font-size:7px;line-height:1.4}
@media(max-width:1500px){.metrics{grid-template-columns:repeat(5,1fr)}}
@media(max-width:1050px){.interlocking-panel{grid-template-columns:1fr;overflow:auto}.interlocking-diagram{border-right:0;min-height:320px}.interlocking-status-grid,.route-buttons{grid-column:1}.approach-list{grid-template-columns:1fr}.interlocking-toolbar{flex-wrap:wrap}.interlocking-toolbar small{width:100%;margin-left:0}}
@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}.interlocking-panel{left:8px;right:8px;top:8px;bottom:8px}.interlocking-head-actions .route-lock-badge{display:none}}

/* v0.6 Alpha – Betriebshöfe & Fahrzeuge */
.metrics{grid-template-columns:repeat(12,1fr)}
.train-marker.vehicle-fault{border-color:#fff;box-shadow:0 0 0 3px #7f2531,0 0 20px #ff6676b8,0 3px 13px #000b;animation:vehicleFaultPulse .9s ease-in-out infinite}
@keyframes vehicleFaultPulse{0%,100%{transform:scale(1);filter:brightness(.86)}50%{transform:scale(1.08);filter:brightness(1.35)}}
.vehicle-fault-callout{margin-top:10px;padding:9px 10px;border:1px solid #7a3440;border-radius:8px;background:#2a151b}.vehicle-fault-callout b,.vehicle-fault-callout span{display:block}.vehicle-fault-callout b{font-size:10px;color:#ff919a}.vehicle-fault-callout span{margin-top:3px;font-size:8px;color:#bc8a90;line-height:1.45}
.depot-marker{width:30px;height:30px;border-radius:9px;border:1px solid #90b9de;background:#14283d;color:#e6f2ff;display:grid;place-items:center;font-size:14px;box-shadow:0 5px 15px #000b,0 0 0 3px #2f78aa33;cursor:pointer}.depot-marker:hover{background:#1c3c5b;transform:scale(1.08)}
.fleet-panel{position:absolute;z-index:935;left:18px;right:18px;top:18px;bottom:18px;display:none;grid-template-rows:auto auto minmax(0,1fr) auto;background:rgba(7,14,24,.98);border:1px solid #37506c;border-radius:14px;box-shadow:0 24px 60px #000c;overflow:hidden;backdrop-filter:blur(18px)}.fleet-panel.open{display:grid}.fleet-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #24364c;background:#0b1624}.fleet-head h3{margin:2px 0 0;font-size:17px}.fleet-head-actions{display:flex;align-items:center;gap:8px}.fleet-toolbar{padding:9px 14px;border-bottom:1px solid #1d2e41;background:#09131f;color:#71859d;font-size:9px;line-height:1.45}.fleet-body{overflow:auto;padding:12px}.fleet-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:10px}.fleet-kpis>div{padding:10px;border:1px solid #26394f;border-radius:8px;background:#0d1927}.fleet-kpis span,.fleet-kpis b{display:block}.fleet-kpis span{font-size:7px;color:#6f839b;text-transform:uppercase;letter-spacing:.7px}.fleet-kpis b{margin-top:4px;font-size:17px;color:#dce8f5}.depot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.depot-card{border:1px solid #26394f;border-radius:10px;background:linear-gradient(145deg,#101c2b,#0b1520);padding:11px;transition:.2s}.depot-card.focused{border-color:#4b83b4;box-shadow:0 0 0 2px #2d68963b}.depot-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.depot-card-head span{display:block;font-size:7px;color:#667b94;letter-spacing:.8px}.depot-card-head h4{margin:3px 0 0;font-size:12px;color:#e5edf7}.depot-card-head>b{font-size:9px;color:#6fe1b5;border:1px solid #285e4d;background:#10251f;border-radius:999px;padding:4px 7px;white-space:nowrap}.depot-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:9px}.depot-stats>div{padding:7px;border-radius:7px;background:#08131f}.depot-stats span,.depot-stats b{display:block}.depot-stats span{font-size:7px;color:#61758d;text-transform:uppercase}.depot-stats b{margin-top:3px;font-size:10px;color:#bccbdd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.depot-dispatch{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:9px}.depot-dispatch select,.depot-dispatch button{height:30px;border:1px solid #2e435b;border-radius:7px;background:#0d1a28;color:#a9bbce;font-size:8px}.depot-dispatch select{padding:0 8px}.depot-dispatch button{padding:0 10px;cursor:pointer;background:#133350;color:#d9ebff}.depot-dispatch button:hover:not(:disabled){background:#1a4770}.depot-dispatch button:disabled{opacity:.35;cursor:default}.workshop-mini{margin-top:8px;border-top:1px solid #1e2e40;padding-top:7px;display:grid;gap:4px}.workshop-mini span{font-size:7px;color:#7f92aa;line-height:1.35}.workshop-mini b{color:#c6d5e5}.workshop-mini.empty{font-size:7px;color:#53677f}.fleet-section-title{margin:13px 2px 7px;color:#8194aa;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:1px}.fleet-defects{display:grid;gap:6px}.fleet-defect-row{min-height:47px;display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:8px;border:1px solid #54313a;border-radius:8px;background:#211219;padding:6px 8px}.fleet-defect-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:#391c24}.fleet-defect-row b,.fleet-defect-row small{display:block}.fleet-defect-row b{font-size:9px;color:#ffd8da}.fleet-defect-row small{margin-top:3px;font-size:7px;color:#a77d82}.fleet-defect-row button{height:27px;border:1px solid #60414a;border-radius:6px;background:#2a1820;color:#e9b7bd;font-size:8px;cursor:pointer}.fleet-empty{padding:14px;border:1px dashed #2b3e53;border-radius:8px;color:#60758d;font-size:9px;text-align:center}.vehicle-head{margin-top:2px}.vehicle-defect-list{padding-bottom:12px}.vehicle-defect-card{border-left-color:#df5e6b}.empty-state.compact{margin:8px 12px;padding:10px}.empty-state.compact strong{font-size:10px}.empty-state.compact span{font-size:8px}
@media(max-width:1500px){.metrics{grid-template-columns:repeat(6,1fr)}.center-stage{grid-template-rows:minmax(0,1fr) 122px 118px}}
@media(max-width:1050px){.fleet-panel{left:8px;right:8px;top:8px;bottom:8px}.depot-grid{grid-template-columns:1fr}.fleet-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}.fleet-head-actions .route-lock-badge{display:none}.map-legend{max-width:calc(100% - 24px);overflow:auto}}

/* v0.7 Alpha – Schichten, Szenarien & Fortschritt */
.shift-launch{border-color:#705b2d!important;background:#2a2110!important;color:#ffd982!important}.shift-launch:hover,.shift-launch.active{background:#4a3712!important;border-color:#aa8331!important;color:#fff3c4!important}
.scenario-panel{position:absolute;z-index:945;left:18px;right:18px;top:18px;bottom:18px;display:none;grid-template-rows:auto auto minmax(0,1fr) auto;background:rgba(7,14,24,.985);border:1px solid #5d4d2e;border-radius:14px;box-shadow:0 24px 60px #000d;overflow:hidden;backdrop-filter:blur(18px)}.scenario-panel.open{display:grid}.scenario-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #3a3425;background:#12170f}.scenario-head h3{margin:2px 0 0;font-size:17px}.scenario-head-actions{display:flex;align-items:center;gap:8px}.scenario-intro{padding:10px 14px;border-bottom:1px solid #2c2d27;background:#0d151a;display:flex;flex-direction:column;gap:3px}.scenario-intro b{font-size:10px;color:#e6edf5}.scenario-intro span{font-size:8px;line-height:1.45;color:#72869d}.scenario-body{overflow:auto;padding:12px}.career-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:11px}.career-summary>div{padding:10px;border:1px solid #2c3d51;border-radius:8px;background:#0d1926}.career-summary span,.career-summary b{display:block}.career-summary span{font-size:7px;color:#6c8097;text-transform:uppercase;letter-spacing:.7px}.career-summary b{margin-top:4px;font-size:17px;color:#dfe8f3}.scenario-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.scenario-card{border:1px solid #2b3d52;border-radius:10px;background:linear-gradient(145deg,#101c2a,#0a141f);padding:11px;display:flex;flex-direction:column;min-height:190px}.scenario-card.featured{border-color:#635128;background:linear-gradient(145deg,#211d10,#0b151f)}.scenario-card-head{display:flex;gap:9px;align-items:flex-start}.scenario-icon{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:#152538;border:1px solid #304966;font-size:18px;flex:0 0 auto}.scenario-card.featured .scenario-icon{background:#2d2511;border-color:#715b29}.scenario-card-head h4{margin:1px 0 0;font-size:12px;color:#edf3fb}.scenario-card-head p{margin:3px 0 0;font-size:8px;color:#74889f;line-height:1.4}.scenario-best{margin-left:auto;min-width:65px;text-align:right}.scenario-best span,.scenario-best b{display:block}.scenario-best span{font-size:7px;color:#63778f;text-transform:uppercase}.scenario-best b{font-size:12px;color:#ffd074;margin-top:3px}.scenario-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.scenario-meta span{padding:4px 6px;border:1px solid #263a50;border-radius:999px;background:#0a151f;color:#7790a8;font-size:7px}.scenario-objectives{display:grid;gap:4px;margin-top:9px}.scenario-objectives span{font-size:8px;color:#95a7ba}.scenario-card button{height:31px;margin-top:auto;border:1px solid #385a78;border-radius:7px;background:#123252;color:#dceeff;font-size:9px;font-weight:800;cursor:pointer}.scenario-card button:hover{background:#1a4770}.scenario-card.featured button{border-color:#7d642b;background:#392d12;color:#ffe3a0}.scenario-card.featured button:hover{background:#594416}.scenario-footer{display:flex;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid #26364a;background:#08111b}.scenario-footer button{height:30px;border:1px solid #334a62;border-radius:7px;background:#101f2e;color:#b7c8da;padding:0 12px;font-size:8px;cursor:pointer}.scenario-footer span{font-size:7px;color:#566a81}.scenario-progress-line{margin-top:8px;height:5px;border-radius:999px;background:#09131d;overflow:hidden}.scenario-progress-line i{display:block;height:100%;background:linear-gradient(90deg,#3b7dde,#66dcae);border-radius:999px}
.shift-hud{position:absolute;z-index:820;left:12px;bottom:12px;display:none;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:8px 9px;border:1px solid #63532f;border-radius:9px;background:#101711ed;box-shadow:0 10px 26px #0009;backdrop-filter:blur(10px)}.shift-hud.active{display:flex}.shift-hud-title{min-width:135px}.shift-hud-title span,.shift-hud-title b{display:block}.shift-hud-title span{font-size:7px;letter-spacing:1px;color:#8a7c57}.shift-hud-title b{font-size:10px;color:#f2ead5;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shift-hud-time{padding-left:9px;border-left:1px solid #423b29;min-width:67px}.shift-hud-time span,.shift-hud-time b{display:block}.shift-hud-time span{font-size:7px;color:#82765a;text-transform:uppercase}.shift-hud-time b{font-size:13px;color:#ffd778;font-variant-numeric:tabular-nums}.shift-objective-hud{display:flex;gap:5px;min-width:0;overflow:auto}.shift-obj-pill{padding:5px 7px;border:1px solid #314354;border-radius:6px;background:#0c1720;min-width:92px}.shift-obj-pill span,.shift-obj-pill b{display:block;white-space:nowrap}.shift-obj-pill span{font-size:6px;color:#677b90;text-transform:uppercase}.shift-obj-pill b{margin-top:2px;font-size:8px;color:#aebdcb}.shift-obj-pill.ok{border-color:#285746;background:#0e211b}.shift-obj-pill.ok b{color:#65dcae}.shift-obj-pill.bad{border-color:#63383c;background:#251519}.shift-obj-pill.bad b{color:#ff858c}.shift-end-btn{height:31px;border:1px solid #5d4932;border-radius:7px;background:#2a2115;color:#d6b981;font-size:8px;padding:0 9px;cursor:pointer;white-space:nowrap}.shift-end-btn:hover{background:#49351a}
.shift-report{position:absolute;z-index:980;inset:0;display:none;place-items:center;padding:18px;background:#02070dbd;backdrop-filter:blur(10px)}.shift-report.open{display:grid}.shift-report-card{width:min(760px,100%);max-height:100%;overflow:auto;border:1px solid #4d5660;border-radius:14px;background:#09131f;box-shadow:0 30px 80px #000e}.shift-report-head{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-bottom:1px solid #263648;background:#0d1825}.shift-report-head h2{margin:2px 0 0;font-size:18px}.report-score{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:15px;border-bottom:1px solid #203044}.score-dial{width:130px;height:130px;border-radius:50%;display:grid;place-items:center;margin:auto;background:conic-gradient(#59d7a7 var(--score),#152232 0);position:relative}.score-dial:after{content:"";position:absolute;inset:12px;border-radius:50%;background:#09131f}.score-dial div{position:relative;z-index:1;text-align:center}.score-dial b,.score-dial span{display:block}.score-dial b{font-size:31px;color:#eef5fb}.score-dial span{font-size:8px;color:#70859c;text-transform:uppercase;letter-spacing:.8px}.score-copy{display:flex;flex-direction:column;justify-content:center}.score-copy h3{font-size:15px;margin:0;color:#eaf1f8}.score-copy p{font-size:9px;line-height:1.55;color:#788ca4;margin:6px 0 0}.score-copy .xp-gain{display:inline-flex;align-self:flex-start;margin-top:8px;padding:5px 8px;border:1px solid #685729;border-radius:999px;background:#241e10;color:#ffd576;font-size:8px;font-weight:800}.report-objectives{padding:12px 15px;border-bottom:1px solid #203044;display:grid;gap:6px}.report-objective{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:8px;border:1px solid #27394e;border-radius:8px;background:#0b1723}.report-objective>span:first-child{font-size:15px}.report-objective b,.report-objective small{display:block}.report-objective b{font-size:9px;color:#c7d4e1}.report-objective small{font-size:7px;color:#667b92;margin-top:2px}.report-objective>strong{font-size:9px}.report-objective.ok>strong{color:#5ed9aa}.report-objective.fail>strong{color:#ff8188}.report-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:12px 15px}.report-stat{padding:9px;border:1px solid #26384c;border-radius:8px;background:#0c1723}.report-stat span,.report-stat b{display:block}.report-stat span{font-size:7px;color:#687d95;text-transform:uppercase}.report-stat b{margin-top:4px;font-size:15px;color:#dce6f1}.report-actions{display:flex;justify-content:flex-end;gap:7px;padding:11px 15px;border-top:1px solid #203044;background:#08111b}.report-actions button{height:32px;border:1px solid #30465e;border-radius:7px;background:#102238;color:#bcd0e4;padding:0 11px;font-size:8px;font-weight:800;cursor:pointer}.report-actions button:hover{background:#183b60}.report-actions button:first-child{border-color:#6d5829;background:#332813;color:#ffe09a}
@media(max-width:1200px){.scenario-grid{grid-template-columns:1fr}.shift-objective-hud .shift-obj-pill:nth-child(n+3){display:none}.report-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.scenario-panel{left:8px;right:8px;top:8px;bottom:8px}.career-summary{grid-template-columns:repeat(2,1fr)}.shift-hud{right:8px;left:8px;bottom:8px}.shift-hud-title{min-width:100px}.shift-objective-hud{display:none}.shift-report{padding:8px}.report-score{grid-template-columns:1fr}.report-stats{grid-template-columns:repeat(2,1fr)}.report-actions{flex-wrap:wrap}.map-legend .shift-launch{display:inline-flex}}

/* v0.8 · Cloud-Konto, D1-Spielstand & Bestenlisten */
.cloud-top-btn{height:38px;border:1px solid rgba(117,174,229,.24);background:#101d2d;color:#d9e9f7;border-radius:9px;padding:0 11px;display:flex;align-items:center;gap:7px;cursor:pointer;font:inherit;transition:.15s ease}.cloud-top-btn:hover{border-color:#4bb7ec;background:#14283e}.cloud-top-btn.online{border-color:rgba(63,210,151,.5);background:rgba(24,105,79,.22)}.cloud-top-btn.problem{border-color:rgba(244,180,64,.45)}.cloud-top-btn span{font-size:15px}.cloud-top-btn b{font-size:11px;letter-spacing:.04em;white-space:nowrap}.leaderboard-top{background:#151b2b}
.cloud-overlay{position:absolute;inset:0;z-index:1500;background:rgba(2,8,15,.76);backdrop-filter:blur(7px);display:none;align-items:center;justify-content:center;padding:22px}.cloud-overlay.open{display:flex}.cloud-card{width:min(760px,96vw);max-height:min(760px,92vh);overflow:auto;background:linear-gradient(180deg,#0e1b2a,#09131f);border:1px solid rgba(125,180,226,.23);box-shadow:0 24px 90px rgba(0,0,0,.58);border-radius:16px}.leaderboard-card{width:min(850px,96vw)}.cloud-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:20px 22px;border-bottom:1px solid rgba(120,170,210,.16);background:rgba(10,21,34,.96);backdrop-filter:blur(8px)}.cloud-head h2{margin:3px 0 0;font-size:20px}.cloud-body{padding:22px}.cloud-loading{padding:34px;text-align:center;color:#8ea9bf}.cloud-auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cloud-auth-box,.cloud-profile-card,.cloud-save-card{background:#101f30;border:1px solid rgba(119,169,211,.16);border-radius:13px;padding:18px}.cloud-auth-box h3,.cloud-profile-card h3,.cloud-save-card h3{margin:0 0 7px}.cloud-auth-box p,.cloud-save-card p,.cloud-profile-card p{margin:0 0 15px;color:#90a9bd;font-size:12px;line-height:1.5}.cloud-form{display:grid;gap:10px}.cloud-form label{display:grid;gap:5px;color:#9cb2c5;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.cloud-form input{height:39px;border:1px solid rgba(130,178,217,.2);background:#08131f;color:#e7f4ff;border-radius:8px;padding:0 11px;outline:none}.cloud-form input:focus{border-color:#4bb7ec}.cloud-primary,.cloud-secondary,.leaderboard-toolbar button{border:0;border-radius:8px;min-height:39px;padding:0 13px;cursor:pointer;font-weight:750}.cloud-primary{background:#1e9bd5;color:white}.cloud-primary:hover{background:#26aae6}.cloud-secondary{background:#172a3d;color:#d7e8f5;border:1px solid rgba(125,175,215,.19)}.cloud-secondary:hover{background:#1d354d}.cloud-danger{background:rgba(185,61,67,.16)!important;border-color:rgba(231,88,95,.35)!important;color:#ff9da3!important}.cloud-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.cloud-actions button{flex:1 1 160px}.cloud-message{margin-top:10px;padding:9px 11px;border-radius:8px;font-size:12px;display:none}.cloud-message.show{display:block}.cloud-message.error{background:rgba(199,62,70,.14);color:#ffadb2;border:1px solid rgba(226,85,93,.23)}.cloud-message.ok{background:rgba(54,175,126,.12);color:#9be8c8;border:1px solid rgba(71,196,144,.22)}.cloud-profile-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.cloud-avatar{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,#1d83b8,#1bb889);display:grid;place-items:center;font-size:20px;font-weight:900;color:white}.cloud-user-copy{flex:1}.cloud-user-copy span{font-size:11px;color:#7894a9}.cloud-user-copy b{display:block;font-size:18px}.cloud-online-pill{font-size:10px;color:#8de3bd;border:1px solid rgba(65,204,145,.3);background:rgba(39,168,113,.1);padding:5px 8px;border-radius:99px}.cloud-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.cloud-kpis div{background:#0a1724;border-radius:9px;padding:10px}.cloud-kpis span{display:block;color:#7f9aae;font-size:10px}.cloud-kpis b{font-size:15px}.cloud-save-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.cloud-save-state{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:9px;background:#0a1724}.cloud-save-state span{font-size:11px;color:#87a2b7}.cloud-save-state b{font-size:12px}.cloud-privacy-note{padding:12px 20px 19px;color:#708da3;font-size:11px;line-height:1.5}.cloud-sync-line{margin-top:12px;font-size:11px;color:#7591a7}.leaderboard-toolbar{display:flex;align-items:center;gap:10px;padding:16px 21px;border-bottom:1px solid rgba(120,170,210,.12)}.leaderboard-toolbar label{font-size:11px;color:#8ba4b7}.leaderboard-toolbar select{flex:1;max-width:310px;height:38px;background:#0a1724;color:#dceaf5;border:1px solid rgba(125,174,213,.2);border-radius:8px;padding:0 10px}.leaderboard-toolbar button{background:#18314a;color:#d8ebf8}.leaderboard-body{padding:12px 20px 4px}.leaderboard-table{width:100%;border-collapse:collapse}.leaderboard-table th{color:#6f8da4;text-transform:uppercase;letter-spacing:.07em;font-size:10px;text-align:left;padding:8px 10px;border-bottom:1px solid rgba(130,180,219,.13)}.leaderboard-table td{padding:11px 10px;border-bottom:1px solid rgba(130,180,219,.08);font-size:12px}.leaderboard-table tr.me td{background:rgba(35,156,210,.08)}.leaderboard-rank{font-weight:900;color:#9ec7df;width:52px}.leaderboard-name{font-weight:750}.leaderboard-score{font-size:14px;font-weight:900;color:#eaf7ff}.leaderboard-empty{padding:35px;text-align:center;color:#819caf}.cloud-api-warning{padding:13px;border-radius:10px;background:rgba(244,176,65,.1);border:1px solid rgba(244,176,65,.23);color:#efc57b;font-size:12px;line-height:1.5}.cloud-api-warning code{background:#07121d;padding:2px 5px;border-radius:4px}.cloud-button-busy{opacity:.6;pointer-events:none}.cloud-save-flash{animation:cloudPulse .8s ease}@keyframes cloudPulse{50%{box-shadow:0 0 0 3px rgba(38,168,223,.16)}}
@media (max-width:1050px){.cloud-top-btn b{display:none}.cloud-top-btn{width:38px;justify-content:center;padding:0}.cloud-kpis{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.cloud-overlay{padding:8px}.cloud-card{max-height:95vh;border-radius:12px}.cloud-auth-grid,.cloud-save-grid{grid-template-columns:1fr}.cloud-head{padding:15px}.cloud-body{padding:14px}.leaderboard-toolbar{align-items:stretch;flex-direction:column}.leaderboard-toolbar select{max-width:none;width:100%}.leaderboard-table th:nth-child(4),.leaderboard-table td:nth-child(4){display:none}}

/* v0.9 Multiplayer Beta */
.multiplayer-top.online{border-color:#39d99c;background:linear-gradient(180deg,#153c39,#0c2b2b);box-shadow:0 0 0 1px rgba(57,217,156,.12),0 0 16px rgba(57,217,156,.12)}
.multiplayer-top.problem{border-color:#d5a13a;background:#34280f}.multiplayer-card{max-width:860px}.mp-start-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.cloud-form select{height:41px;width:100%;border:1px solid rgba(125,174,213,.2);border-radius:8px;background:#081522;color:#e4f1fa;padding:0 10px}.mp-role-hint{display:block;min-height:34px;color:#7491a7;font-size:10px;line-height:1.45;margin-top:-3px}.mp-room-hero{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 17px;border:1px solid rgba(44,200,159,.22);background:linear-gradient(135deg,rgba(22,91,91,.26),rgba(16,49,73,.3));border-radius:12px}.mp-room-hero>div{display:grid;grid-template-columns:auto auto;align-items:end;gap:2px 13px}.mp-room-hero span{font-size:10px;letter-spacing:.12em;color:#75a5aa}.mp-room-hero b{grid-row:2;font-size:30px;letter-spacing:.18em;color:#dffefa}.mp-room-hero small{grid-row:2;color:#69d8ad;font-weight:800;font-size:11px;padding-bottom:5px}.mp-room-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin-top:14px}.mp-host-state{font-size:10px;color:#d4a658;margin-bottom:9px}.mp-host-state.online{color:#72deb4}.mp-members{display:flex;flex-direction:column;gap:7px}.mp-member{display:grid;grid-template-columns:18px 1fr auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid rgba(116,167,204,.12);background:#091724;border-radius:9px}.mp-member.host{border-color:rgba(70,214,162,.25);background:rgba(25,82,70,.16)}.mp-member-dot{color:#49d7a1;font-size:11px}.mp-member div b,.mp-member div span{display:block}.mp-member div b{font-size:11px}.mp-member div span{font-size:9px;color:#7590a4;margin-top:2px}.mp-member em{font-size:9px;color:#6d8ca2;font-style:normal}.mp-activity-card{margin-top:14px;padding:14px;border-radius:11px;border:1px solid rgba(120,170,210,.12);background:#07131f}.mp-activity-card h3{margin:0 0 9px;font-size:12px}.mp-activity-list{max-height:180px;overflow:auto;display:flex;flex-direction:column;gap:5px}.mp-activity{display:grid;grid-template-columns:45px 1fr;gap:8px;padding:6px 8px;background:#0a1927;border-radius:6px}.mp-activity time{font-size:9px;color:#66859b}.mp-activity span{font-size:10px;color:#a9c0d1}.mp-live-lock{opacity:.55;pointer-events:none}
@media(max-width:700px){.mp-start-grid,.mp-room-grid{grid-template-columns:1fr}.mp-room-hero>div{grid-template-columns:1fr}.mp-room-hero b,.mp-room-hero small{grid-row:auto}.mp-room-hero{align-items:flex-start}.mp-room-hero b{font-size:25px}}

/* v0.9.1 Rollenrechte */
.mp-role-locked{opacity:.38!important;filter:saturate(.45);cursor:not-allowed!important}.mp-member-admin{display:flex;align-items:center;gap:5px}.mp-member-admin select{max-width:150px;height:28px;border:1px solid rgba(116,167,204,.2);border-radius:7px;background:#07131f;color:#cde0ee;font-size:9px;padding:0 6px}.mp-member-admin button{width:28px;height:28px;border:1px solid rgba(239,99,115,.28);border-radius:7px;background:rgba(112,26,39,.2);color:#ff9ba7;font-size:16px;font-weight:800}.mp-admin-note{margin-top:9px;padding:8px 9px;border-radius:8px;background:rgba(35,102,136,.12);border:1px solid rgba(90,168,206,.13);font-size:9px;line-height:1.45;color:#7e9fb5}.mp-permission-box{margin:10px 0 12px;padding:9px 10px;border-radius:9px;background:#081827;border:1px solid rgba(83,170,209,.13)}.mp-permission-box span,.mp-permission-box b{display:block}.mp-permission-box span{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#6d91a8}.mp-permission-box b{font-size:10px;line-height:1.45;color:#bdd4e3;margin-top:3px}.mp-member:has(.mp-member-admin){grid-template-columns:18px 1fr auto}@media(max-width:700px){.mp-member-admin{grid-column:2/4;justify-content:flex-start}.mp-member-admin select{max-width:none;flex:1}}
/* v0.9.2 Stable Multiplayer */
.mp-stability-strip{display:flex;flex-wrap:wrap;gap:7px 14px;margin-top:9px;padding:8px 11px;border:1px solid rgba(84,167,202,.12);border-radius:9px;background:rgba(6,21,33,.72);font-size:9px;color:#7fa2b8}
.mp-stability-strip span:first-child{color:#70ddb2;font-weight:800}
.multiplayer-top.online{box-shadow:0 0 0 1px rgba(55,216,163,.16) inset}
@media(max-width:700px){.mp-stability-strip{display:grid;grid-template-columns:1fr}}


/* v0.11 Website Redesign + Ultra Smooth Motion */
.site-back-link{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:8px 10px;border:1px solid #24435f;border-radius:10px;background:#0c1b2d;color:#9fc0db;font-size:12px;font-weight:800;text-decoration:none;white-space:nowrap}.site-back-link:hover{color:#fff;border-color:#3b6e91}.route-data-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:9px;border:1px solid #314d67;background:#112239;color:#9fb5cb;font-size:10px;font-weight:800;white-space:nowrap}.route-data-badge.loading{color:#f1c56d;border-color:#72552b}.route-data-badge.ready{color:#65e3b2;border-color:#28684e;background:#0d2a24}.route-data-badge.fallback{color:#f4b96d;border-color:#75502a;background:#2c2015}.train-marker{will-change:transform;transform:translateZ(0)}
@media(max-width:1180px){.site-back-link{display:none}}
/* v0.11 Website Redesign + Ultra Smooth Motion */
.brand-logo{width:62px;height:48px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 4px 12px rgba(0,0,0,.55)) drop-shadow(0 0 12px rgba(25,194,234,.14))}.brand strong{font-family:"Arial Narrow",Impact,Haettenschweiler,sans-serif;font-style:italic;text-transform:uppercase;font-size:18px;letter-spacing:.2px}.brand span{color:#6f8a96}.topbar{background:linear-gradient(180deg,rgba(4,11,15,.99),rgba(5,14,19,.98));border-bottom-color:#123544}.site-back-link{border-radius:2px;border-color:#164052;background:#07171e;color:#79b7c6}.site-back-link:hover{border-color:#1ac2e9;color:#fff}.train-marker-shell{will-change:transform!important;backface-visibility:hidden;transform:translate3d(0,0,0)}.train-marker{will-change:transform,box-shadow;backface-visibility:hidden;transform:translateZ(0)}
@media(max-width:900px){.brand-logo{width:50px;height:40px}.brand strong{font-size:16px}}

/* =========================================================
   v0.12 · Game UI Redesign — Nyvaro cyan control-room theme
   ========================================================= */
:root{
  --cyan:#18c8f2;
  --cyan2:#0aa7d2;
  --cyanSoft:rgba(24,200,242,.14);
  --cyanLine:rgba(52,202,235,.24);
  --ink:#03090c;
  --panel:#071217;
  --panel2:#091b22;
  --panel3:#0b2630;
  --text:#dcebf0;
  --muted:#6f8993;
  --border:rgba(65,170,195,.17);
  --good:#58e0b0;
  --warn:#ffc45e;
  --bad:#ff6875;
}
html,body{background:#03080b;color:var(--text)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;background:linear-gradient(rgba(37,159,188,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(37,159,188,.018) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent 72%)}
.app{grid-template-rows:76px 1fr 28px;background:radial-gradient(circle at 50% -10%,#0b3440 0,#051116 34%,#03090c 67%,#020608 100%);position:relative}.app:before{content:"";position:absolute;inset:76px 0 28px;pointer-events:none;background:radial-gradient(circle at 50% 0,rgba(21,188,226,.045),transparent 35%);z-index:0}.app>*{position:relative;z-index:1}
.topbar{height:76px;padding:0 18px;background:linear-gradient(180deg,rgba(4,12,16,.985),rgba(3,10,13,.97));border-bottom:1px solid rgba(34,188,222,.22);box-shadow:0 12px 35px rgba(0,0,0,.32),0 1px 0 rgba(38,205,241,.05) inset;backdrop-filter:blur(18px)}
.brand{min-width:292px;gap:12px}.brand-logo{width:84px;height:60px;filter:drop-shadow(0 10px 16px rgba(0,0,0,.52)) drop-shadow(0 0 16px rgba(24,200,242,.18))}.brand strong{font-size:20px;letter-spacing:.35px;color:#f1fbfd;text-shadow:0 0 18px rgba(24,200,242,.12)}.brand span{color:#4f7d89;letter-spacing:1.45px;font-size:9px}.site-back-link{height:37px;border-radius:2px;border:1px solid rgba(56,178,205,.22);background:linear-gradient(180deg,#07171d,#051015);color:#7eb8c7;text-transform:uppercase;letter-spacing:.08em;font-size:9px}.site-back-link:hover{border-color:var(--cyan);background:#08242c;color:#dffaff;box-shadow:0 0 18px rgba(24,200,242,.1)}
.statusbar{gap:6px}.network-status,.ctrl,.difficulty,.cloud-top-btn{height:38px;border-radius:2px!important;border-color:rgba(70,170,194,.18)!important;background:linear-gradient(180deg,rgba(10,27,34,.95),rgba(5,16,21,.96))!important;color:#90aeb8;box-shadow:none}.network-status{border-left:2px solid var(--good)!important;padding-inline:12px;background:linear-gradient(90deg,rgba(19,78,65,.3),rgba(5,16,21,.95))!important}.network-status.warn{border-left-color:var(--warn)!important}.network-status.bad{border-left-color:var(--bad)!important}.ctrl:hover,.ctrl.active,.cloud-top-btn:hover{border-color:rgba(24,200,242,.7)!important;color:#e8fbff;background:linear-gradient(180deg,#0b3b49,#08222b)!important;box-shadow:0 0 18px rgba(24,200,242,.1)}.ctrl.active{color:#031116!important;background:var(--cyan)!important;border-color:var(--cyan)!important;font-weight:900}.clock{border-left-color:rgba(75,176,200,.18);min-width:112px}.clock b{font-size:17px;color:#f0fbfd;letter-spacing:.04em}.clock span{color:#4e7782;letter-spacing:.12em}.difficulty{color:#8eaab3;padding-inline:11px}.cloud-top-btn.online,.multiplayer-top.online{border-color:rgba(79,220,169,.55)!important;background:linear-gradient(180deg,rgba(22,83,67,.68),rgba(9,42,35,.86))!important;color:#c8f8e4}.leaderboard-top{border-left:2px solid #dfad3a!important}
.workspace{grid-template-columns:300px minmax(560px,1fr) 356px;background:#030a0d}.sidebar{background:linear-gradient(180deg,rgba(5,17,22,.98),rgba(4,12,16,.995))}.left-panel{border-right:1px solid rgba(48,173,202,.17)}.right-panel{border-left:1px solid rgba(48,173,202,.17)}.panel-heading{height:72px;padding:12px 16px;background:linear-gradient(180deg,rgba(7,24,30,.98),rgba(5,17,22,.95));border-bottom:1px solid rgba(56,174,200,.14);box-shadow:0 10px 24px rgba(0,0,0,.14)}.panel-heading:after{content:"";position:absolute;left:0;bottom:-1px;width:62px;height:2px;background:linear-gradient(90deg,var(--cyan),transparent);box-shadow:0 0 12px rgba(24,200,242,.36)}.panel-heading h2{font-size:15px;text-transform:uppercase;font-style:italic;letter-spacing:.025em}.eyebrow{color:#4a7e8a;letter-spacing:1.8px}.tiny-btn{border-radius:2px;background:#071a21;border-color:rgba(57,165,190,.2);text-transform:uppercase;letter-spacing:.08em}.tiny-btn:hover{border-color:var(--cyan);background:#0b2a34;color:#e6fbff}.search-wrap{padding:11px 10px 5px}.search-wrap input{height:39px;border-radius:2px;background:#040d11;border-color:rgba(67,170,194,.18);color:#d9edf2;padding-inline:12px}.search-wrap input:focus{border-color:rgba(24,200,242,.72);box-shadow:inset 3px 0 0 var(--cyan),0 0 0 1px rgba(24,200,242,.06)}
.line-list{padding:6px 9px}.line-row{position:relative;border-radius:2px;margin-bottom:5px;padding:9px 9px;background:linear-gradient(90deg,rgba(7,22,28,.78),rgba(5,15,19,.5));border:1px solid transparent;overflow:hidden}.line-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:transparent}.line-row:hover,.line-row.active{background:linear-gradient(90deg,rgba(9,45,55,.92),rgba(5,20,25,.78));border-color:rgba(46,170,199,.15)}.line-row:hover:before,.line-row.active:before{background:var(--cyan);box-shadow:0 0 11px rgba(24,200,242,.45)}.line-row:not(.active){opacity:.48}.line-chip{border-radius:2px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25),0 5px 13px rgba(0,0,0,.26)}.line-dest b{color:#d7e8ed}.line-dest small,.line-kpi small{color:#577985}.data-note{border-radius:2px;border-color:rgba(56,163,188,.14);background:linear-gradient(135deg,rgba(8,30,37,.82),rgba(5,16,21,.86));color:#668893;border-left:2px solid rgba(24,200,242,.6)}.data-note b{color:#a9c9d1;text-transform:uppercase;letter-spacing:.04em}
.center-stage{grid-template-rows:minmax(0,1fr) 72px 120px;background:#040b0f}.map-wrap{background:#030a0d;border-bottom:1px solid rgba(42,163,192,.12)}.map{background:#081014}.leaflet-container{background:#071015}.leaflet-tile-pane{filter:saturate(.12) brightness(.43) contrast(1.32) hue-rotate(155deg)}.map-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:499;background:linear-gradient(180deg,rgba(13,170,204,.035),transparent 18%,transparent 78%,rgba(5,25,31,.12));box-shadow:inset 0 0 65px rgba(0,0,0,.28)}.map-badge{top:13px;left:13px;border-radius:2px;padding:8px 12px;background:rgba(4,16,21,.91);border:1px solid rgba(51,178,206,.22);border-left:2px solid var(--cyan);box-shadow:0 12px 34px rgba(0,0,0,.23);backdrop-filter:blur(10px)}.map-badge b{color:#dff8fd;font-size:11px}.map-badge span{color:#527985}.map-legend{top:13px;right:13px;border-radius:2px;padding:7px;background:rgba(4,15,20,.9);border-color:rgba(53,168,194,.18);box-shadow:0 12px 34px rgba(0,0,0,.22);backdrop-filter:blur(10px)}.map-mode-btn{height:26px;border-radius:2px;border-color:rgba(71,174,199,.22);background:#071b22;color:#799aa4;text-transform:uppercase;letter-spacing:.035em}.map-mode-btn:hover,.map-mode-btn.active,.map-mode-btn.primary{background:linear-gradient(180deg,#0b4556,#092a34);border-color:rgba(24,200,242,.65);color:#e2f9fd}.map-mode-btn.primary{box-shadow:inset 0 -2px 0 rgba(24,200,242,.18)}.route-data-badge{border-radius:2px;background:#071b22;border-color:rgba(61,168,193,.2);color:#7097a1}.route-data-badge.ready{background:#092920;border-color:rgba(72,219,164,.32);color:#84e9c1}.leaflet-control-zoom a{background:#07171d!important;color:#9dc7d1!important;border-color:#17404c!important;border-radius:0!important}.leaflet-control-attribution{background:#051116d9!important;color:#53727b!important}.station-marker{background:#062631;border-color:#b7edf7;box-shadow:0 0 0 2px rgba(5,19,25,.8),0 0 12px rgba(24,200,242,.26)}.station-marker.hub{background:#0a6379;box-shadow:0 0 0 2px rgba(5,19,25,.85),0 0 17px rgba(24,200,242,.42)}.train-marker{border-radius:3px;border-width:1px;box-shadow:0 7px 18px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.28) inset;transition:box-shadow .2s ease,filter .2s ease}.train-marker:hover,.train-marker.selected{filter:brightness(1.13);box-shadow:0 7px 22px rgba(0,0,0,.65),0 0 17px rgba(24,200,242,.32)}.leaflet-tooltip.stop-tooltip{border-radius:2px;background:#05151b;border-color:rgba(54,176,202,.35);color:#d7eef3}
.metrics{background:linear-gradient(180deg,#061319,#040c10);border-color:rgba(51,165,191,.14);box-shadow:0 -10px 30px rgba(0,0,0,.18)}.metric{position:relative;border-right-color:rgba(48,158,183,.12);padding-inline:15px}.metric:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:1px;background:linear-gradient(transparent,rgba(24,200,242,.16),transparent)}.metric span{color:#4d7781;letter-spacing:1px}.metric b{font-size:20px;color:#e6f5f8}.metric.warning b{color:#ffca63;text-shadow:0 0 16px rgba(255,196,94,.12)}.metric.danger b{color:#ff7e88;text-shadow:0 0 16px rgba(255,104,117,.13)}.log-panel{background:#030a0e}.log-head{border-bottom-color:rgba(48,158,183,.12);color:#4f747f}.log-head b{color:#83aeb8;letter-spacing:1.1px}.log-row{border-bottom-color:rgba(47,147,170,.075);color:#68858e}.log-row:hover{background:rgba(17,75,88,.11)}.log-row strong{color:#a9c5cc}
.empty-state,.detail-card,.incident-v03,.fleet-defect-row,.cloud-auth-box,.cloud-profile-card,.cloud-save-card{border-radius:2px!important}.empty-state{border-color:rgba(62,158,181,.2);background:rgba(5,20,25,.45)}.detail-card{position:relative;background:linear-gradient(135deg,rgba(8,31,39,.92),rgba(5,16,21,.96));border-color:rgba(60,167,191,.18);box-shadow:0 14px 30px rgba(0,0,0,.18)}.detail-card:before{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:2px;background:linear-gradient(var(--cyan),rgba(24,200,242,.12));box-shadow:0 0 12px rgba(24,200,242,.26)}.detail-grid>div{border-radius:2px;background:#041116;border:1px solid rgba(56,154,177,.08)}.section-label{color:#638892;letter-spacing:1.35px}.actions button,.incident-actions button,.depot-dispatch button,.fleet-defect-row button,.report-actions button{border-radius:2px!important;background:linear-gradient(180deg,#0b2c36,#071a21)!important;border-color:rgba(66,173,198,.22)!important;color:#a8c9d1!important;transition:.16s ease}.actions button:hover:not(:disabled),.incident-actions button:hover:not(:disabled),.depot-dispatch button:hover:not(:disabled),.fleet-defect-row button:hover:not(:disabled),.report-actions button:hover:not(:disabled){background:linear-gradient(180deg,#0d5062,#0a2d38)!important;border-color:rgba(24,200,242,.65)!important;color:#effcff!important;box-shadow:0 0 16px rgba(24,200,242,.09)}.status-badge,.cloud-online-pill{border-radius:2px}
.incident-v03{border-color:rgba(255,181,73,.22);background:linear-gradient(135deg,rgba(55,33,10,.52),rgba(14,16,16,.92));border-left:2px solid #f2ac42}.incident-v03.severe,.incident-v03.critical{border-left-color:#ff6572}.vehicle-fault-callout,.signal-callout{border-radius:2px;background:linear-gradient(135deg,rgba(76,19,28,.46),rgba(15,15,16,.93));border-color:rgba(255,98,111,.23);border-left:2px solid var(--bad)}
.interlocking-panel,.fleet-panel,.scenario-panel{background:linear-gradient(145deg,rgba(4,15,20,.985),rgba(3,10,13,.99));border-radius:2px;border-color:rgba(57,188,218,.27);box-shadow:0 30px 90px rgba(0,0,0,.72),0 0 0 1px rgba(24,200,242,.035) inset}.interlocking-head,.fleet-head,.scenario-head{background:linear-gradient(90deg,rgba(8,39,48,.98),rgba(4,15,20,.98));border-bottom-color:rgba(54,170,195,.17);position:relative}.interlocking-head:after,.fleet-head:after,.scenario-head:after{content:"";position:absolute;bottom:-1px;left:0;width:150px;height:1px;background:linear-gradient(90deg,var(--cyan),transparent)}.interlocking-head h3,.fleet-head h3,.scenario-head h3,.cloud-head h2{font-style:italic;text-transform:uppercase;letter-spacing:.015em}.interlocking-close{border-radius:2px;background:#071a21;border-color:rgba(65,166,190,.2);color:#76a3ad}.interlocking-close:hover{background:#0b3541;border-color:var(--cyan);color:white}.route-lock-badge{border-radius:2px;background:#16170f}.route-lock-badge.active{background:#0a2b22}.interlocking-toolbar,.fleet-toolbar{background:#041116;border-bottom-color:rgba(52,154,178,.13)}.mode-select{border-radius:2px;background:#07171d;border-color:rgba(56,159,183,.18)}.mode-select.active{background:var(--cyan);border-color:var(--cyan);color:#031116}.interlocking-diagram{background:radial-gradient(circle at 50% 50%,#0a303b 0,#06181f 40%,#030c10 78%);border-right-color:rgba(52,158,183,.14)}.track{stroke:#41616a}.route-path{stroke:var(--cyan);filter:drop-shadow(0 0 7px rgba(24,200,242,.75))}.depot-card{border-radius:2px;background:linear-gradient(145deg,rgba(8,30,37,.96),rgba(5,16,21,.97));border-color:rgba(56,165,189,.15)}.depot-card.focused{border-color:rgba(24,200,242,.55);box-shadow:inset 3px 0 0 var(--cyan),0 0 25px rgba(24,200,242,.06)}.fleet-kpis>div,.depot-stats>div,.report-stat,.report-objective{border-radius:2px;background:#041116;border-color:rgba(59,158,181,.13)}
.shift-hud{border-radius:2px!important;border-color:rgba(39,197,231,.28)!important;background:linear-gradient(90deg,rgba(5,26,32,.97),rgba(4,13,17,.97))!important;box-shadow:0 18px 45px rgba(0,0,0,.45),inset 3px 0 0 var(--cyan)}.shift-report{background:rgba(1,6,8,.84)}.shift-report-card{border-radius:2px;background:linear-gradient(145deg,#06171d,#030b0f);border-color:rgba(57,181,209,.25)}.score-dial:after{background:#051116}
.cloud-overlay{background:rgba(1,7,10,.84);backdrop-filter:blur(14px)}.cloud-card{border-radius:2px;background:linear-gradient(150deg,#071b22,#030c10);border-color:rgba(58,183,211,.26);box-shadow:0 35px 100px rgba(0,0,0,.72),0 0 50px rgba(24,200,242,.035)}.cloud-head{background:linear-gradient(90deg,rgba(8,40,49,.98),rgba(4,15,20,.98));border-bottom-color:rgba(53,172,199,.18)}.cloud-auth-box,.cloud-profile-card,.cloud-save-card{background:linear-gradient(145deg,rgba(8,31,39,.9),rgba(4,15,20,.96));border-color:rgba(57,163,188,.16)}.cloud-form input,.cloud-form select,.leaderboard-toolbar select{border-radius:2px;background:#031015;border-color:rgba(61,166,190,.19)}.cloud-form input:focus{border-color:var(--cyan);box-shadow:inset 2px 0 0 var(--cyan)}.cloud-primary,.cloud-secondary,.leaderboard-toolbar button{border-radius:2px!important}.cloud-primary{background:var(--cyan);color:#031116;box-shadow:0 8px 24px rgba(24,200,242,.14)}.cloud-primary:hover{background:#4ed9f8}.cloud-secondary{background:#08212a;border-color:rgba(63,164,188,.2);color:#b7d1d7}.cloud-kpis div,.cloud-save-state{border-radius:2px;background:#041116;border:1px solid rgba(50,147,169,.1)}.cloud-avatar{border-radius:2px;background:linear-gradient(135deg,#0b7690,var(--cyan))}.mp-room-hero,.mp-member,.mp-permission-box,.mp-activity-card,.mp-activity,.mp-stability-strip{border-radius:2px!important}.mp-room-hero{background:linear-gradient(120deg,rgba(9,62,73,.7),rgba(4,18,23,.86));border-color:rgba(39,199,233,.24)}.mp-member{background:#041116;border-color:rgba(58,154,177,.13)}.mp-member.host{background:linear-gradient(90deg,rgba(14,77,63,.3),rgba(4,17,21,.82));border-color:rgba(75,223,169,.22)}
.footer{background:#020608!important;border-top:1px solid rgba(48,151,175,.12)!important;color:#456872!important}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#030b0e}::-webkit-scrollbar-thumb{background:#0b3a46;border:2px solid #030b0e}::-webkit-scrollbar-thumb:hover{background:#0d596a}
@media(max-width:1320px){.workspace{grid-template-columns:274px minmax(520px,1fr) 320px}.brand{min-width:230px}.brand-logo{width:68px;height:52px}.brand strong{font-size:17px}.topbar{padding-inline:10px}.statusbar{gap:4px}.clock{min-width:96px}}
@media(max-width:1050px){.app{grid-template-rows:68px 1fr 28px}.topbar{height:68px}.brand-logo{width:60px;height:45px}.workspace{grid-template-columns:230px minmax(470px,1fr) 280px}}

/* v0.13 · Real Operations */
.ops-phase{display:flex;align-items:center;gap:8px;min-width:176px;padding:7px 10px;border:1px solid rgba(58,193,255,.22);background:linear-gradient(180deg,rgba(14,37,54,.86),rgba(5,17,28,.92));box-shadow:inset 0 0 18px rgba(0,174,255,.05);border-radius:6px;color:#d8f3ff}
.ops-phase>span{font-size:12px;color:#59d9ff;text-shadow:0 0 10px rgba(59,207,255,.8)}
.ops-phase div{display:flex;flex-direction:column;line-height:1.05}.ops-phase b{font-size:11px;text-transform:uppercase;letter-spacing:.06em}.ops-phase small{font-size:8px;color:#7f9bac;margin-top:4px;white-space:nowrap}.ops-phase.peak{border-color:rgba(255,184,77,.38);box-shadow:inset 0 0 18px rgba(255,166,0,.05)}.ops-phase.peak>span{color:#ffbd55}
.radio-unread{display:none;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:#ff596d;color:white;font-size:9px;line-height:16px;text-align:center;margin-left:3px;box-shadow:0 0 12px rgba(255,62,86,.6)}.radio-unread.show{display:inline-block}
.radio-card{max-width:840px}.radio-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid rgba(81,203,255,.12);background:rgba(4,19,30,.58)}.radio-toolbar>div{display:flex;flex-direction:column;gap:3px}.radio-toolbar b{font-size:12px;color:#dff8ff}.radio-toolbar span{font-size:10px;color:#8299aa}.radio-toolbar button{border:1px solid rgba(82,196,238,.25);background:#0b2434;color:#bdefff;padding:8px 11px;border-radius:5px;font-weight:700;cursor:pointer}.radio-body{padding:14px 18px 20px;display:flex;flex-direction:column;gap:9px;max-height:min(62vh,650px);overflow:auto}.radio-message{display:grid;grid-template-columns:58px 1fr 8px;gap:12px;align-items:start;padding:13px 14px;border:1px solid rgba(73,192,234,.14);background:linear-gradient(90deg,rgba(8,30,44,.94),rgba(5,17,27,.78));border-radius:6px}.radio-message.warning{border-color:rgba(255,178,69,.28)}.radio-message.critical{border-color:rgba(255,79,100,.36);background:linear-gradient(90deg,rgba(58,14,24,.55),rgba(10,17,26,.86))}.radio-time{font:700 11px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;color:#5ecdf3}.radio-copy>div{display:flex;gap:9px;align-items:center}.radio-copy b{font-size:12px;color:#edfaff}.radio-copy span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#6f8c9d}.radio-copy p{margin:5px 0 0;color:#9db2bf;font-size:11px;line-height:1.45}.radio-message>i{width:7px;height:7px;border-radius:50%;background:#37caef;margin-top:4px;box-shadow:0 0 12px rgba(55,202,239,.65)}.radio-message.warning>i{background:#ffb84d}.radio-message.critical>i{background:#ff596d}
.tutorial-card{max-width:720px}.tutorial-body{padding:24px 26px 10px}.tutorial-progress{display:flex;gap:6px;margin-bottom:24px}.tutorial-progress i{height:3px;flex:1;background:#132b3b;border-radius:3px}.tutorial-progress i.active{background:#31c7f2;box-shadow:0 0 10px rgba(49,199,242,.55)}.tutorial-hero{display:flex;gap:20px;align-items:flex-start;padding:22px;border:1px solid rgba(65,200,243,.2);background:radial-gradient(circle at 8% 15%,rgba(19,162,214,.16),transparent 30%),linear-gradient(135deg,rgba(8,30,44,.95),rgba(4,14,23,.96));border-radius:8px}.tutorial-hero>span{width:64px;height:64px;display:grid;place-items:center;border:1px solid rgba(73,206,255,.32);background:#0b2638;font-size:30px;box-shadow:0 0 24px rgba(0,183,255,.12)}.tutorial-hero small{color:#49c9f1;text-transform:uppercase;letter-spacing:.12em;font-size:9px}.tutorial-hero h3{margin:6px 0 8px;color:#f2fbff;font-size:22px}.tutorial-hero p{margin:0;color:#9fb3bf;line-height:1.65;font-size:12px}.tutorial-actions{display:flex;justify-content:space-between;align-items:center;padding:18px 26px 24px}.tutorial-actions>div{display:flex;gap:8px}.tutorial-actions button{border:1px solid rgba(70,185,226,.2);background:#0b2231;color:#b8d8e6;padding:10px 15px;border-radius:5px;font-weight:800;cursor:pointer}.tutorial-actions button:disabled{opacity:.35}.tutorial-actions .primary-action{background:linear-gradient(180deg,#20bce9,#0a93c7);color:#02131c;border-color:#42d7ff;box-shadow:0 0 18px rgba(17,183,235,.18)}
@media(max-width:1200px){.ops-phase{display:none}}

/* v0.14 · Real GTFS */
.gtfs-btn{display:flex;align-items:center;gap:5px;min-width:92px}.gtfs-btn.active{border-color:rgba(75,226,178,.5);background:linear-gradient(180deg,rgba(10,58,48,.95),rgba(6,33,29,.95));color:#8ff1c8;box-shadow:0 0 18px rgba(62,221,170,.1)}
.gtfs-card{max-width:850px}.gtfs-body{padding:20px 24px 24px;display:grid;gap:14px}.gtfs-status-card{display:flex;align-items:flex-start;gap:14px;padding:17px 18px;border:1px solid rgba(62,170,198,.18);background:linear-gradient(135deg,rgba(7,30,39,.96),rgba(4,15,20,.98));border-radius:5px}.gtfs-status-card>span{width:38px;height:38px;display:grid;place-items:center;background:#0a2832;border:1px solid rgba(70,190,220,.24);color:#63d9f6;font-size:18px;box-shadow:0 0 18px rgba(24,200,242,.08)}.gtfs-status-card.ready>span{color:#65e0b0;border-color:rgba(101,224,176,.35);background:#082a22}.gtfs-status-card.fallback>span{color:#ffc766;border-color:rgba(255,199,102,.3);background:#2d2110}.gtfs-status-card small{display:block;color:#4c8796;letter-spacing:.13em;font-size:8px;font-weight:900}.gtfs-status-card h3{margin:4px 0 0;color:#e8f8fc;font-size:16px}.gtfs-status-card p{margin:6px 0 0;color:#ff9a9f;font-size:10px;line-height:1.45}.gtfs-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.gtfs-kpis>div,.gtfs-line-stats>div{padding:11px 12px;border:1px solid rgba(55,159,184,.14);background:#041116}.gtfs-kpis span,.gtfs-line-stats span{display:block;color:#527681;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.gtfs-kpis b,.gtfs-line-stats b{display:block;margin-top:5px;color:#d9f0f5;font-size:12px}.gtfs-line-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.gtfs-line-stats>div{display:flex;align-items:center;justify-content:space-between;padding:9px 10px}.gtfs-line-stats b{margin:0;color:#5edbf7}.gtfs-actions{display:flex;gap:8px;flex-wrap:wrap}.gtfs-actions button,.gtfs-file-button{min-height:40px;padding:0 14px;border:1px solid rgba(64,179,207,.2);background:#071a21;color:#9ac7d1;font:inherit;font-size:10px;font-weight:850;display:flex;align-items:center;justify-content:center;cursor:pointer}.gtfs-actions button:hover,.gtfs-file-button:hover{border-color:#18c8f2;color:white;background:#0a2c36}.gtfs-actions button:disabled{opacity:.45;cursor:wait}.gtfs-actions .cloud-primary{background:linear-gradient(180deg,#20c8ef,#0b96c7);border-color:#4ddfff;color:#021319}.gtfs-actions #gtfsFallback{margin-left:auto;color:#ffc36a;border-color:rgba(255,187,90,.2)}
@media(max-width:900px){.gtfs-kpis{grid-template-columns:1fr 1fr}.gtfs-line-stats{grid-template-columns:repeat(3,1fr)}}

/* v0.15 · Responsive & Touch */
:root{--mobile-dock-h:64px;--tablet-topbar-h:112px}
.mobile-dock,.mobile-backdrop{display:none}
@media (hover:none) and (pointer:coarse){
  button,.ctrl,.tiny-btn,.map-mode-btn,.cloud-top-btn,.mode-select,.depot-dispatch button,.scenario-card button{touch-action:manipulation}
}
@media(max-width:1180px){
  html,body{height:100%;overscroll-behavior:none}
  .app{height:100dvh;min-height:100svh;grid-template-rows:var(--tablet-topbar-h) minmax(0,1fr);overflow:hidden}
  footer{display:none}
  .topbar{height:auto;min-height:var(--tablet-topbar-h);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:54px 50px;align-items:center;padding:4px 10px 6px;gap:3px 8px}
  .brand{min-width:0;gap:8px;overflow:hidden}.brand-logo{width:58px;height:46px}.brand strong{font-size:16px;white-space:nowrap}.brand span{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .site-back-link{display:inline-flex!important;grid-column:2;grid-row:1;height:36px;padding-inline:10px}
  .statusbar{grid-column:1/-1;grid-row:2;width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;justify-content:flex-start;gap:6px;padding:3px 1px 5px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .statusbar::-webkit-scrollbar{display:none}.statusbar>*{flex:0 0 auto}.network-status,.ctrl,.difficulty,.cloud-top-btn{min-height:40px}.ctrl{min-width:42px}.difficulty{min-width:132px}.clock{min-width:104px}.ops-phase{min-width:175px}
  .workspace{position:relative;display:block;min-height:0;overflow:hidden}
  .center-stage{height:100%;min-height:0;grid-template-rows:minmax(0,1fr) 72px 96px;padding-bottom:var(--mobile-dock-h)}
  .sidebar{position:fixed;z-index:1700;top:var(--tablet-topbar-h);bottom:calc(var(--mobile-dock-h) + env(safe-area-inset-bottom));width:min(88vw,350px);max-width:350px;box-shadow:0 18px 60px #000d;transition:transform .22s ease;overscroll-behavior:contain}
  .left-panel{left:0;transform:translateX(-105%);border-right:1px solid rgba(24,200,242,.22)}.right-panel{right:0;transform:translateX(105%);border-left:1px solid rgba(24,200,242,.22)}
  .left-panel.mobile-open,.right-panel.mobile-open{transform:translateX(0)}
  .mobile-backdrop{display:block;position:fixed;z-index:1650;top:var(--tablet-topbar-h);left:0;right:0;bottom:calc(var(--mobile-dock-h) + env(safe-area-inset-bottom));background:rgba(0,5,8,.68);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .2s ease}.mobile-backdrop.show{opacity:1;pointer-events:auto}
  .mobile-dock{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:1900;left:0;right:0;bottom:0;height:calc(var(--mobile-dock-h) + env(safe-area-inset-bottom));padding:5px 6px calc(5px + env(safe-area-inset-bottom));border-top:1px solid rgba(38,188,221,.22);background:linear-gradient(180deg,rgba(4,16,21,.97),rgba(2,8,11,.99));box-shadow:0 -12px 30px #0009;backdrop-filter:blur(16px)}
  .mobile-dock button{min-width:0;border:0;background:transparent;color:#668995;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:inherit;border-radius:5px}.mobile-dock button span{font-size:17px;line-height:1}.mobile-dock button b{font-size:8px;text-transform:uppercase;letter-spacing:.08em}.mobile-dock button.active{color:#8eeaff;background:rgba(17,138,165,.13);box-shadow:inset 0 2px 0 var(--cyan)}
  .map-wrap{min-height:0}.map{height:100%}.map-badge{top:8px;left:8px}.map-legend{display:none;top:auto;left:8px;right:8px;bottom:10px;max-height:min(48vh,380px);overflow:auto;padding:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;background:rgba(3,14,18,.97);border-color:rgba(24,200,242,.28);box-shadow:0 18px 50px #000d;backdrop-filter:blur(18px)}
  body.mobile-tools-open .map-legend{display:grid}.map-legend>span{min-height:32px}.map-legend .map-mode-btn,.map-legend .route-data-badge{width:100%;min-height:40px;justify-content:center}
  .metrics{grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:minmax(112px,1fr);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}.metrics::-webkit-scrollbar{display:none}.metric{min-width:112px;padding:0 11px;scroll-snap-align:start}.metric b{font-size:16px}
  .log-list{height:64px}.log-row{grid-template-columns:44px 52px minmax(0,1fr);padding-inline:8px}.log-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .interlocking-panel,.fleet-panel,.scenario-panel{position:fixed;z-index:1800;left:8px!important;right:8px!important;top:calc(var(--tablet-topbar-h) + 8px)!important;bottom:calc(var(--mobile-dock-h) + env(safe-area-inset-bottom) + 8px)!important;max-height:none;border-radius:4px}
  .cloud-overlay,.shift-report{z-index:1850;padding:calc(8px + env(safe-area-inset-top)) 8px calc(var(--mobile-dock-h) + 8px + env(safe-area-inset-bottom))}.cloud-card,.shift-report-card{width:min(100%,900px);max-height:100%;overflow:auto}.cloud-head{position:sticky;top:0;z-index:3}
  .toast{right:10px;left:10px;bottom:calc(var(--mobile-dock-h) + 10px + env(safe-area-inset-bottom));text-align:center}
  .panel-heading{height:62px}.search-wrap input{height:42px}.line-row{min-height:48px}.line-chip{width:32px;height:32px}.tiny-btn{min-height:36px}
}
@media(max-width:760px){
  :root{--tablet-topbar-h:104px;--mobile-dock-h:62px}
  .topbar{grid-template-rows:48px 48px;padding-inline:7px}.brand-logo{width:48px;height:38px}.brand strong{font-size:14px}.brand span{display:none}.site-back-link{font-size:0;width:40px;padding:0;justify-content:center}.site-back-link:before{content:"⌂";font-size:17px}.network-status{max-width:124px;overflow:hidden}.network-status span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clock{min-width:94px}.clock b{font-size:13px}.ops-phase{display:none}.difficulty{min-width:118px;max-width:130px}.cloud-top-btn{padding-inline:8px}.cloud-top-btn b{max-width:72px;overflow:hidden;text-overflow:ellipsis}.leaderboard-top b{display:none}.leaderboard-top{min-width:42px}.multiplayer-top b{max-width:62px}
  .center-stage{grid-template-rows:minmax(0,1fr) 68px 82px}.map-badge{font-size:8px}.map-badge span{display:none}.map-legend{grid-template-columns:1fr 1fr}.map-legend>span{display:none}.map-legend .route-data-badge{grid-column:1/-1}
  .metrics{grid-auto-columns:minmax(104px,42vw)}.metric span{font-size:7px}.metric b{font-size:15px}.log-head{height:28px}.log-list{height:54px}.log-row{min-height:23px;font-size:8px;grid-template-columns:39px 46px minmax(0,1fr)}
  .left-panel,.right-panel{width:min(92vw,340px)}.detail-card,.empty-state{margin-inline:10px}.incident-list{padding-inline:8px}
  .interlocking-head,.fleet-head,.scenario-head{padding:10px}.interlocking-head h3,.fleet-head h3,.scenario-head h3{font-size:14px}.interlocking-toolbar{padding:7px 9px}.interlocking-toolbar small{display:none}.interlocking-diagram{min-height:250px;padding:4px}.interlocking-status-grid{grid-template-columns:repeat(2,1fr)}.route-buttons{grid-template-columns:1fr!important}.depot-grid,.scenario-grid{grid-template-columns:1fr!important}.fleet-kpis,.career-summary{grid-template-columns:repeat(2,1fr)!important}
  .cloud-overlay{align-items:stretch}.cloud-card{margin:0;max-height:100%;border-radius:3px}.cloud-body{padding:12px}.cloud-head{padding:12px}.cloud-head h2{font-size:17px}.cloud-auth-grid,.cloud-save-grid{grid-template-columns:1fr!important}.cloud-kpis{grid-template-columns:repeat(2,1fr)!important}.leaderboard-table{min-width:560px}.leaderboard-body{overflow-x:auto;padding-inline:8px}.radio-toolbar{padding:10px 12px}.radio-body{padding:10px;max-height:none}.radio-message{grid-template-columns:46px minmax(0,1fr) 7px;gap:8px;padding:10px}.tutorial-body{padding:14px 12px 6px}.tutorial-hero{padding:15px;gap:12px}.tutorial-hero>span{width:48px;height:48px;font-size:22px}.tutorial-hero h3{font-size:18px}.tutorial-actions{padding:12px;gap:8px;align-items:stretch}.tutorial-actions,.tutorial-actions>div{flex-wrap:wrap}.tutorial-actions button{min-height:42px;flex:1}.gtfs-body{padding:12px}.gtfs-kpis{grid-template-columns:1fr 1fr!important}.gtfs-line-stats{grid-template-columns:repeat(3,1fr)!important}.gtfs-actions{display:grid;grid-template-columns:1fr}.gtfs-actions #gtfsFallback{margin-left:0}.gtfs-actions button,.gtfs-file-button{width:100%}
}
@media(max-width:430px){
  :root{--tablet-topbar-h:98px;--mobile-dock-h:60px}
  .topbar{grid-template-rows:44px 44px}.brand-logo{width:42px;height:34px}.brand strong{font-size:13px}.statusbar{gap:4px}.network-status{max-width:105px;min-height:36px;padding-inline:8px}.clock{min-width:82px;padding-inline:7px}.ctrl{min-width:38px;min-height:36px}.difficulty{min-width:105px;height:36px;font-size:10px}.cloud-top-btn{min-height:36px}.cloud-top-btn span{font-size:13px}.cloud-top-btn b{font-size:9px}.map-legend{grid-template-columns:1fr;max-height:55vh}.map-legend .route-data-badge{grid-column:auto}.metrics{grid-auto-columns:46vw}.center-stage{grid-template-rows:minmax(0,1fr) 66px 76px}.log-panel{font-size:8px}.log-head span{max-width:78%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-dock button span{font-size:16px}.mobile-dock button b{font-size:7px}.gtfs-line-stats{grid-template-columns:1fr 1fr!important}.gtfs-kpis{grid-template-columns:1fr 1fr!important}.radio-message{grid-template-columns:42px minmax(0,1fr) 6px}.radio-copy>div{align-items:flex-start;flex-direction:column;gap:2px}.detail-grid{grid-template-columns:1fr}.depot-stats{grid-template-columns:1fr 1fr}.scenario-card{min-height:170px}.shift-hud{left:8px!important;right:8px!important;bottom:calc(var(--mobile-dock-h) + 8px + env(safe-area-inset-bottom))!important}
}
@media(max-height:650px) and (max-width:1180px){
  :root{--tablet-topbar-h:92px;--mobile-dock-h:54px}.topbar{grid-template-rows:40px 44px}.brand-logo{height:34px}.center-stage{grid-template-rows:minmax(0,1fr) 58px 0}.log-panel{display:none}.mobile-dock button b{display:none}.mobile-dock button span{font-size:18px}.mobile-dock{height:calc(var(--mobile-dock-h) + env(safe-area-inset-bottom))}.interlocking-panel,.fleet-panel,.scenario-panel{top:calc(var(--tablet-topbar-h) + 4px)!important}
}
