/* Cricket XI visual system. Keep UI roles separate from collectible rarity/style. */
:root{
  --font-ui:'Nunito',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-card:'Bowlby One','Nunito',sans-serif;
  --ui-ink:#20364d; --ui-text:#39546c; --ui-muted:#526b80;
  --ui-bg:#eef4f8; --ui-surface:#ffffff; --ui-line:#cddce5;
  --ui-action:#087e78; --ui-action-deep:#065e5a; --ui-action-soft:#d9f2ed;
  --ui-gold:#e8b44c; --ui-gold-ink:#79510c; --ui-gold-soft:#fff0cc;
  --ui-danger:#b64049; --ui-success:#18734f; --ui-disabled:#dde6ec;
  --fh:var(--font-ui); --fb:var(--font-ui); --bd-fn:var(--font-ui); --bd-fd:var(--font-ui);
  --pc-name:var(--font-card); --pc-body:var(--font-ui);
  --m-bg:var(--ui-bg); --m-card:var(--ui-surface); --m-sunk:#e3edf2;
  --m-ink:var(--ui-ink); --m-ink2:var(--ui-text); --m-ink3:var(--ui-muted); --m-line:var(--ui-line);
  --m-acc:var(--ui-action); --m-acc-dk:var(--ui-action-deep); --m-acc-lt:var(--ui-action-soft);
  --m-green:var(--ui-success); --m-green-lt:#e0f3e8;
  --bd-bg:var(--ui-bg); --bd-ink:var(--ui-ink); --bd-ink2:var(--ui-text); --bd-line:var(--ui-line);
  --bd-me-d:var(--ui-action); --bd-opp-d:var(--ui-danger);
  --r-common:#62788b; --r-rare:#2864ba; --r-epic:#854ac2; --r-legendary:#a66a10;
}
html,body{font-family:var(--font-ui);font-weight:600;}
button,input,select,textarea{font-family:var(--font-ui);}
button{font-weight:800;}
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--ui-action);outline-offset:3px;}
::selection{background:#b6e6de;color:var(--ui-ink);}
#s-app,.app-col{color:var(--ui-ink);}
#s-app :is(.a-title,.game-title,.pf-nm,.rv-name),.welcome-title,.stitle,.f-title{font-weight:900;letter-spacing:-.6px;color:var(--ui-ink);line-height:1.2;}
#s-app .a-title{font-size:26px;}
#s-app :is(.a-sub,.page-intro,.set-bl,.sum-note,.builder-hint,.inspection-note,.inspection-ownership),.room-instruction{font-size:13px;line-height:1.55;}
#s-app :is(.game-pack-time,.battle-mode-description,.game-text-button,.friend-deck,.collection-count,.deck-hint),.room-start-note{font-size:12px;color:var(--ui-muted);}
#s-app :is(.game-wallet,.game-rewards,.team-name){color:var(--ui-text);font-weight:800;}
#s-app .a-nav{background:linear-gradient(#f5f9fbdd,#f5f9fb);border-top:1px solid #d8e5ec;}
#s-app .a-nav button{font-size:11px;font-weight:800;color:var(--ui-muted);}
#s-app .a-nav button.on{color:var(--ui-action-deep);}
#s-app .a-nav button.on .ni{background:var(--ui-action-soft);color:var(--ui-action-deep);}
/* One primary action treatment, including match and tutorial continuation. */
body .game-primary,#s-app .btn-acc,#s-final #f-btns .btn-p,#s-board .wbtn.go,#s-board .wbtn.lock,#s-board #board-next-ball,.btn-cont{
  background:linear-gradient(180deg,#0d8179,var(--ui-action));color:#fff;border:1px solid #08746f;
  box-shadow:0 3px 0 var(--ui-action-deep),0 6px 16px #087e7820,inset 0 1px 0 #ffffff30;font-weight:900;letter-spacing:.1px;
}
body .game-primary:active,#s-app .btn-acc:active{box-shadow:0 1px 0 var(--ui-action-deep);}
body .game-primary:disabled,#s-app .btn-acc:disabled,#s-board .wbtn:disabled{background:var(--ui-disabled);color:#607586;border-color:#cbd9e2;box-shadow:none;opacity:1;}
#s-app :is(.chip.on,.battle-modes button[aria-pressed="true"]){background:var(--ui-action-soft);color:var(--ui-action-deep);font-weight:900;}
.collection-tabs button[aria-pressed="true"]{color:var(--ui-action-deep);}
.collection-tabs button[aria-pressed="true"]:after{background:var(--ui-action);}
#s-app .game-rewards em,#s-app .a-nav .dot{background:var(--ui-gold);color:#47320d;font-weight:900;}
#s-app .ms-rw{color:var(--ui-gold-ink);background:var(--ui-gold-soft);}
#s-app .bar i,.jr-dots i.done{background:var(--ui-action);}
/* Coaching shares the same semantic accent as navigation and actions. */
.jr-card-k,.jr-pop-k,.guide-row .gr-t small{color:var(--ui-action-deep);}
.guide-row .gr-num,.jr-dots i.on{background:var(--ui-action);color:white;}
.guide-row.next,.jr-row.on{box-shadow:0 0 0 2px var(--ui-action),0 4px 14px #087e781a;}
.guide-row.done .gr-num{background:#526b80;}
.jr-done-strip{color:var(--ui-success);background:#e0f3e8;}
.jr-done-strip i,.guide-row.done .gr-ck,.tut-done-tick{background:var(--ui-success);}
.jr-pop-card h2,.tut-done-card h2,.jr-card-t{color:var(--ui-ink);font-weight:900;}
.jr-pop-card p,.tut-done-t,.jr-series-t{color:var(--ui-muted);}
/* Tabular numbers keep scores and counters stable from ball to ball. */
.score-num,.f-tot-score,.game-wallet,.rv-count,.collection-count,.room-code-panel strong,.player-stats b{font-variant-numeric:tabular-nums;}
#s-board .score-num{color:var(--ui-ink);font-weight:900;}
#s-board .sb-who,#s-board .wk-txt,#s-board .winstr small{color:var(--ui-text);font-weight:700;}
#s-board .winstr{color:var(--ui-ink);font-weight:800;}
#s-board .sb-need.me{background:var(--ui-action);color:white;}
#s-board .sb-need.opp{background:var(--ui-danger);color:white;}
#dice-overlay .d-beat b.bad,#dice-overlay .dmod.lower{color:var(--ui-danger);}
#dice-overlay .d-beat b.good,#dice-overlay .dmod.higher{color:var(--ui-success);}
#s-board #dice-overlay .d-dice-who{color:var(--ui-ink);font-weight:900;}
#s-board #dice-overlay .dbase{color:var(--ui-text);font-weight:800;}
#s-board #dice-overlay .drlbl{color:var(--ui-text);font-weight:900;}
#s-app .mc-name{font-weight:800;text-shadow:0 1px 3px #102338;}
#s-app .r-tag{font-weight:900;}
.pack-flow .rv-rar .r-tag{font-size:12px;letter-spacing:.5px;color:var(--ui-gold-ink);}
.pack-flow .badge-new{background:var(--ui-success);color:white;}
.pack-flow .badge-dupe{background:#e3edf2;color:var(--ui-text);}
/* Form text must be as readable as the surrounding instructions. */
input::placeholder,textarea::placeholder{color:var(--ui-muted);opacity:1;}
#s-app input{color:var(--ui-ink);}
.profile-reset,.match-leave{color:var(--ui-danger);font-weight:800;}
#s-app .ob-welcome h1,#s-app .starter-preview h2{font-weight:900;color:var(--ui-ink);letter-spacing:-.6px;}
#s-app .onboarding .ob-brand .a-title{color:var(--ui-ink);font-weight:900;}
/* Screen-level rules must outrank legacy view-specific font shorthands. */
#s-app[data-view] .a-title,#s-app[data-view="profile"] .pf-nm{font-family:var(--font-ui);font-weight:900;letter-spacing:-.6px;color:var(--ui-ink);}
#s-app .reward-amount{color:var(--ui-ink);font-weight:900;font-variant-numeric:tabular-nums;}
#s-app .reward-amount .coin{color:var(--ui-gold-ink);}
#s-app .pack-flow .rv-rar .r-tag.common{color:var(--r-common);}
#s-app .pack-flow .rv-rar .r-tag.rare{color:var(--r-rare);}
#s-app .pack-flow .rv-rar .r-tag.epic{color:var(--r-epic);}
#s-app .pack-flow .rv-rar .r-tag.legendary{color:var(--r-legendary);}
.club-mark{font-family:var(--font-ui);}

#s-app .game-page-title{font:900 26px/1.2 var(--font-ui);letter-spacing:-.6px;color:var(--ui-ink);}
#s-app .player-stats b{color:var(--ui-ink);font-weight:900;}
/* Reserve caption space so compact phones retain the selected team's name. */
@media(min-height:621px) and (max-height:740px){
  .team-fan{height:174px;flex-shrink:0;}
  .team-fan .mc{width:100px;height:143px;top:14px;}
  .team-fan .fan-captain{width:112px;height:160px;top:0;}
  .team-name{position:relative;flex-shrink:0;font-size:13px;padding:7px 16px;}
}
/* Match palette: expressive scores, calm reading copy, distinct player sides. */
:root{--match-teal:#087c78;--match-coral:#b34f59;--match-blue:#386f9d;--match-plum:#79528d;--match-copy:#526f8b;--match-gold:#966314;}
:is(#s-board,#dice-overlay,#toss-overlay,#wait-overlay,#modal-overlay,#log-overlay,#discard-overlay,#club-match-menu,#s-final){
  --ui-ink:var(--match-blue);--ui-text:var(--match-copy);--ui-muted:#60738a;
  --bd-ink:var(--match-blue);--bd-ink2:var(--match-copy);
}
#s-board #my-score,#s-board .sb-me .sb-who{color:var(--match-teal);}
#s-board #opp-score,#s-board .sb-opp .sb-who{color:var(--match-coral);}
#s-board .score-num.yet{color:var(--match-copy);font-weight:600;}
#s-board .wk-txt,#s-board .sb-who{font-weight:600;}
#s-board .winstr{color:var(--match-plum);font-weight:800;}
#s-board .winstr small{color:var(--match-copy);font-weight:600;}
#s-board .wtag{background:#ede4f4;color:var(--match-plum);}
#s-board .sb-last b{color:var(--match-blue);}
#s-board .empty-active-txt{color:var(--match-copy);}
#s-board .bd-toast{color:var(--match-copy);}
#s-board .bd-toast.me b{color:var(--match-teal);}
#s-board .bd-toast.opp b{color:var(--match-coral);}
#s-board #dice-overlay #d-who-you{color:var(--match-teal);}
#s-board #dice-overlay #d-who-opp{color:var(--match-coral);}
#s-board #dice-overlay .dbase{color:var(--match-copy);font-weight:700;}
#s-board #dice-overlay .ivory-original,#s-board #dice-overlay .ivory-note{color:var(--match-copy);}
#s-board #dice-overlay .ivory-total{color:var(--match-gold);background:#fff3d9;border-color:#dfc389;}
#s-board #dice-overlay .ivory-contribution{color:var(--match-plum);}
.dice-effect-token{color:var(--match-plum);}
.dice-effect-token small{color:var(--match-copy);}
/* These explicitly supersede the old !important monochrome run treatment. */
#dice-overlay .druns{color:var(--match-teal)!important;font-weight:900;}
#dice-overlay .druns.col-six,#dice-overlay .d-event-lbl.six{color:var(--match-plum)!important;}
#dice-overlay .druns.col-four,#dice-overlay .d-event-lbl.four{color:var(--match-blue)!important;}
#dice-overlay .druns.col-wicket,#dice-overlay .d-event-lbl.wicket{color:var(--match-coral)!important;}
#dice-overlay .druns.col-dot,#dice-overlay .d-event-lbl.dotball{color:var(--match-copy)!important;}
#dice-overlay .d-event-lbl{font-weight:900;}
#s-board #dice-overlay .drlbl{color:var(--match-copy);font-weight:700;}
#dice-overlay .d-beat,#dice-overlay .d-beat b{color:var(--match-plum);}
#dice-overlay .d-effects-title,#dice-overlay .d-eff-section{color:var(--match-plum);font-weight:800;}
#dice-overlay .d-effect-text{color:var(--match-copy);}
#dice-overlay .d-effect-text.good{color:var(--match-teal);}
#dice-overlay .d-effect-text.warn{color:var(--match-coral);}
#dice-overlay .d-effect-text.cap{color:var(--match-gold);}
#dice-overlay .ball-explainer>summary{color:var(--match-plum);font-weight:700;}
#toss-overlay .wtxt,#wait-overlay .wtxt,#modal-overlay .mname,#club-match-menu h2{color:var(--match-plum);}
#modal-overlay .mab-name,#club-match-menu .match-captains b{color:var(--match-teal);}
#club-match-menu .match-log-btn{color:var(--match-blue);}
#s-final .f-title{color:var(--match-plum);font-weight:900;}
#s-final .f-tot-half:first-child :is(.f-tot-score,.f-tot-lbl){color:var(--match-teal);}
#s-final .f-tot-half:last-child :is(.f-tot-score,.f-tot-lbl){color:var(--match-coral);}
#s-final .f-tot-score{font-weight:900;}
#s-final .innings-title,#s-final .innings-score,#s-final .pm-row b{color:var(--match-blue);}
