/* EDP-REA — EDP-Look-and-Feel. Farben/Klassen nachgebildet aus EDPweb
   (bootstrap.min.css-Ergänzungen, statusfarben.css, global.css). */

@font-face {
  font-family: "bootstrap-icons";
  src: url("/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2") format("woff2"),
       url("/vendor/bootstrap-icons/fonts/bootstrap-icons.woff") format("woff");
}

/* --- EDP-Hintergrundabstufungen (hell / dunkel) --- */
[data-bs-theme="light"] .edp-bg-body-1, [data-bs-theme=""] .edp-bg-body-1 { background-color:#fafafa !important; }
[data-bs-theme="light"] .edp-bg-body-2, [data-bs-theme=""] .edp-bg-body-2 { background-color:#f6f6f6 !important; }
[data-bs-theme="light"] .edp-bg-body-3, [data-bs-theme=""] .edp-bg-body-3 { background-color:#f0f0f0 !important; }
[data-bs-theme="light"] .edp-bg-body-4, [data-bs-theme=""] .edp-bg-body-4 { background-color:#e7e7e7 !important; }
[data-bs-theme="dark"] .edp-bg-body-1 { background-color:#323232 !important; }
[data-bs-theme="dark"] .edp-bg-body-2 { background-color:#313131 !important; }
[data-bs-theme="dark"] .edp-bg-body-3 { background-color:#303030 !important; }
[data-bs-theme="dark"] .edp-bg-body-4 { background-color:#2e2e2e !important; }

/* --- Hover wie EDP --- */
.hover-light, .hover-dark { transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s; }
.hover-light:hover { background-color:#ccc !important; color:#000 !important; border-radius:var(--bs-border-radius); }
.hover-dark:hover  { background-color:hsl(0,0%,37%) !important; color:#fff !important; border-radius:var(--bs-border-radius); }
[data-bs-theme="dark"] .edp-side-btn { background-color:#303030 !important; border:none; color:#e8e8e8 !important; }
[data-bs-theme="dark"] .edp-side-btn:hover { background-color:#ccc !important; color:#000 !important; }

/* --- Navbar-Brand --- */
.navbar-brand { font-size:1.35rem; letter-spacing:.3px; }

/* --- Sidebar --- */
#navigation h5 { font-size:.8rem; text-transform:uppercase; letter-spacing:.6px; opacity:.6; }

/* --- Einsatzlisten-Cards --- */
.card-einsatzliste > .card-header > h5 { margin:0; font-weight:600; font-size:large; display:flex; align-items:center; }
.badge-einsatz-counter { display:flex; align-items:center; justify-content:center; width:22px; aspect-ratio:1/1; font-size:12px; }

/* --- FMS-Statusquadrate (global.css) --- */
td:has(.status) { padding:.35rem .6rem; }
div.status { display:flex; aspect-ratio:1/1; width:2em; border-radius:4px; justify-content:center; align-items:center; font-weight:700; }
.btn-status { cursor:pointer; }

/* --- Statusfarben (statusfarben.css, FMS 0..9) --- */
.edp-bg-status-0 { background-color:#ff80ff; }
.edp-bg-status-1 { background-color:#80ff80; }
.edp-bg-status-2 { background-color:#00c100; }
.edp-bg-status-3 { background-color:#ffff3c; }
.edp-bg-status-4 { background-color:#ff5555; }
.edp-bg-status-5 { background-color:#004080; color:#fff; }
.edp-bg-status-6 { background-color:#ffffff; }
.edp-bg-status-7 { background-color:#97ffff; }
.edp-bg-status-8 { background-color:#28ffff; }
.edp-bg-status-9 { background-color:#c0c0c0; }
.edp-bg-status-0,.edp-bg-status-1,.edp-bg-status-2,.edp-bg-status-3,.edp-bg-status-4,
.edp-bg-status-6,.edp-bg-status-7,.edp-bg-status-8,.edp-bg-status-9 { color:#000; }

/* --- Taktische Einsatzstatus-Farben (Zeilenhervorhebung) --- */
.edp-row-disponiert td:first-child { border-left:4px solid #ffcf33; }
.edp-row-alarmiert  td:first-child { border-left:4px solid #ff5555; }
.edp-row-erfasst    td:first-child { border-left:4px solid #9aa4b2; }
.edp-row-beendet    td:first-child { border-left:4px solid #28a745; }

/* --- Taktische Dispo-Farben der Rufname-Buttons (statusfarben.css) --- */
.edp-bg-ausserdienst { background-color:#ffffff; color:#000; }
.edp-bg-undisponiert { background-color:#dfd7b3; color:#000; }
.edp-bg-disponiert   { background-color:#ffff9b; color:#000; }
.edp-bg-einsatzklar  { background-color:#c6f0c1; color:#000; }
[data-bs-theme="dark"] .edp-bg-ausserdienst { background-color:#4a4a4a; color:#fff; }

/* --- Einsatz-Detailansicht (3-Spalten wie EDP) --- */
.einsatz-wrap { gap:.75rem; }
.einsatz-col { flex:1 1 100%; min-width:0; }
.einsatz-col-stack { gap:.75rem; }
/* ab 1400px drei Spalten nebeneinander; -1.5rem = zwei gaps à .75rem */
@media screen and (min-width:1400px) {
  .einsatz-col { flex:1 1 calc((100% - 1.5rem)/3); }
}
.card-header-big .card-title { margin:0; font-weight:600; font-size:1.05rem; display:flex; align-items:center; }
.einsatz-data td { padding:.3rem .5rem; vertical-align:top; }
.einsatz-data td.lbl { color:var(--bs-secondary-color); white-space:nowrap; width:1%; }
.einsatz-data td.lbl i { margin-right:.4rem; }

/* --- Kräfteübersicht / Wachen-Tableau (Modal) --- */
.min-w-0 { min-width:0; }
.kraefte-kachel { border:1px solid rgba(0,0,0,.12); border-radius:var(--bs-border-radius); padding:.4rem .55rem; }
.kraefte-kachel .status { display:inline-flex; align-items:center; justify-content:center; min-width:24px; height:24px;
  border-radius:5px; font-weight:700; padding:0 .3rem; }
[data-bs-theme="dark"] .kraefte-kachel { border-color:rgba(255,255,255,.15); }
.kraefte-swatch { display:inline-block; width:14px; height:14px; border-radius:3px; vertical-align:-2px; margin-right:.25rem; }

/* --- Dateien & Fotos --- */
.datei-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(84px, 1fr)); gap:.4rem; }
.datei-thumb { position:relative; aspect-ratio:1/1; border-radius:var(--bs-border-radius); overflow:hidden; border:1px solid var(--bs-border-color); cursor:pointer; }
.datei-thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .15s ease; }
.datei-thumb:hover img { transform:scale(1.05); }
.datei-thumb .datei-del { position:absolute; top:3px; right:3px; padding:.05rem .3rem; opacity:0; transition:opacity .12s ease; }
.datei-thumb:hover .datei-del { opacity:.95; }
.datei-drop-over { outline:2px dashed var(--edp-primary); outline-offset:-4px; background:rgba(142,43,43,.06); }
#fotoModalImg { max-height:78vh; }

/* --- Einsatzzähler --- */
.zaehler-dauer { display:flex; align-items:baseline; gap:.5rem; padding:.35rem .4rem .6rem; }
.zaehler-dauer-val { font-size:1.9rem; font-weight:700; font-variant-numeric:tabular-nums; line-height:1; color:var(--edp-primary); }
.zaehler-dauer.text-secondary .zaehler-dauer-val { color:inherit; }
.zaehler-dauer-lbl { color:var(--bs-secondary-color); font-size:.85rem; }
.zaehler-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:.4rem; }
.zaehler-tile { text-align:center; border:1px solid var(--bs-border-color); border-radius:var(--bs-border-radius); padding:.4rem .2rem; background:var(--bs-body-bg); }
.zaehler-ico { color:var(--edp-primary); font-size:1.05rem; line-height:1; }
.zaehler-val { font-size:1.35rem; font-weight:700; line-height:1.1; font-variant-numeric:tabular-nums; }
.zaehler-lbl { font-size:.72rem; color:var(--bs-secondary-color); text-transform:uppercase; letter-spacing:.02em; }
.zaehler-sub { font-size:.7rem; color:var(--bs-secondary-color); min-height:1em; }

/* --- Lagekarte (Leaflet) --- */
.lagekarte-map { width:100%; height:calc(100dvh - 60px - 2rem); border-radius:var(--bs-border-radius); overflow:hidden; box-shadow:var(--bs-box-shadow-sm); }
.leaflet-div-icon { background:transparent; border:none; }
.map-marker { display:inline-flex; align-items:center; gap:.3em; white-space:nowrap; font-weight:700; font-size:12px;
  padding:2px 7px; border-radius:6px; border:1.5px solid rgba(0,0,0,.5); box-shadow:0 1px 3px rgba(0,0,0,.4); transform:translate(-50%,-50%); }
.map-marker-einsatz { background:#ff3b30; color:#fff; border-color:#b00; }
.map-marker-einsatz.beendet { background:#28a745; border-color:#1c7430; }
.map-marker-em { } /* Statusfarbe via edp-bg-status-* */
[data-bs-theme="dark"] .lagekarte-map { filter:none; }
/* Navbar (inkl. geöffnetem Benutzer-Dropdown) über die Leaflet-Controls heben. */
header { position:relative; z-index:1040; }

.map-legend { font-size:12px; line-height:1.4; }
.map-layers { font-size:12px; min-width:240px; max-width:300px; }
.map-layers .layer-list { max-height:40vh; overflow-y:auto; }
.map-layers .layer-row { padding:2px 2px; border-radius:5px; }
.map-layers .layer-row.layer-active { background:rgba(13,110,253,.12); }
.map-layers .layer-name { font-size:12px; line-height:1.25; white-space:normal; color:inherit; text-decoration:none; }
.map-layers .layer-name:hover { color:var(--bs-primary); }
.map-layers .badge { font-size:10px; font-weight:600; }
.map-legend .legend-swatch { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
  width:1.5em; height:1.5em; border-radius:4px; border:1px solid rgba(0,0,0,.4); font-size:11px; color:#000; }
.map-legend .legend-swatch.map-marker-einsatz { color:#fff; }
/* Leaflet faerbt ALLE <a> blau (.leaflet-container a) und ueberschreibt damit
   die Button-Textfarbe -> Popup-Buttons wieder korrekt einfaerben. */
.leaflet-container a.btn-primary, .leaflet-container a.btn-primary:hover { color:#fff; }
.leaflet-container a.btn-light, .leaflet-container a.btn-outline-secondary { color:#212529; }

/* --- Taktische Zeichen (Lagekarte) --- */
.tz-palette { display:flex; flex-direction:column; gap:2px; }
.tz-palette .tz-tool { width:34px; height:34px; display:flex; align-items:center; justify-content:center;
  border:1px solid transparent; border-radius:6px; background:transparent; cursor:pointer; padding:0; color:inherit; }
.tz-palette .tz-tool:hover { background:rgba(125,125,125,.2); }
.tz-palette .tz-tool.active { border-color:var(--bs-primary); background:rgba(13,110,253,.15); }
.tz-sym { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px;
  border-radius:50%; border:1.5px solid rgba(0,0,0,.45); font-size:13px; color:#fff; box-shadow:0 1px 2px rgba(0,0,0,.3); }
.tz-red    { background:#dc2626; }
.tz-grey   { background:#475569; }
.tz-dark   { background:#1f2937; }
.tz-warn   { background:#facc15; color:#000; border-color:#000; }
.tz-orange { background:#ea580c; }
.tz-blue   { background:#2563eb; }
.tz-med    { background:#fff; color:#dc2626; border-color:#dc2626; }
/* Platziertes Zeichen (etwas größer, auf den Punkt zentriert) */
.tz-wrap { transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; }
.tz-wrap .tz-sym { width:30px; height:30px; font-size:16px; }
.tz-label { margin-top:2px; font-size:11px; font-weight:600; white-space:nowrap; color:#000;
  background:rgba(255,255,255,.85); border-radius:3px; padding:0 3px; }
[data-bs-theme="dark"] .tz-label { color:#000; }
/* Trenner in der Palette (zwischen Zeichen / Zeichnen / Export) */
.tz-palette .tz-sep { height:1px; margin:3px 2px; background:rgba(125,125,125,.35); }
/* Werkzeugleiste beim Zeichnen von Linien/Flächen */
.draw-bar { position:fixed; left:50%; bottom:24px; transform:translateX(-50%); z-index:1200;
  min-width:300px; max-width:calc(100% - 2rem); }

/* --- Login-Seite --- */
.login-hero { position:relative; overflow:hidden; color:#fff;
  background:linear-gradient(135deg,#1b2a4a 0%,#223a63 45%,#0f1b30 100%); }
.login-hero::before { content:""; position:absolute; inset:0;
  background-image:radial-gradient(circle at 1px 1px, rgba(255,255,255,.08) 1px, transparent 0);
  background-size:22px 22px; pointer-events:none; }
.login-hero > * { position:relative; z-index:1; }
.login-hero .brand { font-size:clamp(2rem,4vw,2.75rem); font-weight:800; letter-spacing:.3px; }
.login-hero .login-features li { margin-bottom:.5rem; opacity:.9; }
.login-form-wrap { max-width:420px; width:100%; }

/* --- Einsatzabschnitte (Taktische Gliederung) --- */
.abschnitt-sektion + .abschnitt-sektion { border-top:2px solid var(--bs-border-color); }
.abschnitt-kopf { font-size:13px; }
.abschnitt-kopf .btn-link { line-height:1; }
.em-move { max-width:130px; display:inline-block; font-size:12px; }

[draggable="true"] { cursor:move; }
.cursor-pointer { cursor:pointer; }

/* --- Stabs-/Lageführung (edp:command-Stil) --- */
.edp-command { border-radius:var(--bs-border-radius); overflow:hidden; border:1px solid var(--bs-border-color); min-height:calc(100dvh - 150px); }
.edp-command-sidebar { width:230px; flex-shrink:0; }
.edp-command .cmd-nav { margin-bottom:0; }
.edp-command .cmd-nav li { cursor:pointer; user-select:none; display:flex; align-items:center; }
.edp-command .cmd-nav li.active { font-weight:600; box-shadow:inset 3px 0 0 var(--bs-primary); }
.edp-command .cmd-toolbar a { white-space:nowrap; text-decoration:none; }
.edp-command .cmd-toolbar a:hover { text-decoration:underline; }
.edp-command .cmd-tags a { text-decoration:none; }
.edp-command .cmd-tags a:hover { text-decoration:underline; }
.edp-command .cmd-tags a.active { font-weight:700; }
/* Chip-Mehrfachauswahl (Empfänger/Info) */
.edp-chipselect { position:relative; }
.edp-chipselect .chip-box { min-height:calc(1.5em + .75rem + 2px); cursor:text; }
.edp-chipselect .chip-input { outline:none; border:0; background:transparent; color:inherit; min-width:70px; flex:1 1 60px; }
.edp-chipselect .chip-menu { position:absolute; z-index:1056; inset:auto 0 auto 0; top:100%; max-height:260px; overflow:auto; }
.edp-chipselect .chip-menu .chip-opt { cursor:pointer; }
.edp-chip { display:inline-flex; align-items:center; gap:.25rem; }
.edp-chip .chip-x { cursor:pointer; opacity:.8; }
.edp-chip .chip-x:hover { opacity:1; }

/* --- MANV / Sichtungskategorien --- */
.sk-chip { display:inline-block; width:14px; height:14px; border-radius:3px; border:1px solid rgba(0,0,0,.35); vertical-align:middle; }
.sk-rot { background:#e53935; } .sk-gelb { background:#fdd835; } .sk-gruen { background:#43a047; }
.sk-blau { background:#42a5f5; } .sk-tot { background:#212121; } .sk-unverletzt { background:#bdbdbd; } .sk-ungesichtet { background:#9e9e9e; }
.manv-tile { border:1px solid var(--bs-border-color); border-radius:var(--bs-border-radius); padding:.5rem .75rem; text-align:center; min-width:92px; }
.manv-tile .manv-count { font-size:1.6rem; font-weight:700; line-height:1.1; }
.manv-tile .manv-label { font-size:.72rem; text-transform:uppercase; letter-spacing:.3px; opacity:.85; }
.manv-tile.sk-head { color:#fff; }
.manv-row-rot td:first-child { box-shadow:inset 4px 0 0 #e53935; }
.manv-row-gelb td:first-child { box-shadow:inset 4px 0 0 #fdd835; }
.manv-row-gruen td:first-child { box-shadow:inset 4px 0 0 #43a047; }
.manv-row-blau td:first-child { box-shadow:inset 4px 0 0 #42a5f5; }
.manv-row-tot td:first-child { box-shadow:inset 4px 0 0 #212121; }
.manv-row-unverletzt td:first-child { box-shadow:inset 4px 0 0 #bdbdbd; }
.manv-row-ungesichtet td:first-child { box-shadow:inset 4px 0 0 #9e9e9e; }

/* --- Lagebild (Monitor-Übersicht) --- */
/* Vollbild wird auf #content geschaltet (nicht .lb-wrap) – sonst zeigt Chrome einen schwarzen Hintergrund. */
.lb-wrap:fullscreen, #content:fullscreen { background:var(--bs-body-bg); padding:1.25rem; overflow:auto; }
.lb-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:.75rem; }
.lb-kpi { position:relative; border:1px solid var(--bs-border-color); border-radius:var(--bs-border-radius); padding:.75rem 1rem; background:var(--bs-body-bg); overflow:hidden; }
.lb-kpi-ico { position:absolute; right:.5rem; top:.4rem; font-size:1.6rem; opacity:.14; }
.lb-kpi-val { font-size:2rem; font-weight:700; line-height:1.05; }
.lb-kpi-val .lb-kpi-of { font-size:1rem; font-weight:400; opacity:.6; }
.lb-kpi-lbl { font-size:.78rem; text-transform:uppercase; letter-spacing:.3px; opacity:.85; }
.lb-kpi-sub { font-size:.72rem; opacity:.7; margin-top:.15rem; }
.lb-kpi.lb-rot { border-left:4px solid #e53935; }
.lb-kpi.lb-gruen { border-left:4px solid #43a047; }
.lb-kpi.lb-gelb { border-left:4px solid #fdd835; }
.lb-panel { border:1px solid var(--bs-border-color); border-radius:var(--bs-border-radius); overflow:hidden; background:var(--bs-body-bg); }
.lb-panel-h { background:var(--edp-bg-body-4,rgba(0,0,0,.05)); padding:.4rem .75rem; font-weight:600; border-bottom:1px solid var(--bs-border-color); }
.lb-panel-b { padding:.6rem .75rem; }
.lb-einsaetze { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:.6rem; max-height:60vh; overflow:auto; }
.lb-eintrag { border:1px solid var(--bs-border-color); border-radius:var(--bs-border-radius); padding:.5rem .6rem; }
.lb-fms-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:.5rem; }
.lb-fms { display:flex; align-items:center; gap:.4rem; border:1px solid var(--bs-border-color); border-radius:var(--bs-border-radius); padding:.3rem .5rem; }
.lb-fms-nr { font-weight:700; width:1.6rem; height:1.6rem; display:inline-flex; align-items:center; justify-content:center; background:var(--bs-secondary-bg); border-radius:4px; }
.lb-fms-n { font-weight:700; font-size:1.1rem; }
.lb-fms-lbl { font-size:.72rem; opacity:.75; line-height:1; }
.lb-sk { border-radius:var(--bs-border-radius); padding:.4rem .7rem; text-align:center; min-width:74px; }
.lb-sk-n { font-size:1.5rem; font-weight:700; line-height:1.1; }
.lb-sk-l { font-size:.7rem; text-transform:uppercase; letter-spacing:.3px; }

/* Schnellzugriffe – Link-Kacheln (Farbe als Akzent, Text in Vordergrundfarbe) */
.ql-tile {
  display: flex;
  align-items: center;
  text-decoration: none;
  padding: .75rem 1rem;
  border: 1px solid var(--bs-border-color);
  border-left: 5px solid var(--bs-secondary);
  border-radius: var(--bs-border-radius);
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  transition: box-shadow .15s ease, transform .05s ease, background-color .15s ease;
}
.ql-tile:hover { box-shadow: var(--bs-box-shadow-sm); background: var(--bs-tertiary-bg); }
.ql-tile:active { transform: translateY(1px); }

/* Wiki – gerenderte Artikel */
.wiki-body { line-height: 1.6; }
.wiki-body .wiki-h { margin-top: 1.1rem; margin-bottom: .5rem; font-weight: 600; }
.wiki-body h2.wiki-h { font-size: 1.5rem; border-bottom: 1px solid var(--bs-border-color); padding-bottom: .3rem; }
.wiki-body h3.wiki-h { font-size: 1.25rem; }
.wiki-body h4.wiki-h { font-size: 1.1rem; }
.wiki-body h5.wiki-h { font-size: 1rem; }
.wiki-body > *:first-child { margin-top: 0; }
.wiki-body .wiki-ul { margin: .3rem 0 .6rem 0; }
.wiki-body .wiki-seealso {
  border-left: 4px solid var(--bs-primary);
  background: var(--bs-tertiary-bg);
  padding: .5rem .75rem; border-radius: var(--bs-border-radius);
  margin: .6rem 0;
}
.wiki-table th { white-space: nowrap; }

/* =========================================================================
   Reskin: ziegelrotes Primär-Theme, dunkle Topbar, Kachel-Startseite.
   An den edp:web-Look angelehnt (Layout/Struktur/Farbe – kein Logo/Wortmarke).
   ========================================================================= */

/* --- Ziegelrot als Primärfarbe (ersetzt Bootstrap-Blau) --- */
:root {
  --edp-primary: #8e2b2b;
  --edp-primary-dark: #752323;
  --bs-primary: #8e2b2b;
  --bs-primary-rgb: 142, 43, 43;
  --bs-link-color-rgb: 142, 43, 43;
  --bs-link-hover-color-rgb: 117, 35, 35;
}
[data-bs-theme="dark"] {
  --bs-link-color-rgb: 216, 140, 140;
  --bs-link-hover-color-rgb: 230, 170, 170;
}
/* Bootstrap-5.3-Eigenheit: `.text-secondary` nutzt die FESTE Theme-Farbe
   `--bs-secondary-rgb` (#6c757d, in beiden Themes gleich) statt der adaptiven
   gedämpften Body-Textfarbe. Dadurch war dezenter Text (z. B. Wiki-Kategorie,
   Karten-Fußzeilen) dunkelgrau auf dunklem Grund und kaum lesbar. Im Dark-Theme
   auf die adaptive gedämpfte Textfarbe umbiegen (bleibt „sekundär", aber lesbar). */
[data-bs-theme="dark"] .text-secondary {
  color: rgba(var(--bs-body-color-rgb), .75) !important;
}
.btn-primary {
  --bs-btn-bg: var(--edp-primary); --bs-btn-border-color: var(--edp-primary);
  --bs-btn-hover-bg: var(--edp-primary-dark); --bs-btn-hover-border-color: var(--edp-primary-dark);
  --bs-btn-active-bg: var(--edp-primary-dark); --bs-btn-active-border-color: var(--edp-primary-dark);
  --bs-btn-disabled-bg: var(--edp-primary); --bs-btn-disabled-border-color: var(--edp-primary);
}
.btn-outline-primary {
  --bs-btn-color: var(--edp-primary); --bs-btn-border-color: var(--edp-primary);
  --bs-btn-hover-bg: var(--edp-primary); --bs-btn-hover-border-color: var(--edp-primary);
  --bs-btn-active-bg: var(--edp-primary); --bs-btn-active-border-color: var(--edp-primary);
}
.bg-primary { background-color: var(--edp-primary) !important; }
.text-bg-primary { background-color: var(--edp-primary) !important; color: #fff !important; }
.text-primary { color: var(--edp-primary) !important; }
[data-bs-theme="dark"] .text-primary { color: #d98c8c !important; }
.border-primary { border-color: var(--edp-primary) !important; }
.badge.bg-primary, .badge.text-bg-primary { background-color: var(--edp-primary) !important; }
.form-check-input:checked { background-color: var(--edp-primary); border-color: var(--edp-primary); }
.nav-pills .nav-link.active, .nav-pills .show > .nav-link { background-color: var(--edp-primary); }

/* --- Dunkle Topbar (immer dunkel, unabhängig vom Theme) --- */
.edp-topbar {
  background-color: #232323 !important;
  color: #fff;
  min-height: 52px;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.edp-topbar .navbar-brand { color: #fff; }
.edp-topbar-btn, .edp-launcher {
  color: rgba(255, 255, 255, .85); background: transparent; border: 0; border-radius: .4rem;
  transition: color .15s, background-color .15s;
}
.edp-topbar-btn:hover, .edp-launcher:hover, .edp-topbar .dropdown-toggle:hover { color: #fff; background: rgba(255, 255, 255, .12); }
.edp-launcher { font-size: 1.15rem; padding: .3rem .5rem; }
.edp-topbar .dropdown-toggle { color: rgba(255, 255, 255, .9); }
.edp-topbar #conn { color: rgba(255, 255, 255, .7); }
.edp-topbar .input-group-text {
  background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .15); color: rgba(255, 255, 255, .7);
}
.edp-topbar .form-control {
  background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .15); color: #fff;
}
.edp-topbar .form-control::placeholder { color: rgba(255, 255, 255, .5); }
.edp-topbar .form-control:focus {
  background: rgba(255, 255, 255, .14); color: #fff; box-shadow: none; border-color: rgba(255, 255, 255, .3);
}

/* --- Navigations-Drawer (App-Launcher) --- */
.edp-drawer .offcanvas-body h5 { font-size: .8rem; text-transform: uppercase; letter-spacing: .6px; opacity: .6; }

/* --- Kachel-Startseite (angelehnt an edp:web-Startseite) --- */
:root { --edp-tile-bg: #ffffff; --edp-tile-fg: #333; }
[data-bs-theme="dark"] { --edp-tile-bg: #3a3a3a; --edp-tile-fg: #e8e8e8; }
.start-wrap { max-width: 1500px; margin-inline: auto; }
.start-group-title { font-size: 1.05rem; font-weight: 600; opacity: .85; margin-bottom: .75rem; }
.start-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: .55rem; }
.start-tile {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .45rem; aspect-ratio: 1 / 1; border: 0; border-radius: .5rem; padding: .6rem; cursor: pointer;
  background: var(--edp-tile-bg); color: var(--edp-tile-fg);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .12); transition: transform .12s, box-shadow .12s, filter .12s;
}
.start-tile:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0, 0, 0, .18); filter: brightness(1.05); }
.start-tile:active { transform: translateY(0); }
.start-tile i { font-size: 1.6rem; line-height: 1; }
.start-tile-label { font-weight: 600; font-size: .82rem; text-align: center; line-height: 1.15; }
.start-tile-primary { --edp-tile-bg: var(--edp-primary); --edp-tile-fg: #fff; }
.start-tile-badge {
  position: absolute; top: .35rem; right: .4rem; min-width: 1.3rem; height: 1.3rem; padding: 0 .3rem;
  display: flex; align-items: center; justify-content: center; border-radius: 999px;
  font-size: .75rem; font-weight: 700; background: rgba(0, 0, 0, .28); color: #fff;
}
.start-lage-card {
  max-width: 360px; background: var(--edp-tile-bg); border: 1px solid var(--bs-border-color);
  border-radius: .6rem; padding: 1.25rem; margin-bottom: 2rem; box-shadow: 0 1px 2px rgba(0, 0, 0, .1);
}

/* Zwei-Faktor-Authentifizierung */
.letter-spacing-code { letter-spacing: .4em; font-weight: 600; }
.twofa-qr {
  background: #fff; padding: .75rem; border-radius: .5rem;
  border: 1px solid var(--bs-border-color); line-height: 0;
}
.twofa-qr img, .twofa-qr canvas { display: block; }

/* Einsatztagebuch */
.etb-wrap { max-width: 820px; padding: .5rem .25rem 2rem; }
.etb-table td, .etb-table th { vertical-align: top; }

/* Schadenskonto */
.sk-wrap { padding: .5rem .25rem 2rem; }
.sk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: .75rem; }
.sk-abschnitt .card-body { padding: .6rem .75rem; }
.sk-sect { margin-bottom: .5rem; }
.sk-sect:last-child { margin-bottom: 0; }
.sk-sect-lbl { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--bs-secondary-color); margin-bottom: .2rem; }
.sk-chips { display: flex; flex-wrap: wrap; gap: .3rem; }
.sk-em { display: inline-flex; align-items: center; width: auto; height: auto; font-size: .82rem; font-weight: 500; padding: .3rem .5rem; border: 1px solid rgba(0,0,0,.2); }
.sk-rows { display: flex; flex-direction: column; }
.sk-row { display: flex; align-items: center; gap: .4rem; padding: .18rem 0; font-size: .86rem; border-bottom: 1px solid var(--bs-border-color-translucent); }
.sk-row:last-child { border-bottom: 0; }
.sk-row-txt { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sk-row-ctrl { display: flex; align-items: center; gap: .15rem; flex-shrink: 0; }
.sk-step { padding: 0 .3rem; line-height: 1; border: 0; background: transparent; font-weight: 700; }
.sk-step:hover { color: var(--edp-primary); }
.sk-kpis { display: flex; gap: .75rem; }
.sk-kpi { flex: 1; text-align: center; background: var(--edp-tile-bg, var(--bs-tertiary-bg)); border: 1px solid var(--bs-border-color); border-radius: .5rem; padding: .6rem .25rem; }
.sk-kpi i { font-size: 1.1rem; color: var(--edp-primary); display: block; }
.sk-kpi-val { display: block; font-size: 1.5rem; font-weight: 700; line-height: 1.1; }
.sk-kpi-lbl { font-size: .72rem; color: var(--bs-secondary-color); }
.sk-sicht-row { display: flex; flex-wrap: wrap; gap: .3rem; }
.sk-sicht { font-size: .8rem; font-weight: 600; padding: .2rem .5rem; border-radius: .35rem; }

/* Kommunikationsplan */
.kp-wrap { padding: .5rem .25rem 2rem; }
.kp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: .75rem; }
.kp-card .card-footer { background: var(--bs-tertiary-bg); }
.kp-funk .form-label { font-size: .7rem; }

/* Taktische Gliederung (Organigramm) */
.takt-wrap { padding: .5rem .25rem 2rem; }
.takt-node { margin-bottom: .5rem; }
.takt-node .card-body { padding: .5rem .75rem; }
.takt-ems { display: flex; flex-wrap: wrap; gap: .3rem; }
.takt-em { display: inline-flex; align-items: center; font-size: .82rem; font-weight: 500; padding: .3rem .5rem; }
.takt-x { padding: 0 .1rem 0 .3rem; border: 0; background: transparent; color: inherit; font-weight: 700; line-height: 1; opacity: .75; }
.takt-x:hover { opacity: 1; }
/* Verschachtelung mit Verbindungslinie links */
.takt-children { margin-left: 1.25rem; padding-left: 1rem; border-left: 2px solid var(--bs-border-color); }
.takt-branch { position: relative; }
.takt-children > .takt-branch::before {
  content: ''; position: absolute; left: -1rem; top: 1.25rem; width: .85rem;
  border-top: 2px solid var(--bs-border-color);
}
.takt-pool-row { display: flex; flex-direction: column; gap: .25rem; padding-bottom: .4rem; border-bottom: 1px solid var(--bs-border-color-translucent); }
.takt-pool-row:last-child { border-bottom: 0; }

/* --- ELW-Modus (Vollbild-Einsatzcockpit) --- */
#content:has(.elw-root) { padding: 0 !important; }
.elw-root { display: flex; height: calc(100dvh - 52px); overflow: hidden; }
.elw-rail { flex: 0 0 3rem; width: 3rem; display: flex; flex-direction: column; justify-content: space-between; padding: .4rem 0; z-index: 3; }
.elw-rail-grp { display: flex; flex-direction: column; }
.elw-rail-btn { display: flex; align-items: center; width: 3rem; height: 2.7rem; color: inherit; text-decoration: none; white-space: nowrap; overflow: hidden; border-radius: 0 .4rem .4rem 0; cursor: pointer; }
.elw-rail-btn > i { flex: 0 0 3rem; width: 3rem; text-align: center; font-size: 1.2rem; }
.elw-rail-lbl { display: none; padding-right: 1rem; }
.elw-rail-btn:hover { width: 15rem; background: var(--bs-secondary-bg); z-index: 5; box-shadow: .2rem 0 .6rem rgba(0,0,0,.25); }
.elw-rail-btn:hover .elw-rail-lbl { display: inline; }
.elw-rail-btn.active { color: var(--bs-primary); box-shadow: inset .2rem 0 0 var(--bs-primary); }
.elw-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
.elw-header { display: none; padding: .55rem 1rem; border-bottom: 1px solid var(--bs-border-color); background: var(--bs-body-bg); }
.elw-header.open { display: block; }
.elw-stage { flex: 1 1 auto; min-height: 0; overflow: auto; padding: 1rem; }
.elw-kompakt { display: flex; gap: 1rem; height: 100%; align-items: stretch; }
.elw-kraefte { flex: 1 1 58%; min-width: 0; overflow: auto; }
.elw-etb { flex: 1 1 42%; min-width: 0; overflow: auto; border-left: 1px solid var(--bs-border-color); padding-left: 1rem; }
.elw-stat { border: 0; font-weight: 600; }
.elw-side { flex: 0 0 22rem; width: 22rem; border-left: 1px solid var(--bs-border-color); display: flex; flex-direction: column; overflow: hidden; }
.elw-root[data-side="off"] .elw-side { display: none; }
.elw-side-sec { display: flex; flex-direction: column; min-height: 0; }
.elw-side-tele { flex: 1 1 60%; }
.elw-side-frei { flex: 1 1 40%; border-top: 1px solid var(--bs-border-color); }
.elw-side-hd { font-weight: 600; padding: .45rem .75rem; border-bottom: 1px solid var(--bs-border-color); flex: 0 0 auto; }
.elw-side-body { overflow: auto; }
@media (max-width: 992px) {
  .elw-kompakt { flex-direction: column; }
  .elw-etb { border-left: 0; padding-left: 0; border-top: 1px solid var(--bs-border-color); padding-top: 1rem; }
  .elw-side { flex-basis: 16rem; width: 16rem; }
}
