@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Cormorant+Garamond:wght@600;700&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
/* ─── LIGA-APP v2 — Design-System (an Snooker-App angelehnt) ──────────────── */
:root{
  --font:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;
  --serif:'Cormorant Garamond','Georgia',serif;
  --bg:#060f09;--bg2:#0a1a0d;--card:#0f1d13;--card2:#131f16;--card3:#172218;
  --border:rgba(255,255,255,.07);--border2:rgba(255,255,255,.12);--border3:rgba(255,255,255,.18);
  --text:#cddfc5;--text2:#8aaa92;--muted:#4a6a52;--muted2:#3a5342;
  --gold:#c9a84c;--gold2:#b8972e;--gold3:#a07820;--gold-bg:rgba(201,168,76,.1);
  --green:#22a455;--green2:#1a7a40;--green-bg:rgba(34,164,85,.1);
  --red:#e05050;--red-bg:rgba(220,60,60,.1);
  --blue:#4a9fd4;--blue-bg:rgba(74,159,212,.1);
  --orange:#e08830;--orange-bg:rgba(224,136,48,.1);
  --shadow:0 2px 8px rgba(0,0,0,.3),0 6px 24px rgba(0,0,0,.25);
  --shadow2:0 4px 16px rgba(0,0,0,.4),0 12px 40px rgba(0,0,0,.35);
  --radius:10px;--radius2:14px;
}
/* ── Helles Design (folgt dem Dashboard-Umschalter, localStorage td_theme) ── */
html[data-theme="light"]{
  --bg:#f4f6f1;--bg2:#eaeee5;--card:#ffffff;--card2:#f6f8f3;--card3:#edf0e8;
  --border:rgba(15,40,25,.09);--border2:rgba(15,40,25,.16);--border3:rgba(15,40,25,.25);
  --text:#1b2a20;--text2:#52685a;--muted:#74867a;--muted2:#8a9a90;
  --gold:#96761c;--gold2:#7d6217;--gold3:#6a5413;--gold-bg:rgba(150,118,28,.1);
  --green:#15803d;--green2:#166534;--green-bg:rgba(21,128,61,.09);
  --red:#c03434;--red-bg:rgba(192,52,52,.08);
  --blue:#2b6fa3;--blue-bg:rgba(43,111,163,.08);
  --orange:#b3651a;--orange-bg:rgba(179,101,26,.09);
  --shadow:0 2px 8px rgba(25,50,35,.08),0 6px 24px rgba(25,50,35,.06);
  --shadow2:0 4px 16px rgba(25,50,35,.12),0 12px 40px rgba(25,50,35,.10);
}
html[data-theme="light"] .pnl-h,
html[data-theme="light"] .md-card-hdr,
html[data-theme="light"] .team-card-hdr{background:rgba(20,60,35,.04)}
html[data-theme="light"] .standings tbody tr:hover,
html[data-theme="light"] .stat-tbl tbody tr:hover{background:rgba(20,60,35,.035)}
html[data-theme="light"] .btn-primary,
html[data-theme="light"] .tb-btn.primary,
html[data-theme="light"] .wiz-dot.active{color:#fff}
html[data-theme="light"] .badge-live,
html[data-theme="light"] .btn-live,
html[data-theme="light"] .live-pill{color:#b91c1c}
html[data-theme="light"] .badge-closed{color:#6b7280}
html[data-theme="light"] .toast-ok{background:#e7f5ec;border-color:rgba(21,128,61,.35);color:#14532d}
html[data-theme="light"] .toast-err{background:#fdecec;border-color:rgba(192,52,52,.35);color:#7f1d1d}
html[data-theme="light"] .toast-info{background:#e8f1f8;border-color:rgba(43,111,163,.35);color:#1e3a5f}
html[data-theme="light"] .tb-logo{background:linear-gradient(135deg,#dceadf,#f0f4ee)}

/* ── Sport-Branding: Logo-Kachel färbt sich nach Sportart der gewählten Liga ── */
html[data-sport="pool"] .tb-logo{background:linear-gradient(135deg,#14384e,#0b2231)}
html[data-sport="dart"] .tb-logo{background:linear-gradient(135deg,#4a1d16,#2a0f0a)}
html[data-theme="light"][data-sport="pool"] .tb-logo{background:linear-gradient(135deg,#dae8f2,#eef5fa)}
html[data-theme="light"][data-sport="dart"] .tb-logo{background:linear-gradient(135deg,#f4e0da,#faf0ec)}

html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font)}
body{display:flex;flex-direction:column;min-height:100vh;font-size:.875rem;line-height:1.5;-webkit-font-smoothing:antialiased}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--border3)}

/* ── TOP BAR ── */
.topbar{height:54px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;
  background:var(--card);border-bottom:1px solid var(--border);box-shadow:0 1px 0 var(--border);
  flex-shrink:0;position:sticky;top:0;z-index:50}
.tb-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.tb-logo{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,#1a4a22,#0d2a14);
  border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}
.tb-title{font-family:var(--serif);font-size:1.18rem;font-weight:700;color:var(--gold);line-height:1.1}
.tb-sub{font-size:.62rem;color:var(--muted);letter-spacing:.04em;margin-top:1px}
.tb-nav{display:flex;align-items:center;gap:6px}
.tb-user{font-size:.72rem;color:var(--text2);padding:0 8px;white-space:nowrap}
.tb-btn{padding:6px 12px;border-radius:7px;border:1.5px solid var(--border2);background:transparent;
  color:var(--text2);font:500 .72rem/1 var(--font);cursor:pointer;transition:all .15s;
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;text-decoration:none;
  -webkit-tap-highlight-color:transparent}
.tb-btn:hover{border-color:var(--gold2);color:var(--gold)}
.tb-btn.primary{background:var(--gold);color:#0d1a0f;border-color:var(--gold);font-weight:700}
.tb-btn.primary:hover{background:var(--gold2);border-color:var(--gold2)}

/* ── APP LAYOUT ── */
.app-body{flex:1;display:flex;overflow:hidden;height:calc(100vh - 54px)}

/* ── SIDEBAR ── */
.sidebar{width:260px;min-width:200px;display:flex;flex-direction:column;
  border-right:1px solid var(--border);background:var(--bg2);overflow:hidden;flex-shrink:0}
.sidebar-hdr{padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0}
.sidebar-body{flex:1;overflow-y:auto;padding:6px 8px}
.liga-item{padding:10px 11px;border-radius:8px;cursor:pointer;
  transition:background .12s,border-color .12s;margin-bottom:3px;
  border:1.5px solid transparent;position:relative}
.liga-item:hover{background:var(--card)}
.liga-item.active{background:var(--card);border-color:var(--border2)}
.liga-item.active::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:3px;height:60%;border-radius:0 2px 2px 0;background:var(--gold)}
.li-name{font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.li-meta{font-size:.66rem;color:var(--text2);margin-top:3px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:20px;
  font-size:.58rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  border:1px solid transparent;white-space:nowrap}
.badge-active{background:var(--green-bg);color:var(--green);border-color:rgba(34,164,85,.3)}
.badge-closed{background:rgba(80,80,80,.12);color:#888;border-color:rgba(80,80,80,.25)}
.badge-admin{background:var(--gold-bg);color:var(--gold);border-color:rgba(201,168,76,.3)}
.badge-editor{background:var(--blue-bg);color:var(--blue);border-color:rgba(74,159,212,.3)}
.badge-pending{background:var(--orange-bg);color:var(--orange);border-color:rgba(224,136,48,.3)}
.badge-info{background:var(--blue-bg);color:var(--blue);border-color:rgba(74,159,212,.3)}
.badge-live{background:rgba(224,80,80,.12);color:#ff8080;border-color:rgba(224,80,80,.4)}
.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}

/* ── CONTENT ── */
.content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}
.tab-bar{display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--border);
  background:var(--bg2);flex-shrink:0;overflow-x:auto;scrollbar-width:none}
.tab-bar::-webkit-scrollbar{display:none}
.tab-btn{padding:12px 14px;border:none;background:transparent;color:var(--text2);
  font:500 .75rem/1 var(--font);cursor:pointer;border-bottom:2px solid transparent;
  transition:all .15s;white-space:nowrap;margin-bottom:-1px;-webkit-tap-highlight-color:transparent}
.tab-btn:hover{color:var(--text)}
.tab-btn.active{color:var(--gold);border-bottom-color:var(--gold);font-weight:600}
.tab-actions{margin-left:auto;padding:6px 0;flex-shrink:0;display:flex;gap:6px;align-items:center}
.content-scroll{flex:1;overflow-y:auto}
.content-inner{padding:16px;max-width:960px;margin:0 auto;width:100%}

/* ── PANELS ── */
.pnl{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius2);
  box-shadow:var(--shadow);overflow:hidden;margin-bottom:12px}
.pnl-h{padding:12px 16px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:rgba(0,0,0,.15)}
.pnl-title{font-family:var(--serif);font-size:1.05rem;font-weight:700;color:var(--gold)}
.pnl-sub{font-size:.68rem;color:var(--muted);margin-top:2px}
.pnl-b{padding:14px 16px}

/* ── STANDINGS ── */
.standings{width:100%;border-collapse:collapse;font-size:.8rem}
.standings thead th{padding:8px 10px;text-align:left;color:var(--muted);font-weight:600;
  font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--border)}
.standings th.c,.standings td.c{text-align:center}
.standings tbody tr{border-bottom:1px solid var(--border);transition:background .1s}
.standings tbody tr:last-child{border-bottom:none}
.standings tbody tr:hover{background:rgba(255,255,255,.025)}
.standings td{padding:9px 10px;vertical-align:middle}
.st-rank{font-weight:800;font-size:.9rem;text-align:center;width:32px}
.st-rank.r1{color:#f5c842}.st-rank.r2{color:#b0bec5}.st-rank.r3{color:#cd7f4a}
.st-name{font-weight:600;color:var(--text)}
.st-pts{font-weight:800;color:var(--gold);font-size:.88rem}
.st-w{color:var(--green)}.st-d{color:var(--text2)}.st-l{color:var(--red)}
.standings tbody tr:nth-child(1) td{background:rgba(245,200,66,.04)}
.standings tbody tr:nth-child(2) td{background:rgba(176,190,197,.03)}
.standings tbody tr:nth-child(3) td{background:rgba(205,127,74,.03)}

/* ── AVATARE ── */
.avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;border:1px solid var(--border2);vertical-align:middle;flex-shrink:0}
.avatar-ph{width:26px;height:26px;border-radius:50%;background:var(--card3);border:1px solid var(--border2);
  display:inline-flex;align-items:center;justify-content:center;font-size:.62rem;color:var(--muted);
  font-weight:700;vertical-align:middle;flex-shrink:0}

/* ── MATCHDAY CARDS ── */
.md-card{background:var(--card2);border:1.5px solid var(--border);border-radius:var(--radius);
  margin-bottom:10px;overflow:hidden;position:relative}
.md-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--border2)}
.md-card.md-done::before{background:var(--green2)}
.md-card.md-postponed::before{background:var(--orange)}
.md-card.md-live::before{background:var(--red)}
.md-card-hdr{padding:10px 14px 10px 18px;display:flex;align-items:center;
  justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);background:rgba(0,0,0,.12)}
.md-number{font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;display:block}
.md-date-txt{font-size:.88rem;font-weight:600;color:var(--text)}
.md-loc-txt{font-size:.68rem;color:var(--text2);margin-top:2px;display:block}
.md-actions{display:flex;align-items:center;gap:5px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.md-body{padding:10px 14px 10px 18px}
.pp-banner{margin:0 14px 8px 18px;padding:7px 11px;background:var(--orange-bg);
  border:1px solid rgba(224,136,48,.25);border-radius:6px;font-size:.72rem;color:var(--orange)}
.match-row{display:grid;grid-template-columns:1fr min-content 1fr;gap:8px;align-items:center;
  padding:7px 0;border-top:1px solid var(--border)}
.match-row:first-child{border-top:none}
.match-row.clickable{cursor:pointer}
.match-row.clickable:hover .match-score-display{border:1px solid var(--gold3)}
.match-home{font-size:.82rem;color:var(--text)}
.match-away{font-size:.82rem;color:var(--text);text-align:right}
.match-score-display{padding:3px 10px;background:var(--bg2);border-radius:6px;border:1px solid transparent;
  font-weight:700;font-size:.85rem;color:var(--gold);white-space:nowrap;text-align:center;min-width:64px}
.match-score-display.unplayed{color:var(--muted);font-weight:400;font-size:.78rem}
.match-no-games{font-size:.74rem;color:var(--muted);padding:8px 0;text-align:center}

/* ── RESULT/REPORT ROWS ── */
.result-row{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;
  padding:8px 0;border-top:1px solid var(--border)}
.result-row:first-child{border-top:none}
.res-team{font-size:.8rem;font-weight:500;color:var(--text)}
.res-team.away{text-align:right}
.res-inputs{display:flex;align-items:center;gap:4px;justify-content:center;flex-wrap:wrap}
.score-inp{width:40px;height:32px;background:var(--bg2);border:1.5px solid var(--border2);
  border-radius:6px;color:var(--text);font:700 .9rem var(--font);text-align:center;padding:0;
  transition:border-color .14s;-moz-appearance:textfield}
.score-inp::-webkit-outer-spin-button,.score-inp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.score-inp:focus{outline:none;border-color:var(--gold)}
.score-sep{color:var(--muted);font-weight:700;font-size:.8rem;padding:0 1px}
.save-btn{width:28px;height:28px;background:rgba(34,164,85,.15);color:var(--green);
  border:1.5px solid rgba(34,164,85,.3);border-radius:6px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;
  transition:all .14s;flex-shrink:0}
.save-btn:hover{background:var(--green);color:#fff}
.played-dot{width:8px;height:8px;background:var(--green);border-radius:50%;flex-shrink:0}

/* ── SPIELBERICHT-EDITOR ── */
.rg-head{display:grid;grid-template-columns:26px 1fr 96px 1fr 84px;gap:6px;align-items:center;
  padding:4px 2px;font-size:.6rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.rg-row{display:grid;grid-template-columns:26px 1fr 96px 1fr 84px;gap:6px;align-items:center;
  padding:5px 2px;border-top:1px solid var(--border)}
.rg-nr{font-size:.66rem;color:var(--muted);font-weight:700;text-align:center}
.rg-sel{width:100%;padding:6px 6px;background:var(--bg2);border:1.5px solid var(--border2);
  border-radius:6px;color:var(--text);font:400 .74rem var(--font)}
.rg-sel:focus{outline:none;border-color:var(--gold)}
.rg-score{display:flex;align-items:center;gap:3px;justify-content:center}
.rg-inp{width:36px;height:28px;background:var(--bg2);border:1.5px solid var(--border2);border-radius:6px;
  color:var(--text);font:700 .8rem var(--font);text-align:center;padding:0;-moz-appearance:textfield}
.rg-inp::-webkit-outer-spin-button,.rg-inp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rg-inp:focus{outline:none;border-color:var(--gold)}
.rg-x{display:flex;align-items:center;gap:3px;justify-content:center}
.rg-xinp{width:38px;height:28px;background:var(--bg2);border:1.5px solid rgba(201,168,76,.25);border-radius:6px;
  color:var(--gold);font:600 .72rem var(--font);text-align:center;padding:0;-moz-appearance:textfield}
.rg-xinp::-webkit-outer-spin-button,.rg-xinp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rg-xinp:focus{outline:none;border-color:var(--gold)}
.rep-scoreline{display:flex;align-items:center;justify-content:center;gap:14px;padding:10px;
  background:var(--bg2);border-radius:10px;margin-bottom:12px;border:1px solid var(--border2)}
.rep-scoreline .t{font-size:.85rem;font-weight:600;max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rep-scoreline .s{font-size:1.6rem;font-weight:800;color:var(--gold);font-variant-numeric:tabular-nums;white-space:nowrap}
/* Lesemodus des Berichts */
.rv-row{display:grid;grid-template-columns:24px 1fr 76px 1fr;gap:8px;align-items:center;
  padding:7px 2px;border-top:1px solid var(--border);font-size:.82rem}
.rv-row:first-child{border-top:none}
.rv-nr{font-size:.64rem;color:var(--muted);font-weight:700;text-align:center}
.rv-p.away{text-align:right}
.rv-p .sp{display:inline-block;margin:0 5px;padding:1px 7px;border-radius:10px;background:var(--gold-bg);
  border:1px solid rgba(201,168,76,.3);color:var(--gold);font-size:.6rem;font-weight:700}
.rv-score{text-align:center;font-weight:800;color:var(--gold);font-variant-numeric:tabular-nums}
.rv-win{color:var(--green);font-weight:700}

/* ── TEAM-KARTEN (Mannschaften + Kader) ── */
.team-card{background:var(--card2);border:1.5px solid var(--border);border-radius:var(--radius);
  margin-bottom:12px;overflow:hidden}
.team-card-hdr{padding:12px 14px;border-bottom:1px solid var(--border);background:rgba(0,0,0,.12);
  display:grid;grid-template-columns:1fr 64px 1fr 1fr auto;gap:8px;align-items:end}
.team-card-body{padding:10px 14px}
.roster-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.roster-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px 4px 5px;border-radius:18px;
  background:var(--card3);border:1px solid var(--border2);font-size:.74rem;color:var(--text)}
.roster-chip .rm{cursor:pointer;color:var(--muted);font-weight:700;padding:0 2px;font-size:.8rem}
.roster-chip .rm:hover{color:var(--red)}
.roster-empty{font-size:.72rem;color:var(--muted);padding:4px 0 10px}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:7px;
  border:none;font:600 .78rem/1 var(--font);cursor:pointer;transition:all .14s;
  text-decoration:none;-webkit-tap-highlight-color:transparent}
.btn-primary{background:var(--gold);color:#0d1a0f}
.btn-primary:hover{background:var(--gold2)}
.btn-secondary{background:transparent;color:var(--text2);border:1.5px solid var(--border2)}
.btn-secondary:hover{border-color:var(--gold2);color:var(--gold)}
.btn-danger{background:rgba(220,60,60,.1);color:var(--red);border:1.5px solid rgba(220,60,60,.25)}
.btn-danger:hover{background:rgba(220,60,60,.22)}
.btn-live{background:rgba(224,80,80,.12);color:#ff8080;border:1.5px solid rgba(224,80,80,.4)}
.btn-live:hover{background:rgba(224,80,80,.25)}
.btn-ghost{background:transparent;color:var(--text2);border:1.5px solid transparent}
.btn-ghost:hover{background:var(--card);border-color:var(--border)}
.btn-sm{padding:5px 10px;font-size:.7rem}
.btn-xs{padding:3px 8px;font-size:.65rem}
.btn-icon{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem}

/* ── FORMS ── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.form-grid.g3{grid-template-columns:1fr 1fr 1fr}
.form-grid.full{grid-template-columns:1fr}
.form-group{display:flex;flex-direction:column;gap:4px}
.form-label{font-size:.72rem;font-weight:600;color:var(--text2);letter-spacing:.03em}
.form-input{width:100%;padding:8px 11px;background:var(--bg2);border:1.5px solid var(--border2);
  border-radius:7px;color:var(--text);font:400 .82rem var(--font);transition:border-color .14s}
.form-input:focus{outline:none;border-color:var(--gold)}
.form-input option{background:var(--bg2)}
textarea.form-input{resize:vertical;min-height:72px;font-size:.8rem}
.form-hint{font-size:.66rem;color:var(--muted);margin-top:2px}

/* ── ASSISTENT (Liga anlegen) ── */
.wiz-steps{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:16px}
.wiz-dot{width:26px;height:26px;border-radius:50%;background:var(--card3);border:1.5px solid var(--border2);
  display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;color:var(--muted)}
.wiz-dot.active{background:var(--gold);border-color:var(--gold);color:#0d1a0f}
.wiz-dot.done{background:var(--green-bg);border-color:rgba(34,164,85,.4);color:var(--green)}
.wiz-line{width:28px;height:1.5px;background:var(--border2)}
.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.choice-grid.modes{grid-template-columns:repeat(2,1fr)}
.choice-card{background:var(--card2);border:1.5px solid var(--border2);border-radius:10px;
  padding:14px 12px;cursor:pointer;text-align:center;transition:all .14s}
.choice-card:hover{border-color:var(--gold3)}
.choice-card.selected{border-color:var(--gold);background:var(--gold-bg)}
.choice-icon{font-size:1.7rem;margin-bottom:6px}
.choice-label{font-size:.82rem;font-weight:700;color:var(--text)}
.choice-desc{font-size:.64rem;color:var(--text2);margin-top:4px;line-height:1.45}

/* ── STATISTIK ── */
.stat-tbl{width:100%;border-collapse:collapse;font-size:.78rem}
.stat-tbl thead th{padding:7px 8px;text-align:left;color:var(--muted);font-weight:600;
  font-size:.6rem;letter-spacing:.07em;text-transform:uppercase;border-bottom:1px solid var(--border)}
.stat-tbl th.c,.stat-tbl td.c{text-align:center}
.stat-tbl tbody tr{border-bottom:1px solid var(--border)}
.stat-tbl tbody tr:last-child{border-bottom:none}
.stat-tbl tbody tr:hover{background:rgba(255,255,255,.025)}
.stat-tbl td{padding:7px 8px;vertical-align:middle}
.top-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 4px;
  border-bottom:1px solid var(--border);font-size:.8rem}
.top-row:last-child{border-bottom:none}
.top-val{font-weight:800;color:var(--gold);font-size:.95rem;min-width:48px;text-align:right}

/* ── PERSON ROWS ── */
.person-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;
  background:var(--card2);border-radius:8px;margin-bottom:5px;border:1px solid var(--border);gap:8px}
.person-name{font-size:.82rem;font-weight:600;color:var(--text)}
.person-sub{font-size:.68rem;color:var(--text2);margin-top:2px}
.mr-row{display:grid;grid-template-columns:1fr 40px 1fr auto;gap:6px;align-items:center;margin-bottom:6px}

/* ── MODALS ── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:200;
  align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(4px)}
.modal-overlay.show{display:flex}
.modal-box{background:var(--card);border:1.5px solid var(--border2);border-radius:var(--radius2);
  width:100%;max-width:500px;max-height:92vh;overflow-y:auto;
  box-shadow:var(--shadow2);animation:modalIn .18s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:none}}
.modal-head{padding:16px 18px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:8px}
.modal-title{font-family:var(--serif);font-size:1.1rem;font-weight:700;color:var(--gold)}
.modal-close{width:28px;height:28px;border-radius:6px;border:none;background:transparent;
  color:var(--muted);cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .14s}
.modal-close:hover{background:var(--card2);color:var(--text)}
.modal-body{padding:18px}
.modal-foot{padding:14px 18px;border-top:1px solid var(--border);
  display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}

/* ── TOAST ── */
#toast-container{position:fixed;bottom:20px;right:20px;z-index:9999;
  display:flex;flex-direction:column;gap:6px;pointer-events:none}
.toast{padding:10px 16px;border-radius:8px;font-size:.78rem;font-weight:500;
  animation:toastIn .2s ease;max-width:320px;box-shadow:var(--shadow)}
@keyframes toastIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.toast-ok{background:#0f2a18;border:1px solid rgba(34,164,85,.4);color:#86efac}
.toast-err{background:#2a0f0f;border:1px solid rgba(220,60,60,.4);color:#fca5a5}
.toast-info{background:#0f1e2a;border:1px solid rgba(74,159,212,.4);color:#93c5fd}

/* ── LOGIN OVERLAY ── */
.login-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:300;
  align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(6px)}
.login-overlay.show{display:flex}
.login-card{background:var(--card);border:1.5px solid var(--border2);border-radius:var(--radius2);
  padding:32px;width:100%;max-width:360px;box-shadow:var(--shadow2)}
.login-title{font-family:var(--serif);font-size:1.4rem;font-weight:700;color:var(--gold);text-align:center;margin-bottom:22px}

/* ── ALERTS ── */
.alert{padding:9px 13px;border-radius:7px;margin-bottom:12px;font-size:.78rem}
.alert-err{background:rgba(220,60,60,.1);border:1px solid rgba(220,60,60,.28);color:#fca5a5}
.alert-ok{background:rgba(34,164,85,.1);border:1px solid rgba(34,164,85,.28);color:#86efac}
.alert-info{background:rgba(74,159,212,.1);border:1px solid rgba(74,159,212,.28);color:#93c5fd}

/* ── EMPTY STATE ── */
.empty{text-align:center;padding:56px 20px;color:var(--muted)}
.empty-icon{font-size:2.5rem;margin-bottom:12px}
.empty-text{font-size:.82rem;line-height:1.7;color:var(--text2)}
.empty-actions{margin-top:16px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.empty-hint{font-size:.7rem;color:var(--muted);margin-top:10px}

/* ── SPIELPLAN: Vorrunde links · Rückrunde rechts ── */
.sched-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.sched-col-title{font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin:0 0 10px 2px;display:flex;align-items:center;gap:7px}
.sched-col-title::after{content:'';flex:1;height:1px;background:var(--border2)}
@media(max-width:900px){.sched-cols{grid-template-columns:1fr}}

/* ── SPIELERDATENBANK: Gruppierung nach Verein ── */
.pdb-club{position:sticky;top:0;padding:6px 4px 4px;background:var(--card);
  font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}

/* ── MISC ── */
.preview-box{background:var(--bg2);border:1px solid var(--border2);border-radius:8px;
  padding:10px 14px;font-size:.78rem;color:var(--text2);line-height:1.6}
.preview-box strong{color:var(--text)}
.danger-zone{border:1.5px solid rgba(220,60,60,.25);border-radius:var(--radius);padding:14px 16px;margin-top:16px}
.danger-title{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--red);margin-bottom:10px}
.link-box{display:flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--border2);
  border-radius:8px;padding:8px 10px;font-size:.72rem;color:var(--text2);overflow:hidden}
.link-box .url{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--blue)}

/* ── RESPONSIVE ── */
@media(max-width:680px){
  .app-body{flex-direction:column;height:auto;overflow:visible}
  .sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border);min-width:unset}
  .sidebar-body{max-height:180px}
  .content{overflow:visible}
  .content-scroll{overflow:visible}
  .form-grid,.form-grid.g3{grid-template-columns:1fr}
  .choice-grid,.choice-grid.modes{grid-template-columns:1fr 1fr}
  .team-card-hdr{grid-template-columns:1fr 1fr;align-items:end}
  .rg-head{display:none}
  .rg-row{grid-template-columns:20px 1fr 84px 1fr;row-gap:4px}
  .rg-row .rg-x{grid-column:2/-1;justify-content:flex-start}
  .tb-user{display:none}
}
