*{box-sizing:border-box}
html,body{margin:0}
/* Stand 286 (P2): App-Schriften vom eigenen Server (OFL, fontsource 5.3.0) statt Google – font-display: swap, Text sofort in Ersatzschrift */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/barlow-condensed-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/barlow-condensed-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/barlow-condensed-latin-ext-800-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/barlow-condensed-latin-800-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Layout: Scoreboard-Ästhetik, eine Spalte, drei Bereiche (Eintragen / Ranking / Einstellungen). */
:root{
  --bg:#f3f5f1;--panel:#ffffff;--fg:#141a16;--muted:#5d6a62;--line:#d6ddd7;
  --accent:#1f7a4d;--accent-ink:#ffffff;--gold:#c9961a;--gold-ink:#1a1200;--gold-text:#8a6510;--down-text:#b8452f;--down:#b8452f;--soft:#e5efe8;--purple:#6b4fbb;--purple-ink:#ffffff;--mex:#c2562b;--mex-ink:#ffffff;--cls:#1f4e8c;--cls-ink:#ffffff;
  --display:"Barlow Condensed",Impact,sans-serif;--body:"IBM Plex Sans",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace;
;--win:#28c24f;--win2:#8fe33a;--loss:#ff2d55;--loss2:#ff7a59;--draw:#0a84ff;--info2:#64d2ff;--hi:#ff9500;--hi2:#ffd60a;--track:#ecefed}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0f1512;--panel:#18211c;--fg:#e8efe9;--muted:#93a399;--line:#2a3730;--accent:#3fae77;--accent-ink:#0b1510;--gold:#e0b03a;--gold-ink:#1a1200;--gold-text:#e0b03a;--down-text:#f08a74;--down:#e26a52;--soft:#1f2d25;--purple:#9b84e6;--purple-ink:#140a2e;--mex:#ec8a5f;--mex-ink:#2a0e02;--cls:#78a6e8;--cls-ink:#06142b;color-scheme:dark;--win:#30d158;--win2:#b4f04a;--loss:#ff375f;--loss2:#ff8a65;--draw:#0a84ff;--info2:#64d2ff;--hi:#ff9f0a;--hi2:#ffd60a;--track:#2a352e}}
:root[data-theme="dark"]{--bg:#0f1512;--panel:#18211c;--fg:#e8efe9;--muted:#93a399;--line:#2a3730;--accent:#3fae77;--accent-ink:#0b1510;--gold:#e0b03a;--gold-ink:#1a1200;--gold-text:#e0b03a;--down-text:#f08a74;--down:#e26a52;--soft:#1f2d25;--purple:#9b84e6;--purple-ink:#140a2e;--mex:#ec8a5f;--mex-ink:#2a0e02;--cls:#78a6e8;--cls-ink:#06142b;color-scheme:dark;--win:#30d158;--win2:#b4f04a;--loss:#ff375f;--loss2:#ff8a65;--draw:#0a84ff;--info2:#64d2ff;--hi:#ff9f0a;--hi2:#ffd60a;--track:#2a352e}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.45;padding-top:env(safe-area-inset-top,0px)}
.wrap{max-width:720px;margin:0 auto;padding-block:16px calc(40px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;gap:14px}
header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
h1{font-family:var(--display);font-weight:800;font-size:36px;line-height:1;margin:0;letter-spacing:.01em;text-transform:uppercase}
h1 small{font-size:12px;letter-spacing:.14em;color:var(--muted);display:block;font-weight:600;margin-top:4px}
.nav{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:4px}
.nav button{flex:1 1 auto;font-family:var(--display);font-weight:800;font-size:clamp(13px,3.7vw,20px);letter-spacing:.02em;text-transform:uppercase;padding:10px 4px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:0;background:transparent;color:var(--muted);border-radius:6px;cursor:pointer;position:relative}
.nav button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink)}
.nav:has(> button:nth-of-type(5)) button:not(.navicon){font-size:clamp(13px,3.3vw,18px);letter-spacing:0;padding:10px 3px} /* Stand 233: mit Reiter „Live“ passen alle bei 390/320 px */
.nav:has(> button:nth-of-type(5)) .navicon{padding:10px 9px} /* Stand 286 (S4): ES „En juego“ passt auch mit Ersatzschrift (vor dem Laden) bei 360–414 px */
.nav .badge{position:absolute;top:4px;right:8px;background:var(--gold);color:var(--gold-ink);font:700 12px var(--body);border-radius:999px;min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px}
#group{display:grid;gap:14px}
#group[data-s="entry"] .sec-rank,#group[data-s="entry"] #ranktabs,#group[data-s="entry"] .sec-more,#group[data-s="rank"] .sec-entry,#group[data-s="rank"] .sec-more,#group[data-s="more"] .sec-entry,#group[data-s="more"] .sec-rank,#group[data-s="more"] #ranktabs{display:none}
#group[data-s="stats"] .sec-entry,#group[data-s="stats"] .sec-rank,#group[data-s="stats"] #ranktabs,#group[data-s="stats"] .sec-more,#group:not([data-s="stats"]) .sec-stats{display:none}
#group:not([data-s="games"]) .sec-games,#group[data-s="games"] .sec-entry,#group[data-s="games"] .sec-rank,#group[data-s="games"] #ranktabs,#group[data-s="games"] .sec-more{display:none}
.hdr-r{display:flex;align-items:center;gap:8px}
header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}
header > div:first-child{min-width:0}
header h1{font-size:clamp(24px,8.4vw,36px);overflow-wrap:break-word;hyphens:manual;-webkit-hyphens:manual}
#gname{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.1} /* eine Zeile; fitName verkleinert lange Namen */
#mebtn{display:block}
.profbtn{border-radius:50%;flex:none;aspect-ratio:1;color:var(--accent)}
.soon{display:inline-block;font:700 10px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--hi);border:1px solid var(--hi);border-radius:999px;padding:1px 7px;margin-left:8px;vertical-align:2px}
.pmenu{display:grid;gap:8px;margin-top:12px}
.pmenu .pi{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--muted);font-size:15px}
.pmenu .pi.ok{color:var(--fg);cursor:pointer;background:var(--panel)}
.pmenu .pi.danger{color:var(--down)}
.pmenu a.pi{text-decoration:none}.pmenu a.pi>span:last-child{color:var(--muted)} /* Stand 293 (g3-texte 11): „Impressum“ im selben Stil wie „Datenschutz“ – nicht unterstrichen */
/* Stand 259: „Meine Spieler“ – Liste, Karte, Glückwunsch */
.mplist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mplist li{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;min-height:44px}
.mplist li:active{background:color-mix(in srgb,var(--fg) 4%,var(--panel))}
.mplist li.mpempty{cursor:default;justify-content:center;color:var(--muted);font-size:14px;border-style:dashed;background:none}
.mplist .go{color:var(--muted);margin-left:auto;flex:none}
.mpav{width:40px;height:40px;flex:none;border-radius:50%;background:linear-gradient(135deg,var(--win2),var(--win));color:#fff;display:grid;place-items:center;font:800 17px var(--display)}
.mpav.emo{background:var(--soft);font-size:22px}
.mpt{display:grid;gap:1px;min-width:0;flex:1}
.mpt b{font-weight:600;font-size:16px;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mpt .mpg{font-size:13.5px;color:var(--fg);opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mpt button.mpg{justify-self:start;background:none;border:0;padding:2px 0;font:500 13.5px var(--body);color:var(--accent);cursor:pointer;min-height:24px}
.mpt .mpgl{font-size:13px;color:var(--fg);opacity:.85}
.mpt small{font-size:12px;color:var(--muted)}
.phead .mpav.av{width:52px;height:52px;font-size:22px}.phead .mpav.av.emo{font-size:28px}
.mpgcs{display:grid;gap:8px;margin-top:12px}
.mpgc{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel)}
.mpgc-h{display:flex;align-items:center;justify-content:space-between;gap:8px}.mpgc-h b{font-weight:600;min-width:0}
.mpgc .hint{margin:4px 0 0}
/* Stand 262: Zusammenführen – beide Karten untereinander, wer bleibt, mit grünem Rand */
.mgcard{margin-top:10px}.mgcard .mpgc-h{justify-content:flex-start}.mgcard .mpgc-h b{flex:1;overflow-wrap:anywhere}.mgcard .mpav{width:32px;height:32px;font-size:14px}.mgcard.keep{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.mgcard.keep .tag{background:var(--accent);color:var(--accent-ink)}.mgcard:not(.keep){opacity:.85}
.hint.orig,.pm.orig{display:block;font-style:italic;color:var(--muted)}
.mpwho{font-size:18px;margin:6px 0 10px}
.mpleave{margin-top:14px}.mpleave .linkbtn{padding:6px 0;min-height:36px;font-size:13px}
.phead{display:flex;align-items:center;gap:12px}
/* Stand 257 (V78): Logout klein beim Namen, „Meine Daten löschen“ unten abgesetzt */
.phead .pout{flex:none;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 12px;font-weight:600}.phead .pout svg{flex:none}
.pwipe{margin:28px 0 0;padding-top:14px;border-top:1px solid var(--line);text-align:center}.pwipe .hint{margin:0;font-size:13px}.pwipe .linkbtn{display:inline-block;margin:2px auto 0;font-size:13px;min-height:44px}
.phead .av{width:52px;height:52px;flex:none;aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,var(--win2),var(--win));color:#fff;display:grid;place-items:center;font:800 22px var(--display)}
.wrap > *,#group > *,#stats > *{min-width:0}
#stats{display:grid;gap:14px}
/* Navigation: feine Trennstriche zwischen den Bereichen, Statistik als Zeichen am Ende */
.sharebtn{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:600}
.nav button{position:relative}
#group[data-demo="1"] #nav [data-s="entry"],#group[data-demo="1"] #nav [data-s="more"],#group[data-demo="1"] .sec-entry,#group[data-demo="1"] .sec-more{display:none!important}
#group[data-demo="1"] #nav [data-s="rank"]::before{opacity:0}
.demobar{border:1px dashed var(--hi);background:color-mix(in srgb,var(--hi) 10%,var(--panel));border-radius:10px;padding:10px 12px;font-size:14px}
.demobar .linkbtn{padding:0;min-height:0;margin-left:4px;color:var(--fg)}
.anknown{margin:10px 2px 0;font-size:15px;color:var(--fg)}.anknown .anok{color:var(--accent);font-weight:700}.anknown .linkbtn{font-size:15px}/* Stand 267 (P6) */
.nav button + button::before{content:"";position:absolute;left:-3px;top:22%;height:56%;width:1px;background:var(--line)}
.nav button[aria-selected="true"]::before,.nav button[aria-selected="true"] + button::before{opacity:0}
.nav .navicon{flex:0 0 auto;padding:10px 12px;display:grid;place-items:center;color:var(--accent)}
.nav .navicon[aria-selected="true"]{color:var(--accent-ink)}
.nav .navlbl{display:none}
/* Beispielgruppe: zwei gleich breite Bereiche „Ranking“ und „Statistik“ mit Text */
#group[data-demo="1"] #nav .navicon{flex:1 1 0;display:flex;gap:8px;justify-content:center;align-items:center;font-family:var(--display);font-weight:800;font-size:clamp(12px,3.3vw,20px);letter-spacing:.02em;text-transform:uppercase}
#group[data-demo="1"] #nav [data-s="rank"]{flex:1 1 0}
#group[data-demo="1"] #nav .navlbl{display:inline}
/* Statistik-Seite: gleiche Bausteine wie Ranking und Turnier */
.pickbtn{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);cursor:pointer;text-align:left;font:inherit}
.pickbtn:hover{border-color:var(--accent)}
.pickbtn .pk-l{flex:1;min-width:0}
.pickbtn .pk-l small{display:block;font-family:var(--display);font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.pickbtn .pk-l b{display:block;font-family:var(--display);font-size:28px;font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pickbtn .pk-c{color:var(--accent);flex:none}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kpi{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:12px 14px;min-width:0}
.kpi small{display:block;font-family:var(--display);font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.kpi b{display:block;font-family:var(--display);font-size:34px;font-weight:800;line-height:1.05;margin-top:2px;font-variant-numeric:tabular-nums}
.kpi > span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.kpi.hl{border-color:var(--win);background:linear-gradient(135deg,color-mix(in srgb,var(--win) 14%,var(--panel)),var(--panel))}
.kpi.hl b{color:var(--accent)}
.lead{font-size:15px;margin:0 0 10px}
.lead b{font-weight:600}
.pos{color:var(--accent);font-weight:600}
.neg{color:var(--down);font-weight:600}
.stt td:first-child{font-family:var(--body);font-size:15px;font-weight:500;color:var(--fg);width:auto;white-space:nowrap}
.stt tr.prov td,.stt tr.prov td:first-child{color:var(--muted)}
.stt tr.prov td span{color:inherit;font-weight:400}
.stt th:nth-child(2){text-align:right}
.stt td,.stt th button{padding-left:5px;padding-right:5px}
.stt td:first-child{white-space:normal;min-width:7em}
@media (max-width:420px){.stt .opt{display:none}.tabs button{font-size:15px;padding:8px 9px}}
.sortable th{padding:0}
.sortable th button{all:unset;box-sizing:border-box;display:block;width:100%;padding:6px;cursor:pointer;text-align:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}
.sortable th[aria-sort="ascending"],.sortable th[aria-sort="descending"]{color:var(--accent)}
.sortable th button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:4px}
.sortable .ar{font-size:9px;margin-left:3px}
.hist .mt .tm span,.coup span,.coup b,.glist a,.glist .tr-l b,.round .m span,.chip,.duel span,.pd .pn,.lv-t b{overflow-wrap:anywhere}
.explain{font-size:14px;line-height:1.5;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 10px}
.explain ul{margin:6px 0;padding-left:18px}
.explain li{margin:3px 0}
.showall{display:block;margin:4px auto 0;text-decoration:none;color:var(--accent);font-weight:600}
/* Grafiken der Statistik */
.hero{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}
.hero-d{display:grid;justify-items:center;gap:8px}
@media (max-width:520px){.hero{grid-template-columns:1fr}}
.lg{display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:center;font-size:13px;color:var(--muted)}
.lg span{display:inline-flex;align-items:center;gap:5px}
.lg i{width:10px;height:10px;border-radius:3px;display:inline-block}
.lg b{color:var(--fg);font-weight:600}
.rt-c{font-family:var(--display);font-size:20px;font-weight:800;fill:var(--fg)}
.rt-s{font-size:10px;fill:var(--muted);font-family:var(--body)}
.rt-v{font-family:var(--display);font-size:15px;font-weight:800;fill:var(--fg)}
.rings{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.ringc{display:grid;justify-items:center;text-align:center;gap:2px;padding:14px 8px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.ringc b{font-family:var(--display);font-size:16px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;margin-top:4px}
.ringc span{font-size:12px;color:var(--muted)}
.chartbox{position:relative;touch-action:pan-y}
.chartbox .tip{position:absolute;top:0;pointer-events:none;background:var(--fg);color:var(--bg);border-radius:8px;padding:6px 9px;font-size:12px;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.15)}
.chartbox .tip b{display:block;font-family:var(--display);font-size:18px}
.coup{display:flex;gap:14px;align-items:center;padding:12px;border:1px solid var(--hi);border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--hi) 16%,var(--panel)),var(--panel))}
.coup > svg{flex:none}
.coup > div{display:grid;gap:2px;min-width:0}
.coup small{font-family:var(--display);font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.coup b{font-family:var(--display);font-size:34px;font-weight:800;line-height:1}
.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:end;margin:6px 0 4px}
.pd{display:grid;justify-items:center;text-align:center;gap:2px;min-width:0}
.pd .pn{font-weight:600;font-size:14px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pd .pv{font-family:var(--display);font-size:20px;font-weight:800}
.pd .pb{width:100%;border-radius:10px 10px 0 0;background:linear-gradient(180deg,color-mix(in srgb,var(--win) 22%,var(--panel)),var(--panel));border:1px solid var(--win);border-bottom:0;display:grid;place-items:center}
.pd .pb b{font-family:var(--display);font-size:28px;font-weight:800;color:var(--win)}
.pd1 .pb{background:linear-gradient(180deg,color-mix(in srgb,var(--hi) 30%,var(--panel)),var(--panel));border-color:var(--hi)}
.pd1 .pb b{color:var(--hi)}
.hb{display:grid;gap:8px}
.hr{display:grid;grid-template-columns:minmax(0,9em) 1fr auto;gap:10px;align-items:center;font-size:14px}
.hn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ht{height:12px;border-radius:6px;background:var(--track);overflow:hidden}
.ht i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--win),var(--win2))}
.hr b{font-family:var(--display);font-size:18px;font-weight:800;min-width:1.5em;text-align:right}
.kpi b .pos,.kpi b .neg{font-weight:800}
.duel{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.duel:last-child{border-bottom:0}
.duel b{font-family:var(--display);font-size:20px;font-weight:800;white-space:nowrap}
.kpi.hasico{position:relative}.kpi.hasico>small{padding-right:30px;display:block}
.kico{position:absolute;right:10px;top:12px;font-size:22px;font-style:normal;line-height:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.15))}
.sec-stats.revealed .kico{animation:kicopop .55s cubic-bezier(.34,1.56,.64,1) .25s both}
.sec-stats.revealed .kico.fear{animation:kicopop .55s cubic-bezier(.34,1.56,.64,1) .4s both,kicoshake .5s ease 1s 1}
@keyframes kicopop{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes kicoshake{20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}80%{transform:rotate(4deg)}}
@media (prefers-reduced-motion:reduce){.sec-stats.revealed .kico{animation:none}}
.needday>:not(#targetbox):not(#outq){display:none!important}
.needday #targetbox h2{margin-top:0}
.dayban{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border:1.5px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel));border-radius:12px;padding:10px 12px;margin:0 0 14px}
.dayban-t{display:flex;flex-direction:column;gap:2px;min-width:0}.dayban-t b{font-size:16px;display:flex;align-items:center;gap:6px}.dayban-t small{color:var(--muted);font-size:13px}
.dayban-a{display:flex;gap:6px;flex-wrap:wrap}
#nav button.islive::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#ff5a4a;box-shadow:0 0 0 2px #fff;margin-right:6px;vertical-align:2px;animation:livepulse 1.6s ease-in-out infinite}
@keyframes livepulse{50%{opacity:.35}}
/* Live: schmale Zeile statt Kasten, und beim Spielen nur das Eintragen (keine Reiter, kein „Spiele bis …“, keine doppelte Überschrift) */
#savebox .svb{border:1.5px solid var(--down);background:color-mix(in srgb,var(--down) 7%,var(--panel));border-radius:12px;padding:10px 12px;margin:0 0 12px;font-size:13.5px;display:grid;gap:6px}
#savebox .svh{display:flex;align-items:center;gap:7px}#savebox .svh b{color:var(--down);font-size:14.5px}
#savebox .svi{flex:none;display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--down);color:#fff;font-size:12px;font-weight:800;line-height:1}
#savebox .svb p{margin:0;color:var(--muted);line-height:1.4}
#savebox .svr{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}#savebox .svr b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#savebox .svr span{display:flex;gap:6px;flex:none}
#savebox .btn.sm{min-height:32px;padding:4px 10px;font-size:13px}#savebox .btn.wa{width:38px;padding:0;display:grid;place-items:center;background:#25d366;border-color:#25d366;color:#fff}
#savebox .svok{justify-self:start;font-size:13px;padding:2px 0;min-height:0;color:var(--muted)}
#savebox .svb.done{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel));display:flex;align-items:flex-start;gap:10px;animation:svin .35s ease}
#savebox .svb.done .svi{background:var(--accent);margin-top:1px}#savebox .svb.done .svt{flex:1;min-width:0}#savebox .svb.done b{color:var(--accent)}#savebox .svx{width:28px;height:28px;flex:none;font-size:12px}
#savebox .svp{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--line);color:var(--accent);vertical-align:-5px;background:var(--panel)}
@keyframes svin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
#profbtn.ping{position:relative;isolation:isolate}#profbtn.ping::after{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;background:color-mix(in srgb,var(--accent) 55%,transparent);pointer-events:none;opacity:0;animation:svping 1.4s ease-out 3}@keyframes svping{0%{transform:scale(1);opacity:1}100%{transform:scale(1.6);opacity:0}}/* Stand 286 (P4) */
.dayban.min{flex-wrap:nowrap;padding:5px 5px 5px 10px;margin:0 0 12px;gap:6px;border-radius:10px}
.dayban.min .dayban-l{font-size:14px;display:flex;align-items:center;gap:7px;white-space:nowrap;min-width:0;padding-left:2px}.dayban.min .dl-t{overflow:hidden;text-overflow:ellipsis;min-width:0}
.dayban.min .dayban-a{flex-wrap:nowrap;gap:4px;flex:none}
.dayban.min .btn.sm{min-height:34px;padding:4px 9px;font-size:13px}
body.focus #gsub,body.focus #group[data-s="entry"] #nav,body.focus #group[data-s="entry"] #entryh{display:none}
body.focus #group{gap:6px}
body.focus h1{font-size:clamp(24px,7.4vw,36px);hyphens:manual;-webkit-hyphens:manual}.dayban-a .btn.dayend{color:var(--down-text);border-color:color-mix(in srgb,var(--down) 45%,var(--line))}
#rpnote{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;border:1.5px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel));border-radius:12px;padding:10px 12px;margin:0 0 12px}#rpnote small{display:block;color:var(--muted);margin-top:2px}#group[data-s="entry"] #rpnote:not(.inentry){display:none}
.invnote.home{align-items:flex-start}.hn-t{display:grid;gap:6px;min-width:0}.hn-l{display:flex;align-items:center;justify-content:space-between;gap:10px}.hn-l span{min-width:0}
.invnote{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px dashed var(--gold);background:color-mix(in srgb,var(--gold) 9%,var(--panel));border-radius:12px;padding:9px 12px;margin:0 0 14px;font-size:14px}
.devsteps{display:grid;gap:8px;margin:6px 0 12px}.devsteps>div{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.devsteps i{flex:none;font-style:normal;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:700 13px var(--body);margin-top:1px}
.devrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.devrow .tr-l{min-width:0;display:flex;flex-direction:column}.devrow .tr-l b{overflow-wrap:anywhere}.devrow .tr-l small{color:var(--muted);font-size:13px}
.devlist{display:grid;gap:8px}
/* Statistik-Tabellen: Zebra, Balken in der sortierten Spalte, Bestwert, eigene Zeilen */
.stt{border-collapse:separate;border-spacing:0}
.stt thead th{border-bottom:1.5px solid var(--line)}
.stt tbody td{border-bottom:0;padding-top:10px;padding-bottom:10px}
.stt tbody tr:nth-child(even) td{background-color:color-mix(in srgb,var(--accent) 5%,transparent)}
.stt tbody tr td:first-child{border-radius:9px 0 0 9px}.stt tbody tr td:last-child{border-radius:0 9px 9px 0}
.stt td[style*="--w"]{background-repeat:no-repeat!important;background-position:right 6px bottom 5px!important;background-size:0 0}
.stt[data-sc="1"] td:nth-child(2)[style*="--w"]{background-image:linear-gradient(90deg,color-mix(in srgb,var(--accent) 35%,transparent),var(--accent));background-size:calc(var(--w) * .85) 3px}
.stt[data-sc="1"] td:nth-child(2)[data-neg]{background-image:linear-gradient(90deg,color-mix(in srgb,var(--down) 35%,transparent),var(--down))}
.stt[data-sc="1"] tbody tr:first-child td:nth-child(2){font-weight:800;color:var(--fg)}
.stt[data-sc="2"] td:nth-child(3)[style*="--w"]{background-image:linear-gradient(90deg,color-mix(in srgb,var(--accent) 35%,transparent),var(--accent));background-size:calc(var(--w) * .85) 3px}
.stt[data-sc="2"] td:nth-child(3)[data-neg]{background-image:linear-gradient(90deg,color-mix(in srgb,var(--down) 35%,transparent),var(--down))}
.stt[data-sc="2"] tbody tr:first-child td:nth-child(3){font-weight:800;color:var(--fg)}
.stt[data-sc="3"] td:nth-child(4)[style*="--w"]{background-image:linear-gradient(90deg,color-mix(in srgb,var(--accent) 35%,transparent),var(--accent));background-size:calc(var(--w) * .85) 3px}
.stt[data-sc="3"] td:nth-child(4)[data-neg]{background-image:linear-gradient(90deg,color-mix(in srgb,var(--down) 35%,transparent),var(--down))}
.stt[data-sc="3"] tbody tr:first-child td:nth-child(4){font-weight:800;color:var(--fg)}
.stt[data-sc="4"] td:nth-child(5)[style*="--w"]{background-image:linear-gradient(90deg,color-mix(in srgb,var(--accent) 35%,transparent),var(--accent));background-size:calc(var(--w) * .85) 3px}
.stt[data-sc="4"] td:nth-child(5)[data-neg]{background-image:linear-gradient(90deg,color-mix(in srgb,var(--down) 35%,transparent),var(--down))}
.stt[data-sc="4"] tbody tr:first-child td:nth-child(5){font-weight:800;color:var(--fg)}
.stt td[style*="--w"]{transition:background-size .7s cubic-bezier(.25,1,.5,1)}
.stt.pre td[style*="--w"]{background-size:0 3px!important}
.stt tr.prov td[style*="--w"]{filter:grayscale(1);opacity:.7}
.stt tr.mine td{background-color:color-mix(in srgb,var(--accent) 13%,var(--panel))!important}
.stt tbody td:not(:first-child),.stt thead th:not(:first-child){text-align:right}
.stt tr.mine td:first-child{box-shadow:inset 4px 0 0 var(--accent);padding-left:11px}
.mename{color:var(--accent);font-weight:700}
.duel{align-items:center;padding:10px 10px;border-bottom:0;border-radius:10px}
.duel:nth-child(even of .duel){background:color-mix(in srgb,var(--accent) 5%,transparent)}
.duel b{font-size:17px;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--muted) 12%,transparent);min-width:3.2em;text-align:center}
.duel b.pos{background:color-mix(in srgb,var(--accent) 16%,transparent)}
.duel b.neg{background:color-mix(in srgb,var(--down) 15%,transparent)}
@media (prefers-reduced-motion:reduce){.stt td[style*="--w"]{transition:none}}

.rk{display:flex;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.rk:last-child{border-bottom:0}
.rk .n{font-family:var(--display);font-size:22px;font-weight:800;color:var(--muted);width:24px}
.rk:first-child .n{color:var(--gold)}
.rk .t{flex:1;min-width:0}
.rk .v{font-family:var(--display);font-size:20px;font-weight:800}
.form{display:flex;gap:6px;flex-wrap:wrap}
.fd{width:30px;height:30px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:13px;font-weight:600;border:1px solid var(--line);background:var(--bg);color:var(--muted)}
.fd.W{background:linear-gradient(135deg,var(--win2),var(--win));border-color:transparent;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.2)}
.fd.L{background:linear-gradient(135deg,var(--loss2),var(--loss));border-color:transparent;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.2)}
.fd.D{background:var(--draw);border-color:var(--draw);color:#fff}
.tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:2px}
.tabs button{flex:1 0 auto;font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:.04em;text-transform:uppercase;padding:8px 12px;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:6px;cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0}
.panel h2,.sheet h2{font-family:var(--display);font-weight:600;font-size:22px;text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px}
.ph{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.ph h2{margin:0}
.sub{font-family:var(--display);font-size:17px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px;font-weight:600}
.sub .hint{text-transform:none;letter-spacing:0;font-family:var(--body);font-weight:400}
[hidden]{display:none!important}
.note{color:var(--muted);font-size:13px;margin:0 0 10px}
.round .m.done{opacity:.5;cursor:default}.m.done.fix{cursor:pointer}/* Stand 288 (Orga 9): ✓-Spiel antippbar zum Korrigieren */
.round .m.done .go{color:var(--accent)}
#siderow .sides{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;margin-top:8px}
#siderow .sides .players{margin:0}
#planpick .rulecard{margin:0 0 8px}
#simweek{width:100%;accent-color:var(--accent);min-height:32px}
#simtable td:nth-child(2),#simtable th:nth-child(2){text-align:left}
#simtable td:nth-child(2){cursor:pointer}
.ptab td:first-child,.ptab th:first-child{text-align:left}
#simtable .stars{color:var(--gold);font-size:11px;letter-spacing:0;white-space:nowrap}
#simtable td,#simtable th{padding:8px 3px}
#simtable .ty{display:block;color:var(--muted);font-size:12px}
.hint{font-size:13px;color:var(--muted)}/* Stand 283 (Nachttest Erstnutzer 16): Erklärsätze an Entscheidungen mindestens 13 px */
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:right;padding:6px;border-bottom:1px solid var(--line);font-weight:600}
th:first-child,th:nth-child(2){text-align:left}
td{padding:9px 6px;border-bottom:1px solid var(--line);text-align:right}
td:first-child{text-align:left;font-family:var(--display);font-size:22px;font-weight:800;width:38px;color:var(--muted)}
td:nth-child(2){text-align:left;font-weight:500}
tr.top td:first-child{color:#e8a400}
tr.r2 td:first-child{color:#9aa6b2}
tr.r3 td:first-child{color:#c27a3a}
tr.prov td{color:var(--muted)}
.tag{font-size:10px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);border-radius:4px;padding:1px 5px;margin-left:6px;vertical-align:middle;font-family:var(--body);font-weight:600}
.mono{font-family:var(--mono);font-size:13px}
.players{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:999px;padding:9px 14px;min-height:40px;cursor:pointer;font:500 14px var(--body)}
.chip[data-team="A"],.chip[aria-pressed="true"],.chip[data-on="1"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.chip[data-team="B"]{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}
.chip.more{border-style:dashed;color:var(--muted)}
.teams{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin:12px 0}
.team{border:1px dashed var(--line);border-radius:8px;padding:8px;min-height:62px;font-size:14px;min-width:0;text-align:left;cursor:pointer;color:var(--fg);font-family:var(--body);background:transparent}
.team:disabled{cursor:default}
.team[aria-pressed="true"].a{background:var(--accent);border-style:solid;color:var(--accent-ink)}
.team[aria-pressed="true"].a b{color:var(--accent-ink)}
.team[aria-pressed="true"].b{background:var(--gold);border-style:solid;color:var(--gold-ink)}
.team[aria-pressed="true"].b b{color:var(--gold-ink)}
.team.lost{opacity:.55}
#clsbox .scores button.wa[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}#clsbox .scores button.wb[aria-pressed="true"],.sheet .scores button.wb[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#1b1b1b}#clsbox .scores button.wb,.sheet .scores button.wb{border-style:dashed}.scores.col{flex-direction:column;align-items:stretch}.scores.col button{text-align:left}#playcls small{display:block;font-weight:500;opacity:.75}
.team.a{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.team.a b{color:var(--accent)}
.team.b{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent)}
.team.b b{color:var(--gold-text)} /* Stand 233: lesbar auf Creme (Kontrast ≥ 4,5:1) */
.team b{display:block;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.vs{font-family:var(--display);font-size:22px;color:var(--muted)}
.scores{display:flex;flex-wrap:wrap;gap:6px}
.scores button{font-family:var(--mono);font-size:14px;padding:9px 10px;min-height:40px;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:6px;cursor:pointer}
/* gewählt: weiches Grün statt Schwarz (Schwarz nur für Schrift) */
.scores button[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 16%,var(--panel));color:color-mix(in srgb,var(--accent) 75%,var(--fg));/* Stand 296 (gs-texte A1): ≥ 4,5:1 */border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;font-weight:700}
.scores button[data-df="classic"][aria-pressed="true"]{background:color-mix(in srgb,var(--cls) 14%,var(--panel));color:var(--cls);border-color:var(--cls);box-shadow:0 0 0 1px var(--cls) inset}
#pdraw[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 16%,var(--panel));color:var(--accent);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;font-weight:700}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
label.f{display:grid;gap:3px;font-size:12px;color:var(--muted)}
input[type="search"]{-webkit-appearance:none;appearance:none}input[type="date"],input[type="text"],input[type="search"],input[type="url"]{font:16px var(--body);padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);min-width:0;flex:1 1 180px}
.btn{font:600 15px var(--body);padding:10px 16px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--line)}
.btn.danger{background:var(--down);border-color:var(--down);color:#fff}
/* Stand 240 (C2): Abbrechen links (btn ghost), Speichern rechts – immer in einer Zeile; roter Textknopf „Termin absagen“ */
.row.acts{flex-wrap:nowrap;align-items:stretch}.row.acts>.btn{flex:none}.row.acts>.btn.grow,.btn.grow{flex:1 1 auto;min-width:0;white-space:normal;line-height:1.2}
.linkbtn.danger{color:var(--down-text)}.plandanger{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:6px}
.row.foot.dtfoot .dtclr{margin-right:auto;padding:10px 4px 10px 0}.row.foot.dtfoot{align-items:center}
.row.foot.evsharefoot>.btn{flex:1 1 auto;min-width:0;padding:10px 10px}.row.foot.evsharefoot{flex-wrap:wrap}.row.foot.evsharefoot>#sharewa,.row.foot.evsharefoot>#evwa{flex:1 1 100%;order:5}.row.foot.evsharefoot>p.only{order:6}.row.foot.evsharefoot>.btn[hidden]{display:none}/* Stand 308 (Prüfer q308 S3/M3a): eine Knopfreihe überall – „In WhatsApp teilen“ in eigener voller Zeile, bei 320 px nichts abgeschnitten */
.evprev{margin:0 0 10px;padding:8px 12px;border-radius:10px;background:var(--soft);font-size:14px}.evios{margin:8px 0 0}
#pname.editing .row.acts{margin-top:8px}
.evback{display:inline-block;text-decoration:none;padding:0 0 6px;min-height:0;margin:0 0 4px}.evwrap>.evback{align-self:flex-start;margin:0 0 4px;text-align:left}body.ssbusy #app>*:not(#gload):not(#ssload){visibility:hidden}body.ssbusy #ssload{position:fixed;left:16px;right:16px;top:38%;margin:0;text-align:center;font-size:17px;z-index:6}/* Stand 305b (robust 7): „Wird gestartet …“ immer mitten im Bild – vorher lag die Zeile unter dem unsichtbaren (aber Platz belegenden) Inhalt außerhalb des Bildschirms: 0,2–0,5 s leerer Bildschirm *//* Stand 305 (S32/S28): Warten auf den Server – „Neues Spiel“ bleibt sichtbar, Kreisel im Knopf bzw. in der Vorschlagskarte */#sspage.sswait button,#sspage.sswait .chip{pointer-events:none}#sspage.sswait [data-ssh="1"],#sspage.sswait [data-ssw="later"]{pointer-events:none}.sswspin{display:inline-block;width:1em;height:1em;margin:0 .5em -.15em 0;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:sswspin .8s linear infinite;vertical-align:baseline}@keyframes sswspin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.sswspin{animation:none;border-right-color:currentColor;opacity:.6}}.sswcard{margin-top:10px}/* Stand 288: „Wird gestartet …“ (#ssload) bleibt stehen, bis der Spieltag zu sehen ist – nie ein leerer Bildschirm *//* Stand 281 (Martin 18:58–19:04): „Spiel starten“ ohne Zwischenseiten – nur „Einen Moment …“, bis der Spieltag läuft *//* Stand 281 (Martin 18:23): „‹ Zurück zur Gruppe“ linksbündig wie „‹ Startseite“ */.evnm .evat{display:block;margin-top:2px;font-size:11px;line-height:1.3;color:var(--muted);font-weight:400}/* Stand 281 (eventPlus): Zusage-Zeit unter dem Namen */.pc-ask{padding:0 16px 14px}.pc-q{margin:2px 0 8px;font-size:14px;font-weight:600;color:var(--fg)}.pc-qb{display:flex;gap:8px}.pc-qb .btn{flex:1}/* Stand 281 (eventPlus): Startseite „bist du dabei?“ */.evcal{display:inline-flex;align-items:center;gap:6px}
.hbtns{display:flex;gap:8px;align-items:center}.jrbell{position:relative;color:var(--fg)}.jrbell .badge{position:absolute;top:-6px;right:-6px;background:var(--gold);color:var(--gold-ink);font:700 12px var(--body);border-radius:999px;min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px}
.glist .pcard.has-act{display:flex}.glist .pcard.has-act>a{flex:1;min-width:0}
.glist .pcard.has-act .pc-act{flex-direction:column;border-top:0;border-left:1px solid var(--line)}.glist .pcard.has-act .pc-act button{flex:1;min-width:48px;min-height:44px;padding:0;color:var(--muted)}.glist .pcard.has-act .pc-act button+button{border-left:0;border-top:1px solid var(--line)}.glist .pcard.has-act .pc-act .danger{color:var(--down)}.glist .pcard.has-act .pc-act svg{width:18px;height:18px}
.glist .pcard .pc-line .pc-fmt{margin:0}.glist .pcard .pc-bar{display:inline-flex;gap:3px}.glist .pcard .pc-bar i{width:14px;height:6px;border-radius:3px;background:color-mix(in srgb,var(--accent) 16%,transparent)}.glist .pcard .pc-bar i.on{background:var(--accent)}.glist .pcard .pc-who{gap:6px 10px}.glist .pcard.has-act>a{padding:12px 12px 12px 16px}.glist .pcard .pc-line .pc-ser{margin-left:-8px}
/* Stand 239: „Wer ist heute da?“ – Gast per Name dazunehmen, Stärke für Spieler unter newGames Spielen */
.dppnew{display:flex;gap:8px;align-items:center;margin:0 0 10px}.dppnew input{flex:1 1 auto;min-width:0;height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:500 15px var(--body);background:var(--bg);color:var(--fg)}.dppnew .btn{flex:none}
.dppstr{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid var(--line)}.dppstr>span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.dppstr .scores{flex:none;flex-wrap:nowrap;gap:4px}.dppstr .scores button{padding:7px 8px;min-height:36px;font-size:13px}
.evcard .evjrc{align-self:flex-start;margin-top:2px}.evcard [data-evnew]{margin-top:6px}
/* Stand 257 (V74): „Wer bist du?“ direkt auf der Link-Seite; Anfrage-Fenster mit Treffer als Hauptknopf */
.evwho{display:flex;flex-direction:column;gap:0;margin-top:4px}.evwho label.f{text-align:left}.evwho input{width:100%;box-sizing:border-box;flex:none;height:auto;min-height:46px}.evwho .evnewhint{margin:6px 0 12px;font-size:13px}.evheld{margin:8px 0 0}
.jrmain .jrq{margin:8px 0 0;font-size:16px;line-height:1.4}.jrmain .jrbtns{display:flex;flex-direction:column;gap:8px;margin-top:10px}.jrmain .jrfoot{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:8px}body.evopen .sheet{z-index:70}body.evopen .toast{z-index:80}
/* Stand 238: Events (Zusage-Link) – Link-Seite, Teilen, Formular */
.evpage{position:fixed;inset:0;z-index:60;overflow:auto;background:var(--bg);-webkit-overflow-scrolling:touch}body.evopen{overflow:hidden}
.evwrap{max-width:560px;margin:0 auto;padding:24px 16px 40px;display:flex;flex-direction:column;gap:16px}.evpage>.pgnav{position:absolute;top:14px;right:16px;z-index:2}.panel.navp{position:relative}.panel.navp>.pgnav{position:absolute;top:10px;right:12px;z-index:2}.panel.navp>.sb>h2:first-child{padding-right:52px}.evpage>.pgnav~.evwrap>.evtop,.evpage>.pgnav~.evwrap>.evh:first-child,.evpage>.pgnav~.evwrap>.evback+.evh{padding-right:52px}/* Stand 291: Personen-Symbol oben rechts auf Zusage- und Tages-Spielseite */
.evtop small{font-family:var(--display);font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.evh{font-family:var(--display);font-weight:800;font-size:38px;line-height:1;margin:2px 0 0;text-transform:uppercase}.evsub{margin:4px 0 0;color:var(--muted)}
.evcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px}
.evhead{font-size:20px;font-weight:600;line-height:1.3;margin:0}.evcard.in .evhead{color:var(--accent)}.evcard.wait .evhead{color:var(--gold-text)}.evcard.out .evhead{color:var(--down-text)}.evsubl{margin:0;color:var(--muted)}
.evtwo{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:8px;margin-top:4px}/* Stand 305b (spieler 16): der Hauptknopf links bekommt mehr Platz – „Auf die Warteliste“ einzeilig ab 390 px */.evtwo .btn{min-height:52px;padding:6px 8px;min-width:0;white-space:normal;line-height:1.15;overflow-wrap:anywhere;font-family:var(--body);font-weight:600;font-size:17px;text-transform:none;letter-spacing:0} /* Stand 240 (S4): normale Schreibweise, keine Großbuchstaben */
.evsec{display:flex;flex-direction:column;gap:8px}.evsech{display:flex;justify-content:space-between;align-items:baseline}.evsech span{font-family:var(--display);font-weight:600;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.evsech b{font-family:var(--display);font-weight:800;font-size:20px;font-variant-numeric:tabular-nums}
.evbar{display:grid;gap:6px}.evbar i{height:8px;border-radius:4px;background:var(--soft)}.evbar i.on{background:var(--accent)}.evbar1{height:8px;border-radius:4px;background:var(--soft);overflow:hidden}.evbar1 i{display:block;height:100%;background:var(--accent)}
.evlist{display:flex;flex-direction:column;gap:6px}.evlist.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
/* Stand 242 (H-F3): Namen nie abschneiden – umbrechen; unter 360 px Breite einspaltig */
@media (max-width:359px){.evlist.two{grid-template-columns:1fr}}
/* Stand 242 (B-F1): Gruppe gerade nicht erreichbar – Zugang bleibt, Hinweis in der Zeile */
.glist a .unreach{display:block;font-size:12.5px;font-weight:500;color:var(--hi);margin-top:2px}
/* Stand 242 (H, Vorschläge): iPhone-Hinweis klein und aufklappbar */
.evios summary{cursor:pointer;color:var(--muted);font-size:13px}.evios[open] summary{margin-bottom:4px}
.evretry{margin-top:10px}
/* Stand 242 (H-F4): während der Anfrage beide Knöpfe gesperrt, am getippten eine Wartemarke */
.evtwo .btn[disabled],.evcard .btn[disabled]{opacity:.6}.btn.wait::after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;vertical-align:-1px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:evspin .8s linear infinite}@keyframes evspin{to{transform:rotate(360deg)}}
.nostore{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 12px;font-size:14px}
.evp{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 10px;min-width:0}.evp.me{border-color:var(--accent);font-weight:600}.evlist.wl .evp{background:var(--soft);border-style:dashed}
.evn{width:20px;flex:none;font-family:var(--mono);font-size:13px;color:var(--muted);text-align:right}.evnm{white-space:normal;overflow-wrap:anywhere;min-width:0;line-height:1.25}
.evout{margin:0;color:var(--muted);font-size:14px}.evfoot{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;color:var(--muted);font-size:14px;margin-top:4px}
.evmx{display:flex;align-items:center;gap:8px;margin-top:10px}.evmx b{font-family:var(--display);font-weight:800;font-size:24px;min-width:32px;text-align:center;font-variant-numeric:tabular-nums}.evmx .btn{min-width:44px;min-height:44px}
.evser{display:inline-block;font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:var(--soft);border-radius:999px;padding:2px 10px;margin:0}
.evline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin:8px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);font-weight:500}.evbtns{display:flex;gap:8px;flex-wrap:wrap}
.evcar{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:12px;border:1px solid var(--line);scrollbar-width:none}.evcar::-webkit-scrollbar{display:none}.evslide{flex:0 0 100%;scroll-snap-align:center}.evslide svg{display:block;width:100%;height:auto}
.evdots{display:flex;justify-content:center;gap:4px;margin-top:6px}.evdots button{width:32px;height:32px;min-height:0;padding:0;border:0;background:transparent;display:grid;place-items:center;cursor:pointer}.evdots button::after{content:"";width:10px;height:10px;border-radius:50%;border:1.5px solid var(--muted)}.evdots button[aria-pressed="true"]::after{background:var(--accent);border-color:var(--accent)}
.scores.words button{font-family:var(--body)}
/* Stand 257 (Auftrag F): Endstand in Gruppen – Reguläres Spiel wie bisher, Verlängerung etwas wärmer, Golden Point leicht golden */
.scores.grp,#scores.grp{display:block}#scores .scgb{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}#scores .scgb{font-size:14px;grid-template-columns:repeat(auto-fill,minmax(max(calc(3.05em + 3px),calc((100% - 24px) / 5)),1fr))}#scores .scgb button{padding-left:1px;padding-right:1px;min-width:0;white-space:nowrap}/* Stand 301 (Volltest grenz V17, GEWOLLT 861): bei großer Systemschrift weniger Spalten statt „13:1114:12“ – normal wie bisher 5 Spalten */.scg{margin:0 0 8px}.scg:last-child{margin-bottom:0}.scgh{display:block;font:600 13px var(--body);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}.scgb{display:flex;flex-wrap:wrap;gap:6px}
.scg.ext .scgh{color:color-mix(in srgb,var(--hi) 60%,var(--muted))}.scg.gold .scgh{color:var(--gold-text)}
.scg.ext button:not([aria-pressed="true"]){background:color-mix(in srgb,var(--hi) 7%,var(--bg));border-color:color-mix(in srgb,var(--hi) 28%,var(--line))}
.scg.gold button:not([aria-pressed="true"]){background:color-mix(in srgb,var(--gold) 15%,var(--bg));border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}
.scrule{margin:-2px 0 8px;font-size:13px;line-height:1.35}#rpnote small{font-size:13px} /* Stand 237: Wörter nicht in Schreibmaschinenschrift */
.newver{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:9999;min-height:48px;border:0;border-radius:10px;background:var(--accent);color:var(--accent-ink);font:700 16px var(--body);box-shadow:0 6px 20px rgba(0,0,0,.25);cursor:pointer} /* Stand 233: Hinweis neue Version */
/* Stand 233 – ältere Spieler (Prüfer 02.11.): nichts abschneiden, Knöpfe mindestens 44 px hoch, Abstand zwischen Nachbarknöpfen */
.nav{overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}
.nav button{flex:1 0 auto;overflow:visible;text-overflow:clip}
@media (max-width:360px){.nav button:not(.navicon){font-size:12px;letter-spacing:0;padding:10px 5px}.stt td,.stt th button{padding-left:3px;padding-right:3px}.stt td:first-child{min-width:5.5em}}
.btn,.chip,.nav button,.seg button,.tabs button{min-height:44px}
.dayban-a{gap:10px}
.btn.sm{min-height:44px}
.btn.purple{background:var(--purple);border-color:var(--purple);color:var(--purple-ink)}
.dayban.cls{border-color:var(--cls);background:color-mix(in srgb,var(--cls) 8%,var(--panel))}
/* eigene Datums-/Uhrzeitauswahl */
input.dtnative{display:none!important}
.dtbtn{display:inline-flex;align-items:center;gap:8px;font:600 16px var(--body);color:var(--fg);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-height:44px;cursor:pointer;max-width:100%}
.dtbtn svg{color:var(--accent);flex:none}.dtbtn.empty{color:var(--muted);font-weight:500}.dtbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
label.f .dtbtn{display:flex;width:100%;margin-top:4px}
.dtquick{display:flex;gap:8px;margin:2px 0 10px}
.dth{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.dth b{font:700 17px var(--body)}.dth .icon{font-size:22px;width:40px;height:40px}
.dtg{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.dtg i{font-style:normal;text-align:center;font-size:12px;color:var(--muted);padding:2px 0 4px}
.dtg button{aspect-ratio:1;min-height:38px;border:1px solid transparent;border-radius:10px;background:none;font:500 15px var(--body);color:var(--fg);cursor:pointer}
.dtg button:hover{background:var(--soft)}.dtg button.today{border-color:var(--accent);color:var(--accent);font-weight:700}
.dtg button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.dtg button:disabled{opacity:.28;cursor:default;background:none}
.dtt{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.dtt button{min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font:600 15px var(--body);color:var(--fg);cursor:pointer}
.dtt.m button:not(.q){color:var(--muted);font-weight:500}.dtt button.no{background:color-mix(in srgb,var(--down) 10%,var(--panel));border-color:color-mix(in srgb,var(--down) 22%,var(--line));color:color-mix(in srgb,var(--down) 45%,var(--muted));opacity:.75;cursor:not-allowed}.dtt button[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 16%,var(--panel));border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.dtprev{text-align:center;font:800 28px var(--display);margin:12px 0 0;min-height:34px;color:var(--accent)}
/* Ranking-Filter: Aufklapp-Menü unter dem Knopf */
.ph .act{position:relative}#rfmenu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:190px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:6px;display:grid;gap:2px}
#rfmenu button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;font:600 15px var(--body);color:var(--fg);background:none;border:0;border-radius:8px;padding:10px 12px;cursor:pointer}
#rfmenu button:hover{background:var(--soft)}#rfmenu button[aria-checked="true"]{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.clsnote{border:1px solid color-mix(in srgb,var(--cls) 35%,var(--line));background:color-mix(in srgb,var(--cls) 7%,var(--panel));border-radius:12px;padding:10px 12px;margin:0 0 12px}.clsnote p{margin:0 0 4px;font-size:14px;line-height:1.45}.clsnote .linkbtn{color:var(--accent);font-weight:700}
#jrnote{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;border:1.5px solid var(--gold);background:color-mix(in srgb,var(--gold) 10%,var(--panel));border-radius:12px;padding:10px 12px;margin:0 0 12px}
#findbox{margin-top:12px;margin-bottom:20px}/* Stand 296 (gs-spieler 6): „Gruppe finden“ klebt nicht am Formular darunter */#findbox .jr{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;padding:8px 0;border-top:1px solid var(--line)}
.ogres{display:grid;gap:8px;margin-top:10px}.ogres .og{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--panel)}.ogres .og small{display:block;color:var(--muted)}
.glist .pcard{border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden}
.glist .pcard>a{display:grid;gap:0;padding:14px 16px 13px;border:0;border-radius:0;background:none;font-size:15px}
.glist .pcard>a:active{transform:none;background:color-mix(in srgb,var(--fg) 4%,transparent)}
.glist .pcard .pc-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;color:var(--fg)}
.glist .pcard .pc-top b{font-size:17px;font-weight:600;line-height:1.25;color:var(--fg);min-width:0}
.glist .pcard .pc-when{font-size:13px;font-weight:600;color:var(--accent);white-space:nowrap;flex:none}
.glist .pcard .pc-fmt{justify-self:start;margin:8px 0 2px;font-size:12px;font-weight:600;letter-spacing:.02em;padding:3px 10px;border-radius:999px;color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent)}
.glist .pcard .pc-fmt.cls{color:var(--cls);background:color-mix(in srgb,var(--cls) 14%,transparent)}.glist .pcard .pc-fmt.mex{color:var(--mex);background:color-mix(in srgb,var(--mex) 14%,transparent)}.glist .pcard .pc-fmt.ame{color:var(--purple);background:color-mix(in srgb,var(--purple) 14%,transparent)}
.glist .pcard .pc-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:6px;font-size:14px;color:var(--muted)}
.glist .pcard .pc-line svg{flex:none;opacity:.8;vertical-align:-2px}.glist .pcard .pc-t{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.glist .pcard .pc-act{display:flex;border-top:1px solid var(--line)}
.glist .pcard .pc-act button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;background:none;border:0;font:600 14px var(--body);color:var(--fg);cursor:pointer}
.glist .pcard .pc-act button+button{border-left:1px solid var(--line)}.glist .pcard .pc-act .danger{color:var(--down)}
.glist .pcard .pc-act svg{width:16px;height:16px}
.btn.mex{background:var(--mex);border-color:var(--mex);color:var(--mex-ink)}.btn.cls{background:var(--cls);border-color:var(--cls);color:var(--cls-ink)} /* Farbe = Spielform: Rotación grün, Klassisch blau, Americano lila, Mexicano terrakotta */
.btn.sm{padding:8px 12px;font-size:14px;min-height:40px}
.btn.wide{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}
#scores{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}#scores button{padding:9px 2px;min-width:0}
.team b{white-space:normal;overflow-wrap:anywhere} /* Stand 233: „Gewinner · Team A“ nie abschneiden */
body.focus .toast{top:calc(12px + env(safe-area-inset-top,0px));bottom:auto}/* Stand 288 (Orga 8): beim Eintragen oben – unten verdeckte „Gespeichert: …“ die Endstand-Knöpfe des nächsten Spiels */
body.focus #hist .mh{display:none}body.focus #datewrap{display:none}
#stats:empty,#asks:empty{display:none}
.livedot.sm::after{animation-name:onairsm}@keyframes onairsm{0%{transform:scale(1);opacity:.5}70%{transform:scale(2);opacity:0}100%{transform:scale(2);opacity:0}}/* Stand 286 (P4) */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn:disabled{opacity:.6;filter:saturate(.5)}}
:root[data-theme="dark"] .btn:disabled{opacity:.6;filter:saturate(.5)}
.linkbtn{background:none;border:0;color:var(--muted);font:500 14px var(--body);text-decoration:underline;cursor:pointer;padding:10px 0;min-height:44px}
button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.info{display:inline-grid;place-items:center;width:26px;height:26px;flex:none;position:relative;border-radius:50%;border:1.5px solid var(--accent);background:transparent;color:var(--accent);font:700 13px/1 var(--body);cursor:pointer;vertical-align:middle;margin-left:6px;padding:0}
.ask{border:1px solid var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent);border-radius:10px;padding:12px 14px;display:grid;gap:8px}
.ask.edit{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.info::after{content:"";position:absolute;inset:-9px}
.ask b{font-weight:600}
.pacctn{display:block;margin-top:2px}.pacctn .pacctl{opacity:.55} /* Stand 298: Kontoname im eigenen Profil, Nachname ausgegraut */
.ask .row{margin-top:2px}
.ask .outl{margin:0;padding-left:20px;display:grid;gap:4px}
#outq{margin:10px 0 0}
.hist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hist li{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:6px}
.hist li.open{border-style:dashed;color:var(--muted)}
.hist .mh{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.hist .mh b{color:var(--fg);font-weight:600}
.hist .mt{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;font-size:15px}
.hist .mt .sc{font-family:var(--mono);font-size:18px;font-weight:600;text-align:right;min-width:2ch}
.hist .mt .tm{display:flex;align-items:center;gap:8px;min-width:0}
.hist .mt .tm .dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.hist .mt .tm.a .dot{background:var(--accent)}
.hist .mt .tm.b .dot{background:var(--gold)}
.hist .mt .win{font-weight:600}
.hist .mt .sc.win{color:var(--accent)}
.hist .mf{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}
.w{font-weight:600}
.x{background:none;border:1px solid var(--line);border-radius:8px;padding:8px 12px;color:var(--fg);cursor:pointer;font:500 14px var(--body);min-height:40px}
.rounds{display:grid;gap:8px;margin-top:12px}
.round{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px}
.round.rdone summary{display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:2px 0}
.round.rdone summary::-webkit-details-marker{display:none}
.round.rdone summary b{margin:0}
.round.rdone summary::after{content:"›";color:var(--muted);font-size:20px;transform:rotate(90deg);transition:transform .15s}
.round.rdone[open] summary::after{transform:rotate(-90deg)}
.rd-ok{margin-left:auto;color:var(--accent);font-size:13px;font-weight:600}
.round.rdone{background:var(--bg)}
.round b{font-family:var(--display);font-size:16px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:4px}
.round .m{display:flex;gap:8px;align-items:center;flex-wrap:nowrap;padding:10px 8px;border-radius:6px;cursor:pointer;border-top:1px solid var(--line);min-height:44px}
.round .m .mg{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;flex:1 1 auto}.round .m .mg .mtm{display:block;min-width:0}.round .m .mg .vs{font-size:12px;line-height:1.25;color:var(--muted)}.round .m .mg .vs b{font-size:15px;color:var(--fg);margin-left:2px}.round .m .mg .hint{line-height:1.3}/* Stand 286 (S9): Team A, darunter klein „vs“, darunter Team B – linksbündig in einer Spalte, Pfeil rechts mittig */
.round .m:first-of-type{border-top:0}
.round .m .vs{font-size:14px}
.round .m .go{margin-left:auto;align-self:center;flex:none;color:var(--muted);font-size:17px}
.glist{display:grid;gap:6px;margin-top:4px}
/* Stand 308: eigene Orts-Vorschläge unter Ort/Club */
.plsug{margin-top:8px;flex-wrap:wrap}
/* Stand 308 (Bericht flacker, Ursache 2): bis der erste Abgleich dieser Sitzung zurück ist, steht der gemerkte Stand dezent da – nie als „echt“ */
.glist.gchk{opacity:.55;transition:opacity .25s}.glist.gwait .gsk{display:block;height:52px;border-radius:8px;border:1px solid var(--line);background:var(--panel);opacity:.6}/* Stand 308 (q308 S2): ruhiger Platzhalter, bis der Abgleich da ist */.ph h2 .gchk{font-size:12px;font-weight:500;color:var(--muted);margin-left:6px;letter-spacing:0;text-transform:none}
.glist a{display:flex;justify-content:space-between;padding:14px;border:1px solid var(--line);border-radius:8px;color:var(--fg);text-decoration:none;font-weight:500;font-size:17px}
.glist a span{color:var(--muted)}
/* Startseite: jeder Bereich mit eigenem, leichtem Farbton – Gruppen grün, Turniere lila, Spielform blau, Beispiel gold, Regeln neutral */
#start{background:color-mix(in srgb,var(--accent) 6%,var(--panel));border-color:color-mix(in srgb,var(--accent) 28%,var(--line))}
#tourneybox{background:color-mix(in srgb,var(--purple) 6%,var(--panel));border-color:color-mix(in srgb,var(--purple) 28%,var(--line))}
#playbox{background:color-mix(in srgb,#3d74e0 6%,var(--panel));border-color:color-mix(in srgb,#3d74e0 26%,var(--line))}
#showbox{background:color-mix(in srgb,var(--hi) 9%,var(--panel));border-color:color-mix(in srgb,var(--hi) 35%,var(--line))}
#start .glist a,#tourneybox .glist a{background:var(--panel)}
.glist .tr-l{display:grid;gap:2px;min-width:0;color:var(--fg)}
.glist .tr-l b{font-weight:500}
.glist .tr-l small{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}
.glist .tr-l small.gleft{display:block}.glist .tr-l small.gleft .gback{color:var(--accent);font-weight:600}.glist .tr-l small.goff{color:var(--down-text)} /* Stand 275 (V96): „verlassen · Wieder mitspielen ›“, „Abgesagt vom Organisator“ */
.glist a{align-items:center}.tr-r{flex:none;display:flex;align-items:center;gap:10px;margin-left:10px}.tr-r em{font-style:normal;font-size:14px;font-weight:600;color:var(--accent);white-space:nowrap}
.livedot.sm{width:8px;height:8px}
/* Laufendes Turnier auf der Startseite: grün, mit rotem „läuft“-Punkt */
.live{padding:0;border:0;background:none;display:grid;gap:6px}
.live .lv{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1.5px solid var(--accent);border-radius:10px;background:var(--soft);color:var(--fg);text-decoration:none}
.live .lv-t{min-width:0;flex:1}
.live .lv b{display:block;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live .lv small{display:block;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live .onair{font-size:13px;flex:none}
.live .lv .go{margin-left:auto;color:var(--accent);font-size:20px}
.onair{display:inline-flex;align-items:center;gap:7px;font-family:var(--display);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--down);font-size:15px}
.livedot{position:relative;width:11px;height:11px;border-radius:50%;background:var(--down);flex:none}.livedot::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(184,69,47,.55);pointer-events:none;will-change:transform,opacity;animation:onair 1.4s ease-out infinite}
@keyframes onair{0%{transform:scale(1);opacity:1}70%{transform:scale(2.6);opacity:0}100%{transform:scale(2.6);opacity:0}}/* Stand 286 (P4): Ring über transform/opacity statt box-shadow – kein Neumalen je Bild */
#group.stale{opacity:.72;transition:opacity .25s}.stalebar{position:fixed;left:50%;top:calc(8px + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:30;margin:0;padding:4px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--line);color:var(--muted);font:500 13px/1.4 var(--body);pointer-events:none}/* Stand 286 (P1): gemerkter Stand – dezent „Wird aktualisiert …“ */
@media (prefers-reduced-motion:reduce){.livedot{animation:none}.livedot::after{animation:none;opacity:0}#nav button.islive::before{animation:none}.btn.wait::after{animation-duration:2.4s}html{scroll-behavior:auto}}/* Stand 283 (A4): auch der rote Live-Punkt im Reiter steht still; der Warte-Kreisel dreht nur langsam (er zeigt, dass gespeichert wird) */
.grow{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.grow a{min-width:0}
.grow .act,.ph .act{display:flex;gap:8px;flex-wrap:wrap}
/* Stand 272 (Martin 08.11., Prüfer A2-F5, Vorschlag 13): „Bearbeiten“ – jede Gruppe ein eigener umrandeter Block (Name + Symbol-Spalte in einem Rahmen), Symbole untereinander (Stift oben, Auge, Mülleimer unten), 36 px hoch mit kleiner Beschriftung daneben, klarer Abstand zwischen den Blöcken, Name senkrecht mittig */
#start .glist .grow{grid-template-columns:minmax(0,1fr) auto;gap:0;align-items:stretch;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}
#start .glist .grow+.grow{margin-top:6px}
#start .glist .grow>a{border:0;border-radius:0;background:none;align-items:center;padding:12px 6px 12px 12px;gap:6px;font-size:16px;overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
#start .glist .grow>.hint{align-self:center;padding:0 12px;font-size:13px}
#start .glist .grow .act{flex-direction:column;flex-wrap:nowrap;justify-content:center;gap:6px;padding:7px;border-left:1px solid var(--line)}
#start .glist .grow .act .icon{width:auto;height:36px;min-height:36px;display:flex;align-items:center;justify-content:flex-start;gap:6px;padding:0 9px 0 8px;font:500 12.5px/1 var(--body);white-space:nowrap}
#start .glist .grow .act .icon svg{width:16px;height:16px;flex:none}
#start .glist .grow .act .icon .gal{color:inherit}
.exsub{display:block;margin-top:2px}.nw{white-space:nowrap}
#viewband{position:fixed;top:0;left:0;right:0;z-index:2147483000;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px));background:var(--gold);color:var(--gold-ink);font:500 13.5px/1.3 var(--body);box-shadow:0 2px 10px rgb(0 0 0/.25)}#viewband b{font-weight:700}#viewband button{flex:none;font:700 13px var(--body);padding:8px 14px;min-height:36px;border-radius:999px;border:1.5px solid var(--gold-ink);background:transparent;color:var(--gold-ink);cursor:pointer}#viewnote{position:fixed;left:50%;top:calc(64px + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:2147483002;max-width:min(92vw,520px);padding:12px 16px;border-radius:10px;background:var(--panel);color:var(--fg);border:1px solid var(--line);border-left:3px solid var(--gold);box-shadow:0 6px 20px rgb(0 0 0/.35);font:600 14.5px/1.4 var(--body)}#viewnote[hidden]{display:none}body.viewing{padding-top:56px}body.viewing .sheet{top:56px}body.viewing .toast,body.viewing.has-pend .toast,body.viewing.focus .toast{top:calc(64px + env(safe-area-inset-top,0px));bottom:auto;z-index:2147483001} /* Stand 304 (S24, Martin 12.11. 07:14): Meldungen in der Ansicht unter dem gelben Band – „Nur Ansicht – hier kannst du nichts ändern.“ war verdeckt */ /* Stand 273: „Als Spieler ansehen“ – festes Band, nicht wegklickbar */
body.vnote-on .toast.error{opacity:0!important;pointer-events:none}/* Stand 305b (spieler 4): in der Ansicht als Spieler sagt der Hinweis unter dem Band schon alles – keine zweite, halb verdeckte rote Meldung */
.pidl{display:block;font:500 12px/1.3 var(--mono,ui-monospace,monospace);letter-spacing:.02em;opacity:.75;margin:1px 0 2px} /* Stand 272: Spieler-ID-Kurzform im Profil */
#wipepw{font:16px var(--body);padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);min-width:0;width:100%;-webkit-appearance:none;appearance:none}.sheet .wipeall,.wipeall b,.sheet .wipewarn,.wipewarn b{color:var(--down-text)}.wipelist{display:grid;gap:6px;margin:4px 0 8px}.wiperow{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:15px;line-height:1.35}.wiperow input{width:20px;height:20px;flex:none;margin-top:1px;accent-color:var(--down)}.wiperow:has(input:checked){border-color:var(--down);background:color-mix(in srgb,var(--down) 8%,transparent)}.wipedev{margin:10px 0 12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.wipedev .btn{margin:0;width:100%}
.evcard .evorg{border-top:1px dashed var(--line);padding-top:4px;margin-top:12px}.evcard .evorg .plandanger{margin-top:0;justify-content:flex-end}.evcard .evorg .linkbtn{font-size:13px;min-height:40px;padding:8px 0}
.icon{width:44px;height:44px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--fg);display:grid;place-items:center;cursor:pointer;padding:0;transition:background .15s,border-color .15s;flex:0 0 auto}
.icon:hover{border-color:var(--accent);color:var(--accent)}
.icon.del{border-color:color-mix(in srgb,var(--down) 45%,transparent);background:color-mix(in srgb,var(--down) 14%,transparent);color:var(--down)}
.icon.del:hover{background:var(--down);color:#fff}
.icon:active{transform:scale(.96)}
/* Eigene Zeile in Tabellen: dezent markiert, beim Hinscrollen bzw. Öffnen leuchtet sie einmal auf */
/* Deine Zeile: farbig hinterlegt, grüner Streifen links, Name kräftig – man findet sich sofort */
tr.me td{background:color-mix(in srgb,var(--accent) 13%,var(--panel))}
tr.me td:first-child{box-shadow:inset 4px 0 0 var(--accent);color:var(--accent)}
tr.me td:nth-child(2){font-weight:700}
@keyframes meflash{0%{background:color-mix(in srgb,var(--hi) 38%,var(--panel))}100%{background:color-mix(in srgb,var(--accent) 13%,var(--panel))}}
@keyframes mepop{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:no-preference){tr.me.flash td{animation:meflash 1.4s ease-out .15s 1 both}
tr.me.flash td:first-child>*,tr.me.flash td:first-child{animation:meflash 1.4s ease-out .15s 1 both}
tr.me.flash .rk,tr.me.flash td:first-child b{display:inline-block;animation:mepop .5s cubic-bezier(.3,1.6,.5,1) .2s 1 both}}
.pd .pb{overflow:hidden}
/* Bild-teilen-Fenster: alles auf einen Blick – Bild schrumpft, Knöpfe bleiben immer sichtbar */
.sharesheet .panel{display:flex;flex-direction:column;overflow:hidden}
.sharesheet .shareimg{display:block;margin:0 auto;border-radius:14px;max-width:100%;width:auto;height:auto;max-height:calc(min(82dvh, var(--vvh, 100dvh) - 12px) - 230px);object-fit:contain;flex:0 1 auto;min-height:0}
.sharesheet .row.foot{flex:none}
.sharesheet .row.foot .btn{flex:1 1 0}.sheet .row.foot:has(#dogo){flex-wrap:nowrap}.sheet .row.foot #dogo{flex:2 1 0;min-width:0;white-space:normal;line-height:1.2}/* Stand 305b (orga K2): „Jemand fällt aus“ in allen vier – der Knopf mit der langen Frage bricht in sich um, die Leiste bleibt einzeilig */
.sheet.evshare .panel{max-height:calc(var(--vvh,100dvh) - 12px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}#evtxt{resize:vertical;min-height:72px;line-height:1.4}/* Stand 283 (Nachttest Erstnutzer 9): Teilen-Fenster in voller Höhe, Textfeld so hoch wie sein Text */
@keyframes pk{0%{r:4;stroke-width:2}50%{r:8;stroke-width:5}100%{r:4;stroke-width:2}}
@media (prefers-reduced-motion:no-preference){svg circle.pulse{animation:pk .7s ease-out 2}}
/* Zeitplan in den Spielregeln */
.zin{display:grid;gap:8px;margin:10px 0}
.zrow{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--panel)}
.zl{font-weight:600}
.zs{display:flex;align-items:center;gap:8px}
.zs b{min-width:96px;text-align:center;font-variant-numeric:tabular-nums}
.zcards{display:grid;gap:8px;margin:6px 0 8px}
.zc{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--panel)}
.zc p{margin:4px 0 0}
.zh{display:flex;align-items:center;justify-content:space-between;gap:8px}
.zh b{font:700 19px var(--display);text-transform:uppercase;letter-spacing:.03em}
.zc.best{border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.zc.best .tag{background:var(--accent);color:var(--accent-ink)}
.zc.no{opacity:.72}
.zh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.zh small{color:var(--muted);font-size:13px}.zh .tag{margin-left:auto}
.zkvs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0 2px}
.zkv{border:1px solid var(--line);border-radius:9px;padding:6px 8px;display:flex;flex-direction:column;gap:1px}
.zkv span{font:700 11px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.zkv b{font:700 15px var(--body);font-variant-numeric:tabular-nums}
.zkv.hl{border-color:var(--accent)}
.zplan .zs b{white-space:nowrap}
.zs b.zopen{color:var(--muted);font-weight:600}
/* Stand 260 (GEWOLLT 251): Zahl im Zähler direkt eintippen – sieht aus wie die Zahl, antippen öffnet die Zifferntastatur */
input.numin{width:2.6em;min-width:0;padding:4px 2px;text-align:center;font-family:var(--display);font-weight:800;font-size:22px;font-variant-numeric:tabular-nums;border:1px dashed var(--line);border-radius:8px;background:transparent;color:var(--fg);box-shadow:none}
input.numin:focus{border-style:solid;border-color:var(--accent);outline:none;background:var(--panel)}
input.numin::placeholder{color:var(--muted);font:600 14px var(--body)}
.numw{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.numw>span{font-weight:600}.numw small{font-weight:400}
.zs .numw{min-width:96px;justify-content:center}.zs .numw input.numin{font-size:18px}
.seg.zq{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.seg.zq button{white-space:normal;line-height:1.25;padding:10px 8px}
.seg.zq button small{display:block;font-weight:500;font-size:12px;opacity:.85;margin-top:3px}
.zplan .seg button{min-height:44px;border-radius:10px;border:1.5px solid var(--line);background:var(--panel);color:var(--fg);font:600 15px var(--body);cursor:pointer;padding:6px 8px}
.zplan .seg button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}
.zrow.zcol{flex-direction:column;align-items:stretch}
.seg.zf{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.seg.zf4{grid-template-columns:repeat(4,1fr)}
.seg.zf2{grid-template-columns:repeat(2,1fr)}
.zq-h{margin:16px 0 8px;font-weight:700;display:flex;align-items:center;gap:8px}
.og small.ogwhen{display:block;margin-top:2px}
.pmenu .sw{position:relative;width:52px;height:30px;min-width:52px;border-radius:999px;border:0;background:var(--line);cursor:pointer;transition:background .2s;padding:0}.pmenu .sw i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}.pmenu .sw[aria-checked="true"]{background:var(--accent)}.pmenu .sw[aria-checked="true"] i{transform:translateX(22px)}
.pfhero{font-size:44px;text-align:center;margin:4px 0 2px}
.btn.ghost.findbtn{display:flex;align-items:center;justify-content:center;gap:8px;background:color-mix(in srgb,var(--accent) 18%,var(--panel));border:1.5px solid var(--accent);color:var(--accent);font-weight:700}
.helpbox{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--panel));border-radius:12px;padding:10px 12px;margin:14px 0 0}.helpbox p{margin:0 0 6px;line-height:1.4}.helpbox p:last-child{margin-bottom:0}.helpbox .hint{font-size:13px}.helpbox .btn{margin-top:4px}
/* Stand 232 – Hilfe Teil 2 */
.scores.hmode{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.scores.hmode button{font-family:var(--body);display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:2px;line-height:1.2}.scores.hmode small{font-weight:400;font-size:12px;color:var(--muted)}
.helpbox.hplan .btn.wide{width:100%;margin-top:10px}.helpbox .linkbtn{display:block;margin:8px auto 0}.helpbox .linkbtn#hnall{display:inline;margin:0;padding:0;min-height:0}/* Stand 287 (flag-alle 1): in der Hinweiszeile, keine eigene Zeile */
.hadj{display:grid;gap:6px;margin:10px 0 0}.gpick{margin-top:0}.gpick .hopt{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:2px}.gpick .hopt span{text-align:left}.gpick .hopt .gpends{color:var(--fg);font-variant-numeric:tabular-nums}/* Stand 258: Zählweise – Titel oben, Beispielsatz darunter */.hopt{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 12px;min-height:44px;cursor:pointer}.hopt span{font-size:13px;color:var(--muted);text-align:right}.hopt[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:color-mix(in srgb,var(--accent) 10%,var(--panel))}.hopt:disabled{opacity:.5;cursor:default}
#hnext .helpbox{margin:0 0 10px}#hnext .pno,.hnext .pno{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font:700 11px var(--body);vertical-align:1px}
.chip .pno{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 4px;margin:0 6px 0 -4px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font:700 12px var(--body)}.chip[aria-pressed="true"] .pno{background:color-mix(in srgb,#fff 28%,transparent);color:inherit}
.znum{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:700 13px var(--body)}
.seg.zf button{padding:6px 4px;font-size:14px}
.ztbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;margin-top:8px}
.ztbl th,.ztbl td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right}
.ztbl th:first-child,.ztbl td:first-child{text-align:left}
.ztbl th{font:700 12px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ztbl td{white-space:nowrap;font:500 15px var(--body)}
.ztbl td:first-child{font-weight:700}
.zs b{min-width:84px}
/* Fühlbares Antippen: Knöpfe geben kurz nach wie ein echter Knopf */
@media (prefers-reduced-motion:no-preference){.btn,.chip,.tabs button,.nav button,.scores button,.glist a,.pb .btn{transition:transform .12s ease}
.btn:active,.chip:active,.tabs button:active,.nav button:active,.scores button:active,.glist a:active{transform:scale(.96)}}
.team .hint{color:inherit;opacity:.75;font-size:13px}
.chk{display:flex;gap:10px;align-items:flex-start;padding:8px 0;font-size:14px}
.chk input{width:20px;height:20px;margin:0;flex:0 0 auto;accent-color:var(--accent)}
.plist{list-style:none;margin:0;padding:0}
.plist li{display:grid;gap:2px;padding:11px 10px;border-bottom:1px solid var(--line);cursor:pointer;border-radius:6px}
.plist li.on{background:var(--soft)}.plist li.on .pn>span:first-child{font-weight:700}.plist li.on .pn>span:first-child::before{content:"✓";display:inline-block;width:1.3em;color:var(--accent);font-weight:800}.plist.multi li:not(.on):not(.hint) .pn>span:first-child::before{content:"";display:inline-block;width:1.3em}/* Stand 286 (S12): gewählt = Haken und fett */
.plist li.hid .pn{color:var(--muted)}
.plist .pn{font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:8px}
.plist .pm{font-size:12px;color:var(--muted)}
.plist .go{color:var(--muted);font-weight:400;white-space:nowrap;font-size:17px}
.rulecard{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.rulecard .big{font-size:15px;color:var(--fg);margin:0 0 10px}
.rulecard .big:last-child{margin-bottom:0}
.rt{width:100%;border-collapse:collapse;margin:8px 0;font-size:14px;background:var(--panel);border:1px solid var(--line);border-radius:8px}
.rt th,.rt td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--line)}
.rt th{font-size:11px}
.rt td:first-child,.rt td{font-family:var(--body);font-size:14px;font-weight:500;color:var(--fg);width:auto;white-space:nowrap}
.rt td:first-child{font-weight:600}
.rt tr:last-child td{border-bottom:0}
.mx{display:block;margin:8px 0;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:14px;line-height:1.6}
details.box{border:1px solid var(--line);border-radius:8px;padding:10px 12px}
details.box summary{cursor:pointer;font-weight:600;font-size:15px}
details.box[open] summary{margin-bottom:8px}
.toast{position:fixed;left:50%;top:calc(12px + env(safe-area-inset-top,0px));transform:translateX(-50%);background:var(--accent);color:var(--accent-ink);padding:12px 18px;border-radius:8px;font-size:15px;font-weight:600;box-shadow:0 4px 16px rgba(0,0,0,.3);z-index:30;opacity:0;transition:opacity .2s;pointer-events:none;max-width:92vw;text-align:center}
.toast.on{opacity:1}
.toast.warn{background:var(--gold);color:var(--gold-ink)}
.toast.error{background:var(--down);color:#fff}
.sheet{position:fixed;inset:0;background:rgba(0,0,0,.5);display:grid;place-items:start center;z-index:20;padding-top:env(safe-area-inset-top,0px)}
.sheet .panel{width:min(720px,100%);border-radius:0 0 14px 14px;max-height:min(88dvh,calc(var(--vvh,100dvh) - 12px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));display:flex;flex-direction:column;overflow:hidden}
.sheet .panel>.sb{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.sheet .panel>.row.foot{flex:none;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
/* Nach-oben-Knopf auf langen Seiten */
#totop{position:fixed;right:max(14px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:14;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--accent);display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.16);cursor:pointer;opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;transition:opacity .2s ease,transform .25s cubic-bezier(.3,1.4,.5,1)}
#totop.on{opacity:1;transform:none;pointer-events:auto}
/* Position in der Gruppe: kleiner Strich von letztem bis erstem Platz, der Punkt läuft an deine Stelle */
.postrack{display:block;position:relative;height:6px;border-radius:3px;background:var(--track);margin-top:8px}
.postrack i{position:absolute;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
.postrack em{position:absolute;top:10px;font:600 10px var(--body);font-style:normal;color:var(--muted)}
/* Dein Platz in der Rangliste als schwebende Pille, wenn deine Zeile nicht im Bild ist */
#mepill{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:14;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--accent);color:var(--accent-ink);border:0;border-radius:999px;padding:10px 16px;font:700 15px var(--body);box-shadow:0 8px 22px rgba(0,0,0,.2);transition:opacity .2s ease,transform .3s cubic-bezier(.3,1.4,.5,1);white-space:nowrap}
#mepill.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}body.pillon #group{padding-bottom:64px}

textarea{font:16px/1.4 var(--body);padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);width:100%;resize:vertical;min-height:120px}
.blist{display:grid;gap:6px}
.bitem{display:flex;align-items:center;gap:8px}
.bitem input{flex:1 1 auto}
.bitem .btag{flex:none;font-size:12px;color:var(--down);white-space:nowrap}
.bitem .btag:empty{display:none}
.bitem.bad input{border-color:var(--down);text-decoration:line-through;color:var(--muted)}
.bitem .icon{flex:none}
.foot{justify-content:space-between;margin-top:14px}
.sheet img{width:100%;border-radius:8px;border:1px solid var(--line)}
.sheet p.big{font-size:15px;color:var(--fg);margin:0 0 10px}
@media (prefers-reduced-motion:reduce){.toast{transition:none}}

/* Darstellungs-Audit 23.10.: nichts darf überlagern oder seitlich herausragen */
#startlists>*{min-width:0}
.live>*{min-width:0;max-width:100%}
#statspick .pk-l b{line-height:1.3;padding-bottom:2px}
.rt td,.rt td:first-child{white-space:normal}
.rt td:nth-child(2){overflow-wrap:anywhere}
.rt th{white-space:normal}
#rulesbox,details.box{overflow-x:auto}
@media (max-width:420px){.rt th,.rt td{padding:6px 6px}.stt td,.stt th button{padding-left:3px;padding-right:3px}.stt{font-size:13px}}
.toast{width:max-content}
.rt-s,.rt-v{paint-order:stroke;stroke:var(--panel);stroke-width:4px;stroke-linejoin:round}
.chip .hint,.chip .tag{overflow-wrap:normal;white-space:nowrap}
#mebtn{text-align:left}
.glist a{gap:10px}
.glist a>span:last-child:not(.tr-l){flex:none}
.glist a>.tr-l{flex:1 1 auto}

/* Einladungen: Tabelle Spieler | Status | WhatsApp | Link kopieren */
.invt{width:100%;border-collapse:collapse;margin:4px 0 0}
.invt td{padding:9px 4px;border-bottom:1px solid var(--line);vertical-align:middle}
.invt tr:last-child td{border-bottom:0}
.invt td.n{width:100%;min-width:0;overflow-wrap:anywhere}
.invt td.n b{display:block;font-weight:600;font-size:15px;color:var(--fg)}
.invt td.n small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.invt td.n small.ok{color:var(--accent)}
.invt td.a{white-space:nowrap;text-align:right}
.invt td.a .btn,.invt td.a .icon{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}
.invt td.a .icon{width:40px;height:40px;margin-left:6px}
.chip.invite{border-style:solid;border-color:var(--accent);color:var(--accent)}

/* Padelplatz zum Aufstellen (Seiten angeben): Draufsicht, Netz in der Mitte, Team A oben, Team B unten */
#court{margin:12px 0 4px;animation:courtin .22s ease-out}
@keyframes courtin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.court{position:relative;max-width:340px;margin:0 auto;aspect-ratio:10/11;border-radius:14px;padding:10px;background:linear-gradient(180deg,#2f7fb5,#2a6f9f);box-shadow:inset 0 0 0 3px rgba(255,255,255,.25),0 6px 18px rgba(0,0,0,.18)}
.court .half{position:absolute;left:10px;right:10px;height:calc(50% - 10px);display:grid;grid-template-columns:1fr 1fr;border:2px solid rgba(255,255,255,.85)}
.court .half.top{top:10px;border-bottom:0}
.court .half.bot{bottom:10px;border-top:0}
.court .half:before{content:"";position:absolute;left:0;right:0;height:2px;background:rgba(255,255,255,.85)}
.court .half.top:before{bottom:30%}
.court .half.bot:before{top:30%}
.court .half:after{content:"";position:absolute;left:50%;width:2px;margin-left:-1px;background:rgba(255,255,255,.85)}
.court .half.top:after{bottom:0;height:30%}
.court .half.bot:after{top:0;height:30%}
.court .net{position:absolute;left:4px;right:4px;top:50%;height:6px;margin-top:-3px;border-radius:3px;background:repeating-linear-gradient(90deg,#fff 0 4px,rgba(255,255,255,.35) 4px 8px);box-shadow:0 2px 6px rgba(0,0,0,.25);z-index:1}
.court .net span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:700 10px var(--body);letter-spacing:.12em;text-transform:uppercase;color:#1f4f73;background:#fff;border-radius:4px;padding:1px 6px}
.court .slot{position:relative;z-index:2;margin:8px;height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:12px;border:2px dashed rgba(255,255,255,.55);background:rgba(255,255,255,.08);color:#fff;font:600 14px var(--body);text-align:center;cursor:pointer;padding:6px;min-width:0}
.court .half.top{align-items:start}
.court .half.bot{align-items:end}
.court .slot small{font:500 11px var(--body);opacity:.85}
.court .slot b{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.court .slot.next{border-color:#fff;background:rgba(255,255,255,.18)}.court .slot.next::after{content:"";position:absolute;inset:-2px;border-radius:12px;border:4px solid rgba(255,255,255,.25);pointer-events:none;opacity:0;will-change:transform,opacity;animation:slotpulse 1.4s ease-in-out infinite}
@keyframes slotpulse{0%,100%{opacity:0;transform:scale(.97)}50%{opacity:1;transform:scale(1.02)}}/* Stand 286 (P4) */
.court .slot.A{border:0;background:var(--accent);color:var(--accent-ink)}
.court .slot.B{border:0;background:var(--gold);color:var(--gold-ink)}
.court .slot.pick{outline:3px solid #fff;outline-offset:2px;transform:scale(1.04)}
.court-t{max-width:340px;margin:0 auto;text-align:center;font:700 11px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:4px 0}
.courthint{text-align:center;margin:6px 0 0}
@media (prefers-reduced-motion:reduce){#court,.court .slot.next,.court .slot.next::after{animation:none}}

/* Gruppen-Assistent */
.step{font:600 12px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 6px}
.qa{margin:14px 0 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.qa .q{font-weight:600;font-size:16px;margin:0 0 8px}
.qa .seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.qa .seg button{min-height:44px;border-radius:10px;border:1.5px solid var(--line);background:var(--panel);color:var(--fg);font:600 15px var(--body);cursor:pointer;padding:6px 8px}
.qa .seg button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}
.qa .seg button small{display:block;font-weight:500;font-size:11px;opacity:1}/* Stand 296 (gs-texte A1): Kontrast ≥ 4,5:1 */
.qa .hint{margin:8px 0 0}
.invt select{font:500 13px var(--body);padding:6px 4px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);margin-right:6px;vertical-align:middle;height:40px}
#playpick .playgrid{display:grid;gap:8px;margin-top:10px}
#playpick .playgrid .btn{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:12px 14px;min-height:64px}
#playpick .playgrid .btn small{font:500 13px var(--body);opacity:.9;margin-top:2px}
#targetbox{margin:0 0 12px}
#targetbox .scores{margin-top:6px}

/* Gruppen-Übersicht (Einstellungen und frische Gruppe): jede Zeile führt zum passenden Formular */
#gov,.gov{display:grid;gap:8px}
.gov a .tr-l small.warn,#gov a .tr-l small.warn{color:var(--gold)}
.gov a .tr-l small.ok,#gov a .tr-l small.ok{color:var(--accent)}
#playpick .gov{margin:6px 0 14px}

/* Verwaltungsseiten: eigene Seite statt Overlay (gleicher Inhalt wie die Fenster) */
#group[data-mp="1"] .sec-more:not(#msec){display:none}
.mpg>.panel{border:0;padding:0;margin:0;background:none;box-shadow:none;max-height:none;overflow:visible;width:auto;border-radius:0}
.mpg .mback{margin:0 0 10px;display:inline-block}
.mpg .row.foot{margin-top:16px}

/* PIN-Eingabe: vier Kästchen mit Punkten, Schloss oben, Schütteln bei Fehler */
.pinsheet{text-align:center;padding:6px 0 0}
.pinsheet h2{margin-bottom:6px}
.pinsheet p.big{max-width:420px;margin:0 auto}
.pinlock{width:68px;height:68px;border-radius:50%;margin:2px auto 14px;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg,#2fbf5f,var(--accent));box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 38%,transparent)}
.pinwrap{position:relative;display:flex;justify-content:center;gap:12px;margin:22px auto 6px;width:max-content;cursor:text}
.pinwrap .d{width:58px;height:68px;border-radius:16px;border:2px solid var(--line);background:var(--bg);display:grid;place-items:center;transition:border-color .15s,box-shadow .15s,transform .15s,background .15s}
.pinwrap .d::after{content:"";width:16px;height:16px;border-radius:50%;background:var(--fg);transform:scale(0);transition:transform .14s cubic-bezier(.3,1.6,.5,1)}
.pinwrap .d.on::after{transform:scale(1)}
.pinwrap .d.on{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
.pinwrap .d.cur{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}
.pinwrap .d.cur::before{content:"";position:absolute;width:2px;height:26px;background:var(--accent);animation:pinblink 1s steps(1) infinite}
.pinwrap .d{position:relative}
@keyframes pinblink{50%{opacity:0}}
.pinreal{position:absolute;inset:0;width:100%;height:100%;opacity:0;font-size:16px;border:0;padding:0;color:transparent;caret-color:transparent;background:transparent;z-index:2}
.pinwrap.shake{animation:pinshake .38s ease}
@keyframes pinshake{20%{transform:translateX(-10px)}40%{transform:translateX(9px)}60%{transform:translateX(-6px)}80%{transform:translateX(4px)}}
.pinwrap.shake .d{border-color:var(--down)}
.pinwrap.busy .d{opacity:.6}
.pinwrap.done .d{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--bg))}
.pinwrap.done .d::after{background:var(--accent)}
.pinerr{color:var(--down);font-size:14px;font-weight:500;min-height:1.4em;margin:8px 0 0}
.pinstep{display:flex;justify-content:center;gap:8px;margin:4px 0 0}
.pinstep span{width:8px;height:8px;border-radius:50%;background:var(--line);transition:width .2s,background .2s}
.pinstep span.on{width:22px;border-radius:4px;background:var(--accent)}
.pinstep span.ok{background:var(--accent)}
@media (max-width:360px){.pinwrap{gap:9px}.pinwrap .d{width:52px;height:62px}}
@media (prefers-reduced-motion:reduce){.pinwrap.shake{animation:none}.pinwrap .d.cur::before{animation:none}}
.btn.dim{opacity:.55}
.glist a.ro{cursor:default;opacity:.75}

/* Einladungen & Rechte: pro Spieler Name/Status oben, darunter Sprache, Rolle, WhatsApp, Kopieren */
.invhelp{margin:6px 0 4px;padding:10px 12px 10px 28px;border-radius:12px;background:var(--soft);font-size:13.5px;line-height:1.45;color:var(--fg)}
.invhelp li{margin:2px 0}
.allrole{margin:12px 0 4px;padding:12px;border:1.5px solid var(--line);border-radius:14px;background:var(--soft)}
.allrole-h{margin:0 0 10px;font:600 14px var(--body)}
.allrole-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.allrole-seg button{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:64px;padding:8px 4px;border-radius:12px;border:1.5px solid var(--line);background:var(--panel);color:var(--fg);font:600 14px var(--body);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,border-color .15s}
.allrole-seg button small{font:500 11px var(--body);opacity:.75}
.allrole-seg .ar-ic{display:grid;place-items:center;height:22px}
.allrole-seg button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink);cursor:default}
.allrole-seg button[aria-pressed="true"] small{opacity:.9}
.phead .avbtn{position:relative;border:0;cursor:pointer;padding:0}
.phead .avbtn.emo{background:var(--soft);font:400 30px/1 system-ui,"Apple Color Emoji","Segoe UI Emoji",sans-serif;border:2px solid var(--line)}
.avpen{position:absolute;right:-2px;bottom:-2px;width:20px;height:20px;border-radius:50%;background:var(--panel);color:var(--fg);border:1.5px solid var(--line);display:grid;place-items:center}
.avgrid{margin:12px 0 4px;padding:12px;border:1.5px solid var(--line);border-radius:14px;background:var(--soft)}
.avg{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:8px}
.avg button{aspect-ratio:1;border-radius:12px;border:1.5px solid var(--line);background:var(--panel);font:400 26px/1 system-ui,"Apple Color Emoji","Segoe UI Emoji",sans-serif;cursor:pointer;display:grid;place-items:center;padding:0;transition:transform .1s,border-color .15s}
.avg button:active{transform:scale(.92)}
.avg button[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}
.avg .avnone{font:800 20px var(--display);color:var(--muted)}
.rav{display:inline-block;margin-right:6px;font-size:1.05em;line-height:1;vertical-align:-1px}
.devall{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;border:1.5px solid var(--accent);border-radius:14px;background:var(--soft);margin:0 0 10px}
.devall .tr-l{min-width:0}
.devall .tr-l b,.devall .tr-l small{display:block}.devall .tr-l small{color:var(--muted);font-size:13px;margin-top:2px}
.devall .btn{white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.devmore>summary{cursor:pointer;color:var(--muted);font:500 14px var(--body);padding:8px 2px;list-style:none}
.devmore>summary::before{content:"▸ ";}
.devmore[open]>summary::before{content:"▾ ";}
.svacc{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 4px;padding-top:10px;border-top:1px dashed currentColor;font-size:14px}
.svacc .btn{flex:none}
.accbox{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:14px 16px;border:1.5px solid var(--line);border-radius:14px;background:var(--panel)}
.accbox p{margin:2px 0 0}
.acf{display:grid;gap:10px}
.acf input{width:100%}
.acf input[type="email"],.acf input[type="password"],#acdf input[type="password"]{font:16px var(--body);padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);min-width:0;width:100%;-webkit-appearance:none;appearance:none}
.acf input:focus,#acdf input:focus{outline:2px solid var(--accent);outline-offset:1px}
.acseg{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.acseg button{min-height:44px;border-radius:10px;border:1.5px solid var(--line);background:var(--panel);color:var(--fg);font:600 15px var(--body);cursor:pointer}
.acseg button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}
.wlc{text-align:center}
.wlc-ic{display:block;width:64px;height:64px;margin:2px auto 8px;border-radius:14px;overflow:hidden;box-shadow:0 6px 18px rgba(0,0,0,.12)}.wlc-ic svg{display:block}
.wlc h2{margin:4px 0 6px}
.wlc .big{margin:0 0 12px}
.wlc-names{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.wlc-n{min-height:48px;padding:10px 18px;border-radius:999px;border:1.5px solid var(--line);background:var(--panel);color:var(--fg);font:700 17px var(--body);cursor:pointer}
.wlc-n[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}
.wlc label.f{text-align:left}.wlc label.f input{width:100%}.wlc .hint{text-align:left}
.nm2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.nm2 input{width:100%;min-width:0}
.pname.editing{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
.pname.editing .btn{justify-self:start}
.pname{display:flex;align-items:center;gap:6px;min-width:0}
.pname b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pname .icon.pen{width:32px;height:32px;min-width:32px;color:var(--muted);position:relative}.icon.pen::after,.sw::after,.info::after{content:"";position:absolute;inset:-7px}.info::after{inset:-9px}#back{position:relative}#back::after{content:"";position:absolute;left:-8px;right:-8px;top:-12px;bottom:-11px}/* Stand 252 (E-F9): Tippfläche mindestens 44 × 44 px, Aussehen bleibt */
.pname input{flex:1;min-width:0;font:600 17px var(--body)}
.pname .btn.sm{flex:none}
.pickbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 4px;padding:12px 14px;border:1.5px solid var(--accent);border-radius:14px;background:var(--soft);box-shadow:0 6px 18px rgba(0,0,0,.08)}
.pickbar small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.pickbar .btn{flex:none}
.invl.picking .invr{opacity:.55}
.invl.picking .invr.pk-row{opacity:1;cursor:pointer;border-radius:12px;padding-left:8px;padding-right:8px;transition:background .15s}
.invl.picking .invr.pk-row[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.pk{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:8px;border-radius:50%;border:2px solid var(--line);font-size:14px;font-weight:800;color:var(--accent-ink);vertical-align:-5px}
.invr[aria-pressed="true"] .pk{background:var(--accent);border-color:var(--accent)}
.invl.picking .ctl{display:none}
.invl.picking .invr{grid-template-columns:1fr;padding-top:12px;padding-bottom:12px}
.invl.picking .who{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center}
.invl.picking .who .pk{grid-row:span 2;margin:0;width:28px;height:28px}
.invl{display:grid;gap:0;margin-top:6px}
.invr{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.invr:last-child{border-bottom:0}
.invr .who{min-width:0;overflow-wrap:anywhere}
.invr .who b{display:block;font-size:15.5px;font-weight:600}
.invr .who small{display:block;font-size:12.5px;color:var(--muted)}
.invr .who small.ok{color:var(--accent);font-weight:600}
.invr .who small.mid{color:var(--gold)}
.invr .ctl{display:flex;align-items:flex-end;gap:8px}
.invr .mini{display:grid;gap:2px;font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
.invr select{font:500 14px var(--body);height:40px;padding:0 6px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);max-width:132px}
.invr .rolefix{font-size:13px;font-weight:600;color:var(--muted);padding:0 4px 11px}
.invr .btn.wa{width:44px;height:40px;min-height:40px;padding:0;display:grid;place-items:center;background:#25d366;border-color:#25d366;color:#fff}
.invr .icon{width:40px;height:40px}
@media (max-width:560px){.invr{grid-template-columns:1fr}.invr .ctl{justify-content:flex-start;flex-wrap:wrap}}

/* Offene Bestätigung (Startseite) und „bestätigt von … um …“ (Letzte Spiele) */
.live .lv.cf{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,var(--panel))}
.live .lv.cf .onair{font-size:18px}
.live .lv.cf .go{color:var(--gold)}
.hist .cf,.cf{display:block;font-size:12px;color:var(--accent);font-weight:500;margin-top:2px}
.round .m.wait{border-color:var(--gold)}
/* Stand 262 (TODO 55): „Ganzer Spielplan“ – wie der Turnier-Spielplan, nur zum Ansehen; das nächste Spiel hervorgehoben */
.fplan .m.fplate{opacity:.5}.fplan .fpcut{margin:6px 0;padding:6px 0 0;border-top:2px dashed var(--line);font-size:13px;color:var(--muted);font-weight:600}.fplan .m.fpearly{min-height:0;padding-top:8px;padding-bottom:8px}/* Stand 287 (fullPlan F3/F8) */
.fplan .m{cursor:default;line-height:1.45}.fplan .m .fpl{min-width:0;flex:1}.fplan .m.done{opacity:.65}.fplan .fpteam{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 4px;min-height:0;padding:2px 10px;margin:3px 0;border-style:solid;border-radius:999px;font:500 14px/1.4 var(--body);cursor:default;vertical-align:middle;text-align:left;max-width:100%}.fplan .fpteam.b .pno{background:var(--gold);color:var(--gold-ink)}.fplan .fpp{white-space:nowrap}/* Stand 263 (P6, Martin 17:32): Teams im ganzen Spielplan als Pillen in den Teamfarben des Eintragens (.team.a hellgrün, .team.b hellgelb), Nummern im Kreis */.fplan .m.nx{background:color-mix(in srgb,var(--accent) 10%,transparent);box-shadow:inset 0 0 0 2px var(--accent);border-top-color:transparent}.fplan .m.nx + .m{border-top-color:transparent}.fplan .pno{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;margin:0 0 0 2px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font:700 11px var(--body);vertical-align:1px}.fplan b.fpnx{display:inline;font:inherit;font-weight:700;color:var(--accent);text-transform:none;letter-spacing:0;margin:0}
.round .m .wt{display:block;font-size:11px;color:var(--gold);font-weight:600;margin-top:2px}
/* Bestätigungs-Balken ganz oben: erscheint nur, wenn ein Ergebnis auf MICH wartet – auf jeder Seite */
html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}
@media (display-mode:standalone){button,.btn,.tabs button,.seg button{-webkit-user-select:none;user-select:none}input,textarea,select,[contenteditable]{-webkit-user-select:text!important;user-select:text!important}}
#pendbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:15;margin:0 0 12px;padding-top:6px;background:var(--bg)}
/* Balken sichtbar: Meldungen unten zeigen, damit sie den Balken nicht verdecken */
.has-pend .toast{top:auto;bottom:calc(16px + env(safe-area-inset-bottom,0px))}
#pendbar .pb{border:2px solid var(--gold);background:var(--panel);border-radius:12px;padding:10px 12px;display:grid;gap:6px;box-shadow:0 8px 24px rgba(0,0,0,.14)}
#pendbar .pb.rej{border-color:var(--down)}
#pendbar .pb.dec{border-color:var(--purple)}
#pendbar .pb-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
#pendbar .pb-tag{font:800 15px var(--display);letter-spacing:.05em;text-transform:uppercase;color:var(--gold)}
#pendbar .pb.rej .pb-tag{color:var(--down)}
#pendbar .pb.dec .pb-tag{color:var(--purple)}
#pendbar .pb-h small{color:var(--muted);font-size:13px}
#pendbar .pb-cd{font:600 13px var(--mono);color:var(--fg);background:var(--soft);border-radius:999px;padding:2px 9px;white-space:nowrap}
#pendbar .pb-m{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px}
#pendbar .pb-m .sc{font:700 20px var(--mono)}
#pendbar .pb-g{margin-top:-2px}
#pendbar .pb .row .btn{min-height:42px;padding-top:8px;padding-bottom:8px}
#pendbar .pb-m .w{font-weight:700}
#pendbar .pb-s{font-size:14px;color:var(--muted)}
#pendbar .pb .row{display:flex;gap:8px}
#pendbar .pb .row .btn{flex:1}
#pendbar .pb-more{font-size:12px;color:var(--muted);text-align:center}
.rjw{display:flex;gap:8px;margin:6px 0 10px}
.rjw .chip{flex:1;text-align:center}
/* Seite „So entsteht dein Wert“ (Stand 224) */
.fpage{position:fixed;inset:0;z-index:25;background:var(--bg);overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
body.noscroll{overflow:hidden}
.fpage .fph{position:sticky;top:0;z-index:2;background:var(--bg);padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;border-bottom:1px solid var(--line)}
.fpage .fpb{max-width:720px;margin:0 auto;padding:14px 16px calc(32px + env(safe-area-inset-bottom,0px))}
.rkhero{text-align:center;padding:10px 0 6px}
.rkpick{margin:14px 0;padding:14px 16px}.rkpick .players{gap:6px}.rkpick .chip{min-height:36px;padding:7px 13px}
.rkbig{display:inline-grid;place-items:center;width:108px;height:108px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:700 40px var(--display);letter-spacing:.02em;box-shadow:0 8px 24px rgba(31,122,77,.25)}
.rkhero h2{font-family:var(--display);font-size:30px;margin:12px 0 4px;text-transform:uppercase;letter-spacing:.03em}
.rkc{position:relative;margin:14px 0;padding:18px 16px 16px}
.rkc h3{font-family:var(--display);font-size:22px;margin:0 0 8px 40px;line-height:30px;text-transform:uppercase;letter-spacing:.03em}
.rkn{position:absolute;left:16px;top:18px;width:30px;height:30px;border-radius:50%;background:var(--soft);color:var(--accent);display:grid;place-items:center;font:700 17px var(--display)}
.rkteam{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:8px 0}
.rkteam .chip{cursor:default;min-height:34px;padding:6px 12px}
.rkplus,.rkeq{font:700 20px var(--display);color:var(--muted)}
.rkavg{border:2px solid var(--accent);border-radius:999px;padding:5px 12px;font-size:14px}
.rkavg b{font-family:var(--display);font-size:20px;color:var(--accent)}
.rkprob{margin:10px 0}
.rkpl{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:4px}
.rksplit{display:flex;height:30px;border-radius:10px;overflow:hidden}
.rksplit i{display:grid;place-items:center;font:600 14px var(--body);font-style:normal;background:var(--accent);color:var(--accent-ink);transition:width .6s}
.rksplit i.b{background:var(--gold);color:var(--gold-ink)}
.rkrows{display:grid;gap:10px;margin-top:10px}
.rkrow{display:grid;grid-template-columns:62px 1fr;align-items:center;gap:10px}
.rksc{font:700 20px var(--display);letter-spacing:.02em}
.rksc.w{font:600 13px var(--body);color:var(--muted)}
.rkbar{display:flex;align-items:center;gap:8px;min-width:0}
.rkbar i{display:block;height:16px;border-radius:8px;background:var(--accent)}
.rkbar i.hi{background:var(--gold)}
.rkbar b{font:700 18px var(--display);white-space:nowrap}
.rk2{display:grid;gap:3px}.rk2 small{color:var(--muted);font-size:12px}
.rkstep{border-top:1px solid var(--line);padding:10px 0 4px}
.rkmatch{margin:0 0 2px;font-size:15px}.rkmatch .rksc{font-size:17px;margin-left:4px}
.rkvals{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:6px}
.rkvals span{border-radius:10px;padding:6px 10px;font-size:14px;display:flex;justify-content:space-between;background:var(--soft)}
.rkvals span b{font-family:var(--display);font-size:18px}
.rkvals .up b,.rktbl .up{color:var(--accent)}.rkvals .dn b,.rktbl .dn{color:var(--down)}
.rkf{font:600 15px var(--mono);background:var(--soft);border-radius:12px;padding:12px;margin:6px 0 10px;line-height:1.5}
.rkul{margin:0;padding-left:18px;font-size:15px;line-height:1.55}
.rktbl{width:100%;border-collapse:collapse;margin-top:8px;font-size:15px}
.rktbl th{font:600 12px var(--body);color:var(--muted);text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}
.rktbl td{padding:8px 4px;border-bottom:1px solid var(--line);font-family:var(--display);font-size:18px}
.rk2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rk2col>div{background:var(--soft);border-radius:12px;padding:12px}
.rk2col b{font-family:var(--display);font-size:18px;text-transform:uppercase}.rk2col p{margin:6px 0 0;font-size:14px}
@media (max-width:360px){.rk2col{grid-template-columns:1fr}.rkrow{grid-template-columns:54px 1fr}.rktbl th{font-size:10px;letter-spacing:0;padding:6px 2px}.rktbl td{font-size:16px;padding:7px 2px}}
.rktbl{table-layout:fixed}.rktbl th{overflow-wrap:anywhere}
.hist li.mine{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent);background:var(--soft)}
.hist .me{color:var(--accent);font-weight:700}
.mytag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font:600 11px var(--body);vertical-align:1px;background:var(--accent);color:var(--accent-ink)}
.mytag.l{background:var(--down);color:#fff}.mytag.d{background:var(--muted);color:var(--bg)}
.hf{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.hf select{font:500 14px var(--body);height:40px;padding:0 8px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);flex:1 1 140px;min-width:0}
.hf .hfsum{flex:1 0 100%;margin:0}
.dayban.min .dayban-l{white-space:normal;line-height:1.25}.dayban.min .dl-t{overflow:visible;text-overflow:clip}
body.pillon #group .sec-rank{padding-bottom:72px}
.hidplan{margin:0 0 12px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px;background:var(--panel)}
.dppbar{display:flex;gap:8px;align-items:center;margin:0 0 10px;flex-wrap:wrap}
.dppbar input[type=search]{flex:1 1 160px;min-width:0;height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:500 15px var(--body);background:var(--bg);color:var(--fg)}
.dpps{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;flex:none}
.dpps button{border:0;background:var(--panel);color:var(--fg);font:600 13px var(--body);padding:0 12px;height:38px;cursor:pointer}
.dpps button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
/* ---------- Stand 247: Gefühls-Effekte und Podest-Ehrung (FX) ---------- */
#fxc{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:200}
.fxsr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- Grundbausteine der Effekte ---------- */
@keyframes fxpop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.12);opacity:1}100%{transform:scale(1)}}
@keyframes fxfadeup{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes fxdraw{from{stroke-dashoffset:24}to{stroke-dashoffset:0}}
@keyframes fxgrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes fxslidein{from{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:none}}
@keyframes fxglowrow{0%{background:color-mix(in srgb,var(--hi2) 45%,var(--panel))}100%{background:var(--panel)}}
@keyframes fxglowme{0%{background:color-mix(in srgb,var(--hi2) 45%,var(--panel))}100%{background:color-mix(in srgb,var(--accent) 10%,var(--panel))}}
@keyframes fxpress{0%{transform:none}40%{transform:scale(.95)}100%{transform:none}}
@keyframes fxpulse{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.18,1.5);opacity:0}}
@keyframes fxpulsegold{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.06,1.25);opacity:0}}/* Stand 286 (P4): Ring als ::before über transform/opacity */
@keyframes fxtogold{from{border-color:var(--accent);background:var(--panel)}to{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,var(--panel))}}
@keyframes fxtogreen{from{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,var(--panel))}to{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel))}}
@keyframes fxmove{from{transform:translateY(var(--dy))}to{transform:none}}
@keyframes fxtag{0%{opacity:0;transform:translateY(6px)}20%{opacity:1;transform:none}100%{opacity:1}}
@keyframes fxbackdrop{from{background:rgba(0,0,0,0)}to{background:rgba(0,0,0,.55)}}
@keyframes fxpanel{from{transform:translateY(-104%)}to{transform:none}}
@keyframes fxcard{0%{transform:scale(.86) rotate(-2deg);opacity:0}55%{transform:scale(1.03) rotate(.6deg);opacity:1}100%{transform:none;opacity:1}}
@keyframes fxcrown{0%{transform:translate(-50%,-70%) rotate(-14deg);opacity:0}45%{opacity:1}70%{transform:translate(-50%,6%) rotate(4deg)}85%{transform:translate(-50%,-4%) rotate(-2deg)}100%{transform:translate(-50%,0) rotate(0)}}
@keyframes fxshine{from{transform:translateX(-120%) skewX(-18deg)}to{transform:translateX(260%) skewX(-18deg)}}
@keyframes fxring{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.7);opacity:0}}
@keyframes fxsavegreen{0%{background:var(--accent)}100%{background:var(--accent)}}

/* Link-Seite: Platz groß */
.fxplacebox{display:flex;align-items:center;gap:14px}
.fxplace{font:800 64px/0.9 var(--display);color:var(--accent);font-variant-numeric:tabular-nums;display:inline-flex;align-items:baseline;gap:6px}
.fxplace small{font:800 26px var(--display);color:var(--fg)}
.fxplace.fxnr{font:700 22px/1.1 var(--display);color:var(--fg);align-items:baseline;gap:0;flex-wrap:wrap}.fxplace.fxnr b{font:800 64px/0.9 var(--display);color:var(--accent);margin:0 8px;font-variant-numeric:tabular-nums}.evcard.full .fxplace.fxnr b{color:var(--gold-text)} /* Stand 295 (Martin 22:17): „Du bist Nr. 3 von 6“ – große Ziffer */
.fxplacebox p{margin:0;font:600 15px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.evcard.full .fxplace{color:var(--gold-text)}
.fxcheck{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--accent-ink);flex:none;margin-right:8px;vertical-align:-6px}
.evcard.full .fxcheck{background:var(--gold);color:var(--gold-ink)}
.fxcheck svg{width:18px;height:18px;stroke-dasharray:24;stroke-dashoffset:0}
.fxcheck path{stroke-dasharray:24}
.a-check path{animation:fxdraw .45s ease-out .35s both}
.a-pop{animation:fxpop .5s cubic-bezier(.3,1.5,.5,1) both}
.a-fade{animation:fxfadeup .4s ease-out .12s both}
.a-fade2{animation:fxfadeup .4s ease-out .26s both}
.a-grow{transform-origin:left;animation:fxgrow .45s cubic-bezier(.25,1,.5,1) .1s both}
.a-rowin{animation:fxslidein .4s ease-out .15s both,fxglowme 1.6s ease-out .3s both}
.a-press{animation:fxpress .22s ease-out both}
.evcard.full{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,var(--panel))}
.evcard.full .evhead{color:var(--gold-text)}
.fxon .evcard.in{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.fxon .evcard.wait{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 10%,var(--panel))}
.a-togold{animation:fxtogold .6s ease-out both}
.a-togreen{animation:fxtogreen .7s ease-out both}
.fxon .evp.me{background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.evtag{margin-left:auto;font:700 11px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:999px;padding:2px 8px;white-space:nowrap}
.evtag.gold{color:var(--gold-text);background:color-mix(in srgb,var(--gold) 18%,transparent)}
.fxup{display:inline-flex;align-items:center;gap:4px;font:700 12px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-text);background:color-mix(in srgb,var(--gold) 16%,transparent);border-radius:999px;padding:3px 10px;align-self:flex-start}

/* Organisator */
.fxbig{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:6px 0 4px}
.fxbig .fxcheck{width:58px;height:58px;margin:0}
.fxbig .fxcheck svg{width:34px;height:34px}
.fxbig h2{font:800 34px/1 var(--display)!important;letter-spacing:.01em!important;margin:4px 0 0!important}
.a-pulse{position:relative;isolation:isolate}.a-pulse::before{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;background:color-mix(in srgb,var(--accent) 55%,transparent);pointer-events:none;opacity:0;animation:fxpulse 1.2s ease-out .9s 2}
.fxprev{border-radius:12px;overflow:hidden;background:#0d1712;color:#fff;padding:16px 16px 14px;position:relative;border:1px solid var(--line)}
.fxprev small{font:700 11px var(--display);letter-spacing:.2em;color:#30d158;display:block}
.fxprev b{display:block;font:800 34px/0.95 var(--display);text-transform:uppercase}
.fxprev b em{font-style:normal;color:#ffd60a}
.fxprev span{display:block;font-size:12px;color:rgba(232,239,233,.7);margin-top:6px}
.fxprev i{display:inline-block;margin-top:12px;background:#30d158;color:#06140c;font:800 13px var(--display);letter-spacing:.08em;padding:5px 10px;border-radius:6px;font-style:normal}
#rpnote small{display:block;color:var(--muted);margin-top:2px}
#rpnote .go{font-size:20px;color:var(--fg)}
#rpnote .new{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:14px;color:var(--fg)}
#rpnote .new b.plus{display:inline-grid;place-items:center;min-width:34px;height:26px;padding:0 8px;border-radius:999px;background:var(--gold);color:var(--gold-ink);font:800 17px var(--display)}
#rpnote.full{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 13%,var(--panel))}
#rpnote.full .t1{font:800 24px/1.05 var(--display);text-transform:uppercase;color:var(--gold-text);display:block}
#rpnote .bar8{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin-top:8px}
#rpnote .bar8 i{height:6px;border-radius:3px;background:color-mix(in srgb,var(--accent) 16%,transparent)}
#rpnote .bar8 i.on{background:var(--accent)}
#rpnote.full .bar8 i.on{background:var(--gold)}
.a-gpulse{position:relative;isolation:isolate}.a-gpulse::before{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;background:color-mix(in srgb,var(--gold) 60%,transparent);pointer-events:none;opacity:0;animation:fxpulsegold 1.2s ease-out .3s 2}

/* Ergebnis gespeichert */
.btn.saved,.btn.saved:disabled{opacity:1;filter:none;background:var(--accent);border-color:var(--accent);display:flex;align-items:center;justify-content:center;gap:8px}
.btn.saved svg{width:16px;height:16px}
.fxrank{display:grid;gap:0;position:relative}
.fxrank .rk{background:var(--panel);align-items:center;padding:8px 6px;border-radius:8px;position:relative}
.fxrank .rk .t{display:flex;align-items:center;gap:6px;min-width:0;font-weight:500}
.fxrank .rk.me .t{font-weight:700;color:var(--accent)}
.fxrank .rk:nth-child(1) .n{color:#e8a400}.fxrank .rk:nth-child(2) .n{color:#9aa6b2}.fxrank .rk:nth-child(3) .n{color:#c27a3a}
.fxrank .rk .v{font-variant-numeric:tabular-nums;min-width:2ch;text-align:right}
.fxrank .rk .mv{font:700 12px var(--body);border-radius:999px;padding:1px 7px;white-space:nowrap}
.fxrank .rk .mv.up{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}
.fxrank .rk .mv.dn{color:var(--down-text);background:color-mix(in srgb,var(--down) 12%,transparent)}
.a-move{animation:fxmove .7s cubic-bezier(.3,1.25,.5,1) both}
.a-move.d1{animation-delay:.05s}.a-move.d2{animation-delay:.1s}
.a-tag{animation:fxtag .5s ease-out .55s both}
.a-flash{animation:fxglowrow 1.6s ease-out .4s both}
.a-flashme{animation:fxglowme 1.6s ease-out .4s both}
.fxwin{border:1.5px solid var(--accent);background:linear-gradient(135deg,color-mix(in srgb,var(--win) 16%,var(--panel)),var(--panel));border-radius:12px;padding:12px 12px 12px 14px;display:flex;gap:12px;align-items:flex-start}
.fxwin .w1{display:flex;align-items:baseline;gap:10px}
.fxwin .w1 b{font:800 38px/0.95 var(--display);text-transform:uppercase;color:var(--accent)}
.fxwin .w1 span{font:800 30px/1 var(--display);color:var(--fg);font-variant-numeric:tabular-nums}
.fxwin p{margin:6px 0 0;font-size:14px;color:var(--fg);line-height:1.4}
.fxwin.mini{padding:4px 4px 4px 12px;align-items:center;gap:4px}.fxwin.mini>div{display:flex;flex-wrap:nowrap;align-items:baseline;gap:4px 10px;flex:1;min-width:0;overflow:hidden}.fxwin.mini .icon svg{width:18px;height:18px}.fxwin.mini .w1 b{font-size:22px}.fxwin.mini .w1 span{font-size:19px}.fxwin.mini .chips{margin:0}.fxwin.mini .hvwsh{margin:0}.fxwin.mini .icon{min-width:44px;min-height:44px}/* Stand 287 (flag-alle 1): im laufenden Spiel eine schmale Zeile */
.fxwin .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.fxwin .chips span{font:700 13px var(--body);border-radius:999px;padding:3px 10px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.fxwin .chips span.g{background:color-mix(in srgb,var(--gold) 18%,transparent);color:var(--gold-text)}
.fxwin .icon{width:32px;height:32px;font-size:13px;flex:none;margin-left:auto}

/* ---------- Podest-Ehrung ---------- */
.sheet.fxhon{place-items:start center}
.a-backdrop{animation:fxbackdrop .3s ease-out both}
.a-panel{animation:fxpanel .42s cubic-bezier(.2,1.1,.4,1) .05s both}
.fxhon .panel{padding:14px 14px 14px}
.fxhon h2.hh{font:800 30px/1 var(--display)!important;letter-spacing:.01em!important;text-transform:uppercase;margin:14px 0 4px!important;text-align:center}
.fxhon p.big{text-align:center;margin:0 0 4px!important}
.fxhon .only{display:flex;justify-content:center;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);margin:6px 0 0;text-align:center}
.fxhon .only svg{flex:none}
.hcw{container-type:inline-size;width:100%;position:relative}
/* Stand 280: Ehrungsbilder-Varianten – Bühne mit Standbild und Ebenen (nur vorhandene Effekte) */
.hvst{position:relative;width:100%;overflow:hidden;border-radius:4.5cqw;container-type:inline-size;margin:0 auto;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.hvst>.hvimg{display:block;width:100%;height:auto}
.hvst>.hvl{position:absolute;display:block;height:auto;pointer-events:none}
.hvst>.hvsvg{left:0;top:0;width:100%;height:100%;overflow:visible}
.hvst>.hvring{border-radius:50%;border:.55cqw solid;box-sizing:border-box;opacity:0}
.hvst>.hc-shine{top:-10%;bottom:-10%}
.hvsheet .hvwrap{max-width:min(100%,calc((min(82dvh, var(--vvh, 100dvh) - 12px) - 270px) * .8));margin:0 auto}
.fxwin .hvwsh{margin:6px 0 0}.fxwin .hvwsh .linkbtn{display:inline-flex;align-items:center;gap:6px}
.a-card{animation:fxcard .7s cubic-bezier(.25,1.2,.45,1) .25s both}
.hc{position:relative;width:100%;aspect-ratio:1;border-radius:3.6cqw;overflow:hidden;color:#fff;font-family:var(--body);
  --m1:#ffe27a;--m2:#e8a400;--mhi:#ffd60a;--glow:rgba(255,214,10,.30)}
.hc.p2{--m1:#f4f7fa;--m2:#9aa6b2;--mhi:#e6ecf2;--glow:rgba(205,220,235,.24)}
.hc.p3{--m1:#f3c08a;--m2:#c27a3a;--mhi:#f3c08a;--glow:rgba(226,140,70,.26)}
.hc-bg{position:absolute;inset:0;background:
  radial-gradient(48cqw 40cqw at 50% 40%,var(--glow),transparent 70%),
  radial-gradient(60cqw 50cqw at 8% 0%,rgba(48,209,88,.22),transparent 70%),
  radial-gradient(55cqw 45cqw at 100% 100%,rgba(10,132,255,.13),transparent 70%),
  linear-gradient(135deg,#07110c,#0d2318 55%,#061009)}
.hc-court{position:absolute;inset:auto 0 0 0;height:100%;opacity:.07}
.hc-fleck{position:absolute;border-radius:.3cqw}
.hc-in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;padding:6cqw 6.5cqw 5.4cqw}
.hc-top{width:100%;display:flex;justify-content:space-between;align-items:baseline}
.hc-brand{font:700 3cqw var(--display);letter-spacing:.32em;color:#30d158}
.hc-date{font:500 2.7cqw var(--body);color:rgba(232,239,233,.62)}
.hc-grp{width:100%;font:800 5.6cqw/1 var(--display);text-transform:uppercase;letter-spacing:.01em;margin-top:1.4cqw;color:#fff}
.hc-emb{position:relative;isolation:isolate;margin-top:12.5cqw;width:27cqw;height:27cqw}
.hc-av{position:absolute;inset:0;border-radius:50%;padding:1.2cqw;background:linear-gradient(135deg,var(--m1),var(--m2));box-shadow:0 0 6cqw var(--glow)}
.hc-av span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 50% 35%,#173526,#0c1f15);font:400 13.5cqw/1 "Noto Color Emoji",var(--body)}
.hc-av span.ini{font:800 14cqw/1 var(--display);color:#fff}
.hc-badge{position:absolute;right:-.6cqw;bottom:-.6cqw;width:9cqw;height:9cqw;border-radius:50%;background:linear-gradient(135deg,var(--m1),var(--m2));color:#1a1200;display:grid;place-items:center;font:800 5.6cqw/1 var(--display);box-shadow:0 0 0 1cqw #0c1f15}
.hc-crown{position:absolute;left:50%;top:-11.6cqw;width:19.5cqw;transform:translate(-50%,0);filter:drop-shadow(0 1cqw 1.4cqw rgba(0,0,0,.45))}
.a-crown{animation:fxcrown .8s cubic-bezier(.3,1,.5,1) .55s both}
.hc-rib{position:absolute;left:50%;top:-10.5cqw;width:19cqw;transform:translateX(-50%);z-index:-1}
.hc-rank{margin-top:3.6cqw;font:800 4.4cqw/1 var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--mhi)}
.hc-name{margin-top:1cqw;font:800 13.5cqw/0.92 var(--display);text-transform:uppercase;letter-spacing:.005em;color:#fff;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-stats{display:flex;gap:2cqw;margin-top:2.6cqw}
.hc-stats span{background:rgba(255,255,255,.09);border:.25cqw solid rgba(255,255,255,.10);border-radius:999px;padding:1.1cqw 3cqw;font:600 3.5cqw/1 var(--display);letter-spacing:.07em;text-transform:uppercase;color:rgba(232,239,233,.75);white-space:nowrap}
.hc-stats span b{font-weight:800;color:#fff}
.hc-with{margin-top:2cqw;max-width:100%;font:600 2.9cqw/1.15 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--mhi);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} /* Stand 260 (GEWOLLT 256): geteilter Platz */
.hc-foot{margin-top:auto;width:100%;display:flex;justify-content:space-between;font:500 2.45cqw var(--body);color:rgba(232,239,233,.66)} /* Stand 247: Kontrast ≥ 4,5:1 (Entwurf .48 ≈ 4,3:1) */
.hc-shine{position:absolute;inset:-10% auto -10% 0;width:30%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);transform:translateX(-120%) skewX(-18deg)}
.a-shine{animation:fxshine 1.1s ease-in-out 1.05s both}
.hc-ringfx{position:absolute;inset:0;border-radius:50%;border:.8cqw solid var(--m1);opacity:0}
.a-ring{animation:fxring 1s ease-out .9s both}
.a-t1{animation:fxfadeup .45s ease-out .6s both}
.a-t2{animation:fxfadeup .45s ease-out .75s both}
.a-t3{animation:fxfadeup .45s ease-out .9s both}

/* Spieler außerhalb des Podests: dezente Zeile */
.fxday{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:10px 12px;font-size:14px}
.fxday .pod{display:flex;gap:2px;font-size:20px;flex:none}
.fxday b{font-weight:600}
.fxday small{display:block;color:var(--muted);font-size:13px;margin-top:1px}
.fxday .icon{width:32px;height:32px;font-size:13px;margin-left:auto;flex:none}
.rcrown{font-size:.95em;margin-left:4px}
#fxtop:empty{display:none}#fxhome:empty,#fxhome[hidden]{display:none}#fxhome{margin:0 0 12px}#fxhome>*+*{margin-top:8px}.fxwin .fxwg{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:0 0 3px} /* Stand 257 (V77): Ehrung auf der Startseite */#fxtop{margin:0 0 12px}#fxtop>*+*{margin-top:8px}
.fxday .lk{display:inline;padding:0;min-height:0;font-size:13px}
.fxtoday .ph{display:flex;justify-content:space-between;align-items:baseline}

/* Geburtstag */
.fxbday{text-align:center}
.fxbday .cake{font:400 64px/1 "Noto Color Emoji",var(--body);display:block;margin:8px auto 4px}
.fxbday h2{font:800 34px/1 var(--display)!important;text-transform:uppercase;margin:6px 0 6px!important}

/* Bewegung reduzieren / statisch */
.fxstill,.fxstill *{animation:none!important;transition:none!important}
.hc.flat{border-radius:0}

@keyframes fxsavepop{0%{transform:scale(.97)}50%{transform:scale(1.02)}100%{transform:none}}
.a-savepop{animation:fxsavepop .4s cubic-bezier(.3,1.4,.5,1) both}
/* Bewegung reduzieren: nur Farbe und Text (Stand 247) */
@media (prefers-reduced-motion:reduce){.hvst .hvl,.hvst .hvl *,.a-pop,.a-fade,.a-fade2,.a-check path,.a-grow,.a-rowin,.a-press,.a-togold,.a-togreen,.a-pulse,.a-gpulse,.a-pulse::before,.a-gpulse::before,.a-move,.a-tag,.a-flash,.a-flashme,.a-backdrop,.a-panel,.a-card,.a-crown,.a-shine,.a-ring,.a-t1,.a-t2,.a-t3,.a-savepop{animation:none!important}#fxc{display:none}}

/* Stand 251: Meldung am Feld (Punkt 15b), Auge am Passwort (Punkt 5), Fokus-Rahmen innen (Punkt 4), Abschied nach dem Logout (Punkt 13), Namen in der Termin-Karte (Punkt 18) */
.acf input:focus,#acdf input:focus,.sheet input:focus{outline:none;border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.acf input.bad,.acf input.bad:focus{border-color:var(--down);box-shadow:inset 0 0 0 1px var(--down)}
.ferr{margin:-4px 0 2px;font-size:14px;line-height:1.4;color:var(--down);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.ferr[hidden]{display:none}
.ferr .linkbtn{font-size:14px;font-weight:700;color:var(--accent);padding:0}
.pwwrap{position:relative;display:block}
.pwwrap input{padding-right:50px!important}
.pweye{position:absolute;top:50%;right:2px;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:8px;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;padding:0}
.pweye:hover{color:var(--fg)}
.pweye[aria-pressed="true"]{color:var(--accent)}
.mailsent{text-align:center}
/* Stand 308 (Martin 15:39): kleine Karte „Deine Datenschutzbestimmungen wurden aktualisiert.“ */
.ablcard{position:fixed;z-index:30;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));max-width:520px;margin:0 auto;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--panel);color:var(--fg);box-shadow:0 10px 30px -12px rgba(0,0,0,.45)}.ablcard p{margin:0 0 10px;font-size:14px;line-height:1.4}.ablcard a{color:var(--accent)}.ablcard .row{justify-content:flex-end;gap:8px}
.mailsent .ms-ic{width:56px;height:56px;margin:4px auto 8px;border-radius:50%;background:var(--soft);color:var(--accent);display:grid;place-items:center}
.mailsent .ms-ic svg{width:30px;height:30px}
.acskip{margin:0 0 10px}
.byepage{position:fixed;inset:0;z-index:90;background:var(--bg);display:grid;place-items:center;padding:24px 16px calc(24px + env(safe-area-inset-bottom,0px))}
.bye-in{width:100%;max-width:380px;text-align:center;display:grid;gap:12px;justify-items:center}
.bye-in h1{margin:4px 0 0;font:800 clamp(26px,7vw,34px)/1.15 var(--display);color:var(--fg)}
.bye-in p{margin:0 0 10px;color:var(--muted)}
.bye-in .linkbtn{margin-top:2px}
.bye-ck{stroke-dasharray:40;stroke-dashoffset:40;animation:byeck .7s .15s ease-out forwards}
@keyframes byeck{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.bye-ck{animation:none;stroke-dashoffset:0}}
body.byeon{overflow:hidden}
.evnames{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;padding:6px 0 2px;border:0;background:transparent;color:var(--fg);font:500 14px/1.35 var(--body);text-align:left;cursor:pointer}
.evavs{display:inline-flex}
.evav{width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:inline-grid;place-items:center;font:800 12px var(--display);font-style:normal;border:2px solid var(--panel);margin-left:-6px}
.evav:first-child{margin-left:0}.evav.evav1{margin-left:0;flex:none;width:26px;height:26px;border-color:transparent}#rpnote .evnames{padding:8px 0 0;font-size:14px}.fxwinme{display:flex;align-items:baseline;gap:8px;margin:0 0 8px;padding:8px 12px;border-radius:10px;background:color-mix(in srgb,var(--gold) 16%,var(--panel));border:1.5px solid var(--gold)}.fxwinme b{font:800 22px/1 var(--display);text-transform:uppercase;color:var(--gold-text)}.fxwinme span{font:700 18px var(--display)}body:has(.sheet) .toast{top:auto;bottom:calc(16px + env(safe-area-inset-bottom,0px))}#rpnote .evwl{color:var(--muted)}
.evav.emo{background:var(--soft);font-size:13px}
.evnl{min-width:0;overflow-wrap:anywhere}
.evnl b{color:var(--muted);font-weight:700}
.evwl{flex-basis:100%;font-size:13px;color:var(--muted)}
/* Stand 271 (GEWOLLT 351–360): Rückgängig im Hinweis, Datenschutz eingeklappt ganz unten im Profil, Häkchen beim Konto, Fußzeile Startseite */
.toast.act{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:4px 10px;flex-wrap:wrap}.toast .tundo{background:none;border:0;color:inherit;font:700 15px var(--body);text-decoration:underline;padding:6px 2px;min-height:36px;cursor:pointer}
.pmenu.ppriv{margin-top:18px}.pmenu details.pi.pdet{display:block;padding:0;cursor:default}.pmenu details.pdet summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;min-height:44px;cursor:pointer;list-style:none;color:var(--fg)}.pmenu details.pdet summary::-webkit-details-marker{display:none}
.pmenu details.pdet .pchev{color:var(--muted);transition:transform .15s}.pmenu details.pdet[open] .pchev{transform:rotate(90deg)}.pmenu details.pdet .pdtx{padding:0 14px 12px}
.pdtx .plinks{display:flex;flex-direction:column;gap:2px;margin-top:10px}.pdtx .plinks a{display:flex;align-items:center;min-height:40px;color:var(--accent);font:600 14px var(--body);text-decoration:none}
.acpriv{display:flex;align-items:flex-start;gap:10px;margin:12px 0 0;font-size:15px;line-height:1.4;cursor:pointer}.acpriv input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:var(--accent)}.acpriv a{color:var(--accent);font-weight:600}.acprivh{margin:4px 0 0 32px}
.evline .evorg{flex-basis:100%;border-top:1px dashed var(--line);padding-top:4px;margin-top:2px}.evline .evorg .plandanger{margin-top:0;justify-content:flex-end}.evline .evorg .linkbtn{font-size:13px;min-height:40px;padding:8px 0}
/* Stand 290 (Martin 10.11. 11:40, Variante K11, Vorlage scratchpad/dkarte/karte.html): ein ruhiger Knopf „Absagen oder beenden …“ statt drei roter Links, dazu das Fenster mit den Möglichkeiten und Datumskästchen */
.evorg .dkv1{padding:8px 0 4px}
.evorg .dkv1 .btn{width:100%;min-height:46px;font-size:15px;font-weight:500;color:var(--muted);justify-content:center}
.dk-sh h2{margin-bottom:4px}
.dk-sh .dk-ctx{margin:0 0 12px;color:var(--muted);font-size:15px}
.dk-opts{display:grid;gap:10px}
.dk-opt{display:grid;grid-template-columns:26px 1fr;gap:2px 12px;align-items:start;text-align:left;padding:12px;border:1.5px solid var(--line);border-radius:12px;background:var(--panel);color:var(--fg);font:inherit;cursor:pointer;transition:border-color .2s,background-color .2s,box-shadow .25s;-webkit-tap-highlight-color:transparent}
.dk-opt .dk-rad{grid-row:1/span 3;width:22px;height:22px;border-radius:50%;border:2px solid var(--muted);margin-top:1px;display:grid;place-items:center;box-sizing:border-box;transition:border-color .2s}
.dk-opt .dk-rad::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--down);transform:scale(0);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.dk-opt b{font-weight:600;font-size:16px;line-height:1.3}
.dk-opt .dk-d{color:var(--muted);font-size:14px;line-height:1.4}
.dk-opt[aria-checked="true"]{border-color:var(--down);background-color:color-mix(in srgb,var(--down) 7%,var(--panel));box-shadow:0 0 0 1px var(--down) inset}
.dk-opt[aria-checked="true"] .dk-rad{border-color:var(--down)}
.dk-opt[aria-checked="true"] .dk-rad::after{transform:scale(1)}
.dk-tl{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px;grid-column:2}
.dk-tl i{display:inline-block;line-height:1.3;font:500 12px/1.3 var(--mono,ui-monospace,monospace);font-style:normal;padding:3px 7px;border-radius:6px;background:var(--soft);color:var(--fg);border:1px solid var(--line)}
.dk-tl i.x{text-decoration:line-through;text-decoration-thickness:2px;color:var(--down-text);background:color-mix(in srgb,var(--down) 10%,var(--panel));border-color:color-mix(in srgb,var(--down) 40%,var(--line))}
.dk-tl i.no{opacity:.4;border-style:dashed;background:transparent}
.dk-cons{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:var(--soft);font-size:14px;color:var(--fg)}
.dk-cons:empty{display:none}
.dk-sh .row.foot .btn.danger:disabled{background:var(--soft);border-color:var(--line);color:var(--muted);opacity:1}
@media (prefers-reduced-motion: reduce){.dk-opt,.dk-opt .dk-rad,.dk-opt .dk-rad::after{transition:none}}
.evoff{margin:0 0 10px}
.legalfoot{margin:4px 0 0;text-align:center;font-size:13px;color:var(--muted)}.legalfoot a{color:var(--muted);display:inline-block;padding:10px 4px;min-height:40px}
@media (prefers-reduced-motion:reduce){.pmenu details.pdet .pchev{transition:none}}
/* Stand 277 (TODO 66 Paket 1): „Spiel starten“ – normaler Knopf, eigene Seite ohne Gruppe (Startseite ausgeblendet), Zeile „Spielart: … · Spielart ändern“ */
#ssgo{margin:0 0 14px}body.sspg #startlists,body.sspg #playbox,body.sspg #showbox,body.sspg #rulesbox,body.sspg #legalfoot{display:none!important}
.ssfmt{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 0}.ssfmt p{margin:0;font-size:16px;min-width:0}.ssfmt .btn{flex:none}
/* Stand 329 (Martin 15.11. 10:55, Schalter startLayout): „Spiel starten“ – Sportleiste und Spielform-Karten (kleiner als im Entwurf, Motive ganz sichtbar) */
:root{--sn-rot:#1f7a4d;--sn-rot-ink:#ffffff} /* Rotación-Grün fest – die Farbwelt der Spielform färbt --accent um */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--sn-rot:#3fae77;--sn-rot-ink:#0b1510}}
:root[data-theme="dark"]{--sn-rot:#3fae77;--sn-rot-ink:#0b1510}
.snbox{margin:4px 0 12px}
.snspc{display:flex;gap:4px;padding:3px;margin:0 0 12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 92%,var(--fg));height:46px;box-sizing:border-box}
.snsp{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:4px;border-radius:9px;padding:0 2px;color:var(--muted);opacity:.7;cursor:default;user-select:none}
.snsp .art{width:18px;height:18px;flex:none;filter:var(--sp-dim)}
.snsp .t{display:flex;flex-direction:column;align-items:flex-start;min-width:0;line-height:1}
.snsp .nm{font:600 11px/1 var(--display);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}
.snsp small{font:500 9.5px/1.1 var(--body);color:var(--muted);opacity:.85;margin-top:2px}
.snsp.on{opacity:1;background:var(--panel);color:var(--fg);box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 2px 6px -2px rgba(0,0,0,.25),0 0 0 1px var(--line)}
.snsp.on .art{filter:none;width:24px;height:24px}
.snsp.on .nm{font-size:13.5px;letter-spacing:.04em}
.snlbl{font:600 13px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 7px}
.sngrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.sngrid.sn3{grid-template-columns:repeat(3,minmax(0,1fr))}
.snk{--c:var(--cls);--ci:var(--cls-ink);-webkit-appearance:none;appearance:none;position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-start;min-width:0;min-height:64px;margin:0;padding:8px 7px;border-radius:12px;text-align:left;color:var(--ci);border:1px solid color-mix(in srgb,var(--c) 72%,#fff);
 background:radial-gradient(130% 90% at 0% 0%,rgba(255,255,255,.34),transparent 55%),linear-gradient(160deg,color-mix(in srgb,var(--c) 80%,#fff),var(--c) 46%,color-mix(in srgb,var(--c) 72%,#000));
 box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 -2px 0 rgba(0,0,0,.16) inset,0 4px 10px -6px rgba(0,0,0,.45);font:inherit;cursor:pointer;filter:saturate(.6);opacity:.62;transition:filter .2s,opacity .2s,transform .2s,box-shadow .2s}
.snk[data-snf=rotacion]{--c:var(--sn-rot);--ci:var(--sn-rot-ink)}.snk[data-snf=americano]{--c:var(--purple);--ci:var(--purple-ink)}.snk[data-snf=mexicano]{--c:var(--mex);--ci:var(--mex-ink)}
.snk b{position:relative;z-index:2;font:700 13.5px/0.95 var(--display);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}
.snk .fm{position:absolute;z-index:1;right:3px;bottom:3px;width:38px;height:38px;opacity:.95;transform:rotate(-8deg)}
.snk.on{filter:none;opacity:1;transform:translateY(-2px);box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--c),0 12px 22px -12px color-mix(in srgb,var(--c) 80%,transparent),0 1px 0 rgba(255,255,255,.5) inset}
.snk:focus-visible{outline:2px solid var(--c);outline-offset:3px}
.snk .ok{position:absolute;z-index:3;left:7px;bottom:7px;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.95);color:var(--c);font:700 10px/1 var(--body);box-shadow:0 2px 6px -1px rgba(0,0,0,.35)}
@media (prefers-reduced-motion:reduce){.snk{transition:none}.snk.on{transform:none}}
.ssnames{margin:10px 0 0;color:var(--muted);font-size:15px;line-height:1.4}.ssnames .linkbtn{font-size:15px;min-height:0;padding:0}
.ssacts{display:grid;gap:10px;margin-top:16px}.ssplan{margin:14px 0 0;font-size:15px;color:var(--muted);line-height:1.5}.ssplan .linkbtn{display:inline;font-size:15px;min-height:0;padding:0;text-align:left}
.ssfmts{display:grid;gap:6px}.ssfmts .btn{margin-top:6px}.ssfmts p.hint{margin:0 0 6px}.ssor{text-align:center;margin:10px 0}.ssdup{margin:10px 0 0;font-size:15px;line-height:1.4}.ssfmts p.hint.ssfew{color:var(--down)}.glist a .ssrun{display:flex;align-items:center;gap:6px}
/* Stand 278 (Teil B) */
.hnkeep{margin:0 0 8px!important;padding:8px 10px;border-radius:10px;border:1px solid color-mix(in srgb,var(--gold) 60%,var(--line));background:color-mix(in srgb,var(--gold) 12%,var(--panel));color:var(--fg);line-height:1.4}
.fxall{display:none;margin:6px 0 0}body.focus .fxall{display:block}
/* p7 F1/F12: Medaillen-Farben nach Platz (Gleichstand = gleiche Farbe), lesbare Töne für Text */
:root{--silver-text:#5f6b78;--bronze-text:#9a5a22}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--silver-text:#b4bec8;--bronze-text:#dd9a62}}
:root[data-theme="dark"]{--silver-text:#b4bec8;--bronze-text:#dd9a62}
.fxrank .rk:nth-child(n) .n{color:var(--muted)}.fxrank .rk.p1:nth-child(n) .n{color:var(--gold-text)}.fxrank .rk.p2:nth-child(n) .n{color:var(--silver-text)}.fxrank .rk.p3:nth-child(n) .n{color:var(--bronze-text)}
tr.top td:first-child{color:var(--gold-text)}
/* p7 F11/F13/F14: Kontraste */
.gov a .tr-l small.warn,#gov a .tr-l small.warn{color:var(--gold-text)}
.fd.W,.fd.L{color:#0b1a10;text-shadow:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mytag.l,:root:not([data-theme="light"]) #savebox .svi{color:var(--accent-ink)}}
:root[data-theme="dark"] .mytag.l,:root[data-theme="dark"] #savebox .svi{color:var(--accent-ink)}
.scg.ext .scgh{color:color-mix(in srgb,var(--hi) 45%,var(--fg))}
/* p7 F7: unsichtbare Knöpfe nicht im Tab-Weg */
#totop:not(.on),#mepill:not(.on){visibility:hidden;transition:opacity .2s ease,transform .25s ease,visibility 0s linear .3s}
/* p7 F9: Fokusrahmen ≥ 3:1 im hellen und dunklen Modus, auch für Links, Auswahl, Textfelder */
button:focus-visible,input:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{outline:2px solid var(--gold-text);outline-offset:2px}
.sheet .panel:focus{outline:none}
/* p7 F8: 44-px-Tippflächen, „Beenden“ mit Abstand zu „+ Spieler“ */
.btn.sm,#savebox .btn.sm,.dayban.min .btn.sm{min-height:44px}
.dayban.min .dayban-a{gap:14px}
.stt th button{min-height:44px}
/* p7 F2: 320 px – Spieltag-Kopf bricht um, statt über „+ Spieler“ zu laufen */
.dayban.min .dayban-l{flex:1 1 auto}
@media (max-width:359px){.dayban.min{flex-wrap:wrap}.dayban.min .dayban-l{flex:1 1 100%}.dayban.min .dayban-a{width:100%;justify-content:space-between}}
/* p7 F3: Reiter bei 320 px alle sichtbar */
@media (max-width:359px){.nav{gap:1px;padding:3px}.nav button:not(.navicon),.nav:has(> button:nth-of-type(5)) button:not(.navicon){font-size:11px;letter-spacing:0;padding:10px 1px}.nav .navicon{padding:10px 7px}}
/* p7 F4/F5/F23: breite Tabellen und Reiter – Hinweis am rechten Rand, dass es weitergeht */
.sx-more{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
@media (max-width:360px){#rank th,#rank td{padding-left:3px;padding-right:3px}#rank th{white-space:normal;letter-spacing:.02em}#rank td:nth-child(2){overflow-wrap:anywhere}.stt th,.stt td{padding-left:3px;padding-right:3px}.stt th{letter-spacing:.02em;overflow-wrap:anywhere}.stt td:first-child,.stt th:first-child{max-width:7em;overflow-wrap:anywhere}}
/* p7 F16: Skala „Wert“ nicht am Kartenrand */
.postrack{margin-bottom:14px}
/* p7 F17: Gruppenname nicht mitten im Wort brechen */
.glist .pcard .pc-top{flex-wrap:wrap;row-gap:2px}.glist .pcard .pc-top b{flex:1 1 12em;overflow-wrap:break-word;word-break:normal}
/* p7 F18: lange Namen im Profil- und Statistik-Kopf umbrechen statt „…“ */
.pickbtn .pk-l b{white-space:normal;overflow-wrap:anywhere;font-size:clamp(20px,7vw,28px)}
/* p7 F10: Ladezustand Gruppe */
.gload{text-align:center;padding:40px 16px;margin:0}
/* Stand 278 Ende */
/* Stand 278c: Ranking – Namen nie mitten im Wort brechen; ein Wort, das nicht passt, endet mit „…“ (voller Name in der Karte) */
#rank td:nth-child(2){overflow-wrap:normal;word-break:normal}
#rank .rnw{display:inline-block;max-width:15em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
@media (max-width:420px){#rank .rnw{max-width:calc(100vw - 214px)}}
/* Stand 278c (Schalter courtNos): Platznummern als Chips 1–20, die Zahl der Reihenfolge klein oben rechts */
.scores.cnos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;flex-wrap:wrap}
.scores.cnos button{position:relative;min-height:44px;padding:8px 4px;min-width:0}
.scores.cnos .cno-i{position:absolute;top:2px;right:4px;font-size:10px;line-height:1;font-weight:700;color:var(--accent)}
.cnosh.bad{color:var(--down-text);font-weight:600}
.note.nextg{margin:0 0 12px;border-left:4px solid var(--accent);font-size:16.5px;line-height:1.35;padding:10px 12px;color:var(--fg);background:color-mix(in srgb,var(--accent) 10%,var(--panel));border-radius:8px}
.nextg b{overflow-wrap:anywhere}
.note.nextg.wait{border-left-color:var(--gold);background:color-mix(in srgb,var(--gold) 10%,var(--panel))} /* Stand 279: eigenes Spiel gespeichert, wartet auf Bestätigung */
.cnoh{font-size:15px;font-weight:600;white-space:nowrap}
/* Stand 278c Ende */
/* Stand 283 (Nachttest Barrierefreiheit 7): Antippfläche mindestens 44 px – unsichtbar, das Aussehen bleibt gleich */
.scores button{position:relative}.scores button:not(.wait)::after{content:"";position:absolute;left:0;right:0;top:-3px;bottom:-3px}
#mebtn{position:relative}#mebtn::after{content:"";position:absolute;left:-4px;right:-4px;top:-8px;bottom:-13px}
#savebox .svok{position:relative}#savebox .svok::after{content:"";position:absolute;left:-6px;right:-6px;top:-12px;bottom:-12px}
#savebox .btn.wa{position:relative}#savebox .btn.wa:not(.wait)::after,.invr .btn.wa:not(.wait)::after{content:"";position:absolute;left:-3px;right:-3px;top:-2px;bottom:-2px}.invr .btn.wa{position:relative}
/* Stand 283 (Nachttest Barrierefreiheit 8): Kontrast im hellen Modus mindestens 4,5:1 – dasselbe Grün, nur etwas dunkler auf hellgrünem Grund */
@media not all and (prefers-color-scheme:dark){:root:not([data-theme="dark"]) .btn.ghost.findbtn,:root:not([data-theme="dark"]) .glist .pcard .pc-fmt:not(.cls):not(.mex):not(.ame){color:#1b6e45}:root:not([data-theme="dark"]) #playpick .playgrid .btn.mex small{opacity:1}}
:root[data-theme="light"] .btn.ghost.findbtn,:root[data-theme="light"] .glist .pcard .pc-fmt:not(.cls):not(.mex):not(.ame){color:#1b6e45}:root[data-theme="light"] #playpick .playgrid .btn.mex small{opacity:1}
/* Stand 283 (Nachttest Barrierefreiheit 6, A5): 200 % Zoom (≈195 px Breite) – nichts ragt seitlich heraus, Knöpfe stehen untereinander, Namen brechen um statt abgeschnitten zu werden. Ab 300 px bleibt alles wie bisher. */
@media (max-width:300px){.pc-qb{flex-direction:column}.pc-qb .btn{flex:none;width:100%;white-space:normal}.glist .pcard .pc-top b{flex-basis:auto;overflow-wrap:anywhere}.glist .pcard,.glist .pcard>a{min-width:0}
.hn-l{flex-wrap:wrap}.hn-l>span{flex:1 1 100%;overflow-wrap:anywhere}.glist .pcard>a{grid-template-columns:minmax(0,1fr)}.glist .pcard .pc-bar{display:flex;flex-wrap:wrap;row-gap:3px}.glist .pcard .pc-top b{display:block}.dayban.min .dayban-a{flex-wrap:wrap;gap:8px}#dayend{max-width:100%;white-space:normal}.hn-l .btn{flex:1 1 100%;white-space:normal}
.phead{flex-wrap:wrap}.phead>div{min-width:0;flex:1 1 0;overflow-wrap:anywhere}.pname b{white-space:normal;overflow-wrap:anywhere}.pmenu{grid-template-columns:minmax(0,1fr)}.pmenu .pi>span{min-width:0;overflow-wrap:anywhere}}
/* DKC-284-START Stand 284 (Schalter darkCalm, Martin 09.11. 19:40/20:14): ruhiger Dunkelmodus – Hintergrund schwarz/graphit, Kästen, Karten und Rahmen graphit ohne Grünstich,
   Grün nur noch für Knöpfe und Aktives. Gilt nur im Dunkelmodus und nur mit Klasse dkc an <html> (Schalter an bzw. immer im Administrationsbereich). Hellmodus unverändert. Vorlage work/dark-neu2.css. */
@media (prefers-color-scheme:dark){
:root.dkc:not([data-theme="light"]){--bg:#111315;--panel:#1b1e21;--soft:#262a2e;--line:#363b40;--fg:#eceff1;--muted:#a3abb2;--track:#30353a;--sel:#e6eaed}
:root.dkc:not([data-theme="light"]) .btn.danger{background:#b8452f;border-color:#b8452f;color:#fff}
:root.dkc:not([data-theme="light"]) .toast.error{background:#b8452f;color:#fff}
:root.dkc:not([data-theme="light"]) .team.lost{opacity:1}
:root.dkc:not([data-theme="light"]) .team.lost,:root.dkc:not([data-theme="light"]) .team.lost b,:root.dkc:not([data-theme="light"]) .team.lost .chip,:root.dkc:not([data-theme="light"]) .team.lost span{color:var(--muted)}
:root.dkc:not([data-theme="light"]) .stt tr.prov td[style*="--w"]{filter:none;opacity:1}
:root.dkc:not([data-theme="light"]) .team.b{background:transparent}
:root.dkc:not([data-theme="light"]) body{background:var(--bg)}
:root.dkc:not([data-theme="light"]) #start,:root.dkc:not([data-theme="light"]) .dayban,:root.dkc:not([data-theme="light"]) #rpnote,:root.dkc:not([data-theme="light"]) #savebox .svb.done,:root.dkc:not([data-theme="light"]) .helpbox,:root.dkc:not([data-theme="light"]) .zc.best,:root.dkc:not([data-theme="light"]) .ask.edit,:root.dkc:not([data-theme="light"]) .fxon .evcard.in,:root.dkc:not([data-theme="light"]) .fxon .evp.me,:root.dkc:not([data-theme="light"]) #rfmenu button[aria-checked="true"],:root.dkc:not([data-theme="light"]) .pinwrap.done .d{background:var(--panel);border-color:var(--line)}
:root.dkc:not([data-theme="light"]) .note.nextg{background:var(--soft);border-left-color:var(--muted)}
:root.dkc:not([data-theme="light"]) .hopt[aria-pressed="true"]{background:var(--soft);border-color:var(--sel);box-shadow:0 0 0 1px var(--sel) inset}
:root.dkc:not([data-theme="light"]) .stt tbody tr:nth-child(even) td,:root.dkc:not([data-theme="light"]) .duel:nth-child(even of .duel){background-color:rgba(255,255,255,.03)}
:root.dkc:not([data-theme="light"]) .stt tr.mine td,:root.dkc:not([data-theme="light"]) tr.me td{background:var(--soft)!important}
:root.dkc:not([data-theme="light"]) .btn.ghost.findbtn{background:var(--panel);border:1px solid var(--line);color:var(--fg);font-weight:600}
:root.dkc:not([data-theme="light"]) .btn.ghost.findbtn svg{color:var(--accent)}
:root.dkc:not([data-theme="light"]) .scores button[aria-pressed="true"],:root.dkc:not([data-theme="light"]) #pdraw[aria-pressed="true"],:root.dkc:not([data-theme="light"]) .dtt button[aria-pressed="true"],:root.dkc:not([data-theme="light"]) .dtg button[aria-pressed="true"],:root.dkc:not([data-theme="light"]) #clsbox .scores button.wa[aria-pressed="true"],:root.dkc:not([data-theme="light"]) #clsbox .scores button.wb[aria-pressed="true"],:root.dkc:not([data-theme="light"]) .sheet .scores button.wb[aria-pressed="true"]{background:var(--soft);color:var(--fg);border-color:var(--sel);box-shadow:0 0 0 1px var(--sel) inset;font-weight:700}
:root.dkc:not([data-theme="light"]) .scores button[aria-pressed="true"]::before{content:"✓ ";color:var(--accent)}
:root.dkc:not([data-theme="light"]) .team.a{background:transparent}
:root.dkc:not([data-theme="light"]) .chip[data-team="A"]{background:var(--soft);color:var(--fg);border:2px solid var(--accent)}
:root.dkc:not([data-theme="light"]) .chip[data-team="B"]{background:var(--soft);color:var(--fg);border:2px solid var(--gold)}
:root.dkc:not([data-theme="light"]) .team[aria-pressed="true"].a{background:var(--soft);color:var(--fg);border:2px solid var(--accent)}
:root.dkc:not([data-theme="light"]) .team[aria-pressed="true"].b{background:var(--soft);color:var(--fg);border:2px solid var(--gold)}
:root.dkc:not([data-theme="light"]) .team[aria-pressed="true"] b{color:var(--fg)}
:root.dkc:not([data-theme="light"]) .btn:disabled:not(.saved){background:var(--soft);border-color:var(--line);color:var(--muted);opacity:1;filter:none}
:root.dkc:not([data-theme="light"]) .duel b.pos,:root.dkc:not([data-theme="light"]) .fxrank .rk .mv.up,:root.dkc:not([data-theme="light"]) .fxwin .chips span,:root.dkc:not([data-theme="light"]) .evtag,:root.dkc:not([data-theme="light"]) .glist .pcard .pc-fmt:not(.cls):not(.mex):not(.ame),:root.dkc:not([data-theme="light"]) .invl.picking .invr.pk-row[aria-pressed="true"],:root.dkc:not([data-theme="light"]) .fplan .m.nx{background:var(--soft)}
:root.dkc:not([data-theme="light"]) .glist .pcard .pc-bar i:not(.on),:root.dkc:not([data-theme="light"]) #rpnote .bar8 i:not(.on){background:var(--track)}
:root.dkc:not([data-theme="light"]) .round .m.done,:root.dkc:not([data-theme="light"]) .fplan .m.done{opacity:1;color:var(--muted)}
:root.dkc:not([data-theme="light"]) .fxwin,:root.dkc:not([data-theme="light"]) .kpi.hl{border-color:var(--line);background:var(--panel)}
:root.dkc:not([data-theme="light"]) .pd .pb{background:linear-gradient(180deg,var(--soft),var(--panel));border-color:var(--line)}
}
:root.dkc[data-theme="dark"]{--bg:#111315;--panel:#1b1e21;--soft:#262a2e;--line:#363b40;--fg:#eceff1;--muted:#a3abb2;--track:#30353a;--sel:#e6eaed}
:root.dkc[data-theme="dark"] body{background:var(--bg)}
:root.dkc[data-theme="dark"] #start,:root.dkc[data-theme="dark"] .dayban,:root.dkc[data-theme="dark"] #rpnote,:root.dkc[data-theme="dark"] #savebox .svb.done,:root.dkc[data-theme="dark"] .helpbox,:root.dkc[data-theme="dark"] .zc.best,:root.dkc[data-theme="dark"] .ask.edit,:root.dkc[data-theme="dark"] .fxon .evcard.in,:root.dkc[data-theme="dark"] .fxon .evp.me,:root.dkc[data-theme="dark"] #rfmenu button[aria-checked="true"],:root.dkc[data-theme="dark"] .pinwrap.done .d{background:var(--panel);border-color:var(--line)}
:root.dkc[data-theme="dark"] .note.nextg{background:var(--soft);border-left-color:var(--muted)}
:root.dkc[data-theme="dark"] .hopt[aria-pressed="true"]{background:var(--soft);border-color:var(--sel);box-shadow:0 0 0 1px var(--sel) inset}
:root.dkc[data-theme="dark"] .stt tbody tr:nth-child(even) td,:root.dkc[data-theme="dark"] .duel:nth-child(even of .duel){background-color:rgba(255,255,255,.03)}
:root.dkc[data-theme="dark"] .stt tr.mine td,:root.dkc[data-theme="dark"] tr.me td{background:var(--soft)!important}
:root.dkc[data-theme="dark"] .btn.ghost.findbtn{background:var(--panel);border:1px solid var(--line);color:var(--fg);font-weight:600}
:root.dkc[data-theme="dark"] .btn.ghost.findbtn svg{color:var(--accent)}
:root.dkc[data-theme="dark"] .scores button[aria-pressed="true"],:root.dkc[data-theme="dark"] #pdraw[aria-pressed="true"],:root.dkc[data-theme="dark"] .dtt button[aria-pressed="true"],:root.dkc[data-theme="dark"] .dtg button[aria-pressed="true"],:root.dkc[data-theme="dark"] #clsbox .scores button.wa[aria-pressed="true"],:root.dkc[data-theme="dark"] #clsbox .scores button.wb[aria-pressed="true"],:root.dkc[data-theme="dark"] .sheet .scores button.wb[aria-pressed="true"]{background:var(--soft);color:var(--fg);border-color:var(--sel);box-shadow:0 0 0 1px var(--sel) inset;font-weight:700}
:root.dkc[data-theme="dark"] .scores button[aria-pressed="true"]::before{content:"✓ ";color:var(--accent)}
:root.dkc[data-theme="dark"] .team.a{background:transparent}
:root.dkc[data-theme="dark"] .chip[data-team="A"]{background:var(--soft);color:var(--fg);border:2px solid var(--accent)}
:root.dkc[data-theme="dark"] .chip[data-team="B"]{background:var(--soft);color:var(--fg);border:2px solid var(--gold)}
:root.dkc[data-theme="dark"] .team[aria-pressed="true"].a{background:var(--soft);color:var(--fg);border:2px solid var(--accent)}
:root.dkc[data-theme="dark"] .team[aria-pressed="true"].b{background:var(--soft);color:var(--fg);border:2px solid var(--gold)}
:root.dkc[data-theme="dark"] .team[aria-pressed="true"] b{color:var(--fg)}
:root.dkc[data-theme="dark"] .btn:disabled:not(.saved){background:var(--soft);border-color:var(--line);color:var(--muted);opacity:1;filter:none}
:root.dkc[data-theme="dark"] .duel b.pos,:root.dkc[data-theme="dark"] .fxrank .rk .mv.up,:root.dkc[data-theme="dark"] .fxwin .chips span,:root.dkc[data-theme="dark"] .evtag,:root.dkc[data-theme="dark"] .glist .pcard .pc-fmt:not(.cls):not(.mex):not(.ame),:root.dkc[data-theme="dark"] .invl.picking .invr.pk-row[aria-pressed="true"],:root.dkc[data-theme="dark"] .fplan .m.nx{background:var(--soft)}
:root.dkc[data-theme="dark"] .glist .pcard .pc-bar i:not(.on),:root.dkc[data-theme="dark"] #rpnote .bar8 i:not(.on){background:var(--track)}
:root.dkc[data-theme="dark"] .round .m.done,:root.dkc[data-theme="dark"] .fplan .m.done{opacity:1;color:var(--muted)}
:root.dkc[data-theme="dark"] .fxwin,:root.dkc[data-theme="dark"] .kpi.hl{border-color:var(--line);background:var(--panel)}
:root.dkc[data-theme="dark"] .pd .pb{background:linear-gradient(180deg,var(--soft),var(--panel));border-color:var(--line)}
/* Stand 294 (flag-darkCalm 3, 4): Text überall ≥ 4,5:1 – „Beenden“/„Abmelden“ und rote Meldungen weiß auf #b8452f (5,3:1), unterlegenes Team und vorläufige Zeile in --muted statt durchsichtig; Team B wie Team A nur mit Rahmenfarbe */
:root.dkc[data-theme="dark"] .btn.danger{background:#b8452f;border-color:#b8452f;color:#fff}:root.dkc[data-theme="dark"] .toast.error{background:#b8452f;color:#fff}:root.dkc[data-theme="dark"] .team.lost{opacity:1}:root.dkc[data-theme="dark"] .team.lost,:root.dkc[data-theme="dark"] .team.lost b,:root.dkc[data-theme="dark"] .team.lost .chip,:root.dkc[data-theme="dark"] .team.lost span{color:var(--muted)}:root.dkc[data-theme="dark"] .stt tr.prov td[style*="--w"]{filter:none;opacity:1}:root.dkc[data-theme="dark"] .team.b{background:transparent}
/* DKC-284-END */
/* Stand 294 (Homepage): bei der Homepage trägt die App-Hülle ihren Titel als <p class="h1"> – genau so gestaltet wie die <h1> */
.h1{font-family:var(--display);font-weight:800;font-size:36px;line-height:1;margin:0;letter-spacing:.01em;text-transform:uppercase}.h1 small{font-size:12px;letter-spacing:.14em;color:var(--muted);display:block;font-weight:600;margin-top:4px}header .h1{font-size:clamp(24px,8.4vw,36px);overflow-wrap:break-word;hyphens:manual;-webkit-hyphens:manual}body.focus .h1{font-size:clamp(24px,7.4vw,36px);hyphens:manual;-webkit-hyphens:manual}
/* Stand 294 (Martin 20:34): „Effekte & Vibration“ ganz unten im Profil, direkt über Homepage/Datenschutz/Impressum */
.pmenu.pfxsw{margin-top:18px}.pmenu.pfxsw+.pmenu.ppriv{margin-top:8px}
/* Stand 294 (g4-technik 1, g4-neu N1, Martin 20:29): Profil › „Effekte & Vibration“ aus = ALLE CSS-Bewegungen der App und der Homepage springen sofort in den Endzustand (wie „Bewegung reduzieren“) – Inhalte bleiben sichtbar */
html.fxoff *,html.fxoff *::before,html.fxoff *::after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
/* Stand 295 (Schalter startForm, Martin 06:06): Farbwelt je Spielform – Haupt- und Zweitfarbe, dezent in Formular und Spielbildschirm. Rotación grün/gold (wie bisher), Klassisch blau/koralle, Americano lila/türkis, Mexicano orange/petrol. Kontrast ≥ 4,5:1 (Text in der Hauptfarbe auf dem Panel). */
#group[data-fmt="cls"] .sec-entry,.sheet[data-fmt="cls"],#sspage[data-fmt="cls"]{--accent:#1f4e8c;--accent-ink:#ffffff;--gold:#b83a30;--gold-ink:#ffffff;--gold-text:#a3322a;--soft:color-mix(in srgb,#1f4e8c 10%,var(--panel))}
#group[data-fmt="ame"] .sec-entry,.sheet[data-fmt="ame"],#sspage[data-fmt="ame"]{--accent:#6b4fbb;--accent-ink:#ffffff;--gold:#0e7c7b;--gold-ink:#ffffff;--gold-text:#0b6b6a;--soft:color-mix(in srgb,#6b4fbb 10%,var(--panel))}
#group[data-fmt="mex"] .sec-entry,.sheet[data-fmt="mex"],#sspage[data-fmt="mex"]{--accent:#a34216;--accent-ink:#ffffff;--gold:#1d6a85;--gold-ink:#ffffff;--gold-text:#1d6a85;--soft:color-mix(in srgb,#a34216 10%,var(--panel))}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) #group[data-fmt="cls"] .sec-entry,:root:not([data-theme="light"]) .sheet[data-fmt="cls"],:root:not([data-theme="light"]) #sspage[data-fmt="cls"]{--accent:#78a6e8;--accent-ink:#06142b;--gold:#f08a7a;--gold-ink:#2a0a06;--gold-text:#f08a7a;--soft:color-mix(in srgb,#78a6e8 14%,var(--panel))}
:root:not([data-theme="light"]) #group[data-fmt="ame"] .sec-entry,:root:not([data-theme="light"]) .sheet[data-fmt="ame"],:root:not([data-theme="light"]) #sspage[data-fmt="ame"]{--accent:#9b84e6;--accent-ink:#140a2e;--gold:#4fd1c5;--gold-ink:#04201e;--gold-text:#4fd1c5;--soft:color-mix(in srgb,#9b84e6 14%,var(--panel))}
:root:not([data-theme="light"]) #group[data-fmt="mex"] .sec-entry,:root:not([data-theme="light"]) .sheet[data-fmt="mex"],:root:not([data-theme="light"]) #sspage[data-fmt="mex"]{--accent:#ec8a5f;--accent-ink:#2a0e02;--gold:#6cc3dc;--gold-ink:#04202a;--gold-text:#6cc3dc;--soft:color-mix(in srgb,#ec8a5f 14%,var(--panel))}}
:root[data-theme="dark"] #group[data-fmt="cls"] .sec-entry,:root[data-theme="dark"] .sheet[data-fmt="cls"],:root[data-theme="dark"] #sspage[data-fmt="cls"]{--accent:#78a6e8;--accent-ink:#06142b;--gold:#f08a7a;--gold-ink:#2a0a06;--gold-text:#f08a7a;--soft:color-mix(in srgb,#78a6e8 14%,var(--panel))}
:root[data-theme="dark"] #group[data-fmt="ame"] .sec-entry,:root[data-theme="dark"] .sheet[data-fmt="ame"],:root[data-theme="dark"] #sspage[data-fmt="ame"]{--accent:#9b84e6;--accent-ink:#140a2e;--gold:#4fd1c5;--gold-ink:#04201e;--gold-text:#4fd1c5;--soft:color-mix(in srgb,#9b84e6 14%,var(--panel))}
:root[data-theme="dark"] #group[data-fmt="mex"] .sec-entry,:root[data-theme="dark"] .sheet[data-fmt="mex"],:root[data-theme="dark"] #sspage[data-fmt="mex"]{--accent:#ec8a5f;--accent-ink:#2a0e02;--gold:#6cc3dc;--gold-ink:#04202a;--gold-text:#6cc3dc;--soft:color-mix(in srgb,#ec8a5f 14%,var(--panel))}
#group[data-fmt] #plantitle{color:var(--accent)}
#group[data-fmt] #plantitle.sf304{color:inherit} /* Stand 304 (S19.6): Titel weiß wie bei Rotación/Klassisch */
.tban{margin:0 0 8px}.tcard{margin:14px 0 0}.tcard .big{font-size:17px}.tcard .tover{margin:8px 0 0}.tres{font-size:14px;line-height:1.45}
.cnomore{display:inline-block;margin:8px 0 0}.sslast{margin:8px 0 0}.sslast .sslmiss{color:var(--muted)}.hnme{margin:0 0 8px}
.plist.sfm li.psep{cursor:default;padding:10px 4px 4px;border:0;font:700 12px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:none}
.plist.sfm li.on{background:color-mix(in srgb,var(--accent) 12%,var(--panel));box-shadow:inset 3px 0 0 var(--accent)}
.tstand tr.tsmv td:first-child{white-space:nowrap}.tsar{display:inline-block;margin-left:4px;font:700 11px var(--body);border-radius:8px;padding:0 5px}.tsmv.up .tsar{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.tsmv.dn .tsar{color:var(--muted);background:color-mix(in srgb,var(--muted) 14%,transparent)}
.tstand tr.tsmv.up td{background:color-mix(in srgb,var(--accent) 7%,transparent)}
@keyframes tsmvUp{from{transform:translateY(14px);opacity:.3}to{transform:none;opacity:1}}@keyframes tsmvDn{from{transform:translateY(-14px);opacity:.3}to{transform:none;opacity:1}}
.tstand tr.a-tsmv.up td{animation:tsmvUp .6s cubic-bezier(.2,.9,.3,1.2) both}.tstand tr.a-tsmv.dn td{animation:tsmvDn .6s ease-out both}
html.fxoff .tstand tr.a-tsmv td{animation:none}
/* Stand 300 (Martin 11.11. 15:25/15:31): Auswahl im App-Design statt nativer Felder – whoPick („Wahrscheinlich diese Person“ + „Alle anderen Spieler“), selSheet, Anfrage-Karte im Klartext. Schrift ≥ 15 px, Tippflächen ≥ 44 px, Farben aus den Tokens (hell, dunkel, darkCalm, Glanz 2) */
.wpsheet .mplist li{min-height:56px;padding:10px 12px}
.wpsheet .mpt b{font-size:16px}
.wpsheet .mpt .mpg,.wpsheet .mpt small{font-size:15px;line-height:1.35;white-space:normal}
.wpsheet .mpt small{color:var(--muted)}
.wpsheet .wpsim{color:var(--accent);font-weight:600}
.wptop{margin:0 0 6px}
.wptoph{margin:2px 0 8px;font-weight:700;color:var(--accent)}
.wpstrong li.wpcard{border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel));box-shadow:0 6px 18px -12px color-mix(in srgb,var(--accent) 60%,transparent)}
.wpall{margin:18px 0 8px}
.wpall[hidden],.wptop[hidden]{display:none}
.wpsheet li.wpdis{opacity:.55;cursor:not-allowed}
.wpsheet .wpno{color:var(--down-text);font-weight:600}
.wpfoot{margin:10px 0 0;font-size:15px}
.wpchosen{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;margin-top:6px;padding:10px 12px;border:2px solid var(--accent);border-radius:12px;background:var(--panel);color:var(--fg);font:inherit;text-align:left;cursor:pointer}
.wpchosen .mpt{display:grid;gap:1px;min-width:0;flex:1}
.wpchosen .mpt b{font-size:16px}
.wpchosen .mpg{font-size:15px;color:var(--muted)}
.wpchg{color:var(--accent);font-weight:600;font-size:15px;flex:none}
.selnative{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;margin:0!important;padding:0!important;border:0!important}
.selbtn{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;max-width:100%;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--fg);font:600 15px var(--body);cursor:pointer;text-align:left}
.selbtn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.selbtn svg{flex:none;color:var(--accent)}
.selbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.selbtn:disabled{opacity:.5;cursor:default}
.sellist li{justify-content:space-between}
.sellist li[aria-selected="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.selck{color:var(--accent);font-weight:800;font-size:18px;flex:none;min-width:18px;text-align:right}
.jrmain .jrlikely{margin:8px 0 0;font-size:17px;line-height:1.4;font-weight:600}
.jrmain .jrq{font-size:16px}
.jrmain .jrbtns .btn{min-height:44px}
.mgname{display:flex;flex-wrap:wrap;gap:8px}
.mgname .chip{min-height:44px;font-size:15px}
.jrco .big{font-size:17px}
.mgsheet .mgcard{cursor:default;box-shadow:none}
.mgsheet .mgcard.keep{box-shadow:none}
.selbtn.selon{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--fg)}
.selx{min-width:44px;min-height:44px;margin-left:-6px;border:1px solid var(--accent);border-left:0;border-radius:0 12px 12px 0;background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--fg);font:700 15px var(--body);cursor:pointer}
.selx[hidden]{display:none}
.selbtn.selon:has(+ .selx:not([hidden])){border-radius:12px 0 0 12px}
.selmon{list-style:none;margin:10px 2px 2px;font:700 13px var(--body);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border:0!important;background:none!important;min-height:0!important;padding:0!important;cursor:default!important}
.selcnt{flex:none;min-width:28px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--fg);font:700 15px var(--body);text-align:center}
.seltop{margin:0 0 12px}
.seltop li{border:2px solid var(--accent)!important}
/* Stand 300 (Schalter tabsOrder): Statistik als Wort, Einstellungen als Zahnrad; nie umbrechen – bei 320 px etwas kleinere Schrift */
#nav[data-t2] #statbtn svg{display:none}
#nav[data-t2] #statbtn .navlbl{display:inline}
#nav[data-t2] .t2gear .t2lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.mglog{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.mglog li{font-size:15px;color:var(--fg);padding:8px 10px;border:1px dashed var(--line);border-radius:10px}
.pnewhint{list-style:none;font-size:15px;color:var(--muted);padding:6px 2px}
.invnone{font-size:15px}

/* ---------- Stand 302 (Turnier: Fehler + Design, Martin 11.11. 23:42 freigegeben) ---------- */
/* S9/S16e/D10: Auswahl-Knöpfe (Endstand, Dauer, Bälle, Courts) in der App-Schrift mit gleich breiten Ziffern – keine Schreibmaschinen-Schrift mehr */
.scores button{font-family:var(--body);font-variant-numeric:tabular-nums}
/* S7: Zusammenfassung groß in der Spielform-Farbe – Courts als Nummern-Schilder */
.helpbox.tsum{border-width:2px;border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}
.tsum .tsum-l{font-size:18px;line-height:1.3;margin:0 0 2px}
.tsum-nos{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:2px 0 8px}
.tsum-no{display:inline-grid;place-items:center;min-width:36px;height:36px;padding:0 8px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font:800 19px/1 var(--display);font-variant-numeric:tabular-nums}
.tsum-cl{color:var(--muted);font-size:14px;margin-left:4px}
.tcard .linkbtn#thadj{display:block;margin:8px auto 0}
/* D44/S5: feste Fußleiste unten – erscheint nur, solange der Hauptknopf des Formulars außerhalb des Bildschirms liegt */
.sfbar{position:fixed;left:0;right:0;bottom:0;z-index:15;display:flex;gap:8px;padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:var(--panel);border-top:1px solid var(--line);box-shadow:0 -8px 20px -12px rgba(0,0,0,.45)}
.sfbar{padding-left:max(16px,env(safe-area-inset-left,0px),calc((100vw - 688px) / 2));padding-right:max(16px,env(safe-area-inset-right,0px),calc((100vw - 688px) / 2))} /* Stand 304 (M12): auf breiten Bildschirmen so breit wie der Inhalt */
/* Stand 304 (S18, Martin 12.11. 06:15/06:20): EIN Hinweis-Bauteil im heutigen Karten-Design – Panel wie „Deine Spiele“, kleiner Akzent links statt Strichelrahmen, Text oben, Knopf darunter einzeilig in voller Breite, ✕ klein oben rechts ohne Kasten. Gilt für „Übrigens“, Beispielgruppe, versteckten Plan, „Gut zu wissen“ (Klassisch), „Sichere deinen Zugang“. */
.invnote,.demobar,.hidplan,.clsnote,#savebox .svb:not(.done){position:relative;display:block;border:1px solid var(--line);border-left:3px solid var(--gold);background:var(--panel);border-radius:10px;padding:14px;margin:0 0 14px;font-size:14px;line-height:1.45;color:var(--fg)}
#savebox .svb:not(.done){border-left-color:var(--down);display:grid;gap:8px}.clsnote{border-left-color:var(--accent)}
.invnote.home{display:block;padding-right:40px}.invnote .hn-t{display:grid;gap:10px}.invnote .hn-l{display:flex;flex-direction:column;align-items:stretch;gap:8px}.invnote .hn-l .btn{width:100%;white-space:nowrap;flex:none}
.invnote #hnx,#savebox .svx{position:absolute;top:6px;right:6px;width:32px;height:32px;min-height:0;border:0;background:none;box-shadow:none;font-size:14px;color:var(--muted)}
.svacc{border-top:1px solid var(--line)}.demobar .linkbtn{margin-left:0}.clsnote .linkbtn{margin-top:4px}
.bchips .chip{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.bchips .bx{background:none;border:0;padding:0 2px;margin:0 -4px 0 2px;min-height:0;font:600 17px/1 var(--body);color:inherit;opacity:.8;cursor:pointer}.bchips .btag:empty{display:none}.bchips .btag{font:600 11px var(--body);opacity:.9}.bchips .bad{background:color-mix(in srgb,var(--down) 25%,var(--panel));border-color:var(--down);color:var(--text)}.bchips .bedit{padding:0;background:var(--panel)}.bchips .bedit input{border:0;background:transparent;color:var(--text);font:inherit;padding:8px 14px;min-width:140px;outline:none} /* Stand 304 (S20): Namen als Chips */
#clsbox.sf304 .scores{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}#clsbox.sf304 .scores button{padding:9px 2px;min-width:0;font-size:14px}#clsbox.sf304 .scores [data-cmore]{grid-column:1/-1} /* Stand 304 (S31b): Satz-Endstand im selben Raster wie Rotación */
.ssphead{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.ssphead .linkbtn{min-height:0;padding:0;font-size:15px;white-space:nowrap}body.sfbar-on #sspage{padding-bottom:84px} /* Stand 304: „Neues Spiel“ Schritt 2 */
.sfbar[hidden]{display:none}.sfbar .btn{min-height:48px}.sfbar .btn.grow{flex:1 1 auto}
body.sfbar-on #totop,body.sfbar-on #mepill{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
/* S5: in „Mehrere Spieler auf einmal hinzufügen“ als Seite bleibt die Knopfzeile unten stehen */
.mpg .panel>.row.foot{position:sticky;bottom:0;z-index:3;background:var(--panel);padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px));margin-bottom:0}
/* S12a: „Spieler fällt aus“ und „Court ändern“ als zwei gestaltete Knöpfe mit Symbol */
.tacts{display:flex;gap:8px;margin:8px 0 12px}.tacts .btn{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;white-space:normal;line-height:1.2;text-align:left}
.tacts .btn svg{flex:none;color:var(--accent)}
/* S10: Spielplan im Design der Spiel-Karten aus „Spiele“ – Teamfarben der Spielform, Court als Schild, eigenes Spiel hervorgehoben */
.round .m.sfm{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:10px 12px;margin:8px 0 0;gap:12px}
.round .m.sfm:first-of-type{border-top:1px solid var(--line)}
.round .m.sfm .mg{gap:2px}.round .m.sfm .mtm{font-weight:600;font-size:15px}
.round .m.sfm .mtm.ta{color:color-mix(in srgb,var(--accent) 78%,var(--fg))}.round .m.sfm .mtm.tb{color:color-mix(in srgb,var(--gold-text,var(--gold)) 82%,var(--fg))}
.round .m.sfm .vs{font-size:12px;color:var(--muted)}.round .m.sfm .vs b{font:800 18px var(--display);color:var(--fg);margin-left:6px;font-variant-numeric:tabular-nums}
.gcno{flex:none;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;height:46px;padding:0 6px;border-radius:10px;background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--accent);font:800 20px/1 var(--display);border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));font-variant-numeric:tabular-nums}
.gcno small{display:block;font:600 9px/1 var(--body);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 3px}
.round .m.sfm.mine{border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--panel));box-shadow:0 6px 18px -12px color-mix(in srgb,var(--accent) 70%,transparent)}
.round .m.sfm .gmine{font:700 11px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.round .m.sfm.done{opacity:1;color:var(--muted)}.round .m.sfm.done .gcno{background:var(--soft);color:var(--muted);border-color:var(--line)}.round .m.sfm.done .mtm{opacity:.8}
.round .m.sfm.wait{border-color:var(--gold)}
.round:has(.m.sfm){border:0;padding:4px 0 0;background:none}.round.rdone:has(.m.sfm){border:1px solid var(--line);padding:8px 10px}
/* S12: „Spieler fällt aus“ – Spieler nach Court/Spiel gruppiert, Fragen über der Auswahl */
.dogrp{margin:0 0 8px}.dogrp>.hint{display:block;margin:0 0 4px;font-size:13px}.dogrp .players{margin:0}
.doq{margin:14px 0 6px}
/* S14: „Verletzt oder vorzeitig beendet?“ – Stand mit Zahl-Knöpfen statt −/+-Feld */
.abteam{margin:10px 0 0}.abteam>b{display:block;margin:0 0 6px}.abteam.ta>b{color:color-mix(in srgb,var(--accent) 80%,var(--fg))}.abteam.tb>b{color:color-mix(in srgb,var(--gold-text,var(--gold)) 85%,var(--fg))}
.scores.abn{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}.scores.abn button{min-width:0;padding:8px 2px}
.abort-sub{display:block;font-size:13px;color:var(--muted);font-weight:400;margin-top:2px}
/* S16: Abschluss nach „Turnier beenden“ oben und groß */
.tend h2{margin:0 0 6px}.tend .big{font-size:18px}

/* Stand 306t: Training als Termin-Art – Petrol als Trainings-Farbe (Vorlage training.html), sonst App-Bausteine */
:root{--trn:#17707a;--trn-ink:#ffffff;--trn2:#2fa3ad}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--trn:#5cb8c2;--trn-ink:#03191c;--trn2:#a6ecef}}
:root[data-theme="dark"]{--trn:#5cb8c2;--trn-ink:#03191c;--trn2:#a6ecef}
.btn.trn{background:var(--trn);border-color:var(--trn);color:var(--trn-ink)}
.glist .pcard .pc-fmt.trn{color:var(--trn);background:color-mix(in srgb,var(--trn) 14%,transparent)}.glist .pcard.trnc .pc-bar i{background:color-mix(in srgb,var(--trn) 16%,transparent)}.glist .pcard.trnc .pc-bar i.on{background:var(--trn)}
/* Stand 308 (Martin 16:30): die Trainingskarte unterscheidet sich auf einen Blick – zarte Petrol-Tönung, feiner Petrol-Rand mit Leiste links; Tag, Zeit, Chip und Balken in Petrol, nie Grün */
.glist .pcard.trnc{position:relative;background:color-mix(in srgb,var(--trn) 10%,var(--panel));border-color:color-mix(in srgb,var(--trn) 45%,var(--line))}.glist .pcard.trnc::before{content:"";position:absolute;z-index:1;left:0;top:0;bottom:0;width:4px;background:var(--trn);pointer-events:none}
.glist .pcard.trnc .pc-when,.glist .pcard.trnc .pc-t{color:var(--trn)}
.glist .pcard.trnc .pc-fmt{background:color-mix(in srgb,var(--trn) 16%,transparent);color:var(--trn)}
#findbox .findrow{display:grid;gap:8px}#findbox .findrow.two{grid-template-columns:1fr 1fr}#findbox .findrow .findbtn{min-width:0;margin:0}
#findbox .btn.ghost.findbtn.trfind{color:var(--trn);border:1.5px solid color-mix(in srgb,var(--trn) 60%,var(--line));background:color-mix(in srgb,var(--trn) 12%,var(--panel));font-weight:700}#findbox .btn.ghost.findbtn.trfind svg{color:var(--trn)}
/* Stand 306t2 (gleich K11): beide Knöpfe einzeilig, Symbol vor dem Wort */
#findbox .findrow.two .findbtn{white-space:nowrap;padding-left:8px;padding-right:8px;gap:6px}#findbox .findrow .findbtn svg{flex:none}
@media (max-width:370px){#findbox .findrow.two .findbtn{font-size:14px;gap:5px;padding-left:6px;padding-right:6px}}
/* Stand 306t2 (gleich K12, M11): Formular „Training planen“ wie der Entwurf – Offen/Geschlossen gefüllt in Petrol, (i) in Petrol, Speichern einzeilig */
:is(#trview,#trainbox) .tro2 button[aria-pressed="true"]{background:var(--trn);border-color:var(--trn);color:var(--trn-ink);box-shadow:none}:is(#trview,#trainbox) .tro2 button[aria-pressed="true"]::before{content:none}
:is(#trview,#trainbox) button.info,.sheet.trsh button.info{border-color:var(--trn);color:var(--trn)}
:is(#trview,#trainbox) .acts #trcancel{flex:0 0 auto}:is(#trview,#trainbox) .acts #trsave{white-space:nowrap;flex:1 1 auto}
body.sspg #trainbox{display:none!important}
/* Stand 306b (Martin 13.11. 05:01/05:22): „Training planen“ öffnet das Formular direkt auf der Startseite (#trainbox.trform), der Rest der Startseite ist so lange weg; freiwillige Angaben eingeklappt (eigener Baustein, kein natives details) */
body.sspg #zpentry,body.trpg #zpentry{display:none!important}
body.trpg #startlists,body.trpg #playbox,body.trpg #showbox,body.trpg #rulesbox,body.trpg #legalfoot{display:none!important}
.trform .trfold{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:52px;margin:14px 0 0;padding:11px 14px;text-align:left;font:inherit;color:inherit;cursor:pointer;border:1.5px solid color-mix(in srgb,var(--trn) 45%,var(--line));background:color-mix(in srgb,var(--trn) 6%,var(--panel));border-radius:12px}
.trform .trfold b{display:block;color:var(--fg);font-weight:700}.trform .trfold small{display:block;margin-top:2px;color:var(--muted);font-size:13px;line-height:1.35}
.trform .trfold .trfc{flex:none;color:var(--trn);transition:transform .18s ease}.trform .trfold[aria-expanded="true"] .trfc{transform:rotate(180deg)}
.trform .trfold[aria-expanded="true"]{border-radius:12px 12px 0 0;border-bottom-color:transparent}
.trform .trfoldb{border:1.5px solid color-mix(in srgb,var(--trn) 45%,var(--line));border-top:0;border-radius:0 0 12px 12px;padding:2px 12px 14px;background:var(--panel)}
.trform .trfold:focus-visible{outline:2px solid var(--trn);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.trform .trfold .trfc{transition:none}}
.trform .trpick{display:grid;grid-template-columns:1fr;gap:8px;margin:4px 0 6px}.trform .trpick button{text-align:left;min-height:44px;white-space:normal}
.trform .trpick button[aria-pressed="true"]{background:var(--trn);border-color:var(--trn);color:var(--trn-ink);box-shadow:none}
.sheet .trpnew input{min-width:0}
/* Stand 306b Fixrunde (Prüfer S1, M4, M7, M9, K1) */
body:has(#group:not([hidden])) #zpentry,body.evopen #zpentry{display:none!important}
.trform .trfoldb .evmx{flex-wrap:nowrap!important;gap:6px}.trform .evmx>span{flex:none}.trform .evmx input.numin{flex:0 0 2.6em!important;width:2.6em!important}
@media (max-width:370px){.trform .evmx .btn{min-width:38px;min-height:40px;padding-left:0;padding-right:0}.trform .evmx{gap:4px;font-size:14px}}
.trform .trmiss{box-shadow:0 0 0 2px var(--gold);border-radius:12px}
.evsame{margin-top:10px}.evsame p{line-height:1.4}
.trempty{display:grid;justify-items:center;text-align:center;gap:6px;padding:14px 4px 4px}.trempty .trei{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;color:var(--trn);background:color-mix(in srgb,var(--trn) 12%,transparent)}.trempty .trei svg{width:22px;height:22px}.trempty p{margin:0}.trempty .btn{margin-top:8px}
.trform .trfoldb .evmx{flex-wrap:wrap}.trform .tro2,.trform .trlvl{grid-template-columns:repeat(2,minmax(0,1fr))!important}.trform .tro2 button{min-width:0}
@media (max-width:370px){.trform .trfoldb{padding:2px 9px 12px}:is(#trview,#trainbox) .acts #trsave{white-space:normal;line-height:1.2;min-width:0}}
body.trg #group > *:not(#trview):not(#jrnote){display:none!important}
#trview,#trainbox.trform,.sheet.trsh,#evpage:has(.trmark){--accent:var(--trn);--accent-ink:var(--trn-ink)}
#trview .trcard{margin-bottom:12px}
#trview .trhd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--trn) 6%,var(--panel))}#trview .trhd b{min-width:0}
#trview .trfullh{margin:12px 0 0;font:800 24px/1 var(--display);letter-spacing:.03em;text-transform:uppercase;color:var(--trn)}
#trview .trnext{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;border:1.5px solid var(--trn);background:color-mix(in srgb,var(--trn) 8%,var(--panel));border-radius:12px;padding:10px 12px;margin:0 0 12px}#trview .trnext small{display:block;color:var(--muted);margin-top:2px}
#trview .trmore{margin:-4px 0 10px;text-align:center}
/* Stand 308 (Martin 16:07): Einstellungen der Trainingsgruppe */
#trview .trset{display:flex;justify-content:flex-end;margin:0 0 8px}#trview .trset .btn{display:inline-flex;align-items:center;gap:6px}.trsetl{display:grid;gap:8px;margin:10px 0}
:is(#trview,#trainbox) .helpbox{margin-top:14px}
:is(#trview,#trainbox) .trprice{display:flex;align-items:center;gap:10px}:is(#trview,#trainbox) .trprice input{width:96px;text-align:center;font:800 24px var(--display)}:is(#trview,#trainbox) .trprice span{color:var(--muted)}
:is(#trview,#trainbox) .trpay{display:flex;align-items:center;gap:8px}:is(#trview,#trainbox) .trpay input{flex:1;min-width:0}
.trpk{flex:none;font:700 11px var(--body);letter-spacing:.08em;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--trn) 16%,transparent);color:var(--trn);text-transform:uppercase}
:is(#trview,#trainbox) .trlvl{display:grid;grid-template-columns:1fr 1fr}
:is(#trview,#trainbox) .tro2{display:grid;grid-template-columns:1fr 1fr}:is(#trview,#trainbox) .tro2 button small{display:block;font-size:11px;font-weight:500}
.trlv{font:700 10.5px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--trn);padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--trn) 14%,transparent)}
.sheet .trx{position:absolute;right:10px;top:10px;z-index:3;width:34px;height:34px;border-radius:50%;border:0;background:color-mix(in srgb,var(--fg) 10%,transparent);color:var(--fg);font:600 20px/1 var(--body);cursor:pointer}.sheet.trn2s .panel{position:relative}
.evsubl.trpr{margin-top:4px}
.trpr a{color:var(--trn);font-weight:600;text-underline-offset:2px}
/* Stand 306 (Schalter homeCards/homeTeams/zeitplan): Bühne mit Sportarten, Spielform-Karten K3 (bewegt), „Spielformen mit festen Paaren“ – CSS aus der Vorlage scratchpad/sport/entwurf.html Runde 4/5 (inject3–5); Zeitplan-Rechner aus scratchpad/zeitplan/rechner.html. Greift nur, wenn die App #sportrow/#fgrid/#zpentry füllt. */
:root{--sp-st1:color-mix(in srgb,var(--panel) 93%,var(--fg));--sp-st2:color-mix(in srgb,var(--panel) 84%,var(--fg));--sp-beam:rgba(255,206,112,.55);--sp-pool:rgba(255,196,90,.35);--sp-rim:color-mix(in srgb,var(--gold) 75%,transparent);--sp-glow:color-mix(in srgb,var(--gold) 50%,transparent);--sp-dim:saturate(.3) brightness(.95) opacity(.7);--sp-blend:normal}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--sp-st1:color-mix(in srgb,var(--bg) 55%,#000);--sp-st2:color-mix(in srgb,var(--panel) 92%,#000);--sp-beam:rgba(255,240,200,.42);--sp-pool:rgba(255,236,190,.26);--sp-rim:color-mix(in srgb,var(--gold) 55%,transparent);--sp-glow:color-mix(in srgb,var(--gold) 40%,transparent);--sp-dim:saturate(.3) brightness(.7) opacity(.8);--sp-blend:screen}}
:root[data-theme="dark"]{--sp-st1:color-mix(in srgb,var(--bg) 55%,#000);--sp-st2:color-mix(in srgb,var(--panel) 92%,#000);--sp-beam:rgba(255,240,200,.42);--sp-pool:rgba(255,236,190,.26);--sp-rim:color-mix(in srgb,var(--gold) 55%,transparent);--sp-glow:color-mix(in srgb,var(--gold) 40%,transparent);--sp-dim:saturate(.3) brightness(.7) opacity(.8);--sp-blend:screen}
#sportrow{margin:12px 0 14px;--sp-ease:cubic-bezier(.2,.8,.2,1);--sp-spring:cubic-bezier(.34,1.56,.64,1)}
#sportrow button{-webkit-tap-highlight-color:transparent;cursor:pointer}
#sportrow .art{display:block;flex:none;filter:var(--sp-dim);transition:filter .45s var(--sp-ease),transform .5s var(--sp-spring),width .5s var(--sp-ease),height .5s var(--sp-ease)}
#sportrow button[aria-checked="true"] .art{filter:none}
#sportrow .nm{font-family:var(--display);font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1;white-space:nowrap;transition:color .4s,font-size .5s var(--sp-ease)}
#sportrow .ok{position:absolute;top:6px;right:6px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font:700 11px/1 var(--body);box-shadow:0 2px 6px -1px rgba(0,0,0,.4),0 1px 0 rgba(255,255,255,.35) inset;opacity:0;transform:scale(.4);transition:opacity .3s,transform .4s var(--sp-spring)}
#sportrow button[aria-checked="true"] .ok{opacity:1;transform:none}
/* Strahl + Lichtfleck – Sprache des Podests (Rangliste Design 2) */
#sportrow .beam{position:absolute;z-index:0;top:-16px;left:50%;width:150%;height:100%;transform:translateX(-50%);background:linear-gradient(180deg,var(--sp-beam),transparent 88%);clip-path:polygon(41% 0,59% 0,100% 100%,0 100%);filter:blur(6px);mix-blend-mode:var(--sp-blend);opacity:0;pointer-events:none;transition:opacity .5s var(--sp-ease)}
#sportrow .pool{position:absolute;z-index:0;left:50%;bottom:16px;width:96%;height:24px;transform:translateX(-50%);background:radial-gradient(closest-side,var(--sp-pool),transparent);opacity:0;pointer-events:none;transition:opacity .5s var(--sp-ease)}
#sportrow button[aria-checked="true"] .beam,#sportrow button[aria-checked="true"] .pool{opacity:1}
#sportrow button>*:not(.beam):not(.pool):not(.ok){position:relative;z-index:1}
#sportrow button .ok{position:absolute;z-index:2}
/* E · Bühne */
#sportrow.ve{position:relative;isolation:isolate;overflow:hidden;display:flex;height:156px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(180deg,var(--sp-st1),var(--sp-st2));box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 14px 30px -18px rgba(0,0,0,.75)}
#sportrow.ve::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40px;z-index:0;pointer-events:none;border-top:1px solid color-mix(in srgb,var(--fg) 7%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--fg) 5%,transparent),transparent)}
#sportrow.ve button{flex:1 1 0;min-width:0;position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;padding:0 0 12px;border:0;background:none;color:var(--muted);transition:flex-grow .55s var(--sp-ease)}
#sportrow.ve .art{width:46px;height:46px}
#sportrow.ve .nm{font-size:11px}
#sportrow.ve .ok{top:10px;right:12px}
#sportrow.ve .pool{bottom:20px;height:30px}
#sportrow.ve .beam{top:-20px;width:120%}
#sportrow.ve button[aria-checked="true"]{flex-grow:2.4;color:var(--fg)}
#sportrow.ve button[aria-checked="true"] .art{width:96px;height:96px}
#sportrow.ve button[aria-checked="true"] .nm{font-size:22px}
/* Knopf-Namen blenden über */
@keyframes spTx{0%{opacity:.25;transform:translateY(4px)}100%{opacity:1;transform:none}}
#playbox [data-play].sptx{animation:spTx .42s cubic-bezier(.2,.8,.2,1) both}
@media (prefers-reduced-motion:reduce){#sportrow *,#sportrow::before{transition:none!important}#playbox [data-play].sptx{animation:none}}
#fgrid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px!important}
#fgrid [data-play="classic"]{order:1;--c:var(--cls);--ci:var(--cls-ink)}
#fgrid [data-play="rotacion"]{order:2;--c:var(--accent);--ci:var(--accent-ink)}
#fgrid [data-play="americano"]{order:3;--c:var(--purple);--ci:var(--purple-ink)}
#fgrid [data-play="mexicano"]{order:4;--c:var(--mex);--ci:var(--mex-ink)}
#fgrid .btn.fk{position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:12px;width:auto;min-height:156px;margin:0;padding:14px;border-radius:16px;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s,filter .3s}
#fgrid .fk-top{display:flex;align-items:flex-start;justify-content:space-between;position:relative;z-index:2}
#fgrid .fk-t{display:flex;flex-direction:column;gap:5px;position:relative;z-index:2}
#fgrid .fk-n{font:700 27px/0.95 var(--display);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}
#fgrid .fk-go{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:700 20px/1 var(--body);padding-bottom:2px}
#fgrid .fm{display:block;width:56px;height:56px}
#fgrid .fk:disabled{filter:grayscale(.85) brightness(.85);opacity:.55;cursor:default}
#fgrid .fk.sptx .fk-t{animation:spTx .42s cubic-bezier(.2,.8,.2,1) both;animation-delay:inherit}
#fgrid .fk.sptx{animation:none}
/* K1 · Glanzkarte */
#fgrid.k3 .fk{color:var(--ci);border:1px solid color-mix(in srgb,var(--c) 72%,#fff);
 background:radial-gradient(130% 90% at 0% 0%,rgba(255,255,255,.34),transparent 55%),linear-gradient(160deg,color-mix(in srgb,var(--c) 80%,#fff),var(--c) 46%,color-mix(in srgb,var(--c) 72%,#000));
 box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 -2px 0 rgba(0,0,0,.16) inset,0 18px 32px -16px color-mix(in srgb,var(--c) 75%,transparent),0 4px 10px -6px rgba(0,0,0,.45)}
#fgrid.k3 .fk::before{content:"";position:absolute;z-index:1;top:-20%;bottom:-20%;left:0;width:45%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.32) 50%,transparent);transform:translateX(-140%) skewX(-18deg)}
html.gzfull #fgrid.k3 .fk:not(:disabled):not(.soon)::before{animation:gzSweep 6s cubic-bezier(.2,.8,.2,1) infinite}
#fgrid [data-play="rotacion"]::before{animation-delay:.6s!important}#fgrid [data-play="americano"]::before{animation-delay:1.2s!important}#fgrid [data-play="mexicano"]::before{animation-delay:1.8s!important}
#fgrid.k3 .fk-go{background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.45);box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 4px 10px -4px rgba(0,0,0,.35)}
#fgrid .fk:active,#fgrid .fk.is-press{transform:translateY(2px) scale(.965)}
#fgrid.k3 .fk:active,#fgrid.k3 .fk.is-press{box-shadow:0 2px 8px rgba(0,0,0,.35) inset,0 1px 0 rgba(255,255,255,.2) inset,0 6px 14px -10px color-mix(in srgb,var(--c) 70%,transparent);filter:brightness(.94)}
/* K3 · großes Motiv */
#fgrid.k3 .fm{position:absolute;z-index:1;right:-22px;bottom:-24px;width:100px;height:100px;opacity:.95;transform:rotate(-8deg)}
#fgrid.k3 .fk{justify-content:space-between}
#fgrid.k3 .fk-top{order:2;justify-content:flex-start}
#fgrid.k3 .fk-t{order:1;max-width:100%}
#fgrid.k3 .fk{min-height:150px}
#fgrid.k3 .fm{right:-10px;bottom:-12px;width:104px;height:104px}
#fgrid.k3 .fk-n{font-size:28px}
#fgrid [data-play="classic"]{--d:0ms}#fgrid [data-play="rotacion"]{--d:90ms}#fgrid [data-play="americano"]{--d:180ms}#fgrid [data-play="mexicano"]{--d:270ms}
#fgrid .fm :is(.kB,.kT,.rA,.rB,.aN,.mS,.mB,.mT,.br){transform-box:fill-box;transform-origin:center}
/* Klassisch: Fallblatt */
#fgrid.go .kB{animation:fPop .5s cubic-bezier(.34,1.56,.64,1) var(--d) both}
#fgrid.go .kT{animation:fFlip .5s cubic-bezier(.45,0,.3,1) calc(var(--d) + 180ms + var(--i) * 95ms) both}
#fgrid .k0{opacity:0}
#fgrid.go .k0{animation:fOld .5s calc(var(--d) + 180ms + var(--i) * 95ms) both}
#fgrid.go .k1{animation:fNew .5s calc(var(--d) + 180ms + var(--i) * 95ms) both}
@keyframes fFlip{0%{transform:scaleY(1)}48%,52%{transform:scaleY(.06)}100%{transform:scaleY(1)}}
@keyframes fOld{0%,49%{opacity:.6}50%,100%{opacity:0}}
@keyframes fNew{0%,49%{opacity:0}50%{opacity:1}}
/* Rotación: Pfeile drehen, Ball rollt herein */
#fgrid.go .rA{animation:fSpin 1.3s cubic-bezier(.22,.8,.2,1) var(--d) both}
#fgrid.go .rB{animation:fRoll 1.1s cubic-bezier(.3,.75,.25,1) calc(var(--d) + 150ms) both}
@keyframes fSpin{0%{transform:rotate(-330deg) scale(.7);opacity:0}25%{opacity:1}100%{transform:none}}
@keyframes fRoll{0%{transform:translate(-40px,0) rotate(-620deg);opacity:0}15%{opacity:1}70%{transform:translate(3px,0) rotate(30deg)}85%{transform:translate(-1px,0) rotate(-6deg)}100%{transform:none}}
/* Americano: Spieler erscheinen, Netz verbindet sich Linie für Linie */
#fgrid .aL{stroke-dasharray:1 1}
#fgrid.go .aN{animation:fPopN .45s cubic-bezier(.34,1.56,.64,1) calc(var(--d) + var(--i) * 70ms) both}
#fgrid.go .aL{animation:fDraw .42s cubic-bezier(.4,0,.2,1) calc(var(--d) + 380ms + var(--i) * 45ms) both}
@keyframes fPopN{0%{transform:scale(0);opacity:0}100%{transform:none;opacity:1}}
@keyframes fDraw{0%{stroke-dashoffset:1}100%{stroke-dashoffset:0}}
/* Mexicano: Treppe baut sich auf, Ball springt hoch, Stern */
#fgrid .fm .mS{transform-origin:50% 100%}
#fgrid.go .mS{animation:fGrow .5s cubic-bezier(.34,1.4,.64,1) calc(var(--d) + var(--i) * 120ms) both}
#fgrid.go .mB{animation:fClimb .9s cubic-bezier(.4,0,.3,1) calc(var(--d) + 420ms) both}
#fgrid.go .mT{animation:fStar .6s cubic-bezier(.34,1.56,.64,1) calc(var(--d) + 1180ms) both}
@keyframes fGrow{0%{transform:scaleY(0)}100%{transform:none}}
@keyframes fClimb{0%{transform:translate(-28px,22px);opacity:0}8%{opacity:1}22%{transform:translate(-22px,9px)}38%{transform:translate(-14px,11px)}56%{transform:translate(-8px,-3px)}74%{transform:translate(0,0)}86%{transform:translate(0,-3px)}100%{transform:none}}
@keyframes fStar{0%{transform:translateY(10px) scale(0) rotate(-120deg);opacity:0}100%{transform:none;opacity:1}}
@keyframes fPop{0%{transform:scale(.6);opacity:0}100%{transform:none;opacity:1}}
/* danach: ruhiges Atmen */
#fgrid.go .br{animation:fBreath 4.5s ease-in-out calc(var(--d) + 1800ms) infinite alternate}
@keyframes fBreath{0%{transform:none}100%{transform:translateY(-1.5px) scale(1.015)}}
@media (prefers-reduced-motion:reduce){#fgrid .fm *,#fgrid.go .fm *{animation:none!important}#fgrid .k0{opacity:0}}
/* Runde 5 · neue Farben (Vorschlag, aus der Farbwelt: Americano lila/türkis, Mexicano orange/petrol) */
:root{--teal:#0f7f7a;--teal-ink:#fff;--petrol:#1d5f70;--petrol-ink:#fff;--ko:#a8324f;--ko-ink:#fff;--king:#9a6f0c;--king-ink:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--teal:#3cc6c0;--teal-ink:#04201f;--petrol:#4ea3b8;--petrol-ink:#031a20;--ko:#e57491;--ko-ink:#2a0612;--king:#e0b03a;--king-ink:#1a1200}}
:root[data-theme="dark"]{--teal:#3cc6c0;--teal-ink:#04201f;--petrol:#4ea3b8;--petrol-ink:#031a20;--ko:#e57491;--ko-ink:#2a0612;--king:#e0b03a;--king-ink:#1a1200}
#playbox [data-hsx="ameteam"]{--c:var(--teal);--ci:var(--teal-ink);--d:60ms}
#playbox [data-hsx="mexteam"]{--c:var(--petrol);--ci:var(--petrol-ink);--d:150ms}
#playbox [data-hsx="ko"]{--c:var(--ko);--ci:var(--ko-ink);--d:240ms}
#playbox [data-hsx="king"]{--c:var(--king);--ci:var(--king-ink);--d:330ms}
#fgrid [data-play="ameteam"]{order:5}#fgrid [data-play="mexteam"]{order:6}#fgrid [data-play="ko"]{order:7}#fgrid [data-play="king"]{order:8}
#fgrid .fk-n,#fgrid2 .fk-n{white-space:normal}
/* L1: kleinere Karten darunter */
#morelbl{margin:16px 0 8px}
#fgrid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#fgrid2 .btn.fk{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:flex-start;width:auto;min-height:68px;margin:0;padding:10px 64px 10px 12px;border-radius:13px;text-align:left;color:var(--ci);border:1px solid color-mix(in srgb,var(--c) 72%,#fff);
 background:radial-gradient(130% 90% at 0% 0%,rgba(255,255,255,.3),transparent 55%),linear-gradient(160deg,color-mix(in srgb,var(--c) 80%,#fff),var(--c) 46%,color-mix(in srgb,var(--c) 72%,#000));
 box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 -2px 0 rgba(0,0,0,.16) inset,0 12px 24px -14px color-mix(in srgb,var(--c) 75%,transparent),0 3px 8px -5px rgba(0,0,0,.45)}
#fgrid2 .fk-n{font:700 18px/1 var(--display);letter-spacing:.02em;text-transform:uppercase;position:relative;z-index:2}
#fgrid2 .fm{position:absolute;z-index:1;right:-8px;top:50%;width:66px;height:66px;margin-top:-33px;transform:rotate(-8deg)}
#fgrid2 .fk-top{display:none}
#fgrid2 .fm :is(.kB,.kT,.rA,.rB,.aN,.mS,.mB,.mT,.br){transform-box:fill-box;transform-origin:center}#fgrid2 .fm .mS{transform-origin:50% 100%}
#fgrid2.go .aN{animation:fPopN .45s cubic-bezier(.34,1.56,.64,1) calc(var(--d) + 400ms + var(--i) * 70ms) both}
#fgrid2 .aL{stroke-dasharray:1 1}#fgrid2.go .aL{animation:fDraw .42s cubic-bezier(.4,0,.2,1) calc(var(--d) + 700ms + var(--i) * 60ms) both}
#fgrid2.go .mS{animation:fGrow .5s cubic-bezier(.34,1.4,.64,1) calc(var(--d) + 400ms) both}
#fgrid2.go .mB{animation:fClimb .9s cubic-bezier(.4,0,.3,1) calc(var(--d) + 700ms) both}
#fgrid2.go .mT{animation:fStar .6s cubic-bezier(.34,1.56,.64,1) calc(var(--d) + 1250ms) both}
#fgrid2.go .rB{animation:fRoll 1.1s cubic-bezier(.3,.75,.25,1) calc(var(--d) + 500ms) both}
/* Stand 306: Ergänzungen zur Vorlage */
#fgrid.hs3 [data-play="rotacion"]{grid-column:1/-1}
#fgrid .hssoon,#fgrid2 .hssoon{display:inline-block;white-space:nowrap;align-self:flex-start;margin-top:6px;padding:3px 8px;border-radius:999px;font:700 10.5px/1.1 var(--body);letter-spacing:.06em;text-transform:uppercase;background:rgba(255,255,255,.24);border:1px solid rgba(255,255,255,.5);box-shadow:0 1px 0 rgba(255,255,255,.4) inset}
#fgrid2 .fk-t{display:flex;flex-direction:column;position:relative;z-index:2}
#fgrid .fk.soon,#fgrid2 .fk.soon{filter:grayscale(.85) brightness(.85);opacity:.55}
html.fxoff #fgrid .fm *,html.fxoff #fgrid2 .fm *{animation:none!important}html.fxoff #fgrid .fk::before{animation:none!important}html.fxoff #fgrid .k0{opacity:0}
@media (max-width:359px){#fgrid.k3 .fk-n{font-size:23px}#fgrid.k3 .fk{min-height:132px}#fgrid.k3 .fm{width:88px;height:88px}#fgrid2 .fk-n{font-size:15px}#fgrid2 .btn.fk{padding-right:48px}#fgrid2 .fm{width:44px;height:44px;margin-top:-22px;right:-6px}#fgrid2 .hssoon{font-size:9px;padding:2px 5px;letter-spacing:.02em}#sportrow.ve button[aria-checked="true"] .nm{font-size:19px}#sportrow.ve .nm{font-size:9.5px;letter-spacing:.03em}}
#zpentry{margin:10px 0 14px}
.zpcard{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;gap:12px;width:100%;min-height:68px;margin:0;padding:12px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--gold) 50%,var(--line));background:linear-gradient(180deg,var(--sp-st1),var(--sp-st2));color:var(--fg);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 14px 30px -20px rgba(0,0,0,.7);transition:transform .16s cubic-bezier(.2,.8,.2,1)}
.zpcard::after{content:"";position:absolute;z-index:-1;top:-40px;left:-30px;width:170px;height:130px;pointer-events:none;background:radial-gradient(closest-side,var(--sp-pool),transparent)}
.zpcard:active{transform:translateY(1px) scale(.985)}
.zpcard .zpic{flex:none;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:var(--gold-ink);border:1px solid color-mix(in srgb,var(--gold) 72%,#fff);background:radial-gradient(130% 90% at 0% 0%,rgba(255,255,255,.34),transparent 55%),linear-gradient(160deg,color-mix(in srgb,var(--gold) 80%,#fff),var(--gold) 46%,color-mix(in srgb,var(--gold) 72%,#000));box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 -2px 0 rgba(0,0,0,.16) inset,0 10px 20px -12px color-mix(in srgb,var(--gold) 75%,transparent)}
.zpcard .zptx{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.zpcard .zptx b{font:700 21px/1.05 var(--display);letter-spacing:.03em;text-transform:uppercase}
.zpcard .zptx small{color:var(--muted);font-size:13px;line-height:1.3}
.zpcard .zpar{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:700 20px/1 var(--body);padding-bottom:2px;color:var(--fg);border:1px solid var(--line);background:color-mix(in srgb,var(--fg) 6%,transparent)}
.zpcard.k{min-height:76px;border-radius:16px}
#sspage .zstep{margin-top:4px}
#sspage .zstep .evmx{flex-wrap:wrap;margin-top:0}
#sspage .zstep .evmx input.numin{flex:none;width:2.6em}
#sspage .zstep .evmx input.numin.w4{width:3.4em}
#sspage .zconv{color:var(--muted);font-size:14px}
#sspage .zstep .scores.words{margin-top:8px}
#sspage .zsug{margin:8px 0 0}
#sspage .zres{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
#sspage .zres .zcards{margin:8px 0 0}
#sspage .zres .zc .btn.wide{margin-top:10px}
#sspage .zres .zc .tsum-nos{margin:8px 0 6px}
#sspage .zres .zc .tsum-no{min-width:30px;height:30px;font-size:16px;border-radius:8px}
#sspage .zrec h2{margin:2px 0 8px;font-size:30px}
#sspage .zrec .row.acts{margin-top:12px}
#sspage .zpro .scores{flex-wrap:wrap}
#sspage .zpsum{margin:10px 0 12px}
@media (prefers-reduced-motion:reduce){#fgrid.go .br,html.gzfull #fgrid.k3 .fk:not(:disabled):not(.soon)::before{animation:none!important}}
/* Stand 306 – Fixrunde Prüfer Startseite: M1 Team-Karten still bei „Bewegung reduzieren“, K2 gesperrte Karten ohne Pfeil, K3 keine Rest-Bewegung, K5 „Beachvolleyball“ darf umbrechen */
@media (prefers-reduced-motion:reduce){#fgrid2 .fm *,#fgrid2.go .fm *{animation:none!important}#fgrid .fk.sptx .fk-t,#fgrid .fk.sptx,#playbox [data-play].sptx{animation:none!important}#fgrid .btn.fk,#sportrow *{transition:none!important}}
html.fxoff #fgrid .fk.sptx .fk-t,html.fxoff #playbox [data-play].sptx{animation:none!important}html.fxoff #sportrow *,html.fxoff #fgrid .btn.fk{transition:none!important}
#fgrid .fk.soon .fk-go{visibility:hidden}
/* Stand 308 (Prüfer q307a S2): Spielformen anderer Sportarten = dieselben grauen Karten wie bei Padel – Farbe nach ihrem Motiv (data-hsm), darüber der Grau-Filter von .soon */
#playbox [data-hsm="classic"]{--c:var(--cls);--ci:var(--cls-ink)}#playbox [data-hsm="rotacion"]{--c:var(--accent);--ci:var(--accent-ink)}#playbox [data-hsm="americano"]{--c:var(--purple);--ci:var(--purple-ink)}#playbox [data-hsm="mexicano"]{--c:var(--mex);--ci:var(--mex-ink)}
#playbox [data-hsm="ameteam"]{--c:var(--teal);--ci:var(--teal-ink)}#playbox [data-hsm="mexteam"]{--c:var(--petrol);--ci:var(--petrol-ink)}#playbox [data-hsm="ko"]{--c:var(--ko);--ci:var(--ko-ink)}#playbox [data-hsm="king"]{--c:var(--king);--ci:var(--king-ink)}
#fgrid .fk[data-hss]{color:var(--ci);border:1px solid color-mix(in srgb,var(--c) 72%,#fff);background:radial-gradient(130% 90% at 0% 0%,rgba(255,255,255,.34),transparent 55%),linear-gradient(160deg,color-mix(in srgb,var(--c) 80%,#fff),var(--c) 46%,color-mix(in srgb,var(--c) 72%,#000));box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 -2px 0 rgba(0,0,0,.16) inset,0 18px 32px -16px color-mix(in srgb,var(--c) 75%,transparent),0 4px 10px -6px rgba(0,0,0,.45)}
#fgrid .fk[data-hss] .fm{position:absolute;z-index:1;right:-22px;bottom:-24px;width:100px;height:100px;opacity:.95;transform:rotate(-8deg)}
#fgrid .fk.soon .hssoon,#fgrid2 .fk.soon .hssoon{background:color-mix(in srgb,var(--c) 86%,#fff);position:relative;z-index:3}
#fgrid .fk.lng .fk-n{font-size:21px}#fgrid2 .fk.lng .fk-n{font-size:15px}
@media (max-width:359px){#fgrid .fk.lng .fk-n{font-size:18px}#fgrid .fk[data-hss] .fm{width:80px;height:80px;right:-18px;bottom:-20px}#fgrid2 .fk.lng .fk-n{font-size:13px}}
#sportrow .nm{white-space:normal;text-align:center;hyphens:manual;-webkit-hyphens:manual;max-width:100%;overflow-wrap:normal}
/* Stand 309 (Nachttest Training L3–L5, M2) */
@media not all and (prefers-color-scheme:dark){:root:not([data-theme="dark"]) .glist .pcard.trnc .pc-line .pc-fmt.trn:not(.cls){color:var(--trn)}}
:root[data-theme="light"] .glist .pcard.trnc .pc-line .pc-fmt.trn:not(.cls){color:var(--trn)}
.svr.svsk .svskb{display:inline-block;width:min(60%,220px);height:14px;border-radius:7px;background:var(--line);opacity:.7;vertical-align:middle}
/* Stand 309 (Nachttest Teilen M3, M4, L1): „Text dazu“ als eine Zeile, Knopfreihe überall gleich (auch Training, 320 px) */
.shtxtbox{margin:8px 0 2px}
.shtxtbox .shtxttog{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.shtxtbox .shtxttog .sub{margin:0;flex:none}
.shtxtbox .shtxtpv{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:14px}
.shtxtbox .shtxted{flex:none;font-size:13px;font-weight:600;color:var(--accent);text-decoration:underline}
.shtxtbox .shtxttog.on .shtxtpv{visibility:hidden}
.shtxtbox textarea{margin-top:6px;resize:none}
.sheet.shedit .sb>p.hint,.sheet.shedit .sb .tra>p.hint{display:none}
.row.foot.evsharefoot>.btn:not(#sharewa):not(#evwa){flex:1 1 0;white-space:nowrap;padding-left:6px;padding-right:6px}
.row.foot.evsharefoot>#sharewa,.row.foot.evsharefoot>#evwa{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.sheet.trashare .row.foot.evsharefoot>.btn:not(#sharewa){flex:1 1 0}
.sheet.trashare .row.foot.evsharefoot>#sharewa{flex:1 1 100%}
/* Stand 309 (q309 S1, M2): Platzhalter bis die Schalter da sind; „Nochmal tippen“ bricht um statt abzuschneiden */
.fwait #playbox,.fwait #showbox,.fwait #rulesbox,.fwait #trainbox,.fwait #zpentry,.fwait #homenote,.fwait #tourneybox{display:none!important}
.fwait #ssgo{display:block!important;visibility:hidden}
.sheet.trashare .tra .sprev img{max-height:none}
.fwait #findbox{display:block!important;min-height:56px}
.fwait #findbox>*{visibility:hidden}
.row.foot.evsharefoot>.btn.again:not(#sharewa):not(#evwa){white-space:normal;line-height:1.1;font-size:13px;padding-left:4px;padding-right:4px}
body.gwait #startlists>*,body.gwait #playbox,body.gwait #trainbox,body.gwait #showbox,body.gwait #rulesbox,body.gwait #zpentry{display:none!important}
@media (max-width:370px){#findbox .findrow.two .findbtn{white-space:normal;line-height:1.15;text-align:center;font-size:13.5px}}
.evgone{text-align:center;padding-top:22px}
.evgone .evgone-ic{display:inline-flex;color:var(--accent);margin-bottom:6px}
.evgone.trx .evgone-ic{color:var(--trn)}
.evgone .evh{margin:6px 0 10px}
.evgone .btn{margin-top:14px}
/* Stand 310 (Schalter geplant3): „Alle anzeigen (n weitere)“ unter den 3 geplanten Terminen – ruhig, ganze Breite */
.glist .g3all{margin-top:2px;font-weight:600}
/* Stand 310 (Schalter verschobenTeilen): Fenster „Verschoben – jetzt Bescheid geben“ – das Bild steht ganz da, Farbwelt der Spielform über data-fmt bzw. .trsh */
.mvshare .mvprev{position:relative;display:grid;place-items:center;border-radius:16px;overflow:hidden;background:#0f1512;min-height:150px;margin:4px 0 8px}
.mvshare .mvprev img{display:block;width:100%;height:auto;object-fit:contain}.mvshare .mvprev img:not([src]){display:none}
.mvshare .mvprev .ld{position:absolute;font:500 13px var(--body);color:#c6d3cb}
.mvshare .mvmoved{margin:4px 0 0}
/* Stand 311 (p1 F1/F4/F2/F10/F12, p2 F2/F9, p3 L1/L2): sauberes Turnier-Formular, „länger als eure Zeit“, „Weitere geplant“, Namen auf der Zusage-Seite, ruhiger Sicherungs-Kasten */
.helpbox.tother{margin:0 0 12px;border-left:4px solid var(--accent)}
.tsum .tlong{color:var(--fg);background:color-mix(in srgb,var(--accent) 10%,transparent);border-radius:10px;padding:8px 10px;font-size:14px}
.rpmore{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 12px;font-size:13px;color:var(--muted)}
.rpmore .rpm-l{font-weight:600;margin-right:2px}
.rpmore .rpm-i{border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:999px;padding:5px 10px;font:600 13px var(--body);min-height:32px;cursor:pointer}
.rpmore .rpm-plan{margin:0}
.evnm{overflow-wrap:normal;word-break:normal;hyphens:none}
.evlist.two .evnm{overflow:hidden;text-overflow:ellipsis}
.dk-one .dk-rad{display:none}.dk-one .dk-opt{cursor:default;grid-template-columns:1fr}/* Stand 313 (Prüfer p1 F1): ohne Auswahlkreis eine Spalte – Titel und Satz liegen nicht mehr übereinander */
.svb.calm{border-color:var(--line)}.svb.calm .svi{background:var(--soft);color:var(--accent)}
.ogtr{display:block;margin-top:10px}
.gdelpl{color:var(--fg)}
.trn2h .pod{font-size:20px}
.tra .trrecl{list-style:none;margin:6px 0 0;padding:0}.tra .trrecl li{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}.tra .trrecl li span{color:var(--muted)}
.tra .kpi.hl{border-color:color-mix(in srgb,var(--trn) 55%,var(--line))}.tra .kpi.hl b{color:var(--trn)}
.sheet .trx + .tra.trn2{margin-top:40px}
.evcard.evgone{margin-top:44px}
/* Stand 311 Teil D: Datenschutz-Text in der App, „Verschieben“ im Fenster „Verschieben, absagen oder beenden?“ */
.ablsh .ablsheet{max-height:62vh;overflow:auto;font-size:14px;line-height:1.5}.ablsh .ablsheet h1{font-size:20px;margin:0 0 8px}.ablsh .ablsheet h2{font-size:16px;margin:14px 0 6px}
.dk-opt[data-k="move"][aria-checked="true"]{border-color:var(--accent);background-color:var(--soft);box-shadow:0 0 0 1px var(--accent) inset}.dk-opt[data-k="move"][aria-checked="true"] .dk-rad{border-color:var(--accent)}.dk-opt[data-k="move"] .dk-rad::after{background:var(--accent)}
.dk-mv{margin:-2px 0 8px;padding:12px;border-radius:14px;background:var(--soft)}.dk-mv .players{margin:0 0 8px}.dk-mvn{margin:4px 0 0;font-size:14px}
/* Stand 312 (Schalter trainPrice/payments, scratchpad/stripe-modul/UI-SPEC.md): Preisarten, Zahlarten, Bezahlen – nur bestehende Bauteile, dazu diese Zeilen */
.tag.ok{color:var(--accent);border-color:var(--accent)}
.payrows{display:grid;gap:6px;margin:10px 0 0}.payrows div{display:flex;justify-content:space-between;gap:10px;font-size:14px}.payrows div span:last-child{font-weight:700;white-space:nowrap}
.payrows .tot{border-top:1px solid var(--line);padding-top:6px}
.trpms button[disabled],.trmust button[disabled]{opacity:.45}.evpay{margin:8px 0 0}.evpay .linkbtn{font-weight:700}.evp .payx{flex:none;font-size:12px}.evp .payx .tag{margin-left:0}
/* Stand 313 (Schalter shareMotifs): Teilbilder – „Für mich“ / „Für die Gruppe“ nebeneinander, das gewählte Bild umrandet (Farbe der App), je „Anderes Bild“; Folien 4–6 im Fenster „Link teilen“ */
.tbsheet .tbpair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 4px}.tbsheet .tbpair.one{grid-template-columns:minmax(0,min(100%,340px));justify-content:center}
.tbsheet .tbcol{min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px}.tbsheet .tbcol .sub{margin:0;align-self:flex-start;font-weight:600}
.tbsheet .tbst{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1080/1350;padding:0;border:2px solid var(--line);border-radius:14px;overflow:hidden;background:#0f1512;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tbsheet .tbst[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}
.tbsheet .tbst .tbimg{display:block;width:100%;height:100%;object-fit:contain}.tbsheet .tbst .ld{font:500 13px var(--body);color:#c6d3cb;padding:8px;text-align:center}
.tbsheet .tbnext,.evshare .tbevmore,.mvshare .tbnext{display:block;margin:0 auto;min-height:44px;padding:6px 12px}
.tbsheet.trsh .tbst[aria-pressed="true"]{border-color:var(--trn,#4fc3cf);box-shadow:0 0 0 3px color-mix(in srgb,var(--trn,#4fc3cf) 35%,transparent)}
.evslide.tbslide{display:grid;place-items:center;background:#0f1512}.evslide.tbslide canvas{display:block;height:auto;width:auto;max-width:100%;max-height:min(56vh,460px);aspect-ratio:1080/1350}
.mvshare .mvprev.tbmv img{max-height:min(56vh,460px);width:auto;max-width:100%}
@media (max-width:360px){.tbsheet .tbpair{gap:6px}.tbsheet .tbcol .sub{font-size:13px}}
/* Stand 313 (Prüfer p1 F6): Datenschutz-Karte auf schmalen Geräten kompakt (Text links, Knöpfe rechts untereinander) und unten Platz in Höhe der Karte – nichts bleibt verdeckt */
body:has(#ablcard){padding-bottom:calc(150px + env(safe-area-inset-bottom,0px))}
@media (max-width:360px){.ablcard{display:flex;align-items:center;gap:8px;padding:8px 10px;left:8px;right:8px}.ablcard p{margin:0;font-size:12.5px;line-height:1.35;flex:1;min-width:0}.ablcard .row{flex:0 0 auto;flex-direction:column;gap:4px;margin:0}.ablcard .row .btn{min-height:36px;padding:4px 10px}body:has(#ablcard){padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}}
/* Stand 314 (p2 F8): Zusage-Seite in der Farbe der Spielform – dieselben Werte wie Gruppe/Fenster (Stand 295), eigene Regeln */
#evpage[data-fmt="cls"]{--accent:#1f4e8c;--accent-ink:#ffffff;--gold:#b83a30;--gold-ink:#ffffff;--gold-text:#a3322a;--soft:color-mix(in srgb,#1f4e8c 10%,var(--panel))}#evpage[data-fmt="ame"]{--accent:#6b4fbb;--accent-ink:#ffffff;--gold:#0e7c7b;--gold-ink:#ffffff;--gold-text:#0b6b6a;--soft:color-mix(in srgb,#6b4fbb 10%,var(--panel))}#evpage[data-fmt="mex"]{--accent:#a34216;--accent-ink:#ffffff;--gold:#1d6a85;--gold-ink:#ffffff;--gold-text:#1d6a85;--soft:color-mix(in srgb,#a34216 10%,var(--panel))}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) #evpage[data-fmt="cls"]{--accent:#78a6e8;--accent-ink:#06142b;--gold:#f08a7a;--gold-ink:#2a0a06;--gold-text:#f08a7a;--soft:color-mix(in srgb,#78a6e8 14%,var(--panel))}:root:not([data-theme="light"]) #evpage[data-fmt="ame"]{--accent:#9b84e6;--accent-ink:#140a2e;--gold:#4fd1c5;--gold-ink:#04201e;--gold-text:#4fd1c5;--soft:color-mix(in srgb,#9b84e6 14%,var(--panel))}:root:not([data-theme="light"]) #evpage[data-fmt="mex"]{--accent:#ec8a5f;--accent-ink:#2a0e02;--gold:#6cc3dc;--gold-ink:#04202a;--gold-text:#6cc3dc;--soft:color-mix(in srgb,#ec8a5f 14%,var(--panel))}}
:root[data-theme="dark"] #evpage[data-fmt="cls"]{--accent:#78a6e8;--accent-ink:#06142b;--gold:#f08a7a;--gold-ink:#2a0a06;--gold-text:#f08a7a;--soft:color-mix(in srgb,#78a6e8 14%,var(--panel))}:root[data-theme="dark"] #evpage[data-fmt="ame"]{--accent:#9b84e6;--accent-ink:#140a2e;--gold:#4fd1c5;--gold-ink:#04201e;--gold-text:#4fd1c5;--soft:color-mix(in srgb,#9b84e6 14%,var(--panel))}:root[data-theme="dark"] #evpage[data-fmt="mex"]{--accent:#ec8a5f;--accent-ink:#2a0e02;--gold:#6cc3dc;--gold-ink:#04202a;--gold-text:#6cc3dc;--soft:color-mix(in srgb,#ec8a5f 14%,var(--panel))}
/* Stand 314 (p2 F11): „Nur diesen Termin?“ mit Abbrechen – drei Knöpfe, „Nur diesen Termin“ ganz unten in voller Breite */
.row.foot.scfoot{flex-wrap:wrap}.row.foot.scfoot>.btn{flex:1 1 auto;min-width:0}.row.foot.scfoot>#scone{flex:1 1 100%;order:5}
/* Stand 314 (p2 F6): eine Möglichkeit – auch die Datums-Kästchen (.dk-tl, sonst Spalte 2) in die eine Spalte: Titel, Satz, Kästchen untereinander */
.dk-one .dk-opt>*{grid-column:1/-1}
/* Stand 314 (p2 S3): „−1 Std.“ aus, wenn der Beginn schon vorbei wäre */
.dk-mv .chip[disabled]{opacity:.45;cursor:not-allowed}.dk-mvpast{margin:4px 0 0}
/* Stand 314 (Prüfer p1 F7): „Plan ändern“ im Satz – Tippfläche über Innenabstand, keine leere Zeile davor */
#rpedit{min-height:0;padding:10px 4px;margin:-10px -4px;vertical-align:baseline}
/* Stand 314 (p1 F8): Serien-Pille darf zweizeilig sein, ohne zu kleben */
.evser{border-radius:12px;line-height:1.3;padding:3px 10px}
/* Stand 314 (p1 F9): „anderer Tag“ ist ein Aufklapper – nur umrandet; gefüllt ist nur der gewählte Tag. Der bisherige Tag mit „bisher“ */
.dk-mvq .chip[data-mvday][aria-pressed="true"]{background:var(--panel);color:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.dk-mvd .chip small{font-size:11px;opacity:.75;margin-left:2px}.dk-mvn{margin:8px 0 6px}
/* Stand 314 (p1 F12): solange „Ist das bei dir? – anmelden“ offen ist, gibt es nur einen Hauptknopf; der Kasten neutral statt mint */
.evwho:has(.evme) #evjrsend{display:none}.helpbox.evme{background:var(--panel);border-color:var(--line)}
/* Stand 314 (p1 F13): langer Gruppenname zweizeilig statt abgeschnitten */
#gname.wrap2{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.08}
/* Stand 315 (shareAnim): Teilbilder bauen sich auf – Canvas an der Stelle des fertigen Bildes; Empfänger-Karte oben auf Zusage- und Tages-Spielseite */
canvas.tbanimc{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.mvshare .mvprev.taplay img{display:none}.mvshare .mvprev canvas.tbanimc{display:block;width:auto;height:auto;max-width:100%;max-height:min(56vh,460px);aspect-ratio:1080/1350}
.tbrecv{margin:4px 0 14px}.tbrecv>.sub{margin:0 0 6px;text-align:center}
.tbrbox{position:relative;display:grid;place-items:center;width:100%;max-width:min(100%,300px,calc(46vh * 0.8));margin:0 auto;aspect-ratio:1080/1350;border-radius:14px;overflow:hidden;background:#0f1512;border:1px solid var(--line)}
.tbrbox .tbrimg{display:block;width:100%;height:100%;object-fit:contain}.tbrbox .ld{font:500 13px var(--body);color:#c6d3cb;padding:8px;text-align:center}
.tbrsheet .tbrecv>.sub{display:none}.tbrsheet .tbrbox{max-width:min(100%,400px,calc(62vh * 0.8))}
/* Stand 316 (startPickGroup): „Mit wem spielst du?“ – Gruppen als Karten im Stil der Spielform-Karten (Verlauf, Glanz, Motiv), Farbe = zuletzt gespielte Spielform; noch nie gespielt = neutrale Karte. Live-Punkt in der Schriftfarbe der Karte (nie Grün/Rot auf Farbe) */
.spgl{display:grid;gap:10px;margin:14px 0 4px}
#sspage .btn.spgc{--c:var(--accent);--ci:var(--accent-ink);position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:78px;margin:0;padding:12px 14px 12px 16px;border-radius:14px;text-align:left;color:var(--ci);border:1px solid color-mix(in srgb,var(--c) 72%,#fff);-webkit-tap-highlight-color:transparent;transition:transform .16s cubic-bezier(.2,.8,.2,1);
 background:radial-gradient(130% 90% at 0% 0%,rgba(255,255,255,.3),transparent 55%),linear-gradient(160deg,color-mix(in srgb,var(--c) 80%,#fff),var(--c) 46%,color-mix(in srgb,var(--c) 72%,#000));
 box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 -2px 0 rgba(0,0,0,.16) inset,0 12px 24px -14px color-mix(in srgb,var(--c) 75%,transparent),0 3px 8px -5px rgba(0,0,0,.45)}
#sspage .spgc[data-lf="classic"]{--c:var(--cls);--ci:var(--cls-ink)}#sspage .spgc[data-lf="americano"]{--c:var(--purple);--ci:var(--purple-ink)}#sspage .spgc[data-lf="mexicano"]{--c:var(--mex);--ci:var(--mex-ink)}#sspage .spgc[data-lf="training"]{--c:var(--trn);--ci:var(--trn-ink)}
#sspage .btn.spgc.nolf{color:var(--fg);background:var(--panel);border-color:var(--line);box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 3px 8px -6px rgba(0,0,0,.35)}
.spgt{display:flex;flex-direction:column;gap:5px;min-width:0;position:relative;z-index:2;padding-right:4px}.spgc:has(.fm) .spgt{padding-right:96px}
.spgn{font:700 21px/1.02 var(--display);letter-spacing:.02em;text-transform:uppercase;overflow-wrap:anywhere}
.spgs{display:block;font:500 13px/1.35 var(--body);opacity:.92}.spgs .livedot{display:inline-block;vertical-align:0;margin-right:6px}
.spgc.nolf .spgs{color:var(--muted);opacity:1}
.spgc:not(.nolf) .livedot{background:currentColor}.spgc:not(.nolf) .livedot::after{background:currentColor}
.spggo{flex:none;position:relative;z-index:3;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:700 20px/1 var(--body);padding-bottom:2px;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.45);box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 4px 10px -4px rgba(0,0,0,.35)}
.spgc.nolf .spggo{background:var(--soft);border-color:var(--line);color:var(--accent);box-shadow:none}
.spgc .fm{position:absolute;z-index:1;right:50px;top:50%;width:64px;height:64px;margin-top:-32px;transform:rotate(-8deg);pointer-events:none}
#sspage .btn.spgc:active{transform:translateY(2px) scale(.98)}
@media (max-width:359px){.spgn{font-size:19px}.spgc .fm{width:52px;height:52px;margin-top:-26px;right:46px}.spgc:has(.fm) .spgt{padding-right:84px}}
#sspage .spgp .chip.spgadd{border-style:dashed;background:transparent;color:var(--accent)}
#sspage .spgnew{margin:10px 0 0}.spgsum{margin:0 0 4px}
/* Stand 317 (q315 A3): geteiltes Bild auf der Zusage-Seite – antippbar (führt zum Namensfeld), auf kleinen Handys kleiner, damit „Bin dabei“ näher rückt */
/* Stand 317 (q315 B-L1): „Link teilen“ – jede Folie in ihrer eigenen Höhe, der Rahmen folgt dem gezeigten Bild */
.sheet .evcar{align-items:flex-start;overflow-y:hidden;transition:height .2s ease}
#evpage .tbrecv{cursor:pointer}@media (max-height:700px){#evpage .tbrecv .tbrbox{max-width:min(100%,220px,calc(32vh * 0.8))}}
/* Stand 319 (Schalter firstSteps, Martin 14.11. 18:02/18:09): Keine leeren Seiten – erste Schritte (Petrol-Gold), Karte „Nächstes Training“, Ranking-Vorschau, Feiern */
.fsbox{margin:14px 0 4px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.fsbox .fshd{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 10px}
.fsbox .fshd h3{margin:0;font:700 22px/1.1 var(--display);letter-spacing:.01em;text-transform:none}
.fsbox .fshd span{color:var(--muted);font-size:14px;white-space:nowrap}
.fsgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fst{display:grid;justify-items:center;align-content:start;text-align:center;gap:4px;padding:12px 6px 10px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--fg) 3%,var(--panel));min-width:0}
.fst b{font:600 13.5px/1.2 var(--body);color:var(--fg);overflow-wrap:anywhere}
.fst small{font-size:12px;line-height:1.3;color:var(--muted);overflow-wrap:anywhere}
.fst.lit{border-color:color-mix(in srgb,var(--gold) 60%,var(--line));background:linear-gradient(160deg,color-mix(in srgb,var(--gold) 13%,var(--panel)),var(--panel) 70%)}
.fst.lit small{color:var(--gold-text)}
.fst.nx{border-color:color-mix(in srgb,var(--trn) 55%,var(--line));border-style:dashed}
.fst.sk{height:118px;background:color-mix(in srgb,var(--fg) 4%,var(--panel));border-style:solid}
.fsm{position:relative;display:inline-grid;place-items:center;width:var(--s);height:var(--s);border-radius:50%;color:color-mix(in srgb,var(--muted) 85%,transparent);background:color-mix(in srgb,var(--fg) 7%,var(--panel));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--fg) 10%,transparent);flex:none}
.fsm>svg{width:46%;height:46%}
.fsm.lit{color:#3b2a00;background:radial-gradient(circle at 34% 28%,#fff3c4 0,#f2c94c 34%,#c9961a 72%,#9a6f0c 100%);box-shadow:0 0 0 3px color-mix(in srgb,var(--trn) 55%,transparent),0 6px 16px -6px rgba(201,150,26,.65)}
.fsm .fslk{position:absolute;right:-2px;bottom:-2px;width:40%;height:40%;border-radius:50%;display:grid;place-items:center;background:var(--panel);color:var(--muted);box-shadow:0 0 0 1.5px var(--line)}
.fsm .fslk svg{width:62%;height:62%}
.fshow{margin:12px 0 0;font-size:14.5px;line-height:1.45;color:var(--fg)}
.fstr{position:relative;margin:0 0 14px;padding:16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--trn) 45%,var(--line));background:linear-gradient(165deg,color-mix(in srgb,var(--trn) 20%,var(--panel)),color-mix(in srgb,var(--trn) 6%,var(--panel)) 75%);overflow:hidden}
.fstag{display:inline-block;padding:4px 10px;border-radius:999px;font:700 12px/1.2 var(--body);letter-spacing:.09em;text-transform:uppercase;color:var(--trn);background:color-mix(in srgb,var(--trn) 16%,var(--panel))}
.fstr h3{margin:10px 0 2px;font:800 clamp(30px,10vw,42px)/1 var(--display);letter-spacing:.005em;color:var(--fg);text-transform:none}
.fswh{margin:4px 0 0;color:var(--muted);font-size:14.5px}
.fswh b{color:var(--trn)}
.fscd{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;margin:14px 0 0}
.fscd div{display:grid;justify-items:center;padding:10px 4px;border-radius:12px;background:color-mix(in srgb,var(--bg) 55%,transparent);border:1px solid color-mix(in srgb,var(--trn) 22%,transparent)}
.fscd b{font:800 30px/1 var(--display);color:var(--fg)}
.fscd span{font-size:12.5px;color:var(--muted)}
.fsppl{display:flex;align-items:center;gap:12px;margin:14px 0 12px}
.fsppl p{margin:0;min-width:0;font-size:15px;line-height:1.35}
.fsppl small{display:block;color:var(--muted);font-size:13.5px;margin-top:2px}
.fsfs{display:flex;flex:none}
.fsf{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;font:700 14px var(--body);font-style:normal;color:var(--trn-ink);background:var(--trn);box-shadow:0 0 0 2px var(--panel);flex:none}
.fsfs .fsf+.fsf{margin-left:-8px}
.fsf.open{background:transparent;color:var(--trn);box-shadow:none;border:1.5px dashed color-mix(in srgb,var(--trn) 70%,transparent)}
.fstr .fsgo{margin-top:2px}
.fsin{display:flex;align-items:center;gap:8px;margin:2px 0 0;padding:11px 14px;border-radius:12px;font-weight:600;color:var(--fg);background:color-mix(in srgb,var(--trn) 14%,var(--panel));border:1px solid color-mix(in srgb,var(--trn) 40%,transparent)}
.fsin svg{color:var(--trn)}
.fstr .fsmore{display:block;margin:10px auto 0;color:var(--trn)}
.fsrk{margin-top:4px}
.fsrkh{display:grid;gap:8px;margin:0 0 10px}
.fsrkh b{font:700 19px/1.2 var(--display);letter-spacing:.01em}
.fstag.ex{justify-self:start;color:var(--gold-text);background:color-mix(in srgb,var(--gold) 15%,var(--panel));border:1px dashed color-mix(in srgb,var(--gold) 55%,transparent)}
.fsrkl{list-style:none;margin:0;padding:8px;border:1.5px dashed color-mix(in srgb,var(--muted) 45%,transparent);border-radius:12px;display:grid;gap:6px;background:repeating-linear-gradient(135deg,transparent 0 14px,color-mix(in srgb,var(--fg) 2.5%,transparent) 14px 28px)}
.fsrkl li{display:grid;grid-template-columns:22px 30px minmax(0,1fr) minmax(40px,26%) 40px 30px;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;background:var(--panel);opacity:.92}
.fsrkl li.me{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent) 55%,transparent)}
.fsrkl .n{font:700 16px var(--display);color:var(--muted);text-align:center}
.fsrkl li:first-child .n{color:var(--gold)}
.fsrkl .fsf{width:28px;height:28px;font-size:12px;background:color-mix(in srgb,var(--muted) 30%,var(--panel));color:var(--fg)}
.fsrkl .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.fsrkl .bar{height:6px;border-radius:3px;background:color-mix(in srgb,var(--fg) 8%,transparent);overflow:hidden}
.fsrkl .bar i{display:block;height:100%;width:var(--w);border-radius:3px;background:color-mix(in srgb,var(--muted) 70%,transparent)}
.fsrkl b{text-align:right}.fsrkl small{color:var(--muted);text-align:right}
.fsrk .btn.wide{margin-top:12px}
.fsrk .fsbox{margin-top:16px}
.fsprof{display:block;margin-top:12px}
.fsprof .fsbox{margin:0 0 8px}
.fscelrow{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.fsseg{display:inline-flex;padding:3px;border-radius:10px;border:1px solid var(--line);background:color-mix(in srgb,var(--fg) 4%,var(--panel));flex:none}
.fsseg button{font:600 14px var(--body);padding:7px 12px;min-height:36px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
.fsseg button[aria-checked="true"]{background:var(--trn);color:var(--trn-ink)}
.fscel{position:fixed;z-index:9000;left:0;right:0}
.fscel.big{inset:0;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,#000 55%,transparent);animation:fsfade .25s ease}
.fscel.big .fscc{position:relative;display:grid;justify-items:center;text-align:center;gap:6px;width:min(360px,100%);padding:28px 20px 20px;border-radius:20px;background:var(--panel);border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));box-shadow:0 20px 60px -20px rgba(0,0,0,.6)}
.fscel.big .fsm{animation:fspop .7s cubic-bezier(.2,1.4,.4,1) both}
.fscel.big h2{margin:2px 0 0;font:800 30px/1.05 var(--display)}
.fscel .fsk{margin:10px 0 0;font:700 12px var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text)}
.fscel.big .btn{margin-top:12px}
.fsray{position:absolute;left:50%;top:84px;width:0;height:0;pointer-events:none}
.fsray i{position:absolute;left:-2px;top:-2px;width:4px;height:4px;border-radius:50%;background:var(--gold);transform:rotate(var(--a)) translateY(0);opacity:0;animation:fsray .9s ease-out var(--d) both}
.fsray i:nth-child(3n){background:var(--trn)}
.fscel.mini{top:calc(env(safe-area-inset-top,0px) + 10px);display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.fscel.mini .fscc{pointer-events:auto;display:flex;align-items:center;gap:12px;width:min(440px,100%);padding:10px 12px;border-radius:14px;background:var(--panel);border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));box-shadow:0 10px 30px -12px rgba(0,0,0,.45)}
.fscel.mini .fscc>span:not(.fsm){min-width:0;flex:1}.fscel.mini small{display:block;color:var(--muted);font-size:13px}
.fscel .fsx{border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1;min-width:36px;min-height:36px;cursor:pointer}
@keyframes fsfade{from{opacity:0}to{opacity:1}}
@keyframes fspop{0%{transform:scale(.3) rotate(-12deg);opacity:0}100%{transform:none;opacity:1}}
@keyframes fsray{0%{opacity:1;transform:rotate(var(--a)) translateY(0)}100%{opacity:0;transform:rotate(var(--a)) translateY(-96px)}}
@media (prefers-reduced-motion:reduce){.fscel.big,.fscel.big .fsm,.fsray i{animation:none}.fsray{display:none}}
@media (max-width:359px){.fsgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.fscd b{font-size:26px}.fsrkl li{grid-template-columns:18px 28px minmax(0,1fr) 36px 26px}.fsrkl .bar{display:none}}
/* Stand 320 (Schalter payInApp/eventPrice, Martin 14.11. 18:33–20:44): Bezahlen im App-Design, ruhiger Eintrag „+ In der App bezahlen lassen“, Erklärkarte, Preis beim Spieltermin */
.payadd-row{margin:10px 0 0}
.linkbtn.payadd{color:var(--accent);font-weight:600;font-size:14px}
.payapp{margin:12px 0 0;padding:12px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent) 6%,var(--panel))}
.payapp-h{display:flex;align-items:center;gap:10px}.payapp-h>svg{color:var(--accent);flex:none}
.payapp-h>span{flex:1;min-width:0}.payapp-h b{display:block;font-size:15px}.payapp-h small{display:block;color:var(--muted);font-size:13px}
.payapp-q{margin:12px 0 0;padding:10px 0 0;border-top:1px solid var(--line)}
.epbox{margin:12px 0 0;padding:12px 0 0;border-top:1px dashed var(--line)}
.epbox .trprice input{max-width:110px}
/* Erklärkarte */
.pgsteps{list-style:none;margin:6px 0 0;padding:6px 0 0 7px;display:grid;gap:12px}
.pgst{display:flex;gap:12px;align-items:flex-start}
.pgst b{display:block;font-size:15px;line-height:1.25}.pgst small{display:block;color:var(--muted);font-size:13.5px;line-height:1.4;margin-top:2px}
.pgimg{position:relative;flex:none;width:64px;height:58px;border-radius:12px;background:color-mix(in srgb,var(--accent) 9%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));display:grid;place-items:center}
.pgimg i{position:absolute;top:-7px;left:-7px;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:700 12px/22px var(--body);font-style:normal;text-align:center}
.pgart{width:52px;height:47px;fill:none;stroke:var(--fg);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.86}
.pgart .f{fill:color-mix(in srgb,var(--accent) 30%,transparent);stroke:var(--accent)}.pgart .q{fill:var(--panel)}
.pgart .es1{fill:#c8102e;stroke:none}.pgart .es2{fill:#f1bf00;stroke:none}.pgart .ar{stroke:var(--accent)}
.pgart .tx{fill:var(--fg);stroke:none;font:700 9px var(--mono)}.pgart .tx.sm{font-size:7.5px}
.pgbt button{min-width:0}
.pgdone{margin-top:14px}
/* Bezahlen in der App */
.pibox h2{margin-bottom:10px}
.piorder{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:color-mix(in srgb,var(--fg) 3%,var(--panel));display:grid;gap:8px}
.piwhat{display:flex;gap:10px;align-items:center}.piwhat b{display:block;font-size:16px;line-height:1.25;overflow-wrap:anywhere}.piwhat small{display:block;color:var(--muted);font-size:13px}
.piic{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.pirow{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:var(--muted)}.pirow span:last-child{color:var(--fg);font-weight:600;text-align:right}
.pitot{border-top:1px solid var(--line);padding-top:8px;color:var(--fg)}.pitot b{font:700 24px/1 var(--display);letter-spacing:.01em}
.pielem{margin:14px 0 0;min-height:170px}
.pisk{display:grid;gap:10px}.pisk i{display:block;height:46px;border-radius:10px;background:linear-gradient(90deg,color-mix(in srgb,var(--fg) 6%,var(--panel)) 0%,color-mix(in srgb,var(--fg) 11%,var(--panel)) 40%,color-mix(in srgb,var(--fg) 6%,var(--panel)) 80%);background-size:300% 100%;animation:pisk 1.3s ease-in-out infinite}
.pisk i.h{width:62%;height:20px}.pild{margin:8px 0 0}
@keyframes pisk{0%{background-position:100% 0}100%{background-position:0 0}}
.pimsg{margin:12px 0 0;padding:10px 12px;border-radius:12px;font-size:14px;line-height:1.45;border:1px solid var(--line);background:var(--panel)}
.pimsg b{display:block;font-size:15px;margin-bottom:2px}
.pimsg.err{border-color:color-mix(in srgb,var(--down-text) 45%,var(--line));background:color-mix(in srgb,var(--down-text) 8%,var(--panel))}.pimsg.err b{color:var(--down-text)}
.pimsg.info{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.pisafe{display:flex;align-items:center;gap:6px;margin:12px 0 0}.pisafe svg{flex:none}
.pish .foot .pigo{font-size:17px;min-height:52px;padding:12px 18px}
.pish .foot .pigo.wait{opacity:.75}
.pistate{display:grid;place-items:center;width:72px;height:72px;margin:6px auto 10px;border-radius:50%;background:color-mix(in srgb,var(--fg) 6%,var(--panel));color:var(--muted)}
.pibox:has(.pistate) h2,.pibox:has(.pistate) p{text-align:center}
.pidone{text-align:center;padding:8px 0 4px}.pidone h2{margin:6px 0 6px}
.pick{position:relative;width:84px;height:84px;margin:6px auto 8px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink)}
.pick svg{width:44px;height:44px}
.pi-viel .pick{animation:pipop .5s cubic-bezier(.2,1.4,.4,1) both}.pi-viel .pick svg path{stroke-dasharray:30;stroke-dashoffset:30;animation:pidraw .45s .25s ease-out forwards}
.pick i{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:var(--gold,#c9961a);opacity:0;animation:piray .8s .2s ease-out forwards}
.pick i:nth-child(2){--a:0deg}.pick i:nth-child(3){--a:60deg;background:var(--accent)}.pick i:nth-child(4){--a:120deg}.pick i:nth-child(5){--a:180deg;background:var(--accent)}.pick i:nth-child(6){--a:240deg}.pick i:nth-child(7){--a:300deg;background:var(--accent)}
@keyframes pipop{0%{transform:scale(.4);opacity:0}100%{transform:none;opacity:1}}
@keyframes pidraw{to{stroke-dashoffset:0}}
@keyframes piray{0%{opacity:1;transform:rotate(var(--a)) translateY(0)}100%{opacity:0;transform:rotate(var(--a)) translateY(-62px)}}
@media (prefers-reduced-motion:reduce){.pisk i,.pi-viel .pick,.pi-viel .pick svg path,.pick i{animation:none}.pi-viel .pick svg path{stroke-dashoffset:0}.pick i{display:none}}
.evpayback{color:var(--fg)}
/* Stand 321 (Martin 21:39/22:02, q318share): Teilbilder beim Termin/Training quer 1200 × 630 – feste Rahmenhöhe (ein Format), dunkle Folie bis zum Aufbau, „Als Bild senden“ */
.sheet .evcar.evland{aspect-ratio:1200/630;height:auto!important;align-items:stretch;transition:none;background:#0b0c0e}
.evcar.evland .evslide{aspect-ratio:1200/630;background:#0b0c0e;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);place-items:center;overflow:hidden}
.evcar.evland .evslide canvas{display:block;width:100%;height:100%;min-width:0;max-width:none;max-height:none}
.evcar.evland .evslide svg{width:100%;height:100%}.evcar.evland .tbwait .ld{font:500 13px var(--body);color:#c6d3cb;padding:8px;text-align:center}
.evimgrow{display:flex;justify-content:center}.evimgrow .linkbtn{min-height:44px;padding:6px 12px}
.tbsheet.tbland .tbst{aspect-ratio:1200/630;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.tbrbox.tbland{aspect-ratio:1200/630;max-width:100%}
.mvshare .mvprev.tbmv img{max-height:none;width:100%;height:auto;aspect-ratio:1200/630}.mvshare .mvprev canvas.tbanimc{width:100%;height:auto;max-height:none}
/* Stand 322: Bezahlen/Training/Termin – Betrag ohne Umbruch (q320 B3), Link „Meine Trainings ansehen ›“, „+ Weiterer Termin“, Zusage ohne Empfang gemerkt, Tage-Zeile statt Countdown */
.pitot b{white-space:nowrap}.pitot span{min-width:0}
.trminel{margin:2px 0 6px;text-align:right}.trminel .linkbtn{min-height:44px;padding:6px 0}
.trmore{margin:4px 0 14px}.trmorebtn{border-color:color-mix(in srgb,var(--trn,#17707a) 45%,var(--line))}
.evrsq{margin:0 0 10px}.paymine{display:block}
.fscd.fscal{display:block}.fscd.fscal .fsrel{margin:6px 0 2px;font-size:17px}
.newver{transition:bottom .2s}
/* Stand 323: Großtest Orga/Trainer/Spieler, Nachttest – Zahlenfeld „Höchstens … Spieler“ nie schmaler als 44 px (Orga L6), Preiszeile auf der Terminkarte (L8), Ladehinweis /g/… (PWA F6) */
.evmx{flex-wrap:wrap}.evmx input.numin{flex:0 0 auto;min-width:44px;width:3em;text-align:center}
#gboot{animation:gbootOut .3s 25s forwards}@keyframes gbootOut{to{opacity:0;visibility:hidden;pointer-events:none}}
:root:not([data-theme="light"]) #gboot{background:var(--bg)}
.pc-pl{color:var(--muted);font-size:14px}.evpr{white-space:nowrap}
.fsin.fsfull{display:block;line-height:1.4}
/*323END*/
/* Stand 324: Teilbetrag erstatten (Schalter refundPart) – Betragsfeld wie der Trainingspreis; „Statistik teilen“ (Schalter statsShare) unter „Statistik von …“ */
.rfpl{display:block;font-weight:700;margin:8px 0 6px}.rfprow{display:flex;align-items:center;gap:10px;margin:0 0 6px}.sheet .rfprow input.rfpin{width:120px;flex:0 0 120px;min-height:48px;text-align:center;font:800 26px var(--display)}.rfpcur{color:var(--muted);font-weight:700}
.sec-stats .stshare{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:10px;min-height:44px}
#findbox .findrow.two .findbtn{white-space:normal;line-height:1.15;text-align:center} /* Stand 324 (q323 B L1): „Find a training session“/„Buscar entrenamiento“ brechen bei 390 px um statt überzulaufen */
/* Stand 325 (Martin 15.11. 05:39): Teilbild-Fenster mit genau einem Bild, groß */.tbsheet .tbpair.tbone{grid-template-columns:minmax(0,1fr)}.tbsheet.tbland .tbpair.tbone{grid-template-columns:minmax(0,1fr)}.tbsheet .tbone .tbst{cursor:default;border-color:var(--line);box-shadow:none}.tbsheet .tbone .tbst .hvst{width:100%}/* Stand 325 (Martin 15.11. 05:43/06:00): Zeile „Text dazu … ändern“ nur mit Schalter nachtExtras (Klasse .nxon am Fenster) – sonst ausgeblendet, der Begleittext geht trotzdem mit */.sheet:not(.nxon) .shtxtbox{display:none!important}/*324END*/
