:root{
  --ink:#0f172a;
  --card:#fff;
  --accent:#2e6bff;
  --shadow:0 18px 36px rgba(15,23,42,.20);
  --stroke:#e3e9f8;
  --muted:#6b7280;
  --bg-a:#f7f9ff;
  --bg-b:#eef3ff;
}

/* Basics */
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{min-height:100%}
body{
  margin:0;
  background:linear-gradient(180deg,#e8edf8,#f5f7fc);
  font:15px/1.5 "Inter",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
  color:var(--ink);
  -webkit-text-size-adjust:100%; /* verhindert iOS Auto-Zoom-Anpassung */
}
.wrap{max-width:820px;margin:0 auto;padding:18px}

/* =========================================================
   Datebar (Heute/Morgen) + separater Filter-Button daneben
   ========================================================= */
.datebar{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  background:linear-gradient(180deg,var(--bg-a),var(--bg-b));
  border:1px solid var(--stroke);
  border-radius:18px;
  padding:10px 12px;
  box-shadow:0 10px 24px rgba(46,107,255,.08);
  margin-bottom:20px;
}
.tablist{display:flex;align-items:center;gap:12px}
.tab{
  padding:10px 18px;
  border-radius:14px;
  border:1px solid transparent;
  background:transparent;
  font-weight:800;
  color:#223048;
  text-decoration:none;
  white-space:nowrap;
  transition:.18s ease;
}
.tab:hover{opacity:.9}
.tab.act{ /* aktive Registerkarte */
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
  box-shadow:0 8px 22px rgba(46,107,255,.28);
}

/* separater Filter-Button rechts von den Tabs */
.fbtn{
  width:40px;height:40px;
  border:none;
  background:#fff;
  border-radius:12px;
  display:grid;place-items:center;
  cursor:pointer;
  box-shadow:0 4px 14px rgba(46,107,255,.10);
  transition:opacity .2s ease, transform .08s ease;
}
.fbtn:hover{opacity:.85}
.fbtn:active{transform:translateY(1px)}
.fbtn svg{width:20px;height:20px;stroke:#223048}

/* =========================================================
   Match Cards
   ========================================================= */
.card{
  background:var(--card);
  border-radius:14px;
  box-shadow:var(--shadow);
  padding:16px;
  margin:24px 0 56px;
  position:relative;
}
.head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  border-bottom:none; /* Linie nur beim Tipp unten */
  padding-bottom:12px;
}
.teams{display:flex;flex-direction:column;gap:10px}
.line{display:flex;align-items:center;gap:12px}

/* Logos ohne Hintergrund – leicht kleiner */
.logo{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
}

.logo img{
  width:24px;
  height:24px;
  object-fit:contain;
  opacity:0.9;
}


/* beide Teamnamen gleich gewichtet */
.line strong,.line span{font-weight:600;color:#0d1628}

.meta{text-align:right}
.league{font-weight:700;color:#111827;font-size:12px;margin-bottom:6px}
.time{font-weight:700;color:var(--muted);font-size:12px}
.empty{opacity:.7;margin:24px 0}

/* =========================================================
   Compact meters
   ========================================================= */
.details{margin-top:24px}
.grid{display:grid;gap:12px}

.comp{display:grid;gap:18px}
.mblock{display:grid;gap:8px}
.mttl{font-weight:800;color:#64748b;letter-spacing:.04em;text-align:center}
.meter{
  height:40px;border-radius:14px;overflow:hidden;display:flex;
  background:#e9ecfb;border:1px solid #dde3fb
}
.seg{display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff}
.seg.s1{background:#7b61ff}
.seg.s2{background:#1f2937}
.seg.s3{background:#9aa3b2}
.mrow{display:flex;gap:0;margin-top:4px;font-size:12px;color:#64748b;font-weight:700}
.mrow span{flex:1;text-align:center}
.msep{height:1px;border-bottom:1px dashed #e5e9f6;margin:4px 0 0}

/* =========================================================
   Correct Score – 5 Chips in einer Reihe
   ========================================================= */
.cs{display:grid;gap:12px}
.cs .mttl{text-align:center}
.cs-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.cs-pill{
  background:#fff;border:1px solid #e6eaf5;border-radius:12px;
  padding:10px 8px 12px;text-align:center;box-shadow:0 4px 16px rgba(2,6,23,.06)
}
.cs-meter{height:6px;border-radius:999px;background:#eef1fb;border:1px solid #e6eaf5;overflow:hidden;margin-bottom:8px}
.cs-meter>span{display:block;height:100%;background:linear-gradient(90deg,#7b61ff,#4f74ff);opacity:.38}
.cs-pct{font-weight:900;font-size:clamp(13px,3.2vw,16px);line-height:1.1;color:#111827}
.cs-score{margin-top:4px;font-weight:800;font-size:clamp(11px,2.6vw,13px);color:#64748b;letter-spacing:.02em}
@media (max-width:380px){
  .cs-row{gap:8px}
  .cs-pill{padding:8px 6px 10px;border-radius:10px}
  .cs-meter{height:5px;margin-bottom:6px}
}

/* =========================================================
   VIRA Tipp – eine Linie, links Label+Wert, rechts Quote+Haken
   ========================================================= */
.vira-row{
  display:flex;justify-content:space-between;align-items:center;
  border-top:1px solid #e7ebf4;padding-top:12px;margin:10px 0 14px;
  color:#111827;font-weight:800
}
.vira-left{display:flex;align-items:center;gap:6px;white-space:nowrap;font-weight:900}
.vira-right{display:flex;align-items:center;gap:6px;justify-content:flex-end}
.vira-label{font-weight:800}
.vira-value{font-weight:900}
.vira-quote{font-weight:900;opacity:.9}

/* kleiner grüner Kreis */
.vira-ok{width:14px;height:14px;display:inline-grid;place-items:center}
.vira-ok svg{width:14px;height:14px;display:block}
.vira-ok circle{fill:#22c55e}
.vira-ok path{fill:none;stroke:#fff;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}

/* Tipp verschleiern (sichtbar, aber nicht lesbar) */
.blurred{
  color:#111827;position:relative;filter:blur(2px);-webkit-filter:blur(2px);
  opacity:.6;pointer-events:none
}
.blurred::after{
  content:"";position:absolute;inset:0;background:rgba(255,255,255,.25);border-radius:4px
}

/* =========================================================
   PRO CTA + Trennlinie darunter
   ========================================================= */
.pro-cta{
  width:100%;display:flex;align-items:center;justify-content:center;gap:10px;
  margin:0 0 10px;padding:10px 14px;background:#000;color:#fff;border:none;border-radius:12px;
  box-shadow:0 6px 14px rgba(0,0,0,.25);cursor:pointer;text-align:left;
  transition:transform .15s ease, box-shadow .15s ease
}
.pro-cta:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,0,.28)}
.pro-cta:active{transform:translateY(1px)}
.pro-ico{display:grid;place-items:center;flex-shrink:0;color:#fff}
.pro-ico svg{width:18px;height:18px;stroke:#fff;display:block}
.pro-text{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;line-height:1.15}
.pro-text strong{font-weight:800;font-size:15px;letter-spacing:.2px}
.pro-text em{margin-top:2px;font-style:normal;opacity:.7;font-size:12.5px;font-weight:500}
@media (max-width:400px){
  .pro-cta{padding:9px 12px;border-radius:10px}
  .pro-text strong{font-size:14.5px}
  .pro-text em{font-size:12px}
  .pro-ico svg{width:17px;height:17px}
}
/* feine gestrichelte Linie unter dem PRO-Button (außerhalb des Buttons platzieren) */
.pro-sep{width:100%;border-bottom:1px dashed #d8dce7;margin:10px 0 12px;opacity:.85}

/* =========================================================
   „Prognose ansehen“ + FREE-Badge + Pfeil
   ========================================================= */
.open-prog{
  display:flex;align-items:center;justify-content:space-between;
  font-weight:800;font-size:15px;color:#0f172a;margin-top:8px;cursor:pointer;
  transition:opacity .2s ease
}
.open-prog:hover{opacity:.85}
.open-left{display:flex;align-items:center;gap:10px}
.free-badge{
  background:#13c24a;color:#fff;font-size:12px;font-weight:800;
  padding:3px 8px 4px;border-radius:8px;letter-spacing:.3px;line-height:1
}
.open-prog svg{width:18px;height:18px;stroke-width:2.2;stroke:#0f172a;flex-shrink:0}

/* =========================================================
   Filter-Overlay & Panel
   ========================================================= */
.panel{
  position:fixed;inset:0;z-index:70;display:grid;place-items:center;
  background:rgba(15,23,42,.32);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)
}
.box{
  width:min(560px,92vw);background:var(--card);border-radius:18px;padding:16px;
  display:grid;gap:12px;box-shadow:0 18px 40px rgba(2,6,23,.25);border:1px solid var(--stroke);position:relative
}
.close{
  position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:12px;border:1px solid var(--stroke);
  background:#fff;display:grid;place-items:center;font-size:18px;cursor:pointer
}
.hd{font-weight:800;color:#0d1628}
.search{
  width:100%;border:1px solid var(--stroke);border-radius:12px;padding:12px; /* >=16px iOS no-zoom */
  font-weight:600;outline:none;font-size:16px
}
.list{display:grid;gap:8px;max-height:58vh;overflow:auto;padding-right:2px}
.item{
  display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--stroke);
  border-radius:12px;padding:10px 12px;background:#fff;cursor:pointer;
  transition:background .15s ease,border-color .15s ease,transform .05s ease
}
.item:hover{background:#f7f9ff;border-color:#dbe3ff}
.item.act{background:#eef3ff;border-color:#dbe3ff;box-shadow:0 6px 18px rgba(46,107,255,.12)}
.count{font-size:12px;color:#6b7280;font-weight:600}

/* =========================================================
   Popup (Prognose)
   ========================================================= */
.popup-overlay{
  position:fixed;inset:0;background:rgba(15,23,42,.45);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  display:grid;place-items:center;z-index:100;animation:fadeIn .2s ease
}
@keyframes fadeIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.popup-box{
  background:var(--card);border-radius:18px;padding:20px;width:min(640px,92vw);
  max-height:85vh;overflow:auto;box-shadow:0 22px 40px rgba(2,6,23,.25);position:relative;border:1px solid var(--stroke)
}
.popup-close{
  position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:10px;border:1px solid var(--stroke);
  background:#fff;font-weight:700;color:#111827;cursor:pointer
}
.popup-body{margin-top:30px}

/* === Zurück-Link über Datebar === */
.back-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:700;
  font-size:15px;
  color:#0f172a;
  text-decoration:none;
  margin-bottom:12px;
  transition:opacity .2s ease;
}
.back-link:hover{opacity:.7}
.back-link svg{
  width:20px;
  height:20px;
  stroke:#0f172a;
  flex-shrink:0;
}
/* === Titel unter der Datebar === */
.section-title{
  font-size:clamp(24px, 5vw, 30px);
  font-weight:900;
  color:#0f172a;
  text-align:center;
  line-height:1.25;
  margin:20px 0 26px;
  letter-spacing:0.3px;
}
.group-title{margin:26px 0 10px;font-weight:900;font-size:18px;color:#0f172a;text-align:left}
.group-wrap{margin-top:8px}
/* === Group headings: centered & bigger === */
h3.group-title {
  display: grid !important;      /* block + eigener Layoutkontext */
  place-items: center !important;/* horizontal & vertikal in sich zentriert */
  width: 100% !important;
  margin: 20px 0 16px !important;
  font-weight: 900 !important;
  font-size: 26px !important;
  line-height: 1.2 !important;
  letter-spacing: .4px !important;
  color: #0f172a !important;
}

/* Falls ein Elternteil z. B. Flex o. ä. hat, erzwingen wir zentriertes Textlayout */
.group { text-align: center !important; }
/* Weniger Leerraum unter dem PRO-Button */
.card {
  margin: 24px 0 32px !important; /* vorher 56px */
  padding-bottom: 12px !important;
}

/* Etwas weniger Abstand unter der gestrichelten Linie */
.pro-sep {
  margin-bottom: 4px !important;
}
/* === Inline Teams (Heim VS Auswärts) === */
.teams-inline{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  flex-wrap:wrap;
}

.team{
  display:flex;
  align-items:center;
  gap:8px;
}

.team strong,
.team span{
  font-weight:700;
  color:#0d1628;
  font-size:15px;
}

.vs{
  font-weight:800;
  color:#9aa3b2;
  font-size:14px;
  letter-spacing:0.5px;
}
/* === Inline Teams mit Logo vorn/hinten === */
.teams-inline{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  text-align:center;
}

.team{
  display:flex;
  align-items:center;
  gap:8px;
}

.team.home .logo{
  order:-1; /* Logo bleibt vorn */
}

.team.away .logo{
  order:2;  /* Logo hinter den Namen */
}

.team strong,
.team span{
  font-weight:700;
  color:#0d1628;
  font-size:15px;
}

.vs{
  font-weight:900;
  color:#9aa3b2;
  font-size:15px;
  letter-spacing:0.5px;
}
/* === Teams inline + Liga/Uhrzeit darunter === */
.teams-inline{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  text-align:center;
  margin-bottom:8px;
}

.team{
  display:flex;
  align-items:center;
  gap:8px;
}

.team.home .logo{ order:-1; }
.team.away .logo{ order:2; }

.team strong,
.team span{
  font-weight:700;
  color:#0d1628;
  font-size:15px;
}

/* Liga + Uhrzeit nebeneinander */
.meta-inline{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-size:13px;
  font-weight:700;
  color:#6b7280;
  margin-top:4px;
}

.meta-inline .dot{
  color:#9aa3b2;
  font-weight:400;
}
/* Header stapeln (Teams oben, Liga/Zeit darunter) */
.head{
  display:flex;
  flex-direction:column;   /* statt row */
  align-items:center;      /* zentriert */
  gap:6px;                 /* kleiner Abstand zwischen den Zeilen */
}

/* Inline-Teams (Heim VS Auswärts) */
.teams-inline{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  text-align:center;
  margin-bottom:2px;
}
.team{ display:flex; align-items:center; gap:8px; }
.team.home .logo{ order:-1; } /* Heim-Logo vorne */
.team.away .logo{ order:2;  } /* Auswärts-Logo hinten */
.team strong, .team span{ font-weight:700; color:#0d1628; font-size:15px; }
.vs{ font-weight:900; color:#9aa3b2; font-size:15px; letter-spacing:.5px; }

/* Liga + Uhrzeit in einer Reihe, unter den Teams */
.meta-inline{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-size:13px;
  font-weight:700;
  color:#6b7280;
}
.meta-inline .dot{ color:#9aa3b2; font-weight:400; }
/* Liga + Datum: exakt eine Linie, ohne Versatz */
.meta-inline{
  display:flex;
  align-items:center;          /* vertikal mittig */
  justify-content:center;
  gap:8px;
  line-height:1;               /* gemeinsame Basis */
  margin-top:6px;
}

/* frühere Styles im Header überschreiben */
.meta-inline .league,
.meta-inline .time{
  margin:0 !important;
  font-size:13px !important;
  font-weight:700 !important;
  color:#6b7280 !important;
  line-height:1 !important;    /* identisch halten */
  display:inline-block;        /* saubere baseline */
}

/* Punkt als zentrierter Kreis (kein Font-Glyph) */
.meta-inline .dot{
  width:4px;
  height:4px;
  border-radius:50%;
  background:#9aa3b2;
  display:inline-block;
}
/* === Teamnamen bei Platzmangel abkürzen === */
.team strong,
.team span {
  font-weight: 700;
  color: #0d1628;
  font-size: 15px;
  max-width: 120px;            /* maximale Breite für Namen */
  overflow: hidden;
  text-overflow: ellipsis;     /* "..." am Ende */
  white-space: nowrap;         /* kein Umbruch */
  display: inline-block;
  vertical-align: middle;
}

/* Mobile etwas schmaler */
@media (max-width: 420px) {
  .team strong,
  .team span {
    max-width: 80px;
  }
}
/* === Teamnamen sauber kürzen, aber nicht zu stark === */
.team strong,
.team span {
  font-weight: 700;
  color: #0d1628;
  font-size: 15px;
  max-width: 120px;          /* etwas mehr Platz */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: inline-block;
  vertical-align: middle;
  text-align: center;
}

/* Mobile leicht enger halten */
@media (max-width: 480px) {
  .team strong,
  .team span {
    max-width: 95px;
  }
}

/* Logos fein angepasst */
.logo {
  width: 25px;
  height: 25px;
}
.logo img {
  width: 21px;
  height: 21px;
  object-fit: contain;
  opacity: 0.9;
}

/* VS-Zeile bleibt stabil */
.teams-inline {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: nowrap;
  overflow: hidden;
}
.vira-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.ico-pokal {
  width: 20px;    /* vorher 17px → jetzt größer */
  height: 20px;
  position: relative;
  top: -1px;       /* leicht abgesenkt, bleibt mittig zum Text */
}




