  :root{
    --ink:#131b28; --muted:#59667a; --paper:#eef1f6; --panel:#ffffff; --panel-2:#f4f6f9;
    --line:#d7dde6; --navy:#183883; --navy-deep:#10285f; --red:#c81e22; --red-deep:#9c1519;
    --accent-soft:rgba(200,30,34,0.07); --accent-soft-line:rgba(200,30,34,0.28);
    --ok-soft:rgba(24,56,131,0.07); --ok-line:rgba(24,56,131,0.28);
    --focus:#2a5fd6; --shadow:0 1px 2px rgba(19,27,40,0.05);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ink:#e9edf4; --muted:#9aa8bd; --paper:#0c1420; --panel:#131d2d; --panel-2:#182234;
      --line:#2a3549; --navy:#7fa2ea; --navy-deep:#5580d6; --red:#ef5d55; --red-deep:#d84740;
      --accent-soft:rgba(239,93,85,0.12); --accent-soft-line:rgba(239,93,85,0.35);
      --ok-soft:rgba(127,162,234,0.10); --ok-line:rgba(127,162,234,0.35);
      --focus:#6f9aff; --shadow:0 1px 2px rgba(0,0,0,0.35);
    }
  }
  :root[data-theme="dark"]{
    --ink:#e9edf4; --muted:#9aa8bd; --paper:#0c1420; --panel:#131d2d; --panel-2:#182234;
    --line:#2a3549; --navy:#7fa2ea; --navy-deep:#5580d6; --red:#ef5d55; --red-deep:#d84740;
    --accent-soft:rgba(239,93,85,0.12); --accent-soft-line:rgba(239,93,85,0.35);
    --ok-soft:rgba(127,162,234,0.10); --ok-line:rgba(127,162,234,0.35);
    --focus:#6f9aff; --shadow:0 1px 2px rgba(0,0,0,0.35);
  }

  *{ box-sizing:border-box; }
  html{ color-scheme:light dark; scroll-behavior:smooth; }
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:"Source Sans 3",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
    font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{ font-family:"Oswald","Segoe UI",Helvetica,Arial,sans-serif; font-weight:600; letter-spacing:.01em; text-wrap:balance; margin:0; }
  .eyebrow{ font-family:"Oswald",sans-serif; text-transform:uppercase; letter-spacing:.14em; font-size:.74rem; font-weight:500; }
  [hidden]{ display:none !important; }

  /* Masthead: feste Vereinsfarben in beiden Modi */
  .masthead{ background:linear-gradient(155deg,#0f2a63 0%,#183883 62%,#1c418f 100%); color:#f4f7ff; padding:34px 16px 30px; position:relative; overflow:hidden; }
  .masthead::after{
    /* dezente "Schneeflocken"-Punkte */
    content:""; position:absolute; inset:0; pointer-events:none; opacity:.18;
    background-image:radial-gradient(#fff 1px,transparent 1.5px),radial-gradient(#fff 1px,transparent 1.5px);
    background-size:38px 38px,61px 61px; background-position:0 0,19px 27px;
  }
  .masthead-inner{ max-width:760px; margin:0 auto; display:flex; align-items:center; gap:22px; position:relative; z-index:1; }
  .crest{ width:74px; height:auto; flex:none; filter:drop-shadow(0 2px 4px rgba(0,0,0,.35)); }
  .masthead-text .eyebrow{ color:#a9c0ef; }
  .masthead-text h1{ color:#fff; font-size:clamp(1.7rem,4.4vw,2.35rem); line-height:1.08; margin-top:3px; }
  .masthead-text .sub{ color:#c3d3f2; font-size:1rem; margin-top:6px; }
  .hairline{ height:3px; background:#c81e22; }

  .wrap{ max-width:760px; margin:0 auto; padding:30px 16px 60px; }
  section{ margin-bottom:26px; }
  .panel{ background:var(--panel); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); }
  .panel-pad{ padding:24px 26px 26px; }
  .section-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:16px; }
  .section-head h2{ font-size:1.3rem; color:var(--navy); }
  .section-head .eyebrow{ color:var(--muted); }
  p{ margin:0 0 12px; max-width:62ch; }
  p:last-child{ margin-bottom:0; }
  a{ color:var(--navy); }

  .groups{ display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 4px; }
  .chip{ font-family:"Oswald",sans-serif; font-weight:500; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase;
         border:1px solid var(--line); background:var(--panel-2); color:var(--navy); border-radius:999px; padding:4px 12px; }

  .facts{ display:grid; grid-template-columns:max-content 1fr; gap:9px 20px; margin-top:18px; font-size:.98rem; }
  .facts dt{ font-family:"Oswald",sans-serif; font-weight:500; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); white-space:nowrap; padding-top:2px; }
  .facts dd{ margin:0; }
  .mono{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-variant-numeric:tabular-nums; }
  .deadline-value{ color:var(--red); }
  .tbd{ color:var(--muted); font-style:italic; font-family:"Source Sans 3",-apple-system,sans-serif; font-weight:400; }

  .note{ margin-top:20px; border:1px solid var(--accent-soft-line); background:var(--accent-soft); border-radius:8px; padding:14px 16px; font-size:.95rem; }
  .note strong{ color:var(--red-deep); }
  .contact-line{ margin-top:18px; font-size:.95rem; color:var(--muted); }
  .contact-line a{ text-decoration:none; border-bottom:1px solid var(--line); }

  /* Trainer-Tabelle im Scoreboard-Stil */
  .board{ margin-top:20px; border-radius:8px; overflow:hidden; border:1px solid var(--line); }
  .board-head,.board-row{ display:grid; grid-template-columns:minmax(150px,46%) 1fr; }
  .board-head{ background:#183883; color:#eef3ff; font-family:"Oswald",sans-serif; text-transform:uppercase; font-size:.72rem; letter-spacing:.09em; font-weight:500; }
  .board-head div{ padding:9px 14px; }
  .board-row{ border-top:1px solid var(--line); }
  .board-row:nth-child(even){ background:var(--panel-2); }
  .board-key{ font-family:"Oswald",sans-serif; font-weight:500; padding:10px 14px; color:var(--navy); border-right:1px solid var(--line); display:flex; align-items:center; }
  .board-time{ display:block; font-family:"Source Sans 3",sans-serif; font-weight:700; font-size:.84rem; color:#c81e22; margin-top:2px; }
  .board-note{ grid-column:1 / -1; padding:0 14px 10px; font-size:.86rem; color:#8a1b1e; font-weight:500; }
  .board-val{ padding:10px 14px; display:flex; flex-wrap:wrap; gap:2px 10px; align-items:center; font-size:.94rem; overflow-wrap:anywhere; }

  /* Formular */
  fieldset{ border:1px solid var(--line); border-radius:8px; padding:18px 18px 6px; margin:0 0 20px; min-width:0; }
  legend{ font-family:"Oswald",sans-serif; font-weight:500; font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; color:var(--navy); padding:0 8px; }
  .field{ margin-bottom:16px; }
  .row2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  label{ display:block; font-size:.9rem; font-weight:600; margin-bottom:5px; }
  label .req{ color:var(--red); }
  label .hint{ display:block; font-weight:400; font-size:.8rem; color:var(--muted); margin-top:2px; }
  input,select,textarea{ width:100%; font-family:inherit; font-size:1rem; color:var(--ink); background:var(--panel); border:1px solid var(--line); border-radius:7px; padding:10px 12px; }
  textarea{ resize:vertical; min-height:64px; }
  input:focus,select:focus,textarea:focus{ outline:2px solid var(--focus); outline-offset:1px; border-color:transparent; }
  ::placeholder{ color:var(--muted); opacity:.8; }

  .paypal-box{ border:1px solid var(--ok-line); background:var(--ok-soft); border-radius:8px; padding:14px 16px; margin:0 0 16px; font-size:.95rem; }
  .paypal-box .addr{ display:block; margin-top:4px; font-size:1rem; color:var(--navy); overflow-wrap:anywhere; }

  .confirm-block{ display:flex; gap:12px; align-items:flex-start; background:var(--accent-soft); border:1px solid var(--accent-soft-line); border-radius:8px; padding:15px 16px; margin-bottom:14px; }
  .confirm-block input{ width:auto; margin-top:4px; accent-color:var(--red); flex:none; }
  .confirm-block label{ font-weight:500; font-size:.95rem; margin:0; }
  .confirm-block.soft{ background:var(--panel-2); border-color:var(--line); }

  .btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:"Oswald",sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:1rem; font-weight:600;
        border:none; border-radius:8px; padding:14px 18px; cursor:pointer; text-decoration:none; }
  .btn:focus-visible{ outline:3px solid var(--focus); outline-offset:2px; }
  button[type=submit].btn:not(.btn-primary):not(.btn-ghost):not(.btn-red):not(.btn-small){ width:100%; color:#fff; background:#c81e22; margin-top:6px; }
  button[type=submit].btn:not(.btn-primary):not(.btn-ghost):not(.btn-red):not(.btn-small):hover{ background:#9c1519; }
  .share{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px; }
  .btn-ghost{ background:var(--panel-2); color:var(--navy); border:1px solid var(--line); font-size:.88rem; padding:12px 10px; }
  .btn-ghost:hover{ border-color:var(--navy); }
  .copied{ font-size:.85rem; color:var(--muted); margin-top:8px; min-height:1.2em; }

  .privacy{ font-size:.85rem; color:var(--muted); }
  footer{ text-align:center; color:var(--muted); font-size:.82rem; padding:0 16px 40px; }
  footer strong{ font-family:"Oswald",sans-serif; font-weight:500; }

  @media (max-width:560px){
    .row2{ grid-template-columns:1fr; }
    .facts{ grid-template-columns:1fr; gap:2px 0; }
    .facts dd{ margin-bottom:8px; }
    .board-head,.board-row{ grid-template-columns:138px 1fr; }
    .masthead-inner{ gap:14px; }
    .crest{ width:58px; }
    .panel-pad{ padding:20px 18px 22px; }
    .share{ grid-template-columns:1fr; }
  }
  @media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

  /* ---------- Trainer-Bereich ---------- */
  .wrap.wide{ max-width:1080px; }
  .wrap.wide .panel p{ max-width:none; }
  .topnav{ display:flex; flex-wrap:wrap; gap:6px; margin:0 0 22px; align-items:center; }
  .topnav a, .topnav button{ font-family:"Oswald",sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:.82rem; font-weight:500;
    text-decoration:none; color:var(--navy); background:var(--panel); border:1px solid var(--line); border-radius:999px; padding:6px 14px; cursor:pointer; }
  .topnav a.active{ background:#183883; color:#fff; border-color:#183883; }
  .topnav .spacer{ flex:1; }
  .topnav form{ margin:0; }
  .alert{ border-radius:8px; padding:12px 16px; margin:0 0 18px; font-size:.95rem; border:1px solid var(--ok-line); background:var(--ok-soft); }
  .alert.err{ border-color:var(--accent-soft-line); background:var(--accent-soft); }
  .alert ul{ margin:4px 0 0; padding-left:20px; }
  .stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:20px; }
  .stat{ background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:14px 16px; }
  .stat .k{ font-family:"Oswald",sans-serif; text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; color:var(--muted); }
  .stat .v{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:1.5rem; color:var(--navy); font-variant-numeric:tabular-nums; }
  .tbl{ width:100%; border-collapse:collapse; font-size:.93rem; }
  .tbl th{ text-align:left; font-family:"Oswald",sans-serif; text-transform:uppercase; font-size:.72rem; letter-spacing:.08em; font-weight:500;
    color:#eef3ff; background:#183883; padding:9px 10px; }
  .tbl td{ padding:10px; border-top:1px solid var(--line); vertical-align:top; overflow-wrap:anywhere; }
  .tbl tr:nth-child(even) td{ background:var(--panel-2); }
  .tbl .small{ font-size:.82rem; color:var(--muted); }
  .badge{ display:inline-block; font-family:"Oswald",sans-serif; text-transform:uppercase; letter-spacing:.06em; font-size:.72rem; font-weight:500;
    border-radius:999px; padding:2px 10px; border:1px solid var(--line); white-space:nowrap; }
  .badge.paid{ background:#1f7a3a; border-color:#1f7a3a; color:#fff; }
  .badge.open{ background:var(--accent-soft); border-color:var(--accent-soft-line); color:var(--red); }
  .badge.pend{ background:var(--ok-soft); border-color:var(--ok-line); color:var(--navy); }
  .inline{ display:inline; margin:0; }
  .linkbtn{ background:none; border:none; padding:0; color:var(--navy); text-decoration:underline; cursor:pointer; font:inherit; font-size:.85rem; }
  .linkbtn.danger{ color:var(--red); }
  .btn-primary{ color:#fff; background:#183883; }
  .btn-primary:hover{ background:#10285f; }
  .btn-red{ color:#fff; background:#c81e22; }
  .btn-small{ font-size:.8rem; padding:8px 12px; }
  .formgrid{ display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
  .copybox{ display:flex; gap:8px; }
  .copybox input{ font-family:"IBM Plex Mono",monospace; font-size:.8rem; }
  .muted{ color:var(--muted); }
  .paybox{ text-align:center; }
  #paypal-buttons{ max-width:420px; margin:14px auto 0; }
  @media (max-width:760px){
    .stats{ grid-template-columns:1fr 1fr; }
    .formgrid{ grid-template-columns:1fr; }
    .tbl thead{ display:none; }
    .tbl, .tbl tbody, .tbl tr, .tbl td{ display:block; width:100%; }
    .tbl tr{ border:1px solid var(--line); border-radius:8px; margin-bottom:12px; overflow:hidden; }
    .tbl td{ border-top:none; border-bottom:1px solid var(--line); }
    .tbl td:last-child{ border-bottom:none; }
    .tbl td[data-l]::before{ content:attr(data-l); display:block; font-family:"Oswald",sans-serif; text-transform:uppercase; font-size:.68rem; letter-spacing:.08em; color:var(--muted); }
  }

  /* ---------- Vereinsdesign (Standard): hell und schlicht ---------- */
  :root{ --gold:#c9a13b; --gold-soft:rgba(201,161,59,.14); }
  .masthead::after{ display:none; }
  body.theme-club .masthead{ background:var(--panel); color:var(--ink); padding:16px 16px 14px; border-bottom:1px solid var(--line); }
  body.theme-club .masthead-inner{ gap:14px; max-width:1080px; }
  body.theme-club .crest{ width:44px; filter:none; }
  body.theme-club .masthead-text .eyebrow{ color:var(--muted); font-size:.68rem; }
  body.theme-club .masthead-text h1{ color:var(--navy); font-size:1.35rem; margin-top:1px; }
  body.theme-club .masthead-text .sub{ color:var(--muted); font-size:.88rem; margin-top:1px; }
  body.theme-club .hairline{ height:3px; background:#c81e22; }
  body.theme-club .wrap{ padding-top:22px; }
  body.theme-club .panel{ border-top:1px solid var(--line); }
  body.theme-club .chip{ background:var(--panel-2); }
  body.theme-club footer{ padding-top:10px; }

  /* ---------- Weihnachtslayout (nur Anmeldung Weihnachtsfeier) ---------- */
  body.theme-xmas{
    background-image:
      radial-gradient(circle at 12% 18%, rgba(24,56,131,.05) 0 2px, transparent 3px),
      radial-gradient(circle at 72% 64%, rgba(200,30,34,.045) 0 2px, transparent 3px);
    background-size:46px 46px, 63px 63px;
  }
  body.theme-xmas .masthead{
    background:
      radial-gradient(ellipse at 85% -20%, rgba(255,255,255,.16), transparent 55%),
      linear-gradient(160deg,#0b1f4d 0%,#183883 58%,#21479a 100%);
    padding:40px 16px 46px;
  }
  .snow{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
  .snow i{ position:absolute; top:-10px; width:6px; height:6px; border-radius:50%; background:#fff; opacity:.75;
           animation:fall linear infinite; }
  @keyframes fall{ to{ transform:translate3d(var(--dx,20px), 260px, 0); opacity:0; } }
  body.theme-xmas .masthead-text .eyebrow, body.theme-xmas .masthead-text .eyebrow .star{ color:#f0d58a; }
  body.theme-xmas .masthead-text h1{ font-size:clamp(1.9rem,5vw,2.7rem); text-shadow:0 2px 10px rgba(0,0,0,.25); }
  .xmas-ball{ width:92px; height:auto; flex:none; margin-left:auto; filter:drop-shadow(0 3px 6px rgba(0,0,0,.35)); }
  .garland{ height:26px; background:#0b1f4d url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='26'><path d='M0 4 Q15 22 30 8 Q45 22 60 4' fill='none' stroke='%231f5a3c' stroke-width='7' stroke-linecap='round'/><path d='M0 4 Q15 22 30 8 Q45 22 60 4' fill='none' stroke='%232f7a52' stroke-width='2.5' stroke-dasharray='2 4'/><circle cx='15' cy='18' r='4' fill='%23c81e22'/><circle cx='45' cy='18' r='4' fill='%23c9a13b'/></svg>") repeat-x 0 0 / 60px 26px; }
  body.theme-xmas .hairline{ height:4px; background:linear-gradient(90deg,#c81e22 0 40%, var(--gold) 40% 60%, #c81e22 60%); }
  body.theme-xmas .panel{ border-top:3px solid var(--gold); position:relative; }
  body.theme-xmas .section-head h2::before{ content:"✦ "; color:var(--gold); font-size:.85em; }
  body.theme-xmas .chip{ background:var(--gold-soft); border-color:rgba(201,161,59,.45); }
  body.theme-xmas footer::before{ content:"Frohe Weihnachten & ein tolles Handballjahr!"; display:block; font-family:"Oswald",sans-serif;
                  text-transform:uppercase; letter-spacing:.12em; color:var(--gold); font-size:.78rem; margin-bottom:4px; }
  @media (max-width:560px){ .xmas-ball{ width:64px; } }
  @media (max-width:430px){ .xmas-ball{ width:52px; margin-right:-4px; } body.theme-xmas .masthead-text .eyebrow{ letter-spacing:.08em; font-size:.68rem; } }
  @media (prefers-reduced-motion:reduce){ .snow{ display:none; } }

  /* Terminliste zum Abhaken */
  .ticklist{ border:1px solid var(--line); border-radius:8px; overflow:hidden; }
  .tick{ display:grid; grid-template-columns:26px 74px 1fr; gap:4px 10px; align-items:start; padding:10px 12px; margin:0;
         border-top:1px solid var(--line); font-weight:400; font-size:.95rem; cursor:pointer; }
  .tick:first-child{ border-top:none; }
  .tick:nth-child(even){ background:var(--panel-2); }
  .tick:has(input:checked){ background:var(--ok-soft); }
  .tick input{ width:20px; height:20px; margin:2px 0 0; accent-color:#183883; }
  .tick-date{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:.88rem; color:var(--navy); padding-top:2px; }
  .tick-what .small{ display:block; color:var(--muted); font-size:.82rem; }
  .tick.is-break{ opacity:.7; }
  .tick.is-game .tick-date{ color:#c81e22; }

  /* Einstiegsseite */
  .portal{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  .portal-card{ display:flex; flex-direction:column; gap:10px; background:var(--panel); border:1px solid var(--line); border-radius:12px;
                padding:24px 24px 22px; text-decoration:none; color:var(--ink); box-shadow:var(--shadow); transition:border-color .15s, transform .15s; }
  .portal-card:hover{ border-color:var(--navy); transform:translateY(-2px); }
  .portal-card .eyebrow{ color:var(--muted); }
  .portal-card h2{ color:var(--navy); font-size:1.4rem; }
  .portal-card p{ color:var(--muted); font-size:.95rem; margin:0; flex:1; }
  .portal-card .btn{ align-self:flex-start; }
  @media (max-width:640px){ .portal{ grid-template-columns:1fr; } }
  a.stat{ display:block; text-decoration:none; color:inherit; transition:border-color .15s; }
  a.stat:hover{ border-color:var(--navy); }

/* Wissen / Wiki */
.wiki-body { line-height: 1.6; }
.wiki-body h3 { margin: 18px 0 6px; font-size: 1.05rem; }
.wiki-body ul, .wiki-body ol { padding-left: 22px; margin: 6px 0 12px; }
.wiki-body p { margin: 0 0 10px; }
.wiki-files { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin-top: 8px; }
.wiki-file { border: 1px solid rgba(0,0,0,.1); border-radius: 10px; padding: 10px; overflow: hidden; }
.wiki-file img, .wiki-file video { display: block; width: 100%; max-height: 220px; object-fit: contain; border-radius: 6px; margin-bottom: 8px; background: #f3f5f9; }

/* Hilfe */
.help-item { border-top: 1px solid var(--line); padding: 10px 0; }
.help-item:first-of-type { border-top: 0; }
.help-item summary { cursor: pointer; font-weight: 600; color: var(--navy); list-style-position: outside; }
.help-item[open] summary { margin-bottom: 8px; }
.help-item .wiki-body { padding-left: 4px; }

/* Auswertung */
.bar { display: flex; height: 12px; background: var(--panel-2); border-radius: 6px; overflow: hidden; min-width: 80px; }
.bar span { display: block; height: 100%; }
.b-ist { background: var(--navy); }
.b-pruef { background: var(--ok-line); }
.b-prog { background: repeating-linear-gradient(45deg, var(--accent-soft-line), var(--accent-soft-line) 4px, transparent 4px, transparent 8px); }
.legend { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -2px; }

/* Kompakte Zahlentabellen auf dem Handy: Bezeichnung links, Wert rechts */
@media (max-width:760px){
  .tbl.kv td[data-l]{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:6px 12px; }
  .tbl.kv td[data-l]::before{ flex:0 0 auto; }
  .tbl.kv td[data-l] > *{ text-align:right; }
  .tbl.kv td[data-l=""]{ display:none; }
  .tbl.kv td:first-child{ font-weight:600; background:var(--panel-2); }
  .tbl.kv tr.sum td{ background:var(--ok-soft); }
}

/* Hauptmenü: leicht, Textleiste mit Gruppen; auf dem Handy ein Menü-Knopf */
.mainnav{ margin:0 0 22px; border-bottom:1px solid var(--line); }
.mainnav a, .mainnav button{ font:inherit; font-size:.95rem; color:var(--ink); text-decoration:none; background:none; border:0; cursor:pointer; }
.mn-bar{ display:flex; align-items:center; gap:2px; flex-wrap:wrap; }
.mn-bar > a, .mn-group > button{ padding:10px 12px; border-bottom:2px solid transparent; margin-bottom:-1px; color:var(--muted); }
.mn-bar > a:hover, .mn-group > button:hover{ color:var(--navy); }
.mn-bar > a.active, .mn-group.active > button{ color:var(--navy); border-bottom-color:var(--red); font-weight:600; }
.mn-bar .spacer{ flex:1; }
.mn-group{ position:relative; }
.mn-menu{ display:none; position:absolute; right:0; top:100%; z-index:20; min-width:190px; background:var(--panel); border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 24px rgba(19,27,40,.12); padding:6px; }
.mn-group:hover .mn-menu, .mn-group:focus-within .mn-menu{ display:block; }
.mn-menu a, .mn-menu button{ display:block; width:100%; text-align:left; padding:8px 10px; border-radius:6px; }
.mn-menu a:hover, .mn-menu button:hover{ background:var(--panel-2); color:var(--navy); }
.mn-menu a.active{ color:var(--navy); font-weight:600; background:var(--ok-soft); }
.mn-menu form{ margin:0; border-top:1px solid var(--line); margin-top:4px; padding-top:4px; }
.mn-mobile{ display:none; }
@media (max-width:900px){
  .mainnav{ border-bottom:0; }
  .mn-bar{ display:none; }
  .mn-mobile{ display:block; background:var(--panel); border:1px solid var(--line); border-radius:12px; }
  .mn-mobile summary{ list-style:none; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 16px; cursor:pointer; }
  .mn-mobile summary::-webkit-details-marker{ display:none; }
  .mn-mobile summary span{ color:var(--muted); font-size:.9rem; }
  .mn-mobile summary strong{ color:var(--navy); }
  .mn-sheet{ border-top:1px solid var(--line); padding:6px 8px 10px; display:grid; grid-template-columns:1fr 1fr; gap:4px 12px; }
  .mn-col{ display:flex; flex-direction:column; }
  .mn-col:first-child{ grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; }
  .mn-head{ font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); padding:10px 8px 2px; }
  .mn-sheet a, .mn-sheet button{ display:block; width:100%; text-align:left; padding:9px 8px; border-radius:6px; }
  .mn-sheet a.active{ color:var(--navy); font-weight:600; background:var(--ok-soft); }
  .mn-sheet form{ margin:0; }
}

/* Unter-Navigation (Monate, Reiter) leichter */
.topnav{ gap:6px; }
.topnav a, .topnav button{ font-family:inherit; text-transform:none; letter-spacing:0; font-size:.88rem; font-weight:500; padding:5px 12px;
  background:var(--panel-2); border-color:transparent; color:var(--navy); }
.topnav a:hover{ border-color:var(--line); }
.topnav a.active{ background:var(--navy); border-color:var(--navy); color:#fff; }

/* Schulferien-Hinweis bei Trainingsvorschlägen */
.badge.ferien{ background:#fff4d6; border-color:#e8c766; color:#7a5a00; }
@media (prefers-color-scheme: dark){ .badge.ferien{ background:rgba(232,199,102,.15); color:#e8c766; } }

/* Hallenplan */
.hall-grid{ display:grid; grid-template-columns:repeat(var(--cols), minmax(0, 1fr)); gap:8px; }
.hall-day{ background:var(--panel-2); border-radius:10px; padding:8px; min-height:60px; }
.hall-day.empty{ opacity:.55; }
.hall-dayname{ font-weight:600; color:var(--navy); font-size:.85rem; margin-bottom:6px; }
.hall-slot{ background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--navy); border-radius:6px; padding:6px 8px; margin-bottom:6px; font-size:.85rem; display:flex; flex-direction:column; gap:2px; }
.hall-slot .mono{ font-size:.78rem; color:var(--muted); }
.hall-slot.mine{ border-left-color:var(--red); background:var(--accent-soft); }
/* Wochenendbelegung der Stadt */
.we-next{ background:var(--accent-soft); border-left:3px solid var(--red); border-radius:10px; padding:10px 14px; margin:12px 0 16px; }
.we-next-title{ font-weight:600; color:var(--navy); margin-bottom:6px; }
.we-next ul{ margin:0; padding:0; list-style:none; display:grid; gap:4px; font-size:.9rem; }
.we-next .mono{ font-size:.8rem; margin:0 6px; }
.we-nav{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin:6px 0 10px; }
.we-pick select{ font-weight:600; min-width:200px; }
.we-filter{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.we-matrix{ display:grid; grid-template-columns:minmax(150px, 210px) repeat(var(--days), minmax(0, 1fr)); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.we-mhead{ background:var(--navy); color:#fff; font-family:"Oswald",sans-serif; text-transform:uppercase; letter-spacing:.05em; font-size:.9rem; padding:8px 10px; }
.we-mhall, .we-mcell{ padding:7px 10px; border-top:1px solid var(--line); }
.we-mcell{ border-left:1px solid var(--line); }
.we-mhall{ font-weight:600; font-size:.86rem; color:var(--navy); background:var(--panel-2); }
.we-mhall.hb{ box-shadow:inset 3px 0 0 var(--red); }
.we-mhall.hb, .we-mcell.hb{ background:var(--accent-soft); }
.we-mday{ display:none; }
.we-lock{ background:var(--red); color:#fff; font-size:.7rem; font-weight:600; border-radius:999px; padding:1px 8px; text-transform:uppercase; letter-spacing:.04em; }
.we-bk{ display:flex; gap:8px; align-items:baseline; font-size:.85rem; padding:2px 0; }
.we-lock{ display:inline-block; margin-bottom:2px; }
.we-bk.hb{ color:var(--red); font-weight:600; }
.we-time{ font-family:ui-monospace,Menlo,monospace; font-size:.76rem; white-space:nowrap; color:var(--muted); min-width:78px; }
.we-bk.hb .we-time{ color:var(--red); }
.we-free{ margin:8px 2px 0; }
.hall-parse.ok{ color:#1d7a3a; }
.hall-parse.warn{ color:var(--red); }
.hall-parse.busy{ color:var(--muted); }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.hall-doc{ border:1px solid var(--line); border-radius:12px; padding:12px; margin:12px 0; }
.hall-doc-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.hall-doc-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.hall-pdf{ display:block; width:100%; height:78vh; min-height:480px; border:1px solid var(--line); border-radius:8px; background:var(--panel-2); }
.hall-img{ display:block; max-width:100%; height:auto; border-radius:8px; }
.hall-older, .hall-upload{ margin-top:12px; }
.hall-older summary, .hall-upload summary{ cursor:pointer; font-weight:600; color:var(--navy); }
.hall-older ul{ margin:8px 0 0; padding-left:18px; }
.hall-upload form{ margin-top:8px; }
@media (max-width:760px){
  .hall-grid{ grid-template-columns:1fr; }
  .hall-day{ display:grid; grid-template-columns:90px 1fr; gap:6px; align-items:start; min-height:0; }
  .hall-day.empty{ display:none; }
  .hall-pdf{ display:none; }
  .we-matrix{ grid-template-columns:1fr; border:0; border-radius:0; }
  .we-mhead{ display:none; }
  .we-mhall{ margin-top:10px; border:1px solid var(--line); border-radius:8px 8px 0 0; }
  .we-mcell{ border:1px solid var(--line); border-top:0; }
  .we-mday{ display:block; font-size:.75rem; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; margin-bottom:2px; }
  .we-pick select{ min-width:0; width:100%; }
  .we-nav{ display:grid; grid-template-columns:auto 1fr auto; }
  .hall-dayname{ margin:6px 0 0; }
  .hall-day .hall-slot{ grid-column:2; margin:0; }
}

/* Kioskplan */
.kiosk-row{ border:1px solid var(--line); border-radius:10px; padding:10px 12px 4px; margin:0 0 12px; }
.kiosk-row legend{ font-weight:600; color:var(--navy); padding:0 6px; }
.kiosk-grid{ display:grid; grid-template-columns:2fr 1fr 1fr 2fr; gap:10px; }
.kiosk-grid2{ display:grid; grid-template-columns:3fr 2fr; gap:10px; }
.kiosk-chips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.kiosk-chips .chip{ font:inherit; font-size:.8rem; border:1px solid var(--line); background:var(--panel-2); color:var(--ink); border-radius:999px; padding:3px 10px; cursor:pointer; }
.kiosk-chips .chip:hover{ border-color:var(--navy); }
.kiosk-table{ table-layout:fixed; width:100%; }
.kiosk-table th:nth-child(1){ width:13%; } .kiosk-table th:nth-child(2){ width:37%; } .kiosk-table th:nth-child(3){ width:25%; } .kiosk-table th:nth-child(4){ width:25%; }
.kiosk-table td{ vertical-align:top; overflow-wrap:anywhere; hyphens:auto; }
.kiosk-table tr.mine td{ background:var(--accent-soft); }
.kiosk-bring{ margin:0; padding-left:16px; }
.kiosk-contact{ display:flex; gap:6px; align-items:center; }
.kiosk-contact input{ min-width:0; flex:1; }
.kiosk-contact .btn{ flex:0 0 auto; }
.kiosk-sp{ margin-top:8px; }
.kiosk-sp summary{ cursor:pointer; font-size:.85em; color:var(--red); font-weight:600; }
.kiosk-sp-text{ width:100%; font-size:.8em; font-family:inherit; margin:6px 0; }
@media (max-width:760px){ .kiosk-table{ table-layout:auto; } .kiosk-table th{ width:auto !important; } .kiosk-bring{ list-style:none; padding:0; } }
.kiosk-duties{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.kiosk-new{ display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; }
.kiosk-new .field{ margin:0; min-width:220px; }
.kiosk-check{ display:flex; gap:8px; align-items:center; margin-top:10px; font-weight:400; cursor:pointer; }
.kiosk-check input{ width:auto; margin:0; }
.print-only{ display:none; }
@media (max-width:760px){
  .kiosk-grid, .kiosk-grid2{ grid-template-columns:1fr 1fr; }
}
@media print{
  .masthead, .mainnav, footer, .no-print, .no-print-form, .alert{ display:none !important; }
  .print-only{ display:inline; }
  body{ background:#fff; }
  .wrap, .wrap.wide{ max-width:none; padding:0; }
  .panel{ box-shadow:none; border:0; }
  .kiosk-table{ font-size:10pt; }
  .kiosk-table th, .kiosk-table td{ border:1px solid #999; }
}


/* Wissen: Unterlagen ablegen + KI-Unterlage */
.wiki-drop{ border:2px dashed var(--line); border-radius:12px; padding:16px; margin:0 0 16px; display:flex; flex-direction:column; gap:6px; background:var(--paper); transition:border-color .15s, background .15s; }
.wiki-drop.over{ border-color:var(--red); background:var(--accent-soft); }
.wiki-drop .linkbtn{ cursor:pointer; text-decoration:underline; }
.wiki-drop-list{ margin:4px 0 0; padding-left:18px; font-size:.9rem; }
.wiki-drop-list:empty{ display:none; }
.wiki-drop-ai{ display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; margin-top:6px; }
.wiki-drop-ai .small{ flex:1 1 280px; }
.wiki-ai-hint{ margin:6px 0 0; }
.wiki-fig{ margin:12px 0; }
.wiki-fig img{ display:block; max-width:100%; max-height:520px; border-radius:8px; border:1px solid var(--line); }
.wiki-fig figcaption{ font-size:.8rem; color:var(--muted); margin-top:4px; }
.wiki-print-head{ font-size:9pt; color:#555; border-bottom:2px solid #c81e22; padding-bottom:4px; margin-bottom:8px; }
@media print{
  .wiki-print-head{ display:block; }
  .wiki-sheet{ font-size:10.5pt; }
  .wiki-sheet h2{ font-size:16pt; }
  .wiki-body h3{ break-after:avoid; margin-top:12pt; }
  .wiki-fig{ break-inside:avoid; }
  .wiki-fig img{ max-height:9cm; }
}

/* Wissen: Kategorien */
.wiki-topic-bar{ display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; }
.chip-topic{ display:inline-block; text-decoration:none; background:var(--accent-soft); border:1px solid var(--accent-soft-line); color:var(--ink); border-radius:999px; padding:2px 10px; font-size:.8rem; line-height:1.6; margin:2px 0; }
a.chip-topic:hover{ border-color:var(--red); }
.chip-topic.on{ background:var(--red); border-color:var(--red); color:#fff; }
.wiki-topic-check{ display:inline-flex; align-items:center; gap:6px; margin:4px 14px 4px 0; }
.wiki-topic-check input{ width:auto; }
@media print{ .wiki-topic-bar{ display:none; } .chip-topic{ border:1px solid #999; background:none; color:#000; } }

/* 2FA: QR-Code */
.totp-qr{ width:220px; max-width:100%; margin:10px 0; background:#fff; padding:6px; border-radius:8px; border:1px solid var(--line); }
.totp-qr svg{ display:block; width:100%; height:auto; }
.totp-qr:empty{ display:none; }

  /* Datenschutz */
  footer a{ color:inherit; }
  .privacy-page h3{ font-family:"Oswald",sans-serif; font-weight:500; font-size:1.1rem; margin:22px 0 6px; color:var(--navy); }
  .privacy-page p{ margin:0 0 10px; }
  .privacy-page mark{ background:var(--accent-soft); color:var(--red); padding:0 3px; border-radius:3px; }
  .wiki-consent{ display:flex; gap:8px; align-items:flex-start; margin:10px 0 0; font-size:.92rem; }
  .wiki-consent input{ margin-top:4px; }

  /* Schiedsrichter */
  .sr-tabs{ display:flex; gap:6px; flex-wrap:wrap; margin:0 0 14px; }
  .sr-tabs a{ padding:7px 14px; border:1px solid var(--line); border-radius:999px; text-decoration:none; color:var(--ink); background:var(--panel); font-size:.9rem; }
  .sr-tabs a.active{ background:var(--navy); border-color:var(--navy); color:#fff; }
  .sr-bar{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:4px 0 12px; }
  .sr-bar .spacer{ flex:1; }
  .sr-bar select{ width:auto; }
  body .sr-bar .chip.on{ background:var(--navy); color:#fff; border-color:var(--navy); }
  a.chip{ text-decoration:none; }
  .sr-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 -4px; padding:0 4px; }
  .sr-matrix, .sr-list{ border-collapse:collapse; font-size:.86rem; min-width:100%; }
  .sr-matrix th, .sr-list th{ text-align:left; font-family:"Oswald",sans-serif; text-transform:uppercase; font-size:.7rem; letter-spacing:.06em; font-weight:500; color:var(--muted); padding:6px; border-bottom:1px solid var(--line); vertical-align:bottom; }
  .sr-matrix td, .sr-list td{ padding:6px; border-top:1px solid var(--line); vertical-align:top; }
  .sr-matrix th.sr-col{ text-align:center; min-width:46px; }
  .sr-matrix th.sr-col span{ writing-mode:vertical-rl; transform:rotate(180deg); white-space:nowrap; display:inline-block; max-height:110px; overflow:hidden; text-overflow:ellipsis; }
  .sr-game{ min-width:220px; }
  .sr-cell{ text-align:center; }
  .sr-cell select{ width:44px; padding:4px 2px; text-align:center; }
  .sr-cell.yes{ background:rgba(31,122,58,.14) !important; }
  .sr-cell.no{ background:var(--accent-soft) !important; }
  .sr-assign{ min-width:190px; }
  .sr-assign select, .sr-assign input{ margin:0 0 4px; padding:5px 6px; font-size:.85rem; }
  .sr-matrix tr.st-besetzt .sr-game{ box-shadow:inset 3px 0 0 #1f7a3a; }
  .sr-matrix tr.st-offen .sr-game{ box-shadow:inset 3px 0 0 var(--red); }
  .sr-matrix tr.st-ausgefallen td{ opacity:.55; }
  .sr-changed{ margin-top:4px; padding:4px 6px; border-radius:4px; background:var(--accent-soft); color:var(--red); font-size:.8rem; }
  .sr-list tr.is-open td{ background:var(--accent-soft); }
  .sr-steps{ padding-left:18px; }
  .sr-steps li{ margin:0 0 12px; }
  .sr-steps form{ margin-top:6px; }
  .sr-wa summary{ cursor:pointer; font-weight:600; }
  .sr-month{ font-family:"Oswald",sans-serif; font-weight:500; color:var(--navy); margin:18px 0 6px; }
  .sr-ask{ border:1px solid var(--line); border-radius:8px; padding:10px 12px; margin:0 0 10px; }
  .sr-ask legend{ padding:0 4px; }
  .sr-choice{ display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:8px; }
  .sr-choice label{ display:inline-flex; gap:6px; align-items:center; font-weight:500; }
  .sr-choice input{ width:auto; }
  .sr-mine{ list-style:none; padding:0; margin:0; }
  .sr-mine li{ padding:10px 0; border-top:1px solid var(--line); }
  @media print{ .sr-list{ font-size:10pt; } .sr-list tr.is-open td{ background:#fde8e8; } }

  /* Spiele der Woche */
  .week-games{ margin-top:18px; }
  .wg-bar{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:2px 0 10px; }
  .wg-bar .spacer{ flex:1; }
  .wg-bar a.chip{ text-decoration:none; }
  body .wg-bar .chip.on{ background:var(--navy); color:#fff; border-color:var(--navy); }
  .wg-list{ list-style:none; margin:0; padding:0; }
  .wg-day{ font-family:"Oswald",sans-serif; font-weight:500; text-transform:uppercase; letter-spacing:.06em; font-size:.78rem; color:var(--muted); padding:12px 0 4px; }
  .wg-game{ display:grid; grid-template-columns:3.2rem minmax(3.4rem, max-content) 1fr auto; gap:4px 10px; align-items:baseline; padding:8px 0; border-top:1px solid var(--line); }
  .wg-time{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:.9rem; }
  .wg-team{ font-weight:600; color:var(--navy); }
  .wg-main .badge{ margin-right:4px; }
  .wg-result{ font-family:"IBM Plex Mono",monospace; font-weight:600; }
  .wg-game.is-home .wg-time{ color:var(--red); }
  @media (max-width:560px){
    .wg-game{ grid-template-columns:3rem 1fr auto; }
    .wg-team{ grid-column:2; }
    .wg-main{ grid-column:1 / -1; }
    .wg-result{ grid-column:3; grid-row:1; }
  }

  /* Vorstand */
  .gd{ border:1px solid var(--line); border-radius:8px; padding:12px 14px; margin:0 0 10px; }
  .gd-head{ display:flex; flex-wrap:wrap; gap:4px 12px; align-items:baseline; }
  .gd-head h3{ margin:0; font-family:"Oswald",sans-serif; font-weight:500; font-size:1.05rem; color:var(--navy); }
  .gd-lights{ display:flex; flex-wrap:wrap; gap:6px 18px; margin:8px 0 2px; font-size:.92rem; }
  .gd-lights a{ color:inherit; text-decoration:none; }
  .gd-more summary{ cursor:pointer; font-size:.88rem; color:var(--muted); margin-top:6px; }
  .gd-games{ list-style:none; padding:0; margin:8px 0; }
  .gd-games li{ padding:4px 0; border-top:1px solid var(--line); }
  .rates input, .rates select{ padding:5px 6px; font-size:.88rem; }
  .rates td:nth-child(n+3) input{ width:6.5rem; }
  .board-doc h3{ font-family:"Oswald",sans-serif; font-weight:500; color:var(--navy); margin:18px 0 6px; }
  .board-files{ list-style:none; padding:0; }
  .board-files li{ padding:6px 0; border-top:1px solid var(--line); }

  /* Spielberichte */
  .rep-pick{ list-style:none; padding:0; margin:0; }
  .rep-pick li a{ display:block; padding:8px 0; border-top:1px solid var(--line); text-decoration:none; color:inherit; }
  .rep-pick li a:hover strong{ color:var(--red); }
  .rep-pick .wg-result{ margin-left:6px; }
  .rep-photo{ max-width:100%; max-height:420px; border-radius:8px; }
  .rep-text{ border:1px solid var(--line); border-radius:8px; padding:10px 14px; margin:12px 0; }
  .rep-text-head{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
  .rep-text-head h3{ margin:0; font-family:"Oswald",sans-serif; font-weight:500; font-size:1rem; color:var(--navy); }
  .rep-body{ margin-top:6px; white-space:normal; }
  .gd-info{ margin:0 0 12px; font-size:.9rem; }
  .gd-info summary{ cursor:pointer; color:var(--navy); font-weight:600; }
  .gd-info ul{ margin:6px 0 0; padding-left:18px; }
  .gd-info a{ overflow-wrap:anywhere; }
