:root{--bg: #0f1117;--surface: #1a1d27;--border: #2a2d3a;--text: #e8eaf0;--muted: #6b7280;--accent: #4f8ef7;--green: #22c55e;--yellow: #eab308;--red: #ef4444;--radius: 10px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}.app{max-width:720px;margin:0 auto;padding:0 16px 48px}header{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border);margin-bottom:24px}.logo{font-size:1.25rem;font-weight:700}nav{display:flex;gap:20px}nav a{color:var(--muted);text-decoration:none;font-weight:500}nav a.active{color:var(--text)}.center{text-align:center;margin-top:48px}.muted{color:var(--muted)}.error{color:var(--red)}.league-tabs{display:flex;gap:6px;margin-bottom:24px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.league-tab{background:var(--surface);border:1px solid var(--border);border-radius:99px;color:var(--muted);font-size:.82rem;font-weight:600;padding:6px 14px;cursor:pointer;white-space:nowrap;transition:all .15s}.league-tab:hover{border-color:var(--accent);color:var(--text)}.league-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.match-list section{margin-bottom:28px}.date-heading{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}.match-card{display:block;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:6px;cursor:pointer;text-align:left;color:var(--text);transition:border-color .15s}.match-card:hover{border-color:var(--accent)}.analysis-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:4px;margin-top:6px;text-transform:uppercase;letter-spacing:.03em}.analysis-badge.initial{background:#eab30826;color:var(--yellow)}.analysis-badge.final{background:#22c55e26;color:var(--green)}.match-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}.team{font-weight:600;font-size:.92rem}.team.home{text-align:right}.team.away{text-align:left}.score{font-weight:700;font-size:1.1rem;text-align:center;min-width:50px}.time{font-size:.82rem;color:var(--muted);text-align:center;min-width:50px}.match-league{display:block;font-size:.75rem;color:var(--muted);margin-top:6px}.round-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:24px}.round-arrow{background:var(--surface);border:1px solid var(--border);border-radius:50%;color:var(--text);width:36px;height:36px;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;line-height:1}.round-arrow:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.round-arrow:disabled{opacity:.3;cursor:not-allowed}.round-label{font-size:.92rem;font-weight:700;min-width:90px;text-align:center}.outcome-badges{display:flex;justify-content:center;gap:6px;margin-top:8px}.outcome-badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--border);color:var(--muted)}.outcome-pos{background:#22c55e26;color:var(--green)}.outcome-neutral{background:#eab30826;color:var(--yellow)}.outcome-neg{background:var(--border);color:var(--muted)}.match-detail{padding-top:4px}.back{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.9rem;padding:0;margin-bottom:24px}.back:hover{color:var(--text)}.detail-league{text-align:center;font-size:.82rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:24px}.detail-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px 24px}.detail-team{text-align:center}.detail-team-name{font-size:1.1rem;font-weight:700}.detail-score{text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.detail-score-num{font-size:2rem;font-weight:700}.detail-score-sep{font-size:1.2rem;color:var(--muted);display:none}.detail-score{display:flex;flex-direction:row;align-items:baseline;gap:10px}.detail-status{display:block;font-size:.72rem;color:var(--green);font-weight:600;text-transform:uppercase;margin-top:4px;width:100%;text-align:center}.detail-time{text-align:center}.detail-kickoff{font-size:.88rem;color:var(--muted)}.analysis-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-top:16px}.section-title{font-size:.92rem;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px}.analysis-stage{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:99px;background:#4f8ef726;color:var(--accent)}.prob-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:14px}.prob-grid.two-col{grid-template-columns:1fr 1fr}.prob-grid.three-col{grid-template-columns:1fr 1fr 1fr}.prob-item{text-align:center;background:var(--bg);border-radius:8px;padding:10px 6px}.prob-label{display:block;font-size:.72rem;color:var(--muted);margin-bottom:4px}.prob-value{font-size:1.1rem;font-weight:700}.recommendation{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.rec-label{font-size:.82rem;color:var(--muted)}.rec-bet{font-size:.82rem;font-weight:700;padding:3px 10px;border-radius:99px}.rec-confidence{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:99px}.confidence-high{background:#22c55e26;color:var(--green)}.confidence-medium{background:#eab30826;color:var(--yellow)}.confidence-low{background:#ef444426;color:var(--red)}.key-factors{list-style:none;margin-bottom:14px}.key-factors li{font-size:.82rem;color:var(--text);padding:4px 0 4px 14px;position:relative}.key-factors li:before{content:"•";position:absolute;left:0;color:var(--accent)}.explanation{font-size:.82rem;color:var(--muted);line-height:1.6;list-style:none;padding:0}.explanation li{padding-left:14px;position:relative;margin-bottom:4px}.explanation li:before{content:"•";position:absolute;left:0;color:var(--accent)}.odds-hint{font-size:.8rem;color:var(--muted);margin-bottom:14px}.ev-table{display:flex;flex-direction:column;gap:8px}.ev-row{display:grid;grid-template-columns:1fr 60px 80px 70px;align-items:center;gap:8px;background:var(--bg);border-radius:8px;padding:8px 12px}.ev-market{font-size:.82rem;font-weight:600}.ev-prob{font-size:.78rem;color:var(--muted);text-align:center}.ev-input{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.82rem;padding:5px 8px;text-align:center;width:100%;outline:none;transition:border-color .15s}.ev-input:focus{border-color:var(--accent)}.ev-input::placeholder{color:var(--muted);opacity:.5}.ev-input::-webkit-outer-spin-button,.ev-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ev-input[type=number]{-moz-appearance:textfield}.ev-result{font-size:.82rem;font-weight:700;text-align:right}.ev-green{color:var(--green)}.ev-yellow{color:var(--yellow)}.ev-red{color:var(--red)}.usage-page h2{margin-bottom:20px}.usage-total{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:28px}.usage-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;text-align:center}.usage-stat-value{display:block;font-size:1.3rem;font-weight:700;color:var(--accent)}.usage-stat-label{display:block;font-size:.78rem;color:var(--muted);margin-top:4px}.usage-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;overflow:hidden}.usage-table-header,.usage-table-row{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;padding:10px 14px;font-size:.82rem}.usage-table-header{background:var(--bg);font-weight:600;color:var(--muted);border-bottom:1px solid var(--border)}.usage-table-row{border-bottom:1px solid var(--border)}.usage-table-row:last-child{border-bottom:none}.accuracy-page h2{margin-bottom:20px}.accuracy-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}.accuracy-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.accuracy-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.85rem;font-weight:600}.accuracy-pct{font-size:1.1rem;font-weight:700;color:var(--accent)}.accuracy-bar-bg{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;margin-bottom:6px}.accuracy-bar-fill{height:100%;border-radius:3px;transition:width .3s}.accuracy-detail{font-size:.72rem;color:var(--muted)}.status-page h2{margin-bottom:20px}.status-info{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px 0;margin-bottom:24px}.status-row{display:flex;justify-content:space-between;padding:10px 16px;font-size:.85rem;border-bottom:1px solid var(--border)}.status-row:last-child{border-bottom:none}.status-label{color:var(--muted)}.status-value{font-weight:600}.status-analyses{display:flex;flex-direction:column;gap:6px;margin-bottom:24px}.status-analysis-card{display:block;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;cursor:pointer;text-align:left;color:var(--text);transition:border-color .15s}.status-analysis-card:hover{border-color:var(--accent)}.status-analysis-match{font-weight:600;font-size:.9rem;margin-bottom:6px}.status-analysis-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.75rem}.status-analysis-bet{color:var(--accent);font-weight:600}.status-analysis-conf{text-transform:capitalize}.status-analysis-league{color:var(--muted)}.status-analysis-time{color:var(--muted);margin-left:auto}.best-bets-page h2{margin-bottom:4px}.best-bets-list{display:flex;flex-direction:column;gap:8px}.best-bet-card{display:flex;align-items:center;gap:14px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;cursor:pointer;text-align:left;color:var(--text);transition:border-color .15s}.best-bet-card:hover{border-color:var(--accent)}.best-bet-rank{font-size:1.1rem;font-weight:700;color:var(--accent);min-width:32px;text-align:center}.best-bet-content{flex:1;min-width:0}.best-bet-match{font-weight:600;font-size:.9rem;margin-bottom:3px}.best-bet-meta{display:flex;gap:10px;font-size:.75rem;color:var(--muted);margin-bottom:6px}.best-bet-details{display:flex;flex-wrap:wrap;gap:10px;font-size:.8rem;align-items:center}.best-bet-type{font-weight:700;color:var(--text)}.best-bet-prob,.best-bet-odds{color:var(--muted)}.best-bet-kelly{font-weight:700}.best-bet-ev{color:var(--muted);font-size:.75rem}.best-bet-fresh{font-size:.7rem;color:var(--muted);font-style:italic}.best-bet-confidence{font-size:.7rem;font-weight:600;text-transform:uppercase;padding:4px 8px;border-radius:4px;white-space:nowrap}@media (max-width: 500px){.league-tabs{gap:4px}.league-tab{padding:5px 10px;font-size:.76rem}.detail-header{padding:24px 16px;gap:16px}.detail-team-name{font-size:.95rem}.detail-score-num{font-size:1.6rem}}
