: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}}
