.side-card,.bonus-card,.coupon-card,.virtual-league,.featured-match,.league-group,.detail-card,.standings-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.side-card{padding:12px}.side-card h2{margin:2px 0 10px}.sport-link,.popular-card a{display:flex;align-items:center;gap:9px;min-height:34px;border-radius:7px;text-decoration:none;padding:7px 8px}.sport-link img,.popular-card img{width:19px;height:16px;object-fit:contain}.sport-link span,.popular-card span{flex:1}.sport-link b{color:var(--primary)}.sport-link small{color:#8c98a6}.sport-link.active{background:var(--primary-soft);color:var(--primary);border-left:3px solid var(--primary);font-weight:var(--weight-semibold)}.sport-link.disabled{color:var(--muted)}.popular-card a:hover{background:#f3f8f5;color:var(--primary)}.bonus-card{min-height:190px;padding:18px;position:relative;overflow:hidden;color:var(--primary)}.bonus-card strong{font-size:30px;display:block}.bonus-card b{font-size:18px}.bonus-card p{color:var(--text)}.bonus-card>img{position:absolute;width:90px;right:4px;bottom:40px;opacity:.28}.bonus-card>a{position:absolute;left:16px;right:16px;bottom:14px;background:var(--primary);color:#fff;padding:10px;text-align:center;border-radius:6px;text-decoration:none;font-weight:var(--weight-bold)}.filter-bar{display:flex;align-items:center;gap:7px;margin-bottom:12px}.filter-tabs{display:flex;gap:5px}.filter-tabs a,.date-picker label,.filter-trigger{height:36px;border:1px solid var(--border);border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;padding:0 14px;text-decoration:none;font-weight:var(--weight-semibold);white-space:nowrap}.filter-tabs a.active{background:var(--primary);border-color:var(--primary);color:#fff}.filter-tabs i{font-style:normal;margin-left:6px;padding:1px 6px;background:var(--danger);color:#fff;border-radius:10px}.date-picker{margin-left:auto}.date-picker label{position:relative;min-width:135px}.date-picker input{position:absolute;inset:0;opacity:0;cursor:pointer}.filter-trigger{gap:6px;cursor:pointer}.filter-trigger img{width:15px}.filter-panel{background:#fff;border:1px solid var(--border);border-radius:8px;padding:12px;margin:-5px 0 12px}.league-filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.league-filter-grid label{display:flex;gap:7px;align-items:center}.score-stream{display:flex;gap:22px;overflow-x:auto;white-space:nowrap;background:var(--primary-soft);border:1px solid #cee9db;border-radius:9px;padding:9px 12px;margin-bottom:12px;scrollbar-width:thin}.score-stream a{display:flex;align-items:center;gap:6px;text-decoration:none}.score-stream b,.score-stream strong{color:var(--primary)}.league-group{overflow:hidden;margin-bottom:10px}.league-header{height:36px;display:flex;align-items:center;gap:9px;padding:0 12px;background:#fff;border-bottom:1px solid var(--border)}.league-header>img{width:20px;height:15px;object-fit:contain}.league-header>a{font-weight:var(--weight-bold);text-decoration:none;flex:1}.league-header>span{color:var(--muted)}.league-header button{border:0;background:transparent;color:var(--muted);cursor:pointer}.match-row{min-height:64px;display:grid;grid-template-columns:34px 64px minmax(250px,1fr) 62px 204px 48px;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--border)}.match-row:last-child{border-bottom:0}.favorite-button{font-size:20px;border:0;background:transparent;color:#9aa6b2;cursor:pointer}.favorite-button.selected{color:#f3aa13}.match-status{display:flex;flex-direction:column;align-items:flex-start;gap:2px;color:var(--muted)}.match-status .live-label{background:var(--danger);color:#fff;border-radius:4px;padding:2px 5px;font-size:10px;font-weight:var(--weight-bold)}.match-status .minute{color:var(--primary);font-weight:var(--weight-bold)}.team-pair{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr 1fr;column-gap:9px;text-decoration:none}.team-pair span{display:flex;align-items:center;gap:7px;min-width:0;font-weight:var(--weight-semibold)}.team-pair span:nth-of-type(2){grid-column:1;grid-row:2}.team-pair img{width:22px;height:22px;object-fit:contain;flex:0 0 22px}.team-pair b{grid-column:2;grid-row:1/3;align-self:center;font-size:14px}.half-time{text-align:center;color:var(--primary);font-size:11px}.quick-odds{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.odds-chip,.odds-button{border:1px solid #bfe5d1;background:#fbfffd;border-radius:6px;min-height:39px;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--text)}.odds-chip i{font-style:normal;color:var(--muted);font-size:10px}.odds-chip b{font-size:12px}.market-count{border:0;background:transparent;color:var(--primary);font-weight:var(--weight-bold);cursor:pointer}.market-count[data-count="0"]{visibility:hidden}.market-panel{padding:12px;background:#f9fbfa;border-top:1px solid var(--border)}.coupon-card{padding:12px}.coupon-card h2{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:10px;margin:0}.coupon-card h2 img{width:17px}.coupon-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:#f7f9fa;border:1px solid var(--border);border-radius:8px;padding:3px;margin:10px 0}.coupon-tabs button{border:0;background:transparent;padding:7px;border-radius:16px}.coupon-tabs button.active{background:var(--primary);color:#fff}.coupon-empty{min-height:170px;border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px;gap:8px}.coupon-empty img{width:50px;height:50px}.coupon-empty p{color:var(--muted);margin:0}.coupon-summary p{display:flex;justify-content:space-between;margin:9px 0}.coupon-summary .gain{color:var(--primary)}.coupon-summary>a{display:block;background:var(--primary);color:#fff;text-decoration:none;text-align:center;padding:10px;border-radius:6px;font-weight:var(--weight-bold)}.coupon-card.compact .coupon-empty{min-height:110px}.virtual-league,.featured-match{padding:14px}.virtual-league{display:flex;justify-content:space-between;background:linear-gradient(135deg,#fff,#f1edff)}.virtual-league img{width:72px}.virtual-league a{display:inline-block;background:#6e50d5;color:#fff;text-decoration:none;padding:7px 13px;border-radius:5px;font-weight:var(--weight-bold)}.featured-match h2{border-left:3px solid var(--primary);padding-left:9px}.featured-match>a{text-decoration:none}.featured-match>a>div{display:grid;grid-template-columns:1fr 28px 1fr;align-items:center}.featured-match span{display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px}.featured-match span img{width:50px;height:50px;object-fit:contain}.featured-match time{display:block;text-align:center;color:var(--muted);margin:9px}.featured-match em{display:block;text-align:right;border-top:1px solid var(--border);padding-top:8px;color:var(--primary);font-style:normal}.market-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.market-group{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}.market-group>header{display:flex;align-items:center;gap:8px;background:#25313b;color:#fff;padding:8px 10px}.market-group>header h3{margin:0;flex:1}.market-group>header span{color:#ffd275}.market-group>header em{font-style:normal;font-size:10px}.market-group.capability-supported>header{background:var(--primary-dark)}.market-group.capability-manual>header{background:#86610b}.market-outcomes{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.market-outcomes form{margin:0}.odds-button{width:100%;border:0;border-radius:0;border-right:1px solid var(--border);padding:7px;justify-content:space-between}.odds-button:not(:disabled):hover{background:var(--primary-soft);color:var(--primary)}.odds-button:disabled{cursor:not-allowed;opacity:.58}.standings{width:100%;border-collapse:collapse}.standings th,.standings td{padding:6px;border-bottom:1px solid var(--border);text-align:right}.standings th:nth-child(2),.standings td:nth-child(2){text-align:left}.standings tr.selected{background:var(--primary-soft);font-weight:var(--weight-semibold)}.standings a{text-decoration:none}.mobile-coupon-bar{display:none}@media(max-width:1100px){.mobile-coupon-bar{display:flex;position:fixed;left:10px;right:10px;bottom:10px;z-index:45;background:var(--primary);color:#fff;border-radius:9px;padding:11px 14px;align-items:center;justify-content:space-between;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,.2)}}@media(max-width:680px){.filter-bar{overflow-x:auto;padding-bottom:5px}.filter-tabs{flex:0 0 auto}.date-picker{margin-left:0}.filter-trigger{display:none}.match-row{grid-template-columns:28px 49px minmax(0,1fr) 42px;min-height:68px;padding:6px}.match-status .code{display:none}.half-time,.quick-odds{display:none}.team-pair{grid-column:3}.market-count{grid-column:4}.league-header{height:36px}.league-filter-grid{grid-template-columns:1fr}.market-grid{grid-template-columns:1fr}}
/* Shared date, score, table and final-state components. */
.date-nav{margin-left:auto;display:flex;align-items:center;gap:4px}.date-step{width:34px;height:36px;border:1px solid var(--border);border-radius:8px;display:grid;place-items:center;text-decoration:none;font-size:20px}.date-picker{position:relative;margin-left:0}.date-picker-button{height:36px;min-width:135px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);display:flex;align-items:center;justify-content:center;gap:7px;font-weight:var(--weight-semibold);cursor:pointer}.date-picker-button img{width:15px;height:15px}.date-picker input{position:absolute;width:1px;height:1px;right:50%;bottom:0;opacity:0;pointer-events:none}.team-pair{grid-template-columns:minmax(0,1fr) 52px;grid-template-rows:28px 28px;align-items:center}.team-pair strong,.team-pair b{grid-column:2;grid-row:1/3;place-self:center;font-size:14px;line-height:1}.half-time{display:grid;place-items:center}.standings a{display:flex;align-items:center;gap:6px}.standing-team-logo{width:18px;height:18px;object-fit:contain;flex:0 0 18px}.match-row.finished .minute{color:#fff;background:#46515d;border-radius:4px;padding:3px 6px}.match-row.finished .team-pair strong{font-weight:800;color:var(--text)}
@media(max-width:680px){.team-pair{grid-template-columns:minmax(0,1fr) 42px;grid-template-rows:30px 30px}}
.standings-icon{width:20px!important;height:20px!important;display:block;object-fit:contain}.standings-button{width:32px;height:32px;display:grid;place-items:center;border-radius:6px!important}.standings-button:before{content:none!important}.standings-button:hover,.standings-button:focus-visible{background:var(--primary-soft)!important;color:var(--primary)!important;outline:2px solid var(--primary)}.market-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 12px}.market-toolbar b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-toolbar a{margin-left:auto;white-space:nowrap;color:#fff;font-weight:800;text-decoration:none}.market-toolbar a:hover{text-decoration:underline}.score-stream.goal-takeover{overflow:hidden;justify-content:center}.score-stream.goal-takeover .score-stream-track{width:100%;display:flex;align-items:center;justify-content:center;gap:12px}.ticker-goal{background:var(--danger);color:#fff!important;border-radius:999px;padding:4px 10px}.score-stream.goal-takeover em{font-style:normal;color:var(--primary);font-weight:800}
@media(max-width:680px){.market-toolbar{align-items:flex-start;flex-direction:column;gap:7px}.market-toolbar b{white-space:normal}.market-toolbar a{margin-left:0}.date-picker-button span{font-size:0}.date-picker-button span:after{content:attr(data-short-date);font-size:12px}}
.coupon-mini-list{display:grid;border:1px solid var(--border);border-radius:8px;overflow:hidden}.coupon-mini-list p{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:9px;border-bottom:1px solid var(--border)}.coupon-mini-list p:last-of-type{border-bottom:0}.coupon-mini-list span{min-width:0;font-size:11px;font-weight:700}.coupon-mini-list span small{display:block;margin-top:2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coupon-mini-list p>b{color:var(--primary)}.mobile-coupon-bar i{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:4px;border-radius:11px;background:#fff;color:var(--primary);font-style:normal}
.coupon-count{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:5px;padding:0 6px;border-radius:11px;background:var(--primary-soft);color:var(--primary);font-size:11px}.coupon-mini-selection{display:grid;grid-template-columns:22px minmax(0,1fr) auto 24px;align-items:center;gap:7px;margin:0;padding:9px;border-bottom:1px solid var(--border)}.coupon-mini-selection:last-child{border-bottom:0}.coupon-mini-selection>img{width:20px;height:20px;object-fit:contain}.coupon-mini-selection>span{min-width:0;font-size:11px;font-weight:700}.coupon-mini-selection>span small{display:block;margin-top:2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coupon-mini-selection>b{color:var(--primary)}.coupon-mini-selection form{margin:0}.coupon-mini-selection button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--surface-soft);color:var(--danger);cursor:pointer}.coupon-inline-error{margin:8px 0;padding:8px;border-radius:7px;background:var(--danger-soft,#fff0f0);color:var(--danger);font-size:11px}.odds-chip.selected,.odds-button.selected{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 0 0 2px var(--primary-soft)}.odds-chip.selected i,.odds-button.selected span,.odds-button.selected b{color:#fff}.odds-chip.selected:not(:disabled):hover,.odds-button.selected:not(:disabled):hover{background:var(--primary-dark);color:#fff}.odds-chip.selected:focus-visible,.odds-button.selected:focus-visible{outline:3px solid var(--primary-soft);outline-offset:2px}.odds-chip:disabled,.odds-button:disabled{box-shadow:none}.coupon-mini-selection button[aria-busy="true"],form[data-coupon-action] button[aria-busy="true"]{cursor:wait;opacity:.65}[data-theme="dark"] .odds-chip.selected,[data-theme="dark"] .odds-button.selected{background:var(--primary);border-color:var(--primary);color:#fff}
