/* ============================================================
   WM 2026 — Turnierseite (Anzeige + Tippspiel)
   Erbt die Wochenbrille-Optik aus site.css (Papier/Tinte/Rot,
   Lora + Inter). Hier nur das WM-Spezifische.
   ============================================================ */

/* ---- Kopf der WM-Seite (Reihe-Stil) ---- */
.wm-head{padding:46px 0 0;}
.wm-head .k{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.wm-head h1{font-family:var(--sans);font-weight:800;font-size:clamp(30px,5vw,44px);letter-spacing:.04em;text-transform:uppercase;margin:8px 0 0;line-height:1.04;}
.wm-head .rule{margin:14px 0 0;}
.wm-head .rule::before{content:"";display:block;height:3px;background:var(--ink);}
.wm-head .rule::after{content:"";display:block;height:1px;background:var(--ink);margin-top:3px;}
.wm-head .desc{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--muted);margin:14px 0 0;max-width:62ch;}
.wm-updated{font-family:var(--sans);font-size:12.5px;color:var(--muted);margin:10px 0 0;}
.wm-updated .live{color:var(--accent);font-weight:700;}

/* ---- Tab-Umschalter (Gruppen · Spielplan · Turnierbaum) ---- */
.wm-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:30px 0 6px;}
.wm-tab{font-family:var(--sans);font-weight:700;font-size:14px;color:var(--muted);background:var(--card);
  border:1px solid var(--line);border-radius:999px;padding:9px 20px;cursor:pointer;transition:.15s;}
.wm-tab:hover{border-color:var(--ink);}
.wm-tab[aria-selected="true"]{color:#fff;background:var(--ink);border-color:var(--ink);}
.wm-panel{display:none;margin-top:24px;}
.wm-panel.active{display:block;}

/* ---- „Heute"-Block ---- */
.wm-today{margin:8px 0 30px;border:1px solid var(--line);border-radius:3px;background:var(--card);position:relative;padding:22px 24px;}
.wm-today::before{content:"";position:absolute;inset:8px;border:1px solid var(--line);pointer-events:none;}
.wm-today>*{position:relative;z-index:1;}
.wm-today h2{font-family:var(--sans);font-weight:800;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 14px;}

/* ---- Gruppen-Raster ---- */
.wm-groups{display:grid;gap:20px;grid-template-columns:repeat(2,1fr);}
@media(max-width:680px){.wm-groups{grid-template-columns:1fr;}}
.wm-group{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:18px 18px 8px;position:relative;}
.wm-group h3{font-family:var(--serif);font-weight:700;font-size:19px;margin:0 0 12px;display:flex;align-items:baseline;gap:10px;}
.wm-group h3 .gl{font-family:var(--sans);font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);}
.wm-table{width:100%;border-collapse:collapse;font-size:14px;}
.wm-table th{font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center;padding:4px 4px;border-bottom:1px solid var(--line);}
.wm-table th.tname{text-align:left;}
.wm-table td{padding:7px 4px;text-align:center;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;}
.wm-table tr:last-child td{border-bottom:0;}
.wm-table td.tname{text-align:left;font-weight:600;padding-left:14px;}
.wm-table th.tname{padding-left:14px;}
.wm-table td.pts{font-weight:800;}
.wm-table .pos{color:var(--muted);width:1.4em;}
.wm-flag{font-size:16px;line-height:1;margin-right:6px;}
.wm-tla{display:none;font-family:var(--sans);font-weight:700;font-size:11px;color:var(--muted);}
/* Top-2 (Weiterkommer) grün getönt — Balken mit etwas Abstand zur Flagge */
.wm-table tr.adv td{background:rgba(47,107,58,.07);}
.wm-table tr.adv td.tname{box-shadow:inset 3px 0 0 var(--good);}
/* Bester Dritter (Markierung später per JS optional) */
.wm-table tr.third td{background:rgba(156,43,34,.05);}

/* ---- Spielplan ---- */
.wm-day{margin:0 0 26px;}
.wm-day h3{font-family:var(--serif);font-weight:700;font-size:18px;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line);}
.wm-day h3.today{color:var(--accent);}
.wm-match{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:12px;padding:10px 8px;border-bottom:1px solid var(--line);}
.wm-match:last-child{border-bottom:0;}
.wm-time{font-family:var(--sans);font-weight:700;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;}
.wm-pair{display:flex;flex-direction:column;gap:3px;min-width:0;}
.wm-venue{font-family:var(--sans);font-size:11.5px;color:var(--muted);margin-top:4px;letter-spacing:.01em;}
.wm-venue .wm-tv{white-space:nowrap;}
.wm-side{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;}
.wm-side.win{color:var(--ink);}
.wm-side.lose{color:var(--muted);}
.wm-side .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wm-result{text-align:right;font-family:var(--sans);font-variant-numeric:tabular-nums;}
.wm-score{font-weight:800;font-size:16px;}
.wm-stage-meta{font-family:var(--sans);font-size:11px;color:var(--muted);letter-spacing:.04em;}
.wm-live{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:800;font-size:11px;letter-spacing:.1em;text-transform:uppercase;}
.wm-live .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:wmpulse 1.4s ease-in-out infinite;}
@keyframes wmpulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.35;transform:scale(.7);}}
.wm-fin{font-family:var(--sans);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}

/* ---- Turnierbaum ---- */
.wm-half-title{font-family:var(--serif);font-weight:700;font-size:20px;margin:30px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line);}
.wm-half-title:first-child{margin-top:8px;}
/* Finale mittig zwischen den beiden Hälften */
.wm-final-center{display:flex;flex-direction:column;align-items:center;margin:30px 0;}
.wm-final-center .wm-round h4{color:var(--accent);}
.wm-final-ties{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;}
.wm-final-ties .wm-round{flex:0 0 auto;min-width:210px;}
.wm-bracket-wrap{overflow-x:auto;padding-bottom:10px;}
.wm-bracket{display:flex;gap:22px;min-width:760px;}
.wm-tie .row .nm.ph{white-space:normal;font-style:italic;color:var(--muted);font-weight:500;}
.wm-tie .meta{font-family:var(--sans);font-size:9.5px;color:var(--muted);text-align:center;padding:4px 4px 5px;letter-spacing:.03em;border-bottom:1px solid var(--line);}
.wm-round{display:flex;flex-direction:column;justify-content:space-around;gap:14px;flex:0 0 168px;}
.wm-round h4{font-family:var(--sans);font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:center;margin:0 0 4px;}
.wm-tie{background:var(--card);border:1px solid var(--line);border-radius:3px;overflow:hidden;}
.wm-tie .row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;font-size:13px;}
.wm-tie .row+.row{border-top:1px solid var(--line);}
.wm-tie .row .nm{display:flex;align-items:center;gap:7px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wm-tie .row.win .nm{color:var(--ink);}
.wm-tie .row.win{background:rgba(47,107,58,.07);}
.wm-tie .row .sc{font-family:var(--sans);font-weight:800;font-variant-numeric:tabular-nums;}
.wm-tie .row .ph{color:var(--muted);font-style:italic;font-weight:500;}
.wm-tie .meta{font-family:var(--sans);font-size:10px;color:var(--muted);text-align:center;padding:3px 0 5px;letter-spacing:.04em;}
.wm-final-tie{border-color:var(--accent);}
@media(max-width:680px){
  .wm-bracket{min-width:0;flex-direction:column;gap:26px;}
  .wm-round{flex:1 1 auto;}
}

/* ---- Tippspiel ---- */
.wm-login{max-width:420px;margin:30px auto 0;background:var(--card);border:1px solid var(--line);border-radius:3px;padding:30px 30px 26px;position:relative;text-align:center;}
.wm-login::before{content:"";position:absolute;inset:9px;border:1px solid var(--line);pointer-events:none;}
.wm-login>*{position:relative;z-index:1;}
.wm-login h2{font-family:var(--serif);font-weight:700;font-size:22px;margin:0 0 6px;}
.wm-login p{color:var(--muted);font-size:14.5px;margin:0 0 18px;}
.wm-field{display:block;width:100%;font-family:var(--sans);font-size:15px;padding:11px 13px;border:1px solid var(--line);border-radius:3px;background:var(--paper);color:var(--ink);margin:0 0 12px;}
.wm-field:focus{outline:none;border-color:var(--ink);}
.wm-btn{display:inline-block;font-family:var(--sans);font-weight:700;font-size:14.5px;padding:11px 22px;border:1px solid var(--ink);border-radius:3px;background:var(--ink);color:#fff;cursor:pointer;transition:.15s;}
.wm-btn:hover{background:#000;}
.wm-btn.ghost{background:transparent;color:var(--ink);}
.wm-btn.ghost:hover{background:rgba(28,27,25,.05);}
.wm-btn:disabled{opacity:.5;cursor:not-allowed;}
.wm-who{display:flex;gap:12px;justify-content:center;margin:0 0 16px;}
.wm-who .wm-btn{flex:0 0 140px;text-align:center;}
.wm-msg{font-size:13.5px;margin:12px 0 0;min-height:1.2em;}
.wm-msg.err{color:var(--accent);}
.wm-msg.ok{color:var(--good);}

.wm-tipbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:26px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:3px;background:var(--card);}
.wm-tipbar .me{font-family:var(--sans);font-weight:700;}
.wm-tipbar .spacer{margin-left:auto;}

/* Ergebnis-Tipp Eingaben */
.wm-tip-match{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:12px;padding:11px 8px;border-bottom:1px solid var(--line);}
.wm-tip-match:last-child{border-bottom:0;}
.wm-tip-match.locked{opacity:.62;}
.wm-tip-inputs{display:flex;align-items:center;gap:8px;justify-content:flex-end;}
.wm-tip-inputs input{width:46px;text-align:center;font-family:var(--sans);font-weight:700;font-size:16px;padding:6px;border:1px solid var(--line);border-radius:3px;background:var(--paper);color:var(--ink);}
.wm-tip-inputs input:disabled{background:var(--line);color:var(--muted);}
.wm-tip-inputs .colon{color:var(--muted);font-weight:700;}
.wm-pts{font-family:var(--sans);font-weight:800;font-size:13px;color:var(--good);min-width:2.4em;text-align:right;}
.wm-pts.zero{color:var(--muted);}
.wm-otherwrap{font-family:var(--sans);font-size:12px;color:var(--muted);margin-top:3px;}
.wm-other-hidden{font-style:italic;}

/* Punktestand */
.wm-board{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0 0;}
@media(max-width:560px){.wm-board{grid-template-columns:1fr;}}
.wm-board .pcard{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:20px 22px;text-align:center;position:relative;}
.wm-board .pcard.lead{border-color:var(--good);}
.wm-board .pname{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.wm-board .pscore{font-family:var(--serif);font-weight:700;font-size:46px;line-height:1;margin:8px 0 0;}
.wm-board .pcrown{position:absolute;top:10px;right:12px;font-size:18px;}

/* Live-Tabelle im Turnier-Tipp */
.wm-predtable{margin:6px 0 2px;}
.wm-predrow{display:grid;grid-template-columns:1.7em 1.3em 1fr 2.6em 1.8em;gap:8px;align-items:center;padding:5px 4px;border-bottom:1px solid var(--line);font-size:13.5px;font-variant-numeric:tabular-nums;}
.wm-predrow:last-child{border-bottom:0;}
.wm-predrow.adv{background:rgba(47,107,58,.07);}
.wm-predrow.adv{box-shadow:inset 3px 0 0 var(--good);}
.wm-predrow .pos{color:var(--muted);}
.wm-predrow .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;}
.wm-predrow .gd{text-align:right;color:var(--muted);}
.wm-predrow .pts{text-align:right;font-weight:800;}

.wm-note{font-family:var(--sans);font-size:13px;color:var(--muted);background:var(--card);border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:3px;padding:14px 16px;margin:20px 0 0;line-height:1.55;}

/* ---- Spielorte ---- */
.wm-venue-land{font-family:var(--serif);font-weight:700;font-size:19px;margin:26px 0 8px;}
.wm-venue-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 24px;list-style:none;padding:0;margin:0;}
@media(max-width:560px){.wm-venue-list{grid-template-columns:1fr;}}
.wm-venue-list li{padding:9px 0;border-bottom:1px solid var(--line);font-size:14.5px;}
.wm-venue-list li b{font-weight:600;}
.wm-venue-list li span{color:var(--muted);}
