:root{--bg:#f6f7f9;--card:#fff;--text:#1b1f24;--muted:#5d6670;--border:#d9dde2;--accent:#1f6feb;--accent-text:#fff;--picked:#e3eefd;--right:#e2f4e6;--wrong:#fbe5e5;--warn:#ffc4002e;--error:#c62828;--header-from:#0b3d91;--header-to:#1f6feb;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--series-6:#008300;--series-7:#6250d6;--series-8:#e34948;--chart-muted:#b8bcc2;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--bg:#15181c;--card:#1e2227;--text:#e6e8eb;--muted:#9aa3ad;--border:#353b42;--accent:#4c8dff;--picked:#1f3355;--right:#1d3a25;--wrong:#45201f;--error:#ff7b72;--header-from:#0a2459;--header-to:#17489c;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--series-6:#008300;--series-7:#9085e9;--series-8:#e66767;--chart-muted:#4a5058}}*{box-sizing:border-box}body{background:var(--bg);margin:0}main{max-width:1120px;margin:0 auto;padding:16px}h1{letter-spacing:-.01em;margin:0;font-size:1.5rem}header.top{color:#fff;background:linear-gradient(120deg, var(--header-from), var(--header-to));border-radius:0 0 16px 16px;align-items:center;gap:10px;margin:-16px -16px 16px;padding:18px 16px;display:flex}header.top img{filter:drop-shadow(0 1px 2px #0000004d)}.account-links{gap:16px;display:flex}h2{margin-top:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--border);background:var(--card);border-radius:8px;padding:8px 14px}button:disabled{cursor:default;opacity:.55}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.link{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}button.wide{width:100%}input,select{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:8px 10px}label{gap:4px;font-size:.9rem;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px}.narrow{max-width:380px;margin:24px auto}.stack{gap:12px;display:grid}.divider{text-align:center;color:var(--muted);margin:12px 0}.muted{color:var(--muted)}.notice{background:var(--warn);border-radius:8px;padding:10px 14px}.error{color:var(--error)}.account{color:var(--muted);justify-content:space-between;gap:12px;margin-bottom:16px;display:flex}.week-nav{align-items:center;gap:8px;margin-bottom:12px;display:flex}.week-nav select{flex:1}.weight-board{flex-wrap:wrap;gap:4px;margin-bottom:12px;display:flex}.weight{text-align:center;border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:6px;min-width:30px;padding:2px 4px;font-size:.85rem}.weight.used{background:var(--picked);color:var(--muted);text-decoration:line-through}.weight.duplicate{background:var(--wrong);border-color:var(--error);color:var(--error);font-weight:700}.games{gap:6px;margin:0;padding:0;list-style:none;display:grid}.game{background:var(--card);border:1px solid var(--border);border-radius:10px;grid-template-columns:1fr 1fr 64px 92px;align-items:center;gap:6px;padding:6px;display:grid}.game.right{background:var(--right)}.game.wrong{background:var(--wrong)}.team{align-items:center;gap:6px;min-width:0;padding:6px 8px;display:flex}.team.picked{--team:var(--accent);background:color-mix(in srgb, var(--team) 14%, var(--card));border-color:var(--team);box-shadow:inset 4px 0 0 var(--team);font-weight:700}.team .split{color:var(--muted);font-variant-numeric:tabular-nums;background:var(--bg);border-radius:6px;padding:0 4px;font-size:.75rem;font-weight:400}.team:disabled{opacity:1}.game.locked .team:not(.picked){opacity:.6}.team img{flex:none}.team .abbr{text-align:left;flex:1}.team .at{color:var(--muted);font-weight:400}.team .score{font-variant-numeric:tabular-nums}.weight-pick{text-align:center;padding:6px 4px}.when{color:var(--muted);text-align:right;font-size:.8rem}.tiebreaker{border:1px dashed var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;font-size:1rem;display:flex}.tiebreaker>span{display:grid}.tiebreaker input{width:6em}.save-bar{background:var(--bg);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:10px 0;display:flex;position:sticky;bottom:0}.save-bar p{margin:0}@media (width<=480px){.game{grid-template-columns:1fr 1fr 56px}.when{text-align:left;grid-column:1/-1}.team img{width:22px;height:22px}}.small{font-size:.8rem}.layout{gap:16px;display:grid}@media (width>=900px){.layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start}}.sidebar{gap:16px;display:grid}.league-pick{width:100%;margin-bottom:8px}.standings,.viewer-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.standings th,.standings td,.viewer-table td{border-bottom:1px solid var(--border);text-align:right;padding:6px 4px}.standings th:nth-child(2),.standings td:nth-child(2),.viewer-table td:first-child{text-align:left}.standings tr.me{font-weight:700}.viewer{border:1px solid var(--border);background:var(--card);width:min(560px,100vw - 32px);color:var(--text);border-radius:12px;padding:16px}.viewer::backdrop{background:#00000073}.viewer-head{gap:8px;display:flex}.viewer-head select{flex:1}.viewer-table .pick{font-weight:700}.viewer-table tr.same td{background:var(--picked)}.viewer-table tr.right td.pick{color:#1b7f3b}.viewer-table tr.wrong td.pick{color:var(--error)}.comment-form textarea{width:100%;font:inherit;color:inherit;background:var(--card);border:1px solid var(--border);resize:vertical;border-radius:8px;padding:8px 10px}.comment-actions{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.comments{gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.comments p{overflow-wrap:anywhere;margin:2px 0 0}.comment-meta{align-items:baseline;gap:8px;display:flex}.comment-meta .link:first-of-type{margin-left:auto}.comments li.pinned{background:var(--warn);border-radius:8px;padding:8px 10px}.admin summary{cursor:pointer;font-size:1.25rem;font-weight:600}.admin h3{margin:20px 0 8px;font-size:1rem}.admin .row{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.admin .row input[type=number]{width:5.5em}.admin .note{margin:8px 0 0}.standings td.out{text-decoration:line-through}.standings .emoji{text-decoration:none}.reactions{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.reaction{border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:.85rem;line-height:1.6;display:inline-flex}.reaction.mine{background:var(--picked);border-color:var(--accent)}.reaction.add{color:var(--muted)}.emoji-picks{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.profile{margin-bottom:16px}.profile .row{gap:8px;display:flex}.season-chart svg{touch-action:pan-y;width:100%;height:auto;display:block}.season-chart .grid{stroke:var(--border);stroke-width:1px}.season-chart .tick{fill:var(--muted);font-size:10px}.season-chart .crosshair{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}.season-chart .line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.season-chart .line.mine{stroke-width:3px}.season-chart .dot{stroke:var(--card);stroke-width:2px}.race-legend{font-variant-numeric:tabular-nums;gap:2px;margin:8px 0 0;padding:0;list-style:none;display:grid}.race-legend li{align-items:center;gap:8px;display:flex}.race-legend li.me{font-weight:700}.race-legend .swatch{border-radius:2px;flex:none;width:12px;height:4px}.race-legend .name{flex:1}@media (width<=600px){main{padding:12px}header.top{margin:-12px -12px 12px}.card{padding:16px}.team{padding:10px 8px}}@media (prefers-color-scheme:dark){.team.picked{background:color-mix(in srgb, var(--team) 30%, var(--card));border-color:color-mix(in srgb, var(--team) 55%, #fff);box-shadow:inset 4px 0 0 color-mix(in srgb, var(--team) 55%, #fff)}}
