/* Dense market boards and compact casino discovery. */
.match-board{padding-bottom:9px!important}.match-board .event-top{height:26px}.match-identity{display:flex;align-items:center;gap:8px;padding-top:7px}.match-name{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0;flex:1;font-size:12px;line-height:1.35}.match-name strong{font-weight:760}.match-v{font-size:11px;color:var(--faint);font-weight:500}.match-market-link{display:flex;align-items:center;gap:2px;color:var(--faint);font-size:11px;min-height:26px;flex-shrink:0}.match-market-link .icon{width:11px;height:11px}.match-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:20px;font-size:11px;line-height:1.4;color:var(--faint)}.match-meta>span:first-child{flex:1;min-width:0}.match-meta>span:last-child{flex-shrink:0;text-align:right}.match-meta .market-tag{margin-left:3px}.outcome-board{display:grid;gap:8px}.outcome-board.three-outcomes{grid-template-columns:repeat(3,minmax(0,1fr))}.outcome-board.two-outcomes{grid-template-columns:repeat(2,minmax(0,1fr))}.outcome-pair{min-width:0}.outcome-label{display:flex;align-items:center;justify-content:space-between;gap:3px;padding:1px 2px 4px;font-size:11px;line-height:1.2;color:var(--faint)}.outcome-label>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outcome-label>span:last-child{font-size:11px;white-space:nowrap;opacity:.8}.outcome-label i{font-style:normal}.outcome-prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.outcome-prices .odds.with-depth{min-height:35px;border-radius:4px}.outcome-prices .odds strong{font-size:13px;line-height:1.1}.outcome-prices .odds small{font-size:11px;line-height:1.2;font-variant-numeric:tabular-nums}.match-board .event-top .save{min-height:25px;min-width:25px}.match-board .event-top .league{font-size:11px}.sports-tools{display:flex;align-items:center;border:1px solid var(--line);border-top:0;background:var(--surface)}.sports-tools .board-search{border:0;flex:1;min-width:0;height:36px}.sports-tools>select{width:36%;min-width:0;border:0;border-left:1px solid var(--line);border-radius:0;background:var(--surface);color:var(--dim);font:500 11px var(--font);height:27px;padding:0 20px 0 9px;text-overflow:ellipsis}.decimal-label{display:flex;align-items:center;gap:4px}.back-key,.lay-key{display:inline-block;width:6px;height:6px;border-radius:1px}.back-key{background:#4DABD8}.lay-key{background:#CB7695;margin-left:5px}.sports-column>.board-title{box-shadow:none}.market-section-title{display:flex;justify-content:space-between;align-items:center;padding:13px 2px 7px;border-bottom:1px solid var(--line);margin-bottom:8px}.market-section-title h2{font:700 21px var(--display)}.market-section-title>span{font-size:11px;color:var(--faint)}.event-layout .real-market .panel-heading{padding:9px 12px}.event-layout .real-market .panel-heading h2{font-size:22px}.event-layout .real-market .panel-heading p{font-size:11px;margin-top:3px}.event-layout .real-market .exchange-table{padding:6px 10px}.event-layout .real-market .market-foot{padding:7px 11px;font-size:11px}.exchange-runner{min-height:44px}.price-depth .odds.with-depth{min-height:34px}.session-board{padding:0;margin:16px 0 0;overflow:hidden}.session-heading{display:grid;grid-template-columns:minmax(0,1fr) 78px 78px;gap:5px;align-items:center;background:var(--surface-2);border-bottom:1px solid var(--line);padding:9px 12px}.session-heading h2{font:700 23px var(--display)}.session-heading h2>span{font:500 11px var(--font);color:var(--faint);margin-left:4px}.session-heading .eyebrow{font-size:11px;letter-spacing:1.6px}.session-heading>span{text-align:center;font-size:11px}.session-market{border:0;border-radius:0;padding:0;margin:0!important;box-shadow:none}.session-row{display:grid;grid-template-columns:minmax(0,1fr) 78px 78px;gap:5px;align-items:center;padding:7px 12px;border-bottom:1px solid var(--line)}.session-name{min-width:0;display:flex;flex-direction:column;gap:3px}.session-name>strong{font-size:11px;line-height:1.35}.session-name>span{font-size:11px;color:var(--dim)}.session-name small{font-size:11px;line-height:1.3;color:var(--faint)}.session-row .odds{min-height:37px}.session-row .odds>strong{font-size:13px}.session-row .odds>small{font-size:11px;font-variant-numeric:tabular-nums}.racing-types{display:flex;gap:4px;padding:8px 10px;border:1px solid var(--line);border-top:0;background:var(--surface)}.racing-types>button{padding:6px 10px;font-size:11px;border:1px solid var(--line);border-radius:4px;background:var(--surface-2);color:var(--faint)}.racing-types>button.active{color:var(--text);border-color:var(--accent-hot,#B48A21);box-shadow:inset 0 -2px var(--accent-hot,#E7BD25)}.meeting-heading>a{display:flex;justify-content:space-between;align-items:center;padding:10px 0;gap:8px}.meeting-heading h3{font-size:14px;line-height:1.2}.meeting-heading>a>span{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap;color:var(--faint)}.meeting-heading .icon{width:11px;height:11px}.race-schedule{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding-bottom:10px}.race-schedule-link{display:grid;grid-template-columns:auto 1fr;gap:4px 7px;text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:8px;min-width:0}.race-schedule-link:hover{border-color:var(--accent-hot,#C1952A)}.race-schedule-link>time{font-size:13px;font-weight:800;color:var(--text)}.race-schedule-link>span{font-size:11px;align-self:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.race-schedule-link>b{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:500;color:var(--faint)}.race-schedule-link .icon{width:10px;height:10px}.race-empty{font-size:11px;color:var(--faint);grid-column:1/-1;padding:12px 0}.race-meeting-header{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;color:var(--text)}.race-meeting-header>div{display:flex;align-items:center;gap:14px}.race-meeting-header>div>.icon{width:39px;height:39px}.race-meeting-header .eyebrow{font-size:11px;color:var(--faint)}.race-meeting-header h1{font-size:39px;margin-top:4px}.race-picker{display:flex;gap:7px;overflow:auto;padding:12px 0;scrollbar-width:thin}.race-picker>button{min-width:120px;display:flex;flex-direction:column;gap:5px;text-align:left;border:1px solid var(--line);border-radius:5px;padding:9px 11px;background:var(--surface);color:var(--dim)}.race-picker>button time{font-size:17px;font-weight:800}.race-picker>button>span{font-size:11px;white-space:nowrap}.race-picker>button.active{border-color:var(--accent-hot,#D6AC24);background:var(--surface-2);box-shadow:inset 0 -3px var(--accent-hot,#E7BD25)}.race-runner-board{padding:0;overflow:hidden;margin-top:12px}.race-market-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;background:var(--surface-2);border-bottom:1px solid var(--line)}.race-market-heading h2{font-size:24px}.race-market-heading>div>span{display:block;font-size:11px;color:var(--faint);margin-top:4px}.race-runner-name{display:flex;align-items:center;gap:9px}.runner-cloth{width:26px;height:29px;flex-shrink:0;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;font:800 13px var(--font);background:var(--accent-hot,#F3D34F);color:#211D10;border:1px solid var(--warm-border,#A08831)}.runner-cloth.trap-1{background:#B92031;color:white;border-color:#EA5864}.runner-cloth.trap-2{background:#2672B5;color:white;border-color:#5494CA}.runner-cloth.trap-3{background:var(--surface-2);color:#25241F;border-color:#B5B29B}.runner-cloth.trap-4{background:#202020;color:white;border-color:#777}.runner-cloth.trap-5{background:#F79733;color:#23190E;border-color:#CB7017}.runner-cloth.trap-6{background:#2D863E;color:white;border-color:#6DB379}.runner-cloth.trap-7{background:#232323;color:white;border-color:#AAA}.runner-cloth.trap-8{background:#EFA8CB;color:#3B2130;border-color:#B56A93}.race-runner-name>span:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}.race-runner-name strong{font-size:12px;line-height:1.3}.race-runner-name small{font-size:11px;color:var(--faint)}
@media(min-width:981px){.compact-workspace{gap:20px}.compact-workspace>.sports-column>.match-list{max-height:calc(100dvh - 240px)}.game-grid.home-games{grid-template-columns:repeat(3,minmax(0,1fr));}.match-board .match-name{font-size:13px}.match-board .event-top .league{font-size:11px}.match-meta{font-size:11px}.outcome-label{font-size:11px}.outcome-prices .odds.with-depth{min-height:37px}.outcome-prices .odds strong{font-size:14px}.outcome-prices .odds small{font-size:11px}}
@media(max-width:760px){.sport-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;overflow:visible}.sport-chip{display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:47px;padding:5px 2px;font-size:11px;line-height:1.1;position:relative}.sport-chip .icon{width:16px;height:16px}.sport-chip .count{display:none}.sport-navigation{padding:5px 0 9px}.board-title h1,.board-title h2{font-size:24px}.board-title{height:37px}.board-title>div>span{font-size:11px}.board-title .text-link{font-size:11px}.sports-tools .board-search{padding:0 9px}.sports-tools .board-search input{font-size:16px}.sports-tools .board-search input::placeholder{font-size:11px}.sports-tools>select{font-size:11px;width:38%;padding-left:7px}.match-board{padding:0 9px 8px!important}.match-board .event-top{margin:0 -9px;padding:0 9px;height:24px}.match-identity{padding-top:5px}.match-name{font-size:11px;gap:4px}.match-meta{font-size:11px;min-height:19px;gap:4px}.match-meta .market-tag{font-size:11px;font-variant-numeric:tabular-nums}.outcome-board{gap:6px}.outcome-label{font-size:11px;padding-bottom:3px}.outcome-label>span:last-child{display:none}.outcome-prices{gap:2px}.outcome-prices .odds.with-depth{min-height:33px}.outcome-prices .odds strong{font-size:12px}.outcome-prices .odds small{font-size:11px}.mobile-casino-insert{padding:10px 0 12px;background:var(--bg);border-block:1px solid var(--line)}.mobile-casino-insert .board-title{background:transparent;box-shadow:none;color:var(--text);border:0;border-left:3px solid var(--accent-hot,#EDC129);height:31px;padding-left:10px;margin-bottom:5px}.mobile-casino-insert .board-title h2{font-size:25px}.mobile-casino-insert .board-title>div>span{color:var(--faint);font-size:11px}.mobile-casino-insert .board-title .text-link{color:var(--text)}.mobile-casino-insert .board-title .icon{color:var(--accent-ink,#C39D2D)}.mobile-casino-insert .section-tabs{background:transparent;height:30px;min-height:30px;border-bottom:0}.mobile-casino-insert .section-tabs>button{font-size:11px;height:30px}.mobile-casino-insert .game-grid.home-games{padding:6px 9px 0;gap:8px}.mobile-casino-insert .collection-art-grid{gap:8px}.mobile-casino-insert .catalogue-connection-note{border:0;padding:0;margin-top:9px;background:transparent;font-size:11px}.collection-art-link>span{font-size:11px}.collection-art-link>img{border-color:#AB892C66;box-shadow:0 4px 13px #0002}.event-layout .real-market .panel-heading{padding:8px 10px}.event-layout .real-market .panel-heading h2{font-size:20px}.event-layout .real-market .exchange-table{padding:4px 8px}.event-layout .real-market .market-foot{font-size:11px;padding:6px 9px}.exchange-runner{min-height:42px}.compact-teams{padding:10px 12px;gap:7px}.compact-teams h1,.compact-teams h2{font-size:24px}.compact-scoreboard .scoreboard-bottom{padding:6px 10px}.session-heading,.session-row{grid-template-columns:minmax(0,1fr) 60px 60px;padding-left:9px;padding-right:9px}.session-row{padding-top:6px;padding-bottom:6px}.session-name>strong{font-size:11px}.session-name small{font-size:11px}.session-heading h2{font-size:22px}.session-row .odds{min-height:35px}.race-meeting-header{padding:14px 12px}.race-meeting-header h1{font-size:30px}.race-meeting-header>div{gap:9px}.race-meeting-header>div>.icon{width:29px;height:29px}.race-meeting-header .eyebrow{font-size:11px}.race-picker>button{min-width:110px;padding:8px}.race-picker>button>time{font-size:15px}.race-picker>button>span{font-size:11px}.race-runner-name{gap:6px}.runner-cloth{width:22px;height:25px;font-size:11px}.race-runner-name strong{font-size:11px}.race-market-heading h2{font-size:22px}}
@media(max-width:350px){.match-name{font-size:11px}.match-meta{font-size:11px}.outcome-prices .odds strong{font-size:11px}.outcome-prices .odds small{font-size:11px}.session-heading,.session-row{grid-template-columns:minmax(0,1fr) 53px 53px}.sport-chip{font-size:11px}.meeting-heading h3{font-size:12px}.race-schedule-link{padding:7px;gap:3px 5px}.race-schedule-link>time{font-size:11px}.race-schedule-link>span{font-size:11px}}
.sports-tools>select{font-size:11px!important}.score-commentary{padding:15px}.score-commentary>h3{font:600 24px var(--display);margin-bottom:8px}.score-commentary>div{display:flex;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}.score-commentary time{min-width:35px;font-size:11px;color:var(--faint)}.score-commentary p{font-size:11px;line-height:1.7}
@media(max-width:760px){[data-theme="dark"] .mobile-casino-insert .board-title>div>span{color:var(--accent-ink-soft,#BEAF8E)}[data-theme="dark"] .mobile-casino-insert .board-title .text-link{color:var(--accent-hot,#F5D977)}.sports-tools>select{font-size:11px!important}}
.recent-balls{padding:13px 15px;border-block:1px solid var(--line)}.recent-balls>span{font-size:11px;color:var(--faint)}.recent-balls>div{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}.recent-balls b{display:flex;align-items:center;justify-content:center;min-width:25px;height:25px;padding:3px;border:1px solid var(--line);background:var(--surface-2);border-radius:50%;font-size:11px}.recent-balls b.boundary{background:#D7B636;color:#211900;border-color:#D7B636}.recent-balls b.wicket{background:#973544;color:#FFF;border-color:#C55762}
/* Preserve the rug identities used in Wynbook's racing presentation. */
.runner-cloth.trap-2{background:repeating-conic-gradient(#171717 0 25%,#FAF9EE 0 50%);background-size:12px 12px;color:#BB2434;text-shadow:-1px 0 #FFF,1px 0 #FFF,0 -1px #FFF,0 1px #FFF;border-color:#8F8C7B}.runner-cloth.trap-4{background:#2672B5;color:#FFF;border-color:#5494CA}.runner-cloth.trap-5{background:#F5D02F;color:#251F0D;border-color:var(--accent-ink,#A78B1A)}.runner-cloth.trap-7{color:#F5D02F}.runner-cloth.trap-9{background:repeating-linear-gradient(90deg,#2D863E 0 4px,#FAF9EE 4px 8px);color:#111;text-shadow:0 1px #FFF}.runner-cloth.trap-10{background:repeating-linear-gradient(90deg,#B92031 0 4px,#FAF9EE 4px 8px);color:#111;text-shadow:0 1px #FFF}

/* Desktop casino density: retain portrait proportions without oversized cards. */
@media(min-width:981px){
 .compact-workspace>.casino-column .home-games,
 .compact-workspace>.casino-column .collection-art-grid,
 .compact-workspace>.casino-column .catalogue-loading,
 .saved-games{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:14px 9px}
 .game-grid.catalogue-games{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))!important;gap:17px 10px}
 .catalogue-games .collection-art-grid,
 .catalogue-games .catalogue-loading{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:17px 10px}
 .related-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:17px 10px}
}

@media(max-width:760px){
 [data-theme="dark"] .mobile-casino-insert .board-title{background:transparent;border:0;border-left:3px solid var(--brand-on-board, var(--brand));color:var(--text);box-shadow:none}
 [data-theme="dark"] .mobile-casino-insert .board-title>div>span{color:var(--faint)}
}

/* Compact live match header and complete, readable market states. */
.compact-scoreboard .scoreboard-top{height:25px;padding:0 10px;font-size:11px}
.compact-scoreboard .scoreboard-top .save{min-width:24px;min-height:24px;padding:3px}
.compact-scoreboard .scoreboard-top .save .icon{width:13px;height:13px}
.compact-scoreboard .compact-teams{padding:8px 10px;gap:12px}
.compact-scoreboard .compact-teams>div{gap:7px;min-width:0}
.compact-scoreboard .compact-teams .team-mark{width:21px;height:21px;font-size:11px}
.compact-scoreboard .compact-teams h1,.compact-scoreboard .compact-teams h2{font:700 16px/1.2 var(--font);letter-spacing:-.3px;overflow-wrap:anywhere}
.compact-scoreboard .compact-teams>div>strong{font:750 16px/1.2 var(--font);font-variant-numeric:tabular-nums;white-space:normal;text-align:right}
.compact-scoreboard .compact-teams .versus{font:600 11px var(--font)}
.compact-scoreboard .scoreboard-bottom{min-height:23px;padding:4px 10px;font-size:11px;line-height:1.4;align-items:flex-start}
.compact-scoreboard .scoreboard-bottom>span:first-child{margin-left:0;min-width:0;overflow-wrap:anywhere}
.compact-scoreboard .scoreboard-bottom>span:last-child{flex-shrink:0}
.market-kind-filters{padding:7px 0;gap:4px;scrollbar-width:none}
.market-kind-filters>button:not(.icon-button){display:inline-flex;align-items:center;gap:5px;min-height:31px;padding:6px 8px;font-size:11px}
.market-kind-filters>button>span{font-size:11px;opacity:.65;font-variant-numeric:tabular-nums}
.event-layout .real-market .panel-heading{padding:7px 10px;gap:8px;min-height:37px}
.event-layout .real-market .panel-heading>div{min-width:0}
.event-layout .real-market .panel-heading h2{font:750 13px/1.35 var(--font);overflow-wrap:anywhere}
.event-layout .real-market .exchange-table{padding:4px 8px}
.event-layout .real-market .market-foot{padding:5px 9px;font-size:11px;flex-wrap:wrap;gap:4px}
.event-layout .exchange-panel+.exchange-panel{margin-top:9px}
.exchange-runner{min-height:42px}
.session-board{margin-top:9px}
.session-heading{padding-top:8px;padding-bottom:8px}
.session-heading h2{font:750 13px/1.35 var(--font)}
.session-name>strong{overflow-wrap:anywhere}
.market-state{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:4px 7px;border-radius:5px;font:650 11px/1.3 var(--font);letter-spacing:0;text-transform:none;white-space:normal;max-width:100%;min-width:0;flex-shrink:0;text-align:center;overflow:visible}
.market-state>span{min-width:0;overflow-wrap:normal}
.market-state .icon{width:12px;height:12px;flex:none}
.market-state.open{color:#176347;background:#E0F1E7}
.market-state.suspended{color:#9D3546;background:#F7E4E8}
.market-state.updating{color:var(--accent-ink-soft,#66604F);background:var(--sunken)}
.market-state.ball{color:#714600;background:#FFE7A6}
.state-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}
.cricket-ball{width:12px;height:12px;flex:none;border-radius:50%;background:#D85B29;position:relative;box-shadow:inset 0 0 0 1px #A54422;animation:live-ball-turn 2s linear infinite}
.cricket-ball:after{content:"";position:absolute;inset:1px 4px;border-left:1px dashed #FFF5D2;border-right:1px dashed #FFF5D2;border-radius:50%}
.market-halt{grid-column:2/-1;min-height:35px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line);border-radius:5px;padding:4px 7px;background:var(--surface-2);min-width:0}
.market-halt.ball{background:var(--surface-2);border-color:#EBCB79}
.market-halt.suspended{background:#FAEEF0;border-color:#EDD0D7}
.market-halt .market-state{padding:0;background:none}
.market-halt .halt-caption{font:500 11px/1.3 var(--font);color:var(--faint)}
.market-halt.ball .halt-caption{color:#856016}
[data-theme="dark"] .market-state.open{background:#19392E;color:#A2D9BF}
[data-theme="dark"] .market-state.suspended{background:#42282F;color:#F1B0BC}
[data-theme="dark"] .market-state.updating{background:var(--state-updating-bg,#34352D);color:var(--state-updating-ink,#CCC9B9)}
[data-theme="dark"] .market-state.ball{background:#493918;color:#FFD979}
[data-theme="dark"] .market-halt.ball{background:#342B17;border-color:#63502B}
[data-theme="dark"] .market-halt.suspended{background:#312226;border-color:#59323D}
[data-theme="dark"] .market-halt .market-state{background:none}
[data-theme="dark"] .market-halt.ball .halt-caption{color:#D9BC77}
@keyframes live-ball-turn{to{transform:rotate(360deg)}}
@media(max-width:760px){
 .compact-scoreboard .compact-teams{gap:5px;padding:7px 9px}
 .compact-scoreboard .compact-teams h1,.compact-scoreboard .compact-teams h2{font-size:13px}
 .compact-scoreboard .compact-teams>div>strong{font-size:13px;max-width:56%}
 .compact-scoreboard .scoreboard-bottom{font-size:11px}
 .compact-scoreboard .compact-teams .team-mark{width:17px;height:17px;font-size:11px}
 .market-kind-filters>button:not(.icon-button){font-size:11px;min-height:32px;padding:6px 7px}
 .event-layout .exchange-head,.event-layout .exchange-runner{grid-template-columns:minmax(0,1fr) 59px 59px;gap:4px}
 .session-heading,.session-row{grid-template-columns:minmax(0,1fr) 59px 59px;gap:4px}
 .session-row{padding-top:6px;padding-bottom:6px}
 .market-halt{gap:0;padding:6px 4px;min-height:35px}
 .market-halt .halt-caption{display:none}
 .market-halt .market-state{font-size:11px;gap:5px;line-height:1.4}
 .market-state{font-size:11px}
 .session-name>strong{font-size:11px;line-height:1.4}
 .session-name small{font-size:11px;line-height:1.4}
}
@media(prefers-reduced-motion:reduce){.cricket-ball{animation:none}}
.reduce-motion .cricket-ball{animation:none}

.market-state:before{content:none}
.pending-bet-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin:0 0 14px;border:1px solid var(--brand);border-radius:8px;background:var(--surface);font-size:11px}
.pending-bet-notice strong{display:block;font-size:13px;margin-bottom:3px}
.pending-bet-notice .button{flex-shrink:0;min-height:44px}
.recovery-code{display:block;overflow-wrap:anywhere;padding:18px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;margin:20px 0;font-size:17px}
.registration-details{gap:12px;margin:16px 0}
.registration-details>div{min-width:0}
.registration-details .field-input{width:100%;min-width:0;padding:10px;font-size:13px}
.access-preview:empty{border:0;padding:0;min-height:0}
.inline-slip-actions #save-ticket{font-size:12px;white-space:normal;line-height:1.2;padding:9px 10px}
.ticket-top{flex-wrap:wrap;gap:8px}
.ticket-top>span:last-child{font-size:11px}
.activity-row>div{min-width:0}
.activity-row>div>span{overflow-wrap:anywhere}
.event-layout{padding-top:0;margin-top:8px}
.event-main{min-width:0}
.event-main>[data-live-region="markets"]{margin-top:8px}
.event-main>.compact-scoreboard,.event-main>.race-meeting-header{margin-top:0}
.event-tabs{margin-top:0;gap:20px}
.event-tabs>button{height:36px}
@media(max-width:480px){
 .masthead:has(.header-wallet){flex-wrap:nowrap;gap:8px}
 .header-actions:has(.header-wallet){gap:7px}
 .header-wallet{min-width:0;padding-right:0;white-space:nowrap}
 .header-wallet>.icon{display:none}
 .header-wallet>strong{font-size:11px}
 .account-trigger .avatar{width:27px;height:27px;font-size:11px}
}

/* Shared WynBook crests, flags and portraits retain one stable compact box. */
.team-mark{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px;overflow:hidden;border:1px solid var(--line);border-radius:50%;background:var(--surface-2);color:var(--faint);font:750 11px/1 var(--font)}
.team-mark .team-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.team-mark-flag .team-image,.team-mark-portrait .team-image{object-fit:cover}
.team-mark-crest{border-radius:5px}
/* Crests are transparent artwork (owner 2026-10-16): no tile behind a loaded crest; the code only shows without one. */
.team-mark:has(>.team-image)>span{visibility:hidden}
.team-mark.team-mark-crest:has(>.team-image){background:transparent;border-color:transparent}
.match-name{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:7px}
.match-team{display:flex;align-items:center;gap:7px;min-width:0}
.match-team>strong{min-width:0;overflow-wrap:anywhere}
.match-v{padding:0 2px}
.selection-name{display:flex;align-items:center;gap:7px;min-width:0}
.selection-name>span:last-child{min-width:0;overflow-wrap:anywhere}
.selection-name .team-mark{flex-basis:22px;width:22px;height:22px}
.search-team-pair{display:flex;align-items:center;padding-right:5px;flex:none}
.search-team-pair .team-mark+ .team-mark{margin-left:-5px}
.compact-scoreboard .compact-teams .team-mark{flex-basis:24px;width:24px;height:24px}
.casino-dock{display:none}
.casino-dock-strip{display:none}

@media(max-width:760px){
 body:has(.casino-dock){--casino-dock-height:calc(min((100vw - 48px) / 10 * 3,96px) + 17px);--mobile-bottom-space:calc(62px + env(safe-area-max-inset-bottom,env(safe-area-inset-bottom,0px)) + var(--casino-dock-height))}
 body:has(.casino-dock) .main{padding-bottom:calc(var(--mobile-bottom-space) + 16px)}
 .casino-dock{display:block;position:fixed;z-index:49;left:0;right:0;bottom:calc(62px + env(safe-area-inset-bottom));padding:8px 12px;background:var(--surface);border-top:1px solid var(--line)}
 .casino-dock-games{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;max-width:344px;margin:0 auto}
 .casino-dock-game{display:block;min-width:0;aspect-ratio:2/3;overflow:hidden;border-radius:5px;background:var(--surface-2);outline-offset:3px;touch-action:manipulation;transition:transform .15s ease}
 .casino-dock-game>img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:2/3}
 .casino-dock-game:focus-visible{outline:2px solid var(--brand)}
 .casino-dock-game:active{transform:scale(.96)}
 .mobile-nav{background:var(--surface);backdrop-filter:none}
 body:has(.casino-dock) :is(.floating-slip,#toast){bottom:calc(var(--mobile-bottom-space) + 12px)}
 body:has(.casino-dock) .inline-betslip{scroll-margin-bottom:calc(var(--mobile-bottom-space) + 10px)}
 .match-name{gap:4px;line-height:1.3}
 .match-team{gap:5px}
 .match-team .team-mark{flex-basis:22px;width:22px;height:22px;font-size:11px}
 .selection-name{gap:5px}
 .selection-name .team-mark{flex-basis:20px;width:20px;height:20px;font-size:11px}
 /* Let the focused field and keyboard use the whole remaining viewport. */
 body:has(.casino-dock):has(input:focus,textarea:focus,select:focus){--casino-dock-height:0px}
 body:has(input:focus,textarea:focus,select:focus) .casino-dock{display:none}
 /* In play reserves the mobile viewport for markets and the betting controls. */
 .route-live .featured-mobile,body:has(.main.route-live) .casino-dock{display:none}
 body:has(.main.route-live){--casino-dock-height:0px}
 /* P10: scrolling down folds the dock to a 40 px tab; chrome-scroll.js owns html.chrome-down. The route, focus and slip rules keep 0px. */
 .casino-dock{transition:height .2s,transform .2s}
 html.chrome-down body{--casino-dock-height:40px}
 html.chrome-down body.has-inline-slip{--casino-dock-height:0px}
 html.chrome-down .casino-dock{height:40px;padding-top:0;padding-bottom:0;overflow:hidden;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='40' fill='%23FFFFFF' fill-opacity='.06' font-size='13'%3E%3Ctext x='3' y='15'%3E%E2%99%A0%3C/text%3E%3Ctext x='35' y='15'%3E%E2%99%A5%3C/text%3E%3Ctext x='19' y='35'%3E%E2%99%A6%3C/text%3E%3Ctext x='51' y='35'%3E%E2%99%A3%3C/text%3E%3C/svg%3E") 0 0/64px 40px repeat,radial-gradient(ellipse at 50% 45%,#0E3B2A 0,#072218 78%);border-top:1px solid rgba(255,184,12,.6);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
 html.chrome-down .casino-dock-strip{display:flex;align-items:center;gap:10px;width:100%;max-width:420px;height:39px;margin:0 auto;padding:0 2px;border:0;border-radius:0;background:none;color:#E8F0EA;font:inherit;text-align:left;cursor:pointer;touch-action:manipulation}
 html.chrome-down .casino-dock-strip:focus-visible{outline:2px solid #FFD75E;outline-offset:-3px}
 .casino-dock-thumbs{display:flex;flex:none}
 .casino-dock-thumbs>img{display:block;width:28px;height:28px;border-radius:7px;object-fit:cover;border:2px solid #072218;box-shadow:0 0 0 1px rgba(255,199,44,.45)}
 .casino-dock-thumbs>img+img{margin-left:-10px}
 .casino-dock-label{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.15}
 .casino-dock-label>b{font-size:13px;font-weight:800;letter-spacing:.3px;color:var(--ticker-accent,#FFD75E)}
 .casino-dock-label>small{display:none;font-size:11px;color:#B8C7BD;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .casino-dock-play{flex:none;padding:4px 10px;border-radius:999px;background:var(--ticker-accent,#FFD75E);color:#1A1300;font-size:12px;font-weight:800;line-height:1.2}
 html.chrome-down .casino-dock-games{display:none}
 .product-nav{transition:transform .2s,opacity .2s}
 html.chrome-down .product-nav{transform:translateY(-100%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .2s,opacity .2s,visibility 0s .2s}
}
@media(min-width:360px) and (max-width:760px){html.chrome-down .casino-dock-label>small{display:block}}
@media(max-width:760px) and (prefers-reduced-motion:reduce){.product-nav{transition:none}html.chrome-down .product-nav{transition:none}}
@media(prefers-reduced-motion:reduce){.casino-dock-game,.casino-dock{transition:none}}
/* Football stats: a home-share track under each stat row (the original wynbook match centre). */
.score-stat-row{position:relative;padding-bottom:12px}
.score-stat-row>.score-stat-track{position:absolute;left:0;right:0;bottom:4px;height:4px;border-radius:999px;background:var(--lay);overflow:hidden}
.score-stat-row>.score-stat-track::before{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--home,50%);background:var(--back-ink);border-radius:999px}

/* Mobile readability: keep complete names, scores and controls in their own cells. */
@media(max-width:760px){
 .compact-scoreboard .scoreboard-top{height:auto;min-height:44px;gap:8px}
 .compact-scoreboard .scoreboard-top>span{flex:1;min-width:0;flex-wrap:wrap;gap:4px 8px;padding-block:6px}
 .compact-scoreboard .scoreboard-top b{white-space:normal;max-width:none;overflow-wrap:anywhere}
 .compact-scoreboard .scoreboard-top .save{min-width:44px;min-height:44px;flex:none}
 .compact-scoreboard .compact-teams>div{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(72px,.8fr);gap:8px}
 .compact-scoreboard .compact-teams :is(h1,h2){min-width:0;line-height:1.4}
 .compact-scoreboard .compact-teams>div>strong{min-width:0;max-width:none;margin:0;line-height:1.4;overflow-wrap:anywhere}
 .compact-scoreboard .scoreboard-bottom{flex-wrap:wrap;gap:4px 12px;font-size:11px}
 .compact-scoreboard .scoreboard-bottom>span:last-child{flex-shrink:1}
 .market-kind-filters{flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:10px 0}
 .market-kind-filters>button:not(.icon-button){flex:none;min-width:0;min-height:44px;padding:8px 10px;font-size:11px;white-space:nowrap;line-height:1.35}
 .market-kind-filters>.icon-button{margin-left:0;min-width:44px;min-height:44px;flex:none}
 .market-kind-filters>button>span{font-size:11px}
 .event-tabs{height:auto;min-height:44px}
 .event-tabs>button{height:auto;min-height:44px}
 .match-meta{flex-wrap:wrap;gap:3px 8px}
 .match-meta>span:first-child{flex-basis:55%;overflow-wrap:anywhere}
 .match-meta>span:last-child{max-width:100%;overflow-wrap:anywhere}
 .match-team>strong{font-size:11px;line-height:1.4}
 .outcome-prices .odds.with-depth,.price-depth .odds.with-depth,.session-row .odds{min-height:44px}
 .outcome-prices .odds strong{font-size:13px}
 .outcome-label{min-height:20px;flex-wrap:wrap;font-size:11px}
 .outcome-label>span:first-child{min-width:0;white-space:normal;overflow-wrap:anywhere}
 .session-name>strong{font-size:11px}
 .session-name small{font-size:11px}
 .event-layout .exchange-runner>span,.session-name{min-width:0;overflow-wrap:anywhere}
 .pending-bet-notice{flex-wrap:wrap}
 /* Discovery stays on the lobby, not on top of a match, wallet or focused betslip. */
 body:has(.main:is(.route-event,.route-wallet,.route-account,.route-support)),body.has-inline-slip{--casino-dock-height:0px}
 body:has(.main:is(.route-event,.route-wallet,.route-account,.route-support)) .casino-dock,
 body.has-inline-slip .casino-dock{display:none}
 .inline-betslip{scroll-margin-bottom:calc(88px + env(safe-area-inset-bottom))}
}
/* One dot before "Open": compact.css draws it; the pill's own <i class="state-dot"> stays hidden. */
.market-state.open .state-dot{display:none}
.match-meta .market-tag{font-size:11px;font-variant-numeric:tabular-nums}
.market-state.open:before{margin-right:0;flex:none}
/* Phone fields: 16 px so iOS never zooms in. */
@media(max-width:760px){.inline-search input,.casino-search-row .inline-search input{font-size:16px}}
/* Touch hit areas: at least 44x44 px through a transparent pseudo-element; the visual box and the layout stay as they are. */
@media (pointer:coarse){
 a.login-link,button.theme-control,.product-nav>a,a.brand,.wc-time-tabs>button,button.search-trigger,a.account-trigger,.ws-line,.compact-scoreboard .scoreboard-top .save,a.match-market-link,a.event-stream-link{position:relative}
 a.login-link::after{content:"";position:absolute;inset:-6px -10px}
 button.theme-control::after{content:"";position:absolute;inset:-8px}
 .product-nav>a::after{content:"";position:absolute;inset:-6px 0}
 a.brand::after{content:"";position:absolute;inset:-13px 0}
 .wc-time-tabs>button::before{content:"";position:absolute;inset:-4px 0}
 button.search-trigger::before{content:"";position:absolute;inset:-2px}
 a.account-trigger::after{content:"";position:absolute;inset:-7px}
 .ws-line::after{content:"";position:absolute;inset:-11px 0}
 .compact-scoreboard .scoreboard-top .save::after{content:"";position:absolute;inset:-10px}
 a.match-market-link::after{content:"";position:absolute;inset:-9px -12px}
 .event-top .save,a.join-button{position:relative}
 .event-top .save::after{content:"";position:absolute;inset:-10px -10px -10px 0}
 a.join-button::after{content:"";position:absolute;inset:-8px 0}
 a.event-stream-link::after{content:"";position:absolute;inset:-10px -11px}
 .market-kind-filters>button:not(.icon-button),.market-kind-filters>.icon-button{min-height:44px}
 .market-kind-filters>.icon-button{min-width:44px}
}
/* P12: the market chips are one sticky snap row under the masthead; a fade marks the overflowing edge. */
.market-kind-filters{position:sticky;top:var(--header);z-index:30;background:var(--bg);flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}
.market-kind-filters::-webkit-scrollbar{display:none}
@media(max-width:760px){.market-kind-filters{top:calc(var(--header) + 58px)}html.chrome-down .market-kind-filters{top:var(--header)}}
.market-kind-filters>button{scroll-snap-align:start;flex:none;white-space:nowrap}
.market-kind-filters.is-overflow{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
/* P12: compact cricket score on the coupon card and the "This over" strip on the event scoreboard. */
.score-pill{margin-left:auto;flex:none;padding:1px 6px;border-radius:9px;background:var(--sunken);color:var(--text);font:700 11px/1.4 var(--font);font-variant-numeric:tabular-nums;white-space:nowrap}
.match-crr{font-size:11px;line-height:1.4;color:var(--faint);font-variant-numeric:tabular-nums}
.compact-scoreboard .recent-balls.this-over{display:flex;align-items:center;gap:8px;padding:5px 10px;border-block:0;border-bottom:1px solid var(--line)}
.recent-balls.this-over>div{margin-top:0;flex-wrap:nowrap}
.recent-balls.this-over b{min-width:22px;height:22px}
/* Sign-up recovery code card on the wallet / deposit page (owner 2026-10-24 simple sign-up). */
.signup-recovery{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-top:16px}
.signup-recovery>div{min-width:0;flex:1 1 240px}
.signup-recovery p{margin:4px 0 8px;font-size:12px;color:var(--dim)}
.signup-recovery .recovery-code{padding:10px 12px;margin:0;font-size:14px}

/* UPI app marks on the deposit form (owner 2026-10-24). White chips so the marks keep their own colours in dark mode too. */
.pay-apps{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}
.pay-app{display:inline-flex;align-items:center;justify-content:center;height:36px;min-width:72px;padding:0 10px;border-radius:8px;background:#fff;border:1px solid var(--line)}
.pay-app img{display:block;height:20px;width:auto;max-width:120px}
@media(max-width:760px){.pay-apps{flex-wrap:nowrap;gap:6px}.pay-app{flex:1 1 auto;min-width:0;height:34px;padding:0 6px}.pay-app img{height:16px;max-width:100%;object-fit:contain}}
/* Narrow phones (owner 2026-10-24: deposit button clear of the tab bar): the UPI app marks already say "pay from any UPI app",
   so the one-line intro under "Choose your amount." gives its room to the button. */
@media(max-width:400px){.account-payment-form>h2+p{display:none}.account-payment-form .pay-apps{margin-top:8px}}
/* Coupon cards (owner 2026-10-26, phone screenshot "Pills not aligned well"): when a long team name or its score badge wraps the label to two rows, the
   price pair of THAT team used to sit one row lower than its neighbour's. Each team column is a flex column: the label takes the spare height (content
   stays top-aligned) and the price pair always sits at the bottom, so every pair in a row shares one baseline. Visual only: no size or order change. */
.outcome-board>.outcome-pair{display:flex;flex-direction:column}
.outcome-board>.outcome-pair>.outcome-label{flex:1 0 auto;align-items:flex-start}
.outcome-board>.outcome-pair>.outcome-prices{margin-top:auto}
