:root{--bg: #0d0e10;--bg-elev: #15171c;--panel: #1a1c20;--panel-edge: #2d3038;--panel-edge-soft: #23262d;--text: #f0f0f0;--text-dim: #8a8e95;--text-faint: #5a5f68;--accent: #c8102e;--accent-soft: #ff2e4d;--accent-deep: #8a0a20;--warn: #f5b54a;--pos: #4ed3a3;--neg: #ff6f6f;--grid: #23262d}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text)}body{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:1280px;margin:0 auto;padding:36px 28px 96px}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;padding-bottom:18px;border-bottom:1px solid var(--panel-edge-soft);position:relative}.header:after{content:"";position:absolute;left:0;bottom:-1px;width:56px;height:2px;background:var(--accent)}.header h1{font-size:26px;font-weight:800;letter-spacing:.02em;margin:0;text-transform:uppercase;display:flex;align-items:center;gap:14px}.header h1:before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px #c8102e99}.header .tag{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.16em;font-weight:600;padding:4px 10px;border:1px solid var(--panel-edge);border-radius:999px}.subhead{color:var(--text-dim);font-size:13px;margin-top:14px;margin-bottom:28px;max-width:720px}.tabs{display:flex;gap:2px;margin-bottom:0;border-bottom:1px solid var(--panel-edge)}.tab{background:transparent;color:var(--text-dim);border:none;border-bottom:2px solid transparent;padding:14px 22px;font:inherit;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;position:relative;bottom:-1px;display:inline-flex;align-items:center;gap:10px;transition:color .12s ease,background-color .12s ease}.tab:hover{color:var(--text);background:var(--bg-elev)}.tab.active{color:var(--text);border-bottom-color:var(--accent);background:var(--bg-elev)}.tab .badge{background:var(--panel-edge);color:var(--text-dim);border-radius:10px;padding:1px 8px;font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.04em}.tab.active .badge{background:var(--accent);color:#fff}.panel{background:var(--panel);border:1px solid var(--panel-edge);border-radius:0 10px 10px;padding:24px 28px;margin-bottom:28px;box-shadow:0 1px #ffffff05 inset}.panel-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--panel-edge-soft)}.panel-title h2{font-size:11px;font-weight:700;margin:0;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.panel-title .meta{font-size:11px;color:var(--text-faint);font-variant-numeric:tabular-nums;letter-spacing:.04em;text-transform:uppercase}.select{background:var(--bg-elev);color:var(--text);border:1px solid var(--panel-edge);border-radius:6px;padding:8px 12px;font-size:12px;font-weight:600;letter-spacing:.04em;cursor:pointer}.select:hover{border-color:var(--accent)}.chart-wrap{width:100%;height:460px}.chart-tooltip{background:#0d0e10f5;border:1px solid var(--panel-edge);border-radius:6px;padding:10px 14px;font-size:12px;max-height:540px;overflow-y:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 8px 24px #00000080;color:var(--text)}.chart-tooltip-label{color:var(--text-dim);font-size:11px;margin-bottom:6px;font-variant-numeric:tabular-nums}.chart-tooltip-row{display:flex;justify-content:space-between;gap:12px;padding:1px 0}.chart-tooltip-name{font-weight:500}.chart-tooltip-value{font-variant-numeric:tabular-nums;color:var(--text-dim)}.chart-tooltip-crown{font-size:13px}.cup-odds{margin-top:28px;padding-top:20px;border-top:1px solid var(--panel-edge)}.cup-odds-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.cup-odds-title{font-size:13px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.cup-odds-meta{font-size:11px;color:var(--text-dim)}.cup-odds-chart{width:100%;height:260px}.cup-odds-foot{font-size:11px;color:var(--text-dim);margin-top:8px}.games-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.game{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:20px;row-gap:14px;padding:24px 30px;background:var(--bg-elev);border:1px solid var(--panel-edge);border-radius:10px;flex:1 1 460px;max-width:640px;min-width:320px;transition:border-color .15s ease,box-shadow .15s ease}.game:hover{border-color:var(--panel-edge)}.team-badge{width:48px;height:48px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:13px;letter-spacing:.05em;text-shadow:0 1px 2px rgba(0,0,0,.5);flex-shrink:0;box-shadow:0 0 0 1px #ffffff14,0 2px 6px #0006}.game.live{border-color:var(--accent);box-shadow:0 0 0 1px #c8102e33,0 0 24px #c8102e14}.live-meta{font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.08em;text-transform:uppercase}.live-score{grid-column:1 / -1;display:flex;justify-content:center;gap:12px;font-variant-numeric:tabular-nums;font-size:18px;font-weight:700;color:var(--text)}.live-score .dash{color:var(--text-dim);font-weight:400}.prob-bar.live{margin-top:4px;opacity:1}.prob-bar.pregame{opacity:.55}.prob-meta span:first-child{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.smoothed-tag{font-size:9px;color:var(--text-faint);font-weight:400;text-transform:none;letter-spacing:0}.team{display:flex;align-items:center;gap:12px}.team.right{justify-content:flex-start;flex-direction:row-reverse}.team .abbr{font-weight:800;font-size:18px;letter-spacing:.06em}.team .name{font-size:12px;color:var(--text-dim)}.team .rating{font-variant-numeric:tabular-nums;font-size:13px;color:var(--text-dim);letter-spacing:.04em}.divider{color:var(--text-faint);font-size:14px;font-weight:600}.prob-bar{grid-column:1 / -1;display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--panel-edge-soft);box-shadow:inset 0 1px 2px #0000004d}.prob-bar .away{background:var(--neg)}.prob-bar .home{background:var(--accent)}.prob-meta{grid-column:1 / -1;display:flex;justify-content:space-between;font-variant-numeric:tabular-nums;font-size:11px;color:var(--text-dim);letter-spacing:.04em}.disclaimer{font-size:11px;color:var(--warn);margin-top:12px}.disclaimer.ok{color:var(--text-dim)}.disclaimer.banner{font-size:12px;color:var(--text);background:#f5b54a14;border-left:3px solid var(--warn);border-radius:4px;padding:12px 14px;margin-bottom:18px;margin-top:0}.cal{display:flex;flex-direction:column;gap:16px}.cal-meta{font-size:12px;color:var(--text-dim)}.cal-grid{display:grid;grid-template-columns:1fr;gap:24px}@media (min-width: 900px){.cal-grid{grid-template-columns:minmax(340px,1fr) 1.2fr}}.cal-h{font-size:13px;font-weight:600;margin:0 0 8px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.cal-col{display:flex;flex-direction:column;gap:16px}.cal-chart{width:100%;height:340px}.cal-foot{font-size:11px;color:var(--text-dim);margin-top:4px}table.metrics{width:100%;border-collapse:collapse;font-size:13px}table.metrics th,table.metrics td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--panel-edge-soft)}table.metrics th{color:var(--text-dim);font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.1em}table.metrics td.num,table.metrics th.num{text-align:right;font-variant-numeric:tabular-nums}table.metrics .dim{color:var(--text-dim)}table.metrics tr.target td{color:var(--text-dim);font-size:11px;font-style:italic;border-bottom:none}table.metrics td.tag.pass{color:var(--pos);font-weight:700;font-size:10px;letter-spacing:.06em}table.metrics td.tag.fail{color:var(--neg);font-weight:700;font-size:10px;letter-spacing:.06em}.pass-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px;font-variant-numeric:tabular-nums}.pass-list li{padding:8px 12px;border-radius:4px;background:var(--bg-elev);border-left:3px solid var(--text-faint)}.pass-list li.pass{border-left-color:var(--pos)}.pass-list li.fail{border-left-color:var(--neg)}.empty,.loading,.error{color:var(--text-dim);font-size:13px;padding:12px 0}.error{color:var(--neg)}
