:root{--bg: #0f0f13;--surface: #1a1a24;--surface2: #14141e;--border: #252535;--text: #e4e4f0;--muted: #6868a0;--accent: #e8c84a;--accent-dim: #7a6418;--user: #4ab4e8;--user-dim: #1a3c54;--win: #48d08a;--fade: #404060}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45;min-height:100dvh}.app-header{background:var(--surface);border-bottom:2px solid var(--accent);padding:13px 16px;text-align:center;position:sticky;top:0;z-index:10}.app-header h1{font-size:1rem;font-weight:900;letter-spacing:.4em;color:var(--accent);text-transform:uppercase}.app-main{max-width:480px;margin:0 auto;padding:14px 14px 40px}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 15px;margin-bottom:12px}.card-label{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.your-team-badge{display:inline-block;background:#4ab4e81a;border:1px solid rgba(74,180,232,.25);border-radius:3px;padding:2px 7px;font-size:.6rem;font-weight:800;letter-spacing:.12em;color:var(--user);text-transform:uppercase;margin-bottom:7px}.team-name-display{font-size:1.3rem;font-weight:800;color:var(--user);line-height:1.15;margin-bottom:3px}.team-meta{font-size:.78rem;color:var(--muted);margin-bottom:12px}.lineup-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.lineup-slot{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:7px 8px;min-width:0}.slot-pos{font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:2px}.slot-name{font-size:.8rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lineup-libero{grid-column:span 3;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:7px 10px;display:flex;align-items:center;gap:10px}.lineup-libero .slot-pos{color:var(--muted);margin-bottom:0}.btn-simulate{display:block;width:100%;background:var(--accent);color:#0e0c00;border:none;border-radius:8px;padding:14px;font-size:.88rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;margin-bottom:12px;transition:opacity .15s,transform .1s}.btn-simulate:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.btn-simulate:active:not(:disabled){transform:translateY(0)}.btn-simulate:disabled{opacity:.45;cursor:not-allowed}.result-row{display:flex;justify-content:space-between;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--border);font-size:.88rem}.result-row:last-child{border-bottom:none}.result-key{color:var(--muted)}.result-val{font-weight:700}.result-val.v-user{color:var(--user)}.result-val.v-champ{color:var(--accent)}.champion-banner{text-align:center;padding:18px 16px;background:linear-gradient(155deg,#1e1a04,var(--surface));border:1px solid rgba(232,200,74,.35);border-radius:10px;margin-bottom:12px}.champ-eyebrow{font-size:.58rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);opacity:.65;margin-bottom:6px}.champ-name{font-size:1.5rem;font-weight:900;color:var(--accent);letter-spacing:.02em}.champ-name.is-user{color:var(--user)}.bracket-round{margin-bottom:14px}.bracket-round-label{font-size:.6rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.bracket-match{background:var(--surface2);border:1px solid var(--border);border-radius:7px;overflow:hidden;margin-bottom:8px}.bracket-row{display:flex;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--border)}.bracket-row:last-child{border-bottom:none}.bracket-seed{font-size:.65rem;color:var(--muted);width:20px;flex-shrink:0;text-align:right}.bracket-tname{flex:1;font-size:.88rem;font-weight:600;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bracket-wscore{font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--muted);flex-shrink:0}.br-won .bracket-tname{color:var(--win)}.br-won .bracket-wscore{color:var(--win);font-weight:800}.br-lost .bracket-tname{color:var(--fade);text-decoration:line-through}.br-lost .bracket-wscore{color:var(--fade)}.br-user .bracket-tname,.br-user.br-won .bracket-tname{color:var(--user)}.standings-table{width:100%;border-collapse:collapse}.standings-table thead th{font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:3px 4px 9px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.standings-table thead th.r{text-align:right}.standings-table tbody td{padding:7px 4px;font-size:.82rem;border-bottom:1px solid rgba(37,37,53,.7);vertical-align:middle}.standings-table tbody td.r{text-align:right;font-variant-numeric:tabular-nums}.td-rank{color:var(--muted);font-size:.72rem;width:22px;padding-right:2px!important}.td-team{font-weight:600}.td-pts{font-weight:800}.tr-playoff td:first-child{border-left:2px solid rgba(232,200,74,.45);padding-left:5px!important}.tr-user td{color:var(--user)}.tr-user .td-rank{color:var(--user);opacity:.7}.tr-divider td{border-top:1px dashed rgba(232,200,74,.25)!important;padding-top:9px!important}.vs-divider{text-align:center;color:var(--muted);font-size:.65rem;font-weight:900;letter-spacing:.2em;text-transform:uppercase;margin:2px 0}.opp-name-display{font-size:1.3rem;font-weight:800;color:var(--text);line-height:1.15;margin-bottom:3px}.opponent-select{display:block;width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:.78rem;padding:6px 8px;margin-top:10px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.opponent-select:focus{outline:none;border-color:var(--muted)}.match-outcome{font-size:.68rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase;margin-bottom:6px}.match-outcome.is-win{color:var(--win)}.match-outcome.is-loss{color:var(--fade)}.match-final-score{font-size:2.4rem;font-weight:900;letter-spacing:.04em;line-height:1;margin-bottom:6px}.score-user{color:var(--user)}.score-sep{color:var(--muted);margin:0 5px}.score-opp{color:var(--text)}.match-teams-line{font-size:.78rem;color:var(--muted);margin-bottom:12px}.match-sets-label{font-size:.58rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.set-results-grid{display:flex;gap:7px;flex-wrap:wrap}.set-result-item{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:6px 10px;text-align:center;min-width:54px}.set-result-num{font-size:.52rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.set-result-score{font-size:.88rem;font-weight:700;font-variant-numeric:tabular-nums}.set-result-item.set-won{border-color:#48d08a4d}.set-result-item.set-won .set-result-score{color:var(--user)}.set-result-item.set-lost .set-result-score{color:var(--fade)}.team-stats-table{width:100%;border-collapse:collapse}.team-stats-table thead th{font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:2px 4px 9px;text-align:right}.team-stats-table thead th:first-child{text-align:left}.team-stats-table thead th.th-user{color:var(--user)}.team-stats-table tbody td{padding:5px 4px;font-size:.83rem;border-bottom:1px solid rgba(37,37,53,.6);text-align:right;font-variant-numeric:tabular-nums}.team-stats-table tbody td:first-child{text-align:left;color:var(--muted);font-size:.78rem}.team-stats-table tbody tr:last-child td{border-bottom:none}.td-user-stat{color:var(--user);font-weight:700}.box-score-table{width:100%;border-collapse:collapse;table-layout:fixed}.box-score-table thead th{font-size:.58rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:2px 2px 7px;text-align:right;white-space:nowrap}.box-score-table thead th:nth-child(1){text-align:left;width:30px}.box-score-table thead th:nth-child(2){text-align:left}.box-score-table tbody td{padding:5px 2px;font-size:.78rem;border-bottom:1px solid rgba(37,37,53,.6);text-align:right;font-variant-numeric:tabular-nums;vertical-align:middle}.box-score-table tbody tr:last-child td{border-bottom:none}.bsp-pos{text-align:left!important;font-size:.56rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.bsp-name{text-align:left!important;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
