:root{--bg:#f3f6fb;--panel:#fff;--text:#172033;--muted:#667085;--line:#dbe2ee;--brand:#163fb4;--brand2:#0e2f92;--danger:#b42318;--ok:#067647;--shadow:0 12px 35px rgba(23,32,51,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}

body{
    margin:0;
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    background:linear-gradient(180deg,#eef3ff 0,#f7f9fc 360px);
}button,input,select,textarea{font:inherit}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:16px clamp(20px,2vw,36px);background:rgba(255,255,255,.93);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}h1,h2,h3,p{margin-top:0}.topbar h1{font-size:clamp(24px,3vw,36px);margin-bottom:0}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--brand);font-size:12px;font-weight:800}.top-actions{display:flex;gap:10px;flex-wrap:wrap}.shell{width:100%;max-width:1900px;margin:0 auto;padding:28px clamp(14px,2.2vw,36px) 80px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow);margin-bottom:22px}.hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.hero p{color:var(--muted);max-width:720px}.button{border:0;border-radius:11px;background:var(--brand);color:#fff;padding:11px 15px;font-weight:750;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.button:hover{background:var(--brand2)}.button.ghost{background:#fff;color:var(--brand);border:1px solid var(--line)}.button.secondary{background:#e8edfb;color:var(--brand)}.button.danger{background:#fee4e2;color:var(--danger)}.button.small{padding:8px 11px;font-size:14px}.button:disabled{opacity:.5;cursor:not-allowed}.grid{display:grid;gap:16px}.cards{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}.tournament-card{border:1px solid var(--line);border-radius:16px;padding:18px;background:#fff;display:flex;flex-direction:column;gap:14px}.tournament-card h3{margin-bottom:4px}.meta{color:var(--muted);font-size:14px}.badges{display:flex;gap:7px;flex-wrap:wrap}.badge{font-size:12px;font-weight:750;padding:5px 9px;border-radius:999px;background:#eef2ff;color:#3448a4}.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.empty{text-align:center;padding:45px 20px;color:var(--muted)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{border:1px solid var(--line);background:#fff;color:var(--text);padding:10px 13px;border-radius:10px;cursor:pointer;font-weight:700}.tab.active{background:var(--brand);color:#fff;border-color:var(--brand)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:750}.field input,.field select,.field textarea{width:100%;border:1px solid #cfd8e6;border-radius:10px;padding:11px 12px;background:#fff;color:var(--text)}.field textarea{min-height:90px;resize:vertical}.help{font-size:13px;color:var(--muted)}.team-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;margin-bottom:9px}.team-no{width:38px;height:38px;border-radius:10px;background:#edf2ff;color:var(--brand);display:grid;place-items:center;font-weight:800}.team-row input{border:1px solid #cfd8e6;border-radius:10px;padding:10px 12px}.split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:20px}.notice{padding:14px 16px;border-radius:12px;background:#fff8e7;border:1px solid #f0d58b;color:#714b00}.notice.ok{background:#ecfdf3;border-color:#abefc6;color:#067647}.match-list{display:grid;gap:12px}.match{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.match-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.match-title{font-weight:800}.score-grid{display:grid;grid-template-columns:minmax(120px,1fr) repeat(3,74px);gap:8px;align-items:center}.score-grid .head{font-size:12px;color:var(--muted);text-align:center}.score-grid input{width:100%;border:1px solid #cfd8e6;border-radius:9px;padding:9px;text-align:center}.team-name{font-weight:700;overflow-wrap:anywhere}.winner{color:var(--ok)}.table-wrap{overflow:auto}.ranking{width:100%;border-collapse:collapse;min-width:640px}.ranking th,.ranking td{padding:10px 9px;border-bottom:1px solid var(--line);text-align:center}.ranking th:nth-child(2),.ranking td:nth-child(2){text-align:left}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.group-card{border:1px solid var(--line);border-radius:14px;padding:14px}.public-title{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.backlink{color:var(--brand);font-weight:750;text-decoration:none}.toasts{position:fixed;right:18px;bottom:18px;z-index:50;display:grid;gap:9px}.toast{background:#172033;color:#fff;padding:12px 15px;border-radius:10px;box-shadow:var(--shadow);max-width:360px}.loading{text-align:center;color:var(--muted)}.danger-zone{border-color:#f7b8b3}.muted{color:var(--muted)}.inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.section-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.hidden{display:none!important}
@media(max-width:780px){.topbar{align-items:flex-start}.hero,.public-title{flex-direction:column}.form-grid,.split{grid-template-columns:1fr}.score-grid{grid-template-columns:minmax(100px,1fr) repeat(3,58px)}.shell{padding-left:12px;padding-right:12px}.panel{padding:16px}.top-actions{justify-content:flex-end}.topbar .ghost{display:none}}

/* Schritt 2: Mannschaftsverwaltung */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px;border-top:1px solid var(--border);padding-top:18px}
.tab{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border-radius:10px;text-decoration:none;font-weight:750;color:var(--muted);background:#f4f7fc;border:1px solid transparent}
.tab.active{color:#fff;background:var(--primary)}
.tab.disabled{opacity:.48;cursor:not-allowed}
.tab-count{display:inline-flex;min-width:22px;height:22px;align-items:center;justify-content:center;border-radius:999px;background:rgba(255,255,255,.18);font-size:12px}
.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}
.section-heading h3{margin:0 0 6px}
.team-total{padding:7px 11px;background:#edf3ff;color:var(--primary);border-radius:999px;font-weight:800;white-space:nowrap}
.team-add-row{display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:12px}
.team-add-row input{min-height:46px}
.team-tools{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:16px}
.bulk-import{padding:16px;background:#f7f9fd;border:1px solid var(--border);border-radius:14px;margin-bottom:16px}
.bulk-import label{display:block;font-weight:750;margin-bottom:8px}
.bulk-import textarea{width:100%;min-height:130px;margin-bottom:10px}
.hidden{display:none!important}
.team-list{display:grid;gap:10px}
.team-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:13px;background:#fff}
.team-number{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#eef3ff;color:var(--primary);font-weight:850}
.team-name{width:100%;min-height:42px}
.team-row-actions{display:flex;gap:6px}
.icon-button{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:#f7f9fd;font-size:20px;font-weight:800;cursor:pointer}
.icon-button:hover:not(:disabled){background:#e9effc}
.icon-button.danger{color:#b42318;background:#fff4f3}
.icon-button:disabled{opacity:.28;cursor:not-allowed}
.save-status{margin-top:16px;color:var(--muted);font-size:14px}
.teams-empty{box-shadow:none;border:1px dashed var(--border);padding:32px}
@media(max-width:680px){.team-add-row{grid-template-columns:1fr}.team-row{grid-template-columns:36px minmax(0,1fr)}.team-row-actions{grid-column:2;justify-content:flex-end}.section-heading{flex-direction:column}.tabs{display:grid;grid-template-columns:1fr 1fr}.tab{justify-content:center}.tab.disabled{display:none}}

/* Schritt 3: Turnier-Assistent */
.assistant-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:18px;background:#f7f9fd;border:1px solid var(--line);border-radius:15px;margin-bottom:24px}.assistant-grid input{min-height:44px}.input-suffix{display:flex;border:1px solid #cfd8e6;border-radius:10px;background:#fff;overflow:hidden}.input-suffix input{border:0!important;border-radius:0!important;min-width:0}.input-suffix span{display:flex;align-items:center;padding:0 12px;color:var(--muted);background:#f5f7fb;border-left:1px solid var(--line);white-space:nowrap}.checkbox-field{justify-content:center}.checkbox-field label{display:flex;gap:9px;align-items:center;min-height:44px}.checkbox-field input{width:19px;height:19px}.recommendation-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.recommendations{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:15px}.recommendation-card{border:1px solid var(--line);border-radius:16px;padding:17px;background:#fff;display:flex;flex-direction:column;gap:14px;transition:.18s ease}.recommendation-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(23,32,51,.08)}.recommendation-card.selected{border:2px solid var(--brand);background:#f7f9ff}.recommendation-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.recommendation-card h4{font-size:18px;margin:3px 0 7px}.recommendation-card p{color:var(--muted);font-size:14px;margin:0}.recommendation-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--brand);font-weight:850}.fit{white-space:nowrap;font-size:12px;font-weight:800;padding:6px 9px;border-radius:999px}.fit.good{background:#ecfdf3;color:#067647}.fit.medium{background:#fff8e7;color:#8a5a00}.fit.bad{background:#fff1f0;color:#b42318}.mode-facts{display:flex;flex-wrap:wrap;gap:7px}.mode-facts span{font-size:12px;padding:6px 9px;border-radius:999px;background:#eef2f8;color:#475467}.selected-mode-summary{margin-top:18px;padding:15px 17px;border:1px solid #abefc6;border-radius:13px;background:#ecfdf3;color:#067647;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.selected-mode-summary span{color:#48665a;font-size:14px}@media(max-width:900px){.assistant-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.assistant-grid{grid-template-columns:1fr}.recommendation-head{flex-direction:column}.recommendation-top{flex-direction:column}.fit{align-self:flex-start}}

/* Schritt 4: Spielplan und Ergebnisse */
.schedule-summary{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 16px;background:#f7f9fd;border:1px solid var(--border);border-radius:14px;margin-bottom:18px}.schedule-summary span{padding:5px 9px;background:#fff;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:13px}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:18px 0}.group-card{border:1px solid var(--border);border-radius:14px;padding:15px;background:#fff}.group-card h4{margin:0 0 10px;color:var(--primary)}.group-card div{padding:7px 0;border-top:1px solid #edf1f7}.match-list,.results-list{display:grid;gap:12px;margin:18px 0}.match-row{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center;padding:13px 15px;border:1px solid var(--border);border-radius:13px;background:#fff}.match-meta{font-weight:800;color:var(--primary)}.match-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center}.match-teams strong:last-child{text-align:right}.match-teams span{color:var(--muted);font-size:13px}.result-card{padding:16px;border:1px solid var(--border);border-radius:15px;background:#fff}.result-card.completed{border-color:#abefc6;background:#fbfffc}.result-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.result-head h4{margin:9px 0 0;font-size:18px}.set-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin-top:15px}.set-entry{padding:10px;border-radius:12px;background:#f7f9fd}.set-entry label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:7px}.set-entry>div{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:7px}.set-entry input{width:100%;min-width:0;text-align:center;font-weight:800}.standings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(390px,1fr));gap:16px;margin:18px 0}.standing-card{border:1px solid var(--border);border-radius:15px;background:#fff;overflow:hidden}.standing-card h4{margin:0;padding:14px 16px;background:#f7f9fd}.table-wrap{overflow:auto}.standing-card table{width:100%;border-collapse:collapse;font-size:13px}.standing-card th,.standing-card td{padding:10px 8px;border-top:1px solid #edf1f7;text-align:center;white-space:nowrap}.standing-card th:nth-child(2),.standing-card td:nth-child(2){text-align:left}.notice.success{border-color:#abefc6;background:#ecfdf3}.public-results .result-card{padding:13px 15px}.winner-line{margin-top:8px;color:#067647;font-weight:750}.public-results .result-head strong{white-space:nowrap}.button.secondary{background:#eaf0ff;color:var(--primary)}
@media(max-width:700px){.match-row{grid-template-columns:1fr}.match-teams{grid-template-columns:1fr}.match-teams strong:last-child{text-align:left}.match-teams span{display:none}.result-head{flex-direction:column}.standings-grid{grid-template-columns:1fr}.standing-card{min-width:0}.set-grid{grid-template-columns:1fr 1fr}}


/* Schritt 5: breites Responsive-Layout und LinkedSystems-Branding */
.powered{margin-top:3px;color:var(--muted);font-size:12px}.powered strong{color:var(--brand)}
.site-footer{width:100%;max-width:1900px;margin:0 auto;padding:0 clamp(14px,2.2vw,36px) 32px;display:flex;justify-content:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:13px}.site-footer strong{color:var(--brand)}
@media(min-width:1200px){
  .panel{padding:26px 28px}
  .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .results-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .match-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .recommendations{grid-template-columns:repeat(3,minmax(0,1fr))}
  .group-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .standings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:1500px){
  .cards{grid-template-columns:repeat(4,minmax(0,1fr))}
  .results-list{grid-template-columns:repeat(3,minmax(0,1fr))}
  .match-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:780px){
  body{background:#f5f7fb}
  .topbar{position:relative;padding:14px 12px;gap:10px}
  .topbar h1{font-size:24px}
  .eyebrow{font-size:10px}
  .powered{font-size:11px}
  .top-actions .button{padding:9px 11px;font-size:13px}
  .shell{padding:14px 10px 56px}
  .panel{border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 7px 22px rgba(23,32,51,.06)}
  .toolbar{margin-bottom:12px}
  .tabs{display:flex;overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab{flex:0 0 auto;white-space:nowrap;padding:9px 11px;font-size:13px}
  .recommendations,.cards,.group-grid,.standings-grid,.results-list,.match-list{grid-template-columns:1fr}
  .result-card,.match-row{padding:12px}
  .set-grid{grid-template-columns:1fr 1fr}
  .site-footer{padding:0 12px 24px;font-size:12px}
}
@media(max-width:430px){
  .topbar{align-items:center}
  .top-actions{gap:6px}
  .top-actions .button{padding:8px 9px}
  .public-title h2,.section-heading h3{font-size:21px}
  .set-grid{grid-template-columns:1fr}
  .team-row-actions{flex-wrap:wrap}
}


/* Schritt 6: echte Breitansicht und Platzierungsspiele */
.public-section{margin-top:28px}.public-section>h3{font-size:21px;margin:0 0 14px;padding-bottom:10px;border-bottom:2px solid #e8edfb}
.match-row:has(.match-meta){min-width:0}
.result-card{min-width:0}
@media(min-width:1100px){
  .shell{padding-left:28px;padding-right:28px}
  .public-results{grid-template-columns:repeat(3,minmax(0,1fr))}
  .match-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:1600px){
  .public-results{grid-template-columns:repeat(4,minmax(0,1fr))}
  .match-list{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* Schritt 7: Endplatzierungen */
.final-placements{margin:24px 0;padding:22px;border:1px solid #dbe5f5;border-radius:18px;background:#fff}
.compact-heading{margin-bottom:16px}
.placement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.placement-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 14px;border-radius:13px;background:#f7faff;border:1px solid #e3ebf8}
.placement-row.open{opacity:.62}
.placement-number{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#1746be;color:#fff;font-weight:800}
.placement-row:nth-child(1) .placement-number{background:#c99600}
.placement-row:nth-child(2) .placement-number{background:#7b8794}
.placement-row:nth-child(3) .placement-number{background:#a8622a}
.placement-note{font-size:.76rem;color:#68758c;text-align:right}
@media(max-width:640px){.final-placements{padding:15px}.placement-grid{grid-template-columns:1fr}.placement-row{grid-template-columns:42px minmax(0,1fr)}.placement-note{grid-column:2;text-align:left}}

/* Schritt 8: geschuetzter Adminbereich und sichtbare Endplatzierungen */
.login-panel{max-width:620px;margin:42px auto}.login-box{padding:8px}.login-box form{display:grid;gap:18px;margin-top:22px}.login-error{min-height:22px;color:var(--danger);font-weight:700;margin:0}.final-placements{order:-1;border:2px solid #c7d7fa;background:linear-gradient(180deg,#ffffff,#f7faff)}.final-placements h3{font-size:24px}.public-section+.final-placements{margin-top:28px}@media(min-width:1200px){.placement-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:780px){.login-panel{margin:12px auto}.final-placements h3{font-size:21px}}


/* Best-of-3: nicht benötigter dritter Satz */
.set-entry.set-disabled{
  opacity:.55;
  background:#eef1f5;
}
.set-entry.set-disabled input{
  cursor:not-allowed;
}
.set-note{
  display:block;
  margin-top:7px;
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
}
