/* — Fonts: Google Fonts wenn online, sonst System-Fallback — */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Cormorant+Garamond:wght@500;600;700&display=swap');
:root{
  --font-ui:'Inter','Segoe UI',system-ui,-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  --font-serif:'Cormorant Garamond','Palatino Linotype','Book Antiqua',Palatino,'Georgia',serif;
  /* Fluid base size: 14px @320 → 16px @1200 */
  --base-size:clamp(0.875rem, 0.82rem + 0.24vw, 1rem);
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --safe-right:env(safe-area-inset-right,0px);
}
/* ── Setup drag-and-drop: 3-Spalten-Grid, config=1/3, teilnehmer=2/3 ──────── */
.sdnd-container{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  align-items:stretch;
}
.sdnd-panel[data-pid="config"]   { grid-column:span 1; }
.sdnd-panel[data-pid="teilnehmer"]{ grid-column:span 2; }
.sdnd-panel{
  height:100%;
}
.sdnd-panel .pnl{
  height:100%;
  display:flex;
  flex-direction:column;
  margin-left:18px;
}
.sdnd-panel .pnl-b{
  flex:1;
  overflow-y:auto;
}
.sdnd-panel.sdnd-dragging{
  opacity:.42;
  transform:scale(.98);
}
.sdnd-panel.sdnd-over{
  outline:2px solid var(--green2);
  outline-offset:2px;
  border-radius:7px;
}
.sdnd-grip{
  position:absolute;
  left:-4px;
  top:50%;
  transform:translateY(-50%);
  width:20px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:grab;
  color:rgba(255,255,255,.25);
  font-size:1rem;
  letter-spacing:-.1em;
  border-radius:4px 0 0 4px;
  transition:color .15s,background .15s;
  z-index:10;
  background:rgba(0,0,0,.02);
  user-select:none;
}
.sdnd-grip:hover{
  color:rgba(255,255,255,.8);
  background:rgba(255,255,255,.12);
}
.grp-match-container{
  display:none;
}
.grp-matches{border-top:2px solid var(--gc,var(--border));background:var(--card);padding:6px;}
.grp-allmatches{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden;}
.gm-board{display:flex;flex-direction:column;}
.gm-board .gm-section{display:flex;flex-direction:column;}
.gm-board .gm-row{display:block;width:100%;box-sizing:border-box;}
.grp-allmatches-hdr{display:flex;align-items:center;gap:8px;padding:10px 14px;
  background:rgba(0,0,0,.25);border-bottom:1px solid rgba(255,255,255,.07);
  font-size:.64rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.gam-live-dot{width:8px;height:8px;border-radius:50%;background:#f0c000;
  box-shadow:0 0 6px rgba(240,190,0,.8);animation:dotPulse 1s infinite;flex-shrink:0;}
.gm-section{padding:8px 12px 3px;}
.gm-section-hdr{font-size:.56rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted2);margin-bottom:6px;display:flex;align-items:center;gap:6px;}
.gm-section-hdr::after{content:'';flex:1;height:1px;background:var(--border);}
.gm-section-hdr.live-hdr{color:#b8860b;}
.gm-section-hdr.done-hdr{color:rgba(34,164,85,.7);}
.gm-row{
  border-radius:8px;border:2px solid var(--gc,var(--border));
  background:var(--card);
  margin-bottom:5px;overflow:hidden;position:relative;
  transition:border-color .18s,box-shadow .18s;
}
.gm-row:nth-child(odd){background:var(--card);}
.gm-row:nth-child(even){background:var(--card);}
.gm-row.gm-live{
  border-color:#ffe033!important;
  background:linear-gradient(135deg,rgba(255,230,0,.08),rgba(255,220,0,.03)) var(--card)!important;
  box-shadow:0 0 0 2px rgba(255,220,0,.28),0 4px 18px rgba(230,180,0,.15)!important;
  animation:liveGlow 1.8s ease-in-out infinite;
}
.gm-row.gm-done{
  opacity:1 !important;
  filter:none;
  transition:opacity 0.2s, filter 0.2s;
}
.gm-row.gm-done .gm-startbtn, 
.gm-row.gm-done .gm-arr,
.gm-row.gm-done .gm-hb-inp,
.gm-row.gm-done .gm-sc {
  opacity:1;
}
.gm-row.gm-drag-over{border-color:var(--green2)!important;box-shadow:0 0 0 3px rgba(34,164,85,.22)!important;}
.gm-row.dragging{opacity:.28;}
.gm-row::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gcl,var(--border2));opacity:.85;}
.gm-row.gm-live::before{background:#ffe033;opacity:1;}
.gm-row.gm-done::before{background:rgba(34,164,85,.5);}
.gm-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:3px 8px 3px 14px;
  background:rgba(0,0,0,.02);
  border-bottom:1px solid rgba(255,255,255,.05);
  min-height:28px; /* für Timer-Höhe */
}
.gm-grplbl{
  font-size:1rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--gcl,var(--muted));
  line-height:1;
  display:flex;
  align-items:center;
  gap:5px;
}
.gm-head-right{
  display:flex;
  align-items:center;
  gap:6px;
  margin-left:auto;
}
.gm-timer{
  font-size:.78rem;
  color:var(--blue);
  white-space:nowrap;
}
.gm-startbtn{
  width:24px;
  height:24px;
  border-radius:5px;
  border:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.8rem;
  font-weight:700;
  transition:background .15s,transform .1s;
  outline:none;
  flex-shrink:0;
}
.gm-startbtn.start{background:rgba(34,164,85,.15);color:var(--green);border:1.5px solid rgba(34,164,85,.35);}
.gm-startbtn.start:hover{background:var(--green2);color:#fff;transform:scale(1.06);}
.gm-startbtn.stop{background:rgba(220,50,40,.12);color:var(--red);border:1.5px solid rgba(220,50,40,.35);}
.gm-startbtn.stop:hover{background:var(--red);color:#fff;transform:scale(1.06);}
.gm-live-badge{
  font-size:.56rem;
  font-weight:800;
  padding:2px 7px;
  border-radius:20px;
  background:rgba(255,220,0,.28);
  color:#7a5a00;
  border:1px solid rgba(255,200,0,.5);
  letter-spacing:.07em;
  animation:liveBlink 1.4s infinite;
}
.gm-done-badge{
  font-size:.56rem;
  font-weight:700;
  padding:2px 7px;
  border-radius:20px;
  background:rgba(34,164,85,.1);
  color:var(--green);
  border:1px solid rgba(34,164,85,.25);
}
.tbl-sel option:disabled{color:var(--muted2);}
.gm-finish-btn{
  padding:3px 12px!important;
  font-size:.66rem!important;
  white-space:nowrap;
}
.gm-main{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:8px;
  padding:2px 10px 2px 14px;
}
.gm-p1{
  font-size:1.05rem;
  font-weight:600;
  text-align:right;
  white-space:normal;
  overflow-wrap:break-word;
  word-break:break-word;
  line-height:1.2;
  color:var(--text);
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
}
.gm-p2{
  font-size:1.05rem;
  font-weight:600;
  text-align:left;
  white-space:normal;
  overflow-wrap:break-word;
  word-break:break-word;
  line-height:1.2;
  color:var(--text);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:4px;
}
.gm-p1.won,.gm-p2.won{color:var(--gcl,var(--green));font-weight:800;}
.gm-live .gm-p1,.gm-live .gm-p2{color:#1a1200!important;}
.gm-score-break{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  flex-shrink:0;
}
.gm-score{
  display:flex;
  align-items:center;
  gap:2px;
  background:rgba(154,120,40,.09);
  border:1.5px solid rgba(154,120,40,.3);
  border-radius:8px;
  padding:1px 2px;
  width:100%;
  justify-content:center;
}
.gm-sc{
  width:36px;
  text-align:center;
  font-weight:700;
  font-size:1rem;
  padding:2px 0;
  background:transparent;
  border:none;
  outline:none;
  color:var(--text);
}
.gm-sc:focus{background:rgba(154,120,40,.12);border-radius:3px;}
.gm-vs{font-size:.7rem;font-weight:800;color:var(--gold);padding:0 3px;}
.gm-live .gm-score{border-color:rgba(255,200,0,.6)!important;background:rgba(255,220,0,.15)!important;}
.gm-live .gm-sc{color:#1a1200!important;font-weight:700!important;}
.gm-break{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  padding:0 4px;
}
.gm-break-left, .gm-break-right{
  display:flex;
  align-items:center;
  gap:4px;
}
.gm-break-left{
  justify-content:flex-end;
}
.gm-break-right{
  justify-content:flex-start;
}
.gm-break-center {
  display:flex;
  align-items:center;
  gap:4px;
  justify-content:center;
}
.gm-hb-inp{
  width:70px !important; /* increased */
  text-align:center;
  font-weight:700;
  font-size:1rem; /* increased */
  padding:2px 0;
  -moz-appearance:textfield;
  background:transparent;
  border:none;
  outline:none;
  color:var(--text);
  border-bottom:1px dashed rgba(154,120,40,.3);
}
.gm-hb-inp:focus{background:rgba(154,120,40,.12);border-radius:3px;}
.gm-hb-inp::-webkit-outer-spin-button,
.gm-hb-inp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.gm-arr{
  width:28px;
  height:28px;
  border-radius:4px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.8rem;
  padding:0;
  flex-shrink:0;
  border:none;
  cursor:pointer;
  background:rgba(255,255,255,.1);
  color:var(--text);
  transition:background .15s;
}
.gm-arr:hover{background:rgba(154,120,40,.25);}
.hbc{
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding:1px 5px;
  border-radius:20px;
  background:rgba(41,128,185,.08);
  border:1px solid rgba(41,128,185,.2);
  font-size:.76rem;
  color:var(--blue);
  font-weight:500;
  margin-left:2px;
}
.hbc .x{display:none;}
.hbc:hover .x{display:inline;}
.hbc .x{cursor:pointer;color:var(--muted2);margin-left:2px;font-size:.68rem;}
.hbc .x:hover{color:var(--red);}
.hbc.century{background:var(--gold-bg);border-color:rgba(154,120,40,.4);color:var(--gold3);font-weight:700;animation:blinkGold 1.2s infinite;}
.hbc.max147{background:rgba(192,57,43,.08);border-color:rgba(192,57,43,.4);color:var(--red);font-weight:700;animation:blinkRed147 1s infinite;}
.hbc.max170{background:rgba(192,57,43,.08);border-color:rgba(192,57,43,.4);color:var(--red);font-weight:700;animation:blinkRed147 1s infinite;}
/* Darts-spezifisch */
html[data-sport="dart"] .hbc.bigfish{background:linear-gradient(135deg,rgba(220,50,47,.14),rgba(201,168,76,.12));border-color:rgba(220,50,47,.6);color:var(--red);font-weight:800;animation:blinkRed147 .8s infinite;letter-spacing:.01em;}
html[data-sport="dart"] .dart-180-row{display:flex;align-items:center;gap:6px;margin-top:5px;padding:3px 7px;background:rgba(220,50,47,.06);border:1px solid rgba(220,50,47,.18);border-radius:6px;}
html[data-sport="dart"] .dart-180-btn{background:rgba(220,50,47,.12);border:1px solid rgba(220,50,47,.3);color:var(--red);border-radius:4px;cursor:pointer;padding:1px 6px;font-size:.72rem;font-weight:700;line-height:1.4;}
html[data-sport="dart"] .dart-180-btn:hover{background:rgba(220,50,47,.22);}
html[data-sport="dart"] .dart-180-label{font-size:.63rem;font-weight:700;color:rgba(220,50,47,.85);flex:1;text-align:center;}
html[data-sport="dart"] .dart-180-cnt{font-size:.78rem;font-weight:800;min-width:18px;text-align:center;color:var(--text);}
html[data-sport="dart"] .dart-oche-badge{display:inline-flex;align-items:center;gap:4px;font-size:.58rem;padding:1px 6px;border-radius:8px;background:rgba(220,50,47,.09);border:1px solid rgba(220,50,47,.28);color:#d04040;font-weight:600;}
@keyframes blinkDartGold{0%,100%{opacity:1}50%{opacity:.55}}
@keyframes blinkRed147{0%,100%{box-shadow:0 0 8px rgba(192,57,43,.7);background:rgba(192,57,43,.14);}50%{box-shadow:none;background:rgba(192,57,43,.04);}}
.br-col-done .br-ms{display:none;}
.br-col-done .br-lbl .br-arr::before{content:'▶';}
.br-col-done .br-lbl .br-arr{display:inline-block;}
.br-arr::before{content:'▼';}
.rk-inp{
  width:56px!important;
  padding:3px 5px!important;
  font-size:.74rem!important;
  text-align:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:5px;
  color:var(--text);
}
.rk-inp:focus{border-color:var(--green2);outline:none;}
.rk-grid{
  display:grid;
  grid-template-columns:100px repeat(3,1fr);
  gap:0;
  font-size:.74rem;
  border:1px solid var(--border);
  border-radius:7px;
  overflow:hidden;
}
.rk-grid .rk-th{
  padding:6px 8px;
  font-weight:700;
  font-size:.62rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
  background:rgba(255,255,255,.04);
  border-bottom:1px solid var(--border);
}
.rk-grid .rk-td{
  padding:5px 7px;
  border-bottom:1px solid rgba(255,255,255,.04);
  display:flex;
  align-items:center;
  justify-content:center;
}
.rk-grid .rk-label{
  padding:6px 10px;
  font-size:.76rem;
  color:var(--text);
  border-bottom:1px solid rgba(255,255,255,.04);
  display:flex;
  align-items:center;
  white-space:nowrap;
}

:root{
  --bg:#eef2ee;--bg2:#f6faf6;--card:#ffffff;
  --sidebar:#111d16;--sidebar2:#192a1f;--sidebar-border:#1f3428;
  --gold:#9a7828;--gold2:#c9a84c;--gold3:#7a5820;--gold-bg:rgba(154,120,40,.1);
  --text:#121b15;--text2:#384840;--muted:#68796e;--muted2:#8a9a8e;
  --green:#177a40;--green2:#22a455;--green-bg:rgba(23,122,64,.09);
  --red:#b83226;--red-bg:rgba(184,50,38,.08);
  --blue:#2271a8;--blue-bg:rgba(34,113,168,.08);
  --border:#c8d6c8;--border2:#a8bca8;--border-dark:#88a88c;
  --shadow:0 1px 3px rgba(0,0,0,.06),0 4px 14px rgba(0,0,0,.05);
  --shadow2:0 2px 10px rgba(0,0,0,.09),0 8px 28px rgba(0,0,0,.07);
  --radius:9px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:var(--base-size);-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;}
body{width:100%;height:100%;background:var(--bg);overflow:hidden;font-family:var(--font-ui);color:var(--text);font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
#app{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100vw;overflow:hidden;padding-top:var(--safe-top);padding-left:var(--safe-left);padding-right:var(--safe-right);}

/* KEYFRAMES */
@keyframes fadeUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes slideup{from{transform:translateY(18px);opacity:0;}to{transform:translateY(0);opacity:1;}}
@keyframes blinkRed{0%,100%{border-color:rgba(192,57,43,.9);background:rgba(255,240,238,.95);box-shadow:0 0 0 2px rgba(192,57,43,.2);}50%{border-color:rgba(192,57,43,.2);background:var(--card);box-shadow:none;}}
@keyframes timerBlink{0%,49%{opacity:1;}50%,100%{opacity:.2;}}
@keyframes blinkGold{0%,100%{box-shadow:0 0 8px rgba(154,120,40,.6);}50%{box-shadow:none;}}
@keyframes pulse2{0%,100%{opacity:1;}50%{opacity:.4;}}
@keyframes spin{to{transform:rotate(360deg);}}
@keyframes savePulse{0%{opacity:0;transform:scale(.85);}30%{opacity:1;transform:scale(1);}80%{opacity:1;}100%{opacity:0;}}
@keyframes dotPulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.5);opacity:.7;}}
@keyframes liveBlink{0%,100%{opacity:1;}50%{opacity:.45;}}
.ani{animation:fadeUp .25s ease both;}

/* LOGIN */
.lw{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.lb{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:32px 36px;width:380px;max-width:92vw;box-shadow:var(--shadow2);}
.lb-t{font-family:'Cormorant Garamond',serif;font-size:1.55rem;font-weight:700;color:var(--text);margin-bottom:2px;}
.lb-s{font-size:.78rem;color:var(--muted);margin-bottom:20px;letter-spacing:.04em;}
.lf{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;}
.ll{font-size:.74rem;font-weight:600;color:var(--text2);letter-spacing:.03em;}
.li{background:var(--bg2);border:1.5px solid var(--border);border-radius:7px;padding:10px 13px;color:var(--text);font-family:'Inter',sans-serif;font-size:.88rem;width:100%;outline:none;transition:border-color .18s;}
.li:focus{border-color:var(--green);}
.lb-err{background:var(--red-bg);border:1px solid rgba(192,57,43,.25);border-radius:7px;padding:10px 12px;font-size:.78rem;color:var(--red);margin-bottom:12px;}
.lb-btn{width:100%;padding:12px;border:none;border-radius:8px;cursor:pointer;background:var(--green);color:#fff;font-family:'Inter',sans-serif;font-size:.88rem;font-weight:600;transition:all .18s;min-height:44px;}
.lb-btn:hover{background:#1e9050;box-shadow:0 2px 8px rgba(26,122,67,.3);}
.lb-cancel{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.74rem;font-family:'Inter',sans-serif;margin-top:12px;text-decoration:underline;padding:4px;}
.lb-hint{font-size:.68rem;color:var(--muted2);margin-top:8px;}

/* TOPBAR */
#topbar{height:54px;flex-shrink:0;display:flex;align-items:center;padding:0 16px;
  background:linear-gradient(180deg,#1a2d22 0%,#111d16 100%);
  border-bottom:1px solid rgba(255,255,255,.06);box-shadow:0 2px 14px rgba(0,0,0,.22);position:relative;z-index:100;}
.logo{display:flex;align-items:center;gap:8px;margin-right:14px;padding-right:14px;
  border-right:1px solid rgba(255,255,255,.06);flex-shrink:0;cursor:pointer;transition:opacity .18s;}
.logo:hover{opacity:.8;}
.logo-txt{font-family:'Cormorant Garamond',serif;font-size:1.18rem;font-weight:700;color:var(--gold2);letter-spacing:.02em;line-height:1;}
.logo-sub{font-size:.56rem;color:#4d7055;letter-spacing:.16em;text-transform:uppercase;margin-top:2px;}
.nav-tabs{display:flex;gap:1px;overflow-x:auto;flex:1;scrollbar-width:none;}.nav-tabs::-webkit-scrollbar{height:0;}
.nt{display:flex;align-items:center;gap:5px;padding:6px 10px;border-radius:6px;border:1px solid transparent;background:none;
  color:#6a8a72;cursor:pointer;font-family:'Inter',sans-serif;font-size:.7rem;font-weight:500;
  letter-spacing:.04em;text-transform:uppercase;transition:all .14s;white-space:nowrap;min-height:36px;}
.nt:hover{color:#b8d4c0;background:rgba(255,255,255,.06);}
.nt.active{color:var(--gold2);background:rgba(201,168,76,.12);border-color:rgba(201,168,76,.22);font-weight:600;}
.nt.disabled{opacity:.2;cursor:not-allowed;pointer-events:none;}
.ndot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
/* BLOG */
.blog-wrap{max-width:760px;margin:0 auto;padding:18px 14px 40px;}
.blog-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px;flex-wrap:wrap;}
.blog-title{font-family:'Cormorant Garamond',serif;font-size:1.45rem;font-weight:700;color:var(--gold2);letter-spacing:.03em;}
.blog-subtitle{font-size:.72rem;color:var(--muted);margin-top:2px;}
.blog-form-card{background:var(--card);border:1px solid var(--bdr);border-radius:10px;padding:18px;margin-bottom:24px;}
.blog-form-title{font-size:.78rem;font-weight:600;color:var(--gold2);margin-bottom:14px;letter-spacing:.04em;text-transform:uppercase;}
.blog-cats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.blog-cat-btn{padding:4px 12px;border-radius:20px;border:1px solid var(--bdr);background:var(--bg);color:var(--muted);font-size:.68rem;cursor:pointer;transition:all .14s;font-family:var(--font-ui);}
.blog-cat-btn.sel{background:rgba(201,168,76,.18);border-color:rgba(201,168,76,.5);color:var(--gold2);font-weight:600;}
.blog-form-row{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.blog-inp{flex:1;min-width:140px;background:var(--bg);border:1px solid var(--bdr);border-radius:6px;color:var(--text);font-size:.78rem;padding:7px 10px;font-family:var(--font-ui);outline:none;transition:border .14s;}
.blog-inp:focus{border-color:rgba(201,168,76,.5);}
.blog-ta{width:100%;box-sizing:border-box;resize:vertical;min-height:90px;background:var(--bg);border:1px solid var(--bdr);border-radius:6px;color:var(--text);font-size:.78rem;padding:8px 10px;font-family:var(--font-ui);outline:none;transition:border .14s;}
.blog-ta:focus{border-color:rgba(201,168,76,.5);}
.blog-char{font-size:.62rem;color:var(--muted);text-align:right;margin-top:2px;}
.blog-submit{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:10px;}
.blog-post-list{display:flex;flex-direction:column;gap:14px;}
.blog-post{background:var(--card);border:1px solid var(--bdr);border-radius:10px;padding:16px 18px;position:relative;}
.blog-post.pending{border-color:rgba(220,150,30,.4);background:rgba(220,150,30,.05);}
.blog-post-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap;}
.blog-post-name{font-weight:600;font-size:.82rem;color:var(--text);}
.blog-post-date{font-size:.65rem;color:var(--muted);}
.blog-cat-badge{padding:2px 8px;border-radius:12px;font-size:.62rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;}
.blog-cat-badge.anregung{background:rgba(52,152,219,.18);color:#5dade2;}
.blog-cat-badge.verbesserung{background:rgba(46,204,113,.15);color:#27ae60;}
.blog-cat-badge.wunsch{background:rgba(155,89,182,.15);color:#9b59b6;}
.blog-cat-badge.lob{background:rgba(201,168,76,.18);color:var(--gold2);}
.blog-cat-badge.sonstiges{background:rgba(127,140,141,.15);color:#95a5a6;}
.blog-pending-badge{padding:2px 8px;border-radius:12px;font-size:.62rem;font-weight:600;background:rgba(220,150,30,.2);color:#e8a030;letter-spacing:.04em;}
.blog-post-text{font-size:.8rem;color:var(--text);line-height:1.55;white-space:pre-wrap;word-break:break-word;}
.blog-mod-btns{display:flex;gap:6px;margin-top:10px;justify-content:flex-end;}
.blog-empty{text-align:center;padding:40px 20px;color:var(--muted);font-size:.8rem;}
.blog-count-badge{background:rgba(201,168,76,.15);border:1px solid rgba(201,168,76,.3);color:var(--gold2);border-radius:20px;padding:2px 10px;font-size:.68rem;font-weight:600;}

.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;}
.save-ok{font-size:.68rem;color:#65c07a;opacity:0;font-weight:500;letter-spacing:.02em;}
.save-ok.on{animation:savePulse 2.2s ease forwards;}
.unsaved-dot{width:7px;height:7px;border-radius:50%;background:#d4902a;flex-shrink:0;display:none;box-shadow:0 0 6px rgba(212,144,42,.5);}
.unsaved-dot.show{display:block;animation:dotPulse 1.4s infinite;}
.admin-b{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;background:rgba(201,168,76,.09);border:1px solid rgba(201,168,76,.2);}
.admin-bt{font-size:.68rem;font-weight:600;letter-spacing:.06em;color:var(--gold2);}
.logout-b{background:none;border:none;color:#5a7860;cursor:pointer;font-size:.68rem;font-family:'Inter',sans-serif;padding:2px 4px;transition:color .14s;}
.logout-b:hover{color:#d05040;}
.viewer-b{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;background:rgba(34,113,168,.09);border:1px solid rgba(34,113,168,.2);}
.viewer-bt{font-size:.68rem;font-weight:500;letter-spacing:.04em;color:#6aaccb;}
.viewer-lb{background:none;border:none;color:var(--gold2);cursor:pointer;font-size:.68rem;font-family:'Inter',sans-serif;padding:2px 4px;text-decoration:underline;text-underline-offset:2px;}

/* RESET PIN WIDGET */
.pin-wrap{display:flex;align-items:center;gap:5px;}
.pin-lbl{font-size:.64rem;color:#4d7055;letter-spacing:.04em;}
.pin-inp{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:6px;padding:4px 7px;
  color:#a8ccb0;font-size:.74rem;width:72px;text-align:center;font-family:'Inter',sans-serif;letter-spacing:.2em;}
.pin-inp:focus{outline:none;border-color:rgba(201,168,76,.35);background:rgba(255,255,255,.07);}

/* LAYOUT */
#body{flex:1;overflow:hidden;display:flex;}
#sidebar{width:178px;flex-shrink:0;background:var(--sidebar);border-right:1px solid rgba(255,255,255,.04);
  display:flex;flex-direction:column;padding:10px 0;overflow-y:auto;}
#sidebar::-webkit-scrollbar{width:2px;}#sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.08);}
#main{flex:1;overflow-y:auto;padding:16px 18px;background:var(--bg);}
#main::-webkit-scrollbar{width:5px;}#main::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}

/* SIDEBAR */
.sb-s{padding:0 10px 10px;}
.sb-lbl{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#3a5842;margin-bottom:6px;display:flex;align-items:center;gap:4px;}
.sb-r{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.04);}
.sb-rl{font-size:.7rem;color:#5a7a62;}.sb-rv{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--gold2);font-size:.9rem;}
.sg{height:1px;background:rgba(255,255,255,.05);margin:5px 10px 8px;}

/* JACKPOT SIDEBAR */
.jk-sb{padding:7px 10px;background:rgba(201,168,76,.06);border:1px solid rgba(201,168,76,.15);border-radius:7px;margin-bottom:5px;}
.jk-sb-n{font-size:.68rem;color:var(--gold2);font-weight:500;margin-bottom:2px;}
.jk-sb-v{font-family:'Cormorant Garamond',serif;font-size:1rem;font-weight:700;color:var(--gold2);}

/* JACKPOT GRID (Setup-Tab) */
.jackpot-grid{display:flex;flex-direction:column;gap:6px;}
.jackpot-grid-row{display:flex;align-items:center;gap:7px;background:rgba(201,168,76,.04);border:1px solid rgba(201,168,76,.13);border-radius:8px;padding:6px 10px;}
.jackpot-grid-row .inp{background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0;padding:3px 5px;font-size:.78rem;}
.jackpot-grid-row .inp:focus{border-bottom-color:var(--green);box-shadow:none;}
.jk-name-inp{flex:1;min-width:80px;}
.jk-eur-inp{width:14px;text-align:center;padding:3px 3px;}
.jk-eur-lbl{font-size:.7rem;color:var(--muted);white-space:nowrap;}
.jk-amount{font-size:.78rem;font-weight:700;color:var(--gold);min-width:56px;text-align:right;font-family:'Cormorant Garamond',serif;}

/* PAGE HEADER */
.ph{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:7px;}.ph-l{flex:1;}
.pt{font-family:'Cormorant Garamond',serif;font-size:clamp(1.4rem,1.2rem + 0.5vw,1.8rem);font-weight:700;color:var(--text);line-height:1;}
.ps{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;}
.gl{height:2px;background:linear-gradient(90deg,var(--green2) 0%,rgba(201,168,76,.5) 50%,transparent 100%);border-radius:2px;margin-bottom:14px;opacity:.55;}

/* BADGES & FROW */
.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:20px;font-size:.68rem;font-weight:600;letter-spacing:.04em;}
.bg-a{background:rgba(154,120,40,.1);color:var(--gold);border:1px solid rgba(154,120,40,.25);}
.bg-b{background:rgba(34,113,168,.08);color:var(--blue);border:1px solid rgba(34,113,168,.2);}
.bg-g{background:rgba(23,122,64,.08);color:var(--green);border:1px solid rgba(23,122,64,.2);}
.frow{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);}
.frow:last-child{border-bottom:none;}.fl{font-size:.8rem;color:var(--text2);}.fv{font-size:.8rem;font-weight:600;color:var(--text);}

/* PANELS */
.pnl{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:12px;box-shadow:var(--shadow);}
.pnl-h{padding:10px 14px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--bg2) 0%,rgba(240,248,240,.6) 100%);display:flex;align-items:center;gap:8px;min-height:40px;}
.pnl-t{font-weight:600;font-size:.85rem;color:var(--text2);letter-spacing:.01em;}
.pnl-b{padding:14px;}

/* GRIDS */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.g23{display:grid;grid-template-columns:2fr 3fr;gap:14px;}

/* FORMS */
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;}
.lbl{font-size:.74rem;font-weight:600;color:var(--text2);letter-spacing:.03em;}
.inp{background:var(--bg2);border:1.5px solid var(--border);border-radius:7px;padding:8px 12px;color:var(--text);
  font-family:var(--font-ui);font-size:.85rem;width:100%;transition:border-color .16s,box-shadow .16s;outline:none;}
.inp:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(23,122,64,.08);}
.inp:disabled{opacity:.4;cursor:not-allowed;background:var(--bg);}
select.inp{cursor:pointer;}.inp-sm{padding:5px 8px;font-size:.76rem;}.inp-num{width:56px;text-align:center;}
.setup-cfg-col .pnl-b .inp-sm{padding:3px 6px;font-size:.73rem;}.setup-cfg-col .pnl-b .lbl{font-size:.6rem;margin-bottom:1px;}.setup-cfg-col .pnl-b .field{margin-bottom:4px;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:5px;padding:8px 14px;border-radius:8px;border:none;cursor:pointer;
  font-family:var(--font-ui);font-size:.78rem;font-weight:500;transition:all .15s;white-space:nowrap;letter-spacing:.01em;min-height:36px;}
.btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none;}
.bg{background:linear-gradient(135deg,#1e9050,var(--green));color:#fff;font-weight:600;box-shadow:0 1px 4px rgba(23,122,64,.2);}
.bg:hover:not(:disabled){background:linear-gradient(135deg,#22a055,#1e9050);box-shadow:0 3px 10px rgba(23,122,64,.3);transform:translateY(-1px);}
.bgo{background:linear-gradient(135deg,var(--gold3),var(--gold2));color:#fff;font-weight:600;}
.bgo:hover:not(:disabled){box-shadow:0 3px 10px rgba(154,120,40,.3);transform:translateY(-1px);}
.bgh{background:var(--bg2);border:1.5px solid var(--border);color:var(--text2);}
.bgh:hover:not(:disabled){border-color:var(--green2);color:var(--green);background:var(--green-bg);}
.bgn{background:var(--green-bg);border:1.5px solid rgba(23,122,64,.3);color:var(--green);}
.bgn:hover:not(:disabled){background:rgba(23,122,64,.15);border-color:var(--green);}
.bdr-btn{background:var(--red-bg);border:1.5px solid rgba(184,50,38,.25);color:var(--red);}
.bdr-btn:hover:not(:disabled){background:rgba(184,50,38,.14);border-color:var(--red);}
.b-timer{background:var(--blue-bg);border:1.5px solid rgba(34,113,168,.25);color:var(--blue);padding:4px 10px;font-size:.72rem;}
.b-timer:hover:not(:disabled){background:rgba(34,113,168,.14);}
.bsm{padding:4px 10px;font-size:.7rem;border-radius:6px;min-height:28px;}.bfw{width:100%;justify-content:center;}

/* STAT BOX */
.sbox{padding:14px 12px;text-align:center;border-radius:var(--radius);border:1px solid var(--border);
  background:linear-gradient(160deg,var(--card) 0%,var(--bg2) 100%);box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s;}
.sbox:hover{transform:translateY(-2px);box-shadow:var(--shadow2);}
.snum{font-family:'Cormorant Garamond',serif;font-size:clamp(1.3rem,1.1rem + 0.4vw,1.7rem);font-weight:700;color:var(--green);line-height:1;}
.slbl{font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:4px;}

/* HIDE SPIN BUTTONS ON ALL NUMBER INPUTS */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0;}
input[type=number]{-moz-appearance:textfield;}

/* COMPACT MATCH CARD (für KO) */
.mc-row{border-radius:8px;border:1.5px solid var(--border);background:var(--card);margin-bottom:6px;
  transition:border-color .18s,background .18s,box-shadow .18s;overflow:hidden;box-shadow:var(--shadow);position:relative;}
.mc-row:nth-child(odd){background:var(--card);}
.mc-row:nth-child(even){background:rgba(154,120,40,.08);}
.mc-row.mc-done {
  opacity: 1 !important;
  filter: none !important;
}
.mc-row.mc-done .mc-start-btn,
.mc-row.mc-done .mc-arr,
.mc-row.mc-done .mc-hb-inp,
.mc-row.mc-done .mc-sc {
  opacity: 1;
}
.mc-row.mc-running{
  border-color:#e6b800!important;
  border-left:5px solid #ffe033!important;
  background:linear-gradient(135deg,rgba(255,220,0,.13) 0%,rgba(230,184,0,.05) 100%)!important;
  box-shadow:0 0 0 2px rgba(255,220,0,.3),0 4px 24px rgba(230,180,0,.22),var(--shadow)!important;
  animation:liveGlow 1.8s ease-in-out infinite;
}
@keyframes liveGlow{
  0%,100%{box-shadow:0 0 0 2px rgba(255,220,0,.28),0 4px 18px rgba(230,180,0,.15);}
  50%{box-shadow:0 0 0 3px rgba(255,220,0,.55),0 8px 32px rgba(230,180,0,.35);}
}
.mc-row.mc-running .mc-top{
  background:linear-gradient(90deg,rgba(255,220,0,.12),rgba(255,220,0,.04))!important;
  border-bottom:1px solid rgba(255,220,0,.25)!important;
}
.mc-row.mc-running .mc-p{color:#1a1200!important;font-weight:600!important;}
.mc-row.mc-running .mc-p.won{color:#5a3d00!important;}
.mc-row.mc-running .mc-idx{color:#b8860b!important;}
.mc-row.mc-running .mc-score-wrap{
  border-color:rgba(255,200,0,.6)!important;
  background:rgba(255,220,0,.15)!important;
  box-shadow:0 0 8px rgba(255,200,0,.25)!important;
}
.mc-row.mc-running .mc-sc{color:#1a1200!important;font-weight:700!important;}
.mc-row.mc-overtime,.gm-row.mc-overtime{animation:blinkRed .8s infinite;}
.mc-row.mc-row-final{border-color:rgba(201,168,76,.55)!important;background:linear-gradient(135deg,rgba(201,168,76,.10),rgba(201,168,76,.03))!important;box-shadow:0 0 0 1.5px rgba(201,168,76,.35),0 4px 20px rgba(201,168,76,.12)!important;}
.mc-row.mc-row-final .mc-p{color:var(--gold)!important;font-weight:700!important;}
.mc-row.mc-row-final.mc-running{background:linear-gradient(135deg,rgba(201,168,76,.22),rgba(201,168,76,.10))!important;box-shadow:0 0 0 2px rgba(201,168,76,.6),0 4px 24px rgba(201,168,76,.25)!important;}
.mc-row.mc-row-final.mc-done{border-color:rgba(201,168,76,.5)!important;background:linear-gradient(135deg,rgba(201,168,76,.12),rgba(39,174,96,.04))!important;}
.br-m.br-m-final{border-color:rgba(201,168,76,.55)!important;background:linear-gradient(135deg,rgba(201,168,76,.1),rgba(201,168,76,.03))!important;box-shadow:0 0 0 1.5px rgba(201,168,76,.4),0 4px 24px rgba(201,168,76,.15)!important;}
.br-m.br-m-final .br-slot{font-size:.72rem;min-height:26px;}
.br-m.br-m-final .br-sc{font-size:1.05rem;}
.br-col-final{position:relative;}
.br-col-final::before{content:'';position:absolute;inset:-6px -4px;border-radius:12px;background:rgba(201,168,76,.04);border:1px solid rgba(201,168,76,.2);pointer-events:none;z-index:0;}
.br-col-final>*{position:relative;z-index:1;}
/* Top row: names + score */
.mc-top{display:flex;align-items:center;gap:6px;padding:6px 10px;min-height:36px;}
.mc-idx{font-size:.64rem;font-weight:700;color:var(--muted);min-width:22px;text-align:center;flex-shrink:0;}
.mc-p{font-size:.9rem;font-weight:500;flex:1;min-width:0;overflow-wrap:break-word;word-break:break-word;line-height:1.2;}
.mc-p.won{color:var(--green);font-weight:700;}
.mc-score-wrap{display:inline-flex;align-items:center;gap:0;flex-shrink:0;background:rgba(154,120,40,.09);border:1.5px solid rgba(154,120,40,.32);border-radius:6px;padding:1px 2px;box-shadow:0 1px 5px rgba(154,120,40,.1);}
.mc-sc{width:auto;min-width:20px;text-align:center;font-weight:700;padding:2px 0;font-size:1rem;background:transparent;border:none;outline:none;color:var(--text);}
.mc-sc:focus{background:rgba(154,120,40,.1);border-radius:4px;}
.mc-start-btn{width:22px!important;height:22px!important;padding:0!important;font-size:.6rem!important;flex-shrink:0;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;}
.mc-vs{font-size:.8rem;font-weight:800;color:var(--gold);padding:0 4px;}
.mc-score-disp{font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:700;color:var(--gold);min-width:54px;text-align:center;flex-shrink:0;background:rgba(154,120,40,.08);border:1.5px solid rgba(154,120,40,.22);border-radius:7px;padding:2px 8px;}
.mc-badge{font-size:.6rem;font-weight:600;padding:2px 7px;border-radius:20px;flex-shrink:0;}
.mc-done-badge{background:rgba(39,174,96,.1);color:var(--green);border:1px solid rgba(39,174,96,.25);}
.mc-bye-badge{background:var(--gold-bg);color:var(--gold);border:1px solid rgba(154,120,40,.25);}
.mc-run-badge{background:rgba(39,174,96,.12);color:var(--green);border:1px solid rgba(39,174,96,.35);font-weight:700;animation:liveBlink 1.4s ease-in-out infinite;letter-spacing:.06em;}
/* Bottom: 3-col grid mirroring top row */
.mc-bot{border-top:1px solid var(--border);background:rgba(0,0,0,.016);}
.mc-chips-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:4px;padding:4px 9px;}
.mc-chips-l{display:flex;flex-wrap:wrap;gap:2px;justify-content:flex-start;}
.mc-chips-r{display:flex;flex-wrap:wrap;gap:2px;justify-content:flex-end;}
.mc-break-center{display:flex;align-items:center;justify-content:center;gap:3px;}
.mc-hb-inp{
  width:70px !important;
  text-align:center;
  padding:2px 0;
  font-size:1rem;
  -moz-appearance:textfield;
  background:transparent;
  border:none;
  outline:none;
  color:var(--text);
}
.mc-hb-inp:focus{background:rgba(154,120,40,.1);border-radius:4px;}
.mc-hb-inp::-webkit-outer-spin-button,.mc-hb-inp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.mc-arr{width:28px;height:28px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.8rem;padding:0;flex-shrink:0;}
.mc-timer-row{display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 10px 5px;}
.mc-timer{font-size:.68rem;color:var(--blue);font-weight:500;white-space:nowrap;}
.mc-timer.over{color:#fff;background:var(--red);padding:3px 10px;border-radius:6px;font-weight:800;font-size:.85rem;animation:pulse2 .7s infinite;box-shadow:0 0 8px rgba(184,50,38,.5);}
.mc-start-info{font-size:.64rem;color:var(--muted);}

/* TIMER */
.live-timer{font-weight:600;display:inline-block;min-width:3.2em;text-align:center;}.live-timer.timer-over{color:#fff!important;background:#c0392b;padding:3px 10px;border-radius:6px;font-weight:800;font-size:.88rem;animation:timerBlink .8s step-start infinite;box-shadow:0 0 10px rgba(192,57,43,.7);}
.timer-done{font-size:.68rem;color:var(--green);font-weight:500;}

/* LIVE MATCH PIN PANEL — laufende Partien oben eingeblendet */
#live-match-pin{
  position:sticky;
  top:0;
  z-index:200;
  margin:-16px -18px 18px -18px;
  pointer-events:none;
  display:none;
}
@media(max-width:800px){
  #live-match-pin{margin:-14px -10px 14px -10px;}
}
#live-match-pin.active{
  display:block;
  pointer-events:auto;
}
.live-pin-inner{
  background:linear-gradient(135deg,#1a1400 0%,#211a00 100%);
  border-bottom:3px solid #f0c000;
  box-shadow:0 6px 32px rgba(0,0,0,.45),0 0 0 0 rgba(240,190,0,.4);
  padding:10px 18px 14px;
}
.live-pin-hdr{
  display:flex;align-items:center;gap:8px;margin-bottom:10px;
  font-size:.6rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:#f0c000;
}
.live-pin-dot{
  width:8px;height:8px;border-radius:50%;background:#f0c000;
  animation:dotPulse 1s infinite;flex-shrink:0;
  box-shadow:0 0 8px rgba(240,190,0,.8);
}
.live-pin-matches{
  display:flex;flex-direction:column;gap:8px;
}
.live-pin-card{
  border-radius:9px;
  border:2px solid #d4a010;
  background:rgba(255,248,220,.97);
  box-shadow:0 2px 16px rgba(212,160,16,.25),0 0 0 1px rgba(240,190,0,.15);
  overflow:hidden;
}

/* TWO-COLUMN MATCH LAYOUT */
.match-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.match-col-hdr{font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:5px 10px;border-bottom:2px solid var(--border);margin-bottom:8px;}
.match-col-hdr.active{color:var(--gold);border-color:rgba(154,120,40,.4);}
.match-col-hdr.done{color:var(--green);border-color:rgba(39,174,96,.35);}

/* GROUP BOX */
.gc0{--gc:rgba(26,122,67,.7);--gcl:#1a7a43;--gch:var(--card);}
.gc1{--gc:rgba(41,128,185,.7);--gcl:#1a6aaa;--gch:var(--card);}
.gc2{--gc:rgba(194,24,91,.7);--gcl:#aa1a6a;--gch:var(--card);}
.gc3{--gc:rgba(180,140,20,.7);--gcl:#8a7010;--gch:var(--card);}
.gc4{--gc:rgba(180,80,30,.7);--gcl:#aa5020;--gch:var(--card);}
.gc5{--gc:rgba(100,80,180,.7);--gcl:#6050aa;--gch:var(--card);}
.gc6{--gc:rgba(20,150,150,.7);--gcl:#108888;--gch:var(--card);}
.gc7{--gc:rgba(180,60,60,.7);--gcl:#aa4040;--gch:var(--card);}
.grpbox{border-radius:var(--radius);overflow:hidden;border:2px solid var(--gc,var(--border));background:var(--card);box-shadow:var(--shadow);}
.grphdr{padding:10px 14px;font-weight:700;font-size:.88rem;color:var(--gcl,var(--text));background:var(--gch,var(--bg2));border-bottom:1px solid var(--gc,var(--border));display:flex;align-items:center;gap:7px;}
.gt{width:100%;border-collapse:collapse;}
.gt th{padding:6px 10px;font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);text-align:center;}
.gt th:first-child{text-align:center;}.gt td{padding:7px 10px;border-bottom:1px solid var(--border);font-size:.82rem;text-align:center;}
.gt td:first-child{text-align:right;}.gt tr:last-child td{border-bottom:none;}.gt tr.q1 td{color:var(--green);font-weight:600;}
.gt tr:hover td{background:var(--bg);}

/* PLAYER ROW */
.prow{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:7px;margin-bottom:4px;background:var(--card);border:1.5px solid var(--border);transition:border-color .18s;cursor:grab;}
.prow:hover{border-color:var(--border2);}
.prow.dragging{opacity:.4;}
.prow.drag-over{border-color:var(--green);background:var(--green-bg);}
.av{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--green2));display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:#fff;flex-shrink:0;}
.av-photo{width:30px;height:30px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1.5px solid var(--border);}
.av-photo-sm{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid var(--border);vertical-align:middle;}
.av-ini-sm{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;color:#fff;flex-shrink:0;vertical-align:middle;}
/* LIVE MATCH — große Spielerfotos links/rechts */
.mc-live-layout{display:grid;grid-template-columns:clamp(70px,18vw,100px) 1fr clamp(70px,18vw,100px);gap:0;padding:0!important;}
.mc-live-photo-col{display:flex;align-items:stretch;justify-content:center;padding:0;}
.mc-live-photo-col img.av-photo-live{width:100%;height:100%;min-height:80px;object-fit:cover;display:block;}
.mc-live-photo-col .av-ini-live{width:100%;height:100%;min-height:80px;display:flex;align-items:center;justify-content:center;font-size:clamp(.9rem,3vw,1.3rem);font-weight:700;color:#fff;border:none;border-radius:0;box-shadow:none;}
.mc-live-photo-col:first-child img.av-photo-live,.mc-live-photo-col:first-child .av-ini-live{border-right:2px solid #e6b800;}
.mc-live-photo-col:last-child img.av-photo-live,.mc-live-photo-col:last-child .av-ini-live{border-left:2px solid #e6b800;}
.mc-live-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 6px;min-width:0;}
.mc-live-name{font-size:clamp(.85rem,2.5vw,1rem);font-weight:700;white-space:normal;word-break:break-word;overflow-wrap:break-word;line-height:1.2;}
.mc-live-name.won{color:var(--green);}
.mc-live-vs{font-size:.72rem;font-weight:800;color:var(--gold);flex-shrink:0;}
.mc-live-breaks{display:grid;grid-template-columns:1fr auto 1fr;gap:4px;width:100%;align-items:start;margin-top:2px;}
.mc-live-breaks-l{display:flex;flex-wrap:wrap;gap:2px;justify-content:flex-end;}
.mc-live-breaks-r{display:flex;flex-wrap:wrap;gap:2px;justify-content:flex-start;}
@media(max-width:500px){
  .mc-live-center{padding:6px 4px;}
}

.photo-upload-wrap{position:relative;display:inline-block;cursor:pointer;}
.photo-upload-wrap input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;}
.photo-upload-wrap:hover{opacity:.85;}

/* FINANCE */
.frow:last-child{border-bottom:none;}.fl{color:var(--muted);}
.fv{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:1rem;color:var(--gold);}
.fvg{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:.94rem;color:var(--green);}
.sepg{height:1px;background:linear-gradient(90deg,transparent,var(--border2),transparent);margin:8px 0;}
.bg-r{background:var(--red-bg);color:var(--red);border:1px solid rgba(184,50,38,.25);}
.tag{display:inline-flex;padding:3px 8px;border-radius:20px;font-size:.7rem;background:var(--gold-bg);border:1px solid rgba(154,120,40,.2);color:var(--gold);margin:2px;}
/* ════════════════════════════════════════════════════════
   TURNIERBAUM – PROFESSIONAL DESIGN
   ════════════════════════════════════════════════════════ */
.bracket-wrap{overflow-x:auto;padding:12px 8px 14px;background:linear-gradient(160deg,#0f1d14 0%,#111d16 60%,#0d1a11 100%);border-radius:10px;border:1px solid rgba(255,255,255,.06);}
.bracket-wrap::-webkit-scrollbar{height:6px;}.bracket-wrap::-webkit-scrollbar-thumb{background:rgba(201,168,76,.3);border-radius:3px;}
.bracket{display:flex;align-items:stretch;gap:0;position:relative;min-width:max-content;}
.br-col{display:flex;flex-direction:column;min-width:170px;max-width:200px;position:relative;}
.br-col-final{min-width:190px;}
.br-lbl{text-align:center;font-size:.56rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.32);padding:0 6px 7px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:0; cursor:pointer;}
.br-lbl.r-r1{color:rgba(100,160,255,.55);border-color:rgba(100,160,255,.15);}
.br-lbl.r-r2{color:rgba(180,140,80,.65);border-color:rgba(180,140,80,.2);}
.br-lbl.r-sf{color:rgba(201,168,76,.8);border-color:rgba(201,168,76,.3);}
.br-lbl.r-final{color:var(--gold);border-color:rgba(201,168,76,.5);font-size:.58rem;letter-spacing:.12em;text-shadow:0 0 12px rgba(201,168,76,.35);}
.br-ms{display:flex;flex-direction:column;flex:1;padding:0;gap:0;justify-content:space-around;position:relative;}
.br-m{border-radius:7px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.035);margin:3px 4px;position:relative;transition:all .2s;overflow:hidden;}
.br-m::before{content:'';position:absolute;inset:0;border-radius:7px;background:linear-gradient(135deg,rgba(255,255,255,.05) 0%,transparent 55%);pointer-events:none;}
.br-m:hover{border-color:rgba(201,168,76,.4);background:rgba(201,168,76,.05);box-shadow:0 4px 20px rgba(0,0,0,.4),0 0 0 1px rgba(201,168,76,.15);transform:translateY(-1px);}
.br-m.dim{opacity:.2;border-style:dashed;}
.br-m.done{border-color:rgba(39,174,96,.45);background:rgba(23,122,64,.06);box-shadow:0 2px 12px rgba(39,174,96,.12);}
.br-m.active-m{border-color:rgba(201,168,76,.65);background:rgba(201,168,76,.07);box-shadow:0 0 0 2px rgba(201,168,76,.2),0 4px 16px rgba(0,0,0,.3);animation:blinkGold 1.4s infinite;}
.br-slot{padding:4px 6px;font-size:.66rem;border-bottom:1px solid rgba(255,255,255,.07);display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:6px;min-height:30px;transition:background .15s;color:rgba(255,255,255,.72);line-height:1.2;}
.br-slot:last-child{border-bottom:none;}
.br-slot.won{background:linear-gradient(90deg,rgba(39,174,96,.2),rgba(39,174,96,.04));color:#5de890;font-weight:700;}
.br-slot.tbd{color:rgba(255,255,255,.22);font-style:italic;font-size:.6rem;}
.br-sc{font-family:'Cormorant Garamond',serif;font-weight:700;color:var(--gold);font-size:.9rem;min-width:12px;text-align:right;flex-shrink:0;text-shadow:0 0 8px rgba(201,168,76,.3);}
.br-seed{color:var(--gold);font-size:.5rem;margin-right:2px;opacity:.8;}
.br-conn{width:20px;flex-shrink:0;position:relative;align-self:stretch;}
.br-conn svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.br-trophy-col{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 12px;flex-shrink:0;gap:4px;}
.br-champ-name{font-family:'Cormorant Garamond',serif;font-size:.82rem;font-weight:700;color:var(--gold);text-align:center;max-width:95px;line-height:1.2;text-shadow:0 0 14px rgba(201,168,76,.35);}
/* ── BRACKET CONNECTORS ── */
.br-col{position:relative;}
.br-ms{position:relative;}
.br-m-wrap{display:flex;align-items:center;position:relative;}
.br-conn-line{width:18px;flex-shrink:0;position:relative;align-self:stretch;display:flex;align-items:center;}
.br-conn-line::before{content:'';position:absolute;right:0;width:9px;border-top:1px solid rgba(201,168,76,.28);}
.br-conn-line.top::before{top:75%;transform:translateY(-50%);}
.br-conn-line.bot::before{top:25%;transform:translateY(-50%);}
.br-conn-line.top::after{content:'';position:absolute;right:0;top:75%;bottom:-100%;width:1px;background:rgba(201,168,76,.22);transform:translateY(-50%);}
.br-conn-line.bot::after{content:'';position:absolute;right:0;bottom:75%;top:-100%;width:1px;background:rgba(201,168,76,.22);transform:translateY(50%);}
.br-m-out{width:18px;flex-shrink:0;position:relative;align-self:stretch;display:flex;align-items:center;}
.br-m-out::before{content:'';position:absolute;left:0;width:100%;border-top:1px solid rgba(201,168,76,.25);top:50%;}
/* bracket card bo label */
.br-bo{font-size:.48rem;color:var(--muted2);letter-spacing:.06em;text-align:center;padding:2px 0 1px;border-top:1px solid rgba(255,255,255,.05);text-transform:uppercase;}
.br-hb-row{display:flex;gap:2px;padding:2px 5px 3px;justify-content:flex-end;}

/* ── Klassischer Turnierbaum ── */
.cb-wrap{overflow-x:auto;overflow-y:visible;padding:14px 10px 18px;
  background:linear-gradient(160deg,#0f1d14 0%,#111d16 60%,#0d1a11 100%);
  border-radius:0 0 var(--radius) var(--radius);}
.cb-rounds{display:flex;align-items:flex-start;min-width:fit-content;position:relative;}
.cb-round{display:flex;flex-direction:column;position:relative;flex-shrink:0;}
.cb-round-lbl{font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 8px 8px;text-align:center;color:#c9a84c;white-space:nowrap;}
.cb-round-lbl .cb-bo{font-size:.54rem;color:rgba(255,255,255,.4);font-weight:400;letter-spacing:.04em;margin-left:6px;}
.cb-match{display:flex;flex-direction:column;position:absolute;left:0;right:0;}
/* Spieler-Zeilen */
.cb-slot{display:flex;align-items:center;gap:5px;padding:0 7px 0 9px;
  border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);
  transition:background .15s;}
.cb-slot:last-of-type{border-bottom:none;}
.cb-slot.cb-won{background:rgba(39,174,96,.15);}
.cb-name{flex:1;font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:rgba(255,255,255,.92);line-height:1;}
.cb-name.w{color:#5de890;font-weight:800;}
.cb-name.tbd{color:rgba(255,255,255,.3);font-style:italic;font-size:.68rem;font-weight:400;}
/* Score-Eingabe */
.cb-sc-inp{width:34px;height:28px;border:1px solid rgba(255,255,255,.22);border-radius:4px;
  background:rgba(0,0,0,.4);color:#f0c860;font-weight:800;font-size:1rem;
  text-align:center;padding:0;flex-shrink:0;}
.cb-sc-inp:focus{outline:none;border-color:var(--green2);box-shadow:0 0 0 2px rgba(34,164,85,.3);}
.cb-sc-inp.w{color:#5de890;border-color:rgba(39,174,96,.5);}
.cb-sc-done{width:34px;text-align:center;font-size:1.1rem;font-weight:700;
  font-family:'Cormorant Garamond',serif;color:rgba(255,255,255,.35);flex-shrink:0;}
.cb-sc-done.w{color:#f0c860;}
/* Break-Eingabe */
.cb-hb-inp{width:60px;height:22px;border:1px solid rgba(255,255,255,.15);border-radius:3px;
  background:rgba(0,0,0,.3);color:#7eb8ff;font-size:.62rem;padding:0 4px;flex-shrink:0;}
.cb-hb-inp:focus{outline:none;border-color:rgba(100,160,255,.55);}
.cb-hb-done{font-size:.62rem;color:#7eb8ff;width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;}
/* Match-Umrandung */
.cb-match-inner{border:1.5px solid rgba(255,255,255,.15);border-radius:5px;overflow:hidden;}
.cb-match-inner.live{border-color:#ffe033;box-shadow:0 0 0 2px rgba(255,220,0,.25);}
.cb-match-inner.done{border-color:rgba(39,174,96,.4);}
.cb-match-inner.finale{border-color:rgba(201,168,76,.5);box-shadow:0 0 0 2px rgba(201,168,76,.15),0 4px 18px rgba(201,168,76,.15);}
.cb-match-inner.finale .cb-slot{background:rgba(201,168,76,.05);}
.cb-match-inner.finale .cb-name{color:#fff;font-weight:700;}
/* Champion */
.cb-champ{font-size:.82rem;font-weight:700;color:#c9a84c;margin-top:7px;text-align:center;white-space:nowrap;}
/* Timer-Zeile */
.cb-timer-row{display:flex;align-items:center;gap:5px;padding:2px 7px;
  background:rgba(0,0,0,.25);border-top:1px solid rgba(255,255,255,.07);
  min-height:22px;}
.cb-timer-btn{width:18px;height:18px;border-radius:3px;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:.6rem;
  flex-shrink:0;transition:background .15s;}
.cb-timer-btn.start{background:rgba(34,164,85,.2);color:#5de890;border:1px solid rgba(34,164,85,.4);}
.cb-timer-btn.start:hover{background:rgba(34,164,85,.5);}
.cb-timer-btn.stop{background:rgba(220,50,40,.15);color:#ff7070;border:1px solid rgba(220,50,40,.35);}
.cb-timer-btn.stop:hover{background:rgba(220,50,40,.4);}
.cb-time-info{font-size:.56rem;color:rgba(255,255,255,.45);font-family:'Roboto Mono',monospace;white-space:nowrap;}
.cb-elapsed{font-size:.58rem;color:#f0c000;font-family:'Roboto Mono',monospace;font-weight:600;margin-left:auto;}
/* SVG Connector */
.cb-conn-svg{flex-shrink:0;overflow:visible;}
.br-hb-box{width:16px;height:13px;border:none;border-radius:2px;background:none;display:flex;align-items:center;justify-content:center;font-size:.5rem;color:var(--blue);font-weight:700;}
.br-m-final .br-hb-box{border-color:rgba(201,168,76,.5);}
/* ── GROUP SCHEDULE TABLE ── */
.sched-wrap{overflow-x:auto;margin-top:10px;border-radius:8px;background:transparent;}
.sched-tbl{width:100%;border-collapse:collapse;font-size:.72rem;min-width:680px;}
.sched-tbl thead tr{background:linear-gradient(90deg,#b89030 0%,#c9a84c 40%,#a07830 100%);}
.sched-tbl thead th{padding:7px 8px;font-weight:700;letter-spacing:.07em;color:#111;border-right:1px solid rgba(0,0,0,.18);white-space:nowrap;text-align:center;}
.sched-tbl thead th:first-child{border-radius:7px 0 0 0;}.sched-tbl thead th:last-child{border-radius:0 7px 0 0;border-right:none;}
.sched-tbl td{padding:6px 8px;vertical-align:middle;}
.sched-tbl td:last-child{border-right:none;}
.sched-p-right{text-align:right!important;}
.sched-score-pair{display:inline-flex;align-items:center;gap:3px;}
.sched-score-td{text-align:center;min-width:80px;}
.sched-grp{font-weight:900;text-align:center;min-width:28px;font-size:.72rem;}
.sched-grp span{display:inline-block;font-weight:900;letter-spacing:.04em;}
.sched-tisch{font-weight:700;text-align:center;min-width:38px;}
.sched-nr{font-weight:600;text-align:center;min-width:30px;font-size:.65rem;}
.sched-time{font-size:.65rem;text-align:center;white-space:nowrap;}
.sched-dur{font-size:.65rem;font-weight:600;text-align:center;white-space:nowrap;}
.sched-player{font-weight:500;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sched-vs{font-weight:900;text-align:center;font-size:.75rem;min-width:20px;}
.sched-score{font-family:'Cormorant Garamond',serif;font-weight:700;font-size:.92rem;text-align:center;white-space:nowrap;min-width:48px;}
.sched-score.live{color:#f0c000;animation:liveBlink 1.4s infinite;}
.sched-hb{font-size:.68rem;text-align:center;min-width:54px;}
.sched-empty{text-align:center;padding:18px;font-size:.75rem;}
.sched-hb-val{display:inline-block;border-radius:3px;padding:0 4px;font-size:.6rem;font-weight:700;margin:1px;}
.sched-hb-cell{display:flex;align-items:center;gap:3px;width:100%;}
.sched-hb-chips{flex:1;display:flex;flex-wrap:wrap;gap:3px;justify-content:center;align-items:center;}
.sched-hb-add-btn{font-size:.62rem;padding:1px 5px;border-radius:4px;cursor:pointer;font-family:inherit;line-height:1.4;font-weight:700;visibility:hidden;opacity:0;transition:opacity .15s;}
.sched-hb-cell:hover .sched-hb-add-btn,tr:hover .sched-hb-add-btn{visibility:visible;opacity:1;}
.sched-btn-start{font-size:.6rem;padding:3px 10px;border-radius:4px;border:1px solid #27ae60;background:linear-gradient(135deg,#27ae60,#1e8449);color:#fff;cursor:pointer;font-family:inherit;white-space:nowrap;font-weight:700;letter-spacing:.04em;box-shadow:0 2px 8px rgba(39,174,96,.4);transition:all .15s;}
.sched-btn-start:hover{background:linear-gradient(135deg,#2ecc71,#27ae60);box-shadow:0 3px 12px rgba(39,174,96,.6);}
.sched-start-wrap{display:inline-flex;align-items:center;gap:4px;}
.sched-btn-stop{font-size:.5rem;padding:2px 5px;border-radius:3px;border:1px solid rgba(220,50,40,.4);background:rgba(220,50,40,.15);cursor:pointer;font-family:inherit;opacity:0;transition:opacity .2s;}
.sched-start-wrap:hover .sched-btn-stop{opacity:1;}
.sched-live-time{font-size:.65rem;font-weight:600;display:inline-block;min-width:3.5em;text-align:center;}.sched-live-time.timer-over{color:#fff!important;background:#c0392b;padding:2px 7px;border-radius:5px;font-weight:800;animation:timerBlink .8s step-start infinite;box-shadow:0 0 8px rgba(192,57,43,.7);}
tr.sched-overtime td{background:rgba(220,50,40,.07)!important;}
.sched-inp{font-family:inherit;border-radius:4px;padding:3px 6px;outline:none;transition:border-color .15s;}
.sched-inp-hb{width:88px;font-size:.62rem;}
.sched-inp-num{width:34px;font-size:.75rem;text-align:center;font-weight:700;padding:3px 4px;}
.sched-colon{font-size:.8rem;font-weight:700;line-height:1;}
.sched-score-val{font-family:'Cormorant Garamond',serif;font-size:.95rem;}
.sched-sel{font-size:.62rem;padding:2px 4px;border-radius:4px;cursor:pointer;outline:none;max-width:68px;}

/* ── DUNKEL-MODUS ── */
.sched-dark .sched-tbl tbody tr{border-bottom:1px solid rgba(255,255,255,.07);transition:background .12s;}
.sched-dark .sched-tbl tbody tr:nth-child(odd){background:rgba(255,255,255,.05);}
.sched-dark .sched-tbl tbody tr:nth-child(even){background:rgba(0,0,0,.15);}
.sched-dark .sched-tbl tbody tr:hover{background:rgba(201,168,76,.14);}
.sched-dark .sched-tbl tbody tr.sched-live{background:rgba(220,180,0,.2)!important;border-left:3px solid #c9a800;}
.sched-dark .sched-tbl tbody tr.sched-done{background:rgba(20,90,50,.25)!important;border-left:3px solid rgba(39,174,96,.4);}
.sched-dark .sched-tbl td{border-right:1px solid rgba(255,255,255,.05);}
.sched-dark .sched-tisch{color:#f5d76e;}
.sched-dark .sched-nr{color:#fff;}
.sched-dark .sched-grp-A span{color:#4ade80;}
.sched-dark .sched-grp-B span{color:#60a5fa;}
.sched-dark .sched-grp-C span{color:#facc15;}
.sched-dark .sched-grp-D span{color:#f87171;}
.sched-dark .sched-grp-E span{color:#c084fc;}
.sched-dark .sched-grp-F span{color:#34d399;}
.sched-dark .sched-grp-G span{color:#fb923c;}
.sched-dark .sched-grp-H span{color:#f472b6;}
.sched-dark .sched-time{color:rgba(200,220,205,.8);}
.sched-dark .sched-dur{color:#d4f0da;}
.sched-dark .sched-player{color:rgba(180,200,185,.4);}
.sched-dark .sched-player.won{color:#4ade80;font-weight:800;text-shadow:0 0 8px rgba(74,222,128,.35);}
.sched-dark .sched-tbl tbody tr:not(.sched-done) .sched-player{color:#e8f0ea;font-weight:600;}
.sched-dark .sched-vs{color:rgba(200,220,205,.4);}
.sched-dark .sched-score{color:#e8c84a;}
.sched-dark .sched-hb-val{background:rgba(100,160,255,.15);color:#93c5fd;border:1px solid rgba(100,160,255,.35);}
.sched-dark .sched-hb-add-btn{border:1px solid rgba(100,160,255,.35);background:rgba(100,160,255,.1);color:#93c5fd;}
.sched-dark .sched-empty{color:rgba(180,200,185,.6);}
.sched-dark .sched-sel{border:1px solid rgba(220,180,60,.45);background:rgba(220,180,60,.12);color:#f5d76e;}
.sched-dark .sched-btn-stop{color:#f87171;}
.sched-dark .sched-live-time{color:#fbbf24;}
.sched-dark .sched-inp{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.07);color:#e8f4ec;}
.sched-dark .sched-inp-hb{color:#93c5fd;}
.sched-dark .sched-inp-num{color:#f5d76e;}
.sched-dark .sched-colon{color:rgba(220,235,225,.45);}
.sched-dark .sched-score-val{color:#e8c84a;}
.sched-dark .sched-tbl tbody tr.sched-live .sched-nr{color:#fff;}

/* ── HELL-MODUS ── */
.sched-light .sched-tbl tbody tr{border-bottom:1px solid rgba(0,0,0,.07);transition:background .12s;}
.sched-light .sched-tbl tbody tr:nth-child(odd){background:rgba(0,0,0,.02);}
.sched-light .sched-tbl tbody tr:nth-child(even){background:rgba(0,0,0,.05);}
.sched-light .sched-tbl tbody tr:hover{background:rgba(201,168,76,.1);}
.sched-light .sched-tbl tbody tr.sched-live{background:rgba(255,220,0,.15)!important;border-left:3px solid #c9a800;}
.sched-light .sched-tbl tbody tr.sched-done{background:rgba(39,174,96,.08)!important;border-left:3px solid rgba(39,174,96,.4);}
.sched-light .sched-tbl td{border-right:1px solid rgba(0,0,0,.06);}
.sched-light .sched-tisch{color:#8a6000;}
.sched-light .sched-nr{color:#2a3a2e;}
.sched-light .sched-grp-A span{color:#15803d;}
.sched-light .sched-grp-B span{color:#1d4ed8;}
.sched-light .sched-grp-C span{color:#a16207;}
.sched-light .sched-grp-D span{color:#b91c1c;}
.sched-light .sched-grp-E span{color:#7e22ce;}
.sched-light .sched-grp-F span{color:#0f766e;}
.sched-light .sched-grp-G span{color:#c2410c;}
.sched-light .sched-grp-H span{color:#be185d;}
.sched-light .sched-time{color:#4a6050;}
.sched-light .sched-dur{color:#1a3a22;font-weight:700;}
.sched-light .sched-player{color:rgba(80,100,85,.45);}
.sched-light .sched-player.won{color:#15803d;font-weight:800;text-shadow:none;}
.sched-light .sched-tbl tbody tr:not(.sched-done) .sched-player{color:#1a2e1e;font-weight:600;}
.sched-light .sched-vs{color:rgba(80,100,85,.45);}
.sched-light .sched-score{color:#8a6000;}
.sched-light .sched-hb-val{background:rgba(29,78,216,.1);color:#1d4ed8;border:1px solid rgba(29,78,216,.3);}
.sched-light .sched-hb-add-btn{border:1px solid rgba(29,78,216,.35);background:rgba(29,78,216,.07);color:#1d4ed8;}
.sched-light .sched-empty{color:#6a8070;}
.sched-light .sched-sel{border:1px solid rgba(120,90,20,.4);background:rgba(120,90,20,.07);color:#8a6000;}
.sched-light .sched-btn-stop{color:#b91c1c;}
.sched-light .sched-live-time{color:#a16207;}
.sched-light .sched-inp{border:1px solid rgba(0,0,0,.18);background:rgba(255,255,255,.8);color:#1a2e1e;}
.sched-light .sched-inp-hb{color:#1d4ed8;}
.sched-light .sched-inp-num{color:#8a6000;}
.sched-light .sched-colon{color:rgba(80,100,85,.5);}
.sched-light .sched-score-val{color:#8a6000;}
.sched-light .sched-tbl tbody tr.sched-live .sched-nr{color:#2a3a2e;}
.view-toggle-bar{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;}
.view-toggle-bar button{background:none;border:none;color:var(--muted);padding:4px 10px;font-size:.62rem;font-family:inherit;letter-spacing:.05em;cursor:pointer;transition:all .15s;}
.view-toggle-bar button.active{background:rgba(201,168,76,.16);color:var(--gold);}

/* RANKING TABLE */
.rtbl{width:100%;border-collapse:collapse;}
.rtbl th{padding:8px 12px;font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--border);text-align:center;}
.rtbl th:first-child{text-align:left;}.rtbl td{padding:9px 12px;border-bottom:1px solid var(--border);font-size:.84rem;text-align:center;}
.rtbl td:first-child{text-align:left;}.rtbl tr:last-child td{border-bottom:none;}.rtbl tr:hover td{background:var(--bg);}
.rk{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:700;}
.rk1{color:#c9a000;}.rk2{color:#9a9a9a;}.rk3{color:#b87030;}

/* TOURNAMENT CARD */
.tcard{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--card);transition:all .18s;cursor:pointer;margin-bottom:6px;box-shadow:var(--shadow);}
.tcard:hover{border-color:var(--green);box-shadow:var(--shadow2);}
.tcard-name{font-weight:600;font-size:.95rem;color:var(--text);}
.tcard-meta{font-size:.7rem;color:var(--muted);margin-top:2px;}
.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.s-setup{background:var(--muted);}.s-groups{background:var(--gold2);animation:dotPulse 2s infinite;}
.s-finals{background:var(--green2);animation:dotPulse 1.5s infinite;}.s-done{background:var(--blue);}

/* HISTORY */
.hist-card{border-radius:var(--radius);border:1.5px solid var(--border);background:var(--card);margin-bottom:8px;overflow:hidden;box-shadow:var(--shadow);transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;flex-direction:row;align-items:stretch;}
.hist-card:hover{border-color:var(--border2);box-shadow:var(--shadow2);transform:translateY(-1px);}
.hist-hdr{padding:10px 14px;background:var(--bg2);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;}
.hist-name{font-weight:600;font-size:.86rem;color:var(--text);}
.hist-body{padding:8px 14px;}

/* CHAMPION */
.champ{border-radius:12px;padding:20px 18px;margin-bottom:16px;text-align:center;
  background:linear-gradient(135deg,rgba(154,120,40,.08) 0%,rgba(201,168,76,.04) 50%,rgba(39,174,96,.06) 100%);
  border:2px solid rgba(154,120,40,.38);box-shadow:0 4px 24px rgba(154,120,40,.13),var(--shadow);}
.champ-n{font-family:'Cormorant Garamond',serif;font-size:clamp(1.5rem,1.2rem + 0.6vw,1.9rem);font-weight:700;color:var(--gold);}
.champ-s{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px;}

/* DRAW CENTER */
.draw-c{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:54vh;text-align:center;gap:12px;}
.draw-big{font-family:'Cormorant Garamond',serif;font-size:clamp(1.6rem,1.3rem + 0.6vw,2.2rem);font-weight:700;color:var(--text);}
.draw-sub{font-size:.82rem;color:var(--muted);letter-spacing:.04em;max-width:340px;line-height:1.55;}

/* JACKPOT SEASON */
.jk-season{padding:14px;background:linear-gradient(135deg,rgba(154,120,40,.06),rgba(39,174,96,.04));border:1.5px solid rgba(154,120,40,.25);border-radius:var(--radius);margin-bottom:12px;}
.jk-season-title{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;}
.jk-season-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid rgba(154,120,40,.1);}
.jk-season-row:last-child{border-bottom:none;}

/* DRAG AND DROP (legacy) */
.dd-zone{min-height:44px;border:2px dashed var(--border);border-radius:var(--radius);padding:10px;transition:border-color .2s,background .2s;}
.dd-zone.drag-active{border-color:var(--green);background:var(--green-bg);}
.dd-player{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:20px;background:var(--card);border:1.5px solid var(--border);font-size:.78rem;font-weight:500;cursor:grab;margin:2px;transition:all .15s;user-select:none;}
.dd-player:hover{border-color:var(--green);background:var(--green-bg);}
.dd-player.dragging{opacity:.35;transform:scale(.97);}

/* — PLAYER PICKER — */
.pp-wrap{display:grid;grid-template-columns:280px 1fr;border:2px solid var(--border-dark);border-radius:var(--radius);overflow:hidden;box-shadow:0 4px 28px rgba(0,0,0,.12),var(--shadow);height:calc(100vh - 220px);max-height:calc(100vh - 220px);}

/* LEFT: Spielerdatenbank — passend zum hellen App-Design */
.pp-left{background:var(--bg2);display:flex;flex-direction:column;border-right:2px solid var(--border);overflow:hidden;height:100%;}
.pp-left-head{padding:12px 14px 10px;border-bottom:2px solid var(--border);flex-shrink:0;background:var(--card);}
.pp-left-title{font-size:.58rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:9px;display:flex;align-items:center;justify-content:space-between;}
.pp-left-count{font-size:.72rem;font-weight:700;background:var(--gold-bg);color:var(--gold);border-radius:20px;padding:2px 9px;border:1px solid rgba(154,120,40,.3);}
.pp-search-wrap{position:relative;}
.pp-search{width:100%;background:var(--bg);border:1.5px solid var(--border2);border-radius:7px;padding:8px 10px 8px 32px;font-size:.8rem;color:var(--text);font-family:inherit;outline:none;transition:border-color .18s,box-shadow .18s;box-sizing:border-box;}
.pp-search::placeholder{color:var(--muted2);}
.pp-search:focus{border-color:var(--green2);box-shadow:0 0 0 2px rgba(34,164,85,.15);}
.pp-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:.75rem;color:var(--green2);pointer-events:none;}

/* Alphabet quick-jump */
.pp-alpha-bar{display:flex;flex-wrap:wrap;gap:2px;padding:7px 10px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg);}
.pp-alpha-btn{font-size:.62rem;font-weight:700;color:var(--muted);cursor:pointer;padding:3px 5px;border-radius:4px;transition:background .12s,color .12s;user-select:none;line-height:1;min-width:22px;text-align:center;}
.pp-alpha-btn:hover{background:var(--green-bg);color:var(--green);}
.pp-alpha-btn.has-sel{color:var(--green);font-weight:800;}

.pp-list{flex:1;overflow-y:scroll;padding:4px 0;background:var(--bg2);scrollbar-width:auto;scrollbar-color:var(--border-dark) rgba(0,0,0,.08);}
.pp-list::-webkit-scrollbar{width:8px;display:block;}
.pp-list::-webkit-scrollbar-track{background:rgba(0,0,0,.06);border-radius:4px;}
.pp-list::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:4px;border:1px solid rgba(255,255,255,.1);}
.pp-list::-webkit-scrollbar-thumb:hover{background:var(--green2);}

/* Letter dividers */
.pp-letter{font-size:.54rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);padding:8px 14px 4px;user-select:none;background:var(--bg);border-top:1px solid var(--border);margin-top:2px;}

/* Player row */
.pp-item{display:flex;align-items:center;padding:0;cursor:pointer;transition:background .12s,border-left-color .12s;border-left:3px solid transparent;position:relative;background:var(--bg2);min-height:42px;}
.pp-item:hover:not(.pp-in){background:var(--green-bg);border-left-color:var(--green2);}
.pp-item-inner{display:flex;align-items:center;gap:8px;padding:8px 10px 8px 10px;flex:1;min-width:0;}
.pp-item-check{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .18s;background:var(--card);}
.pp-item-av{width:28px;height:28px;border-radius:7px;background:var(--green-bg);border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.6rem;font-weight:700;color:var(--green);letter-spacing:0;}
.pp-item.pp-in .pp-item-av{background:var(--green2);border-color:transparent;color:#fff;font-size:.72rem;}
.pp-item:hover:not(.pp-in) .pp-item-av{background:var(--green2);border-color:transparent;color:#fff;}
.pp-item.pp-in:hover .pp-item-av{background:var(--red);color:#fff;}
.pp-item-name{flex:1;font-size:.82rem;font-weight:500;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pp-item-sub{font-size:.64rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px;flex-shrink:0;}
.pp-item-seed{color:var(--gold2);font-size:.66rem;margin-right:2px;}

/* Selected state */
.pp-item.pp-in{background:var(--green-bg);border-left-color:var(--green2);border-left-width:4px;}
.pp-item.pp-in .pp-item-check{background:var(--green2);border-color:var(--green2);}
.pp-item.pp-in .pp-item-check::after{content:'✓';font-size:.62rem;font-weight:700;color:#fff;line-height:1;}
.pp-item.pp-in .pp-item-name{color:var(--muted);font-weight:400;}
.pp-item.pp-in:hover{background:var(--red-bg);border-left-color:var(--red);}
.pp-item.pp-in:hover .pp-item-check{background:var(--red);border-color:var(--red);}
.pp-item.pp-in:hover .pp-item-check::after{content:'✕';}

.pp-nores{padding:20px;text-align:center;font-size:.7rem;color:var(--muted);font-style:italic;}

/* RIGHT: Roster */
.pp-right{display:flex;flex-direction:column;background:var(--card);overflow:hidden;height:100%;}
.pp-right-head{padding:12px 16px 10px;border-bottom:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;gap:8px;background:var(--bg2);}
.pp-right-title{font-size:.6rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.pp-right-cnt{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;font-weight:700;color:var(--green);line-height:1;transition:color .2s;}
.pp-right-cnt.full{color:var(--gold);}
.pp-right-max{font-size:.68rem;color:var(--muted2);}
.pp-pbar-wrap{padding:5px 14px 0;flex-shrink:0;}
.pp-pbar{height:3px;background:var(--border);border-radius:2px;overflow:hidden;}
.pp-pbar-f{height:100%;background:linear-gradient(90deg,var(--green),var(--green2));border-radius:2px;transition:width .4s;}
.pp-roster{flex:1;overflow-y:auto;}
.pp-roster::-webkit-scrollbar{width:4px;}.pp-roster::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px;}
.pp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:260px;gap:10px;padding:24px;}
.pp-empty-icon{font-size:2.8rem;opacity:.12;}
.pp-empty-txt{font-size:.78rem;color:var(--muted);text-align:center;line-height:1.6;}
.pp-tbl{width:100%;border-collapse:collapse;font-size:.8rem;}
.pp-tbl th{padding:8px 10px;font-size:.56rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--border);text-align:left;white-space:nowrap;position:sticky;top:0;background:var(--card);z-index:1;}
.pp-tbl th.c{text-align:center;}
.pp-tbl td{padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:middle;}
.pp-tbl tr:hover td{background:var(--green-bg);}
.pp-tbl tr:last-child td{border-bottom:none;}
.pp-num{color:var(--muted2);font-size:.68rem;width:24px;text-align:right;}
.pp-footer{padding:9px 14px;border-top:2px solid var(--border);background:var(--bg2);display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;}

/* MODAL POPUP */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9000;display:flex;align-items:center;justify-content:center;animation:fadeIn .16s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.modal-box{
  background:var(--card);
  border:1.5px solid var(--border2);
  border-radius:14px;
  box-shadow:0 8px 40px rgba(0,0,0,.22),var(--shadow2);
  max-width:440px;
  width:92%;
  animation:slideup .2s cubic-bezier(.22,.8,.38,1);
  overflow:hidden;       /* Damit border-radius auch bei inneren Elementen greift */
  display:flex;
  flex-direction:column;
}
/* ── Modal-Header (Icon + Titel) ── */
.modal-header{
  padding:20px 24px 0;
  text-align:center;
}
.modal-icon{font-size:2.2rem;text-align:center;margin-bottom:6px;}
.modal-title{
  font-family:'Cormorant Garamond',serif;
  font-size:1.2rem;
  font-weight:700;
  color:var(--text);
  text-align:center;
  margin:0 0 0;
  padding:18px 24px 10px;
  border-bottom:1px solid var(--border);
  letter-spacing:.01em;
}
/* ── Modal-Inhalt ── */
.modal-body{
  font-size:.82rem;
  color:var(--muted);
  line-height:1.65;
  padding:16px 24px;
  margin:0;
  text-align:left;
}
/* Abschnitte innerhalb modal-body visuell trennen */
.modal-body .field{margin-bottom:10px;}
.modal-body .field:last-child{margin-bottom:0;}
.modal-body .lbl{font-size:.72rem;}
.modal-body .sep{
  height:1px;
  background:var(--border);
  margin:12px 0;
  opacity:.7;
}
/* ── Modal-Fußzeile (Buttons) ── */
.modal-btns{
  display:flex;
  gap:8px;
  justify-content:flex-end;
  flex-wrap:wrap;
  padding:12px 24px 20px;
  border-top:1px solid var(--border);
  background:var(--bg2);
}
/* Primär-Button immer ganz rechts → Flex-Reihenfolge */
.modal-btns .btn.bg,.modal-btns .btn.bgo{ order:1; }
.modal-btns .btn.bgh,.modal-btns .btn.bdr-btn{ order:0; }

/* TOAST-BENACHRICHTIGUNGEN (ersetzt browser-native alert) */
#toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;}
.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:10px;font-size:.84rem;line-height:1.45;min-width:220px;max-width:360px;pointer-events:all;animation:toastIn .2s ease;box-shadow:0 4px 16px rgba(0,0,0,.25);border:1px solid transparent;}
.toast-ok  {background:#132b1a;border-color:#1a5c2e;color:#5de090;}
.toast-err {background:#2b1313;border-color:#5c1a1a;color:#e07070;}
.toast-warn{background:#2b2313;border-color:#5c4a1a;color:#e0b870;}
.toast-info{background:#131e2b;border-color:#1a3a5c;color:#70aae0;}
.toast-icon{font-size:1rem;flex-shrink:0;margin-top:1px;}
.toast-close{margin-left:auto;padding:0 0 0 8px;cursor:pointer;opacity:.6;font-size:1rem;flex-shrink:0;background:none;border:none;color:inherit;}
.toast-close:hover{opacity:1;}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* LOCK NOTICE */
.lock-notice{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:8px;background:var(--red-bg);border:1px solid rgba(184,50,38,.2);margin-bottom:12px;}
.lock-txt{font-size:.78rem;color:var(--red);}

/* PROGRESS */
.pbar{height:6px;background:rgba(0,0,0,.08);border-radius:3px;overflow:hidden;}
.pbar-f{height:100%;background:linear-gradient(90deg,var(--green) 0%,var(--green2) 100%);border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1);}

/* MISC */
.iscroll{overflow-y:scroll;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:var(--border-dark) rgba(0,0,0,.08);}.iscroll::-webkit-scrollbar{width:8px;display:block;}.iscroll::-webkit-scrollbar-track{background:rgba(0,0,0,.08);border-radius:4px;}.iscroll::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:4px;border:1px solid rgba(255,255,255,.12);}.iscroll::-webkit-scrollbar-thumb:hover{background:var(--green2);}
.cbx{width:17px;height:17px;accent-color:var(--green);cursor:pointer;}
.ro-lbl{font-size:.68rem;color:var(--blue);font-weight:500;}
.sep{height:1px;background:var(--border);margin:10px 0;}

/* PLAYER ROW EDIT */
.pedit-open{border-color:var(--green)!important;background:rgba(23,122,64,.04)!important;}

/* GST bezahlt Badge in der linken Spielerliste */
.gst-paid-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--green-bg);
  color:var(--green);
  font-size:.72rem;
  border-radius:12px;
  padding:1px 5px;
  margin-left:4px;
  border:1px solid rgba(23,122,64,.2);
}

/* NEUE TAB-STYLES */
.tab-btn {
  background: none;
  border: none;
  padding: 10px 18px;
  font-size: .78rem;
  font-weight: 600;
  color: var(--muted);
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all .15s;
  min-height: 38px;
  white-space: nowrap;
}
.tab-btn.active {
  color: var(--green);
  border-bottom-color: var(--green);
}
.tab-content {
  overflow-y: auto;
  padding: 10px 0;
}

/* ── SETUP-LAYOUT: Responsive Zwei-Spalten-Grid ─────────────────────────── */
/* Desktop: linke Spalte 1fr (Konfig+Tabs), rechte Spalte 2fr (Teilnehmer) */
.setup-main-grid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 12px;
  flex: 1;
  min-height: 0;
}
/* Linke Spalte: Konfig + Tab-Container */
.setup-cfg-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  /* Auf Desktop scrollt die linke Spalte eigenständig */
  overflow-y: auto;
}
/* Rechte Spalte: Teilnehmer-Picker (vollständige Höhe) */
.setup-player-col {
  min-height: 0;
}
/* 4-Spalten Konfig-Raster (Teilnehmer, Best-of, Phase) */
.setup-cfg-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  margin-bottom: 4px;
}
/* 5-Spalten Gebühren-Raster (Startgeld, GST, Tische, Shootout, PIN) */
.setup-cfg-grid-5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
  margin-bottom: 4px;
}

/* ── TABLET ≤1100px: Beide Spalten untereinander ────────────────────────── */
@media (max-width: 1100px) {
  .setup-main-grid {
    grid-template-columns: 1fr;
    /* Auf Tablet darf das Grid frei wachsen statt 100vh zu füllen */
    flex: none;
    height: auto;
  }
  .setup-cfg-col {
    overflow-y: visible;
  }
  /* Tab-Container auf Tablet: feste Höhe statt flex:1 (kein Eltern-height) */
  .setup-tab-container {
    flex: none !important;
    min-height: 0;
    height: auto !important;
  }
  .setup-tab-container .tab-content {
    max-height: 420px;
    overflow-y: auto;
  }
  .setup-player-col {
    height: 500px; /* feste Mindesthöhe damit der Picker nutzbar bleibt */
  }
}

/* ── SMARTPHONE ≤800px ──────────────────────────────────────────────────── */
@media (max-width: 800px) {
  .setup-cfg-grid-4 {
    grid-template-columns: repeat(2, 1fr);
  }
  .setup-cfg-grid-5 {
    grid-template-columns: repeat(2, 1fr);
  }
  .setup-player-col {
    height: 420px;
  }
  /* Tab-Buttons kompakter */
  .tab-btn {
    padding: 8px 12px;
    font-size: .72rem;
  }
  .setup-tab-container .tab-content {
    max-height: 360px;
  }
}

/* ── KLEIN ≤480px ───────────────────────────────────────────────────────── */
@media (max-width: 480px) {
  .setup-cfg-grid-4 {
    grid-template-columns: repeat(2, 1fr);
    gap: 5px;
  }
  .setup-cfg-grid-5 {
    grid-template-columns: repeat(2, 1fr);
    gap: 5px;
  }
  .setup-player-col {
    height: 380px;
  }
  .tab-btn {
    padding: 7px 9px;
    font-size: .68rem;
    min-height: 34px;
  }
}

/* ── SEHR KLEIN ≤360px ──────────────────────────────────────────────────── */
@media (max-width: 360px) {
  .setup-cfg-grid-4,
  .setup-cfg-grid-5 {
    grid-template-columns: 1fr 1fr;
    gap: 4px;
  }
  .setup-player-col {
    height: 340px;
  }
}

/* ── DASHBOARD: PROGRESS TRACKER & TYPE BADGES ─────────────────────────── */
.dash-progress{display:flex;align-items:center;padding:10px 16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;box-shadow:var(--shadow);flex-shrink:0;}
.dash-pstep{display:flex;flex-direction:column;align-items:center;gap:3px;flex-shrink:0;min-width:56px;}
.dash-pline{flex:1;height:2px;background:var(--border);margin:0 4px;margin-bottom:14px;border-radius:1px;transition:background .3s;}
.dash-pline.done{background:var(--green2);}
.dash-pdot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;background:var(--bg2);border:2px solid var(--border);color:var(--muted);transition:all .25s;flex-shrink:0;}
.dash-pstep.done .dash-pdot{background:var(--green);border-color:var(--green);color:#fff;}
.dash-pstep.active .dash-pdot{background:var(--gold2);border-color:var(--gold);color:#fff;box-shadow:0 0 0 3px rgba(201,168,76,.2);}
.dash-plbl{font-size:.5rem;color:var(--muted);letter-spacing:.04em;text-align:center;white-space:nowrap;text-transform:uppercase;font-weight:500;}
.dash-pstep.active .dash-plbl{color:var(--gold2);font-weight:700;}
.dash-pstep.done .dash-plbl{color:var(--green2);font-weight:600;}
.dash-type-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:20px;font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;}
.dash-type-badge.normal{background:rgba(23,122,64,.12);color:var(--green);border:1px solid rgba(23,122,64,.25);}
.dash-type-badge.simplon_gp{background:rgba(201,168,76,.15);color:var(--gold2);border:1px solid rgba(201,168,76,.35);}
.dash-type-badge.team_cup{background:rgba(34,113,168,.1);color:var(--blue);border:1px solid rgba(34,113,168,.25);}
.dash-type-badge.league{background:rgba(142,68,173,.1);color:#9b59b6;border:1px solid rgba(142,68,173,.28);}
/* Darts-Turnier-Farben */
html[data-sport="dart"] .dash-type-badge.dart{background:rgba(220,50,47,.13);color:#d94040;border:1px solid rgba(220,50,47,.38);}
html[data-sport="dart"] .tcard.dart-t{border-color:rgba(220,50,47,.4)!important;background:linear-gradient(135deg,rgba(220,50,47,.08),rgba(220,50,47,.02))!important;}
html[data-sport="dart"] .tcard.dart-t .tcard-name{color:#e04040;}
html[data-sport="dart"] .hist-card.dart-t{border-color:rgba(220,50,47,.38)!important;background:linear-gradient(135deg,rgba(220,50,47,.07),transparent)!important;}
html[data-sport="dart"] .dart-sport-strip{display:flex;align-items:center;gap:4px;font-size:.56rem;font-weight:700;color:#d04040;letter-spacing:.04em;padding:2px 0;}
/* Hochkant-Sportlabel an der linken Seite jeder Turnierkarte */
.tcard-sport-tab{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);font-size:.46rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;padding:4px 3px;flex-shrink:0;align-self:stretch;display:flex;align-items:center;justify-content:center;min-width:16px;}
.tcard .tcard-sport-tab{border-radius:3px 0 0 3px;margin:-12px 8px -12px -14px;}
.hist-card .tcard-sport-tab{border-radius:0;}
.tcard-sport-tab.snooker{background:rgba(23,122,64,.14);color:var(--green);border-right:2px solid rgba(23,122,64,.3);}
.tcard-sport-tab.dart{background:rgba(220,50,47,.15);color:#d04040;border-right:2px solid rgba(220,50,47,.4);}
.tcard-sport-tab.pool{background:rgba(41,128,185,.15);color:#2980b9;border-right:2px solid rgba(41,128,185,.4);}
/* Pool-Billard-Turnier-Farben */
html[data-sport="pool"] .dash-type-badge.pool{background:rgba(41,128,185,.13);color:#2980b9;border:1px solid rgba(41,128,185,.38);}
html[data-sport="pool"] .tcard.pool-t{border-color:rgba(41,128,185,.4)!important;background:linear-gradient(135deg,rgba(41,128,185,.08),rgba(41,128,185,.02))!important;}
html[data-sport="pool"] .tcard.pool-t .tcard-name{color:#2980b9;}
html[data-sport="pool"] .hist-card.pool-t{border-color:rgba(41,128,185,.38)!important;background:linear-gradient(135deg,rgba(41,128,185,.07),transparent)!important;}
html[data-sport="pool"] .pool-sport-strip{display:flex;align-items:center;gap:4px;font-size:.56rem;font-weight:700;color:#2980b9;letter-spacing:.04em;padding:2px 0;}
.dash-type-badge.double_elim{background:rgba(41,128,185,.16);color:#2471a3;border:1px solid rgba(41,128,185,.42);}
.dash-type-badge.pure_ko{background:rgba(220,100,40,.13);color:#c04010;border:1px solid rgba(220,100,40,.38);}
/* Double Elimination Bracket */
.de-bracket-outer{overflow-x:auto;overflow-y:auto;padding:8px 4px 16px;}
.de-bracket-section{display:flex;flex-direction:column;gap:0;margin-bottom:20px;}
.de-section-hdr{font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:5px 0 4px;color:var(--muted);border-bottom:1px solid var(--border);margin-bottom:8px;}
.de-section-hdr.wb{color:#27ae60;border-color:rgba(39,174,96,.3);}
.de-section-hdr.lb{color:#e67e22;border-color:rgba(230,126,34,.3);}
.de-section-hdr.gf{color:var(--gold);border-color:rgba(201,168,76,.4);}
.de-rnd-labels{display:flex;gap:0;margin-bottom:4px;}
.de-rnd-lbl-cell{font-size:.5rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center;}
.de-match{border:1.5px solid var(--border);border-radius:7px;overflow:hidden;background:var(--card);cursor:pointer;transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box;}
.de-match:hover{border-color:rgba(41,128,185,.5);box-shadow:0 0 0 2px rgba(41,128,185,.1);}
.de-match.done{border-color:rgba(39,174,96,.4);background:rgba(39,174,96,.03);}
.de-match.bye{opacity:.4;cursor:default;pointer-events:none;}
.de-match.gf-match{border-color:rgba(201,168,76,.5);background:linear-gradient(135deg,rgba(201,168,76,.07),transparent);}
.de-match.gf-match:hover{border-color:var(--gold);box-shadow:0 0 0 2px rgba(201,168,76,.15);}
.de-match.ready{border-color:rgba(41,128,185,.35);}
.de-match.live{border-color:rgba(41,128,185,.75);box-shadow:0 0 0 2px rgba(41,128,185,.2);animation:de-live 2s ease-in-out infinite;}
@keyframes de-live{0%,100%{box-shadow:0 0 0 2px rgba(41,128,185,.2)}50%{box-shadow:0 0 0 3px rgba(41,128,185,.38),0 0 10px rgba(41,128,185,.15)}}
.de-player{display:flex;align-items:center;gap:5px;padding:5px 8px;font-size:.76rem;}
.de-player+.de-player{border-top:1px solid var(--border);}
.de-player.winner{background:rgba(39,174,96,.1);font-weight:700;color:#27ae60;}
.de-player.loser{color:var(--muted2);}
.de-player .de-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.de-player .de-score{font-weight:800;font-size:.9rem;min-width:20px;text-align:center;}
.de-player .de-score.win-sc{color:#27ae60;}
.de-score-inp{width:38px;text-align:center;font-size:.9rem;font-weight:700;border:1.5px solid rgba(41,128,185,.5);border-radius:4px;background:rgba(41,128,185,.08);color:var(--text);padding:2px 4px;font-family:var(--font-ui);}
.de-empty{color:var(--muted2);font-size:.65rem;padding:6px 8px;font-style:italic;opacity:.65;}
.de-mfoot{display:flex;align-items:center;justify-content:space-between;padding:4px 7px;border-top:1px solid var(--border);background:var(--bg2);min-height:26px;}
.de-mfoot-live{background:rgba(41,128,185,.06);border-color:rgba(41,128,185,.25);}
.de-mtime{font-size:.55rem;color:#2980b9;font-weight:600;}
.de-btn{border:none;border-radius:4px;cursor:pointer;font-family:var(--font-ui);font-size:.62rem;font-weight:700;padding:3px 8px;transition:.12s;}
.de-btn-go{background:rgba(41,128,185,.15);color:#2980b9;border:1px solid rgba(41,128,185,.4);}
.de-btn-go:hover{background:rgba(41,128,185,.28);}
.de-btn-ok{background:rgba(39,174,96,.15);color:#27ae60;border:1px solid rgba(39,174,96,.4);}
.de-btn-ok:hover{background:rgba(39,174,96,.28);}
.de-btn-rst{background:transparent;color:var(--muted);border:1px solid var(--border);font-size:.68rem;padding:2px 6px;}
.de-btn-rst:hover{color:var(--red);border-color:rgba(192,57,43,.4);}
.de-con{position:absolute;background:var(--border);pointer-events:none;}
.de-placement{font-size:.55rem;font-weight:700;padding:1px 5px;border-radius:4px;background:rgba(201,168,76,.12);color:var(--gold);border:1px solid rgba(201,168,76,.3);}
/* DE Setup Layout */
.de-setup-wrap{display:flex;flex-direction:column;height:calc(100vh - 54px - 32px);min-height:400px;}
.de-setup-cols{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:10px;min-height:0;overflow:hidden;}
.de-setup-panel{display:flex;flex-direction:column;border:1.5px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--card);min-height:0;}
.de-setup-panel-hdr{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--border);flex-shrink:0;color:var(--muted);}
.de-setup-panel-body{flex:1;overflow-y:auto;padding:6px;min-height:0;}
/* DE Spielerpool Zeilen */
html[data-sport="pool"] .de-pool-row{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .12s,border-color .12s;font-size:.82rem;border:1.5px solid transparent;user-select:none;}
html[data-sport="pool"] .de-pool-row:hover{background:rgba(41,128,185,.07);border-color:rgba(41,128,185,.18);}
html[data-sport="pool"] .de-pool-row.de-pool-sel{background:rgba(41,128,185,.12);border-color:rgba(41,128,185,.4);}
html[data-sport="pool"] .de-pool-check{width:17px;height:17px;border-radius:4px;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:800;flex-shrink:0;color:transparent;background:var(--card);transition:.12s;}
html[data-sport="pool"] .de-pool-row.de-pool-sel .de-pool-check{background:#2980b9;border-color:#2980b9;color:#fff;}
html[data-sport="pool"] .de-pool-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
html[data-sport="pool"] .de-pool-num{font-size:.62rem;font-weight:800;color:#2980b9;min-width:20px;text-align:right;}
@media(max-width:680px){.de-setup-cols{grid-template-columns:1fr;}.de-setup-wrap{height:auto;}}
/* Dashboard-Schnellaktionen */
.dash-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;flex-shrink:0;}
.dash-action-btn{display:inline-flex;align-items:center;gap:5px;padding:8px 16px;border-radius:7px;border:1.5px solid;cursor:pointer;font-family:var(--font-ui);font-size:.76rem;font-weight:600;letter-spacing:.01em;transition:all .16s;background:transparent;}
.dash-action-btn.primary{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 2px 8px rgba(23,122,64,.22);}
.dash-action-btn.primary:hover{background:var(--green2);border-color:var(--green2);}
.dash-action-btn.primary:disabled{opacity:.3;cursor:not-allowed;pointer-events:none;}
.dash-action-btn.gold{background:rgba(201,168,76,.15);border-color:rgba(201,168,76,.5);color:var(--gold2);}
.dash-action-btn.gold:hover{background:rgba(201,168,76,.25);border-color:var(--gold2);}
.dash-action-btn.ghost{background:transparent;border-color:var(--border);color:var(--text2);}
.dash-action-btn.ghost:hover{background:var(--bg2);border-color:var(--border2);}
.dash-action-btn.danger{background:rgba(184,50,38,.08);border-color:rgba(184,50,38,.3);color:var(--red);}
.dash-action-btn.danger:hover{background:rgba(184,50,38,.14);}
@media(max-width:700px){
  .dash-progress{padding:8px 10px;}
  .dash-pstep{min-width:40px;}
  .dash-plbl{font-size:.44rem;}
  .dash-actions{gap:6px;padding:8px 10px;}
  .dash-action-btn{padding:7px 11px;font-size:.7rem;}
}

/* ── JACKPOT-GRID Verbesserungen ────────────────────────────────────────── */
.jackpot-grid-row {
  flex-wrap: wrap;
  row-gap: 4px;
}
/* Euro-Betrag rechts ausrichten, nie umbrechen */
.jk-amount {
  margin-left: auto;
  white-space: nowrap;
}
@media (max-width: 800px) {
  .jackpot-grid-row {
    padding: 7px 8px;
    gap: 5px;
  }
  .jk-name-inp { flex: 1 1 140px; min-width: 100px; }
  .jk-eur-inp  { width: 60px !important; }
}
@media (max-width: 480px) {
  .jk-name-inp { flex: 1 1 100%; }
  .jk-eur-inp  { width: 54px !important; }
}


/* ── HAUSSERIE MOBILE ───────────────────────────────────────────────────── */
.hs-sess-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;flex-wrap:nowrap;}
.hs-tab-bar{display:flex;align-items:stretch;gap:0;border-bottom:2px solid var(--border);margin-bottom:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.hs-tab-bar::-webkit-scrollbar{display:none;}
.hs-tab-btn{padding:7px 16px;font-size:.73rem;font-weight:700;border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;color:var(--muted);letter-spacing:.01em;transition:.12s;white-space:nowrap;flex-shrink:0;}
.hs-tab-btn.active{border-bottom-color:var(--gold);color:var(--gold);}
/* Ranglisten-Tabelle Basis */
.hs-rank-tbl{width:100%;border-collapse:collapse;font-size:.74rem;table-layout:auto;}
.hs-rank-hdr{border-bottom:2px solid var(--border);background:rgba(0,0,0,.04);}
.hs-rk-c{padding:5px 6px;text-align:center;}
.hs-rk-l{padding:5px 6px;text-align:left;}
.hs-rk-r{padding:5px 6px;text-align:center;}
.hs-rk-place{width:26px;}
.hs-rank-hdr th{color:var(--muted);font-weight:600;font-size:.7rem;}
.hs-rk-gold{color:var(--gold)!important;}
.hs-rk-blue{color:#4a9edd!important;}
.hs-rk-green{color:var(--green);}
.hs-rk-red{color:var(--red);}
.hs-rk-muted{color:var(--muted);}
.hs-rk-text{color:var(--text);}
.hs-rk-bold{font-weight:700;}
.hs-rk-sm{font-size:.68rem;}
.hs-rk-name{max-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hs-rk-row-border{border-bottom:1px solid var(--border);}
.hs-rk-row-border-gold{border-bottom-color:rgba(201,168,76,.18);}
.hs-rk-row-1{background:linear-gradient(90deg,rgba(201,168,76,.1),rgba(201,168,76,.04));}
.hs-rk-row-2{background:rgba(192,192,192,.04);}
.hs-rk-row-3{background:rgba(180,120,60,.04);}
.hs-rk-row-alt{background:rgba(255,255,255,.015);}
/* Desktop: volle Beschriftung sichtbar, Abkürzung versteckt */
.hs-rk-full{display:inline;}
.hs-rk-abbr{display:none;}
/* Spalten: weniger wichtige ausblenden */
.hs-rank-col-st,.hs-rank-col-fd,.hs-rank-col-brk,.hs-rank-col-hb,.hs-rank-col-bbonus,.hs-rank-col-fw{display:table-cell;}
@media(max-width:600px){
  .hs-rank-col-fd,.hs-rank-col-hb,.hs-rank-col-bbonus{display:none;}
  /* Smartphone: Abkürzungen statt volle Beschriftung */
  .hs-rk-full{display:none;}
  .hs-rk-abbr{display:inline;}
  .hs-rank-tbl{font-size:.7rem;}
  .hs-rk-c,.hs-rk-l,.hs-rk-r{padding:4px 5px;}
}
@media(max-width:440px){
  .hs-rank-col-st,.hs-rank-col-brk,.hs-rank-col-fw{display:none;}
  .hs-tab-btn{padding:7px 11px;font-size:.68rem;}
  .hs-rk-c,.hs-rk-l,.hs-rk-r{padding:4px 4px;}
}
/* Tagesrangliste: farbige Punktspalte per CSS-Variable */
.hs-srk-col-color{color:var(--srk-col,var(--gold))!important;}
/* Gruppen auf Smartphone untereinander */
@media(max-width:600px){
  .hs-groups-grid{grid-template-columns:1fr !important;}
}
/* Spieltag-Header: Datum in eigene Zeile auf sehr kleinen Screens */
@media(max-width:400px){
  .hs-sess-date{display:none;}
  .hs-sess-actions .btn{padding:2px 5px!important;font-size:.57rem!important;}
}

@media print{
  #topbar,#sidebar,.btn,input,select{display:none!important;}
  .pnl{box-shadow:none;border-color:#ccc;}
  body{background:#fff;color:#000;}
}

/* ─── TABLET BREAKPOINT ─── */
@media(max-width:1100px){
  #sidebar{width:160px;}
  .sdnd-container{grid-template-columns:1fr!important;}
  .sdnd-panel[data-pid="config"]{grid-column:span 1;}
  .sdnd-panel[data-pid="teilnehmer"]{grid-column:span 1;}
}

/* ─── MOBILE BREAKPOINT ─── */
@media(max-width:800px){
  :root{--base-size:clamp(0.9rem, 0.84rem + 0.25vw, 1rem);}
  #sidebar{display:none;}
  .g2,.g3,.g4,.g23,.match-cols{grid-template-columns:1fr;}
  .nav-tabs{display:none;}
  .mob-burger{display:flex!important;}
  #topbar.mob-open .mob-menu{display:flex;}
  .tb-right{display:none!important;}
  #topbar{height:52px;padding:0 12px;}
  #main{padding:14px 10px;padding-bottom:calc(14px + var(--safe-bottom));}
  .pt{font-size:1.35rem;}
  .pnl-h{padding:10px 12px;min-height:42px;}
  .pnl-t{font-size:.82rem;}
  .pnl-b{padding:12px 10px;}
  .btn{padding:8px 12px;font-size:.78rem;min-height:38px;}
  .bsm{padding:6px 10px;font-size:.72rem;min-height:32px;}
  .sbox{padding:12px 8px;}
  .snum{font-size:1.35rem;}
  .slbl{font-size:.64rem;}
  .inp{padding:10px 12px;font-size:.88rem;}
  .lbl{font-size:.76rem;}
  /* Group match card mobile */
  .gm-p1,.gm-p2{font-size:.88rem;}
  .gm-sc{width:38px;font-size:1rem;}
  .gm-grplbl{font-size:.82rem;}
  .gm-head{padding:5px 10px 5px 12px;min-height:34px;}
  .gm-main{gap:6px;padding:4px 10px 4px 12px;}
  /* Page header stack on mobile */
  .ph{flex-wrap:wrap;gap:8px;}
  .ph > div:last-child{width:100%;justify-content:flex-start;}
  /* KO match card mobile */
  .mc-p{font-size:.82rem;}
  .mc-sc{font-size:.92rem;}
  .mc-idx{font-size:.62rem;}
  /* Bracket mobile */
  .bracket-wrap{padding:8px 4px;border-radius:8px;}
  .br-slot{font-size:.62rem;padding:4px 6px;}
  .br-lbl{font-size:.54rem;}
  .br-col{min-width:120px;}
  /* Player picker mobile */
  .pp-wrap{grid-template-columns:1fr!important;height:auto!important;max-height:none!important;}
  .pp-left{max-height:45vh;border-right:none;border-bottom:2px solid var(--border);}
  .pp-right{max-height:45vh;}
  .pp-left-title{font-size:.58rem;}
  .pp-search{font-size:.8rem;padding:8px 10px 8px 32px;}
  .pp-item-name{font-size:.8rem;}
  .pp-tbl{font-size:.76rem;}
  .pp-tbl th{font-size:.56rem;}
  /* Group box mobile */
  .grphdr{font-size:.82rem;padding:8px 12px;}
  .gt td{font-size:.78rem;padding:6px 6px;}
  .gt th{font-size:.62rem;padding:5px 6px;}
  /* Ranking table mobile */
  .rtbl th{font-size:.65rem;padding:7px 6px;}
  .rtbl td{font-size:.78rem;padding:7px 6px;}
  /* Match all-matches sections */
  .gm-section-hdr{font-size:.54rem;}
  .grp-allmatches-hdr{font-size:.6rem;padding:8px 12px;}
  /* Finance */
  .fl{font-size:.78rem;}.fv{font-size:.82rem;}
  /* Modal */
  .modal-box{max-width:95%;}
  .modal-title{font-size:1.05rem;padding:14px 18px 8px;}
  .modal-body{font-size:.8rem;padding:12px 18px;}
  .modal-btns{padding:10px 18px 16px;}
  /* Login */
  .lb{padding:24px 20px;width:92vw;}
  .lb-t{font-size:1.35rem;}
  .lb-s{font-size:.76rem;}
  .li{font-size:.88rem;padding:10px 12px;}
  .lb-btn{font-size:.88rem;padding:12px;}
  /* Tournament card mobile */
  .tcard{padding:12px;gap:10px;}
  .tcard-name{font-size:.9rem;}
  .tcard-meta{font-size:.7rem;}
  /* Tags and small elements */
  .tag{font-size:.68rem;padding:3px 8px;}
  .hbc{font-size:.74rem;padding:1px 6px;}
  /* Jackpot grid */
  .jackpot-grid-row{flex-wrap:wrap;}
  .jk-name-inp{flex:0 1 120px;}
  /* History */
  .hist-name{font-size:.82rem;}
  /* Ranking grid */
  .rk-grid{grid-template-columns:90px repeat(3,1fr);font-size:.72rem;}
  .rk-grid .rk-th{font-size:.6rem;padding:5px 4px;}
  .rk-grid .rk-label{font-size:.72rem;padding:5px 6px;}
  .rk-inp{width:48px!important;font-size:.72rem!important;}
  /* Season jackpot */
  .jk-season-title{font-size:.68rem;}
  /* Lock notice */
  .lock-txt{font-size:.76rem;}
}

/* ─── SMALL PHONE BREAKPOINT ─── */
@media(max-width:480px){
  #topbar{height:48px;padding:0 8px;}
  .mob-menu{top:48px!important;}
  .logo-txt{font-size:1rem;}
  .logo-sub{display:none;}
  #main{padding:10px 8px;}
  .pt{font-size:1.2rem;}
  .g4{grid-template-columns:1fr 1fr;}
  .sbox{padding:10px 6px;}
  .snum{font-size:1.2rem;}
  .slbl{font-size:.6rem;}
  .gm-p1,.gm-p2{font-size:.78rem;}
  .gm-main{gap:4px;padding:3px 6px 3px 10px;}
  .mc-top{padding:4px 6px;}
  .mc-p{font-size:.76rem;}
  .champ-n{font-size:1.4rem;}
  .draw-big{font-size:1.5rem;}
  .draw-sub{font-size:.78rem;}
  .pp-left{max-height:40vh;}
  .pp-right{max-height:40vh;}
  /* Bracket on very small screens */
  .br-col{min-width:105px;}
  .br-slot{font-size:.56rem;padding:3px 4px;}
  .br-sc{font-size:.75rem;}
  .br-champ-name{font-size:.68rem;}
  /* Live match pin */
  .live-pin-inner{padding:8px 10px 10px;}
  .live-pin-hdr{font-size:.56rem;}
}

/* ─── SEHR SCHMALE HANDYS (max-width: 360px) ───────────────── */
@media (max-width: 360px) {
  :root { --base-size: clamp(0.8rem, 0.72rem + 0.3vw, 0.9rem); }

  .pt { font-size: 1.1rem; }
  .ps { font-size: 0.55rem; }
  .logo-txt { font-size: 0.9rem; }
  .logo-sub { display: none; }
  .mob-burger { width: 36px; height: 36px; font-size: 1.1rem; }

  /* Topbar kompakter */
  #topbar { height: 44px; padding: 0 6px; }
  .tb-right { gap: 4px; }
  .admin-b, .viewer-b { padding: 2px 6px; }
  .admin-bt, .viewer-bt { font-size: 0.58rem; }
  .logout-b, .viewer-lb { font-size: 0.58rem; }

  /* Gruppen-Tabelle horizontal scrollbar */
  .grpbox .gt { display: block; overflow-x: auto; white-space: nowrap; }
  .grpbox .gt td, .grpbox .gt th { padding: 4px 5px; font-size: 0.68rem; }

  /* Match-Karten: 2‑Spalten-Layout */
  .gm-main, .mc-row > div[style*="grid-template-columns:1fr auto 1fr"] {
    grid-template-columns: 1fr auto !important;
    gap: 4px;
  }
  .gm-main > div:last-child, .mc-row > div[style*="grid-template-columns:1fr auto 1fr"] > div:last-child {
    grid-column: 1 / -1;
    margin-top: 4px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  .gm-chips-left, .gm-chips-right,
  .mc-chips-left, .mc-chips-right {
    justify-content: center !important;
  }

  /* Bracket */
  .br-col { min-width: 85px; }
  .br-slot { font-size: 0.5rem; padding: 2px 3px; }
  .br-lbl { font-size: 0.48rem; }

  /* Player-Picker */
  .pp-wrap { height: auto !important; max-height: 75vh !important; }
  .pp-left { max-height: 35vh; }
  .pp-right { max-height: 35vh; }
  .pp-item-inner { padding: 5px 6px; }
  .pp-item-name { font-size: 0.72rem; }
  .pp-item-sub { font-size: 0.55rem; max-width: 70px; }
  .pp-tbl td, .pp-tbl th { padding: 4px 3px; font-size: 0.65rem; }
  .pp-tbl .inp-num { width: 40px; font-size: 0.62rem; }

  /* Jackpot-Grid */
  .jackpot-grid-row { flex-wrap: wrap; padding: 6px; }
  .jk-name-inp { flex: 1 1 100%; margin-bottom: 4px; }
  .jk-eur-inp { width: 50px; }

  /* Buttons */
  .btn { padding: 6px 8px; font-size: 0.68rem; min-height: 32px; }
  .bsm { padding: 3px 7px; font-size: 0.6rem; }

  /* Live-Pin */
  .live-pin-inner { padding: 6px 8px 8px; }
  .live-pin-hdr { font-size: 0.5rem; }
  .live-pin-card .gm-row, .live-pin-card .mc-row { margin: 4px 0; }

  /* Ranking-Tabelle */
  .rtbl th, .rtbl td { padding: 5px 3px; font-size: 0.68rem; }
  .rtbl { display: block; overflow-x: auto; white-space: nowrap; }

  /* Finanzen */
  .frow { padding: 5px 0; }
  .fl { font-size: 0.7rem; }
  .fv { font-size: 0.72rem; }

  /* Modal */
  .modal-box { max-width: 96%; }
  .modal-title { font-size: 0.92rem; padding: 12px 14px 7px; }
  .modal-body { font-size: 0.72rem; padding: 10px 14px; }
  .modal-btns { padding: 8px 14px 14px; }
}

/* ── RANKING MOBILE CARDS ────────────────────────────────────
   Desktop: Tabelle (.rk-desktop-tbl) sichtbar, Cards (.rk-cards) versteckt
   Mobile (≤640px): Cards sichtbar, Tabelle versteckt
   ─────────────────────────────────────────────────────────── */
.rk-desktop-tbl { display:table; width:100%; }
.rk-cards        { display:none; }

@media (max-width: 640px) {
  .rk-desktop-tbl { display:none !important; }
  .rk-cards        { display:block; }
}

/* Card-Liste */
.rk-card {
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:10px;
  border:1.5px solid var(--border);
  background:var(--card);
  margin-bottom:7px;
  box-shadow:var(--shadow);
  transition:border-color .18s, box-shadow .18s;
  position:relative;
  overflow:hidden;
}
.rk-card::before {
  content:'';
  position:absolute;
  left:0; top:0; bottom:0;
  width:4px;
  background:var(--border2);
  border-radius:10px 0 0 10px;
}
.rk-card.rk-card-1::before { background:linear-gradient(180deg,#c9a000,#e8c840); }
.rk-card.rk-card-2::before { background:linear-gradient(180deg,#9a9a9a,#bbb); }
.rk-card.rk-card-3::before { background:linear-gradient(180deg,#b87030,#d4924c); }

/* Rang-Badge */
.rk-card-pos {
  flex-shrink:0;
  width:34px;
  text-align:center;
}
.rk-card-medal {
  font-size:1.5rem;
  line-height:1;
  display:block;
}
.rk-card-num {
  font-family:'Cormorant Garamond',serif;
  font-size:1.3rem;
  font-weight:700;
  color:var(--muted);
  line-height:1;
}

/* Spieler-Info */
.rk-card-info {
  flex:1;
  min-width:0;
}
.rk-card-name {
  font-size:.9rem;
  font-weight:700;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.rk-card-club {
  font-size:.62rem;
  color:var(--muted);
  margin-top:1px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.rk-card-stats {
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:5px;
  flex-wrap:wrap;
}
.rk-stat-chip {
  display:inline-flex;
  align-items:center;
  gap:3px;
  font-size:.64rem;
  color:var(--text2);
  background:var(--bg2);
  border:1px solid var(--border);
  border-radius:12px;
  padding:2px 7px;
  font-weight:500;
}
.rk-stat-chip.w { color:var(--green); border-color:rgba(23,122,64,.25); background:rgba(23,122,64,.06); }
.rk-stat-chip.l { color:var(--red);   border-color:rgba(184,50,38,.2);  background:rgba(184,50,38,.05); }
.rk-stat-chip.f { color:var(--blue);  border-color:rgba(34,113,168,.2); background:rgba(34,113,168,.05); }

/* Rechte Seite: Punkte + Break */
.rk-card-right {
  flex-shrink:0;
  text-align:right;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:5px;
}
.rk-card-pts {
  font-family:'Cormorant Garamond',serif;
  font-size:1.4rem;
  font-weight:700;
  color:var(--gold);
  line-height:1;
}
.rk-card-pts-lbl {
  font-size:.52rem;
  color:var(--muted2);
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-top:1px;
}

/* ─── MOBILE BURGER MENU ─── */
.mob-burger{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:rgba(255,255,255,.07);border-radius:8px;cursor:pointer;color:var(--gold2);font-size:1.3rem;flex-shrink:0;margin-left:6px;transition:background .14s;-webkit-tap-highlight-color:transparent;}
.mob-burger:hover,.mob-burger:active{background:rgba(255,255,255,.14);}
.mob-menu{display:none;position:fixed;top:52px;left:0;right:0;bottom:0;z-index:999;background:rgba(10,18,12,.97);flex-direction:column;padding:12px 16px;padding-bottom:calc(12px + var(--safe-bottom));overflow-y:auto;gap:2px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:menuSlideIn .2s ease-out;}
@keyframes menuSlideIn{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}
.mob-menu .mob-nav-btn{display:flex;align-items:center;gap:10px;padding:14px 16px;border:none;background:none;color:#8aaa92;font-size:.9rem;font-family:'Inter',sans-serif;font-weight:500;cursor:pointer;border-radius:10px;width:100%;text-align:left;transition:all .14s;min-height:46px;-webkit-tap-highlight-color:transparent;}
.mob-menu .mob-nav-btn:hover,.mob-menu .mob-nav-btn:active,.mob-menu .mob-nav-btn.active{background:rgba(201,168,76,.12);color:var(--gold2);}
.mob-menu .mob-nav-btn.disabled{opacity:.25;pointer-events:none;}
.mob-menu .mob-sep{height:1px;background:rgba(255,255,255,.06);margin:6px 0;}
/* Touch-friendly score inputs */
@media(pointer:coarse){
  .gm-sc,.mc-sc{min-height:28px;font-size:1.05rem;}
  .gm-hb-inp,.mc-hb-inp{min-height:36px;font-size:1rem;}
  .gm-startbtn{width:32px;height:32px;font-size:.9rem;}
  .gm-arr,.mc-arr{width:34px;height:34px;font-size:.9rem;}
  .cbx{width:18px;height:18px;}
  .pp-item{min-height:44px;}
  .pp-item-check{width:22px;height:22px;}
}

/* ─── GROUP TOGGLE BUTTON ───────────────────────────────── */
.grp-open-toggle{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 10px;border-radius:20px;border:1px solid rgba(23,122,64,.25);
  background:rgba(23,122,64,.08);color:var(--green);
  font-family:var(--font-ui);font-size:.68rem;font-weight:600;
  cursor:pointer;transition:all .15s;white-space:nowrap;
  letter-spacing:.02em;
}
.grp-open-toggle:hover{background:var(--green-bg);border-color:var(--green);}
.grp-open-toggle.active{background:var(--green-bg);}
/* ─── GROUPS GRID (responsive) ───────────────────────────── */
.groups-grid{
  display:grid;
  grid-template-columns:repeat(var(--num-cols,2),1fr);
  gap:9px;
  margin-bottom:12px;
}
/* Tablet: max. 2 Spalten */
@media(max-width:1100px){
  .groups-grid{ grid-template-columns:repeat(2,1fr); }
}
/* Smartphone ≤800px: Stacked-Variante 1 Spalte */
@media(max-width:800px){
  .groups-grid--stacked{ grid-template-columns:1fr !important; }
}
/* Schmale Geräte ≤520px: 1 Spalte (Gruppen untereinander) */
@media(max-width:520px){
  .groups-grid{ grid-template-columns:1fr; }
}


/* ── Utility-Klassen (ersetzt häufige Inline-Styles) ────────────────────────*/
.u-muted      { font-size:.65rem; color:var(--muted); }
.u-muted-sm   { font-size:.6rem;  color:var(--muted); }
.u-muted-68   { font-size:.68rem; color:var(--muted); }
.u-muted-7    { font-size:.7rem;  color:var(--muted); }
.u-muted-r    { margin-left:auto; font-size:.6rem; color:var(--muted); }
.u-modal-icon { text-align:center; font-size:2rem; margin-bottom:6px; }
.u-grid-2     { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.u-center     { text-align:center; padding:7px 8px; }
.u-err-box    { padding:7px 10px; border-radius:5px; background:var(--red-bg); color:var(--red); font-size:.75rem; }
