:root{--bg:#f5f6f8;--surface:#fff;--line:#e6e8ed;--text:#222;--muted:#8a93a3;--brand:#2f6fed;--brand-dark:#2558c8;--live:#1aae5a;--danger:#e34d4d;--detail-live-score:#75f176;--detail-end-score:#ffc341;--header-h:46px;--channel-h:40px;--tabs-h:40px;--safe-bottom:env(safe-area-inset-bottom,0px);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}[hidden]{display:none!important}.app{background:var(--bg);width:100%;max-width:none;min-height:100vh;margin:0;position:relative}.top-bar{z-index:30;height:var(--header-h);background:var(--brand);color:#fff;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 12px;display:grid;position:sticky;top:0}.brand-text{letter-spacing:.02em;font-size:16px;font-weight:700}.top-spacer{justify-self:end}.sport-switch{background:#ffffff2e;border-radius:999px;padding:2px;display:inline-flex}.sport-tab{color:#ffffffdb;border-radius:999px;min-width:58px;height:28px;font-size:14px}.sport-tab.is-active{color:var(--brand);background:#fff;font-weight:600}.channel-tabs{top:var(--header-h);z-index:29;height:var(--channel-h);background:var(--surface);border-bottom:1px solid var(--line);align-items:center;padding:0 12px;display:flex;position:sticky}.channel-tab{height:100%;color:var(--brand);border-bottom:2px solid var(--brand);padding:0 4px;font-size:15px;font-weight:600}.main-tabs{top:calc(var(--header-h) + var(--channel-h));z-index:28;height:var(--tabs-h);background:var(--surface);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr auto;display:grid;position:sticky}.main-tab{color:#555;font-size:15px;position:relative}.main-tab.is-active{color:var(--brand);font-weight:600}.main-tab.is-active:after{content:"";background:var(--brand);height:2px;position:absolute;bottom:0;left:30%;right:30%}.filter-entry{color:#555;border-left:1px solid var(--line);padding:0 14px;font-size:14px}.date-strip{background:var(--surface);border-bottom:1px solid var(--line);grid-template-columns:36px 1fr 36px;align-items:center;gap:4px;padding:8px 6px;display:grid}.date-nav{height:32px;color:var(--brand);background:#eef3fb;border-radius:6px;font-size:20px}.date-chips{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.date-chips::-webkit-scrollbar{display:none}.date-chip{min-width:58px;color:var(--muted);text-align:center;background:#eef3fb;border-radius:8px;flex:none;padding:6px 8px;font-size:12px;line-height:1.25}.date-chip b{color:var(--text);font-size:13px;display:block}.date-chip.is-active{background:var(--brand);color:#ffffffd9}.date-chip.is-active b{color:#fff}.status-line{color:var(--muted);margin:0;padding:8px 12px;font-size:12px}.page-panel{display:none}.page-panel.is-active{display:block}.match-board{padding-bottom:calc(12px + var(--safe-bottom))}.league-block{margin-bottom:2px}.league-head{top:calc(var(--header-h) + var(--channel-h) + var(--tabs-h));z-index:10;color:var(--brand-dark);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#edf2fa;padding:6px 12px;font-size:13px;font-weight:600;position:sticky}.match-row{background:var(--surface);border-bottom:1px solid var(--line);text-align:left;grid-template-columns:56px minmax(0,1.2fr) minmax(90px,1.1fr) 48px;align-items:center;gap:4px;width:100%;padding:8px 10px;display:grid}.match-row:active{background:#f7f9fc}.match-meta{color:var(--muted);font-size:12px;line-height:1.35}.match-meta .time{color:var(--text);font-size:13px;font-weight:600;display:block}.match-meta .live{color:var(--live);font-weight:700}.match-teams{gap:4px;min-width:0;font-size:14px;display:grid}.match-teams span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.period-grid{color:#444;text-align:center;gap:2px;font-size:12px;display:grid}.period-grid .period-line{grid-template-columns:repeat(4,minmax(18px,1fr));grid-auto-flow:column;gap:2px;display:grid}.match-row-basketball .period-grid .period-line{grid-template-columns:repeat(4,minmax(18px,1fr))}.match-row-basketball .period-grid .period-line:has(em:nth-child(5)){grid-template-columns:repeat(5,minmax(18px,1fr))}.period-grid em{color:var(--muted);font-style:normal}.match-right{text-align:right;font-size:14px;font-weight:700;line-height:1.35}.match-right small{color:var(--muted);margin-top:2px;font-size:11px;font-weight:500;display:block}.empty-state{text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:10px;margin:28px 16px;padding:24px 16px;font-size:14px;line-height:1.6}.detail-page{z-index:50;background:var(--bg);flex-direction:column;width:100%;max-width:none;margin:0;display:flex;position:fixed;inset:0}.detail-chrome{color:#fff;background:#346ad7;flex-shrink:0;height:45px;position:relative}.detail-chrome-title{letter-spacing:.04em;text-align:center;font-size:18px;font-weight:700;line-height:45px;display:block}.detail-header{color:#fff;background:#346ad7;flex-shrink:0;padding:0 0 10px;position:relative}.back-btn{z-index:2;background:0 0;border:0;width:44px;height:45px;position:absolute;top:0;left:0}.back-btn:before{content:"";border-bottom:2px solid #fff;border-left:2px solid #fff;width:14px;height:14px;position:absolute;top:15px;left:16px;transform:rotate(45deg)}.detail-league{color:#fffc;text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:72%;margin:0;padding:0 10px;font-size:12px;line-height:20px;position:absolute;top:0;left:50%;overflow:hidden;transform:translate(-50%)}.detail-scoreboard{align-items:center;padding:20px 4px 0;display:flex}.detail-side{text-align:center;width:30%;overflow:hidden}.detail-logo{color:#346ad7;background:#fff;border-radius:50%;width:40px;height:40px;margin:6px auto 4px;font-size:15px;font-weight:700;line-height:40px;display:block;overflow:hidden}.detail-logo img{object-fit:cover;width:40px;height:40px;display:block}.detail-logo span{display:block}.detail-side strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;height:24px;font-size:15px;font-weight:400;line-height:24px;display:block;overflow:hidden}.detail-center{text-align:center;width:44%;min-width:0}.detail-score-line{align-items:center;display:flex}.detail-big-score{flex:1;font-size:22px;font-weight:700;line-height:20px}#detailHomeScore{text-align:right;padding-right:6px}#detailAwayScore{text-align:left;padding-left:6px}.detail-status{text-align:center;flex:1;font-size:12px;font-weight:400;line-height:20px}.detail-half{color:#ffffffb3;margin-top:2px;font-size:12px;line-height:16px;display:block}.detail-half:empty{display:none}.detail-anim-chip{color:#333;background:#fff;border-radius:3px;margin-top:6px;padding:1px 8px;font-size:12px;line-height:19px;display:inline-block}.detail-header[data-status=live] .detail-big-score,.detail-header[data-status=live] .detail-status{color:var(--detail-live-score)}.detail-header[data-status=finished] .detail-big-score,.detail-header[data-status=finished] .detail-status{color:var(--detail-end-score)}.detail-header[data-status=scheduled] .detail-big-score{visibility:hidden}.detail-header[data-status=scheduled] .detail-status{color:#fff}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.detail-tabs{background:#fff;border-bottom:1px solid #f0f0f0;height:37px;display:flex}.detail-tab{color:#666971;flex:1;height:37px;font-size:15px;line-height:36px;position:relative}.detail-tab.is-active{color:#333;font-weight:600}.detail-tab.is-active:after{content:"";background:#0a8fea;border-radius:100px;width:30px;min-width:20%;height:4px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.detail-body{padding-bottom:calc(16px + var(--safe-bottom));background:#f0f0f0;flex:1;overflow:auto}.detail-panel{padding:0;display:none}.detail-panel.is-active{display:block}.source-table-wrap,.table-scroll{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:10px;overflow-x:auto}.source-data-table,.analysis-item table,.odds-table,.lineup-table{border-collapse:collapse;width:100%;min-width:280px;font-size:12px}.source-data-table th,.source-data-table td,.analysis-item th,.analysis-item td,.odds-table th,.odds-table td,.lineup-table th,.lineup-table td{text-align:center;vertical-align:middle;border-bottom:1px solid #edf1f5;padding:8px 6px}.odds-table-football th,.odds-table-football td{padding:6px 4px;font-size:12px}.analysis-item td{white-space:pre-line}.source-data-table th,.analysis-item th,.odds-table th,.lineup-table th{color:var(--muted);background:#f3f7fb;font-weight:600}.statistic-table th{width:38%;color:var(--text)}.football-scoreboard th:first-child{text-align:left}.football-scoreboard td{text-align:center;font-variant-numeric:tabular-nums}.live-events,.live-statistics,.analysis-item,.odds-market,.lineup-block,.facts-block{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:10px;padding:10px}.live-events h3,.live-statistics h3,.odds-market h3,.lineup-block h3,.facts-block h3,.analysis-item strong{margin:0 0 8px;font-size:14px;display:block}.injury-list{margin:0;padding:0;list-style:none}.injury-item{border-top:1px solid #edf1f5;align-items:flex-start;gap:10px;padding:8px 0;display:flex}.injury-item:first-child{border-top:0;padding-top:0}.injury-dot{background:#2f7ed8;border-radius:50%;flex:none;width:18px;height:18px;margin-top:2px}.injury-body{flex-direction:column;gap:2px;min-width:0;display:flex}.injury-body strong{font-size:14px;font-weight:600}.injury-body small{color:var(--muted);font-size:12px}.detail-hint{color:var(--muted);margin:0 0 10px;padding:0 4px;font-size:12px}.pre-odds-table th,.pre-odds-table td{text-align:center;font-variant-numeric:tabular-nums}.pre-odds-table th:first-child,.pre-odds-table td:first-child{text-align:left}.odds-up{color:#d9480f;font-weight:600}.odds-down{color:#1c7ed6;font-weight:600}.team-rating-bar{background:#e9ecef;border-radius:7px;height:14px;display:flex;overflow:hidden}.team-rating-home{background:#f76707}.team-rating-away{background:#1c7ed6}.team-rating-labels{color:var(--text);justify-content:space-between;margin-top:8px;font-size:13px;display:flex}.team-rating-labels b{font-variant-numeric:tabular-nums}.live-event{border-top:1px solid #edf1f5;grid-template-columns:64px 1fr auto;gap:8px;padding:8px 0;font-size:13px;display:grid}.live-event time{color:var(--muted)}.detail-loading{text-align:center;color:var(--muted);margin:0;padding:18px 8px;font-size:13px}.stat-range-switch{background:#eef3f9;border-radius:999px;gap:6px;margin-bottom:10px;padding:3px;display:inline-flex}.stat-range-switch button{min-width:72px;height:28px;color:var(--muted);border-radius:999px;font-size:12px}.stat-range-switch button.is-active{background:var(--brand);color:#fff}.stat-table-group{margin-bottom:10px}.football-process-board{gap:8px;display:grid}.football-process-side{grid-template-columns:72px 1fr;align-items:center;gap:8px;display:grid}.football-process-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.football-process-lane{background:linear-gradient(90deg,#eef3f9,#f7f9fc);border:1px solid #e2e8f0;border-radius:4px;height:28px;position:relative}.process-marker{background:#2f6fed;border-radius:50%;width:10px;height:10px;margin-left:-5px;position:absolute;top:50%;transform:translateY(-50%)}.process-marker.goal{background:#1aae5a}.process-marker.corner{background:#f0a202;border-radius:2px}.process-marker.danger{background:0 0;border-bottom:9px solid #e34d4d;border-left:5px solid #0000;border-right:5px solid #0000;border-radius:0;width:0;height:0}.football-process-ticks{color:var(--muted);text-align:center;grid-template-columns:repeat(6,1fr);gap:0;margin:0;padding:0 72px 0 80px;font-size:11px;list-style:none;display:grid}.football-process-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;font-size:12px;display:flex}.football-process-legend .mk{vertical-align:middle;background:#2f6fed;border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.football-process-legend .mk.goal{background:#1aae5a}.football-process-legend .mk.corner{background:#f0a202;border-radius:2px}.football-process-legend .mk.danger{background:0 0;border-bottom:9px solid #e34d4d;border-left:5px solid #0000;border-right:5px solid #0000;border-radius:0;width:0;height:0}.fb-event-switch{margin-bottom:8px}.fb-jsq-bar,.fb-odds-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.fb-jsq-bar h3,.fb-odds-bar h3{margin:0 auto 0 0}.fb-odds-table .odds-open{background:#fff8f0}.fb-odds-table .odds-open,.fb-odds-table .odds-live,.fb-odds-table .odds-closed{text-align:center}.fb-odds-table .odds-open span,.fb-odds-table .odds-live span,.fb-odds-table .odds-closed span{min-width:2.4em;margin:0 2px;display:inline-block}.fb-odds-table .line-red,.fb-corner-table .line-red,.jsq-table .jsq-max{color:#e34d4d;font-weight:600}.fb-odds-table .odds-time{color:#fff;text-align:center;width:42px;font-weight:600}.fb-odds-table .time-early{background:#3bb273}.fb-odds-table .time-pending{background:#e35d5d}.fb-odds-table .time-live{background:#6b7280}.fb-odds-table .odds-arrow{color:var(--muted);margin-left:4px}.fb-corner-table .odds-live-tag{color:var(--muted);text-align:center;background:#fff3e6;font-weight:600}.jsq-table th:nth-child(3),.jsq-table td:nth-child(3){color:var(--muted);background:#f3f7fb;font-weight:600}.detail-hint{color:var(--muted);margin:0;font-size:13px}.stat-group-label{color:var(--brand-dark);background:#e8eef6;border-radius:999px;margin-bottom:6px;padding:2px 8px;font-size:12px;display:inline-block}.filter-drawer{z-index:60;width:100%;max-width:none;margin:0;position:fixed;inset:0}.filter-mask{background:#10182873;position:absolute;inset:0}.filter-sheet{background:var(--surface);max-height:78vh;padding-bottom:var(--safe-bottom);border-radius:14px 14px 0 0;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.filter-header{justify-content:space-between;align-items:center;padding:14px 14px 8px;display:flex}.text-link{color:var(--brand);font-size:13px}.filter-actions{gap:8px;padding:0 14px 8px;display:flex}.chip-btn{height:30px;color:var(--brand);background:#eef3f9;border-radius:999px;padding:0 12px;font-size:13px}.filter-list{flex:1;padding:0 8px 8px;overflow:auto}.filter-item{border-bottom:1px solid #edf1f5;align-items:center;gap:10px;padding:10px 8px;font-size:14px;display:flex}.filter-item input{width:16px;height:16px}.primary-btn{background:var(--brand);color:#fff;border-radius:8px;height:42px;margin:8px 14px 14px;font-size:15px;font-weight:600}.match-row-basketball{grid-template-columns:minmax(88px,.9fr) minmax(0,2.2fr) minmax(72px,.8fr);align-items:center;column-gap:8px}.match-row-basketball .bb-summary{color:#1aae5a;white-space:normal;margin-top:4px;font-size:11px;line-height:1.35;display:block}.match-row-basketball .bb-main{grid-template-columns:minmax(0,1.1fr) minmax(88px,1fr) 36px;align-items:center;gap:6px;min-width:0;display:grid}.match-row-basketball .period-grid em.has-score{color:#222;font-weight:600}.match-row-basketball .bb-totals{text-align:right;gap:4px;display:grid}.match-row-basketball .bb-totals b{color:var(--danger);font-size:16px;font-weight:700;line-height:1.2}.match-row-basketball .bb-side{text-align:right;justify-items:end;gap:4px;display:grid}.match-row-basketball .bb-odds{color:#2f6fed;word-break:break-all;font-size:11px;font-weight:600;line-height:1.35}.match-row-basketball .bb-status{color:#2f6fed;font-size:13px;font-weight:600}.match-row-football{grid-template-columns:70px minmax(0,1fr) 40px;align-items:center;gap:8px;min-height:56px;padding:10px 12px}.match-row-football .fb-league{color:#e67e22;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;line-height:1.3;display:block;overflow:hidden}.match-row-football .match-meta .time{margin-top:2px;font-size:12px;font-weight:600}.match-row-football .fb-center{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;min-width:0;display:grid}.match-row-football .fb-side{gap:3px;min-width:0;display:grid}.match-row-football .fb-home{text-align:right;justify-items:end}.match-row-football .fb-away{text-align:left;justify-items:start}.match-row-football .fb-side strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:14px;font-weight:600;line-height:1.25;overflow:hidden}.match-row-football .fb-odds{color:#9a7b4f;letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:500;line-height:1.2;overflow:hidden}.match-row-football .fb-odds:empty{display:none}.match-row-football .fb-vs{text-align:center;min-width:28px;color:var(--muted);letter-spacing:.04em;font-size:12px;font-weight:700}.match-row-football .fb-score{text-align:center;letter-spacing:.02em;min-width:42px;font-size:18px;font-weight:700;line-height:1}.match-row-football .fb-score em{margin:0 1px;font-style:normal;font-weight:600}.match-row-football .fb-score.is-live{color:var(--danger)}.match-row-football .fb-score.is-finished{color:var(--text)}.match-row-football .fb-right{color:var(--muted);align-self:center;min-height:1em;font-size:11px;font-weight:600;line-height:1.3}.odds-card,.score-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:10px;padding:10px}.odds-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.odds-toolbar h3,.odds-card>h3,.score-card-kicker{margin:0 auto 0 0;font-size:14px;font-weight:700}.odds-snap+.odds-snap{border-top:1px dashed var(--line);margin-top:10px;padding-top:10px}.odds-snap-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.odds-chip{height:22px;color:var(--live);background:#e7f6ec;border-radius:999px;align-items:center;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.odds-score{color:var(--muted);font-size:12px}.odds-readout{grid-template-columns:1fr auto 1fr;align-items:end;gap:8px;display:grid}.odds-cell{text-align:center;gap:4px;display:grid}.odds-cell:first-child{text-align:left}.odds-cell:last-child{text-align:right}.odds-cell small{color:var(--muted);font-size:11px}.odds-cell b,.odds-cell strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:750;line-height:1}.odds-cell.is-line strong{color:var(--brand);font-size:20px}.odds-open-line{color:var(--muted);margin:8px 0 0;font-size:12px}.odds-subhead{color:var(--muted);margin:10px 0 6px;font-size:11px;font-weight:700}select.odds-company-select{appearance:none;border:1px solid var(--line);background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%238a93a3' stroke-width='1.5'/></svg>") no-repeat right 10px center;height:30px;color:var(--text);font:inherit;border-radius:999px;max-width:42vw;padding:0 28px 0 12px;font-size:13px}.score-card-grid{font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1.4fr) 1fr 1fr;align-items:center;gap:8px 12px;display:grid}.score-card-grid span{color:var(--muted);text-align:center;font-size:12px}.score-card-grid span:first-child{text-align:left}.score-card-grid strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.score-card-grid b{text-align:center;font-size:20px}.stat-meter{margin:8px 0 12px}.stat-meter-top{grid-template-columns:1fr auto 1fr;align-items:baseline;gap:8px;margin-bottom:6px;display:grid}.stat-meter-top span{color:var(--muted);text-align:center;font-size:12px}.stat-meter-top b:last-child{text-align:right}.stat-meter-bar{background:#eef3f9;border-radius:99px;height:8px;overflow:hidden}.stat-meter-bar i{background:var(--brand);border-radius:99px;height:100%;display:block}.period-board{font-variant-numeric:tabular-nums;overflow-x:auto}.period-board-head,.period-board-row{text-align:center;grid-auto-columns:minmax(44px,1fr);grid-auto-flow:column;align-items:center;gap:8px;padding:8px 0;display:grid}.period-board-row{border-top:1px solid var(--line)}.period-board-head span,.period-board-row span{color:var(--muted);font-size:12px}.period-board-head span:first-child,.period-board-row strong{text-align:left;min-width:40px}.period-board-row b{font-size:16px}.player-stat-table{min-width:720px;font-size:12px}.player-stat-table th,.player-stat-table td{white-space:nowrap;padding:8px 6px}.player-stat-table th:first-child,.player-stat-table td:first-child{text-align:left;z-index:1;text-overflow:ellipsis;background:var(--surface);min-width:72px;max-width:108px;position:sticky;left:0;overflow:hidden;box-shadow:4px 0 6px -4px #0000001f}.history-card,.future-row,.kv-card,.compare-stat,.standing-row,.trend-card,.jsq-slot{border-top:1px solid var(--line);padding:12px 0}.history-card:first-of-type,.future-row:first-of-type,.kv-card:first-of-type,.compare-stat:first-of-type,.standing-row:first-of-type,.trend-card:first-of-type,.jsq-slot:first-of-type{border-top:0;padding-top:0}.history-meta,.history-extra{color:var(--muted);margin:0;font-size:12px}.history-score,.future-teams{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin:8px 0 6px;display:grid}.history-score strong,.future-teams strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:650;overflow:hidden}.history-score strong:last-child,.future-teams strong:last-child{text-align:right}.history-score b{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:20px}.future-teams{margin:4px 0 0}.future-teams span{color:var(--muted);text-align:center;font-size:12px;font-weight:700}.kv-card h4{color:var(--muted);margin:0 0 8px;font-size:13px;font-weight:700}.kv-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 6px;margin:0;display:grid}@media (width<=420px){.kv-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.kv-pair{gap:2px;display:grid}.kv-pair dt{color:var(--muted);font-size:11px}.kv-pair dd{font-variant-numeric:tabular-nums;margin:0;font-size:16px;font-weight:700}.jsq-slot h4{color:var(--muted);margin:0 0 8px;font-size:13px}.jsq-sides,.compare-sides{grid-template-columns:1fr 1fr;gap:12px;display:grid}.jsq-sides small,.compare-sides small{color:var(--muted);margin-bottom:4px;font-size:11px;display:block}.jsq-sides b,.compare-sides b{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:20px;font-weight:750;line-height:1.1;display:block}.jsq-sides span,.compare-sides span{color:var(--muted);margin-top:4px;font-size:12px;display:block}.jsq-sides>div:last-child,.compare-sides>div:last-child{text-align:right}.compare-name{text-align:center;color:var(--muted);margin-bottom:8px;font-size:12px;display:block}.standing-row{grid-template-columns:2ch minmax(0,1fr) auto auto;align-items:baseline;gap:8px;display:grid}.standing-row b{color:var(--muted);font-variant-numeric:tabular-nums}.standing-row strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.standing-row span,.standing-row em{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;font-style:normal}.trend-card strong{font-size:15px;display:block}.trend-card p{margin:6px 0 0;font-size:13px}.lineup-player{border-top:1px solid var(--line);grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;display:grid}.lineup-player:first-child{border-top:0;padding-top:0}.lineup-player b{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}.lineup-player strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.lineup-player span{color:var(--muted);font-size:12px}.jsq-max{color:var(--danger);font-weight:650}.detail-page .odds-card,.detail-page .score-card,.detail-page .live-events,.detail-page .live-statistics,.detail-page .analysis-item,.detail-page .lineup-block,.detail-page .facts-block,.detail-page .odds-market{background:#fff;border:0;border-bottom:1px solid #f0f0f0;border-radius:0;margin:0;padding:0 0 8px}.detail-page .live-events>h3,.detail-page .live-statistics>h3,.detail-page .odds-card>h3,.detail-page .odds-toolbar h3,.detail-page .lineup-block>h3,.detail-page .facts-block>h3,.detail-page .analysis-item>strong,.detail-page .score-card-kicker{color:#333;background:#fff;border-bottom:1px solid #f0f0f0;height:41px;margin:0 0 8px;padding:0 10px;font-size:15px;font-weight:600;line-height:40px}.detail-page .odds-toolbar{border-bottom:1px solid #f0f0f0;align-items:center;min-height:41px;margin:0 0 8px;padding:0 10px}.detail-page .odds-toolbar h3{border:0;height:auto;margin:0;padding:0;line-height:40px}.detail-page .odds-snap,.detail-page .odds-readout,.detail-page .stat-meter,.detail-page .history-card,.detail-page .kv-card,.detail-page .jsq-slot,.detail-page .lineup-list,.detail-page .injury-list,.detail-page .facts-block p{padding-left:10px;padding-right:10px}.detail-page .source-table-wrap,.detail-page .table-scroll{background:#fff;border:0;border-radius:0;margin:0}.detail-page .stat-group-label{color:#666;text-align:center;background:#f0f0f0;border-radius:0;width:100%;margin:0;padding:0;font-size:12px;font-weight:400;line-height:26px;display:block}.period-sheet{background:#e5e5e5;padding:5px}.period-sheet table{border-collapse:collapse;font-variant-numeric:tabular-nums;background:#fff;width:100%;font-size:12px}.period-sheet th,.period-sheet td{text-align:center;border-bottom:1px solid #f0f0f0;padding:6px 4px}.period-sheet th:first-child,.period-sheet td:first-child{text-align:left;padding-left:8px;font-weight:600}.period-sheet thead th{color:#999;background:#f6f8fa;font-weight:500}.detail-page .detail-hint,.detail-page .detail-loading{text-align:center;background:#fff;border-bottom:1px solid #e5e5e5;margin:0;padding:24px 10px}.section-bar{color:#333;background:#fff;border-bottom:1px solid #f0f0f0;height:41px;padding:0 10px;font-size:15px;font-weight:400;line-height:40px}.lq-score-wrap{background:#e5e5e5;padding:5px;overflow-x:auto}.lq-grid{table-layout:fixed;border-collapse:separate;border-spacing:1px;background:#e5e5e5;width:100%}.lq-grid th{color:#666971;background:#f0f0f0;font-size:12px;font-weight:400;line-height:22px}.lq-grid td{text-align:center;background:#fff;font-size:13px;line-height:30px}.lq-grid .lq-odds span{text-align:center;float:left;width:33.33%}.lq-score{font-size:12px}.lq-score th,.lq-score td{font-size:12px;line-height:26px}.lq-empty{text-align:center;color:#999eac;background:#fff;border-bottom:1px solid #e5e5e5;padding:30px 0;font-size:13px}.tech-grid{border-collapse:collapse;background:#fff;width:100%}.tech-grid td{text-align:center;border-bottom:1px solid #e5e5e5;width:30%;padding:5px 1px;font-size:12px}.tech-grid td.lq-mid{color:#666;background:#f6f8fa;border-left:1px solid #e5e5e5;border-right:1px solid #e5e5e5;width:40%}.tech-grid td.is-lead{color:#e62229}.detail-page .live-event{background:#fff;padding:8px 10px}.section-bar{align-items:center;gap:8px;display:flex}.section-bar .r-menu{background:#e9edf2;border-radius:3px;align-items:center;gap:0;height:26px;margin-left:auto;padding:2px;display:inline-flex}.section-bar .odds-company-select{color:#333;background-color:#0000;background-position:right 2px center;border:0;border-radius:0;max-width:38vw;height:26px;margin-left:auto;padding:0 22px 0 6px;font-size:13px}.section-bar .odds-company-select+.r-menu{margin-left:0}.section-bar .r-menu button,.chip-seg{color:#666;background:0 0;border-radius:2px;height:22px;padding:0 8px;font-size:12px;line-height:22px}.chip-seg.is-active,.section-bar .r-menu button.is-active{color:#333;background:#fff;font-weight:600}.odds-subtabs{background:#fff;border-bottom:1px solid #f0f0f0;height:37px;display:flex}.odds-subtab{color:#666971;flex:1;height:37px;font-size:15px;line-height:36px;position:relative}.odds-subtab.is-active{color:#333;font-weight:600}.odds-subtab.is-active:after{content:"";background:#0a8fea;border-radius:100px;width:30px;min-width:20%;height:4px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.odds-head{color:#666971;background:#f0f0f0;font-size:12px;line-height:32px;display:flex}.odds-head span{text-align:center}.odds-head span:first-child{width:17%}.odds-head span:nth-child(2){width:33%}.odds-head span:nth-child(3){flex:1}.odds-book{border-collapse:collapse;background:#fff;width:100%}.odds-book td,.odds-book th{text-align:center;vertical-align:middle;border-bottom:1px solid #f0f0f0;padding:8px 4px;font-size:13px}.odds-book .odds-book-head th{color:#666971;background:#f0f0f0;font-size:12px;font-weight:400;line-height:28px}.odds-book tr.is-alt td{background:#f6f8fa}.odds-book .odds-co{color:#0a8fea;text-align:left;width:17%;padding-left:10px}.odds-book .lq-odds{overflow:hidden}.odds,.lq-grid .lq-odds span,.odds-book .odds{float:left;text-align:center;width:33.33%}.odds.is-up{color:#e62229}.odds.is-down{color:#1aae5a}.analysis-grid{table-layout:auto;font-size:12px}.analysis-grid th,.analysis-grid td{white-space:nowrap;font-size:12px;line-height:26px}.analysis-grid th:first-child,.analysis-grid td:first-child{text-align:left;padding-left:8px}.analysis-text{color:#333;background:#fff;margin:0;padding:10px 12px 14px;font-size:13px;line-height:1.6}.backup-data{background:#fff;overflow:hidden}.lineup-title{clear:both;color:#333;text-align:center;background:#f6f6f6;height:36px;font-size:14px;line-height:36px}.substitute{float:left;background:#fff;width:50%;margin:0;padding:0;list-style:none}.substitute.guest{border-left:1px solid #eee}.backuplis{border-bottom:1px solid #f0f0f0;min-height:36px;padding:0 8px;font-size:13px;line-height:36px;overflow:hidden}.backuplis i{color:#fff;text-align:center;vertical-align:middle;border-radius:2px;width:20px;height:20px;margin-right:6px;font-size:11px;font-style:normal;line-height:20px;display:inline-block}.substitute.home i{background:#e97035}.substitute.guest i{background:#4a90d9}.backuplis .reason{float:right;color:#999;font-size:12px}.football-process-board,.football-process-legend{background:#fff;padding:10px 12px}.detail-page .team-rating-bar,.detail-page .team-rating-labels{margin-left:12px;margin-right:12px}.detail-page .team-rating-bar{border-radius:2px;height:10px;margin-top:12px}.detail-page .team-rating-labels{padding-bottom:12px}.jsq-grid td.is-lead{color:#e62229}
