/* Hausverwaltung – ruhige, gut lesbare Gestaltung. Große Schrift, große Knöpfe, klare Kontraste. */
:root {
  --grund: #f5f3ee;
  --karte: #ffffff;
  --text: #1c2430;
  --leise: #4d5766;
  --linie: #d9d4c8;
  --haupt: #1f4e79;
  --haupt-dunkel: #163a5b;
  --haupt-hell: #e3edf6;
  --gut: #1e6b3a;
  --gut-hell: #e4f3e8;
  --warn: #8a2c12;
  --warn-hell: #fbe9e3;
  --info-hell: #fff6dc;
  --info-rand: #c79a1e;
  --fokus: #f2b705;
  --rund: 14px;
  --schatten: 0 1px 2px rgba(20, 30, 45, .06), 0 4px 14px rgba(20, 30, 45, .06);
  --basis: 18px;
  color-scheme: light;
}
html.schrift-gross { --basis: 21px; }
html.schrift-sehrgross { --basis: 24px; }
html.kontrast {
  --grund: #ffffff; --karte: #ffffff; --text: #000000; --leise: #000000; --linie: #000000;
  --haupt: #00306b; --haupt-dunkel: #001f47; --haupt-hell: #ffffff; --gut: #00561f; --gut-hell: #ffffff;
  --warn: #8b0000; --warn-hell: #ffffff; --info-hell: #ffffff; --info-rand: #000000; --schatten: none;
}
html.kontrast .karte, html.kontrast .kachel, html.kontrast .beitrag, html.kontrast .lexkarte { border-width: 2px; }

* { box-sizing: border-box; }
html { font-size: var(--basis); -webkit-text-size-adjust: 100%; }
html, body { margin: 0; }
body {
  background: var(--grund); color: var(--text);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  line-height: 1.55; overflow-wrap: break-word; hyphens: auto;
}
a { color: var(--haupt); text-underline-offset: 3px; }
a:hover { color: var(--haupt-dunkel); }
:focus-visible { outline: 4px solid var(--fokus); outline-offset: 2px; border-radius: 6px; }
h1, h2, h3, .knopf, .chips a { hyphens: manual; }
.kachel strong { hyphens: auto; overflow-wrap: break-word; min-width: 0; }
.kachel { min-width: 0; }
h1 { font-size: 1.6rem; line-height: 1.25; margin: .4em 0 .5em; }
h2 { font-size: 1.25rem; line-height: 1.3; margin: 1.2em 0 .5em; }
h3 { font-size: 1.08rem; margin: .2em 0 .3em; }
p { margin: .5em 0; }
.klein { font-size: .85rem; color: var(--leise); }
.nur-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.springen { position: absolute; left: -9999px; top: 0; background: var(--fokus); color: #000; padding: .6rem 1rem; z-index: 20; }
.springen:focus { left: 1rem; }
.sym { width: 1.35em; height: 1.35em; flex: none; vertical-align: -.3em; }

/* Kopf */
.kopf { background: var(--haupt); color: #fff; }
.kopf-innen { max-width: 1100px; margin: 0 auto; padding: .55rem 16px; display: flex; align-items: center; gap: .75rem; justify-content: space-between; }
.marke { color: #fff; text-decoration: none; display: flex; align-items: center; gap: .5rem; font-weight: 700; font-size: 1.02rem; min-height: 44px; min-width: 0; }
.marke span { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.2; hyphens: none; overflow-wrap: normal; word-break: normal; }
@media (max-width: 520px) { .marke { font-size: .8rem; } }
.marke:hover { color: #fff; }
.marke .sym { width: 1.6em; height: 1.6em; }
.kopf-rechts { display: flex; align-items: center; gap: .35rem; flex: none; }
.sprachwahl { display: flex; border: 2px solid rgba(255,255,255,.55); border-radius: 10px; overflow: hidden; }
.sprachwahl a { color: #fff; text-decoration: none; font-weight: 700; padding: 0 .6rem; min-height: 40px; min-width: 44px; display: flex; align-items: center; justify-content: center; font-size: .9rem; }
.sprachwahl a[aria-current] { background: #fff; color: var(--haupt); }
.kopf-knopf { color: #fff; text-decoration: none; font-weight: 700; border: 2px solid rgba(255,255,255,.55); border-radius: 10px; min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; }
.kopf-knopf .sym { width: 1.3em; height: 1.3em; }
.kopf-knopf.aus { opacity: .35; }
@media (max-width: 400px) { .marke span { display: none; } .kopf-rechts { gap: .25rem; } }
.kopf-knopf:hover { color: #fff; background: rgba(255,255,255,.12); }

/* Hauptnavigation: unten am Handy, oben am PC */
.hauptnav { position: fixed; bottom: 0; left: 0; right: 0; background: var(--karte); border-top: 1px solid var(--linie); z-index: 10; padding-bottom: env(safe-area-inset-bottom); }
.hauptnav-innen { display: flex; max-width: 1100px; margin: 0 auto; }
.hauptnav a { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: .45rem .2rem; min-height: 62px; text-decoration: none; color: var(--leise); font-size: .78rem; font-weight: 600; }
.hauptnav a[aria-current] { color: var(--haupt); background: var(--haupt-hell); box-shadow: inset 0 3px 0 var(--haupt); }
.hauptnav .sym { width: 1.6em; height: 1.6em; }
.hauptnav a span { hyphens: none; white-space: nowrap; font-size: min(1em, 3.2vw); }
@media (min-width: 900px) { .hauptnav a span { font-size: 1em; } }
body { padding-bottom: 80px; }
@media (min-width: 900px) {
  .hauptnav { position: static; border-top: 0; border-bottom: 1px solid var(--linie); }
  .hauptnav a { flex: none; flex-direction: row; gap: .45rem; padding: 0 1.1rem; font-size: .95rem; min-height: 52px; }
  .hauptnav a[aria-current] { box-shadow: inset 0 -3px 0 var(--haupt); }
  body { padding-bottom: 0; }
}

/* Inhalt */
.inhalt { max-width: 1100px; margin: 0 auto; padding: .6rem 16px 2rem; min-height: 60vh; }
.titelzeile { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; }
.titelzeile h1 { margin-bottom: .2em; }
.unterzeile { color: var(--leise); margin-top: 0; }
.karte { background: var(--karte); border: 1px solid var(--linie); border-radius: var(--rund); padding: 1rem 1.1rem; margin: .8rem 0; box-shadow: var(--schatten); }
.karte.schmal { max-width: 560px; margin-left: auto; margin-right: auto; }
.karte.alt { background: #faf9f6; }
.lesetext { max-width: 760px; }
.lesetext p, .volltext, .lextext { text-align: justify; hyphens: auto; }

/* Knöpfe */
.knopf { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 48px; padding: .55rem 1.1rem; border-radius: 12px; border: 2px solid var(--haupt); background: var(--haupt); color: #fff; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; line-height: 1.2; text-align: center; }
.knopf:hover { background: var(--haupt-dunkel); border-color: var(--haupt-dunkel); color: #fff; }
.knopf.gross { min-height: 56px; font-size: 1.05rem; padding: .7rem 1.4rem; }
.knopf.leise { background: var(--karte); color: var(--haupt); }
.knopf.leise:hover { background: var(--haupt-hell); color: var(--haupt-dunkel); }
.knopf.aktiv { background: var(--haupt); color: #fff; }
.knopf.warnung { background: var(--warn); border-color: var(--warn); }
.knopf.klein { min-height: 44px; font-size: .85rem; padding: .4rem .8rem; }
.knopfreihe { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: .8rem 0; }
.knopfreihe form { margin: 0; }
.knopfreihe.mitte { justify-content: center; }

/* Hinweise */
.hinweis { border-radius: var(--rund); padding: .8rem 1rem; margin: .8rem 0; border: 2px solid var(--haupt); background: var(--haupt-hell); }
.hinweis.ok { border-color: var(--gut); background: var(--gut-hell); }
.hinweis.fehler { border-color: var(--warn); background: var(--warn-hell); }
.hinweis.info { border-color: var(--info-rand); background: var(--info-hell); }
.hinweis.ruhig { border-color: var(--linie); background: var(--karte); color: var(--leise); }
a.hinweis.glocke { display: block; text-decoration: none; color: var(--text); font-weight: 700; border-color: var(--info-rand); background: var(--info-hell); min-height: 48px; }
.codeanzeige .code, .code { font-family: ui-monospace, Consolas, monospace; font-size: 1.5rem; font-weight: 800; letter-spacing: .08em; }

/* Formulare */
.formular { display: flex; flex-direction: column; gap: .25rem; }
.formular label { font-weight: 700; margin-top: .7rem; }
.formular label.haken { font-weight: 400; display: flex; align-items: flex-start; gap: .6rem; min-height: 44px; padding: .3rem 0; margin-top: .3rem; }
.haken input { width: 1.4rem; height: 1.4rem; margin: .15rem 0 0; flex: none; accent-color: var(--haupt); }
input:not([type=checkbox]):not([type=radio]), textarea, select {
  font: inherit; color: var(--text); background: #fff; width: 100%; min-height: 52px; padding: .6rem .8rem;
  border: 2px solid #8b95a3; border-radius: 10px;
}
textarea { min-height: 9rem; resize: vertical; line-height: 1.5; }
input[aria-invalid], textarea[aria-invalid] { border-color: var(--warn); background: var(--warn-hell); }
.feldfehler { color: var(--warn); font-weight: 700; margin: .2rem 0 0; }
.formular .knopf { margin-top: 1rem; align-self: flex-start; }
.formular .knopfreihe .knopf { margin-top: 0; }
fieldset.wahl { border: 0; padding: 0; margin: .7rem 0 0; }
fieldset.wahl legend { font-weight: 700; padding: 0; margin-bottom: .4rem; }
.wahlgitter { display: grid; grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); gap: .5rem; }
.wahlknopf { margin: 0 !important; }
.wahlknopf input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.wahlknopf span { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 56px; padding: .4rem .6rem; border: 2px solid var(--linie); border-radius: 12px; background: #fff; font-weight: 700; cursor: pointer; }
.wahlknopf input:checked + span { border-color: var(--haupt); background: var(--haupt-hell); color: var(--haupt-dunkel); box-shadow: inset 0 0 0 2px var(--haupt); }
.wahlknopf input:focus-visible + span { outline: 4px solid var(--fokus); outline-offset: 2px; }
.feldpaar { display: grid; grid-template-columns: 1fr; gap: 0 1rem; }
@media (min-width: 640px) { .feldpaar { grid-template-columns: 1fr 1fr; } }
.nebenwege { margin-top: 1.2rem; border-top: 1px solid var(--linie); padding-top: .6rem; }
.liste-dl { display: grid; grid-template-columns: max-content 1fr; gap: .3rem 1rem; margin: .5rem 0; }
.liste-dl dt { font-weight: 700; }
.liste-dl dd { margin: 0; }
@media (max-width: 480px) { .liste-dl { grid-template-columns: 1fr; } .liste-dl dd { margin-bottom: .4rem; } }

/* Kacheln */
.kacheln { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .8rem; margin: 1rem 0; }
@media (max-width: 520px) { .kacheln { grid-template-columns: 1fr 1fr; gap: .6rem; } }
@media (max-width: 340px) { .kacheln { grid-template-columns: 1fr; } }
.kachel { display: flex; flex-direction: column; gap: .3rem; padding: 1rem; min-height: 8.5rem; border-radius: var(--rund); background: var(--karte); border: 1px solid var(--linie); box-shadow: var(--schatten); text-decoration: none; color: var(--text); }
.kachel .sym { width: 2.2em; height: 2.2em; color: var(--haupt); }
.kachel strong { font-size: 1.05rem; line-height: 1.25; }
.kachel span { font-size: .85rem; color: var(--leise); }
a.kachel:hover { border-color: var(--haupt); background: var(--haupt-hell); color: var(--text); }
.kachel.betont { border: 2px solid var(--haupt); }
.kachel.bald { opacity: .62; background: transparent; box-shadow: none; border-style: dashed; }
.kachel.bald .sym { color: var(--leise); }

/* Willkommen */
.held { text-align: center; max-width: 640px; margin: 2rem auto; }
.held-symbol .sym { width: 4.5rem; height: 4.5rem; color: var(--haupt); }
.gross-text { font-size: 1.12rem; }

/* Chips / Filter */
.chips { display: flex; flex-wrap: wrap; gap: .45rem; margin: .7rem 0; }
.chips a { display: inline-flex; align-items: center; min-height: 44px; padding: .3rem .9rem; border-radius: 999px; border: 2px solid var(--linie); background: var(--karte); color: var(--text); text-decoration: none; font-weight: 600; font-size: .9rem; }
.chips a[aria-current] { background: var(--haupt); border-color: var(--haupt); color: #fff; }
.abc { display: flex; flex-wrap: wrap; gap: .3rem; margin: .5rem 0 1rem; }
.abc a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; border: 1px solid var(--linie); background: var(--karte); text-decoration: none; font-weight: 700; }
.abc a[aria-current] { background: var(--haupt); color: #fff; border-color: var(--haupt); }
.suchfeld { display: flex; gap: .5rem; margin: .8rem 0; }
.suchfeld input { flex: 1; min-width: 0; }
.suchfeld .knopf { flex: none; }
@media (max-width: 420px) { .suchfeld .knopf .sym { display: none; } }

/* Brett */
.beitragsliste, .lexliste, .mitgliederliste, .trefferliste, .quellen, .protokoll { list-style: none; padding: 0; margin: 0; }
.beitragsliste li, .lexliste li { margin: .6rem 0; }
.beitrag { display: block; background: var(--karte); border: 1px solid var(--linie); border-radius: var(--rund); padding: .9rem 1rem; text-decoration: none; color: var(--text); box-shadow: var(--schatten); }
a.beitrag:hover { border-color: var(--haupt); color: var(--text); }
.beitrag.angeheftet { border: 2px solid var(--haupt); }
.beitrag.ausgeblendet, .karte.ausgeblendet { background: transparent; border-style: dashed; color: var(--leise); box-shadow: none; }
.beitrag h2 { font-size: 1.12rem; margin: .35rem 0 .2rem; }
.vorschau { color: var(--leise); margin: .2rem 0; }
.beitrag-oben { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.beitrag-unten, .metazeile { display: flex; flex-wrap: wrap; gap: .3rem .8rem; align-items: center; font-size: .85rem; color: var(--leise); margin-top: .4rem; }
.marke-kat, .marke-neu, .marke-pin, .marke-sicht, .marke-status, .kennz, .lex-typ, .lex-status, .lex-bereich, .lex-id {
  display: inline-flex; align-items: center; gap: .25rem; font-size: .78rem; font-weight: 700; border-radius: 999px; padding: .12rem .6rem; border: 1px solid var(--linie); background: #f3f1ec; color: var(--text); line-height: 1.5;
}
.marke-neu { background: var(--info-rand); color: #fff; border-color: var(--info-rand); }
.marke-pin { background: var(--haupt-hell); border-color: var(--haupt); color: var(--haupt-dunkel); }
.marke-pin .sym { width: 1em; height: 1em; }
.marke-sicht { background: #efe7f6; border-color: #7a4c9c; color: #4b2a66; }
.marke-status.st-offen { background: var(--warn-hell); border-color: var(--warn); color: var(--warn); }
.marke-status.st-geklaert { background: var(--gut-hell); border-color: var(--gut); color: var(--gut); }
.kennz { font-weight: 600; }
.kennz-verwaltung { background: var(--haupt); color: #fff; border-color: var(--haupt); }
.kennz-beirat { background: #e8f0e0; border-color: #4f7a2f; color: #2f4d17; }
.wer { font-weight: 600; color: var(--text); }
.beitrag-voll h1 { margin-top: .5rem; }
.volltext { margin: .8rem 0; white-space: normal; }
.bearbeitet { font-style: italic; }
.aktionen { border-top: 1px solid var(--linie); padding-top: .8rem; }
.antworten-bereich { margin-top: 1rem; }
.antwort { background: var(--karte); border-left: 4px solid var(--haupt-hell); border-radius: 0 var(--rund) var(--rund) 0; padding: .6rem 1rem; margin: .6rem 0; }
.antwort .metazeile { margin-top: 0; }
details.mod { margin-top: .6rem; }
details summary { cursor: pointer; font-weight: 700; min-height: 44px; display: flex; align-items: center; }
.zurueck { display: inline-flex; align-items: center; gap: .3rem; min-height: 44px; font-weight: 600; text-decoration: none; }
.leer { text-align: center; padding: 1.5rem; border: 2px dashed var(--linie); border-radius: var(--rund); color: var(--leise); }

/* Lexikon */
.lexliste { display: grid; grid-template-columns: 1fr; gap: .6rem; }
@media (min-width: 760px) { .lexliste { grid-template-columns: 1fr 1fr; } .lexliste.kompakt { grid-template-columns: 1fr 1fr; } }
.lexliste li { margin: 0; }
.lexkarte { display: block; height: 100%; background: var(--karte); border: 1px solid var(--linie); border-radius: var(--rund); padding: .9rem 1rem; text-decoration: none; color: var(--text); box-shadow: var(--schatten); }
a.lexkarte:hover { border-color: var(--haupt); color: var(--text); }
.lexkarte h3 { margin: .45rem 0 .25rem; color: var(--haupt-dunkel); }
.lexkarte p { margin: .2rem 0; color: var(--leise); font-size: .92rem; }
.lex-oben { display: flex; flex-wrap: wrap; gap: .3rem; }
.lex-recht { font-size: .8rem !important; font-weight: 600; }
.lex-status { font-weight: 500; background: transparent; }
.lex-bereich { background: transparent; font-weight: 500; }
.lex-id { font-family: ui-monospace, Consolas, monospace; background: transparent; }
.typ-pflicht { background: #fbe9e3 !important; border-color: #a33a1a !important; color: #7a2410 !important; }
.typ-recht { background: #e4f3e8 !important; border-color: #2f7d4a !important; color: #1b5631 !important; }
.typ-befugnis { background: #e3edf6 !important; border-color: #1f4e79 !important; color: #163a5b !important; }
.typ-regel { background: #f1ecfa !important; border-color: #6a4c9c !important; color: #48306f !important; }
.typ-info { background: #f0f0ee !important; border-color: #6b6b66 !important; color: #3d3d3a !important; }
.typ-empfehlung { background: #fff6dc !important; border-color: #a8800f !important; color: #6b5205 !important; }
.chips a.typ-pflicht[aria-current], .chips a.typ-recht[aria-current], .chips a.typ-befugnis[aria-current], .chips a.typ-regel[aria-current], .chips a.typ-info[aria-current], .chips a.typ-empfehlung[aria-current] { box-shadow: inset 0 0 0 2px currentColor; }
.klein-chips a { min-height: 44px; font-size: .85rem; }
.lexartikel h1 { margin-top: .6rem; }
.lextext { font-size: 1.08rem; }
.quellen li { margin: .3rem 0; }
.quellen a { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; font-weight: 600; }
.zweisprachig { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 760px) { .zweisprachig { grid-template-columns: 1fr 1fr; } }
.zweisprachig section { border-top: 3px solid var(--haupt-hell); padding-top: .3rem; }
.sprachmarke { font-size: .8rem; font-weight: 700; color: var(--leise); text-transform: uppercase; letter-spacing: .06em; }
.blaettern { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem; margin: 1.2rem 0; }
.faq details { margin: .5rem 0; }
.faq summary { font-size: 1.02rem; }
.trefferzahl { font-size: 1rem; color: var(--leise); }
.trefferliste li { padding: .5rem 0; border-bottom: 1px solid var(--linie); }
.trefferliste a { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .4rem; min-height: 44px; }

/* Admin */
.mitgliederliste li { margin: .5rem 0; }
.mitglied { display: flex; flex-direction: column; gap: .15rem; text-decoration: none; color: var(--text); margin: 0; }
a.mitglied:hover { border-color: var(--haupt); color: var(--text); }
.zeilenform { padding-top: .4rem; }
.protokoll li { padding: .5rem 0; border-bottom: 1px solid var(--linie); font-size: .9rem; }
.protokoll code { display: block; font-size: .78rem; color: var(--leise); white-space: pre-wrap; word-break: break-all; margin-top: .2rem; }

/* Fuß */
.fuss { border-top: 1px solid var(--linie); background: var(--karte); }
.fuss-innen { max-width: 1100px; margin: 0 auto; padding: .8rem 16px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; align-items: center; font-size: .85rem; }
.fuss-links { display: flex; flex-wrap: wrap; gap: .2rem 1rem; }
.fuss-links a { min-height: 44px; display: inline-flex; align-items: center; }
.signatur { color: var(--leise); margin-left: auto; }


/* ---------- Phase 2: Versammlungen, Beschlüsse, Dokumente ---------- */
.marke-status.st-geplant, .marke-status.st-vorschlag, .marke-status.st-info { background: var(--haupt-hell); border-color: var(--haupt); color: var(--haupt-dunkel); }
.marke-status.st-vorbei { background: #f0f0ee; border-color: #6b6b66; color: #3d3d3a; }
.marke-status.st-abgesagt, .marke-status.st-abgelehnt, .marke-status.st-zurueckgezogen { background: var(--warn-hell); border-color: var(--warn); color: var(--warn); }
.marke-status.st-beschlossen, .marke-status.st-angenommen, .marke-status.st-aufgenommen { background: var(--gut-hell); border-color: var(--gut); color: var(--gut); }
.marke-status.st-vertagt, .marke-status.st-urteil { background: #f1ecfa; border-color: #6a4c9c; color: #48306f; }
.vers-wann { font-weight: 600; margin: .3rem 0; display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.klein-kacheln .kachel { min-height: 6.5rem; }
.topliste { list-style: none; padding: 0; margin: .5rem 0; }
.topliste li { margin: .45rem 0; }
.topkarte { display: grid; grid-template-columns: auto 1fr; gap: .2rem .9rem; align-items: center; padding: .8rem 1rem; background: var(--karte); border: 1px solid var(--linie); border-radius: var(--rund); text-decoration: none; color: var(--text); box-shadow: var(--schatten); }
a.topkarte:hover { border-color: var(--haupt); color: var(--text); }
.topnr, .bsnr { font-weight: 800; color: var(--haupt-dunkel); white-space: nowrap; }
.topnr { grid-row: span 2; background: var(--haupt-hell); border-radius: 10px; padding: .35rem .6rem; text-align: center; }
.topnr.gross, .bsnr.gross { font-size: 1.1rem; padding: .3rem .7rem; background: var(--haupt-hell); border-radius: 10px; }
.toptitel { font-weight: 700; }
.topmeta { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
blockquote.wortlaut { margin: .6rem 0; padding: .8rem 1rem; border-left: 5px solid var(--haupt); background: var(--haupt-hell); border-radius: 0 10px 10px 0; font-size: 1.05rem; }
.frist { display: flex; gap: .8rem; align-items: flex-start; }
.frist > .sym { width: 2rem; height: 2rem; flex: none; color: var(--info-rand); margin-top: .2rem; }
.frist p { margin: .3rem 0; }
.lexverweise { margin: 1.5rem 0 .5rem; padding: .7rem 1rem; border: 1px dashed var(--linie); border-radius: var(--rund); }
.lexverweise p { margin: 0 0 .3rem; }
.lexverweise ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .3rem .9rem; }
.lexverweise a { display: inline-flex; min-height: 44px; align-items: center; }
.dokliste { list-style: none; padding: 0; margin: .4rem 0; }
.dokliste li { margin: .45rem 0; }
.dokzeile { display: flex; gap: .7rem; align-items: flex-start; padding: .75rem 1rem; background: var(--karte); border: 1px solid var(--linie); border-radius: var(--rund); text-decoration: none; color: var(--text); box-shadow: var(--schatten); }
a.dokzeile:hover { border-color: var(--haupt); color: var(--text); }
.dokzeile > .sym { width: 1.8rem; height: 1.8rem; color: var(--haupt); margin-top: .1rem; }
.dok-text { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.dok-titel { font-weight: 700; }
.dok-meta { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; }
.kennz-dok { display: inline-flex; align-items: center; font-size: .78rem; font-weight: 800; border-radius: 6px; padding: .12rem .55rem; border: 2px solid; line-height: 1.5; }
.kd-offiziell { background: var(--haupt); border-color: var(--haupt); color: #fff; }
.kd-inoffiziell { background: #fff6dc; border-color: #a8800f; color: #6b5205; border-style: dashed; }
.dateikasten { border: 1px solid var(--linie); border-radius: var(--rund); padding: .7rem 1rem; margin: .8rem 0; background: #faf9f6; }
.vorschaubild { max-width: 100%; max-height: 60vh; display: block; border-radius: 8px; border: 1px solid var(--linie); margin-bottom: .5rem; }
.pruefsumme code { word-break: break-all; font-size: .75rem; }
.notiztext { background: #fffdf5; border: 1px dashed #c7b05a; border-radius: 10px; padding: .8rem 1rem; }
.zeitleiste { list-style: none; padding: 0; margin: .5rem 0; border-left: 3px solid var(--haupt-hell); }
.zeitleiste li { padding: .45rem 0 .45rem 1rem; position: relative; }
.zeitleiste li::before { content: ""; position: absolute; left: -.5rem; top: .9rem; width: .7rem; height: .7rem; border-radius: 50%; background: var(--haupt); }
.zeitleiste .zeit { font-weight: 700; }
.bald ul { list-style: none; padding: 0; margin: .3rem 0 1rem; }
.bald li { margin: .4rem 0; }
.baldzeile { display: flex; gap: .7rem; align-items: center; padding: .7rem 1rem; min-height: 52px; border-radius: var(--rund); border: 2px solid var(--haupt); background: var(--karte); text-decoration: none; color: var(--text); font-weight: 600; }
.baldzeile.warnung { border-color: var(--info-rand); background: var(--info-hell); }
.baldzeile .sym { width: 1.6rem; height: 1.6rem; color: var(--haupt); }
a.pwhinweis { display: block; text-decoration: none; color: var(--text); font-weight: 700; }
.namensliste { margin: .3rem 0; padding-left: 1.2rem; }
.namensliste li { margin: .2rem 0; }

.falle { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* Druckseiten (Lexikon, Einladungsbrief) */
.druckdokument { background: #fff; color: #000; }
.druckkopf h1 { margin-top: 0; }
.druckhinweis { font-size: .9rem; border: 1px solid #999; padding: .5rem .7rem; border-radius: 8px; }
.inhaltsverzeichnis ol { columns: 2 18rem; font-size: .9rem; }
.druckbereich { border-bottom: 2px solid #000; padding-bottom: .2rem; margin-top: 1.6rem; }
.druckartikel { margin: .9rem 0; break-inside: avoid; page-break-inside: avoid; }
.druckartikel h3 { margin-bottom: .1rem; }
.druckmeta, .druckquellen { font-size: .8rem; color: #333; margin: .1rem 0; word-break: break-all; }
.briefteil { padding: 1rem 0 2rem; }
.briefteil + .briefteil { border-top: 1px dashed #999; }
.briefkopf { font-weight: 700; }
.briefschritte li { margin: .7rem 0; }
.briefurl { font-size: 1.1rem; word-break: break-all; }

/* ---------- hv_1v4: Abrechnung prüfen ---------- */
.sogehts .schritte { margin: .3rem 0 .6rem; padding-left: 1.4rem; }
.sogehts .schritte li { margin: .35rem 0; }
.abrliste, .posliste, .vglliste { list-style: none; padding: 0; margin: .4rem 0; }
.abrkarte { display: flex; gap: .9rem; align-items: center; text-decoration: none; color: var(--text); border-left-width: 6px; }
.abrkarte:hover { border-color: var(--haupt); }
.abr-jahr { font-size: 1.35rem; font-weight: 800; color: var(--haupt); min-width: 3.2em; text-align: center; }
.abr-text { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.abr-urteil { font-weight: 700; }
.urteil-ok { border-left-color: var(--gut); } .abr-urteil.ok { color: var(--gut); }
.urteil-abweichung { border-left-color: var(--warn); } .abr-urteil.abweichung { color: var(--warn); }
.urteil-offen { border-left-color: #8a8a80; } .abr-urteil.offen { color: var(--leise); }
.pruefergebnis { border: 2px solid var(--linie); border-left-width: 8px; border-radius: var(--rund); padding: .9rem 1.1rem; margin: 1rem 0; background: var(--karte); }
.pruefergebnis h2 { margin-top: 0; display: flex; align-items: center; gap: .45rem; }
.pruefergebnis.urteil-ok { border-color: var(--gut); background: var(--gut-hell); }
.pruefergebnis.urteil-abweichung { border-color: var(--warn); background: var(--warn-hell); }
.urteiltext { font-size: 1.15rem; font-weight: 700; margin: .2rem 0 .6rem; }
.pruefliste { list-style: none; padding: 0; margin: .5rem 0; }
.pruefliste li { display: flex; gap: .5rem; align-items: flex-start; padding: .35rem 0; border-top: 1px solid var(--linie); }
.pruefliste li .marke-status { flex: none; }
.poskarte, .vglkarte { border-left-width: 6px; }
.pz-ok { border-left-color: var(--gut); } .pz-abweichung { border-left-color: var(--warn); } .pz-rundung { border-left-color: var(--haupt); } .pz-offen { border-left-color: #8a8a80; }
.pos-kopf { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.pos-kopf strong { flex: 1 1 10rem; min-width: 0; overflow-wrap: anywhere; }
.pos-nr { display: inline-flex; align-items: center; justify-content: center; width: 1.8em; height: 1.8em; border-radius: 50%; background: var(--haupt-hell); color: var(--haupt-dunkel); font-weight: 800; font-size: .9rem; flex: none; }
.pos-chips { margin: .35rem 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.posrechnung { display: grid; grid-template-columns: max-content 1fr; gap: .2rem 1rem; margin: .4rem 0; }
.posrechnung dt { color: var(--leise); }
.posrechnung dd { margin: 0; overflow-wrap: anywhere; }
.posrechnung dd.diff { color: var(--warn); font-weight: 700; }
.rechenweg { font-family: ui-monospace, Menlo, Consolas, monospace; background: #f3f5f8; border-radius: 8px; padding: .3rem .6rem; display: inline-block; max-width: 100%; overflow-wrap: anywhere; }
.poshinweis { border-left: 4px solid #e0a100; background: #fff7e0; padding: .4rem .7rem; border-radius: 6px; margin: .4rem 0; }
.pos-aktion { margin: .5rem 0 0; }
.neupos summary, details.neupos > summary { font-weight: 800; font-size: 1.1rem; cursor: pointer; display: flex; align-items: center; gap: .45rem; min-height: 48px; }
.feldhilfe { color: var(--leise); font-size: .9rem; margin: .15rem 0 .2rem; }
.vorschau { background: var(--haupt-hell); border: 1px dashed var(--haupt); border-radius: 10px; padding: .5rem .8rem; font-weight: 700; }
textarea.rueckfragen { width: 100%; font-family: inherit; background: #faf9f6; }
.verlaufpos { margin: .3rem 0; padding-left: 1.3rem; }
.drucktabelle { width: 100%; border-collapse: collapse; margin: .8rem 0; font-size: .92rem; }
.drucktabelle th, .drucktabelle td { border: 1px solid #999; padding: .3rem .4rem; text-align: left; vertical-align: top; }
.drucktabelle .zahl { text-align: right; white-space: nowrap; }
.drucktabelle tfoot td { font-weight: 800; }
.drucktabelle tr.pz-abweichung td { background: #fde8e3; }
.druckdokument { overflow-x: auto; }
html.kontrast .poshinweis, html.kontrast .rechenweg, html.kontrast .vorschau { background: #fff; border-color: #000; color: #000; }
@media (max-width: 420px) { .posrechnung { grid-template-columns: 1fr; } .posrechnung dd { margin-bottom: .3rem; } .abr-jahr { min-width: 2.6em; font-size: 1.15rem; } }

@media print {
  @page { size: A4; margin: 16mm 15mm; }
  html { font-size: 11.5pt; }
  body { background: #fff; padding: 0; }
  .kopf, .hauptnav, .fuss, .nicht-drucken, .knopf, .knopfreihe, .springen, details.mod, details.karte, .blaettern, form, .chips, .abc, .zurueck, .lexverweise { display: none !important; }
  .kd-offiziell { background: #fff; color: #000; border-color: #000; }
  .inhalt { max-width: none; padding: 0; }
  .karte, .beitrag, .lexkarte, .antwort { box-shadow: none; border: 1px solid #999; }
  a { color: #000; text-decoration: none; }
  .quellen a::after { content: " (" attr(href) ")"; font-weight: 400; font-size: .85em; word-break: break-all; }
  .briefteil + .briefteil { break-before: page; page-break-before: always; border: 0; }
  .druckbereich { break-after: avoid; }
  .druckdokument { overflow: visible; }
  .drucktabelle { font-size: 9.5pt; }
  .drucktabelle tr { break-inside: avoid; }
}
