@font-face {
  font-family: "SV Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/schriftarten/inter-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Anmeldungen und öffentliche Veranstaltungsseiten */
.oeffentliche-seite { color: var(--text); background: #f4f7f4; }
.public-site { width: min(100%, 1240px); margin: 0 auto; padding: 0 clamp(18px, 4vw, 52px) 56px; }
.public-site--schmal { width: min(100%, 980px); }
.public-site--form { width: min(100%, 1120px); }
.public-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 88px; }
.public-brand { display: inline-flex; align-items: center; gap: 12px; font-weight: 800; }
.public-brand > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; color: var(--gruen-tief); background: var(--gelb); font-weight: 900; }
.public-hero { position: relative; isolation: isolate; min-height: 480px; display: flex; align-items: flex-end; overflow: hidden; padding: clamp(30px, 7vw, 76px); border-radius: 30px; color: white; background: linear-gradient(135deg, var(--gruen-tief), var(--gruen)); box-shadow: var(--schatten); }
.public-hero--mit-bild::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(9,39,14,.94), rgba(9,39,14,.42)); }
.public-hero__bild { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.public-hero::after { content: ""; position: absolute; z-index: -1; right: -90px; top: -90px; width: 330px; height: 330px; border: 54px solid rgba(246,210,31,.13); border-radius: 50%; }
.public-hero__inhalt { max-width: 760px; }
.public-hero .ueberzeile { color: #d8f2da; }
.public-hero h1 { margin: 0; font-size: clamp(2.7rem, 8vw, 6.5rem); line-height: .94; letter-spacing: -.055em; }
.public-slogan { margin: 20px 0 0; color: rgba(255,255,255,.78); font-size: clamp(1.05rem, 2vw, 1.35rem); }
.public-hero__meta { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0; }
.public-hero__meta span, .public-status { display: inline-flex; padding: 9px 13px; border: 1px solid rgba(255,255,255,.19); border-radius: 999px; background: rgba(0,0,0,.18); font-size: .86rem; font-weight: 700; }
.public-hero .hauptknopf { width: auto; padding: 0 24px; color: var(--gruen-tief); background: var(--gelb); box-shadow: none; }
.public-section { margin-top: 28px; padding: clamp(24px, 5vw, 46px); border: 1px solid var(--linie); border-radius: 24px; background: white; }
.public-section__kopf { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 24px; }
.public-section h1, .public-section h2, .public-section h3 { margin-top: 0; }
.public-section__kopf h2 { margin: 0; font-size: clamp(1.7rem, 4vw, 2.5rem); letter-spacing: -.035em; }
.public-richtext { overflow-wrap: anywhere; }
.public-richtext > :first-child { margin-top: 0; }
.public-richtext > :last-child { margin-bottom: 0; }
.public-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.public-race-card { overflow: hidden; border: 1px solid var(--linie); border-radius: 18px; background: #fbfdfb; }
.public-race-card > img { display: block; width: 100%; aspect-ratio: 16/8; object-fit: cover; }
.public-race-card > div { padding: 22px; }
.public-race-card h3 { margin: 0 0 8px; }
.public-race-card p { margin: 0; }
.public-race-card small { display: block; margin-top: 8px; color: var(--text-sanft); }
.public-race-card .public-richtext { margin-top: 18px; }
.public-sponsor-group + .public-sponsor-group { margin-top: 26px; }
.public-sponsor-group > div { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.public-sponsor-group article { display: grid; place-items: center; min-width: 150px; min-height: 90px; padding: 16px; border: 1px solid var(--linie); border-radius: 15px; background: #fff; }
.public-sponsor-group img { display: block; max-width: 170px; max-height: 70px; object-fit: contain; }
.public-faq { display: grid; gap: 10px; }
.public-faq details { border: 1px solid var(--linie); border-radius: 14px; background: #fbfdfb; }
.public-faq summary { padding: 17px 19px; cursor: pointer; font-weight: 780; }
.public-faq details > div { padding: 0 19px 19px; color: #465249; }
.public-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 30px 4px 0; color: var(--text-sanft); font-size: .84rem; }
.public-footer nav { display: flex; flex-wrap: wrap; gap: 18px; }
.public-footer a:hover { color: var(--gruen); text-decoration: underline; }
.public-ad-placeholder { position: fixed; right: 12px; top: 50%; display: grid; place-items: center; width: 70px; height: 220px; border: 1px dashed #bcc8be; border-radius: 13px; color: #8c978e; background: rgba(255,255,255,.78); transform: translateY(-50%); pointer-events: none; }
.public-ad-placeholder span { writing-mode: vertical-rl; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.public-confirmation { display: flex; align-items: center; gap: 20px; margin: 18px 0 26px; padding: clamp(24px, 5vw, 40px); border-radius: 22px; color: white; background: linear-gradient(130deg, var(--gruen-tief), var(--gruen)); }
.public-confirmation > span { display: grid; place-items: center; flex: 0 0 60px; height: 60px; border-radius: 50%; color: var(--gruen-tief); background: var(--gelb); font-size: 1.8rem; font-weight: 900; }
.public-confirmation .ueberzeile { color: #d7eed9; }
.public-confirmation h1 { margin: 0; font-size: clamp(1.8rem, 5vw, 3rem); line-height: 1.04; }
.public-confirmation p:last-child { margin: 8px 0 0; color: rgba(255,255,255,.75); }
.public-error { margin: 8vh auto; max-width: 760px; padding: clamp(30px, 7vw, 64px); border: 1px solid var(--linie); border-radius: 24px; text-align: center; background: white; box-shadow: var(--schatten); }
.public-error > span { display: grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 20px; border-radius: 50%; color: white; background: var(--fehler); font-size: 1.5rem; font-weight: 900; }
.public-error h1, .public-error h2 { margin: 0 0 12px; }

.nebenknopf { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 17px; border: 1px solid #bcd3be; border-radius: 10px; color: var(--gruen-dunkel); background: #f4faf5; cursor: pointer; font-weight: 750; }
.nebenknopf:hover { border-color: var(--gruen); background: var(--gruen-hell); }
.nebenknopf--gefahr { border-color: #efc0bc; color: var(--fehler); background: #fff7f6; }
.detailraster { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; margin-bottom: 20px; }
.definitionsliste { margin: 0; }
.definitionsliste > div { display: grid; grid-template-columns: minmax(110px,.7fr) minmax(0,1.3fr); gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--linie); }
.definitionsliste > div:last-child { border-bottom: 0; }
.definitionsliste dt { color: var(--text-sanft); font-size: .82rem; }
.definitionsliste dd { margin: 0; overflow-wrap: anywhere; }
.kartenliste, .dynamische-liste { display: grid; gap: 14px; }
.dynamische-karte { padding: 20px; border: 1px solid var(--linie); border-radius: 15px; background: #fbfdfb; }
.dynamische-karte > header { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.dynamische-karte > header strong, .dynamische-karte > header small { display: block; }
.dynamische-karte > header small { margin-top: 3px; color: var(--text-sanft); }
.schlichte-liste { display: grid; gap: 8px; margin: 12px 0 0; padding: 12px 0 0; border-top: 1px solid var(--linie); list-style: none; }
.schlichte-liste li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; }
.schlichte-liste small { flex-basis: 100%; color: var(--text-sanft); }
.filterleiste { display: flex; align-items: end; gap: 12px; margin: 0 0 18px; padding: 16px; border: 1px solid var(--linie); border-radius: 14px; background: white; }
.filterleiste label { min-width: min(100%, 320px); margin: 0; }
.filterleiste .hauptknopf { width: auto; }
.tabellenunterzeile { display: block; margin-top: 3px; color: var(--text-sanft); font-weight: 500; }
.statusmarke--anmeldung-bestaetigt, .statusmarke--anmeldung-bezahlt { color: #176426; background: #e7f6e9; }
.statusmarke--anmeldung-zahlung_ausstehend { color: #755c00; background: #fff6c8; }
.statusmarke--anmeldung-storniert { color: #912018; background: #ffebe9; }

.registration-heading h1 { margin: 0; font-size: clamp(1.8rem, 4vw, 2.8rem); }
.registration-wizard { position: relative; }
.registration-progress { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; margin: 0 0 20px; padding: 0; list-style: none; }
.registration-progress li { position: relative; display: grid; justify-items: center; gap: 6px; color: #879188; text-align: center; }
.registration-progress li::before { content: ""; position: absolute; z-index: -1; top: 18px; left: -55%; width: 110%; height: 2px; background: var(--linie); }
.registration-progress li:first-child::before { display: none; }
.registration-progress span { display: grid; place-items: center; width: 36px; height: 36px; border: 2px solid var(--linie); border-radius: 50%; background: white; font-weight: 850; }
.registration-progress small { font-size: .67rem; font-weight: 700; }
.registration-progress .ist-aktiv span { border-color: var(--gruen); color: white; background: var(--gruen); }
.registration-progress .ist-erledigt span { border-color: var(--gelb); color: var(--gruen-tief); background: var(--gelb); }
.registration-step[hidden] { display: none !important; }
.registration-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.registration-actions .hauptknopf { width: auto; padding-inline: 22px; }
.registration-runner { margin-bottom: 16px; padding: clamp(17px,3vw,24px); border: 1px solid var(--linie); border-radius: 17px; background: #fbfdfb; }
.registration-runner > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.registration-runner > header h3 { margin: 0; }
.registration-runner > header .ueberzeile { margin-bottom: 3px; }
[data-runner-add][hidden], [data-runner-remove][hidden] { display: none !important; }
.schalterzeile.registration-copy-contact { margin: 0 0 18px; padding: 13px 15px; }
.schalterzeile.registration-consent { margin-top: 30px; }
.registration-age-message { color: var(--text-sanft); font-size: .73rem; font-weight: 600; line-height: 1.45; }
.registration-age-message:empty { display: none; }
.registration-age-message.ist-fehler { color: var(--fehler); font-weight: 750; }
.registration-duplicate-warning { display: flex; align-items: flex-start; gap: 12px; margin: 16px 0 2px; padding: 14px 16px; border: 2px solid #d97706; border-radius: 12px; color: #713f12; background: #fff7d6; box-shadow: 0 4px 14px rgba(146, 82, 10, .1); }
.registration-duplicate-warning[hidden] { display: none; }
.registration-duplicate-warning > span { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; color: white; background: #b45309; font-weight: 900; }
.registration-duplicate-warning strong { display: block; color: #7c2d12; }
.registration-duplicate-warning p { margin: 3px 0 0; font-size: .86rem; line-height: 1.45; }
.registration-runner [data-runner-birthdate][aria-invalid="true"],
[data-public-change-birthdate][aria-invalid="true"] { border-color: var(--fehler); box-shadow: 0 0 0 3px rgba(171, 48, 38, .1); }
.registration-runner__articles { display: none; }
.registration-runner-list--articles .registration-runner > .formularraster,
.registration-runner-list--articles .registration-copy-contact { display: none; }
.registration-runner-list--articles .registration-runner > header .symbolknopf { display: none; }
.registration-runner-list--articles .registration-runner__articles { display: block; }
.registration-runner-list--articles .registration-runner { background: white; }
.registration-runner__articles h4 { margin: 0 0 13px; }
.registration-article { border: 1px solid var(--linie); border-radius: 13px; background: #fbfdfb; }
.registration-article + .registration-article { margin-top: 10px; }
.registration-article__head { display: flex; align-items: center; gap: 14px; padding: 14px; }
.registration-article__choice { display: flex; flex: 1 1 260px; align-items: center; gap: 12px; margin: 0; cursor: pointer; }
.registration-article__choice input { flex: 0 0 auto; width: 19px; height: 19px; min-height: 19px; accent-color: var(--gruen); }
.registration-article__choice span { display: grid; flex: 1; gap: 2px; }
.registration-article__price { flex: 0 0 auto; color: var(--gruen-dunkel); font-size: 1.1rem; font-weight: 900; white-space: nowrap; }
.registration-article__quantity { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; margin: 0; font-size: .75rem; }
.registration-article__quantity[hidden] { display: none; }
.registration-article__quantity input { width: 76px; min-height: 40px; padding: 7px 9px; text-align: center; }
.registration-article__availability { margin: -3px 14px 14px; padding: 9px 11px; border-radius: 9px; color: #8d281e; background: #fff0ed; font-size: .78rem; font-weight: 750; }
.registration-article__availability[hidden] { display: none; }
.registration-article__details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 14px; border-top: 1px solid var(--linie); }
.registration-article__details[hidden] { display: none; }
.registration-total { display: grid; justify-items: end; margin-top: 20px; padding: 20px; border-radius: 15px; color: white; background: var(--gruen-tief); }
.registration-total strong { color: var(--gelb); font-size: 2rem; }
.registration-total small { color: rgba(255,255,255,.67); }
.registration-review dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 0 0 18px; }
.registration-review dl > div { padding: 13px; border: 1px solid var(--linie); border-radius: 11px; }
.registration-review dt { color: var(--text-sanft); font-size: .72rem; }
.registration-review dd { margin: 3px 0 0; font-weight: 750; }
.registration-review p { margin: 8px 0; padding: 10px 12px; border-radius: 9px; background: var(--gruen-hell); }
.registration-review__runner { margin-top: 12px; padding: 16px; border: 1px solid var(--linie); border-radius: 13px; background: #fbfdfb; }
.registration-review__runner h3, .registration-review__runner h4 { margin: 0 0 10px; }
.registration-review__runner h4 { margin-top: 14px; font-size: .9rem; }
.registration-review__runner dl { margin-bottom: 0; }

@media (max-width: 1450px) {
  .public-ad-placeholder { display: none; }
}
@media (max-width: 800px) {
  .public-site { padding-inline: 14px; }
  .public-header { min-height: 72px; }
  .public-header .hauptknopf { min-height: 42px; padding-inline: 13px; font-size: .78rem; }
  .public-hero { min-height: 410px; padding: 28px 22px; border-radius: 21px; }
  .public-card-grid, .detailraster { grid-template-columns: 1fr; }
  .public-footer { align-items: flex-start; flex-direction: column; }
  .registration-progress { overflow-x: auto; grid-template-columns: repeat(6,92px); justify-content: start; padding-bottom: 8px; }
  .registration-article__head { align-items: flex-start; flex-wrap: wrap; }
  .registration-article__choice { flex-basis: calc(100% - 100px); }
  .registration-article__quantity { width: 100%; justify-content: flex-end; }
  .registration-article__details, .registration-review dl { grid-template-columns: 1fr; }
  .registration-actions { align-items: stretch; flex-direction: column-reverse; }
  .registration-actions .hauptknopf, .registration-actions .nebenknopf { width: 100%; }
  .filterleiste { align-items: stretch; flex-direction: column; }
  .filterleiste label { min-width: 0; width: 100%; }
  .definitionsliste > div { grid-template-columns: 1fr; gap: 3px; }
  .public-confirmation { align-items: flex-start; flex-direction: column; }
}
@font-face {
  font-family: "SV Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/schriftarten/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "SV Montserrat";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/schriftarten/montserrat-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "SV Montserrat";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/schriftarten/montserrat-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "SV Oswald";
  font-style: normal;
  font-weight: 200 700;
  font-display: swap;
  src: url("/assets/schriftarten/oswald-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "SV Oswald";
  font-style: normal;
  font-weight: 200 700;
  font-display: swap;
  src: url("/assets/schriftarten/oswald-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --gruen: #27852c;
  --gruen-dunkel: #173f1b;
  --gruen-tief: #102f14;
  --gruen-hell: #eaf6eb;
  --gelb: #f6d21f;
  --gelb-hell: #fff8cf;
  --text: #17201a;
  --text-sanft: #657068;
  --linie: #dce5de;
  --flaeche: #ffffff;
  --hintergrund: #f4f7f4;
  --fehler: #b42318;
  --fehler-hell: #fff0ee;
  --schatten: 0 24px 60px rgba(21, 55, 26, 0.13);
  --radius: 18px;
  --tafel-uhr-position: 4%;
  --tafel-uhr-groesse: 6.24cqw;
  --tafel-schriftart: "SV Inter", Arial, sans-serif;
  --tafel-logo-position: 16%;
  --tafel-logo-max-breite: 22%;
  --tafel-logo-max-hoehe: 40%;
  --tafel-kuerzel-groesse: 5cqw;
  --tafel-logo-rand: 6%;
  --tafel-ergebnis-position: 44%;
  --tafel-ergebnis-groesse: 10.5cqw;
  --tafel-name-position: 74%;
  --tafel-name-groesse: 2.2cqw;
  --tafel-name-max-breite: 48%;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--hintergrund);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body { min-height: 100vh; margin: 0; font-size: 16px; line-height: 1.5; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
svg { display: block; fill: currentColor; }

.anmeldung { min-height: 100vh; display: grid; grid-template-columns: minmax(340px, 0.9fr) minmax(520px, 1.1fr); }
.anmeldung__buehne {
  position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 100vh; padding: 42px clamp(32px, 5vw, 76px);
  color: white; background:
    radial-gradient(circle at 94% 10%, rgba(246, 210, 31, .2), transparent 28%),
    linear-gradient(145deg, var(--gruen-tief), var(--gruen) 74%, var(--gruen));
}
.anmeldung__buehne::before { content: ""; position: absolute; width: 430px; height: 430px; right: -250px; bottom: 6%; border: 72px solid rgba(255,255,255,.055); border-radius: 50%; }
.anmeldung__buehne::after { content: ""; position: absolute; width: 240px; height: 240px; left: -150px; top: 28%; border: 44px solid rgba(246,210,31,.08); border-radius: 50%; }
.marke { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 13px; width: max-content; }
.marke strong { display: block; font-size: 1.05rem; letter-spacing: .01em; }
.marke small { display: block; margin-top: -1px; color: rgba(255,255,255,.68); font-size: .75rem; letter-spacing: .04em; }
.markenzeichen { display: grid; place-items: center; width: 46px; height: 46px; overflow: hidden; border-radius: 13px; background: var(--gelb); color: var(--gruen-tief); box-shadow: 0 10px 30px rgba(0,0,0,.15); transform: rotate(-4deg); }
.markenzeichen span { font-weight: 900; letter-spacing: -.08em; transform: rotate(4deg); }
.markenzeichen--bild { overflow: visible; padding: 0; border-radius: 0; background: transparent; box-shadow: none; transform: none; }
.markenzeichen--bild img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.anmeldung__botschaft { position: relative; z-index: 1; width: min(100%, 580px); margin: auto 0; padding: 64px 0; }
.signal { display: inline-flex; align-items: center; gap: 9px; font-size: .8rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; color: #e2f6e3; }
.signal i { width: 9px; height: 9px; border: 2px solid rgba(255,255,255,.45); border-radius: 50%; background: var(--gelb); box-shadow: 0 0 0 5px rgba(246,210,31,.1); }
.anmeldung__botschaft h1 { max-width: 610px; margin: 24px 0 18px; font-size: clamp(2.6rem, 5vw, 4.9rem); line-height: .98; letter-spacing: -.055em; }
.anmeldung__botschaft > p { max-width: 500px; margin: 0; color: rgba(255,255,255,.74); font-size: 1.08rem; }
.spielstandkarte { margin-top: clamp(46px, 7vh, 82px); padding: 20px 22px; border: 1px solid rgba(255,255,255,.15); border-radius: 20px; background: rgba(10,39,14,.42); box-shadow: 0 24px 70px rgba(0,0,0,.2); backdrop-filter: blur(12px); }
.spielstandkarte__kopf, .spielstandkarte__fuss { display: flex; justify-content: space-between; align-items: center; gap: 16px; color: rgba(255,255,255,.64); font-size: .72rem; letter-spacing: .12em; }
.livepunkt { display: flex; align-items: center; gap: 7px; color: #fff3a6; }
.livepunkt::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--gelb); }
.spielstandkarte__anzeige { display: grid; grid-template-columns: 1fr auto auto auto 1fr; align-items: center; gap: clamp(10px, 2vw, 22px); padding: 22px 0; text-align: center; }
.spielstandkarte__anzeige span { font-size: .77rem; font-weight: 700; letter-spacing: .13em; }
.spielstandkarte__anzeige strong { display: grid; place-items: center; width: 64px; height: 66px; border-radius: 12px; color: var(--gruen-tief); background: var(--gelb); font-size: 2.2rem; line-height: 1; }
.spielstandkarte__anzeige b { color: rgba(255,255,255,.5); font-size: 1.5rem; }
.spielstandkarte__fuss { padding-top: 15px; border-top: 1px solid rgba(255,255,255,.11); letter-spacing: 0; }
.spielstandkarte__fuss strong { color: white; font-size: .78rem; font-weight: 650; }
.laeuferkarte { position: relative; margin: clamp(42px, 6vh, 68px) 0 0; overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: 22px; background: rgba(10,39,14,.42); box-shadow: 0 24px 70px rgba(0,0,0,.22); }
.laeuferkarte img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center; }

.anmeldung__formularbereich { display: grid; place-items: center; min-height: 100vh; padding: 48px clamp(24px, 7vw, 110px); background: #fbfcfb; }
.anmeldekarte { width: min(100%, 470px); }
.mobilmarke { display: none; }
.mobilmarke--bild { overflow: visible; padding: 0; border-radius: 0; background: transparent; }
.mobilmarke--bild img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.ueberzeile { margin: 0 0 8px; color: var(--gruen); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.anmeldekarte__kopf h2 { margin: 0; font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.1; letter-spacing: -.035em; }
.anmeldekarte__kopf > p:last-child { margin: 13px 0 0; color: var(--text-sanft); }
.anmeldetabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 34px 0 28px; padding: 5px; border-radius: 13px; background: #edf2ee; }
.anmeldetabs button { min-height: 44px; border: 0; border-radius: 9px; color: var(--text-sanft); background: transparent; cursor: pointer; font-size: .9rem; font-weight: 700; }
.anmeldetabs button[aria-selected="true"] { color: var(--gruen-dunkel); background: white; box-shadow: 0 3px 10px rgba(27,57,31,.08); }
.anmeldebereich[hidden] { display: none; }
label { display: block; margin: 0 0 8px; color: #2c392f; font-size: .87rem; font-weight: 700; }
.eingabe-mit-symbol { position: relative; margin-bottom: 20px; }
.eingabe-mit-symbol > svg { position: absolute; top: 50%; left: 16px; width: 19px; height: 19px; color: #87938a; transform: translateY(-50%); pointer-events: none; }
input, select, textarea { width: 100%; min-height: 50px; border: 1px solid #ced9d0; border-radius: 11px; outline: none; color: var(--text); background: white; transition: border-color .16s, box-shadow .16s; }
input:not([type="radio"]):not([type="checkbox"]):not([type="color"]), select { padding: 0 14px; }
textarea { min-height: 110px; padding: 12px 14px; resize: vertical; }
.eingabe-mit-symbol input { padding: 0 80px 0 47px !important; }
select { appearance: none; padding-right: 42px; background-image: linear-gradient(45deg, transparent 50%, #718077 50%), linear-gradient(135deg, #718077 50%, transparent 50%); background-position: calc(100% - 19px) calc(50% - 2px), calc(100% - 14px) calc(50% - 2px); background-size: 5px 5px; background-repeat: no-repeat; }
.formularfeld input:disabled { color: #7d8980; background: #f2f5f2; }
.eingabe-mit-symbol input { padding: 0 80px 0 47px; }
input:focus, select:focus, textarea:focus { border-color: var(--gruen); box-shadow: 0 0 0 4px rgba(39,133,44,.11); }
.passwortschalter { position: absolute; top: 50%; right: 13px; padding: 7px; border: 0; color: var(--gruen); background: transparent; cursor: pointer; transform: translateY(-50%); font-size: .78rem; font-weight: 750; }
.hauptknopf, .sekundaerknopf { display: inline-flex; align-items: center; justify-content: center; gap: 12px; width: 100%; min-height: 52px; border: 0; border-radius: 11px; cursor: pointer; font-weight: 780; transition: transform .15s, box-shadow .15s, background .15s; }
.hauptknopf { color: white; background: var(--gruen); box-shadow: 0 10px 24px rgba(39,133,44,.18); }
.hauptknopf span { font-size: 1.2rem; transition: transform .15s; }
.hauptknopf svg, .sekundaerknopf svg { width: 19px; height: 19px; }
.hauptknopf--auto, .sekundaerknopf--auto { width: auto; padding: 0 20px; }
.hauptknopf:hover { background: var(--gruen-dunkel); box-shadow: 0 13px 26px rgba(39,133,44,.25); transform: translateY(-1px); }
.hauptknopf:hover span { transform: translateX(3px); }
.sekundaerknopf { min-height: 46px; border: 1px solid #bad5bd; color: var(--gruen); background: var(--gruen-hell); }
.sekundaerknopf:hover { background: #deefdf; }
.code-anfordern { margin-bottom: 22px; }
.trenner { display: flex; align-items: center; gap: 12px; margin: 20px 0; color: #89938b; font-size: .77rem; }
.trenner::before, .trenner::after { content: ""; flex: 1; height: 1px; background: var(--linie); }
.codeeingabe { margin-bottom: 20px; padding: 0 16px; text-align: center; font-size: 1.5rem; font-weight: 750; letter-spacing: .42em; font-variant-numeric: tabular-nums; }
.sicherheitshinweis { display: flex; align-items: flex-start; gap: 9px; margin: 26px 0 0; color: #78837a; font-size: .78rem; line-height: 1.45; }
.sicherheitshinweis svg { flex: 0 0 auto; width: 17px; height: 17px; color: var(--gruen); }
.meldung { display: flex; align-items: flex-start; gap: 10px; margin: 22px 0; padding: 13px 15px; border: 1px solid; border-radius: 11px; font-size: .86rem; }
.meldung > span { display: grid; place-items: center; flex: 0 0 auto; width: 20px; height: 20px; border-radius: 50%; color: white; font-size: .72rem; font-weight: 900; }
.meldung--fehler { border-color: #ffd0cb; color: #7f1d16; background: var(--fehler-hell); }
.meldung--fehler > span { background: var(--fehler); }
.meldung--erfolg { border-color: #bfdfc2; color: var(--gruen-dunkel); background: var(--gruen-hell); }
.meldung--erfolg > span { background: var(--gruen); }

.app-seite { background: var(--hintergrund); }
.app-rahmen { display: grid; grid-template-columns: 276px minmax(0, 1fr); min-height: 100vh; }
.seitenleiste { position: sticky; top: 0; display: flex; flex-direction: column; height: 100vh; padding: 26px 18px 18px; border-right: 1px solid #dce7de; background: #fff; z-index: 30; }
.marke--seitenleiste { margin: 0 10px 38px; }
.marke--seitenleiste .markenzeichen { width: 42px; height: 42px; box-shadow: none; }
.marke--seitenleiste strong { color: var(--gruen-tief); }
.marke--seitenleiste small { color: #7b867d; }
.navigation { display: grid; gap: 5px; }
.navigation__gruppe { margin: 0 12px 9px; color: #99a29b; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.navigation__gruppe--abstand { margin-top: 24px; }
.navigation__eintrag { position: relative; display: flex; align-items: center; gap: 13px; min-height: 46px; padding: 0 12px; border-radius: 10px; color: #5e6a60; font-size: .9rem; font-weight: 650; }
.navigation__eintrag svg { flex: 0 0 20px; width: 20px; height: 20px; }
.navigation__eintrag small { margin-left: auto; color: #a3aca5; font-size: .66rem; font-weight: 700; text-transform: uppercase; }
.navigation__eintrag:hover { color: var(--gruen-dunkel); background: #f4f8f4; }
.navigation__eintrag:focus-visible { outline: 3px solid rgba(39,133,44,.18); outline-offset: 2px; }
.navigation__eintrag.ist-aktiv { color: var(--gruen-dunkel); background: var(--gruen-hell); }
.navigation__eintrag.ist-aktiv::before { content: ""; position: absolute; left: 0; width: 3px; height: 26px; border-radius: 0 4px 4px 0; background: var(--gruen); }
.navigation__eintrag.ist-vorbereitet { cursor: default; opacity: .82; }
.seitenleiste__konto { display: flex; align-items: center; gap: 10px; margin-top: auto; padding: 16px 8px 0; border-top: 1px solid var(--linie); }
.kontolink { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; margin: -6px; padding: 6px; border-radius: 12px; color: inherit; }
.kontolink:hover, .kontolink.ist-aktiv { background: var(--gruen-hell); }
.kontolink:focus-visible { outline: 3px solid rgba(39,133,44,.2); outline-offset: 2px; }
.avatar { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 11px; color: var(--gruen-tief); background: var(--gelb); font-weight: 850; }
.kontoangaben { min-width: 0; flex: 1; }
.kontoangaben strong, .kontoangaben small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kontoangaben strong { font-size: .82rem; }
.kontoangaben small { color: var(--text-sanft); font-size: .7rem; }
.symbolknopf { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid var(--linie); border-radius: 10px; color: #657068; background: white; cursor: pointer; }
.symbolknopf:hover { color: var(--gruen); border-color: #b9d6bc; background: var(--gruen-hell); }
.symbolknopf svg { width: 19px; height: 19px; }
.app-inhalt { min-width: 0; }
.kopfzeile { display: flex; align-items: center; gap: 16px; min-height: 86px; padding: 18px clamp(24px, 4vw, 56px); border-bottom: 1px solid #dfe8e1; background: rgba(255,255,255,.86); backdrop-filter: blur(12px); }
.kopfzeile__kontext { margin: 0; color: var(--text-sanft); font-size: .7rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.kopfzeile h1 { margin: 1px 0 0; font-size: 1.35rem; letter-spacing: -.02em; }
.systemstatus { display: flex; align-items: center; gap: 8px; margin-left: auto; padding: 8px 12px; border: 1px solid #cbe2cd; border-radius: 999px; color: var(--gruen-dunkel); background: #f3fbf4; font-size: .75rem; font-weight: 700; }
.systemstatus i, .statuskarte > i { width: 8px; height: 8px; border-radius: 50%; background: #36a340; box-shadow: 0 0 0 4px rgba(54,163,64,.1); }
.menueknopf { display: none; }
.mobilkonto, .mobilnavigation { display: none; }
.nur-mobil { display: none; }
.hauptinhalt { width: min(100%, 1360px); margin: 0 auto; padding: clamp(26px, 4vw, 52px); }
.willkommen { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; padding: clamp(25px, 4vw, 40px); border-radius: 22px; color: white; background: linear-gradient(130deg, var(--gruen-tief), var(--gruen)); box-shadow: 0 18px 45px rgba(23,63,27,.15); }
.willkommen .ueberzeile { color: #bfe7c2; }
.willkommen h2 { margin: 0 0 10px; font-size: clamp(1.8rem, 4vw, 2.8rem); letter-spacing: -.04em; }
.willkommen p:last-child { max-width: 680px; margin: 0; color: rgba(255,255,255,.72); }
.rollenabzeichen { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; padding: 11px 15px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: #fff8ca; background: rgba(10,37,13,.28); font-size: .8rem; font-weight: 750; }
.rollenabzeichen svg { width: 18px; height: 18px; color: var(--gelb); }
.statusraster { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 22px; }
.statuskarte { display: flex; align-items: center; gap: 14px; min-width: 0; padding: 20px; border: 1px solid #dfe8e1; border-radius: 16px; background: white; box-shadow: 0 7px 24px rgba(27,62,31,.04); }
.statuskarte__symbol { display: grid; place-items: center; flex: 0 0 auto; width: 45px; height: 45px; border-radius: 12px; color: var(--gruen); background: var(--gruen-hell); }
.statuskarte__symbol--gelb { color: #5c4b00; background: var(--gelb-hell); }
.statuskarte__symbol svg { width: 22px; height: 22px; }
.statuskarte div { min-width: 0; flex: 1; }
.statuskarte p, .statuskarte strong, .statuskarte small { display: block; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.statuskarte p { color: #89938b; font-size: .7rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.statuskarte strong { margin-top: 2px; font-size: 1rem; }
.statuskarte small { margin-top: 2px; color: var(--text-sanft); font-size: .72rem; }
.arbeitskarte { margin-top: 22px; padding: clamp(24px, 4vw, 34px); border: 1px solid #dfe8e1; border-radius: 18px; background: white; }
.arbeitskarte__kopf { display: flex; align-items: center; justify-content: space-between; padding-bottom: 20px; border-bottom: 1px solid var(--linie); }
.arbeitskarte__kopf h3 { margin: 0; font-size: 1.3rem; letter-spacing: -.02em; }
.schritt { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: var(--gruen-tief); background: var(--gelb); font-weight: 850; }
.leerzustand { display: flex; align-items: center; gap: 18px; padding: 42px 4px 16px; }
.leerzustand__symbol { display: grid; place-items: center; flex: 0 0 auto; width: 62px; height: 62px; border: 1px solid #d8e5d9; border-radius: 17px; color: var(--gruen); background: #f4faf5; }
.leerzustand__symbol svg { width: 29px; height: 29px; }
.leerzustand strong { font-size: .98rem; }
.leerzustand p { margin: 4px 0 0; color: var(--text-sanft); font-size: .86rem; }
.menuehintergrund { display: none; }

.seitenkopf { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 22px; }
.seitenkopf--kompakt { align-items: flex-start; }
.seitenkopf h2 { margin: 0; font-size: clamp(1.7rem, 3vw, 2.35rem); line-height: 1.1; letter-spacing: -.035em; }
.seitenkopf p:last-child { margin: 8px 0 0; color: var(--text-sanft); }
.zuruecklink { display: inline-block; margin-bottom: 18px; color: var(--gruen); font-size: .84rem; font-weight: 750; }
.zuruecklink:hover { text-decoration: underline; }

.datenkarte { overflow: hidden; border: 1px solid #dfe8e1; border-radius: 18px; background: white; box-shadow: 0 7px 24px rgba(27,62,31,.035); }
.datenkarte__inhalt { padding-inline: 20px; }
.tabellenrahmen { overflow-x: auto; }
.datentabelle { width: 100%; border-collapse: collapse; }
.datentabelle th, .datentabelle td { padding: 15px 18px; border-bottom: 1px solid #e6ece7; text-align: left; vertical-align: middle; }
.datentabelle th { color: #59665d; background: #f8faf8; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.datentabelle tbody tr:last-child td { border-bottom: 0; }
.datentabelle tbody tr:hover { background: #fbfdfb; }
.datentabelle td { font-size: .88rem; }
.datentabelle td > strong, .datentabelle td > small { display: block; }
.datentabelle td > small { margin-top: 2px; color: var(--text-sanft); font-size: .7rem; }
.tabellen-id, .datum { color: var(--text-sanft); font-size: .78rem; font-variant-numeric: tabular-nums; }
.aktionen-spalte { width: 1%; text-align: right !important; }
.tabellenaktionen { display: flex; justify-content: flex-end; gap: 7px; }
.tabellenaktionen form { margin: 0; }
.symbolknopf--gefahr:hover { color: var(--fehler); border-color: #f2c3bf; background: var(--fehler-hell); }
.mannschaftslogo { display: grid; place-items: center; width: 46px; height: 46px; overflow: hidden; border: 1px solid #d8e5d9; border-radius: 12px; color: var(--gruen-dunkel); background: var(--gruen-hell); font-size: .72rem; font-weight: 850; }
.mannschaftslogo img { width: 100%; height: 100%; padding: 4px; object-fit: contain; }
.statusmarke { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border-radius: 999px; font-size: .72rem; font-weight: 750; }
.statusmarke::before { content: ""; width: 7px; height: 7px; border-radius: 50%; }
.statusmarke--aktiv { color: #1b6520; background: #edf8ee; }
.statusmarke--aktiv::before { background: #36a340; }
.statusmarke--inaktiv { color: #6f7771; background: #f0f2f0; }
.statusmarke--inaktiv::before { background: #9da49f; }
.leerzustand--zentriert { justify-content: center; min-height: 260px; padding: 45px; text-align: left; }

.formularlayout, .einstellungsformular { display: grid; gap: 20px; }
.formularkarte { padding: clamp(22px, 3vw, 32px); border: 1px solid #dfe8e1; border-radius: 18px; background: white; box-shadow: 0 7px 24px rgba(27,62,31,.035); }
.formularkarte__kopf { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 25px; padding-bottom: 20px; border-bottom: 1px solid var(--linie); }
.formularkarte__kopf h3 { margin: 0; font-size: 1.15rem; letter-spacing: -.02em; }
.formularkarte__kopf p { margin: 3px 0 0; color: var(--text-sanft); font-size: .82rem; }
.abschnittsnummer { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 11px; color: var(--gruen-dunkel); background: var(--gelb); font-size: .78rem; font-weight: 900; }
.formularraster { display: grid; gap: 20px; }
.formularraster--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.formularraster--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.formularfeld { min-width: 0; }
.formularfeld--breit { grid-column: 1 / -1; }
.formularfeld > small { display: block; margin-top: 7px; color: var(--text-sanft); font-size: .73rem; }
.optionsgruppe { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; border: 0; }
.optionsgruppe legend { display: block; width: 100%; margin-bottom: 8px; color: #2c392f; font-size: .87rem; font-weight: 700; }
.optionsgruppe--2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
.optionsgruppe--4 { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); }
.auswahlkarte { position: relative; display: flex; align-items: flex-start; gap: 11px; flex: 1; min-width: 190px; margin: 0; padding: 14px; border: 1px solid #d6e0d8; border-radius: 12px; cursor: pointer; }
.auswahlkarte:hover { border-color: #b9d6bc; background: #fbfdfb; }
.auswahlkarte:has(input:checked) { border-color: var(--gruen); background: var(--gruen-hell); box-shadow: 0 0 0 2px rgba(39,133,44,.1); }
.auswahlkarte input { flex: 0 0 auto; width: 18px; min-height: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--gruen); }
.auswahlkarte span, .auswahlkarte strong, .auswahlkarte small { display: block; }
.auswahlkarte strong { color: var(--text); font-size: .84rem; }
.auswahlkarte small { margin-top: 2px; color: var(--text-sanft); font-size: .72rem; font-weight: 450; line-height: 1.35; }
.auswahlkarte--gross { min-height: 95px; padding: 18px; }
.hinweiskarte { margin-bottom: 16px; padding: 15px 17px; border: 1px solid #eadc91; border-radius: 11px; color: #5f5009; background: var(--gelb-hell); font-size: .84rem; }
.hinweiskarte a { color: var(--gruen-dunkel); font-weight: 750; text-decoration: underline; }
.statushinweis { display: flex; align-items: flex-start; gap: 11px; }
.statushinweis > span { display: grid; place-items: center; flex: 0 0 auto; width: 21px; height: 21px; border-radius: 50%; color: #fff; background: #8b740a; font-size: .72rem; font-weight: 900; }
.statushinweis p { margin: 1px 0 0; }
.statusanzeige { display: flex; align-items: center; gap: 12px; min-height: 50px; padding: 10px 12px; border: 1px solid var(--linie); border-radius: 11px; background: #f8faf8; }
.statusanzeige small { color: var(--text-sanft); font-size: .75rem; }
.formularhinweis { margin: 20px 0 0; padding: 12px 14px; border-radius: 10px; color: #526056; background: #f3f7f3; font-size: .82rem; }
.formularaktionen { display: flex; align-items: center; justify-content: flex-end; gap: 18px; padding: 4px 0 20px; }
.textknopf { color: var(--text-sanft); font-size: .85rem; font-weight: 700; }
.textknopf:hover { color: var(--gruen); }
.eingabe-einheit { position: relative; }
.eingabe-einheit input { padding-right: 100px !important; }
.eingabe-einheit span { position: absolute; top: 50%; right: 14px; color: var(--text-sanft); font-size: .72rem; font-weight: 700; transform: translateY(-50%); pointer-events: none; }
.farbeingabe { display: grid; grid-template-columns: 58px 1fr; gap: 9px; }
.farbeingabe input[type="color"] { height: 50px; padding: 5px; cursor: pointer; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }

.profilraster { display: grid; grid-template-columns: minmax(280px, .75fr) minmax(420px, 1.25fr); gap: 20px; align-items: start; }
.profilkarte__kopf { display: flex; align-items: center; gap: 16px; margin-bottom: 26px; }
.profilkarte__kopf h3 { margin: 0 0 7px; font-size: 1.3rem; }
.profilavatar { display: grid; place-items: center; width: 66px; height: 66px; border-radius: 18px; color: var(--gruen-tief); background: var(--gelb); font-size: 1.45rem; font-weight: 900; }
.profildaten { display: grid; gap: 0; margin: 0; }
.profildaten > div { padding: 14px 0; border-top: 1px solid var(--linie); }
.profildaten dt { margin-bottom: 3px; color: var(--text-sanft); font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.profildaten dd { margin: 0; overflow-wrap: anywhere; font-size: .9rem; font-weight: 700; }
.profilkarte__hinweis { margin: 18px 0 0; padding: 12px 14px; border-radius: 10px; color: var(--text-sanft); background: #f3f7f3; font-size: .78rem; line-height: 1.45; }
.profilpasswort .formularaktionen { padding-bottom: 0; margin-top: 22px; }

.werbepartnertabelle a:hover { color: var(--gruen); text-decoration: underline; }
.werbepartnertabelle .symbolknopf:hover { text-decoration: none; }
.abspiellistenraster { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.abspiellistenkarte { padding: 22px; border: 1px solid #dfe8e1; border-radius: 18px; background: white; box-shadow: 0 7px 24px rgba(27,62,31,.035); }
.abspiellistenkarte.ist-aktiv { border-color: #b9d9bc; box-shadow: 0 0 0 3px rgba(39,133,44,.06), 0 10px 30px rgba(27,62,31,.06); }
.abspiellistenkarte__kopf { display: flex; align-items: center; gap: 13px; padding-bottom: 18px; border-bottom: 1px solid var(--linie); }
.abspiellistenkarte__kopf > div { min-width: 0; flex: 1; }
.abspiellistenkarte__kopf h3, .abspiellistenkarte__kopf small { display: block; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.abspiellistenkarte__kopf h3 { margin-top: 2px; font-size: 1.05rem; }
.abspiellistenkarte__kopf small { color: var(--text-sanft); font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.kategoriezeichen { display: grid; place-items: center; flex: 0 0 auto; width: 43px; height: 43px; border-radius: 12px; color: var(--gruen-dunkel); background: var(--gruen-hell); font-size: .72rem; font-weight: 900; }
.kategoriezeichen--intern { color: #5b4c05; background: var(--gelb-hell); }
.abspiellistendaten { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px 22px; margin: 20px 0; }
.abspiellistendaten div { min-width: 0; }
.abspiellistendaten dt { color: var(--text-sanft); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.abspiellistendaten dd { margin: 2px 0 0; font-size: .82rem; font-weight: 700; }
.abspiellistenkarte__aktionen { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.abspiellistenkarte__aktionen form { margin: 0; }
.partneranzeigen, .abspiellisteneintraege { margin-top: 20px; }
.anzeigenhinzufuegen, .eintraghinzufuegen { display: grid; grid-template-columns: minmax(240px, 1.45fr) minmax(180px, 1fr) minmax(130px, .55fr) auto; align-items: end; gap: 12px; margin-bottom: 14px; padding: 17px; border: 1px solid #dce7de; border-radius: 14px; background: #f8faf8; }
.eintraghinzufuegen { grid-template-columns: minmax(280px, 1.5fr) minmax(110px, .45fr) minmax(130px, .55fr) auto; }
.anzeigenhinzufuegen label, .eintraghinzufuegen label, .anzeigenzeile label { font-size: .76rem; }
.anzeigenliste { display: grid; gap: 10px; margin-top: 20px; }
.anzeigenzeile { display: flex; align-items: center; gap: 14px; min-width: 0; padding: 12px; border: 1px solid var(--linie); border-radius: 14px; background: white; }
.anzeigenvorschau { position: relative; display: grid; place-items: center; flex: 0 0 auto; width: 104px; height: 66px; overflow: hidden; border-radius: 10px; color: white; background: #102f14; }
.anzeigenvorschau img, .anzeigenvorschau video { width: 100%; height: 100%; object-fit: contain; background: #eef3ef; }
.anzeigenvorschau > span { position: absolute; right: 5px; bottom: 5px; padding: 2px 5px; border-radius: 5px; background: rgba(5,20,8,.78); font-size: .58rem; font-weight: 900; }
.anzeigenzeile__formular { display: grid; grid-template-columns: minmax(170px, 1fr) minmax(190px, 1.2fr) minmax(120px, .55fr) auto auto; align-items: end; gap: 10px; min-width: 0; flex: 1; }
.anzeigenzeile__titel, .anzeigenzeile__daten { min-width: 160px; flex: 1; }
.anzeigenzeile__titel strong, .anzeigenzeile__titel small, .anzeigenzeile__daten strong, .anzeigenzeile__daten small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.anzeigenzeile__titel small, .anzeigenzeile__daten small { margin-top: 3px; color: var(--text-sanft); font-size: .72rem; }
.eintragzeile__formular { display: grid; grid-template-columns: 110px 135px auto auto; align-items: end; gap: 10px; }
.mini-schalter { display: inline-flex; align-items: center; gap: 7px; min-height: 50px; margin: 0; padding: 0 5px; font-size: .78rem !important; white-space: nowrap; }
.mini-schalter input { width: 18px; min-height: 18px; height: 18px; margin: 0; accent-color: var(--gruen); }

.bereichstabs { display: flex; gap: 6px; margin-bottom: 20px; padding: 5px; border: 1px solid #dfe8e1; border-radius: 13px; background: white; width: max-content; }
.bereichstabs a { padding: 10px 16px; border-radius: 9px; color: var(--text-sanft); font-size: .83rem; font-weight: 750; }
.bereichstabs a.ist-aktiv { color: var(--gruen-dunkel); background: var(--gruen-hell); }
.benutzerkopf { margin-top: 4px; }
.benutzerkopf h3, .benutzerkopf p { margin: 0; }
.benutzerkopf h3 { font-size: 1.2rem; }
.benutzerkopf p { margin-top: 4px; color: var(--text-sanft); font-size: .86rem; }
.rollenabzeichen--kompakt { display: inline-flex; width: auto; margin: 0; padding: 6px 10px; border-color: #cfe2d1; color: var(--gruen-dunkel); background: var(--gruen-hell); font-size: .74rem; }
.benutzertabelle td:nth-child(3) { overflow-wrap: anywhere; }
.markenwahl { margin: 0; padding: 0; border: 0; }
.medienaktionen { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .7fr); gap: 20px; margin-bottom: 20px; }
.kompaktformular { align-content: start; }
.ordnerkarte { margin-bottom: 20px; }
.datenkarte__kopf { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--linie); }
.datenkarte__kopf h3, .datenkarte__kopf p { margin: 0; }
.datenkarte__kopf h3 { font-size: 1rem; }
.datenkarte__kopf p { margin-top: 3px; color: var(--text-sanft); font-size: .82rem; }
.anzahlmarke { display: grid; place-items: center; min-width: 34px; height: 34px; padding: 0 9px; border-radius: 999px; color: var(--gruen-dunkel); background: var(--gelb); font-size: .82rem; font-weight: 850; }
.ordneruebersicht { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 10px; padding: 16px; }
.ordnereintrag { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 11px; min-width: 0; padding: 12px; border: 1px solid #e0e8e1; border-radius: 12px; background: #fbfdfb; }
.ordnereintrag__symbol { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; color: var(--gruen-dunkel); background: var(--gruen-hell); }
.ordnereintrag__symbol svg { width: 21px; height: 21px; }
.ordnereintrag__angaben { min-width: 0; }
.ordnereintrag__angaben strong, .ordnereintrag__angaben small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ordnereintrag__angaben strong { font-size: .88rem; }
.ordnereintrag__angaben small { margin-top: 3px; color: var(--text-sanft); font-size: .78rem; }
.symbolknopf--hell { color: var(--gruen-dunkel); border-color: #d6e3d8; background: white; }
.symbolknopf--hell:hover { color: white; border-color: var(--gruen); background: var(--gruen); }
.ordnerleiste { display: flex; gap: 8px; overflow-x: auto; padding: 16px; border-bottom: 1px solid var(--linie); }
.ordnerchip { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; padding: 8px 12px; border: 1px solid #d9e2da; border-radius: 999px; color: var(--text-sanft); font-size: .76rem; font-weight: 750; }
.ordnerchip small { display: grid; place-items: center; min-width: 19px; height: 19px; border-radius: 999px; background: #eef2ef; font-size: .65rem; }
.ordnerchip.ist-aktiv { color: white; border-color: var(--gruen); background: var(--gruen); }
.ordnerchip.ist-aktiv small { color: var(--gruen-dunkel); background: var(--gelb); }
.medienraster { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; padding: 20px; }
.medienkarte { overflow: hidden; border: 1px solid #dfe8e1; border-radius: 14px; background: #fff; }
.medienkarte__vorschau { display: grid; place-items: center; aspect-ratio: 4 / 3; padding: 14px; background: linear-gradient(135deg, #f2f6f2, #fafcfa); }
.medienkarte__vorschau img, .medienkarte__vorschau video { max-width: 100%; max-height: 100%; object-fit: contain; }
.medienkarte__vorschau video { width: 100%; height: 100%; border-radius: 8px; background: #07150a; }
.medienkarte__inhalt { padding: 14px; }
.medienkarte__inhalt strong, .medienkarte__inhalt span, .medienkarte__inhalt small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medienkarte__inhalt strong { font-size: .84rem; }
.medienkarte__inhalt span { margin-top: 3px; color: var(--gruen); font-size: .7rem; font-weight: 700; }
.medienkarte__inhalt small { margin-top: 8px; color: var(--text-sanft); font-size: .67rem; }
.medienkarte__link { display: inline-flex; margin-top: 11px; color: var(--gruen-dunkel); font-size: .78rem; font-weight: 780; text-decoration: underline; text-underline-offset: 3px; }
.tafelmass-vorschau { display: grid; grid-template-columns: 130px 1fr; grid-template-rows: auto auto; column-gap: 18px; align-items: center; margin-bottom: 24px; padding: 16px; border: 1px solid #dce6de; border-radius: 13px; background: #f8faf8; }
.tafelmass-vorschau__flaeche { grid-row: 1 / 3; display: grid; grid-template-columns: 1fr 1fr; gap: 5px; aspect-ratio: 16 / 9; padding: 7px; border-radius: 8px; background: var(--gruen-tief); }
.tafelmass-vorschau__flaeche i { border-radius: 4px; background: var(--gruen); }
.tafelmass-vorschau__flaeche i:last-child { background: var(--gelb); }
.tafelmass-vorschau strong { align-self: end; font-size: 1rem; font-variant-numeric: tabular-nums; }
.tafelmass-vorschau small { align-self: start; color: var(--text-sanft); font-size: .72rem; }
.tafellayout-werkzeug { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; padding: 14px 16px; border: 1px solid #dce6de; border-radius: 13px; background: #f8faf8; }
.tafellayout-werkzeug__hinweis strong, .tafellayout-werkzeug__hinweis small { display: block; }
.tafellayout-werkzeug__hinweis small { margin-top: 3px; color: var(--text-sanft); font-size: .75rem; }
.tafellayout-schrift { width: min(100%, 560px); margin-bottom: 18px; }
.tafelschrift-probe { display: block; margin-top: 10px; padding: 12px 14px; border: 1px solid #dce6de; border-radius: 10px; color: #fff; background: var(--gruen-tief); font-size: 1.15rem; font-weight: 700; }
.tafelschrift-probe--inter { font-family: "SV Inter", Arial, sans-serif; }
.tafelschrift-probe--montserrat { font-family: "SV Montserrat", Arial, sans-serif; }
.tafelschrift-probe--oswald { font-family: "SV Oswald", Arial, sans-serif; }
.tafelschrift-probe--calibri { font-family: "Calibri", Arial, Helvetica, sans-serif; }
.tafellayout-raster { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tafellayout-element { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 16px; border: 1px solid var(--linie); border-radius: 13px; background: #fff; }
.tafellayout-element > div { grid-column: 1 / -1; }
.tafellayout-element > div strong, .tafellayout-element > div small { display: block; }
.tafellayout-element > div strong { color: var(--gruen-dunkel); }
.tafellayout-element > div small { min-height: 2.7em; margin-top: 3px; color: var(--text-sanft); font-size: .72rem; line-height: 1.35; }
.tafellayout-element label { margin: 0; color: var(--text-sanft); font-size: .72rem; }
.tafellayout-eingabe { position: relative; display: block; margin-top: 6px; }
.tafellayout-eingabe input { padding-right: 36px !important; font-weight: 800; font-variant-numeric: tabular-nums; }
.tafellayout-eingabe i { position: absolute; top: 50%; right: 13px; color: var(--text-sanft); font-style: normal; transform: translateY(-50%); pointer-events: none; }
.tafellayout-rand { width: min(100%, 380px); margin-top: 18px; }
.ablaufleiste { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: center; gap: 9px; margin-bottom: 26px; padding: 15px; border-radius: 13px; background: #f6f9f6; }
.ablaufleiste span { display: flex; align-items: center; gap: 7px; color: #4d5b50; font-size: .72rem; font-weight: 750; white-space: nowrap; }
.ablaufleiste b { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; color: var(--gruen-dunkel); background: var(--gelb); font-size: .67rem; }
.ablaufleiste i { height: 2px; background: #d5e2d7; }
.schalterzeile { display: flex; align-items: flex-start; gap: 12px; margin-top: 22px; padding: 16px; border: 1px solid #dce6de; border-radius: 12px; background: #fafcfa; cursor: pointer; }
.schalterzeile input { flex: 0 0 auto; width: 19px; height: 19px; min-height: 19px; margin-top: 2px; accent-color: var(--gruen); }
.schalterzeile span, .schalterzeile strong, .schalterzeile small { display: block; }
.schalterzeile strong { font-size: .85rem; }
.schalterzeile small { margin-top: 3px; color: var(--text-sanft); font-size: .73rem; font-weight: 450; }
.leerzustand__aktion { margin-left: auto; flex: 0 0 auto; }

.spielliste { display: grid; gap: 12px; }
.spielkarte { position: relative; display: grid; grid-template-columns: 150px minmax(300px, 1fr) minmax(210px, auto) 44px; align-items: center; gap: 22px; padding: 18px 20px; border: 1px solid #dfe8e1; border-radius: 17px; background: white; box-shadow: 0 7px 24px rgba(27,62,31,.035); }
.spieltermin { padding-right: 20px; border-right: 1px solid var(--linie); font-variant-numeric: tabular-nums; }
.spieltermin span, .spieltermin strong, .spieltermin small { display: block; }
.spieltermin span { color: var(--text-sanft); font-size: .72rem; font-weight: 750; }
.spieltermin strong { margin: 3px 0; color: var(--gruen-dunkel); font-size: 1.45rem; line-height: 1; }
.spieltermin small { color: #8b958d; font-size: .67rem; }
.spielpaarung { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 15px; }
.spielteam { display: flex; align-items: center; gap: 11px; min-width: 0; }
.spielteam > span:last-child { min-width: 0; }
.spielteam small, .spielteam strong { display: block; }
.spielteam small { margin-bottom: 2px; color: var(--text-sanft); font-size: .67rem; font-weight: 750; text-transform: uppercase; }
.spielteam strong { overflow: hidden; font-size: .85rem; text-overflow: ellipsis; white-space: nowrap; }
.spiellogo { display: grid; place-items: center; flex: 0 0 auto; width: 43px; height: 43px; overflow: hidden; border: 1px solid #d8e5d9; border-radius: 11px; color: var(--gruen-dunkel); background: var(--gruen-hell); font-size: .65rem; font-weight: 850; }
.spiellogo img { width: 100%; height: 100%; padding: 4px; object-fit: contain; }
.gegen { color: #8c968e; font-size: .66rem; font-weight: 700; }
.spieldetails { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; color: var(--text-sanft); font-size: .7rem; }
.spieldetails > span:not(.statusmarke) { white-space: nowrap; }
.statusmarke--spiel-geplant { color: #305f80; background: #edf6fb; }
.statusmarke--spiel-geplant::before { background: #4c94c0; }
.statusmarke--spiel-aktiv { color: #1b6520; background: #edf8ee; }
.statusmarke--spiel-aktiv::before { background: #36a340; }
.statusmarke--spiel-unterbrochen, .statusmarke--spiel-pause { color: #705d0c; background: #fff8d9; }
.statusmarke--spiel-unterbrochen::before, .statusmarke--spiel-pause::before { background: #d2aa16; }
.statusmarke--spiel-beendet, .statusmarke--spiel-abgesagt { color: #6f7771; background: #f0f2f0; }
.statusmarke--spiel-beendet::before, .statusmarke--spiel-abgesagt::before { background: #9da49f; }
.spielkarte__aktion { justify-self: end; }

.mannschaftssuche { position: relative; }
.mannschaftssuche__eingabe { display: none; }
.js .mannschaftssuche__eingabe { display: block; }
.mannschaftssuche__vorschlaege { position: absolute; top: calc(100% - 22px); z-index: 15; width: 100%; max-height: 260px; overflow-y: auto; padding: 6px; border: 1px solid #cbd9cd; border-radius: 12px; background: white; box-shadow: 0 16px 36px rgba(24,55,28,.16); }
.mannschaftssuche__vorschlaege button { display: block; width: 100%; padding: 10px 11px; border: 0; border-radius: 8px; color: var(--text); background: transparent; font: inherit; font-size: .8rem; text-align: left; cursor: pointer; }
.mannschaftssuche__vorschlaege button:hover, .mannschaftssuche__vorschlaege button.ist-aktiv { color: var(--gruen-dunkel); background: var(--gruen-hell); }
.mannschaftssuche__leer { display: block; padding: 10px 11px; color: var(--text-sanft); font-size: .78rem; }
.turnierseitenwahl[hidden] { display: none; }
.hauptknopf:disabled { cursor: not-allowed; opacity: .5; }

.tafelvorschaukarte { overflow: hidden; margin-bottom: 22px; border: 1px solid #dce6de; border-radius: 18px; background: #fff; box-shadow: 0 7px 24px rgba(27,62,31,.045); }
.tafelvorschaukarte__kopf { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 18px; border-bottom: 1px solid var(--linie); }
.tafelvorschaukarte__kopf > div { display: flex; align-items: center; gap: 9px; }
.tafelvorschaukarte__kopf .livepunkt { display: block; width: 8px; height: 8px; border-radius: 50%; background: #33a33d; box-shadow: 0 0 0 5px rgba(51,163,61,.1); }
.tafelvorschaukarte__kopf .livepunkt::before { display: none; }
.tafelvorschaukarte__kopf strong { font-size: .86rem; }
.tafelvorschaukarte__kopf small { color: var(--text-sanft); font-size: .72rem; }
.tafelrahmen { overflow: hidden; background: transparent; }
.tafelrahmen--admin { width: 100%; aspect-ratio: var(--anzeigetafel-verhaeltnis-breite, 16) / var(--anzeigetafel-verhaeltnis-hoehe, 9); }
.anzeige-dokument, .anzeigeseite { width: var(--anzeigetafel-breite); min-width: var(--anzeigetafel-breite); max-width: var(--anzeigetafel-breite); height: var(--anzeigetafel-hoehe); min-height: var(--anzeigetafel-hoehe); max-height: var(--anzeigetafel-hoehe); overflow: hidden; background: transparent; }
.oeffentliche-anzeige, .tafelrahmen--oeffentlich { width: var(--anzeigetafel-breite); min-width: var(--anzeigetafel-breite); max-width: var(--anzeigetafel-breite); height: var(--anzeigetafel-hoehe); min-height: var(--anzeigetafel-hoehe); max-height: var(--anzeigetafel-hoehe); overflow: hidden; background: transparent; }
.anzeigetafel-live { position: relative; display: grid; place-items: stretch; width: 100%; height: 100%; overflow: hidden; container-type: inline-size; color: #fff; background-color: transparent; background-position: center; background-repeat: no-repeat; background-size: 100% 100%; font-family: var(--tafel-schriftart); isolation: isolate; }
.anzeigetafel-live[data-phase="werbung"], .anzeigetafel-live[data-phase="vereinsanzeigen"] { background-color: #000; background-image: none !important; }
.anzeigetafel-live::before { display: none; }
.anzeigetafel-live--verbindungsfehler::after { content: "Verbindung unterbrochen"; position: absolute; right: 1.4cqw; bottom: 1.4cqw; z-index: 4; padding: .45em .8em; border-radius: 999px; color: #6f1711; background: #ffe3df; font-size: clamp(.7rem, 1cqw, 1rem); font-weight: 800; }
.tafel-ladezustand, .tafelphase { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 1.3cqw; padding: 5cqw; text-align: center; }
.tafel-ladezustand__zeichen { display: grid; place-items: center; width: 8cqw; height: 8cqw; min-width: 48px; min-height: 48px; border-radius: 22%; color: var(--gruen-tief); background: var(--gelb); font-size: clamp(1.1rem, 2.5cqw, 3rem); font-weight: 950; }
.tafel-ladezustand strong { font-size: clamp(1rem, 2.2cqw, 2.5rem); }
.tafelspiele { display: grid; width: 100%; height: 100%; }
.anzeigetafel-live--turnier .tafelspiele { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.anzeigetafel-live--turnier .tafelspiel[data-position="links"] { grid-column: 1; }
.anzeigetafel-live--turnier .tafelspiel[data-position="rechts"] { grid-column: 2; }
.tafelspiel { position: relative; min-width: 0; min-height: 0; overflow: hidden; border: 0; border-radius: 0; background: transparent; box-shadow: none; container-type: inline-size; }
.tafelmannschaft { position: absolute; top: var(--tafel-logo-position); z-index: 1; display: grid; place-items: center; width: var(--tafel-logo-max-breite); height: var(--tafel-logo-max-hoehe); min-width: 0; }
.tafelmannschaft--heim { left: var(--tafel-logo-rand); }
.tafelmannschaft--gast { right: var(--tafel-logo-rand); }
.tafelmannschaft__logo { display: grid; place-items: center; width: 100%; height: 100%; }
.tafelmannschaft__logo--bild { width: 100%; height: 100%; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.tafelmannschaft__logo--bild img { display: block; width: 100%; height: 100%; padding: 0; object-fit: contain; object-position: center; }
.tafelmannschaft__logo--kuerzel { overflow: hidden; border: max(2px, .15cqw) solid rgba(255,255,255,.78); border-radius: .7cqw; color: var(--gruen-tief); background: rgba(255,255,255,.96); box-shadow: 0 1.2cqw 3cqw rgba(0,0,0,.2); font-size: var(--tafel-kuerzel-groesse); font-weight: 950; letter-spacing: -.04em; }
.tafelspiel__ergebnis { position: absolute; top: var(--tafel-ergebnis-position); left: 50%; z-index: 2; display: flex; align-items: center; justify-content: center; gap: .14em; color: #fff; font-size: var(--tafel-ergebnis-groesse); font-variant-numeric: tabular-nums; line-height: .85; transform: translateX(-50%); }
.tafelspiel__tor { min-width: .68em; font-size: 1em; font-weight: 930; text-align: center; text-shadow: 0 .4cqw 1.6cqw rgba(0,0,0,.25); }
.tafelspiel__doppelpunkt { color: var(--gelb); font-size: .58em; font-weight: 900; }
.tafelspiel__namen { position: absolute; top: var(--tafel-name-position); left: 0; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 2%; width: 100%; }
.tafelspiel__name { display: -webkit-box; flex: 0 0 var(--tafel-name-max-breite); max-width: var(--tafel-name-max-breite); max-height: 2.2em; overflow: hidden; color: #fff; font-size: var(--tafel-name-groesse); line-height: 1.1; overflow-wrap: anywhere; text-align: center; text-shadow: 0 .18cqw .8cqw rgba(0,0,0,.28); white-space: normal; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.tafeluhr { position: absolute; top: var(--tafel-uhr-position); left: 50%; z-index: 3; display: grid; justify-items: center; min-width: 18cqw; padding: .65cqw 2.2cqw .7cqw; border: max(2px, .16cqw) solid var(--gelb); border-radius: 0; color: #fff; background: transparent; box-shadow: none; font-variant-numeric: tabular-nums; transform: translateX(-50%); }
.tafeluhr__hauptzeit { font-size: var(--tafel-uhr-groesse); line-height: 1; letter-spacing: -.04em; text-shadow: 0 .18cqw .8cqw rgba(0,0,0,.22); }
.tafeluhr__nachspielzeit { display: flex; align-items: baseline; gap: .65em; margin-top: .5cqw; padding-top: .45cqw; border-top: max(1px, .08cqw) solid rgba(255,255,255,.4); }
.tafeluhr__nachspielzeit[hidden] { display: none; }
.tafeluhr__nachspielzeit small { font-size: clamp(.55rem, .8cqw, 1rem); font-weight: 800; text-transform: uppercase; }
.tafeluhr__nachspielzeit b { font-size: clamp(.8rem, 1.45cqw, 1.7rem); }
.tafeluhr__abschnitt { margin-top: .35cqw; color: rgba(255,255,255,.76); font-size: clamp(.6rem, .95cqw, 1.15rem); font-weight: 850; text-transform: uppercase; }
.tafelwerbung { position: relative; width: 100%; height: 100%; overflow: hidden; color: white; background: #000; }
.tafelwerbung__inhalt { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; animation-duration: var(--anzeigen-uebergang, 600ms); animation-timing-function: ease-out; animation-fill-mode: both; }
.tafelwerbung__inhalt img, .tafelwerbung__inhalt video { display: block; width: 100%; height: 100%; object-fit: contain; background: #000; }
.tafelwerbung__inhalt--ueberblenden { animation-name: anzeige-einblenden; }
.tafelwerbung__inhalt--schieben { animation-name: anzeige-schieben; }
.tafelwerbung__inhalt--zoom { animation-name: anzeige-zoom; }
@keyframes anzeige-einblenden { from { opacity: 0; } to { opacity: 1; } }
@keyframes anzeige-schieben { from { opacity: .65; transform: translateX(7%); } to { opacity: 1; transform: translateX(0); } }
@keyframes anzeige-zoom { from { opacity: .65; transform: scale(1.06); } to { opacity: 1; transform: scale(1); } }
.tafelphase, .tafelphase--vereinsanzeigen { position: relative; background: transparent; }
.tafelphase__marke { padding: .55em 1.1em; border: max(1px, .08cqw) solid rgba(255,255,255,.25); border-radius: 999px; color: var(--gelb); font-size: clamp(.7rem, 1.2cqw, 1.4rem); font-weight: 900; letter-spacing: .18em; }
.tafelphase__titel { font-size: clamp(2.2rem, 7cqw, 8rem); line-height: .95; letter-spacing: -.05em; }
.tafelphase__text { max-width: 55ch; margin: 0; color: rgba(255,255,255,.72); font-size: clamp(.8rem, 1.7cqw, 2rem); }
.tafelphase__partie { margin-top: 1.4cqw; color: rgba(255,255,255,.5); font-size: clamp(.7rem, 1.15cqw, 1.3rem); }
.tafel-noscript { margin: 0; padding: 20px; color: white; background: #651d17; text-align: center; }

.steuerungsraster { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: 20px; margin-bottom: 20px; }
.steuerungskarte { min-width: 0; }
.auswahlformular { display: flex; align-items: flex-end; gap: 12px; }
.auswahlformular .formularfeld { flex: 1; }
.auswahlformular .hauptknopf { flex: 0 0 auto; }
.auswahlstatus { display: flex; align-items: flex-start; gap: 9px; margin: 16px 0 0; padding: 11px 13px; border-radius: 10px; color: #745a0b; background: #fff8dc; font-size: .78rem; }
.auswahlstatus > span { display: grid; place-items: center; flex: 0 0 auto; width: 19px; height: 19px; border-radius: 50%; color: white; background: #c49b13; font-weight: 900; }
.auswahlstatus.ist-bestaetigt { color: #1b6520; background: #edf8ee; }
.auswahlstatus.ist-bestaetigt > span { background: var(--gruen); }
.ergebnisformular { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: end; gap: 12px; text-align: center; }
.ergebnisformular label { min-width: 0; margin: 0; }
.ergebnisformular label > span { display: block; min-height: 2.7em; margin-bottom: 7px; overflow: hidden; font-size: .75rem; text-overflow: ellipsis; }
.ergebnisformular input { height: 76px; padding: 0 8px !important; color: var(--gruen-dunkel); background: var(--gruen-hell); font-size: 2rem; font-weight: 900; text-align: center; }
.ergebnisformular > strong { align-self: center; padding-top: 1.2em; color: var(--text-sanft); font-size: 1.6rem; }
.ergebnisformular button { grid-column: 1 / -1; justify-self: center; margin-top: 7px; }
.steuerung-gesperrt { display: grid; place-items: center; min-height: 150px; padding: 24px; border: 1px dashed #cfdbd1; border-radius: 12px; color: var(--text-sanft); background: #f8faf8; text-align: center; }
.steuerung-gesperrt strong, .steuerung-gesperrt span { display: block; }
.steuerung-gesperrt strong { color: var(--text); }
.steuerung-gesperrt span { margin-top: 4px; font-size: .78rem; }
.spielsteuerung .formularkarte__kopf { align-items: center; }
.spielsteuerung .formularkarte__kopf > div { flex: 1; }
.mobil-steuerungsschalter { display: none; }
.steuerstatus { padding: 7px 11px; border-radius: 999px; color: #315d34; background: #edf5ee; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.steuerstatus--laeuft { color: #fff; background: var(--gruen); }
.steuerstatus--unterbrochen { color: #8b2a22; background: #ffebe8; }
.steuerstatus--pause { color: #6c5908; background: #fff5bc; }
.steuerstatus--beendet { color: #fff; background: var(--gruen-dunkel); }
.aktionsleiste { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; }
.steuerknopf { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 58px; border: 1px solid transparent; border-radius: 12px; cursor: pointer; font-weight: 830; transition: transform .15s, filter .15s; }
.steuerknopf svg { width: 20px; height: 20px; }
.steuerknopf:hover:not(:disabled) { filter: brightness(.95); transform: translateY(-1px); }
.steuerknopf:disabled { cursor: not-allowed; filter: grayscale(.35); opacity: .45; }
.steuerknopf--start { color: #fff; background: var(--gruen); }
.steuerknopf--unterbrechen { color: #8f241b; border-color: #f2bbb5; background: #ffebe8; }
.steuerknopf--pause { color: #4c410a; border-color: #e1bc13; background: var(--gelb); }
.steuerknopf--ende { color: #fff; background: var(--gruen-dunkel); }
.steuerknopf--rueckgaengig { grid-column: 1 / -1; min-height: 46px; color: #405443; border-color: #cad7cc; background: #f4f7f4; }

.spielereignisse { margin-bottom: 26px; }
.spielereignisformular { display: grid; grid-template-columns: 1.15fr 1.35fr .65fr .7fr 1.5fr; gap: 14px; align-items: end; }
.spielereignisformular__eigentor { grid-column: 1 / 4; min-height: 58px; margin: 0; }
.spielereignisformular > .hauptknopf { grid-column: 4 / 6; justify-self: end; }
.spielereignisliste { display: grid; margin-top: 24px; border-top: 1px solid var(--linie); }
.spielereigniszeile { display: grid; grid-template-columns: 56px 130px minmax(0,1fr) auto; gap: 14px; align-items: center; min-height: 70px; padding: 12px 2px; border-bottom: 1px solid var(--linie); }
.spielereigniszeile time { color: var(--gruen-dunkel); font-size: 1.05rem; font-weight: 900; text-align: center; }
.ereignismarke { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 5px 10px; border-radius: 999px; color: #38513a; background: #edf4ee; font-size: .76rem; font-weight: 850; text-align: center; }
.ereignismarke--tor { color: #fff; background: var(--gruen); }
.ereignismarke--karte { color: #594900; background: var(--gelb); }
.spielereigniszeile__person { min-width: 0; }
.spielereigniszeile__person strong, .spielereigniszeile__person small { display: block; }
.spielereigniszeile__person strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spielereigniszeile__person small, .spielereigniszeile__kategorie { margin-top: 3px; color: var(--text-sanft); font-size: .76rem; }
.spielereigniszeile__kategorie { white-space: nowrap; }

.ereignisart-neu { display: grid; grid-template-columns: minmax(220px,1.6fr) minmax(160px,1fr) 120px auto auto; gap: 14px; align-items: end; }
.ereignisart-neu__status { min-height: 50px; }
.ereignisartenliste { display: grid; gap: 12px; }
.ereignisartzeile { display: flex; gap: 10px; align-items: center; padding: 14px; border: 1px solid var(--linie); border-radius: 14px; background: #fbfdfb; }
.ereignisartformular { display: grid; grid-template-columns: minmax(210px,1.5fr) minmax(145px,1fr) 110px auto 80px auto; gap: 12px; align-items: end; flex: 1; }
.ereignisartzeile__info { align-self: center; color: var(--text-sanft); text-align: center; }
.ereignisartzeile__info strong, .ereignisartzeile__info small { display: block; }
.ereignisartzeile__info strong { color: var(--text); font-size: 1.05rem; }
.ereignisartzeile__info small { font-size: .68rem; }
.ereignisart-loeschen { flex: 0 0 auto; }

.fehlerseite { display: flex; flex-direction: column; min-height: 100vh; padding: 36px clamp(24px, 6vw, 80px); background: linear-gradient(145deg, var(--gruen-tief), var(--gruen)); }
.fehlerkarte { width: min(100%, 570px); margin: auto; padding: clamp(28px, 5vw, 52px); border-radius: 22px; background: white; box-shadow: var(--schatten); text-align: center; }
.fehlercode { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 22px; border-radius: 18px; color: var(--gruen-tief); background: var(--gelb); font-size: 1.4rem; font-weight: 900; }
.fehlerkarte h1 { margin: 0 0 12px; font-size: clamp(1.7rem, 4vw, 2.5rem); line-height: 1.1; }
.fehlerkarte > p:not(.ueberzeile) { margin: 0 0 28px; color: var(--text-sanft); }
.fehlerkarte .hauptknopf { width: auto; padding: 0 24px; }

@media (max-width: 980px) {
  .anmeldung { grid-template-columns: minmax(320px, .8fr) minmax(440px, 1.2fr); }
  .anmeldung__buehne { padding: 32px; }
  .anmeldung__botschaft h1 { font-size: clamp(2.4rem, 5vw, 3.6rem); }
  .spielstandkarte__anzeige strong { width: 52px; height: 56px; }
  .statusraster { grid-template-columns: 1fr; }
  .formularraster--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tafellayout-raster { grid-template-columns: 1fr; }
  .optionsgruppe--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .medienaktionen { grid-template-columns: 1fr; }
  .ablaufleiste { grid-template-columns: 1fr; }
  .ablaufleiste i { width: 2px; height: 12px; margin-left: 10px; }
  .steuerungsraster { grid-template-columns: 1fr; }
  .profilraster { grid-template-columns: 1fr; }
  .abspiellistenraster { grid-template-columns: 1fr; }
  .anzeigenhinzufuegen, .eintraghinzufuegen { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .anzeigenhinzufuegen .hauptknopf, .eintraghinzufuegen .hauptknopf { width: 100%; }
  .anzeigenzeile { align-items: flex-start; flex-wrap: wrap; }
  .anzeigenzeile__formular { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .eintragzeile__formular { grid-template-columns: repeat(2, minmax(0,1fr)); flex: 1; }
  .aktionsleiste { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .spielereignisformular { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .spielereignisformular__name { grid-column: span 2; }
  .spielereignisformular__eigentor { grid-column: span 2; }
  .spielereignisformular > .hauptknopf { grid-column: auto; width: 100%; }
  .ereignisart-neu { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ereignisartformular { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .ereignisartzeile__info { text-align: left; }
  .spielkarte { grid-template-columns: 125px minmax(300px, 1fr) 44px; }
  .spieldetails { grid-column: 2; }
  .spielkarte__aktion { grid-column: 3; grid-row: 1 / 3; }
}

@media (max-width: 760px) {
  .anmeldung { display: block; min-height: 100vh; background: linear-gradient(180deg, var(--gruen-tief) 0, var(--gruen) 250px, #f7faf7 250px); }
  .anmeldung__buehne { display: none; }
  .anmeldung__formularbereich { min-height: 100vh; padding: 38px 20px; background: transparent; align-items: start; }
  .anmeldekarte { margin-top: 45px; padding: 28px 22px; border-radius: 20px; background: white; box-shadow: var(--schatten); }
  .mobilmarke { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 26px; border-radius: 13px; color: var(--gruen-tief); background: var(--gelb); font-weight: 900; }
  .app-rahmen { display: block; }
  .seitenleiste, .menueknopf, .menuehintergrund, .systemstatus { display: none !important; }
  .nur-desktop { display: none !important; }
  .nur-mobil { display: inline; }
  .kopfzeile { position: sticky; top: 0; z-index: 18; min-height: 66px; padding: 10px 16px; background: rgba(255,255,255,.94); }
  .kopfzeile__kontext { display: none; }
  .kopfzeile h1 { margin: 0; font-size: 1.12rem; }
  .mobilkonto { display: flex; align-items: center; gap: 8px; margin-left: auto; }
  .mobilkonto__profil { display: block; border-radius: 11px; }
  .mobilkonto__profil:focus-visible { outline: 3px solid rgba(39,133,44,.2); outline-offset: 2px; }
  .mobilkonto .avatar, .mobilkonto .symbolknopf { width: 40px; height: 40px; }
  .mobilkonto form { margin: 0; }
  .mobilnavigation { position: fixed; right: 0; bottom: 0; left: 0; z-index: 40; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; min-height: calc(72px + env(safe-area-inset-bottom)); padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid #d9e5db; background: rgba(255,255,255,.96); box-shadow: 0 -10px 30px rgba(17,54,22,.1); backdrop-filter: blur(14px); }
  .mobilnavigation a { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 3px; min-height: 54px; border-radius: 13px; color: #69746b; font-size: .8rem; font-weight: 750; }
  .mobilnavigation a:focus-visible { outline: 3px solid rgba(39,133,44,.18); outline-offset: 1px; }
  .mobilnavigation a.ist-aktiv { color: var(--gruen-dunkel); background: var(--gruen-hell); }
  .mobilnavigation svg { flex: 0 0 23px; width: 23px; height: 23px; }
  .hauptinhalt { padding: 18px 14px calc(98px + env(safe-area-inset-bottom)); }
  .auswahlformular { align-items: stretch; flex-direction: column; }
  .auswahlformular .hauptknopf { width: 100%; }
  .tafelvorschaukarte { margin-bottom: 16px; border-radius: 14px; }
  .tafelvorschaukarte__kopf { padding: 10px 13px; }
  .tafelvorschaukarte__kopf small { display: none; }
  .steuerungsraster { gap: 14px; margin-bottom: 14px; }
  .steuerungskarte, .spielsteuerung, .spielereignisse { padding: 18px 16px; border-radius: 14px; }
  .steuerungskarte .formularkarte__kopf, .spielsteuerung .formularkarte__kopf, .spielereignisse .formularkarte__kopf { margin-bottom: 18px; padding-bottom: 14px; }
  .aktionsleiste { gap: 9px; }
  .steuerknopf { min-height: 62px; padding: 8px; }
  .ergebnisformular input { height: 68px; }
  .spielsteuerung { position: static; box-shadow: var(--schatten); }
  .mobil-steuerungsschalter { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; margin: -5px 0 10px; color: var(--text); cursor: pointer; font-size: .82rem; font-weight: 800; }
  .mobil-steuerungsschalter input { flex: 0 0 auto; width: 19px; height: 19px; margin: 0; accent-color: var(--gruen); }
  .aktionsleiste.ist-fixiert { position: fixed; right: 14px; bottom: calc(82px + env(safe-area-inset-bottom)); left: 14px; z-index: 12; padding: 10px; border: 1px solid #d9e5db; border-radius: 14px; background: rgba(255,255,255,.97); box-shadow: 0 12px 38px rgba(17,54,22,.18); backdrop-filter: blur(12px); }
  .app-seite.mobile-steuerung-ist-fixiert .hauptinhalt { padding-bottom: calc(330px + env(safe-area-inset-bottom)); }
  .spielereignisformular { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .spielereignisformular__name, .spielereignisformular__eigentor, .spielereignisformular > .hauptknopf { grid-column: 1 / -1; }
  .spielereigniszeile { grid-template-columns: 48px 110px minmax(0,1fr); gap: 10px; }
  .spielereigniszeile__kategorie { display: none; }
  .ereignisartzeile { align-items: flex-end; }
  .ereignisartformular { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .spielkarte { grid-template-columns: 1fr auto; gap: 15px; }
  .spieltermin { padding: 0 0 13px; border-right: 0; border-bottom: 1px solid var(--linie); }
  .spielpaarung { grid-column: 1 / -1; grid-row: 2; }
  .spieldetails { grid-column: 1 / -1; grid-row: 3; }
  .spielkarte__aktion { grid-column: 2; grid-row: 1; }
  .willkommen { display: block; }
  .rollenabzeichen { width: max-content; margin-top: 24px; }
  .rollenabzeichen--kompakt { margin-top: 0; }
}

@media (max-width: 430px) {
  .anmeldekarte { padding: 25px 18px; }
  .anmeldetabs { margin-top: 28px; }
  .willkommen { padding: 24px 20px; }
  .leerzustand { align-items: flex-start; }
  .seitenkopf { align-items: flex-start; flex-direction: column; }
  .seitenkopf > div .ueberzeile, .seitenkopf > div > p:last-child { display: none; }
  .seitenkopf { gap: 12px; margin-bottom: 15px; }
  .seitenkopf h2 { font-size: 1.55rem; }
  .seitenkopf .hauptknopf { width: 100%; }
  .formularraster--2, .formularraster--3, .optionsgruppe--2, .optionsgruppe--4 { grid-template-columns: 1fr; }
  .tafellayout-werkzeug { align-items: stretch; flex-direction: column; }
  .tafellayout-element { grid-template-columns: 1fr; }
  .formularaktionen { align-items: stretch; flex-direction: column-reverse; text-align: center; }
  .formularaktionen .hauptknopf { width: 100%; }
  .bereichstabs { width: 100%; }
  .bereichstabs a { flex: 1; text-align: center; }
  .tabellenrahmen { overflow: visible; }
  .datentabelle, .datentabelle tbody { display: block; }
  .datentabelle thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .datentabelle tr { display: grid; grid-template-columns: 58px 1fr auto; gap: 8px 14px; padding: 17px; border-bottom: 1px solid var(--linie); }
  .datentabelle tbody tr:last-child { border-bottom: 0; }
  .datentabelle td { display: block; padding: 0; border: 0; }
  .datentabelle td:nth-child(1) { grid-row: 1 / 4; }
  .datentabelle td:nth-child(2) { display: none; }
  .datentabelle td:nth-child(3) { grid-column: 2; }
  .datentabelle td:nth-child(4) { grid-column: 2; }
  .datentabelle td:nth-child(5) { grid-column: 3; grid-row: 1 / 3; }
  .datentabelle td:nth-child(6) { display: none; }
  .datentabelle td:nth-child(7) { grid-column: 2 / 4; }
  .benutzertabelle tr { grid-template-columns: minmax(0, 1fr) auto; }
  .benutzertabelle td:nth-child(1) { grid-column: 1; grid-row: 1; }
  .benutzertabelle td:nth-child(2) { display: block; grid-column: 1; grid-row: 2; }
  .benutzertabelle td:nth-child(3) { grid-column: 1 / -1; grid-row: 3; }
  .benutzertabelle td:nth-child(4) { grid-column: 1; grid-row: 4; }
  .benutzertabelle td:nth-child(5) { grid-column: 2; grid-row: 4; }
  .benutzertabelle td:nth-child(6) { display: block; grid-column: 1 / -1; grid-row: 5; }
  .benutzertabelle td:nth-child(7) { grid-column: 2; grid-row: 1 / 3; }
  .aktionen-spalte { width: auto; }
  .tabellenaktionen { justify-content: flex-start; margin-top: 5px; }
  .leerzustand__aktion { width: 100%; margin: 18px 0 0; }
  .arbeitskarte .leerzustand { flex-wrap: wrap; }
  .abspiellistendaten { grid-template-columns: 1fr; }
  .anzeigenhinzufuegen, .eintraghinzufuegen, .anzeigenzeile__formular, .eintragzeile__formular { grid-template-columns: 1fr; width: 100%; }
  .anzeigenvorschau { width: 86px; height: 56px; }
  .anzeigenzeile__titel { width: calc(100% - 104px); }
  .mini-schalter { min-height: 34px; }
  .werbepartnertabelle tr { grid-template-columns: minmax(0,1fr) auto; }
  .werbepartnertabelle td:nth-child(1) { display: none; }
  .werbepartnertabelle td:nth-child(2) { display: block; grid-column: 1; grid-row: 1; }
  .werbepartnertabelle td:nth-child(3) { grid-column: 1; grid-row: 2; }
  .werbepartnertabelle td:nth-child(4) { grid-column: 1; grid-row: 3; }
  .werbepartnertabelle td:nth-child(5) { grid-column: 1; grid-row: 4; }
  .werbepartnertabelle td:nth-child(6) { display: none; }
  .werbepartnertabelle td:nth-child(7) { grid-column: 2; grid-row: 1 / 4; }
  .aktionsleiste { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .steuerknopf { font-size: .83rem; }
  .spielereignisformular, .ereignisart-neu, .ereignisartformular { grid-template-columns: 1fr; }
  .spielereignisformular__name, .spielereignisformular__eigentor, .spielereignisformular > .hauptknopf { grid-column: 1; }
  .spielereigniszeile { grid-template-columns: 42px minmax(0,1fr); }
  .spielereigniszeile .ereignismarke { grid-column: 2; grid-row: 1; justify-self: start; }
  .spielereigniszeile__person { grid-column: 2; }
  .ereignisartzeile { align-items: flex-start; }
}

/* Import-Postfach für CSV-Anmeldungen. */
.importmail-liste { margin-top: 18px; }
.importmail-tabelle td:last-child { width: 1%; white-space: nowrap; }
.importmail-dialog .definitionsliste { margin: 0; }
.importmail-nachricht { min-height: 150px; padding: 16px; border: 1px solid var(--linie); border-radius: 12px; background: #f8faf8; }
.importmail-nachricht > strong { display: block; margin-bottom: 9px; }
.importmail-nachricht p { margin: 0; overflow-wrap: anywhere; line-height: 1.55; }
.importmail-anhanginfo { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 14px; }
.importmail-anhanginfo p { margin: 6px 0 0; color: var(--text-sanft); line-height: 1.5; }
.importmail-dialog--csv { width: min(1180px, calc(100vw - 28px)); max-height: 94vh; }
.importmail-dialog--csv > form.ist-import-geladen { gap: 10px; overflow: hidden; }
.importmail-dialog--csv > form.ist-import-geladen .importmail-anhanginfo,
.importmail-dialog--csv > form.ist-import-geladen > footer { display: none; }
.importmail-importframe { width: 100%; height: min(76vh, 900px); border: 1px solid var(--linie); border-radius: 12px; background: #f6f8f6; }
.eingebettete-seite { min-height: 100%; margin: 0; color: var(--text); background: #f6f8f6; }
.eingebettete-seite .hauptinhalt { width: 100%; max-width: none; padding: 16px; }
.eingebettete-seite .bereichskopf { margin-top: 0; }
.importmail-gebuehr-formular { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--linie); }
.importmail-gebuehr-formular label { min-width: 0; }

@media (max-width: 680px) {
  .importmail-gebuehr-formular { grid-template-columns: 1fr; }
}

/* Vereinsmanager: Benutzer- und Befugnisverwaltung */
.nur-screenreader { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.seitenaktionen { margin-bottom: 4px; }
.medien-seitenkopf .seitenaktionen form { display: inline-block; margin: 0; }
.willkommen--kompakt { min-height: 245px; }
.willkommen__marke { display: grid; place-items: center; flex: 0 0 auto; width: 112px; height: 112px; border: 10px solid rgba(255,255,255,.16); border-radius: 32px; color: var(--gruen-tief); background: var(--gelb); font-size: 2rem; font-weight: 950; transform: rotate(4deg); }
.statuskarte__symbol--blau { color: #315c7a; background: #edf6fb; }
.bereichskopf { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 28px 0 20px; }
.bereichskopf h2 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.25rem); letter-spacing: -.035em; }
.bereichskopf p:last-child { max-width: 740px; margin: 8px 0 0; color: var(--text-sanft); }
.bereichskopf--mitte { margin-top: 34px; }
.bereichskopf--aktion { align-items: center; }
.modulraster { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.modulkarte { min-height: 165px; padding: 20px; border: 1px solid #dfe8e1; border-radius: 17px; background: #fff; box-shadow: 0 7px 24px rgba(27,62,31,.035); }
.modulkarte h3 { margin: 20px 0 7px; font-size: 1.02rem; }
.modulkarte p { margin: 0; color: var(--text-sanft); font-size: .82rem; line-height: 1.5; }
.einstellungstabs { display: flex; gap: 6px; width: max-content; max-width: 100%; margin-bottom: 22px; padding: 5px; overflow-x: auto; border: 1px solid #dfe8e1; border-radius: 13px; background: #fff; }
.einstellungstabs a { flex: 0 0 auto; padding: 10px 15px; border-radius: 9px; color: var(--text-sanft); font-size: .83rem; font-weight: 750; }
.einstellungstabs a.ist-aktiv { color: var(--gruen-dunkel); background: var(--gruen-hell); }
.hinweiskarte { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 20px; padding: 0; overflow: hidden; border-color: #dfe8e1; color: var(--text); background: #dfe8e1; }
.hinweiskarte > div { padding: 22px; background: #fff; }
.hinweiskarte strong { display: block; color: var(--gruen-dunkel); }
.hinweiskarte p { margin: 7px 0 0; color: var(--text-sanft); line-height: 1.5; }
.hinweiskarte code { color: var(--gruen-dunkel); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .78rem; }
.tabelle-rahmen { overflow-x: auto; border: 1px solid #dfe8e1; border-radius: 18px; background: #fff; box-shadow: 0 7px 24px rgba(27,62,31,.035); }
.tabelle-rahmen table { width: 100%; border-collapse: collapse; }
.tabelle-rahmen th, .tabelle-rahmen td { padding: 15px 18px; border-bottom: 1px solid #e6ece7; text-align: left; vertical-align: middle; }
.tabelle-rahmen th { color: #59665d; background: #f8faf8; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.tabelle-rahmen td { font-size: .84rem; }
.tabelle-rahmen tbody tr:last-child td { border-bottom: 0; }
.benutzerkopf { display: flex; align-items: center; gap: 12px; min-width: 210px; margin: 0; }
.benutzerkopf > div { min-width: 0; }
.benutzerkopf strong, .benutzerkopf p { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.benutzerkopf p { margin: 3px 0 0; }
.gruppenliste { display: flex; flex-wrap: wrap; gap: 5px; min-width: 180px; }
.gruppenmarke { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 999px; color: color-mix(in srgb, var(--gruppenfarbe) 75%, #132b18); background: color-mix(in srgb, var(--gruppenfarbe) 12%, #fff); font-size: .7rem; font-weight: 800; white-space: nowrap; }
.gruppenmarke::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--gruppenfarbe); }
.gruppenraster { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.gruppenkarte { padding: 20px; border: 1px solid #dfe8e1; border-top: 4px solid var(--gruppenfarbe); border-radius: 16px; background: #fff; box-shadow: 0 7px 24px rgba(27,62,31,.035); }
.gruppenkarte__kopf, .gruppenkarte__fuss { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.gruppenkarte__farbe { width: 31px; height: 31px; border-radius: 10px; background: var(--gruppenfarbe); box-shadow: 0 0 0 5px color-mix(in srgb, var(--gruppenfarbe) 12%, #fff); }
.gruppenkarte h3 { margin: 22px 0 7px; font-size: 1.05rem; }
.gruppenkarte > p { min-height: 3em; margin: 0; color: var(--text-sanft); font-size: .8rem; line-height: 1.5; }
.gruppenkarte__fuss { margin-top: 20px; padding-top: 15px; border-top: 1px solid var(--linie); color: var(--text-sanft); font-size: .76rem; }
.gruppenkarte__fuss a { color: var(--gruen); font-weight: 800; }
.aktionsmarke { display: inline-flex; padding: 5px 8px; border-radius: 7px; color: var(--gruen-dunkel); background: var(--gruen-hell); font-size: .68rem; font-weight: 850; }
.formularabschnitt { padding: clamp(22px, 3vw, 32px); border: 1px solid #dfe8e1; border-radius: 18px; background: #fff; box-shadow: 0 7px 24px rgba(27,62,31,.035); }
.formularabschnitt__kopf { margin-bottom: 24px; padding-bottom: 19px; border-bottom: 1px solid var(--linie); }
.formularabschnitt__kopf h2 { margin: 0; font-size: 1.35rem; letter-spacing: -.025em; }
.formularabschnitt__kopf p:last-child { margin: 5px 0 0; color: var(--text-sanft); font-size: .83rem; }
.formularabschnitt label:not(.schalterzeile):not(.gruppenauswahl):not(.rechtezeile):not(.auswahlkarte):not(.veranstaltungsrechte__zeile):not(.registration-article__choice):not(.registration-article__quantity):not(.orga-benutzersuche) { display: grid; gap: 7px; color: #2c392f; font-size: .84rem; font-weight: 700; }
.formularabschnitt textarea { width: 100%; resize: vertical; }
.gruppenwahl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; border: 0; }
.gruppenauswahl { display: grid; grid-template-columns: auto 12px minmax(0,1fr); align-items: start; gap: 11px; min-height: 88px; padding: 16px; border: 1px solid #dce6de; border-radius: 13px; background: #fbfdfb; cursor: pointer; }
.gruppenauswahl:has(input:checked) { border-color: var(--gruppenfarbe); box-shadow: 0 0 0 2px color-mix(in srgb, var(--gruppenfarbe) 14%, transparent); }
.gruppenauswahl input { width: 18px; min-height: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--gruppenfarbe); }
.gruppenauswahl__zeichen { width: 9px; height: 40px; border-radius: 999px; background: var(--gruppenfarbe); }
.gruppenauswahl strong, .gruppenauswahl small { display: block; }
.gruppenauswahl small { margin-top: 4px; color: var(--text-sanft); font-size: .73rem; font-weight: 450; line-height: 1.4; }
.rechtematrix { overflow: hidden; border: 1px solid #dfe8e1; border-radius: 14px; }
.rechtematrix__kopf, .rechtezeile { display: grid; grid-template-columns: minmax(220px,1.25fr) minmax(145px,.65fr) minmax(220px,.9fr); gap: 14px; align-items: center; }
.rechtematrix__kopf { padding: 11px 15px; color: #59665d; background: #f6f9f6; font-size: .68rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.rechtezeile { min-height: 69px; padding: 10px 15px; border-top: 1px solid var(--linie); }
.rechtezeile > span:first-child strong, .rechtezeile > span:first-child small { display: block; }
.rechtezeile > span:first-child strong { font-size: .82rem; }
.rechtezeile > span:first-child small { margin-top: 3px; color: var(--text-sanft); font-size: .68rem; font-weight: 500; }
.rechtezeile select { min-height: 43px; }
.stufenmarke { display: inline-flex; width: max-content; padding: 6px 9px; border-radius: 8px; color: #5d665f; background: #eef2ef; font-size: .72rem; font-weight: 800; }
.stufenmarke--1 { color: #315c7a; background: #edf6fb; }
.stufenmarke--2 { color: #6a5705; background: var(--gelb-hell); }
.stufenmarke--3 { color: #1b6520; background: var(--gruen-hell); }
.hinweisleiste { margin-bottom: 16px; padding: 13px 15px; border-radius: 11px; color: #5f5009; background: var(--gelb-hell); font-size: .82rem; }
.gefahrenzone { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 20px; padding: 20px 24px; border: 1px solid #f0c8c3; border-radius: 16px; background: #fffafa; }
.gefahrenzone strong { color: #842d25; }
.gefahrenzone p { margin: 4px 0 0; color: #87645f; font-size: .8rem; }
.gefahrknopf { min-height: 44px; padding: 0 16px; border: 1px solid #d8665a; border-radius: 10px; color: #a53b31; background: #fff; font-weight: 800; cursor: pointer; }
.gefahrknopf:hover { color: #fff; background: #b74339; }

/* Standardmails */
.emailvorlagenliste { display: grid; gap: 20px; }
.emailvorlage { min-width: 0; }
.emailvorlage__kopf { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.emailvorlage__kopf > div { min-width: 0; }
.emailvorlage__kopf .statusmarke { flex: 0 0 auto; }
.emailvorlage__platzhalter { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: -4px 0 22px; padding: 13px 15px; border-radius: 12px; color: var(--text-sanft); background: #f4f7f4; font-size: .875rem; }
.emailvorlage__platzhalter > span { margin-right: 3px; color: #435048; font-weight: 800; }
.emailvorlage__platzhalter code { padding: 4px 8px; border: 1px solid #d4e3d6; border-radius: 7px; color: var(--gruen-dunkel); background: #fff; font-size: .8125rem; }
.emailvorlage__platzhalter code.ist-pflicht { border-color: #ddc74b; color: #5f5009; background: #fff8c9; box-shadow: inset 0 0 0 1px rgba(95,80,9,.05); }
.emailvorlage__pflicht { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 7px 13px; margin: -4px 0 22px; padding: 15px 17px; border: 1px solid #ead86c; border-radius: 12px; color: #594b08; background: #fffbea; }
.emailvorlage__pflicht strong { font-size: .875rem; }
.emailvorlage__pflicht code { justify-self: start; padding: 5px 9px; border-radius: 7px; color: var(--gruen-tief); background: #fff; font-size: .8125rem; font-weight: 800; }
.emailvorlage__pflicht p { grid-column: 1 / -1; margin: 0; font-size: .8rem; line-height: 1.5; }
.emailvorlage__aktionen { margin-top: 22px; padding-bottom: 0; }
.emailkonfiguration-hinweis { line-height: 1.55; }
.emailkonfiguration-hinweis code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .8125rem; }
.emailvorlage--grundlagen { margin-top: 22px; }

/* Versandentscheidung nach einer Backend-Anmeldung */
.emailentscheidung { display: grid; place-items: start center; min-height: 58vh; padding: clamp(12px, 3vw, 32px) 0; }
.emailentscheidung__fenster { width: min(100%, 900px); overflow: hidden; border: 1px solid #d9e4db; border-radius: 20px; background: #fff; box-shadow: 0 22px 60px rgba(20,52,24,.13); }
.emailentscheidung__kopf { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: clamp(22px, 4vw, 34px); border-bottom: 1px solid var(--linie); background: linear-gradient(120deg, #f3faf4, #fffbe5); }
.emailentscheidung__kopf h2 { margin: 0; font-size: clamp(1.45rem, 3vw, 2rem); letter-spacing: -.035em; }
.emailentscheidung__kopf p:last-child { max-width: 680px; margin: 7px 0 0; color: var(--text-sanft); line-height: 1.5; }
.emailentscheidung__warnung { margin: 22px clamp(20px, 4vw, 34px) 0; }
.emailentscheidung__metadaten { display: grid; grid-template-columns: minmax(180px,.65fr) minmax(0,1.35fr); gap: 12px; margin: 0; padding: 24px clamp(20px, 4vw, 34px) 0; }
.emailentscheidung__metadaten > div { min-width: 0; padding: 13px 15px; border: 1px solid var(--linie); border-radius: 11px; background: #fbfdfb; }
.emailentscheidung__metadaten dt { margin-bottom: 4px; color: var(--text-sanft); font-size: .7rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.emailentscheidung__metadaten dd { margin: 0; overflow-wrap: anywhere; color: #26332a; font-weight: 750; }
.emailentscheidung__inhalt { margin: 18px clamp(20px, 4vw, 34px) 0; padding: clamp(18px, 3vw, 26px); overflow-wrap: anywhere; border: 1px solid #d9e3db; border-radius: 13px; color: #243028; background: #f8faf8; font: 400 .9rem/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; }
.emailentscheidung__htmlvorschau { display: block; width: calc(100% - 2 * clamp(20px, 4vw, 34px)); min-height: 520px; margin: 18px clamp(20px, 4vw, 34px) 0; border: 1px solid #d9e3db; border-radius: 13px; background: #fff; }
.emailentscheidung__textalternative { margin: 14px clamp(20px, 4vw, 34px) 0; }
.emailentscheidung__textalternative summary { cursor: pointer; color: var(--text-sanft); font-weight: 750; }
.emailentscheidung__textalternative .emailentscheidung__inhalt { margin: 12px 0 0; }
.emailentscheidung__aktionen { display: flex; justify-content: flex-end; gap: 11px; padding: 24px clamp(20px, 4vw, 34px) clamp(24px, 4vw, 34px); }
.emailentscheidung__aktionen .hauptknopf { width: auto; }
.aenderungs-emaildialog { width: min(900px, calc(100vw - 28px)); max-height: min(90vh, 900px); padding: 0; overflow: auto; }
.aenderungs-emaildialog::backdrop { background: rgb(15 31 17 / 58%); backdrop-filter: blur(2px); }
.anmeldung-email-offen { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.anmeldung-email-offen p { margin: 4px 0 0; }
.anmeldung-email-offen .hauptknopf { flex: 0 0 auto; width: auto; }
.laeuferkarten-aktionen { display: grid; justify-items: end; gap: 7px; text-align: right; }
.tabellenhinweis { display: block; max-width: 34rem; margin-top: 4px; color: var(--text-sanft); line-height: 1.35; }
.meldung-preishinweis strong, .meldung-preishinweis p { display: block; }
.meldung-preishinweis p { margin: 4px 0 0; }
.meldungsgebuehren { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
.meldungsgebuehren > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 15px; border: 1px solid var(--linie); border-radius: 11px; background: #f7faf7; }
.meldungsgebuehren span { color: var(--text-sanft); font-size: .82rem; }
.meldung-rechnung { margin-top: 22px; }
.meldung-zahlungsverlauf { margin-top: 22px; }
.statusmarke--zahlung-offen, .statusmarke--zahlung-ausstehend { color: #745c00; background: #fff4bf; }
.statusmarke--zahlung-bezahlt { color: #155c2b; background: #dff3e5; }
.statusmarke--zahlung-dokumentiert { color: #35506b; background: #e6eef6; }
.statusmarke--zahlung-entfallen { color: #626b65; background: #edf0ee; }

/* Profil und private Nachrichten */
.profiltabs { margin-bottom: 22px; }
.profiltabs a { min-width: 128px; text-align: center; }
.profiltabs__anzahl { display: inline-grid; place-items: center; min-width: 22px; height: 22px; margin-left: 6px; padding: 0 6px; border-radius: 999px; color: var(--gruen-tief); background: var(--gelb); font-size: .75rem; font-weight: 900; }
.pn-neu { margin-bottom: 22px; }
.pn-neu__kopf, .pn-kartenkopf, .dashboard-pn__kopf, .pn-verlaufkopf { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.pn-neu__kopf svg, .pn-kartenkopf svg, .dashboard-pn__kopf svg, .pn-verlaufkopf svg { flex: 0 0 24px; width: 24px; height: 24px; }
.pn-neu__zielarten { margin-bottom: 20px; }
.pn-neu .auswahlkarte strong, .pn-antwortziel .auswahlkarte strong { font-size: .9375rem; }
.pn-neu .auswahlkarte small, .pn-antwortziel .auswahlkarte small { font-size: .875rem; line-height: 1.45; }
.pn-zielraster { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.pn-zielraster [hidden] { display: none; }
.pn-zielblock { min-width: 0; }
.pn-zielblock label { display: grid; gap: 7px; color: #2c392f; font-size: .875rem; font-weight: 700; }
.pn-zielblock label span { color: var(--text-sanft); font-size: .8125rem; font-weight: 500; }
.pn-emailwahl { margin-top: 18px; }
.pn-emailwahl input { accent-color: var(--gruen); }
.pn-emailwahl strong { font-size: .9375rem; }
.pn-emailwahl small { font-size: .875rem; line-height: 1.45; }
.pn-neu .formularaktionen { margin-top: 20px; padding-bottom: 0; }
.pn-antwortziel .auswahlkarte:has(input:disabled) { cursor: not-allowed; opacity: .65; background: #f2f4f2; }
.pn-uebersicht { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.pn-spalte, .dashboard-pn__bereich { min-width: 0; overflow: hidden; border: 1px solid #dfe8e1; border-radius: 18px; background: #fff; box-shadow: 0 7px 24px rgba(27,62,31,.035); }
.pn-kartenkopf, .dashboard-pn__kopf { align-items: center; padding: 19px 20px; border-bottom: 1px solid var(--linie); }
.pn-kartenkopf > div, .dashboard-pn__kopf > div { min-width: 0; }
.pn-kartenkopf h3, .dashboard-pn__kopf h2, .dashboard-pn__kopf h3 { margin: 0; letter-spacing: -.02em; }
.pn-kartenkopf h3 { font-size: 1.125rem; }
.dashboard-pn__kopf h2 { font-size: 1.4rem; }
.dashboard-pn__kopf h3 { font-size: 1.1rem; }
.pn-kartenkopf p, .dashboard-pn__kopf p { margin: 3px 0 0; color: var(--text-sanft); font-size: .875rem; }
.pn-anzahl { display: inline-grid; place-items: center; flex: 0 0 auto; min-width: 34px; height: 34px; padding: 0 9px; border-radius: 999px; color: var(--gruen-tief); background: var(--gelb); font-size: .875rem; font-weight: 900; }
.pn-liste { display: grid; }
.pn-eintrag { position: relative; display: grid; gap: 7px; min-width: 0; padding: 17px 20px; border-bottom: 1px solid var(--linie); background: #fff; }
.pn-eintrag:last-child { border-bottom: 0; }
.pn-eintrag:hover { background: #fbfdfb; }
.pn-eintrag:focus-visible { z-index: 1; outline: 3px solid rgba(39,133,44,.2); outline-offset: -3px; }
.pn-eintrag--ungelesen { padding-left: 25px; background: #f4fbf5; }
.pn-eintrag--ungelesen::before { content: ""; position: absolute; top: 18px; bottom: 18px; left: 10px; width: 4px; border-radius: 999px; background: var(--gruen); }
.pn-eintrag__kopf { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-width: 0; }
.pn-eintrag__betreff { min-width: 0; overflow: hidden; color: var(--text); font-size: 1rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.pn-eintrag__zeit { flex: 0 0 auto; color: var(--text-sanft); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.pn-eintrag__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 12px; color: var(--text-sanft); font-size: .875rem; }
.pn-eintrag__vorschau { margin: 0; overflow: hidden; color: #465249; font-size: .875rem; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.pn-status { display: inline-flex; align-items: center; gap: 6px; width: max-content; padding: 4px 8px; border-radius: 999px; color: #5c665f; background: #eef2ef; font-size: .8125rem; font-weight: 750; }
.pn-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #9aa39c; }
.pn-status--ungelesen { color: #1b6520; background: var(--gruen-hell); }
.pn-status--ungelesen::before { background: var(--gruen); }
.pn-status--gelesen { color: #315c7a; background: #edf6fb; }
.pn-status--gelesen::before { background: #4c88ae; }
.pn-leer { padding: 28px 20px; color: var(--text-sanft); font-size: .9375rem; text-align: center; }
.pn-leer strong, .pn-leer span { display: block; }
.pn-leer strong { color: var(--text); font-size: 1rem; }
.pn-leer span { margin-top: 4px; }

.dashboard-pn { margin-top: 24px; overflow: hidden; border: 1px solid #d8e5da; border-radius: 20px; background: #fff; box-shadow: 0 10px 32px rgba(27,62,31,.055); }
.dashboard-pn > .dashboard-pn__kopf { padding: 22px 24px; background: linear-gradient(120deg, #f3faf4, #fffbe5); }
.dashboard-pn__titel { display: flex; align-items: center; gap: 13px; }
.dashboard-pn__symbol { display: grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 13px; color: var(--gruen-dunkel); background: var(--gelb); }
.dashboard-pn__symbol svg { width: 22px; height: 22px; }
.dashboard-pn__link { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; min-height: 42px; padding: 0 14px; border: 1px solid #c8dccb; border-radius: 10px; color: var(--gruen-dunkel); background: #fff; font-size: .875rem; font-weight: 800; }
.dashboard-pn__link:hover { border-color: var(--gruen); background: var(--gruen-hell); }
.dashboard-pn__link:focus-visible { outline: 3px solid rgba(39,133,44,.2); outline-offset: 2px; }
.dashboard-pn__link svg { flex: 0 0 18px; width: 18px; height: 18px; }
.dashboard-pn__raster { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 0; }
.dashboard-pn__bereich { border: 0; border-radius: 0; box-shadow: none; }
.dashboard-pn__bereich + .dashboard-pn__bereich { border-left: 1px solid var(--linie); }
.dashboard-pn__bereich .pn-kartenkopf { padding: 17px 20px; background: #fbfdfb; }

.pn-verlaufkopf { align-items: center; margin-bottom: 22px; }
.pn-verlaufkopf__titel { min-width: 0; }
.pn-verlaufkopf h2 { margin: 0; overflow-wrap: anywhere; font-size: clamp(1.55rem, 3vw, 2.15rem); line-height: 1.15; letter-spacing: -.035em; }
.pn-verlaufkopf p { margin: 7px 0 0; color: var(--text-sanft); font-size: .9375rem; }
.pn-verlauf { position: relative; display: grid; gap: 16px; max-width: 980px; margin: 0 auto 22px; }
.pn-verlauf::before { content: ""; position: absolute; top: 10px; bottom: 10px; left: 30px; width: 2px; background: #d9e5db; }
.pn-nachricht { position: relative; width: min(88%, 760px); margin-left: 58px; padding: 19px 21px; scroll-margin-top: 110px; border: 1px solid #dbe6dd; border-radius: 16px; background: #fff; box-shadow: 0 6px 20px rgba(27,62,31,.035); }
.pn-nachricht:target { border-color: var(--gruen); box-shadow: 0 0 0 4px rgba(39,133,44,.09), 0 9px 28px rgba(27,62,31,.08); }
.pn-nachricht::before { content: ""; position: absolute; top: 24px; left: -34px; width: 12px; height: 12px; border: 4px solid var(--hintergrund); border-radius: 50%; background: var(--gruen); box-shadow: 0 0 0 1px #b9d1bc; }
.pn-nachricht--eigen { border-color: #d8d09b; background: #fffceb; }
.pn-nachricht--eigen::before { background: var(--gelb); }
.pn-nachricht__kopf { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 13px; }
.pn-nachricht__kopf strong { font-size: 1rem; }
.pn-nachricht__kopf small { display: block; margin-top: 2px; color: var(--text-sanft); font-size: .8125rem; }
.pn-nachricht__zeit { flex: 0 0 auto; color: var(--text-sanft); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.pn-nachricht__text { color: #29342c; font-size: 1rem; line-height: 1.65; overflow-wrap: anywhere; }
.pn-nachricht__status { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 15px; padding-top: 13px; border-top: 1px solid rgba(130,145,133,.2); }
.pn-empfaengerdetails { position: relative; }
.pn-empfaengerdetails summary { color: var(--gruen-dunkel); cursor: pointer; font-size: .875rem; font-weight: 750; }
.pn-empfaengerdetails ul { display: grid; gap: 7px; margin: 10px 0 0; padding: 10px 14px; border-radius: 10px; background: rgba(255,255,255,.72); list-style: none; }
.pn-empfaengerdetails li { display: flex; justify-content: space-between; gap: 18px; color: var(--text-sanft); font-size: .875rem; }
.pn-antwort { max-width: 980px; margin: 0 auto; }
.pn-antwort .formularaktionen { margin-top: 20px; padding-bottom: 0; }
.pn-antwortziel { margin-bottom: 20px; }
.pn-antwortziel .auswahlkarte { min-width: min(100%, 240px); }

@media (max-width: 1050px) {
  .modulraster, .gruppenraster, .pn-uebersicht { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .hinweiskarte { grid-template-columns: 1fr; }
  .dashboard-pn__raster { grid-template-columns: 1fr; }
  .dashboard-pn__bereich + .dashboard-pn__bereich { border-top: 1px solid var(--linie); border-left: 0; }
}

@media (max-width: 760px) {
  .willkommen__marke { display: none; }
  .bereichskopf, .bereichskopf--aktion { align-items: stretch; flex-direction: column; }
  .modulraster, .gruppenraster, .gruppenwahl { grid-template-columns: 1fr; }
  .rechtematrix__kopf { display: none; }
  .rechtezeile { grid-template-columns: 1fr; gap: 9px; padding: 14px; }
  .gefahrenzone { align-items: flex-start; flex-direction: column; }
  .tabelle-rahmen { border: 0; background: transparent; box-shadow: none; }
  .tabelle-rahmen thead { display: none; }
  .tabelle-rahmen table, .tabelle-rahmen tbody, .tabelle-rahmen tr, .tabelle-rahmen td { display: block; width: 100%; }
  .tabelle-rahmen tr { margin-bottom: 12px; padding: 15px; border: 1px solid #dfe8e1; border-radius: 14px; background: #fff; }
  .tabelle-rahmen td { padding: 8px 0; border: 0; }
  .pn-uebersicht, .pn-zielraster { grid-template-columns: 1fr; }
  .dashboard-pn > .dashboard-pn__kopf, .pn-verlaufkopf { align-items: stretch; flex-direction: column; }
  .dashboard-pn__link { justify-content: center; width: 100%; }
  .pn-nachricht, .pn-nachricht--eigen { width: calc(100% - 38px); margin-right: 0; margin-left: 38px; }
  .pn-verlauf::before { left: 14px; }
  .pn-nachricht::before { left: -30px; }
  .pn-nachricht__kopf { gap: 7px; flex-direction: column; }
  .pn-empfaengerdetails li { align-items: flex-start; flex-direction: column; gap: 2px; }
  .emailvorlage__kopf { flex-direction: column; }
  .emailentscheidung__kopf { flex-direction: column; }
  .emailentscheidung__metadaten { grid-template-columns: 1fr; }
  .emailentscheidung__aktionen { align-items: stretch; flex-direction: column-reverse; }
  .emailentscheidung__aktionen button { justify-content: center; width: 100%; }
  .anmeldung-email-offen { align-items: stretch; flex-direction: column; }
  .anmeldung-email-offen .hauptknopf { justify-content: center; width: 100%; }
}

@media (max-width: 430px) {
  .profiltabs { width: 100%; }
  .profiltabs a { min-width: 0; }
  .pn-neu, .pn-spalte { border-radius: 14px; }
  .pn-kartenkopf, .dashboard-pn__kopf, .pn-eintrag { padding-right: 15px; padding-left: 15px; }
  .pn-eintrag--ungelesen { padding-left: 21px; }
  .pn-eintrag__kopf { align-items: flex-start; flex-direction: column; gap: 3px; }
  .pn-eintrag__betreff, .pn-eintrag__vorschau { white-space: normal; }
  .pn-antwortziel { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Veranstaltungen */
.symbolknopf:disabled, .sekundaerknopf:disabled { cursor: not-allowed; opacity: .48; filter: grayscale(.25); }
.symbolknopf:disabled:hover, .sekundaerknopf:disabled:hover { color: #657068; border-color: var(--linie); background: white; transform: none; }
.optionsgruppe--3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.veranstaltungen-seitenkopf .hauptknopf { flex: 0 0 auto; }
.veranstaltungen-sortierung { display: grid; grid-template-columns: auto minmax(210px, 280px) auto; align-items: center; justify-content: end; gap: 10px; margin: -8px 0 18px; }
.veranstaltungen-sortierung label { margin: 0; color: var(--text-sanft); font-size: .8125rem; }
.veranstaltungen-sortierung select { min-height: 44px; }
.veranstaltungen-sortierung .sekundaerknopf { min-height: 44px; }
.veranstaltungsname { display: block; width: max-content; max-width: 100%; }
.veranstaltungsname:hover strong { color: var(--gruen); text-decoration: underline; }
.veranstaltungsname strong, .veranstaltungsname small { display: block; overflow-wrap: anywhere; }
.veranstaltungsname small { margin-top: 3px; color: var(--text-sanft); font-size: .75rem; }
.veranstaltungsart { display: inline-flex; padding: 5px 9px; border-radius: 8px; color: #315c7a; background: #edf6fb; font-size: .75rem; font-weight: 800; }
.statusmarke--veranstaltung-in_vorbereitung { color: #4f5f69; background: #eef3f5; }
.statusmarke--veranstaltung-in_vorbereitung::before { background: #7e929e; }
.statusmarke--veranstaltung-anmeldung_offen { color: #176025; background: #e8f7eb; }
.statusmarke--veranstaltung-anmeldung_offen::before { background: #2c963b; }
.statusmarke--veranstaltung-abgeschlossen { color: #5e6260; background: #eceeed; }
.statusmarke--veranstaltung-abgeschlossen::before { background: #777e79; }

.veranstaltungskopf { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 22px; }
.veranstaltungskopf .zuruecklink { margin-bottom: 18px; }
.veranstaltungskopf .ueberzeile { margin-bottom: 7px; }
.veranstaltungskopf h2 { margin: 0; font-size: clamp(1.65rem, 3.4vw, 2.5rem); line-height: 1.1; letter-spacing: -.04em; overflow-wrap: anywhere; }
.veranstaltungskopf > div:first-child > p:last-child { margin: 8px 0 0; color: var(--text-sanft); overflow-wrap: anywhere; }
.veranstaltungskopf__meta { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 11px; flex: 0 0 auto; }
.veranstaltungskopf__meta > strong { padding: 7px 11px; border-radius: 9px; color: var(--gruen-dunkel); background: var(--gruen-hell); font-size: .875rem; font-variant-numeric: tabular-nums; }
.veranstaltungstabs { display: flex; gap: 5px; width: 100%; margin-bottom: 20px; padding: 5px; overflow-x: auto; scrollbar-width: thin; border: 1px solid #dfe8e1; border-radius: 13px; background: #fff; }
.veranstaltungstabs a { flex: 0 0 auto; min-height: 41px; padding: 10px 14px; border-radius: 9px; color: var(--text-sanft); font-size: .8125rem; font-weight: 760; white-space: nowrap; }
.veranstaltungstabs a:hover { color: var(--gruen-dunkel); background: #f3f8f4; }
.veranstaltungstabs a:focus-visible { outline: 3px solid rgba(39,133,44,.18); outline-offset: -1px; }
.veranstaltungstabs a.ist-aktiv { color: var(--gruen-dunkel); background: var(--gruen-hell); }
.veranstaltungstabs--untergeordnet { width: max-content; max-width: 100%; margin-top: -10px; background: #f7faf7; }
.veranstaltungstabs--untergeordnet > span { display: inline-flex; align-items: center; flex: 0 0 auto; padding: 0 10px; color: #667268; font-size: .6875rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.veranstaltungsplatzhalter { display: flex; align-items: center; gap: 20px; min-height: 280px; padding: clamp(28px, 5vw, 52px); border: 1px dashed #cbdacf; border-radius: 20px; background: linear-gradient(140deg, #fff, #f6faf6); }
.veranstaltungsplatzhalter--dashboard { border-style: solid; background: linear-gradient(125deg, #f1f9f2, #fffbe4); }
.veranstaltungsplatzhalter__symbol { display: grid; place-items: center; flex: 0 0 auto; width: 64px; height: 64px; border-radius: 18px; color: var(--gruen-dunkel); background: var(--gelb); box-shadow: 0 10px 26px rgba(61,72,25,.12); }
.veranstaltungsplatzhalter__symbol svg { width: 30px; height: 30px; }
.veranstaltungsplatzhalter h3 { margin: 0; font-size: 1.35rem; letter-spacing: -.025em; }
.veranstaltungsplatzhalter p:last-child { max-width: 650px; margin: 7px 0 0; color: var(--text-sanft); }

.veranstaltungsformular { max-width: 1120px; }
.veranstaltungsformular .formularabschnitt__kopf { display: flex; align-items: flex-start; gap: 14px; }
.veranstaltungsformular .formularabschnitt .optionsgruppe label.auswahlkarte { display: flex; align-items: flex-start; gap: 11px; }
.veranstaltungstypwahl { margin-bottom: 22px; }
.stadtlaufzeit { margin-top: 22px; padding: 20px; border: 1px solid #cce0ce; border-radius: 14px; background: #f5faf5; }
.stadtlaufzeit[hidden] { display: none; }
.stadtlaufzeit__kopf { margin-bottom: 15px; }
.stadtlaufzeit__kopf strong, .stadtlaufzeit__kopf small { display: block; }
.stadtlaufzeit__kopf small { margin-top: 3px; color: var(--text-sanft); font-size: .8125rem; }
.veranstaltungsabrechnung { align-items: end; margin-top: 22px; }
.veranstaltungsabrechnung .optionsgruppe { align-self: stretch; }
.veranstaltungsabrechnung .auswahlkarte { min-width: 0; padding: 13px 11px; }
.html-editor > label { margin-bottom: 8px; }
.html-editor__werkzeuge { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding: 7px; border: 1px solid #ced9d0; border-bottom: 0; border-radius: 11px 11px 0 0; background: #f5f8f5; }
.html-editor__werkzeuge button { min-height: 34px; padding: 0 10px; border: 1px solid #d6e0d8; border-radius: 7px; color: #435047; background: #fff; cursor: pointer; font-size: .75rem; font-weight: 750; }
.html-editor__werkzeuge button:hover { color: var(--gruen-dunkel); border-color: #aecaB1; background: var(--gruen-hell); }
.html-editor__werkzeuge + textarea { border-radius: 0 0 11px 11px; }
.html-editor > small, .veranstaltungsmedien .formularfeld > small, .veranstaltungsmedien label > small { display: block; margin-top: 7px; color: var(--text-sanft); font-size: .75rem; }
.veranstaltungsmedien { margin-top: 22px; }
.medien-suchfeld { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
.medien-suchfeld input { color: #7d8980; background: #f2f5f2; }
.url-kuerzel { display: grid; grid-template-columns: 42px minmax(0, 1fr); }
.url-kuerzel > span { display: grid; place-items: center; border: 1px solid #ced9d0; border-right: 0; border-radius: 11px 0 0 11px; color: var(--text-sanft); background: #f4f7f4; font-weight: 800; }
.url-kuerzel input { border-radius: 0 11px 11px 0; }
.veranstaltungsrechte { overflow: hidden; border: 1px solid #dfe8e1; border-radius: 14px; }
.veranstaltungsrechte__kopf, .veranstaltungsrechte__zeile { display: grid; grid-template-columns: minmax(240px, 1.25fr) minmax(210px, .75fr); align-items: center; gap: 18px; }
.veranstaltungsrechte__kopf { padding: 11px 15px; color: #59665d; background: #f6f9f6; font-size: .6875rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.veranstaltungsrechte__zeile { min-height: 72px; margin: 0; padding: 11px 15px; border-top: 1px solid var(--linie); }
.veranstaltungsrechte__zeile > span strong, .veranstaltungsrechte__zeile > span small { display: block; }
.veranstaltungsrechte__zeile > span strong { font-size: .875rem; }
.veranstaltungsrechte__zeile > span small { margin-top: 3px; color: var(--text-sanft); font-size: .75rem; font-weight: 450; overflow-wrap: anywhere; }
.veranstaltungsrechte__zeile select { min-height: 44px; }
.veranstaltungsformular .formularabschnitt .veranstaltungsrechte label.veranstaltungsrechte__zeile { display: grid; gap: 18px; }

@media (max-width: 900px) {
  .veranstaltungen-sortierung { grid-template-columns: minmax(0, 1fr) auto; justify-content: stretch; }
  .veranstaltungen-sortierung label { grid-column: 1 / -1; }
  .veranstaltungsabrechnung { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .veranstaltungen-seitenkopf { align-items: stretch; flex-direction: column; }
  .veranstaltungen-seitenkopf .hauptknopf { width: 100%; }
  .veranstaltungskopf { align-items: flex-start; flex-direction: column; gap: 14px; }
  .veranstaltungskopf__meta { justify-content: flex-start; }
  .veranstaltungstabs { margin-right: -14px; width: calc(100% + 28px); padding-right: 14px; padding-left: 14px; border-right: 0; border-left: 0; border-radius: 0; }
  .veranstaltungstabs--untergeordnet { width: max-content; min-width: calc(100% + 28px); max-width: calc(100% + 28px); }
  .veranstaltungstabelle, .veranstaltungstabelle tbody { display: block; }
  .veranstaltungstabelle thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .veranstaltungstabelle tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 18px; padding: 18px; border-bottom: 1px solid var(--linie); }
  .veranstaltungstabelle td, .veranstaltungstabelle td:nth-child(n) { display: flex; align-items: center; justify-content: space-between; gap: 12px; grid-column: auto; grid-row: auto; width: auto; padding: 0; border: 0; text-align: right; }
  .veranstaltungstabelle td::before { content: attr(data-label); color: var(--text-sanft); font-size: .6875rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
  .veranstaltungstabelle td:nth-child(2), .veranstaltungstabelle td:nth-child(7) { grid-column: 1 / -1; }
  .veranstaltungstabelle td:nth-child(2) { display: block; padding-bottom: 12px; border-bottom: 1px solid var(--linie); text-align: left; }
  .veranstaltungstabelle td:nth-child(2)::before, .veranstaltungstabelle td:nth-child(7)::before { display: none; }
  .veranstaltungstabelle td:nth-child(7) { justify-content: flex-end; padding-top: 4px; }
  .veranstaltungstabelle .tabellenaktionen { width: 100%; justify-content: flex-end; }
  .veranstaltungstabelle .tabellenaktionen .symbolknopf { width: 42px; height: 42px; }
  .veranstaltungsplatzhalter { align-items: flex-start; min-height: 240px; }
  .veranstaltungsrechte__kopf { display: none; }
  .veranstaltungsrechte__zeile { grid-template-columns: 1fr; gap: 10px; padding: 15px; }
  .veranstaltungsformular .formularabschnitt .veranstaltungsrechte label.veranstaltungsrechte__zeile { gap: 10px; }
}

@media (max-width: 560px) {
  .veranstaltungen-sortierung { grid-template-columns: 1fr; }
  .veranstaltungen-sortierung label { grid-column: auto; }
  .veranstaltungen-sortierung .sekundaerknopf { width: 100%; }
  .optionsgruppe--3 { grid-template-columns: 1fr; }
  .veranstaltungsplatzhalter { flex-direction: column; }
  .medien-suchfeld { grid-template-columns: 1fr; }
  .medien-suchfeld .sekundaerknopf { width: 100%; }
}

/* Veranstaltungs-Orga und Sponsoren */
.kommunikationshinweis,
.stammdatenhinweis {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: -5px 0 20px;
  padding: 14px 16px;
  border: 1px solid #cfe2d1;
  border-radius: 13px;
  color: #285d31;
  background: #f1f8f2;
}
.kommunikationshinweis > svg { flex: 0 0 auto; width: 24px; height: 24px; fill: currentColor; }
.kommunikationshinweis p,
.stammdatenhinweis p { margin: 0; font-size: .84rem; line-height: 1.55; }
.kommunikationshinweis strong { color: var(--gruen-dunkel); }
.stammdatenhinweis { flex-wrap: wrap; }
.stammdatenhinweis > span { padding: 4px 8px; border-radius: 999px; color: #624f00; background: var(--gelb); font-size: .69rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.stammdatenhinweis > a { margin-left: auto; color: var(--gruen-dunkel); font-size: .8rem; font-weight: 800; }
.stammdatenhinweis > a:hover { text-decoration: underline; }

.orgagruppen-raster { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.orgagruppen-karte { display: flex; min-width: 0; min-height: 285px; padding: 19px; border: 1px solid #dfe8e1; border-radius: 17px; background: #fff; box-shadow: 0 7px 24px rgba(27,62,31,.04); flex-direction: column; }
.orgagruppen-karte__kopf { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.orgagruppen-karte__symbol { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 12px; color: var(--gruen-dunkel); background: var(--gruen-hell); }
.orgagruppen-karte__symbol svg { width: 22px; height: 22px; fill: currentColor; }
.orgagruppen-karte__inhalt { margin: 18px 0 15px; }
.orgagruppen-karte__inhalt h3 { margin: 0; font-size: 1.08rem; overflow-wrap: anywhere; }
.orgagruppen-karte__inhalt p { display: -webkit-box; margin: 7px 0 0; overflow: hidden; color: var(--text-sanft); font-size: .81rem; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.mitgliederchips { display: flex; align-content: flex-start; flex-wrap: wrap; gap: 6px; margin-bottom: 17px; }
.mitgliedchip,
.mitgliederchips__leer { display: inline-flex; max-width: 100%; padding: 5px 8px; overflow: hidden; border-radius: 999px; color: #48604d; background: #f0f5f1; font-size: .69rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.mitgliedchip--rest { color: #5f500d; background: #fff7cd; }
.mitgliederchips__leer { color: var(--text-sanft); font-weight: 550; }
.orgagruppen-karte__aktionen { display: flex; align-items: center; gap: 9px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--linie); }
.orgagruppen-karte__aktionen .sekundaerknopf { flex: 1 1 auto; }
.orgagruppen-karte__aktionen form { margin-left: auto; }

.orga-mitgliederkarte { max-width: 1120px; margin-top: 20px; }
.orga-mitgliederliste { margin: 0; padding: 0; list-style: none; }
.orga-mitgliederliste li { display: flex; align-items: center; gap: 12px; min-height: 68px; padding: 11px 20px; border-bottom: 1px solid var(--linie); }
.mitglied-avatar { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; color: white; background: var(--gruen); font-size: .78rem; font-weight: 850; }
.orga-mitglied__daten { min-width: 0; }
.orga-mitglied__daten strong,
.orga-mitglied__daten small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orga-mitglied__daten strong { font-size: .86rem; }
.orga-mitglied__daten small { margin-top: 3px; color: var(--text-sanft); font-size: .73rem; }
.orga-mitgliederliste form { margin-left: auto; }
.orga-einladung { padding: 20px; background: #f8faf8; }
.orga-einladung > label { display: block; margin-bottom: 8px; font-size: .78rem; font-weight: 800; }
.orga-einladung__felder { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
.orga-einladung > small { display: block; margin-top: 7px; color: var(--text-sanft); font-size: .72rem; }

.sponsoren-seitenkopf { margin-bottom: 14px; }
.sponsoren-tabs { width: max-content; max-width: 100%; }
.sponsoren-bereichskopf { margin-top: 12px; }
.sponsoren-tabelle { min-width: 940px; }
.sponsoren-kategorien-tabelle { min-width: 820px; }
.tabellen-id { color: #67736a; font-size: .76rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.reihenfolge-marke,
.medien-id { display: inline-flex; padding: 5px 8px; border-radius: 8px; color: #536258; background: #f0f4f1; font-size: .72rem; font-weight: 750; white-space: nowrap; }
.sponsor-logo-vorschau { display: block; width: 84px; height: 46px; object-fit: contain; border: 1px solid var(--linie); border-radius: 8px; background: #fff; }
.kontaktblock,
.kontaktblock small { display: block; }
.kontaktblock { line-height: 1.45; }
.kontaktblock small { margin-top: 3px; color: var(--text-sanft); }
.kontaktblock a { color: var(--gruen-dunkel); }
.kontaktblock a:hover { text-decoration: underline; }
.tabellentext-lang { max-width: 360px; color: var(--text-sanft); line-height: 1.5; }
.sponsor-formular { max-width: 980px; }

.veranstaltung-sponsorengruppen { display: grid; gap: 17px; }
.sponsor-kategoriekopf > div > p { max-width: 720px; }
.veranstaltung-sponsorenliste { display: grid; }
.veranstaltung-sponsorzeile { display: grid; grid-template-columns: minmax(210px, .8fr) minmax(250px, 1fr) auto; align-items: center; gap: 20px; min-height: 104px; padding: 17px 20px; border-bottom: 1px solid var(--linie); }
.veranstaltung-sponsorzeile:last-child { border-bottom: 0; }
.veranstaltung-sponsorzeile__hauptdaten { min-width: 0; }
.veranstaltung-sponsorzeile__hauptdaten > strong,
.veranstaltung-sponsorzeile__hauptdaten > small { display: block; overflow-wrap: anywhere; }
.veranstaltung-sponsorzeile__hauptdaten > small { margin-top: 5px; color: var(--text-sanft); font-size: .74rem; }
.sponsor-reihenfolge { display: inline-grid; place-items: center; min-width: 32px; height: 27px; margin-bottom: 8px; padding: 0 7px; border-radius: 8px; color: #64540c; background: #fff6c3; font-size: .69rem; font-weight: 850; }
.veranstaltung-sponsorzeile__details { min-width: 0; color: var(--text-sanft); font-size: .78rem; line-height: 1.5; }
.veranstaltung-sponsorzeile__details p { margin: 7px 0 0; overflow-wrap: anywhere; }
.sponsor-kontaktzeile { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.sponsor-kontaktzeile a { color: var(--gruen-dunkel); font-weight: 700; }
.veranstaltung-sponsorzeile__aktionen { justify-content: flex-end; }
.veranstaltung-sponsor-formular { max-width: 1040px; }
.sponsor-kontaktvorschau { margin-top: 22px; padding: 17px 18px; border: 1px solid #d8e5d9; border-radius: 13px; background: #f6faf6; }
.sponsor-kontaktvorschau > div > span,
.sponsor-kontaktvorschau > div > strong { display: block; }
.sponsor-kontaktvorschau > div > span { color: var(--text-sanft); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sponsor-kontaktvorschau > div > strong { margin-top: 4px; font-size: .96rem; }
.sponsor-kontaktvorschau dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 15px 0 0; }
.sponsor-kontaktvorschau dl > div { min-width: 0; padding-top: 10px; border-top: 1px solid #dce7dd; }
.sponsor-kontaktvorschau dt { color: var(--text-sanft); font-size: .67rem; font-weight: 800; text-transform: uppercase; }
.sponsor-kontaktvorschau dd { margin: 4px 0 0; overflow-wrap: anywhere; font-size: .78rem; }
.formularfeld > span { display: block; margin-bottom: 8px; font-size: .82rem; font-weight: 750; }

@media (max-width: 1040px) {
  .orgagruppen-raster { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .veranstaltung-sponsorzeile { grid-template-columns: minmax(200px, .8fr) minmax(230px, 1fr); }
  .veranstaltung-sponsorzeile__aktionen { grid-column: 1 / -1; justify-content: flex-end; padding-top: 11px; border-top: 1px solid var(--linie); }
}

@media (max-width: 760px) {
  .kommunikationshinweis { align-items: flex-start; }
  .stammdatenhinweis > a { width: 100%; margin-left: 0; }
  .orgagruppen-raster { grid-template-columns: 1fr; }
  .orgagruppen-karte { min-height: 250px; }
  .orga-einladung__felder { grid-template-columns: 1fr; }
  .orga-einladung__felder .hauptknopf { width: 100%; }
  .sponsoren-tabs { width: calc(100% + 28px); max-width: calc(100% + 28px); }
  .veranstaltung-sponsorzeile { grid-template-columns: 1fr; gap: 13px; }
  .veranstaltung-sponsorzeile__aktionen { grid-column: auto; }
  .sponsor-kontaktvorschau dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
  .orga-mitgliederliste li { align-items: flex-start; padding-right: 14px; padding-left: 14px; }
  .orga-mitglied__daten { padding-top: 2px; }
  .orga-mitgliederliste .symbolknopf { width: 40px; height: 40px; }
  .sponsor-kontaktvorschau dl { grid-template-columns: 1fr; }
}

/* Veranstaltungsartikel */
.artikel-bereichskopf { margin-top: 6px; }
.artikel-bereichskopf .hauptknopf { flex: 0 0 auto; }
.artikel-kacheln { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 285px), 1fr)); gap: 18px; }
.artikelkarte { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid #dce7de; border-radius: 18px; background: #fff; box-shadow: 0 8px 28px rgba(25,59,29,.055); }
.artikelkarte--inaktiv { background: #fafbfa; }
.artikelkarte__bild { position: relative; display: grid; min-height: 174px; overflow: hidden; place-items: center; background: linear-gradient(145deg, #edf7ef, #fff9d9); }
.artikelkarte--inaktiv .artikelkarte__bild { filter: grayscale(.72); opacity: .78; }
.artikelkarte__bild img { width: 100%; height: 100%; min-height: 174px; object-fit: cover; }
.artikelkarte__bildplatzhalter { display: grid; width: 68px; height: 68px; place-items: center; border: 1px solid rgba(39,133,44,.14); border-radius: 19px; color: var(--gruen); background: rgba(255,255,255,.72); box-shadow: 0 12px 30px rgba(34,82,39,.08); }
.artikelkarte__bildplatzhalter svg { width: 34px; height: 34px; }
.artikelkarte__preis { position: absolute; right: 13px; bottom: 13px; padding: 8px 11px; border-radius: 10px; color: #1c3e20; background: var(--gelb); box-shadow: 0 7px 18px rgba(87,75,11,.14); font-size: .9375rem; font-weight: 900; font-variant-numeric: tabular-nums; }
.artikelkarte__medienmarke { position: absolute; top: 13px; left: 13px; padding: 6px 9px; border-radius: 8px; color: #415047; background: rgba(255,255,255,.9); font-size: .75rem; font-weight: 800; backdrop-filter: blur(6px); }
.artikelkarte__inhalt { display: flex; flex: 1; flex-direction: column; padding: 19px; }
.artikelkarte__kopf { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.artikelkarte h3 { margin: 14px 0 7px; font-size: 1.125rem; line-height: 1.25; overflow-wrap: anywhere; }
.artikelkarte__beschreibung { min-height: 3.1em; margin: 0; color: var(--text-sanft); font-size: .8125rem; line-height: 1.55; }
.artikelkarte__daten { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--linie); }
.artikelkarte__daten div { min-width: 0; }
.artikelkarte__daten dt { color: var(--text-sanft); font-size: .6875rem; font-weight: 780; letter-spacing: .035em; text-transform: uppercase; }
.artikelkarte__daten dd { margin: 3px 0 0; color: #344139; font-size: .8125rem; font-weight: 760; overflow-wrap: anywhere; }
.artikelkarte__aktionen { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 68px; padding: 12px 18px; border-top: 1px solid var(--linie); background: #fbfdfb; }
.artikelkarte__aktionen form { margin: 0; }
.artikelkarte__aktionen .sekundaerknopf { min-height: 42px; }
.symbolknopf--gefahr { color: #a53b31; border-color: #efd0cc; background: #fffafa; }
.symbolknopf--gefahr:hover { color: #fff; border-color: #b74339; background: #b74339; }
.artikelkarte__loeschsperre { display: inline-flex; align-items: center; min-height: 31px; padding: 5px 9px; border-radius: 8px; color: #765e0c; background: #fff7d2; font-size: .6875rem; font-weight: 850; white-space: nowrap; }
.artikel-leerzustand { flex-wrap: wrap; }

.veranstaltungsartikel-formular { max-width: 1120px; }
.veranstaltungsartikel-formular .formularfeld > small { display: block; margin-top: 7px; color: var(--text-sanft); font-size: .75rem; }
.artikel-html-editor { margin-top: 22px; }
.artikel-zusatzfelder__kopf { align-items: center; justify-content: space-between; }
.artikel-zusatzfelder__kopf .sekundaerknopf { flex: 0 0 auto; min-height: 44px; }
.artikel-zusatzfelder__liste { display: grid; gap: 14px; }
.artikel-zusatzfeld { padding: 18px; border: 1px solid #d9e5db; border-radius: 14px; background: #fbfdfb; }
.artikel-zusatzfeld__kopf { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.artikel-zusatzfeld__kopf strong { font-size: .9375rem; }
.artikel-zusatzfeld__optionen { margin-top: 16px; }
.artikel-zusatzfeld__optionen[hidden] { display: none !important; }
.artikel-zusatzfeld__optionen small { color: var(--text-sanft); font-size: .75rem; font-weight: 500; }
.artikel-zusatzfeld__pflicht { margin-top: 15px; }
.artikel-zusatzfelder__leer { padding: 32px 20px; border: 1px dashed #cfdcd1; border-radius: 14px; text-align: center; background: #fbfdfb; }
.artikel-zusatzfelder__leer[hidden] { display: none; }
.artikel-zusatzfelder__leer strong { font-size: .9375rem; }
.artikel-zusatzfelder__leer p { margin: 4px 0 0; color: var(--text-sanft); font-size: .8125rem; }
.gefahrenzone--gesperrt { border-color: #eadfa8; background: #fffdf1; }
.gefahrenzone--gesperrt strong { color: #705d0c; }
.gefahrenzone--gesperrt p { color: #776b3e; }

@media (max-width: 760px) {
  .artikel-bereichskopf, .artikel-zusatzfelder__kopf { align-items: stretch; flex-direction: column; }
  .artikel-bereichskopf .hauptknopf, .artikel-zusatzfelder__kopf .sekundaerknopf { width: 100%; }
}

@media (max-width: 430px) {
  .artikel-kacheln { grid-template-columns: 1fr; }
  .artikelkarte__bild { min-height: 150px; }
  .artikelkarte__daten { grid-template-columns: 1fr; }
  .artikel-zusatzfeld { padding: 15px; }
  .gefahrenzone--gesperrt { align-items: flex-start; flex-direction: column; }
}

/* Veranstaltungsläufe */
.lauf-bereichskopf { margin-top: 6px; }
.lauf-bereichskopf .hauptknopf { flex: 0 0 auto; }
.lauf-tabelle { min-width: 1060px; }
.lauf-tabelle th:first-child { min-width: 210px; }
.lauf-name,
.lauf-termin,
.lauf-zahlen,
.lauf-wertungsinfo { display: block; min-width: 0; }
.lauf-name strong,
.lauf-name small,
.lauf-termin strong,
.lauf-termin small,
.lauf-zahlen strong,
.lauf-zahlen small,
.lauf-wertungsinfo strong,
.lauf-wertungsinfo small { display: block; }
.lauf-name { color: var(--text); text-decoration: none; }
.lauf-name:hover strong { color: var(--gruen-dunkel); text-decoration: underline; }
.lauf-name strong { overflow-wrap: anywhere; font-size: .875rem; }
.lauf-name small,
.lauf-termin small,
.lauf-zahlen small,
.lauf-wertungsinfo small { margin-top: 4px; color: var(--text-sanft); font-size: .72rem; }
.lauf-termin strong,
.lauf-zahlen strong,
.lauf-wertungsinfo strong { color: #344139; font-size: .8rem; }
.lauf-marken { display: flex; align-items: flex-start; flex-direction: column; gap: 6px; }
.lauf-artmarke { display: inline-flex; padding: 5px 8px; border-radius: 999px; color: #315e37; background: #edf6ee; font-size: .69rem; font-weight: 800; white-space: nowrap; }
.lauf-leerzustand { min-height: 230px; }

.veranstaltung-lauf-formular { max-width: 1120px; }
.lauf-artwahl,
.lauf-wettkampftagwahl,
.lauf-nachmeldungwahl { margin-top: 22px; }
.lauf-dynamikfeld { margin-top: 18px; padding: 17px 18px; border: 1px solid #d7e4d9; border-radius: 14px; background: #f7faf7; }
.lauf-dynamikfeld[hidden] { display: none !important; }
.lauf-dynamikfeld__kopf { margin-bottom: 14px; }
.lauf-dynamikfeld__kopf strong,
.lauf-dynamikfeld__kopf small { display: block; }
.lauf-dynamikfeld__kopf strong { color: #304b34; font-size: .86rem; }
.lauf-dynamikfeld__kopf small { margin-top: 4px; color: var(--text-sanft); font-size: .74rem; line-height: 1.5; }
.lauf-terminhinweis { display: flex; align-items: flex-start; gap: 11px; margin: 18px 0; padding: 13px 15px; border: 1px solid #cfe2d1; border-radius: 12px; color: #315e37; background: #f1f8f2; }
.lauf-terminhinweis svg { flex: 0 0 auto; width: 21px; height: 21px; fill: currentColor; }
.lauf-terminhinweis p { margin: 0; font-size: .8rem; line-height: 1.5; }
.lauf-terminfelder { align-items: start; }
.lauf-terminfelder label > small,
.lauf-nachmeldegebuehr label > small,
.lauf-medienfelder label > small { display: block; margin-top: 7px; color: var(--text-sanft); font-size: .72rem; font-weight: 500; line-height: 1.45; }
.lauf-distanzfeld { grid-template-columns: minmax(0, 1fr) 96px; }
.lauf-distanzfeld select { min-width: 0; border-left: 0; border-radius: 0 11px 11px 0; }
.lauf-distanzfeld input { border-radius: 11px 0 0 11px; }
.lauf-nachmeldegebuehr { max-width: 460px; }
.lauf-html-editor { margin-top: 22px; }

.lauf-zusatzwertungen__kopf { align-items: center; justify-content: space-between; }
.lauf-zusatzwertungen__kopf > div { flex: 1 1 auto; }
.lauf-zusatzwertungen__kopf .sekundaerknopf { flex: 0 0 auto; min-height: 44px; }
.lauf-zusatzwertungen__liste { display: grid; gap: 14px; }
.lauf-wertung { padding: 18px; border: 1px solid #d9e5db; border-radius: 14px; background: #fbfdfb; }
.lauf-wertung__kopf { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.lauf-wertung__kopf strong { color: #304b34; font-size: .9rem; }
.lauf-wertung__felder { grid-template-columns: minmax(210px, 1.4fr) repeat(3, minmax(130px, .65fr)); }
.lauf-zusatzwertungen__leer { padding: 31px 20px; border: 1px dashed #cfdcd1; border-radius: 14px; text-align: center; background: #fbfdfb; }
.lauf-zusatzwertungen__leer[hidden] { display: none; }
.lauf-zusatzwertungen__leer strong { font-size: .9rem; }
.lauf-zusatzwertungen__leer p { margin: 5px 0 0; color: var(--text-sanft); font-size: .78rem; }
.lauf-medienfelder select:disabled { color: #758078; background: #f2f5f2; }

@media (max-width: 960px) {
  .lauf-wertung__felder { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .lauf-bereichskopf,
  .lauf-zusatzwertungen__kopf { align-items: stretch; flex-direction: column; }
  .lauf-bereichskopf .hauptknopf,
  .lauf-zusatzwertungen__kopf .sekundaerknopf { width: 100%; }
  .lauf-tabelle,
  .lauf-tabelle tbody { display: block; min-width: 0; }
  .lauf-tabelle thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .lauf-tabelle tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 18px; padding: 18px; border-bottom: 1px solid var(--linie); }
  .lauf-tabelle td,
  .lauf-tabelle td:nth-child(n) { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: auto; padding: 0; border: 0; text-align: right; }
  .lauf-tabelle td::before { content: attr(data-label); flex: 0 0 auto; color: var(--text-sanft); font-size: .67rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
  .lauf-tabelle td:first-child,
  .lauf-tabelle td:last-child { grid-column: 1 / -1; }
  .lauf-tabelle td:first-child { display: block; padding-bottom: 12px; border-bottom: 1px solid var(--linie); text-align: left; }
  .lauf-tabelle td:first-child::before,
  .lauf-tabelle td:last-child::before { display: none; }
  .lauf-tabelle td:last-child { justify-content: flex-end; padding-top: 4px; }
  .lauf-tabelle .lauf-marken { align-items: flex-end; }
  .lauf-tabelle .tabellenaktionen { width: 100%; justify-content: flex-end; }
  .lauf-tabelle .symbolknopf { width: 42px; height: 42px; }
}

@media (max-width: 620px) {
  .lauf-wertung { padding: 15px; }
  .lauf-wertung__felder { grid-template-columns: 1fr; }
  .lauf-dynamikfeld { padding: 15px; }
  .lauf-terminhinweis { align-items: flex-start; }
  .lauf-tabelle tr { grid-template-columns: 1fr; }
  .lauf-tabelle td,
  .lauf-tabelle td:nth-child(n) { grid-column: 1 / -1; }
}

/* Sponsor-Werbeanzeigen und veranstaltungsbezogene Abspiellisten */
.sponsor-werbeanzeigen {
  max-width: 1120px;
  margin-top: 22px;
  scroll-margin-top: 24px;
}
.sponsor-werbeanzeigen .formularabschnitt__kopf {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}
.sponsor-werbeanzeigen .formularabschnitt__kopf > div { min-width: 0; }
.sponsor-werbeanzeigen .anzeigenliste { margin-top: 0; }
.sponsor-werbeanzeigen .anzeigenzeile > form,
.abspiellisteneintraege .anzeigenzeile > form { margin: 0; }
.sponsor-werbeanzeigen .anzeigenzeile > .symbolknopf,
.sponsor-werbeanzeigen .anzeigenzeile > form,
.abspiellisteneintraege .anzeigenzeile > form { flex: 0 0 auto; }

.abspiellistenkarte__beschreibung {
  display: -webkit-box;
  margin: 15px 0 0;
  overflow: hidden;
  color: var(--text-sanft);
  font-size: .8rem;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.abspiellistenkarte__kopf .statusmarke { flex: 0 0 auto; }
.abspiellistendaten dd { overflow-wrap: anywhere; }

.werbeanzeige-grossvorschau {
  display: grid;
  width: min(100%, 940px);
  min-height: 240px;
  max-height: 520px;
  margin: 24px auto 0;
  overflow: hidden;
  place-items: center;
  border: 1px solid #d8e4da;
  border-radius: 16px;
  background:
    linear-gradient(45deg, rgba(39, 133, 44, .035) 25%, transparent 25%, transparent 75%, rgba(39, 133, 44, .035) 75%),
    linear-gradient(45deg, rgba(39, 133, 44, .035) 25%, #f8faf8 25%, #f8faf8 75%, rgba(39, 133, 44, .035) 75%);
  background-position: 0 0, 12px 12px;
  background-size: 24px 24px;
}
.werbeanzeige-grossvorschau img,
.werbeanzeige-grossvorschau video {
  display: block;
  width: 100%;
  max-width: 100%;
  max-height: 520px;
  object-fit: contain;
  background: rgba(255, 255, 255, .9);
}
.anzeigenvorschau > span:only-child {
  position: static;
  padding: 0;
  color: #dce9de;
  background: transparent;
  font-size: .65rem;
}

.veranstaltung-abspielliste-hinzufuegen .anzeigenhinzufuegen {
  grid-template-columns: minmax(250px, 1.25fr) 130px minmax(240px, 1fr) auto;
  margin-bottom: 0;
}
.veranstaltung-abspielliste-hinzufuegen .formularfeld--breit { grid-column: auto; }
.veranstaltung-abspiellistenliste { display: grid; gap: 17px; }
.veranstaltung-abspiellistenzeile > .abspiellistendaten {
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
  margin: 0;
  padding: 18px 20px;
  border-bottom: 1px solid var(--linie);
}
.veranstaltung-abspielliste-formular {
  display: grid;
  grid-template-columns: 130px minmax(220px, 1fr) auto auto;
  align-items: end;
  gap: 12px;
  padding: 17px 20px;
  border-bottom: 1px solid var(--linie);
  background: #f8faf8;
}
.veranstaltung-abspielliste-formular > label:not(.mini-schalter) {
  display: grid;
  gap: 7px;
  color: #2c392f;
  font-size: .76rem;
  font-weight: 700;
}
.veranstaltung-abspielliste-formular .mini-schalter { align-self: end; }
.veranstaltung-abspiellistenzeile > .formularaktionen {
  justify-content: space-between;
  margin: 0;
  padding: 15px 20px 18px;
}
.veranstaltung-abspiellistenzeile > .formularaktionen form { margin: 0; }

/* Die Sponsorzeile enthält Position, Stammdaten, Zuordnungsdetails und Aktionen. */
.veranstaltung-sponsorzeile {
  grid-template-columns: 74px minmax(190px, .72fr) minmax(260px, 1fr) auto;
}
.sponsor-reihenfolge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  min-width: 62px;
  height: 62px;
  margin: 0;
  padding: 7px;
  flex-direction: column;
  border-radius: 13px;
  color: #64540c;
  background: #fff6c3;
  line-height: 1.1;
}
.sponsor-reihenfolge span,
.sponsor-reihenfolge strong { display: block; }
.sponsor-reihenfolge span {
  font-size: .57rem;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.sponsor-reihenfolge strong { margin-top: 5px; font-size: 1rem; }
.veranstaltung-sponsorzeile__hauptdaten h4 {
  margin: 0;
  overflow-wrap: anywhere;
  font-size: .95rem;
}
.veranstaltung-sponsorzeile__hauptdaten p {
  margin: 4px 0 8px;
  color: var(--text-sanft);
  font-size: .76rem;
}
.veranstaltung-sponsorzeile__details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.veranstaltung-sponsorzeile__details > span {
  min-width: 0;
  padding: 9px 10px;
  border-radius: 10px;
  background: #f5f8f5;
  overflow-wrap: anywhere;
}
.veranstaltung-sponsorzeile__details > span > strong {
  display: block;
  margin-bottom: 3px;
  color: #526057;
  font-size: .63rem;
  letter-spacing: .055em;
  text-transform: uppercase;
}

@media (max-width: 1040px) {
  .veranstaltung-abspielliste-hinzufuegen .anzeigenhinzufuegen {
    grid-template-columns: minmax(0, 1fr) 130px;
  }
  .veranstaltung-abspielliste-hinzufuegen .formularfeld--breit { grid-column: 1 / -1; }
  .veranstaltung-abspielliste-hinzufuegen .hauptknopf { width: 100%; }
  .veranstaltung-abspielliste-formular { grid-template-columns: 120px minmax(200px, 1fr) auto; }
  .veranstaltung-abspielliste-formular .sekundaerknopf { grid-column: 1 / -1; width: 100%; }
  .veranstaltung-sponsorzeile {
    grid-template-columns: 68px minmax(0, 1fr) auto;
  }
  .veranstaltung-sponsorzeile__details { grid-column: 2 / -1; }
  .veranstaltung-sponsorzeile__aktionen {
    grid-column: 3;
    grid-row: 1;
    padding-top: 0;
    border-top: 0;
  }
}

@media (max-width: 760px) {
  .sponsor-werbeanzeigen .formularabschnitt__kopf {
    align-items: stretch;
    flex-direction: column;
  }
  .sponsor-werbeanzeigen .formularabschnitt__kopf .hauptknopf { width: 100%; }
  .sponsor-werbeanzeigen .anzeigenzeile,
  .abspiellisteneintraege .anzeigenzeile { align-items: center; }
  .sponsor-werbeanzeigen .anzeigenzeile__titel,
  .abspiellisteneintraege .anzeigenzeile__titel { flex: 1 1 calc(100% - 120px); }
  .abspiellisteneintraege .eintragzeile__formular { flex-basis: 100%; }
  .werbeanzeige-grossvorschau { min-height: 180px; }
  .veranstaltung-abspielliste-hinzufuegen .anzeigenhinzufuegen,
  .veranstaltung-abspielliste-formular { grid-template-columns: 1fr; }
  .veranstaltung-abspielliste-hinzufuegen .formularfeld--breit,
  .veranstaltung-abspielliste-formular .sekundaerknopf { grid-column: auto; }
  .veranstaltung-abspielliste-hinzufuegen .hauptknopf,
  .veranstaltung-abspielliste-formular .sekundaerknopf { width: 100%; }
  .veranstaltung-abspiellistenzeile > .abspiellistendaten { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .veranstaltung-abspiellistenzeile > .formularaktionen {
    align-items: stretch;
    flex-direction: column;
  }
  .veranstaltung-abspiellistenzeile > .formularaktionen .gefahrknopf { width: 100%; }
  .veranstaltung-sponsorzeile {
    grid-template-columns: 62px minmax(0, 1fr);
  }
  .veranstaltung-sponsorzeile__details {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .veranstaltung-sponsorzeile__aktionen {
    grid-column: 1 / -1;
    grid-row: 3;
    justify-content: flex-end;
    padding-top: 11px;
    border-top: 1px solid var(--linie);
  }
}

@media (max-width: 480px) {
  .abspiellistenkarte { padding: 18px; }
  .abspiellistenkarte__kopf { align-items: flex-start; }
  .abspiellistenkarte__aktionen { align-items: stretch; flex-direction: column; }
  .abspiellistenkarte__aktionen .sekundaerknopf { width: 100%; }
  .abspiellistenkarte__aktionen form { align-self: flex-end; }
  .sponsor-werbeanzeigen .anzeigenzeile__titel,
  .abspiellisteneintraege .anzeigenzeile__titel { flex-basis: calc(100% - 104px); }
  .sponsor-werbeanzeigen .anzeigenzeile > .statusmarke { order: 3; }
  .sponsor-werbeanzeigen .anzeigenzeile > .symbolknopf { margin-left: auto; order: 4; }
  .sponsor-werbeanzeigen .anzeigenzeile > form { order: 5; }
  .veranstaltung-abspiellistenzeile > .abspiellistendaten { grid-template-columns: 1fr; }
  .veranstaltung-abspielliste-formular,
  .veranstaltung-abspiellistenzeile > .abspiellistendaten,
  .veranstaltung-abspiellistenzeile > .formularaktionen { padding-right: 15px; padding-left: 15px; }
  .veranstaltung-sponsorzeile__details { grid-template-columns: 1fr; }
}

/* Globale Medienbibliothek */
.medien-seitenkopf { align-items: center; }
.medien-seitenkopf__aktionen { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.medien-seitenkopf__aktionen form { margin: 0; }
.medien-gesamtzahl {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 38px;
  padding: 7px 13px;
  border-radius: 999px;
  color: var(--gruen-dunkel);
  background: var(--gelb-hell);
  font-size: .76rem;
  font-weight: 800;
}
.medien-filterkarte { margin-bottom: 20px; }
.medien-filter {
  display: grid;
  grid-template-columns: minmax(220px, 1.35fr) minmax(170px, .72fr) minmax(210px, 1fr);
  gap: 14px;
  align-items: end;
  padding: 18px 20px 20px;
}
.medien-filter > label:not(.medien-filter__unterordner) {
  display: grid;
  gap: 7px;
  margin: 0;
  font-size: .78rem;
}
.medien-filter__unterordner {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 50px;
  margin: 0;
  padding: 9px 12px;
  border: 1px solid #dce6de;
  border-radius: 11px;
  background: #fafcfa;
  cursor: pointer;
}
.medien-filter__unterordner input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 5px 0 0;
  accent-color: var(--gruen);
}
.medien-filter__unterordner span,
.medien-filter__unterordner strong,
.medien-filter__unterordner small { display: block; }
.medien-filter__unterordner strong { font-size: .77rem; }
.medien-filter__unterordner small { margin-top: 1px; color: var(--text-sanft); font-size: .66rem; font-weight: 500; }
.medien-filter__aktionen {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 15px;
  grid-column: 2 / -1;
}
.medienaktionen .kompaktformular { min-width: 0; }
.medienaktionen .kompaktformular > .hauptknopf,
.medienaktionen .kompaktformular > .sekundaerknopf { margin-top: 20px; }
.medien-dateifeld input[type="file"] {
  min-height: 54px;
  padding: 8px;
  overflow: hidden;
  color: var(--text-sanft);
  background: #fbfdfb;
}
.medien-dateifeld input[type="file"]::file-selector-button {
  min-height: 36px;
  margin-right: 11px;
  padding: 0 13px;
  border: 1px solid #bad5bd;
  border-radius: 8px;
  color: var(--gruen-dunkel);
  background: var(--gruen-hell);
  font-weight: 750;
  cursor: pointer;
}
.ordnereintrag { grid-template-columns: minmax(0, 1fr) auto; }
.ordnereintrag__hauptlink {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  min-width: 0;
  margin: -5px;
  padding: 5px;
  border-radius: 10px;
}
.ordnereintrag__hauptlink:hover .ordnereintrag__angaben strong { color: var(--gruen); }
.ordnereintrag.ist-aktiv { border-color: #acd3af; background: var(--gruen-hell); box-shadow: 0 0 0 2px rgba(39,133,44,.07); }
.ordnereintrag.ist-inaktiv { background: #f5f6f5; opacity: .75; }
.ordnereintrag.ist-inaktiv .ordnereintrag__symbol { color: #727b74; background: #e7ebe8; }
.medien-bibliothekskarte { margin-top: 20px; }
.medienkarte {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  transition: border-color .16s, box-shadow .16s, transform .16s;
}
.medienkarte:hover { border-color: #c4d9c6; box-shadow: 0 12px 28px rgba(27,62,31,.09); transform: translateY(-2px); }
.medienkarte.ist-inaktiv { opacity: .72; }
.medienkarte__vorschau { position: relative; overflow: hidden; }
.medienkarte__vorschau:focus-visible { outline: 3px solid rgba(39,133,44,.2); outline-offset: -3px; }
.medienkarte__vorschau img { width: 100%; height: 100%; }
.medienkarte__artmarke {
  position: absolute;
  right: 9px;
  bottom: 9px;
  display: inline-flex !important;
  padding: 4px 7px;
  border-radius: 7px;
  color: #fff !important;
  background: rgba(8,27,11,.78);
  font-size: .62rem !important;
  font-weight: 850 !important;
  backdrop-filter: blur(5px);
}
.medienkarte__dokument {
  display: grid;
  place-items: center;
  gap: 8px;
  color: #8d2f29;
}
.medienkarte__dokument svg { width: 48px; height: 48px; }
.medienkarte__dokument strong { color: #6c2823; font-size: .78rem; letter-spacing: .08em; }
.medienkarte__inhalt { display: flex; flex: 1; min-width: 0; flex-direction: column; }
.medienkarte__titelzeile { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.medienkarte__titelzeile > strong { min-width: 0; flex: 1; }
.medienkarte__titelzeile .statusmarke {
  display: inline-flex;
  flex: 0 0 auto;
  margin: -2px 0 0;
  padding: 4px 7px;
  font-size: .62rem;
  font-weight: 750;
}
.medienkarte__titelzeile .statusmarke::before { width: 5px; height: 5px; }
.medienkarte__titelzeile .statusmarke--aktiv { color: #1b6520; background: #edf8ee; }
.medienkarte__titelzeile .statusmarke--inaktiv { color: #6f7771; background: #f0f2f0; }
.medienkarte__aktionen {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: auto;
  padding-top: 14px;
}
.medienkarte__aktionen form { margin: 0 0 0 auto; }
.medienkarte__aktionen .symbolknopf { width: 36px; height: 36px; }
.medien-detailraster {
  display: grid;
  grid-template-columns: minmax(330px, .82fr) minmax(400px, 1.18fr);
  gap: 20px;
  align-items: start;
}
.medium-grossvorschau {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 280px;
  max-height: 560px;
  overflow: hidden;
  border: 1px solid #dce6de;
  border-radius: 15px;
  background:
    linear-gradient(45deg, rgba(39,133,44,.035) 25%, transparent 25%, transparent 75%, rgba(39,133,44,.035) 75%),
    linear-gradient(45deg, rgba(39,133,44,.035) 25%, #f8faf8 25%, #f8faf8 75%, rgba(39,133,44,.035) 75%);
  background-position: 0 0, 12px 12px;
  background-size: 24px 24px;
}
.medium-grossvorschau img,
.medium-grossvorschau video { display: block; width: 100%; max-width: 100%; max-height: 560px; object-fit: contain; }
.medium-grossvorschau video { background: #07150a; }
.medienkarte__dokument--gross svg { width: 76px; height: 76px; }
.medienkarte__dokument--gross strong { font-size: 1rem; }
.medium-dateiaktionen { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.medien-metadaten {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 1px;
  margin: 20px 0 0;
  overflow: hidden;
  border: 1px solid var(--linie);
  border-radius: 12px;
  background: var(--linie);
}
.medien-metadaten > div { min-width: 0; padding: 11px 13px; background: #f8faf8; }
.medien-metadaten dt { color: var(--text-sanft); font-size: .64rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.medien-metadaten dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: .76rem; font-weight: 700; }
.medien-metadaten__breit { grid-column: 1 / -1; }
.medien-metadaten--kompakt { grid-template-columns: repeat(4, minmax(0,1fr)); }
.medien-detailformular { min-width: 0; }
.medien-gefahrenzone form { flex: 0 0 auto; margin: 0; }
.medien-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 17px 20px;
  border-top: 1px solid var(--linie);
  background: #fbfdfb;
}
.medien-pagination > a,
.medien-pagination > span[aria-disabled="true"],
.medien-pagination__seiten > a,
.medien-pagination__luecke {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 10px;
  border-radius: 8px;
  color: var(--gruen-dunkel);
  font-size: .73rem;
  font-weight: 750;
}
.medien-pagination > a:hover,
.medien-pagination__seiten > a:hover { background: var(--gruen-hell); }
.medien-pagination > span[aria-disabled="true"] { color: #9aa39c; }
.medien-pagination__seiten { display: flex; align-items: center; justify-content: center; gap: 3px; }
.medien-pagination__seiten > a[aria-current="page"] { color: white; background: var(--gruen); }
.medien-pagination__luecke { min-width: 24px; padding-inline: 3px; color: var(--text-sanft); }

/* Auswahlkarten für die zulässigen Dateiformate in den Einstellungen. */
.medienformate-raster {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 11px;
  margin: 0;
  padding: 0;
  border: 0;
}
.medienformat-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 11px;
  min-height: 78px;
  margin: 0;
  padding: 14px;
  border: 1px solid #dce6de;
  border-radius: 12px;
  background: #fbfdfb;
  cursor: pointer;
  transition: border-color .16s, box-shadow .16s, background .16s;
}
.medienformat-option:hover { border-color: #b9d6bc; background: #f7fbf7; }
.medienformat-option:has(input:checked) { border-color: var(--gruen); background: var(--gruen-hell); box-shadow: 0 0 0 2px rgba(39,133,44,.09); }
.medienformat-option input {
  width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 2px 0 0;
  accent-color: var(--gruen);
}
.medienformat-option span,
.medienformat-option strong,
.medienformat-option small { display: block; }
.medienformat-option strong { color: var(--text); font-size: .82rem; }
.medienformat-option small { margin-top: 4px; color: var(--text-sanft); font-size: .7rem; font-weight: 500; line-height: 1.4; }

@media (max-width: 1040px) {
  .medien-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .medien-filter__aktionen { grid-column: auto; }
  .medien-detailraster { grid-template-columns: 1fr; }
  .medien-metadaten--kompakt { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .medien-filter { grid-template-columns: 1fr; padding: 16px; }
  .medien-filter__aktionen { grid-column: auto; justify-content: space-between; }
  .ordneruebersicht { grid-template-columns: 1fr; }
  .medienraster { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 11px; padding: 14px; }
  .medium-grossvorschau { min-height: 220px; }
  .medien-gefahrenzone { align-items: stretch; flex-direction: column; }
  .medien-gefahrenzone .gefahrknopf { width: 100%; }
}

@media (max-width: 520px) {
  .medien-seitenkopf .medien-gesamtzahl { display: none; }
  .medien-filter__aktionen { align-items: stretch; flex-direction: column-reverse; text-align: center; }
  .medien-filter__aktionen .sekundaerknopf { width: 100%; }
  .medienaktionen .kompaktformular > .hauptknopf,
  .medienaktionen .kompaktformular > .sekundaerknopf { width: 100%; }
  .ordneruebersicht { padding: 12px; }
  .ordnereintrag { padding: 10px; }
  .medienraster { grid-template-columns: 1fr; }
  .medienkarte__vorschau { aspect-ratio: 16 / 10; }
  .medien-metadaten,
  .medien-metadaten--kompakt { grid-template-columns: 1fr; }
  .medien-metadaten__breit { grid-column: auto; }
  .medium-dateiaktionen { align-items: stretch; flex-direction: column; }
  .medium-dateiaktionen .sekundaerknopf { width: 100%; }
  .medienformate-raster { grid-template-columns: 1fr; }
  .medien-pagination { flex-wrap: wrap; padding: 14px; }
  .medien-pagination__seiten { width: 100%; order: -1; }
}

/* Persönliche Anmeldungsübersicht, Änderungsanträge und vorbereitete Druckausgaben. */
.public-registration-overview { width: min(100%, 1180px); }
.public-brand--personal { min-width: 44px; }
.public-brand__logo { display: block; width: auto; max-width: 180px; height: 52px; object-fit: contain; object-position: left center; }
.public-registration-overview .public-confirmation__icon svg { width: 30px; height: 30px; fill: currentColor; }
.public-confirmation--ready { background: linear-gradient(130deg, #123d28, #277a46); }
.public-confirmation--result { background: linear-gradient(130deg, #173d25, #2d7d3f 68%, #477f2e); box-shadow: 0 18px 40px rgba(22, 76, 35, .16); }
.public-confirmation--result > .public-confirmation__icon { color: #744f00; background: linear-gradient(145deg, #fff1a3, var(--gelb)); box-shadow: 0 8px 24px rgba(246, 210, 31, .24); }
.public-confirmation__result-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 13px; }
.public-confirmation__result-line span { font-weight: 650; }
.public-confirmation__result-line strong { color: white; font-weight: 850; }
.public-confirmation__result-line strong::before { content: "·"; margin-right: 13px; color: rgba(255,255,255,.55); }
.public-registration-overview main > .public-personal-link-notice {
  display: grid;
  place-items: center;
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  margin: 0 0 18px;
  color: #174d25;
  background-color: #e8f6ea;
  text-align: center;
}
.public-registration-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 0 20px; padding: 7px; border: 1px solid var(--linie); border-radius: 15px; background: #edf3ee; }
.public-registration-tabs a { display: grid; place-items: center; min-height: 46px; padding: 8px 18px; border-radius: 10px; color: var(--text-sanft); font-weight: 800; text-align: center; transition: background-color .15s ease, color .15s ease, box-shadow .15s ease; }
.public-registration-tabs a:hover { color: var(--gruen-dunkel); background: rgba(255,255,255,.7); }
.public-registration-tabs a[aria-current="page"] { color: var(--gruen-dunkel); background: white; box-shadow: 0 4px 14px rgba(26, 61, 34, .09); }
.public-invoice-download { color: var(--gruen-dunkel); font-weight: 800; }
.public-card-heading { align-items: flex-start; }
.public-change-control { display: grid; justify-items: end; gap: 5px; text-align: right; }
.public-change-control form,
.public-runner-row__actions form { margin: 0; }
.public-change-control small,
.public-runner-row__actions small { color: var(--text-sanft); font-size: .68rem; font-weight: 600; }
.public-change-button { gap: 8px; min-height: 40px; padding-inline: 13px; white-space: nowrap; }
.public-change-button svg { flex: 0 0 auto; width: 17px; height: 17px; }
.nebenknopf:disabled { cursor: not-allowed; opacity: .5; }
.nebenknopf:disabled:hover { border-color: #bcd3be; color: var(--gruen-dunkel); background: #f4faf5; }
.public-payment-action { padding: 0 20px 20px; }
.public-payment-action .hauptknopf { min-height: 48px; }
.public-change-panel { padding: 20px; border-top: 1px solid var(--linie); background: #f8faf8; }
.public-change-panel[hidden] { display: none !important; }
.public-change-panel__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.public-change-panel__heading h3 { margin: 0; font-size: 1.1rem; }
.public-change-panel__heading .ueberzeile { margin-bottom: 4px; }
.public-change-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--linie); }
.public-change-submit p { max-width: 560px; margin: 0; color: var(--text-sanft); font-size: .78rem; }
.public-change-submit .hauptknopf { flex: 0 0 auto; }
.public-runner-section-heading { align-items: flex-start; }
.public-runner-section-heading p:last-child { margin: 8px 0 0; color: var(--text-sanft); }
.public-runner-list { display: grid; gap: 14px; }
.public-runner-row {
  display: grid;
  grid-template-columns: 42px minmax(185px, 1.45fr) minmax(155px, .9fr) minmax(105px, .55fr) auto;
  align-items: center;
  gap: 14px 18px;
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--linie);
  border-radius: 16px;
  background: #fbfdfb;
}
.public-runner-row__number { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; color: var(--gruen-tief); background: var(--gelb); font-weight: 900; }
.public-runner-row__identity,
.public-runner-row__race,
.public-runner-row__fee { display: grid; min-width: 0; gap: 2px; }
.public-runner-row__identity > strong,
.public-runner-row__race > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.public-runner-row__identity small,
.public-runner-row__race small,
.public-runner-row__race > span,
.public-runner-row__fee > span { color: var(--text-sanft); font-size: .7rem; }
.public-runner-row__race > span,
.public-runner-row__fee > span { font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.public-runner-row__fee strong { color: var(--gruen-dunkel); font-size: 1.05rem; }
.public-runner-row__actions { display: grid; justify-items: end; gap: 5px; text-align: right; }
.public-runner-row__details { grid-column: 2 / -1; display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 0; padding-top: 13px; border-top: 1px solid var(--linie); }
.public-runner-row__details > div { display: flex; gap: 7px; }
.public-runner-row__details dt { color: var(--text-sanft); font-size: .72rem; }
.public-runner-row__details dd { margin: 0; font-size: .76rem; font-weight: 700; }
.public-runner-row__orders,
.public-runner-documents,
.public-runner-change-panel { grid-column: 1 / -1; }
.public-runner-row__orders { padding: 15px; border: 1px solid var(--linie); border-radius: 12px; background: white; }
.public-runner-row__orders > strong { font-size: .78rem; }
.public-runner-row__orders .schlichte-liste { font-size: .8rem; }
.public-runner-documents { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.public-document-card { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-width: 0; padding: 13px; border: 1px solid #dfe8e1; border-radius: 12px; background: white; }
.public-document-card__icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; color: var(--gruen); background: var(--gruen-hell); }
.public-document-card__icon svg { width: 19px; height: 19px; }
.public-document-card > div { display: grid; min-width: 0; gap: 2px; }
.public-document-card > div > strong { font-size: .8rem; }
.public-document-card > div > small { color: var(--text-sanft); font-size: .67rem; line-height: 1.35; }
.public-document-card > .nebenknopf { min-height: 38px; padding-inline: 12px; font-size: .73rem; }
.public-certificate-form { display: flex; align-items: flex-end; gap: 8px; }
.public-certificate-form label { width: 148px; margin: 0; }
.public-certificate-form label > span { display: block; margin-bottom: 4px; font-size: .65rem; }
.public-certificate-form input { min-height: 38px; padding-inline: 9px !important; font-size: .76rem; }
.public-certificate-form .nebenknopf { min-height: 38px; padding-inline: 11px; font-size: .7rem; white-space: nowrap; }
.public-runner-change-panel { margin: 2px -18px -18px; border-top: 1px solid #dce7de; border-radius: 0 0 15px 15px; }
.public-results-section { margin-top: 0; }
.public-results-heading { align-items: flex-start; }
.public-results-heading p:last-child { margin: 8px 0 0; color: var(--text-sanft); }
.public-results-table-frame { overflow-x: auto; border: 1px solid var(--linie); border-radius: 16px; }
.public-results-table { width: 100%; border-collapse: collapse; background: white; }
.public-results-table th,
.public-results-table td { padding: 15px 14px; border-bottom: 1px solid var(--linie); text-align: left; vertical-align: middle; }
.public-results-table th { color: var(--text-sanft); background: #f4f8f4; font-size: .68rem; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }
.public-results-table tbody tr:last-child td { border-bottom: 0; }
.public-results-table tbody tr:hover td { background: #fbfdfb; }
.public-results-table td { font-size: .82rem; }
.public-results-table .public-result-time { color: var(--gruen-dunkel); font-variant-numeric: tabular-nums; white-space: nowrap; }
.public-results-table__certificate { width: 76px; text-align: center !important; }
.public-results-table__certificate form { margin: 0; }
.public-certificate-icon { display: inline-grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid #bad4be; border-radius: 11px; color: var(--gruen-dunkel); background: var(--gruen-hell); cursor: pointer; }
.public-certificate-icon:hover { border-color: var(--gruen); background: #daf0dc; }
.public-certificate-icon:disabled { cursor: not-allowed; opacity: .4; }
.public-certificate-icon svg { width: 19px; height: 19px; fill: currentColor; }
.public-single-result { overflow: hidden; border: 1px solid #d8e6da; border-radius: 20px; background: linear-gradient(145deg, #fbfefb, #f1f8f2); box-shadow: 0 12px 30px rgba(27, 73, 36, .08); }
.public-single-result__runner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 24px; border-bottom: 1px solid #dbe8dd; background: white; }
.public-single-result__runner p { margin: 0 0 4px; color: var(--text-sanft); font-size: .72rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.public-single-result__runner h3 { margin: 0; font-size: clamp(1.35rem, 3vw, 2rem); }
.public-single-result__runner > div:last-child { display: grid; justify-items: end; gap: 3px; text-align: right; }
.public-single-result__runner > div:last-child strong { color: var(--gruen-dunkel); }
.public-single-result__runner > div:last-child span { color: var(--text-sanft); font-size: .76rem; }
.public-single-result__metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 20px; }
.public-single-result__metrics > section { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 2px 13px; min-width: 0; padding: 17px; border: 1px solid #dce8de; border-radius: 15px; background: rgba(255,255,255,.9); }
.public-single-result__metric-icon { grid-row: 1 / span 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; color: #765900; background: #fff3ae; }
.public-single-result__metric-icon--time { color: var(--gruen-dunkel); background: var(--gruen-hell); }
.public-single-result__metric-icon svg { width: 22px; height: 22px; fill: currentColor; }
.public-single-result__metrics small { color: var(--text-sanft); font-size: .68rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.public-single-result__metrics strong { overflow-wrap: anywhere; color: var(--gruen-dunkel); font-size: 1.1rem; font-variant-numeric: tabular-nums; }
.public-single-result__certificate { grid-template-rows: auto auto; }
.public-single-result__certificate form { margin: 7px 0 0; }
.public-single-result__certificate .nebenknopf { grid-column: 2; min-height: 38px; margin-top: 7px; padding-inline: 12px; font-size: .72rem; }

@media (max-width: 980px) {
  .public-runner-row { grid-template-columns: 42px minmax(0, 1fr) auto; align-items: start; }
  .public-runner-row__race { grid-column: 2; }
  .public-runner-row__fee { grid-column: 3; grid-row: 1; text-align: right; }
  .public-runner-row__actions { grid-column: 2 / -1; justify-items: start; text-align: left; }
  .public-runner-row__details { grid-column: 2 / -1; }
  .public-runner-documents { grid-template-columns: 1fr; }
  .public-single-result__metrics { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .public-card-heading { align-items: stretch; flex-direction: column; }
  .public-change-control { justify-items: stretch; text-align: left; }
  .public-change-control small { text-align: left; }
  .public-change-submit { align-items: stretch; flex-direction: column; }
  .public-change-submit .hauptknopf { width: 100%; }
  .public-runner-row { grid-template-columns: 38px minmax(0, 1fr); padding: 15px; }
  .public-runner-row__number { width: 36px; height: 36px; }
  .public-runner-row__identity { grid-column: 2; }
  .public-runner-row__race,
  .public-runner-row__fee,
  .public-runner-row__actions,
  .public-runner-row__details { grid-column: 1 / -1; text-align: left; }
  .public-runner-row__fee { grid-row: auto; }
  .public-runner-row__actions { justify-items: stretch; }
  .public-runner-row__actions small { text-align: left; }
  .public-runner-row__details { display: grid; gap: 7px; }
  .public-document-card { grid-template-columns: 38px minmax(0, 1fr); }
  .public-document-card > .nebenknopf,
  .public-certificate-form { grid-column: 1 / -1; width: 100%; }
  .public-document-card > .nebenknopf { width: 100%; }
  .public-certificate-form { align-items: stretch; flex-direction: column; }
  .public-certificate-form label { width: 100%; }
  .public-certificate-form .nebenknopf { width: 100%; }
  .public-runner-change-panel { margin-right: -15px; margin-bottom: -15px; margin-left: -15px; }
  .public-brand__logo { max-width: 145px; height: 46px; }
  .public-confirmation__result-line { align-items: flex-start; flex-direction: column; gap: 4px; }
  .public-confirmation__result-line strong::before { display: none; }
  .public-registration-tabs { gap: 5px; padding: 5px; }
  .public-registration-tabs a { min-height: 42px; padding-inline: 10px; font-size: .8rem; }
  .public-results-table-frame { overflow: visible; border: 0; }
  .public-results-table,
  .public-results-table tbody { display: grid; gap: 12px; }
  .public-results-table thead { display: none; }
  .public-results-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--linie); border-radius: 14px; background: white; }
  .public-results-table td { display: grid; gap: 4px; padding: 12px 14px; border-bottom: 1px solid var(--linie); }
  .public-results-table td::before { content: attr(data-label); color: var(--text-sanft); font-size: .63rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
  .public-results-table__certificate { width: auto; text-align: left !important; }
  .public-results-table tbody tr:last-child td { border-bottom: 1px solid var(--linie); }
  .public-results-table td:nth-last-child(-n+2) { border-bottom: 0; }
  .public-results-table__certificate form { justify-self: start; }
  .public-single-result__runner { align-items: flex-start; flex-direction: column; }
  .public-single-result__runner > div:last-child { justify-items: start; text-align: left; }
}

@media (max-width: 480px) {
  .public-results-table tr { grid-template-columns: 1fr; }
  .public-results-table td,
  .public-results-table td:nth-last-child(-n+2) { border-bottom: 1px solid var(--linie); }
  .public-results-table td:last-child { border-bottom: 0; }
  .public-single-result__metrics { padding: 13px; }
}

/* Prüfstrecke für öffentliche Änderungsanträge im Veranstaltungs-Backend. */
.statusmarke--aenderung-offen { color: #745c00; background: #fff4bf; }
.statusmarke--aenderung-offen::before { background: #d4a800; }
.statusmarke--aenderung-erledigt { color: #1b6520; background: #edf8ee; }
.statusmarke--aenderung-erledigt::before { background: #36a340; }
.statusmarke--aenderung-verworfen { color: #7a312b; background: #fff0ee; }
.statusmarke--aenderung-verworfen::before { background: #bd5046; }
.aenderungsantraege + .aenderungsantraege { margin-top: 20px; }
.aenderungsvergleich tr.ist-geaendert td { background: #fffdf1; }
.aenderungsvergleich tr.ist-geaendert td:last-child { color: var(--gruen-dunkel); font-weight: 700; }
.aenderungsvergleich small { color: var(--text-sanft); font-weight: 600; }
.aenderungsfreigabe { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 18px; }
.aenderungsfreigabe > div { min-width: 0; }
.aenderungsfreigabe p { margin: 4px 0 0; }
.aenderungsfreigabe form { flex: 0 0 auto; margin: 0; }
.aenderungsfreigabe__aktionen { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.aenderungsfreigabe__aktionen form { margin: 0; }

@media (max-width: 760px) {
  .aenderungsfreigabe { align-items: stretch; flex-direction: column; }
  .aenderungsfreigabe__aktionen { display: grid; width: 100%; }
  .aenderungsfreigabe .hauptknopf,
  .aenderungsfreigabe .nebenknopf { width: 100%; }
}

/* Allgemeine und gruppenbezogene Protokolle der Veranstaltungsorganisation. */
.orga-protokolle__kopf { align-items: flex-start; }
.orga-protokolle { display: grid; gap: 14px; }
.orga-protokoll { overflow: hidden; }
.orga-protokoll__zusammenfassung {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-height: 84px;
  padding: 16px 20px;
  cursor: pointer;
  list-style: none;
}
.orga-protokoll__zusammenfassung::-webkit-details-marker { display: none; }
.orga-protokoll__zusammenfassung:hover { background: #f8fbf8; }
.orga-protokoll__zusammenfassung:focus-visible { outline: 3px solid rgba(39,133,44,.2); outline-offset: -3px; }
.orga-protokoll__datum { display: inline-flex; justify-content: center; padding: 8px 10px; border-radius: 10px; color: var(--gruen-dunkel); background: var(--gruen-hell); font-size: .75rem; font-weight: 850; }
.orga-protokoll__titel { display: grid; min-width: 0; gap: 4px; }
.orga-protokoll__titel strong { overflow-wrap: anywhere; }
.orga-protokoll__titel small { color: var(--text-sanft); font-size: .7rem; font-weight: 600; }
.orga-protokoll__oeffnen { color: var(--gruen-dunkel); font-size: .73rem; font-weight: 800; }
.orga-protokoll__oeffnen::after { display: inline-block; margin-left: 7px; content: '›'; transform: rotate(90deg); transition: transform .18s ease; }
.orga-protokoll[open] .orga-protokoll__oeffnen::after { transform: rotate(-90deg); }
.orga-protokoll__inhalt { padding: 20px; border-top: 1px solid var(--linie); color: var(--text); line-height: 1.65; overflow-wrap: anywhere; white-space: normal; }
.orga-protokoll__aktionen { display: flex; justify-content: flex-end; padding: 0 20px 20px; }
.orga-protokoll__textfeld { min-height: 360px; resize: vertical; line-height: 1.55; }

@media (max-width: 760px) {
  .orga-protokolle__kopf { align-items: stretch; flex-direction: column; }
  .orga-protokolle__kopf .hauptknopf { width: 100%; }
  .orga-protokolle__leerzustand .leerzustand { align-items: flex-start; flex-direction: column; min-height: 0; padding: 24px; }
  .orga-protokolle__leerzustand .leerzustand__aktion { margin-left: 0; }
  .orga-protokoll__zusammenfassung { grid-template-columns: auto minmax(0, 1fr); gap: 11px; min-height: 0; padding: 15px; }
  .orga-protokoll__datum { align-self: start; }
  .orga-protokoll__oeffnen { grid-column: 2; }
  .orga-protokoll__inhalt { padding: 17px 15px; }
  .orga-protokoll__aktionen { padding: 0 15px 15px; }
  .orga-protokoll__aktionen .sekundaerknopf { width: 100%; }
  .orga-protokoll__textfeld { min-height: 300px; }
}

/* Checklisten innerhalb der Veranstaltungsorganisation. */
.orga-inhaltstabs { max-width: 100%; overflow-x: auto; }
.orga-inhaltstabs a { flex: 0 0 auto; }
.orga-checklisten__kopf { align-items: flex-start; }
.orga-checklisten__aktionen { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.orga-checklisten { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 16px; }
.orga-checkliste-karte { display: flex; min-width: 0; overflow: hidden; flex-direction: column; }
.orga-checkliste-karte__kopf { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 20px; }
.orga-checkliste-karte__kopf > div { min-width: 0; }
.orga-checkliste-karte__kopf h3 { margin: 4px 0 5px; overflow-wrap: anywhere; font-size: 1.08rem; }
.orga-checkliste-karte__kopf p:last-child { margin: 0; color: var(--text-sanft); font-size: .78rem; line-height: 1.4; }
.orga-fortschritt { display: grid; gap: 10px; min-width: 0; }
.orga-checkliste-karte > .orga-fortschritt { padding: 18px 20px; border-top: 1px solid var(--linie); border-bottom: 1px solid var(--linie); background: #f8faf8; }
.orga-fortschritt > div { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 6px 14px; }
.orga-fortschritt strong { color: var(--gruen-dunkel); font-size: .9rem; }
.orga-fortschritt span { color: var(--text-sanft); font-size: .73rem; font-weight: 650; }
.orga-fortschritt progress,
.orga-protokoll__checkliste progress { width: 100%; height: 10px; overflow: hidden; border: 0; border-radius: 999px; color: var(--gruen); background: #dfe8e1; appearance: none; }
.orga-fortschritt progress::-webkit-progress-bar,
.orga-protokoll__checkliste progress::-webkit-progress-bar { border-radius: 999px; background: #dfe8e1; }
.orga-fortschritt progress::-webkit-progress-value,
.orga-protokoll__checkliste progress::-webkit-progress-value { border-radius: 999px; background: var(--gruen); }
.orga-fortschritt progress::-moz-progress-bar,
.orga-protokoll__checkliste progress::-moz-progress-bar { border-radius: 999px; background: var(--gruen); }
.orga-checkliste-karte__fuss { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: auto; padding: 16px 20px; }
.orga-checkliste-karte__fuss > span { color: var(--text-sanft); font-size: .74rem; line-height: 1.4; }
.orga-faelligkeitsmarke { display: inline-flex; width: max-content; padding: 5px 8px; border-radius: 999px; color: #536057; background: #eef2ef; font-size: .68rem; font-weight: 850; white-space: nowrap; }
.orga-faelligkeitsmarke--heute { color: #6a5705; background: var(--gelb-hell); }
.orga-faelligkeitsmarke--ueberfaellig { color: #8a332b; background: #fff0ee; }
.orga-faelligkeitsmarke--erledigt { color: var(--gruen-dunkel); background: var(--gruen-hell); }
.orga-checkliste-fortschritt { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px; margin-bottom: 16px; padding: 20px; }
.orga-checkliste-fortschritt__hinweise { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 9px 16px; color: var(--text-sanft); font-size: .76rem; }
.orga-checklistenpunkte { display: grid; gap: 14px; }
.orga-checklistenpunkt { min-width: 0; overflow: hidden; border-left: 4px solid #cfd9d1; }
.orga-checklistenpunkt--heute { border-left-color: #d1a918; }
.orga-checklistenpunkt--ueberfaellig { border-left-color: #c55247; }
.orga-checklistenpunkt--erledigt { border-left-color: var(--gruen); }
.orga-checklistenpunkt__kopf { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 20px; }
.orga-checklistenpunkt__kopf > div { min-width: 0; }
.orga-checklistenpunkt__kopf h3 { margin: 9px 0 0; overflow-wrap: anywhere; font-size: 1.08rem; }
.orga-checklistenpunkt__faellig { color: var(--text-sanft); font-size: .75rem; white-space: nowrap; }
.orga-checklistenpunkt__beschreibung { padding: 0 20px 20px; overflow-wrap: anywhere; color: #354239; font-size: .87rem; line-height: 1.6; }
.orga-checklistenpunkt__zuweisungen { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 16px 20px; border-top: 1px solid var(--linie); background: #fafcfa; }
.orga-checklistenpunkt__zuweisungen > div { min-width: 0; }
.orga-checklistenpunkt__zuweisungen > div > strong { display: block; margin-bottom: 8px; color: var(--text-sanft); font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; }
.orga-zuweisungschips { display: flex; flex-wrap: wrap; gap: 6px; }
.orga-zuweisungschips > span { display: inline-flex; max-width: 100%; padding: 5px 8px; overflow: hidden; border-radius: 999px; color: #48604d; background: #edf4ee; font-size: .7rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.orga-zuweisungschips small { color: var(--text-sanft); font-size: .72rem; }
.orga-checklistenpunkt__erledigt { margin: 16px 20px 0; padding: 14px 16px; border-radius: 11px; color: var(--gruen-dunkel); background: var(--gruen-hell); }
.orga-checklistenpunkt__erledigt strong { font-size: .78rem; }
.orga-checklistenpunkt__erledigt p { margin: 7px 0 0; overflow-wrap: anywhere; color: #3d5c42; font-size: .78rem; line-height: 1.5; }
.orga-checklistenpunkt__aktionen { display: flex; align-items: flex-end; justify-content: flex-end; flex-wrap: wrap; gap: 10px; padding: 18px 20px; }
.orga-checklistenpunkt__aktionen form { margin: 0; }
.orga-erledigen-formular { display: grid; grid-template-columns: minmax(220px, 1fr) auto; align-items: end; gap: 10px; flex: 1 1 520px; }
.orga-erledigen-formular label { display: grid; gap: 6px; color: #2c392f; font-size: .76rem; font-weight: 700; }
.orga-erledigen-formular textarea { width: 100%; min-height: 58px; resize: vertical; }
.orga-checklistenpunkt__verlauf { border-top: 1px solid var(--linie); }
.orga-checklistenpunkt__verlauf summary { padding: 14px 20px; cursor: pointer; color: var(--text-sanft); font-size: .75rem; font-weight: 800; }
.orga-checklistenpunkt__verlauf ol { display: grid; gap: 0; margin: 0; padding: 0 20px 18px 40px; }
.orga-checklistenpunkt__verlauf li { padding: 10px 0 10px 5px; border-top: 1px solid var(--linie); }
.orga-checklistenpunkt__verlauf li > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.orga-checklistenpunkt__verlauf li strong { font-size: .77rem; }
.orga-checklistenpunkt__verlauf li span { color: var(--text-sanft); font-size: .68rem; }
.orga-checklistenpunkt__verlauf li p { margin: 5px 0 0; overflow-wrap: anywhere; color: var(--text-sanft); font-size: .75rem; line-height: 1.5; }
.orga-zuweisungsgruppen { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.orga-zuweisungsgruppen fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.orga-zuweisungsgruppen legend { margin-bottom: 11px; color: #2c392f; font-size: .84rem; font-weight: 800; }
.orga-zuweisungsoptionen { display: grid; gap: 9px; }
.orga-zuweisungsoptionen .auswahlkarte { min-width: 0; }
.orga-benutzersuche { display: none; margin: 0 0 10px; color: #2c392f; font-size: .84rem; font-weight: 700; }
.js .orga-benutzersuche { display: grid; gap: 6px; }
.orga-benutzersuche input { min-height: 42px; }
.orga-benutzeroption[hidden],
.orga-benutzersuche__leer[hidden] { display: none !important; }
.orga-benutzersuche__leer { margin: 0; padding: 10px 11px; border-radius: 9px; color: var(--text-sanft); background: #f3f6f3; font-size: .73rem; }
.orga-gruppenoption > span { min-width: 0; }
.orga-gruppenoption__mitglieder { display: block; margin-top: 4px; color: var(--text-sanft); font-size: .68rem; font-weight: 550; line-height: 1.45; overflow-wrap: anywhere; }
.orga-zuweisungsgruppen__leer { margin: 0; padding: 14px; border-radius: 11px; color: var(--text-sanft); background: #f5f7f5; font-size: .78rem; }
.orga-protokoll__checklisten { padding: 18px 20px; border-top: 1px solid var(--linie); background: #fafcfa; }
.orga-protokoll__checklistenkopf { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.orga-protokoll__checklistenkopf h3,
.orga-protokoll__checklistenkopf p { margin: 0; }
.orga-protokoll__checklistenkopf h3 { font-size: .92rem; }
.orga-protokoll__checklistenkopf p { margin-top: 3px; color: var(--text-sanft); font-size: .7rem; }
.orga-protokoll__checklistenleer { margin: 0; padding: 14px; border: 1px dashed #d7e1d8; border-radius: 10px; color: var(--text-sanft); background: #fff; font-size: .76rem; }
.orga-protokoll__checklistenliste { display: grid; gap: 8px; }
.orga-protokoll__checkliste { display: grid; grid-template-columns: minmax(150px, .8fr) minmax(130px, 1fr) auto; align-items: center; gap: 15px; padding: 12px 14px; border: 1px solid #dfe7e0; border-radius: 11px; background: #fff; }
.orga-protokoll__checklistentitel { display: grid; min-width: 0; gap: 3px; }
.orga-protokoll__checklistentitel strong { overflow: hidden; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.orga-protokoll__checklistentitel span { color: var(--text-sanft); font-size: .68rem; }
.orga-protokoll__checklistenlink { display: inline-flex; align-items: center; min-height: 40px; padding: 0 5px; color: var(--gruen-dunkel); font-size: .75rem; font-weight: 800; }

@media (max-width: 760px) {
  .orga-inhaltstabs { width: 100%; }
  .orga-inhaltstabs a { flex: 1 0 auto; text-align: center; }
  .orga-checklisten__kopf { align-items: stretch; flex-direction: column; }
  .orga-checklisten__aktionen { display: grid; width: 100%; }
  .orga-checklisten__aktionen .hauptknopf,
  .orga-checklisten__aktionen .sekundaerknopf { width: 100%; }
  .orga-checkliste-karte__kopf,
  .orga-checkliste-karte__fuss,
  .orga-checklistenpunkt__kopf { align-items: flex-start; flex-direction: column; }
  .orga-checklisten__leerzustand .leerzustand { align-items: flex-start; flex-direction: column; min-height: 0; padding: 24px; }
  .orga-checklisten__leerzustand .leerzustand__aktion { margin-left: 0; }
  .orga-checkliste-karte__fuss .sekundaerknopf { width: 100%; }
  .orga-checkliste-fortschritt { grid-template-columns: 1fr; gap: 14px; }
  .orga-checkliste-fortschritt__hinweise { justify-content: flex-start; }
  .orga-checklistenpunkt__faellig { white-space: normal; }
  .orga-checklistenpunkt__zuweisungen,
  .orga-zuweisungsgruppen { grid-template-columns: 1fr; }
  .orga-checklistenpunkt__aktionen { align-items: stretch; flex-direction: column; }
  .orga-checklistenpunkt__aktionen > a,
  .orga-checklistenpunkt__aktionen > form:not(.orga-erledigen-formular),
  .orga-checklistenpunkt__aktionen > form:not(.orga-erledigen-formular) button { width: 100%; }
  .orga-erledigen-formular { grid-template-columns: 1fr; flex-basis: auto; width: 100%; }
  .orga-erledigen-formular .hauptknopf { width: 100%; }
  .orga-checklistenpunkt__verlauf li > div { align-items: flex-start; flex-direction: column; gap: 3px; }
  .orga-protokoll__checklisten { padding: 16px 15px; }
  .orga-protokoll__checklistenkopf { align-items: stretch; flex-direction: column; }
  .orga-protokoll__checklistenkopf .sekundaerknopf { width: 100%; }
  .orga-protokoll__checkliste { grid-template-columns: 1fr auto; gap: 10px; }
  .orga-protokoll__checklistentitel strong,
  .orga-zuweisungschips > span { overflow-wrap: anywhere; text-overflow: clip; white-space: normal; }
  .orga-protokoll__checkliste progress { grid-column: 1 / -1; grid-row: 2; }
  .orga-protokoll__checklistenlink { grid-column: 2; grid-row: 1; min-height: 44px; }
}

/* Gemeinsamer Arbeitsbereich für Orga-Protokoll und Checklisten */
.orga-protokoll--kompakt { display: grid; gap: 14px; padding: 20px; }
.orga-protokoll--kompakt .orga-protokoll__zusammenfassung { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; cursor: default; }
.orga-protokoll--kompakt .orga-protokoll__zusammenfassung::after { display: none; }
.orga-protokoll--kompakt .orga-protokoll__zusammenfassung .hauptknopf svg { width: 18px; height: 18px; }
.orga-protokoll__vorschau { display: -webkit-box; overflow: hidden; margin: 0; color: var(--text-sanft); font-size: .84rem; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.orga-protokoll__kennzahlen { display: flex; flex-wrap: wrap; gap: 10px 22px; padding-top: 12px; border-top: 1px solid #e4ebe5; color: var(--text-sanft); font-size: .76rem; }
.orga-protokoll__kennzahlen strong { color: var(--text); }

.orga-protokoll-arbeitsbereich { display: grid; gap: 18px; }
.orga-protokoll-arbeitsbereich__kopf { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.orga-protokoll-arbeitsbereich__kopf h2 { margin: 7px 0 0; font-size: clamp(1.45rem, 2vw, 2rem); }
.orga-protokoll-arbeitsbereich__meldung { margin: 0; }
.orga-protokoll-arbeitsbereich__meldung[hidden] { display: none !important; }
.orga-protokoll-arbeitsbereich__spalten { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr); align-items: start; gap: 20px; }
.orga-protokoll-editor { display: grid; gap: 18px; padding: 22px; }
.orga-protokoll-editor > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.orga-protokoll-editor > header h3,
.orga-protokoll-checklistenbereich__kopf h3,
.orga-arbeitscheckliste__kopf h3 { margin: 3px 0 0; }
.orga-protokoll-editor form { display: grid; gap: 16px; }
.orga-protokoll-editor .orga-protokoll__textfeld { min-height: 56vh; resize: vertical; line-height: 1.55; }
.orga-protokoll-editor [readonly] { color: var(--text); background: #f5f7f5; cursor: default; }

.orga-protokoll-autosave { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 8px 12px; border: 1px solid #dce6dd; border-radius: 999px; color: var(--text-sanft); background: #fff; font-size: .75rem; font-weight: 750; white-space: nowrap; }
.orga-protokoll-autosave__punkt { width: 8px; height: 8px; border-radius: 50%; background: #6f8272; box-shadow: 0 0 0 3px rgb(111 130 114 / 12%); }
[data-autosave-status="wartet"] .orga-protokoll-autosave__punkt,
[data-autosave-status="speichert"] .orga-protokoll-autosave__punkt { background: #c68b15; box-shadow: 0 0 0 3px rgb(198 139 21 / 15%); }
[data-autosave-status="speichert"] .orga-protokoll-autosave__punkt { animation: orga-autosave-puls 1s ease-in-out infinite; }
[data-autosave-status="gespeichert"] .orga-protokoll-autosave__punkt { background: var(--gruen); box-shadow: 0 0 0 3px rgb(39 133 44 / 14%); }
[data-autosave-status="fehler"] .orga-protokoll-autosave__punkt,
[data-autosave-status="konflikt"] .orga-protokoll-autosave__punkt,
[data-autosave-status="ungueltig"] .orga-protokoll-autosave__punkt { background: #bd322f; box-shadow: 0 0 0 3px rgb(189 50 47 / 14%); }
@keyframes orga-autosave-puls { 50% { opacity: .35; transform: scale(.78); } }

.orga-protokoll-checklistenbereich { display: grid; gap: 14px; min-width: 0; }
.orga-protokoll-checklistenbereich__kopf { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 20px; border: 1px solid #dfe7e0; border-radius: 14px; background: #f7faf7; }
.orga-protokoll-checklistenbereich__kopf p { margin: 4px 0 0; color: var(--text-sanft); font-size: .76rem; }
.orga-protokoll-checklistenbereich__liste { display: grid; gap: 14px; }
.orga-protokoll-checklistenbereich__leer { padding: 24px; text-align: center; }
.orga-protokoll-checklistenbereich__leer p { margin: 7px 0 0; color: var(--text-sanft); }

.orga-arbeitscheckliste { display: grid; gap: 14px; padding: 18px; }
.orga-arbeitscheckliste__kopf { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.orga-arbeitscheckliste__kopf p { margin: 3px 0 0; color: var(--text-sanft); font-size: .73rem; }
.orga-arbeitscheckliste__aktionen { display: flex; align-items: center; gap: 8px; }
.orga-arbeitscheckliste__aktionen .symbolknopf { flex: 0 0 auto; border: 1px solid #dce5dd; }
.orga-arbeitscheckliste__fortschritt { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; }
.orga-arbeitscheckliste__fortschritt progress { width: 100%; height: 10px; }
.orga-arbeitscheckliste__fortschritt > strong { font-size: .78rem; }
.orga-arbeitscheckliste__leer { padding: 18px; border: 1px dashed #cfdacf; border-radius: 11px; color: var(--text-sanft); text-align: center; }
.orga-arbeitscheckliste__leer p { margin: 0 0 6px; }
.orga-arbeitscheckliste__leer a { color: var(--gruen-dunkel); font-weight: 800; }
.orga-arbeitscheckliste__punkte { display: grid; gap: 10px; }
.orga-arbeitschecklistenpunkt { display: grid; gap: 11px; padding: 14px; border: 1px solid #dfe7e0; border-left: 4px solid #91a394; border-radius: 11px; background: #fff; }
.orga-arbeitschecklistenpunkt:focus { outline: 3px solid rgb(39 133 44 / 20%); outline-offset: 2px; }
.orga-arbeitschecklistenpunkt--heute { border-left-color: #c68b15; }
.orga-arbeitschecklistenpunkt--ueberfaellig { border-left-color: #bd322f; }
.orga-arbeitschecklistenpunkt--erledigt { border-left-color: var(--gruen); background: #f7faf7; }
.orga-arbeitschecklistenpunkt > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.orga-arbeitschecklistenpunkt h4 { margin: 6px 0 0; font-size: .92rem; line-height: 1.35; }
.orga-arbeitschecklistenpunkt .symbolknopf { width: 36px; height: 36px; flex: 0 0 auto; border: 1px solid #dce5dd; }
.orga-arbeitschecklistenpunkt__beschreibung { color: var(--text-sanft); font-size: .79rem; line-height: 1.5; }
.orga-arbeitschecklistenpunkt__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--text-sanft); font-size: .7rem; }
.orga-zuweisungschip { padding: 4px 8px; border-radius: 999px; color: #315b36; background: #edf6ee; font-weight: 750; }
.orga-zuweisungschip--inaktiv { color: #6f7470; background: #ecefed; text-decoration: line-through; }
.orga-arbeitschecklistenpunkt__erledigt { padding: 10px 12px; border-radius: 9px; color: #295a2e; background: #eaf5eb; font-size: .73rem; }
.orga-arbeitschecklistenpunkt__erledigt p { margin: 5px 0 0; }
.orga-arbeitschecklistenpunkt > footer form { margin: 0; }
.orga-arbeitschecklistenpunkt > footer form[data-checklisten-aktion] { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 9px; }
.orga-arbeitschecklistenpunkt > footer form[data-checklisten-aktion] label { display: grid; gap: 5px; color: var(--text-sanft); font-size: .7rem; font-weight: 750; }
.orga-arbeitschecklistenpunkt > footer textarea { min-height: 58px; resize: vertical; }
.orga-arbeitschecklistenpunkt .orga-checklistenpunkt__verlauf { border-top: 1px solid #e4ebe5; }

.orga-arbeitsdialog { width: min(520px, calc(100vw - 28px)); max-height: min(86vh, 760px); padding: 0; border: 0; border-radius: 16px; color: var(--text); background: #fff; box-shadow: 0 28px 80px rgb(18 42 22 / 28%); }
.orga-arbeitsdialog--breit { width: min(820px, calc(100vw - 28px)); }
.orga-arbeitsdialog::backdrop { background: rgb(15 31 17 / 58%); backdrop-filter: blur(2px); }
.orga-arbeitsdialog > form { display: grid; gap: 18px; max-height: inherit; padding: 22px; overflow: auto; }
.orga-arbeitsdialog > form > header,
.orga-arbeitsdialog > form > footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.orga-arbeitsdialog h3 { margin: 3px 0 0; font-size: 1.2rem; }
.orga-arbeitsdialog > form > label { display: grid; gap: 7px; font-size: .78rem; font-weight: 800; }
.orga-arbeitsdialog__zuweisungen { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.orga-arbeitsdialog__zuweisungen fieldset { min-width: 0; max-height: 260px; padding: 12px; overflow: auto; border: 1px solid #dfe7e0; border-radius: 11px; }
.orga-arbeitsdialog__zuweisungen legend { padding: 0 5px; font-size: .73rem; font-weight: 850; }
.orga-arbeitsdialog__zuweisungen .orga-zuweisungsoptionen { grid-template-columns: 1fr; }

@media (max-width: 1180px) {
  .orga-protokoll-arbeitsbereich__spalten { grid-template-columns: 1fr; }
  .orga-protokoll-editor .orga-protokoll__textfeld { min-height: 420px; }
}

@media (max-width: 760px) {
  .orga-protokoll--kompakt .orga-protokoll__zusammenfassung { grid-template-columns: auto 1fr; }
  .orga-protokoll--kompakt .orga-protokoll__zusammenfassung .hauptknopf { grid-column: 1 / -1; width: 100%; }
  .orga-protokoll-arbeitsbereich__kopf { align-items: flex-start; flex-direction: column; }
  .orga-protokoll-autosave { white-space: normal; }
  .orga-protokoll-editor { padding: 16px; }
  .orga-protokoll-editor > header,
  .orga-protokoll-checklistenbereich__kopf,
  .orga-arbeitscheckliste__kopf { align-items: stretch; flex-direction: column; }
  .orga-protokoll-checklistenbereich__kopf .hauptknopf,
  .orga-arbeitscheckliste__aktionen .sekundaerknopf { width: 100%; }
  .orga-arbeitscheckliste__aktionen { width: 100%; }
  .orga-arbeitscheckliste__aktionen .sekundaerknopf { flex: 1; }
  .orga-arbeitscheckliste__fortschritt { grid-template-columns: minmax(0, 1fr) auto; }
  .orga-arbeitscheckliste__fortschritt .orga-faelligkeitsmarke { grid-column: 1 / -1; justify-self: start; }
  .orga-arbeitschecklistenpunkt > footer form[data-checklisten-aktion] { grid-template-columns: 1fr; }
  .orga-arbeitsdialog__zuweisungen { grid-template-columns: 1fr; }
  .orga-arbeitsdialog > form > footer { align-items: stretch; flex-direction: column-reverse; }
  .orga-arbeitsdialog > form > footer button { width: 100%; }
}

/* Dashboard einer Veranstaltung. */
.veranstaltungsdashboard { display: grid; gap: 20px; }
.veranstaltungsdashboard__einstieg { display: flex; align-items: center; justify-content: space-between; gap: 28px; overflow: hidden; padding: clamp(24px, 4vw, 36px); border: 1px solid #d8e6da; border-radius: 20px; background: linear-gradient(125deg, #eff8f1 0%, #fff 58%, #fff9d9 100%); }
.veranstaltungsdashboard__einstieg > div { min-width: 0; }
.veranstaltungsdashboard__einstieg h2 { margin: 0; font-size: clamp(1.55rem, 3vw, 2.15rem); letter-spacing: -.035em; }
.veranstaltungsdashboard__einstieg p:last-child { max-width: 720px; margin: 8px 0 0; color: var(--text-sanft); }
.veranstaltungsdashboard__einstiegssymbol { display: grid; place-items: center; flex: 0 0 62px; width: 62px; height: 62px; border-radius: 18px; color: var(--gruen-tief); background: var(--gelb); box-shadow: 0 10px 28px rgb(96 82 13 / 14%); }
.veranstaltungsdashboard__einstiegssymbol svg { width: 29px; height: 29px; }

.veranstaltungsdashboard__kennzahlen { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.veranstaltungsdashboard-kennzahl { display: flex; align-items: center; gap: 13px; min-width: 0; padding: 17px; border: 1px solid #dfe8e1; border-radius: 15px; background: #fff; box-shadow: 0 6px 22px rgb(27 62 31 / 4%); }
.veranstaltungsdashboard-kennzahl__symbol { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 12px; color: var(--gruen-dunkel); background: var(--gruen-hell); }
.veranstaltungsdashboard-kennzahl--gelb .veranstaltungsdashboard-kennzahl__symbol { color: #655100; background: var(--gelb-hell); }
.veranstaltungsdashboard-kennzahl--blau .veranstaltungsdashboard-kennzahl__symbol { color: #315f7d; background: #edf6fb; }
.veranstaltungsdashboard-kennzahl--rot .veranstaltungsdashboard-kennzahl__symbol { color: #8a332b; background: #fff0ee; }
.veranstaltungsdashboard-kennzahl__symbol svg { width: 21px; height: 21px; }
.veranstaltungsdashboard-kennzahl > div { min-width: 0; }
.veranstaltungsdashboard-kennzahl small,
.veranstaltungsdashboard-kennzahl strong,
.veranstaltungsdashboard-kennzahl span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.veranstaltungsdashboard-kennzahl small { color: #7a867d; font-size: .66rem; font-weight: 800; letter-spacing: .065em; text-transform: uppercase; }
.veranstaltungsdashboard-kennzahl strong { margin-top: 2px; color: var(--text); font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.veranstaltungsdashboard-kennzahl > div > span { margin-top: 2px; color: var(--text-sanft); font-size: .69rem; }

.veranstaltungsdashboard__raster { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: 18px; align-items: start; }
.veranstaltungsdashboard-karte { min-width: 0; overflow: hidden; border: 1px solid #dfe8e1; border-radius: 18px; background: #fff; box-shadow: 0 7px 24px rgb(27 62 31 / 3.5%); }
.veranstaltungsdashboard-karte__kopf { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 104px; padding: 19px 20px; border-bottom: 1px solid var(--linie); background: #fbfdfb; }
.veranstaltungsdashboard-karte__kopf > div { min-width: 0; }
.veranstaltungsdashboard-karte__kopf .ueberzeile { margin-bottom: 3px; }
.veranstaltungsdashboard-karte__kopf h3 { margin: 0; overflow-wrap: anywhere; font-size: 1.08rem; letter-spacing: -.02em; }
.veranstaltungsdashboard-karte__kopf p:last-child { margin: 4px 0 0; color: var(--text-sanft); font-size: .75rem; line-height: 1.45; }
.veranstaltungsdashboard-karte__kopf > a { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; color: var(--gruen-dunkel); font-size: .74rem; font-weight: 800; white-space: nowrap; }
.veranstaltungsdashboard-karte__kopf > a:hover { text-decoration: underline; }
.veranstaltungsdashboard-anzahl { display: inline-grid; place-items: center; flex: 0 0 auto; min-width: 28px; height: 28px; padding: 0 8px; border-radius: 999px; color: var(--gruen-tief); background: var(--gelb); font-size: .75rem; font-weight: 900; font-variant-numeric: tabular-nums; }

.veranstaltungsdashboard-laufliste,
.veranstaltungsdashboard-artikelliste,
.veranstaltungsdashboard-pnliste,
.veranstaltungsdashboard-aufgabenliste { display: grid; }
.veranstaltungsdashboard-lauf { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(82px, auto) 18px; align-items: center; gap: 14px; min-height: 76px; padding: 13px 18px 13px 20px; border-bottom: 1px solid var(--linie); }
.veranstaltungsdashboard-lauf:last-child,
.veranstaltungsdashboard-artikel:last-child,
.veranstaltungsdashboard-pn:last-child,
.veranstaltungsdashboard-aufgabe:last-child { border-bottom: 0; }
.veranstaltungsdashboard-lauf:hover,
.veranstaltungsdashboard-pn:hover,
.veranstaltungsdashboard-aufgabe:hover { background: #f8fbf8; }
.veranstaltungsdashboard-lauf:focus-visible,
.veranstaltungsdashboard-pn:focus-visible,
.veranstaltungsdashboard-aufgabe:focus-visible { position: relative; z-index: 1; outline: 3px solid rgb(39 133 44 / 19%); outline-offset: -3px; }
.veranstaltungsdashboard-lauf__name { display: grid; min-width: 0; gap: 4px; }
.veranstaltungsdashboard-lauf__name strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.veranstaltungsdashboard-lauf__name small { color: var(--text-sanft); font-size: .7rem; }
.veranstaltungsdashboard-lauf__stand { display: grid; min-width: 76px; text-align: right; }
.veranstaltungsdashboard-lauf__stand strong { color: var(--gruen-dunkel); font-size: 1.2rem; font-variant-numeric: tabular-nums; }
.veranstaltungsdashboard-lauf__stand small { color: var(--text-sanft); font-size: .66rem; font-weight: 700; }
.veranstaltungsdashboard-lauf > svg { width: 17px; height: 17px; color: #9aa59c; }

.veranstaltungsdashboard-artikel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(52px, auto) minmax(92px, auto); align-items: center; gap: 15px; min-height: 68px; padding: 12px 20px; border-bottom: 1px solid var(--linie); }
.veranstaltungsdashboard-artikel > span { display: grid; min-width: 0; gap: 3px; }
.veranstaltungsdashboard-artikel > span:not(:first-child) { text-align: right; }
.veranstaltungsdashboard-artikel strong { overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.veranstaltungsdashboard-artikel > span:not(:first-child) strong { color: var(--gruen-dunkel); }
.veranstaltungsdashboard-artikel small { color: var(--text-sanft); font-size: .66rem; }

.veranstaltungsdashboard-pn { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 70px; padding: 13px 20px; border-bottom: 1px solid var(--linie); }
.veranstaltungsdashboard-pn.ist-ungelesen { padding-left: 27px; background: #f4fbf5; }
.veranstaltungsdashboard-pn.ist-ungelesen::before { position: absolute; top: 15px; bottom: 15px; left: 10px; width: 4px; border-radius: 999px; background: var(--gruen); content: ""; }
.veranstaltungsdashboard-pn > span { display: grid; min-width: 0; gap: 4px; }
.veranstaltungsdashboard-pn strong { overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.veranstaltungsdashboard-pn small,
.veranstaltungsdashboard-pn time { color: var(--text-sanft); font-size: .68rem; }
.veranstaltungsdashboard-pn time { white-space: nowrap; font-variant-numeric: tabular-nums; }

.veranstaltungsdashboard-aufgabe { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 76px; padding: 13px 20px; border-bottom: 1px solid var(--linie); }
.veranstaltungsdashboard-aufgabe__symbol { width: 10px; height: 10px; border: 2px solid #9fac9f; border-radius: 50%; }
.veranstaltungsdashboard-aufgabe--heute .veranstaltungsdashboard-aufgabe__symbol { border-color: #d1a918; background: var(--gelb); }
.veranstaltungsdashboard-aufgabe--ueberfaellig .veranstaltungsdashboard-aufgabe__symbol { border-color: #c55247; background: #f4c4bf; }
.veranstaltungsdashboard-aufgabe__inhalt,
.veranstaltungsdashboard-aufgabe__faellig { display: grid; min-width: 0; gap: 4px; }
.veranstaltungsdashboard-aufgabe__inhalt strong { overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.veranstaltungsdashboard-aufgabe__inhalt small { overflow: hidden; color: var(--text-sanft); font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.veranstaltungsdashboard-aufgabe__faellig { text-align: right; }
.veranstaltungsdashboard-aufgabe__faellig small { color: var(--text-sanft); font-size: .64rem; font-weight: 750; text-transform: uppercase; }
.veranstaltungsdashboard-aufgabe__faellig strong { color: #4a574e; font-size: .72rem; white-space: nowrap; }
.veranstaltungsdashboard-aufgabe--heute .veranstaltungsdashboard-aufgabe__faellig strong { color: #725d00; }
.veranstaltungsdashboard-aufgabe--ueberfaellig .veranstaltungsdashboard-aufgabe__faellig strong { color: #973b32; }

.veranstaltungsdashboard-leer { padding: 30px 22px; text-align: center; }
.veranstaltungsdashboard-leer--kompakt { padding-block: 34px; }
.veranstaltungsdashboard-leer strong { display: block; font-size: .9rem; }
.veranstaltungsdashboard-leer p { max-width: 560px; margin: 5px auto 0; color: var(--text-sanft); font-size: .76rem; line-height: 1.5; }
.veranstaltungsdashboard-leer > a { display: inline-flex; margin-top: 12px; color: var(--gruen-dunkel); font-size: .74rem; font-weight: 800; }

@media (max-width: 1100px) {
  .veranstaltungsdashboard__kennzahlen { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .veranstaltungsdashboard__raster { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .veranstaltungsdashboard__einstieg { align-items: flex-start; }
  .veranstaltungsdashboard__einstiegssymbol { flex-basis: 48px; width: 48px; height: 48px; border-radius: 14px; }
  .veranstaltungsdashboard__einstiegssymbol svg { width: 23px; height: 23px; }
  .veranstaltungsdashboard__kennzahlen { grid-template-columns: 1fr; }
  .veranstaltungsdashboard-karte__kopf { align-items: flex-start; flex-direction: column; min-height: 0; }
  .veranstaltungsdashboard-lauf { grid-template-columns: minmax(0, 1fr) auto; gap: 9px 13px; padding: 15px; }
  .veranstaltungsdashboard-lauf .statusmarke { justify-self: end; }
  .veranstaltungsdashboard-lauf__stand { grid-column: 1; grid-row: 2; min-width: 0; text-align: left; }
  .veranstaltungsdashboard-lauf > svg { grid-column: 2; grid-row: 2; justify-self: end; }
  .veranstaltungsdashboard-artikel { grid-template-columns: minmax(0, 1fr) auto; padding-inline: 15px; }
  .veranstaltungsdashboard-artikel > span:last-child { grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: space-between; padding-top: 8px; border-top: 1px solid var(--linie); text-align: left; }
  .veranstaltungsdashboard-pn { grid-template-columns: 1fr; padding-inline: 15px; }
  .veranstaltungsdashboard-pn.ist-ungelesen { padding-left: 25px; }
  .veranstaltungsdashboard-pn time { justify-self: start; }
  .veranstaltungsdashboard-aufgabe { grid-template-columns: 12px minmax(0, 1fr); padding-inline: 15px; }
  .veranstaltungsdashboard-aufgabe__faellig { grid-column: 2; text-align: left; }
}

/* Auswahl beim Kopieren einer Veranstaltung. */
.veranstaltung-kopierdialog { width: min(790px, calc(100vw - 28px)); max-height: min(90vh, 880px); }
.veranstaltung-kopierdialog__einleitung { display: grid; gap: 9px; }
.veranstaltung-kopierdialog__einleitung p { margin: 0; color: var(--text-sanft); font-size: .82rem; line-height: 1.5; }
.veranstaltung-kopierdialog__einleitung strong { color: var(--text); }
.veranstaltung-kopierdialog__rechtehinweis { padding: 11px 13px; border: 1px solid #eadc91; border-radius: 10px; color: #69570b !important; background: var(--gelb-hell); }
.veranstaltung-kopierdialog__alles .auswahlkarte { min-width: 0; border-color: #bad7bc; background: #f8fcf8; }
.veranstaltung-kopierdialog__optionen { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; min-width: 0; padding: 0; border: 0; }
.veranstaltung-kopierdialog__optionen .auswahlkarte { min-width: 0; }
.veranstaltung-kopierdialog .auswahlkarte.ist-deaktiviert { cursor: not-allowed; opacity: .58; background: #f3f5f3; }
.veranstaltung-kopierdialog .auswahlkarte.ist-deaktiviert:hover { border-color: #d6e0d8; }
.veranstaltung-kopierdialog__hinweis { grid-template-columns: 1fr; margin: 0; line-height: 1.5; }
.veranstaltung-kopierdialog[aria-busy="true"] [data-veranstaltung-kopierdialog-schliessen] { pointer-events: none; opacity: .45; }

@media (max-width: 680px) {
  .veranstaltung-kopierdialog__optionen { grid-template-columns: 1fr; }
}

/* Kontrollierter CSV-Import für Veranstaltungsanmeldungen. */
.anmeldungsaktionen { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.anmeldungsimport-upload__formular { padding: clamp(20px, 3vw, 30px); }
.anmeldungsimport-format { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.anmeldungsimport-format > div { min-width: 0; padding: 15px 16px; border: 1px solid #dfe8e1; border-radius: 12px; background: #f8fbf8; }
.anmeldungsimport-format strong,
.anmeldungsimport-format p { display: block; margin: 0; }
.anmeldungsimport-format strong { color: var(--gruen-dunkel); font-size: .8rem; }
.anmeldungsimport-format p { margin-top: 5px; color: var(--text-sanft); font-size: .74rem; line-height: 1.45; }
.anmeldungsimport-dateifeld { display: grid; gap: 8px; padding: 20px; border: 1px dashed #b8d2bb; border-radius: 14px; background: #fbfdfb; }
.anmeldungsimport-dateifeld > span { color: var(--text); font-size: .88rem; font-weight: 800; }
.anmeldungsimport-dateifeld input[type="file"] { min-height: 50px; padding: 9px; border-style: solid; background: #fff; cursor: pointer; }
.anmeldungsimport-dateifeld small { color: var(--text-sanft); font-size: .72rem; }
.anmeldungsimport-upload .formularaktionen { padding-bottom: 0; }

.anmeldungsimport-dateiinfo { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; padding: 15px 18px; border: 1px solid #cfe1d1; border-radius: 14px; background: #f7fbf7; }
.anmeldungsimport-dateiinfo > div { display: flex; align-items: center; gap: 13px; min-width: 0; }
.anmeldungsimport-dateiinfo > div > span:last-child { display: grid; min-width: 0; gap: 3px; }
.anmeldungsimport-dateiinfo strong,
.anmeldungsimport-dateiinfo small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.anmeldungsimport-dateiinfo strong { font-size: .88rem; }
.anmeldungsimport-dateiinfo small { color: var(--text-sanft); font-size: .7rem; }
.anmeldungsimport-dateiinfo__symbol { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; border-radius: 11px; color: var(--gruen-tief); background: var(--gelb); font-size: .68rem; font-weight: 900; }

.anmeldungsimport-pruefung { gap: 18px; }
.anmeldungsimport-mappingliste { display: grid; }
.anmeldungsimport-mappingzeile { display: grid; grid-template-columns: minmax(180px, .85fr) 28px minmax(260px, 1.15fr); align-items: center; gap: 14px; padding: 13px 20px; border-bottom: 1px solid var(--linie); }
.anmeldungsimport-mappingzeile:last-child { border-bottom: 0; }
.anmeldungsimport-mappingzeile > span:first-child { display: grid; min-width: 0; gap: 3px; }
.anmeldungsimport-mappingzeile small { color: var(--text-sanft); font-size: .66rem; font-weight: 750; text-transform: uppercase; }
.anmeldungsimport-mappingzeile strong { overflow: hidden; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.anmeldungsimport-mappingzeile label { min-width: 0; }
.anmeldungsimport-mappingpfeil { color: #91a195; text-align: center; font-weight: 900; }
.anmeldungsimport-mappingfehler,
.anmeldungsimport-abschlussfehler { margin: 0; padding: 12px 16px; color: var(--fehler); background: var(--fehler-hell); font-size: .8rem; font-weight: 700; }
.anmeldungsimport-abschlussfehler { border: 1px solid #efc5c1; border-radius: 11px; }
.anmeldungsimport-stammdaten__inhalt { display: grid; gap: 24px; padding: clamp(20px, 3vw, 28px); }
.anmeldungsimport-zahlungsarten { margin: 0; }

.anmeldungsimport-tabellenrahmen { width: 100%; overflow-x: auto; }
.anmeldungsimport-tabelle { width: max(100%, 1650px); }
.anmeldungsimport-tabelle th,
.anmeldungsimport-tabelle td { padding: 10px; }
.anmeldungsimport-tabelle input,
.anmeldungsimport-tabelle select { min-width: 128px; min-height: 42px; padding: 8px 10px; font-size: .78rem; }
.anmeldungsimport-tabelle td:nth-child(2) select,
.anmeldungsimport-tabelle td:nth-child(3) select { min-width: 230px; }
.anmeldungsimport-tabelle input[type="date"] { min-width: 150px; }
.anmeldungsimport-tabelle .anmeldungsimport-menge { min-width: 86px; width: 86px; }
.anmeldungsimport-zeilenstatus { display: inline-flex; margin-top: 6px; padding: 3px 7px; border-radius: 999px; color: #276a2b; background: #edf8ee; font-size: .61rem; font-weight: 800; }
.anmeldungsimport-zeilenstatus--fehler { color: var(--fehler); background: var(--fehler-hell); }
.anmeldungsimport-dublettenhinweis { display: flex; align-items: flex-start; gap: 13px; margin: 16px 18px 0; padding: 15px 17px; border: 2px solid #d97706; border-radius: 12px; color: #713f12; background: #fff7d6; box-shadow: 0 5px 16px rgb(146 82 10 / 12%); }
.anmeldungsimport-dublettenhinweis[hidden] { display: none; }
.anmeldungsimport-dublettenhinweis > span { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%; color: #fff; background: #b45309; font-weight: 900; }
.anmeldungsimport-dublettenhinweis strong { display: block; color: #7c2d12; }
.anmeldungsimport-dublettenhinweis p { margin: 3px 0; font-size: .82rem; font-weight: 750; }
.anmeldungsimport-dublettenhinweis small { font-size: .72rem; }
.anmeldungsimport-dublettenmarke { display: inline-flex; margin-top: 6px; padding: 4px 8px; border-radius: 999px; color: #fff; background: #b45309; font-size: .61rem; font-weight: 900; }
.anmeldungsimport-dublettenmarke[hidden] { display: none; }
.anmeldungsimport-tabelle tr.anmeldungsimport-zeile--dublette > td { background: #fff8dc; }
.anmeldungsimport-tabelle tr.anmeldungsimport-zeile--dublette > td:first-child { box-shadow: inset 4px 0 #d97706; }
.anmeldungsimport-fehlerzeile td { padding: 8px 14px 12px; color: var(--fehler); background: #fff8f7; }
.anmeldungsimport-fehlerzeile:hover { background: #fff8f7 !important; }
.anmeldungsimport-fehlerzeile ul { display: flex; flex-wrap: wrap; gap: 5px 20px; margin: 0; padding-left: 20px; font-size: .72rem; }
.anmeldungsimport-abschluss { position: sticky; bottom: 0; z-index: 5; margin: 0 -8px; padding: 14px 16px; border: 1px solid #d8e4da; border-radius: 14px; background: rgb(255 255 255 / 96%); box-shadow: 0 -8px 28px rgb(24 62 29 / 8%); backdrop-filter: blur(10px); }

@media (max-width: 780px) {
  .anmeldungsaktionen { align-items: stretch; flex-direction: column-reverse; width: 100%; }
  .anmeldungsaktionen > a { width: 100%; }
  .anmeldungsimport-format { grid-template-columns: 1fr; }
  .anmeldungsimport-mappingzeile { grid-template-columns: 1fr; gap: 8px; padding: 15px; }
  .anmeldungsimport-mappingpfeil { display: none; }
  .anmeldungsimport-dateiinfo { align-items: flex-start; flex-direction: column; }
  .anmeldungsimport-stammdaten__inhalt { padding: 18px 15px; }
  .anmeldungsimport-abschluss { position: static; align-items: stretch; flex-direction: column-reverse; margin: 0; }
  .anmeldungsimport-abschluss button { width: 100%; }
}

@media (max-width: 430px) {
  .anmeldungsimport-tabellenrahmen { overflow-x: auto; }
  .anmeldungsimport-tabelle { display: table; width: 1650px; }
  .anmeldungsimport-tabelle thead { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
  .anmeldungsimport-tabelle tbody { display: table-row-group; }
  .anmeldungsimport-tabelle tr { display: table-row; padding: 0; border: 0; }
  .anmeldungsimport-tabelle th,
  .anmeldungsimport-tabelle td,
  .anmeldungsimport-tabelle td:nth-child(n) { display: table-cell; padding: 10px; border-bottom: 1px solid var(--linie); }
}
