:root{--bg: #14161A;--bg-elev: #1B1E24;--bg-hover: #22262E;--border: #2A2F38;--text: #E7EAEF;--text-dim: #98A0AC;--accent: #5B8DEF;--accent-dim: #24405F;--success: #22C55E;--warning: #E8B931;--danger: #EF4444;--orange: #C77E2B;--darkred: #8C2F39;--green: var(--success);--red: var(--danger);--amber: var(--warning);--on-accent: #FFFFFF;--on-success: #14161A;--on-warn: #14161A;--on-danger: #FFFFFF;--heat-starter: rgba(34, 197, 94, .3);--overlay: rgba(0, 0, 0, .65)}:root[data-theme=light]{--bg: #F4F5F7;--bg-elev: #FFFFFF;--bg-hover: #EBEDF1;--border: #D8DCE2;--text: #1B1E24;--text-dim: #5F6873;--accent: #2F6BE0;--accent-dim: #C7D7F5;--success: #15803D;--warning: #B45309;--danger: #DC2626;--orange: #EA580C;--darkred: #B91C1C;--on-success: #FFFFFF;--on-warn: #FFFFFF;--heat-starter: rgba(21, 128, 61, .22);--overlay: rgba(27, 30, 36, .45)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.num,.score,.stat-row{font-variant-numeric:tabular-nums}.num,.score{font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace}.app-shell{min-height:100vh;display:flex;flex-direction:column}.auth-banner{background:var(--danger);color:var(--on-danger);padding:10px 20px;font-weight:600;text-align:center}.auth-banner a{color:var(--on-danger);text-decoration:underline;margin-left:8px}.topnav{display:flex;align-items:center;gap:4px;padding:0 20px;background:var(--bg-elev);border-bottom:1px solid var(--border)}.topnav .brand{font-weight:700;margin-right:20px;padding:12px 0;color:var(--text)}.nav-link{padding:12px;color:var(--text-dim);border-bottom:2px solid transparent}.nav-link:hover{color:var(--text);text-decoration:none}.nav-link.active{color:var(--text);border-bottom-color:var(--accent)}.nav-link.nav-ai{align-self:center;margin-left:4px;padding:5px 14px;border:none;border-radius:999px;font-weight:600;color:var(--on-accent);background:linear-gradient(135deg,var(--accent),#8B5CF6);box-shadow:0 0 8px #8b5cf659}.nav-link.nav-ai:hover{color:var(--on-accent);filter:brightness(1.12)}.nav-link.nav-ai.active{color:var(--on-accent);border-bottom:none;box-shadow:0 0 14px #8b5cf68c}.nav-ai .sparkle{display:inline-block;animation:sparkle 1.8s ease-in-out infinite}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(1.3) rotate(15deg);opacity:.7}}.theme-toggle{margin-left:auto;background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--text-dim);font-size:12px;padding:4px 10px;cursor:pointer}.theme-toggle:hover{color:var(--text);border-color:var(--accent)}.page{padding:20px;max-width:1600px;width:100%;margin:0 auto}.page-title{font-size:22px;font-weight:700;letter-spacing:-.01em;margin:0 0 16px}.section-title{display:flex;align-items:center;font-size:11px;font-weight:600;margin:24px 0 10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.14em}.section-title:before{content:"";width:3px;height:12px;background:var(--text-dim);margin-right:8px;flex-shrink:0}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:3px;padding:14px}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.team-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:3px;padding:10px 12px;cursor:pointer}.team-card:hover{background:var(--bg-hover);border-color:var(--text-dim)}.team-card.mine,.matchup-card.mine{border-left:3px solid var(--text-dim)}.mine-badge{display:inline-block;background:transparent;border:1px solid var(--border);color:var(--text-dim);font-size:10px;font-weight:700;letter-spacing:.5px;border-radius:3px;padding:1px 5px;vertical-align:middle}.team-card .team-name{font-weight:600;margin-bottom:2px}.team-card .league-name{color:var(--text-dim);font-size:12px;margin-bottom:6px}.team-card .stat-row{display:flex;justify-content:space-between;color:var(--text-dim);font-size:13px}.team-card .stat-row b{color:var(--text)}.matchup-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:3px;padding:12px 14px}.matchup-card .matchup-meta{display:flex;justify-content:space-between;color:var(--text-dim);font-size:12px;margin-bottom:8px}.matchup-card .side{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.matchup-card .side .score{font-variant-numeric:tabular-nums;font-size:16px;color:var(--text-dim)}.matchup-card .side.winner .score,.matchup-card .side.winner .side-name{color:var(--green);font-weight:700}.matchup-card .score.proj{color:var(--text-dim);opacity:.8}.proj-suffix{font-size:10px;text-transform:uppercase;color:var(--text-dim);letter-spacing:.04em}.matchup-card .win-prob{margin-top:8px;padding-top:6px;border-top:1px solid var(--border);color:var(--text-dim);font-size:12px}.attention-card{cursor:pointer}.urgency-score{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.urgency-high{color:var(--danger)}.urgency-mid{color:var(--warning)}.reason-list{margin:8px 0 0;padding-left:18px;color:var(--text-dim);font-size:13px}.reason-list li{margin-bottom:3px}.optimize-line{padding:6px 0;border-bottom:1px solid var(--border)}.optimize-line:last-child{border-bottom:none}.team-chip{display:inline-flex;align-items:center;gap:5px;background:transparent;border:1px solid var(--border);border-radius:3px;padding:3px 8px;font-size:12px;color:var(--text)}.team-chip:hover{text-decoration:none;border-color:var(--accent)}.team-chip.chip-swap{border-color:var(--warning)}.spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--text-dim);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.diff-col{background:transparent;border:1px solid var(--border);border-radius:3px;padding:10px 12px}.diff-head{color:var(--text-dim);font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.diff-row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:3px}.diff-row.changed{background:var(--accent-dim)}.diff-slot{color:var(--text-dim);font-size:11px;font-weight:700;min-width:38px}.diff-delta{margin-left:auto}.input.select{width:auto}table.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.table th{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none}.table th.sortable{cursor:pointer}.table th.sortable:hover{color:var(--text)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr.row-click{cursor:pointer}.table tbody tr.row-click:hover{background:var(--bg-hover)}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:1px 8px;border-radius:3px;font-size:11px;font-weight:700;letter-spacing:.03em}.badge-out{background:var(--danger);color:var(--on-danger)}.badge-questionable{background:var(--warning);color:var(--on-warn)}.badge-doubtful{background:var(--orange);color:var(--on-warn)}.badge-ir{background:var(--darkred);color:var(--on-danger)}.badge-active{background:transparent;color:var(--text-dim);border:1px solid var(--border)}.badge-ok{background:var(--success);color:var(--on-success)}.badge-error{background:var(--danger);color:var(--on-danger)}.badge-neutral{background:transparent;border:1px solid var(--border);color:var(--text-dim)}.badge-accent{background:var(--accent);color:var(--on-accent)}.btn{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:7px 14px;font-size:13px;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--darkred);color:var(--on-danger);border-color:var(--darkred)}.input{background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:3px;padding:7px 10px;font-size:13px;width:100%}.input:focus{outline:none;border-color:var(--accent)}.form-row{margin-bottom:12px}.form-row label{display:block;color:var(--text-dim);font-size:12px;margin-bottom:4px}.form-inline{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.form-inline .form-row{margin-bottom:0;min-width:160px}.muted{color:var(--text-dim)}.ok-text{color:var(--green)}.error-text{color:var(--danger)}.mobile-setup-notice{margin-bottom:14px;padding:14px;border:1px solid var(--warning);border-radius:4px;background:color-mix(in srgb,var(--warning) 9%,transparent)}.mobile-setup-notice p{margin:6px 0 12px}details>summary{cursor:pointer;color:var(--text);font-weight:600}.loading,.empty,.fetch-error{padding:24px;text-align:center;color:var(--text-dim);background:transparent;border:1px dashed var(--border);border-radius:3px}.fetch-error{color:var(--danger);border-color:var(--darkred)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.gap{display:flex;gap:16px;flex-wrap:wrap}.gap>*{flex:1 1 320px}.mt{margin-top:16px}.chart-box{background:var(--bg-elev);border:1px solid var(--border);border-radius:3px;padding:16px}.week-selector{display:flex;gap:8px;align-items:center}.week-selector .input{width:70px;text-align:center}.toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--text-dim)}.toggle input{accent-color:var(--accent)}.small-multiples{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.details-expand summary{cursor:pointer;color:var(--accent);-webkit-user-select:none;user-select:none}.details-expand p{color:var(--text-dim);margin:8px 0}.portfolio-row{padding:8px 0;border-bottom:1px solid var(--border)}.portfolio-row:last-child{border-bottom:none}.prob-track{flex:1;height:8px;background:var(--bg);border:1px solid var(--border);border-radius:3px;overflow:hidden}.prob-fill{height:100%;border-radius:2px}.margin-row{display:flex;align-items:center;gap:10px;padding:3px 0}.margin-label{flex:0 0 220px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.margin-track{position:relative;flex:1;height:14px}.margin-track:before{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--text-dim)}.margin-bar{position:absolute;top:2px;bottom:2px;border-radius:2px}.margin-bar.pos{background:var(--success)}.margin-bar.neg{background:var(--danger)}.margin-value{flex:0 0 52px;text-align:right;font-size:12px}.heatmap{display:grid;grid-template-rows:56px;grid-auto-rows:22px;gap:2px;overflow-x:auto;font-size:12px}.heatmap-head{position:relative}.heatmap-head span{position:absolute;bottom:2px;left:50%;transform:rotate(-60deg);transform-origin:bottom left;font-size:10px;font-weight:600;color:var(--text-dim);white-space:nowrap;letter-spacing:.04em}.heatmap-name{display:flex;align-items:center;padding-right:8px;white-space:nowrap;overflow:hidden}.heatmap-cell{position:relative;border-radius:2px}.heat-starter{background:var(--heat-starter)}.heat-bench{background:var(--bg-hover)}.heat-none:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:4px;height:4px;border-radius:50%;background:var(--border)}.heatmap-legend{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:12px}.heatmap-legend .heatmap-key{display:inline-block;width:12px;height:12px;border-radius:2px;margin-left:10px}.heatmap-legend .heatmap-key:first-child{margin-left:0}.heatmap-legend .heat-none{position:relative;background:transparent;border:1px solid var(--border)}.pos-bar{display:flex;height:14px;border-radius:3px;overflow:hidden;gap:1px}.pos-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:12px;color:var(--text-dim)}.pos-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:-1px}.pos-seg-0{background:var(--accent)}.pos-seg-1{background:var(--accent-dim)}.pos-seg-2{background:var(--text-dim)}.pos-seg-3{background:var(--border)}.pos-seg-4{background:var(--bg-hover)}.player-link{background:none;border:none;padding:0;font:inherit;text-align:left;color:var(--accent);cursor:pointer}.player-link:hover{text-decoration:underline}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}.modal-dialog{background:var(--bg-elev);border:1px solid var(--border);border-radius:3px;width:100%;max-width:860px;max-height:85vh;overflow-y:auto;padding:14px 20px 20px}.modal-header{display:flex;justify-content:flex-end;gap:8px;margin-bottom:8px}.modal-header .btn{text-decoration:none}.modal-close{padding:7px 11px}.btn-link{background:none;border:none;padding:0;font:inherit;font-size:12px;color:var(--accent);cursor:pointer}.btn-link:hover:not(:disabled){text-decoration:underline}.btn-link:disabled{opacity:.5;cursor:default}.apply-result{border:1px solid var(--border);border-radius:3px;padding:10px 12px}.apply-result.apply-ok{border-color:var(--success);color:var(--green)}.apply-result.apply-error{border-color:var(--danger);background:var(--darkred);color:var(--on-danger)}.apply-result.apply-error .muted{color:var(--on-danger);opacity:.8}.activity-item{display:flex;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.activity-item:last-child{border-bottom:none}.activity-time{flex:0 0 64px;font-size:12px}.activity-body{min-width:0}.td-better{background:var(--heat-starter)}.chat-sidebar{position:fixed;top:0;right:0;width:360px;max-width:90vw;height:100vh;background:var(--bg-elev);border-left:1px solid var(--border);display:flex;flex-direction:column;padding:12px;transform:translate(100%);visibility:hidden;transition:transform .25s ease,visibility .25s;z-index:90}.chat-sidebar.open{transform:translate(0);visibility:visible}.chat-sidebar-head{display:flex;align-items:center;gap:8px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border)}.chat-sidebar-title{font-weight:700}.chat-context-chip{margin-left:auto;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-close{font-size:14px;color:var(--text-dim)}.chat-close:hover:not(:disabled){color:var(--text);text-decoration:none}.topnav button.nav-link{font:inherit;cursor:pointer}.chat-log{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto;padding:4px 2px}.chat-msg{max-width:85%;padding:8px 12px;border-radius:6px;font-size:13px;white-space:pre-wrap}.chat-msg.user{align-self:flex-end;background:var(--accent);color:var(--on-accent)}.chat-msg.assistant{align-self:flex-start;background:var(--bg-hover);border:1px solid var(--border)}.chat-input-row{display:flex;gap:8px;margin-top:12px}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.auth-card{width:100%;max-width:380px;padding:24px}.auth-title{font-size:20px;font-weight:700;letter-spacing:-.01em;margin:0 0 4px}.auth-toggle{background:none;border:none;padding:0;font:inherit;color:var(--accent);cursor:pointer}.auth-toggle:hover{text-decoration:underline}.auth-footer{margin-top:16px;font-size:13px}.nav-user{align-self:center;display:inline-flex;align-items:center;font-size:12px;margin-left:8px}.steps{margin:0;padding-left:22px}.steps li{margin-bottom:10px}.steps li:last-child{margin-bottom:0}.steps code,.card p code{font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace;font-size:12px;background:var(--bg-hover);border:1px solid var(--border);border-radius:3px;padding:1px 5px}.invite-code{font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace;font-size:18px;font-weight:600;letter-spacing:1px;background:var(--bg-hover);border:1px solid var(--border);border-radius:6px;padding:6px 12px}@media (max-width: 899px){.page{padding:12px}.topnav{flex-wrap:wrap;overflow-x:auto;padding:0 12px}.topnav .brand{margin-right:12px}.grid-cards,.small-multiples,.diff-grid{grid-template-columns:1fr}table.table{display:block;overflow-x:auto}.chart-box{overflow-x:auto;padding:12px}.modal-overlay{padding:8px}.modal-dialog{max-width:100%;max-height:95vh;padding:10px 12px 14px}.margin-label{flex-basis:120px}}
