/* Betreiberkonsole 0.6.0: Erscheinungsbild nach Vorlage design/vorgaben/konsole-uebersicht-vorlage.png.
   Farben: Anthrazit-Seitenleiste, weiße Kopfleiste, hellgrauer Inhalt, weiße Karten (Radius 12, feiner Rand), Markenorange.
   Orange als SCHRIFT auf Weiß nur als --stark (#B93A00, 5,7:1); Füllung der Primärknöpfe --knopf (#CC4A0C, weiße Schrift 4,6:1).
   Abstände im 8-px-Raster. Keine Fremdschrift, keine Bilddatei, keine Inline-Stile (CSP unverändert). */
:root{
 --flaeche:#fff;--flaeche2:#F9FAFC;--flaeche3:#EEF0F4;--grund:#F6F6F7;--text:#26292D;--schwach:#5B5F66;--invers:#fff;--linie:#E6E7EA;--rahmen:#8A8F97;--kartenrand:#E3E5E8;
 --orange:#E26025;--primaer:#E26025;--primaer-d:#CC4A0C;--knopf:#CC4A0C;--knopf-d:#B93A00;--stark:#B93A00;--stark-d:#8F3109;--hell:#FFF0E6;--hell2:#FFD9BE;
 --nav:#26292D;--nav-hover:#363A40;--nav-linie:#41454B;--nav-text:#fff;--nav-schwach:#C9CDD3;
 --ok:#15803D;--ok-s:#1E9245;--ok-f:#EAF9F0;--warn:#D62828;--warn-f:#FDECEC;--alarm:#BD0A0A;--hinw-f:#F7D3AF;--fokus:#11337A;
 --inaktiv-f:#E4E6EA;--r:10px;--rs:8px;--rk:12px;
 --schrift:Inter,"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--schrift);color:var(--text);background:var(--grund);font-size:16px;line-height:1.45}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.3}
:focus-visible{outline:3px solid var(--fokus);outline-offset:2px;box-shadow:0 0 0 2px #fff}
.navi :focus-visible{outline:3px solid #fff;outline-offset:-3px;box-shadow:none}
.nur-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sprung{position:absolute;left:8px;top:-80px;z-index:100;background:var(--knopf);color:#fff;padding:12px 16px;font-weight:700;border-radius:var(--rs);border:2px solid #fff}
.sprung:focus{top:8px}
.ico{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;display:block}

/* Gerüst: Seitenleiste (264 px) | Kopfleiste (66 px) über dem Inhalt */
#app{display:grid;grid-template-columns:264px minmax(0,1fr);grid-template-rows:minmax(66px,auto) minmax(0,1fr);height:100vh;min-height:560px}
.navi{grid-column:1;grid-row:1/3;background:var(--nav);color:var(--nav-text);display:flex;flex-direction:column;overflow:auto;min-height:0}
.marke-kopf{padding:24px 28px 16px}
.wm{font-weight:800;font-size:28px;line-height:1.15;color:var(--orange);white-space:nowrap;letter-spacing:-.01em}
.wm-unter{font-weight:500;font-size:16px;color:var(--nav-schwach);margin-top:4px}
.menue{list-style:none;margin:0;padding:8px 8px 0}
.menue li{margin:0 0 8px}
.navi a{display:flex;align-items:center;gap:16px;min-height:52px;padding:8px 16px;border-radius:var(--rk);color:var(--nav-text);font-size:16px;font-weight:500;line-height:1.25;text-decoration:none}
.navi a:hover{background:var(--nav-hover)}
.navi a[aria-current="page"]{background:var(--hell2);color:var(--text);font-weight:700;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.navi .text{min-width:0;overflow-wrap:anywhere}
.menue li.vor-trenner{margin-bottom:0}
.menue li.vor-trenner::after{content:"";display:block;height:1px;background:var(--nav-linie);margin:24px 12px 16px}
.navi .zahl{margin-left:auto;min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;padding:0 8px;border-radius:999px;background:#fff;color:var(--text);border:1px solid var(--nav-schwach)}
.navi .zahl.dringend{background:#C81E1E;border-color:#C81E1E;color:#fff}
.nutzer{margin-top:auto;border-top:1px solid var(--nav-linie);padding:16px 20px;display:flex;align-items:center;gap:16px;min-width:0}
.avatar{width:40px;height:40px;border-radius:50%;background:#E8EAED;color:var(--nav);display:flex;align-items:center;justify-content:center;flex:none}
.nutzer-text{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:1.3}
.nutzer-text .rolle{color:var(--nav-text)}
.nutzer-text .name{color:var(--nav-schwach);letter-spacing:.06em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nutzer .pfeil{color:var(--nav-schwach)}
.version{margin:0;padding:0 20px 12px 20px;font-size:12px;color:var(--nav-schwach)}
.kopf{grid-column:2;grid-row:1;background:#fff;border-bottom:1px solid var(--kartenrand);display:flex;align-items:center;gap:12px;padding:8px 16px 8px 28px;min-width:0;min-height:66px}
.menueknopf{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--rahmen);border-radius:var(--r);background:#fff;color:var(--text);cursor:pointer;flex:none}
.menueknopf:hover{background:var(--grund)}
.kruemel{flex:1 1 0;min-width:0;overflow:hidden}
.kruemel ol{display:flex;align-items:center;list-style:none;margin:0;padding:0;font-size:15px;white-space:nowrap}
.kruemel li{display:flex;align-items:center;flex:none}
.kruemel li:last-child{flex:0 1 auto;min-width:0}
.kruemel li+li::before{content:"/";margin:0 10px;color:var(--schwach)}
.kruemel li:nth-child(4):last-child{font-size:14px}
.kruemel li.nur-weit+li::before,.kruemel li+li:last-child::before{margin:0 6px}
.kruemel a{color:var(--schwach);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.kruemel a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.kruemel a.haus{color:var(--text);min-width:44px;justify-content:center}
.kruemel [aria-current="page"]{color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis}
.kopf-aktionen{display:flex;align-items:center;gap:16px;flex:none;justify-content:flex-end}
.pille{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 20px;border-radius:999px;border:1px solid var(--rahmen);background:#fff;color:var(--text);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}
.pille:hover{background:var(--grund);border-color:var(--text)}
.pille.statisch{cursor:default}
.pille.statisch:hover{background:#fff;border-color:var(--rahmen)}
.pille.alarm,.pille.alarm:hover{background:var(--warn-f);color:var(--alarm);border-color:var(--alarm)}
.schleier{position:fixed;inset:0;background:rgba(20,22,25,.55);z-index:40}
main{grid-column:2;grid-row:2;overflow:auto;background:var(--grund);position:relative;padding:32px 32px 48px;min-width:0}
main:focus{outline:none}

/* Bausteine */
.titel{font-size:40px;line-height:1.15;font-weight:800;letter-spacing:-.01em;margin-bottom:8px}
.vorspann{color:var(--schwach);font-size:18px;margin:0 0 24px;max-width:90ch}
.seitenkopf{display:flex;align-items:flex-start;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin-bottom:24px}
.seitenkopf .titel{margin-bottom:4px}
.seitenkopf .vorspann{margin:0}
.seitenkopf-aktion{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px}
.seitenkopf-aktion .stand{margin:0}
.kacheln{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 32px}
.kachel{display:flex;align-items:center;gap:20px;background:#fff;border:1px solid var(--kartenrand);border-radius:var(--rk);padding:24px;min-height:112px;text-decoration:none;color:var(--text);min-width:0}
a.kachel:hover{border-color:var(--rahmen)}
.kachel-sym{flex:none;display:flex;color:#3B3F45}
.kachel-text{display:flex;flex-direction:column;min-width:0}
.kachel b{display:block;font-size:36px;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums}
.kachel span{font-size:18px;color:var(--schwach)}
.kachel .kachel-text>span{overflow-wrap:anywhere}
.kachel.stark{background:#FFF7F0;border-color:var(--orange)}
.kachel.stark b{color:var(--stark)}
.kachel.rot{background:var(--warn-f);border:1px solid #E58A8A}
.kachel.rot b,.kachel.rot .kachel-sym{color:var(--alarm)}
.zwei{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:24px;align-items:start}
.spalte{border:1px solid var(--kartenrand);border-radius:var(--rk);overflow:hidden;background:#fff}
.liste{list-style:none;margin:0;padding:0}
.eintrag{display:block;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--linie);border-left:6px solid transparent;padding:12px 16px;min-height:64px;cursor:pointer}
.eintrag:hover{background:var(--flaeche2)}
.eintrag[aria-current="true"]{background:var(--hell);border-left-color:var(--stark)}
.eintrag .r1{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.eintrag .r2{color:var(--schwach);font-size:14px;margin-top:2px}
.eintrag[aria-current="true"] .r2{color:var(--text)}
.eintrag.rot{border-left-color:var(--alarm);background:var(--warn-f)}
.eintrag.rot:hover{background:#FBE1E1}
.eintrag.rot .r2{color:var(--text)}
.eintrag.rot[aria-current="true"]{background:var(--hell)}
.eintrag.mit-aktion{display:flex;align-items:center;gap:16px;border:0;border-left:6px solid var(--alarm);border-radius:6px var(--rs) var(--rs) 6px;padding:16px 20px;text-decoration:none;color:var(--text);margin-bottom:8px}
.eintrag-text{flex:1;min-width:0}
.eintrag.mit-aktion .r2{font-size:16px;margin-top:4px;overflow-wrap:anywhere}
.eintrag.mit-aktion .zeit{font-weight:600;padding:8px 24px;border-left:1px solid rgba(38,41,45,.15);white-space:nowrap}
.knopfoptik{pointer-events:none}
.karte-gross .marke{white-space:normal;text-align:left;max-width:100%}
.karte-gross .eintrag .r1{min-width:0}
.marke{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;padding:2px 12px;min-height:28px;border-radius:999px;border:1.5px solid currentColor;white-space:nowrap}
.m-rot{color:var(--alarm);background:#fff}
.m-gelb{color:var(--stark-d);background:var(--hell)}
.m-gruen{color:var(--ok);background:var(--ok-f)}
.m-grau{color:var(--schwach);background:var(--flaeche2)}
.zeit{font-variant-numeric:tabular-nums;font-weight:800}
.detail{border:1px solid var(--kartenrand);border-radius:var(--rk);padding:24px;background:#fff;min-width:0}
.detail h3{font-size:20px}
.gitter{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:16px 0}
.block{border:1px solid var(--kartenrand);border-radius:var(--rk);padding:16px 20px;background:#fff;min-width:0}
.block h4{font-size:14px;letter-spacing:.4px;text-transform:uppercase;color:var(--schwach);margin:0 0 8px}
.gitter.uebersicht-gitter{grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:32px 24px;align-items:stretch;margin:0}
.uebersicht-gitter>:nth-child(3){grid-column:1/-1}
.karte-gross{padding:24px 28px;display:flex;flex-direction:column}
.karte-kopf{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px;min-height:44px}
.karte-titel{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:700;line-height:1.2}
.zaehlpille{display:inline-flex;align-items:center;font-size:15px;font-weight:600;padding:4px 16px;border-radius:999px;background:var(--flaeche3);color:var(--text)}
.zaehlpille.rot{background:#FDE2E2;color:#9B1111}
.pfeillink{margin-left:auto;display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--stark);font-weight:700;text-decoration:underline;text-underline-offset:4px}
.pfeillink:hover{color:var(--stark-d)}
.kartenfuss{margin:8px 0 0;display:flex;justify-content:flex-end}
.leerzeile{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.leerzeile p{margin:0;color:var(--schwach);font-size:18px;flex:1;min-width:160px}
dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;font-size:15px}
dt{color:var(--schwach)}
dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.btn{min-height:44px;padding:0 20px;border-radius:var(--r);font-size:16px;font-weight:700;cursor:pointer;border:1.5px solid var(--knopf);background:var(--knopf);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.btn:hover{background:var(--knopf-d);border-color:var(--knopf-d)}
.btn.n{background:#fff;color:var(--stark);border-color:var(--orange)}
.btn.n:hover{background:var(--hell);border-color:var(--stark)}
.btn.g{background:var(--warn);border-color:var(--warn);color:#fff}
.btn.g:hover{background:var(--alarm)}
.btn.gn{background:#fff;border-color:var(--warn);color:var(--warn)}
.btn.klein{min-height:44px;padding:0 16px;font-size:14px}
.btn[aria-disabled="true"]{background:var(--inaktiv-f);color:#5B5F66;border-color:var(--rahmen);cursor:not-allowed}
.aktionen{display:flex;gap:8px 16px;flex-wrap:wrap;align-items:center;margin-top:16px}
.pr-gitter{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.pr-gitter .btn.klein{padding:0 12px;margin:2px 4px 2px 0}
.pr-aktionen{margin-top:12px}
.pr-entschieden{margin:4px 0 0;font-weight:700}
.pr-gitter dl{font-size:14px;gap:4px 12px}
.pr-gitter dd{overflow-wrap:break-word}
@media (max-width:1100px){.pr-gitter{grid-template-columns:minmax(0,1fr)}}
label{display:block;font-size:14px;font-weight:700;margin:16px 0 4px}
input[type=text],input[type=email],input[type=password],input[type=search],input[type=date],select,textarea{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--rahmen);border-radius:var(--rs);background:#fff;font-size:16px}
textarea{min-height:96px;resize:vertical}
.pruef{display:flex;gap:8px;align-items:center;min-height:44px;margin:4px 0}
.pruef input{width:24px;height:24px;flex:none}
.pruef label{margin:0;font-size:16px;font-weight:600;flex:1;min-height:44px;display:flex;align-items:center}
.inl{display:inline-flex;align-items:center;min-height:44px;color:var(--stark);font-weight:700}
.hilfe{font-size:14px;color:var(--schwach);margin-top:4px}
.fehler{font-size:14px;font-weight:700;color:var(--warn);margin-top:4px}
.banner{display:flex;gap:16px;align-items:flex-start;padding:16px 20px;border-radius:var(--rk);margin:0 0 16px;border:1px solid var(--rahmen);background:#fff}
.banner b{display:block}
.banner.alarm{background:var(--warn-f);border-color:var(--alarm)}
.banner.alarm b{color:var(--alarm)}
.banner.hinweis{background:var(--hinw-f);border-color:var(--stark)}
.banner.ok{background:var(--ok-f);border-color:var(--ok-s)}
.banner .sym{font-weight:800;font-size:20px;line-height:1.2}
table{width:100%;border-collapse:collapse;font-size:15px;background:#fff}
th{background:var(--flaeche2);color:var(--schwach);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;text-align:left;padding:12px 16px;border-bottom:1px solid var(--kartenrand)}
td{padding:12px 16px;border-bottom:1px solid var(--linie);min-height:52px;vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--flaeche2)}
td.zahl,th.zahl{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td button.zeile{background:none;border:0;padding:0;min-height:44px;text-align:left;cursor:pointer;color:var(--stark);text-decoration:underline;text-underline-offset:3px;font-weight:700}
tr.gewaehlt td{background:var(--hell)}
.tabwrap{overflow:auto;border:1px solid var(--kartenrand);border-radius:var(--rk);background:#fff}
.leer{text-align:center;padding:40px 24px;border:1px solid var(--kartenrand);border-radius:var(--rk);margin:8px 0;background:#fff}
.leer b{display:block;font-size:20px;margin:8px 0 4px}
.leer p{margin:0;color:var(--schwach)}
.leer .sym{display:block}
.leer-kreis{display:inline-flex!important;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--flaeche3);color:var(--schwach);font-size:28px}
.block .leer,.karte-gross .leer{border:0;padding:24px 0;margin:0}
.leer-roh{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px 0 16px!important}
.leer-roh .sym{color:#6B7078}
.leer-roh p{font-size:18px;color:var(--text)}
.skelett{display:block;height:18px;border-radius:4px;background:var(--flaeche3);margin:12px 0;animation:puls 1.4s ease-in-out infinite}
@keyframes puls{50%{opacity:.5}}
@media (prefers-reduced-motion:reduce){.skelett{animation:none}*{scroll-behavior:auto!important;transition:none!important}}
.zeitachse{list-style:none;margin:0;padding:0}
.zeitachse li{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--linie);font-size:15px}
.zeitachse li:last-child{border:0}
.zeitachse time{flex:0 0 64px;font-variant-numeric:tabular-nums;color:var(--schwach);font-weight:700}
.karte{width:100%;height:220px;border:1px solid var(--kartenrand);border-radius:var(--rs);background:var(--flaeche3);display:block}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--kartenrand);margin-bottom:16px;flex-wrap:wrap}
.tabs button{min-height:44px;padding:0 20px;border:1px solid transparent;border-bottom:0;background:none;font-weight:700;cursor:pointer;border-radius:var(--rs) var(--rs) 0 0;color:var(--schwach)}
.tabs button[aria-selected="true"]{background:#fff;color:var(--text);border-color:var(--kartenrand);border-bottom:1px solid #fff;margin-bottom:-1px;box-shadow:inset 0 3px 0 var(--orange)}
.filter{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}
.filter>div{min-width:150px;flex:1 1 150px;max-width:220px}
.filter label{margin-top:0}
.maske{font-family:ui-monospace,Consolas,monospace;letter-spacing:1px}
dialog{border:1px solid var(--rahmen);border-radius:16px;padding:0;max-width:560px;width:calc(100% - 32px);max-height:calc(100vh - 32px);overflow:auto;color:var(--text);box-shadow:0 24px 64px rgba(0,0,0,.35)}
dialog.breit{max-width:680px}
dialog::backdrop{background:rgba(20,22,25,.6)}
dialog .dk{padding:24px}
dialog h2{font-size:20px;margin-bottom:8px}
.wasserzeichen{position:relative;border:1px solid var(--kartenrand);border-radius:var(--rk);padding:24px;background:#fff;font-size:15px}
.wasserzeichen::after{content:"ENTWURF – keine gültige Rechnung";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;color:rgba(189,10,10,.35);transform:rotate(-18deg);pointer-events:none;text-align:center}

/* Anmeldung */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--grund);padding:24px}
.logink{background:#fff;border:1px solid var(--kartenrand);border-radius:16px;padding:32px;width:100%;max-width:440px;box-shadow:0 8px 32px rgba(0,0,0,.08)}
.logink h1{font-size:24px;margin:4px 0 4px}
.logink .wm{color:var(--stark);font-size:24px}

/* Kompaktere Kopfleiste unter 1440 px (damit die Brotkrume mit Text neben den vier Knöpfen Platz hat) */
@media (max-width:1359.98px){
 .kruemel .mittel{display:none}
}
@media (max-width:1439.98px){
 .kopf{padding-left:24px;gap:12px}
 .kopf-aktionen{gap:8px}
 .pille{padding:0 14px;font-size:13px}
}
/* Mittlere Breiten: Kopfleiste kürzer (Symbolknöpfe ohne Text, Name bleibt als aria-label), Karten untereinander */
@media (max-width:1179.98px){
 .pt-kurz{display:none}
 .pille{padding:0 12px}
 .zwei{grid-template-columns:minmax(0,1fr)}
 .gitter.uebersicht-gitter{grid-template-columns:minmax(0,1fr)}
 .uebersicht-gitter>:nth-child(3){grid-column:auto}
}
.navi .kurz{display:none}

/* Schmal (< 960 px): Seitenleiste eingeklappt (Menüknopf links in der Kopfleiste), Kennzahlkarten 2 je Zeile, Karten untereinander */
@media (max-width:959.98px){
 #app{grid-template-columns:minmax(0,1fr)}
 .navi{position:fixed;left:0;top:0;bottom:0;width:288px;max-width:88vw;z-index:50;transform:translateX(-100%);visibility:hidden;transition:transform .2s ease,visibility .2s}
 #app.nav-offen .navi{transform:none;visibility:visible}
 .kopf{grid-column:1;padding:8px 16px}
 main{grid-column:1;padding:24px 16px 40px}
 .menueknopf{display:inline-flex}
 .titel{font-size:32px}
 .kacheln{grid-template-columns:repeat(2,minmax(0,1fr))}
 .kachel{padding:16px;gap:12px;min-height:96px}
 .kachel-sym svg{width:32px;height:32px}
 .kachel b{font-size:32px}
 .kachel span{font-size:16px}
 .gitter.uebersicht-gitter{grid-template-columns:minmax(0,1fr)}
 .uebersicht-gitter>:nth-child(3){grid-column:auto}
 .karte-gross{padding:20px 16px}
 .eintrag.mit-aktion{flex-wrap:wrap}
 .eintrag-text{flex:1 1 100%}
 .eintrag.mit-aktion .zeit{border-left:0;padding:0}
 .offline-band{margin:-24px -16px 16px;top:-24px;padding:10px 16px}
}
@media (max-width:699.98px){
 .kopf{flex-wrap:wrap;gap:8px 12px}
 .kopf-aktionen{flex-basis:100%;justify-content:flex-start;gap:6px}
 .pille{padding:0 10px;gap:6px;font-size:13px}
 .nur-weit{display:none}
 .kruemel{flex:1}
 .seitenkopf-aktion{margin-top:0}
}

/* ---- Ergänzungen der echten Anwendung ---- */
[hidden]{display:none!important}
.toast{position:fixed;right:20px;bottom:20px;background:var(--text);color:#fff;padding:12px 18px;border-radius:var(--rs);font-weight:600;z-index:60;max-width:420px;border:2px solid #fff}
.offline-band{position:sticky;top:-32px;z-index:20;margin:-32px -32px 24px;padding:10px 32px;background:#FFE08A;color:#3a2a00;border-bottom:3px solid #8a6500;font-weight:700}
.stand{font-size:14px;color:var(--schwach);margin:0 0 12px}
.fehlt-hinweis{border:2px dashed var(--stark);background:var(--hell);border-radius:var(--rs);padding:12px 16px;margin:12px 0}
.fehlt-hinweis b{display:block;color:var(--stark-d)}
.fehlt-hinweis code{font-size:13px;background:#fff;border:1px solid var(--linie);padding:0 4px;border-radius:3px}
.zustand{border:2px solid var(--rahmen);border-radius:var(--rs);padding:20px 24px;margin:8px 0;background:var(--flaeche2)}
.zustand b{display:block;font-size:18px;margin-bottom:4px}
.zustand.rot{border-color:var(--alarm);background:var(--warn-f)}
.zustand.rot b{color:var(--alarm)}
.zustand .aktionen{margin-top:12px}
.laden{display:block}
.zeilenfehler{border-left:6px solid var(--alarm);background:var(--warn-f);padding:8px 12px;margin:8px 0;font-weight:600}
.ampel{display:inline-flex;gap:6px;align-items:center}
.preis{font-variant-numeric:tabular-nums}
.login .banner{margin-top:12px}
.dialogfehler{margin-top:10px}
.radiogruppe{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.radiogruppe button{min-height:44px;padding:0 16px;border:2px solid var(--rahmen);background:#fff;border-radius:999px;font-weight:700;cursor:pointer}
.radiogruppe button[aria-pressed="true"]{background:var(--text);color:#fff;border-color:var(--text)}
.tastenliste{display:grid;grid-template-columns:auto 1fr;gap:6px 14px}
kbd{border:2px solid var(--rahmen);border-radius:4px;padding:0 6px;font-family:ui-monospace,Consolas,monospace;font-size:14px;background:#fff}
.verlauf li{display:block}
.eintrag-zeile{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.liste li{margin:0}
.gedaempft{color:var(--schwach)}
.nowrap{white-space:nowrap}
a.eintrag{text-decoration:none;color:var(--text)}
a.eintrag .zeit{color:var(--text)}
.stand+.aktionen{margin-top:0}
.kopf .pille{flex:none}
.untertitel{font-size:18px;margin:20px 0 8px}
.filter .btn{white-space:nowrap}

/* ---- Karte, Spur, Zeitleiste, laufende Fahrten (0.3.0) ---- */
.spur-bereich{min-width:0}
.spur{min-width:0}
.spur-karte,.spur-seite{min-width:0}
.karte-flaeche{width:100%;height:420px;border:1px solid var(--rahmen);border-radius:var(--rs);background:var(--flaeche3);position:relative;z-index:0;overflow:hidden}
.karte-flaeche.ohne-kacheln{background-color:#E9EBEF;background-image:linear-gradient(#D5D9E0 1px,transparent 1px),linear-gradient(90deg,#D5D9E0 1px,transparent 1px);background-size:48px 48px}
.karte-hinweis{border:2px solid var(--stark);background:var(--hell);border-radius:var(--rs);padding:8px 12px;margin:0 0 8px;font-size:15px}
.karte-namen{margin:6px 0 0;font-size:13px;color:var(--schwach)}
.karte-namen a{color:var(--schwach);text-underline-offset:2px}
.legende{margin:8px 0 0;font-size:14px}
.legende-titel{display:block;margin-bottom:4px}
.legende-liste{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px}
.sw{display:inline-block;width:14px;height:14px;border-radius:50%;border:1.5px solid #fff;box-shadow:0 0 0 1px #6B7280;vertical-align:-2px}
.sw.strich{width:26px;height:0;border:0;border-top:3px dashed #111827;border-radius:0;box-shadow:none;vertical-align:3px}
.luecken-liste li{padding:4px 0;border-bottom:1px solid var(--linie);font-size:15px}
.luecken-liste li:last-child{border:0}
.zeitleiste{border:1px solid var(--rahmen);border-radius:var(--rs);padding:12px 14px;margin:14px 0;background:#fff;min-width:0}
.zeitleiste h4{font-size:14px;letter-spacing:.4px;text-transform:uppercase;color:var(--schwach);margin:0 0 8px}
.zl-reihe{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.radiogruppe.klein{margin:0}
.radiogruppe.klein button{padding:0 14px}
.zl-schieber{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}
.zl-ende{font-size:14px;color:var(--schwach);font-variant-numeric:tabular-nums}
.zl-schieber input[type=range]{width:100%;min-height:44px;margin:0;accent-color:var(--stark)}
.zl-stand{margin:6px 0 4px;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.popup-dl{display:grid;grid-template-columns:max-content max-content;gap:2px 12px;margin:0;font-size:14px;line-height:1.4;text-align:left;white-space:nowrap}
.popup-dl dt{margin:0;color:var(--schwach)}
.popup-dl dd{margin:0;overflow-wrap:normal;word-break:normal;white-space:nowrap;font-variant-numeric:tabular-nums}
/* Leaflet-Popups: feste Breite innerhalb 220–320 px (minWidth/maxWidth in karte.js), Werte nie zeichenweise umbrechen,
   nur lange Fließtexte (Markierungen, Auslöser) brechen an Wortgrenzen */
.karte-leaflet .leaflet-popup-content{text-align:left;overflow-wrap:break-word;word-break:normal;margin:12px 44px 12px 14px;min-width:160px}
.karte-leaflet .leaflet-popup-content p{margin:0}
.live-gitter{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,2fr);gap:16px;align-items:start}
@media (max-width:1460px){
 .live-gitter{grid-template-columns:minmax(0,1fr)} /* Tabelle braucht ~620 px, sonst ist „Letzte Position“ abgeschnitten */
}
@media (max-width:1180px){
 .live-gitter{grid-template-columns:minmax(0,1fr)}
 .live-gitter .karte-flaeche{height:360px}
}
/* Markierungen (Leaflet-DivIcons): Form UND Farbe unterscheiden */
.mk-huelle{background:none;border:0;display:flex;align-items:center;justify-content:center;pointer-events:none!important}
.mk-huelle .mk{pointer-events:auto}
.mk{display:flex;width:30px;height:30px;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 0 0 1.5px #111827;color:#fff;font-weight:800;font-size:14px;line-height:1;box-sizing:border-box}
.mk-t{pointer-events:none}
.mk-start{border-radius:50%;background:#15803D}
.mk-ziel{border-radius:50%;background:#BD0A0A}
.mk-einstieg{transform:rotate(45deg);border-radius:4px;background:#1D4ED8}
.mk-einstieg .mk-t,.mk-ausstieg .mk-t{display:block}
.mk-einstieg .mk-t{transform:rotate(-45deg)}
.mk-ausstieg{border-radius:4px;background:#7E22CE}
.mk-ausloeser{border-radius:50%;background:#FE9F4D;color:#111827;border:4px solid #111827;box-shadow:0 0 0 3px #fff;font-size:18px}
.mk-pos-fahrende{border-radius:4px;background:#1D4ED8;border-color:#fff}
.mk-pos-mitfahrende{border-radius:50%;background:#fff;color:#7E22CE;border:3px solid #7E22CE;box-shadow:none}
.mk.geschaetzt{opacity:.6}
.mk-live-frisch{border-radius:50%;background:#15803D}
.mk-live-gelb{border-radius:4px;background:#FACC15;color:#111827}
.mk-live-rot{border-radius:4px;background:#BD0A0A}
.mk-live-unbekannt{border-radius:50%;background:#6B7280}
.leaflet-container{font-family:var(--schrift)}
path.luecke{cursor:help}

/* Treffergrößen mindestens 44 px (Leaflet-Voreinstellung ist 30 px) */
.karte-leaflet .leaflet-bar a{width:44px;height:44px;line-height:44px;font-size:22px;display:flex;align-items:center;justify-content:center;text-indent:0}
.karte-leaflet .leaflet-bar a span{display:block;line-height:1}
.karte-namen a{display:inline-block;min-height:44px;line-height:44px;padding:0 8px}
.karte-leaflet .leaflet-popup-close-button{width:44px;height:44px;font-size:24px;line-height:44px;padding:0}
[data-tabelle-live] .marke{white-space:normal;display:inline-block;text-align:left}
[data-tabelle-live] td{overflow-wrap:break-word}

/* ---- Konten anlegen, Rollen, Passwort (0.4.0) ---- */
.titelzeile{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:4px}
.titelaktion{display:flex;flex-direction:column;align-items:flex-end;gap:2px;max-width:100%}
.titelaktion .hilfe{margin:0;text-align:right}
.marken{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.schritt{margin:0 0 12px;font-size:14px;font-weight:700;color:var(--schwach)}
.feld{margin-bottom:4px}
fieldset.rollen{border:0;margin:12px 0 0;padding:0;min-width:0}
fieldset.rollen legend{font-size:14px;font-weight:700;padding:0;margin-bottom:6px}
.rolle-option{display:flex;gap:12px;align-items:flex-start;border:2px solid var(--rahmen);border-radius:var(--rs);padding:10px 12px;margin-bottom:8px;background:#fff}
.rolle-option:has(input:checked){border-color:var(--stark);background:var(--hell)}
.rolle-option.gesperrt{background:var(--flaeche2);color:var(--schwach)}
.rolle-option input{width:24px;height:24px;flex:none;margin:10px 0 0;accent-color:var(--stark)}
.rolle-text{min-width:0;flex:1}
.rolle-text label{margin:0;font-size:16px;min-height:44px;display:flex;align-items:center;cursor:pointer}
.rolle-beschr{font-size:14px}
.rolle-beschr p{margin:0 0 2px}
.rolle-beschr ul{margin:2px 0 0;padding-left:20px}
.mitglied-extra{margin:8px 0}
dl.zusammen{margin:8px 0 12px}
.einladungssatz{font-size:17px;margin:0 0 8px;overflow-wrap:anywhere}
.warnungen:empty{display:none}
dialog .banner{margin:10px 0 0}
dialog h2:focus,h1[tabindex="-1"]:focus{outline:none} /* Überschriften werden nur für Bildschirmleser per Skript fokussiert (kein Bedienelement) */
#konto-meldung .banner{margin-top:0}
.passwortseite .logink{max-width:520px}
.passwortseite h1{font-size:24px}
.passwortseite fieldset{border:0;padding:0;margin:16px 0 0;min-width:0}
.passwortseite legend{font-size:16px;font-weight:800;padding:0;margin-bottom:4px}
.regeln{margin:6px 0 0;padding-left:20px;font-size:14px}
.regeln li.erfuellt{color:var(--ok);font-weight:700}
.zeigen{display:flex;align-items:center;gap:10px;min-height:44px;margin:8px 0 0}
.zeigen input{width:24px;height:24px;flex:none}
.zeigen label{margin:0;font-size:16px;font-weight:600;min-height:44px;display:flex;align-items:center}
.linkknopf{background:none;border:0;padding:0 4px;min-height:44px;color:var(--stark);font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:16px}
.login .zusatz{margin:12px 0 0;text-align:left}
.logink a.btn{margin-top:12px}
dl.stapel{grid-template-columns:minmax(0,1fr);gap:0}
dl.stapel dt{margin-top:8px;font-size:14px}
dl.stapel dd{font-size:16px}

/* Reiter „Limits“ (0.5.0): Gruppen, Karten je Messung, Balken (<progress>, keine Inline-Stile wegen CSP) */
.limit-gruppe{margin:18px 0 6px}
.limit-gruppe>h2{font-size:18px;margin:0 0 4px}
.limit{display:flex;flex-direction:column;gap:6px;border-left-width:8px}
.limit-gelb{border-left-color:var(--stark)}
.limit-rot{border-left-color:var(--alarm);background:var(--warn-f)}
.limit-gruen{border-left-color:var(--ok-s)}
.limit-unbekannt,.limit-aus,.limit-nicht_erfasst{border-left-color:var(--rahmen)}
.limit dl{grid-template-columns:fit-content(10em) minmax(0,1fr)}
.limit-titel{font-size:16px;margin:0}
.limit-kopf{margin:0}
.limit-balken{width:100%;height:14px;border:1px solid var(--rahmen);border-radius:7px;overflow:hidden;background:var(--flaeche2);accent-color:var(--ok)}
.limit-balken::-webkit-progress-bar{background:var(--flaeche2)}
.limit-balken::-webkit-progress-value{background:var(--ok)}
.limit-balken::-moz-progress-bar{background:var(--ok)}
.limit-balken.gelb::-webkit-progress-value{background:var(--stark)}
.limit-balken.gelb::-moz-progress-bar{background:var(--stark)}
.limit-balken.rot::-webkit-progress-value{background:var(--alarm)}
.limit-balken.rot::-moz-progress-bar{background:var(--alarm)}
.limit-hinweis{margin:2px 0 0}

/* ---- Vorfälle 0.6.1: kompakte Liste, Reiter, Detail als rechte Seitenleiste ---- */
.vf{display:flex;flex-direction:column;gap:10px;min-height:0;--dw:clamp(448px,34vw,540px)}
.vf-kopf{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap}
.vf-kopf .titel{font-size:28px;margin:0}
.vf-chips{display:flex;gap:8px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.vf-chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:999px;background:#fff;border:1px solid var(--kartenrand);font-size:14px;color:var(--text)}
.vf-chip b{font-variant-numeric:tabular-nums}
.vf-chip.rot{background:var(--warn-f);border-color:#E58A8A;color:var(--alarm)}
.vf-kopf-aktion{margin-left:auto;display:flex;align-items:center;gap:12px}
.vf-kopf-aktion .stand{margin:0}
.vf .banner{margin:0;padding:6px 14px;align-items:center;font-size:14px;line-height:1.35;border-radius:10px}
.vf .banner>div{display:flex;gap:2px 8px;flex-wrap:wrap}
.vf .banner b{display:inline}
.vf .banner .sym{font-size:14px}
.vf-tabs{margin:0;flex-wrap:nowrap;overflow-x:auto;gap:0;border-bottom:1px solid var(--kartenrand)}
.vf-tabs button{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;min-height:44px;padding:0 16px;border:0;border-bottom:3px solid transparent;border-radius:0;background:none;color:var(--schwach);font-size:15px;margin-bottom:-1px;box-shadow:none}
.vf-tabs button:hover{color:var(--text);background:var(--flaeche3)}
.vf-tabs button[aria-selected="true"]{background:none;color:var(--text);border-bottom:3px solid var(--orange);box-shadow:none;margin-bottom:-1px}
.vf-tabs button[aria-selected="true"] .ico{color:var(--stark)}
.vf-tabs :focus-visible{outline-offset:-3px}
.zaehlpille.rot{background:var(--alarm);color:#fff}
.vf-tabs .zaehlpille{font-size:13px;padding:1px 10px;min-width:28px;justify-content:center;font-variant-numeric:tabular-nums}
.vf-koerper{position:relative;flex:1;min-height:0;display:flex;min-width:0;overflow:hidden}
.vf-liste{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff;border:1px solid var(--kartenrand);border-radius:var(--rk);overflow:hidden;container-type:inline-size;container-name:vf}
.vf-liste .leer{border:0;margin:auto;padding:24px}
.vf-liste .zustand{margin:16px}
.vf-liste .laden{padding:8px 16px}
.laden-sym{display:flex;align-items:center;gap:12px;color:var(--schwach);padding:12px 0 4px;font-weight:600}
.laden.mit-symbol .skelett{height:40px;margin:8px 0}
.vf-listenwrap{display:flex;flex-direction:column;min-height:0;flex:1}
.vf-scroll{flex:1;min-height:0;overflow:auto;padding-bottom:4px}
.vf-fuss{margin:0;padding:6px 16px;border-top:1px solid var(--linie);font-size:13px}
.vf-spalten,.vf-zeile{display:grid;grid-template-columns:32px minmax(140px,1.3fr) 184px 136px minmax(96px,1fr) 244px;gap:10px;align-items:center;padding:0 12px}
.vf-spalten{position:sticky;top:0;z-index:2;background:var(--flaeche2);border-bottom:1px solid var(--kartenrand);min-height:30px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--schwach)}
.vf .liste{padding:2px 0}
.vf-zeile{min-height:48px;padding-top:2px;padding-bottom:2px;border-bottom:1px solid var(--linie);border-left:4px solid transparent;background:#fff}
.vf-zeile:hover{background:var(--flaeche2)}
.vf-zeile.rot{border-left-color:var(--alarm);background:#FFF7F7}
.vf-zeile.rot:hover{background:var(--warn-f)}
.vf-zeile.fertig{color:var(--schwach)}
.vf-meta{display:contents}
.vf-art{width:32px;height:32px;border-radius:50%;background:var(--flaeche3);color:#3B3F45;display:inline-flex;align-items:center;justify-content:center}
.vf-wer{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.vf-wer b{font-size:15px;white-space:nowrap}
.vf-person{font-size:13px;color:var(--schwach);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vf-frist .marke{font-size:13px;min-height:26px;padding:1px 10px;gap:6px}
.vf-alter{font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}
.vf-zustaendig{display:flex;gap:6px;align-items:center;font-size:14px;min-width:0}
.vf-zustaendig .vf-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schwach{color:var(--schwach)}
.vf-aktionen{display:flex;gap:6px;align-items:center;justify-content:flex-start}
.vf-pruefen{white-space:nowrap;padding:0 12px;flex:none}
.vf-ikn{width:44px;height:44px;padding:0;border-radius:var(--r);border:1px solid var(--rahmen);background:#fff;color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;flex:none}
.vf-ikn:hover{background:var(--hell);border-color:var(--stark);color:var(--stark)}
.vf-ikn[aria-disabled="true"]{background:var(--inaktiv-f);color:#5B5F66;cursor:not-allowed}
.vf-ikn[data-tip]::after{content:attr(data-tip);position:absolute;right:calc(100% + 6px);top:50%;transform:translateY(-50%);background:var(--nav);color:#fff;font-size:13px;font-weight:600;line-height:1.3;padding:4px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;z-index:30}
.vf-ikn[data-tip]:hover::after,.vf-ikn[data-tip]:focus-visible::after{opacity:1}
/* Detail: rechte Seitenleiste neben der Liste (ab 1180 px), darunter über der Liste */
@container vf (max-width:1100px){.vf-pruefen .ico{display:none}}
/* Liste in schmalen Spalten (Detail daneben, kleine Fenster): zwei Zeilen je Eintrag */
@container vf (max-width:900px){
 .vf-spalten{display:none}
 .vf-zeile{grid-template-columns:32px minmax(0,1fr) auto;grid-template-areas:"art wer akt" "art meta akt";gap:0 12px;padding-top:6px;padding-bottom:6px}
 .vf-art{grid-area:art}.vf-wer{grid-area:wer}.vf-aktionen{grid-area:akt}
 .vf-meta{display:flex;grid-area:meta;flex-wrap:wrap;align-items:center;gap:2px 12px;min-width:0}
 .vf-person{white-space:normal}
}
@container vf (max-width:560px){
 .vf-zeile{grid-template-columns:32px minmax(0,1fr);grid-template-areas:"art wer" "art meta" "akt akt";row-gap:2px}
 .vf-aktionen{padding:4px 0 2px}
}
/* Schmal (< 960 px): Seite scrollt wie die übrigen Bereiche */
@media (min-width:960px){
 main:has(.vf){padding:16px 24px;overflow:hidden;display:flex;flex-direction:column}
 main:has(.vf)>.bereich{flex:1;min-height:0;display:flex;flex-direction:column}
 .bereich>.vf{flex:1;min-height:0}
}
@media (max-width:959.98px){
 .vf-kopf .titel{font-size:26px}
 .vf-kopf-aktion{margin-left:0;width:100%;justify-content:space-between}
 .vf-koerper{display:block}
 .vf-liste{overflow:visible}
 .vf-scroll{overflow:visible}
 .vf .banner{align-items:flex-start}
}
@media (max-width:559.98px){
 .vf-tabs{display:grid;grid-template-columns:1fr 1fr;overflow:visible}
 .vf-tabs button{justify-content:flex-start}
}
@media (max-width:699.98px){
 .vf-knopftext{display:none}
 .vf-tabs button{padding:0 10px;gap:6px}
}
/* ---------- Vorfall auf eigener Seite (0.6.2): #/vorfaelle/<id> ---------- */
.vd{display:flex;flex-direction:column;gap:10px;min-height:0}
.vd-kopf{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap}
.vd-kopf .titel{font-size:26px;margin:0;white-space:nowrap}
.vd-kopf .titel:focus{outline:none}
.vd-kopf .titel:focus-visible{outline:3px solid var(--fokus);outline-offset:4px;border-radius:4px}
.vd-zurueck{padding:0 14px 0 10px}
.vd-pillen{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vd-pillen .marke{font-size:13px;min-height:26px;padding:1px 10px;gap:6px}
.vd-seit{font-size:14px;color:var(--schwach);white-space:nowrap}
.vd-aktionen{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.vd-aktionen .btn{white-space:nowrap}
.vd .banner{margin:0;padding:6px 14px;align-items:center;font-size:14px;line-height:1.35;border-radius:10px}
.vd .banner>div{display:flex;gap:2px 8px;flex-wrap:wrap}
.vd .banner b{display:inline}
.vd .banner .sym{font-size:14px}
.vd-koerper{min-height:0;display:flex;flex-direction:column;flex:1}
.vd-koerper>.leer{margin:8px 0}
.vd-inhalt{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px}
.vd-inhalt>.fehlt-hinweis,.vd-einfach>.fehlt-hinweis{margin:0}
.vd-detail{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:#fff;border:1px solid var(--kartenrand);border-radius:var(--rk);overflow:hidden}
.vd-tabzeile{display:flex;align-items:flex-end;gap:12px;border-bottom:1px solid var(--kartenrand);padding:0 8px 0 4px}
.vd-tabzeile .vf-tabs{flex:1;border-bottom:0;overflow:visible}
.vd-nachbarn{display:flex;align-items:center;gap:6px;align-self:center;flex:none}
.vd-zaehler{font-size:14px;color:var(--schwach);font-variant-numeric:tabular-nums;min-width:64px;text-align:center}
.vd-nachbar.aus{opacity:.4;cursor:default}
.vd-nachbar.aus:hover{background:#fff;border-color:var(--rahmen);color:var(--text)}
a.vd-nachbar{text-decoration:none}
.vd-nachbar[data-tip]::after{right:auto;left:50%;top:calc(100% + 6px);transform:translateX(-50%)}
.vd-panel{flex:1;min-height:0;overflow:auto;padding:12px}
.vd-panel:focus-visible{outline:3px solid var(--fokus);outline-offset:-3px}
.vd-gitter{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;align-items:start}
.vd .block{padding:10px 14px;margin:0}
.vd dl{font-size:14px}
.vd .banner{margin-bottom:0}
.vd-panel .banner{margin:0 0 10px}
.vd-bearbeiter{margin:0 0 8px}
.vd [data-teil=spur] .block{padding:8px}
.vd-einfach{background:#fff;border:1px solid var(--kartenrand);border-radius:var(--rk);padding:12px;display:flex;flex-direction:column;gap:10px;overflow:auto;min-height:0}
@media (min-width:960px){
 main:has(.vd){padding:16px 24px;overflow:hidden;display:flex;flex-direction:column}
 main:has(.vd)>.bereich{flex:1;min-height:0;display:flex;flex-direction:column}
 .bereich>.vd{flex:1;min-height:0}
}
@media (max-width:959.98px){
 .vd-kopf .titel{font-size:24px}
 .vd-aktionen{margin-left:0;width:100%;justify-content:flex-start}
}
@media (max-width:559.98px){
 .vd-tabzeile{flex-wrap:wrap}
 .vd-tabzeile .vf-tabs{flex:1 1 100%;display:flex}
 .vd-tabzeile .vf-tabs button{padding:0 4px;gap:4px;font-size:13px;flex:1 1 0;min-width:0;justify-content:center}
 .vd-tabzeile .vf-tabs .ico{display:none}
 .vd-nachbarn{flex:1 1 100%;justify-content:center;padding:6px 0}
 .vd-zurueck span{display:inline}
 .vd-gitter{grid-template-columns:minmax(0,1fr)}
}

/* ---- Spur kompakt (0.6.3): Kopfzeile mit Chips, links Karte, rechts Unterreiter; alles auf einen Bildschirm ---- */
.spur{display:flex;flex-direction:column;gap:8px;min-width:0}
.spur[data-hoehe=fest]{height:clamp(400px,calc(100vh - 190px),780px)}
.spur[data-hoehe=fuell]{flex:1 1 0;min-height:400px}
.vd-panel:has([data-teil=spur]:not([hidden])){display:flex;flex-direction:column}
.vd [data-teil=spur]:not([hidden]){flex:1;min-height:0;display:flex;flex-direction:column}
.spur-kopf{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;flex:none}
.spur-kopf .leer{flex:1}
.sp-chips{list-style:none;margin:0;padding:0;display:flex;gap:6px;flex-wrap:wrap}
.sp-chip{min-height:32px}
.sp-chip b{font-variant-numeric:tabular-nums}
.sp-chip .ico{color:var(--stark)}
.sp-zustand .marke{font-size:13px;min-height:26px;padding:1px 10px;gap:6px}
.spur>.banner{margin:0;flex:none}
.spur-gitter{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,3fr) minmax(300px,2fr);grid-template-rows:minmax(0,1fr);gap:10px}
.spur-karte{display:flex;flex-direction:column;gap:6px;min-width:0;min-height:0}
.spur-karte .karte-flaeche{flex:1;height:auto;min-height:320px}
.spur-karte .karte-hinweis{margin:0;padding:6px 10px;font-size:14px;flex:none}
.karte-fuss{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;flex:none}
.karte-fuss .radiogruppe{margin:0;gap:4px}
.karte-fuss .radiogruppe button{padding:0 12px;font-size:14px;border-width:1.5px}
.karte-fuss .legende{margin:0;font-size:13px;display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;min-width:0}
.karte-fuss .legende-titel{display:inline;margin:0}
.karte-fuss .legende-liste{margin:0;gap:0 10px}
.karte-fuss .karte-namen{margin:0 0 0 auto;font-size:12px}
.spur-karte.gross{position:fixed;inset:12px;z-index:3000;background:#fff;padding:10px;border-radius:var(--rk);box-shadow:0 0 0 100vmax rgba(20,24,30,.6)}
.spur-karte.gross .karte-flaeche{min-height:0}
.karte-leaflet .leaflet-bar button.karteknopf{width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:2px;background:#fff;color:#26292D;cursor:pointer}
.karte-leaflet .leaflet-bar button.karteknopf:hover{background:#F4F4F4}
.karte-leaflet .leaflet-bar button.karteknopf[aria-pressed="true"]{background:var(--text);color:#fff}
.karte-leaflet .leaflet-bar button.karteknopf[aria-expanded="true"]{background:var(--text);color:#fff}
/* Legende der Kartenmarken: Liste Symbol links / Erklärung rechts; Marken in der Legende sind dieselben Elemente (.mk) wie auf der Karte */
.lg-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.lg-zeile{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:0 8px;padding:1px 0;min-height:30px;font-size:14px;line-height:1.3}
.lg-zeile+.lg-zeile{border-top:1px solid var(--kartenrand)}
.lg-sym{display:flex;align-items:center;justify-content:center;height:30px}
.lg-sym .mk{flex:none;width:24px;height:24px;font-size:12px;border-width:2px}
.lg-sep{color:var(--schwach)}
.lg-svg{display:block;height:26px;width:44px}
.lg-text b{font-weight:700}
.lg-pop{position:absolute;z-index:1100;top:10px;right:64px;width:400px;max-width:calc(100% - 84px);max-height:calc(100% - 20px);overflow:auto;background:#fff;color:var(--text);border:1px solid var(--kartenrand);border-radius:var(--rk);box-shadow:0 4px 18px rgba(20,24,30,.28);padding:8px 12px 6px;cursor:auto}
.lg-pop[hidden]{display:none}
.lg-pop:focus-visible{outline:3px solid var(--fokus);outline-offset:-3px}
.lg-kopf{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px;font-size:15px}
.lg-zu{width:44px;height:44px;margin:-8px -10px -8px 0;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text);border-radius:var(--rk);cursor:pointer}
.lg-zu:hover{background:#F4F4F4}
.lg-schmal{display:none}
@media (max-width:959.98px){
 .lg-ctl,.lg-pop{display:none!important}
 .lg-schmal{display:block;flex:none;border:1px solid var(--kartenrand);border-radius:var(--rk);background:#fff;padding:0 12px}
 .lg-schmal summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:700;font-size:14px}
 .lg-schmal summary:focus-visible{outline:3px solid var(--fokus);outline-offset:2px}
 .lg-schmal[open]{padding-bottom:6px}
}
.spur-seite{display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid var(--kartenrand);border-radius:var(--rk);background:#fff;overflow:hidden}
.spur-reiter{margin:0;flex:none;gap:0;flex-wrap:nowrap;overflow-x:auto}
.spur-reiter button{flex:1 1 0;min-width:0;justify-content:center;padding:0 10px}
.spur-panel{flex:1;min-height:0;overflow:auto;padding:10px;display:flex;flex-direction:column}
.spur-panel:focus-visible{outline:3px solid var(--fokus);outline-offset:-3px}
.spur-panel>[data-ut]:not([hidden]){display:block}
.spur-panel>[data-ut=punkte]:not([hidden]){flex:1;min-height:0;display:flex;flex-direction:column}
.spur-panel .block{padding:8px 10px;margin:0 0 8px}
.spur-panel dl{font-size:14px;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2px 10px}
.spur-panel .zeitleiste{border:0;padding:0;margin:0 0 8px}
.spur-panel .zl-reihe .btn.klein{padding:0 12px}
.zl-tasten summary{cursor:pointer;font-size:14px;color:var(--schwach);min-height:32px;display:flex;align-items:center}
.zl-tasten .hilfe{margin:0 0 4px}
.zl-tasten summary::after{content:"\25BE";margin-left:6px}
.zl-tasten[open] summary::after{content:"\25B4"}
[data-spurtabelle]{flex:1;min-height:0;display:flex;flex-direction:column}
[data-spurtabelle] .untertitel{font-size:14px;margin:0 0 6px}
.sp-filter{display:flex;align-items:center;gap:8px;margin:0 0 6px;flex:none}
.sp-filter select{min-height:44px}
[data-spurtabelle] .tabwrap{flex:1;min-height:0;overflow:auto}
[data-spurtabelle] table{font-size:13px}
[data-spurtabelle] th{position:sticky;top:0;z-index:1;font-size:11px;padding:6px 8px}
[data-spurtabelle] td{padding:4px 8px}
.sp-blaettern{margin-top:6px;flex:none}
/* Schmal (< 1100 px): Karte oben (≈ 40 vh), darunter die Unterreiter; die Seite bzw. der Reiter scrollt, nicht die Karte */
@media (max-width:1099.98px){
 .spur[data-hoehe]{height:auto;flex:none;min-height:0}
 .spur-gitter{grid-template-columns:minmax(0,1fr);grid-template-rows:none}
 .spur-karte .karte-flaeche{flex:none;height:40vh;min-height:260px}
 .spur-karte.gross .karte-flaeche{height:auto;flex:1;min-height:0}
 .spur-panel{overflow:visible;flex:none}
 .spur-panel>[data-ut=punkte]:not([hidden]){display:block}
 [data-spurtabelle] .tabwrap{max-height:60vh}
 .vd-panel:has([data-teil=spur]:not([hidden])){display:block}
 .vd [data-teil=spur]:not([hidden]){display:block}
}
[data-spurtabelle] td{white-space:nowrap}

/* ---- Personen 0.7.0: kompakte Trefferliste (Reiter, Filterleiste) und Person auf eigener Seite (#/personen/<id>) ---- */
.vf-chip.gelb{background:var(--hell);border-color:var(--orange);color:var(--stark-d)}
.vf-chip .chiplink{color:inherit;text-decoration:underline;text-underline-offset:3px;font-weight:600}
.pe .vf-kopf-aktion .hilfe{margin:0;max-width:24ch;font-size:14px;line-height:1.25}
.pe .vf-kopf{flex-wrap:wrap}
.pe .vf-chips{flex:1 1 0;min-width:240px;gap:6px}
.pe .vf-chip{min-height:32px;padding:0 10px;font-size:14px;gap:5px}
.pe .hilfe{margin:0}
.pe .fehler{margin:0}
.pe .vf-kopf-aktion .btn{white-space:nowrap}
.pe .vf-kopf-aktion .btn b{font-variant-numeric:tabular-nums}
.pe-leiste{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.pe-suche{position:relative;flex:0 1 280px;min-width:200px}
#pf-verif{width:130px}#pf-gruppe{width:108px}#pf-rolle{width:130px}
.pe-suche .ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--schwach);pointer-events:none}
.pe-suche input{padding-left:38px}
.pe-filterreihe{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-left:auto}
.pe-filtersym{color:var(--schwach)}
.pe-filter{display:inline-flex;align-items:center;gap:6px;padding:0 4px 0 12px;border:1px solid var(--rahmen);border-radius:999px;background:#fff;color:var(--text)}
.pe-filter[data-aktiv="1"]{background:var(--hell);border-color:var(--stark)}
.pe-filter .ico{color:var(--stark)}
.pe-filter select{width:auto;min-height:44px;border:0;background:transparent;font-size:14px;font-weight:600;padding:0 4px;border-radius:999px;cursor:pointer;color:var(--text)}
.pe-filter:focus-within{outline:3px solid var(--fokus);outline-offset:2px}
.pe-filter select:focus-visible{outline:none;box-shadow:none}
.pe-reset{font-size:14px;min-height:44px}
.pe-liste .leer{border:0}
.pe-spalten,.pe-zeile{display:grid;grid-template-columns:32px minmax(150px,1.4fr) 150px 160px 150px 140px 226px;gap:10px;align-items:center;padding:0 12px}
.pe-spalten span{white-space:nowrap}
.pe-spalten{position:sticky;top:0;z-index:2;background:var(--flaeche2);border-bottom:1px solid var(--kartenrand);min-height:32px;font-size:14px;font-weight:600;color:var(--schwach)}
.pe-zeilen{padding:2px 0}
.pe-zeile{min-height:48px;padding-top:2px;padding-bottom:2px;border-bottom:1px solid var(--linie);border-left:4px solid transparent;background:#fff}
.pe-zeile:hover{background:var(--flaeche2)}
.pe-zeile.gesperrt{border-left-color:var(--alarm);background:#FFF7F7}
.pe-zeile.gesperrt:hover{background:var(--warn-f)}
.pe-zeile.klaerung{border-left-color:var(--orange)}
.pe-name{display:flex;align-items:center;gap:6px;min-width:0}
.pe-name b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.pe-name .marke,.pe-gruppe .marke,.pe-konto .marke,.pe-verif .marke{font-size:14px;min-height:26px;padding:1px 10px;gap:6px}
.pe-name .marke{flex:none}
.pe-seit-kurz{display:none}
.pe-seit,.pe-seit-kurz{font-size:14px}
.pe-seit{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--schwach)}
.pe-zeile .vf-aktionen{justify-content:flex-end}
.pe-zeile .vf-pruefen{font-size:14px;padding:0 10px}
.pe-leiste .vf-ikn[data-tip]::after{right:auto;left:50%;top:calc(100% + 6px);transform:translateX(-50%)}
.pe-name .marke .pe-wort{display:inline}
@container vf (max-width:1300px){
 .pe-spalten,.pe-zeile{grid-template-columns:32px minmax(190px,1fr) 104px 150px 134px 222px}
 .pe-seit,.pe-spalten>span:nth-child(6){display:none}
 .pe-seit-kurz{display:inline}
 .pe-name .pe-wort{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .pe-name .marke{padding:1px 6px}
 .pe-gruppe .marke .ico{display:none}
 .pe-gruppe .marke,.pe-konto .marke,.pe-verif .marke{padding:1px 8px;gap:5px}
}
@container vf (max-width:1100px){.pe-zeile .vf-pruefen .ico{display:none}}
@container vf (max-width:900px){
 .pe-spalten{display:none}
 .pe-zeile{grid-template-columns:32px minmax(0,1fr) auto;grid-template-areas:"art wer akt" "art meta akt";gap:0 12px;padding-top:6px;padding-bottom:6px}
 .pe-avatar{grid-area:art}.pe-wer{grid-area:wer}.pe-zeile .vf-aktionen{grid-area:akt}
 .pe-zeile .vf-meta{display:flex;grid-area:meta;flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0}
}
@container vf (max-width:560px){
 .pe-zeile{grid-template-columns:32px minmax(0,1fr);grid-template-areas:"art wer" "art meta" "akt akt";row-gap:2px}
 .pe-zeile .vf-aktionen{padding:4px 0 2px;justify-content:flex-start}
}
@media (max-width:959.98px){
 .pe .vf-kopf-aktion .hilfe{max-width:none}
 .pe-filterreihe{margin-left:0}
 .pe-suche{max-width:none}
}
/* Person auf eigener Seite */
.pd .vd-kopf .titel{white-space:normal;overflow-wrap:anywhere}
.pd-kennung{font-size:16px;font-weight:500;color:var(--schwach);font-variant-numeric:tabular-nums}
.pd-avatar{width:36px;height:36px}
.pd-ja{display:inline-flex;align-items:center;gap:6px;color:var(--schwach);font-weight:600}
.pd-ja.ja{color:var(--ok)}
.pd .vd-panel dd .marke{min-height:26px;padding:1px 10px;gap:6px}
.pd .vd-panel .aktionen{margin-top:10px}
.pd .vd-tabzeile .vf-tabs{overflow-x:auto;min-width:0}
.pd .vd-tabzeile .vf-tabs button{padding:0 12px}
@media (max-width:1439.98px){.pd-avatar{display:none}}
@media (max-width:559.98px){
 .pd .vd-tabzeile .vf-tabs{flex:1 1 100%;display:flex;overflow-x:auto}
 .pd .vd-tabzeile .vf-tabs button{flex:0 0 auto;padding:0 12px;font-size:14px}
 .pe-filterreihe{width:100%}
}
.pe .vf-person{font-size:14px}
.pe .vf-tabs .zaehlpille,.pd .vf-tabs .zaehlpille{font-size:14px}
.pd .vd-pillen .marke{font-size:14px}
.pd .vd-panel dd .marke{font-size:14px}
.pd .vd-seit{font-size:14px}
.pe .vf-tabs{flex-wrap:wrap;overflow:visible}
@media (max-width:1299.98px){.pe .vf-tabs .ico{display:none}}
@media (max-width:1299.98px){.pd .vf-tabs .ico{display:none}.pd .vd-tabzeile .vf-tabs button{padding:0 8px;font-size:14px}.pd .vd-tabzeile{gap:4px}}
/* ---- Fahrten 0.8.0: kompakte Liste (Reiter, Filterleiste, Zeilen ≈ 48 px) und Fahrt auf eigener Seite (#/fahrten/<id>) ---- */
.vf-chip.gruen{background:var(--ok-f);border-color:var(--ok-s);color:var(--ok)}
.fa .vf-kopf{flex-wrap:wrap}
.fa .vf-chips{flex:1 1 0;min-width:240px;gap:6px}
.fa .vf-chip{min-height:32px;padding:0 10px;font-size:14px;gap:5px}
.fa .hilfe{margin:0}
.fa .vf-kopf-aktion{gap:8px}
.fa .vf-tabs{flex-wrap:wrap;overflow:visible}
.fa .vf-tabs .zaehlpille{font-size:14px}
.fa .banner{margin:0 0 6px}
.fa-leiste-wrap:empty{display:none}
.fa-leiste{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.fa-filterreihe{margin-left:0}
.fa-rleiter,.fa-rleiste{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.fa-rstatus.radiogruppe{margin:0;gap:4px}
.fa-rstatus.radiogruppe button{min-height:44px;padding:0 14px;font-size:14px;border-width:1.5px}
.fa-datum{cursor:text}
.fa-datum input[type=date]{width:auto;min-height:44px;border:0;background:transparent;font-size:14px;font-weight:600;padding:0 6px 0 2px;border-radius:999px;color:var(--text)}
.fa-datum input[type=date]:focus-visible{outline:none;box-shadow:none}
.fa-filtertext{font-size:14px;font-weight:600;white-space:nowrap}
.fa-hinweis{display:flex;align-items:center;gap:8px;color:var(--schwach);font-size:14px}
.fa .fehler{margin:0}
.fa-liste .leer{border:0}
.fa-spalten,.fa-zeile{display:grid;grid-template-columns:34px 112px 84px minmax(130px,1fr) 124px 140px 232px;gap:10px;align-items:center;padding:0 12px}
.fa-spalten{position:sticky;top:0;z-index:2;background:var(--flaeche2);border-bottom:1px solid var(--kartenrand);min-height:32px;font-size:14px;font-weight:600;color:var(--schwach)}
.fa-spalten span{white-space:nowrap}
.fa-zeilen{padding:2px 0}
.fa-zeile{min-height:48px;padding-top:2px;padding-bottom:2px;border-bottom:1px solid var(--linie);border-left:4px solid transparent;background:#fff}
.fa-zeile:hover{background:var(--flaeche2)}
.fa-zeile.klaerung{border-left-color:var(--orange)}
.fa-zeile.abbruch{border-left-color:var(--rahmen);color:var(--schwach)}
.fa-zeile.gewaehlt{background:var(--hell);border-left-color:var(--stark)}
.fa-wer b{font-size:15px;white-space:nowrap}
.fa-wer code{font-size:14px;font-weight:700}
.fa-wer .vf-person{font-size:13px}
.fa-beginn{display:flex;flex-direction:column;line-height:1.25;font-variant-numeric:tabular-nums;min-width:0}
.fa-beginn .fa-d{font-size:14px;white-space:nowrap}
.fa-beginn .fa-z,.fa-klein{font-size:13px;color:var(--schwach)}
.fa-leute{display:flex;flex-wrap:wrap;gap:0 8px;min-width:0;font-size:14px;line-height:1.3}
.fa-person{display:inline-flex;align-items:center;gap:5px;max-width:100%;min-width:0;white-space:nowrap}
.fa-person>.ico{color:var(--schwach)}
.fa-person .maske,.fa-person>span:last-child{overflow:hidden;text-overflow:ellipsis}
.fa-strecke{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25;min-width:0;font-size:14px}
.fa-strecke b{font-variant-numeric:tabular-nums;font-size:14px}
.fa-strecke .marke,.fa-abrechnung .marke{font-size:13px;min-height:22px;padding:0 8px;gap:5px;border-width:1px}
.fa-abrechnung{display:flex;flex-direction:column;align-items:flex-start;gap:2px;line-height:1.25;min-width:0}
.fa-abrechnung b{font-size:14px;font-variant-numeric:tabular-nums}
.fa-abrechnung .marke{font-weight:600;font-size:12px;min-height:20px;padding:0 7px}
.fa-aktionen{justify-content:flex-end}
.fa-zeile .vf-pruefen{font-size:14px;padding:0 12px}
.fa-zeile .vf-ikn[data-tip]::after{right:calc(100% + 6px)}
.fa-fuss{display:flex;align-items:center;gap:12px;padding:6px 12px;border-top:1px solid var(--linie);flex:none;font-size:14px}
.fa-fusshilfe{flex:1;margin:0;font-size:13px}
.fa-blaettern{margin-left:auto;display:flex;gap:8px}
.fa-fuss .btn.klein{min-height:36px}
.fa-arbeit .fa-zeile,.fa-spalten-arbeit{grid-template-columns:34px 120px minmax(150px,1fr) minmax(150px,1fr) 320px}
.fa-arbeit .fa-beginn{flex-direction:row;align-items:baseline;gap:8px}
.fa-spalten-rechnung,.fa-rz{grid-template-columns:34px minmax(130px,1.1fr) 100px 90px minmax(120px,1fr) 100px 196px}
.fa-rz .fa-strecke a.inl{min-height:32px;gap:5px;font-size:14px}
.fa-rz .fa-abrechnung{align-items:flex-end}
.fa-rz .fa-wer .marke{font-size:13px;min-height:22px;padding:0 8px;align-self:flex-start}
.fa-rz .fa-beginn .fa-klein{display:none}
.fa-split{display:grid;grid-template-columns:minmax(0,1fr);flex:1;min-height:0}
.fa-split.mit-detail{grid-template-columns:minmax(0,1fr) minmax(360px,440px)}
.fa-rl{display:flex;flex-direction:column;min-width:0;min-height:0}
.fa-rl .banner{margin:8px 12px 0}
.fa-rd{min-width:0;min-height:0;overflow:auto}
.fa-split.mit-detail .fa-rd{border-left:1px solid var(--kartenrand)}
.fa-rdetail{border:0;border-radius:0;padding:12px}
.fa-rkopf{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.fa-rkopf h3:focus{outline:none}
.fa-rkopf h3:focus-visible{outline:3px solid var(--fokus);outline-offset:4px;border-radius:4px}
.fa-rdetail .gitter{grid-template-columns:minmax(0,1fr);margin:8px 0;gap:10px}
.fa-rdetail .block{padding:8px 12px;margin:0}
.fa-rdetail .banner{margin:0}
.fa-rdetail dl{font-size:14px}
.fa-rd .laden{padding:8px 12px}
/* schmalere Spalte (kleine Fenster, Detail daneben): zwei Zeilen je Eintrag */
@container vf (max-width:900px){
 .fa-spalten{display:none}
 .fa-zeile,.fa-arbeit .fa-zeile,.fa-rz{grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"art wer akt" "art meta akt";gap:0 12px;padding-top:6px;padding-bottom:6px}
 .fa-art{grid-area:art}.fa-wer{grid-area:wer;flex-direction:row;align-items:baseline;gap:8px}.fa-zeile .vf-aktionen{grid-area:akt}
 .fa-wer .vf-person{overflow:visible}
 .fa-zeile .vf-meta{display:flex;grid-area:meta;flex-wrap:wrap;align-items:center;gap:2px 14px;min-width:0}
 .fa-beginn,.fa-strecke,.fa-abrechnung{flex-direction:row;align-items:baseline;gap:6px}
 .fa-abrechnung{align-items:center}
 .fa-zeile .vf-pruefen .ico{display:none}
}
@container vf (max-width:560px){
 .fa-zeile,.fa-arbeit .fa-zeile,.fa-rz{grid-template-columns:34px minmax(0,1fr);grid-template-areas:"art wer" "art meta" "akt akt";row-gap:2px}
 .fa-zeile .vf-aktionen{padding:4px 0 2px;justify-content:flex-start}
 .fa-fusshilfe{display:none}
}
.fa-split.mit-detail .fa-spalten{display:none}
.fa-split.mit-detail .fa-rz{grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"art wer akt" "art meta akt";gap:0 12px;padding-top:6px;padding-bottom:6px}
.fa-split.mit-detail .fa-rz .vf-meta{display:flex;grid-area:meta;flex-wrap:wrap;align-items:center;gap:2px 14px;min-width:0}
.fa-split.mit-detail .fa-rz .fa-beginn,.fa-split.mit-detail .fa-rz .fa-strecke{flex-direction:row;align-items:baseline}
.fa-split.mit-detail .fa-rz .fa-art{grid-area:art}.fa-split.mit-detail .fa-rz .fa-wer{grid-area:wer;flex-direction:row;align-items:baseline;gap:8px}.fa-split.mit-detail .fa-rz .vf-aktionen{grid-area:akt}
.fa-split.mit-detail .fa-rz .vf-pruefen .ico{display:none}
.fa-split.mit-detail .fa-rz .fa-abrechnung{align-items:center}
/* breite Fenster (Liste ≥ 1250 px): großzügigere Spalten */
@container vf (min-width:1250px){
 .fa-spalten,.fa-zeile{grid-template-columns:34px 124px 116px minmax(220px,1.3fr) 180px 210px 232px}
 .fa-arbeit .fa-zeile,.fa-spalten-arbeit{grid-template-columns:34px 140px minmax(160px,1fr) minmax(160px,1fr) 320px}
 .fa-spalten-rechnung,.fa-rz{grid-template-columns:34px minmax(160px,1.2fr) 120px 110px minmax(160px,1.2fr) 120px 200px}
 .fa-strecke{flex-direction:row;align-items:baseline;gap:8px;flex-wrap:wrap}
}
@media (max-width:959.98px){
 .fa .vf-kopf-aktion{width:auto;margin-left:auto}
 .fa-fuss{flex-wrap:wrap}
 .fa-split.mit-detail{grid-template-columns:minmax(0,1fr)}
 .fa-split.mit-detail .fa-rd{border-left:0;border-top:1px solid var(--kartenrand)}
 .fa-filterreihe{margin-left:0}
}
@media (max-width:1299.98px){.fa .vf-tabs .ico{display:none}.fa .vf-tabs button{padding:0 12px}}
@media (max-width:559.98px){.fa-filterreihe{width:100%}.fa-datum{flex:1 1 40%}}
/* Fahrt auf eigener Seite */
.fd .vd-kopf .titel{white-space:normal;overflow-wrap:anywhere}
.fd-kennung{font-variant-numeric:tabular-nums;letter-spacing:.02em}
.fd .pd-avatar{width:36px;height:36px}
.fd .vd-pillen .marke{font-size:14px}
.fd .vd-panel dd .marke{min-height:26px;padding:1px 10px;gap:6px;font-size:14px}
.fd .vd-seit{font-size:14px}
.fd .vd-tabzeile .vf-tabs{overflow-x:auto;min-width:0}
.fd .vf-tabs .zaehlpille{font-size:14px}
.fd .vd-tabzeile .vf-tabs button{padding:0 14px}
.fd .vd-panel .aktionen{margin-top:8px}
.fd .vd-panel .hilfe{margin:8px 0 0}
.fd .vd-panel>[data-teil]:not([data-teil=spur]) .block{margin-bottom:12px}
.vd [data-teil=spur]:not([hidden]) .spur-bereich{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px}
.vd [data-teil=spur] .spur-bereich>.aktionen{margin-top:0;flex:none}
.fd-rechnungen{margin:0;padding:0;list-style:none}
.fd-rz{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid var(--linie)}
.fd-rz:last-child{border-bottom:0}
.fd-rz-text{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.fd-rz-aktion{display:flex;align-items:center;gap:6px;flex:none}
.fd-rz-aktion .vf-ikn[data-tip]::after{right:calc(100% + 6px)}
.fd-rechnung{margin-top:12px}
.fd-rechnung:empty{display:none}
.fd-rechnung .fa-rdetail{border:1px solid var(--kartenrand);border-radius:var(--rk)}
.fd .vd-aktionen .vf-ikn{width:44px}
.fd .tabwrap{max-width:100%}
.fd-abrechnung table{font-size:14px}
@media (max-width:1439.98px){.fd .pd-avatar{display:none}}
@media (max-width:1299.98px){.fd .vf-tabs .ico{display:none}.fd .vd-tabzeile .vf-tabs button{padding:0 10px;font-size:14px}.fd .vd-tabzeile{gap:4px}}
@media (max-width:559.98px){
 .fd .vd-tabzeile .vf-tabs{flex:1 1 100%;display:flex;overflow-x:auto}
 .fd .vd-tabzeile .vf-tabs button{flex:0 0 auto;padding:0 10px;font-size:14px}
}

.fa .pe-filter select{max-width:150px;text-overflow:ellipsis}
.fa-rstatus.radiogruppe button{padding:0 12px}
.fa-datum{padding-right:2px}
@media (max-width:1499.98px){.fd .fd-knopftext{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.fd #fd-pdf{padding:0 12px}}
.fa-aktionen .btn{white-space:nowrap}
.fa-arbeit .fa-zeile,.fa-spalten-arbeit{grid-template-columns:34px 120px minmax(150px,1fr) minmax(150px,1fr) 352px}
.fd .vd-gitter{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:1500px){.fd .vd-gitter{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1499.98px){.fd .vd-seit{display:none}}
@media (max-width:959.98px){.fd .vd-gitter{grid-template-columns:minmax(0,1fr)}}
@media (max-width:559.98px){
 .fa .vf-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto}
 .fa .vf-tabs button{flex:0 0 auto;padding:0 12px}
 .fa-filterreihe{gap:6px}
 .fa-datum{flex:1 1 0;padding-left:8px;gap:4px}
 .fa-datum input[type=date]{width:104px;font-size:13px;padding:0}
 .fa .pe-filter{flex:1 1 28%}
 .fa .pe-filter select{font-size:13px;max-width:none;width:100%}
 .fa .pe-filter.fa-datum{flex:1 1 40%}
 .fa-arbeit .fa-zeile{grid-template-columns:34px minmax(0,1fr)}
 .fa-rleiste{gap:6px}
}
@media (max-width:559.98px){.fa .pe-filter{padding-left:8px;gap:4px}.fa .pe-filter select{padding:0}}

/* Seite „Texte“ (Teil 3): Liste links, Editor rechts; schmal untereinander */
.texte-gitter{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2.4fr);gap:16px;margin:16px 0;align-items:start}
.texte-liste h2,.texte-editor h2{font-size:18px;margin:0 0 12px}
.texte-ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.texte-eintrag{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--rahmen);border-radius:var(--rs);background:#fff;text-align:left;cursor:pointer;overflow-wrap:anywhere}
.texte-eintrag:hover{background:var(--hell)}
.texte-eintrag.aktiv{border:2px solid var(--stark);background:var(--hell)}
.texte-sprache{margin:0 0 16px}
.texte-sprache textarea{min-height:120px}
.texte-verlauf{margin-top:20px;overflow-x:auto}
.texte-verlauf-tabelle td{vertical-align:top;white-space:pre-wrap;overflow-wrap:anywhere;max-width:280px}
.preis-feld{margin:0 0 14px;max-width:420px}
.preis-feld input{width:100%}
.preis-wert{font-variant-numeric:tabular-nums;white-space:nowrap}
@media (max-width:900px){.texte-gitter{grid-template-columns:minmax(0,1fr)}}
