:root{--text:#eef1f7;--text-muted:#8b93a8;--bg:#0a0c11;--bg-elevated:#10131a;--card-bg:#151923;--card-bg-hover:#1a1f2c;--border:#262c3a;--border-soft:#1c2129;--accent:#22d3a8;--accent-dark:#17b391;--accent-text:#052018;--accent-soft:#22d3a824;--danger:#f2495c;--danger-soft:#f2495c24;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif;font:16px/1.5 var(--sans);color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:radial-gradient(circle at top,#121722 0%,#0a0c11 55%) fixed;min-height:100vh;margin:0;overflow-x:hidden}#root{min-height:100vh}::selection{background:var(--accent-soft);color:var(--text)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}h1{letter-spacing:-.01em;margin:0 0 16px;font-size:28px;font-weight:800}h2{margin:0 0 8px;font-size:19px;font-weight:700}a{color:var(--accent)}button{font:inherit;cursor:pointer;background:var(--accent);color:var(--accent-text);border:none;border-radius:8px;padding:9px 16px;font-weight:600;transition:transform .12s,box-shadow .12s,opacity .12s,background .12s}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #22d3a840}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}button.secondary{color:var(--text-muted);border:1px solid var(--border);background:0 0}button.secondary:hover:not(:disabled){color:var(--danger);border-color:var(--danger);box-shadow:none}button.secondary.danger{color:var(--danger);border-color:#f8717159}input,select{font:inherit;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:8px;padding:8px 12px}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input::placeholder{color:var(--text-muted)}table{color:var(--text)}code{background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:.9em}.layout{flex-direction:column;min-height:100vh;display:flex}.topnav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-soft);z-index:10;background:#151923d9;align-items:center;gap:28px;padding:14px 28px;display:flex;position:sticky;top:0}.topnav-brand{letter-spacing:-.01em;white-space:nowrap;color:var(--text);align-items:center;gap:10px;font-size:15px;font-weight:800;text-decoration:none;display:flex}.brand-mark{background:linear-gradient(135deg, var(--accent), var(--accent-dark));width:30px;height:30px;color:var(--accent-text);border-radius:9px;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:inline-flex}.topnav nav{flex:1;gap:4px;display:flex}.nav-link{color:var(--text-muted);border-radius:7px;padding:8px 12px;font-size:14px;font-weight:600;text-decoration:none;transition:color .15s,background .15s}.nav-link:hover{color:var(--text);background:var(--card-bg-hover)}.nav-link.active{color:var(--accent);background:var(--accent-soft)}.topnav-user{align-items:center;gap:10px;display:flex}.user-avatar{background:var(--card-bg-hover);border:1px solid var(--border);width:30px;height:30px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.user-name{color:var(--text-muted);font-size:14px;font-weight:600}.page{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:32px 24px 64px}.page-loading{text-align:center;color:var(--text-muted);margin-top:100px}.error{color:var(--danger)}.muted{color:var(--text-muted)}.auth-page{background:radial-gradient(circle at 30% 20%,#22d3a814,#0000 45%);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-form{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:14px;width:340px;max-width:calc(100vw - 32px);padding:36px;display:flex;box-shadow:0 20px 60px #00000059}.auth-form label{color:var(--text-muted);flex-direction:column;gap:5px;font-size:14px;font-weight:600;display:flex}.leagues-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.leagues-header h1{margin:0}.sync-button{padding:10px 18px;font-weight:700;box-shadow:0 4px 16px #22d3a833}.sync-wizard{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;margin-bottom:28px;padding:28px 24px}.step-indicator{margin:0 0 28px;padding:0;list-style:none;display:flex}.step{flex:1;align-items:center;display:flex;position:relative}.step:last-child{flex:0}.step-dot{background:var(--border);width:28px;min-width:28px;height:28px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;transition:background .2s,color .2s;display:flex}.step-active .step-dot{background:var(--accent);color:var(--accent-text)}.step-done .step-dot{background:var(--accent-dark);color:var(--accent-text)}.step-label{color:var(--text-muted);white-space:nowrap;margin-left:10px;font-size:13px;font-weight:600}.step-active .step-label,.step-done .step-label{color:var(--text)}.step-connector{background:var(--border);flex:1;height:2px;margin:0 14px}.step-done .step-connector{background:var(--accent-dark)}.wizard-title{align-items:center;gap:10px;display:flex}.platform-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin-top:16px;display:grid}.platform-tile{background:var(--bg-elevated);border:2px solid var(--border);color:var(--text);border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:18px 10px;transition:border-color .15s,transform .1s,box-shadow .15s;display:flex}.platform-tile:not(.disabled):hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.platform-tile.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.platform-tile.disabled{opacity:.45;cursor:not-allowed}.platform-swatch{border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;display:flex;box-shadow:0 2px 6px #0000004d}.platform-swatch-inline{border-radius:8px;width:32px;height:32px}.platform-label{text-align:center;font-size:13px;font-weight:600}.platform-soon{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:10px}.wizard-note{background:var(--accent-soft);text-align:center;color:var(--text);border:1px solid #22d3a840;border-radius:12px;margin-top:18px;padding:14px 18px;font-size:14px;line-height:1.5}.connect-form{flex-direction:column;gap:14px;max-width:420px;margin-top:16px;display:flex}.connect-form label{flex-direction:column;gap:4px;font-size:14px;font-weight:600;display:flex}.wizard-help{font-size:13px;font-weight:400}.wizard-actions{gap:10px;margin-top:6px;display:flex}.wizard-complete{text-align:center;padding:20px 0}.complete-check{background:var(--accent);width:56px;height:56px;color:var(--accent-text);border-radius:50%;margin:0 auto 16px;font-size:26px;font-weight:700;line-height:56px}.espn-auto-sync{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex}.extension-found{color:var(--accent);margin:0;font-weight:600}.espn-league-detected{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.connect-espn-box{flex-direction:column;gap:10px;display:flex}.espn-proceed-button{color:#fff;background:#d5001c;font-weight:700}.espn-proceed-button:hover{background:#a5000f}.browser-switch-box{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:14px;display:flex}.get-extension-box{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:16px;display:flex}.get-extension-title{margin:0;font-weight:700}.install-steps{color:var(--text);margin:4px 0;padding-left:20px;font-size:13px;line-height:1.7}.install-download{padding:8px 14px;font-size:13px;text-decoration:none;display:inline-block}.link-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:12px;text-decoration:underline}.link-toggle:hover{box-shadow:none;transform:none}.league-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.linked-accounts{border-top:1px solid var(--border);margin-top:40px;padding-top:24px}.linked-accounts-title{margin-bottom:4px}.linked-accounts-list{flex-direction:column;gap:10px;margin:14px 0 0;padding:0;list-style:none;display:flex}.linked-account-row{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.linked-account-provider{text-transform:capitalize;margin-right:8px;font-weight:700}.linked-account-id,.linked-account-leagues{font-size:13px}.league-card,.matchup-card,.bet-card{background:var(--card-bg);border:1px solid var(--border);border-radius:14px;padding:18px;transition:border-color .15s,transform .15s,box-shadow .15s}.league-card:hover{border-color:var(--border);transform:translateY(-2px);box-shadow:0 10px 30px #00000040}.team-list{max-height:180px;color:var(--text-muted);margin:8px 0;padding:0;font-size:14px;list-style:none;overflow-y:auto}.team-list li{padding:3px 0}.team-mine{color:var(--text);font-weight:700}.badge{background:var(--accent);color:var(--accent-text);border-radius:10px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:700}.button-link{background:var(--accent);color:var(--accent-text);border-radius:8px;margin-top:8px;padding:7px 14px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.matchups-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.matchups-header h1{margin:0}.week-picker{align-items:center;gap:10px;display:flex}.week-nav-btn{background:var(--card-bg);width:34px;height:34px;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:0;font-size:16px;line-height:1}.week-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);box-shadow:none;transform:none}.week-pill{background:var(--card-bg);border:1px solid var(--border);border-radius:999px;justify-content:center;align-items:center;gap:8px;min-width:110px;padding:8px 18px;font-size:14px;font-weight:700;display:inline-flex}.week-pill-tag{background:var(--accent-soft);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800}.week-pill-tag-past{color:#94a3b8;background:#94a3b829}.matchup-past-note{margin:0;padding:0 16px 14px;font-size:13px;font-style:italic}.matchup-list{flex-direction:column;gap:14px;display:flex}.matchup-card{padding:0;overflow:hidden}.matchup-card.expanded{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.matchup-summary{width:100%;color:inherit;box-shadow:none;text-align:inherit;background:0 0;border:none;border-radius:0;flex-direction:column;align-items:stretch;gap:10px;padding:20px 20px 14px;display:flex}.matchup-summary:hover{box-shadow:none;background:var(--card-bg-hover);transform:none}.matchup-teams{justify-content:space-around;align-items:center;gap:16px;display:flex}.vs{color:var(--text-muted);letter-spacing:.05em;font-size:12px;font-weight:700}.expand-caret{text-align:center;color:var(--accent);letter-spacing:.02em;font-size:12px;font-weight:700}.matchup-actions{justify-content:center;gap:8px;padding:0 20px 20px;display:flex}.matchup-actions button{max-width:220px;color:var(--accent);border:1px solid var(--accent);background:0 0;flex:1;font-size:13px}.matchup-actions button:hover{background:var(--accent-soft)}.matchup-detail{border-top:1px solid var(--border-soft);background:var(--bg-elevated);padding:18px 20px 6px}.matchup-detail-loading{padding:16px 20px}.matchup-detail-totals{justify-content:space-around;gap:16px;margin-bottom:18px;display:flex}.detail-total{border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 18px;display:flex}.detail-total.leading{background:var(--accent-soft)}.detail-total-team{color:var(--text-muted);font-size:12px;font-weight:700}.detail-total.leading .detail-total-team{color:var(--accent)}.detail-total-pts{font-size:24px;font-weight:800}.matchup-lineups{grid-template-columns:1fr 1fr;gap:20px;padding-bottom:16px;display:grid}.lineup-column{flex-direction:column;gap:6px;display:flex}.lineup-row{border-radius:8px;align-items:center;gap:10px;padding:7px 8px;display:flex}.lineup-row:hover{background:var(--card-bg-hover)}.pos-badge{color:#0a0c11;border-radius:6px;justify-content:center;align-items:center;min-width:34px;height:22px;padding:0 6px;font-size:11px;font-weight:800;display:inline-flex}.player-name{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:6px;min-width:0;font-size:13px;font-weight:600;display:flex;overflow:hidden}.injury-tag{text-transform:uppercase;color:var(--danger);background:var(--danger-soft);border-radius:5px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:700}.player-points{white-space:nowrap;font-size:13px;font-weight:700}.player-points-label{color:var(--text-muted);text-transform:uppercase;margin-left:3px;font-size:10px;font-weight:600}.odds-display{text-align:center}.odds-label{font-size:14px;font-weight:700}.odds-pct{color:var(--accent);font-size:26px;font-weight:800}.odds-moneyline{color:var(--text-muted);font-size:13px}.odds-source{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.bet-form{flex-direction:column;gap:20px;max-width:480px;display:flex}.bet-form fieldset{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.spread-input-wrap{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:4px;padding-top:10px;display:flex}.spread-input-wrap label,.stake-matcher label{flex-direction:column;gap:4px;font-size:14px;font-weight:600;display:flex}.stake-matcher-columns{align-items:flex-start;gap:24px;display:flex}.stake-col{flex:1;min-width:0}.stake-preview{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;margin-top:12px;padding:12px 14px;font-size:14px}.stake-preview p{margin-bottom:6px}.their-side-preview{border-left:1px dashed var(--border);padding-left:24px}.stake-matcher-hint{margin:0 0 10px;font-size:13px}.payout-line{gap:10px;margin:2px 0 12px;display:flex}.payout-chip{background:var(--card-bg);border:1px solid var(--border-soft);text-align:center;border-radius:8px;flex:1;min-width:0;padding:8px 10px}.payout-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:3px;font-size:10px;font-weight:700;display:block}.payout-amount{letter-spacing:-.01em;font-size:18px;font-weight:800;display:block}.payout-chip.you .payout-amount{color:var(--accent)}.payout-chip.them .payout-amount{color:var(--text)}.payout-profit{color:var(--text-muted);margin-top:2px;font-size:11px;font-weight:600;display:block}.rake-note{font-size:12px;font-style:italic;margin-bottom:10px!important}.void-checkboxes label{align-items:center;gap:8px;font-size:14px;font-weight:400;display:flex}.bet-list{flex-direction:column;gap:12px;display:flex}.bet-card p{margin-bottom:4px}.bet-actions{gap:8px;margin-top:16px;display:flex}.bet-direction-badge{text-transform:uppercase;letter-spacing:.03em;vertical-align:middle;border-radius:10px;align-items:center;margin-right:8px;padding:2px 7px;font-size:10px;font-weight:800;display:inline-flex}.bet-direction-badge.sent{color:var(--text-muted);background:var(--border-soft);border:1px solid var(--border)}.bet-direction-badge.received{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-dark)}.bet-card.direction-received.status-pending{border-left:3px solid var(--accent)}.bet-card.direction-sent.status-pending{border-left:3px solid var(--border)}.detail-table{border-collapse:collapse;width:100%;max-width:500px}.detail-table td{border-bottom:1px solid var(--border-soft);padding:10px 8px}.detail-table td:first-child{color:var(--text-muted);width:40%}.balance{margin-bottom:24px;font-size:40px;font-weight:800}.ledger-table{border-collapse:collapse;width:100%}.ledger-table th,.ledger-table td{text-align:left;border-bottom:1px solid var(--border-soft);padding:10px 8px;font-size:14px}.ledger-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}.positive{color:var(--accent)}.negative{color:var(--danger)}.table-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}@media (width<=640px){.page{padding:20px 14px 56px}h1{font-size:22px}.stake-matcher-columns{flex-direction:column;gap:18px}.their-side-preview{border-left:none;border-top:1px dashed var(--border);padding-top:16px;padding-left:0}.topnav{flex-wrap:wrap;gap:10px 14px;padding:12px 14px}.topnav-brand{font-size:14px}.topnav nav{-webkit-overflow-scrolling:touch;flex:0 0 100%;order:3;gap:2px;padding-bottom:2px;overflow-x:auto}.nav-link{white-space:nowrap;padding:7px 10px;font-size:13px}.user-name{display:none}.auth-form{padding:26px 22px}.leagues-header{flex-direction:column;align-items:flex-start;gap:10px}.matchups-header{flex-direction:column;align-items:flex-start}.week-picker{justify-content:space-between;width:100%}.matchup-teams{gap:8px}.matchup-actions{flex-direction:column}.matchup-actions button{max-width:none}.matchup-lineups{grid-template-columns:1fr;gap:4px}.lineup-column:first-child{border-bottom:1px solid var(--border-soft);margin-bottom:10px;padding-bottom:14px}.matchup-detail-totals{gap:10px}.detail-total{padding:6px 12px}.step-indicator{-webkit-overflow-scrolling:touch;padding-bottom:4px;overflow-x:auto}.step{flex:none}.step-connector{flex:0 0 28px;width:28px}.bet-actions{flex-direction:column}.bet-actions button{width:100%}.ledger-table,.detail-table{font-size:13px}.ledger-table{min-width:480px}}
