:root{
  --bg:#081020;
  --bg-soft:#0d1629;
  --panel:#111b31;
  --panel2:#17243e;
  --panel3:#1b2a48;
  --text:#eef4ff;
  --muted:#a8b6d4;
  --line:#2a3b5b;
  --green:#35c978;
  --red:#ff5b68;
  --orange:#f2a83b;
  --blue:#4aa3ff;
  --yellow:#ffd166;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  background:linear-gradient(180deg,#081020,#0b1020 45%,#070c18);
  color:var(--text);
  overflow:hidden;
}
.hidden,.auth-hidden{display:none!important}
button,input,select,textarea{font:inherit}
button{touch-action:manipulation}

.auth-screen{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:radial-gradient(circle at top left,#1f4477,#0b1020 58%);
}
.auth-shell{
  width:min(1120px,100%);
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:24px;
  align-items:stretch;
}
.auth-hero,.auth-card,.card,.panel{
  background:rgba(17,27,49,.97);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 18px 60px rgba(0,0,0,.30);
}
.auth-hero,.auth-card{padding:24px}
.auth-hero h1{font-size:44px;line-height:1.05;margin:0 0 10px}
.version,.small,.card-meta{color:var(--muted);font-size:13px;line-height:1.45}
.auth-tabs,.row,.status-row,.btn-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

.btn,.auth-tab,.nav-btn,.start-role-card{
  border:1px solid var(--line);
  background:#1a2643;
  color:var(--text);
  border-radius:12px;
  padding:10px 14px;
  cursor:pointer;
  font-weight:800;
  text-decoration:none;
  transition:filter .12s ease,transform .12s ease,border-color .12s ease;
}
.btn:hover,.auth-tab:hover,.nav-btn:hover,.start-role-card:hover{filter:brightness(1.12);border-color:#3d5d8a}
.btn:active,.auth-tab:active,.nav-btn:active,.start-role-card:active{transform:translateY(1px)}
.auth-tab.active,.nav-btn.active{background:var(--blue);color:#06111e}
.btn.green{background:var(--green);color:#05140b}
.btn.red{background:var(--red);color:white}
.btn.orange{background:var(--orange);color:#160d00}
.btn.dark{background:#0d1426}
.btn.full{width:100%;margin-top:10px}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:none;transform:none}

.input,select,textarea{
  width:100%;
  display:block;
  background:#0c1326;
  color:var(--text);
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px 11px;
  margin:6px 0 12px;
  outline:none;
}
.input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(74,163,255,.12)}
textarea{min-height:96px;resize:vertical}
.auth-form-title,.card-title,.modal-title{font-size:18px;font-weight:900;margin-bottom:8px}
.auth-message{margin-top:12px;padding:10px;border-radius:10px;border:1px solid var(--line)}
.auth-message.error{border-color:var(--red);color:#ffb8bf}.auth-message.ok{border-color:var(--green);color:#b9ffd6}
.start-role-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.start-role-card{text-align:left;min-height:130px}.start-role-card h3{margin:0 0 8px}

.app{display:grid;grid-template-columns:280px minmax(0,1fr);height:100vh;min-height:0}
.sidebar{background:#0a1122;border-right:1px solid var(--line);padding:16px;overflow:auto;min-height:0}
.brand{font-weight:950;font-size:20px;margin-bottom:4px}.sidebar-section{margin:14px 0}.nav-btn{display:block;width:100%;margin:7px 0;text-align:left}
.main{min-width:0;display:grid;grid-template-rows:74px minmax(0,1fr);min-height:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;border-bottom:1px solid var(--line);background:#0d1428;min-width:0}.topbar-title{font-size:20px;font-weight:950}.topbar-subtitle{color:var(--muted);font-size:13px}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:#131e36;font-size:13px;white-space:nowrap}
.content{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:0;min-height:0}#map{min-height:0;height:100%;background:#101824}.panel{border-radius:0;border-width:0 0 0 1px;overflow:auto;padding:16px;min-height:0}.panel h2{margin:0 0 12px}.panel-scroll{max-height:calc(100vh - 130px);overflow:auto;padding-right:8px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.card{padding:14px;margin-bottom:12px}.card .btn-row{margin-top:10px}.danger{color:#ffb8bf}.ok{color:#b9ffd6}.warn{color:#ffe2a8}.hint{padding:10px;border-radius:12px;background:#0c1326;border:1px dashed var(--line);color:var(--muted);font-size:13px;margin:8px 0}.progress{height:9px;background:#091126;border-radius:99px;overflow:hidden;border:1px solid var(--line);margin-top:7px}.bar{height:100%;background:linear-gradient(90deg,var(--green),var(--blue));width:0}.log{max-height:180px;overflow:auto}.log-entry{font-size:12px;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.06);padding:5px 0}.table{width:100%;border-collapse:collapse;font-size:13px}.table td,.table th{border-bottom:1px solid var(--line);padding:7px;text-align:left;vertical-align:top}.table th{color:var(--muted)}

.toast{position:fixed;right:18px;bottom:18px;z-index:9999;background:#101a30;border:1px solid var(--line);border-left:5px solid var(--blue);padding:14px 16px;border-radius:12px;max-width:440px;box-shadow:0 12px 40px rgba(0,0,0,.4)}
#modalRoot{position:fixed;inset:0;z-index:7000}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.58);display:grid;place-items:center;padding:22px}.modal{width:min(860px,96vw);max-height:88vh;overflow:auto;background:#10192f;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 30px 90px rgba(0,0,0,.55)}.modal-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:12px}.close-btn{border:1px solid var(--line);background:#263653;color:white;border-radius:10px;padding:8px 10px;cursor:pointer}.modal-actions{display:flex;gap:10px;justify-content:flex-end;position:sticky;bottom:-16px;background:#10192f;padding:12px 0 0;margin-top:10px}

.leaflet-div-icon,.map-icon-wrap{background:transparent!important;border:0!important;overflow:visible!important}.map-icon{position:relative;transform:translateZ(0);pointer-events:auto}.map-icon .bubble{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#13213c;border:2px solid #fff;font-size:21px;box-shadow:0 4px 12px rgba(0,0,0,.42)}.map-icon .label{position:absolute;left:45px;top:4px;min-width:max-content;max-width:280px;white-space:nowrap;background:rgba(10,16,32,.94);border:1px solid var(--line);border-radius:9px;padding:4px 8px;font-size:12px;line-height:1.25;color:white;box-shadow:0 4px 14px rgba(0,0,0,.28)}.map-icon.station .bubble{background:#154b35}.map-icon.fire .bubble{background:#7b1c1c}.map-icon.tech .bubble{background:#574016}.map-icon.vehicle .bubble{background:#15406a}.map-icon.crew .bubble{background:#5a4b1e}.route-line{stroke-linecap:round}.leaflet-marker-icon{will-change:transform}

@media(max-width:1100px){.content{grid-template-columns:minmax(0,1fr) 390px}.sidebar{width:auto}}
@media(max-width:900px){body{overflow:auto}.app{grid-template-columns:1fr;height:auto;min-height:100vh}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.main{grid-template-rows:auto auto}.topbar{align-items:flex-start;flex-direction:column}.content{grid-template-columns:1fr}#map{height:58vh;min-height:420px}.panel{border-left:0}.auth-shell{grid-template-columns:1fr}.grid-2,.grid-3,.start-role-grid{grid-template-columns:1fr}.status-row{align-items:flex-start}.panel-scroll{max-height:none}}

/* v0.5.2: lesbareres Einsatzkräfte-Modal und stabilere Kartenlabels */
.dispatch-modal{width:min(920px,96vw);padding:18px}.dispatch-vehicle-list{display:grid;grid-template-columns:1fr;gap:10px;margin:12px 0}.dispatch-vehicle-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;background:#121f39;border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer}.dispatch-vehicle-card:hover{border-color:var(--blue);filter:brightness(1.06)}.dispatch-vehicle-card input{width:20px;height:20px;margin-top:3px}.vehicle-main{display:flex;flex-direction:column;gap:3px;min-width:0}.vehicle-main strong{font-size:15px;line-height:1.25}.vehicle-main small{color:var(--muted)}.vehicle-facts{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px}.vehicle-facts span{border:1px solid var(--line);background:#0b1428;border-radius:999px;padding:5px 8px;font-size:12px;color:#dce9ff}.map-icon.vehicle .label{max-width:430px;white-space:normal;min-width:260px}.map-icon.crew .label{max-width:260px;white-space:normal;min-width:150px}.map-icon.station .label{max-width:380px;white-space:normal;min-width:150px}
@media(max-width:720px){.modal{width:98vw;max-height:92vh;padding:12px}.dispatch-vehicle-card{grid-template-columns:1fr}.dispatch-vehicle-card input{order:2}.vehicle-facts span{font-size:11px}.map-icon.vehicle .label{min-width:190px;max-width:270px}}

/* v0.5.3: Leitstellen-Einsatzerstellung separat und ohne Überdeckung */
.dispatch-create-wrap{display:grid;gap:12px;min-width:0}.dispatch-create-main{overflow:visible}.req-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.req-field{min-width:0}.station-suitability{position:relative;z-index:1;overflow:hidden}.station-suitability-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.station-suitability-list{display:grid;gap:8px;max-height:32vh;overflow:auto;padding-right:6px;scrollbar-gutter:stable}.station-check-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;border:1px solid var(--line);background:#0c1428;border-radius:14px;padding:10px;position:relative;z-index:1}.station-check-card input{width:19px;height:19px;margin-top:3px}.station-check-main{display:flex;flex-direction:column;gap:3px;min-width:0}.station-check-main strong{line-height:1.25}.station-check-main small{color:var(--muted);line-height:1.35}.station-check-card.ok-card{border-color:rgba(53,201,120,.55);background:rgba(53,201,120,.08)}.station-check-card.bad-card{border-color:rgba(255,91,104,.45);background:rgba(255,91,104,.07)}.dispatch-create-actions{position:sticky;bottom:0;z-index:3;background:rgba(17,27,49,.98);box-shadow:0 -8px 28px rgba(0,0,0,.22)}.dispatch-create-actions .hint.ok{border-color:var(--green);color:#b9ffd6}.dispatch-create-actions .hint.danger{border-color:var(--red);color:#ffb8bf}.btn.orange{background:var(--orange);color:#160d00}.panel .dispatch-create-wrap .card{margin-bottom:0}
@media(max-width:720px){.req-grid{grid-template-columns:1fr}.station-suitability-list{max-height:260px}.station-suitability-head{flex-direction:column}.dispatch-create-actions{position:static}}

/* v0.5.4: Professioneller Login, bessere Modals und Live-Zeit-Anzeigen */
.professional-auth{gap:28px;align-items:stretch}.brand-mark{font-size:42px;margin-bottom:12px;filter:drop-shadow(0 10px 22px rgba(0,0,0,.35))}.auth-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px}.auth-feature-grid div{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.055);border-radius:12px;padding:10px;text-align:center;font-weight:800;font-size:13px}.auth-card{backdrop-filter:blur(12px);box-shadow:0 22px 80px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.04)}.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#0b1326;border:1px solid var(--line);border-radius:14px;padding:6px;margin-bottom:16px}.auth-switch .auth-tab{margin:0;text-align:center;border-radius:10px}.auth-subtitle{color:var(--muted);font-size:13px;line-height:1.45;margin:-2px 0 14px}.auth-form{display:block}.auth-form .input{margin-bottom:14px}.auth-form-title{font-size:22px;letter-spacing:-.02em}.auth-screen::before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 20%,rgba(74,163,255,.18),transparent 28%),radial-gradient(circle at 80% 70%,rgba(53,201,120,.11),transparent 30%);z-index:-1}.auth-hero h1{letter-spacing:-.04em}
.modal.dispatch-modal,.dispatch-modal{width:min(980px,96vw);max-height:90vh}.modal-title{letter-spacing:-.01em}.dispatch-vehicle-card{grid-template-columns:24px minmax(0,1fr);align-items:center}.dispatch-vehicle-card input{justify-self:center}.vehicle-facts span{white-space:nowrap}.modal-actions .btn{min-width:150px}.small [data-live-mission-rest],.small [data-live-route-rest],.small [data-live-crew-max],.small [data-live-turnout],td [data-live-unit-eta],td [data-live-unit-crew],td [data-live-unit-turnout]{font-weight:900;color:#d8ecff}.map-icon.vehicle .label{min-width:300px;max-width:500px}.map-icon.crew .label{min-width:180px;max-width:300px}.station-suitability-list{max-height:34vh}.dispatch-create-actions{bottom:0}
@media(max-width:720px){.auth-feature-grid{grid-template-columns:1fr}.auth-card{padding:18px}.professional-auth{gap:16px}.modal-actions{flex-direction:column}.modal-actions .btn{width:100%}.map-icon.vehicle .label{min-width:210px;max-width:310px}.dispatch-vehicle-card{grid-template-columns:1fr}.dispatch-vehicle-card input{justify-self:start}}


/* v0.5.8: Einsatzfahrzeug-Labels lesbarer untereinander */
.map-icon.vehicle .label,
.map-icon.crew .label{
  white-space:pre-line !important;
  line-height:1.3;
}
.map-icon.vehicle .label{
  min-width:240px;
  max-width:360px;
}
.map-icon.crew .label{
  min-width:150px;
  max-width:230px;
}


/* v0.5.9: Gefahrenbewertung-Modal sauber scrollbar und sichtbar */
.danger-modal{width:min(900px,96vw);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;}
.danger-modal .modal-head{flex:0 0 auto;}
.danger-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;flex:0 0 auto;}
.danger-station-list{display:grid;gap:8px;max-height:42vh;overflow:auto;padding:4px 6px 4px 0;scrollbar-gutter:stable;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);margin:8px 0 0;}
.danger-actions{position:sticky;bottom:0;background:#10192f;border-top:1px solid var(--line);padding-top:12px;flex:0 0 auto;}
@media(max-width:720px){.danger-form-grid{grid-template-columns:1fr}.danger-station-list{max-height:45vh}.danger-modal{max-height:94vh}}

/* v0.5.10 station/personnel/vehicle service polish */
.personnel-list{display:grid;gap:8px;margin-top:10px}
.person-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid rgba(255,255,255,.10);border-radius:10px;background:rgba(255,255,255,.035)}
.person-row span{font-size:12px;color:var(--muted, #9fb0c8)}
.vehicle-facts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.dispatch-vehicle-card{align-items:flex-start}
.map-icon.vehicle .label{white-space:pre-line;text-align:left;line-height:1.15;min-width:max-content}
.map-icon.crew .label{white-space:pre-line;text-align:left;line-height:1.15}

/* v0.5.11: Leitstellen-Notrufannahme */
.call-card{border-left:5px solid var(--blue);}
.call-card.ringing{border-left-color:var(--orange);box-shadow:0 0 0 1px rgba(255,176,32,.16),0 12px 36px rgba(255,176,32,.08)}
.call-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.call-transcript{display:grid;gap:9px;margin:12px 0;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(0,0,0,.14);max-height:34vh;overflow:auto}
.call-line{display:grid;gap:5px}.operator,.caller{border-radius:12px;padding:9px 11px;line-height:1.35}.operator{background:rgba(74,163,255,.13);border:1px solid rgba(74,163,255,.22);justify-self:start}.caller{background:rgba(53,201,120,.10);border:1px solid rgba(53,201,120,.20);justify-self:stretch}.caller.first{font-weight:800;background:rgba(255,176,32,.10);border-color:rgba(255,176,32,.28)}
.call-question-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.call-history-row{display:grid;gap:3px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.07)}.call-history-row:last-child{border-bottom:0}.call-history-row span{color:var(--muted);font-size:13px}.call-history-row small{color:#9fcaff}.pill.warn{background:rgba(255,176,32,.14);border-color:rgba(255,176,32,.4);color:#ffd99a}
@media(max-width:720px){.call-top{flex-direction:column}.call-question-grid{grid-template-columns:1fr}.call-transcript{max-height:42vh}}

/* v0.5.21: kompakte Fahrzeugauswahl + Fahrzeugmarkt */
.compact-modal.dispatch-modal{width:min(760px,96vw);max-height:86vh;padding:14px;}
.dispatch-modal-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 10px;}
.dispatch-modal-summary span{border:1px solid var(--line);background:#0b1428;border-radius:10px;padding:8px 10px;font-size:12px;line-height:1.3;}
.compact-list{max-height:42vh;overflow:auto;padding-right:5px;scrollbar-gutter:stable;}
.dispatch-vehicle-card.compact{grid-template-columns:22px minmax(0,1fr);padding:10px;gap:10px;}
.dispatch-vehicle-card.compact .vehicle-facts{justify-content:flex-start;gap:6px;}
.dispatch-vehicle-card.compact .vehicle-facts span{white-space:normal;font-size:11px;padding:4px 7px;}
.vehicle-shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.vehicle-shop-card{overflow:hidden;display:flex;flex-direction:column;gap:8px;}
.vehicle-shop-img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:13px;border:1px solid var(--line);background:#091126;}
.shop-category h3{margin:16px 0 10px;}
.shop-facts{justify-content:flex-start;}
.audio-unlock-btn{border-color:rgba(255,209,102,.5);background:rgba(255,209,102,.12);}
@media(max-width:720px){.dispatch-modal-summary,.vehicle-shop-grid{grid-template-columns:1fr}.compact-modal.dispatch-modal{width:98vw;max-height:92vh}.compact-list{max-height:50vh}}

/* v0.5.23 Einsatzkräfte-Modal: kompakter und lesbarer */
.clean-dispatch-modal{width:min(720px,94vw)!important;max-height:84vh!important;padding:14px!important;overflow:hidden;display:flex;flex-direction:column;}
.clean-dispatch-modal .modal-head{flex:0 0 auto;margin-bottom:8px;}
.clean-dispatch-modal .dispatch-modal-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:6px 0 8px;}
.clean-dispatch-modal .hint{font-size:12px;line-height:1.35;}
.clean-list{max-height:44vh!important;overflow:auto;padding-right:4px;margin:10px 0!important;}
.dispatch-vehicle-card.clean{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:9px 10px;border-radius:12px;background:#0f1b33;}
.dispatch-vehicle-card.clean input{margin-top:2px;}
.dispatch-vehicle-card.clean .vehicle-main strong{font-size:14px;line-height:1.2;}
.dispatch-vehicle-card.clean .vehicle-main small,.dispatch-vehicle-card.clean .vehicle-main .small{font-size:11px;line-height:1.25;}
.clean-facts{justify-content:flex-start!important;gap:5px!important;margin-top:6px!important;}
.clean-facts span{font-size:11px!important;line-height:1.15;padding:4px 6px!important;white-space:normal!important;}
.disabled-card{opacity:.58;cursor:not-allowed;}
@media(max-width:720px){.clean-dispatch-modal{width:98vw!important;max-height:92vh!important}.clean-dispatch-modal .dispatch-modal-summary{grid-template-columns:1fr}.clean-list{max-height:50vh!important}}


/* v0.5.24 HARD-FIX: Einsatzkräfte-Auswahl nicht mehr zerfallen lassen.
   Ursache vorher: Die Fakten-Leiste war ein eigenes Grid-Element und landete in Spalte 1 unter der Checkbox. */
.clean-dispatch-modal{width:min(700px,94vw)!important;max-height:82vh!important;}
.clean-dispatch-modal .modal-head{align-items:flex-start!important;}
.clean-dispatch-modal .modal-title{margin-bottom:2px!important;}
.clean-dispatch-modal .dispatch-modal-summary span{padding:7px 10px!important;}
.clean-list{max-height:40vh!important;}
.dispatch-vehicle-card.clean{
  grid-template-columns:22px minmax(0,1fr)!important;
  align-items:flex-start!important;
  min-height:0!important;
  padding:9px 10px!important;
}
.dispatch-vehicle-card.clean .vehicle-body{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
}
.dispatch-vehicle-card.clean .vehicle-main{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:2px!important;
}
.dispatch-vehicle-card.clean .clean-facts{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:5px!important;
  margin:0!important;
  min-width:0!important;
  width:100%!important;
}
.dispatch-vehicle-card.clean .clean-facts span{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:auto!important;
  max-width:none!important;
  border-radius:999px!important;
  font-size:11px!important;
  line-height:1.1!important;
  padding:4px 7px!important;
  white-space:nowrap!important;
}
@media(max-width:720px){
  .dispatch-vehicle-card.clean{grid-template-columns:22px minmax(0,1fr)!important;}
  .clean-dispatch-modal{width:98vw!important;max-height:92vh!important;}
  .clean-list{max-height:50vh!important;}
  .dispatch-vehicle-card.clean .clean-facts span{font-size:10px!important;padding:4px 6px!important;}
}

/* v0.5.27: Kartenfahrzeuge als Bildmarker, Einstellungen für Labels */
.map-icon.no-label .label{display:none!important;}
.map-icon.no-label .bubble{box-shadow:0 4px 12px rgba(0,0,0,.42),0 0 0 2px rgba(255,255,255,.08);}
.vehicle-image-wrap{background:transparent!important;border:0!important;overflow:visible!important;}
.vehicle-image-marker{position:relative;width:56px;height:42px;border-radius:12px;display:grid;place-items:center;background:rgba(8,16,32,.92);border:2px solid rgba(255,255,255,.88);box-shadow:0 8px 18px rgba(0,0,0,.45);overflow:visible;}
.vehicle-image-marker.owner{border-color:var(--green);box-shadow:0 8px 18px rgba(0,0,0,.45),0 0 0 3px rgba(53,201,120,.18);}
.vehicle-image-marker.foreign{border-color:var(--blue);}
.vehicle-image-marker img{width:52px;height:34px;object-fit:cover;border-radius:9px;display:block;}
.vehicle-img-label{position:absolute;left:50%;top:44px;transform:translateX(-50%);white-space:nowrap;background:rgba(10,16,32,.95);border:1px solid var(--line);border-radius:9px;padding:3px 7px;font-size:11px;font-weight:800;color:white;box-shadow:0 4px 14px rgba(0,0,0,.28);}
.map-popup-btn{margin-top:8px;padding:7px 10px;font-size:12px;}
.setting-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08);font-weight:800;}
.setting-row:last-child{border-bottom:0;}
.setting-row input{width:18px;height:18px;}

/* v0.5.28: Karten-Detailanzeige rechts im Menü, keine Fahrzeuglabels auf der Karte */
.selected-map-info .pill{display:inline-flex;margin:4px 0 10px;}
.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0;}
.info-grid div{border:1px solid var(--line);background:#0b1428;border-radius:12px;padding:9px 10px;min-width:0;}
.info-grid span{display:block;color:var(--muted);font-size:11px;margin-bottom:3px;}
.info-grid strong{font-size:13px;line-height:1.25;word-break:break-word;}
.unit-card-list{display:grid;gap:8px;margin:8px 0 12px;}
.unit-card{display:grid;gap:3px;border:1px solid rgba(255,255,255,.10);background:#0c1428;border-radius:12px;padding:9px 10px;}
.unit-card span{color:var(--muted);font-size:12px;line-height:1.28;}
.vehicle-image-marker{cursor:pointer;}
.vehicle-image-marker:hover{filter:brightness(1.14);transform:translateY(-1px);}
.vehicle-img-label{display:none!important;}
@media(max-width:720px){.info-grid{grid-template-columns:1fr;}}

/* v0.5.35: Lagemeldungen und pausierbarer Einsatzkräfte-Log */
.radio-chip{display:inline-flex;align-items:center;gap:5px;width:max-content;max-width:100%;border-radius:999px;border:1px solid var(--line);background:#0b1428;color:#d8ecff;font-size:11px;font-weight:900;line-height:1.15;padding:5px 8px;white-space:normal;}
.radio-chip.ok{border-color:rgba(53,201,120,.48);background:rgba(53,201,120,.12);color:#b9ffd6;}
.radio-chip.warn{border-color:rgba(255,176,32,.48);background:rgba(255,176,32,.12);color:#ffe2a8;}
.radio-chip.danger{border-color:rgba(255,91,104,.55);background:rgba(255,91,104,.12);color:#ffb8bf;}
.radio-chip.info{border-color:rgba(74,163,255,.46);background:rgba(74,163,255,.12);color:#d8ecff;}
.radio-chip.muted{color:var(--muted);font-weight:700;}
.radio-log-list{display:grid;gap:7px;margin-top:8px;max-height:210px;overflow:auto;padding-right:5px;scrollbar-gutter:stable;}
.radio-log-entry{display:grid;gap:2px;border:1px solid rgba(255,255,255,.09);border-left:4px solid rgba(74,163,255,.7);background:rgba(9,17,38,.82);border-radius:10px;padding:7px 9px;font-size:12px;line-height:1.25;}
.radio-log-entry span{color:var(--muted);}
.radio-log-entry.ok{border-left-color:var(--green);}
.radio-log-entry.warn{border-left-color:var(--orange);}
.radio-log-entry.danger{border-left-color:var(--red);}
.log-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px;}
.log-head .card-title{margin-bottom:0;}
.log-pause{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#0b1428;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:900;color:#d8ecff;cursor:pointer;}
.log-pause input{width:16px;height:16px;}
.fire-log{max-height:260px;scrollbar-gutter:stable;}
.fire-log.paused{border:1px solid rgba(255,176,32,.38);border-radius:10px;padding:0 8px;background:rgba(255,176,32,.05);}
@media(max-width:720px){.log-head{flex-direction:column}.radio-log-list{max-height:260px}.radio-chip{width:100%;}}


/* v0.5.37: Leitstellen-Anruferbereich mit synchronisiertem Marker und Radius */
.call-area-card.active{border-color:rgba(255,176,32,.55);box-shadow:0 0 0 1px rgba(255,176,32,.14);}
.range-row{display:grid;grid-template-columns:minmax(0,1fr) 86px;gap:10px;align-items:center;margin:8px 0 10px;}
.range-row input[type=range]{width:100%;accent-color:var(--blue);}
.range-row span{font-weight:950;text-align:right;color:#d8ecff;border:1px solid var(--line);background:#0b1428;border-radius:999px;padding:6px 8px;font-size:12px;}
.map-icon.call .bubble{background:#16446c;}
.map-icon.call .label{max-width:340px;white-space:normal;min-width:150px;}
@media(max-width:720px){.range-row{grid-template-columns:1fr}.range-row span{text-align:center}}

/* v0.5.47 Nachforderung / Leitstellen-Chat */
.routing-vehicle-card{position:relative;}
.fms-device,.fms-dispatch{margin-top:10px;border:1px solid rgba(255,255,255,.10);background:#0b1428;border-radius:12px;padding:9px 10px;display:grid;gap:7px;}
.fms-device.muted,.fms-dispatch.empty{color:var(--muted);font-size:12px;}
.fms-head{display:flex;justify-content:space-between;gap:10px;align-items:center;}
.fms-head span,.fms-dispatch span{color:var(--muted);font-size:12px;}
.fms-buttons{display:flex;flex-wrap:wrap;gap:7px;}
.fms-request,.fms-dispatch{border-left:4px solid rgba(255,176,32,.72);}
.fms-request{border-radius:10px;padding:7px 9px;background:rgba(255,176,32,.07);display:grid;gap:2px;}
.fms-request.ok,.fms-dispatch.ok{border-left-color:var(--green);background:rgba(53,201,120,.08);}
.fms-request.warn,.fms-dispatch.warn{border-left-color:var(--orange);background:rgba(255,176,32,.08);}
.fms-request.danger,.fms-dispatch.danger{border-left-color:var(--red);background:rgba(255,91,104,.10);}
.fms-request.muted,.fms-dispatch.muted{border-left-color:rgba(255,255,255,.22);background:rgba(255,255,255,.04);}
.fms-priority-card{border-color:rgba(255,91,104,.78)!important;box-shadow:0 0 0 1px rgba(255,91,104,.42),0 0 26px rgba(255,91,104,.12);}
.fms-priority-card .card-title::after{content:'  · PRIORISIERTER SPRECHWUNSCH';color:#ffb8bf;font-size:11px;font-weight:900;letter-spacing:.03em;}
.fms-chat{display:grid;gap:7px;}
.fms-chat-list{max-height:180px;overflow:auto;display:grid;gap:6px;padding-right:4px;scrollbar-gutter:stable;}
.fms-chat-line{border:1px solid rgba(255,255,255,.08);background:rgba(9,17,38,.72);border-radius:10px;padding:6px 8px;display:grid;grid-template-columns:1fr auto;gap:2px 8px;}
.fms-chat-line strong{font-size:12px;}
.fms-chat-line span{font-size:11px;color:var(--muted);}
.fms-chat-line p{grid-column:1/-1;margin:0;color:#dce9ff;font-size:12px;line-height:1.35;white-space:pre-wrap;}
.fms-chat-line.dispatch{border-left:3px solid var(--blue);}
.fms-chat-line.fire{border-left:3px solid var(--green);}
.fms-chat-line.system{border-left:3px solid var(--orange);}
.fms-chat-compose{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center;}
.fms-chat-compose .input{min-width:0;}
@media(max-width:720px){.fms-chat-compose{grid-template-columns:1fr}.fms-buttons .btn{width:100%}}

/* v0.5.49: Leitstellen-Alarmierung mit Wachen-/Fahrzeugauswahl */
.dispatch-alarm-panel{border-color:rgba(255,91,104,.36);box-shadow:0 0 0 1px rgba(255,91,104,.08);}
.dispatch-alarm-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 160px;gap:10px;align-items:end;margin-bottom:10px;}
.dispatch-alarm-mode{display:grid;gap:5px;border:1px solid var(--line);background:#0b1428;border-radius:12px;padding:8px 10px;}
.dispatch-alarm-mode label:not(.small){display:flex;align-items:center;gap:7px;font-size:12px;font-weight:900;color:#d8ecff;}
.dispatch-alarm-mode input{width:16px;height:16px;}
.dispatch-alarm-vehicles{display:grid;gap:8px;margin:10px 0;max-height:34vh;overflow:auto;padding-right:5px;scrollbar-gutter:stable;}
.dispatch-alarm-vehicle{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;border:1px solid rgba(255,255,255,.10);background:#0c1428;border-radius:12px;padding:9px 10px;cursor:pointer;}
.dispatch-alarm-vehicle:hover{border-color:rgba(74,163,255,.65);filter:brightness(1.06);}
.dispatch-alarm-vehicle.selected{border-color:rgba(255,91,104,.75);background:rgba(255,91,104,.10);box-shadow:0 0 0 1px rgba(255,91,104,.25);}
.dispatch-alarm-vehicle.disabled-card{opacity:.54;cursor:not-allowed;filter:saturate(.65);}
.dispatch-alarm-vehicle input{width:18px;height:18px;margin-top:2px;}
.dispatch-alarm-vehicle-main{display:flex;flex-direction:column;gap:3px;min-width:0;}
.dispatch-alarm-vehicle-main strong{line-height:1.2;}
.dispatch-alarm-vehicle-main small{color:var(--muted);font-size:12px;line-height:1.25;}
.dispatch-alarm-button{font-weight:950;text-transform:uppercase;letter-spacing:.03em;}
.dispatch-order-list{display:grid;gap:6px;margin-top:10px;}
.dispatch-order{display:grid;gap:2px;border:1px solid rgba(255,255,255,.09);border-left:4px solid var(--orange);background:#0b1428;border-radius:10px;padding:7px 9px;font-size:12px;}
.dispatch-order span{color:var(--muted);}
.dispatch-order.ok{border-left-color:var(--green);}
.dispatch-order.danger{border-left-color:var(--red);}
.dispatch-order.warn{border-left-color:var(--orange);}
@media(max-width:720px){.dispatch-alarm-grid{grid-template-columns:1fr}.dispatch-alarm-vehicles{max-height:46vh}}
.dispatch-station-request{border-color:rgba(74,163,255,.45);background:rgba(74,163,255,.08);margin:10px 0;}
.dispatch-vehicle-card.requested{border-color:rgba(74,163,255,.8);background:rgba(74,163,255,.10);box-shadow:0 0 0 1px rgba(74,163,255,.18);}
.requested-badge{display:inline-flex;align-items:center;width:max-content;max-width:100%;border:1px solid rgba(74,163,255,.55);background:rgba(74,163,255,.14);color:#d8ecff;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900;margin:2px 0;}

/* v0.5.53 Admin / Moderation / Support */
.start-role-card.staff{border-color:rgba(250,204,21,.55);background:linear-gradient(135deg,rgba(113,63,18,.45),rgba(15,23,42,.92));}
.admin-hero{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.admin-layout{display:grid;grid-template-columns:minmax(330px,.95fr) minmax(420px,1.25fr);gap:14px;align-items:start;}
.admin-table-wrap{overflow:auto;max-height:560px;border-radius:14px;border:1px solid rgba(148,163,184,.16);}
.admin-table{width:100%;border-collapse:collapse;font-size:13px;min-width:760px;}
.admin-table th,.admin-table td{padding:10px 9px;border-bottom:1px solid rgba(148,163,184,.13);text-align:left;vertical-align:top;}
.admin-table th{position:sticky;top:0;background:rgba(15,23,42,.96);z-index:1;color:#cbd5e1;font-weight:800;}
.admin-table tr.selected{background:rgba(59,130,246,.13);}
.admin-info-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));}
.admin-detail{display:flex;flex-direction:column;gap:12px;}
.admin-station{border:1px solid rgba(148,163,184,.16);border-radius:14px;padding:12px;margin-top:10px;background:rgba(15,23,42,.32);}
.admin-station-head{display:flex;flex-direction:column;gap:3px;margin-bottom:10px;}
.admin-station-head span{font-size:12px;color:#94a3b8;}
.admin-vehicle-list{display:flex;flex-direction:column;gap:8px;}
.admin-vehicle{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(148,163,184,.14);border-radius:12px;padding:10px;background:rgba(2,6,23,.32);}
.admin-vehicle.warn{border-color:rgba(245,158,11,.45);background:rgba(120,53,15,.18);}
.admin-vehicle strong,.admin-vehicle span,.admin-vehicle small{display:block;}
.admin-vehicle span{font-size:12px;color:#cbd5e1;margin-top:2px;}
.admin-vehicle small{font-size:11px;color:#94a3b8;margin-top:2px;}
.admin-unit-row{display:flex;justify-content:space-between;gap:12px;border:1px solid rgba(148,163,184,.13);padding:9px;border-radius:11px;margin-top:7px;background:rgba(15,23,42,.28);}
.admin-json{width:100%;min-height:270px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;white-space:pre;}
.btn.small{padding:6px 9px;font-size:12px;border-radius:9px;}
.btn-row.compact{gap:6px;flex-wrap:wrap;justify-content:flex-end;}

.admin-world-card{margin-bottom:14px;}
.admin-section{border:1px solid rgba(148,163,184,.14);border-radius:14px;padding:10px 12px;margin-top:10px;background:rgba(2,6,23,.22);}
.admin-section summary{cursor:pointer;font-weight:800;color:#e5e7eb;}
.admin-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:10px;}
.admin-kv>div{border:1px solid rgba(148,163,184,.13);border-radius:12px;padding:9px;background:rgba(15,23,42,.34);}
.admin-kv span{display:block;font-size:11px;color:#94a3b8;}
.admin-kv strong{display:block;margin-top:2px;color:#e5e7eb;}
.admin-table-wrap.mini{max-height:340px;margin-top:10px;}
.admin-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}

@media (max-width:1100px){.admin-layout{grid-template-columns:1fr}.admin-vehicle{align-items:flex-start;flex-direction:column}.btn-row.compact{justify-content:flex-start}}


/* v0.5.55: Rollenklare Nachforderung und mobilfreundliche Fahrzeugauswahl */
.dispatch-suggestion-bar{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  border:1px solid rgba(74,163,255,.45);
  background:rgba(74,163,255,.10);
  border-radius:12px;
  padding:8px 10px;
  margin:8px 0;
  font-size:12px;
}
.dispatch-suggestion-bar span{
  color:#9fcaff;
  font-weight:900;
  white-space:nowrap;
}
.dispatch-suggestion-bar strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#e8f3ff;
}
.dispatch-suggestion-bar small{
  color:var(--muted);
  font-weight:800;
}
.professional-dispatch-modal{gap:0;}
.dispatch-modal-help{
  display:grid;
  gap:3px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.035);
  border-radius:12px;
  padding:8px 10px;
  font-size:12px;
  line-height:1.35;
  margin:6px 0 8px;
}
.dispatch-modal-help strong{color:#d8ecff;}
.dispatch-modal-help span{color:var(--muted);}
.dispatch-vehicle-card.professional{
  min-height:0!important;
  transition:border-color .14s ease, background .14s ease, filter .14s ease;
}
.dispatch-vehicle-card.professional:has(input:checked){
  border-color:rgba(53,201,120,.8)!important;
  background:rgba(53,201,120,.10)!important;
  box-shadow:0 0 0 1px rgba(53,201,120,.18);
}
.vehicle-title-row{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:space-between;
  min-width:0;
}
.vehicle-title-row strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.vehicle-subline,.vehicle-status-line,.vehicle-description{
  display:block;
  color:var(--muted);
  font-size:11px;
  line-height:1.25;
}
.vehicle-status-line{color:#bfd7f4;font-weight:800;}
.vehicle-description{opacity:.86;}
.professional-list{max-height:46vh!important;}
.dispatch-alarm-panel .input{min-height:40px;}
.dispatch-alarm-button{min-height:44px;}
@media(max-width:720px){
  .dispatch-suggestion-bar{grid-template-columns:1fr;gap:3px;text-align:left;}
  .dispatch-suggestion-bar strong{white-space:normal;}
  .professional-dispatch-modal{width:99vw!important;max-height:94vh!important;padding:10px!important;border-radius:14px!important;}
  .professional-dispatch-modal .modal-head{gap:8px;}
  .professional-dispatch-modal .close-btn{padding:8px 10px;}
  .professional-dispatch-modal .dispatch-modal-summary{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;}
  .professional-dispatch-modal .dispatch-modal-summary span{padding:6px 7px!important;font-size:11px!important;}
  .dispatch-modal-help{font-size:11px;padding:7px 8px;}
  .professional-list{max-height:53vh!important;padding-right:2px!important;}
  .dispatch-vehicle-card.professional{grid-template-columns:26px minmax(0,1fr)!important;padding:10px 8px!important;gap:8px!important;}
  .dispatch-vehicle-card.professional input{width:22px!important;height:22px!important;margin-top:1px!important;}
  .vehicle-title-row{align-items:flex-start;flex-direction:column;gap:3px;}
  .vehicle-title-row strong{white-space:normal;}
  .requested-badge{font-size:10px;padding:3px 7px;}
  .professional-dispatch-modal .modal-actions{position:sticky;bottom:-10px;background:#10192f;border-top:1px solid var(--line);padding-top:8px;margin-top:6px;}
  .dispatch-alarm-panel{padding:10px!important;}
  .dispatch-alarm-grid{gap:8px!important;}
  .dispatch-alarm-vehicle{padding:10px 8px;grid-template-columns:26px minmax(0,1fr);}
  .dispatch-alarm-vehicle input{width:22px;height:22px;}
  .dispatch-alarm-vehicles{max-height:50vh!important;}
}

/* v0.5.57: Leitstellen-Lage getrennt, mobile Einsatzlisten, Reset und Service-Timer */
.danger-soft{border-color:rgba(255,91,104,.34);background:rgba(255,91,104,.055);}
.mission-collapsible{border:1px solid rgba(148,163,184,.16);border-radius:16px;background:rgba(15,23,42,.44);margin:10px 0;overflow:hidden;}
.mission-collapsible>summary{cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr);gap:3px;padding:13px 14px;font-weight:950;color:#eef6ff;list-style:none;}
.mission-collapsible>summary::-webkit-details-marker{display:none;}
.mission-collapsible>summary::after{content:'öffnen';justify-self:end;color:#94a3b8;font-size:11px;margin-top:-18px;}
.mission-collapsible[open]>summary::after{content:'schließen';}
.mission-collapsible>summary small{color:#94a3b8;font-size:12px;font-weight:800;line-height:1.3;}
.mission-collapsible .dispatch-mission-card{margin:0 10px 10px;border-color:rgba(74,163,255,.20);}
.dispatch-unit-list .unit-card{gap:4px;}
.suggested-badge{display:inline-flex;align-items:center;width:max-content;max-width:100%;border:1px solid rgba(74,163,255,.55);background:rgba(74,163,255,.14);color:#d8ecff;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:950;margin:3px 0;}
.dispatch-vehicle-card.suggested{border-color:rgba(74,163,255,.75);background:rgba(74,163,255,.10);box-shadow:0 0 0 1px rgba(74,163,255,.16);}
.sticky-actions{position:sticky;bottom:0;background:#10192f;border-top:1px solid rgba(148,163,184,.15);padding-top:8px;z-index:2;}
@media(max-width:760px){
  body{overscroll-behavior-y:contain;}
  .sidebar{padding:8px;gap:8px;}
  .nav-btn{min-height:42px;padding:10px 11px;font-size:13px;}
  .topbar{padding:9px 10px;gap:8px;}
  .topbar-title{font-size:16px;}
  .panel{padding:10px;}
  .card{border-radius:14px;padding:11px;}
  .info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  .unit-card-list{gap:8px;}
  .unit-card{padding:9px;border-radius:12px;}
  .mission-collapsible>summary{padding:12px;}
  .mission-collapsible>summary::after{margin-top:0;justify-self:start;}
  .mission-collapsible .dispatch-mission-card{margin:0 7px 7px;}
  .btn-row .btn,.btn.full{min-height:42px;}
}
@media(max-width:520px){
  .info-grid{grid-template-columns:1fr;}
  .dispatch-modal-summary{grid-template-columns:1fr!important;}
  .vehicle-facts,.clean-facts{grid-template-columns:1fr!important;}
  .fms-chat-list{max-height:240px;}
}

/* v0.5.60: Leitstellen-Monitor nach FSLST-/Einsatzleitplatz-Stil */
.app.dispatch-console{
  grid-template-columns:280px minmax(0,1fr);
  background:#080d13;
}
.dispatch-console .sidebar{
  background:linear-gradient(180deg,#151c22,#0c1117 58%,#090d12);
  border-right:1px solid rgba(255,255,255,.08);
  padding:0;
}
.dispatch-console .topbar{
  height:74px;
  background:linear-gradient(180deg,#b60f17,#85080f);
  border-bottom:1px solid rgba(255,255,255,.12);
  box-shadow:0 8px 30px rgba(0,0,0,.22);
}
.dispatch-console .topbar-title{font-size:22px;letter-spacing:.02em;}
.dispatch-console .topbar-subtitle{color:#ffd9d9;font-weight:800;font-size:16px;letter-spacing:.04em;}
.dispatch-console .pill{background:rgba(0,0,0,.18);border-color:rgba(255,255,255,.2);color:white;}
.dispatch-console .content{
  grid-template-columns:minmax(390px,520px) minmax(0,1fr);
  background:#0b1016;
}
.dispatch-console #panelContent{
  order:1;
  background:linear-gradient(180deg,#12191f,#0d131a);
  border-left:0;
  border-right:1px solid rgba(255,255,255,.08);
  padding:14px;
}
.dispatch-console #map{
  order:2;
  margin:14px 14px 14px 0;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  overflow:hidden;
  min-height:0;
  box-shadow:0 16px 48px rgba(0,0,0,.35);
}
.dispatch-side-head{display:flex;align-items:center;gap:12px;padding:18px 16px;background:linear-gradient(180deg,#ba0e16,#8d0b11);border-bottom:1px solid rgba(255,255,255,.1)}
.dispatch-side-logo{width:42px;height:42px;border-radius:14px;background:rgba(255,255,255,.12);display:grid;place-items:center;font-size:24px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.dispatch-operator-card{display:flex;align-items:center;gap:12px;margin:16px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);border-radius:16px;padding:12px}
.dispatch-avatar{width:42px;height:42px;border-radius:999px;background:#26313d;border:2px solid #2cd66f;display:grid;place-items:center;font-weight:950}
.dispatch-operator-card span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.side-caption{padding:0 16px 6px;letter-spacing:.08em;color:#8f9bae}.dispatch-mainmenu .nav-btn{border-radius:0;border:0;border-left:3px solid transparent;background:transparent;margin:0;padding:13px 16px;font-weight:850}.dispatch-mainmenu .nav-btn:hover{background:rgba(255,255,255,.05)}.dispatch-mainmenu .nav-btn.active{background:rgba(255,255,255,.07);border-left-color:#ff3340;color:#ff747d}.nav-ico{display:inline-block;width:26px}.dispatch-settings-mini{padding-top:4px}.nav-sub{display:block;width:100%;text-align:left;border:0;background:transparent;color:#b8c2d4;padding:8px 22px 8px 30px;cursor:pointer}.nav-sub:hover{color:white;background:rgba(255,255,255,.04)}.dispatch-connection{margin:20px 16px;border-top:1px solid rgba(255,255,255,.08);padding-top:12px}.dispatch-connection div{display:flex;justify-content:space-between;gap:10px;color:#8e99ab;font-size:12px;padding:6px 0}.dispatch-connection strong{color:#32d66f}
.dispatch-monitor-shell{display:grid;gap:12px;min-width:0}.dispatch-monitor-toolbar{position:sticky;top:-14px;z-index:10;padding:0 0 8px;background:linear-gradient(180deg,#12191f 75%,rgba(18,25,31,0));}.dispatch-monitor-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.dispatch-action-tile{min-height:66px;border:1px solid rgba(255,255,255,.11);background:linear-gradient(180deg,#1b232c,#111820);color:#f3f7ff;border-radius:12px;padding:10px;display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:1px 8px;text-align:left;cursor:pointer}.dispatch-action-tile span{grid-row:1/3;font-size:24px}.dispatch-action-tile strong{font-size:14px}.dispatch-action-tile small{color:#aab4c4;font-size:11px}.dispatch-action-tile:hover{filter:brightness(1.12);border-color:rgba(255,255,255,.24)}.dispatch-action-tile.alarm{background:linear-gradient(180deg,#e3212c,#b50e17);border-color:rgba(255,100,110,.5)}.dispatch-action-tile.priority{box-shadow:0 0 0 1px rgba(255,91,104,.25);border-color:rgba(255,91,104,.5)}.dispatch-work-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;border-left:3px solid #ff3340;padding-left:10px}.dispatch-work-title h2{margin:0}.dispatch-work-title span{color:var(--muted);font-size:12px}.dispatch-workspace.home{display:grid;gap:12px}.dispatch-overview-grid{display:grid;gap:12px}.dispatch-monitor-card{background:linear-gradient(180deg,#171f28,#111820);border:1px solid rgba(255,255,255,.10);border-radius:14px;padding:12px;box-shadow:0 8px 28px rgba(0,0,0,.18)}.dispatch-card-title{font-size:16px;font-weight:950;margin-bottom:10px;border-left:3px solid #ff3340;padding-left:8px}.dispatch-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dispatch-form-grid label{display:grid;gap:3px}.dispatch-form-grid label span{font-size:12px;color:#aab4c4}.dispatch-form-grid .wide{grid-column:1/-1}.dispatch-form-grid .input{margin:0;background:#151d26;border-color:rgba(255,255,255,.12);border-radius:9px}.dispatch-form-grid textarea.input{min-height:92px}.dispatch-form-grid .red-field{background:linear-gradient(180deg,#e86670,#d14853);color:white;border-color:rgba(255,255,255,.25);font-weight:850}.dispatch-status-strip{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:10px;border-top:1px solid rgba(255,255,255,.08);padding-top:10px;font-size:12px}.dispatch-status-strip strong{color:#56a9ff}.dispatch-unit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dispatch-resource-card{border:1px solid rgba(255,255,255,.10);border-radius:12px;background:#193455;color:#eff8ff;padding:10px;text-align:left;display:grid;gap:4px;cursor:pointer}.dispatch-resource-card.fire{background:linear-gradient(180deg,#1e6132,#164925)}.dispatch-resource-card.lead{background:linear-gradient(180deg,#1d4c75,#173752)}.dispatch-resource-card.other{background:linear-gradient(180deg,#5c4d18,#3c3313)}.dispatch-resource-card span,.dispatch-resource-card small{font-size:12px;color:#d5dfeb}.dispatch-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dispatch-kpi-grid.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.dispatch-kpi-grid div{background:#111924;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px}.dispatch-kpi-grid span{display:block;color:#aab4c4;font-size:12px}.dispatch-kpi-grid strong{display:block;font-size:22px;margin-top:4px}.dispatch-fms-list{display:grid;gap:8px}.dispatch-fms-row{border:1px solid rgba(255,255,255,.09);background:#111924;border-radius:12px;padding:10px;display:grid;gap:4px}.dispatch-fms-row.priority{border-color:rgba(255,91,104,.6);box-shadow:0 0 0 1px rgba(255,91,104,.20)}.dispatch-fms-row span{color:#aab4c4;font-size:12px}.dispatch-filter-banner{display:flex;justify-content:space-between;align-items:center;gap:10px;background:rgba(74,163,255,.12);border:1px solid rgba(74,163,255,.28);border-radius:12px;padding:10px}.dispatch-filter-banner.priority{background:rgba(255,91,104,.12);border-color:rgba(255,91,104,.3)}
.dispatch-console .dispatch-alarm-panel,.dispatch-console .card{border-radius:14px}.dispatch-console .mission-collapsible summary{min-height:52px;padding:12px 14px}.dispatch-console .btn{min-height:42px}.dispatch-console input,.dispatch-console select,.dispatch-console textarea{font-size:16px}
@media(max-width:1180px){.dispatch-console .content{grid-template-columns:420px minmax(0,1fr)}.dispatch-monitor-actions{grid-template-columns:1fr}.dispatch-unit-grid{grid-template-columns:1fr}.dispatch-kpi-grid.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.app.dispatch-console{grid-template-columns:1fr}.dispatch-console .sidebar{max-height:none}.dispatch-console .content{grid-template-columns:1fr}.dispatch-console #panelContent{order:1;border-right:0}.dispatch-console #map{order:2;height:62vh;min-height:420px;margin:0 12px 12px}.dispatch-monitor-toolbar{position:relative;top:auto}.dispatch-monitor-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.dispatch-action-tile{min-height:64px}.dispatch-form-grid{grid-template-columns:1fr}.dispatch-kpi-grid.stats,.dispatch-kpi-grid{grid-template-columns:1fr}}
@media(max-width:520px){.dispatch-console .topbar{height:auto;align-items:flex-start}.dispatch-monitor-actions{grid-template-columns:1fr}.dispatch-side-head{padding:14px}.dispatch-operator-card{margin:12px}.dispatch-console #panelContent{padding:12px}.dispatch-console #map{height:52vh;min-height:340px}.dispatch-work-title{display:block}.dispatch-action-tile{min-height:58px}.dispatch-unit-grid{grid-template-columns:1fr}}

/* v0.5.61: eigenständige Wachen-Sprechwünsche und bereinigte Leitstellen-Navigation */
.dispatch-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:6px;border-radius:999px;background:#ffb02e;color:#111;font-size:12px;font-weight:950;vertical-align:middle;box-shadow:0 0 0 1px rgba(255,255,255,.15)}
.dispatch-badge.danger{background:#ff3848;color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.18),0 0 18px rgba(255,56,72,.25)}
.dispatch-action-tile.has-badge{border-color:rgba(255,176,46,.45)}
.station-fms-device{margin:12px 0;border-color:rgba(74,163,255,.25)}
.station-fms-list .dispatch-fms-row{padding:12px}
@media(max-width:720px){.dispatch-badge{min-width:24px;height:24px;font-size:13px}.station-fms-device .fms-buttons,.station-fms-list .btn-row{display:grid;grid-template-columns:1fr;gap:8px}.station-fms-device .fms-buttons .btn,.station-fms-list .btn{min-height:44px}.fms-chat-compose{grid-template-columns:1fr!important}.fms-chat-compose .btn{width:100%}}
/* v0.5.62: Admin-Routing-Debug */
.admin-debug-line{display:block;margin-top:4px;color:#ffd166;font-weight:700;}


/* v0.5.65 Einsatzhilfe */
.table-wrap{overflow:auto;max-width:100%;}
.mission-help-table{width:100%;border-collapse:collapse;min-width:760px;}
.mission-help-table th,.mission-help-table td{padding:10px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;vertical-align:top;}
.mission-help-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#9ca3af);}
.mission-help-category .card-title{margin-bottom:8px;}
@media (max-width:760px){.mission-help-table{min-width:640px}.dispatch-action-tile strong{font-size:13px}}

/* v0.5.66: Einsatzkräfte-Oberfläche im einsatzlisten-/kartenfokussierten Leitstellenspiel-Stil. Leitstelle bleibt unverändert. */
.app.fire-console{grid-template-columns:220px minmax(0,1fr);background:#f3f3f3;color:#202020;}
.app.fire-console .sidebar{background:#3f3f3f;border-right:1px solid #2d2d2d;color:#f7f7f7;padding:10px;}
.app.fire-console .brand{background:#c92828;color:#fff;margin:-10px -10px 10px;padding:14px 12px;font-size:18px;letter-spacing:.01em;}
.app.fire-console .version{color:#eee;padding:0 4px 8px;}
.app.fire-console .pill{background:#fff;border-color:#d1d1d1;color:#222;}
.app.fire-console .sidebar .pill{background:#555;color:#fff;border-color:#666;}
.app.fire-console .nav-btn{background:#4d4d4d;border-color:#666;color:#fff;border-radius:4px;margin:5px 0;padding:10px 11px;}
.app.fire-console .nav-btn.active{background:#d52b2b;color:#fff;border-color:#e13b3b;}
.app.fire-console .main{grid-template-rows:54px minmax(0,1fr);}
.app.fire-console .topbar{background:#c92828;color:#fff;border-bottom:1px solid #9e1616;min-height:54px;padding:8px 14px;}
.app.fire-console .topbar-title{font-size:18px;text-transform:uppercase;}
.app.fire-console .topbar-subtitle{color:#ffe9e9;}
.app.fire-console .topbar .pill{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.25);}
.app.fire-console .content{grid-template-columns:minmax(0,1fr) 520px;background:#ececec;}
.app.fire-console #map{border-right:1px solid #cfcfcf;background:#dfe4e9;}
.app.fire-console .panel{background:#f7f7f7;color:#222;border-left:1px solid #d2d2d2;padding:10px;}
.app.fire-console .card,
.app.fire-console .panel{box-shadow:none;}
.app.fire-console .card{background:#fff;border:1px solid #d6d6d6;border-radius:4px;color:#222;margin-bottom:8px;padding:10px;}
.app.fire-console .card-title,
.app.fire-console .auth-form-title,
.app.fire-console .modal-title{color:#222;}
.app.fire-console .small,
.app.fire-console .card-meta{color:#606060;}
.app.fire-console .btn{border-radius:4px;border-color:#bebebe;background:#f8f8f8;color:#222;padding:8px 10px;}
.app.fire-console .btn.green{background:#3aa657;color:#fff;border-color:#27843f;}
.app.fire-console .btn.red{background:#d52b2b;color:#fff;border-color:#b82121;}
.app.fire-console .btn.orange{background:#ffb330;color:#231500;border-color:#e09a18;}
.app.fire-console .btn.dark{background:#e9e9e9;color:#222;border-color:#cfcfcf;}
.app.fire-console .input,
.app.fire-console select,
.app.fire-console textarea{background:#fff;color:#222;border-color:#cfcfcf;border-radius:4px;}
.lss-fire-panel{display:grid;gap:8px;}
.lss-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;background:#fff;border:1px solid #d6d6d6;border-left:5px solid #d52b2b;border-radius:4px;padding:10px;}
.lss-section-title h2{margin:0;font-size:18px;color:#222;}
.lss-section-title span{font-size:12px;color:#666;line-height:1.35;text-align:right;}
.lss-fire-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
.lss-metric{background:#fff;border:1px solid #d6d6d6;border-radius:4px;padding:8px;display:grid;gap:3px;min-width:0;}
.lss-metric span{font-size:11px;text-transform:uppercase;color:#666;}
.lss-metric strong{font-size:16px;color:#222;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lss-metric.ok{border-left:4px solid #34a853}.lss-metric.warn{border-left:4px solid #e2a400}.lss-metric.money{border-left:4px solid #2f76d2}
.lss-tabs{display:flex;gap:4px;flex-wrap:wrap;background:#fff;border:1px solid #d6d6d6;border-radius:4px;padding:6px;}
.lss-tabs button{border:1px solid #ccc;background:#eee;border-radius:3px;padding:7px 9px;cursor:pointer;color:#222;font-weight:800;}
.lss-tabs button.active{background:#d52b2b;border-color:#bd2020;color:#fff;}
.lss-split-block{display:grid;grid-template-columns:1fr;gap:8px;}
.lss-block,.lss-station-card{background:#fff;border:1px solid #d6d6d6;border-radius:4px;padding:8px;}
.lss-block-head,.lss-station-head{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid #e5e5e5;padding-bottom:7px;margin-bottom:7px;color:#222;}
.lss-block-head span{background:#e9e9e9;border-radius:99px;padding:3px 8px;font-weight:900;color:#333;}
.lss-mission-list{display:grid;gap:8px;}
.lss-mission-card{background:#fff;border:1px solid #d2d2d2;border-left:5px solid #aaa;border-radius:4px;padding:8px;color:#222;}
.lss-mission-card.own-target{border-left-color:#d52b2b;}
.lss-mission-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.lss-mission-head strong{display:block;font-size:15px;color:#222;line-height:1.2;}
.lss-mission-head span{display:block;color:#666;font-size:12px;margin-top:2px;}
.lss-badge{border-radius:3px;padding:5px 7px;font-weight:900;font-size:12px;white-space:nowrap;}
.lss-badge.red{background:#d52b2b;color:#fff;}.lss-badge.gray{background:#ececec;color:#333;}.lss-badge.yellow{background:#f0d640;color:#1c1600;}
.lss-mission-location{font-size:12px;color:#555;margin:6px 0;}
.lss-mission-bars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:7px 0;}
.lss-mission-bars div{background:#f5f5f5;border:1px solid #e1e1e1;border-radius:3px;padding:5px;min-width:0;}
.lss-mission-bars span{display:block;color:#666;font-size:10px;text-transform:uppercase;}
.lss-mission-bars strong{display:block;color:#222;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lss-mission-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin-top:7px;}
.lss-mini-table,.lss-modal-table{display:grid;border:1px solid #ddd;border-radius:3px;overflow:hidden;margin-top:7px;font-size:12px;}
.lss-mini-table>div,.lss-modal-table>div{display:grid;grid-template-columns:1.4fr 1fr .55fr;gap:5px;padding:5px 6px;border-bottom:1px solid #eee;align-items:center;}
.lss-mini-table>div:last-child,.lss-modal-table>div:last-child{border-bottom:0;}
.lss-mini-head,.lss-modal-head{background:#eee;font-weight:900;color:#333;}
.lss-callout{background:#fff6df;border:1px solid #ead188;border-left:4px solid #ffb330;border-radius:4px;padding:9px;color:#3d2a00;font-size:13px;}
.lss-details{background:#fff;border:1px solid #d6d6d6;border-radius:4px;padding:8px;}
.lss-details summary{cursor:pointer;font-weight:900;color:#222;}
.lss-unit-line{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.2fr);gap:8px;align-items:center;background:#fff;border:1px solid #d6d6d6;border-left:5px solid #bbb;border-radius:4px;padding:8px;margin-bottom:6px;color:#222;}
.lss-unit-line.ready{border-left-color:#34a853}.lss-unit-line.active{border-left-color:#2f76d2}
.lss-unit-line strong{display:block;color:#222;}.lss-unit-line span{font-size:12px;color:#666;}.lss-unit-line>div:last-child{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.lss-unit-line>div:last-child span{background:#f0f0f0;border:1px solid #ddd;border-radius:99px;padding:4px 7px;color:#333;}
.lss-vehicle-card{display:grid;grid-template-columns:92px minmax(0,1fr) 120px;gap:10px;background:#fff;border:1px solid #d6d6d6;border-radius:4px;padding:8px;margin-bottom:8px;color:#222;}
.lss-vehicle-image{width:92px;height:64px;background:#e7e7e7;border:1px solid #d6d6d6;border-radius:4px;display:grid;place-items:center;overflow:hidden;}
.lss-vehicle-image img{width:100%;height:100%;object-fit:cover;}
.lss-vehicle-main strong{display:block;color:#222;font-size:15px;}.lss-vehicle-main span,.lss-vehicle-main p{color:#666;font-size:12px;margin:2px 0;}.lss-vehicle-main p{line-height:1.3;}
.lss-chip-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.lss-chip-row span{background:#f0f0f0;border:1px solid #ddd;border-radius:99px;padding:4px 7px;color:#333;font-size:12px;}
.lss-vehicle-actions,.lss-station-actions{display:grid;gap:5px;align-content:start;}
.lss-log-card .log{max-height:210px;background:#f8f8f8;border:1px solid #ddd;border-radius:4px;padding:5px;}
.app.fire-console .log-entry{color:#333;border-bottom:1px solid #e5e5e5;}
.lss-dispatch-window{background:#f8f8f8;color:#222;border-radius:5px;border:1px solid #aaa;width:min(1120px,98vw);max-height:92vh;}
.lss-dispatch-window .modal-title,.lss-dispatch-window h3{color:#222;}.lss-dispatch-window .small{color:#666;}
.lss-dispatch-top{display:flex;gap:7px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #d6d6d6;border-radius:4px;padding:8px;margin-bottom:8px;}
.lss-dispatch-top span:not(.lss-badge){background:#f2f2f2;border:1px solid #ddd;border-radius:3px;padding:6px;color:#333;}
.lss-dispatch-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:10px;}
.lss-dispatch-grid section{background:#fff;border:1px solid #d6d6d6;border-radius:4px;padding:8px;min-width:0;}
.lss-dispatch-grid h3{margin:0 0 8px;font-size:15px;}
.lss-modal-table>div{grid-template-columns:.5fr 1.2fr 1fr .8fr .6fr;}
.lss-status-dot,.lss-status-num{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:3px;background:#e45b31;color:#fff;font-weight:900;}
.lss-quick-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px;}.lss-quick-tabs span{background:#efefef;border:1px solid #d5d5d5;border-radius:3px;padding:5px 8px;font-size:12px;color:#333;}
.lss-free-list{display:grid;gap:5px;max-height:48vh;overflow:auto;padding-right:3px;}
.lss-free-vehicle{display:grid;grid-template-columns:26px minmax(0,1.4fr) .55fr .65fr auto;gap:7px;align-items:center;border:1px solid #ddd;background:#fafafa;border-radius:3px;padding:7px;cursor:pointer;color:#222;}
.lss-free-vehicle:hover{border-color:#a4c8f5;background:#f0f7ff;}.lss-free-vehicle.selected,.lss-free-vehicle.suggested{border-color:#2f76d2;background:#eaf3ff;}
.lss-free-vehicle input{width:18px;height:18px;}.lss-free-vehicle strong{display:block;color:#222;}.lss-free-vehicle small{display:block;color:#666;}.lss-free-vehicle em{background:#d52b2b;color:#fff;border-radius:3px;padding:3px 5px;font-style:normal;font-size:11px;font-weight:900;}
@media(max-width:1100px){.app.fire-console .content{grid-template-columns:minmax(0,1fr) 470px}.lss-vehicle-card{grid-template-columns:80px minmax(0,1fr)}}
@media(max-width:900px){.app.fire-console{grid-template-columns:1fr;height:auto;min-height:100vh}.app.fire-console .sidebar{display:flex;gap:6px;overflow:auto;align-items:center;border-bottom:1px solid #333}.app.fire-console .brand{margin:0 6px 0 0;padding:10px;white-space:nowrap}.app.fire-console .version,.app.fire-console .sidebar-section:first-of-type{display:none}.app.fire-console .sidebar-section{display:flex;gap:6px;margin:0}.app.fire-console .nav-btn{width:auto;min-width:max-content;margin:0}.app.fire-console .content{grid-template-columns:1fr}.app.fire-console #map{height:46vh;min-height:330px;border-right:0;border-bottom:1px solid #ccc}.app.fire-console .panel{border-left:0}.lss-fire-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.lss-dispatch-grid{grid-template-columns:1fr}.lss-free-list{max-height:38vh}.lss-vehicle-card{grid-template-columns:72px minmax(0,1fr)}.lss-vehicle-actions{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}.lss-unit-line{grid-template-columns:1fr}.lss-unit-line>div:last-child{justify-content:flex-start}}
@media(max-width:560px){.lss-fire-summary,.lss-mission-bars{grid-template-columns:1fr}.lss-section-title{flex-direction:column}.lss-section-title span{text-align:left}.lss-vehicle-card{grid-template-columns:1fr}.lss-vehicle-image{width:100%;height:130px}.lss-vehicle-actions{grid-template-columns:1fr}.lss-free-vehicle{grid-template-columns:22px 26px minmax(0,1fr);}.lss-free-vehicle>span:nth-of-type(2),.lss-free-vehicle>span:nth-of-type(3),.lss-free-vehicle em{grid-column:3/4}.lss-modal-table{font-size:11px}.lss-modal-table>div{grid-template-columns:.4fr 1fr .7fr}.lss-modal-table>div span:nth-child(4),.lss-modal-table>div span:nth-child(5){display:none}}
.app.fire-console .fms-device{background:#fff;border:1px solid #d6d6d6;border-radius:4px;color:#222;margin:8px 0;padding:8px;}
.app.fire-console .fms-head{display:flex;justify-content:space-between;gap:8px;color:#222;}.app.fire-console .fms-head span{color:#666;font-size:12px;}
.app.fire-console .fms-buttons{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.app.fire-console .fms-request{border:1px solid #ddd;border-radius:4px;background:#f7f7f7;color:#222;padding:7px;margin-top:7px;display:grid;gap:3px}.app.fire-console .fms-request.warn{border-left:4px solid #ffb330}.app.fire-console .fms-request.ok{border-left:4px solid #34a853}.app.fire-console .fms-request.danger{border-left:4px solid #d52b2b}.app.fire-console .fms-request span{color:#555;font-size:12px}.app.fire-console .fms-chat{background:#f8f8f8;border:1px solid #ddd;border-radius:4px;margin-top:7px;padding:7px}.app.fire-console .fms-chat-list{max-height:190px;overflow:auto;background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:5px}.app.fire-console .fms-chat-line{border-bottom:1px solid #eee;padding:5px}.app.fire-console .fms-chat-line:last-child{border-bottom:0}.app.fire-console .fms-chat-line strong{color:#222}.app.fire-console .fms-chat-line span{color:#777;font-size:11px;margin-left:5px}.app.fire-console .fms-chat-line p{margin:4px 0 0;color:#333}.app.fire-console .fms-chat-compose{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;margin-top:7px}.app.fire-console .person-row{background:#f8f8f8;border-color:#ddd;color:#222}.app.fire-console .person-row span{color:#666}
@media(max-width:560px){.app.fire-console .fms-chat-compose{grid-template-columns:1fr}.app.fire-console .fms-chat-compose .btn{width:100%}}


/* v0.5.68: Tag-/Nachtmodus, hellere Einsatzkräfte-Felder und OSM-nahe Kartenoptik */
body.theme-day{color-scheme:light;}
body.theme-night{color-scheme:dark;}
body.theme-night .app.fire-console{background:#101722;color:#eaf0fb;}
body.theme-night .app.fire-console .sidebar{background:#111827;border-right-color:#263244;color:#eef4ff;}
body.theme-night .app.fire-console .brand{background:#9b1c1c;color:#fff;}
body.theme-night .app.fire-console .topbar{background:#991b1b;border-bottom-color:#7f1616;color:#fff;}
body.theme-night .app.fire-console .content{background:#111827;}
body.theme-night .app.fire-console .panel{background:#162031;color:#eaf0fb;border-left-color:#263244;}
body.theme-night .app.fire-console .card,
body.theme-night .lss-section-title,
body.theme-night .lss-block,
body.theme-night .lss-station-card,
body.theme-night .lss-mission-card,
body.theme-night .lss-metric,
body.theme-night .lss-tabs,
body.theme-night .lss-details,
body.theme-night .lss-vehicle-card,
body.theme-night .lss-dispatch-grid section,
body.theme-night .lss-dispatch-top,
body.theme-night .lss-dispatch-window,
body.theme-night .app.fire-console .fms-device{background:#1f2937;border-color:#374151;color:#f3f4f6;}
body.theme-night .lss-section-title h2,
body.theme-night .lss-mission-head strong,
body.theme-night .lss-mission-bars strong,
body.theme-night .lss-metric strong,
body.theme-night .lss-vehicle-main strong,
body.theme-night .lss-unit-line strong,
body.theme-night .lss-dispatch-window .modal-title,
body.theme-night .lss-dispatch-window h3,
body.theme-night .app.fire-console .card-title{color:#f9fafb;}
body.theme-night .lss-section-title span,
body.theme-night .lss-mission-head span,
body.theme-night .lss-mission-location,
body.theme-night .lss-metric span,
body.theme-night .lss-vehicle-main span,
body.theme-night .lss-vehicle-main p,
body.theme-night .app.fire-console .small,
body.theme-night .app.fire-console .card-meta{color:#cbd5e1;}
body.theme-night .lss-mission-bars div,
body.theme-night .lss-chip-row span,
body.theme-night .lss-unit-line>div:last-child span,
body.theme-night .lss-dispatch-top span:not(.lss-badge),
body.theme-night .lss-quick-tabs span{background:#111827;border-color:#374151;color:#e5e7eb;}
body.theme-night .app.fire-console .btn{background:#293548;color:#f3f4f6;border-color:#4b5563;}
body.theme-night .app.fire-console .btn.green{background:#15803d;color:#fff;border-color:#166534;}
body.theme-night .app.fire-console .btn.red{background:#b91c1c;color:#fff;border-color:#991b1b;}
body.theme-night .app.fire-console .btn.dark{background:#111827;color:#f3f4f6;border-color:#374151;}
.app.fire-console input:not([type=checkbox]):not([type=radio]):not([type=range]),
.app.fire-console select,
.app.fire-console textarea,
.app.fire-console .input{background:#fff!important;color:#222!important;border-color:#cfcfcf!important;}
body.theme-night .app.fire-console input:not([type=checkbox]):not([type=radio]):not([type=range]),
body.theme-night .app.fire-console select,
body.theme-night .app.fire-console textarea,
body.theme-night .app.fire-console .input{background:#111827!important;color:#f3f4f6!important;border-color:#4b5563!important;}
.lss-metric.rank{border-left:4px solid #d52b2b;}
.lss-metric.rank small{display:block;color:#666;font-size:11px;font-weight:600;margin-top:2px;white-space:normal;}
body.theme-night .lss-metric.rank small{color:#cbd5e1;}

/* v0.5.68: lesbare Einsatzort-Felder, dezenter Nachtmodus, Personalzuweisung */
.app.fire-console .selected-map-info .info-grid>div,
.app.fire-console .info-grid>div,
.app.fire-console .lss-mission-bars>div,
.app.fire-console .dispatch-modal-summary>span{
  background:#fff!important;
  color:#222!important;
  border-color:#d6d6d6!important;
}
.app.fire-console .info-grid span,
.app.fire-console .lss-mission-bars span{color:#666!important;}
.app.fire-console .info-grid strong,
.app.fire-console .lss-mission-bars strong{color:#222!important;}
body.theme-night .app.fire-console #map{filter:none!important;}
body.theme-night .leaflet-tile{filter:none!important;}
body.theme-night .app.fire-console .selected-map-info .info-grid>div,
body.theme-night .app.fire-console .info-grid>div,
body.theme-night .app.fire-console .lss-mission-bars>div,
body.theme-night .app.fire-console .dispatch-modal-summary>span{
  background:#fff!important;
  color:#222!important;
  border-color:#d6d6d6!important;
}
body.theme-night .app.fire-console .info-grid span,
body.theme-night .app.fire-console .lss-mission-bars span{color:#666!important;}
body.theme-night .app.fire-console .info-grid strong,
body.theme-night .app.fire-console .lss-mission-bars strong{color:#222!important;}
.fms-status-chip{display:inline-flex!important;align-items:center;justify-content:center;border-radius:999px;padding:3px 8px;font-weight:900;font-size:11px;line-height:1;border:1px solid #bbb;background:#eee;color:#222;vertical-align:middle;}
.fms-status-chip.fms-1,.fms-status-chip.fms-2{background:#dcfce7!important;border-color:#22c55e!important;color:#14532d!important;}
.fms-status-chip.fms-3{background:#dbeafe!important;border-color:#3b82f6!important;color:#1e3a8a!important;}
.fms-status-chip.fms-4{background:#ffedd5!important;border-color:#f97316!important;color:#7c2d12!important;}
.fms-status-chip.fms-5,.fms-status-chip.fms-0{background:#fee2e2!important;border-color:#ef4444!important;color:#7f1d1d!important;}
.fms-status-chip.fms-6{background:#e5e7eb!important;border-color:#6b7280!important;color:#111827!important;}
.personnel-assignment-menu{margin-top:8px;}
.personnel-assign-vehicle{border:1px solid #ddd;background:#fafafa;border-radius:4px;padding:7px;margin-top:7px;color:#222;}
.personnel-assign-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:6px;}
.personnel-assign-head strong{color:#222;}.personnel-assign-head span{color:#555;font-size:12px;font-weight:800;}
.personnel-assign-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:5px;}
.personnel-assign-item{display:grid;grid-template-columns:18px minmax(0,1fr);gap:6px;align-items:center;border:1px solid #e1e1e1;background:#fff;border-radius:4px;padding:5px;cursor:pointer;}
.personnel-assign-item span{font-weight:800;color:#222;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.personnel-assign-item small{grid-column:2/3;color:#666;font-size:11px;}
body.theme-night .personnel-assign-vehicle{background:#fff!important;color:#222!important;border-color:#d6d6d6!important;}
body.theme-night .personnel-assign-item{background:#fff!important;color:#222!important;border-color:#e1e1e1!important;}
body.theme-night .personnel-assign-item span,
body.theme-night .personnel-assign-head strong{color:#222!important;}
body.theme-night .personnel-assign-item small,
body.theme-night .personnel-assign-head span{color:#666!important;}

/* v0.5.69: Einsatzkräfte hell im Tagmodus, dezente Nachtkarte, Nachforderung statt Statusanzeige */
.app.fire-console .selected-map-info,
.app.fire-console .selected-map-info .hint,
.app.fire-console .selected-map-info .unit-card,
.app.fire-console .selected-map-info .radio-log-entry,
.app.fire-console .mission-chat-box,
.app.fire-console .dispatch-suggestion-bar,
.app.fire-console .dispatch-order,
.app.fire-console .fms-dispatch,
.app.fire-console .fms-chat,
.app.fire-console .fms-chat-list,
.app.fire-console .fms-chat-line{
  background:#fff!important;
  color:#222!important;
  border-color:#d6d6d6!important;
}
.app.fire-console .selected-map-info .hint strong,
.app.fire-console .selected-map-info .unit-card strong,
.app.fire-console .mission-chat-box strong,
.app.fire-console .radio-log-entry strong{color:#222!important;}
.app.fire-console .selected-map-info .hint span,
.app.fire-console .selected-map-info .unit-card span,
.app.fire-console .fms-chat-line span,
.app.fire-console .fms-chat-line p{color:#333!important;}
.app.fire-console .lss-modal-table.no-status>div{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) minmax(0,.75fr) minmax(0,.55fr)!important;}
.app.fire-console .lss-free-vehicle{grid-template-columns:24px minmax(0,1.35fr) .55fr .65fr auto!important;}
body.theme-night .app.fire-console #map,
body.theme-night .app.fire-console #map .leaflet-pane,
body.theme-night .leaflet-tile{
  filter:brightness(.82) contrast(.96) saturate(.88)!important;
}
body.theme-night .app.fire-console .selected-map-info,
body.theme-night .app.fire-console .selected-map-info .hint,
body.theme-night .app.fire-console .selected-map-info .unit-card,
body.theme-night .app.fire-console .selected-map-info .radio-log-entry,
body.theme-night .app.fire-console .mission-chat-box,
body.theme-night .app.fire-console .dispatch-suggestion-bar,
body.theme-night .app.fire-console .dispatch-order,
body.theme-night .app.fire-console .fms-dispatch,
body.theme-night .app.fire-console .fms-chat,
body.theme-night .app.fire-console .fms-chat-list,
body.theme-night .app.fire-console .fms-chat-line{
  background:#fff!important;
  color:#222!important;
  border-color:#d6d6d6!important;
}
@media(max-width:560px){
  .app.fire-console .lss-free-vehicle{grid-template-columns:22px minmax(0,1fr)!important;}
  .app.fire-console .lss-free-vehicle>span,.app.fire-console .lss-free-vehicle em{grid-column:2/3!important;}
  .app.fire-console .lss-modal-table.no-status>div{grid-template-columns:minmax(0,1fr) minmax(0,.75fr)!important;}
  .app.fire-console .lss-modal-table.no-status>div span:nth-child(3),
  .app.fire-console .lss-modal-table.no-status>div span:nth-child(4){display:none;}
}
/* v0.5.69 hotfix: dunkle Reste im Einsatzort-Fenster sicher überschreiben */
.app.fire-console .selected-map-info .info-grid>div,
.app.fire-console .selected-map-info .dispatch-order,
.app.fire-console .selected-map-info .dispatch-order-list,
.app.fire-console .selected-map-info .fms-request,
.app.fire-console .selected-map-info .mission-chat-box,
.app.fire-console .selected-map-info .fms-chat,
.app.fire-console .selected-map-info .fms-chat-list,
.app.fire-console .selected-map-info .fms-chat-line{
  background:#fff!important;
  color:#222!important;
  border-color:#d6d6d6!important;
}
.app.fire-console .selected-map-info .info-grid>div span,
.app.fire-console .selected-map-info .dispatch-order span,
.app.fire-console .selected-map-info .fms-request span,
.app.fire-console .selected-map-info .mission-chat-box span,
.app.fire-console .selected-map-info .fms-chat-line span,
.app.fire-console .selected-map-info .fms-chat-line p{color:#444!important;}
.app.fire-console .selected-map-info .info-grid>div strong,
.app.fire-console .selected-map-info .dispatch-order strong,
.app.fire-console .selected-map-info .fms-request strong,
.app.fire-console .selected-map-info .mission-chat-box strong,
.app.fire-console .selected-map-info .fms-chat-line strong{color:#222!important;}


.phone-expiry-box{margin:10px 0;padding:10px 12px;border-radius:12px;border:1px solid rgba(245,158,11,.45);background:#fff7ed;color:#111827;display:flex;flex-direction:column;gap:3px}.phone-expiry-box strong{color:#111827}.phone-expiry-box span{font-weight:800}.phone-expiry-box small{color:#374151}.phone-expiry-box.ok{border-color:rgba(34,197,94,.45);background:#f0fdf4}.selected-map-info .info-grid>div,.dispatch-mission-card .info-grid>div{background:#ffffff!important;color:#111827!important;border-color:rgba(17,24,39,.12)!important}.selected-map-info .info-grid span,.selected-map-info .info-grid strong{color:#111827!important}
body.night .phone-expiry-box{background:#2b2114;color:#f8fafc;border-color:rgba(245,158,11,.55)}body.night .phone-expiry-box strong,body.night .phone-expiry-box span,body.night .phone-expiry-box small{color:#f8fafc!important}


/* v0.5.72: mehrere Fahrzeuge an fast gleicher Position sichtbar darstellen */
.vehicle-image-marker{transform:translate(var(--veh-x,0px),var(--veh-y,0px));}
.vehicle-image-label{position:absolute;left:62px;top:7px;transform:translateY(var(--veh-label-y,0px));min-width:96px;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(9,16,30,.94);border:1px solid rgba(255,255,255,.26);border-radius:8px;padding:3px 7px;font-size:11px;font-weight:800;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.35);pointer-events:none;}
.vehicle-image-marker.owner .vehicle-image-label{border-color:rgba(53,201,120,.55);}
@media(max-width:720px){.vehicle-image-label{max-width:190px;font-size:10px;}}

/* v0.5.88: Mobile Modal-Optimierung */
@media(max-width:720px){
  #modalRoot{position:fixed;inset:0;z-index:7000;}
  .modal-backdrop{padding:8px!important;align-items:flex-end!important;justify-content:center!important;overflow:hidden!important;}
  .modal,.dialog,.sheet,.mission-modal,.dispatch-modal{
    width:100%!important;
    max-width:100%!important;
    max-height:94dvh!important;
    border-radius:16px 16px 0 0!important;
    padding:12px!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
    box-sizing:border-box!important;
  }
  .modal-head,.modal-header,.dialog-head{
    position:sticky!important;
    top:-12px!important;
    z-index:3!important;
    background:inherit!important;
    padding-top:4px!important;
    padding-bottom:8px!important;
    border-bottom:1px solid rgba(148,163,184,.28)!important;
  }
  .modal-actions,.dialog-actions,.sticky-actions,.dispatch-actions{
    position:sticky!important;
    bottom:-12px!important;
    z-index:3!important;
    background:inherit!important;
    border-top:1px solid rgba(148,163,184,.28)!important;
    padding:10px 0 0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .modal-actions .btn,.dialog-actions .btn,.sticky-actions .btn,.dispatch-actions .btn{
    width:100%!important;
    min-height:44px!important;
  }
  .dispatch-vehicle-list,.clean-list,.compact-list,.lss-free-list,.station-suitability-list,.mission-chat-list,.fms-chat-list{
    max-height:52dvh!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
  }
  .lss-modal-table,.modal-table,.dispatch-table{overflow:auto!important;}
  .lss-modal-table>div,.modal-table>div,.dispatch-table>div{min-width:0!important;}
  .modal input,.modal select,.modal textarea,.dialog input,.dialog select,.dialog textarea{
    max-width:100%!important;
    box-sizing:border-box!important;
  }
}
@media(max-width:480px){
  .modal-title,.dialog-title{font-size:16px!important;line-height:1.25!important;}
  .modal input,.modal select,.modal textarea,.dialog input,.dialog select,.dialog textarea{font-size:16px!important;}
  .dispatch-modal-summary,.mission-summary,.info-grid{grid-template-columns:1fr!important;}
  .modal .btn,.dialog .btn{white-space:normal!important;}
}

/* v0.5.90: Einsatzort-Modal Handy-Feinschliff und Fahrzeugbilder ohne Namenslabel */
.vehicle-image-marker .vehicle-image-label{display:none!important;}
@media(max-width:720px){
  .lss-dispatch-window{width:100%!important;max-height:94dvh!important;border-radius:16px 16px 0 0!important;padding:10px!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;}
  .lss-dispatch-window .modal-head{flex:0 0 auto!important;}
  .lss-dispatch-top{display:grid!important;grid-template-columns:1fr!important;gap:5px!important;padding:7px!important;margin-bottom:7px!important;}
  .lss-dispatch-top span:not(.lss-badge){display:flex!important;justify-content:space-between!important;gap:8px!important;padding:6px 8px!important;font-size:12px!important;}
  .lss-dispatch-grid{grid-template-columns:1fr!important;gap:7px!important;overflow:auto!important;-webkit-overflow-scrolling:touch!important;}
  .lss-dispatch-grid section{padding:7px!important;}
  .lss-free-list{max-height:46dvh!important;}
  .app.fire-console .lss-free-vehicle{grid-template-columns:24px minmax(0,1fr)!important;align-items:start!important;}
  .app.fire-console .lss-free-vehicle>span,.app.fire-console .lss-free-vehicle em{grid-column:2/3!important;}
  .app.fire-console .lss-free-vehicle>span:nth-of-type(2)::before{content:'Entfernung: ';font-weight:900;color:#555;}
  .app.fire-console .lss-free-vehicle>span:nth-of-type(3)::before{content:'Wasser: ';font-weight:900;color:#555;}
  .professional-dispatch-modal .dispatch-modal-summary{grid-template-columns:1fr!important;}
}


.player-help-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between;margin:8px 0;}
.player-help-box strong{display:block;color:#ffd27a;}
.player-help-box span{flex:1 1 220px;}
.player-help-box .btn{white-space:nowrap;}
@media (max-width:760px){.player-help-box{align-items:stretch}.player-help-box .btn{width:100%;}}


/* v0.5.94: Wache einsatzbereit / nicht einsatzbereit */
.station-ready-toggle{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px;border:1px solid rgba(20,40,70,.16);background:#f3f7fb;font-size:13px;font-weight:800;color:#123;cursor:pointer;white-space:nowrap;}
.station-ready-toggle input{width:18px;height:18px;accent-color:#22a45a;}
.station-ready-toggle.off{background:#fff0f0;border-color:#f0b4b4;color:#8a1f1f;}
.station-ready-toggle.ready{background:#eefbf2;border-color:#b7e6c4;color:#136b34;}
.station-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.station-offline{outline:2px solid rgba(220,70,70,.25);filter:saturate(.9);}
@media (max-width: 720px){.station-head-actions{justify-content:flex-start}.station-ready-toggle{width:100%;justify-content:space-between}.lss-station-head{gap:10px;align-items:flex-start}}

/* v0.5.95 Profi-Cleanup: wiederverwendbare UI-Struktur */
.pro-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0;padding:6px;border-radius:14px;background:rgba(15,23,42,.06)}
.pro-tab{border:0;border-radius:11px;padding:9px 12px;font-weight:700;cursor:pointer;background:rgba(255,255,255,.78);color:#111827;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.pro-tab.active{background:#0f766e;color:#fff;box-shadow:0 8px 18px rgba(15,118,110,.22)}
.pro-section{border:1px solid rgba(148,163,184,.35);border-radius:16px;background:rgba(255,255,255,.88);padding:14px;margin-top:10px}
.pro-section-title{font-weight:800;margin-bottom:10px;color:#0f172a}
.pro-progress{display:grid;gap:6px;margin:8px 0}
.pro-progress>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#334155}
.pro-progress strong{color:#0f172a}
.pro-progress-bar{height:8px;border-radius:999px;background:rgba(148,163,184,.35);overflow:hidden}
.pro-progress-bar i{display:block;height:100%;border-radius:999px;background:#0f766e}
.station-tabs .pro-tab{font-size:13px}
.station-metrics span{font-weight:700}
.theme-night .pro-tabs{background:rgba(255,255,255,.08)}
.theme-night .pro-tab{background:rgba(15,23,42,.86);color:#e5e7eb}
.theme-night .pro-tab.active{background:#0d9488;color:#fff}
.theme-night .pro-section{background:rgba(15,23,42,.82);border-color:rgba(148,163,184,.22)}
.theme-night .pro-section-title,.theme-night .pro-progress strong{color:#f8fafc}
.theme-night .pro-progress>div:first-child{color:#cbd5e1}
@media (max-width: 760px){
  .pro-tabs{position:sticky;top:0;z-index:3;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}
  .pro-tab{white-space:nowrap;min-height:42px;padding:10px 13px}
  .pro-section{padding:12px;border-radius:14px}
}

/* v0.5.96: Einsatzort/Fahrzeugauswahl sauber ausrichten, keine km-Überlagerung am Wachnamen */
.app.fire-console .lss-free-vehicle,
.lss-free-vehicle{
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr) 96px 96px auto!important;
  gap:10px!important;
  align-items:center!important;
}
.lss-free-vehicle-main{min-width:0!important;display:flex!important;flex-direction:column!important;gap:2px!important;line-height:1.2!important;}
.lss-free-vehicle-main strong{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
.lss-free-vehicle-main small{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
.lss-free-vehicle-distance,
.lss-free-vehicle-water{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  min-width:0!important;
  line-height:1.15!important;
  font-weight:800!important;
  color:#222!important;
}
.lss-free-vehicle-distance b,
.lss-free-vehicle-water b{
  display:block!important;
  font-size:10px!important;
  line-height:1!important;
  text-transform:uppercase!important;
  letter-spacing:.03em!important;
  color:#666!important;
  margin-bottom:3px!important;
}
.app.fire-console .lss-free-vehicle>span:nth-of-type(2)::before,
.app.fire-console .lss-free-vehicle>span:nth-of-type(3)::before{content:none!important;}
@media(max-width:720px){
  .app.fire-console .lss-free-vehicle,
  .lss-free-vehicle{
    grid-template-columns:24px minmax(0,1fr)!important;
    gap:8px!important;
    align-items:start!important;
  }
  .lss-free-vehicle input{grid-column:1/2!important;grid-row:1/3!important;margin-top:2px!important;}
  .lss-free-vehicle-main{grid-column:2/3!important;grid-row:1/2!important;}
  .lss-free-vehicle-distance,
  .lss-free-vehicle-water,
  .lss-free-vehicle em{grid-column:2/3!important;grid-row:auto!important;}
  .lss-free-vehicle-distance,
  .lss-free-vehicle-water{
    display:inline-flex!important;
    flex-direction:row!important;
    gap:6px!important;
    align-items:center!important;
    background:#f3f6fb!important;
    border:1px solid #dbe5f2!important;
    border-radius:7px!important;
    padding:5px 7px!important;
    width:max-content!important;
    max-width:100%!important;
  }
  .lss-free-vehicle-distance b,
  .lss-free-vehicle-water b{margin:0!important;font-size:10px!important;}
}

/* v0.5.97: Wasser auffüllen direkt in der Wachen-Fahrzeugansicht */
.station-water-refill{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.station-water-refill strong,
.station-water-refill span{
  display:block;
}
.station-water-refill .btn{
  margin-left:auto;
}
@media (max-width: 720px){
  .station-water-refill{
    align-items:stretch;
  }
  .station-water-refill .btn{
    width:100%;
    margin-left:0;
  }
}

/* v0.5.98 Admin-/Support-Cleanup */
.pro-admin-hero{border-left:4px solid #2563eb;}
.admin-role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0;}
.admin-role-card{background:#f8fafc;border:1px solid #dbe3ef;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px;}
.admin-role-card.active{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12);background:#eff6ff;}
.admin-role-card span{font-size:12px;color:#526071;line-height:1.35;}
.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px;}
.admin-tab{border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:9px 13px;font-weight:800;cursor:pointer;color:#1f2937;}
.admin-tab.active{background:#1d4ed8;color:#fff;border-color:#1d4ed8;}
.json-tool-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.ticket-layout{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(320px,1.2fr);gap:14px;align-items:start;}
.ticket-create-card .input,.ticket-detail .input{margin-bottom:8px;}
.ticket-textarea{min-height:120px;resize:vertical;}
.ticket-filter{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 10px;}
.ticket-list{display:flex;flex-direction:column;gap:8px;}
.ticket-row{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #d7e0ec;background:#fff;border-radius:12px;padding:10px 12px;cursor:pointer;color:#111827;}
.ticket-row:hover,.ticket-row.selected{border-color:#2563eb;background:#eff6ff;}
.ticket-row span:first-child{display:flex;flex-direction:column;gap:3px;min-width:0;}
.ticket-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ticket-row small{color:#64748b;}
.ticket-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px;}
.ticket-message-list{display:flex;flex-direction:column;gap:10px;max-height:420px;overflow:auto;margin:10px 0 12px;padding-right:4px;}
.ticket-message{border:1px solid #dbe3ef;border-radius:14px;padding:10px 12px;background:#f8fafc;}
.ticket-message.staff{background:#eef6ff;border-color:#bfdbfe;}
.ticket-message.player{background:#fff;border-color:#e5e7eb;}
.ticket-message div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center;}
.ticket-message small{color:#64748b;}
.ticket-message p{margin:8px 0 0;line-height:1.45;white-space:normal;}
.btn.active{box-shadow:0 0 0 2px rgba(37,99,235,.2);border-color:#2563eb;}
.theme-night .admin-role-card,.theme-night .ticket-row,.theme-night .ticket-message.player{background:#18202c;border-color:#334155;color:#e5edf8;}
.theme-night .admin-role-card.active,.theme-night .ticket-row.selected,.theme-night .ticket-row:hover{background:#172554;border-color:#3b82f6;}
.theme-night .admin-tab{background:#111827;color:#e5edf8;border-color:#334155;}
.theme-night .admin-tab.active{background:#2563eb;border-color:#2563eb;color:#fff;}
.theme-night .ticket-message.staff{background:#11253f;border-color:#1d4ed8;}
@media (max-width: 900px){
  .admin-role-grid,.ticket-layout{grid-template-columns:1fr;}
  .ticket-detail-head{flex-direction:column;align-items:stretch;}
  .ticket-row{align-items:flex-start;}
}

/* v0.5.99 Bann-Verwaltung */
.auth-message.ban{
  display:block;
  border:2px solid rgba(220,38,38,.7);
  background:linear-gradient(135deg, rgba(127,29,29,.96), rgba(185,28,28,.9));
  color:#fff;
  font-weight:800;
  font-size:1rem;
  line-height:1.45;
  padding:16px 18px;
  border-radius:16px;
  box-shadow:0 14px 30px rgba(127,29,29,.28);
}
.admin-ban-card{border-left:4px solid #dc2626;}
.admin-ban-box{border:1px solid rgba(148,163,184,.28);border-radius:14px;padding:12px;margin-top:10px;background:rgba(248,250,252,.82);}
.admin-ban-box.danger-soft{border-color:rgba(220,38,38,.28);background:rgba(254,242,242,.92);}
.theme-night .admin-ban-box{background:rgba(15,23,42,.86);border-color:rgba(148,163,184,.22);}
.theme-night .admin-ban-box.danger-soft{background:rgba(127,29,29,.22);border-color:rgba(248,113,113,.28);}
.admin-ban-card textarea.input{min-height:82px;resize:vertical;}


/* v0.6.00 Mobile Render Guard: Fahrzeugbilder stabil halten, kein sichtbares Neuladen bei Sync */
.vehicle-image-marker,.vehicle-image-marker img{backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;}
.vehicle-image-marker img{image-rendering:auto;will-change:auto;}
@media(max-width:720px){.vehicle-image-wrap,.vehicle-image-marker{contain:layout paint;}.vehicle-image-marker:hover{filter:none;transform:translate(var(--veh-x,0px),var(--veh-y,0px));}.btn,.nav-btn{backface-visibility:hidden;-webkit-tap-highlight-color:transparent;}}

/* v0.6.01 Bundesland-/Stadt-Auswahl */
.server-context{margin:.75rem 0 1rem;padding:.85rem;border:1px solid rgba(15,23,42,.12);border-radius:14px;background:#f8fafc;display:flex;flex-direction:column;gap:.2rem;color:#0f172a;}
.server-context span{font-size:.82rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#475569;}
.server-context small{color:#64748b;line-height:1.35;}
.server-context.test{border-color:rgba(217,119,6,.35);background:#fffbeb;}
.server-context.test span{color:#92400e;}
.server-context.live{border-color:rgba(22,163,74,.25);background:#f0fdf4;}
.server-context.live span{color:#166534;}
.theme-night .server-context{background:#111827;border-color:#334155;color:#e5e7eb;}
.theme-night .server-context small{color:#94a3b8;}
.theme-night .server-context.test{background:#2a1e0c;border-color:#92400e;}
.theme-night .server-context.live{background:#082313;border-color:#166534;}

/* v0.6.09: sichtbarer Test-/Entwicklungs-Hinweis */
.env-banner{
  position:fixed;
  left:0;
  right:0;
  top:0;
  z-index:99999;
  padding:8px 14px;
  text-align:center;
  font-weight:900;
  letter-spacing:.04em;
  box-shadow:0 2px 10px rgba(0,0,0,.24);
}
.env-banner.test{background:#ffcc00;color:#121212;border-bottom:2px solid #8a5a00;}
.env-banner.dev{background:#31455f;color:#fff;border-bottom:2px solid #0d1724;}
.env-banner.hidden{display:none!important;}
body.app-env-test .app,
body.app-env-test .auth-screen{padding-top:38px;}
body.app-env-test .modal{margin-top:38px;}
select[aria-disabled="true"]{opacity:.75;cursor:not-allowed;}
