:root{--bg: #0f1020;--bg-soft: #1a1c34;--panel: #20233f;--panel-2: #2a2e52;--line: #343a66;--text: #eef0ff;--muted: #9aa0c8;--accent: #ffb347;--accent-2: #6c5ce7;--win: #2ecc71;--lose: #ff6b6b;--gold: #ffd700;--silver: #c0c4d4;--bronze: #cd7f32;--radius: 14px;--shadow: 0 8px 30px rgba(0, 0, 0, .35);color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(1200px 600px at 50% -10%,#2a2150 0%,var(--bg) 60%);color:var(--text);min-height:100vh}button{font:inherit;cursor:pointer;border:none;border-radius:10px;padding:10px 16px;background:var(--panel-2);color:var(--text);transition:transform .05s ease,filter .15s ease,background .15s ease}button:hover:not(:disabled){filter:brightness(1.12)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:linear-gradient(135deg,var(--accent),#ff8c42);color:#2a1700;font-weight:700}button.accent{background:linear-gradient(135deg,var(--accent-2),#8e7bff);font-weight:600}button.ghost{background:transparent;border:1px solid var(--line)}button.danger{background:transparent;border:1px solid var(--lose);color:var(--lose);padding:6px 10px}button.small{padding:6px 10px;font-size:.85rem}input,select{font:inherit;background:var(--bg-soft);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none}input:focus,select:focus{border-color:var(--accent-2)}.app{max-width:1100px;margin:0 auto;padding:24px 20px 80px}.topbar{display:flex;align-items:center;gap:14px;margin-bottom:22px}.topbar h1{font-size:1.4rem;margin:0;letter-spacing:.3px}.topbar .spacer{flex:1}.crumb{color:var(--muted);font-size:.9rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grid{display:grid;gap:16px}.muted{color:var(--muted)}.section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);margin:0 0 4px}.home-actions{display:grid;gap:12px;margin-top:8px}.recent-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft)}.recent-item .meta{flex:1}.badge{font-size:.72rem;padding:3px 8px;border-radius:999px;background:var(--panel-2);color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.snack-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft)}.snack-avatar{width:40px;height:40px;border-radius:10px;object-fit:cover;background:var(--panel-2);display:grid;place-items:center;font-size:1.3rem;flex-shrink:0;overflow:hidden}.snack-name{flex:1;font-weight:600}table.standings{width:100%;border-collapse:collapse;font-size:.92rem}table.standings th,table.standings td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}table.standings th{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase}table.standings td.num,table.standings th.num{text-align:center;width:44px}tr.qualifies td{background:#2ecc7114}.pos{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--panel-2);font-size:.8rem}.match-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft)}.match-side{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.match-side.right{justify-content:flex-end;text-align:right}.match-side .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.winner{color:var(--win);font-weight:700}.loser{color:var(--muted)}.vs{color:var(--muted);font-size:.8rem;padding:0 4px}.match-actions{display:flex;gap:6px}.done-pill{font-size:.74rem;color:var(--win);border:1px solid rgba(46,204,113,.4);border-radius:999px;padding:3px 10px}.groups-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.bracket{display:flex;gap:28px;overflow-x:auto;padding-bottom:12px}.bracket-round{display:flex;flex-direction:column;justify-content:space-around;gap:16px;min-width:210px}.bracket-round h3{font-size:.78rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:0 0 4px;text-align:center}.bracket-match{border:1px solid var(--line);border-radius:10px;background:var(--bg-soft);overflow:hidden}.bracket-slot{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;border-bottom:1px solid var(--line)}.bracket-slot:last-child{border-bottom:none}.bracket-slot.empty{color:var(--muted);cursor:default;font-style:italic}.bracket-slot.win{background:#2ecc711f;font-weight:700}.bracket-slot .mini{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:var(--panel-2);font-size:.9rem;flex-shrink:0}.bracket-slot .nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.podium{display:flex;justify-content:center;align-items:flex-end;gap:14px;margin:20px 0 28px}.podium-col{display:flex;flex-direction:column;align-items:center;gap:8px}.podium-block{width:130px;border-radius:12px 12px 0 0;display:grid;place-items:center;font-weight:800;font-size:1.4rem;color:#1a1500}.podium-block.first{height:150px;background:linear-gradient(180deg,var(--gold),#d4a900)}.podium-block.second{height:110px;background:linear-gradient(180deg,var(--silver),#8a8fa6)}.podium-block.third{height:80px;background:linear-gradient(180deg,var(--bronze),#9c5e26)}.podium-name{font-weight:700}.medal{font-size:1.6rem}.rank-list{display:flex;flex-direction:column;gap:6px}.rank-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-soft)}.rank-item .rk{width:28px;text-align:center;font-weight:700;color:var(--muted)}.rank-item.top1{border-color:var(--gold)}.rank-item.top2{border-color:var(--silver)}.rank-item.top3{border-color:var(--bronze)}@keyframes popIn{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.pop{animation:popIn .18s ease}@keyframes riseUp{0%{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}.rise{animation:riseUp .35s ease both}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.toolbar .spacer{flex:1}.progress-pill{font-size:.82rem;color:var(--muted)}.empty-state{text-align:center;padding:40px 20px;color:var(--muted)}
