:root{
  --bg:#0b1437; --bg2:#121c4a; --card:#19245c; --line:#2a3a7a;
  --txt:#eef1ff; --muted:#9aa6d8; --accent:#36d399; --accent2:#fbbf24;
  --err:#f87272; --lock:#5a6699;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;
  background:linear-gradient(160deg,var(--bg),var(--bg2));color:var(--txt);min-height:100vh}
.hidden{display:none!important}
.muted{color:var(--muted)} .small{font-size:.8rem}
.err{color:var(--err);min-height:1.2em} .ok{color:var(--accent);min-height:1.2em}
.hint{color:var(--muted);font-weight:400;font-size:.8em}

/* login */
#login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}
.login-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.8rem;width:100%;max-width:360px}
.login-card h1{margin:.2rem 0 .4rem;font-size:1.5rem;line-height:1.2}
.login-card h1 span{color:var(--accent)}
label{display:block;margin:.9rem 0 .3rem;font-size:.85rem;color:var(--muted)}
select,input,button{width:100%;padding:.8rem;border-radius:12px;border:1px solid var(--line);
  background:var(--bg2);color:var(--txt);font-size:1rem}
input#login-pin{letter-spacing:.5em;text-align:center}
button{background:var(--accent);color:#03261a;font-weight:700;border:none;margin-top:1rem;cursor:pointer}
button:active{transform:translateY(1px)}

/* app shell */
.topbar{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1rem;
  background:rgba(0,0,0,.2);position:sticky;top:0;backdrop-filter:blur(6px);z-index:5}
.brand{font-weight:800} .who{font-size:.85rem;color:var(--muted)} .who a{color:var(--accent2)}
.tabs{display:flex;gap:.3rem;padding:.5rem;position:sticky;top:52px;background:var(--bg);z-index:4;overflow-x:auto}
.tab{width:auto;flex:1;white-space:nowrap;padding:.6rem .5rem;margin:0;background:var(--card);
  color:var(--muted);font-weight:600;font-size:.85rem;border-radius:10px}
.tab.active{background:var(--accent);color:#03261a}
main{padding:.5rem 1rem 4rem;max-width:640px;margin:0 auto}
h2{font-size:1.1rem;margin:1rem 0 .6rem}

/* fixture card */
.list{display:flex;flex-direction:column;gap:.6rem}
.fx{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.8rem}
.fx .meta{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);margin-bottom:.5rem}
.fx .row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.4rem}
.fx .team{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.95rem}
.fx .team.away{justify-content:flex-end;text-align:right}
.fx .flag{font-size:1.3rem}
.fx .score{display:flex;align-items:center;gap:.3rem;justify-content:center}
.fx .score input{width:3.6rem;text-align:center;padding:.5rem .3rem;font-size:1.25rem;font-weight:700}
.fx .score .dash{color:var(--muted)}
.fx .foot{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;font-size:.78rem}
.fx button.save{width:auto;padding:.45rem .9rem;margin:0;font-size:.85rem}
.badge{font-size:.68rem;padding:.18rem .5rem;border-radius:999px;font-weight:700}
.badge.live{background:#7f1d1d;color:#fecaca} .badge.final{background:#1e3a8a;color:#bfdbfe}
.badge.locked{background:var(--lock);color:#dfe4ff}
.badge.open{background:#064e3b;color:#a7f3d0}
.result{font-weight:700;color:var(--accent2)}
.pts{font-weight:700}.pts.p3{color:var(--accent)}.pts.p1{color:var(--accent2)}.pts.p0{color:var(--muted)}

/* board */
.banner{background:var(--card);border:1px solid var(--accent2);border-radius:12px;padding:.7rem;margin-bottom:.6rem;color:var(--accent2);font-weight:700}
table.board{width:100%;border-collapse:collapse;background:var(--card);border-radius:12px;overflow:hidden}
.board th,.board td{padding:.6rem .5rem;text-align:left;border-bottom:1px solid var(--line);font-size:.9rem}
.board th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
.board td:last-child,.board th:last-child{text-align:right;font-weight:800}
.board tr.me{background:rgba(54,211,153,.12)}
.board .rank{color:var(--muted);width:1.5rem}

.statusbar{position:fixed;bottom:0;left:0;right:0;padding:.35rem .8rem;font-size:.7rem;color:var(--muted);
  background:rgba(0,0,0,.35);text-align:center}

/* groups */
.groups{display:flex;flex-direction:column;gap:.8rem}
.gcard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.8rem}
.ghead{font-weight:800;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}
table.gtable{width:100%;border-collapse:collapse;margin-bottom:.6rem;font-size:.8rem}
.gtable th,.gtable td{padding:.3rem .35rem;text-align:left;border-bottom:1px solid var(--line)}
.gtable th{color:var(--muted);font-size:.68rem;text-transform:uppercase}
.gtable td.pts-cell,.gtable th:last-child{text-align:right;font-weight:800}
.pred .predhead{margin:.2rem 0 .4rem}
.prow{display:flex;align-items:center;gap:.5rem;padding:.25rem 0}
.prow .tname{flex:1;font-weight:600;font-size:.9rem}
.prow .flag{font-size:1.2rem}
.prow .posel{width:3.4rem;padding:.4rem;font-size:.95rem;text-align:center}
.pred .foot{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;font-size:.78rem}
.pred button.gsave{width:auto;padding:.45rem .9rem;margin:0;font-size:.85rem}

/* bracket pickers */
.picker{display:flex;flex-wrap:wrap;gap:.4rem;margin:.2rem 0 .5rem}
.chip{display:inline-flex;align-items:center;gap:.3rem;background:var(--bg2);border:1px solid var(--line);
  border-radius:999px;padding:.35rem .7rem;font-size:.82rem;cursor:pointer;width:auto;color:var(--txt)}
.chip input{width:auto;margin:0}
.chip.on{background:rgba(54,211,153,.18);border-color:var(--accent);color:var(--accent)}
#semi-save,#final-save{margin-top:.2rem}
