/* ═══════════════════════════════════════════════════════
   COMPONENTS CSS — herbruikbare UI componenten
═══════════════════════════════════════════════════════ */

/* ── MATCH CARDS ──────────────────────────────────── */
.match-list { display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem; }
.match-card {
  background:#0d1e24;border:1px solid rgba(255,255,255,.09);border-radius:16px;
  overflow:hidden;transition:all .2s;cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.3);backdrop-filter:blur(8px);position:relative;
}
.match-card:hover { box-shadow:var(--shadow);transform:translateY(-1px); }
.match-card.selected {
  border-color:rgba(219,39,119,.4);
  background:linear-gradient(135deg,rgba(0,190,196,.12),rgba(0,168,173,.08));
}
.match-card.value-glow { box-shadow:0 0 0 2px rgba(22,163,74,.3),0 4px 16px rgba(22,163,74,.2); }
.match-card.is-triple-lock {
  border:2px solid rgba(217,119,6,.55)!important;
  box-shadow:0 0 0 3px rgba(251,191,36,.2),0 6px 24px rgba(217,119,6,.2)!important;
}
.card-head {
  display:flex;align-items:center;padding:.45rem .9rem;
  border-bottom:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.04);
}
.match-comp-name {
  font-family:'IBM Plex Mono',monospace;font-size:.6rem;color:var(--sub);
  letter-spacing:.04em;flex:1;font-weight:600;
}
.match-time { font-family:'IBM Plex Mono',monospace;font-size:.6rem;color:#7c3aed;font-weight:700; }
.match-status-pill {
  font-family:'IBM Plex Mono',monospace;font-size:.54rem;
  padding:3px 9px;border-radius:999px;margin-left:.5rem;font-weight:700;
}
.status-soon { background:rgba(124,58,237,.1);color:#7c3aed;border:1px solid rgba(124,58,237,.25); }
.status-live {
  background:rgba(220,38,38,.08);color:var(--red);border:1px solid rgba(220,38,38,.2);
  animation:pulse 1.5s infinite;
}
.status-done { background:rgba(71,85,105,.07);color:var(--sub);border:1px solid var(--stroke); }
.match-teams {
  display:flex;align-items:center;justify-content:space-between;padding:.8rem .9rem;
}
.team-block { flex:1; }
.team-away  { text-align:right; }
.team-name {
  font-size:.95rem;font-weight:800;line-height:1.2;color:var(--ink);letter-spacing:-.01em;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word;
}
.team-form { display:flex;gap:2px;margin-top:.35rem; }
.team-away .team-form { justify-content:flex-end; }
.form-dot  { width:9px;height:9px;border-radius:3px; }
.form-dot.W { background:var(--green); }
.form-dot.D { background:var(--yellow); }
.form-dot.L { background:var(--red); }
.team-vs { font-family:'Bebas Neue',sans-serif;font-size:1.2rem;color:var(--muted);margin:0 .5rem;flex-shrink:0; }
.match-odds {
  display:flex;gap:.35rem;padding:.4rem .9rem .6rem;
}
.odds-btn {
  flex:1;background:rgba(255,255,255,.07);border:1px solid var(--stroke);border-radius:10px;
  padding:.35rem .3rem;text-align:center;cursor:pointer;transition:all .15s;
}
.odds-btn:active { transform:scale(.97); }
.odds-btn.selected { background:rgba(219,39,119,.12);border-color:rgba(219,39,119,.4); }
.odds-label { font-family:'IBM Plex Mono',monospace;font-size:.46rem;color:var(--sub);font-weight:600; }
.odds-val   { font-family:'Bebas Neue',sans-serif;font-size:1rem;color:var(--ink);letter-spacing:.03em; }
.odds-btn.selected .odds-val  { color:#be185d; }
.odds-btn.selected .odds-label { color:#be185d; }

/* Quick bet knoppen */
.quick-bet-row { display:flex;gap:.3rem;padding:0 .9rem .6rem; }
.qb-btn {
  flex:1;background:rgba(255,255,255,.07);border:1px solid var(--stroke);border-radius:8px;
  padding:.3rem .2rem;text-align:center;cursor:pointer;transition:all .15s;
  font-family:'IBM Plex Mono',monospace;font-size:.46rem;font-weight:700;color:var(--sub);
}
.qb-btn:active { transform:scale(.96); }
.qb-btn.selected { background:rgba(124,58,237,.12);border-color:rgba(124,58,237,.4);color:#7c3aed; }

/* Analyse + Value knoppen op match cards */
.match-card-actions { display:flex;gap:.3rem;padding:0 .9rem .6rem; }
.analyse-btn, .value-btn {
  flex:1;padding:.4rem .5rem;border-radius:10px;cursor:pointer;font-weight:700;
  font-family:'IBM Plex Mono',monospace;font-size:.52rem;text-align:center;transition:all .15s;
  border:1px solid var(--stroke);background:rgba(255,255,255,.07);color:var(--sub);
}
.analyse-btn:active,.value-btn:active { transform:scale(.97); }
.analyse-btn { color:#2563eb;border-color:rgba(37,99,235,.3);background:rgba(37,99,235,.07); }
.value-btn   { color:#15803d;border-color:rgba(22,163,74,.3);background:rgba(22,163,74,.07); }

/* Value badge op match card */
.value-badge {
  position:absolute;top:.5rem;right:.5rem;
  background:rgba(22,163,74,.12);border:1px solid rgba(22,163,74,.3);
  border-radius:8px;padding:2px 7px;
  font-family:'IBM Plex Mono',monospace;font-size:.5rem;font-weight:800;color:#15803d;
}

/* ── COMPETITIE CHIPS ─────────────────────────────── */
.comp-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-bottom:1rem; }
.comp-chip {
  background:rgba(255,255,255,.07);border:1px solid var(--stroke);border-radius:14px;
  padding:.55rem .4rem;text-align:center;cursor:pointer;transition:all .2s;
  box-shadow:0 2px 8px rgba(15,23,42,.06);position:relative;
}
.comp-chip .flag  { font-size:1.2rem;display:block;margin-bottom:.3rem; }
.comp-chip .cname { font-family:'IBM Plex Mono',monospace;font-size:.6rem;color:var(--muted);letter-spacing:.02em;line-height:1.3;font-weight:600; }
.comp-chip.active { border-color:rgba(219,39,119,.4);background:linear-gradient(135deg,rgba(252,231,243,.8),rgba(224,242,254,.65)); }
.comp-chip.active .cname { color:#be185d; }
.comp-chip.fav { border-color:rgba(22,163,74,.45);background:linear-gradient(135deg,rgba(22,163,74,.12),rgba(22,163,74,.05)); }
.comp-chip.fav .cname { color:#15803d; }
.comp-chip.fav::after { content:'✓';position:absolute;top:3px;right:5px;font-size:.6rem;color:#15803d;font-weight:800; }

/* ── COMBI BUILDER ────────────────────────────────── */
.combi-builder {
  position:sticky;bottom:0;left:0;right:0;z-index:50;
  background:linear-gradient(180deg,transparent,rgba(255,247,240,.6) 20%,rgba(255,247,240,.97));
  padding:.6rem 0 .3rem;margin-top:.5rem;
}
.combi-builder-inner {
  background:#0d1e24;border:1px solid rgba(255,154,193,.35);
  border-radius:18px;padding:.7rem .9rem;
  box-shadow:0 8px 30px rgba(255,154,193,.2);backdrop-filter:blur(12px);
}
.combi-header { font-family:'IBM Plex Mono',monospace;font-size:.6rem;font-weight:700;color:#d63384;letter-spacing:.1em;text-transform:uppercase; }
.combi-totaal {
  font-family:'Bebas Neue',sans-serif;font-size:1.7rem;
  background:linear-gradient(135deg,#ff9ac1,#a78bfa);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  letter-spacing:.05em;
}
.combi-payout { font-family:'IBM Plex Mono',monospace;font-size:.62rem;color:var(--orange); }
.combi-leg {
  display:flex;align-items:center;gap:.5rem;
  background:rgba(255,215,230,.25);border:1px solid rgba(255,154,193,.2);
  border-radius:10px;padding:.4rem .7rem;margin-bottom:.3rem;
}
.cbl-match { flex:1;font-size:.75rem;font-weight:600;color:var(--ink); }
.cbl-pick  { font-family:'IBM Plex Mono',monospace;font-size:.52rem;color:#a78bfa; }
.cbl-odds  { font-family:'Bebas Neue',sans-serif;font-size:1rem;color:var(--green);margin:0 .3rem; }
.cbl-remove { background:none;border:none;color:var(--red);cursor:pointer;font-size:.9rem;padding:0 2px;opacity:.7;flex-shrink:0; }
.combi-place-btn {
  flex:1;background:linear-gradient(135deg,rgba(255,154,193,.9),rgba(167,139,250,.9));
  color:#fff;border:none;border-radius:999px;
  font-family:'IBM Plex Mono',monospace;font-size:.68rem;font-weight:700;
  padding:.55rem;cursor:pointer;box-shadow:var(--shadow2);
}
.combi-clear-btn {
  background:rgba(255,255,255,.07);color:var(--muted);border:1px solid var(--stroke);
  border-radius:999px;font-family:'IBM Plex Mono',monospace;font-size:.65rem;
  padding:.55rem .9rem;cursor:pointer;
}

/* ── MODALS ───────────────────────────────────────── */
.modal-overlay {
  display:none;position:fixed;inset:0;background:rgba(28,35,48,.35);
  backdrop-filter:blur(8px);z-index:1000;align-items:flex-end;justify-content:center;
}
.modal-overlay.show { display:flex; }
.modal-box {
  background:linear-gradient(180deg,rgba(255,247,240,.98),rgba(244,241,255,.98));
  border:1px solid var(--stroke);border-radius:24px 24px 0 0;
  width:100%;max-width:860px;padding:1.5rem 1.2rem;
  padding-bottom:max(1.5rem,env(safe-area-inset-bottom));
  animation:slideUp .28s ease;box-shadow:0 -20px 60px rgba(12,18,30,.12);
  max-height:90vh;overflow-y:auto;
}
.modal-box h3 {
  font-family:'Bebas Neue',sans-serif;font-size:1.4rem;letter-spacing:.1em;margin-bottom:.8rem;
  background:linear-gradient(135deg,#ff9ac1,#a78bfa);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.modal-input {
  width:100%;background:rgba(255,255,255,.08);border:1px solid var(--stroke);border-radius:12px;
  color:var(--ink);font-family:'DM Sans',sans-serif;font-size:.9rem;
  padding:.6rem .9rem;margin-bottom:.6rem;outline:none;
}
.modal-input:focus { border-color:rgba(255,154,193,.5); }
.modal-actions { display:flex;gap:.5rem;margin-top:.4rem; }
.modal-btn {
  flex:1;border:none;border-radius:999px;cursor:pointer;
  font-family:'IBM Plex Mono',monospace;font-size:.68rem;font-weight:700;padding:.65rem;
}
.modal-btn.confirm {
  background:linear-gradient(135deg,rgba(255,154,193,.9),rgba(167,139,250,.9));color:#fff;
  box-shadow:var(--shadow2);
}
.modal-btn.cancel { background:rgba(255,255,255,.07);color:var(--muted);border:1px solid var(--stroke); }

/* ── SCAN RESULTATEN ──────────────────────────────── */
.scan-result-row {
  background:#0d1e24;border:1px solid rgba(255,255,255,.07);
  border-radius:14px;margin-bottom:.5rem;box-shadow:0 2px 8px rgba(15,23,42,.04);
}
.result-card { animation:fadeIn .2s ease; }
.jacks-btn {
  font-family:'IBM Plex Mono',monospace;font-size:.47rem;font-weight:700;
  padding:3px 8px;border-radius:999px;cursor:pointer;
  background:rgba(37,99,235,.1);border:1px solid rgba(37,99,235,.25);color:#1d4ed8;
  text-decoration:none;display:inline-flex;align-items:center;
}

/* ── TRIPLE LOCK ──────────────────────────────────── */
.triple-lock-card {
  background:linear-gradient(135deg,rgba(254,243,199,.7),rgba(255,237,213,.5));
  border:2px solid rgba(217,119,6,.5);border-radius:16px;padding:.9rem 1rem;
  margin-bottom:.6rem;cursor:pointer;position:relative;overflow:hidden;
  box-shadow:0 0 0 1px rgba(217,119,6,.15),0 4px 20px rgba(217,119,6,.15);
  transition:transform .15s,box-shadow .15s;
}
.triple-lock-card:active { transform:scale(.98); }
.tl-badge {
  font-family:'IBM Plex Mono',monospace;font-size:.55rem;font-weight:800;
  padding:2px 8px;border-radius:999px;letter-spacing:.04em;
}
.tl-badge.value   { background:rgba(22,163,74,.18);border:1px solid rgba(22,163,74,.45);color:#15803d; }
.tl-badge.conf    { background:rgba(37,99,235,.14);border:1px solid rgba(37,99,235,.35);color:#1d4ed8; }
.tl-badge.poisson { background:rgba(124,58,237,.14);border:1px solid rgba(124,58,237,.35);color:#6d28d9; }
.tl-badge.kelly   { background:rgba(22,163,74,.1);border:1px solid rgba(22,163,74,.3);color:#166534; }
.tl-hitrate-card {
  display:flex;align-items:center;gap:.75rem;
  background:linear-gradient(135deg,rgba(254,243,199,.7),rgba(255,237,213,.5));
  border:1.5px solid rgba(217,119,6,.4);border-radius:14px;
  padding:.75rem .9rem;margin-bottom:.75rem;box-shadow:var(--shadow2);
}
.tl-hitrate-icon  { font-size:1.5rem;flex-shrink:0; }
.tl-hitrate-label { font-family:'IBM Plex Mono',monospace;font-size:.55rem;font-weight:700;color:#92400e; }
.tl-hitrate-val   { font-family:'Bebas Neue',sans-serif;font-size:1.8rem;letter-spacing:.04em; }
.tl-hitrate-sub   { font-family:'IBM Plex Mono',monospace;font-size:.48rem;color:var(--sub); }

/* ── WALLET STRIP + BETS ──────────────────────────── */
.wallet-strip {
  display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem;
  background:#0d1e24;border:1px solid rgba(255,255,255,.09);
  border-radius:16px;padding:.7rem .8rem;margin-bottom:1rem;
  box-shadow:var(--shadow2);
}
.w-item   { text-align:center; }
.w-label  { font-family:'IBM Plex Mono',monospace;font-size:.46rem;color:var(--sub);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.15rem;font-weight:600; }
.val      { font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:.03em; }
.w-item.bal .val { color:#be185d; }

.wallet-big { text-align:center;padding:1.2rem 0 .8rem; }
.wallet-big-label { font-family:'IBM Plex Mono',monospace;font-size:.58rem;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.3rem; }
.wallet-big .amount {
  font-family:'Bebas Neue',sans-serif;font-size:3rem;letter-spacing:.04em;
  background:linear-gradient(135deg,#ff9ac1,#a78bfa,#6bb6ff);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.wallet-actions { display:flex;gap:.5rem;justify-content:center;margin-top:.7rem; }
.wallet-action-btn {
  font-family:'IBM Plex Mono',monospace;font-size:.6rem;font-weight:700;
  padding:.5rem 1rem;border-radius:12px;cursor:pointer;border:1.5px solid var(--stroke);
  background:var(--card);color:var(--ink);transition:all .15s;
}
.wallet-action-btn.danger { color:#dc2626;border-color:rgba(220,38,38,.3);background:rgba(220,38,38,.06); }
.wallet-action-btn:active { transform:scale(.97); }

.stat-mini-card {
  flex:1;background:rgba(255,255,255,.07);border:1px solid var(--stroke);
  border-radius:12px;padding:.6rem;text-align:center;
}
.stat-mini-label { font-family:'IBM Plex Mono',monospace;font-size:.46rem;color:var(--sub);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem; }
.stat-mini-val   { font-family:'Bebas Neue',sans-serif;font-size:1.1rem; }

/* Bet history rows */
.bet-row {
  display:flex;align-items:center;gap:.6rem;padding:.6rem .85rem;
  background:rgba(255,255,255,.07);border:1px solid var(--stroke);border-radius:12px;
  box-shadow:0 4px 12px rgba(12,18,30,.05);margin-bottom:.4rem;
}
.bet-info       { flex:1; }
.bet-match-name { font-size:.78rem;font-weight:600;margin-bottom:.1rem;color:var(--ink); }
.bet-meta       { font-family:'IBM Plex Mono',monospace;font-size:.52rem;color:var(--muted); }
.bet-amt        { font-family:'IBM Plex Mono',monospace;font-size:.62rem;color:var(--muted);text-align:right; }
.bet-res        { font-family:'Bebas Neue',sans-serif;font-size:.95rem;letter-spacing:.04em; }
.bet-res.win    { color:var(--green); }
.bet-res.lose   { color:var(--red); }
.bet-res.pending { color:var(--yellow); }
.bet-live-score { font-family:'IBM Plex Mono',monospace;font-size:.52rem;font-weight:800;color:#dc2626;margin-left:.4rem;display:inline-flex;align-items:center;gap:.2rem; }
.bet-live-dot   { width:5px;height:5px;border-radius:50%;background:#dc2626;animation:blink .8s infinite;flex-shrink:0; }

/* Swipe gesture */
.swipeable   { position:relative;overflow:hidden;touch-action:pan-y;display:block; }
.swipe-hint  {
  position:absolute;top:0;bottom:0;display:flex;align-items:center;
  font-family:'IBM Plex Mono',monospace;font-size:.6rem;font-weight:800;
  padding:0 1rem;pointer-events:none;opacity:0;transition:opacity .15s;border-radius:12px;z-index:1;
}
.swipe-hint.win-hint  { left:0;background:rgba(22,163,74,.9);color:#fff; }
.swipe-hint.lose-hint { right:0;background:rgba(220,38,38,.9);color:#fff; }
.swipe-inner { transition:transform .2s;position:relative;z-index:2;background:var(--card,#fff);border-radius:12px; }

/* Combi bet rows */
.combi-bet-row {
  background:rgba(255,255,255,.07);border:1px solid rgba(255,154,193,.25);
  border-radius:14px;padding:.7rem .9rem;margin-bottom:.45rem;
  box-shadow:0 4px 12px rgba(255,154,193,.1);
}
.combi-bet-header  { display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem; }
.combi-bet-label   { font-family:'IBM Plex Mono',monospace;font-size:.52rem;color:#d63384;font-weight:700;letter-spacing:.08em; }
.combi-bet-odds    { font-family:'Bebas Neue',sans-serif;font-size:1.1rem;background:linear-gradient(135deg,#ff9ac1,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.combi-bet-legs    { display:flex;flex-direction:column;gap:.2rem;margin-bottom:.4rem; }
.combi-bet-leg     { font-size:.73rem;color:var(--muted);padding:.2rem .4rem;border-left:2px solid rgba(255,154,193,.4); }
.combi-bet-leg.leg-win  { border-left-color:var(--green);color:var(--green); }
.combi-bet-leg.leg-lose { border-left-color:var(--red);color:var(--red); }
.combi-bet-footer  { display:flex;justify-content:space-between;align-items:center; }
.combi-bet-amount  { font-family:'IBM Plex Mono',monospace;font-size:.6rem;color:var(--muted); }
.combi-bet-result  { font-family:'Bebas Neue',sans-serif;font-size:.95rem;cursor:pointer; }
.combi-bet-result.win { color:var(--green); }
.combi-bet-result.lose { color:var(--red); }
.combi-bet-result.pending { color:var(--yellow); }
.combi-leg-status-btn {
  font-family:'IBM Plex Mono',monospace;font-size:.45rem;
  background:rgba(255,255,255,.07);border:1px solid var(--stroke);
  border-radius:999px;padding:2px 6px;cursor:pointer;color:var(--muted);margin-left:.3rem;
}

/* ── BACKTEST ─────────────────────────────────────── */
.bt-subtabs { display:flex;gap:.3rem;margin-bottom:.6rem; }
.bt-subtab {
  font-family:'IBM Plex Mono',monospace;font-size:.52rem;font-weight:700;
  padding:.35rem .8rem;border-radius:999px;cursor:pointer;
  background:rgba(255,255,255,.07);border:1px solid var(--stroke);color:var(--sub);
}
.bt-subtab.active { background:rgba(219,39,119,.12);border-color:rgba(219,39,119,.35);color:#be185d; }
.bt-row           { background:#0d1e24;border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:.6rem .8rem;margin-bottom:.4rem;box-shadow:0 2px 8px rgba(15,23,42,.04); }
.bt-row.bt-win    { border-left:3px solid #16a34a; }
.bt-row.bt-lose   { border-left:3px solid #dc2626; }
.bt-row.bt-pending { border-left:3px solid #d97706; }
.bt-match         { font-size:.82rem;font-weight:700;color:var(--ink);margin-bottom:.2rem; }
.bt-meta          { font-family:'IBM Plex Mono',monospace;font-size:.52rem;color:var(--sub);display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.3rem; }
.bt-footer        { display:flex;justify-content:space-between;align-items:center; }
.bt-result        { font-family:'Bebas Neue',sans-serif;font-size:.95rem;cursor:pointer; }
.bt-result.win    { color:#16a34a; }
.bt-result.lose   { color:#dc2626; }
.bt-result.pending { color:#d97706; }
.bt-empty         { text-align:center;padding:2rem 1rem;font-family:'IBM Plex Mono',monospace;font-size:.62rem;color:var(--muted);line-height:1.8; }
.bt-scoreboard    { display:flex;flex-direction:column;gap:.3rem; }
.bt-score-row     { display:grid;grid-template-columns:1fr auto 100px auto;gap:.4rem;align-items:center; }
.bt-score-comp    { font-family:'IBM Plex Mono',monospace;font-size:.55rem;font-weight:700;color:var(--ink); }
.bt-score-fraction { font-family:monospace;font-size:.52rem;color:var(--sub);white-space:nowrap; }
.bt-score-bar-wrap { background:rgba(0,0,0,.08);border-radius:999px;height:6px;overflow:hidden; }
.bt-score-bar     { height:100%;border-radius:999px;transition:width .3s; }
.bt-score-pct     { font-family:'IBM Plex Mono',monospace;font-size:.52rem;font-weight:700;text-align:right;white-space:nowrap; }

/* ── TRACKER ──────────────────────────────────────── */
.tracker-filter-row { display:flex;gap:.3rem;margin-bottom:.6rem;overflow-x:auto;padding-bottom:.2rem; }
.tracker-filter {
  font-family:'IBM Plex Mono',monospace;font-size:.52rem;font-weight:700;
  padding:.32rem .7rem;border-radius:999px;border:1px solid var(--stroke);
  background:rgba(255,255,255,.07);color:rgba(255,255,255,.7);cursor:pointer;white-space:nowrap;flex-shrink:0;
}
.tracker-filter.active { background:rgba(219,39,119,.1);border-color:rgba(219,39,119,.35);color:#be185d; }
.bt-filter-btn {
  font-family:'IBM Plex Mono',monospace;font-size:.5rem;font-weight:700;
  padding:.28rem .65rem;border-radius:999px;cursor:pointer;white-space:nowrap;flex-shrink:0;
  background:transparent;color:var(--sub);border:1px solid var(--stroke);
}
.bt-filter-btn.active { background:rgba(22,163,74,.1);border-color:rgba(22,163,74,.35);color:#15803d; }
.tracker-row {
  background:#0d1e24;border:1px solid rgba(255,255,255,.08);
  border-radius:14px;padding:.75rem .9rem;margin-bottom:.5rem;box-shadow:0 2px 8px rgba(15,23,42,.05);
}
.tracker-row-top    { display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.4rem; }
.tracker-row-bottom { display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.3rem; }
.tracker-match { font-size:.9rem;font-weight:700;color:#0f172a;margin-bottom:.2rem; }
.tracker-meta  { font-family:'IBM Plex Mono',monospace;font-size:.52rem;color:#475569;display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.4rem; }
.tracker-result        { font-family:'Bebas Neue',sans-serif;font-size:1rem;cursor:pointer; }
.tracker-result.win    { color:#16a34a; }
.tracker-result.lose   { color:#dc2626; }
.tracker-result.pending { color:#d97706; }
.tracker-src-badge { font-family:'IBM Plex Mono',monospace;font-size:.5rem;font-weight:700;padding:2px 8px;border-radius:4px; }
.tracker-legs { display:flex;flex-direction:column;gap:.2rem;margin-top:.25rem; }
.tracker-leg-row { display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:.5rem;color:var(--sub); }
.tracker-leg-status.win  { color:#16a34a; }
.tracker-leg-status.lose { color:#dc2626; }
.src-analyse { background:rgba(37,99,235,.1);color:#2563eb;border:1px solid rgba(37,99,235,.2); }
.src-combi   { background:rgba(219,39,119,.1);color:#be185d;border:1px solid rgba(219,39,119,.2); }
.src-value   { background:rgba(22,163,74,.1);color:#15803d;border:1px solid rgba(22,163,74,.2); }
.src-eigen   { background:rgba(15,23,42,.06);color:#475569;border:1px solid rgba(15,23,42,.12); }

/* Smart stats */
.smart-stats-card { background:rgba(255,255,255,.07);border:1px solid var(--stroke);border-radius:12px;padding:.65rem .8rem;margin-bottom:.6rem; }
.smart-stats-title { font-family:'IBM Plex Mono',monospace;font-size:.55rem;font-weight:700;color:var(--sub);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.4rem; }
.smart-stat-row { display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:.55rem;color:var(--ink);padding:.2rem 0;border-bottom:1px solid var(--stroke); }
.smart-stat-row:last-child { border:none; }

/* ── PICKS TRACKER ────────────────────────────────── */
.pt-header { display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;margin-bottom:.75rem; }
.pt-stat   { background:rgba(255,255,255,.07);border:1px solid var(--stroke);border-radius:12px;padding:.5rem;text-align:center; }
.pt-stat-val { font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:.03em; }
.pt-stat-lbl { font-family:'IBM Plex Mono',monospace;font-size:.44rem;color:var(--sub);text-transform:uppercase;letter-spacing:.05em; }
.pt-card {
  background:#0d1e24;border:1px solid rgba(255,255,255,.07);
  border-radius:12px;padding:.6rem .75rem;margin-bottom:.4rem;
  box-shadow:0 2px 8px rgba(15,23,42,.04);
}
.pt-card.pt-win     { border-left:3px solid #16a34a; }
.pt-card.pt-lose    { border-left:3px solid #dc2626; }
.pt-card.pt-pending { border-left:3px solid #d97706; }
.pt-card-top    { display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.3rem; }
.pt-card-bottom { display:flex;justify-content:space-between;align-items:center; }
.pt-match  { font-size:.82rem;font-weight:700;color:var(--ink); }
.pt-meta   { font-family:'IBM Plex Mono',monospace;font-size:.52rem;color:var(--sub); }
.pt-status { font-family:'Bebas Neue',sans-serif;font-size:.9rem;cursor:pointer; }
.pt-empty  { text-align:center;padding:2.5rem 1rem;font-family:'IBM Plex Mono',monospace;font-size:.6rem;color:var(--sub);line-height:1.8; }

/* ── INSTELLINGEN ─────────────────────────────────── */
.settings-section {
  background:var(--card);border:1px solid var(--stroke);border-radius:16px;
  padding:.9rem 1rem;margin-bottom:.8rem;box-shadow:var(--shadow2);
}
.settings-section-title {
  font-family:'IBM Plex Mono',monospace;font-size:.6rem;font-weight:800;color:var(--sub);
  letter-spacing:.1em;text-transform:uppercase;margin-bottom:.7rem;
}
.settings-field { margin-bottom:.6rem; }
.settings-label { display:block;font-family:'IBM Plex Mono',monospace;font-size:.52rem;font-weight:700;color:var(--sub);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px; }
.settings-input {
  width:100%;background:var(--bg1);border:1px solid var(--stroke);border-radius:10px;
  color:var(--ink);font-family:'DM Sans',sans-serif;font-size:.9rem;
  padding:.55rem .8rem;outline:none;
}
.settings-input:focus { border-color:rgba(219,39,119,.4); }
.settings-row {
  display:flex;align-items:center;justify-content:space-between;gap:.8rem;
  padding:.5rem 0;border-bottom:1px solid var(--stroke);
}
.settings-row:last-child { border:none;padding-bottom:0; }
.key-vis-btn {
  background:rgba(255,255,255,.07);border:1px solid var(--stroke);border-radius:8px;
  padding:.5rem .65rem;cursor:pointer;font-size:.85rem;flex-shrink:0;
}
.toggle-btn {
  font-family:'IBM Plex Mono',monospace;font-size:.52rem;font-weight:700;
  padding:.4rem .9rem;border-radius:999px;cursor:pointer;border:1.5px solid;
  transition:all .15s;
}
.theme-btn {
  font-family:'IBM Plex Mono',monospace;font-size:.55rem;font-weight:700;
  padding:.4rem .8rem;border-radius:10px;cursor:pointer;border:1.5px solid var(--stroke);
  background:var(--card);color:var(--ink);transition:all .15s;
}
.theme-btn:active { transform:scale(.97); }
.save-settings-btn {
  width:100%;
  background:linear-gradient(135deg,rgba(255,154,193,.85),rgba(167,139,250,.85));
  color:#fff;border:none;border-radius:999px;
  font-family:'IBM Plex Mono',monospace;font-size:.72rem;font-weight:700;
  padding:.8rem;cursor:pointer;margin:.5rem 0;box-shadow:var(--shadow2);
}
.tr-combi-leg { background:rgba(0,0,0,.03);border:1px solid var(--stroke);border-radius:10px;padding:.6rem;margin-bottom:.4rem; }
.tr-combi-leg-num { font-family:'IBM Plex Mono',monospace;font-size:.5rem;font-weight:700;color:var(--sub);letter-spacing:.06em; }
.type-btn {
  flex:1;font-family:'IBM Plex Mono',monospace;font-size:.55rem;font-weight:700;
  padding:.5rem;border-radius:10px;cursor:pointer;border:1.5px solid var(--stroke);
  background:transparent;color:var(--sub);transition:all .15s;
}
.src-btn {
  font-family:'IBM Plex Mono',monospace;font-size:.5rem;font-weight:700;
  padding:.35rem .7rem;border-radius:999px;cursor:pointer;border:1.5px solid var(--stroke);
  background:transparent;color:var(--sub);opacity:.45;
}

/* ── WALLET SUB-TABS ──────────────────────────────── */
.wallet-subtabs { display:flex;gap:.25rem;margin-bottom:1rem;overflow-x:auto;padding-bottom:.2rem; }
.wsub-btn {
  font-family:'IBM Plex Mono',monospace;font-size:.52rem;font-weight:700;
  padding:.4rem .8rem;border-radius:12px;cursor:pointer;flex-shrink:0;
  background:transparent;color:var(--sub);border:1px solid var(--stroke);
  transition:all .15s;
}

/* ── KNOPPEN ALGEMEEN ─────────────────────────────── */
.small-action-btn {
  font-family:'IBM Plex Mono',monospace;font-size:.55rem;font-weight:700;
  padding:.45rem .9rem;border-radius:10px;cursor:pointer;border:1.5px solid var(--stroke);
  background:var(--card);color:var(--ink);transition:all .15s;
}
.small-action-btn:active { transform:scale(.97); }
.small-action-btn.danger { color:#dc2626;border-color:rgba(220,38,38,.3);background:rgba(220,38,38,.06); }
.check-btn {
  font-family:monospace;font-size:.48rem;font-weight:700;
  background:rgba(37,99,235,.1);border:1px solid rgba(37,99,235,.3);color:#2563eb;
  border-radius:6px;padding:2px 7px;cursor:pointer;display:block;width:100%;
}
.del-btn { background:none;border:none;color:#94a3b8;font-size:.8rem;cursor:pointer;padding:0; }
.add-tracker-btn {
  font-family:'IBM Plex Mono',monospace;font-size:.55rem;font-weight:700;
  padding:.5rem 1rem;border-radius:12px;cursor:pointer;
  background:linear-gradient(135deg,rgba(219,39,119,.9),rgba(124,58,237,.8));
  color:#fff;border:none;box-shadow:var(--shadow2);
}
.export-btn {
  width:100%;font-family:'IBM Plex Mono',monospace;font-size:.58rem;font-weight:700;
  padding:.55rem;border-radius:10px;cursor:pointer;margin:.4rem 0;
  background:rgba(15,23,42,.06);border:1px solid var(--stroke);color:var(--sub);
}
.wallet-chart-wrap {
  background:#0d1e24;border:1px solid rgba(255,255,255,.08);
  border-radius:14px;padding:.8rem .9rem;margin-bottom:.75rem;
}
.chart-view-btn,.chart-src-btn {
  font-family:'IBM Plex Mono',monospace;font-size:.48rem;font-weight:700;
  padding:2px 9px;border-radius:999px;cursor:pointer;
  background:transparent;color:var(--sub);border:1px solid var(--stroke);
}
.chart-view-btn.active,.chart-src-btn.active { background:rgba(219,39,119,.1);border-color:rgba(219,39,119,.4);color:#be185d; }

/* ── EMPTY STATE ──────────────────────────────────── */
.empty-state {
  text-align:center;padding:2rem;font-family:'IBM Plex Mono',monospace;
  font-size:.65rem;color:var(--muted);letter-spacing:.08em;
}

/* ── SKELETON LOADING ─────────────────────────────── */
.skeleton-card {
  background:rgba(255,255,255,.07);border:1px solid var(--stroke);border-radius:16px;
  padding:.9rem;animation:fadeIn .4s ease;
}
.skeleton-line {
  background:linear-gradient(90deg,rgba(15,23,42,.06) 25%,rgba(15,23,42,.1) 50%,rgba(15,23,42,.06) 75%);
  background-size:200%;border-radius:8px;animation:shimmer 1.5s infinite;
}
.skeleton-top    { height:12px;margin-bottom:.7rem; }
.skeleton-body   { display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem; }
.skeleton-team   { height:20px; }
.skeleton-vs     { width:24px;height:20px;flex-shrink:0; }
.skeleton-bottom { display:flex;gap:.3rem; }
.skeleton-odds   { flex:1;height:32px; }

/* ── TOAST ────────────────────────────────────────── */
#toastMsg {
  position:fixed;bottom:80px;left:50%;transform:translateX(-50%);
  background:rgba(15,23,42,.9);color:#fff;font-family:'IBM Plex Mono',monospace;
  font-size:.62rem;padding:.5rem 1.2rem;border-radius:999px;z-index:9999;
  pointer-events:none;transition:opacity .3s;
}

/* ── Probability bar ──────────────────────────────── */
.ai-probs {
  display:flex;height:26px;margin:.0rem .9rem .5rem;
  border-radius:8px;overflow:hidden;gap:2px;
}
.prob-seg {
  display:flex;align-items:center;justify-content:center;
  min-width:28px;border-radius:6px;transition:flex .3s;
}
.prob-home { background:rgba(22,163,74,.18);border:1px solid rgba(22,163,74,.3); }
.prob-draw { background:rgba(124,58,237,.12);border:1px solid rgba(124,58,237,.25); }
.prob-away { background:rgba(219,39,119,.12);border:1px solid rgba(219,39,119,.25); }
.prob-label {
  font-family:'IBM Plex Mono',monospace;font-size:.46rem;font-weight:800;
  white-space:nowrap;color:var(--ink);
}
.prob-home .prob-label { color:#15803d; }
.prob-draw .prob-label { color:#6d28d9; }
.prob-away .prob-label { color:#be185d; }
