:root{color-scheme:light dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;--bg: #0f1115;--card-bg: #1a1d24;--border: #2a2e38;--text: #e8e9ec;--muted: #9298a5;--accent: #3b82f6;--good: #22c55e;--bad: #ef4444}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.app-shell{max-width:960px;margin:0 auto}.tab-nav{display:flex;flex-wrap:wrap;gap:.5rem;padding:1.25rem 1.25rem 0}.tab-nav button{background:transparent;border:1px solid var(--border);color:var(--muted);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.95rem}.tab-nav button.active{background:var(--card-bg);color:var(--text);border-color:var(--accent)}.dashboard{max-width:860px;margin:0 auto;padding:2rem 1.25rem 4rem}.systems-page{padding:1.5rem 1.25rem 4rem}.systems-intro{color:var(--muted);font-size:.9rem;max-width:760px;line-height:1.5;margin-bottom:1.5rem}.side-heading{font-size:1.1rem;margin:1.5rem 0 .75rem}.scheme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.scheme-card{text-align:left;background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;cursor:pointer;color:var(--text);font:inherit;display:flex;flex-direction:column;gap:.4rem}.scheme-card:hover{border-color:var(--accent)}.scheme-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.scheme-name{font-weight:600}.side-badge{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .5rem;border-radius:999px;white-space:nowrap}.side-badge.offense{color:#3b82f6;background:#3b82f61f}.side-badge.defense{color:#f59e0b;background:#f59e0b1f}.scheme-era{color:var(--muted);font-size:.8rem;margin:0}.scheme-description{font-size:.85rem;color:var(--text);margin:0;line-height:1.4}.scheme-footer{font-size:.8rem;color:var(--muted);margin-top:.25rem}.scheme-detail{display:flex;flex-direction:column;gap:1rem}.back-link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.9rem;padding:0;align-self:flex-start}.scheme-detail-header h2{margin:.5rem 0 .25rem}.core-concepts{display:flex;flex-wrap:wrap;gap:.4rem}.concept-pill{background:var(--card-bg);border:1px solid var(--border);border-radius:999px;padding:.25rem .7rem;font-size:.8rem;color:var(--muted)}.detail-section h3{font-size:1rem;margin-bottom:.5rem}.team-chip-list{display:flex;flex-wrap:wrap;gap:.5rem}.team-chip{background:var(--card-bg);border:1px solid var(--border);border-radius:6px;padding:.35rem .6rem;font-size:.8rem}.concept-table{width:100%;border-collapse:collapse;font-size:.85rem}.concept-table th{text-align:left;color:var(--muted);font-weight:500;padding:.4rem .5rem;border-bottom:1px solid var(--border)}.concept-table td{padding:.4rem .5rem;border-bottom:1px solid var(--border)}.share-bar-wrap{position:relative;background:#ffffff0d;border-radius:4px;height:1.2rem;min-width:120px;display:flex;align-items:center}.share-bar{position:absolute;left:0;top:0;bottom:0;background:#3b82f659;border-radius:4px}.share-bar-wrap span{position:relative;padding-left:.4rem;font-size:.78rem;color:var(--text)}.notable-play-list{display:grid;gap:.75rem}.notable-play{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem}.notable-play-header{display:flex;justify-content:space-between;gap:.75rem;font-size:.8rem;color:var(--muted);margin-bottom:.35rem}.notable-play-desc{margin:0 0 .35rem;font-size:.85rem}.notable-play-explanation{margin:0;font-size:.85rem;color:var(--good)}.notable-play-epa{margin:.25rem 0 0;font-size:.75rem;color:var(--muted)}.badge-row{display:flex;gap:.4rem;margin-bottom:.6rem}.badge{font-size:.75rem;padding:.15rem .55rem;border-radius:999px;font-weight:600}.badge.upset-badge{color:#f59e0b;background:#f59e0b24}.badge.ou-badge{color:var(--accent);background:#3b82f624}.plan-toggle{margin-top:.75rem;width:100%;background:transparent;border:1px dashed var(--border);color:var(--muted);border-radius:6px;padding:.4rem;font-size:.8rem;cursor:pointer}.plan-toggle:hover{border-color:var(--accent);color:var(--text)}.game-plan-panel{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.9rem}.plan-note{font-size:.85rem;color:var(--muted);margin:0}.plan-note.upset{color:#f59e0b}.plan-section-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:0 0 .4rem}.plan-note-inline{font-size:.75rem;font-weight:600;margin-left:.5rem;text-transform:none;letter-spacing:normal}.key-stats-table-wrap{overflow-x:auto}.key-stats-table{width:100%;border-collapse:collapse;font-size:.82rem}.key-stats-table th,.key-stats-table td{text-align:left;padding:.35rem .6rem;border-bottom:1px solid var(--border)}.key-stats-table th:not(:first-child),.key-stats-table td:not(:first-child){text-align:right}.key-winner{color:var(--good);font-weight:700}.key-no-signal{color:var(--muted);font-weight:400;font-size:.75rem}.injury-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.injury-column h4{margin:0 0 .3rem;font-size:.85rem}.injury-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem;font-size:.8rem}.injury-list li{display:flex;align-items:baseline;gap:.35rem}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--muted)}.status-dot.out{background:var(--bad)}.status-dot.doubtful{background:#f59e0b}.status-dot.questionable{background:#eab308}.status-dot.injured-reserve{background:#7f1d1d}.status-dot.probable{background:var(--good)}.empty-note{font-size:.8rem;color:var(--muted);margin:0}.player-projection-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;font-size:.8rem}.player-projection-row{display:flex;align-items:baseline;gap:.4rem}.player-position{font-size:.7rem;color:var(--muted);text-transform:uppercase}.player-projection-stats{display:flex;flex-wrap:wrap;gap:.5rem;color:var(--muted);font-size:.75rem;margin-top:.1rem}.player-td-prob{color:var(--accent)}.tendency-line{font-size:.82rem;margin:0 0 .35rem;color:var(--text)}.tendency-line strong{color:var(--muted);font-weight:500}.parlay-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem;margin-top:1.5rem}.parlay-card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:1.25rem}.parlay-card h3{margin:0 0 .2rem}.parlay-subtitle{color:var(--muted);font-size:.85rem;margin:0 0 1rem}.parlay-legs{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.6rem}.parlay-legs li{border-bottom:1px solid var(--border);padding-bottom:.5rem}.parlay-leg-row{display:flex;align-items:baseline;gap:.5rem}.parlay-leg-opp{color:var(--muted);font-size:.85rem}.leg-type-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.03em;padding:.1rem .4rem;border-radius:999px;flex-shrink:0}.leg-type-badge.game_winner{color:var(--accent);background:#3b82f61f}.leg-type-badge.anytime_td{color:#22c55e;background:#22c55e1f}.parlay-leg-price{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--muted)}.parlay-leg-meta{font-size:.78rem;color:var(--muted);margin-top:.1rem}.parlay-summary-row{display:flex;justify-content:space-between;font-size:.85rem;font-weight:600;margin-bottom:.6rem}.parlay-caveat{font-size:.78rem;color:var(--muted);line-height:1.4;margin:0}.stake-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1.25rem;margin:.75rem 0 1.25rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--card-bg)}.stake-control-group{display:flex;flex-direction:column;gap:.4rem}.stake-control-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.stake-buttons{display:flex;gap:.35rem;flex-wrap:wrap}.stake-button{min-width:3rem;padding:.4rem .6rem;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text);font-size:.85rem;font-weight:600;cursor:pointer}.stake-button:hover{border-color:var(--accent)}.stake-button.active{background:var(--accent);border-color:var(--accent);color:#fff}.boost-input-wrap{display:flex;align-items:center;gap:.35rem}.boost-input-wrap input{width:5rem;padding:.4rem .5rem;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text);font-size:.85rem}.stake-checkbox{display:flex;align-items:center;gap:.45rem;font-size:.85rem;cursor:pointer}.payout-breakdown{margin:.6rem 0 .75rem;padding:.7rem .8rem;border:1px solid var(--border);border-radius:6px}.payout-headline{display:flex;justify-content:space-between;align-items:baseline;font-size:.95rem;margin-bottom:.3rem}.payout-headline strong{font-size:1.05rem;color:var(--accent)}.payout-detail{font-size:.78rem;color:var(--muted);line-height:1.45;margin:.2rem 0 0}.payout-risk{border-top:1px solid var(--border);margin-top:.45rem;padding-top:.4rem}.accuracy-note{margin:.5rem 0 1rem;padding:.6rem .85rem;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);font-size:.85rem}.accuracy-note summary{cursor:pointer;font-weight:600}.accuracy-table{width:100%;border-collapse:collapse;margin:.7rem 0 .5rem;font-size:.82rem}.accuracy-table th,.accuracy-table td{text-align:left;padding:.35rem .5rem;border-bottom:1px solid var(--border)}.accuracy-table th{color:var(--muted);font-weight:500}.accuracy-table .accuracy-best td{font-weight:700;color:var(--accent)}.accuracy-caveat{font-size:.78rem;color:var(--muted);line-height:1.45;margin:0}.slip-add-form{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0;padding:.85rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--card-bg)}.slip-form-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.slip-form-row label{display:flex;flex-direction:column;gap:.3rem;font-size:.78rem;color:var(--muted);min-width:160px;flex:1}.slip-form-row select,.slip-form-row input{padding:.4rem .5rem;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text);font-size:.85rem}.slip-leg-list{margin:1rem 0;padding:.85rem 1rem;border:1px solid var(--border);border-radius:8px}.slip-leg-list ul{list-style:none;margin:.5rem 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.slip-leg-row{display:flex;align-items:center;gap:.6rem;font-size:.85rem;padding:.35rem 0;border-bottom:1px solid var(--border)}.slip-leg-row span:first-child{flex:1}.slip-leg-odds{color:var(--muted);font-size:.78rem}.slip-remove-btn{background:none;border:none;color:var(--bad);cursor:pointer;font-size:.9rem;padding:0 .3rem}.dashboard-header h1{margin-bottom:.25rem}.subtitle{color:var(--muted);margin-top:0}.week-selector{display:flex;gap:1.5rem;margin:1.5rem 0}.week-selector label{display:flex;flex-direction:column;font-size:.85rem;color:var(--muted);gap:.25rem}.week-selector select{background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.4rem .6rem;font-size:1rem}.performance-strip{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:.6rem 1rem;margin-bottom:.75rem;font-size:.9rem;color:var(--muted)}.calibration-section{margin-bottom:1.5rem}.calibration-toggle{background:transparent;border:none;color:var(--accent);font-size:.85rem;cursor:pointer;padding:.2rem 0}.calibration-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.6rem}.calibration-entry{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:.6rem .9rem}.calibration-entry-header{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:.2rem}.calibration-entry-date{color:var(--muted)}.calibration-entry-change{font-variant-numeric:tabular-nums;color:var(--good);font-size:.9rem;margin-bottom:.25rem}.calibration-entry-evidence{margin:0;font-size:.78rem;color:var(--muted);line-height:1.4}.loading-state,.error-state,.empty-state{color:var(--muted)}.error-state{color:var(--bad)}.game-list{display:grid;gap:1rem}.game-card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem}.game-card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.75rem}.matchup{font-weight:600;font-size:1.05rem}.gameday{color:var(--muted);font-size:.85rem}.win-prob-row{display:flex;gap:1rem;margin-bottom:.75rem}.team-prob{flex:1;display:flex;justify-content:space-between;align-items:center;background:#ffffff08;border-radius:6px;padding:.5rem .75rem;border:1px solid transparent}.team-prob.favored{border-color:var(--accent);background:#3b82f61f}.team-prob .team{font-weight:600}.team-prob .prob{font-variant-numeric:tabular-nums;color:var(--muted)}.team-prob.favored .prob{color:var(--accent);font-weight:600}.final-score{font-weight:500;margin-bottom:.75rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.grade-badge{font-size:.8rem;padding:.15rem .5rem;border-radius:999px}.grade-badge.correct{color:var(--good);background:#22c55e1f}.grade-badge.incorrect{color:var(--bad);background:#ef44441f}.prediction-details{display:grid;gap:.4rem;font-size:.9rem}.detail-row{display:flex;justify-content:space-between;gap:1rem}.detail-row .label{color:var(--muted)}.weather-note{margin-top:.25rem;font-size:.85rem;color:#f59e0b}
