.today-mobile-list{display:grid;gap:12px;padding:12px}.today-mobile-match{min-width:0;padding:14px 12px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface)}.today-mobile-match-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;font-size:12px}.today-mobile-match-meta>strong{color:var(--color-pitch);font-family:var(--font-mono)}.today-mobile-match-meta>span{color:var(--color-muted);overflow-wrap:anywhere}.today-mobile-match-meta .ant-badge{margin-left:auto}.today-mobile-match-meta .ant-badge-status-text{font-size:12px}.today-mobile-teams{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:8px;align-items:center;margin:18px 0 12px;text-align:center}.today-mobile-teams>strong{font-size:16px;line-height:1.5;overflow-wrap:anywhere}.today-mobile-teams>span{color:var(--color-muted);font-family:var(--font-mono);font-size:11px}.today-mobile-teams small{display:block;margin-top:4px;color:var(--color-muted);font-size:10px;font-weight:400}.today-mobile-kickoff{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 12px;margin-bottom:16px;font-size:12px;font-variant-numeric:tabular-nums}.today-mobile-kickoff small{color:var(--color-muted);font-size:11px}.today-mobile-market+.today-mobile-market{margin-top:12px}.today-mobile-market-heading{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:12px}.today-mobile-market-heading>span{color:var(--color-muted)}.today-mobile-market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.today-mobile-market-grid>div{padding:7px 4px;border:1px solid var(--color-line);border-radius:4px;background:color-mix(in srgb,var(--color-signal) 10%,var(--color-surface));text-align:center}.today-mobile-market-grid small{display:block;color:var(--color-muted);font-size:11px;margin-bottom:3px}.today-mobile-market-grid strong{font-size:17px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.today-mobile-quote{display:block;margin-top:4px;color:var(--color-muted);font-size:10px;text-align:right}.today-mobile-predictions{margin-top:14px;padding-top:4px;border-top:1px solid var(--color-line)}.today-mobile-predictions .live-target-summary{font-size:13px}.today-mobile-predictions .live-target-summary>small{color:var(--color-muted);font-size:11px}.today-mobile-predictions .backtest-odds-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.today-mobile-predictions .goal-odds-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.today-mobile-predictions .backtest-odds-grid>div{min-width:0;padding:7px 3px}.today-mobile-predictions .backtest-odds-grid strong{font-size:12px;overflow-wrap:anywhere}.today-mobile-details.ant-btn{height:44px;margin-top:8px;font-weight:600}.today-mobile-details.ant-btn:focus-visible{outline:2px solid var(--color-pitch);outline-offset:2px}.today-mobile-unavailable{margin:8px 0 0;color:var(--color-muted);font-size:12px;line-height:1.6;overflow-wrap:anywhere}@media(max-width:767px){.today-page .today-header{gap:12px;margin-bottom:16px}.today-page .today-header h1.ant-typography{font-size:26px;margin-bottom:8px}.today-page .today-description{font-size:12px;line-height:1.6}.today-page .today-header>.ant-space{width:100%}.today-page .today-header .ant-btn{min-height:44px}.today-page .today-schedule{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;padding:12px;margin-bottom:16px}.today-page .today-schedule>div{min-width:0}.today-page .today-schedule>div:last-child{grid-column:1 / -1}.today-page .today-schedule span{margin-bottom:3px;font-size:11px}.today-page .today-schedule strong{font-size:12px;overflow-wrap:anywhere}.today-page .today-fixtures.ant-card .ant-card-head{padding-inline:12px}.today-page .today-fixtures .ant-card-head-title>.ant-space{flex-wrap:wrap}.today-page .today-market-note{padding:10px 12px;font-size:11px}.today-page .today-pagination{justify-content:center;padding:10px 12px 16px}.today-page .today-pagination .ant-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.today-page .today-pagination .ant-pagination-options{margin-inline-start:0}.today-page .today-model-note{font-size:12px}.live-prediction-dialog .ant-modal-title{padding-right:20px;overflow-wrap:anywhere}.live-prediction-dialog .ant-modal-container{padding:20px 14px}.live-prediction-dialog .backtest-explanation,.live-prediction-dialog .live-probability-section p{overflow-wrap:anywhere}.live-prediction-dialog .live-probability-section{margin-top:18px;min-width:0}.live-prediction-dialog .backtest-probability table{min-width:0;width:100%;table-layout:fixed}.live-prediction-dialog .backtest-probability th,.live-prediction-dialog .backtest-probability td{padding:8px 4px;font-size:11px;overflow-wrap:anywhere}.live-prediction-dialog .backtest-probability .ant-tag{display:block;margin:4px 0 0;padding-inline:3px;font-size:10px;white-space:normal}}:root{--color-ink: #14221b;--color-muted: #617068;--color-canvas: #f4f7f2;--color-surface: #ffffff;--color-line: #dde6df;--color-pitch: #176b45;--color-signal: #d8ff63;--color-warning: #9a5a13;--font-display: Georgia, "Noto Serif SC", serif;--font-sans: Inter, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;font-family:var(--font-sans);color:var(--color-ink);background:var(--color-canvas);font-synthesis:none;text-rendering:optimizeLegibility}a{color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#e8eee9}::-webkit-scrollbar-thumb{background:#96a69c;border:2px solid #e8eee9;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#718178}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.today-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}.today-eyebrow{margin:0 0 8px;color:var(--color-pitch);font-size:12px;font-weight:700}.today-header h1.ant-typography{margin:0 0 10px;font-family:var(--font-display);font-size:34px}.today-description,.today-model-note{margin:0;color:var(--color-muted);line-height:1.7;font-size:13px}.today-header .ant-btn{min-width:108px}.today-page>.ant-alert{margin-bottom:16px}.today-schedule{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:24px;padding:16px 20px;margin-bottom:24px;background:var(--color-canvas);border:1px solid var(--color-line);border-radius:8px}.today-schedule span{display:block;margin-bottom:6px;color:var(--color-muted);font-size:12px}.today-schedule strong{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.today-fixtures.ant-card .ant-card-body{padding:0}.today-fixtures.ant-card .ant-card-head{padding:0 20px}.today-market-note{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:12px 20px;border-bottom:1px solid var(--color-line);font-size:12px}.today-market-note strong{color:var(--color-pitch)}.today-market-note span{color:var(--color-muted)}.today-table-region{min-height:220px}.today-table-region .ant-empty{padding:36px 20px;margin:0}.today-table-scroll{overflow-x:auto;scrollbar-gutter:stable}.today-table-scroll:focus-visible{outline:2px solid var(--color-pitch);outline-offset:-2px}.today-match-table{border-collapse:collapse;table-layout:auto;width:100%;min-width:1130px;font-size:13px}.today-table-caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.today-match-table th{background:var(--color-canvas);color:var(--color-pitch);height:42px;font-weight:600;white-space:nowrap}.today-match-table td,.today-match-table th{text-align:center;border-right:1px solid var(--color-line);border-bottom:1px solid var(--color-line);padding:9px 12px}.today-match-table td:last-child,.today-match-table th:last-child{border-right:0}.today-match-table tbody:nth-of-type(2n){background:var(--color-canvas)}.today-match-table tbody:hover{background:color-mix(in srgb,var(--color-pitch) 5%,var(--color-surface))}.today-match-table td.today-odds{min-width:76px;font-size:17px;font-weight:700;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.today-match-table td.today-odds.has-odds{background:color-mix(in srgb,var(--color-signal) 14%,var(--color-surface))}.today-teams{min-width:178px}.today-teams strong{display:block;overflow-wrap:anywhere}.today-teams span{display:block;margin:4px 0;font-size:10px;color:var(--color-muted)}.today-number,.today-market-label,.today-status,.today-quote-time{white-space:nowrap}.today-number{font-variant-numeric:tabular-nums}.today-line{min-width:56px;font-family:var(--font-mono);color:var(--color-warning)}.today-score{min-width:58px;font-size:17px;font-weight:700;color:var(--color-pitch)}.today-quote-time,.today-prediction{font-size:12px;color:var(--color-muted)}.today-pagination{display:flex;justify-content:flex-end;padding:16px 20px}.today-model-note{margin-top:16px}:root{scrollbar-color:#96a69c #e8eee9;scrollbar-width:thin}@media(forced-colors:active){:root{scrollbar-color:auto}}@media(max-width:800px){.today-header{align-items:flex-start;flex-direction:column;gap:16px}.today-header h1.ant-typography{font-size:28px}.today-schedule{grid-template-columns:1fr;gap:14px}.today-pagination{justify-content:flex-start;padding:16px 12px}}.backtest-filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;padding:18px 20px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-canvas);margin-bottom:24px}.backtest-filters label{display:block;font-size:12px;color:var(--color-muted);margin-bottom:6px}.backtest-filters .ant-select{width:100%}.backtest-content{min-height:360px}.backtest-page>.ant-alert{margin-bottom:20px}.backtest-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--color-line);border-radius:8px;margin-bottom:24px;background:var(--color-surface)}.backtest-stats>div{padding:14px 20px;border-right:1px solid var(--color-line)}.backtest-stats>div:last-child{border-right:0}.backtest-stats span,.backtest-stats small{display:block;font-size:12px;color:var(--color-muted)}.backtest-stats strong{display:block;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:25px;font-weight:600;padding:5px 0;color:var(--color-pitch)}.backtest-comparison{margin-bottom:24px}.backtest-comparison .ant-card-body{padding:16px}.backtest-comparison table,.backtest-probability table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}.backtest-comparison caption{caption-side:top;text-align:left;color:var(--color-muted);font-size:12px;padding:0 0 8px}.backtest-comparison td,.backtest-comparison th,.backtest-probability td,.backtest-probability th{padding:10px 14px;border:1px solid var(--color-line);text-align:center}.backtest-comparison th,.backtest-probability th{background:var(--color-canvas);font-weight:600}.backtest-comparison tbody th{text-align:left}.backtest-comparison td{font-family:var(--font-mono);font-weight:600}.backtest-explanation,.backtest-provenance{color:var(--color-muted);font-size:12px;line-height:1.8;margin:14px 0 0}.backtest-list .backtest-explanation{margin:0 0 16px}.backtest-list .ant-table-tbody>tr>td{font-size:13px}.backtest-fixture strong,.backtest-score{display:block}.backtest-score{font-family:var(--font-mono);color:var(--color-pitch);font-size:18px;font-weight:700;margin:5px 0}.backtest-cell-note{display:block;color:var(--color-muted);margin-top:5px;font-variant-numeric:tabular-nums}.backtest-prob-scroll{overflow-x:auto}.backtest-probability table{min-width:380px;font-size:12px}.backtest-probability caption{caption-side:top;text-align:left;padding:0 0 10px;font-weight:600;color:var(--color-pitch)}.backtest-probability p{color:var(--color-muted);font-size:12px;margin:12px 0 0;line-height:1.8}.backtest-page .ant-btn-link{cursor:pointer}.backtest-page .ant-btn-link:focus-visible{outline:2px solid var(--color-pitch);outline-offset:2px}@media(max-width:800px){.backtest-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px}.backtest-stats>div{padding:12px}.backtest-stats strong{font-size:21px}.backtest-comparison .ant-card-body,.backtest-list .ant-card-body{padding:12px}}@media(max-width:420px){.backtest-filters,.backtest-stats{grid-template-columns:1fr}.backtest-stats>div{border-right:0;border-bottom:1px solid var(--color-line)}.backtest-stats>div:last-child{border-bottom:0}}@media(min-width:801px)and (max-width:1300px){.backtest-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}:root{--color-danger: #b42318}.prediction-hit .prediction-label{color:var(--color-pitch)}.prediction-miss .prediction-label{color:var(--color-danger)}.prediction-hit>td{color:var(--color-pitch)}.prediction-miss>td{color:var(--color-danger)}.prediction-hit .ant-tag,.prediction-miss .ant-tag{margin-top:8px}.backtest-odds-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;font-variant-numeric:tabular-nums}.backtest-odds-grid>div{text-align:center;background:var(--color-canvas);border:1px solid var(--color-line);padding:6px 4px;border-radius:4px}.backtest-odds-grid small{display:block;color:var(--color-muted);font-size:11px;margin-bottom:3px}.backtest-odds-grid strong{font-family:var(--font-mono);font-size:13px}.goal-odds-grid,.joint-backtest-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.backtest-comparison-scroll{overflow-x:auto}.backtest-comparison-scroll table{min-width:650px}.prediction-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.prediction-detail-grid>*{min-width:0}.prediction-time-tabs{margin-top:24px}.prediction-detail-table{border-collapse:collapse;width:100%;min-width:400px;font-size:13px;margin-top:18px;font-variant-numeric:tabular-nums}.prediction-detail-table th,.prediction-detail-table td{padding:10px 12px;text-align:left;border:1px solid var(--color-line)}.prediction-detail-table th{background:var(--color-canvas)}.prediction-data-times{margin:20px 0 0;font-size:12px;line-height:1.7}.prediction-data-times>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;padding:4px 0}.prediction-data-times dt{color:var(--color-muted)}.prediction-data-times dd{margin:0;overflow-wrap:anywhere}.backtest-prob-scroll:focus-visible{outline:2px solid var(--color-pitch);outline-offset:2px}@media(max-width:1100px){.joint-backtest-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.prediction-detail-grid{grid-template-columns:1fr}}@media(max-width:800px){.joint-backtest-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.joint-backtest-filters{grid-template-columns:1fr}}.outcome-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px;font-size:12px}.outcome-summary .ant-tag{margin:0}.outcome-summary-hit{color:var(--color-pitch)}.outcome-summary-miss{color:var(--color-danger)}.outcome-odds-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.outcome-odds-table th,.outcome-odds-table td{border:1px solid var(--color-line);padding:8px 3px;text-align:center}.outcome-odds-table th{background:var(--color-canvas);font-weight:500}.outcome-odds-table th:first-child{width:40px}.outcome-odds-table td{background:var(--color-surface);height:60px}.outcome-odds-table strong{font-family:var(--font-mono);font-size:12px;overflow-wrap:anywhere}.outcome-odds-table small{display:block;margin-top:4px;font-size:10px;line-height:1.4}.outcome-odds-table .outcome-hit,.outcome-odds-table .outcome-actual{background:#e1f2e7;color:var(--color-pitch)}.outcome-odds-table .outcome-miss{background:#fde7e5;color:var(--color-danger)}.joint-backtest-filters .ant-picker{width:100%}.today-kickoff{min-width:130px;font-variant-numeric:tabular-nums}.today-kickoff small{display:block;color:var(--color-muted);margin-top:7px}.today-match-table td.today-prediction{min-width:340px;text-align:left}.live-target-summary{padding:8px 0}.live-target-summary+.live-target-summary{border-top:1px solid var(--color-line)}.live-target-summary>strong,.live-target-summary>small{display:block;margin-bottom:6px}.live-target-summary>strong{color:var(--color-ink)}.live-target-summary .backtest-odds-grid{gap:3px}.live-target-summary .backtest-odds-grid strong{font-size:11px}.live-target-summary .backtest-odds-grid small{font-size:10px}.today-prediction .ant-btn-link:focus-visible{outline:2px solid var(--color-pitch);outline-offset:2px}.live-probability-section{margin-top:24px}.live-probability-section h3{color:var(--color-pitch)}.detail-return-button.ant-btn{min-height:44px;margin-bottom:16px;padding-inline:20px;font-weight:600}.detail-return-button.ant-btn:focus-visible{outline:3px solid var(--color-pitch);outline-offset:3px}.app-content-layout{min-width:0;margin-left:260px}.app-content{min-width:0;min-height:calc(100vh - 70px);padding:52px clamp(28px,5vw,72px) 40px}.app-navigation{display:grid;gap:6px;padding:12px}.app-navigation a,.app-navigation-unavailable{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px 16px;border-radius:8px;text-decoration:none}.app-navigation a{color:#ffffffe0;cursor:pointer}.app-navigation a:hover{background:#ffffff1f}.app-navigation a[aria-current=page]{background:var(--color-signal);color:var(--color-ink);font-weight:700}.app-navigation a:focus-visible{outline:3px solid var(--color-signal);outline-offset:-3px}.app-navigation-unavailable{color:#fff9;font-size:13px}.app-navigation-unavailable .ant-tag{margin:0}.app-mobile-header{position:sticky;top:0;z-index:101;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:var(--color-pitch);color:var(--color-surface);border-bottom:1px solid var(--color-line)}.app-mobile-header strong,.app-mobile-header small{display:block}.app-mobile-header strong{font-family:var(--font-display);font-size:18px}.app-mobile-header small{font-size:12px;opacity:.85;margin-top:2px}.app-mobile-header .ant-btn{min-height:44px;font-weight:600}.app-mobile-drawer .app-navigation a{color:var(--color-ink)}.app-mobile-drawer .app-navigation a:hover{background:var(--color-canvas)}.app-mobile-drawer .app-navigation a[aria-current=page]{background:var(--color-signal)}.app-mobile-drawer .app-navigation-unavailable{color:var(--color-muted)}.app-mobile-drawer .ant-drawer-body{padding:8px}.app-mobile-drawer .ant-drawer-close{min-width:44px;min-height:44px;font-size:26px}@media(max-width:991px){.app-shell{flex-direction:column}.app-desktop-sidebar{display:none}.app-content-layout{margin-left:0}.app-content{padding:24px 20px 28px}html{scroll-padding-top:80px}}@media(max-width:767px){.app-content{padding:20px 12px 24px}.app-content .ant-btn{min-height:44px}.app-content .ant-card-head{padding-inline:12px}.app-content .ant-card-body{padding:12px}.app-content .ant-card-head-title{white-space:normal;overflow-wrap:anywhere}.app-content-layout .ant-layout-footer{padding:12px 12px max(16px,env(safe-area-inset-bottom))!important}.app-content .ant-descriptions{max-width:100%}.app-content .ant-descriptions-item-content{overflow-wrap:anywhere}.app-content .ant-statistic-content{font-size:22px}.quality-page .quality-page-header{flex-direction:column;gap:12px!important}.quality-page .ant-row{row-gap:14px}.quality-page .ant-card-head-wrapper{flex-direction:column;align-items:flex-start;padding-block:12px;gap:8px}.quality-page .ant-card-extra{margin:0}}.route-load-state{min-height:220px;padding:28px 0;color:var(--color-muted)}
