/* Erzeugt von tools/css-schlank.php aus stil.css — nicht von Hand ändern. */
:root {
    color-scheme: light dark;
    --primaer: var(--marke, #2f5d3a);
    --primaer: light-dark(var(--marke, #2f5d3a), var(--marke_dunkel, #86cd9b));
    --akzent:  var(--zweitmarke, #b4531f);
    --akzent:  light-dark(var(--zweitmarke, #b4531f), var(--zweitmarke_dunkel, #e8935f));
    --warnton: #934317;
    --warnton: light-dark(#934317, var(--zweitmarke_dunkel, #e8935f));
    --infoton: #2f5d3a;
    --infoton: light-dark(var(--marke, #2f5d3a), var(--marke_dunkel, #86cd9b));
    --auf-primaer: #ffffff;
    --auf-akzent:  #ffffff;
    --auf-akzent:  light-dark(#ffffff, #101214);
    --auf-primaer: light-dark(#ffffff, #101214);
    --grund:      #f9f8f3;
    --grund:      light-dark(#f9f8f3, #101214);
    --flaeche:    #fffefb;
    --flaeche:    light-dark(#fffefb, rgba(255, 255, 255, 0.045));
    --flaeche-deckend: #ffffff;
    --flaeche-deckend: light-dark(#ffffff, #1b1f21);
    --text:       #16181a;
    --text:       light-dark(#16181a, #e9ebed);
    --logo-blau:  #0d2e66;
    --logo-blau:  light-dark(#0d2e66, #dfe7f5);
    --text_leise: rgba(22, 24, 26, 0.64);
    --text_leise: light-dark(rgba(22, 24, 26, 0.64), rgba(233, 235, 237, 0.64));
    --text_deko:  rgba(22, 24, 26, 0.42);
    --text_deko:  light-dark(rgba(22, 24, 26, 0.42), rgba(233, 235, 237, 0.42));
    --linie: rgba(22, 24, 26, 0.11);
    --linie: light-dark(
        color-mix(in srgb, var(--marke, #2f5d3a) 20%, transparent),
        rgba(255, 255, 255, 0.13)
    );
    --tint:  rgba(22, 24, 26, 0.05);
    --tint:  light-dark(
        color-mix(in srgb, var(--marke, #2f5d3a) 9%, transparent),
        rgba(255, 255, 255, 0.07)
    );
    --rand: rgba(22, 24, 26, 0.58);
    --rand: light-dark(rgba(22, 24, 26, 0.58), rgba(233, 235, 237, 0.52));
    --rand-leise: rgba(22, 24, 26, 0.50);
    --rand-leise: light-dark(rgba(22, 24, 26, 0.50), rgba(233, 235, 237, 0.50));
    --s1: 0.25rem;
    --s2: 0.5rem;
    --s3: 0.75rem;
    --s4: 0.875rem;
    --s5: 1rem;
    --s6: 1.25rem;
    --s7: 1.75rem;
    --s8: 2.5rem;
    --radius:  12px;
    --r-zeile: 14px;
    --r-gross: 16px;
    --r-pille: 999px;
    --spalte-breite: 54rem;
    --lesebreite: 70ch;
    --schrift: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: var(--schrift);
    font-size: 1.1875rem;
    line-height: 1.32;
    color: var(--text);
    background: var(--grund);
    overflow-wrap: break-word;
}
.spalte {
    max-width: var(--spalte-breite);
    margin-inline: auto;
    padding-inline: 1rem;
}
.vorschauleiste {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--s2) var(--s3);
    padding: var(--s3) 1rem;
    background: var(--akzent);
    background-image: repeating-linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.10) 0 12px,
        transparent 12px 24px
    );
    color: var(--auf-akzent);
    font-size: 1rem;
    line-height: 1.3;
    box-shadow: 0 2px 12px light-dark(rgba(22, 24, 26, 0.25), rgba(0, 0, 0, 0.5));
}
.vorschauleiste-marke {
    flex: none;
    padding: 0.2rem 0.7rem;
    border-radius: var(--r-pille);
    background: var(--auf-akzent);
    color: var(--akzent);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}
.vorschauleiste-text { min-width: 0; }
.vorschauleiste-text strong { font-weight: 700; }
.sprungmarke {
    position: absolute;
    left: -9999px;
    background: var(--primaer);
    color: var(--auf-primaer);
    padding: 0.6rem 1rem;
}
.sprungmarke:focus { left: 0.5rem; top: 0.5rem; z-index: 10; }
.kopf {
    background: var(--grund);
    background: color-mix(in srgb, var(--marke, #2f5d3a) 6%, var(--grund));
    color: var(--text);
    padding-block: var(--s6);
    border-bottom: 1px solid var(--linie);
    border-bottom-color: color-mix(in srgb, var(--marke, #2f5d3a) 30%, transparent);
}
@media (max-width: 40rem) {
    .kopf:not(.kopf-admin) { padding-bottom: var(--s7); }
}
.logo,
.wortmarke {
    display: block;
    width: auto;
}
.logo      { height: 2.9em; }
.wortmarke { height: 1.15em; }
.logo      { margin-block: 0; }
.wortmarke { margin-block: 0 -0.1em; }
@media (max-width: 22rem) {
    .kopf .marke { font-size: 1.08rem; }
}
.marke {
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--text);
    text-decoration: none;
    letter-spacing: -0.02em;
}
.marke-untertitel {
    margin: 0.15rem 0 0;
    font-size: 0.9rem;
    color: var(--text_leise);
    max-width: 42rem;
}
.menue {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s1);
    margin-top: var(--s3);
    padding-bottom: var(--s2);
}
.menue a {
    padding: 0.45rem 0.85rem;
    border-radius: var(--r-pille);
    color: var(--text_leise);
    text-decoration: none;
    font-size: 0.95rem;
}
.menue a:hover { background: var(--tint); color: var(--text); }
.menue a.aktiv {
    background: var(--tint);
    background: color-mix(in srgb, var(--primaer) 13%, transparent);
    color: var(--primaer);
    font-weight: 600;
}
.kopf:not(.kopf-admin) > .spalte {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    column-gap: var(--s4);
    row-gap: var(--s3);
}
.kopf:not(.kopf-admin) > .spalte > .marke-untertitel { margin: 0; }
.kopf:not(.kopf-admin) > .spalte > .menue { margin-top: 0; padding-bottom: 0; }
.kopf:not(.kopf-admin) > .spalte > .marke            { grid-area: 1 / 1; }
.kopf:not(.kopf-admin) > .spalte > .menueknopf       { grid-area: 1 / 3; justify-self: end; }
.kopf:not(.kopf-admin) > .spalte > .marke-untertitel { grid-area: 2 / 1 / auto / -1; }
.kopf:not(.kopf-admin) > .spalte > .menue            { grid-area: 3 / 1 / auto / -1; }
.menueknopf {
    display: none;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    border: 1px solid var(--rand);
    border-radius: var(--radius);
    background: var(--flaeche);
    color: var(--text);
    font: inherit;
    cursor: pointer;
}
.menueknopf .symbol { width: 1.5rem; height: 1.5rem; }
.menueknopf:hover { border-color: var(--primaer); color: var(--primaer); }
.menueknopf .symbol-zu { display: none; }
.menueknopf[aria-expanded="true"] .symbol-auf { display: none; }
.menueknopf[aria-expanded="true"] .symbol-zu  { display: inline-block; }
.mst-klapp .menueknopf { display: inline-flex; }
@media (max-width: 40rem) {
    .kopf.klappbar .menueknopf { display: inline-flex; }
    .kopf.klappbar .menue      { display: none; }
    .kopf.klappbar { position: relative; }
    .kopf.klappbar .menueknopf[aria-expanded="true"] + .menue {
        display: flex;
        flex-direction: column;
        gap: 0;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 60;
        margin: 0;
        padding: 0 1rem 0.5rem;
        background: var(--flaeche-deckend);
        border-top: 1px solid var(--linie);
        box-shadow: 0 18px 32px -12px rgb(0 0 0 / 0.35);
    }
    .kopf.klappbar .menueknopf[aria-expanded="true"] + .menue a {
        padding: 0.8rem 0.6rem;
        border-radius: 0;
        border-bottom: 1px solid var(--linie);
        font-size: 1rem;
    }
    .kopf.klappbar .menueknopf[aria-expanded="true"] + .menue a.aktiv {
        border-radius: 0;
    }
}
main { padding-block: 1.5rem 3rem; min-height: 55vh; }
h1 {
    font-size: 1.5rem;
    margin: 0 0 0.35rem;
    letter-spacing: -0.01em;
}
h1::before {
    content: "";
    display: block;
    width: 2.5rem;
    height: 3px;
    margin-bottom: 0.7rem;
    border-radius: 2px;
    background: var(--primaer);
}
h2 { font-size: 1.4rem; line-height: 1.2; margin: 2rem 0 0.75rem; }
a { color: var(--primaer); }
a:hover { color: var(--akzent); }
.leise { color: var(--text_leise); font-size: 0.9rem; }
.filterleiste {
    display: flow-root;
    min-height: 3rem;
    margin: 1.5rem 0 0.75rem;
}
input[type="search"] {
    min-width: 0;
    min-height: 3rem;
    padding: 0.55rem 0.85rem;
    border: 1px solid var(--rand);
    border-radius: var(--radius);
    background: var(--flaeche);
    color: var(--text);
    font: inherit;
    font-size: 1rem;
    -webkit-appearance: none;
    appearance: none;
}
input[type="search"]::placeholder { color: var(--text_leise); opacity: 1; }
input[type="search"]:focus-visible {
    outline: 2px solid var(--primaer);
    outline-offset: 1px;
    border-color: var(--primaer);
}
.suchzeile {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s2);
    align-items: stretch;
}
.suchfeld {
    display: flex;
    flex: 1 1 16rem;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    padding-left: 0.85rem;
    border: 1px solid var(--rand);
    border-radius: var(--radius);
    background: var(--flaeche);
    color: var(--text_leise);
}
.suchfeld:focus-within {
    outline: 2px solid var(--primaer);
    outline-offset: 1px;
    border-color: var(--primaer);
}
.suchfeld input[type="search"] {
    flex: 1 1 auto;
    min-width: 0;
    padding-left: 0;
    border: 0;
    background: none;
}
.suchfeld input[type="search"]:focus-visible { outline: none; }
.knopf-suchen { flex: none; }
.lupe {
    flex: none;
    margin-block: -0.15rem;
}
.klappfilter > summary {
    list-style: none;
    cursor: pointer;
}
.klappfilter > summary::-webkit-details-marker { display: none; }
.klappfilter > summary:focus-visible {
    outline: 2px solid var(--primaer);
    outline-offset: 2px;
}
.klapptitel {
    display: flex;
    align-items: center;
    gap: var(--s2);
    min-height: 1.8rem;
    font-weight: 600;
}
.klappstand {
    font-weight: 400;
    font-size: 0.95rem;
    color: var(--text_leise);
}
.klapptitel::after {
    content: "";
    flex: none;
    width: 1.35rem;
    height: 1.35rem;
    margin-left: auto;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.klappfilter[open] > summary .klapptitel::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 15l6-6 6 6'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 15l6-6 6 6'/%3E%3C/svg%3E");
}
.filterklappe {
    margin-top: 0;
    padding-top: 0;
    border: 0;
    background: none;
}
.filterklappe > summary {
    width: fit-content;
    padding: 0.5rem 1rem;
    min-height: 3rem;
    border: 1px solid var(--rand);
    border-radius: var(--r-pille);
    background: var(--flaeche);
}
.filterklappe > summary:hover { background: var(--tint); border-color: var(--primaer); }
.filterklappe-aktiv > summary {
    border-color: var(--primaer);
    background: color-mix(in srgb, var(--primaer) 12%, transparent);
    color: var(--primaer);
}
.filterzahl {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.35rem;
    border-radius: var(--r-pille);
    background: var(--primaer);
    color: var(--auf-primaer);
    font-size: 0.8rem;
    font-variant-numeric: tabular-nums;
}
.filterpanel {
    display: flex;
    flex-direction: column;
    gap: var(--s3);
    margin-top: var(--s3);
    padding: var(--s4);
    border: 1px solid var(--linie);
    border-radius: var(--r-gross);
    background: var(--flaeche);
}
.filterpanel .gewaehlt {
    margin: 0;
    padding-bottom: var(--s3);
    border-bottom: 1px solid var(--linie);
}
.filterkopf {
    margin: 0;
    font-size: 1.05rem;
}
.filtereinleitung {
    margin: 0;
    max-width: 40rem;
    font-size: 0.9rem;
    color: var(--text_leise);
}
.wahlklappe {
    border: 1px solid var(--rand-leise);
    border-radius: var(--radius);
    background: var(--grund);
}
.wahlklappe > summary {
    padding: 0.65rem 0.85rem;
    min-height: 3rem;
    border-radius: var(--radius);
}
.wahlklappe > summary:hover { background: var(--tint); }
.wahlklappe[open] > summary {
    border-bottom: 1px solid var(--linie);
    border-radius: var(--radius) var(--radius) 0 0;
}
.wahlklappe .wahlgruppe { padding: var(--s2) 0.5rem var(--s3); }
.filterfuss {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s2);
    margin: 0;
}
.filterklappe[open] {
    position: fixed;
    z-index: 60;
    margin: 0;
    padding: 0 var(--s4) var(--s4);
    background: var(--grund);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--rand) transparent;
}
.filterklappe[open] > summary {
    position: sticky;
    top: 0;
    z-index: 1;
    width: auto;
    margin-inline: calc(var(--s4) * -1);
    padding: var(--s4);
    border: 0;
    border-bottom: 1px solid var(--linie);
    border-radius: 0;
    background: var(--grund);
}
.filterklappe[open] > summary .klapptitel::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
}
.filterklappe[open] .filterpanel {
    margin-top: var(--s4);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
}
.filterklappe[open] .filterfuss {
    position: sticky;
    bottom: 0;
    margin-inline: calc(var(--s4) * -1);
    padding: var(--s3) var(--s4);
    border-top: 1px solid var(--linie);
    background: var(--grund);
}
.filterklappe[open] .knopf-anwenden {
    flex: 1 1 auto;
    background: var(--primaer);
    border-color: var(--primaer);
    color: var(--auf-primaer);
    font-weight: 600;
}
@media (max-width: 40rem) {
    .filterklappe > summary {
        width: auto;
        min-height: 3rem;
    }
    .filterklappe[open] { inset: 0; }
}
@media (min-width: 40.0625rem) {
    .filterklappe[open] {
        inset: 8vh 0 auto;
        top: 8dvh;
        width: min(40rem, calc(100% - 2 * var(--s4)));
        max-height: calc(92vh - var(--s6));
        max-height: calc(92dvh - var(--s6));
        margin-inline: auto;
        border: 1px solid var(--rand);
        border-radius: var(--r-gross);
        box-shadow:
            0 0 0 100vmax rgb(0 0 0 / 0.85),
            0 1.5rem 4rem rgb(0 0 0 / 0.5);
    }
}
.wahl-punkt {
    flex: none;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background: var(--kat, #5d6660);
    background: light-dark(var(--kat, #5d6660), var(--kat-dunkel, #898f8b));
}
.wahlgruppe {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}
.wahlgruppe-raster {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr));
    gap: 0.15rem 0.35rem;
}
.wahlgruppe-raster > legend,
.wahlgruppe-raster > .wahl-alle { grid-column: 1 / -1; }
.wahlgruppe-raster .wahl { gap: 0.45rem; padding-inline: 0.45rem; }
.wahlgruppe-raster .wahlzahl { padding-left: var(--s1); }
.wahlgruppe legend {
    padding: 0;
    margin-bottom: var(--s1);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text_leise);
}
.datumsbereich {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s2) var(--s3);
    padding: 0 0.5rem var(--s2) calc(0.5rem + 1.35rem + 0.6rem);
}
.datumsbereich label {
    display: flex;
    flex: 1 1 9rem;
    flex-direction: column;
    gap: var(--s1);
    min-width: 0;
    font-size: 0.85rem;
    color: var(--text_leise);
}
.datumsbereich input[type="date"] {
    min-height: 2.75rem;
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--rand);
    border-radius: var(--radius);
    background: var(--flaeche);
    color: var(--text);
    font: inherit;
    font-size: 1rem;
}
.datumsbereich input[type="date"]:focus-visible {
    outline: 2px solid var(--primaer);
    outline-offset: 1px;
}
.wahlgruppe .wahl {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 3rem;
    padding: 0.25rem 0.6rem;
    border: 1px solid transparent;
    border-radius: var(--radius);
    background: transparent;
    font-size: 1rem;
    line-height: 1.25;
    cursor: pointer;
    overflow-wrap: break-word;
}
.wahlgruppe .wahl:hover { background: var(--tint); }
.wahlgruppe .wahl-alle {
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--linie);
    border-radius: var(--radius) var(--radius) 0 0;
    margin-bottom: 0.15rem;
}
.wahl-haken {
    width: 1.35rem;
    height: 1.35rem;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    color: var(--primaer);
}
.wahlgruppe .wahl-alle.ist-alle {
    cursor: default;
    font-weight: 600;
}
.wahlgruppe .wahl-alle.ist-alle:hover { background: transparent; }
.wahlgruppe input[type="checkbox"],
.wahlgruppe input[type="radio"] {
    width: 1.35rem;
    height: 1.35rem;
    margin: 0;
    flex: none;
    accent-color: var(--primaer);
}
.wahlgruppe .wahl:has(input:checked) {
    border-color: var(--primaer);
    background: var(--tint);
    background: color-mix(in srgb, var(--primaer) 15%, transparent);
    color: var(--text);
    font-weight: 600;
}
.wahlgruppe .wahl:focus-within {
    outline: 2px solid var(--primaer);
    outline-offset: 2px;
}
.knopf-anwenden { min-height: 3rem; padding: 0.5rem 1.2rem; }
.gewaehlt {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin: 0 0 1.2rem;
    font-size: 0.9rem;
}
.marke-weg {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.6rem;
    border: 1px solid var(--primaer);
    border-radius: 999px;
    background: var(--flaeche);
    color: var(--primaer);
    text-decoration: none;
    font-size: 0.85rem;
}
.marke-weg:hover { background: var(--primaer); color: var(--auf-primaer); }
.alles-weg { margin-left: 0.3rem; }
.monatsleiste {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s2);
    margin: var(--s5) 0 var(--s2);
}
.monatsleiste a {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 2.75rem;
    padding: 0.4rem 0.9rem;
    border: 1px solid var(--rand);
    border-radius: var(--r-pille);
    color: var(--text);
    text-decoration: none;
    font-size: 1rem;
    font-weight: 600;
}
.monatsleiste a:hover {
    border-color: var(--primaer);
    color: var(--primaer);
}
.monatsleiste .anzahl {
    font-weight: 400;
    font-variant-numeric: tabular-nums;
    color: var(--text_leise);
}
.monatsmarke {
    margin: var(--s8) 0 0;
    padding-top: var(--s6);
    border-top: 2px solid var(--linie);
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.03em;
    color: var(--text);
    scroll-margin-top: var(--s5);
}
.monatsmarke:first-of-type {
    margin-top: var(--s5);
    padding-top: 0;
    border-top: 0;
}
.monatsmarke + .tag { margin-top: var(--s3); }
.tag {
    display: flex;
    align-items: baseline;
    gap: var(--s4);
    margin: 0 -1rem var(--s1);
    padding: var(--s5) 1rem var(--s3);
    background: #cfd9cf;
    background: color-mix(in srgb, var(--primaer) 24%, var(--grund));
    color: var(--text);
    border-bottom: 0;
    border-top: 0;
    font-size: 0.9375rem;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}
@media (min-width: 40rem) {
    .tag {
        margin-top: var(--s5);
        border-radius: var(--radius);
    }
    .tag-heute {
        margin-inline: -1rem;
        padding-inline: 1rem;
    }
}
.tag:first-of-type { margin-top: var(--s2); }
.tag .zahl {
    font-size: 2.5rem;
    font-weight: 300;
    line-height: 0.9;
    letter-spacing: -0.045em;
    font-variant-numeric: tabular-nums lining-nums;
    color: inherit;
}
.tag .wtag {
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: inherit;
}
.tag .datum {
    display: inline-flex;
    flex: 0 0 3.5rem;
    flex-direction: column;
    align-items: flex-start;
}
.tag .datum-block { display: contents; }
.tag .monat-kurz {
    margin-top: 0.3rem;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: inherit;
    opacity: 0.85;
}
.tag-leer {
    margin: 0;
    padding: var(--s3) 0 var(--s3) calc(3.5rem + var(--s4));
    color: var(--text_leise);
    font-size: 0.95rem;
}
.tag-heute {
    background: #ecd3c3;
    background: color-mix(in srgb, var(--akzent) 26%, var(--grund));
}
.tag-heute .zahl { font-weight: 700; }
@media (max-width: 22.5rem) {
    .tag { flex-wrap: wrap; row-gap: 0.35rem; }
}
.tag .heute {
    margin-left: auto;
    align-self: center;
    padding: 0.1875rem 0.5625rem;
    border-radius: var(--r-pille);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.015em;
    color: var(--auf-primaer);
    background: var(--primaer);
}
.tag-heute .heute {
    color: var(--auf-akzent);
    background: var(--warnton);
}
.kopf-zusatz {
    font-size: 0.72em;
    font-weight: 400;
    color: var(--text_leise);
    letter-spacing: 0;
}
.kopf-fussnote { margin: 0 0 var(--s5); }
.termine { list-style: none; margin: 0; padding: 0; }
.termin {
    --kat-farbe: var(--kat, #5d6660);
    --kat-farbe: light-dark(var(--kat, #5d6660), var(--kat-dunkel, #898f8b));
    position: relative;
    display: flex;
    gap: var(--s4);
    padding: var(--s4) 1rem;
    margin-inline: -1rem;
    border: 0;
    --zeitflaeche: calc(1rem + 3.5rem + var(--s4) / 2);
    background-color: transparent;
    background-image: linear-gradient(90deg,
        color-mix(in srgb, var(--kat-farbe) 14%, transparent) 0 var(--zeitflaeche),
        transparent var(--zeitflaeche));
    border-radius: 0 var(--r-zeile) var(--r-zeile) 0;
    transition: background-color 0.15s ease;
}
.termin + .termin::before {
    content: "";
    position: absolute;
    inset-inline: 1rem;
    top: 0;
    border-top: 1px solid var(--linie);
}
.termin > div:last-child { min-width: 0; flex: 1 1 auto; }
.termin-titel a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
@media (hover: hover) {
    .termin:hover { background-color: var(--tint); }
}
.termin:active { background-color: var(--tint); }
.termin:focus-within { outline: 2px solid var(--primaer); outline-offset: 2px; }
.termin .uhr { color: var(--kat-farbe); font-weight: 700; }
.termin-zeit {
    flex: 0 0 3.5rem;
    padding-top: 0.125rem;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.35;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.005em;
    color: var(--text);
}
.termin-zeit .uhr { font-size: inherit; font-weight: inherit; }
.termin-zeit .ganztags {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--text_leise);
    hyphens: auto;
}
.termin-kopf {
    display: flow-root;
    margin: 0 0 var(--s1);
}
.termin-kopf .termin-titel {
    margin: 0;
    overflow-wrap: normal;
    hyphens: auto;
    hyphenate-limit-chars: 20 5 5;
    text-wrap: pretty;
}
.termin-kopf .kategorie {
    float: right;
    margin: 0.1rem 0 0 var(--s3);
}
@media (max-width: 22.5rem) {
    .termin-kopf .termin-titel { hyphenate-limit-chars: 12 5 5; }
}
.termin-titel {
    margin: 0 0 var(--s1);
    font-size: 1.1875rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.012em;
    text-wrap: balance;
    overflow-wrap: break-word;
    hyphens: manual;
}
.termin-titel a {
    color: var(--text);
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}
.termin:hover .termin-titel a,
.termin-titel a:focus-visible {
    text-decoration-color: currentColor;
    text-decoration-thickness: 2px;
}
.termin-zeile {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.9375rem;
    line-height: 1.35;
    color: var(--text_leise);
}
.termin-zeile .punkt { color: var(--text_deko); }
.termin-zeile > span { min-width: 0; overflow-wrap: anywhere; }
.reihe {
    margin: var(--s1) 0 0;
    font-size: 0.875rem;
    line-height: 1.35;
    color: var(--text_leise);
    font-variant-numeric: tabular-nums;
}
.termine .termin.termin-wiederholung {
    padding-block: var(--s2);
    min-width: 0;
}
.termin-kurz {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.35;
}
.kurz-reihe { white-space: nowrap; color: var(--text_leise); }
.termin-kurz-ort {
    margin: 0.125rem 0 0;
    font-size: 0.875rem;
    line-height: 1.35;
    color: var(--text_leise);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.termin-kurz a {
    color: var(--text);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}
.termin-kurz a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.termin:hover .termin-kurz a,
.termin-kurz a:focus-visible {
    text-decoration-color: currentColor;
    text-decoration-thickness: 2px;
}
.terminkarte path.kartenform { stroke: var(--primaer); fill: var(--primaer); }
.teilen-knopf { cursor: pointer; }
.teilen-text { white-space: nowrap; }
.fuss-orte { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.5rem; margin: 0 0 0.8rem; }
.fuss-orte .punkt { color: var(--text_deko); }
.weitere-termine { font-variant-numeric: tabular-nums; }
.weitere-termine .punkt { color: var(--text_deko); }
main > :is(.filterleiste, .kopf-fussnote) + :is(.monatsleiste, .monatsmarke, .tag) {
    margin-top: clamp(3rem, 2.25rem + 2.5vw, 4.5rem);
}
.kategorie {
    display: inline-block;
    padding: 0.125rem 0.5rem;
    border-radius: var(--r-pille);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.015em;
    --kat-farbe: var(--kat, #5d6660);
    --kat-farbe: light-dark(var(--kat, #5d6660), var(--kat-dunkel, #898f8b));
    color: var(--kat-farbe);
    color: light-dark(var(--kat-farbe), color-mix(in srgb, var(--kat-farbe) 85%, #fff));
    background: transparent;
    background: color-mix(in srgb, var(--kat-farbe) 14%, transparent);
    border: 1px solid var(--linie);
    border-color: color-mix(in srgb, var(--kat-farbe) 26%, transparent);
    vertical-align: 0.05em;
}
.hinweis {
    padding: var(--s5) var(--s6);
    border-radius: var(--r-gross);
    border: 1px solid var(--linie);
    background: var(--flaeche);
    margin: 1rem 0;
}
.hinweis-warnung {
    background: color-mix(in srgb, var(--akzent) 14%, transparent);
    border-color: color-mix(in srgb, var(--akzent) 40%, transparent);
}
.schutzhinweis {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border-radius: var(--r-gross);
    border: 1px solid color-mix(in srgb, var(--primaer) 40%, transparent);
    background: color-mix(in srgb, var(--primaer) 14%, transparent);
}
.schutzhinweis .symbol { flex: none; width: 1.3rem; height: 1.3rem; margin-top: 0.1rem; color: var(--primaer); }
.regeln {
    margin: 0 0 1.25rem;
    border: 1px solid var(--rand);
    border-radius: var(--r-gross);
}
.regeln > summary {
    padding: 0.6rem 1rem;
    font-size: inherit;
    font-weight: 700;
    cursor: pointer;
}
.regeln > summary:focus-visible { outline: 2px solid var(--primaer); outline-offset: 2px; }
.regeln[open] > summary { border-bottom: 1px solid var(--rand); }
.regeln > p, .regeln > ul { margin: 0.75rem 1rem; }
.regeln > ul { padding-left: 1.25rem; }
.melden-einleitung { margin-bottom: 1.25rem; }
.meldeweg { margin: 0 0 0.5rem; padding: 0; border: 0; min-width: 0; }
.meldeweg > legend {
    padding: 0;
    margin-bottom: 0.6rem;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--text);
}
.meldeweg-kacheln {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(6.5rem, 1fr));
    gap: 0.6rem;
    margin-bottom: 0.9rem;
}
.formular .meldekachel,
.meldekachel {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.15rem;
    margin: 0;
    padding: 0.95rem 0.5rem 0.85rem;
    border: 1px solid var(--rand);
    border-radius: var(--r-gross);
    background: var(--flaeche);
    color: var(--text);
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}
.meldekachel:hover { border-color: var(--primaer); }
.meldekachel:focus-visible,
.meldekachel:has(input:focus-visible) { outline: 2px solid var(--primaer); outline-offset: 2px; }
.meldekachel .meldekachel-symbol {
    width: 2.25rem;
    height: 2.25rem;
    margin-bottom: 0.35rem;
    color: var(--primaer);
}
.meldekachel-titel { font-size: 0.95rem; font-weight: 700; line-height: 1.25; }
.meldekachel-text { font-size: 0.8rem; font-weight: 400; line-height: 1.3; color: var(--text_leise); }
.meldekachel.ist-gewaehlt {
    border-color: var(--primaer);
    background: color-mix(in srgb, var(--primaer) 14%, transparent);
}
@media (hover: hover) and (pointer: fine) {
    .meldekachel-kamera { display: none; }
}
.feld-versteckt {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}
.fotovorschau {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 0.9rem;
}
.fotovorschau[hidden] { display: none; }
.fotokamera-zeile { display: flex; align-items: center; gap: 0.6rem; margin: 0.6rem 0 0; }
.fotovorschau img {
    display: block;
    max-width: 10rem;
    max-height: 10rem;
    border: 1px solid var(--rand);
    border-radius: var(--radius);
}
.feldpaar.feldpaar-immer { grid-template-columns: 1fr 1fr; }
.mehrangaben {
    margin: 0 0 1rem;
    padding: 0;
    border: 1px solid var(--rand);
    border-radius: var(--r-gross);
}
.mehrangaben > summary {
    padding: 0.6rem 1rem;
    font-size: 0.95rem;
    font-weight: 600;
}
.mehrangaben[open] > summary { margin: 0; border-bottom: 1px solid var(--rand); }
.mehrangaben > .feldpaar,
.mehrangaben > label { margin-left: 1rem; margin-right: 1rem; }
.mehrangaben > .feldpaar { margin-top: 0.9rem; }
.melden-absenden { width: 100%; font-size: 1rem; }
@media (min-width: 34rem) {
    .melden-absenden { width: auto; min-width: 14rem; }
}
.hinweis-info {
    background: color-mix(in srgb, var(--primaer) 14%, transparent);
    border-color: color-mix(in srgb, var(--primaer) 40%, transparent);
}
.rueckmeldung {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    margin: 0;
}
.rueckmeldung .symbol {
    color: var(--primaer);
    align-self: center;
}
.hinweis-marke-zeile { margin: 0 0 0.35rem; }
.hinweis-marke {
    font-size: 0.76em;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-right: 0.15em;
}
.hinweis-warnung .hinweis-marke { color: var(--warnton); }
.hinweis-info    .hinweis-marke { color: var(--infoton); }
.hinweis-leer {
    text-align: center;
    color: var(--text_leise);
    border-style: dashed;
    padding-block: 2rem;
}
.blaettern {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--s3);
    margin: var(--s6) 0 var(--s2);
    padding-top: var(--s5);
    border-top: 1px solid var(--linie);
}
.blattzahlen {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.blattzahl {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    min-height: 2.5rem;
    padding: 0 0.4rem;
    border: 1px solid var(--rand-leise);
    border-radius: var(--radius);
    background: var(--flaeche);
    color: var(--text);
    font-size: 0.95rem;
    font-variant-numeric: tabular-nums;
    text-decoration: none;
}
.blattzahl:hover,
.blattzahl:focus-visible { border-color: var(--primaer); color: var(--primaer); }
.blattzahl-hier {
    background: var(--primaer);
    border-color: var(--primaer);
    color: var(--auf-primaer);
    font-weight: 600;
}
.blattzahl-hier:hover { color: var(--auf-primaer); }
.blattluecke {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4rem;
    min-height: 2.5rem;
    color: var(--text_leise);
}
.blaetterpfeil { gap: 0.4rem; min-height: 2.5rem; padding: 0.3rem 0.9rem; }
.blaetterpfeil-leer { display: inline-block; width: 6.5rem; }
@media (max-width: 30rem) {
    .blaetterpfeil-leer { display: none; }
    .blaetterpfeil { padding: 0.3rem 0.7rem; }
}
.blaetterstand {
    margin: 0 0 var(--s4);
    text-align: center;
    font-size: 0.9rem;
    color: var(--text_leise);
    font-variant-numeric: tabular-nums;
}
.blaetterstand strong { color: var(--text); }
.punkt::before { content: "·"; content: "·" / ""; }
.pfeil-zurueck::before { content: "←"; content: "←" / ""; }
.monat-kurz [data-b]::before { content: attr(data-b); content: attr(data-b) / ""; }
.nur-vorlesen {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
.proseite {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    margin: 0 0 var(--s6);
    font-size: 0.9rem;
    color: var(--text_leise);
}
.proseite > a,
.proseite > strong {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding-inline: 0.4rem;
    border-radius: var(--radius);
}
.proseite > a:hover { background: var(--tint); }
.proseite strong { color: var(--text); }
.kartenschleuse {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--s2);
    min-height: 16rem;
    margin-bottom: var(--s5);
    padding: var(--s5);
    border: 2px dashed var(--rand-leise);
    border-radius: var(--r-gross);
    background: var(--flaeche);
    text-align: center;
}
.kartenschleuse p { margin: 0; max-width: 32rem; }
.kartenschleuse-text { color: var(--text); }
.kartenschleuse-knopf { margin-top: var(--s1); }
.kartenwiderruf {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--s2);
    margin: calc(var(--s4) * -1) 0 var(--s5);
}
.kartenwiderruf-knopf { flex: none; }
.wahlzahl {
    margin-left: auto;
    padding-left: var(--s3);
    color: var(--text_leise);
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
}
.wahlzahl-leer { color: var(--text_deko); }
.wahlgruppe .wahl-leer {
    color: var(--text_leise);
    cursor: not-allowed;
    opacity: 0.6;
}
.wahlgruppe .wahl-leer:hover { background: transparent; }
.kategorie-zeichen {
    width: 0.95em;
    height: 0.95em;
    margin-right: 0.35em;
    vertical-align: -0.14em;
}
.einleitung {
    max-width: var(--lesebreite);
    font-size: 1.3rem;
    line-height: 1.4;
    color: var(--text);
}
.anliegen {
    max-width: var(--lesebreite);
    padding-bottom: var(--s4);
    border-bottom: 1px solid var(--linie);
}
.anliegen:last-of-type { border-bottom: 0; }
.anliegen h2 { margin-top: var(--s5); }
.fuss {
    border-top: 1px solid var(--linie);
    background: var(--flaeche);
    background: color-mix(in srgb, var(--marke, #2f5d3a) 6%, var(--grund));
    padding-block: 1.5rem;
    font-size: 0.9rem;
    color: var(--text_leise);
}
.fuss p { margin: 0 0 0.6rem; max-width: var(--lesebreite); }
.fuss-menue {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.4rem;
    margin-bottom: 0.6rem;
}
.fuss-menue a { display: inline-block; padding: 0.4rem 0; }
@media (min-width: 40rem) {
    h1 { font-size: 1.8rem; }
    .marke { font-size: 1.6rem; }
    main { padding-block: 2rem 4rem; }
}
.sicherungsblock {
    margin: 0 0 var(--s5);
    padding: var(--s5);
    border: 1px solid var(--linie);
    border-radius: var(--r-gross);
    background: var(--flaeche);
}
.sicherungsblock h2 { margin-top: 0; }
.sicherungsblock p  { margin-bottom: var(--s4); }
.sicherungsblock p:last-child { margin-bottom: 0; }
.sicherungsblock-stark {
    border-color: var(--primaer);
    border-width: 2px;
}
.adminmenue {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s2);
    margin-top: var(--s3);
    padding-bottom: var(--s2);
}
.menue-klapp {
    position: relative;
}
.menue-klapp > summary {
    list-style: none;
    cursor: pointer;
    min-height: 2.75rem;
    padding: 0.45rem 0.85rem;
    border: 1px solid var(--rand);
    border-radius: var(--r-pille);
    font-size: 0.95rem;
}
.menue-klapp > summary::-webkit-details-marker { display: none; }
.menue-klapp > summary:hover { background: var(--tint); }
.menue-klapp > summary:focus-visible {
    outline: 2px solid var(--primaer);
    outline-offset: 2px;
}
.menue-klapp[open] > summary {
    border-color: var(--primaer);
    color: var(--primaer);
}
.menue-liste {
    position: absolute;
    z-index: 20;
    top: calc(100% + 0.35rem);
    left: 0;
    min-width: 13rem;
    display: flex;
    flex-direction: column;
    padding: var(--s1);
    border: 1px solid var(--rand);
    border-radius: var(--r-gross);
    background: var(--flaeche-deckend);
    box-shadow: 0 8px 28px light-dark(rgba(22, 24, 26, 0.18), rgba(0, 0, 0, 0.6));
}
.menue-liste a {
    min-height: 2.75rem;
    display: flex;
    align-items: center;
    padding: 0.45rem 0.7rem;
    border-radius: var(--radius);
    color: var(--text);
    text-decoration: none;
    font-size: 1rem;
}
.menue-liste a:hover { background: var(--tint); }
.menue-liste a.aktiv {
    background: var(--tint);
    background: color-mix(in srgb, var(--primaer) 13%, transparent);
    color: var(--primaer);
    font-weight: 600;
}
.menue-klapp .zaehler {
    margin-left: 0.45rem;
    background: var(--tint);
    color: var(--text);
}
.menue-klapp[open] > summary .zaehler {
    background: color-mix(in srgb, var(--primaer) 20%, transparent);
    color: var(--primaer);
}
.menue-liste .zaehler { margin-left: auto; }
@media (max-width: 30rem) {
    .adminmenue { flex-direction: column; align-items: stretch; }
    .menue-klapp { width: 100%; }
    .menue-liste { width: 100%; min-width: 0; }
}
.kopf-admin {
    background: #eceae4;
    background: light-dark(#eceae4, rgba(255, 255, 255, 0.06));
    border-bottom-color: var(--rand);
}
.menue .zaehler {
    display: inline-block;
    min-width: 1.5em;
    padding: 0 0.35em;
    border-radius: 999px;
    background: var(--tint);
    color: var(--text);
    font-size: 0.8rem;
    font-weight: 700;
    text-align: center;
}
.menue a.aktiv .zaehler { background: var(--primaer); color: var(--auf-primaer); }
.admin main { max-width: 60rem; }
kbd {
    display: inline-block;
    padding: 0.05rem 0.35rem;
    border: 1px solid var(--linie);
    border-bottom-width: 2px;
    border-radius: 4px;
    background: var(--flaeche);
    font: inherit;
    font-size: 0.85em;
}
.modliste { list-style: none; margin: 0; padding: 0; }
.modzeile {
    background: var(--flaeche);
    border: 1px solid var(--linie);
    border-left: 4px solid var(--linie);
    border-radius: var(--radius);
    padding: 0.9rem 1.1rem;
    margin-bottom: 0.7rem;
}
.modzeile:focus,
.modzeile:focus-visible {
    outline: none;
    border-left-color: var(--primaer);
    box-shadow: 0 0 0 2px rgba(47, 93, 58, 0.25);
}
.modkopf {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.2rem;
}
.modzeit { font-size: 0.9rem; color: var(--text_leise); }
.modtitel { font-size: 1.1rem; margin: 0 0 0.2rem; }
.modzeile p { margin: 0 0 0.3rem; }
.modquellen { font-size: 0.85rem; }
.warnzeile {
    color: var(--akzent);
    font-size: 0.9rem;
    font-weight: 500;
}
.modknoepfe {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.6rem;
}
.inline { display: inline; margin: 0; }
.knopf {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    padding: 0.5rem 1.1rem;
    border: 1px solid var(--rand);
    border-radius: var(--radius);
    background: var(--flaeche);
    color: var(--text);
    font: inherit;
    font-size: 0.9rem;
    text-decoration: none;
    cursor: pointer;
}
.knopf:hover { border-color: var(--primaer); color: var(--primaer); }
.knopf-freigeben {
    background: var(--primaer);
    border-color: var(--primaer);
    color: var(--auf-primaer);
    font-weight: 600;
}
.knopf-freigeben:hover { background: color-mix(in srgb, var(--primaer) 84%, var(--text)); color: var(--auf-primaer); }
.knopf-ablehnen:hover { border-color: var(--akzent); color: var(--akzent); }
.formular { max-width: 44rem; }
.formular label {
    display: block;
    margin-bottom: 0.9rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text_leise);
}
.formular input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),
.formular select,
.formular textarea,
.anschriftsuche input[type="text"] {
    display: block;
    width: 100%;
    min-height: 3rem;
    margin-top: 0.3rem;
    padding: 0.6rem 0.7rem;
    border: 1px solid var(--rand);
    border-radius: var(--radius);
    background: var(--flaeche);
    color: var(--text);
    font-family: inherit;
    font-size: 1rem;
    font-weight: 400;
}
.formular textarea { resize: vertical; line-height: 1.5; }
.formular input:focus,
.formular select:focus,
.formular textarea:focus,
.anschriftsuche input[type="text"]:focus {
    outline: 2px solid var(--primaer);
    outline-offset: 1px;
    border-color: var(--primaer);
}
.formular .ankreuz {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 400;
    color: var(--text);
}
.formular .ankreuz input { width: auto; margin: 0; }
.feldpaar { display: grid; gap: 0 1rem; }
@media (min-width: 34rem) {
    .feldpaar { grid-template-columns: 1fr 1fr; }
}
.chip {
    display: inline-block;
    padding: 0.35rem 0.8rem;
    border: 1px solid var(--linie);
    border-radius: 999px;
    background: var(--flaeche);
    color: var(--text);
    text-decoration: none;
    font-size: 0.9rem;
    white-space: nowrap;
}
.chip:hover { border-color: var(--primaer); color: var(--primaer); }
.chip.aktiv {
    background: var(--primaer);
    border-color: var(--primaer);
    color: var(--auf-primaer);
    font-weight: 600;
}
.filter { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1rem 0 1.5rem; }
.filter-gruppe { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.tabellenrahmen { overflow-x: auto; }
.tabelle {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    background: var(--flaeche);
}
.tabelle th,
.tabelle td {
    padding: 0.55rem 0.7rem;
    border-bottom: 1px solid var(--linie);
    text-align: left;
    vertical-align: top;
}
.tabelle th {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text_leise);
}
.quelle-still td { opacity: 0.6; }
.belege { list-style: none; margin: 0; padding: 0; }
.belege li {
    padding: 0.6rem 0.9rem;
    border: 1px solid var(--linie);
    border-radius: var(--radius);
    background: var(--flaeche);
    margin-bottom: 0.4rem;
    font-size: 0.9rem;
}
.eckdaten {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.35rem 1.2rem;
    margin: 1.2rem 0 1.5rem;
    padding: 1rem 1.2rem;
    background: var(--flaeche);
    border: 1px solid var(--linie);
    border-radius: var(--radius);
}
.eckdaten dt {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text_leise);
    padding-top: 0.15rem;
}
.symbol {
    width: 1em;
    height: 1em;
    flex: none;
    vertical-align: -0.125em;
}
.eckdaten dt .symbol { width: 1.15em; height: 1.15em; }
.knopf .symbol { margin-right: 0.45em; }
.eckdaten dd { margin: 0; }
.beschreibung { max-width: var(--lesebreite); }
.beschreibung p { margin: 0 0 0.9rem; }
.quellenkasten {
    margin-top: 2rem;
    padding: 1rem 1.2rem;
    background: var(--flaeche);
    border: 1px solid var(--linie);
    border-color: color-mix(in srgb, var(--primaer) 22%, transparent);
    background: var(--flaeche);
    background: color-mix(in srgb, var(--primaer) 6%, transparent);
    border-radius: var(--r-gross);
    font-size: 0.9rem;
}
.quellenkasten h2 {
    margin: 0 0 0.5rem;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text_leise);
}
.quellenkasten ul { margin: 0 0 0.7rem; padding-left: 1.1rem; }
.quellenkasten li { margin-bottom: 0.25rem; }
.quellenkasten p { margin: 0; }
@media (max-width: 33rem) {
    .eckdaten { grid-template-columns: 1fr; gap: 0 0; }
    .eckdaten dt { padding-top: 0.7rem; }
}
.zaehler-dunkel {
    background: var(--linie);
    color: var(--text_leise);
    font-size: 0.75rem;
    vertical-align: 0.15em;
}
.vorschlag {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
    margin: 0 0 0.4rem;
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--linie);
    border-radius: var(--radius);
    background: var(--grund);
}
.vorschlag .knopf { flex: 0 0 auto; }
details {
    margin-top: 0.5rem;
    border-top: 1px solid var(--linie);
    padding-top: 0.5rem;
}
details summary {
    cursor: pointer;
    font-size: 0.9rem;
    padding: 0.2rem 0;
}
details[open] summary { margin-bottom: 0.6rem; font-weight: 600; }
.formular-eng { max-width: 30rem; }
.formular-eng label { margin-bottom: 0.6rem; }
.formular-eng p { margin: 0 0 0.7rem; }
.karte {
    height: 60vh;
    min-height: 22rem;
    border: 1px solid var(--linie);
    border-radius: var(--radius);
    margin-bottom: 1rem;
    overflow: hidden;
    z-index: 0;
}
.zurueck-liste {
    margin: 0 0 var(--s5);
}
.zurueck-liste a {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 2.5rem;
    padding: 0.3rem 0.85rem 0.3rem 0.7rem;
    border-radius: var(--r-pille);
    border: 1px solid color-mix(in srgb, var(--primaer) 65%, transparent);
    background: color-mix(in srgb, var(--primaer) 10%, transparent);
    color: var(--primaer);
    font-weight: 600;
    text-decoration: none;
}
.zurueck-liste a:hover,
.zurueck-liste a:focus-visible {
    background: color-mix(in srgb, var(--primaer) 18%, transparent);
    text-decoration: underline;
}
.zurueck-liste a span[aria-hidden] {
    transition: transform 0.15s ease;
}
.zurueck-liste a:hover span[aria-hidden] { transform: translateX(-0.15rem); }
@media (prefers-reduced-motion: reduce) {
    .zurueck-liste a span[aria-hidden] { transition: none; }
    .zurueck-liste a:hover span[aria-hidden] { transform: none; }
}
.terminkarte.karte-gross,
.karte.karte-gross {
    position: fixed !important;
    inset: 0;
    z-index: 1000;
    height: auto;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
}
html.karte-offen { overflow: hidden; }
.karte-schliessen {
    position: absolute;
    top: max(0.75rem, env(safe-area-inset-top));
    right: max(0.75rem, env(safe-area-inset-right));
    z-index: 1001;
    width: 3rem;
    height: 3rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--flaeche-deckend);
    color: var(--text);
    box-shadow: 0 4px 14px rgb(0 0 0 / 0.35);
    cursor: pointer;
}
.karte-schliessen::before {
    content: "";
    position: absolute;
    inset: 0.85rem;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center / contain no-repeat;
}
.karte-schliessen:focus-visible { outline: 3px solid var(--primaer); outline-offset: 2px; }
.karte-vergroessern { margin-right: var(--s2); }
.terminkarte {
    height: 16rem;
    margin: 0 0 var(--s5);
    border: 1px solid var(--linie);
    border-radius: var(--radius);
    overflow: hidden;
    z-index: 0;
}
.kartenpunkt { background: none; border: 0; }
.kartenpunkt span {
    --kat-farbe: var(--kat, #5d6660);
    --kat-farbe: light-dark(var(--kat, #5d6660), var(--kat-dunkel, var(--kat, #898f8b)));
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    border: 2.5px solid #ffffff;
    border-radius: 50%;
    background: var(--kat-farbe);
    color: #ffffff;
    font: 700 0.78rem/1 var(--schrift);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
    transition: transform 0.15s;
}
.kartenpunkt-zahl span { background: var(--primaer); color: var(--auf-primaer); }
.kartenpunkt:hover span,
.kartenpunkt:focus-visible span { transform: scale(1.15); }
.kartenpunkt:focus-visible { outline: none; }
.kartenpunkt:focus-visible span { outline: 3px solid var(--akzent); outline-offset: 2px; }
.kartencluster { background: none; border: 0; }
.kartencluster span {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    border-radius: 50%;
    background: var(--primaer);
    color: var(--auf-primaer);
    font: 800 0.9rem/1 var(--schrift);
    box-shadow:
        0 0 0 5px color-mix(in srgb, var(--primaer) 28%, transparent),
        0 2px 8px rgba(0, 0, 0, 0.3);
    transition: transform 0.15s;
}
.kartencluster-mittel span { font-size: 1rem; }
.kartencluster-gross span { font-size: 1.1rem; background: var(--akzent); color: var(--auf-akzent);
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--akzent) 28%, transparent), 0 2px 8px rgba(0, 0, 0, 0.3); }
.kartencluster:hover span { transform: scale(1.08); }
.kartenpopup-huelle .leaflet-popup-content-wrapper {
    padding: 0;
    border-radius: var(--radius, 12px);
    background: var(--flaeche-deckend, #ffffff);
    color: var(--text);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
}
.kartenpopup-huelle .leaflet-popup-tip { background: var(--flaeche-deckend, #ffffff); }
.kartenpopup-huelle .leaflet-popup-content { margin: 0; width: auto !important; min-width: 15rem; }
.leaflet-container .kartenpopup-huelle a.leaflet-popup-close-button {
    top: 0.6rem;
    right: 0.6rem;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: color-mix(in srgb, var(--text) 10%, transparent);
    color: var(--text);
    font: 400 1.5rem/1 var(--schrift);
    text-decoration: none;
    transition: background-color 0.15s, color 0.15s;
}
.leaflet-container .kartenpopup-huelle a.leaflet-popup-close-button:hover,
.leaflet-container .kartenpopup-huelle a.leaflet-popup-close-button:focus-visible {
    background: var(--primaer);
    color: var(--auf-primaer);
}
.leaflet-container .kartenpopup-huelle a.leaflet-popup-close-button span { display: block; transform: translateY(-1px); }
.kartenpopup { font-size: 0.88rem; line-height: 1.35; }
.kartenpopup-kopf { padding: 0.85rem 3rem 0.6rem 1rem; border-bottom: 1px solid var(--linie); }
.kartenpopup-ort { display: block; font-size: 1rem; line-height: 1.25; }
.kartenpopup-anschrift { display: block; margin-top: 0.15rem; font-size: 0.8rem; opacity: 0.7; }
.kartenpopup-liste { list-style: none; margin: 0; padding: 0.35rem 0; max-height: 16.5rem; overflow-y: auto; }
.kartenpopup-liste li {
    --kat-farbe: var(--kat, var(--primaer));
    --kat-farbe: light-dark(var(--kat, var(--primaer)), var(--kat-dunkel, var(--kat, var(--primaer))));
}
.kartenpopup-termin {
    display: flex;
    gap: 0.7rem;
    align-items: center;
    padding: 0.4rem 1rem;
    color: inherit !important;
    text-decoration: none;
}
.kartenpopup-termin:hover,
.kartenpopup-termin:focus-visible { background: color-mix(in srgb, var(--kat-farbe) 10%, transparent); }
.kartenpopup-datum {
    display: grid;
    place-items: center;
    flex: none;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 10px;
    background: color-mix(in srgb, var(--kat-farbe) 16%, transparent);
    color: var(--kat-farbe);
    line-height: 1;
}
.kartenpopup-datum b { font-size: 1.05rem; }
.kartenpopup-datum small { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; }
.kartenpopup-text { display: grid; gap: 0.1rem; min-width: 0; }
.kartenpopup-titel { font-weight: 650; overflow-wrap: anywhere; }
.kartenpopup-termin:hover .kartenpopup-titel { text-decoration: underline; }
.kartenpopup-text small { font-size: 0.78rem; opacity: 0.72; }
.kartenpopup-fuss {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 1rem 0.7rem;
    border-top: 1px solid var(--linie);
    font-size: 0.8rem;
    opacity: 0.9;
}
.kartenpopup-route { font-weight: 700; color: var(--primaer) !important; }
@media (max-width: 30rem) {
    .kartenpopup-liste { max-height: 11.5rem; }
    .kartenpopup-huelle .leaflet-popup-content { min-width: 13.5rem; }
}
.leaflet-container { font-family: var(--schrift); font-size: 0.9rem; }
.verborgen {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}
.honigtopf {
    position: absolute;
    left: -9999px;
    top: -9999px;
    height: 0;
    overflow: hidden;
}
.pflicht { color: var(--akzent); font-weight: 400; }
.formular h2 {
    font-size: 1.2rem;
    margin: 1.8rem 0 0.3rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--linie);
}
.anmeldeseite { max-width: 26rem; }
.anmeldeseite h2 { margin-top: var(--s8); }
.ortmarke {
    display: inline-block;
    padding: 0.05rem 0.4rem;
    border: 1px solid var(--linie);
    border-radius: var(--r-pille);
    font-size: 0.78em;
    font-weight: 600;
    white-space: nowrap;
    color: var(--text_leise);
    text-decoration: none;
}
a.ortmarke:hover,
a.ortmarke:focus-visible {
    border-color: var(--primaer);
    color: var(--primaer);
}
.ortmarke-frei,
.ortmarke-fehlt {
    border-color: transparent;
    color: var(--warnton);
}
.ortmarke-frei  { background: color-mix(in srgb, var(--akzent) 20%, transparent); }
.ortmarke-fehlt { background: color-mix(in srgb, var(--akzent) 24%, transparent); }
.suchergebnis:not(:empty) {
    margin-top: var(--s3);
}
.ortbearbeiten {
    margin-top: var(--s4);
}
.bearbeitenzeile > td {
    border-top: 0;
    padding-top: 0;
    padding-left: calc(var(--s4) + 3px);
    box-shadow: inset 3px 0 0 var(--linie);
}
.bearbeitenzeile .formular {
    margin: var(--s2) 0 var(--s4);
}
.kartenformular {
    width: 100%;
    max-width: none;
}
.ortskarte {
    width: 100%;
    height: 20rem;
    margin: var(--s3) 0;
    border: 1px solid var(--rand);
    border-radius: var(--radius);
    overflow: hidden;
}
@media (prefers-color-scheme: dark) {
    :root:not([data-farbschema="hell"]) .ortskarte .leaflet-tile-pane {
        filter: brightness(0.82) contrast(1.05);
    }
}
:root[data-farbschema="dunkel"] .ortskarte .leaflet-tile-pane {
    filter: brightness(0.82) contrast(1.05);
}
.vorschlagsmarke {
    background: var(--flaeche-deckend);
    border: 1px solid var(--rand);
    border-radius: var(--r-pille);
    box-shadow: none;
    padding: 0.1rem 0.5rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text_leise);
    white-space: nowrap;
}
.vorschlagsmarke::before { display: none; }
.ortsknoepfe {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--s2);
}
.anschriftsuche {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s2);
    align-items: center;
    margin: var(--s3) 0 0;
}
.anschriftsuche input[type="text"] {
    flex: 1 1 16rem;
    width: auto;
    min-width: 12rem;
    margin: 0;
}
details.kartenwahl > summary {
    list-style: none;
    cursor: pointer;
    min-height: 2.75rem;
    display: flex;
    align-items: center;
    font-weight: 600;
    color: var(--primaer);
}
details.kartenwahl > summary::-webkit-details-marker { display: none; }
details.kartenwahl > summary::before { content: "▸ "; }
details.kartenwahl[open] > summary::before { content: "▾ "; }
.rangliste { list-style: none; margin: var(--s5) 0; padding: 0; }
.rangliste > li {
    display: grid;
    grid-template-columns: minmax(7rem, 14rem) 1fr auto;
    align-items: center;
    gap: var(--s3);
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--linie);
}
.rang-name {
    overflow-wrap: anywhere;
    font-size: 0.95rem;
}
.rang-balken {
    display: block;
    height: 0.6rem;
    border-radius: var(--r-pille);
    background: var(--tint);
    overflow: hidden;
}
.rang-balken > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--primaer);
    min-width: 2px;
}
.rang-zahl {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    font-size: 0.95rem;
}
.rangliste-verlauf > li { grid-template-columns: 6.5rem 1fr auto; }
.rangliste-verlauf .rang-name { font-variant-numeric: tabular-nums; font-size: 0.9rem; }
@media (max-width: 34rem) {
    .rangliste > li,
    .rangliste-verlauf > li { grid-template-columns: 1fr auto; }
    .rang-balken { grid-column: 1 / -1; grid-row: 2; }
}
.vergleich {
    display: grid;
    grid-template-columns: minmax(6rem, auto) 1fr 1fr;
    gap: 1px;
    margin: var(--s5) 0;
    border: 1px solid var(--linie);
    border-radius: var(--r-gross);
    overflow: hidden;
    background: var(--linie);
}
.vergleich > div {
    background: var(--grund);
    padding: var(--s3) var(--s4);
    font-size: 0.95rem;
    line-height: 1.35;
    overflow-wrap: break-word;
}
.vergleich-kopf {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.vergleich-feld {
    color: var(--text_leise);
    font-size: 0.875rem;
}
.vergleich-wert.anders {
    background: color-mix(in srgb, var(--akzent) 10%, var(--grund));
    font-weight: 600;
}
.vergleich-knoepfe {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s2);
    margin: var(--s5) 0;
}
@media (max-width: 34rem) {
    .vergleich { grid-template-columns: 1fr; }
    .vergleich-kopf:first-child { display: none; }
    .vergleich-feld {
        padding-bottom: 0;
        background: var(--grund);
        font-weight: 600;
    }
}
.vorschlag-breit { justify-content: space-between; align-items: center; }
.vorschlag-breit > div:first-child { flex: 1 1 16rem; }
.rohtext {
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 18rem;
    overflow: auto;
    background: var(--grund);
    border: 1px solid var(--linie);
    border-radius: var(--radius);
    padding: 0.7rem 0.9rem;
    font-size: 0.85rem;
    line-height: 1.5;
}
.abo-hinweis {
    display: flex;
    justify-content: center;
    margin: var(--s7) 0 var(--s5);
}
.anleitung { max-width: var(--lesebreite); margin: 0 0 var(--s5); }
.anleitung dt { font-weight: 600; margin-top: var(--s4); }
.anleitung dd { margin: 0.2rem 0 0; color: var(--text_leise); }
.abo {
    margin: var(--s8) 0 var(--s5);
    padding: var(--s5);
    border: 1px solid var(--linie);
    border-radius: var(--r-gross);
    background: var(--flaeche);
}
.abo p { max-width: var(--lesebreite); }
.abo p:last-child { margin-bottom: 0; }
.abo-inhalt {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--s2) var(--s4);
    align-items: baseline;
    margin: 0 0 var(--s5);
    padding: var(--s4);
    border: 1px solid var(--linie);
    border-radius: var(--radius);
    background: var(--grund);
}
.abo-inhalt dt {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text_leise);
}
.abo-inhalt dd {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    min-width: 0;
}
.abo-inhalt dd.abo-umfang { display: block; }
.abo-pille {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.6rem;
    border: 1px solid var(--rand-leise);
    border-radius: var(--r-pille);
    background: var(--flaeche);
    font-size: 0.85rem;
    font-weight: 600;
}
.abo-alle { color: var(--text_leise); font-style: italic; }
.abo-kopf {
    display: flex;
    align-items: center;
    gap: var(--s2);
    margin: 0 0 var(--s3);
    font-size: 1.05rem;
}
.abo-adresse {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--s3);
    margin: 0 0 var(--s3);
}
.abo-adresse code {
    flex: 1 1 18rem;
    min-width: 0;
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--rand-leise);
    border-radius: var(--radius);
    background: var(--grund);
    font-size: 0.85rem;
    overflow-wrap: anywhere;
}
.abo-kopieren { flex: none; }
.feldhinweis {
    margin: -0.7rem 0 0.9rem;
    font-size: 0.85rem;
}
details.anlegen > summary { list-style: none; cursor: pointer; }
details.anlegen > summary::-webkit-details-marker { display: none; }
details.anlegen[open] { margin-bottom: 1.5rem; }
.modfilter {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 0.6rem 1rem;
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--linie);
    border-radius: var(--radius);
    background: var(--flaeche);
}
.modfilter label {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text_leise);
}
.modfilter select {
    min-height: 2.75rem;
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--rand);
    border-radius: var(--radius);
    background: var(--flaeche);
    color: var(--text);
    font-family: inherit;
    font-size: 1rem;
    font-weight: 400;
}
.stapelleiste {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0.75rem;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--rand);
    border-radius: var(--radius);
    background: var(--grund);
}
.wahl-klein { min-height: 2.5rem; padding: 0 0.4rem; border: 0; margin: 0; }
.wahl-klein input { width: 1.3rem; height: 1.3rem; accent-color: var(--primaer); }
.knopf-klein { min-height: 2.25rem; padding: 0.25rem 0.7rem; font-size: 0.9rem; }
.knopf-still {
    border-color: var(--rand-leise);
    color: var(--text_leise);
    font-weight: 400;
}
.knopf-still:hover { border-color: var(--rand); color: var(--text); }
.klapp-knopf {
    display: inline-block;
    min-height: 2.75rem;
    padding: 0.55rem 1rem;
    border: 1px solid var(--rand);
    border-radius: var(--r-pille);
    font-weight: 600;
}
details[open] > summary .klapp-knopf { border-color: var(--primaer); color: var(--primaer); }
.unterformular {
    margin-top: var(--s3);
    padding-top: var(--s3);
    border-top: 1px solid var(--linie);
}
.unterformular > summary {
    list-style: none;
    cursor: pointer;
    min-height: 2.75rem;
    padding: 0.5rem 0;
    color: var(--text_leise);
    font-size: 0.95rem;
}
.unterformular > summary::-webkit-details-marker { display: none; }
.unterformular > summary::before { content: "▸ "; }
.unterformular[open] > summary::before { content: "▾ "; }
.unterformular > summary:hover { color: var(--text); }
.modzeile:focus,
.modzeile:focus-visible {
    outline: 3px solid var(--primaer);
    outline-offset: 2px;
    border-left-color: var(--primaer);
    box-shadow: none;
}
.marke-untertitel a { color: var(--primaer); text-decoration: underline; }
.ortsliste { list-style: none; padding: 0; }
.ortsliste > li {
    padding: 0.9rem 1.1rem;
    border: 1px solid var(--linie);
    border-radius: var(--radius);
    background: var(--flaeche);
    margin-bottom: 0.6rem;
}
.ortsgemeinde {
    margin: var(--s7) 0 var(--s3);
    padding-bottom: var(--s2);
    border-bottom: 2px solid var(--primaer);
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}
h2 + .ortsgemeinde { margin-top: var(--s4); }
.ortsliste h4 { margin: 0; font-size: 1.25rem; font-weight: 750; line-height: 1.3; }
.ortsliste h4 + .leise { margin: 0.1rem 0 0; }
.ortsliste > li > .leise:last-child { margin: 0.4rem 0 0; font-size: 0.85rem; }
.ortstermine {
    list-style: none;
    margin: var(--s3) 0 0;
    padding: 0;
}
.ortstermine > li {
    display: flex;
    flex-wrap: wrap;
    gap: 0.1rem 0.7rem;
    align-items: baseline;
    padding: 0.3rem 0;
    line-height: 1.35;
}
.ortstermine > li + li { border-top: 1px solid var(--linie); }
.ortstermin-zeit {
    flex: 0 1 8.5rem;
    max-width: 100%;
    color: var(--text_leise);
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
}
.ortstermine a {
    flex: 1 1 12rem;
    color: var(--text);
    font-size: 1rem;
    text-decoration: none;
}
.ortstermine a:hover,
.ortstermine a:focus-visible {
    color: var(--primaer);
    text-decoration: underline;
}
.termin-aktionen { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.2rem 0; }
:root[data-farbschema="hell"]   { color-scheme: light; }
:root[data-farbschema="dunkel"] { color-scheme: dark; }
.kopf:not(.kopf-admin) > .spalte > .schema-schalter { grid-area: 1 / 2; }
@media (max-width: 40rem) {
    .kopf:not(.kopf-admin) > .spalte > .marke-untertitel { grid-area: 2 / 1 / auto / 2; }
    .kopf:not(.kopf-admin) > .spalte > .schema-schalter {
        grid-area: 2 / 2 / auto / -1;
        justify-self: end;
        align-self: start;
    }
}
.schema-schalter {
    position: relative;
    flex: none;
    width: 3.6rem;
    height: 2rem;
    padding: 0;
    border: 1px solid var(--rand);
    border-radius: 999px;
    background: var(--flaeche);
    cursor: pointer;
}
.schema-schalter:focus-visible { outline: 2px solid var(--primaer); outline-offset: 2px; }
.schema-knauf {
    position: absolute;
    top: 0.15rem;
    left: 0.15rem;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: var(--primaer);
    transition: translate 0.25s ease;
}
.schema-knauf::before {
    content: "";
    position: absolute;
    inset: 0.3rem;
    background: var(--auf-primaer, #fff);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4.2' fill='black'/%3E%3Cpath d='M12 2v2.5M12 19.5V22M2 12h2.5M19.5 12H22M4.9 4.9l1.8 1.8M17.3 17.3l1.8 1.8M4.9 19.1l1.8-1.8M17.3 6.7l1.8-1.8'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4.2' fill='black'/%3E%3Cpath d='M12 2v2.5M12 19.5V22M2 12h2.5M19.5 12H22M4.9 4.9l1.8 1.8M17.3 17.3l1.8 1.8M4.9 19.1l1.8-1.8M17.3 6.7l1.8-1.8'/%3E%3C/svg%3E") center / contain no-repeat;
}
.schema-schalter[aria-pressed="true"] .schema-knauf { translate: 1.6rem 0; }
.schema-schalter[aria-pressed="true"] .schema-knauf::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 14.5A8.5 8.5 0 0 1 9.5 4a8.5 8.5 0 1 0 10.5 10.5z' fill='black'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 14.5A8.5 8.5 0 0 1 9.5 4a8.5 8.5 0 1 0 10.5 10.5z' fill='black'/%3E%3C/svg%3E");
}
@media (prefers-reduced-motion: reduce) { .schema-knauf { transition: none; } }
