:root{--bg: #070B18;--bg-raised: #0A1022;--surface: #0F172E;--surface-hover: #15203D;--border: #1E2A48;--border-strong: #2A3A60;--text: #E6ECF8;--text-muted: #8A98B8;--primary: #4DA3FF;--primary-hover: #2F8CF5;--primary-soft: rgba(77, 163, 255, .14);--primary-border: rgba(77, 163, 255, .38);--on-primary: #04101F;--accent: #F5B942;--accent-soft: rgba(245, 185, 66, .12);--accent-border: rgba(245, 185, 66, .35);--danger: #FF5A5F;--danger-soft: rgba(255, 90, 95, .12);--danger-border: rgba(255, 90, 95, .35);--info: #8CC8FF;--info-soft: rgba(140, 200, 255, .12);--info-border: rgba(140, 200, 255, .35);--focus: #4DA3FF;--chart-model: #4DA3FF;--chart-market: #A78BFA;--chart-projection: #F5B942;--chart-negative: #FF5A5F;--chart-extra: #5EEAD4;--chart-neutral: #8A98B8;--overlay: rgba(3, 6, 16, .7);--shadow: 0 1px 2px rgba(0, 0, 0, .35);--shadow-float: 0 12px 40px rgba(0, 0, 0, .45);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;color-scheme:dark}body{background:var(--bg);color:var(--text)}:root{--sidebar-w: 232px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--bg-raised);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:40}.brand{padding:20px 20px 18px;border-bottom:1px solid var(--border)}.brand-mark{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;letter-spacing:-.02em}.brand-dot{width:9px;height:9px;border-radius:50%;background:var(--primary);box-shadow:0 0 12px var(--primary)}.brand-sub{margin-top:5px;font-size:11px;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.nav{padding:12px 10px;flex:1;overflow-y:auto}.nav-group-label{padding:14px 10px 6px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-weight:700}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:var(--radius);color:var(--text-muted);font-weight:500;cursor:pointer;border:1px solid transparent;transition:background .12s,color .12s}.nav-item:hover{background:var(--surface-hover);color:var(--text)}.nav-item.active{background:var(--primary-soft);color:var(--primary)}.nav-item.active .nav-icon{color:var(--primary)}.nav-icon{width:17px;height:17px;flex:0 0 17px;color:var(--text-muted)}.nav-badge{margin-left:auto;background:var(--primary-soft);color:var(--primary);border-radius:20px;padding:1px 7px;font-size:11px;font-weight:700;font-family:var(--mono)}.sidebar-foot{padding:12px 14px;border-top:1px solid var(--border);font-size:11px;color:var(--text-muted)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:58px;border-bottom:1px solid var(--border);background:var(--bg-raised);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:30}.topbar h1{font-size:15px;font-weight:650;margin:0;letter-spacing:-.01em}.topbar-spacer{flex:1}.content{padding:24px;max-width:1560px;width:100%}.menu-btn{display:none}.eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-weight:700}.page-title{font-size:26px;font-weight:750;letter-spacing:-.03em;margin:6px 0 4px}.page-sub{color:var(--text-muted);margin:0 0 22px;max-width:76ch}.section-head{display:flex;align-items:baseline;gap:12px;margin:28px 0 12px}.section-head h2{font-size:15px;font-weight:650;margin:0;letter-spacing:-.01em}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted,.dim{color:var(--text-muted)}.pos{color:var(--primary)}.neg{color:var(--danger)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.card-head{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.card-head h3{margin:0;font-size:13px;font-weight:650}.card-body{padding:18px}.grid{display:grid;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:15px 17px;min-width:0}.tile-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-weight:700}.tile-value{font-family:var(--mono);font-size:25px;font-weight:600;letter-spacing:-.02em;margin-top:7px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.tile-sub{font-size:12px;color:var(--text-muted);margin-top:3px}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:5px;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;border:1px solid;white-space:nowrap}.badge-BET{color:var(--primary);border-color:var(--primary-border);background:var(--primary-soft)}.badge-LEAN{color:var(--info);border-color:var(--info-border);background:var(--info-soft)}.badge-WATCH{color:var(--accent);border-color:var(--accent-border);background:var(--accent-soft)}.badge-PASS{color:var(--text-muted);border-color:var(--border-strong);background:transparent}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;background:var(--surface-hover);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap}.pill.on{background:var(--primary-soft);border-color:var(--primary-border);color:var(--primary)}.pill.warn{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.pill.bad{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.dot{width:6px;height:6px;border-radius:50%;background:currentColor}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;padding:9px 14px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:700;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);position:sticky;top:0}table.data td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}table.data tbody tr:hover{background:var(--surface-hover)}table.data tbody tr:last-child td{border-bottom:none}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.right{text-align:right}.center{text-align:center}.matchup{display:flex;align-items:center;gap:10px;min-width:200px}.team-logo{width:26px;height:26px;object-fit:contain;flex:0 0 26px}.team-logo.sm{width:20px;height:20px;flex-basis:20px}.team-logo.lg{width:44px;height:44px;flex-basis:44px}.matchup-teams{display:flex;align-items:center;gap:7px;font-weight:650}.matchup-at{color:var(--text-muted);font-size:11px;font-weight:500}.matchup-time{font-size:11px;color:var(--text-muted);margin-top:1px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 13px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:13px;font-weight:550;cursor:pointer;transition:background .12s,border-color .12s;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:700}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn-danger{color:var(--danger);border-color:var(--danger-border);background:transparent}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn-sm{padding:4px 9px;font-size:12px}input[type=text],input[type=number],input[type=date],input[type=email],input[type=password],select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:7px 10px;width:100%;outline:none;transition:border-color .12s}input:focus,select:focus,textarea:focus{border-color:var(--primary)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0}input[type=range]{width:100%;accent-color:var(--primary)}label.field{display:block;margin-bottom:14px}label.field>span.label-text{display:block;font-size:11px;font-weight:650;color:var(--text-muted);margin-bottom:5px}label.field>span.label-hint{display:block;font-size:11px;color:var(--text-muted);margin-top:4px;line-height:1.45}.segmented{display:inline-flex;background:var(--bg-raised);border:1px solid var(--border);border-radius:9px;padding:2px;gap:2px;flex-wrap:wrap}.segmented button{padding:5px 11px;border-radius:7px;border:none;background:transparent;color:var(--text-muted);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.segmented button.active{background:var(--surface-hover);color:var(--text)}.segmented button:hover:not(.active){color:var(--text)}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:56px 24px;text-align:center;color:var(--text-muted)}.spinner{width:26px;height:26px;border:2.5px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-hover) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:6px}@keyframes shimmer{to{background-position:-200% 0}}.notice{display:flex;gap:11px;padding:12px 15px;border-radius:var(--radius);border:1px solid;font-size:13px;line-height:1.55;margin-bottom:16px}.notice-info{background:var(--surface);border-color:var(--border-strong);color:var(--text-muted)}.notice-warn{background:var(--accent-soft);border-color:var(--accent-border);color:var(--text)}.notice-warn svg{color:var(--accent)}.notice-bad{background:var(--danger-soft);border-color:var(--danger-border);color:var(--text)}.notice-bad svg{color:var(--danger)}.notice svg{flex:0 0 16px;margin-top:1px}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:90;animation:fade .14s ease-out}@keyframes fade{0%{opacity:0}}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(660px,100%);background:var(--bg-raised);border-left:1px solid var(--border-strong);z-index:91;overflow-y:auto;animation:slide .18s cubic-bezier(.2,0,.2,1);box-shadow:var(--shadow-float)}@keyframes slide{0%{transform:translate(28px);opacity:.4}}.drawer-head{position:sticky;top:0;background:var(--bg-raised);border-bottom:1px solid var(--border);padding:16px 20px;display:flex;align-items:center;gap:12px;z-index:2}.drawer-body{padding:20px}.factor-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.factor-row:last-child{border-bottom:none}.factor-label{flex:0 0 116px;font-weight:600;font-size:12px}.factor-detail{flex:1;font-size:11px;color:var(--text-muted);line-height:1.4}.factor-value{font-family:var(--mono);font-weight:600;min-width:56px;text-align:right;font-variant-numeric:tabular-nums}.bar-track{height:5px;background:var(--surface-hover);border-radius:3px;overflow:hidden;width:100%}.bar-fill{height:100%;border-radius:3px;background:var(--primary);transition:width .3s}.meter{display:flex;align-items:center;gap:9px}.meter .bar-track{flex:1;min-width:50px}.kv{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid var(--border);font-size:13px}.kv:last-child{border-bottom:none}.kv dt{color:var(--text-muted)}.kv dd{margin:0;font-family:var(--mono);font-variant-numeric:tabular-nums}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row-tight{display:flex;align-items:center;gap:6px}.news-item{display:flex;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}.news-item:hover{background:var(--surface-hover)}.news-item:last-child{border-bottom:none}.news-headline{font-weight:600;margin-bottom:3px;line-height:1.4}.news-desc{font-size:12px;color:var(--text-muted);line-height:1.5}.news-meta{display:flex;gap:9px;align-items:center;margin-top:7px;flex-wrap:wrap;font-size:11px;color:var(--text-muted)}.impact-rail{width:3px;border-radius:2px;flex:0 0 3px;background:var(--border-strong)}.player-row{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--border)}.player-row:last-child{border-bottom:none}.headshot{width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--surface-hover);flex:0 0 32px}.pos-chip{font-family:var(--mono);font-size:10px;font-weight:700;padding:2px 5px;border-radius:4px;background:var(--surface-hover);color:var(--text-muted);min-width:30px;text-align:center}.team-card{display:flex;align-items:center;gap:12px;padding:13px 15px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .12s,background .12s;text-align:left;width:100%}.team-card:hover{border-color:var(--border-strong);background:var(--surface-hover)}.prose{font-size:13.5px;line-height:1.68}.prose h2{font-size:15px;margin:20px 0 8px}.prose h3{font-size:13px;margin:16px 0 6px}.prose ul{padding-left:20px;margin:8px 0}.prose li{margin:5px 0}.prose p{margin:8px 0}.prose strong{color:var(--text);font-weight:650}.prose code{font-family:var(--mono);font-size:12px;background:var(--surface-hover);padding:1px 5px;border-radius:4px}@media(max-width:1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.sidebar{position:fixed;left:0;top:0;transform:translate(-100%);transition:transform .2s cubic-bezier(.2,0,.2,1);box-shadow:var(--shadow-float)}.sidebar.open{transform:translate(0)}.menu-btn{display:inline-flex}.content{padding:16px}.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}.page-title{font-size:21px}.topbar{padding:0 14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.wx{display:inline-flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap}.wx svg{flex:0 0 auto}.warn-text{color:var(--accent)}.feed-icon{display:flex;align-items:flex-start;padding-top:2px;flex:0 0 auto}.flip{display:inline-flex;transform:rotate(180deg)}.game-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px}.score-box{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:650;padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.adj-total{display:block;font-size:11px;opacity:.85}.best-cell{background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary-border);border-radius:4px}.pos-chip.line_move,.pos-chip.model_move{color:var(--info);border-color:var(--info-border)}.pos-chip.weather,.pos-chip.roof{color:var(--accent);border-color:var(--accent-border)}.pos-chip.injury{color:var(--danger);border-color:var(--danger-border)}@media(max-width:900px){.game-head{gap:10px}.score-box{font-size:18px}}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:380px;background:var(--surface-hover);border:1px solid var(--border-strong);border-radius:14px;padding:28px 26px 22px}.auth-sub{color:var(--text-muted);font-size:13px;text-align:center;margin:0 0 22px}.auth-error{background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger);border-radius:8px;padding:8px 11px;font-size:12.5px;margin-bottom:14px}.auth-ok{background:var(--primary-soft);border:1px solid var(--primary-border);color:var(--text);border-radius:8px;padding:8px 11px;font-size:12.5px;margin-bottom:14px}.verify-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 24px;background:var(--accent-soft);border-bottom:1px solid var(--accent-border);font-size:13px}.verify-banner svg{color:var(--accent);flex:0 0 auto}.auth-switch{width:100%;margin-top:10px;justify-content:center}.auth-foot{color:var(--text-muted);font-size:11px;line-height:1.5;text-align:center;margin:18px 0 0}.fantasy-split{grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);align-items:start}.trade-sides{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.fair-meter{position:relative;height:12px;border-radius:6px;background:var(--surface-hover);overflow:hidden}.fair-meter .band{position:absolute;top:0;bottom:0;background:var(--primary-soft);border-left:1px dashed var(--primary-hover);border-right:1px dashed var(--primary-hover)}.fair-meter .needle{position:absolute;top:-2px;width:4px;height:16px;border-radius:2px;background:var(--text);transform:translate(-2px)}.fair-meter .mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--border-strong)}.pick-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);cursor:pointer}.pick-row:last-child{border-bottom:none}.pick-row:hover{background:var(--surface-hover)}.pick-row.selected{background:var(--primary-soft)}@media(max-width:1100px){.fantasy-split,.trade-sides{grid-template-columns:minmax(0,1fr)}}.flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1.3fr);align-items:stretch;gap:10px}.flow-node{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:15px 17px;min-width:0;display:flex;flex-direction:column;gap:4px}.flow-engine{border-color:var(--primary-border);background:linear-gradient(180deg,var(--primary-soft),var(--surface) 70%)}.flow-outputs{display:grid;gap:8px;min-width:0}.flow-link{color:inherit;text-decoration:none;transition:border-color .15s}.flow-link:hover{border-color:var(--primary)}.flow-arrow{align-self:center;color:var(--text-muted);font-size:20px}.flow-list{margin:6px 0 0;padding-left:16px;font-size:13px;line-height:1.7}.flow-stat{font-size:13px}.flow-stat .mono{font-size:16px;font-weight:600}.flow-foot{font-size:11px;color:var(--text-muted);margin-top:auto;padding-top:6px;line-height:1.5}@media(max-width:1100px){.flow{grid-template-columns:minmax(0,1fr)}.flow-arrow{transform:rotate(90deg);justify-self:center}}.gold,.tile-value.gold{color:var(--accent)}.pill.gold{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.edge-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.start-mark,.sit-mark{font-size:10px;margin-right:6px}.start-mark{color:var(--primary)}.sit-mark{color:var(--danger)}.fantasy-tabs button.active{background:var(--accent-soft);color:var(--accent)}
