/* Design „Feld“: Rasengrün, Kreideweiß, Leinenrot als Akzent. Handy: schwebende Navigation unten, Computer: Seitenleiste; Formulare als Blatt von unten bzw. Seitenblatt */
:root{
  --bg:#FAFCF8; --page-ink:#13261A; --page-muted:#4E6355;
  --card:#FFFFFF; --ink:#13261A; --muted:#4E6355; --line:#DCE5D7; --soft:#E9F0E5;
  --ice:#CDE0C5; --ice-ink:#1F5A35; --ice-soft:#E1EADC;
  --tile:#1F5A35; --tile-ink:#F4F7F1; --tile-ic-bg:#F4F7F1; --tile-ic:#1F5A35; --tile-arrow:#F4F7F1;
  --primary:#1F5A35; --primary-ink:#F4F7F1; --primary-acc:#F4F7F1;
  --chip:#164328; --chip-ink:#F4F7F1;
  --ball:#1F5A35; --seam:#F4F7F1; --wabe:#9DBF9A;
  --ok:#2A7447; --ok-soft:#DDEBDD; --on-ok:#FFFFFF;
  --warn:#85560A; --warn-soft:#F6EBCF; --warn-ink:#5A3E00;
  --off:#9A2A22; --danger:#B8312A; --danger-soft:#F1E4E1; --on-danger:#FFFFFF;
  --pitch:#1F5A35; --pitch-deep:#164328; --chalk:#F4F7F1;
  --tint:#E1EADC; --tint-ink:#1F5A35;
  --leine:#C8372D; --leine-soft:#F1E4E1; --leine-ink:#9A2A22;
  --hl-acc:#CDE6B8;
  --toast-bg:#164328; --toast-ink:#F4F7F1;
  --hero-line:#FFFFFF; --paper:#FFFFFF; --paper-ink:#13261A; --paper-line:#DCE5D7; --paper-link:#1F5A35;
  --k-t-bg:#DDEBD8; --k-t-fg:#1F5A35; --k-t-dot:#2E7D4A;
  --k-s-bg:#F6DEDA; --k-s-fg:#9A2A22; --k-s-dot:#C8372D;
  --k-u-bg:#F8E7C4; --k-u-fg:#7A4E00; --k-u-dot:#D9901A;
  --k-v-bg:#D8E8EC; --k-v-fg:#1D5A6B; --k-v-dot:#2C7A8F;
  --k-g-bg:#E8DFEE; --k-g-fg:#6B4A85; --k-g-dot:#8E6AA8;
  --scrim:rgba(19,38,26,.45); --shadow:0 18px 48px rgba(19,38,26,.22);
  --shadow-soft:0 2px 10px rgba(19,38,26,.16); --shadow-up:0 -6px 24px rgba(19,38,26,.12);
  --bnav-shadow:0 10px 30px rgba(11,24,16,.35);
  --na-main:#DDEAD5; --na-main-line:#C4D8B9; --na-reply:#EDF2E9; --na-reply-line:#DFE8D9; --na-mine:#C3DBB5;
  --ease:cubic-bezier(.32,.72,0,1);
  --f-display:"Big Shoulders Display","Arial Narrow",system-ui,sans-serif;
  --f-body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0E1C13; --page-ink:#E8EFE4; --page-muted:#A3B5A6;
  --card:#16291D; --ink:#E8EFE4; --muted:#A3B5A6; --line:#29402F; --soft:#1C3323;
  --ice:#2B5A3A; --ice-ink:#BFE3B4; --ice-soft:#21402B;
  --tile:#1D5232; --tile-ink:#F4F7F1; --tile-ic-bg:#F4F7F1; --tile-ic:#1D5232; --tile-arrow:#F4F7F1;
  --primary:#1D5232; --primary-ink:#F4F7F1; --primary-acc:#F4F7F1;
  --chip:#0B1810; --chip-ink:#E8EFE4;
  --ball:#BFE3B4; --seam:#0B1810; --wabe:#9DBF9A;
  --ok:#7BC58D; --ok-soft:#21402B; --on-ok:#0E1C13;
  --warn:#E3B25A; --warn-soft:#3A2F14; --warn-ink:#F0D9A0;
  --off:#F2A59D; --danger:#F0776D; --danger-soft:#3A1F1C; --on-danger:#1E0B09;
  --pitch:#1D5232; --pitch-deep:#1A3A26; --chalk:#F4F7F1;
  --tint:#21402B; --tint-ink:#BFE3B4;
  --leine:#E2574C; --leine-soft:#3A1F1C; --leine-ink:#F2A59D;
  --hl-acc:#BFE3B4;
  --toast-bg:#E8EFE4; --toast-ink:#0E1C13;
  --paper:#FFFFFF; --paper-ink:#13261A; --paper-line:#DCE5D7; --paper-link:#1F5A35;
  --k-t-bg:#24472F; --k-t-fg:#A9DDA0; --k-t-dot:#6CC27F;
  --k-s-bg:#4A2320; --k-s-fg:#F2A59D; --k-s-dot:#E2574C;
  --k-u-bg:#4A3716; --k-u-fg:#F0CB7A; --k-u-dot:#E0A030;
  --k-v-bg:#1D3F49; --k-v-fg:#8ED0E0; --k-v-dot:#4FB0C8;
  --k-g-bg:#3B2D49; --k-g-fg:#D2B8E8; --k-g-dot:#B08ACC;
  --scrim:rgba(0,0,0,.6); --shadow:0 18px 48px rgba(0,0,0,.5);
  --shadow-soft:0 2px 10px rgba(0,0,0,.4); --shadow-up:0 -6px 24px rgba(0,0,0,.4);
  --bnav-shadow:0 10px 30px rgba(0,0,0,.55);
  --na-main:#1D3B28; --na-main-line:#2B5A3A; --na-reply:#132519; --na-reply-line:#1E3626; --na-mine:#2B5A3A;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0E1C13; --page-ink:#E8EFE4; --page-muted:#A3B5A6;
  --card:#16291D; --ink:#E8EFE4; --muted:#A3B5A6; --line:#29402F; --soft:#1C3323;
  --ice:#2B5A3A; --ice-ink:#BFE3B4; --ice-soft:#21402B;
  --tile:#1D5232; --tile-ink:#F4F7F1; --tile-ic-bg:#F4F7F1; --tile-ic:#1D5232; --tile-arrow:#F4F7F1;
  --primary:#1D5232; --primary-ink:#F4F7F1; --primary-acc:#F4F7F1;
  --chip:#0B1810; --chip-ink:#E8EFE4;
  --ball:#BFE3B4; --seam:#0B1810; --wabe:#9DBF9A;
  --ok:#7BC58D; --ok-soft:#21402B; --on-ok:#0E1C13;
  --warn:#E3B25A; --warn-soft:#3A2F14; --warn-ink:#F0D9A0;
  --off:#F2A59D; --danger:#F0776D; --danger-soft:#3A1F1C; --on-danger:#1E0B09;
  --pitch:#1D5232; --pitch-deep:#1A3A26; --chalk:#F4F7F1;
  --tint:#21402B; --tint-ink:#BFE3B4;
  --leine:#E2574C; --leine-soft:#3A1F1C; --leine-ink:#F2A59D;
  --hl-acc:#BFE3B4;
  --toast-bg:#E8EFE4; --toast-ink:#0E1C13;
  --paper:#FFFFFF; --paper-ink:#13261A; --paper-line:#DCE5D7; --paper-link:#1F5A35;
  --k-t-bg:#24472F; --k-t-fg:#A9DDA0; --k-t-dot:#6CC27F;
  --k-s-bg:#4A2320; --k-s-fg:#F2A59D; --k-s-dot:#E2574C;
  --k-u-bg:#4A3716; --k-u-fg:#F0CB7A; --k-u-dot:#E0A030;
  --k-v-bg:#1D3F49; --k-v-fg:#8ED0E0; --k-v-dot:#4FB0C8;
  --k-g-bg:#3B2D49; --k-g-fg:#D2B8E8; --k-g-dot:#B08ACC;
  --scrim:rgba(0,0,0,.6); --shadow:0 18px 48px rgba(0,0,0,.5);
  --shadow-soft:0 2px 10px rgba(0,0,0,.4); --shadow-up:0 -6px 24px rgba(0,0,0,.4);
  --bnav-shadow:0 10px 30px rgba(0,0,0,.55);
  --na-main:#1D3B28; --na-main-line:#2B5A3A; --na-reply:#132519; --na-reply-line:#1E3626; --na-mine:#2B5A3A;
  color-scheme:dark}
*{box-sizing:border-box}
html,body{background:var(--bg)}
body{margin:0}
body{color:var(--page-ink);font-family:var(--f-body);font-size:0.9375rem;line-height:1.45}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ice-ink);outline-offset:2px}
.hero :focus-visible,.selbar :focus-visible{outline-color:var(--chalk)}
::placeholder{color:var(--muted);opacity:1}
.app{max-width:760px;margin:0 auto;padding-inline:16px;padding-top:18px;display:flex;flex-direction:column;gap:16px}

/* Kopf (nur Startseite) */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px}
.top[hidden]{display:none}
.brand{display:flex;align-items:center;gap:12px;border:0;background:none;padding:0;cursor:pointer;color:var(--page-ink);text-align:left}
.brand svg{flex:none}
.brand .t1{font-family:var(--f-display);font-weight:900;font-size:1.5rem;line-height:1;letter-spacing:-.005em}
.brand .t2{font-size:0.75rem;color:var(--page-muted);font-weight:600;letter-spacing:.04em}
.brand .t1 .tw{color:var(--tint-ink)}
.top .brand .t1{font-size:1.75rem}

/* Navigation: Handy schwebende Pille unten, Computer Seitenleiste */
.bnav{position:fixed;left:0;right:0;bottom:0;height:calc(64px + env(safe-area-inset-bottom,0px));padding:0 max(8px,env(safe-area-inset-left,0px)) env(safe-area-inset-bottom,0px) max(8px,env(safe-area-inset-right,0px));background:var(--bg);border-top:1.5px solid var(--line);z-index:30;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center}
.bn{position:relative;height:62px;border:0;border-radius:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;padding:0;font-family:var(--f-body)}
.bn .bi{display:flex;align-items:center;justify-content:center;width:30px;height:30px;transition:color .2s var(--ease)}
.bn svg{width:24px;height:24px}
.bn .bl{font-size:0.75rem;font-weight:600;line-height:1}
.bn[aria-current="page"]{color:var(--ink)}
.bn[aria-current="page"] .bl{font-weight:800}
.nbadge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--danger);color:var(--on-danger);font-size:0.75rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;font-family:var(--f-body)}
.bn .nbadge{position:absolute;top:2px;left:calc(50% + 6px)}
.side{display:none}
.app{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
@media (min-width:900px){
  .bnav{display:none}
  .shell{display:flex;align-items:stretch;min-height:100vh}
  .side{display:flex;flex-direction:column;gap:4px;width:260px;flex:none;position:sticky;top:16px;height:calc(100vh - 32px);margin:16px 0 16px 16px;overflow-y:auto;padding:22px 14px;background:var(--card);color:var(--ink);border-radius:24px;border:1px solid var(--line)}
  .side .brand{color:var(--ink);padding:0 8px 18px}
  .side .brand .t1{font-size:1.375rem}.side .brand .t2{font-size:0.75rem;color:var(--muted)}
  .side .sgrp{display:flex;flex-direction:column;gap:2px;margin-top:8px}
  .side .sg{padding:6px 12px 2px;font-size:0.75rem;font-weight:700;letter-spacing:.04em;color:var(--muted)}
  .side hr{border:0;border-top:1.5px solid var(--line);margin:10px 8px;width:auto}
  .sn{position:relative;z-index:1;display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-weight:700;text-align:left;cursor:pointer;width:100%}
  .sn svg{width:22px;height:22px;flex:none}
  .sn span:not(.nbadge){flex:1 1 auto}
  .sn:hover{background:var(--soft)}
  .sn[aria-current="page"]{color:var(--tint-ink)}.sn[aria-current="page"]:hover{background:transparent}
  .shell>.app{flex:1 1 auto;min-width:0;max-width:960px;margin:0;padding:32px 40px 48px}
  .top{display:none}
  .selbar{left:292px;right:0;bottom:0;border-radius:0}
}

/* Kacheln (alt, falls noch genutzt) */
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:4px}
@media (min-width:640px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tile{position:relative;aspect-ratio:1/1;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:16px;background:var(--tile);color:var(--tile-ink);border-radius:20px;border:0;cursor:pointer;text-align:left;min-width:0}
.tile .ic{width:48px;height:48px;border-radius:16px;background:var(--tile-ic-bg);color:var(--tile-ic);display:flex;align-items:center;justify-content:center;flex:none}
.tile .nm{font-family:var(--f-display);font-size:1.375rem;font-weight:800;line-height:1.05;hyphens:auto;overflow-wrap:break-word}
.tile .tbadge{position:absolute;top:14px;right:14px}
@media (hover:hover){.tile:hover{filter:brightness(1.06)}}
.mrow .av{width:40px;height:40px}
.mrow .av svg{width:22px;height:22px}
.mrow>svg{color:var(--muted);flex:none}

/* Startseite: Hero, Leine, Abschnitte */
.hero{position:relative;overflow:hidden;background:var(--pitch);color:var(--chalk);margin:-18px -16px 0;padding:calc(18px + env(safe-area-inset-top,0px)) 16px 50px;border-radius:0 0 32px 32px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;isolation:isolate}
/* Faustballfeld 50 × 20 m schematisch: Außenlinie, Angabelinien 3 m vor der Mitte, Leine mit Pfosten */
/* Das Feld ist eine eigene Zeichnung (startseite.js), damit der Ball darin fliegen kann; liegt immer quer: am Handy unter der Begrüßung, am Computer rechts daneben */
.hero-field{position:relative;z-index:-1;order:3;align-self:flex-end;width:min(300px,82%);aspect-ratio:520/240;margin-top:-30px;padding:0;background:none;border:0;cursor:pointer}
.hero-field svg{width:100%;height:100%;overflow:visible}
.hero::after{content:"";position:absolute;left:14px;right:14px;bottom:9px;height:44px;border-bottom:2.5px solid var(--hero-line);border-radius:0 0 24px 24px;pointer-events:none}
.hero>*{max-width:100%}
.hwho{margin-bottom:18px}
.hwho .whosel{display:inline-flex;flex-wrap:nowrap;gap:6px;height:32px;padding:0 4px 0 12px;border-radius:999px;background:rgba(244,247,241,.14);max-width:100%}
.hwho .whosel>span{display:none}
.hwho .whosel .fsel{flex:0 1 auto;height:32px;min-width:0;max-width:180px;padding:0 6px;border:0;border-radius:999px;background:transparent;color:var(--chalk);font-size:1rem;font-weight:700}
.hwho .whosel .fsel option{color:#13261A;background:#FFFFFF}
.hero-hi{font-size:0.9375rem;font-weight:600;opacity:.8}
.hsec{display:flex;flex-direction:column;gap:8px}
.hh{margin:0;font-family:var(--f-display);font-size:1.875rem;font-weight:800;line-height:1;letter-spacing:-.005em;padding-top:.05em}
button.hint,a.hint{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:12px 16px;border:0;border-radius:16px;background:var(--tint);color:var(--tint-ink);font-size:0.9375rem;font-weight:700;text-align:left;cursor:pointer;text-decoration:none}
button.hint>svg,a.hint>svg{flex:none;width:20px;height:20px}
button.hint>span:not(.nbadge),a.hint>span:not(.nbadge){flex:1 1 auto;min-width:0}
.hint.warn{color:var(--leine-ink)}
button.hint.warn,a.hint.warn{background:var(--leine-soft)}
@media (min-width:900px){
  .hero{margin:0;border-radius:28px;padding:calc(28px) 36px 44px;min-height:260px}
  .hero::after{left:16px;right:16px;bottom:10px;border-radius:0 0 20px 20px}
  .hero-field{position:absolute;z-index:-1;order:0;right:36px;top:calc(50% - 105px);width:440px;margin:0}
}

/* Begrüßung im Hero (Tageszeit), Feld mit Ball (Zeichnung in startseite.js) */
.hero h1{margin:0;font-family:var(--f-display);font-size:clamp(2.1rem,9.8vw,3.4rem);font-weight:900;line-height:.88;letter-spacing:-.005em;text-transform:uppercase;padding:.04em .1em .08em 0}
@media (min-width:900px){.hero h1{font-size:4.2rem}}
/* Nächster Termin: eigener Block unter dem Hero; solange die Antwort offen ist, leicht getönt */
.nx{padding:18px;border:1.5px solid var(--line);border-radius:18px;background:var(--card);transition:background-color .4s var(--ease),border-color .4s var(--ease)}
.nx.k-t,.nx.k-s,.nx.k-u,.nx.k-v,.nx.k-g{background:var(--card);color:var(--ink)}   /* die allgemeinen Arten-Farben (.k-t …) gelten hier nicht */
.nx.open{background:color-mix(in srgb,var(--tint) 62%,var(--card));border-color:transparent}
.nx-l{font-size:0.75rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.nx-main{display:flex;gap:18px;align-items:center;margin-top:12px;padding-left:8px}
.nx .dd{box-shadow:-4px 0 0 var(--k-t-dot);width:52px}
.nx.k-t{--kc:var(--k-t-fg)}.nx.k-s{--kc:var(--k-s-fg)}.nx.k-u{--kc:var(--k-u-fg)}.nx.k-v{--kc:var(--k-v-fg)}.nx.k-g{--kc:var(--k-g-fg)}
.nx .dw{color:var(--kc)}
.nx-k{display:block;font-size:0.75rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--kc)}
.nx-t{display:block;font-size:1.3125rem;font-weight:800;line-height:1.15;margin-top:1px}
.nx-m{display:block;color:var(--muted);font-size:0.9375rem;margin-top:2px}
.nx-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.nx-ans{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.nx-ans.one{grid-template-columns:1fr}
.nxb{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:999px;border:1.5px solid var(--pitch);background:transparent;color:var(--tint-ink);font-weight:800;font-size:1rem;cursor:pointer;transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .18s var(--ease)}
.nxb:active{transform:scale(.97)}
.nxb[aria-pressed="true"]{background:var(--pitch);border-color:var(--pitch);color:var(--chalk)}
.nxb.no[aria-pressed="true"]{background:var(--leine-soft);border-color:var(--leine);color:var(--leine-ink)}
.nx-c{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:0.875rem;font-weight:700;color:var(--muted)}
.nx-c .linkbtn{min-height:44px}
.nx-empty{font-size:1.125rem;font-weight:600;color:var(--muted)}
/* Zustand rechts in der Terminzeile: Zugesagt · Offen · Abgesagt (kein farbig hinterlegter Termin mehr) */
.dst{flex:none;font-size:0.75rem;font-weight:800;padding:4px 10px;border-radius:999px;white-space:nowrap}
.dst.ja{background:var(--ok-soft);color:var(--ok)}.dst.nein{background:var(--leine-soft);color:var(--leine-ink)}.dst.offen{background:var(--warn-soft);color:var(--warn-ink)}
/* Gleitende Markierung der aktiven Seite (Leiste unten, Seitenleiste) */
.bind{position:absolute;top:-1.5px;left:0;height:4px;border-radius:0 0 3px 3px;background:var(--tint-ink);pointer-events:none}
.sind{position:absolute;top:0;left:0;height:44px;border-radius:999px;background:var(--tint);pointer-events:none;z-index:0}

/* Terminlisten */
.dlist{display:flex;flex-direction:column}
.drow{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;padding:12px 4px;background:none;color:var(--ink);border:0;border-bottom:1.5px solid var(--line);text-align:left;cursor:pointer}
.dlist>.drow:last-child,.drow:last-child{border-bottom:0}
.dd{flex:none;width:46px;text-align:center;font-family:var(--f-display);display:flex;flex-direction:column;align-items:center}
.dw{font-size:0.9375rem;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.03em}
.dn{font-size:2.125rem;font-weight:900;line-height:.9;margin-top:2px;font-variant-numeric:tabular-nums}
.dd.wm{width:64px}.dd.wm .dn{font-size:1.6875rem;letter-spacing:-.01em}
.drow .who{flex:1 1 auto;min-width:0}
.drow .nm{font-size:1rem;font-weight:700}
.drow .meta{font-size:0.875rem;color:var(--muted)}
.drow>.tag,.drow>.rt{flex:none}
.drow.k-t,.drow.k-s,.drow.k-u,.drow.k-v,.drow.k-g{background:none;color:var(--ink)}
.drow.k-t .dw{color:var(--k-t-fg)}.drow.k-s .dw{color:var(--k-s-fg)}.drow.k-u .dw{color:var(--k-u-fg)}.drow.k-v .dw{color:var(--k-v-fg)}.drow.k-g .dw{color:var(--k-g-fg)}
.dmon{margin:0 0 4px;padding:18px 0 2px;align-self:flex-start;width:fit-content;font-family:var(--f-display);font-size:1.625rem;font-weight:800;line-height:1;color:var(--ink);text-transform:uppercase;letter-spacing:.02em;border-bottom:3px solid var(--leine)}
.drow.lab .who::before{display:block;font-size:0.75rem;font-weight:800;letter-spacing:.09em;margin-bottom:2px}
.drow.lab.k-t .who::before{content:"TRAINING";color:var(--k-t-fg)}.drow.lab.k-s .who::before{content:"SPIELTAG";color:var(--k-s-fg)}
.drow.lab.k-u .who::before{content:"TURNIER";color:var(--k-u-fg)}.drow.lab.k-v .who::before{content:"VEREIN";color:var(--k-v-fg)}
.drow.lab.k-g .who::before{content:"GEBURTSTAG";color:var(--k-g-fg)}
.drow.lab .dd{margin-left:8px;box-shadow:-4px 0 0 var(--k-t-dot)}
.drow.lab .dd.wm{width:72px;margin-left:12px}   /* ein Strich für alle Arten und Zustände */
.tmode{display:inline-flex;height:44px;background:transparent;border:1.5px solid var(--line);border-radius:12px;padding:3px;gap:2px;flex:none}
.tmode button{border:0;border-radius:8px;padding:0 16px;background:transparent;color:var(--tint-ink);font-weight:700;font-size:0.875rem;cursor:pointer}
.tmode button[aria-pressed="true"],.tmode button[aria-current="true"]{background:var(--pitch);color:var(--chalk)}
.tchips{display:flex;gap:14px;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding:2px 16px}
.tchips::-webkit-scrollbar{display:none}
.tchips button{flex:none;height:44px;padding:0 6px;border:0;border-radius:0;background:transparent;color:var(--muted);font-weight:700;font-size:0.9375rem;cursor:pointer}
.tchips button[aria-pressed="true"]{color:var(--ink);box-shadow:inset 0 -4px 0 var(--tint-ink)}
@media (min-width:900px){.tchips{margin-inline:0;padding-inline:0;flex-wrap:wrap}}

/* Abteilung: Kacheln */
.atiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (min-width:640px){.atiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
.atile{position:relative;min-height:76px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;align-items:center;align-content:center;padding:12px 14px;border:1.5px solid color-mix(in srgb,var(--ink) 28%,transparent);border-radius:14px;background:transparent;color:var(--ink);text-align:left;cursor:pointer;min-width:0}
.atile .ai{display:flex;grid-row:1/3;color:var(--tint-ink)}
.atile .ai svg{width:28px;height:28px}
.atile .an{grid-column:2;grid-row:1/3;align-self:center;font-size:1rem;font-weight:700;line-height:1.15;hyphens:auto;overflow-wrap:break-word}
.atile:has(.am) .an{grid-row:1;align-self:end}
.atile .am{grid-column:2;grid-row:2;align-self:start;font-size:0.75rem;font-weight:500;color:var(--muted);line-height:1.2}
.atile .tbadge{position:absolute;top:auto;right:0;bottom:0;width:28px;min-width:0;height:24px;padding:0 0 0 3px;border-radius:10px 0 12.5px 0;font-size:0.8125rem;letter-spacing:-.02em;box-sizing:border-box}

/* Abteilung: Gruppen (Sport · Verein · Verwaltung) */
.mgrp{display:flex;flex-direction:column;gap:2px}
.mg{margin:6px 0 0;font-family:var(--f-display);font-size:1.25rem;font-weight:800;line-height:1;color:var(--page-muted);letter-spacing:.02em}

/* Tab-Kopf */
.phead{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px}
.phead h1{margin:0;font-family:var(--f-display);font-size:2.75rem;font-weight:900;line-height:.9;letter-spacing:-.01em;padding:.06em 0 .16em;margin-bottom:-.1em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;padding-right:.08em}   /* Platz für überstehende Buchstabenkanten (g, r) */
@media (min-width:900px){.phead h1{font-size:3.25rem}}
.actions{display:flex;gap:8px;flex:none}
.btn.icon{width:44px;padding:0;justify-content:center}
.btn.icon svg{width:18px;height:18px}
.btn{height:44px;padding:0 18px;border:0;border-radius:999px;background:var(--card);color:var(--ink);font-weight:700;display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.btn.primary{background:var(--primary);color:var(--primary-ink)}
.btn.primary svg{color:var(--primary-acc)}
.btn.sm{height:36px;padding:0 14px;border-radius:999px;font-size:0.8125rem}
.btn.ghost{background:transparent;border:1.5px solid var(--line);color:var(--page-ink)}
.card .btn.ghost,.sheet .card .btn.ghost{color:var(--ink)}
.btn.danger{background:transparent;color:var(--danger);border:1.5px solid var(--line)}
.sheet .btn.danger{color:var(--danger)}
.btn.danger.armed{background:var(--danger);color:var(--on-danger);border-color:var(--danger)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn svg{width:16px;height:16px;flex:none}
.linkbtn{border:0;background:none;color:var(--ice-ink);font-weight:700;padding:0;cursor:pointer;text-decoration:underline;font-size:inherit}
.page-link{color:var(--page-ink)}

/* Unter-Reiter + Umschalter */
.subtabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;margin-inline:-16px;padding-inline:16px}
.subtabs::-webkit-scrollbar{display:none}
@media (min-width:900px){.subtabs{margin-inline:0;padding-inline:0}}
.subtab{flex:none;height:44px;padding:0 16px;border-radius:0;border:0;background:transparent;color:var(--page-muted);font-weight:700;cursor:pointer;display:flex;align-items:center;gap:6px}
.subtab[aria-current="true"]{background:transparent;color:var(--ink);box-shadow:inset 0 -4px 0 var(--tint-ink)}
.kempty .kcell{background:transparent;box-shadow:none}   /* leerer Monat: Kacheln ohne Fläche (abgeblendet) – Text bleibt kontrastreich, 4.4.5 */
.empty-card{display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin-top:12px;padding:14px 16px;border:1.5px dashed var(--line);border-radius:18px;font-weight:600}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sbseg{margin:10px 0 4px;max-width:100%;overflow-x:auto;scrollbar-width:none}
.sbseg::-webkit-scrollbar{display:none}
.subtab:disabled{cursor:default;opacity:.75}
.soon{font-size:0.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:var(--leine-soft);color:var(--leine-ink);border-radius:999px;padding:1px 7px}
.seg{display:inline-flex;height:44px;background:var(--tint);border-radius:999px;padding:4px;gap:2px;flex:none}
.seg button{border:0;border-radius:999px;padding:0 14px;background:transparent;color:var(--tint-ink);font-weight:700;font-size:0.875rem;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--pitch);color:var(--chalk)}

/* Kennzahlen */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.stat{background:var(--card);color:var(--ink);border-radius:18px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.stat b{font-family:var(--f-display);font-size:2.125rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.stat span{font-size:0.75rem;color:var(--muted);font-weight:600}
.stat.hl{background:var(--pitch);color:var(--chalk)}.stat.hl b{color:var(--hl-acc)}.stat.hl span{color:rgba(244,247,241,.78)}

/* Werkzeugleiste: Suche · Filter · Auswählen; Filter klappen auf */
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tbar{display:flex;gap:8px;align-items:center}
.tb-fill{flex:1 1 auto}
.tbf{flex:none;padding:0 14px}
.tbf.on{background:var(--pitch);color:var(--chalk)}
.tbar>.btn.ghost{flex:none;padding:0 14px}
.fpanel{display:flex;flex-direction:column;gap:12px;padding:14px;background:var(--card);color:var(--ink);border-radius:18px}
@media (min-width:900px){.fpanel{flex-direction:row;flex-wrap:wrap;gap:16px 24px;align-items:flex-start}}
.fgroup{display:flex;flex-direction:column;gap:6px;min-width:0}
.flabel{font-size:0.75rem;font-weight:700;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.ksec>.flabel{color:var(--page-muted)}
.fchips{display:flex;flex-wrap:wrap;gap:6px}
.fchip{min-height:40px;padding:0 14px;border-radius:999px;border:0;background:var(--tint);color:var(--tint-ink);font-weight:700;font-size:0.875rem;cursor:pointer}
.fchip.sm{min-height:36px;padding:0 12px;font-size:0.8125rem}
.fchip[aria-pressed="true"]{background:var(--pitch);color:var(--chalk)}
.fpanel .fsel{height:44px;font-size:1rem;min-width:200px}
.search{flex:1 1 auto;display:flex;align-items:center;gap:8px;height:44px;padding:0 16px;background:var(--card);border-radius:999px;color:var(--ink);min-width:0}
.search input{border:0;outline:0;background:transparent;width:100%;min-width:0;font-size:1rem;color:var(--ink)}
.fsel{height:44px;padding:0 12px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-size:1rem;font-weight:600;max-width:100%}

/* Listen: Trennlinien statt Kästen */
.list{display:flex;flex-direction:column;gap:0}
.row{display:flex;align-items:center;gap:12px;padding:12px 4px;min-height:56px;background:transparent;color:var(--ink);border-radius:0;border:0;border-bottom:1.5px solid var(--line);width:100%;text-align:left;cursor:pointer}
.list>.row:last-child{border-bottom:0}
.list.bubbles{gap:10px}.list.bubbles>.row{background:var(--card);border:0;border-radius:18px;padding:12px 14px;box-shadow:0 0 0 1px var(--line)}   /* 4.7.8: Wettkampf-Blöcke als helle Blasen wie die Stufen */
.pick-sep{border:0;border-top:1px solid var(--line);margin:6px 4px}
@media (hover:hover){.row:hover{background:var(--soft)}}   /* nur mit Maus: am Handy bliebe die Zeile nach dem Antippen „hängen“ */
.av{width:40px;height:40px;border-radius:14px;background:var(--tint);color:var(--tint-ink);font-weight:800;font-size:0.8125rem;display:flex;align-items:center;justify-content:center;flex:none}
.av.date{flex-direction:column;line-height:1.05;width:48px;height:48px;font-size:0.75rem}
.av.date b{font-family:var(--f-display);font-size:1.375rem;font-weight:900}
.who{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.nm{font-weight:700;overflow-wrap:anywhere}
/* 3.4.1: Spieltag-Bezeichnung in Zeilen (Klasse + Liga / Mannschaft / Spieltag), überall gleiche Schriftgröße */
.nml{display:block}
.nml+.nml{white-space:nowrap}
.drow .nml+.nml{white-space:normal}   /* lange Titel dürfen umbrechen und laufen nicht unter „Antwort offen“ (3.10) */
.meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:0.8125rem;color:var(--muted);align-items:center}
.fn{color:var(--ice-ink);font-weight:700}
.st-aktiv{color:var(--ok);font-weight:700}.st-passiv{color:var(--warn);font-weight:700}.st-ausgetreten{color:var(--off);font-weight:700}
.amp{display:flex;gap:4px;flex-wrap:wrap}
.dot{display:inline-flex;align-items:center;gap:4px;font-size:0.75rem;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
.dot::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.dot.ok{background:var(--ok-soft);color:var(--ok)}.dot.wa{background:var(--warn-soft);color:var(--warn)}.dot.no{background:var(--danger-soft);color:var(--danger)}.dot.na{background:var(--soft);color:var(--muted)}
.hinw{display:flex;flex-direction:column;gap:6px}
.hinw .it{display:flex;gap:10px;align-items:flex-start;font-size:0.875rem}
.docrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);width:100%;background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;color:var(--ink);font:inherit}
.docrow:first-child{border-top:0}
button.docrow{cursor:pointer}
.dsk{font:800 0.6875rem var(--f-body);letter-spacing:.02em}
.dsk.k-pdf{background:var(--danger-soft);color:var(--danger)} .dsk.k-doc{background:var(--ice-soft);color:var(--ice-ink)}
.dsk.k-xls{background:var(--ok-soft);color:var(--ok)} .dsk.k-ppt{background:var(--warn-soft);color:var(--warn)} .dsk.k-link{background:var(--soft);color:var(--ink)}
.av.dstop{background:var(--pitch);color:var(--chalk)}
.dscrumb{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:0.8125rem;color:var(--muted)}
.dscrumb .linkbtn{font-size:0.8125rem}
.dstitle{display:flex;align-items:center;gap:6px;min-width:0}
.dstitle h1{min-width:0}
.dshead,.dsfile{display:flex;align-items:center;gap:12px}
.dsfile .who{flex:1;min-width:0}
.dswho{font-size:0.75rem;color:var(--page-muted)}
.dswho summary{cursor:pointer;padding:4px 0}
.dswho ul{margin:2px 0 0;padding-left:18px}
.dsact{display:flex;flex-wrap:wrap;gap:8px}
.docic{width:34px;height:34px;border-radius:10px;background:var(--ice-soft);color:var(--ice-ink);display:flex;align-items:center;justify-content:center;font:800 0.625rem var(--f-body);flex:none}
.docs{display:flex;flex-direction:column}
.docline{display:flex;align-items:center;gap:6px}
.docline .docrow{flex:1;min-width:0}
.upl{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line)}
.rt{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none}
.chip{font-family:var(--f-body);font-variant-numeric:tabular-nums;font-size:0.875rem;font-weight:800;padding:2px 10px;border-radius:999px;background:var(--chip);color:var(--chip-ink);white-space:nowrap}
.chip.light{background:var(--ice-soft);color:var(--ice-ink)}
.small{font-size:0.75rem;color:var(--muted)}
.tag{font-size:0.75rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--muted);white-space:nowrap}
.tag.ice{background:var(--ice-soft);color:var(--ice-ink)}
.tag.warn{background:var(--warn-soft);color:var(--warn)}
.tag.danger{background:var(--danger-soft);color:var(--danger)}
.tag.ok{background:var(--ok-soft);color:var(--ok)}
.tag.ex{border:1px dashed var(--line);background:transparent}
.empty{background:var(--card);color:var(--muted);border-radius:18px;padding:28px 16px;text-align:center}
.empty strong{display:block;color:var(--ink);font-size:1rem;margin-bottom:4px}
.foot{font-size:0.75rem;color:var(--page-muted)}
.notice{background:var(--card);color:var(--ink);border-radius:16px;padding:12px 14px;font-size:0.875rem}
.notice.err{color:var(--danger)}
.toast{position:fixed;left:50%;bottom:calc(80px + env(safe-area-inset-bottom,0px));transform:translate(-50%,16px);opacity:0;pointer-events:none;background:var(--toast-bg);color:var(--toast-ink);padding:12px 18px;border-radius:999px;font-weight:700;box-shadow:var(--shadow);z-index:80;max-width:calc(100% - 32px);transition:opacity .25s var(--ease),transform .4s var(--ease)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.card{background:var(--card);color:var(--ink);border-radius:18px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.card.flat{background:transparent;border-radius:0;border-top:3px solid var(--ink);padding:12px 0}
.card.flat h2,.card.flat h3{font-size:1.625rem}
.item.zero,.item.zero .small{color:var(--muted)}
.item.zero .nm{font-weight:600}
.card h2,.card h3{margin:0;font-family:var(--f-display);font-size:1.375rem;font-weight:800;line-height:1.05}
.kv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;font-size:0.875rem;align-items:baseline}
.kv .num{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}
.num{font-variant-numeric:tabular-nums}
.pos{color:var(--ok)}.neg{color:var(--danger)}

/* Kalender */
.cal{background:var(--card);color:var(--ink);border-radius:18px;padding:10px}
.cal-head,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-head span{text-align:center;font-size:0.75rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:4px 0}
.cal-cell{position:relative;aspect-ratio:1/1.05;max-width:100%;border:0;border-radius:12px;background:var(--soft);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer;padding:0;font:inherit}
.cal-cell.empty{background:transparent;cursor:default}
.cal-n{font-weight:800;font-size:0.875rem;font-variant-numeric:tabular-nums}
.cal-s{font-size:0.6875rem;font-weight:800;line-height:1}
.cal-cell.st-none{background:var(--soft);color:var(--muted)}
.cal-cell.st-free{background:var(--ice);color:var(--ink)}
.cal-cell.st-full{background:var(--pitch);color:var(--chalk)}
.cal-cell.today{box-shadow:0 0 0 2px var(--ice-ink) inset}
.cal-cell.sel{outline:3px solid var(--ice-ink);outline-offset:1px}
.cal-x{position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px var(--card)}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:0.75rem;color:var(--page-muted);align-items:center}
.legend span{display:inline-flex;align-items:center;gap:6px}
.lg{width:14px;height:14px;border-radius:4px;display:inline-block}
.lg.st-free{background:var(--ice)}.lg.st-full{background:var(--pitch);box-shadow:0 0 0 1px var(--line)}.lg.st-none{background:var(--soft);box-shadow:0 0 0 1px var(--line)}.lg.x{background:var(--danger);border-radius:50%;width:10px;height:10px}

/* Finanzen */
.ftable{width:100%;border-collapse:collapse;font-size:0.875rem}
.ftable th{text-align:right;font-size:0.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;padding:6px 4px}
.ftable th:first-child{text-align:left}
.ftable td{padding:8px 4px;border-top:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ftable td:first-child{text-align:left;font-weight:700;white-space:normal}
.ftable tr.total td{font-weight:800;border-top:2px solid var(--ink)}
.tablewrap{overflow-x:auto}
details.area{background:var(--card);color:var(--ink);border-radius:18px;overflow:hidden}
details.area>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:14px 16px;min-height:48px;cursor:pointer;font-weight:800}
details.area>summary::-webkit-details-marker{display:none}
details.area>summary .sum{margin-left:auto;font-variant-numeric:tabular-nums}
details.area>summary .chev{transition:transform .28s var(--ease)}
details.area[open]>summary .chev{transform:rotate(90deg)}
.area-body{padding:0 16px 14px;display:flex;flex-direction:column;gap:8px}
.item{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);width:100%;background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;color:var(--ink)}
button.item{cursor:pointer}
.item .who{gap:1px}
.item .amt{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}

/* Blatt (Formular): Handy von unten, Computer als Seitenblatt von rechts */
.scrim{position:fixed;inset:0;z-index:40;display:flex;justify-content:flex-end;align-items:flex-end}
.scrim::before{content:"";position:absolute;inset:0;background:var(--scrim);opacity:var(--dim,1)}
.sheet{position:relative;background:var(--bg);color:var(--page-ink);width:100%;height:auto;max-height:calc(100% - 24px - env(safe-area-inset-top,0px));min-height:40%;display:flex;flex-direction:column;border-radius:28px 28px 0 0;box-shadow:var(--shadow);overflow:hidden}
.sheet::before{content:"";position:absolute;top:8px;left:50%;width:40px;height:5px;margin-left:-20px;border-radius:3px;background:var(--line);z-index:1}
.sh-head{touch-action:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 16px 10px 20px;border-bottom:1.5px solid var(--line);flex:none}
.sh-head h2{margin:0;font-family:var(--f-display);font-size:1.875rem;font-weight:800;line-height:1;letter-spacing:-.005em;padding-top:.05em;overflow-wrap:anywhere}
.x{border:0;background:none;font-size:1.75rem;line-height:1;cursor:pointer;color:var(--page-muted);width:44px;height:44px;flex:none}
.sh-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px;display:flex;flex-direction:column;gap:18px}
.sh-foot{flex:none;border-top:1.5px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sh-foot .right{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}
@media (min-width:900px){
  .sheet{width:min(600px,100%);height:100%;max-height:none;min-height:0;border-radius:28px 0 0 28px}
  .sheet::before{display:none}
  .sh-head{padding:calc(18px + env(safe-area-inset-top,0px)) 16px 12px 24px}
}
.formerr{width:100%;color:var(--danger);font-weight:600;font-size:0.875rem}
.confirm{width:100%;background:var(--warn-soft);color:var(--warn-ink);border-radius:14px;padding:10px 12px;font-weight:600;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.confirm span{flex:1 1 100%}   /* Text über volle Breite, Knöpfe darunter nebeneinander (4.4.5, längere Folgentexte) */
.confirm .btn.danger{background:var(--danger);color:var(--on-danger);border-color:var(--danger)}
fieldset{border:0;margin:0;padding:0;min-width:0}
.sec{display:flex;flex-direction:column;gap:10px}
.sec+.sec{margin-top:6px}
.sec-h{margin:0;font-family:var(--f-display);font-size:1rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--page-muted)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (max-width:480px){.grid{grid-template-columns:minmax(0,1fr)}}
.f{display:flex;flex-direction:column;gap:4px;min-width:0}
.f.full{grid-column:1/-1}
.f>span{font-size:0.8125rem;font-weight:700}
.f>span i{font-style:normal;color:var(--danger)}
.f input,.f select,.f textarea,.inp{width:100%;min-height:44px;padding:9px 14px;border:1.5px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);font-size:1rem}
.f textarea{min-height:80px;resize:vertical}
/* Ansichtsmodus: Wert als Text statt gesperrtes Feld */
.vv{font-size:0.9375rem;line-height:1.45;overflow-wrap:anywhere;color:var(--ink)}
.vv.pre{white-space:pre-wrap}
.sh-fs[disabled] .f:has(> span:only-child){display:none}
#shTitle:focus{outline:none}
/* iPhone: Datums-/Zeitfelder nicht breiter als die Spalte; Felder ab 16 px, sonst zoomt Safari beim Antippen hinein */
.f input[type=date],.f input[type=time],.f input[type=month],.f input[type=datetime-local]{-webkit-appearance:none;appearance:none;display:block;min-width:0;max-width:100%;text-align:left}
.f input::-webkit-date-and-time-value{text-align:left}
@supports (-webkit-touch-callout:none){input,select,textarea{font-size:1rem!important}}
.ferr{display:block;color:var(--danger);font-weight:600;font-size:0.875rem;margin-top:4px}
.err-f{border-color:var(--danger)!important;box-shadow:0 0 0 1px var(--danger)}
.hint{font-size:0.75rem;color:var(--page-muted)}
.hint b{color:var(--page-ink)}
.checks{display:flex;flex-wrap:wrap;gap:6px}
.ck{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:999px;background:var(--card);color:var(--ink);font-weight:600;font-size:0.875rem;cursor:pointer;border:1.5px solid var(--line)}
.ck input{width:18px;height:18px;accent-color:var(--pitch);margin:0}
.ck:has(input:checked){background:var(--tint);border-color:var(--pitch);color:var(--tint-ink)}
.block{background:var(--card);color:var(--ink);border-radius:18px;padding:12px;display:flex;flex-direction:column;gap:10px}
.block .f>span{color:var(--ink)}
.block-h{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:800;font-size:0.8125rem}
.rm{border:0;background:var(--soft);color:var(--muted);width:36px;height:36px;border-radius:999px;cursor:pointer;font-size:1.125rem;line-height:1;flex:none}
.add{align-self:flex-start}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.pchip{display:inline-flex;align-items:center;gap:4px;padding:4px 4px 4px 12px;border-radius:999px;background:var(--card);color:var(--ink);font-size:0.8125rem;font-weight:600;border:1.5px solid var(--line)}
.pchip button{border:0;background:var(--soft);color:var(--muted);width:26px;height:26px;border-radius:50%;cursor:pointer}
.pchip.sug{background:var(--ice-soft);border-color:transparent;color:var(--ice-ink);padding:6px 12px;cursor:pointer}
.pchip.off{opacity:.6;text-decoration:line-through}
.pk{position:relative}
.pk-res{display:flex;flex-direction:column;background:var(--card);border-radius:14px;box-shadow:var(--shadow);margin-top:4px;max-height:240px;overflow-y:auto}
.pk-res:empty{display:none}
.pk-res button{border:0;background:none;text-align:left;padding:12px;min-height:44px;cursor:pointer;color:var(--ink);display:flex;justify-content:space-between;gap:8px}
@media (hover:hover){.pk-res button:hover{background:var(--ice-soft)}}
.pk-res .small{white-space:nowrap}
.suggest{display:flex;flex-wrap:wrap;gap:6px}
.sug-btn{border:1.5px solid var(--line);background:var(--card);color:var(--ink);border-radius:14px;padding:8px 12px;cursor:pointer;text-align:left;font-size:0.8125rem;display:flex;flex-direction:column;gap:1px}
.sug-btn b{font-size:0.8125rem}
.sug-btn:hover{border-color:var(--ice-ink)}
.sh-fs[disabled] .f input,.sh-fs[disabled] .f select,.sh-fs[disabled] .f textarea{background:var(--soft);border-color:transparent;color:var(--ink);-webkit-text-fill-color:var(--ink);opacity:1}
.sh-fs[disabled] .add,.sh-fs[disabled] .rm,.sh-fs[disabled] .edit-only{display:none}
.sh-fs[disabled] .ck{opacity:1}
.sh-fs[disabled] .ck:not(:has(input:checked)){display:none}
.sh-fs[disabled] .f:has(> .checks):not(:has(input:checked)){display:none}
.sh-fs[disabled] .f>span i{display:none}
.links a{color:var(--ice-ink);font-weight:700;overflow-wrap:anywhere}
.beleg{max-width:100%;border-radius:14px;display:block}
.prog{height:8px;border-radius:4px;background:var(--soft);overflow:hidden;min-width:60px}
.prog i{display:block;height:100%;background:var(--pitch)}
.cl{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);min-height:44px}
.cl:first-child{border-top:0}
.cl input[type=checkbox]{width:22px;height:22px;accent-color:var(--pitch);flex:none}
.cl .t{flex:1;min-width:0}
.cl.done .t{text-decoration:line-through;color:var(--muted)}
.mv{border:0;background:var(--soft);color:var(--muted);width:36px;height:36px;border-radius:999px;cursor:pointer}
.info-txt{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
.info-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.urow{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 0;border-bottom:1.5px solid var(--line)}
.urow:last-child{border-bottom:0}
.urow select{max-width:150px}
.home-exp{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:18px}
/* Einladungen und Zusagen */
.zbanner{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:14px 16px;border:0;border-radius:18px;background:var(--tint);color:var(--tint-ink);font:inherit;font-weight:700;text-align:left;cursor:pointer}
.tbadge{background:var(--danger);color:var(--on-danger);border-radius:999px;min-width:24px;height:24px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--f-body);font-size:0.8125rem;font-weight:800;flex:none}
.zrow{display:flex;align-items:center;justify-content:space-between;gap:10px}
.zp{font-size:0.75rem;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap;flex:none}
.zp.ok{background:var(--ok-soft);color:var(--ok)}.zp.no{background:var(--danger-soft);color:var(--danger)}.zp.op{background:var(--soft);color:var(--muted)}
.zans{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.zans .btn{justify-content:center;border:1.5px solid var(--line)}
.btn.zon{background:var(--ok);color:var(--on-ok);border-color:transparent}
.btn.zno{background:var(--danger);color:var(--on-danger);border-color:transparent}
.zsum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.zsum div{background:var(--card);color:var(--ink);border-radius:16px;padding:10px;text-align:center;display:flex;flex-direction:column}
.zsum b,.znum{font-family:var(--f-display);font-size:1.75rem;font-weight:900;line-height:1.05;font-variant-numeric:tabular-nums}
.zsum span{font-size:0.75rem;font-weight:700;color:var(--muted)}
.zlist{gap:0;padding-block:4px}
.zline{display:flex;align-items:center;gap:10px;justify-content:space-between;width:100%;padding:10px 0;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer;min-height:44px}
.zline:first-child{border-top:0}
.zline .who{display:flex;flex-direction:column;gap:1px;min-width:0}
.zwhy{font-size:0.75rem;color:var(--muted);font-style:italic}
.zopt{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-top:1px solid var(--line);cursor:pointer;min-height:44px}
.zopt:first-of-type{border-top:0}
.zopt input{width:22px;height:22px;accent-color:var(--pitch);flex:none;margin:2px 0 0}
/* Ansicht-Auswahl */
.whosel{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.whosel>span{font-size:0.8125rem;font-weight:700;color:var(--page-muted)}
.whosel .fsel{flex:1 1 220px;height:44px;font-size:1rem}
.whohint{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--tint);color:var(--tint-ink);border-radius:14px;padding:8px 12px;font-size:0.8125rem}
.whohint b{color:var(--tint-ink)}
/* Mehrfachauswahl */
.seltools{display:flex;gap:6px;flex-wrap:wrap}
.chipb{border:1.5px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;min-height:44px;padding:0 14px;font:inherit;font-size:0.8125rem;font-weight:700;cursor:pointer}
.selrow{gap:10px}
.selrow.on{background:var(--tint);border-radius:14px}
.selck{width:24px;height:24px;border-radius:7px;border:2px solid var(--line);flex:none;display:flex;align-items:center;justify-content:center;font-size:0.875rem;font-weight:900;color:var(--chalk)}
.selrow.on .selck{background:var(--pitch);border-color:var(--pitch)}
.selspace{height:72px}
.selbar{position:fixed;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:35;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:22px;background:var(--card);color:var(--ink);border:1.5px solid var(--line);box-shadow:var(--shadow-up);font-weight:700}
.selbar .btn{white-space:normal;text-align:center}
body:has(.selbar) .toast{bottom:calc(154px + env(safe-area-inset-bottom,0px))}
@media (min-width:900px){.toast{bottom:24px}body:has(.selbar) .toast{bottom:88px}.selbar{padding:12px 24px;border-width:1.5px 0 0}}
/* Vereinskalender: Kategorien */
.k-t{background:var(--k-t-bg);color:var(--k-t-fg)}.k-s{background:var(--k-s-bg);color:var(--k-s-fg)}.k-u{background:var(--k-u-bg);color:var(--k-u-fg)}.k-v{background:var(--k-v-bg);color:var(--k-v-fg)}.k-g{background:var(--k-g-bg);color:var(--k-g-fg)}.gebbox{display:flex;flex-direction:column;gap:6px}
.kdot{width:10px;height:10px;border-radius:5px;flex:none}
.kdot.k-t{background:var(--k-t-dot)}.kdot.k-s{background:var(--k-s-dot)}.kdot.k-u{background:var(--k-u-dot)}.kdot.k-v{background:var(--k-v-dot)}.kdot.k-g{background:var(--k-g-dot)}
.kmonth{background:var(--card);color:var(--ink);border-radius:18px;padding:10px 8px 8px}
.kmhead{display:flex;align-items:center;justify-content:space-between;padding:0 4px 8px}
.kmt{font-family:var(--f-display);font-weight:800;font-size:1.5rem;line-height:1}
.kmnav{width:44px;height:44px;border:0;border-radius:50%;background:var(--soft);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.kmnav:disabled{background:transparent;color:var(--line);cursor:default}
.kgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.kwd{text-align:center;font-size:0.75rem;font-weight:700;color:var(--muted);padding-bottom:4px}
.kcell{min-height:62px;padding:3px 2px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);display:flex;flex-direction:column;align-items:stretch;gap:2px;text-align:left;cursor:pointer;overflow:hidden;font:inherit;min-width:0}
.kcell.blank{border:0;background:transparent;cursor:default}
.kcell.past{background:var(--soft);color:var(--muted);cursor:default;border-color:transparent}
.kcell.today{border:2px solid var(--pitch)}
.kcell.sel{border:2px solid var(--ice-ink);background:var(--ice-soft)}
.kn{font-size:0.75rem;font-weight:800;text-align:center}
.kchip{font-size:0.6875rem;font-weight:800;line-height:1.25;padding:1px 3px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kmore{font-size:0.6875rem;font-weight:800;color:var(--muted);text-align:center}
@media (min-width:900px){.kcell{min-height:84px;padding:4px}.kchip{font-size:0.75rem;padding:2px 5px}.kn{font-size:0.8125rem}}
.ksec{display:flex;flex-direction:column;gap:8px}
.kweek{display:flex;flex-direction:column;gap:8px}
.kcard{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--card);color:var(--ink);border-radius:18px}
.kc-main{display:flex;align-items:flex-start;gap:12px;border:0;background:none;padding:0;text-align:left;cursor:pointer;color:inherit;font:inherit;width:100%}
.kc-main .av.date{width:48px;height:48px}
.kttl{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ktag{font-size:0.75rem;font-weight:700;padding:1px 7px;border-radius:999px;white-space:nowrap;flex:none}
.kinfo{font-size:0.8125rem;color:var(--ink);overflow-wrap:anywhere}
.kans{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kans .btn{border:1.5px solid var(--line)}
.kans .btn.zon,.kans .btn.zno{border-color:transparent}
.kst{flex:1 1 120px;font-size:0.8125rem;font-weight:700}
.kst.ok{color:var(--ok)}.kst.no{color:var(--danger)}.kst.op{color:var(--warn)}
.kitem{gap:10px}
.kslots{display:flex;flex-direction:column;gap:6px}
.kslot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:0 14px;border-radius:14px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-weight:700;text-align:left;cursor:pointer;font:inherit}
.kslot .small{font-weight:600;text-align:right}
.kslot:disabled{background:var(--soft);color:var(--muted);opacity:.7;cursor:not-allowed}
.kslot.on{border-color:var(--ok);background:var(--ok-soft)}
.kask{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--warn-soft);border-radius:16px;color:var(--warn-ink)}
.kask .small{color:var(--warn-ink)}
.kask .btn{align-self:flex-start}
.ksub{padding:10px;background:var(--soft);border-radius:14px}
.kdet>summary{cursor:pointer;font-weight:700;font-size:0.8125rem;color:var(--ice-ink)}
/* Rollen & Rechte (für den Computer; am Handy seitlich scrollbar) */
.rtable-wrap{color:var(--ink);overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:18px;background:var(--card);box-shadow:var(--shadow)}
.rtable{border-collapse:collapse;width:100%;min-width:980px;font-size:0.8125rem}
.rtable th,.rtable td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.rtable thead th{position:sticky;top:0;background:var(--card);font-weight:800;white-space:nowrap}
.rtable tbody th[scope=row]{font-weight:700;white-space:nowrap;position:sticky;left:0;background:var(--card)}
.rtable tr.rgrp th{background:var(--bg);color:var(--page-ink);font-family:var(--f-display);font-size:1.0625rem;font-weight:800;padding-top:12px}
.rtable td.off{color:var(--muted)}
@media (min-width:1000px){.rhint{display:none}}
.app:has(.rtable){max-width:1600px}
@media (min-width:900px){.shell>.app:has(.ftable,.tb){max-width:1440px}}   /* 4.4.5: breite Tabellen (Finanzen, Ligatabellen) nutzen den Platz; Text und Formulare bleiben schmal */
.rtable td{min-width:120px}
details.znamen{background:var(--card);color:var(--ink);border-radius:16px;overflow:hidden}
details.znamen>summary{list-style:none;display:flex;align-items:center;gap:8px;padding:12px 14px;min-height:48px;cursor:pointer;font-weight:800}
details.znamen>summary::-webkit-details-marker{display:none}
details.znamen .chev{transition:transform .28s var(--ease)}details.znamen[open] .chev{transform:rotate(90deg)}
details.znamen>.card{box-shadow:none;border-top:1px solid var(--line);border-radius:0}
/* Dokument-Vorschau (3.1.3); das Papier bleibt in beiden Modi weiß */
.dpv{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;background:var(--bg);color:var(--page-ink)}
.dpv-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:calc(10px + env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 10px max(14px,env(safe-area-inset-left,0px));background:var(--card);color:var(--ink);border-bottom:1px solid var(--line)}
.dpv [hidden]{display:none!important}
.dpv-title{font-weight:800;min-width:0;flex:1 1 160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dpv-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dpv-pg{font-size:0.8125rem;color:var(--muted);font-weight:700;white-space:nowrap}
.dpv-body{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;padding:12px 12px calc(16px + env(safe-area-inset-bottom,0px));background:var(--soft)}
.dpv-pages{display:flex;flex-direction:column;align-items:center;gap:12px}
.dpv-pg-box{background:var(--paper);box-shadow:var(--shadow-soft);flex:none}
.dpv-doc{max-width:760px;margin:0 auto;background:var(--paper);color:var(--paper-ink);padding:22px 20px;border-radius:12px;overflow-wrap:anywhere;line-height:1.55}
.dpv-doc img{max-width:100%;height:auto}.dpv-doc table{border-collapse:collapse;max-width:100%}.dpv-doc td,.dpv-doc th{border:1px solid var(--paper-line);padding:4px 8px}
.dpv-doc a{color:var(--paper-link)}
.dpv-note{max-width:640px;margin:16px auto;text-align:center;color:var(--muted);font-weight:600}
.dpv-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px}
.dpv-tab{flex:none;border:1.5px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:8px 14px;min-height:44px;font:inherit;font-weight:700;cursor:pointer}
.dpv-tab[aria-selected="true"]{background:var(--pitch);color:var(--chalk);border-color:var(--pitch)}
.dpv-tw{overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;max-height:calc(100vh - 190px)}
.dpv-t{border-collapse:collapse;font-size:0.8125rem;color:var(--ink)}
.dpv-t td{border:1px solid var(--line);padding:4px 8px;white-space:pre;vertical-align:top}

/* Bewegung (iOS-artig); nur Übergänge, keine Dauer-Animationen */
@keyframes vin{from{opacity:0;transform:translate(calc(var(--vdir,0)*14px),14px) scale(.985)}}
@keyframes ghostOut{to{opacity:0;transform:translateX(calc(var(--vdir,0)*-16px))}}
@keyframes sheetDown{to{transform:translateY(100%)}}
@keyframes sheetOut{to{transform:translateX(100%)}}
@keyframes scrimOut{to{opacity:0}}
@keyframes sheetUp{from{transform:translateY(100%)}}
@keyframes sheetIn{from{transform:translateX(100%)}}
@keyframes scrimIn{from{opacity:0}}
@keyframes pop{from{transform:scale(.92)}}
.vin>*{animation:vin .32s var(--ease) backwards}
.vin>*:nth-child(2){animation-delay:40ms}.vin>*:nth-child(3){animation-delay:80ms}.vin>*:nth-child(4){animation-delay:120ms}.vin>*:nth-child(5){animation-delay:160ms}.vin>*:nth-child(6){animation-delay:200ms}.vin>*:nth-child(7){animation-delay:240ms}.vin>*:nth-child(8){animation-delay:280ms}
/* Seitenwechsel: das alte Bild blendet kurz aus (schneller als das Einblenden), Blatt schließt ebenfalls animiert */
.view-ghost{position:fixed;z-index:5;pointer-events:none;animation:ghostOut .15s cubic-bezier(.4,0,1,1) forwards}
.sheet.closing{animation:sheetDown .26s cubic-bezier(.4,0,1,1) forwards}
@media (min-width:900px){.sheet.closing{animation-name:sheetOut}}
.scrim.closing{animation:scrimOut .26s cubic-bezier(.4,0,1,1) forwards;pointer-events:none}
.sheet.anim{animation:sheetUp .5s var(--ease)}
.scrim:has(.sheet.anim){animation:scrimIn .4s var(--ease)}
@media (min-width:900px){.sheet.anim{animation-name:sheetIn}}
.btn,.row,.drow,.atile,.hint,.bn,.tile,.hero-btn{transition:transform .18s var(--ease)}
.btn:active,.atile:active,.hint:active,.bn:active,.tile:active,.hero-btn:active{transform:scale(.97)}
.row:active,.drow:active{transform:scale(.99)}
/* Touch: kein Doppeltipp-Zoom/300-ms-Verzögerung, kein graues Antipp-Aufblitzen; Reiter und Tabellen scrollen weich und geben die Geste nicht an die Seite/das Blatt weiter */
/* 4.7.0: Herunterziehen lädt die installierte App nicht neu (verwirft sonst Eingaben) */
html,body{overscroll-behavior-y:contain}
button,a,summary,label,.row,.drow,.atile,.subtab,.tile{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.subtabs,.tchips,.tablewrap,.rtable-wrap,.tb-wrap,.dpv-tabs{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.btn.zon,.btn.zno{animation:pop .3s var(--ease)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
:root[data-motion="reduce"] *,:root[data-motion="reduce"] *::before,:root[data-motion="reduce"] *::after{animation:none!important;transition:none!important}
/* Aufklappen: Pfeil dreht mit der Höhen-Animation (main.js), beim Zuklappen sofort zurück */
details .chev{transition:transform .28s var(--ease)!important}
details.closing .chev{transform:none!important}
details>summary{-webkit-tap-highlight-color:transparent}
/* Zustandswechsel weich statt hart (Filter, Reiter, Umschalter, Häkchen) und fühlbares Antippen */
.fchip,.seg button,.subtab,.tchips button,.ck,.tmode button,.chipb,.kslot,.na-chip{transition:background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease),transform .18s var(--ease)}
.fchip:active,.seg button:active,.ck:active,.chipb:active,.kslot:active,.tmode button:active{transform:scale(.96)}
.subtab:active,.tchips button:active{opacity:.7}
/* Mindest-Trefferfläche 44 px auch bei kleinen Knöpfen, ohne das Aussehen zu ändern */
.rm,.mv,.pchip button{position:relative}
.rm::after,.mv::after,.pchip button::after{content:"";position:absolute;inset:-8px}
.btn.sm{min-height:40px}
/* „Mein Bereich“ und „Verwaltung“: Vollbild-Seiten mit Reitern (3.9) */
.sheet.pg{height:100%;max-height:none;min-height:0;border-radius:0}
.sheet.pg::before{display:none}
.sheet.pg .sh-head{padding:calc(18px + env(safe-area-inset-top,0px)) 16px 8px 20px;border-bottom:0}
.sheet.pg .sh-body>*{flex-shrink:0}
.subwrap{position:relative;flex:none}
.subarr{position:absolute;top:0;bottom:2px;width:34px;border:0;padding:0;display:flex;align-items:center;color:var(--page-ink);cursor:pointer;background:linear-gradient(to right,transparent,var(--bg) 55%)}
.subarr[hidden]{display:none}
.subarr.r{right:0;justify-content:flex-end;padding-right:4px}
.subarr.l{left:0;justify-content:flex-start;padding-left:4px;background:linear-gradient(to left,transparent,var(--bg) 55%)}
.subarr.l svg{transform:scaleX(-1)}
.subarr svg{width:16px;height:16px}
/* Pfeile nur mit Maus (Computer); auf Touch-Geräten bleibt nur der weiche Rand als Hinweis zum Wischen (3.10) */
@media (hover:none),(pointer:coarse){.subarr{pointer-events:none}.subarr svg{display:none}}
.list.setsep{border-top:3px solid color-mix(in srgb,var(--line) 65%,var(--page-muted));margin-top:-14px}
.side hr.thick{border-top-width:3px;border-top-color:color-mix(in srgb,var(--line) 65%,var(--page-muted))}
.sheet.pg .subtabs{flex:none;border-bottom:1.5px solid var(--line);margin-bottom:2px}
@media (min-width:900px){.sheet.pg{width:min(1040px,100%);border-radius:28px 0 0 28px}}
.sheet.pg .rtable-wrap{max-width:100%}
.devrow{display:flex;flex-direction:column;gap:8px}
.devrow>b{font-weight:700}
.btn[hidden]{display:none}

/* 4.1.1 Spielergebnisse */
.erg-l{display:flex;flex-direction:column;border:1.5px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}
.erg-g{display:flex;flex-direction:column;gap:3px;align-items:flex-start;width:100%;padding:12px 14px;background:none;color:var(--ink);border:0;border-bottom:1.5px solid var(--line);text-align:left;font:inherit}
button.erg-g{cursor:pointer}.erg-g:last-child{border-bottom:0}
.erg-m{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.erg-t{color:var(--page-muted)}.erg-t.w{color:var(--ink);font-weight:700}
.erg-s{font-family:var(--f-display);font-size:1.375rem;letter-spacing:.02em}
.erg-end{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.erg-sl{display:flex;flex-direction:column;gap:8px}.erg-satz{display:flex;align-items:center;gap:10px}.erg-satz>span:first-child{min-width:54px}
.erg-satz input{width:84px;font-size:1rem;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-align:center}
.erg-f{margin:0 0 12px}.erg-f select{font-size:1rem;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);min-width:200px}.erg-f label{display:flex;flex-direction:column;gap:4px;align-items:flex-start}

/* 4.1.3 Ligatabellen */
.tb-sec{padding:12px 0;border-top:1.5px solid var(--line)}.tb-sec:first-of-type{border-top:0}
.tb-wrap{overflow-x:auto;margin:4px 0}.tb{border-collapse:collapse;width:100%;font-size:0.875rem}
.tb th{font-size:0.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--page-muted);text-align:right;padding:4px 8px;white-space:nowrap}
.tb th:nth-child(2),.tb td:nth-child(2){text-align:left;white-space:normal;min-width:130px}
.tb td{padding:7px 8px;border-top:1px solid var(--line);text-align:right;white-space:nowrap}
.tb tr.me td{background:var(--tint);font-weight:800;color:var(--tint-ink)}
/* 4.7.4 Spielplan: Gruppen, Qualifikationsstrich, K.-o.-Baum */
.sp-gr{display:flex;flex-direction:column;gap:10px}
.tb tr.zur td{color:var(--page-muted)}.tb tr.zur td:nth-child(2){font-style:italic}
.tb tr.qs td{padding:0 8px;border-top:2px solid var(--tint-ink);text-align:left;font-size:0.75rem;font-weight:800;color:var(--tint-ink)}.tb tr.qs td span{display:block;padding:3px 0}
.ko-wrap{display:flex;gap:14px;overflow-x:auto;padding:2px 2px 10px;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.ko-col{flex:0 0 190px;display:flex;flex-direction:column;gap:10px;justify-content:space-around}
.ko-h{margin:0;font-size:0.75rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--page-muted)}
.ko-g{display:flex;flex-direction:column;gap:4px;width:100%;padding:8px 10px;background:var(--card);color:var(--ink);border:1.5px solid var(--line);border-radius:12px;font:inherit;text-align:left}
button.ko-g{cursor:pointer}.ko-g.me{border:3px solid var(--tint-ink)}
.ko-k{display:flex;justify-content:space-between;gap:8px;font-size:0.6875rem;font-weight:700;color:var(--page-muted)}
.ko-t{display:flex;justify-content:space-between;gap:8px;font-size:0.875rem;color:var(--page-muted)}.ko-t.w{color:var(--ink);font-weight:800}
.ko-n.q{font-style:italic}

/* Wettbewerbsbaum (4.8.3) */
.wbaum-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:18px;background:var(--card);-webkit-overflow-scrolling:touch}
.wbaum{position:relative}.wbaum svg{position:absolute;inset:0;pointer-events:none;overflow:visible}
.wb-edge{fill:none;stroke:var(--line);stroke-width:2.5;stroke-linecap:round}.wb-edge.on{stroke:var(--ok);stroke-width:4}.wb-edge.dash{stroke-dasharray:6 6}
.wb-lbl{position:absolute;transform:translate(-50%,-50%);background:var(--card);border:1.5px solid var(--line);font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}.wb-lbl.on{border-color:var(--ok);color:var(--ok)}
.wb-col{position:absolute;font-family:var(--f-display);font-weight:700;font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.wb-node{position:absolute;text-align:left;font:inherit;color:inherit;background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:0;cursor:pointer;overflow:hidden;display:flex;flex-direction:column}
.wb-node .bar{display:block;height:7px;flex:none;background:var(--line)}.wb-node .in{display:flex;flex-direction:column;gap:3px;padding:7px 10px;min-height:0}.wb-node .chips{gap:4px}
.wb-node .nm{font-family:var(--f-display);font-weight:800;font-size:1.1rem;line-height:1.05}
.wb-node[aria-pressed="true"]{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}
.wb-node.st-laeuft .bar{background:var(--pitch)}.wb-node.st-abgeschlossen .bar{background:var(--ok)}.wb-node.st-qualifiziert .bar{background:var(--warn)}
.wb-node.st-offen .bar{background:repeating-linear-gradient(90deg,var(--line) 0 8px,transparent 8px 14px)}.wb-node.ghost{border-style:dashed}
.wb-klick{text-align:left;font:inherit;color:inherit;cursor:pointer;width:100%;border:0}.wb-mehr{display:flex;align-items:center;gap:4px;font-weight:700;margin-top:4px}

/* ===== Nachrichten (4.9) ===== */
/* Liste: ungelesen hervorgehoben, Stecknadel für Angepinntes */
.na-row .na-prev{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:0.875rem;color:var(--page-muted);overflow-wrap:anywhere}
.na-row>svg,.na-row>.nbadge{flex:none}
.na-row.unread .nm{font-weight:800}
.na-row.unread .na-prev{color:var(--page-ink)}
.na-pin{display:inline-flex;vertical-align:-3px;margin-right:6px;color:var(--tint-ink)}
.na-pin svg{width:16px;height:16px}
.subtab .nbadge{margin-left:2px}
.tag svg{width:12px;height:12px;vertical-align:-1px;margin-right:4px}
.na-h2{margin:18px 0 8px;font-family:var(--f-display);font-size:1rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--page-muted)}
.na-archtog{display:flex;justify-content:center;margin-top:16px}
/* Detail: Karte, Kommentare, Reaktionen, Kommentieren-Knopf */
.na-nav{display:flex}
.na-nav .btn{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.na-bubble{position:relative;display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:20px 20px 20px 6px;color:var(--ink);min-width:0;-webkit-touch-callout:none}
@media (pointer:coarse){.na-main{-webkit-user-select:none;user-select:none}}
.na-main{background:var(--na-main);border:1px solid var(--na-main-line);gap:8px}
.na-reply{margin-left:22px;background:var(--na-reply);border:1px solid var(--na-reply-line)}
.na-tags{display:flex;flex-wrap:wrap;gap:6px;padding-right:44px}
.na-title{margin:0;padding-right:44px;font-family:var(--f-display);font-size:1.625rem;font-weight:800;line-height:1.05;overflow-wrap:anywhere}
.na-by{font-size:0.75rem;color:var(--muted);font-weight:600}
.na-reply .na-by{padding-right:44px;min-height:28px}
.na-ziel{font-size:0.8125rem;color:var(--muted);font-weight:600;overflow-wrap:anywhere}
.na-txt{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-size:0.9375rem;line-height:1.45}
.na-txt .na-link{color:var(--ice-ink);text-decoration:underline}
.na-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 10px;margin-top:2px}
.na-react{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;margin-left:auto}
.na-chip,.na-smile{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:4px;height:28px;padding:0 10px;border-radius:14px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:0.8125rem;font-weight:700;cursor:pointer}
.na-chip::after{content:"";position:absolute;inset:-8px -3px}
.na-smile{width:32px;padding:0}
.na-smile::after{content:"";position:absolute;inset:-6px}
.na-smile svg{width:18px;height:18px}
.na-chip[aria-pressed="true"]{background:var(--na-mine);border-color:var(--pitch)}
.na-chip:hover,.na-smile:hover{background:var(--soft)}
.na-chip[aria-pressed="true"]:hover{background:var(--na-mine)}
.na-kebab{position:absolute;top:2px;right:2px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.na-kebab:hover{background:var(--soft)}
.na-kebab svg{width:20px;height:20px}
.na-replies{display:flex;flex-direction:column;gap:10px;padding-bottom:64px}
.na-replies .na-h2{margin:8px 0 0}
.na-none{margin:0;padding:14px 4px;color:var(--page-muted);font-size:0.875rem}
.na-fab{position:fixed;z-index:31;left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 20px 0 16px;border-radius:24px 24px 24px 8px;border:1px solid var(--na-main-line);background:var(--na-main);color:var(--ink);font-weight:800;box-shadow:var(--shadow-soft);cursor:pointer}
.na-fab svg{width:20px;height:20px}
.vin>.na-fab{animation:none}
@media (min-width:900px){.na-fab{bottom:24px;left:calc(292px + min(100vw - 292px,960px)/2)}}
body:has(.na-fab) .toast{bottom:calc(140px + env(safe-area-inset-bottom,0px))}
@media (min-width:900px){body:has(.na-fab) .toast{bottom:84px}}
/* Platz unter dem schwebenden Knopf „Kommentieren“, damit er das Seitenende (Gelesen, Kommentare) nicht verdeckt */
body:has(.na-fab) #main::after{content:"";display:block;flex:none;height:64px}
.na-pop{position:fixed;z-index:90;display:flex;gap:2px;padding:6px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow)}
.na-pop button{width:48px;height:48px;border:0;border-radius:50%;background:transparent;font-size:1.625rem;line-height:1;cursor:pointer}
.na-pop button:hover{background:var(--soft)}
.na-pop button[aria-pressed="true"]{background:var(--na-mine)}
.na-pop.menu{flex-direction:column;border-radius:16px;min-width:160px}
.na-pop.menu button{width:auto;height:44px;padding:0 16px;border-radius:12px;font-size:0.9375rem;font-weight:700;text-align:left;color:var(--ink)}
.na-pop.menu button.danger{color:var(--danger)}
/* Gelesen (Verwalter) */
.na-lesen{background:var(--card);border-radius:14px;padding:0 14px}
.na-lesen summary{display:flex;align-items:center;min-height:44px;font-weight:700;cursor:pointer}
.na-lesen-b{padding:0 0 12px}
.na-lesen-b h3{margin:0 0 6px;font-size:0.8125rem;font-weight:700;color:var(--page-muted)}
.na-lesen-b ul{margin:0;padding-left:18px;font-size:0.875rem}
.na-lesen-b p{margin:0;font-size:0.875rem;color:var(--page-muted)}
/* Umfrage (Baustein, auch für Chats) */
.na-umf{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;background:var(--card);border:1px solid var(--line);min-width:0}
.na-umf-q{margin:0;font-size:1rem;font-weight:800;overflow-wrap:anywhere}
.na-umf-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:0.8125rem;color:var(--muted)}
.na-opts{display:flex;flex-direction:column;gap:8px}
.na-opt-wrap{display:flex;flex-direction:column;gap:2px}
.na-opt{position:relative;display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 12px;border:1.5px solid var(--line);border-radius:12px;background:transparent;color:var(--ink);text-align:left;overflow:hidden;font-size:0.9375rem}
button.na-opt{cursor:pointer}
button.na-opt:disabled{cursor:default;opacity:.7}
.na-opt-bar{position:absolute;left:0;top:0;bottom:0;background:var(--tint);z-index:0;transition:width .3s var(--ease)}
.na-opt>*:not(.na-opt-bar){position:relative;z-index:1}
.na-opt-mark{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--line);background:var(--card)}
.na-opt-mark.ck{border-radius:5px}
.na-opt[aria-pressed="true"],.na-opt.mine{border-color:var(--pitch)}
.na-opt[aria-pressed="true"] .na-opt-mark,.na-opt.mine .na-opt-mark{border-color:var(--pitch);background:var(--pitch);box-shadow:inset 0 0 0 3px var(--card)}
/* Mehrfachauswahl: Häkchen statt Punkt */
.na-opt[aria-pressed="true"] .na-opt-mark.ck,.na-opt.mine .na-opt-mark.ck{box-shadow:none}
.na-opt[aria-pressed="true"] .na-opt-mark.ck::after,.na-opt.mine .na-opt-mark.ck::after{content:"";position:absolute;left:50%;top:45%;width:5px;height:10px;border:solid var(--card);border-width:0 2px 2px 0;transform:translate(-50%,-50%) rotate(45deg)}
.na-opt.static{cursor:default}
.na-opt-t{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;font-weight:600}
.na-opt-n{flex:none;font-size:0.8125rem;font-weight:700;color:var(--tint-ink)}
.na-opt-names{padding:0 12px;font-size:0.75rem;color:var(--muted);overflow-wrap:anywhere}
.na-umf-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px}
.na-umf-n{font-size:0.8125rem;color:var(--muted)}
.na-umf-btns{display:flex;flex-wrap:wrap;gap:8px}
.na-umfform{display:flex;flex-direction:column;gap:10px}
.na-optlist{display:flex;flex-direction:column;gap:8px}
.na-optrow{display:flex;align-items:flex-end;gap:8px}
.na-optrow>.f{flex:1 1 auto}
.na-optrow>.btn{flex:none}
.na-ziel-f{display:flex;flex-direction:column;gap:10px}
/* Formulare */
.na-note{margin:0;background:var(--tint);color:var(--tint-ink);border-radius:12px;padding:8px 12px;font-size:0.8125rem}
.f>.na-count{align-self:flex-end;font-size:0.75rem;font-weight:600;color:var(--muted)}
.f>.na-count[hidden]{display:none}
