:root{--bg:#0b1020;--card:#161d33;--ink:#eef2ff;--muted:#93a0c2;--accent:#00c389;--accent2:#ffd24a;--danger:#ff6b6b;--line:#26304f}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}.container{max-width:880px;margin:0 auto;padding:16px}h1,h2,h3{line-height:1.2}.muted{color:var(--muted)}.error{color:var(--danger)}.fine{font-size:.85rem}.nav{background:var(--card);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.nav-links a{margin-right:14px;font-weight:600}.nav-links a.active{color:var(--accent2)}.brand{align-items:center;gap:8px;margin-right:18px;display:flex}.brand-logo{border-radius:7px;width:28px;height:28px}.brand-name{color:var(--ink);letter-spacing:.2px;white-space:nowrap;font-weight:700}.brand-name b{color:var(--accent2)}@media (width<=560px){.brand-name{display:none}}.landing-logo{border-radius:22px;width:96px;height:96px;box-shadow:0 8px 30px #00c38940}.accent{color:var(--accent2)}.nav-user{align-items:center;gap:10px;display:flex}button{background:var(--accent);color:#042018;cursor:pointer;border:0;border-radius:8px;padding:8px 14px;font-weight:700}button:disabled{opacity:.5;cursor:not-allowed}input{color:var(--ink);border:1px solid var(--line);background:#0d1428;border-radius:8px;padding:8px 10px;font-size:1rem}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:12px 0;padding:16px}.row{gap:8px;display:flex}.row input{flex:1}.landing{text-align:center;padding-top:24px}.login-form{text-align:left;gap:12px;max-width:360px;margin:16px auto;display:grid}.login-form label{gap:4px;font-size:.9rem;display:grid}.stage-header{border-bottom:1px solid var(--line);color:var(--accent2);padding-bottom:4px}.match-grid{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=640px){.match-grid{grid-template-columns:1fr 1fr}}.match-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}.match-head{justify-content:space-between;align-items:center;display:flex}.stage{color:var(--muted);font-size:.8rem}.match-teams{align-items:center;gap:8px;margin:8px 0;font-weight:700;display:flex}.match-teams .vs{color:var(--muted);font-weight:400}.kickoff{color:var(--muted);font-size:.85rem}.prediction-edit{align-items:center;gap:6px;margin-top:8px;display:flex}.prediction-edit input{text-align:center;width:56px}.prediction-readonly{margin-top:8px}.points{color:var(--accent2);margin-left:8px;font-weight:700}.result{margin-top:6px}.head-right{align-items:center;gap:6px;display:flex}.joker-badge{color:#2a1a00;background:var(--accent2);border-radius:999px;padding:1px 6px;font-size:.7rem;font-weight:800}.joker-btn{color:var(--accent2);border:1px solid var(--accent2);background:0 0;border-radius:8px;padding:6px 10px;font-weight:700}.joker-btn.on{background:var(--accent2);color:#2a1a00}.joker-btn:disabled{opacity:.4}.badge{border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700}.badge.open{color:#6fd3ff;background:#14324a}.badge.locked{color:var(--accent2);background:#3a2a14}.badge.played{color:var(--accent);background:#14321f}.badge.live{color:var(--danger);background:#3a1414;animation:1.4s infinite pulse}.result.live{color:var(--danger);font-weight:700}.live-dot{animation:1.4s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}select{color:var(--ink);border:1px solid var(--line);background:#0d1428;border-radius:8px;max-width:100%;padding:8px 10px;font-size:1rem}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:8px}tr.me{background:#12233b}.bracket-list{gap:8px;display:grid}.bracket-row{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.bracket-teams{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pick{color:var(--ink);border:1px solid var(--line);background:0 0;border-radius:8px;flex:1;min-width:90px;padding:6px 12px;font-weight:600}.pick.on{border-color:var(--accent);color:var(--accent);background:#12233b}.pick.winner{border-color:var(--accent2)}.pick:disabled{opacity:.7;cursor:default}.gb-row{margin:4px 0}.gb-results{gap:6px;max-height:360px;margin:8px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.gb-results .pick{text-align:left;width:100%}.points{color:var(--accent);font-weight:700}.group-list{padding:0;list-style:none}.group-list li{border-bottom:1px solid var(--line);padding:8px 0}.danger-zone{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}button.danger{background:var(--danger);color:#2a0a0a}.settings .card{gap:12px;max-width:360px;display:grid}.settings label{gap:4px;font-size:.9rem;display:grid}.success{color:var(--accent)}
