:root{--color-bg:#f4f0e8;--color-ink:#0b1f33;--color-primary:#0b1f33;--color-accent:#d96f32;--color-positive:#2f7d59;--color-negative:#b44747;--color-border:#c9c3b8;--color-surface:#fffdf8;--radius-control:6px;--radius-surface:10px}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.4}.dashboard{max-width:680px;margin:0 auto;padding:clamp(24px,5vw,48px) clamp(16px,4vw,32px);gap:32px}.dashboard,.dashboard-header{display:flex;flex-direction:column}.dashboard-header{gap:6px}.demo-badge{display:inline-block;width:-moz-fit-content;width:fit-content;padding:3px 10px;background:var(--color-accent);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-control)}.dashboard-title{margin:0;font-size:clamp(1.8rem,6vw,2.8rem);font-weight:900;font-family:Arial Narrow,Roboto Condensed,sans-serif;letter-spacing:-.01em;line-height:1;color:var(--color-primary)}.dashboard-subtitle{margin:0;font-size:.95rem;color:var(--color-ink);opacity:.6}.game-card{position:relative;overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-surface);padding:24px;display:flex;flex-direction:column;gap:16px}.game-card:before{content:"";position:absolute;inset:10px;border:1px solid rgba(217,111,50,.16);border-radius:7px;pointer-events:none}.game-card>*{position:relative}.game-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:16px;gap:16px}.team-block{display:flex;flex-direction:column;gap:4px}.team-block--away{align-items:flex-end;text-align:right}.team-name{font-size:1.1rem;font-weight:700;color:var(--color-primary)}.team-code{font-size:.8rem;letter-spacing:.06em;opacity:.5}.game-vs,.team-code{font-weight:600;color:var(--color-ink)}.game-vs{font-size:.85rem;opacity:.4;text-align:center}.game-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-top:16px;border-top:1px solid var(--color-border)}.game-date{font-size:.9rem;color:var(--color-ink);opacity:.7;text-transform:capitalize}.game-close{display:flex;align-items:center;gap:6px;font-size:.9rem;font-weight:600}.close-label{color:var(--color-ink);opacity:.6}.section-title{margin:0 0 12px;font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--color-ink);opacity:.5}.challenge-list{list-style:none;margin:0;padding:0}.challenge-item,.challenge-list{display:flex;flex-direction:column;gap:10px}.challenge-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-surface);padding:16px}.challenge-players{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:8px;gap:8px}.player{display:flex;flex-direction:column;gap:2px}.player,.player--challenger{align-items:flex-start}.player--challenged{align-items:flex-end;text-align:right}.player-avatar{display:grid;width:30px;height:30px;place-items:center;margin-bottom:2px;border-radius:50%;background:var(--color-primary);color:var(--color-surface);font-size:.68rem;font-weight:800;letter-spacing:.03em}.player--challenged .player-avatar{background:var(--color-accent)}.player-name{font-size:.95rem;font-weight:600;color:var(--color-primary)}.player-rating{font-size:.78rem;font-weight:700;color:var(--color-ink);opacity:.5}.challenge-position{display:flex;justify-content:center}.position-badge{font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-accent);background:rgba(217,111,50,.1);padding:2px 8px;border-radius:var(--radius-control)}.challenge-footer{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--color-border)}.challenge-state{display:flex;align-items:center;gap:8px}.challenge-action{border:1px solid var(--color-border);border-radius:var(--radius-control);padding:3px 8px;background:transparent;color:var(--color-ink);font:inherit;font-size:.72rem;font-weight:700;cursor:not-allowed;opacity:.5}.multiplier{font-size:.9rem;font-weight:700;color:var(--color-accent)}.status{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:var(--radius-control)}.status--open{background:rgba(47,125,89,.12);color:var(--color-positive)}.status--locked{background:rgba(11,31,51,.1);color:var(--color-ink);opacity:.6}.status--live{background:rgba(217,111,50,.15);color:var(--color-accent)}.status--closed{background:rgba(11,31,51,.08);color:var(--color-ink);opacity:.5}.status--won{background:rgba(47,125,89,.15);color:var(--color-positive)}.status--lost{background:rgba(180,71,71,.12);color:var(--color-negative)}.status--void{opacity:.5}.status--tie,.status--void{background:rgba(11,31,51,.08);color:var(--color-ink)}.status--tie{opacity:.6}.ranking-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-surface);padding:20px}.ranking-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.ranking-item{display:grid;grid-template-columns:28px 1fr auto;align-items:center;grid-gap:12px;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-border)}.ranking-item:last-child{border-bottom:none}.ranking-pos{font-size:.8rem;font-weight:700;color:var(--color-ink);opacity:.4;text-align:center}.ranking-user{font-size:.9rem;font-weight:500;color:var(--color-primary)}.ranking-balance{font-size:.9rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.balance--positive{color:var(--color-positive)}.balance--negative{color:var(--color-negative)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:480px){.game-teams{grid-template-columns:1fr auto 1fr}.player-name{font-size:.85rem}.challenge-footer{flex-wrap:wrap;gap:6px}}