/* ============================================================
   Turnier Live · v4 — professionelles Designsystem
   Selbst gehostete Inter-Schrift, fluide Skala, Light-Admin /
   Dark-Public, konsistente Karten, Buttons, Tabellen.
   ============================================================ */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/inter-400.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/inter-600.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/inter-700.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:url('fonts/inter-800.woff2') format('woff2')}

:root{
  /* Marke */
  --brand:#4f46e5; --brand-2:#7c3aed;
  --brand-grad:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);
  --accent:#f97316; --accent-2:#fb923c;
  --green:#059669; --green-bg:#ecfdf5; --red:#dc2626; --red-bg:#fef2f2;
  --live:#ef4444; --amber-bg:#fffbeb;

  /* Light (Admin) */
  --bg-page:#f6f8fb; --bg-card:#ffffff; --ink:#111827; --ink-2:#374151;
  --muted:#6b7280; --muted-2:#9ca3af;
  --line:#e5e9f0; --line-2:#d8dee9;

  /* Dark (Public) */
  --d-bg:#0a0f1e; --d-card:#121a2f; --d-card-2:#0d1426;
  --d-line:#24304d; --d-ink:#e5e9f3; --d-muted:#8b96ad;

  --radius:14px; --radius-lg:20px; --radius-sm:9px;
  --shadow-sm:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);
  --shadow-md:0 4px 10px rgba(16,24,40,.06),0 12px 28px rgba(16,24,40,.08);
  --shadow-brand:0 6px 18px rgba(79,70,229,.28);

  /* Fluide Typografie */
  --fs-xs:  clamp(.72rem,.68rem + .18vw,.8rem);
  --fs-sm:  clamp(.83rem,.77rem + .28vw,.94rem);
  --fs-base:clamp(.95rem,.89rem + .3vw,1.05rem);
  --fs-lg:  clamp(1.08rem,1rem + .5vw,1.28rem);
  --fs-xl:  clamp(1.3rem,1.15rem + .85vw,1.7rem);
  --fs-2xl: clamp(1.65rem,1.4rem + 1.5vw,2.3rem);
  --fs-hero:clamp(2.15rem,1.55rem + 3.4vw,3.9rem);

  --sp-1:clamp(.3rem,.26rem + .18vw,.5rem);
  --sp-2:clamp(.6rem,.5rem + .4vw,1rem);
  --sp-3:clamp(1rem,.8rem + .8vw,1.6rem);
  --sp-4:clamp(1.5rem,1.15rem + 1.4vw,2.6rem);
  --sp-5:clamp(2.3rem,1.7rem + 2.6vw,4.4rem);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  color:var(--ink);background:var(--bg-page);line-height:1.6;font-size:var(--fs-base);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
h1{font-size:var(--fs-2xl);line-height:1.15;margin:.4em 0;font-weight:800;letter-spacing:-.02em}
h2{font-size:var(--fs-xl);line-height:1.2;margin:.5em 0;font-weight:800;letter-spacing:-.015em}
h3{font-size:var(--fs-lg);line-height:1.3;margin:.5em 0;font-weight:700}
h4{font-size:var(--fs-base);margin:.7em 0 .3em;font-weight:700}
hr{border:none;border-top:1px solid var(--line);margin:var(--sp-4) 0}
code{background:#eef1f7;border-radius:5px;padding:.12em .4em;font-size:.88em;
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace}
:focus-visible{outline:2.5px solid var(--brand);outline-offset:2px;border-radius:4px}

/* ============ Topbar ============ */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);
  padding:.7rem clamp(1rem,3vw,2.2rem);background:#fff;color:var(--ink);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;backdrop-filter:blur(8px)}
.topbar .brand{color:var(--ink);font-weight:800;font-size:var(--fs-lg);display:flex;
  align-items:center;gap:.5em;white-space:nowrap;letter-spacing:-.02em}
.topbar .brand:hover{text-decoration:none}
.topbar .logo{width:2em;height:2em;border-radius:9px;background:var(--brand-grad);
  display:inline-flex;align-items:center;justify-content:center;font-size:.95em;box-shadow:var(--shadow-brand)}
.topbar nav{display:flex;align-items:center;gap:clamp(.6rem,1.6vw,1.4rem);flex-wrap:wrap;justify-content:flex-end}
.topbar nav a{color:var(--ink-2);font-size:var(--fs-sm);font-weight:600}
.topbar nav a:hover{color:var(--brand);text-decoration:none}
/* Buttons in der Topbar behalten ihre eigene Schriftfarbe (sonst uebersteuert
   die generische Nav-Regel per Spezifitaet die weisse .btn-Schrift). */
.topbar nav a.btn,.topbar nav a.btn:hover{color:#fff}
.topbar nav a.btn-ghost{color:var(--ink-2)}
.topbar nav a.btn-ghost:hover{color:var(--brand)}
.topbar .user{display:inline-flex;align-items:center;gap:.45em;color:var(--muted);
  font-size:var(--fs-xs);font-weight:600;background:var(--bg-page);border:1px solid var(--line);
  border-radius:999px;padding:.3em .8em .3em .35em}
.topbar .user::before{content:attr(data-initial);width:1.7em;height:1.7em;border-radius:50%;
  background:var(--brand-grad);color:#fff;display:inline-flex;align-items:center;
  justify-content:center;font-weight:800;font-size:.9em}

.wrap{max-width:1180px;margin:0 auto;padding:var(--sp-4) clamp(1rem,3vw,2rem)}

/* ============ Buttons ============ */
.btn,.btn-ghost,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:.45em;
  padding:.62em 1.25em;border-radius:var(--radius-sm);font-weight:700;cursor:pointer;
  border:1px solid transparent;font-size:var(--fs-sm);text-align:center;font-family:inherit;
  transition:transform .13s ease,box-shadow .13s ease,background .13s,border-color .13s;line-height:1.3}
.btn{background:var(--brand-grad);color:#fff;box-shadow:var(--shadow-brand)}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(79,70,229,.36);text-decoration:none;color:#fff}
.btn:active{transform:translateY(0)}
.btn-ghost{background:#fff;color:var(--ink-2);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand);text-decoration:none;transform:translateY(-1px)}
.btn-danger{background:#fff;color:var(--red);border-color:#fecaca}
.btn-danger:hover{background:var(--red);color:#fff;border-color:var(--red)}
.btn-lg{padding:.85em 1.8em;font-size:var(--fs-base);border-radius:12px}

/* ============ Landing ============ */
.hero-section{background:
  radial-gradient(60% 80% at 85% 10%,rgba(124,58,237,.10),transparent),
  radial-gradient(50% 70% at 10% 20%,rgba(79,70,229,.10),transparent),#fff;
  border-bottom:1px solid var(--line)}
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--sp-4);align-items:center;
  max-width:1180px;margin:0 auto;padding:var(--sp-5) clamp(1rem,3vw,2rem)}
@media(max-width:880px){.hero{grid-template-columns:1fr;text-align:center}}
.hero-copy h1{font-size:var(--fs-hero);margin:0 0 .35em;letter-spacing:-.03em;line-height:1.06}
.hero-copy h1 .grad{background:var(--brand-grad);-webkit-background-clip:text;
  background-clip:text;-webkit-text-fill-color:transparent}
.lead{font-size:var(--fs-lg);color:var(--muted);max-width:34em;margin:0 0 var(--sp-3);font-weight:400}
@media(max-width:880px){.lead{margin:0 auto var(--sp-3)}}
.hero-cta{display:flex;gap:var(--sp-2);flex-wrap:wrap}
@media(max-width:880px){.hero-cta{justify-content:center}}
.hero-checks{display:flex;gap:1.2em;flex-wrap:wrap;margin-top:var(--sp-3);color:var(--muted);font-size:var(--fs-sm);font-weight:600}
@media(max-width:880px){.hero-checks{justify-content:center}}
.hero-checks span::before{content:'✓';color:var(--green);font-weight:800;margin-right:.4em}

/* Scoreboard-Mockup (reines CSS) */
.mock{background:var(--d-bg);border-radius:var(--radius-lg);padding:1.1rem;
  box-shadow:0 24px 60px rgba(17,24,39,.28),0 4px 14px rgba(17,24,39,.14);
  border:1px solid #1d2946;max-width:480px;margin-inline:auto;width:100%}
.mock-bar{display:flex;gap:.4rem;margin-bottom:.9rem}
.mock-bar i{width:.65rem;height:.65rem;border-radius:50%;background:#2b3a5e;display:block}
.mock-bar i:first-child{background:#f87171}.mock-bar i:nth-child(2){background:#fbbf24}.mock-bar i:nth-child(3){background:#34d399}
.mock-ticker{background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;
  border-radius:7px;padding:.35em .8em;white-space:nowrap;overflow:hidden;margin-bottom:.9rem}
.mock-ticker span{display:inline-block;animation:ticker 14s linear infinite;padding-left:100%}
.mock-live{display:flex;align-items:center;gap:.45em;color:#fff;font-size:.7rem;font-weight:800;margin-bottom:.6rem}
.mock-live i{width:.55em;height:.55em;border-radius:50%;background:var(--live);animation:blink 1s infinite}
.mock-live b{color:#8b96ad;font-weight:600}
.mock-score{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.8rem;
  background:var(--d-card);border:1px solid var(--accent);border-radius:12px;padding:1rem .9rem;margin-bottom:.8rem}
.mock-t{color:#fff;font-weight:800;font-size:clamp(.85rem,2vw,1.05rem);display:flex;flex-direction:column;align-items:center;gap:.45rem}
.mock-t i{width:2.6rem;height:2.6rem;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-style:normal}
.mock-t:first-child i{background:linear-gradient(135deg,#2563eb,#38bdf8)}
.mock-t:last-child i{background:linear-gradient(135deg,#dc2626,#fb923c)}
.mock-num{color:var(--accent);font-size:clamp(2.2rem,5vw,3rem);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.mock-clock{text-align:center;color:#fff;font-weight:800;font-size:1.1rem;font-variant-numeric:tabular-nums;margin-bottom:.8rem}
.mock-rows{display:flex;flex-direction:column;gap:.45rem}
.mock-row{display:flex;justify-content:space-between;align-items:center;background:var(--d-card);
  border:1px solid var(--d-line);border-radius:9px;padding:.5rem .7rem;color:#c7d0e2;font-size:.78rem;font-weight:600}
.mock-row b{color:#fff;font-variant-numeric:tabular-nums}

/* Abschnitte der Landing */
.section{max-width:1180px;margin:0 auto;padding:var(--sp-5) clamp(1rem,3vw,2rem)}
.section-head{text-align:center;max-width:44em;margin:0 auto var(--sp-4)}
.section-head .kicker{display:inline-block;color:var(--brand);font-weight:800;font-size:var(--fs-xs);
  text-transform:uppercase;letter-spacing:.12em;margin-bottom:.6em}
.section-head p{color:var(--muted);font-size:var(--fs-base);margin:0}
.sports-strip{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;padding:var(--sp-3) 1rem;
  max-width:1180px;margin:0 auto}
.sport-chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.5em 1.1em;
  font-weight:700;box-shadow:var(--shadow-sm);font-size:var(--fs-sm);color:var(--ink-2)}

.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:var(--sp-2)}
.feature{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:var(--sp-3);box-shadow:var(--shadow-sm);transition:transform .16s ease,box-shadow .16s ease}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.feature .fi{width:2.6rem;height:2.6rem;border-radius:11px;display:flex;align-items:center;
  justify-content:center;margin-bottom:.9rem;background:linear-gradient(135deg,rgba(79,70,229,.1),rgba(124,58,237,.12))}
.feature .fi svg{width:1.35rem;height:1.35rem;stroke:var(--brand)}
.feature h3{margin:0 0 .35em;font-size:var(--fs-base)}
.feature p{color:var(--muted);margin:0;font-size:var(--fs-sm)}

.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:var(--sp-2);counter-reset:step}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-3);
  box-shadow:var(--shadow-sm);position:relative;counter-increment:step}
.step::before{content:counter(step);position:absolute;top:var(--sp-2);right:var(--sp-2);
  width:2em;height:2em;border-radius:50%;background:var(--brand-grad);color:#fff;font-weight:800;
  display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm)}
.step h3{margin-top:0;font-size:var(--fs-base)}
.step p{color:var(--muted);font-size:var(--fs-sm);margin:0}

/* Pricing */
.pricing{display:flex;justify-content:center}
.price-card{background:#fff;border-radius:var(--radius-lg);padding:var(--sp-4);max-width:460px;width:100%;
  text-align:center;box-shadow:var(--shadow-md);border:1px solid var(--line);position:relative;overflow:hidden}
.price-card::before{content:'';position:absolute;inset:0 0 auto;height:5px;background:var(--brand-grad)}
.price-badge{display:inline-block;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;
  border-radius:999px;padding:.35em 1.1em;font-weight:800;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase}
.price-amount{font-size:clamp(2.7rem,2rem + 3vw,4rem);font-weight:800;margin:.1em 0 0;letter-spacing:-.03em}
.price-sub{color:var(--muted);margin-bottom:var(--sp-3);font-size:var(--fs-sm);font-weight:600}
.price-card ul{list-style:none;padding:0;margin:0 0 var(--sp-3);text-align:left;font-size:var(--fs-sm)}
.price-card li{padding:.55em 0;border-bottom:1px solid var(--line);color:var(--ink-2)}
.price-card li:last-child{border-bottom:none}
.price-note{font-size:var(--fs-xs);color:var(--muted);margin-top:var(--sp-2)}

.cta-band{background:var(--brand-grad);border-radius:var(--radius-lg);padding:var(--sp-4);
  text-align:center;color:#fff;box-shadow:var(--shadow-brand)}
.cta-band h2{color:#fff;margin-top:0}
.cta-band p{color:rgba(255,255,255,.85);margin-bottom:var(--sp-3)}
.cta-band .btn{background:#fff;color:var(--brand);box-shadow:0 8px 20px rgba(0,0,0,.18)}
.cta-band .btn:hover{color:var(--brand)}

/* ============ Formulare / Karten ============ */
.auth-box{max-width:460px;margin:var(--sp-4) auto}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:var(--sp-3);box-shadow:var(--shadow-sm)}
label{display:block;font-weight:600;margin-bottom:var(--sp-2);font-size:var(--fs-sm);color:var(--ink-2)}
input,select,textarea{width:100%;padding:.68em .85em;border:1.5px solid var(--line-2);
  border-radius:var(--radius-sm);font-size:var(--fs-base);margin-top:.35em;font-weight:400;
  background:#fff;font-family:inherit;color:var(--ink);transition:border-color .12s,box-shadow .12s}
textarea{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;resize:vertical;font-size:var(--fs-sm);line-height:1.7}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3.5px rgba(79,70,229,.14)}
input::placeholder,textarea::placeholder{color:var(--muted-2)}
.row{display:flex;gap:var(--sp-2);flex-wrap:wrap}.row label{flex:1;min-width:130px}
.muted{color:var(--muted)}
.ta-r{text-align:right}.ta-l{text-align:left}
.check input{width:auto}

.flash{padding:.85em 1.15em;border-radius:var(--radius-sm);margin:var(--sp-2) 0;font-weight:600;
  font-size:var(--fs-sm);border:1px solid transparent}
.flash-success{background:var(--green-bg);color:#065f46;border-color:#a7f3d0}
.flash-error{background:var(--red-bg);color:#991b1b;border-color:#fecaca}
.flash-info{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}

/* ============ Dashboard ============ */
.page-head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);
  margin-bottom:var(--sp-3);flex-wrap:wrap}
.page-head h1{margin:0;display:flex;align-items:center;gap:.4em}
.lic-info{display:flex;justify-content:space-between;align-items:center;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-2) var(--sp-3);
  margin-bottom:var(--sp-3);flex-wrap:wrap;gap:var(--sp-2);box-shadow:var(--shadow-sm)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:var(--sp-2)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:var(--sp-2)}
.tcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-3);
  box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column}
.tcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.tcard-sport{font-size:var(--fs-xs);color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.tcard h3{margin:.3em 0}
.tcard-meta{color:var(--muted);font-size:var(--fs-sm);margin-bottom:.4em}
.tcard-status{font-weight:700;font-size:var(--fs-sm);margin-bottom:var(--sp-2)}
.tcard-actions{display:flex;gap:.5em;flex-wrap:wrap;margin-top:auto}
.status-published{color:var(--green)}.status-draft{color:var(--muted)}
.empty{text-align:center;padding:var(--sp-5) var(--sp-3);color:var(--muted);background:#fff;
  border:1.5px dashed var(--line-2);border-radius:var(--radius)}

/* ============ Tabs & Panels ============ */
.tabs{display:flex;gap:.35rem;margin:var(--sp-3) 0;overflow-x:auto;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:.35rem;box-shadow:var(--shadow-sm);width:max-content;max-width:100%}
.tabs::-webkit-scrollbar{display:none}
.tab{padding:.5em 1.05em;font-weight:700;color:var(--muted);border-radius:999px;
  white-space:nowrap;font-size:var(--fs-sm);transition:background .12s,color .12s}
.tab:hover{text-decoration:none;color:var(--ink)}
.tab.active{color:#fff;background:var(--brand-grad);box-shadow:var(--shadow-brand)}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:var(--sp-3);box-shadow:var(--shadow-sm)}
.panel>h2:first-child{margin-top:0}
.panel-sub{background:var(--bg-page);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-2)}
.inline-form{display:flex;gap:.5em;flex-wrap:wrap;margin-bottom:var(--sp-2)}
.inline-form input{width:auto;flex:1;min-width:110px;margin:0}
.team-list{list-style:none;padding:0;margin:0}
.team-list li{display:flex;align-items:center;gap:.55em;padding:.55em 0;border-bottom:1px solid var(--line)}
.team-list li:last-child{border-bottom:none}
.team-list .team-name{flex:1;font-size:var(--fs-sm);font-weight:600}
.team-list form{margin:0}
.x{background:none;border:none;color:var(--muted-2);cursor:pointer;font-size:1em;padding:.25em;border-radius:6px;transition:color .12s}
.x:hover{color:var(--red);background:var(--red-bg)}
.stage-h{border-left:4px solid var(--brand);padding-left:.55em;margin-top:var(--sp-3)}
.cat-h{color:var(--brand);margin-top:var(--sp-3)}

/* ============ Tabellen ============ */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);
  border-radius:var(--radius-sm);margin:.4em 0 var(--sp-2)}
.tbl{width:100%;border-collapse:collapse;margin:0}
.tbl th,.tbl td{padding:.6em .8em;text-align:center;border-bottom:1px solid var(--line);
  font-size:var(--fs-sm);white-space:nowrap}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl tbody tr{transition:background .1s}
.tbl tbody tr:hover{background:#fafbfe}
.tbl th{background:var(--bg-page);color:var(--muted);font-size:var(--fs-xs);
  text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.standings td:nth-child(2){text-align:left}
.score{font-weight:800;font-variant-numeric:tabular-nums}
.badge{display:inline-block;padding:.22em .75em;border-radius:999px;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.badge-scheduled{background:#eef1f7;color:#64748b}
.badge-live{background:var(--live);color:#fff;animation:pulse 1.6s infinite}
.badge-finished{background:var(--green-bg);color:#065f46}
@keyframes pulse{50%{opacity:.6}}
@media(max-width:560px){.hide-sm{display:none}}

/* ============ Live-Steuerung ============ */
.live-top{background:var(--bg-page);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:var(--sp-2);margin-bottom:var(--sp-2)}
.phase-form{display:flex;gap:var(--sp-2);align-items:flex-end;flex-wrap:wrap}
.phase-form label{flex:1;min-width:180px;margin:0}
.match-ctrl{border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-2);
  margin-bottom:var(--sp-2);background:#fff;box-shadow:var(--shadow-sm)}
.match-ctrl.is-current{border-color:var(--accent);box-shadow:0 0 0 2.5px rgba(249,115,22,.35)}
.cur-flag{display:none;color:var(--accent);font-weight:800;font-size:var(--fs-xs)}
.match-ctrl.is-current .cur-flag{display:inline}
.match-ctrl.is-current .js-tafel{background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:none}
.mc-info{display:flex;gap:.6em;align-items:center;margin-bottom:.55em;font-size:var(--fs-xs);flex-wrap:wrap}
.mc-row{display:grid;grid-template-columns:1fr auto auto auto 1fr;gap:.55em;align-items:center}
.mc-team{font-weight:700;font-size:var(--fs-sm);overflow-wrap:anywhere}
.mc-score{display:flex;align-items:center;gap:.4em}
.mc-vs{font-weight:800;color:var(--muted-2)}
.sval{font-size:var(--fs-xl);font-weight:800;min-width:1.4em;text-align:center;font-variant-numeric:tabular-nums}
.sbtn{width:2.55em;height:2.55em;border-radius:10px;border:1.5px solid var(--line-2);background:#fff;
  font-size:var(--fs-base);font-weight:800;cursor:pointer;touch-action:manipulation;color:var(--ink-2);
  transition:all .12s;font-family:inherit}
.sbtn:hover{background:var(--brand);color:#fff;border-color:var(--brand);transform:scale(1.06)}
.mc-actions{display:flex;gap:.45em;margin-top:.7em;flex-wrap:wrap}
.mc-actions .btn-ghost,.mc-actions .btn{padding:.45em .95em;font-size:var(--fs-xs)}
.mc-clock{display:flex;align-items:center;gap:.55em;margin-top:.6em;justify-content:center;flex-wrap:wrap}
.mc-clock .clock{font-size:var(--fs-xl);font-weight:800;font-variant-numeric:tabular-nums;
  min-width:2.9em;text-align:center;background:var(--bg-page);border-radius:9px;padding:.15em .4em}
.mc-clock .btn-ghost{padding:.42em .85em;font-size:var(--fs-xs)}
.copy-row{display:flex;gap:.5em;margin-bottom:var(--sp-2)}
.copy-row input{margin:0;font-size:var(--fs-xs)}
@media(max-width:640px){
  .mc-row{grid-template-columns:1fr auto 1fr;grid-template-areas:"ht ht ht" "sh vs sa" "at at at"}
  .mc-row .mc-team:first-child{grid-area:ht;text-align:center}
  .mc-row .mc-team:last-child{grid-area:at;text-align:center}
}

/* ============ Runden / Phasen ============ */
.phase-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:var(--sp-2)}
.phase-card{border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-3);
  background:#fff;position:relative;box-shadow:var(--shadow-sm)}
.phase-num{position:absolute;top:var(--sp-2);right:var(--sp-2);width:2em;height:2em;border-radius:50%;
  background:var(--brand-grad);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-brand)}
.phase-card h3{margin-top:0}

/* ============ Veröffentlichung ============ */
.pub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(235px,100%),1fr));gap:var(--sp-2);margin:var(--sp-2) 0}
.pub-card{border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-2);
  background:#fff;transition:border-color .15s,background .15s}
.pub-card.on{border-color:#6ee7b7;background:var(--green-bg)}
.pub-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3em;gap:.5em}
.pub-title{font-weight:800;font-size:var(--fs-sm)}
.pub-state{font-size:var(--fs-xs);font-weight:700}
.pub-card p{min-height:2.6em;font-size:var(--fs-xs);margin:.3em 0 .8em;color:var(--muted)}
.qr-box{text-align:center}
.qr-box #qr{display:inline-block;background:#fff;padding:14px;border-radius:var(--radius-sm);
  border:1px solid var(--line);margin:.5em 0;box-shadow:var(--shadow-sm)}
.qr-box #qr img,.qr-box #qr canvas{display:block;max-width:100%;height:auto}

.board-actions{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;margin:var(--sp-2) 0}
.board-frame{width:100%;height:clamp(240px,45vw,420px);border:1px solid var(--line);
  border-radius:var(--radius-sm);background:var(--d-bg)}

/* ============ Logos ============ */
.mini-logo{width:1.35em;height:1.35em;border-radius:7px;vertical-align:middle;object-fit:cover}
.team-logo{width:27px;height:27px;border-radius:7px;object-fit:cover;background:#fff;
  border:1px solid var(--line);flex-shrink:0}
.team-logo.sm{width:20px;height:20px;vertical-align:middle;margin-right:4px}
.logo-form{margin:0}
.logo-pick{margin:0;cursor:pointer;font-size:1em;opacity:.55;transition:opacity .12s}
.logo-pick:hover{opacity:1}
.logo-pick input{display:none}
.logo-row{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);flex-wrap:wrap}
.logo-preview{width:clamp(52px,8vw,76px);height:clamp(52px,8vw,76px);border-radius:var(--radius-sm);
  object-fit:cover;border:1px solid var(--line);box-shadow:var(--shadow-sm)}

/* ============ Footer ============ */
.foot{display:flex;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap;
  padding:var(--sp-3) clamp(1rem,3vw,2.2rem);background:#0f1526;color:#8b96ad;
  font-size:var(--fs-xs);margin-top:var(--sp-5)}
.foot a{color:#c7d0e2}

.legal{max-width:760px}
.legal h2{font-size:var(--fs-lg);margin-top:var(--sp-3)}
.legal p{font-size:var(--fs-sm);color:var(--ink-2)}

/* ============================================================
   Öffentliche Live-Seite (Dark)
   ============================================================ */
.live-body{background:var(--d-bg);color:var(--d-ink)}
.owner-note{background:#1e40af;color:#fff;text-align:center;padding:.45em;font-size:var(--fs-xs);font-weight:600}
.ticker-bar{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#fff;overflow:hidden;
  white-space:nowrap;padding:.5em 0;font-weight:700;font-size:var(--fs-sm)}
.ticker-track{display:inline-block;padding-left:100%;animation:ticker 28s linear infinite}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}
.live-head{text-align:center;padding:var(--sp-3) var(--sp-2) var(--sp-1);position:relative}
.live-head h1{margin:.25em 0 .1em;color:#fff;font-size:var(--fs-2xl)}
.live-head .muted{color:var(--d-muted);font-size:var(--fs-sm);font-weight:600}
.live-logo{width:clamp(46px,7vw,66px);height:clamp(46px,7vw,66px);border-radius:14px;object-fit:cover;
  box-shadow:0 6px 20px rgba(0,0,0,.4)}
.live-dot{display:inline-flex;align-items:center;gap:.5em;color:#fff;background:var(--live);
  border-radius:999px;padding:.28em 1em;font-weight:800;font-size:var(--fs-xs);margin-top:.6em;
  box-shadow:0 4px 14px rgba(239,68,68,.4)}
.live-dot .dot{width:.6em;height:.6em;border-radius:50%;background:#fff;animation:blink 1s infinite}
.live-dot .upd{font-weight:600;opacity:.85}
@keyframes blink{50%{opacity:.3}}
.board-link{position:absolute;right:var(--sp-2);top:var(--sp-2);background:var(--d-card);color:#fff;
  border:1px solid var(--d-line);padding:.45em .9em;border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:700}
.board-link:hover{border-color:var(--accent);text-decoration:none}

.cat-tabs{display:flex;gap:.5em;justify-content:center;flex-wrap:wrap;padding:var(--sp-1) var(--sp-2)}
.cat-tab{background:var(--d-card);color:#c7d0e2;border:1px solid var(--d-line);border-radius:999px;
  padding:.48em 1.15em;font-weight:700;cursor:pointer;font-size:var(--fs-sm);transition:all .13s;font-family:inherit}
.cat-tab:hover{border-color:var(--accent)}
.cat-tab.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;
  border-color:transparent;box-shadow:0 4px 14px rgba(249,115,22,.35)}
.filter-bar{display:flex;gap:.5em;justify-content:center;flex-wrap:wrap;
  padding:var(--sp-1) var(--sp-2) var(--sp-2);max-width:780px;margin:0 auto}
.filter-bar input,.filter-bar select{background:var(--d-card);border:1.5px solid var(--d-line);
  color:var(--d-ink);border-radius:var(--radius-sm);padding:.55em .85em;font-size:var(--fs-sm);
  margin:0;width:auto;flex:1;min-width:130px}
.filter-bar input:focus,.filter-bar select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(249,115,22,.18)}
.filter-bar input::placeholder{color:var(--d-muted)}
.filter-reset{background:var(--d-card);border:1.5px solid var(--d-line);color:var(--d-muted);
  border-radius:var(--radius-sm);padding:.55em .95em;cursor:pointer;font-size:var(--fs-sm);font-family:inherit}
.filter-reset:hover{color:#fff;border-color:var(--accent)}
.row-hl td{background:rgba(249,115,22,.16)!important}

.live-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);align-items:start}
.live-col{min-width:0}
@media(max-width:840px){.live-grid{grid-template-columns:1fr}}
.live-col h2{color:#fff;font-size:var(--fs-lg);margin:var(--sp-3) 0 var(--sp-1);
  padding-bottom:.35em;border-bottom:2px solid var(--d-line);display:flex;align-items:center;gap:.4em}
.live-col h3{color:#c7d0e2;font-size:var(--fs-sm);margin:var(--sp-2) 0 .35em;font-weight:700}
.live-matches{display:flex;flex-direction:column;gap:.6em}
.lm{background:var(--d-card);border:1px solid var(--d-line);border-radius:var(--radius-sm);padding:var(--sp-2)}
.lm-head{font-size:var(--fs-xs);color:var(--d-muted);margin-bottom:.5em;display:flex;gap:.5em;
  align-items:center;flex-wrap:wrap;font-weight:600}
.lm-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.6em}
.lm-t{font-weight:700;color:#fff;font-size:var(--fs-sm);display:flex;align-items:center;gap:.4em;overflow-wrap:anywhere}
.lm-t.ta-r{justify-content:flex-end}
.lm-score{font-size:var(--fs-2xl);font-weight:800;color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums}
.tl{width:1.35em;height:1.35em;border-radius:6px;object-fit:cover;background:#fff;flex-shrink:0}
.mini-list{background:var(--d-card);border:1px solid var(--d-line);border-radius:var(--radius-sm);padding:.35em 1em}
.mrow{display:grid;grid-template-columns:1fr auto 1fr;gap:.5em;padding:.6em 0;
  border-bottom:1px solid var(--d-line);font-size:var(--fs-sm);color:#c7d0e2;align-items:center}
.mrow:last-child{border-bottom:none}
.mrow-meta{grid-column:1/-1;font-size:var(--fs-xs);color:var(--d-muted);padding-bottom:.1em;font-weight:600}
.mrow-s{font-weight:800;color:#fff;min-width:3em;text-align:center;font-variant-numeric:tabular-nums}
.live-body .tbl-wrap{border-color:var(--d-line)}
.live-body .tbl{background:var(--d-card)}
.live-body .tbl th{background:var(--d-card-2);color:var(--d-muted)}
.live-body .tbl td{color:var(--d-ink);border-color:var(--d-line)}
.live-body .tbl tbody tr:hover{background:rgba(255,255,255,.03)}
.feed{list-style:none;padding:0;margin:0;max-height:26em;overflow:auto}
.ev{background:var(--d-card);border-left:3px solid var(--d-line);padding:.6em .85em;margin-bottom:.45em;
  border-radius:0 9px 9px 0;font-size:var(--fs-sm);color:#c7d0e2}
.ev-goal{border-left-color:var(--accent)}
.ev-finish{border-left-color:#34d399}
.ev-start{border-left-color:#60a5fa}

.cur-card{background:linear-gradient(135deg,var(--d-card),var(--d-card-2));border:1px solid var(--accent);
  border-radius:var(--radius);padding:var(--sp-3);box-shadow:0 8px 30px rgba(249,115,22,.12)}
.cur-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.7em;margin-top:.5em}
.cur-t{font-weight:800;color:#fff;font-size:var(--fs-lg);display:flex;align-items:center;gap:.45em;overflow-wrap:anywhere}
.cur-t.ta-r{justify-content:flex-end}
.cur-t img{width:2em;height:2em;border-radius:9px;object-fit:cover;background:#fff;flex-shrink:0}
.cur-score{font-size:clamp(2rem,1.5rem + 2.5vw,3.2rem);font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}
.cur-clock{text-align:center;font-size:var(--fs-2xl);font-weight:800;color:#fff;margin-top:.4em;font-variant-numeric:tabular-nums}

.bracket-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.6em}
.bracket-cols{display:flex;gap:var(--sp-2);min-width:min-content}
.br-col{display:flex;flex-direction:column;gap:.7em;justify-content:space-around;min-width:clamp(185px,26vw,245px)}
.br-round{color:var(--d-muted);font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;
  letter-spacing:.07em;text-align:center}
.br-match{background:var(--d-card);border:1px solid var(--d-line);border-radius:var(--radius-sm);
  padding:.5em;position:relative}
.br-match.s-live{border-color:var(--live);box-shadow:0 0 0 2px rgba(239,68,68,.25)}
.br-row{display:flex;align-items:center;gap:.45em;padding:.35em .3em;border-radius:7px;
  font-size:var(--fs-sm);color:#c7d0e2}
.br-row.win{background:rgba(5,150,105,.22);color:#fff;font-weight:800}
.br-name{flex:1;overflow-wrap:anywhere}
.br-s{font-weight:800;color:#fff;min-width:1.4em;text-align:center;font-variant-numeric:tabular-nums}
.br-live{position:absolute;top:-.7em;right:.5em}

/* ============================================================
   Anzeigetafel (Vollbild)
   ============================================================ */
.board-body{margin:0;background:var(--d-bg);color:#fff;min-height:100vh;overflow:hidden;
  font-family:'Inter',-apple-system,sans-serif}
.board-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:100vh;text-align:center;color:var(--d-muted);padding:4vw}
.board{display:flex;flex-direction:column;height:100vh}
.board-head{display:flex;align-items:center;gap:2vw;padding:2vh 3vw;background:var(--d-card-2);
  border-bottom:.45vh solid var(--accent)}
.board-logo{width:8vh;height:8vh;border-radius:1.6vh;object-fit:cover;background:#fff}
.board-tname{font-size:3.2vh;font-weight:800;letter-spacing:-.02em}
.board-phase{font-size:2.4vh;color:var(--accent);font-weight:700}
.board-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3vh;padding:2vh 3vw}
.board-wait{font-size:4vh;color:#3b4a6b}
.board-meta{font-size:2.8vh;color:var(--d-muted);font-weight:600;text-align:center}
.board-status{padding:.4vh 1.7vh;border-radius:999px;font-size:2.2vh;margin-left:1vh;font-weight:800}
.board-status.s-live{background:var(--live)}.board-status.s-finished{background:var(--green)}.board-status.s-scheduled{background:#2b3a5e}
.board-score{display:grid;grid-template-columns:1fr auto auto auto 1fr;align-items:center;gap:3vw;width:94vw}
.bteam{display:flex;flex-direction:column;align-items:center;gap:1.5vh;min-width:0}
.bteam img{width:clamp(8vh,14vw,16vh);height:clamp(8vh,14vw,16vh);border-radius:2vh;object-fit:cover;background:#fff}
.bteam span{font-size:clamp(2.4vh,3.4vw,4vh);font-weight:800;text-align:center;overflow-wrap:anywhere}
.bnum{font-size:clamp(10vh,18vw,20vh);font-weight:800;color:var(--accent);line-height:1;
  font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.bcolon{font-size:clamp(7vh,12vw,14vh);font-weight:800;color:#2b3a5e}
.board-clock{font-size:clamp(5vh,8vw,9vh);font-weight:800;font-variant-numeric:tabular-nums}
.board-foot{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#fff;overflow:hidden;
  white-space:nowrap;padding:1.4vh 0}
.board-ticker{display:inline-block;padding-left:100%;animation:ticker 30s linear infinite;
  font-size:2.6vh;font-weight:700}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .ticker-track,.board-ticker,.mock-ticker span{animation:none;padding-left:0}
  html{scroll-behavior:auto}
}

/* ============ Icon-System (SVG statt Emojis) ============ */
.ico{width:1.15em;height:1.15em;flex-shrink:0;vertical-align:-.22em;display:inline-block}
h1 .ico,h2 .ico,h3 .ico{vertical-align:-.14em;margin-right:.15em}
.panel h2 .ico,.panel h3 .ico{color:var(--brand)}
.live-col h2 .ico{color:var(--accent);vertical-align:-.18em}
.btn .ico,.btn-ghost .ico,.btn-danger .ico{width:1.05em;height:1.05em;vertical-align:-.18em}
.topbar .logo .ico{width:1.15em;height:1.15em;color:#fff;vertical-align:0}
.sport-chip .ico{color:var(--brand);vertical-align:-.24em;margin-right:.1em}
.tcard-sport .ico{color:var(--brand);vertical-align:-.28em}
.page-head+* .ico{vertical-align:-.2em}
.muted .ico{vertical-align:-.24em}
.pub-title .ico{color:var(--brand);vertical-align:-.24em}
.cur-flag .ico{vertical-align:-.2em}
.logo-pick .ico{width:1.2em;height:1.2em;color:var(--muted)}
.logo-pick:hover .ico{color:var(--brand)}
.board-link .ico{vertical-align:-.22em}
.mock-clock .ico{vertical-align:-.18em;margin-right:.2em}

/* Status-Punkte */
.sdot{display:inline-block;width:.62em;height:.62em;border-radius:50%;background:#cbd5e1;
  margin-right:.4em;vertical-align:baseline}
.sdot.on{background:var(--green);box-shadow:0 0 0 3px rgba(5,150,105,.18)}

/* Häkchen-Listen (statt ✔-Zeichen im Text) */
.price-card li{position:relative;padding-left:1.7em}
.price-card li::before{content:'';position:absolute;left:.1em;top:.72em;width:1em;height:1em;
  background:var(--green);border-radius:50%;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='4 12.5 9.5 18 20 6.5'/%3E%3C/svg%3E") center/70% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='4 12.5 9.5 18 20 6.5'/%3E%3C/svg%3E") center/70% no-repeat}

/* Mockup-Team-Initialen */
.mock-t i{font-style:normal;font-weight:800;color:#fff;font-size:1rem;letter-spacing:.02em}

/* Spielplan-Bearbeitung (Zeit / Feld direkt in der Tabelle) */
.sched-tbl td{padding:.4em .5em}
.cell-in{width:6.2em;margin:0;padding:.35em .5em;font-size:var(--fs-xs);text-align:center;
  border-radius:7px;border:1.5px solid var(--line-2)}
.cell-court{width:5em}
.sched-tbl .cell-in:focus{box-shadow:0 0 0 3px rgba(79,70,229,.14)}

/* Server-Check: Hinweistexte muessen umbrechen duerfen */
.check-tbl td{white-space:normal;vertical-align:top}
.check-tbl td:first-child{width:2.2em;text-align:center}
.check-tbl .fix{display:block;font-size:.85em;color:var(--muted);margin-top:.2em;line-height:1.45}

/* ============ Adminbereich ============ */
.nav-admin{display:inline-flex;align-items:center;gap:.35em;color:var(--brand)!important;font-weight:700}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:var(--sp-2)}
.stat{background:var(--bg-page);border:1px solid var(--line);border-radius:var(--radius);
  padding:var(--sp-3);display:flex;flex-direction:column;gap:.15em}
.stat-accent{background:linear-gradient(135deg,rgba(79,70,229,.07),rgba(124,58,237,.09));border-color:#c7d2fe}
.stat-label{font-size:var(--fs-xs);color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.stat-val{font-size:var(--fs-2xl);font-weight:800;line-height:1.1;letter-spacing:-.02em}
.stat-sub{font-size:var(--fs-xs);color:var(--muted)}
.admin-tbl td{white-space:normal;vertical-align:top}
.admin-actions{display:flex;gap:.35em;flex-wrap:wrap;align-items:center}
.admin-actions form{margin:0}
.admin-actions .btn-ghost,.admin-actions .btn-danger{padding:.35em .75em;font-size:var(--fs-xs)}
