:root{--bg:#0b1020;--panel:#121a30;--panel2:#18223d;--text:#e8ecf6;--muted:#9aa6c2;--line:#26314f;--acc:#4f8cff;--acc2:#38d39f;
--ok:#51a775;--buch:#7fd1e3;--wip:#edc748;--test:#845eed;--ann:#5b9cf0;--wait:#d27f38;--no:#c14e49;--end:#9aa3b5;--unk:#3c4460;--nachbar:#1a223b;--meer:#0c101f;--r:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
:root{color-scheme:only dark}
body{margin:0;font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Inter,sans-serif;background:var(--bg);color:var(--text)}
a{color:#8fb4ff}a:hover{color:#fff}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.top{position:sticky;top:0;z-index:10;background:rgba(11,16,32,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:24px;height:60px}
.logo{font-weight:800;font-size:1.15rem;color:#fff;text-decoration:none;white-space:nowrap;display:flex;align-items:center}
.logo img{display:block;height:32px;width:auto}
.top nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.top nav a{color:var(--muted);text-decoration:none;padding:6px 12px;border-radius:999px;font-size:.95rem}
.top nav a:hover,.top nav a[aria-current]{background:var(--panel2);color:#fff}
.menu{display:none;margin-left:auto;background:none;border:1px solid var(--line);color:#fff;border-radius:8px;font-size:1.2rem;padding:4px 10px}
main{padding:28px 20px 40px}
h1{font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.15;margin:.2em 0 .3em;letter-spacing:-.02em}
h2{font-size:1.3rem;margin:1.6em 0 .6em}
.lead{color:var(--muted);font-size:1.08rem;max-width:70ch}
.hero{padding:26px 0 10px}
.kicker{color:var(--acc2);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;margin:0}
.hero h1{font-size:clamp(2rem,5vw,3.4rem);color:#f2f6ff}
/* Farbschutz (30.10.2026): hell und dunkel sehen gleich aus. Früher Verlauf nur bei prefers-color-scheme:dark; jetzt in
   beiden Modi dieselbe feste Farbe, kein Verlauf (erzwungener Dark Mode, z. B. Samsung Internet, färbt Verläufe um). */
.hero h1{color:#f2f6ff;background:none;-webkit-text-fill-color:#f2f6ff}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0}
.stats div{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.stats b{display:block;font-size:1.9rem;line-height:1.1}.stats span{color:var(--muted);font-size:.9rem}
.btn{display:inline-block;background:var(--acc);color:#fff;text-decoration:none;padding:10px 18px;border-radius:10px;font-weight:600;border:0;cursor:pointer;font-size:1rem}
.btn.ghost{background:transparent;border:1px solid var(--line)}.btn:disabled{opacity:.55;cursor:not-allowed}
.grid2{display:grid;grid-template-columns:1.1fr 1fr;gap:28px}
.feed{list-style:none;padding:0;margin:0}
.feed li{display:grid;grid-template-columns:96px 8.5rem minmax(0,1fr);gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.feed time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.88rem;padding-top:2px}
.chip{background:var(--panel2);border:1px solid var(--line);color:#cfe0ff;border-radius:999px;padding:1px 9px;font-size:.78rem;text-decoration:none;white-space:nowrap}
.src{font-size:.75rem;color:var(--muted);text-decoration:none;margin-left:2px}.src:hover{color:#fff}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px;text-decoration:none;color:var(--text);transition:.15s}
.card:hover{border-color:var(--acc);transform:translateY(-2px)}
.card h3{margin:.15em 0;font-size:1rem}.card .brand{color:var(--acc2);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.card .meta{color:var(--muted);font-size:.85rem;margin:.3em 0}.card .dach{font-size:.8rem;margin:.3em 0 0;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap;color:#fff}
.b-ok{background:var(--ok)}.b-wip{background:var(--wip);color:#1a1300}.b-test{background:var(--test)}.b-ann{background:var(--ann)}.b-wait{background:var(--wait)}.b-no{background:var(--no)}.b-end{background:var(--end)}.b-unk{background:var(--unk);color:#c9d1e6}
.legend{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.yn{font-size:.85rem;white-space:nowrap}.yn.yes{color:var(--acc2);font-weight:700}.yn.no{color:var(--muted)}.yn.unk{color:#c7a04a}
.filters{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:end;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:14px 0}
.filters label{display:flex;flex-direction:column;font-size:.8rem;color:var(--muted);gap:4px}
.filters label.chk,.chk{flex-direction:row;align-items:center;gap:6px;color:var(--text);font-size:.92rem}
input,select{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:.95rem}
.count{margin-left:auto;color:var(--muted);font-size:.9rem}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
thead th{background:var(--panel2);position:sticky;top:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}
.sortable thead th{cursor:pointer;user-select:none}.sortable thead th:hover{color:#fff}
th.asc::after{content:" ▲"}th.desc::after{content:" ▼"}
tbody tr:hover{background:rgba(79,140,255,.06)}
.matrix th small,td small,th small{color:var(--muted);font-weight:400}
.matrix td{text-align:center}.matrix thead th{white-space:normal;min-width:110px;text-transform:none}
.hint{color:var(--muted);font-size:.88rem}
.tilemap{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;max-width:560px;margin:12px 0}
.tile{aspect-ratio:1;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:#fff;cursor:default;background:var(--unk)}
.tile b{font-weight:700}
.t-ok{background:var(--ok)}.t-wip{background:var(--wip);color:#1a1300}.t-test{background:var(--test)}.t-ann{background:var(--ann)}.t-wait{background:var(--wait)}.t-no{background:var(--no)}.t-end{background:var(--end)}.t-unk{background:var(--unk);color:#c9d1e6}
.mapbox{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:14px 0}
.sysselect{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:.85rem;max-width:520px}
.facts{display:grid;grid-template-columns:180px 1fr;gap:8px 14px;margin:0}
.facts dt{color:var(--muted)}.facts dd{margin:0}
.crumb{color:var(--muted);font-size:.9rem;margin:0}
.sponsor{border:1px dashed #3d4a6e;border-radius:var(--r);padding:12px 14px;margin:18px 0;color:var(--muted);font-size:.88rem;background:repeating-linear-gradient(45deg,transparent,transparent 8px,rgba(255,255,255,.015) 8px,rgba(255,255,255,.015) 16px)}
.sponsor .tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#c7a04a}
.sponsor p{margin:.3em 0 0}
.nl-teaser{background:linear-gradient(135deg,#17306b,#123a3a);border-radius:var(--r);padding:22px;margin-top:30px}
.nl{display:flex;flex-direction:column;gap:12px;max-width:520px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.nl label{display:flex;flex-direction:column;gap:4px}fieldset{border:1px solid var(--line);border-radius:10px;display:flex;flex-wrap:wrap;gap:10px}
.todo{background:rgba(245,197,24,.12);border-left:3px solid var(--wip);padding:10px 12px;border-radius:6px;color:#f1d48a}
.sources{margin-top:40px;border-top:1px solid var(--line);padding-top:10px}
.sources h2{font-size:1rem;color:var(--muted)}
.sources ol{font-size:.8rem;color:var(--muted);columns:2;column-gap:28px;padding-left:20px}
.sources li{break-inside:avoid;margin-bottom:4px}.sources .url{display:block;opacity:.6;word-break:break-all}
.foot{border-top:1px solid var(--line);color:var(--muted);font-size:.85rem;padding:20px 0 40px;background:#090d1a}
code{background:var(--panel2);padding:1px 6px;border-radius:5px}
@media (max-width:900px){.grid2{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.sources ol{columns:1}}
@media (max-width:700px){.menu{display:block}.top nav{display:none;position:absolute;top:60px;left:0;right:0;background:var(--bg);flex-direction:column;padding:10px;border-bottom:1px solid var(--line)}
body.nav-open .top nav{display:flex}.feed li{grid-template-columns:1fr;gap:4px}.facts{grid-template-columns:1fr}.facts dt{margin-top:6px}
main{padding:18px 14px 30px}.wrap{padding:0 14px}.stats b{font-size:1.5rem}
table.cmp{font-size:.82rem}th,td{padding:8px}}
table.cmp td:nth-child(2){min-width:170px}
.article{max-width:760px}.article h2{margin-top:1.6em}.article p,.article li{line-height:1.65}.article blockquote{margin:1em 0;padding:.4em 1em;border-left:3px solid var(--line);opacity:.9}.article .tablewrap{margin:1em 0}

/* Status-Icons (dekorativ, Text bleibt) */
.badge{display:inline-flex;align-items:center;gap:4px}
.badge::before{content:"";flex:none;width:14px;height:14px;margin-left:-4px;padding:1px;border-radius:50%;background:rgba(11,16,32,.55) center/14px 14px no-repeat}
.b-ok::before{background-image:url("brand/status-zugelassen.svg")}.b-wip::before{background-image:url("brand/status-in-pruefung.svg")}.b-test::before{background-image:url("brand/status-testbetrieb.svg")}.b-ann::before{background-image:url("brand/status-angekuendigt.svg")}.b-wait::before{background-image:url("brand/status-wartet-auf-eu.svg")}.b-no::before{background-image:url("brand/status-nicht-verfuegbar.svg")}.b-end::before{background-image:url("brand/status-eingestellt.svg")}.b-unk::before{background-image:url("brand/status-unbekannt.svg")}

.ai-note{font-size:.8rem;opacity:.8}.ai-note a{color:inherit}

.ai-badge{margin:10px 0 4px}.ai-badge img{display:block;max-width:100%;height:auto}
@media (max-width:600px){.ai-badge img{width:114px;height:26px}}
.mapbox-eu{max-width:720px;padding:10px}.eu-karte{display:block;width:100%;height:auto}
.mapbox-eu .legend span{display:inline-flex;align-items:center;gap:4px}.mapbox-eu .leg-zero{opacity:.45}.map-note{font-size:.78rem;color:var(--muted);margin:4px 0}
/* Prozent-Rechner TAD-Zulassung */
.qmv{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:28px 0}
.qmv h2{margin-top:.3em}.qmv h3{font-size:1.05rem;margin:1.2em 0 .4em}
.draft-label{display:inline-block;margin:0;padding:4px 10px;border-radius:999px;background:var(--wip);color:#111;font-weight:700;font-size:.85rem}
.qmv-btns{display:flex;flex-wrap:wrap;gap:8px}
.qmv button{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 12px;font:inherit;font-size:.92rem;cursor:pointer}
.qmv button:hover,.qmv button:focus-visible{border-color:var(--acc)}
.qmv-out{background:var(--panel2);border-radius:10px;padding:10px 14px;margin:10px 0}
.qmv-out ul{margin:.3em 0;padding-left:1.1em}.qmv-res{margin:.2em 0;font-size:1.1rem}
.qmv-res.ok{color:var(--acc2)}.qmv-res.no{color:#ff8a8a}
.qmv fieldset{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));column-gap:22px;border:1px solid var(--line);border-radius:10px;padding:6px 10px;margin:0;min-width:0}
.qmv legend{padding:0 6px;color:var(--muted);font-size:.9rem}
.qmv-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px;padding:5px 0;border-bottom:1px solid var(--line)}
.qmv-row:last-child{border-bottom:0}.qmv-name small{color:var(--muted)}
.qmv-opts{display:flex;gap:4px}
.qmv-opts label{position:relative;cursor:pointer}
.qmv-opts input{position:absolute;opacity:0;width:1px;height:1px}
.qmv-opts span{display:block;padding:3px 9px;border:1px solid var(--line);border-radius:999px;font-size:.84rem;color:var(--muted)}
.qmv-opts input:focus-visible+span{outline:2px solid var(--acc);outline-offset:1px}
.qmv-opts input[value=j]:checked+span{background:var(--ok);border-color:var(--ok);color:#fff}
.qmv-opts input[value=n]:checked+span{background:var(--no);border-color:var(--no);color:#fff}
.qmv-opts input[value=e]:checked+span{background:var(--wait);border-color:var(--wait);color:#111}
.qmv-opts input[value=o]:checked+span{background:var(--unk);color:#fff}
.qmv-src{font-size:.88rem;color:var(--muted)}
/* Gemeinsame Europakarte (assets/karte-europa.svg, per app.js eingesetzt) */
.eumap.js{aspect-ratio:1000/1007}.eumap.ok .map-fallback{display:none}
.eu-karte .c{fill:var(--unk);stroke:#0b1020;stroke-width:.6}.eu-karte .c.s-unk{stroke:#8b97b8;stroke-width:.9}
.eu-karte .s-ok{fill:var(--ok)}.eu-karte .s-wip{fill:var(--wip)}.eu-karte .s-test{fill:var(--test)}.eu-karte .s-ann{fill:var(--ann)}
.eu-karte .s-wait{fill:var(--wait)}.eu-karte .s-no{fill:var(--no)}.eu-karte .s-end{fill:var(--end)}.eu-karte .mk.s-unk{fill:var(--unk)}
.eu-karte .mk{stroke:#e8ecf6;stroke-width:1.2}
.eu-karte .lbl{fill:#fff;font-size:20px;paint-order:stroke;stroke:rgba(11,16,32,.55);stroke-width:3px}
.eu-karte .lbl.s-wip{fill:#1a1300;stroke:rgba(255,255,255,.35)}.eu-karte .lbl.s-unk{fill:#dfe5f3}
.eu-karte .lbl-mk{font-size:16px}
@media (max-width:600px){.mapbox-eu{padding:4px;margin-left:-6px;margin-right:-6px}.eu-karte .lbl{font-size:28px;stroke-width:4px}.eu-karte .lbl-mk{font-size:18px}}

figure.bild{margin:24px 0}figure.bild img{display:block;width:100%;max-width:640px;height:auto;margin:0 auto}figure.bild figcaption{color:var(--muted);font-size:.9rem;margin-top:8px;max-width:640px;margin-left:auto;margin-right:auto}

/* Rechner: Zahl und Einheit nicht umbrechen */
.nw{white-space:nowrap}
/* Feed: feste Herstellerspalte, lange Namen brechen um */ .feed li>.chip{justify-self:start;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:left}
/* Karten-Infobox (v0.2): Länder per Tab erreichbar, Box nahe am Klickpunkt, mobil unten verankert */
.mapbox-eu{position:relative}
.eu-karte [role=button]{cursor:pointer}
.eu-karte path.c,.eu-karte .mk{cursor:pointer}
.eu-karte [tabindex]:focus{outline:none}
.eu-karte [tabindex]:focus-visible{stroke:#fff;stroke-width:3;outline:none}
.mapinfo{position:absolute;z-index:20;top:12px;right:12px;width:min(340px,calc(100% - 16px));max-height:calc(100vh - 16px);overflow:auto;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 10px 30px rgba(0,0,0,.45);padding:12px 14px;font-size:.9rem;overflow-wrap:anywhere}
.mapinfo[hidden]{display:none}
.mapinfo:focus{outline:2px solid var(--acc);outline-offset:2px}
.mapinfo h3{margin:0 28px 6px 0;font-size:1.05rem}
.mapinfo-x{position:absolute;top:6px;right:6px;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:1.4rem;line-height:1;cursor:pointer}
.mapinfo-x:hover,.mapinfo-x:focus-visible{background:rgba(255,255,255,.1)}
.mapinfo-sys{margin:0 0 6px;color:var(--muted);font-size:.8rem}
.mapinfo-dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;margin:0 0 8px}
.mapinfo-dl dt{color:var(--muted)}.mapinfo-dl dd{margin:0}
.mapinfo p{margin:6px 0}
.mapinfo-src .src{margin-right:4px}
@media (max-width:600px){.mapinfo{position:fixed;left:0!important;right:0;top:auto!important;bottom:0;width:auto;max-height:60vh;border-radius:var(--r) var(--r) 0 0;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}}
tr[id]{scroll-margin-top:80px}
.row-flash>*,td.row-flash{animation:rowflash 2s ease-out}
td.row-flash{box-shadow:inset 0 0 0 2px var(--acc)}
@keyframes rowflash{0%,40%{background:rgba(122,162,255,.35)}100%{background:transparent}}
@media (prefers-reduced-motion:reduce){.row-flash>*,td.row-flash{animation:none;background:rgba(122,162,255,.25)}}

/* Status „Buchbar“ (bestellbar, Zulassung des vollen Systems ausstehend): helles Cyan, dunkle Schrift */
.b-buch{background:var(--buch);color:#04252b}.t-buch{background:var(--buch);color:#04252b}
.b-buch::before{background-image:url("status-buchbar.svg")}
.eu-karte .s-buch{fill:var(--buch)}.eu-karte .lbl.s-buch{fill:#04252b;stroke:rgba(255,255,255,.35)}
.legend-note{margin-top:6px;font-size:.88rem}
/* Artikel: Quellen als nummerierte Fußnoten [1] (md.py) */
.article .fn{white-space:nowrap}
.article .fn+.fn{margin-left:1px}
[id^="zit-"],.fn-list li{scroll-margin-top:80px}
.fn-list{font-size:.85rem;color:var(--muted);padding-left:28px}
.fn-list li{margin-bottom:6px;overflow-wrap:anywhere}
.fn-list li:target,.article .fn:target{background:var(--panel2);border-radius:4px}
.fn-back{text-decoration:none;margin-left:4px}
/* Matrix: Kopfzeile und Länderspalte bleiben beim Scrollen stehen (30.10.2026) */
.matrixwrap{max-height:calc(100vh - 140px);overflow:auto}
.matrixwrap thead th{position:sticky;top:0;z-index:3}
.matrixwrap tbody th[scope=row],.matrixwrap thead th:first-child{position:sticky;left:0;background:var(--panel2);z-index:2}
.matrixwrap thead th:first-child{z-index:4}
/* Status-Erklärung beim Hovern oder Antippen (30.10.2026) */
.badge[data-hint]{position:relative;cursor:help}
.badge[data-hint]:hover::after,.badge[data-hint]:focus::after{content:attr(data-hint);position:absolute;left:0;top:calc(100% + 6px);z-index:20;width:max-content;max-width:min(260px,80vw);white-space:normal;text-align:left;font-size:.8rem;font-weight:400;line-height:1.35;color:var(--text,#e8ecf6);background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem;box-shadow:0 6px 20px rgba(0,0,0,.4)}
.badge[data-hint]:focus{outline:2px solid var(--line)}
/* Kontrast WCAG AA (30.10.2026): Statusfarben bleiben (Karte, Palette), nur Schrift bzw. Badge-Ton angepasst */
.b-ok,.t-ok,.b-wait,.t-wait,.b-ann,.t-ann{color:#0b1020}
.b-test,.t-test{background:#7a4fe8}
.btn{background:#2f6fe8}.btn.ghost{background:transparent}
.sources .url{opacity:1}
/* Tesla TAD „Status je Land“: Desktop Tabelle, unter 600 px eine Karte je Land (30.10.2026).
   Vorher: 6 Spalten in overflow-x, Tabelle 833 px breit, Hinweis-Spalte rechts außerhalb des Bildes machte jede Zeile ~240 px hoch. */
.landtab td.more{display:none}
@media (max-width:600px){
.landwrap{overflow:visible;border:0;background:none}
.landtab,.landtab tbody,.landtab tr,.landtab td{display:block;width:auto}
.landtab thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.landtab tr{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;margin:0 0 8px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center}
.landtab tr:hover{background:var(--panel)}
.landtab td{padding:0;border:0;min-width:0!important;font-size:.88rem}
.landtab td:nth-child(1){font-weight:600;font-size:.98rem}
.landtab td:nth-child(2){justify-self:end}
.landtab td:nth-child(3),.landtab td:nth-child(4){color:var(--muted)}
.landtab td:nth-child(3)::before{content:"Datum: "}.landtab td:nth-child(4)::before{content:"Behörde: "}
.landtab td:nth-child(3),.landtab td:nth-child(4){grid-column:1/-1}
.landtab td:nth-child(5),.landtab td:nth-child(6){grid-column:1/-1}
.landtab td:nth-child(5)::before{content:"Hinweis: ";color:var(--muted)}.landtab td:nth-child(6)::before{content:"Quellen: ";color:var(--muted)}
.landtab.js tr:not(.open) td:nth-child(5),.landtab.js tr:not(.open) td:nth-child(6){display:none}
.landtab.js td.more{display:block;grid-column:1/-1}
.more-btn{background:none;border:1px solid var(--line);color:#8fb4ff;border-radius:8px;padding:6px 10px;font:inherit;font-size:.85rem;cursor:pointer;min-height:32px}
.more-btn::after{content:" ▾"}.open .more-btn::after{content:" ▴"}
.landtab tr.open td.more{order:9}
}
/* Legende: Status ohne Einträge zurückgenommen, aber lesbar (Text ≥ 4,5:1), 30.10.2026 */
.mapbox-eu .leg-zero{opacity:1}
.mapbox-eu .leg-zero .badge{background:transparent;color:var(--muted);border:1px dashed #5a6684;padding:1px 7px}
.mapbox-eu .leg-zero .badge::before{opacity:.6}
/* Kontrast 30.10.2026: .stats span (muted) überschrieb die Badge-Schrift (In Prüfung 1,5:1) */
.stats span.badge{color:#fff}.stats span.b-wip{color:#1a1300}.stats span.b-ok,.stats span.b-wait,.stats span.b-ann{color:#0b1020}
.stats span.b-unk{color:#c9d1e6}
.sources li{scroll-margin-top:80px}.sources li:target{background:var(--panel2);border-radius:4px}
.typ{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:1px 8px;margin-bottom:4px;border:1px solid var(--line);background:var(--panel2);color:var(--acc2)}.typ-news{color:#ffd28a;border-color:#6b5320}.article>.typ{margin-bottom:8px}
/* Fold aufgeklappt / Tablet (701–900px): Navigation in einer Zeile halten */ @media (min-width:701px) and (max-width:900px){.top nav{gap:2px;flex-wrap:nowrap}.top nav a{padding:6px 8px;font-size:.88rem;white-space:nowrap}}
/* Artikel: Filter und Sortierung (30.10.2026) */
.artikel-tools{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:4px 0 14px}.artikel-tools .filter{display:flex;flex-wrap:wrap;gap:6px}
.chip-btn{font:inherit;font-size:.85rem;background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:5px 12px;cursor:pointer;min-height:34px}
.chip-btn:hover{border-color:var(--acc)}.chip-btn[aria-pressed="true"]{background:var(--acc);border-color:var(--acc);color:#0b1020;font-weight:700}.chip-btn .n{opacity:.75;font-size:.78rem}
.chip-btn:focus-visible,.sort select:focus-visible{outline:2px solid var(--acc2);outline-offset:2px}
.sort{margin-left:auto;font-size:.85rem;color:var(--muted)}.sort select{font:inherit;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:5px 8px;min-height:34px}
.card[hidden]{display:none}
@media (max-width:600px){.sort{margin-left:0;width:100%}.sort select{width:100%;margin-top:4px}}

/* ===== Farbschutz und feste Statusfarben (30.10.2026, vom CEO bestätigt) =====
   Gleiche Werte in build.py (MAP_FARBE/MAP_SCHRIFT, fill-Attribute der Karte) und app.js (FARBE). Keine von der Textfarbe abgeleiteten Füllungen.
   Schrift je Fläche >= 4,5:1: dunkel #0b1020 auf Grün, Gelb, Orange, Blau, Cyan, Grau; weiß auf Rot und Grau-Blau; schwarz auf Lila. */
html,body{background:#0b1020;color:#e8ecf6}
.badge,.tile{-webkit-text-fill-color:initial}
.b-ok,.t-ok,.stats span.b-ok{background:#51a775;color:#0b1020}
.b-wip,.t-wip,.stats span.b-wip{background:#edc748;color:#0b1020}
.b-wait,.t-wait,.stats span.b-wait{background:#d27f38;color:#0b1020}
.b-no,.t-no,.stats span.b-no{background:#c14e49;color:#ffffff}
.b-test,.t-test,.stats span.b-test{background:#845eed;color:#000000}
.b-unk,.t-unk,.stats span.b-unk{background:#3c4460;color:#ffffff}
.b-ann,.t-ann,.stats span.b-ann{background:#5b9cf0;color:#0b1020}
.b-buch,.t-buch,.stats span.b-buch{background:#7fd1e3;color:#0b1020}
.b-end,.t-end,.stats span.b-end{background:#9aa3b5;color:#0b1020}
.mapbox-eu .leg-zero .badge{background:transparent;color:var(--muted)}
/* Karte: Flächen, Marker, Kürzel (app.js setzt dieselben Farben zusätzlich als fill-Attribut) */
.eu-karte .c,.eu-karte .mk{fill:#3c4460}
.eu-karte .n{fill:#1a223b}
.eu-karte .s-ok{fill:#51a775}.eu-karte .s-wip{fill:#edc748}.eu-karte .s-wait{fill:#d27f38}.eu-karte .s-no{fill:#c14e49}.eu-karte .s-test{fill:#845eed}
.eu-karte .s-unk,.eu-karte .mk.s-unk{fill:#3c4460}.eu-karte .s-ann{fill:#5b9cf0}.eu-karte .s-buch{fill:#7fd1e3}.eu-karte .s-end{fill:#9aa3b5}
.eu-karte .lbl{fill:#ffffff;stroke:rgba(11,16,32,.55)}
.eu-karte .lbl.s-ok,.eu-karte .lbl.s-wip,.eu-karte .lbl.s-wait,.eu-karte .lbl.s-ann,.eu-karte .lbl.s-buch,.eu-karte .lbl.s-end{fill:#0b1020;stroke:rgba(255,255,255,.35)}
.eu-karte .lbl.s-no,.eu-karte .lbl.s-unk{fill:#ffffff;stroke:rgba(11,16,32,.55)}
.eu-karte .lbl.s-test{fill:#000000;stroke:rgba(255,255,255,.3)}
/* Matrix, Variante B (Justin, 30.10.2026): unter 700 px je Land ein aufklappbarer Block, ab 700 px die Tabelle */
.matrix-b{display:none}
@media (max-width:699.98px){
.matrixwrap{display:none}
.matrix-b{display:block}
.matrix-b details{background:#1a223b;border:1px solid var(--line);border-radius:12px;margin:0 0 8px;overflow:hidden}
.matrix-b summary{list-style:none;cursor:pointer;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:700;min-height:44px}
.matrix-b summary::-webkit-details-marker{display:none}
.matrix-b summary::before{content:"▸";color:var(--muted);margin-right:4px;transition:transform .15s}
.matrix-b details[open] summary::before{transform:rotate(90deg)}
.matrix-b summary:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.matrix-b summary .t{flex:1;min-width:0}.matrix-b summary small{color:var(--muted);font-weight:400}
.matrix-b summary .cnt{font-size:.8rem;font-weight:600;color:var(--muted);white-space:nowrap}.matrix-b summary .cnt b{color:#51a775}
.matrix-b .mlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);background:#141b30}
.matrix-b .mlist li{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;border-top:1px solid var(--line)}
.matrix-b .mlist li:first-child{border-top:0}
.matrix-b .nm{font-weight:600;min-width:0;overflow-wrap:anywhere;color:var(--text);text-decoration:none}
.matrix-b .nm small{display:block;color:var(--muted);font-weight:400;font-size:.8rem}
.matrix-b .none{color:var(--muted)}
.matrix-b details{scroll-margin-top:80px}
}
.matrix-b li.row-flash{animation:rowflash 2s ease-out;box-shadow:inset 0 0 0 2px var(--acc)}.matrix-b li.row-flash>*{animation:none}

/* Newsletter Zwei-Klick (05.11.2026, Flow ohne reCAPTCHA 05.11.2026) */
#nl-anmeldung{max-width:520px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:12px;margin:14px 0}
.nl-vorschau-hinweis{background:rgba(237,199,72,.18);border:1px solid #edc748;border-radius:8px;padding:10px 12px;color:#f1d48a;font-weight:700;margin:12px 0}
.cr-nope{display:none!important;position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
