:root{--bg: #f6f7fb;--bg-raised: #ffffff;--bg-sunken: #eef0f7;--bg-hover: #f0f2f9;--border: #e4e7f0;--border-strong: #d2d7e6;--text: #191d2b;--text-dim: #5c6478;--text-faint: #8d95a8;--accent: #5b5bd6;--accent-soft: #ecebfd;--accent-strong: #4a4ac4;--teal: #0d9488;--teal-soft: #dcf5f1;--teal-dim: #0f766e;--rose: #d1495b;--rose-soft: #fdeaec;--rose-dim: #a83a4a;--amber: #d97706;--amber-soft: #fdf1e0;--bar-outline: rgb(24 28 43 / .42);--shadow-sm: 0 1px 2px rgb(24 28 43 / .05);--shadow: 0 2px 6px rgb(24 28 43 / .06), 0 1px 2px rgb(24 28 43 / .04);--shadow-lift: 0 6px 18px rgb(24 28 43 / .09), 0 2px 5px rgb(24 28 43 / .05);--radius-lg: 14px;--radius: 10px;--radius-sm: 7px;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}html[data-theme=dark]{--bg: #0c0e13;--bg-raised: #12151d;--bg-sunken: #0a0c11;--bg-hover: #171b25;--border: #1e2230;--border-strong: #2a3040;--text: #e8ebf2;--text-dim: #8b93a7;--text-faint: #5b6276;--accent: #7c7cf0;--accent-soft: #1e1f3d;--accent-strong: #9a9aff;--teal: #2da898;--teal-soft: #10312e;--teal-dim: #1f6f66;--rose: #c74c58;--rose-soft: #331116;--rose-dim: #82333c;--amber: #d99b4a;--amber-soft: #2e2312;--bar-outline: rgb(232 235 242 / .55);--shadow-sm: none;--shadow: none;--shadow-lift: 0 6px 18px rgb(0 0 0 / .4)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{max-width:1240px;margin:0 auto;padding:0 20px 80px}.masthead{display:flex;align-items:center;gap:14px;padding:26px 0 20px;flex-wrap:wrap}.brand{display:flex;flex-direction:column;gap:1px}.masthead h1{font-size:23px;font-weight:800;letter-spacing:-.025em;margin:0;background:linear-gradient(100deg,var(--accent) 0%,var(--teal) 90%);-webkit-background-clip:text;background-clip:text;color:transparent}.masthead .tagline{color:var(--text-faint);font-size:12.5px}.masthead .spacer{flex:1}.ticker{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);margin:0 -20px 4px;padding:10px 20px;display:flex;align-items:center;gap:18px;overflow-x:auto;scrollbar-width:none}.ticker::-webkit-scrollbar{display:none}.ticker-summary{display:flex;align-items:baseline;gap:8px;white-space:nowrap;padding-right:18px;border-right:1px solid var(--border);flex-shrink:0}.ticker-summary .big{font-family:var(--mono);font-size:17px;font-weight:700}.ticker-item{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:13px;flex-shrink:0}.ticker-item .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.ticker-item .name{color:var(--text)}.ticker-item .val{font-family:var(--mono);font-size:12px;font-weight:600}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:20px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:10px 15px;color:var(--text-dim);font-size:13.5px;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color .12s,background .12s}.tab:hover{color:var(--text);background:var(--bg-hover)}.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.tab .count{font-family:var(--mono);font-size:11px;color:var(--text-faint);margin-left:5px}.tab.active .count{color:var(--accent)}.setup{max-width:580px;margin:56px auto;text-align:center}.setup h2{font-size:27px;font-weight:800;letter-spacing:-.025em;margin:0 0 10px}.setup p{color:var(--text-dim);margin:0 0 26px;line-height:1.6}.field-row{display:flex;gap:8px}input[type=text],input[type=number],select{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:9px 12px;outline:none;transition:border-color .12s,box-shadow .12s;min-width:0}input[type=text]:focus,input[type=number]:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input::placeholder{color:var(--text-faint)}.btn{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 14px;font-size:13px;font-weight:500;color:var(--text-dim);box-shadow:var(--shadow-sm);transition:all .12s;white-space:nowrap}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{padding:5px 10px;font-size:12px}.btn.icon{padding:7px 10px;line-height:1}.controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.control-group{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-dim)}.control-label{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint)}.seg{display:flex;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm)}.seg button{padding:6px 11px;font-size:12.5px;color:var(--text-faint);transition:all .12s}.seg button:hover{color:var(--text);background:var(--bg-hover)}.seg button.active{background:var(--accent);color:#fff;font-weight:600}.board{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-raised);box-shadow:var(--shadow)}.board-head,.board-row{display:grid;grid-template-columns:26px minmax(170px,2.1fr) 66px 96px 52px 52px 60px 78px 116px;align-items:center;gap:10px;padding:0 14px;text-align:center}.board-head{height:36px;background:var(--bg-sunken);border-bottom:1px solid var(--border);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint)}.col-head{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;padding:0;display:flex;align-items:center;justify-content:center;gap:3px;width:100%;transition:color .12s}.col-head.left{justify-content:flex-start}.col-head:hover{color:var(--text)}.col-head.sorted{color:var(--accent)}.col-head .arrow{font-size:7px;line-height:1}.board-row{height:44px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}.board-row:last-child{border-bottom:none}.board-row:hover,.board-row.expanded{background:var(--bg-hover)!important}.chev{color:var(--text-faint);font-size:10px;transition:transform .15s}.chev.open{transform:rotate(90deg)}.player-cell{display:flex;align-items:center;gap:8px;min-width:0;text-align:left}.player-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-meta{font-size:11.5px;color:var(--text-faint);white-space:nowrap;flex-shrink:0}.pos-chip{font-size:10px;font-weight:800;letter-spacing:.04em;padding:2px 6px;border-radius:5px;background:var(--bg-sunken);border:1px solid var(--border);flex-shrink:0}.num{font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums}.num.strong{font-weight:700;color:var(--text)}.num.muted{color:var(--text-faint)}.net{font-family:var(--mono);font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums}.read{font-size:12px;color:var(--text-dim)}.stack{position:relative;height:14px;background:var(--bg-sunken);border:1px solid var(--bar-outline);border-radius:3px;overflow:hidden}.stack .centre{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--bar-outline);z-index:3}.stack .mine,.stack .theirs{position:absolute;top:0;bottom:0;z-index:2;transition:width .25s ease;box-shadow:inset 0 0 0 1px var(--bar-outline)}.stack .mine{left:50%;background:var(--teal);border-radius:0 2px 2px 0}.stack .theirs{right:50%;background:var(--rose);border-radius:2px 0 0 2px}.stack .mine[style*="width: 0%"],.stack .theirs[style*="width: 0%"]{box-shadow:none}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;vertical-align:1px}.status-dot.live{background:var(--amber)}.status-dot.done{background:var(--border-strong)}.status-dot.upcoming{background:var(--teal)}.detail{background:var(--bg-sunken);border-bottom:1px solid var(--border);padding:15px 16px 17px 50px}.detail-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width: 720px){.detail-cols{grid-template-columns:1fr}}.detail h4{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);margin:0 0 8px}.detail-list{display:flex;flex-direction:column;gap:5px}.detail-item{display:flex;align-items:baseline;gap:8px;font-size:12.5px;padding:5px 9px;border-radius:var(--radius-sm);background:var(--bg-raised);border-left:3px solid var(--border-strong);box-shadow:var(--shadow-sm)}.detail-item.mine{border-left-color:var(--teal)}.detail-item.theirs{border-left-color:var(--rose)}.detail-item.bench{border-left-color:var(--border-strong);opacity:.65}.detail-item .league{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-item .slot{font-family:var(--mono);font-size:10.5px;color:var(--text-faint)}.empty-note{color:var(--text-faint);font-size:12.5px;font-style:italic}.matchup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}.matchup{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-raised);overflow:hidden;box-shadow:var(--shadow);transition:transform .14s ease,box-shadow .14s ease}.matchup:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}.matchup .band{height:4px}.matchup.winning .band{background:var(--teal)}.matchup.losing .band{background:var(--rose)}.matchup.close .band{background:var(--amber)}.matchup-body{padding:13px 15px 15px}.matchup-title{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}.matchup-title .name{font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.matchup-title .prob{font-family:var(--mono);font-size:12px;font-weight:700;margin-left:auto;flex-shrink:0}.score-line{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-bottom:11px}.score-side{min-width:0}.score-side.right{text-align:right}.score-side .team{font-size:11.5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-side .pts{font-family:var(--mono);font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2;letter-spacing:-.02em}.score-side .proj{font-family:var(--mono);font-size:11px;color:var(--text-faint)}.score-line .vs{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.needed{background:var(--bg-sunken);border-radius:var(--radius-sm);padding:8px 10px;font-size:12.5px;color:var(--text-dim);border:1px solid transparent}.needed strong{font-family:var(--mono);color:var(--text);font-weight:700}.needed.good{background:var(--teal-soft);border-color:color-mix(in srgb,var(--teal) 25%,transparent)}.needed.bad{background:var(--rose-soft);border-color:color-mix(in srgb,var(--rose) 25%,transparent)}.matchup.is-settled{opacity:.58}.matchup.is-settled .band{background:var(--border-strong)!important}.matchup.is-settled:hover{opacity:1}.settle-toggle{display:flex;align-items:center;gap:8px;width:100%;margin-top:11px;padding-top:11px;border-top:1px solid var(--border);font-size:12px;font-weight:600;color:var(--teal)}.settle-toggle.off{color:var(--text-faint)}.settle-toggle:hover{color:var(--text)}.notice.settled-note{border-color:color-mix(in srgb,var(--amber) 35%,transparent);background:var(--amber-soft)}.winbar{height:6px;background:var(--bg-sunken);border-radius:3px;overflow:hidden;margin-top:11px}.winbar div{height:100%;border-radius:3px;transition:width .4s ease}.section-label{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint)}.dist-panel{margin-top:22px;padding:16px 18px 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);box-shadow:var(--shadow);max-width:560px}.dist{display:flex;align-items:flex-end;gap:5px;height:150px;margin:16px 0 8px}.dist-bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;height:100%}.dist-bar .fill{width:100%;border-radius:5px 5px 0 0;background:color-mix(in srgb,var(--accent) 35%,transparent);min-height:2px;transition:height .35s ease}.dist-bar.likeliest .fill{background:var(--accent)}.dist-bar .pct{font-family:var(--mono);font-size:10.5px;color:var(--text-dim)}.dist-axis{display:flex;gap:5px}.dist-axis div{flex:1;text-align:center;font-family:var(--mono);font-size:11px;color:var(--text-faint)}.game-group{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden;background:var(--bg-raised);box-shadow:var(--shadow)}.game-head{display:flex;align-items:center;gap:12px;padding:11px 15px;background:var(--bg-sunken);border-bottom:1px solid var(--border)}.game-head .matchup-name{font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:6px}.game-head .matchup-name .at{color:var(--text-faint);font-weight:500;font-size:11.5px;margin:0 2px}.team-logo{flex-shrink:0;object-fit:contain;vertical-align:middle}html[data-theme=dark] .team-logo{background:#ffffffe6;border-radius:50%;padding:1px}.game-head .kick{font-size:11.5px;color:var(--text-faint)}.game-stats{margin-left:auto;display:flex;gap:18px;text-align:right}.game-stat{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}.game-stat .k{font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint)}.game-stat .v{font-family:var(--mono);font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.game-stat.wide{min-width:92px}.game-stat.wide .v{font-family:var(--sans);font-size:14px;letter-spacing:-.01em}.game-side-head .team-net{margin-left:auto;font-family:var(--mono);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.chip{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:20px;font-size:12.5px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);color:var(--text)}.game-sides{display:grid;grid-template-columns:1fr 1fr}.game-sides .game-side+.game-side{border-left:1px solid var(--border)}@media (max-width: 640px){.game-sides{grid-template-columns:1fr}.game-sides .game-side+.game-side{border-left:none;border-top:1px solid var(--border)}}.game-side{padding:11px 14px 13px;min-width:0}.game-side-head{display:flex;align-items:center;gap:7px;padding-bottom:8px;margin-bottom:6px;border-bottom:1px solid var(--border);font-size:12px;font-weight:700;letter-spacing:.03em}.game-player{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12.5px;min-width:0}.game-player .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-player .split{display:flex;gap:7px;font-family:var(--mono);font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;flex-shrink:0}.game-player .split .for{color:var(--teal)}.game-player .split .against{color:var(--rose)}.game-player .split .zero{color:var(--text-faint);font-weight:500;opacity:.55}.league-table{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-raised);box-shadow:var(--shadow)}.league-row{display:grid;grid-template-columns:34px 1fr 90px 120px 90px;align-items:center;gap:12px;padding:10px 15px;border-bottom:1px solid var(--border)}.league-row:last-child{border-bottom:none}.league-row.head{background:var(--bg-sunken);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint)}.league-row.hidden-league{opacity:.45}.weight-input{width:68px;padding:5px 8px;text-align:right;font-family:var(--mono)}.switch{width:34px;height:19px;border-radius:10px;background:var(--border-strong);position:relative;transition:background .15s;flex-shrink:0}.switch.on{background:var(--teal)}.switch span{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .15s}.switch.on span{transform:translate(15px)}.section{margin-bottom:30px}.section h3{font-size:14px;font-weight:700;margin:0 0 4px}.section .hint{color:var(--text-faint);font-size:12.5px;margin:0 0 12px;max-width:620px;line-height:1.55}.section code{font-family:var(--mono);font-size:11.5px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:4px;padding:1px 5px}.autopsy-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 760px){.autopsy-cols{grid-template-columns:1fr}}.autopsy-item{display:flex;align-items:center;gap:10px;padding:9px 13px;border-bottom:1px solid var(--border);font-size:13px}.autopsy-item:last-child{border-bottom:none}.autopsy-item .swing{font-family:var(--mono);font-weight:700;min-width:30px;text-align:right}.notice{border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;color:var(--text-dim);font-size:13px;line-height:1.6;background:var(--bg-raised);box-shadow:var(--shadow-sm)}.notice.warn{border-color:color-mix(in srgb,var(--rose) 35%,transparent);background:var(--rose-soft)}.notice strong{color:var(--text)}.spinner{display:inline-block;width:13px;height:13px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px}@keyframes spin{to{transform:rotate(360deg)}}.loading-state{text-align:center;padding:80px 20px;color:var(--text-dim)}.footer{margin-top:60px;padding-top:22px;border-top:1px solid var(--border);display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--text-faint)}.footer .spacer{flex:1}.coffee{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:20px;background:var(--amber-soft);border:1px solid color-mix(in srgb,var(--amber) 30%,transparent);color:var(--amber);font-size:12.5px;font-weight:600;transition:all .12s}.coffee:hover{background:var(--amber);border-color:var(--amber);color:#fff;text-decoration:none}.tag{font-family:var(--mono);font-size:10.5px;padding:1px 6px;border-radius:5px;background:var(--bg-sunken);border:1px solid var(--border);color:var(--text-faint)}@media (max-width: 700px){.board-head,.board-row{grid-template-columns:20px minmax(100px,2fr) 52px 40px 40px 50px 58px;gap:7px;padding:0 9px}.hide-sm{display:none}.detail{padding-left:16px}.app{padding:0 14px 60px}}
