:root{
  --bg:#0b1220; --panel:#121b2e; --panel2:#18233b; --line:rgba(255,255,255,.09);
  --text:#eef2f9; --muted:#9fb0c9; --dim:#6b7a96;
  --green:#22c55e; --green2:#16a34a; --gold:#fbbf24; --blue:#3b82f6; --red:#ef4444;
  --r:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:
  radial-gradient(circle at 12% -8%,rgba(34,197,94,.18),transparent 40%),
  radial-gradient(circle at 88% -5%,rgba(59,130,246,.18),transparent 40%),
  radial-gradient(circle at 50% 118%,rgba(168,85,247,.16),transparent 45%),
  radial-gradient(circle at 102% 55%,rgba(251,191,36,.10),transparent 38%),
  radial-gradient(circle at -2% 60%,rgba(239,68,68,.10),transparent 38%),var(--bg);
  background-attachment:fixed;color:var(--text);min-height:100vh;line-height:1.5}
a{color:var(--blue);text-decoration:none}
.wrap{max-width:880px;margin:0 auto;padding:0 14px 80px}

/* header */
header{position:sticky;top:0;z-index:20;background:rgba(11,18,32,.85);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
header::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:3px;
  background:linear-gradient(90deg,#22c55e,#3b82f6,#a855f7,#fbbf24,#ef4444,#22c55e);background-size:200% 100%}
.logo .ball{margin-right:6px;filter:drop-shadow(0 0 6px rgba(251,191,36,.5))}
.bar{max-width:880px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:12px 14px}
.logo{font-weight:800;font-size:18px;letter-spacing:-.02em}
.logo .ball{margin-right:6px}
.spacer{flex:1}
.who{font-size:13px;color:var(--muted)}
.tabs{display:flex;gap:6px;max-width:880px;margin:0 auto;padding:0 14px 10px;overflow:auto}
.tab{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--panel);
  color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.tab.active{background:var(--green);border-color:var(--green);color:#06210f}

/* generic */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:14px 0}
h2{font-size:20px;margin-bottom:4px;letter-spacing:-.02em}
.sub{color:var(--muted);font-size:13px}
.btn{background:var(--green);color:#06210f;border:none;border-radius:10px;padding:10px 16px;
  font-weight:700;font-size:14px;cursor:pointer}
.btn:disabled{opacity:.5;cursor:default}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}
.btn.sm{padding:6px 12px;font-size:13px}
input,select{background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--text);
  padding:10px 12px;font-size:15px;font-family:inherit;width:100%}
input:focus,select:focus{outline:none;border-color:var(--green)}
label{font-size:12px;color:var(--muted);display:block;margin:0 0 4px 2px}
.row{display:flex;gap:10px;align-items:center}
.err{color:var(--red);font-size:13px;margin-top:8px}
.muted{color:var(--muted)} .dim{color:var(--dim)} .gold{color:var(--gold)}

/* login */
.login{max-width:360px;margin:8vh auto}
.login .field{margin-bottom:12px}
.linkbtn{background:none;border:none;color:var(--blue);font-size:13px;cursor:pointer;padding:0}

/* filters */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.filters select{width:auto;min-width:120px}

/* day group */
.day{margin:18px 0 8px;font-size:13px;font-weight:700;color:var(--gold);
  text-transform:uppercase;letter-spacing:.06em}

/* match */
.match{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:8px 0}
.match .top{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--dim);margin-bottom:8px}
.gbadge{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:1px 7px;font-weight:700;color:var(--muted)}
.teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
.team{display:flex;align-items:center;gap:8px;font-weight:600}
.team.away{justify-content:flex-end;text-align:right}
.flag{height:17px;width:auto;border-radius:2px;vertical-align:middle;box-shadow:0 0 0 1px rgba(0,0,0,.3)}
.flag-sm{height:13px;width:auto;border-radius:2px;vertical-align:middle;box-shadow:0 0 0 1px rgba(0,0,0,.3);margin-right:3px}
.score-in{width:46px;text-align:center;padding:8px 4px;font-weight:700;font-size:16px}
.vs{color:var(--dim);font-size:12px;font-weight:700}
.mid{display:flex;align-items:center;gap:6px;justify-content:center}
.result{font-size:18px;font-weight:800}
.actions{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.pill{font-size:12px;font-weight:700;border-radius:999px;padding:3px 10px}
.pill.locked{background:rgba(239,68,68,.14);color:#fca5a5;border:1px solid rgba(239,68,68,.3)}
.pill.saved{background:rgba(34,197,94,.14);color:#86efac;border:1px solid rgba(34,197,94,.3)}
.pts{font-weight:800;border-radius:8px;padding:2px 9px;font-size:13px}
.pts.p3{background:rgba(251,191,36,.18);color:var(--gold);border:1px solid rgba(251,191,36,.35)}
.pts.p1{background:rgba(59,130,246,.18);color:#93c5fd;border:1px solid rgba(59,130,246,.35)}
.pts.p0{background:rgba(107,122,150,.18);color:var(--dim);border:1px solid var(--line)}

/* table */
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line)}
th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--dim)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tr.me td{background:rgba(34,197,94,.08)}
.rank{font-weight:800;color:var(--gold);width:28px}

/* modal */
.modal{position:fixed;inset:0;background:rgba(3,7,15,.7);display:flex;align-items:center;
  justify-content:center;padding:16px;z-index:40}
.modal .box{background:var(--panel);border:1px solid var(--line);border-radius:16px;
  max-width:460px;width:100%;max-height:85vh;overflow:auto;padding:18px}
.close{float:right;background:none;border:none;color:var(--muted);font-size:22px;cursor:pointer}

/* standings */
.standings th,.standings td{padding:6px 6px;font-size:13px}
.qualify{border-left:3px solid var(--green)}

/* prize banner */
.prize{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  margin:14px 0;padding:12px 16px;border-radius:var(--r);
  background:linear-gradient(135deg,rgba(251,191,36,.16),rgba(251,191,36,.04));
  border:1px solid rgba(251,191,36,.4)}
.prize.ko{background:linear-gradient(135deg,rgba(59,130,246,.16),rgba(59,130,246,.04));
  border-color:rgba(59,130,246,.4)}
.prize-l{font-size:15px}
.prize-amt{font-weight:800;color:var(--gold);margin-left:8px;font-size:17px}
.prize.ko .prize-amt{color:#93c5fd}
.prize-r{font-size:13px;color:var(--muted);font-weight:600}
.match.tbd{opacity:.7}

/* legends tribute backdrop */
.legends{position:fixed;top:0;bottom:0;width:200px;display:flex;flex-direction:column;
  gap:5px;z-index:0;pointer-events:none;opacity:.7}
.legends-left{left:0;-webkit-mask-image:linear-gradient(90deg,#000 52%,transparent);mask-image:linear-gradient(90deg,#000 52%,transparent)}
.legends-right{right:0;-webkit-mask-image:linear-gradient(270deg,#000 52%,transparent);mask-image:linear-gradient(270deg,#000 52%,transparent)}
.legend{flex:var(--g,1) 1 0;min-height:0;width:100%;display:flex}
.poster{position:relative;width:100%;height:100%;overflow:hidden;border-radius:13px;
  border:1.5px solid color-mix(in srgb,var(--c) 70%,transparent);
  box-shadow:0 10px 30px rgba(0,0,0,.5),0 0 16px color-mix(in srgb,var(--c) 45%,transparent)}
.poster img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block;
  filter:saturate(1.08) contrast(1.04)}
.poster::after{content:'';position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(11,18,32,.45),transparent 22%,transparent 62%,rgba(11,18,32,.92)),
  linear-gradient(0deg,color-mix(in srgb,var(--c) 22%,transparent),transparent 55%)}
.poster .nm{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 8px 8px;font-size:11.5px;
  font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;text-align:center}
header,.wrap{position:relative;z-index:1}
@media (max-width:1320px){.legends{display:none}}

/* knockout bracket tree */
.bracket{display:flex;overflow:auto;max-height:76vh;padding:6px 2px 16px;margin-top:8px}
.round{display:flex;flex-direction:column;min-width:160px;padding:0 8px}
.round-head{text-align:center;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  color:var(--gold);padding:4px 0 8px}
.round-body{flex:1;display:flex;flex-direction:column;justify-content:space-around}
.tie{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:8px;margin:5px 0;cursor:pointer}
.tie .side{display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:11.5px}
.tie .side+.side{border-top:1px solid var(--line)}
.tie .tn{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.tie .ts{font-weight:800;font-variant-numeric:tabular-nums;color:var(--dim);min-width:12px;text-align:right}
.tie .side.win{background:rgba(34,197,94,.13)}
.tie .side.win .tn{font-weight:800;color:#fff}
.tie .side.win .ts{color:var(--green)}
.round:not(:last-child) .tie::after{content:'';position:absolute;right:-8px;top:50%;width:8px;height:2px;background:var(--border-strong)}
.round:not(:first-child) .tie::before{content:'';position:absolute;left:-8px;top:50%;width:8px;height:2px;background:var(--border-strong)}
.thirdplace{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px;flex-wrap:wrap;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:13px}
.thirdplace .tp-cap{font-weight:700;color:var(--muted)}
.thirdplace .flag-sm{height:14px}

/* twin tables (predicted vs real) */
.twin{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}
.twin-cap{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
@media (max-width:600px){.twin{grid-template-columns:1fr;gap:18px}}
