:root{--bg:#101a26;--pan:#182636;--elev:#203346;--border:#355064;--txt:#e8f2f5;--muted:#9ab1c1;--red:#ed5053;--amber:#ffbd6d;--green:#54c7a7;--blue:#77b9f0;--left:340px;--right:410px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt);font:14px/1.42 system-ui,-apple-system,Segoe UI,Arial,sans-serif}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button{background:#26394e;border:1px solid var(--border);border-radius:7px;color:var(--txt);padding:8px 11px}button:hover{background:#344a61}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{color:var(--txt);background:#172636;border:1px solid var(--border);border-radius:6px;padding:9px;width:100%;min-width:0}textarea{min-height:72px;resize:vertical}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--blue)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#101b29;border-bottom:1px solid var(--border);padding:11px 17px}.brand{display:flex;align-items:center;gap:11px;min-width:250px}.logo{width:42px;height:42px;background:#cf363d;display:grid;place-items:center;font-size:21px;font-weight:900;border-radius:9px}.logo span{font-size:11px;align-self:end;margin-bottom:5px}.brand strong{font-size:16px;letter-spacing:.08em}.brand em{color:var(--red);font-style:normal}.brand small,.clockbox small{display:block;font-size:10px;letter-spacing:.1em;color:var(--muted)}.clockbox{text-align:center}.clockbox #clock{font-size:22px;font-weight:700;letter-spacing:.07em;font-variant-numeric:tabular-nums}.header-actions{display:flex;gap:8px;align-items:center}.header-actions select{width:132px}.incoming{border-color:#943c43;color:#ffb4b5;background:#4a2830;font-weight:750;white-space:nowrap}.incoming.ringing{animation:blink 1s linear infinite}@keyframes blink{0%,49%{background:#d73545;color:white;box-shadow:0 0 15px #d7354575}50%,100%{background:#492932;color:#ffaeb3;box-shadow:none}}.toolbar{background:#152231;display:flex;justify-content:space-between;gap:12px;padding:7px 12px;border-bottom:1px solid var(--border);flex-wrap:wrap}.tabs,.simcontrols{display:flex;gap:5px;align-items:center}.tabs{overflow-x:auto}.tab{font-size:11px;font-weight:750;white-space:nowrap;letter-spacing:.06em;border-color:transparent;background:transparent}.tab.active{background:#294256;border-color:#467085;color:#fff}.simcontrols #simstate{color:var(--muted);font-size:10px;letter-spacing:.06em;margin-right:8px}.simcontrols button{padding:6px 10px}.simcontrols button.on{color:var(--green);border-color:#4b9183}main{min-height:calc(100dvh - 120px)}.page{display:none}.page.active{display:block}.layout{display:grid;grid-template-columns:var(--left) 5px minmax(0,1fr) 5px var(--right);height:calc(100dvh - 125px);min-height:460px;position:relative;overflow:hidden}.layout.leftclosed{grid-template-columns:0 0 25px minmax(0,1fr) 5px var(--right)}.layout.rightclosed{grid-template-columns:var(--left) 5px minmax(0,1fr) 25px 0}.layout.leftclosed.rightclosed{grid-template-columns:0 0 25px minmax(0,1fr) 25px 0}.leftpanel,.rightpanel{overflow:hidden;background:var(--pan);display:flex;flex-direction:column}.leftpanel{grid-column:1}.rightpanel{grid-column:5}.leftclosed .leftpanel,.rightclosed .rightpanel{display:none}.resizehandle{cursor:col-resize;background:#294053;touch-action:none}.resizehandle:hover{background:var(--blue)}#resLeft{grid-column:2}#resRight{grid-column:4}.leftclosed #resLeft,.rightclosed #resRight{display:none}.edge{border:0;border-radius:0;background:#294053;color:#e6f0f4;font-size:11px;writing-mode:vertical-rl;padding:5px}.edge-left{grid-column:3}.edge-right{grid-column:5}.layout:not(.leftclosed) .edge-left,.layout:not(.rightclosed) .edge-right{display:none}.maparea{grid-column:3;min-width:0;position:relative;background:#213d43;display:flex;flex-direction:column}.leftclosed .maparea{grid-column:4}.mapoverlay{position:absolute;z-index:5;left:16px;right:15px;top:13px;display:flex;justify-content:space-between;pointer-events:none}.mapoverlay>*{pointer-events:auto}.eyebrow{font-size:11px;letter-spacing:.14em;background:#0e1c26de;padding:8px 10px;border-radius:7px;font-weight:700}.seg{display:flex;background:#132432dd;border-radius:8px;padding:3px}.seg button{border:0;background:transparent}.seg button.active{background:#416078}.mapviewport{flex:1;overflow:hidden;position:relative;touch-action:none;cursor:grab}.mapviewport:active{cursor:grabbing}.mapinner{width:1000px;height:760px;position:absolute;left:0;top:0;transform-origin:0 0}.mapinner svg{width:100%;height:100%}.mapviewport.tactical #districtLabels{opacity:.3}.mapviewport.tactical .marker{box-shadow:0 0 0 3px #12263788}.marker{position:absolute;z-index:2;transform:translate(-50%,-50%);border-radius:22px;background:#163b4bd9;color:white;border:2px solid white;padding:5px 8px;font-size:12px;cursor:pointer;white-space:nowrap;box-shadow:0 2px 7px #0006}.marker.bf{background:#a62e37}.marker.ff{background:#bf733b}.marker.hospital{background:#337f76}.marker.incident{background:#d42031;animation:incidentPulse 1.5s infinite}@keyframes incidentPulse{50%{box-shadow:0 0 0 9px #d7354560}}.mapbottom{background:#172c33ed;display:flex;align-items:center;justify-content:space-between;padding:7px 10px;gap:6px}.panelhead{padding:12px;display:flex;align-items:center;justify-content:space-between;background:#22384a;border-bottom:1px solid var(--border);letter-spacing:.06em;font-size:12px}.closepane{padding:3px 10px}.panelbody{overflow:auto;padding:12px;flex:1}.sectiontitle{font-weight:800;font-size:10px;letter-spacing:.12em;color:#90b5cc;margin:18px 0 9px;padding-bottom:5px;border-bottom:1px solid #344a5d}.sectiontitle:first-child{margin-top:0}.card{padding:11px;border:1px solid var(--border);background:#223547;border-radius:9px;margin:8px 0}.card strong{display:block}.card small,.muted,.hint{color:var(--muted)}.hint{font-size:11px;line-height:1.45}.card .meta{font-size:11px;color:var(--muted)}.actionline{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.actionline input{flex:1;min-width:120px}.actionline select{flex:1;min-width:112px}.accent{background:#c03a43;border-color:#dc6670;font-weight:720}.accent:hover{background:#d44d56}.full{width:100%;margin-top:9px}.danger{border-color:#c64d50;color:#ffafb0}.linkbutton{color:#96d7ef;text-decoration:underline;border:0;padding:2px;background:transparent}.callitem{border-left:3px solid var(--red)}.callitem button{margin-top:7px}.dialogbubble{border-radius:10px;background:#30465a;padding:9px;margin:7px 0}.dialogbubble.sys{border-left:3px solid var(--amber)}.smalltext{font-size:11px;color:var(--muted)}.feed{max-height:200px;overflow:auto}.feedentry{border-bottom:1px solid #32485b;padding:8px 1px;font-size:12px}.feedentry b{color:#93c6d9}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:9px 0}.formgrid label{font-size:11px;color:var(--muted)}.formgrid input,.formgrid select{margin-top:3px}.formgrid .wide{grid-column:span 2}.aaooption{display:block;width:100%;text-align:left;margin:5px 0;background:#223c50}.aaooption small{display:block;color:var(--muted)}.aaooption.selected{background:#365c70;border-color:#84b6cf}.vehrow{display:flex;align-items:center;gap:8px;padding:7px 5px;border-bottom:1px solid #31485a;font-size:12px}.vehrow input{width:auto}.vehrow small{color:var(--muted)}.vehrow em{font-size:10px;color:var(--amber);margin-left:auto;font-style:normal}.vehrow.disabled{opacity:.5}.stdpage{padding:22px;max-width:1440px;margin:auto}.stdpage h1{margin:5px 0 8px;font-size:24px}.stdpage h2{margin:25px 0 10px;font-size:18px}.sectionheading{display:flex;justify-content:space-between;align-items:center;gap:15px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:11px}.cards .card{margin:0}.cards .card h3{font-size:15px;margin:0 0 5px}.cards .card p{font-size:12px;color:var(--muted)}.pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}.pill{font-size:10px;border:1px solid var(--border);padding:3px 7px;border-radius:20px;color:#c6dbe7}.pill.good{color:#8ee9b8}.pill.warn{color:#ffcb88}.tablewrap{overflow:auto;border:1px solid var(--border);border-radius:8px}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;background:#253b4e;color:#afcee0;position:sticky;top:0}td,th{padding:10px;border-bottom:1px solid #2d4457}tr:nth-child(even){background:#182839}.statusselect{min-width:75px;width:85px;padding:5px}.loglist{max-height:60vh;overflow:auto;margin-top:12px}.logrow{padding:10px;border-bottom:1px solid var(--border);font-size:12px}.logrow b{color:#98cfe4}.fileBtn{background:#26394e;border:1px solid var(--border);border-radius:7px;padding:9px 11px;cursor:pointer}.toast{position:fixed;z-index:30;bottom:18px;left:50%;transform:translateX(-50%);max-width:min(500px,92vw);background:#354b60;color:white;border-radius:8px;padding:13px 18px;box-shadow:0 5px 25px #0009;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1}@media(max-width:1100px){:root{--left:290px;--right:320px}.brand{min-width:initial}.brand small{display:none}}@media(max-width:760px){.topbar{flex-wrap:wrap}.clockbox{order:2}.header-actions{margin-left:auto}.brand strong{font-size:12px}.layout{height:calc(100dvh - 160px);grid-template-columns:minmax(220px,36vw) 4px minmax(180px,1fr) 4px minmax(220px,36vw)}.panelhead{font-size:10px}.stdpage{padding:13px}}@media(max-width:560px){.layout{height:calc(100dvh - 176px)}.topbar{padding:8px}.header-actions{width:100%;justify-content:space-between}.clockbox{display:none}.layout:not(.leftclosed):not(.rightclosed){grid-template-columns:210px 3px minmax(90px,1fr) 3px 210px}.layout.leftclosed.rightclosed{grid-template-columns:0 0 25px minmax(0,1fr) 25px 0}.mapoverlay{left:4px;right:4px}.eyebrow{font-size:9px}}

/* App 1.5: Bei wartendem Notruf und ausgeschaltetem Ton blinkt auch die Ton-Schaltfläche rot. */
#soundToggle.muted-alert { animation: fwMutedAlert 0.85s steps(2, start) infinite; border-color: #ef4444 !important; color: #fff !important; }
@keyframes fwMutedAlert { 0%, 100% { background: #b91c1c; box-shadow: 0 0 0 0 rgba(239,68,68,.1); } 50% { background: #ef4444; box-shadow: 0 0 0 4px rgba(239,68,68,.22); } }

/* App 1.6: Kartenmarker für zusätzliche Organisationen */
.marker.drk { background: #fef2f2; border-color: #dc2626; color: #991b1b; }
.marker.thw { background: #fef3c7; border-color: #b45309; color: #78350f; }
.marker.seg { background: #f3e8ff; border-color: #9333ea; color: #6b21a8; }
.marker.mutual { background: #e5e7eb; border-color: #6b7280; color: #374151; }
.staff-summary { border-left: 4px solid #64748b; }

/* App 1.7: ausdrücklich angeforderte externe Einsatzmittel mit nachvollziehbarem Vorlauf */
.vehrow { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.vehrow label { display:flex; align-items:center; gap:8px; flex:1; min-width:0; }
.request-external { flex:0 0 auto; padding:5px 9px; border:1px solid #64748b; border-radius:7px; background:var(--panel,#fff); font-size:12px; }

/* App 3.0: direct access to the consolidated project dossier */
.dossier-link { text-decoration:none; display:inline-flex; align-items:center; white-space:nowrap; }

/* v3.9 visible road graph and bridge state */
.road-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}
.road-edge{stroke:#e8d8a8;stroke-width:7;stroke-linecap:round;opacity:.88;fill:none;filter:drop-shadow(0 1px 1px #24333a)}
.road-edge.closed{stroke:#d53c48;stroke-width:5;stroke-dasharray:10 7;opacity:1}
.bridge-symbol rect{fill:#f3d77e;stroke:#263b45;stroke-width:2}
.bridge-symbol text{font:700 10px sans-serif;text-anchor:middle;fill:#21323a}
.bridge-symbol.closed rect{fill:#d7444b}
.bridge-symbol.closed text{fill:#fff}
#markers{z-index:3}
.bridge-toggle{min-width:74px}

/* v4.4 Lageentwicklung */
.incident-evolution{border-top:1px solid #5f7980;margin-top:14px;padding-top:12px}.situation-entry{border:1px solid #74633c;background:#403c2b40;border-radius:8px;padding:10px;margin:8px 0}.situation-entry p{font-size:12px}.situation-history{font-size:12px;border-bottom:1px solid #52646c5a;padding:5px 1px}.incident-evolution .actionline{flex-wrap:wrap}

.station-card{display:flex;flex-direction:column;overflow:hidden}
.station-card-body{display:flex;flex-direction:column;gap:8px}
.station-card p.station-subtitle{margin:0;color:#d7e5ee;font-size:12px;line-height:1.4}
.station-fleetline{font-size:11px;color:var(--muted);line-height:1.45}
.station-hero{position:relative;border:1px solid #395366;border-radius:10px;background:linear-gradient(180deg,#1e3142,#172734);padding:8px;margin-bottom:10px;overflow:hidden}
.station-meta{display:flex;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#cbdde7;margin-bottom:6px}
.station-type,.station-zone{background:#132330;border:1px solid #375165;padding:3px 6px;border-radius:999px}
.station-zone{max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.station-svg{width:100%;height:auto;display:block;border-radius:8px}
.station-svg .sky{fill:#88a9c2}
.station-svg .ground{fill:#5d6d63}
.station-svg .roof{fill:var(--roof)}
.station-svg .wall{fill:var(--wall)}
.station-svg .wall2{fill:#b8c4cf}
.station-svg .door{fill:var(--door)}
.station-svg .doorline{stroke:#8aa2b8;stroke-width:1.2;opacity:.65}
.station-svg .window{fill:var(--window);opacity:.92}
.station-svg .glass{fill:#9cd7ff;opacity:.85}
.station-svg .courtyard{fill:#8f9a86;opacity:.7}
.station-svg .apron{fill:var(--apron)}
.station-svg .apronline{stroke:#7f95a8;stroke-width:1.4;stroke-linecap:round;opacity:.8}
.station-svg .badge{fill:#2b3b4e;stroke:#d7e6ef;stroke-width:1.2}
.station-svg .badge-text{fill:#fff;font-size:8px;font-weight:700;font-family:system-ui,sans-serif}
.station-svg .taxilight{fill:#8bd4ff}
.station-details{margin:0;padding-left:17px;font-size:12px;color:#c9d8e2;display:grid;gap:4px}
.station-details li::marker{color:#ffbd6d}
.reserve-card{grid-column:1/-1}
.org-flughafen .station-hero{background:linear-gradient(180deg,#24354a,#162534)}
.org-ff .station-hero{background:linear-gradient(180deg,#3a2f22,#1f242c)}
@media (min-width:900px){.station-card{min-height:100%}}


/* v5.14 – realistische Gebäudeansichten und Wachendetails. */
#stationCards{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch}
#stationCards>.staff-summary{grid-column:1/-1;min-height:auto}
#stationCards>.station-card{min-width:0;min-height:0;padding:0;gap:0;overflow:hidden;background:#1b3041;border-color:#3c5b70;box-shadow:0 4px 12px #03091042}
#stationCards>.station-card:has(.station-hero.haupt),#stationCards>.station-card:has(.station-hero.nord){grid-column:span 2}
.station-card-body{padding:12px 14px 14px;gap:8px}
.station-photo{margin:0;border:0;border-radius:0;padding:0;position:relative;overflow:hidden;background:#24374a}
.station-photo img{display:block;width:100%;height:190px;object-fit:cover;object-position:center;filter:saturate(.97) contrast(1.04)}
.station-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0614225a,transparent 50%,#0e243b55);pointer-events:none}
.station-photo figcaption{position:absolute;z-index:2;inset:10px 10px auto;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#fff;font-size:10px;letter-spacing:.015em}
.station-photo figcaption span{background:#14293cd9;border:1px solid #b6c7d366;border-radius:15px;padding:4px 8px}
.station-photo figcaption .station-type{font-weight:800;white-space:nowrap}
.station-hero.haupt img{height:260px}
.station-hero.nord img{height:260px}
.station-card-body h3{font-size:17px!important;margin:0!important}
.station-card-body .pills{margin:2px 0}
.station-card-body .station-details{font-size:11px;line-height:1.5}
.station-card-body .station-fleetline{margin:3px 0 0;font-size:11px}
.station-card-body .station-open{width:100%;margin-top:auto;text-align:center;background:#24445c;border:1px solid #47708b;font-weight:700;color:#e5f4ff}
.station-card-body .station-open:hover{background:#325874}
.station-plan-note{font-size:12px;color:#a9c6d8;line-height:1.5;margin:8px 0 14px}
.station-detail-dialog{position:fixed;max-width:min(900px,calc(100vw - 30px));width:900px;max-height:85dvh;overflow:auto;background:#15283a;border:1px solid #4a6a82;border-radius:14px;color:#ebf4fa;padding:0;box-shadow:0 25px 80px #000b}
.station-detail-dialog::backdrop{background:#020b15d4;backdrop-filter:blur(3px)}
.station-dialog-close{position:sticky;top:0;z-index:4;display:flex;justify-content:flex-end;align-items:center;height:0;overflow:visible}
.station-dialog-close button{margin:12px 13px 0 0;background:#102738ed;border:1px solid #6790a5;color:#fff;font-weight:700}
.station-detail-photo img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.station-detail-content{padding:22px 26px 28px}
.station-detail-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;color:#95c6da}
.station-detail-content h2{font-size:24px;margin:5px 0 6px}
.station-detail-content h3{font-size:15px;margin:20px 0 6px}
.station-detail-content p,.station-detail-content li{font-size:13px;line-height:1.55}
.station-detail-lead{color:#c6e5f3;font-weight:600}
.station-vehicle-chips{display:flex;flex-wrap:wrap;gap:6px}
.station-vehicle-chips span{padding:5px 8px;font-size:11px;background:#233e54;border:1px solid #3a5c74;border-radius:6px}
.station-concept-note{border-top:1px solid #486074;margin-top:22px;padding-top:12px;color:#a8c4d4}
@media(max-width:1130px){#stationCards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:770px){#stationCards{grid-template-columns:repeat(2,minmax(0,1fr))}.station-photo img{height:175px}.station-hero.haupt img,.station-hero.nord img{height:220px}.station-card-body{padding:11px}}
@media(max-width:540px){#stationCards{grid-template-columns:1fr}#stationCards>.station-card:has(.station-hero.haupt),#stationCards>.station-card:has(.station-hero.nord){grid-column:auto}.station-photo img,.station-hero.haupt img,.station-hero.nord img{height:205px}.station-detail-content{padding:16px}.station-detail-dialog{max-height:90dvh}}

/* v5.15: functional garage and room concept, scalable vector-like UI */
.station-detail-tablist{display:flex;flex-wrap:wrap;gap:7px;border-bottom:1px solid #426079;padding-bottom:11px;margin:16px 0 14px}
.station-view-tab{border:1px solid #53738b;background:#213b51;color:#c1d9e7;border-radius:8px;padding:9px 14px;font-weight:700;font-size:12px}
.station-view-tab.active{background:#365f76;border-color:#86bad5;color:white}
[data-station-pane][hidden]{display:none!important}
.station-plan-area>p,.station-rooms-view>p{font-size:12px;color:#b7cedd;line-height:1.6}
.station-plan-keyline{display:flex;justify-content:space-between;gap:15px;align-items:center;flex-wrap:wrap;background:#203a50;border:1px solid #466a82;padding:12px 15px;border-radius:8px;margin:10px 0}
.station-plan-keyline strong{font-size:18px}
.station-count-ok{color:#83e1bc;font-weight:700}
.station-count-check{color:#ffd090;font-weight:700}
.station-plan-section{margin:16px 0;padding:14px;border:1px solid #3f596c;border-radius:10px;background:#1b3145}
.station-plan-section h4{margin:0;font-size:15px;display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.station-plan-section h4 span{color:#aac4d3;font-weight:500;font-size:12px}
.station-plan-section>p{font-size:12px;color:#b9ceda;margin:7px 0 12px}
.station-stall-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:8px}
.station-stall{border:1px solid #4d718a;border-top:4px solid #63b5c4;border-radius:8px;background:#263f52;display:flex;flex-direction:column;min-height:100px;padding:8px 9px}
.station-stall.in-use{border-top-color:#e9ab6a;background:#3b4050}
.station-stall.storage{border-top-color:#b8aacd;background:#2e394e}
.station-stall-top{color:#adc5d5;font-size:10px;letter-spacing:.06em;display:flex;justify-content:space-between;align-items:center}
.station-stall-light{display:inline-block;background:#7cd4a6;width:7px;height:7px;border-radius:50%}
.station-stall-light.busy{background:#eb9b6a}
.station-stall-vehicle{font-weight:700;margin:8px 0 7px;font-size:12px;line-height:1.25;flex:1;overflow-wrap:anywhere}
.station-stall-foot{font-size:10px;line-height:1.35;color:#b2cbd9}
.station-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:10px;margin:14px 0}
.station-room-card{border:1px solid #45647a;border-radius:9px;background:#1c3449;padding:14px}
.station-room-card h4{margin:0 0 9px;font-size:13px;color:#b9e1ed}
.station-room-card ul{padding-left:17px;margin:0;display:grid;gap:6px}
.station-room-card li{font-size:12px!important;line-height:1.4}
.station-plan-disclaimer{border-left:3px solid #edbe7b;background:#364052;padding:10px 12px;border-radius:6px;margin-top:15px;font-size:12px}
.station-detail-photo img{max-width:1000px;height:auto;aspect-ratio:1000/620;object-fit:contain;margin:auto}
@media(max-width:540px){.station-stall-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.station-detail-tablist{gap:5px}.station-view-tab{padding:9px 10px;font-size:11px}.station-plan-section{padding:10px}}

.station-detail-photo.compact{height:128px;overflow:hidden}.station-detail-photo.compact img{width:100%;height:128px;max-width:none;object-fit:cover;object-position:center 53%}

/* v5.16: larger original site-image for Hauptwache, no artificial upscaling. */
.station-photo.haupt img{object-position:center 48%;filter:saturate(1) contrast(1.025)}
.station-detail-photo.haupt-detail img{width:100%;max-width:none;height:auto;max-height:none;aspect-ratio:1774/887;object-fit:contain;background:#112233}
.station-detail-photo.haupt-detail.compact img{width:100%;height:128px;max-width:none;object-fit:cover;object-position:center 35%}
.station-image-action{margin:0 0 14px;font-size:12px}
.station-image-action a{color:#b4e4f7;text-underline-offset:3px;overflow-wrap:anywhere}

/* v5.17 – Realistische Bilder bleiben unverändert; ergänzende klar gekennzeichnete Grundstückspläne */
.station-neighbors{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:9px 0 13px;color:#a6cfdd;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.station-neighbors button{padding:9px 12px;background:#274459;border-color:#52748a;font-size:12px;text-transform:none;letter-spacing:0;white-space:nowrap}
.station-image-action{border-left:3px solid #7dbed2;padding:8px 12px;background:#213b50;border-radius:4px;margin-bottom:10px}
.station-site-view>p{font-size:12px;color:#bed4df;line-height:1.55}
.station-site-svg{display:block;width:100%;max-width:920px;height:auto;margin:15px auto;border-radius:9px;box-shadow:0 6px 24px #0b1828a0}
@media(max-width:540px){.station-neighbors{font-size:10px}.station-neighbors button{padding:9px 6px;font-size:10px}.station-image-action{font-size:11px}}


/* v5.18: Stadtteil- und Gefahrenatlas, ausdrücklich schematische Planungsdaten */
.city-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(255px,.8fr);gap:16px;margin-top:14px;align-items:start}
.city-map-shell,.city-info,.city-borough,.city-caveats{border:1px solid var(--border);background:#1d3040;border-radius:12px;padding:14px}
.city-map-head{display:flex;justify-content:space-between;gap:12px;color:#cbdde7;font-size:12px;flex-wrap:wrap;margin-bottom:8px}
.city-atlas{display:block;width:100%;height:auto;max-height:64vh;background:#273d43;border:1px solid #436477;border-radius:9px}
.city-block{fill:#334953;stroke:#b0bdae;stroke-width:.75;opacity:.76}
.city-minor-roads path{stroke:#d0d4c4;stroke-width:8;stroke-linecap:round}
.city-district-marker{cursor:pointer}
.city-district-marker circle{fill:#173c48;stroke:#e7ece9;stroke-width:2.5}
.city-district-marker text{font:700 11px system-ui;fill:white;pointer-events:none}
.city-district-marker.selected circle{fill:#b94a4b;stroke:#fff0af;stroke-width:3}
.city-district-marker:hover circle,.city-district-marker:focus-visible circle{fill:#b36a31;stroke:#fff}
.city-info h2{margin:12px 0}
.city-info p{font-size:13px;color:#cbdbe5}
.city-info label{display:block;margin-bottom:6px;font-size:12px;color:#a7c2d5}
.city-info button{margin-bottom:10px}
.city-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:12px}
.city-borough h3{margin:0 0 10px;font-size:15px}
.city-row{display:block;width:100%;text-align:left;margin:4px 0;padding:8px 10px}
.city-row b,.city-row small{display:block}
.city-row small{font-size:11px;color:#abc4d4;margin-top:3px}
.city-row.selected{border-color:#e6ac6c;background:#394b55}
.city-caveats{margin-top:15px}
.city-caveats h3{margin:0 0 8px}
.city-caveats p{margin:6px 0;font-size:12px;color:#b5cbd5}
.city-context{border-left:3px solid #6f9fa3;background:#192f39;padding:9px;margin:8px 0}
@media(max-width:820px){.city-layout{grid-template-columns:1fr}.city-atlas{max-height:none}.city-info{order:2}}

.city-risk-notice{border-left:3px solid #d8a86b;padding:10px;background:#172a36;border-radius:4px}
.city-places-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.city-place-labels text{fill:#182f35;stroke:#c8d6c7;stroke-width:2.5px;paint-order:stroke;font:700 13px system-ui;letter-spacing:.05em}
.mapviewport.tactical .city-places-overlay{opacity:.35}

/* v5.19: gemeinsame Stadtgrafik und übersichtliche taktische Netzschicht */
.road-overlay .road-edge{stroke-width:5;opacity:.2;stroke:#eadcb9}
.mapviewport.tactical .road-overlay .road-edge{stroke-width:7;opacity:.96}
.road-overlay .road-edge.closed,.mapviewport.tactical .road-overlay .road-edge.closed{stroke:#d53c48;opacity:1;stroke-dasharray:10 7}
.mapviewport:not(.tactical) .road-overlay .bridge-symbol{opacity:.55}
.mapviewport.tactical .road-overlay .bridge-symbol{opacity:1}
.velra-map-labels text,.velra-landmark-labels text{pointer-events:none}
.mapviewport.tactical #velraBaseMap{filter:grayscale(.45) contrast(.94) brightness(.82)}
.city-atlas .velra-map-labels{opacity:.88}
.city-atlas .velra-landmark-labels{opacity:.8}

/* v5.19 – Stadtatlas: Modellrisiken und bestehende Brücken direkt bedienbar */
.city-district-marker.increased-risk:not(.selected) circle{fill:#a97530;stroke:#fff0b5;stroke-width:3}
.city-district-marker.increased-risk:not(.selected) text{fill:#fff}
.city-traffic-panel{border:1px solid var(--border);background:#1b3040;border-radius:12px;padding:15px;margin-top:15px}
.city-traffic-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.city-traffic-head h2{margin:0 0 4px}
.city-traffic-badges{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}
.city-bridge-details{border-top:1px solid #3b5364;margin-top:12px;padding-top:11px}
.city-bridge-details summary{cursor:pointer;color:#bfddec;font-weight:700;min-height:35px}
.city-bridge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:8px;margin:8px 0}
.city-bridge-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #345066;border-radius:8px;padding:10px;background:#1e3849}
.city-bridge-item span{min-width:0}.city-bridge-item b,.city-bridge-item small{display:block}.city-bridge-item small{color:#a6bfcd;font-size:11px;margin-top:4px}
.city-bridge-item button{min-width:74px;flex-shrink:0}.city-bridge-item button.bridge-closed{background:#894044;border-color:#ba666a}
.city-route-warning{border-left:4px solid #eea567;background:#473333;color:#ffe2c7;padding:12px;border-radius:5px;font-size:12px}
.city-map-shell{overflow:hidden}
.city-atlas .city-district-marker{outline:none}
.city-atlas .city-district-marker:focus-visible circle{stroke:#ffeb93;stroke-width:4}

/* v5.19: Lagewechsel im Stadtatlas und sichere Unterbrechung von Anfahrten */
.city-condition-controls{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}
.city-condition-controls label{display:flex;gap:6px;align-items:center;font-size:12px;color:#d9e9ee}
.city-condition-controls select{max-width:185px;min-height:36px;border:1px solid #577082;border-radius:7px;padding:6px;background:#142d3c;color:#fff}
.marker.vehicle-moving.route-interrupted{outline:3px solid #eab264;background:#8f4c2f!important}

/* V5.20: Wachennummern als stabile, lesbare Standortkennungen */
.station-number{display:inline-block;font-size:.8em;line-height:1.25;letter-spacing:.07em;font-variant-numeric:tabular-nums;padding:.16em .5em;margin-right:.24em;border-radius:5px;color:#fff;background:#304c69;border:1px solid #7189a0;white-space:nowrap}
.station-detail-content h2 .station-number{font-size:.7em;vertical-align:middle}

/* v5.21 – navigation first: focused main views and expandable menu */
.toolbar{position:sticky;top:0;z-index:50;align-items:center;flex-wrap:nowrap;gap:10px;padding:7px 10px;box-shadow:0 5px 18px #0003}
.tabs{flex:1;min-width:0;gap:4px;scrollbar-width:thin;scroll-behavior:smooth}
.tab{font-size:12px;min-height:40px;padding:10px 13px;border-radius:8px;flex-shrink:0}
.tab.active{background:#38556e;border-color:#7ca6bd;box-shadow:inset 0 -2px 0 #8ce0f0}
.toolbar-right{display:flex;gap:9px;align-items:center;flex-shrink:0}
.menu-container{position:relative}
.menu-toggle{display:flex;align-items:center;gap:7px;white-space:nowrap;border-color:#53768c;background:#253f54;min-height:39px;font-weight:700}
.app-menu{position:absolute;z-index:150;right:0;top:calc(100% + 8px);width:min(300px,calc(100vw - 18px));padding:10px;background:#203446;border:1px solid #597389;border-radius:12px;box-shadow:0 18px 35px #0009}
.app-menu[hidden]{display:none!important}
.app-menu button,.app-menu a{display:block;width:100%;text-align:left;text-decoration:none;color:#edf5f8;border-radius:7px;padding:11px 12px;background:transparent;border:0;font-weight:650;font-size:13px}
.app-menu button:hover,.app-menu a:hover,.app-menu button:focus-visible,.app-menu a:focus-visible{background:#34516a}
.menu-label{color:#adc5d7;font-size:10px;font-weight:800;letter-spacing:.14em;margin:6px 12px}
.menu-hint{border-top:1px solid #456078;color:#b0c8d8;font-size:11px;padding:12px;margin-top:6px}
.fleet-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:16px 0}
.fleet-stat{padding:16px;border:1px solid var(--border);border-radius:10px;background:#203447;display:flex;flex-direction:column;gap:4px}
.fleet-stat b{font-size:25px;font-variant-numeric:tabular-nums;color:#f1f7f9}
.fleet-stat span{font-size:12px;color:var(--muted)}
.fleet-filters{border:1px solid var(--border);border-radius:9px;margin:18px 0 11px;background:#192c3d}
.fleet-filters>summary{padding:13px 16px;font-weight:750;cursor:pointer;list-style:none;min-height:45px}
.fleet-filters>summary::-webkit-details-marker{display:none}
.fleet-filters>summary:after{content:'▾';float:right;color:var(--blue)}
.fleet-filters:not([open])>summary:after{content:'▸'}
#fleetFilterSummary{font-size:11px;font-weight:400;color:var(--muted);margin-left:9px}
.fleet-filter-grid{display:grid;grid-template-columns:minmax(210px,2fr) minmax(150px,1fr) minmax(160px,1fr) auto;gap:12px;align-items:end;padding:3px 15px 16px}
.fleet-filter-grid label{display:block;font-size:11px;color:#b8cde0;font-weight:650}
.fleet-filter-grid input,.fleet-filter-grid select{display:block;margin-top:6px;min-height:39px}
.fleet-reset{min-height:39px;white-space:nowrap}
.fleet-results{padding:6px 0 10px}
.fleet-id,.fleet-status-note{display:block;margin-top:5px;color:#95adbd;font-size:10px}
.fleet-empty{text-align:center;color:#c9dbe6;padding:30px 10px}
#fahrzeuge tbody td{vertical-align:middle}
#fahrzeuge tbody tr:hover{background:#233b4d}
#fahrzeuge .statusselect{min-width:68px}
@media(max-width:1050px){.toolbar{flex-wrap:wrap}.tabs{width:100%;order:1;overflow-x:auto}.toolbar-right{width:100%;order:0;justify-content:space-between}.simcontrols{flex-wrap:wrap}.fleet-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.topbar{flex-wrap:wrap}.brand{min-width:0}.clockbox{order:3}.toolbar{padding:5px 8px}.tab{font-size:11px;padding:9px 12px;min-height:38px}.menu-toggle{min-height:36px}.simcontrols #simstate{display:none}.simcontrols button{padding:6px 7px}.fleet-stats{gap:5px}.fleet-stat{padding:10px}.fleet-stat b{font-size:19px}.fleet-stat span{font-size:10px}.fleet-filter-grid{grid-template-columns:1fr}.stdpage{padding:13px}#fahrzeuge .sectionheading{align-items:start;flex-direction:column}}

/* In der Leitstelle bleibt die Fahrzeugauswahl bei Nichtgebrauch eingeklappt. */
.dispatch-picker-details{border:1px solid var(--border);background:#1b3042;border-radius:9px;margin-top:12px;padding:0 10px 10px}
.dispatch-picker-details:not([open]){padding-bottom:0}
.dispatch-picker-details>summary{padding:12px 3px;cursor:pointer;font-weight:750;color:#e3f1f8}
.dispatch-picker-details>summary::marker{color:#85c3d8}
#dispatchPickerSummary{float:right;color:#aac4d2;font-size:11px;font-weight:500;margin-left:6px}

/* v5.22 – Einstellungen, Farben und Bedienbarkeit */
:root{color-scheme:dark;--brand:#e75461;--th:#4f9fe8;--rd:#ed9448}
:root[data-theme="light"]{color-scheme:light;--bg:#edf2f6;--pan:#fff;--elev:#f4f8fb;--border:#d1dce7;--txt:#17293c;--muted:#526779;--red:#bf3344;--amber:#b76315;--green:#167557;--blue:#1767ba}
:root[data-theme="light"] body{background:var(--bg);color:var(--txt)}
:root[data-theme="light"] .topbar,:root[data-theme="light"] .toolbar{background:#fff;border-color:var(--border)}
:root[data-theme="light"] .brand small,:root[data-theme="light"] .clockbox small{color:#526779}
:root[data-theme="light"] button,:root[data-theme="light"] input,:root[data-theme="light"] select,:root[data-theme="light"] textarea{background:#f2f6fa;color:#20354a;border-color:#c5d5e1}
:root[data-theme="light"] button:hover{background:#e1ecf5}
:root[data-theme="light"] .tab.active,:root[data-theme="light"] .seg button.active{background:#d6eafc;color:#07559b;border-color:#85b8d9}
:root[data-theme="light"] .leftpanel,:root[data-theme="light"] .rightpanel,:root[data-theme="light"] .panelhead{background:#fff;color:#17293c;border-color:#d9e3eb}
:root[data-theme="light"] .panelbody,:root[data-theme="light"] .card,:root[data-theme="light"] .stdpage,:root[data-theme="light"] .city-map-shell,:root[data-theme="light"] .city-info,:root[data-theme="light"] .city-borough,:root[data-theme="light"] .city-caveats{background:#fff;color:#17293c;border-color:#d6e0e9}
:root[data-theme="light"] .card small,:root[data-theme="light"] .muted,:root[data-theme="light"] .hint,:root[data-theme="light"] .sectiontitle,:root[data-theme="light"] .city-info p{color:#526779}
:root[data-theme="light"] .vehrow,:root[data-theme="light"] .aaooption,:root[data-theme="light"] .feedentry,:root[data-theme="light"] .tablewrap,:root[data-theme="light"] .fleet-filters,:root[data-theme="light"] .fleet-stat,:root[data-theme="light"] .city-traffic-panel,:root[data-theme="light"] .city-bridge-item,:root[data-theme="light"] .station-plan-section,:root[data-theme="light"] .station-room-card,:root[data-theme="light"] .station-stall{background:#f7fafd;color:#203449;border-color:#ccdce9}
:root[data-theme="light"] .station-card-body,:root[data-theme="light"] #stationCards>.station-card,:root[data-theme="light"] .station-detail-dialog,:root[data-theme="light"] .station-detail-content{background:#fff;color:#203449;border-color:#cbdce9}
:root[data-theme="light"] .station-detail-content p,:root[data-theme="light"] .station-detail-content li,:root[data-theme="light"] .station-plan-section>p,:root[data-theme="light"] .station-site-view>p,:root[data-theme="light"] .station-rooms-view>p,:root[data-theme="light"] .station-fleetline{color:#415a70}
:root[data-theme="light"] .station-stall-vehicle,:root[data-theme="light"] .station-room-card h4{color:#17374f}
:root[data-theme="light"] .app-menu,:root[data-theme="light"] .map-layer-panel{background:#fff;color:#1e3447;border:1px solid #cbd9e6;box-shadow:0 8px 24px #20354a2b}
:root[data-theme="light"] .app-menu a,:root[data-theme="light"] .app-menu button{color:#1b4869}
:root[data-theme="light"] .mapbottom{background:#eaf1f7;color:#294357}
:root[data-theme="light"] .station-view-tab{background:#eaf2f9;color:#234d6b}
:root[data-theme="light"] .station-view-tab.active{background:#d0eafb;color:#064d82}
:root[data-theme="light"] .station-vehicle-chips span{background:#e4eef7;color:#18364b}
:root[data-theme="light"] .pill{color:#274358;background:#e9f1f8;border-color:#c1d5e3}
:root[data-theme="light"] .sectionheading p,:root[data-theme="light"] .station-count-check{color:#425e73}
:root[data-theme="light"] #stationCards .station-card-body .station-open{background:#e4f1fc;color:#145787;border-color:#adcce3}
:root[data-theme="light"] .logo,:root[data-theme="light"] .accent{background:#cc3546!important;color:#fff!important}
:root[data-theme="light"] .incoming{background:#ffe9ea!important;color:#a91f36!important;border-color:#e8b2ba!important}
:root[data-theme="light"] .incoming.ringing{animation:blink 1.5s linear infinite}
:root[data-theme="light"] .eyebrow{background:#fffde9f0;color:#1c4056}
:root[data-theme="light"] .seg{background:#fffffff0}
:root[data-theme="light"] .seg button{background:transparent;color:#1d3b4e}
/* Toneinstellungen */
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(245px,1fr));gap:15px;margin:18px 0 24px}
.setting-card{background:var(--pan);border:1px solid var(--border);padding:19px;border-radius:12px;color:var(--txt)}
.setting-card h2{font-size:17px;margin:0 0 8px}.setting-card hr{border:0;border-top:1px solid var(--border);margin:15px 0}
.setting-card label{display:block;margin:10px 0 5px;font-weight:600}
.setting-switch{display:flex!important;align-items:center;gap:10px}.setting-switch input{width:21px;height:21px;accent-color:#1675c3;flex:0 0 auto}
.setting-card input[type=range]{padding:0;accent-color:#1878cc}.setting-card output{float:right;font-weight:600}
.setting-mode{display:flex;gap:8px;margin:15px 0}.setting-mode button[aria-pressed=true]{background:#2b6787;color:#fff;border-color:#81bada}
/* Kartenbedienung */
.map-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.map-actions>button{background:#132432eb;border-color:#5c8198;color:#fff}
.map-layer-panel{position:absolute;right:16px;top:58px;z-index:12;display:grid;gap:10px;padding:14px;background:#132738f8;border:1px solid #6790a5;border-radius:10px;min-width:240px;box-shadow:0 10px 30px #0008}
.map-layer-panel[hidden]{display:none!important}.map-layer-panel label{display:flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap}.map-layer-panel input{width:18px;height:18px;accent-color:#398be1}.map-layer-panel small{max-width:250px;color:var(--muted);font-size:11px;white-space:normal}
.mapviewport.layer-hide-stations .marker:not(.incident):not(.vehicle-moving):not(.hazard),.mapviewport.layer-hide-vehicles .marker.vehicle-moving,.mapviewport.layer-hide-incidents .marker.incident,.mapviewport.layer-hide-hazards .marker.hazard{display:none!important}
.marker.incident.incident-brand{background:#c63743;border-color:#fff}.marker.incident.incident-th{background:#216dbd;border-color:#fff}.marker.incident.incident-rd{background:#d77822;border-color:#fff}.marker.incident.incident-other{background:#53657a}
.marker.hazard{background:#edb44d;color:#102337;border-color:#34485c;padding:2px 4px;font-size:10px;z-index:1}
.map-maximized{position:fixed!important;inset:72px 10px 10px!important;z-index:80!important;border:2px solid #718fa4;border-radius:12px;box-shadow:0 0 0 100vmax #031421d8}.map-maximized .mapviewport{min-height:0}
.mapviewport.aerial-simulation{background:#4d6852}
.mapviewport.aerial-simulation #velraBaseMap{filter:sepia(.22) saturate(1.8) contrast(1.14) brightness(.78)}
.mapviewport.aerial-simulation .road-overlay{filter:contrast(1.3) saturate(.9)}
.mapviewport.aerial-simulation .city-places-overlay{filter:brightness(.8)}
:root[data-theme="light"] .mapviewport.aerial-simulation{background:#566d4b}
#themeToggle,#soundToggle,#mapLayersToggle,#mapFullscreen{min-height:37px;white-space:nowrap}
@media(max-width:880px){.settings-grid{grid-template-columns:1fr}.mapoverlay{top:8px;left:8px;right:8px}.map-actions{gap:4px}.map-actions .seg button{padding:7px 6px;font-size:10px}.map-actions>button{padding:7px 5px;font-size:10px}.eyebrow{font-size:9px;padding:8px 5px}.map-layer-panel{right:6px;top:54px}}
@media(max-width:600px){.settings-grid{grid-template-columns:1fr}.mapoverlay{flex-direction:column;align-items:flex-start;gap:5px}.map-actions{justify-content:flex-start}.map-layer-panel{left:8px;right:auto;top:90px}.header-actions{flex-wrap:wrap}.header-actions button{min-height:39px}.map-maximized{inset:8px!important}.toolbar .tab{min-height:42px}}
@media(prefers-reduced-motion:reduce){.incoming.ringing,.marker.incident{animation:none!important}}

/* Einheitliche Einsatzarten sowie helle Tabellen/Dialoge */
.incidentbtn.incident-brand{border-left:4px solid #e5515c}.incidentbtn.incident-th{border-left:4px solid #438fea}.incidentbtn.incident-rd{border-left:4px solid #ed9448}
:root[data-theme="light"] th{background:#e4edf4;color:#2b4d65;border-color:#c9dce8}
:root[data-theme="light"] td{border-color:#d8e3eb;color:#253b4e}
:root[data-theme="light"] tr:nth-child(even){background:#f2f6fa}
:root[data-theme="light"] .dialogbubble{background:#eaf1f7;color:#1d3449}
:root[data-theme="light"] .fileBtn{background:#f2f6fa;color:#223c50;border-color:#c5d5e1}
:root[data-theme="light"] .city-atlas{background:#edf1e6}
:root[data-theme="light"] .station-neighbors{color:#2d536b}
:root[data-theme="light"] .station-image-action{background:#e8f2fa;color:#27495f}
:root[data-theme="light"] .station-image-action a{color:#1267a2}
:root[data-theme="light"] .setting-card{background:#fff}
:root[data-theme="light"] .setting-card hr{border-color:#d8e2eb}
:root[data-theme="light"] .station-detail-dialog{background:#fff;color:#233a4b}
:root[data-theme="light"] .station-detail-photo.compact{background:#e5edf4}
:root[data-theme="light"] .station-detail-lead{color:#315e7c}
:root[data-theme="light"] .city-info label,:root[data-theme="light"] .fleet-filters label{color:#284658}

/* v5.23: Kennzahlen des neuen 18-Stadtteil-Atlas */
.city-district-numbers { display:flex; flex-wrap:wrap; gap:7px; margin:10px 0; }
.city-borough h3 small { font-weight:normal; color:var(--muted, #8d9ca5); font-size:.75em; }

/* Sprachbedienung: auch bei schmaler iPad-Seitenleiste erreichbar. */
.speech-inline-tools{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:5px 0 9px;font-size:12px}
.speech-inline-tools button{font-size:12px;padding:5px 8px;min-height:28px}
.speech-role-label{display:inline-block;opacity:.8;margin-inline-start:5px}
.speech-repeat-small{display:inline-flex;align-items:center;justify-content:center;margin-left:5px;padding:2px 5px;border-radius:6px;min-width:27px;min-height:27px;font-size:12px;vertical-align:middle}
.dialogbubble .speech-repeat-small{float:right;margin-left:8px}
.feedentry .speech-repeat-small{float:right}
#voiceSettings .setting-switch{display:block;margin:8px 0}
#voiceSettings input[type=range]{display:block;width:100%;max-width:490px;margin:3px 0 12px}
#voiceSettings .actionline{flex-wrap:wrap;gap:6px}
#voiceSettings .actionline select{min-width:145px}
@media(max-width:800px){#voiceSettings .actionline button{min-height:38px} .speech-inline-tools button{min-height:35px}}


/* v5.25: Spielsteuerung */
.game-control-grid{display:grid;grid-template-columns:repeat(2,minmax(310px,1fr));gap:16px;margin:18px 0}
.game-control-grid .setting-card{margin:0;min-width:0}
.game-control-grid .setting-card h2{margin-bottom:8px}
.game-control-grid .setting-card>p{line-height:1.48;color:var(--muted)}
.game-time-direction{display:flex;gap:18px;flex-wrap:wrap;border:1px solid var(--border);padding:10px 14px;border-radius:9px;margin:19px 0}
.game-time-direction legend{color:var(--muted);font-size:12px;font-weight:700;padding:0 7px}
.game-time-direction label{display:flex;align-items:center;gap:7px;margin:0;cursor:pointer}
.game-time-direction input{width:auto;min-width:0;accent-color:#2f9ad8}
.game-main-label{font-size:12px}
#clockSlider{accent-color:#36a3df;padding:0;width:100%;height:25px}
.game-slider-marks{display:flex;justify-content:space-between;gap:4px;color:var(--muted);font-size:10px;margin-top:2px}
.game-time-display{font-size:19px;font-weight:800;color:var(--txt);padding:18px 12px;margin:13px 0 6px;border:1px solid var(--border);border-radius:10px;background:var(--elev);text-align:center}
.game-mix-rows{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.game-mix-entry{display:grid;grid-template-columns:1fr 75px;align-items:start;gap:7px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.game-mix-entry .game-mix-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:750}
.game-mix-dot{width:12px;height:12px;border-radius:4px;flex-shrink:0;background:var(--dot)}
.game-mix-description{font-size:11px;color:var(--muted);margin:4px 0}
.game-mix-entry input[type=range]{width:100%;accent-color:var(--dot);padding:0;min-height:22px}
.game-mix-number{display:flex;align-items:center;gap:4px}
.game-mix-number input{width:55px;min-width:0;text-align:center;padding:7px 3px;font-variant-numeric:tabular-nums}
.game-mix-number span{font-size:12px;color:var(--muted)}
.game-mix-bar{height:18px;border:1px solid var(--border);border-radius:8px;overflow:hidden;display:flex;margin:19px 0 5px;background:var(--elev)}
.game-mix-bar span{height:100%;transition:width .13s ease-out}
.game-total{text-align:right;font-size:12px;margin:5px 0 12px}
.game-total strong{color:var(--green)}
.game-presets button{flex:1;min-width:100px}
.game-control-foot{margin-bottom:24px}
:root[data-theme=light] .game-time-display{background:#e8f1f8;color:#18384d}
@media(max-width:870px){.game-control-grid{grid-template-columns:1fr}}
@media(max-width:510px){.game-control-grid{grid-template-columns:1fr}.game-mix-entry{grid-template-columns:minmax(0,1fr) 68px}.game-time-display{font-size:16px}.game-time-direction{gap:12px}}

/* v5.26 · Fahrzeugregister: Wachen-Akkordeon und kombinierte Filter */
#fahrzeuge .fleet-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}
#fahrzeuge .fleet-filter-grid label{min-width:0}
#fahrzeuge .fleet-filters{margin-bottom:10px}
#fahrzeuge .fleet-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
#fahrzeuge .fleet-expand-actions{display:flex;gap:7px;flex-wrap:wrap}
#fahrzeuge .fleet-expand-actions button{font-size:12px;padding:7px 10px}
#fahrzeuge .fleet-groups{display:grid;gap:9px}
#fahrzeuge .fleet-station-group{background:var(--pan);border:1px solid var(--border);border-radius:10px;overflow:hidden}
#fahrzeuge .fleet-station-group>summary{display:flex;align-items:center;gap:12px;cursor:pointer;padding:14px 16px;min-height:59px;list-style:none;user-select:none}
#fahrzeuge .fleet-station-group>summary::-webkit-details-marker{display:none}
#fahrzeuge .fleet-station-group>summary:hover{background:var(--elev)}
#fahrzeuge .fleet-station-group>summary:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
#fahrzeuge .fleet-group-chevron{font-size:19px;color:var(--blue);transition:transform .16s;line-height:1}
#fahrzeuge details[open] .fleet-group-chevron{transform:rotate(90deg)}
#fahrzeuge .fleet-group-name{font-weight:750;font-size:14px;flex:1;min-width:130px}
#fahrzeuge .fleet-group-code{display:inline-block;font-weight:800;border-radius:5px;background:var(--elev);border:1px solid var(--border);font-size:12px;padding:4px 6px;margin-right:10px;font-variant-numeric:tabular-nums}
#fahrzeuge .fleet-group-count{font-size:12px;white-space:nowrap;color:var(--txt);background:var(--elev);padding:5px 9px;border-radius:18px}
#fahrzeuge .fleet-group-ready{font-size:11px;color:var(--green);white-space:nowrap;min-width:110px;text-align:right}
#fahrzeuge .fleet-group-body{padding:0 10px 10px}
#fahrzeuge .fleet-group-body .tablewrap{background:var(--bg);max-height:440px;overflow:auto}
#fahrzeuge .fleet-group-body th{top:0;z-index:1;white-space:nowrap}
#fahrzeuge .fleet-group-body td{min-width:65px}
#fahrzeuge .fleet-tag{display:inline-block;border:1px solid var(--border);border-radius:6px;padding:4px 7px;background:var(--elev);white-space:nowrap;font-weight:650;font-size:11px}
#fahrzeuge .fleet-no-results{text-align:center;padding:25px;border:1px dashed var(--border);border-radius:9px;color:var(--muted)}
:root[data-theme="light"] #fahrzeuge .fleet-station-group{background:#fff}
:root[data-theme="light"] #fahrzeuge .fleet-group-body .tablewrap{background:#f7fafd}
@media(max-width:900px){#fahrzeuge .fleet-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:590px){#fahrzeuge .fleet-filter-grid{grid-template-columns:1fr}#fahrzeuge .fleet-station-group>summary{padding:11px 10px;gap:7px;flex-wrap:wrap}#fahrzeuge .fleet-group-name{min-width:80%;flex:1}#fahrzeuge .fleet-group-count,#fahrzeuge .fleet-group-ready{font-size:10px;min-width:0}#fahrzeuge .fleet-group-body{padding:0 5px 7px}#fahrzeuge .fleet-group-code{margin-right:6px}}

/* v5.27 · aufklappbare AAO inkl. Flughafen */
.aao-page{max-width:1280px}
.aao-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 15px;margin:16px 0;border:1px solid var(--border);border-radius:12px;background:var(--panel,#213446)}
.aao-tools label{font-size:12px;font-weight:700}
.aao-tools input{flex:1;min-width:min(230px,100%);max-width:440px}
.aao-tools span{font-size:12px;color:var(--muted)}
.aao-groups{display:grid;gap:12px}
.aao-group{border:1px solid var(--border);border-radius:12px;background:#1f3245;overflow:hidden;color:var(--text,#eef5f9)}
.aao-group summary{display:flex;gap:12px;align-items:center;cursor:pointer;padding:17px 18px;list-style:none;min-height:65px;user-select:none}
.aao-group summary::-webkit-details-marker{display:none}
.aao-group summary:hover{background:#314759}
.aao-group summary:focus-visible{outline:3px solid #8bbce8;outline-offset:-3px}
.aao-group-title{display:flex;align-items:center;gap:12px;flex:1;min-width:0;flex-wrap:wrap}
.aao-group-title b{font-size:16px}
.aao-group-title small{font-size:12px;color:var(--muted);flex-basis:100%;padding-left:40px}
.aao-group-icon{font-size:20px;min-width:25px}
.aao-group-count{font-size:12px;white-space:nowrap;color:var(--muted)}
.aao-chevron{font-size:25px;line-height:1;transition:transform .15s}
.aao-group[open] .aao-chevron{transform:rotate(180deg)}
.aao-group-content{padding:0 17px 17px}
.aao-group-content .tablewrap{max-height:none}
.aao-group-content td{vertical-align:top;line-height:1.5}
.aao-group-content th:nth-child(1){width:105px}
.aao-group-content th:nth-child(3){width:31%}
.aao-airport-note{background:#163b4c;border:1px solid #477183;border-radius:9px;padding:13px 15px;margin:5px 0 15px;font-size:12px;line-height:1.55}
.aao-airport-note p{margin:6px 0}
:root[data-theme="light"] .aao-tools,:root[data-theme="light"] .aao-group{background:#fff;color:#203449;border-color:#cad9e6}
:root[data-theme="light"] .aao-group summary:hover{background:#ecf3fa}
:root[data-theme="light"] .aao-airport-note{background:#eef7fb;color:#27445a;border-color:#aecfdf}
@media(max-width:700px){.aao-tools{align-items:stretch}.aao-tools label,.aao-tools input,.aao-tools span{width:100%;max-width:none}.aao-group summary{padding:12px}.aao-group-title small{padding-left:0}.aao-group-content{padding:0 9px 12px}.aao-vehicles{min-width:145px}}
.aao-airport-staff{margin-top:10px;border-top:1px solid #638394;padding-top:9px}
.aao-airport-staff summary{min-height:0;display:list-item;list-style:disclosure-closed;margin:4px 0;padding:7px 8px;font-weight:700;cursor:pointer}
.aao-airport-staff[open] summary{list-style:disclosure-open}
.aao-airport-staff td,.aao-airport-staff th{font-size:11px}
.aao-more{margin:8px 0;padding:6px;border:1px solid var(--border);border-radius:8px}
.aao-more summary{cursor:pointer;padding:8px 5px;font-size:12px;font-weight:700}
.incidentbtn.incident-airport{border-left:3px solid #2db5b1}
.marker.incident-airport{background:#107f89}

/* v5.36 zusammenhängendes schematisches Verkehrsnetz */
.network-edge{fill:none;stroke:#e8ddbd;stroke-width:2.0;opacity:.62;stroke-linejoin:round;pointer-events:stroke}
.network-edge.kind-ring{stroke:#f4da99;stroke-width:2.6;opacity:.9}
.network-edge.kind-gewerbe{stroke:#cda57f;stroke-width:2.8;opacity:.85}
.network-edge.kind-autobahn{stroke:#f4d57c;stroke-width:4.5;opacity:.9}
.network-edge.kind-altstadt{stroke-width:1.1;stroke-dasharray:3 2}
.network-edge.blocked{stroke:#e54d49;stroke-width:4;stroke-dasharray:7 5;opacity:1}
.network-highway{fill:none;stroke:#c6ac69;stroke-width:5;stroke-dasharray:12 4;opacity:.73;pointer-events:none}
.network-canal{fill:none;stroke:#559daf;stroke-width:25;stroke-linecap:round;stroke-linejoin:round;opacity:.93;pointer-events:none}
.network-basin{fill:#559daf;opacity:.96;pointer-events:none}
.network-label{fill:#173e59;font-size:12px;font-weight:750;paint-order:stroke;stroke:#d9e3d1;stroke-width:2;pointer-events:none}
.network-bridge circle{fill:#f4efdb;stroke:#6c6744;stroke-width:2}
.network-bridge text{font-size:12px;fill:#304b5d;font-weight:800;pointer-events:none}
.network-bridge.closed circle{stroke:#c83b33;stroke-width:3;fill:#ffc8bc}
.network-trams{opacity:.9;pointer-events:none}
.tram-line polyline{fill:none;stroke-width:3.1;stroke-dasharray:3 5;stroke-linecap:round;stroke-linejoin:round}
.tram-line circle{stroke:#f7f4eb;stroke-width:1.5}
.tram-1 polyline,.tram-1 circle{stroke:#de5959;fill:#de5959}
.tram-2 polyline,.tram-2 circle{stroke:#2d75c9;fill:#2d75c9}
.tram-3 polyline,.tram-3 circle{stroke:#249b75;fill:#249b75}
.tram-4 polyline,.tram-4 circle{stroke:#cb8a32;fill:#cb8a32}
.tram-5 polyline,.tram-5 circle{stroke:#9a62b7;fill:#9a62b7}
.tram-6 polyline,.tram-6 circle{stroke:#d364a2;fill:#d364a2}
.network-depot rect{fill:#cfd2d1;stroke:#465a61;stroke-width:2}
.network-risk circle{fill:#773b28;stroke:#ffecd2;stroke-width:1.5}
.network-risk text{font-size:8px;font-weight:850;fill:white;pointer-events:none}
.network-risk.type-wasser circle{fill:#157da4}
.network-risk.type-gefahrgut circle{fill:#a05728}
.network-risk.type-veranstaltung circle{fill:#7d4c95}
.network-risk.type-klinik circle{fill:#28715d}
.network-risk.type-flug circle{fill:#376d93}
.network-risk.type-schiene circle{fill:#56545a}
.hide-roads .network-roads,.hide-roads .network-waters,.hide-roads .network-bridges{display:none}
.hide-trams .network-trams{display:none}
.hide-risk26 .network-riskpins{display:none}
.city-network-panel{border:1px solid var(--line,#8395a6);border-radius:12px;padding:14px;margin:16px 0;background:var(--panel,#152b39)}
.city-network-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.network-risk-list{max-height:420px;overflow:auto;padding-right:4px}
.network-item{padding:7px 0;border-bottom:1px solid #74818b44;line-height:1.35}
.network-item small{display:block;opacity:.78;margin-top:3px}
@media(max-width:850px){.city-network-grid{grid-template-columns:1fr}}

.tram-line polyline{fill:none!important}

.network-canal-bridge rect{fill:#efd6aa;stroke:#614d28;stroke-width:2}.network-canal-bridge text{fill:#3c3a30;font-size:11px;font-weight:800}

.network-canal-bridge.closed rect{stroke:#cc3b31;stroke-width:3;fill:#ffcbbd}

/* v5.38 – kartografischer Feinschliff, keine Änderung am Straßengraphen */
.maparea{background:#96a995}
.mapviewport{background:#9aa995}
#velraBaseMap{shape-rendering:geometricPrecision;text-rendering:optimizeLegibility}
.mapviewport:not(.tactical):not(.aerial-simulation) #velraBaseMap{filter:saturate(1.08) contrast(1.045)}
.mapviewport.aerial-simulation #velraBaseMap{filter:saturate(1.35) contrast(1.15) brightness(.9)}
.mapoverlay{align-items:flex-start;gap:8px}
.map-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.map-actions button,.mapbottom button{backdrop-filter:blur(4px)}
.map-legend-v538{z-index:4;position:absolute;left:12px;bottom:53px;background:#122831ec;color:#e6ece5;border:1px solid #64828a88;border-radius:9px;box-shadow:0 3px 15px #12202a36;padding:8px 11px;display:flex;flex-wrap:wrap;gap:8px 13px;font-size:10px;pointer-events:none;max-width:min(590px,calc(100% - 24px))}
.map-legend-v538 span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.legend-swatch{width:12px;height:9px;display:inline-block;border-radius:2px;border:1px solid #dbe7df80}
.legend-swatch.park{background:#648c69}.legend-swatch.water{background:#418fa9}.legend-swatch.road{background:#e9e5d6}.legend-swatch.tram{background:#edb66d}.legend-swatch.risk{background:#d76c54}
.mapviewport.tactical ~ .map-legend-v538{background:#152331ec}
@media(max-width:690px){.map-legend-v538{font-size:9px;gap:5px 9px;bottom:50px}.eyebrow{max-width:140px;line-height:1.25}.mapoverlay{top:6px;left:6px;right:6px}.map-actions button{font-size:10px;padding:6px}}

/* v5.40 – Gebäudedetails, nur Visualisierung; Einsatz- und Routingdaten unberührt */
.map-detail-pin{position:absolute;transform:translate(-50%,-50%);width:25px;height:25px;z-index:6;display:flex;align-items:center;justify-content:center;border:2px solid #fff9;background:#193848ed;color:#fff;border-radius:50%;font-size:18px;line-height:1;padding:0;box-shadow:0 2px 8px #0009}
.map-detail-pin:hover,.map-detail-pin:focus-visible{background:#c2493a;transform:translate(-50%,-50%) scale(1.13)}
.mapviewport.layer-hide-details .map-detail-pin{display:none!important}
#v540-local-landmarks{isolation:isolate}
.city-detail-section{margin:20px 0;padding:15px;border:1px solid var(--border);border-radius:12px;background:var(--pan)}
.city-detail-heading h2{margin:0 0 5px;font-size:19px}
.city-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:12px 0}
.city-detail-tile{padding:0;overflow:hidden;background:var(--elev);text-align:left;border-radius:9px;border:1px solid var(--border);display:flex;flex-direction:column}
.city-detail-tile:hover{border-color:#7ec5d9;box-shadow:0 5px 14px #0005}
.city-detail-tile img{display:block;width:100%;height:120px;object-fit:cover}
.city-detail-tile>span{display:block;padding:10px}
.city-detail-tile strong,.city-detail-tile small{display:block}
.city-detail-tile strong{font-size:13px}
.city-detail-tile small{font-size:11px;color:var(--muted);margin-top:4px}
.city-detail-dialog{color:var(--txt);background:var(--pan);border:1px solid #7c9eb2;border-radius:12px;padding:0;width:min(1080px,95vw);max-height:94dvh;overflow:auto;box-shadow:0 15px 60px #050e16b9}
.city-detail-dialog::backdrop{background:#06111bc9}
.city-detail-dialog-bar{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;gap:10px;background:#152a3c;color:#f5f9fd;position:sticky;top:0;z-index:2}
.city-detail-dialog-bar b{font-size:12px;letter-spacing:.09em}
.city-detail-dialog-bar button{padding:8px 10px}
.city-detail-body{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(230px,.75fr);align-items:stretch;gap:0}
.city-detail-photo{background:#152331;min-width:0;display:flex;align-items:center}
.city-detail-photo img{display:block;width:100%;height:auto;max-height:calc(94dvh - 48px);object-fit:contain}
.city-detail-caption{padding:20px;overflow:auto;max-height:calc(94dvh - 48px)}
.city-detail-caption h2{font-size:20px;line-height:1.16;margin:15px 0}
.city-detail-caption p{line-height:1.5;font-size:13px}
.city-detail-notice{border-left:3px solid #d8aa60;background:#b79c7030;padding:10px 11px}
.city-detail-fact{color:var(--muted)}
.city-detail-nav{display:flex;align-items:center;justify-content:space-between;gap:5px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:14px;margin-top:18px}
.city-detail-nav button{font-size:11px;padding:8px}
.city-detail-nav span{font-size:12px;color:var(--muted)}
:root[data-theme="light"] .city-detail-dialog{background:#f6f9fb;color:#172c3e}
@media(max-width:730px){.city-detail-body{grid-template-columns:1fr}.city-detail-photo img{max-height:55dvh}.city-detail-caption{max-height:none;padding:14px}.city-detail-dialog{width:98vw;max-height:96dvh}.city-detail-dialog-bar b{font-size:10px}}

/* v5.45: Beide Bildkarten belegen dieselbe 1000 x 760 grosse Kartenfläche.
   Marker und Interaktionen bleiben unverändert; die Bilder sind noch nicht exakt georeferenziert. */
#mapInner .bb-map-backdrop{position:absolute;inset:0;width:1000px;height:760px;object-fit:fill;pointer-events:none;user-select:none;display:none;z-index:0}
#mapViewport.bb-atlas #badBarbisAtlas,#mapViewport.bb-satellite #badBarbisSatellite{display:block}
#mapViewport.bb-pictorial #velraBaseMap,#mapViewport.bb-pictorial #roadOverlay,#mapViewport.bb-pictorial #cityPlacesOverlay{visibility:hidden}
#mapViewport.bb-pictorial #markers{position:relative;z-index:4}
#mapViewport.bb-pictorial .marker{box-shadow:0 2px 8px #000b}
@media(max-width:760px){.mapoverlay{flex-wrap:wrap;gap:5px}.map-actions .seg{flex-wrap:wrap}.map-actions .seg button{font-size:11px;padding:6px 7px}}

/* v5.46: immutable approved raster foundation; separately rendered check points */
#v546-risk-overlay{position:absolute;inset:0;width:1000px;height:760px;z-index:3;pointer-events:none}
#v546-risk-overlay .v546-risk{position:absolute;transform:translate(-50%,-50%);width:10px;height:10px;border:2px solid white;border-radius:50%;background:#edc046;box-shadow:0 0 0 2px #423000b8;pointer-events:auto;cursor:help}
#mapViewport:not(.bb-pictorial) #v546-risk-overlay,#mapViewport.layer-hide-risk26 #v546-risk-overlay{display:none!important}
#mapViewport.bb-pictorial #markers .marker:not(.incident):not(.vehicle-moving):not(.hazard):not(.map-detail-pin){z-index:4;font-size:10px;padding:3px 5px}

/* v5.47 – only interactive overlays; original map images are untouched */
#v547-location-layer{position:absolute;inset:0;width:1000px;height:760px;z-index:8;pointer-events:none}
#v547-location-layer .v547-point{position:absolute;transform:translate(-50%,-50%);width:27px;height:27px;padding:0;border-radius:50%;border:2px solid #fff;color:#fff;font:800 10px system-ui,sans-serif;box-shadow:0 2px 6px #0009;pointer-events:auto;cursor:pointer;touch-action:manipulation}
#v547-location-layer .v547-bf{background:#ba2d36}#v547-location-layer .v547-ff{background:#c57422}#v547-location-layer .v547-airport{background:#7b3246;font-size:17px}#v547-location-layer .v547-drk{background:#fff;color:#b52e3b;font-size:22px;border-color:#b52e3b}#v547-location-layer .v547-klinik{background:#2775aa;font-size:14px}
#v547-location-layer .v547-point:hover,#v547-location-layer .v547-point:focus-visible{outline:3px solid #fbe293;outline-offset:2px;z-index:9}
#v547-location-layer .v547-point[hidden]{display:none!important}
#mapViewport.bb-pictorial #markers .marker.v547-existing-label{display:none!important}
#v547-location-panel{position:absolute;right:12px;bottom:64px;z-index:25;width:min(300px,calc(100% - 24px));background:#142635f5;color:#f4f8fb;border:1px solid #8ba8b9;border-radius:12px;padding:14px;box-shadow:0 7px 24px #000b;font-size:13px;line-height:1.45;pointer-events:auto}
#v547-location-panel[hidden]{display:none!important}#v547-location-panel strong{display:block;padding-right:30px;font-size:16px}#v547-location-panel .v547-sub{color:#a9d8ef;font-size:12px;margin:6px 0}#v547-location-panel .v547-coords{font-variant-numeric:tabular-nums;font-weight:700}#v547-location-panel p{font-size:12px;margin:9px 0 0;color:#d3dce4}#v547-location-panel .v547-panel-close{float:right;padding:3px 7px}
#mapLayerPanel .v547-controls{border-top:1px solid #5d798b;margin-top:10px;padding-top:9px}#mapLayerPanel .v547-controls strong{display:block;margin-bottom:6px}

/* v5.50: einzige freigegebene Stadtkarte – alte Vektorkarte niemals anzeigen */
#mapViewport #badBarbisAtlas{display:block!important}
#mapViewport #velraBaseMap,#mapViewport #roadOverlay,#mapViewport #cityPlacesOverlay{visibility:hidden!important}
.map-current-label{font-size:12px;font-weight:700;padding:7px 9px;display:inline-block}

/* v5.54: kompakte aufklappbare Leitstellenbereiche */
.ls-fold{margin:0 0 9px;border:1px solid var(--border);border-radius:9px;background:var(--pan);overflow:visible}
.ls-fold-title{display:list-item;list-style:none;cursor:pointer;padding:12px 13px;font-size:11px;font-weight:800;letter-spacing:.07em;color:var(--txt);background:#263d50;border-radius:8px;user-select:none}
.ls-fold-title::-webkit-details-marker{display:none}
.ls-fold-title:after{content:'▸';float:right;color:var(--blue);font-size:14px}
.ls-fold[open]>.ls-fold-title:after{content:'▾'}
.ls-fold[open]>.ls-fold-title{border-radius:8px 8px 0 0;border-bottom:1px solid var(--border)}
.ls-fold-content{padding:9px 10px 12px;min-width:0}
.ls-fold-content>.actionline{margin-top:7px}
.ls-fold-title:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
#dispatch{position:sticky;bottom:0;z-index:2;box-shadow:0 -4px 14px #0004}
:root[data-theme="light"] .ls-fold{background:#fff;border-color:#cbd8e3}
:root[data-theme="light"] .ls-fold-title{color:#18344d;background:#edf3f8}

/* v5.55: iPad/iPhone – kein vertikaler Scroll-Container innerhalb der Fahrzeugseite. */
html, body{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}
#fahrzeuge,#wachen,#aao,#kliniken,#stadt,#spielsteuerung,#protokoll{overflow:visible;min-height:0;touch-action:pan-y}
#fahrzeuge .fleet-groups,#fahrzeuge .fleet-station-group,#fahrzeuge .fleet-group-body{min-height:0;overscroll-behavior-y:auto}
#fahrzeuge .fleet-group-body .tablewrap{max-height:none!important;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overscroll-behavior:auto}
#fahrzeuge .fleet-station-group>summary,.ls-fold-title,.aao-group>summary{touch-action:pan-y;min-height:44px}
.leftpanel .panelbody,.rightpanel .panelbody{min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior-y:contain}
#vehiclePicker{max-height:none;overflow:visible}
@media (max-width:760px){#fahrzeuge .fleet-group-body .tablewrap{max-width:100%}#fahrzeuge .fleet-toolbar{position:relative}#fahrzeuge th,#fahrzeuge td{padding:8px 7px}}

/* v5.56: Fahrzeugfoto-Galerie */
.galerie-page{min-width:0}.gallery-filters{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0 16px}.gallery-filters input{flex:2 1 210px}.gallery-filters select{flex:1 1 145px}.gallery-filters button{flex:0 1 auto}.gallery-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,310px);gap:15px;align-items:start}.gallery-groups{min-width:0}.gallery-section{margin-bottom:12px;background:var(--panel, #182333);border:1px solid rgba(130,150,175,.22);border-radius:11px;overflow:hidden}.gallery-section>summary{padding:13px 15px;cursor:pointer;font-weight:700;display:flex;justify-content:space-between;gap:10px;list-style-position:inside}.gallery-section>summary:hover{background:rgba(125,145,165,.12)}.gallery-tiles{padding:10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:10px}.gallery-tile{padding:0;overflow:hidden;border:1px solid rgba(130,150,175,.3);border-radius:9px;text-align:left;background:rgba(125,145,165,.08);color:inherit;cursor:pointer}.gallery-tile:hover,.gallery-tile:focus-visible,.gallery-tile.selected{outline:2px solid #e33d46;outline-offset:-2px}.gallery-tile img{width:100%;aspect-ratio:2.3;object-fit:cover;display:block;background:#394555}.gallery-tile-content{padding:8px 9px}.gallery-tile-title{font-weight:750;font-size:14px}.gallery-tile-meta{font-size:11px;opacity:.76;margin-top:4px}.gallery-tile-status{font-size:12px;margin-top:5px}.gallery-detail{position:sticky;top:15px;background:var(--panel,#182333);border-radius:12px;border:1px solid rgba(130,150,175,.3);padding:14px;min-width:0}.gallery-detail img{width:100%;aspect-ratio:2.15;object-fit:cover;border-radius:8px}.gallery-detail h2{font-size:20px;margin:9px 0}.gallery-detail dl{display:grid;grid-template-columns:minmax(80px,1fr) 1.5fr;gap:8px;font-size:13px}.gallery-detail dt{opacity:.7}.gallery-detail dd{margin:0;overflow-wrap:anywhere}.gallery-illustration{font-size:11px;opacity:.7;margin:4px 0 14px}.gallery-empty{padding:24px;opacity:.78}@media(max-width:800px){.gallery-layout{grid-template-columns:minmax(0,1fr)}.gallery-detail{position:static;order:-1}.gallery-tiles{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}}@media(max-width:480px){.gallery-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-filters>*{min-width:0}.gallery-detail dl{font-size:12px}}

/* Kartenupdate Stadt & Gefahren: selbe Referenzkarte, skalierbar ohne Abschneiden */
.city-map-shell { overflow-x:auto; overflow-y:visible; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; }
.city-map-shell .city-atlas { max-height:none; height:auto; min-width:0; background:transparent; }

/* v5.61 Funk-Rückfragen */
.radio-queries{padding:10px;border-radius:10px;background:rgba(105,116,134,.12);margin-bottom:9px}.radio-queries select{width:100%;margin:5px 0 8px;min-height:35px}.radio-query-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.radio-query-buttons button{font-size:11px;white-space:normal;min-height:38px;padding:5px 3px}@media(max-width:650px){.radio-query-buttons{grid-template-columns:1fr}}

/* v5.62 Funkprioritäten und separate Nachforderungsbestätigung */
.radio-prio{display:inline-flex;font-size:10px;font-weight:800;padding:2px 5px;border-radius:4px;background:#d9e4ec;color:#253c4d;margin-right:4px;white-space:nowrap}.radio-prio.erhöht{background:#ffdfa2;color:#684100}.radio-prio.dringend{background:#ffc7c9;color:#831d22}.radio-needs{margin-top:10px;padding:9px;border:1px solid var(--border,#687b87);border-radius:8px}.radio-need{display:flex;gap:6px;align-items:center;flex-wrap:wrap;border-top:1px solid #7c8b8933;padding:6px 0;font-size:12px}.radio-need span:nth-child(2){flex:1;min-width:150px}.radio-need button{font-size:11px}.radio-feed-dringend{border-left:3px solid #d9444f}.radio-feed-erhöht{border-left:3px solid #d99b31}

/* v5.63: Sprechwunsch-Tasten auf Touchgeräten */
.radio-need button{min-height:38px}.radio-needs .radio-need{align-items:center}.radio-queries .radio-query-buttons+ .radio-query-buttons{margin-top:6px;grid-template-columns:1fr}

/* v5.64 simulation frequency settings */
.setting-range-ends{display:flex;justify-content:space-between;gap:3px;flex-wrap:wrap;font-size:11px;color:var(--muted,#7b8490);margin:-2px 0 12px}.setting-range-ends span{white-space:nowrap}#simulationFrequencySettings input[type=range]{max-width:100%;accent-color:#df514e}#simulationFrequencySettings output{font-weight:750}

/* v5.69: ein gemeinsames Spielfeld; ohne Leeraum unter der Zeitsteuerung */
.game-control-panel{margin:16px 0;padding:18px}
.game-control-heading h2{margin:0 0 5px!important}
.game-control-heading p{margin:0;color:var(--muted);font-size:12px}
.game-control-panel .game-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;margin:14px 0 0}
.game-control-panel .game-control-section{min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--pan);padding:16px}
.game-control-panel .game-control-section h2{margin:0 0 8px;font-size:16px}
.game-control-panel .game-control-section p{line-height:1.45}
.game-control-panel .game-mix-card{grid-column:1 / -1}
.game-control-panel .game-mix-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 22px}
.game-save-panel{margin:16px 0 30px;padding:18px}
.game-save-panel h2{margin:0 0 8px}
.game-save-panel .actionline{gap:10px}
@media(max-width:850px){.game-control-panel .game-control-grid{grid-template-columns:1fr}.game-control-panel .game-mix-card{grid-column:auto}}
@media(max-width:580px){.game-control-panel{padding:11px}.game-control-panel .game-control-section{padding:12px}.game-control-panel .game-mix-rows{grid-template-columns:1fr}}

/* v5.70 – kompakte medizinische Disponentenübersicht */
.dispatch-medical-overview{border:1px solid var(--border, #68747a);border-radius:12px;padding:12px;margin:12px 0;background:rgba(80,120,145,.08)}
.dispatch-medical-overview h3{margin:0 0 10px}.dispatch-medical-counts{display:flex;gap:8px;flex-wrap:wrap}.dispatch-medical-counts span{border-radius:8px;padding:8px 10px;background:rgba(100,125,145,.15);font-size:.91rem}.dispatch-medical-counts b{font-size:1.13rem}.dispatch-patient-card{border-left:4px solid #758997}.dispatch-triage{display:inline-block;padding:3px 7px;border-radius:6px;font-weight:700;font-size:.8rem;margin-left:6px}.triage-red{background:#a82532;color:#fff}.triage-yellow{background:#e8bd40;color:#171717}.triage-green{background:#27824d;color:#fff}.dispatch-patient-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:8px 12px;margin:11px 0}.dispatch-patient-details span{font-size:.9rem}.dispatch-next{border-radius:7px;padding:8px 10px;background:rgba(125,145,160,.13)}

/* v5.81: ausklappbare, vergroesserbare manuelle Disposition */
.dispatch-toolbar{position:sticky;top:0;z-index:12;background:var(--panel,#162435);padding:10px;border:1px solid rgba(130,160,190,.35);border-radius:10px;margin-bottom:10px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center}
.dispatch-view-buttons{display:flex;gap:5px;flex-wrap:wrap}.dispatch-view-buttons button{font-size:12px;padding:7px 9px}.dispatch-view-buttons button[aria-pressed="true"]{outline:2px solid #56aaf1}
.dispatch-compact #dispatchWorkArea{display:none}.dispatch-large{position:fixed!important;inset:4vh 3vw!important;width:94vw!important;max-width:none!important;height:92vh!important;z-index:900!important;box-shadow:0 0 0 100vmax rgba(0,0,0,.65),0 12px 40px #000!important;overflow-y:auto!important;background:var(--panel,#142234)}
.dispatch-large .panelbody{max-height:none!important;overflow:visible!important}.dispatch-large #dispatchWorkArea{display:grid;grid-template-columns:minmax(250px,1fr) minmax(340px,1.5fr);column-gap:18px;align-items:start}.dispatch-large #aaoSuggest,.dispatch-large #etaRecommendations{grid-column:1}.dispatch-large #vehiclePicker,.dispatch-large #dispatch,.dispatch-large .dispatch-selection-bar{grid-column:2}.dispatch-large #vehiclePicker{grid-row:1 / span 5}.dispatch-large .dispatch-toolbar{grid-column:1/-1}
.dispatch-vehicle-scroll{max-height:430px;overflow:auto}.dispatch-large .dispatch-vehicle-scroll{max-height:60vh}.dispatch-vehicle{padding:10px 6px;border-bottom:1px solid rgba(150,170,190,.22)}.dispatch-vehicle label{align-items:flex-start}.dispatch-vehicle label span{min-width:0;flex:1}.dispatch-aao{display:inline-block;font-size:10px;font-style:normal;color:#b7edce;border:1px solid #458b6a;border-radius:5px;padding:2px 5px;margin-left:5px}.dispatch-times{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.dispatch-times span{display:flex;flex-direction:column;gap:2px;background:rgba(105,150,190,.12);border-radius:6px;padding:5px 8px;min-width:95px}.dispatch-times small{font-size:10px;opacity:.8}.dispatch-times b{font-size:13px}.dispatch-unavailable{font-size:11px;opacity:.75;margin-top:5px}.dispatch-selection-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px;background:rgba(75,130,180,.13);border-radius:7px;margin:10px 0}.dispatch-selection-bar small{opacity:.8}
@media(max-width:800px){.dispatch-large{inset:1vh 1vw!important;width:98vw!important;height:98vh!important}.dispatch-large #dispatchWorkArea{display:block}.dispatch-large .dispatch-vehicle-scroll{max-height:44vh}.dispatch-view-buttons button{font-size:11px;padding:9px 7px}}
/* v5.82: optische Konsolidierung, ohne Änderungen an Karte oder Simulationslogik */
.fw582-quickbar{display:flex;align-items:center;gap:9px;padding:9px 13px;background:#122335;border-bottom:1px solid #36536b;flex-wrap:wrap}
.fw582-quicktitle{display:flex;flex-direction:column;margin-right:auto;gap:1px}.fw582-quicktitle strong{font-size:11px;letter-spacing:.12em;color:#dbeaf4}.fw582-quicktitle small{font-size:10px;color:#a3bccb}
.fw582-quickbar button{display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 14px;font-size:12px;font-weight:700;border-radius:10px;background:#21394e;border:1px solid #3d5b72}
.fw582-quickbar button:first-of-type{border-color:#9e464b;background:#422934}.fw582-quickbar button b{background:#d13f4b;color:#fff;border-radius:99px;min-width:23px;padding:2px 6px}
.fw582-quickbar button:active{transform:scale(.98)}
#leitstelle .layout{height:calc(100dvh - 190px);min-height:410px}
#leitstelle .panelhead{background:#1c3449;padding:13px 14px}
#leitstelle .sectiontitle{font-size:11px;color:#b2d5e8;margin-top:19px}
#leitstelle .rightpanel .panelbody,#leitstelle .leftpanel .panelbody{padding:14px}
.dispatch-toolbar{background:#20394f;border:1px solid #42647e;border-radius:11px;padding:10px;margin:12px 0}
.dispatch-view-buttons{display:flex;gap:5px;flex-wrap:wrap}.dispatch-view-buttons button[aria-pressed="true"]{background:#356d95;border-color:#76b7e4;color:#fff}
#dispatch{min-height:48px;font-size:14px;position:sticky;bottom:0;z-index:5;box-shadow:0 -5px 18px #0a1626a6}
.dispatch-large #dispatch{position:sticky;bottom:0}
.gallery-tiles{grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:13px}
.gallery-tile img{aspect-ratio:1.75;object-fit:contain;background:#20303c}
.gallery-detail img{aspect-ratio:1.65;object-fit:contain;background:#20303c}
.gallery-tile-content{padding:11px}.gallery-tile-title{font-size:15px}.gallery-tile-status{color:#a4dcbf}
.gallery-section{border-radius:13px}.gallery-section>summary{padding:16px}
@media(max-width:850px){.fw582-quicktitle{width:100%;margin:0}.fw582-quickbar{gap:6px;padding:7px}.fw582-quickbar button{flex:1;justify-content:center;padding:9px 7px;min-height:44px}.fw582-quickbar button span{font-size:11px}#leitstelle .layout{height:calc(100dvh - 240px)}}
@media(max-width:520px){.fw582-quickbar button span{display:none}.fw582-quickbar button{font-size:17px}.gallery-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}

/* v6.2.2: übersichtliche Werkstatt ohne Material-Mikromanagement */
.fw-workshop{display:grid;gap:14px}.fw-workshop .fw-panel{padding:16px;border:1px solid var(--border,#66778866);border-radius:12px;background:var(--panel,#172b3c);color:inherit}.fw-workshop h2{font-size:1.1rem;margin:0 0 10px}.fw-workshop .fw-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid #8090a03b;padding:12px 0}.fw-workshop .fw-row:first-of-type{border-top:0}.fw-workshop .fw-actions{display:flex;gap:8px;flex-wrap:wrap}.fw-workshop button,.fw-workshop select{padding:8px;border-radius:7px}.fw-workshop .fw-muted{opacity:.78;font-size:.9rem}.fw-workshop .fw-green{color:#60cda4}.fw-workshop .fw-warn{color:#eeb868}.fw-workshop .fw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.fw-workshop .fw-small{font-size:.86rem}.fw-workshop .fw-row b{display:block}@media(max-width:750px){.fw-workshop .fw-panel{padding:12px}.fw-workshop .fw-row{align-items:stretch}.fw-workshop .fw-actions{width:100%}.fw-workshop button{min-height:42px}}

/* Fahrzeugsteckbriefe v6.2.3 */
.fw623-steckbrief{border-top:1px solid var(--line,#aaa);margin-top:1rem;padding-top:.75rem}.fw623-steckbrief p{line-height:1.5;margin:.55rem 0}.fw623-steckbrief h3{margin:.25rem 0 .65rem}

/* v6.25: Module in der Leitstelle sichtbar und auf Touchgeräten bedienbar */
.fw625-module-shortcut{font-size:12px;white-space:normal;min-height:36px;max-width:155px}
.fw625-module-highlight{outline:3px solid #e5a34a;outline-offset:4px;border-radius:8px}

/* Einsatzchronik eigenständig scrollbar, auch per iPad-Touch */
.incident-chronicle-scroll{max-height:300px;min-height:56px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding:4px 10px 4px 2px;border:1px solid #53626b;border-radius:8px}
.incident-chronicle-scroll:focus-visible{outline:2px solid #7fc6e8;outline-offset:2px}
.city-tram-overview{margin:14px 0;padding:14px;border:1px solid #647780;border-radius:10px}
.city-tram-overview ul{columns:2;column-gap:24px;padding-left:20px}
@media(max-width:800px){.incident-chronicle-scroll{max-height:240px}.city-tram-overview ul{columns:1}}

/* v6.2 Abschlussphase: iPad-Bedienbarkeit und klare Hierarchie, ohne neue Funktionen */
#leitstelle .panelhead{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px}
#leitstelle .panelhead b{font-size:13px;letter-spacing:.035em}
#leitstelle .sectiontitle{margin-top:14px;margin-bottom:8px;letter-spacing:.035em}
#leitstelle .panelbody{padding-bottom:24px}
#leitstelle .dispatch-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
#leitstelle #dispatch{min-height:48px;font-weight:750;font-size:15px;margin-top:10px}
#leitstelle #vehicleSearch{min-width:0;flex:1 1 180px}
#leitstelle #orgFilter{flex:0 1 165px;min-width:110px}
#leitstelle .dispatch-view-buttons button{min-height:40px}
#leitstelle .panelhead .closepane,#leitstelle .edge,#leitstelle #newIncident{min-height:40px}
#appMenu [data-menu-tab]{min-height:44px}
@media (pointer:coarse){
  #leitstelle button,#primaryTabs button,.simcontrols button,#menuToggle{min-height:44px}
  #leitstelle input,#leitstelle select{min-height:44px;font-size:16px}
  #leitstelle .panelbody{scroll-padding-bottom:24px}
}
@media(max-width:900px){
  #leitstelle .dispatch-view-buttons{width:100%}
  #leitstelle .dispatch-view-buttons button{flex:1 1 95px}
  #leitstelle .map-current-label{display:none}
}

/* v6.2.6: larger, single-purpose workspaces; original interactive nodes are reused. */
#leitstelle .fw582-quickbar{display:none}
.fw626-bar{display:flex;gap:8px;flex-wrap:wrap;padding:10px 12px;background:#122638;border-bottom:1px solid #486078}
.fw626-bar button{flex:1 1 145px;min-height:48px;font-size:14px;font-weight:700;border:1px solid #4c708c;border-radius:10px;background:#213c52;color:#f4f8fb;padding:10px}
.fw626-bar button:focus-visible,.fw626-overlay button:focus-visible{outline:3px solid #f0c66e;outline-offset:2px}
.fw626-overlay[hidden]{display:none!important}
.fw626-overlay{position:fixed;inset:0;z-index:1100;background:#07111bd9;display:flex;align-items:center;justify-content:center;padding:clamp(8px,2vw,24px)}
.fw626-window{display:flex;flex-direction:column;width:min(1120px,100%);height:min(900px,96dvh);background:#14293a;color:#f1f5fa;border:1px solid #52738b;border-radius:15px;box-shadow:0 15px 70px #000a;overflow:hidden}
.fw626-window>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid #4d6477;font-size:19px}
.fw626-window>header button{min-height:46px;padding:9px 18px}
.fw626-content{flex:1;min-height:0;overflow:auto;padding:20px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.fw626-content #calls,.fw626-content #incidentList{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.fw626-content #calls>*,.fw626-content #incidentList>*{flex:1 1 240px;max-width:100%}
.fw626-content #conversation,.fw626-content #incidentEditor,.fw626-content #radioFeed{max-height:none;overflow:visible}
.fw626-content input,.fw626-content select,.fw626-content textarea{min-height:46px;font-size:16px}
.fw626-content button{min-height:46px}
@media(max-width:750px){.fw626-bar{gap:6px;padding:7px}.fw626-bar button{flex:1 1 125px;font-size:12px}.fw626-window{height:98dvh;border-radius:9px}.fw626-content{padding:12px}.fw626-window>header{padding:10px 12px;font-size:16px}}

/* Bedienkorrekturen: Startknopf, Kartenebenen und unverzerrte Kartenzeichen */
.start-simulation{background:#226a4c;border-color:#62ad83;color:#fff;font-weight:800;min-width:74px}
.start-simulation[aria-pressed="true"]{background:#86562a;border-color:#caa16b}
/* Referenzkarte 1448×1086 = 4:3; innerhalb des 1000×760-Koordinatensystems ohne Dehnung darstellen. */
#mapInner .bb-map-backdrop{object-fit:contain!important}
/* Symbol und Beschriftung getrennt: das Symbol bleibt kreisrund. */
#markers .marker .station-symbol{display:inline-grid;place-items:center;width:22px;height:22px;min-width:22px;border-radius:50%;background:#fff;color:#18364a;vertical-align:middle;margin-right:5px;line-height:1;font-size:12px}
#mapViewport.bb-pictorial #markers .marker:not(.incident):not(.vehicle-moving):not(.hazard):not(.map-detail-pin){display:inline-flex;align-items:center;border-radius:20px}
/* Alle Ebenen können unabhängig voneinander ein- und ausgeschaltet werden. */
.mapviewport.layer-hide-stations #markers .marker[data-marker]{display:none!important}
.mapviewport.layer-hide-vehicles #markers .marker.vehicle-moving{display:none!important}
.mapviewport.layer-hide-incidents #markers .marker.incident{display:none!important}
.mapviewport.layer-hide-hazards #markers .marker.hazard{display:none!important}
/* Werkstatt: funktionales Dashboard nach freigegebenem Entwurf */
#werkstatt{--ws-bg:#091c2d;--ws-panel:#0c2539;--ws-border:#28455b;color:#eaf3fc}#werkstatt .sectionheading{display:none}#werkstatt .fw-workshop{display:block}.ws-banner{min-height:154px;background:linear-gradient(90deg,#071827ed 0%,#071827a8 36%,#0718270b 100%),url('werkstatt-banner.jpg') center 47%/cover;border:1px solid var(--ws-border);border-radius:10px;margin-bottom:12px;display:flex;align-items:center;padding:26px 35px}.ws-banner h1{font-size:clamp(26px,3vw,42px);letter-spacing:.035em;color:#fff;margin:0 0 4px}.ws-banner p{margin:0;color:#e4eef8}.ws-dashboard{display:grid;grid-template-columns:minmax(245px,1.05fr) minmax(350px,1.8fr) minmax(250px,1.03fr);gap:12px;align-items:start}.ws-panel{background:linear-gradient(145deg,#0d283d,#081b2c);border:1px solid var(--ws-border);border-radius:9px;padding:15px;min-width:0;box-shadow:0 4px 14px #0002}.ws-panel h2{font-size:1.12rem!important;margin:0 0 13px!important;color:#f6fbff}.ws-count{display:inline-grid;place-items:center;border-radius:50%;background:#cb2435;color:white;font-size:.84rem;min-width:25px;height:25px;margin-left:6px}.ws-list{display:grid;gap:8px}.ws-vehicle,.ws-queue-row{width:100%;border:1px solid #34516a;background:#0b2235;color:inherit;border-radius:7px;text-align:left;cursor:pointer}.ws-vehicle{display:flex;align-items:center;gap:10px;padding:9px!important;min-height:85px}.ws-vehicle.selected{border:2px solid #f34452;background:#28202d}.ws-vehicle-icon,.ws-reserve-icon{display:grid;place-items:center;flex:0 0 55px;height:57px;background:#183449;border-radius:5px;font-size:32px}.ws-vehicle-text{flex:1;min-width:0}.ws-vehicle-text strong,.ws-vehicle-text small,.ws-reserve small{display:block}.ws-vehicle-text small,.ws-reserve small{font-size:.75rem;opacity:.82;margin-top:3px}.ws-vehicle-meta{display:grid;justify-items:end;gap:7px}.ws-vehicle-meta small{font-size:.74rem}.ws-tag{border-radius:5px;padding:5px 7px;font-size:.74rem;font-weight:700;white-space:nowrap}.ws-tag.red{background:#bf2736;color:white}.ws-tag.amber{background:#df9d29;color:#091522}.ws-tag.green{background:#12583c;color:#a6f4ce}.ws-report{margin-top:15px;padding-top:12px;border-top:1px solid var(--ws-border);display:grid;gap:8px}.ws-report label{font-weight:700}.ws-report select{width:100%;background:#17344b;color:#fff;border:1px solid #547087}.ws-report button,.ws-actionbar button,.ws-reserve button{background:#294760;color:#fff;border:1px solid #6d8499;border-radius:6px;min-height:43px;padding:9px 12px;cursor:pointer}.ws-report button{background:#a82a37}.ws-detail-head h2{font-size:1.65rem!important;margin-bottom:2px!important}.ws-detail-head p{margin:0 0 13px;color:#bed4e6}.ws-detail-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:12px}.ws-detail-visual{background:linear-gradient(140deg,#294154,#0c2030);border-radius:8px;min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center}.ws-truck-illustration{font-size:clamp(70px,9vw,140px)}.ws-detail-visual p{margin:0;font-weight:700}.ws-facts{background:#0d273b;border:1px solid #2b4960;border-radius:7px;padding:8px 12px}.ws-facts>div:not(.ws-progress){display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #365066;font-size:.88rem}.ws-facts>div span{color:#d1dfeb}.ws-facts b{text-align:right}.ws-progress{height:12px;border-radius:10px;background:#29445a;overflow:hidden;display:block;width:100%}.ws-progress i{display:block;height:100%;border-radius:10px;background:#f04455}.ws-description{display:flex;gap:14px;background:#102e44;border:1px solid #2c485f;border-radius:7px;padding:13px;margin:12px 0;line-height:1.5}.ws-actionbar{display:flex;flex-wrap:wrap;gap:8px}.ws-actionbar button{flex:1;min-width:140px}.ws-actionbar .ws-primary{background:#b72434;border-color:#f04455}.ws-running{padding:12px;color:#75e4a5}.ws-reserve{display:flex;align-items:center;gap:9px;padding:10px 0;border-top:1px solid #30495d}.ws-reserve>span:nth-child(2){flex:1;min-width:0}.ws-reserve button{font-size:.78rem}.ws-overview{grid-column:1}.ws-stats{display:flex;gap:15px;align-items:center}.ws-donut{width:132px;height:132px;flex-shrink:0;border-radius:50%;background:conic-gradient(#29b979 var(--ws-good),#dc3c49 0);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.ws-donut:before{content:'';position:absolute;inset:20px;border-radius:50%;background:#092135}.ws-donut strong,.ws-donut small{z-index:1}.ws-donut strong{font-size:1.7rem}.ws-donut small{font-size:.66rem;text-align:center;max-width:65px}.ws-statlines{flex:1;font-size:.8rem}.ws-statlines div{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid #31475b}.ws-queue{grid-column:3;grid-row:2}.ws-queue-row{display:flex;align-items:center;gap:10px;padding:10px!important;margin-top:8px}.ws-queue-row .ws-progress{flex:1}.ws-queue-row small{white-space:nowrap}.ws-log{grid-column:2;grid-row:2}.ws-log-header,.ws-log-row{display:grid;grid-template-columns:75px 1fr;gap:10px;padding:8px;border-bottom:1px solid #29445b;font-size:.79rem}.ws-log-header{background:#17344b}.ws-log-row:nth-child(odd){background:#102b40}.ws-background{grid-column:1/-1}.ws-background p,.ws-muted{font-size:.87rem;color:#b5cbdb}.ws-positive{color:#72e6ad}.ws-empty{text-align:center;padding:50px 15px}.ws-empty span{font-size:3rem;color:#5ee0a1}@media(max-width:1200px){.ws-dashboard{grid-template-columns:minmax(240px,1fr) minmax(350px,1.6fr)}.ws-reserves{grid-column:1;grid-row:2}.ws-overview{grid-column:2;grid-row:2}.ws-queue{grid-column:1;grid-row:3}.ws-log{grid-column:2;grid-row:3}}@media(max-width:720px){.ws-dashboard{display:flex;flex-direction:column}.ws-dashboard>.ws-panel{width:100%}.ws-detail{order:-1}.ws-detail-layout{grid-template-columns:1fr}.ws-detail-visual{min-height:145px}.ws-truck-illustration{font-size:75px}.ws-banner{min-height:110px;padding:16px}.ws-banner h1{font-size:27px}.ws-vehicle{min-height:74px}}

/* Werkstatt-Fallback: Seitenüberschrift bei Ladefehler sichtbar halten. */
#werkstatt .sectionheading{display:flex!important;margin-bottom:14px}
#werkstatt .fw-workshop{display:block!important;min-height:180px}

/* iPad-Korrektur: AAO und freie Auswahl im großen Einsatzfenster stets sichtbar. */
#fw626-content #dispatchWorkArea,#fw626-content #aaoSuggest,#fw626-content #vehiclePicker{display:block!important;visibility:visible!important;max-height:none!important;opacity:1!important}
#fw626-content #dispatchWorkArea{width:100%;min-width:0;margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--pan)}
#fw626-content #dispatchWorkArea:before{content:'AAO-Vorschläge und freie Fahrzeugauswahl';display:block;font-weight:800;font-size:17px;margin-bottom:12px}
#fw626-content #vehicleSearch{min-height:44px;width:100%;max-width:100%}
/* Stationssymbole bleiben bei beliebiger Karten-/iPad-Skalierung geometrisch rund. */
#markers .marker .station-symbol{box-sizing:border-box!important;flex:0 0 24px!important;width:24px!important;min-width:24px!important;max-width:24px!important;height:24px!important;min-height:24px!important;max-height:24px!important;aspect-ratio:1/1!important;border-radius:50%!important;padding:0!important;line-height:24px!important;overflow:hidden!important;transform:none!important}
#markers .marker[data-marker]{max-width:230px;align-items:center;gap:4px}

/* Einheitliche AAO: gleiche visuelle Hierarchie für alle Stichworte */
.aao-unified{display:grid;gap:12px;padding:14px;border:1px solid #34465c;border-radius:14px;background:#101d2c;color:#edf3f9}.aao-unified-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #34465c;padding-bottom:10px}.aao-unified-head h3{margin:4px 0}.aao-unified-head small{color:#a7b7c9}.aao-summary{white-space:nowrap;background:#25364a;border-radius:9px;padding:7px 10px;font-weight:700}.aao-unified h4{margin:5px 0 0;color:#dce8f4;font-size:.93rem}.aao-minimum-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.aao-minimum-card{display:flex;flex-direction:column;gap:5px;min-height:68px;padding:11px;border:1px solid #435168;border-radius:10px;background:#1b2a3c}.aao-minimum-card strong{font-size:.9rem}.aao-minimum-card small{font-size:.78rem}.aao-met{border-left:4px solid #45b785}.aao-enroute{border-left:4px solid #e4b451}.aao-missing{border-left:4px solid #d76767}.aao-lagechange{border-left:3px solid #e4b451;padding:8px 12px;background:#293444;margin:0}.aao-unified .eta-entry{background:#192b3e;border:1px solid #34465c;border-radius:9px;padding:9px}.aao-unified details{padding:8px;border:1px solid #34465c;border-radius:9px}.aao-unified summary{cursor:pointer}@media(max-width:620px){.aao-minimum-grid{grid-template-columns:1fr}.aao-unified{padding:10px}}

/* Kartenebenen: auch die separat erzeugten 15 Standortpunkte und 26 Prüfpunkte schalten. */
#mapViewport.layer-hide-stations #v547-location-layer{display:none!important}
#mapViewport.layer-hide-stations #markers .marker[data-marker]{display:none!important}
#mapViewport.layer-hide-risk26 #v546-risk-overlay{display:none!important}
/* Standortzeichen stets kreisrund, unabhängig von Beschriftung und Browser-Button-Styling. */
#v547-location-layer .v547-point{box-sizing:border-box!important;display:grid;place-items:center;min-width:27px!important;max-width:27px!important;min-height:27px!important;max-height:27px!important;aspect-ratio:1/1!important;line-height:1!important;border-radius:50%!important;white-space:nowrap;padding:0!important}
#v547-location-layer .v547-point[hidden]{display:none!important}

/* Kartenebenen: nur tatsächlich vorhandene Overlay-Markierungen schalten. */
.map-layer-quick{display:flex;gap:8px}.map-layer-quick button{flex:1;min-width:0;padding:7px 8px;font-size:12px}

/* Karten-Feinschliff: unverzerrte Referenzkarte, saubere Bedienung (2026-10-17). */
#mapInner .bb-map-backdrop{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important}
#mapLayerPanel{width:min(290px,calc(100vw - 24px));min-width:0;max-height:min(65dvh,490px);overflow-y:auto;gap:9px;padding:14px;border-radius:12px;background:#142839f5;box-shadow:0 12px 32px #0009}
#mapLayerPanel>strong{font-size:13px;letter-spacing:.035em}
#mapLayerPanel label{min-height:34px;white-space:normal;line-height:1.3;padding:4px 2px}
#mapLayerPanel input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;margin:0}
#mapLayerPanel .map-layer-quick button{min-height:36px;font-weight:650}
#mapViewport #v547-location-layer .v547-point{width:27px!important;height:27px!important;min-width:27px!important;max-width:27px!important;min-height:27px!important;max-height:27px!important;box-sizing:border-box!important;aspect-ratio:1!important;border-radius:50%!important;flex:none!important;line-height:1!important;transform:translate(-50%,-50%);font-stretch:normal}
#mapViewport #markers .marker .station-symbol{width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;flex:0 0 22px!important;aspect-ratio:1!important;border-radius:50%!important;padding:0!important;box-sizing:border-box!important}
@media(max-width:600px){#mapLayerPanel{left:8px;right:8px;top:94px;width:auto;max-height:55dvh}.map-legend-v538{font-size:10px}}
