:root{--bg: #ffffff;--fg: #1a1a1a;--muted: #666;--accent: #6b2c91;--accent-text: #6b2c91;--line: #ddd;--qualifier-bg: #f1eaf7;--alt-bg: #f7f7f7;--warn: #a14d00;--up: #1b7f3b;--down: #b3261e;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--fg);background:var(--bg)}@media(prefers-color-scheme:dark){:root{--accent-text: #c9a0e8;--bg: #121212;--fg: #eee;--muted: #aaa;--line: #333;--qualifier-bg: #2a1f33;--alt-bg: #1c1c1c;--warn: #f0a050;--up: #5fd38a;--down: #ff8a80}}body{margin:0;background:var(--bg)}.app{max-width:960px;margin:0 auto;padding:0 16px 48px}.header{padding:16px 0}.header h1{font-size:1.4rem;margin:0 0 4px}.updated{color:var(--muted);margin:0 0 12px;font-size:.9rem}.actions{display:flex;gap:8px}button{font:inherit;padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:transparent;color:inherit;cursor:pointer}.notice{border:1px solid var(--warn);border-radius:6px;padding:8px 12px;margin-bottom:16px}.standings{width:100%;border-collapse:collapse;margin-bottom:24px}.standings caption{text-align:left;color:var(--muted);padding-bottom:8px}.standings th,.standings td{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left}.standings .num{text-align:right;font-variant-numeric:tabular-nums}.standings tr.qualifier{background:var(--qualifier-bg)}.standings tr.cutoff td{border-bottom:3px solid var(--accent)}.standings tr.alternate{background:var(--alt-bg)}.badge{margin-left:6px;font-size:.75rem;padding:1px 5px;border-radius:4px;background:var(--accent);color:#fff}.badge.champion{background:var(--fg);color:var(--bg)}.badge.out{background:transparent;color:var(--muted);border:1px solid var(--line)}.standings tr.out td{color:var(--muted)}.standings .max,.standings .chance{padding-left:16px}.chance-line{margin:0 0 8px;font-weight:600}.legend{color:var(--muted);font-size:.8rem;margin:-16px 0 24px}.note{display:block;color:var(--muted);font-size:.8rem}.up{color:var(--up)}.down{color:var(--down)}.same{color:var(--muted)}.wide{display:none}@media(min-width:600px){.wide{display:table-cell}.narrow{display:none}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.tabs{display:flex;gap:4px;margin-bottom:12px}.tabs [aria-selected=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.picker{display:block;margin-bottom:12px}.clear{margin-bottom:12px;font-size:.9rem}.clear:disabled{opacity:.5;cursor:default}.tag{display:inline-block;margin-left:6px;padding:0 5px;border:1px solid var(--line);border-radius:4px;font-size:.75rem;color:var(--muted);white-space:nowrap}.picks{list-style:none;padding:0;margin:0}.picks li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;padding:6px 0;border-bottom:1px solid var(--line)}.pick{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.locked{color:var(--muted)}.warning{color:var(--warn);font-size:.85rem}.footnotes{color:var(--muted);font-size:.85rem;margin-top:16px}select{font:inherit;max-width:100%}.outlook{border:1px solid var(--line);border-radius:6px;padding:8px 12px;margin-bottom:12px}.outlook h3{margin:0 0 6px;font-size:1rem}.outlook p{margin:6px 0}.outlook .example ul{margin:4px 0 6px;padding-left:20px}.outlook .example button{font-size:.9rem}.muted{color:var(--muted)}.standings .name{padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;text-align:left;text-decoration:underline dotted;text-underline-offset:3px}.standings tr.breakdown-row td{background:var(--bg);padding:4px 8px 12px}.breakdown dl{margin:0}.breakdown dl>div{display:flex;gap:8px;padding:2px 0}.breakdown dt{flex:0 0 90px;color:var(--muted);font-size:.85rem}.breakdown dd{margin:0}.breakdown ul{display:flex;flex-wrap:wrap;gap:2px 14px;margin:0;padding:0;list-style:none;font-size:.9rem}.breakdown li.dropped{color:var(--muted)}.breakdown li.from-pick,.breakdown li.from-live{font-style:italic}.breakdown .pts{font-weight:600;font-variant-numeric:tabular-nums}.breakdown li{flex:0 0 auto;max-width:100%}.picks li.group-heading{display:block;padding:10px 0 4px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.tag.entered{color:var(--accent-text);border-color:var(--accent-text)}.table-controls{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin:0 0 8px;font-size:.9rem}.table-controls .note-inline{color:var(--muted)}.picks li>.pick{margin-left:auto}.intro{margin:0 0 6px;max-width:70ch}.loading{color:var(--muted)}.working-dots span{animation:working-dot 1.2s infinite ease-in-out both}.working-dots span:nth-child(2){animation-delay:.2s}.working-dots span:nth-child(3){animation-delay:.4s}@keyframes working-dot{0%,80%,to{opacity:.15}40%{opacity:1}}@media(prefers-reduced-motion:reduce){.working-dots span{animation:none}}.crumbs{padding-top:16px;font-size:.9rem}.crumbs a,.explore a,.profile-link a{color:var(--accent-text)}.player-status{margin:0 0 6px}.player-page h2{font-size:1.1rem;margin:20px 0 8px}.profile-link{margin:6px 0 0;font-size:.9rem}.season-summary dl{margin:0}.season-summary dl>div{display:flex;gap:8px;padding:2px 0}.season-summary dt{flex:0 0 90px;color:var(--muted);font-size:.85rem}.season-summary dd{margin:0}.tournament{border-top:1px solid var(--line);padding:10px 0}.tournament h3{margin:0;font-size:1rem}.tournament .meta{margin:2px 0;color:var(--muted);font-size:.85rem}.tournament .result{margin:2px 0 6px;font-weight:600}.matches{border-collapse:collapse;font-size:.9rem}.matches td{padding:2px 10px 2px 0;vertical-align:top}.matches .round{color:var(--muted);white-space:nowrap}.matches tr.lost .wl{color:var(--down)}.matches tr.won .wl{color:var(--up)}.matches .score{white-space:nowrap;font-variant-numeric:tabular-nums}.player-page .matches a,.player-page .player-status a{color:var(--accent-text)}.tournament-page h2{font-size:1.1rem;margin:20px 0 8px}.champion{margin:0 0 6px;font-weight:600}.our-players{margin:0;padding-left:20px}.our-players a,.tournament-page .bracket a,.round-list a{color:var(--accent-text)}.bracket{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.bracket-round{display:flex;flex-direction:column;min-width:180px}.bracket-round h3{margin:0 0 6px;font-size:.85rem;color:var(--muted)}.bracket-matches{display:flex;flex-direction:column;justify-content:space-around;flex:1;gap:6px}.match{border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-size:.85rem}.match .line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.match .line.winner{font-weight:600}.match .score{color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.match .bye,.match .tbd{color:var(--muted)}.tournament-page details{margin:8px 0}.tournament-page summary{cursor:pointer;font-weight:600}.round-list{margin:4px 0;padding-left:20px;font-size:.9rem}.tournament-link{display:inline-block;margin:0 12px 12px 0;color:var(--accent-text)}.player-page .tournament h3 a{color:inherit}.our-players{columns:3 230px;column-gap:24px}.our-players li{break-inside:avoid}.draw-layout{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-start}.draw-layout>.draw-main{flex:1 1 560px;min-width:0}.draw-layout>.impact-side{flex:0 1 340px;min-width:0}.race-impact h2{margin-top:0}.impact{width:100%;border-collapse:collapse;font-size:.9rem}.impact td{padding:4px;border-bottom:1px solid var(--line)}.impact td.num{text-align:right;font-variant-numeric:tabular-nums}.impact tr.qualifier{background:var(--qualifier-bg)}.impact tr.cutoff td{border-bottom:3px solid var(--accent)}.impact a{color:var(--accent-text)}.impact-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;font-size:.9rem}.impact-actions a{color:var(--accent-text)}.match button.line,.round-list button.pick{display:block;width:100%;text-align:left;font:inherit;border:0;border-radius:4px;padding:1px 3px;background:transparent;color:inherit;cursor:pointer}.round-list button.pick{display:inline;width:auto}.match button.line:hover,.round-list button.pick:hover{background:var(--alt-bg)}.match button.line[aria-pressed=true],.round-list button.pick[aria-pressed=true]{font-weight:600;background:var(--qualifier-bg)}.match.conflict{border-color:var(--warn)}.match .pick-note{color:var(--accent-text);font-size:.75rem}
