/* EPC Q interface layer. Follows Apple's Human Interface rules: system type scale, grouped surfaces,
   hairlines, glass materials and spring motion. Remove the <link> to this file to go back to app.css alone. */
:root{
  --tx:#0c1220;--bg:#f2f2f7;--card:#fff;--ink:#16274d;--ink2:#1f3564;--ink3:#32497d;
  --g:#6b6b73;--g2:#aebbd4;--g3:#c4c4c9;--fill:rgba(118,118,128,.12);--line:rgba(60,60,67,.17);
  --tint:#16274d;--bad-tx:#d70015;
  --text:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter",system-ui,sans-serif;
  --glass-l:rgba(255,255,255,.66);--glass-d:rgba(255,255,255,.11);
  --navy:linear-gradient(165deg,#20386b 0%,#16274d 55%,#111f3e 100%);
  --spring:cubic-bezier(.32,.72,0,1);--snap:cubic-bezier(.2,.9,.3,1.2);
}
:root[data-theme=dark]{--tx:#f5f5f7;--bg:#000;--card:#1c1c1e;--ink:#16274d;--ink2:#1f3564;--ink3:#32497d;--fill:rgba(118,118,128,.24);--g:#98989f;--g3:#48484a;--line:rgba(84,84,88,.62);--tint:#d7ff3d;--bad-tx:#ff6961;--glass-l:rgba(44,44,46,.66)}
body{font-feature-settings:"tnum","cv11","ss03";text-rendering:optimizeLegibility}
@supports (font:-apple-system-body){body{letter-spacing:0}}
svg.i{stroke-width:1.75}

/* ---- large titles and section titles ---- */
.head{align-items:flex-end;margin-bottom:16px}
.date{font-size:13px;font-weight:600;color:var(--g);letter-spacing:0}
.big{margin-top:1px}
.hlock{height:78px;margin-left:-3px}
.sh{margin:26px 2px 9px;align-items:center}

.sh span{font-size:15px;font-weight:400;color:var(--g)}
.sh .link{font-size:15px;font-weight:400;color:var(--tint)}
.lbl{font-size:13px;font-weight:500;color:var(--g);margin:18px 16px 7px}
.note{font-size:15px;line-height:1.35;color:var(--g)}

/* ---- buttons ---- */
.b{min-height:50px;font-size:17px;font-weight:600;letter-spacing:-.012em;transition:transform .32s var(--spring),opacity .2s,background .2s}
.b.pri{background:var(--navy);color:#fff;box-shadow:0 1px 1px rgba(14,26,54,.14),0 6px 16px rgba(22,39,77,.2),inset 0 .5px 0 rgba(255,255,255,.2)}
.b.go{background:var(--accent);background-image:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0) 60%);color:var(--on);box-shadow:0 1px 1px rgba(90,110,0,.18),0 8px 20px rgba(170,205,20,.32),inset 0 .5px 0 rgba(255,255,255,.65)}
.b.sec{background:var(--fill);color:var(--tx)}
.b.bad{background:rgba(255,59,48,.11);color:var(--bad-tx)}
.b.glass{background:rgba(255,255,255,.12);color:#fff;-webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%);box-shadow:inset 0 .5px 0 rgba(255,255,255,.28),inset 0 0 0 .5px rgba(255,255,255,.08)}
.b:active,.round:active,.chip:active,.court:active,.livecard:active,.tile:active,.callbar button:active,.buzz:active{transform:scale(.965);opacity:.86;transition-duration:.12s}
:root[data-theme=dark] .b.pri{background:#f5f5f7;color:#0a0a0a;box-shadow:none}
.link{font-weight:400;color:var(--tint)}
.round{background:var(--card);box-shadow:0 .5px 1px rgba(0,0,0,.06),0 4px 14px rgba(15,23,42,.07);transition:transform .32s var(--spring)}
.round svg.i{width:22px;height:22px}
.round.plus{background:var(--accent);background-image:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,0) 60%);box-shadow:0 6px 16px rgba(170,205,20,.36),inset 0 .5px 0 rgba(255,255,255,.7)}
:root[data-theme=dark] .round{box-shadow:none}

/* ---- capsules ---- */
.chips{gap:7px;padding-block:4px;margin-block:-4px 12px}
.chip{position:relative;height:36px;padding:0 14px;font-size:14px;font-weight:500;box-shadow:0 .5px 1px rgba(0,0,0,.05);transition:transform .32s var(--spring),background .2s}
button.chip::after{content:"";position:absolute;inset:-4px 0}
.chip.live,.chip.on{background:var(--navy);box-shadow:inset 0 .5px 0 rgba(255,255,255,.2)}
:root[data-theme=dark] .chip.on{background:#f5f5f7;color:#0a0a0a}
.chip.warn{color:#c93400}:root[data-theme=dark] .chip.warn{color:#ffb340}
.dot{width:7px;height:7px;box-shadow:0 0 6px var(--accent)}

/* ---- check in ---- */
.check .field{height:50px;font-size:17px;font-weight:400;box-shadow:0 .5px 1px rgba(0,0,0,.05)}
.check .field svg.i{width:20px;height:20px}
.check .round{width:50px;height:50px}

/* ---- court cards ---- */
.courts{gap:10px}
.court{background:var(--navy);border-radius:24px;padding:14px 15px 16px;box-shadow:0 1px 2px rgba(14,26,54,.16),0 10px 26px rgba(22,39,77,.17),inset 0 .5px 0 rgba(255,255,255,.18);transition:transform .32s var(--spring),opacity .2s}

.clock{font-size:14px;font-weight:500;color:rgba(235,240,250,.72);padding-top:4px;font-variant-numeric:tabular-nums}
.team{font-size:15px;font-weight:600;letter-spacing:-.012em;margin-top:9px}

.team.dim{color:rgba(235,240,250,.6)}
.court .tap-l{font-size:12px;font-weight:500;color:rgba(235,240,250,.6)}
.prog{height:3px;border-radius:0 3px 3px 0;box-shadow:0 0 8px color-mix(in srgb,var(--accent) 70%,transparent)}
.court.open{background:var(--card);box-shadow:0 .5px 1px rgba(0,0,0,.05)}
.court.open small{font-size:13px}
.cwrap{gap:6px}
.callbar button{min-height:44px;border-radius:999px;background:var(--card);font-size:14px;font-weight:500;box-shadow:0 .5px 1px rgba(0,0,0,.05);transition:transform .32s var(--spring)}

/* ---- inset grouped lists ---- */
.list{border-radius:14px}
.row{min-height:50px;padding:8px 16px;transition:background .18s}
.row.tap:active{transform:none;background:rgba(118,118,128,.14)}
.row+.row::before{height:.5px;left:16px;background:var(--line)}
.row:has(>.av)+.row:has(>.av)::before{left:68px}
.row:has(>.pos)+.row:has(>.pos)::before{left:50px}
.row .t b{font-size:17px;font-weight:500;letter-spacing:-.016em}
.row .t small{font-size:13px;margin-top:1px;color:var(--g)}
.row .r{font-size:15px;font-weight:400;color:var(--g);font-variant-numeric:tabular-nums}
.row .r svg.i{color:var(--g3);stroke-width:2.6;width:13px!important;height:13px!important}
.row .pos{width:24px;color:var(--g);text-align:center}
.tag{font-size:12px;font-weight:600;border-radius:6px;padding:2px 7px}
.av{background:linear-gradient(180deg,#b5bac6,#8d93a1);color:#fff;font-size:15px;font-weight:600;letter-spacing:0}
.av.lg{font-size:32px}
.wt{font-size:13px;font-weight:500}
.wt .av{background:linear-gradient(180deg,#b5bac6,#8d93a1)}
.wt small{font-size:12px;font-weight:400}

/* ---- segmented controls ---- */
.seg{border-radius:999px;padding:2px;background:var(--fill)}
.seg button{position:relative;height:40px;border-radius:999px;font-size:14px;font-weight:500;transition:background .25s,box-shadow .25s}
.seg button::after{content:"";position:absolute;inset:-2px 0}
.seg button.on{background:#fff;font-weight:600;box-shadow:0 3px 8px rgba(0,0,0,.12),0 1px 1px rgba(0,0,0,.05),0 0 0 .5px rgba(0,0,0,.04)}
:root[data-theme=dark] .seg button.on{background:#636366;box-shadow:none}
.sc-seg button.on{color:#0a0a0a}

/* ---- search and fields ---- */
.search{height:44px;border-radius:12px;background:var(--fill);color:var(--g)}
.search svg.i{width:18px;height:18px}
.search input::placeholder,.inp::placeholder{color:var(--g)}
.inp{height:50px;border-radius:12px;font-size:17px;transition:box-shadow .2s}
.inp:focus{box-shadow:0 0 0 3.5px color-mix(in srgb,var(--tint) 22%,transparent)}
.opt{gap:6px}
.opt button{border-radius:12px;font-weight:500;font-size:16px;transition:background .2s,color .2s,transform .32s var(--spring)}
.opt button:active,.cgrid button:active{transform:scale(.95)}
.opt button.on,.cgrid button.on{background:var(--navy);font-weight:600;box-shadow:inset 0 .5px 0 rgba(255,255,255,.2)}
:root[data-theme=dark] .opt button.on,:root[data-theme=dark] .cgrid button.on{background:#f5f5f7}
.opt .sw.on{background:var(--c);outline-color:var(--tint)}
.cgrid button{border-radius:12px;font-weight:500;font-size:16px;font-variant-numeric:tabular-nums;transition:background .2s,color .2s,transform .32s var(--spring)}
.days button{height:38px;position:relative;font-weight:500;font-size:15px}
.days button::after{content:"";position:absolute;inset:-3px 0}
.days{padding-block:3px;margin-block:-3px 12px}
.days button.on{background:var(--navy)}:root[data-theme=dark] .days button.on{background:#f5f5f7}
.slot-b{border-radius:12px;font-weight:500}
.stp{border-radius:14px}.stp button{background:var(--fill)}
.tick.on{box-shadow:inset 0 .5px 0 rgba(255,255,255,.6)}

/* ---- Liquid Glass tab bar ---- */
.tabs{left:16px;right:16px;padding:4px;border-radius:34px;background:var(--glass-l);-webkit-backdrop-filter:blur(28px) saturate(190%);backdrop-filter:blur(28px) saturate(190%);box-shadow:0 12px 36px rgba(15,23,42,.16),0 1px 3px rgba(15,23,42,.08),inset 0 .5px 0 rgba(255,255,255,.75),inset 0 0 0 .5px rgba(255,255,255,.3)}
.tabs button{height:56px;border-radius:30px;font-size:12px;font-weight:500;gap:2px;color:var(--tx);transition:background .3s var(--spring),color .2s,transform .3s var(--spring)}
.tabs button:active{transform:scale(.94)}
.tabs button svg.i{width:23px;height:23px}
.tabs button.on{background:rgba(118,118,128,.16);color:var(--tint);font-weight:600}
.tabs button.on svg.i{fill:currentColor;fill-opacity:.2;stroke-width:2.1}
.tabs.dark{background:var(--glass-d);box-shadow:0 12px 36px rgba(0,0,0,.34),inset 0 .5px 0 rgba(255,255,255,.28),inset 0 0 0 .5px rgba(255,255,255,.08)}
.tabs.dark button{color:rgba(255,255,255,.86)}
.tabs.dark button.on{background:rgba(255,255,255,.18);color:#fff}
:root[data-theme=dark] .tabs{background:var(--glass-l);box-shadow:0 12px 36px rgba(0,0,0,.5),inset 0 .5px 0 rgba(255,255,255,.2)}
:root[data-theme=dark] .tabs button{color:#f5f5f7}
:root[data-theme=dark] .tabs button.on{background:rgba(255,255,255,.16);color:var(--tint)}
.ph-court~* .tabs{color:inherit}
.tabs button.livetab svg.i{fill:none;stroke-width:2;width:19px;height:19px}

/* ---- sheets: the page recedes, like iOS ---- */
.screen{background:var(--bg)}
.screen:has(>.sheetslot .sheet){background:#000}
.screen>.view{transition:transform .46s var(--spring),border-radius .46s var(--spring);transform-origin:50% 0}
.screen>.view{overflow:hidden;background:var(--bg)}
.screen:has(>.sheetslot .layer:not(.closing) .sheet)>.view{transform:translateY(max(env(safe-area-inset-top),14px)) scale(.93);border-radius:14px}
.layer::before{background:rgba(0,0,0,.3)}
.sheet{border-radius:38px 38px 0 0;padding:8px 16px calc(var(--safe-b) + 16px);box-shadow:0 -8px 40px rgba(0,0,0,.14)}
.grab{width:36px;height:5px;border-radius:3px;background:rgba(127,127,135,.42);margin:0 auto 6px}
.s-h{position:relative;justify-content:flex-end;min-height:44px;margin-bottom:10px}
.s-h h2{position:absolute;left:50px;right:50px;top:0;text-align:center;font:400 24px/44px var(--disp);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s-h .x{background:none;position:relative;margin-right:-6px}
.s-h .x::before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--fill)}
.s-h .x svg{position:relative;width:13px;height:13px;stroke-width:3;color:var(--g)}
.toast{background:rgba(28,28,32,.84);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);padding:12px 20px;font-weight:500;box-shadow:0 10px 30px rgba(0,0,0,.26),inset 0 .5px 0 rgba(255,255,255,.14)}

/* ---- feature cards ---- */
.hero,.livecard,.total,.pod{background:var(--navy);border-radius:26px;box-shadow:0 1px 2px rgba(14,26,54,.18),0 14px 34px rgba(22,39,77,.2),inset 0 .5px 0 rgba(255,255,255,.18)}
.hero{padding:24px 20px 18px}

.hero p{font-size:15px;color:rgba(235,240,250,.72);margin:8px 0 18px}
.livecard{padding:18px 20px;gap:2px}
.lc-k{font-size:13px;font-weight:500;color:rgba(235,240,250,.72)}
.lc-n{margin-top:3px}
.lc-s{color:rgba(235,240,250,.72);font-size:15px}
.lc-go{font-size:15px;margin-top:12px}
.stats{gap:9px}
.stat{border-radius:18px;padding:13px 15px;box-shadow:inset 0 .5px 0 rgba(255,255,255,.1)}
.stat.w{box-shadow:0 .5px 1px rgba(0,0,0,.05)}

.stat small{font-size:13px}
.cal{border-radius:10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}

.total small,.pod small{font-size:13px;font-weight:500;color:rgba(235,240,250,.72)}

.bar{border-radius:14px;padding:11px 14px;box-shadow:0 .5px 1px rgba(0,0,0,.05)}
.grid,.heat{border-radius:14px}
.grid .ch{font-weight:600}.col{border-left-width:.5px}.slot{border-bottom-width:.5px}.bk{border-radius:8px}
.heat i{border-radius:4px}

/* ---- full-screen player moments ---- */
.p{padding:calc(var(--safe-t) + 8px) 24px 106px}
.p.ph-wait,.p.ph-rest,.p.ph-out{background:radial-gradient(110% 62% at 92% -6%,#31508f 0%,rgba(49,80,143,0) 62%),linear-gradient(180deg,#182b57 0%,#0e1a36 100%);color:#fff}
.p.ph-court{background-color:var(--accent);background-image:radial-gradient(120% 70% at 85% -5%,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 62%)}
.p.ph-next{background:linear-gradient(180deg,#fff 0%,#f2f2f7 100%)}

.giant{text-shadow:0 0 44px color-mix(in srgb,var(--accent) 34%,transparent)}
.unit{margin-top:4px}
.p .k{font-size:17px;font-weight:500;opacity:.72;letter-spacing:-.014em}
.vs-box{margin-top:16px;font-size:20px;letter-spacing:-.018em}
.vs-box small{font-size:13px;opacity:.66;letter-spacing:0}
.live-sc{margin-top:12px}
.buzz{font-weight:500;background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:inset 0 .5px 0 rgba(255,255,255,.28);transition:transform .32s var(--spring)}
.ph-next .buzz:not(.on){background:rgba(118,118,128,.13);box-shadow:none}
.boardbar{font-weight:500;opacity:.92}
.gg{font-weight:600;letter-spacing:-.014em}
.p-ann,.ask{border-radius:20px;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);box-shadow:0 14px 40px rgba(0,0,0,.28)}

/* ---- finishing a game ---- */
.cover,.half,.half.pick,.sc-save{background:#111f3e}
.cover{background:linear-gradient(180deg,#182b57 0%,#0e1a36 100%)}
.half.pick,.half{background:transparent}
.half.pick+.half.pick{border-top:.5px solid rgba(255,255,255,.14)}

.sc-w p{font-weight:600}
.sc-l h3{font-weight:500;font-size:17px;color:rgba(255,255,255,.8)}
.sc-t{background:rgba(255,255,255,.1);border-radius:18px;box-shadow:inset 0 .5px 0 rgba(255,255,255,.18);transition:background .12s,transform .3s var(--spring)}

.sc-t small{font-size:12px;opacity:.72}
.pillb{height:36px;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);font-weight:500;box-shadow:inset 0 .5px 0 rgba(255,255,255,.22)}
.sc-pend{border-radius:22px}

/* ---- sign in ---- */
.authgate{background:radial-gradient(110% 62% at 92% -6%,#31508f 0%,rgba(49,80,143,0) 62%),linear-gradient(180deg,#182b57 0%,#0e1a36 100%)}

.authgate input,.authgate select{height:50px;border-radius:12px;background:rgba(255,255,255,.1);box-shadow:inset 0 .5px 0 rgba(255,255,255,.14)}
.authgate .field{font-weight:500}
.authgate .btn{min-height:50px;text-transform:none;letter-spacing:-.012em;background-image:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0) 60%)}
.authgate .btn.ghost{background:rgba(255,255,255,.12);background-image:none}
.authgate .linkbtn{font-weight:400}
.ag-brand img{height:128px}

/* ---- big screen ---- */
.tvs{background:radial-gradient(70% 90% at 90% -10%,#26417c 0%,rgba(38,65,124,0) 60%),linear-gradient(180deg,#121f40 0%,#0b1428 100%)}

.tv-h .snd{background:rgba(255,255,255,.12);font-weight:500}
.tc{background:linear-gradient(165deg,#233d74 0%,#172a54 100%);border-radius:1.9cqw;box-shadow:0 1cqw 3cqw rgba(0,0,0,.26),inset 0 .08cqw 0 rgba(255,255,255,.16)}

.tc-t{font-weight:600;font-variant-numeric:tabular-nums}
.tc-r{letter-spacing:-.02em;font-weight:600}

.tv-next div{border-top-color:rgba(255,255,255,.14)}

/* ---- small repairs ---- */
.stat{min-width:0}
.sheet .stats .stat{padding:11px 10px}
.sheet .stats .stat b{font-size:25px;white-space:nowrap}
.sheet .stats .stat small{font-size:12px}
.cover:has(.sc-w) .pillb{background:rgba(22,39,77,.12);color:#0c1220;box-shadow:none}
.link.sc-o{color:rgba(255,255,255,.82)}
.row .b.sm{position:relative;min-height:34px;padding:0 15px;font-size:15px;font-weight:600}
.row .b.sm::after{content:"";position:absolute;inset:-5px 0}
.row .b.sm.pri{background:var(--fill);color:var(--tint);box-shadow:none}
:root[data-theme=dark] .row .b.sm.pri{background:var(--fill);color:var(--tint)}
.row .b.sm.bad{box-shadow:none}

@media(prefers-reduced-motion:reduce){.screen>.view{transition:none}}

/* ---- one quiet navy glow behind every player screen; the colour underneath crossfades between phases ---- */
.p,.p.ph-wait,.p.ph-rest,.p.ph-out,.p.ph-next,.p.ph-court{background-image:none;transition:background-color .55s var(--spring),color .4s}
.p::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(110% 62% at 92% -6%,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 62%)}
.p>*{position:relative;z-index:1}
.p .link{color:inherit}
.p.ph-wait,.p.ph-rest,.p.ph-out{background-color:#eef2f9;color:var(--tx)}
.p.ph-next{background-color:#fff;color:var(--tx)}
.p.ph-court{background-color:var(--accent);color:var(--on)}
.giant{color:var(--ink);text-shadow:none}
.gg{color:var(--ink)}
.p .b.glass,.p .buzz:not(.on){background:rgba(22,39,77,.08);color:var(--tx);box-shadow:none}
:root[data-theme=dark] .p.ph-wait,:root[data-theme=dark] .p.ph-rest,:root[data-theme=dark] .p.ph-out{background-color:#14254b;color:#fff}
:root[data-theme=dark] .p.ph-next{background-color:#0b0f1c;color:#fff}
:root[data-theme=dark] .giant{color:var(--accent);text-shadow:0 0 44px color-mix(in srgb,var(--accent) 34%,transparent)}
:root[data-theme=dark] .gg{color:var(--accent)}
:root[data-theme=dark] .p .b.glass,:root[data-theme=dark] .p .buzz:not(.on){background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 0 .5px 0 rgba(255,255,255,.28)}
:root[data-theme=dark] .ph-next .b.sec{background:rgba(255,255,255,.12);color:#fff}
:root:not([data-theme=dark]) .tabs.dark{background:var(--glass-l);box-shadow:0 12px 36px rgba(15,23,42,.16),0 1px 3px rgba(15,23,42,.08),inset 0 .5px 0 rgba(255,255,255,.75)}
:root:not([data-theme=dark]) .tabs.dark button{color:var(--tx)}
:root:not([data-theme=dark]) .tabs.dark button.on{color:var(--tint)}
:root[data-theme=dark] .inp{color-scheme:dark}
img.logo-d{display:none!important}
:root[data-theme=dark] img.logo-l{display:none!important}
:root[data-theme=dark] img.logo-d{display:block!important}

/* ---- finishing a game follows the theme; the end-of-session recap stays navy ---- */
:root:not([data-theme=dark]) .cover:not(.recap){background:var(--bg);color:var(--tx)}
:root:not([data-theme=dark]) .cover:not(.recap) .pillb{background:var(--fill);color:var(--tx);box-shadow:none}
:root:not([data-theme=dark]) .half{color:var(--tx)}
:root:not([data-theme=dark]) .half.pick+.half.pick{border-top-color:var(--line)}
:root:not([data-theme=dark]) .sc-q,:root:not([data-theme=dark]) .sc-man h2{color:var(--tx)}
:root:not([data-theme=dark]) .sc-l h3{color:var(--g)}
:root:not([data-theme=dark]) .sc-t{background:var(--card);color:var(--tx);box-shadow:0 .5px 1px rgba(0,0,0,.06)}
:root:not([data-theme=dark]) .link.sc-o{color:var(--tint)}
:root:not([data-theme=dark]) .sc-seg{background:var(--fill)}
:root:not([data-theme=dark]) .sc-seg button{color:var(--tx)}
.half.pick:active{background:var(--accent);color:var(--on)}
.cover.recap{background:linear-gradient(180deg,#182b57 0%,#0e1a36 100%);color:#fff}

/* ---- sign in follows the theme ---- */
:root:not([data-theme=dark]) .authgate{background:var(--bg);color:var(--tx)}
:root:not([data-theme=dark]) .ag-sub{color:var(--g)}
:root:not([data-theme=dark]) .authgate .field{color:var(--g)}
:root:not([data-theme=dark]) .authgate input,:root:not([data-theme=dark]) .authgate select{background:var(--card);color:var(--tx);box-shadow:0 .5px 1px rgba(0,0,0,.06)}
:root:not([data-theme=dark]) .authgate input:focus{box-shadow:0 0 0 3.5px rgba(22,39,77,.18)}
:root:not([data-theme=dark]) .authgate .btn.ghost{background:var(--fill);color:var(--tx)}
:root:not([data-theme=dark]) .authgate .linkbtn,:root:not([data-theme=dark]) .ag-guest{color:var(--g)}

/* ---- sliding selection: the highlight is a layer the script glides between options ---- */
.tabs button,.seg button{position:relative;isolation:isolate}
.tabs button.on,.tabs.dark button.on,:root[data-theme=dark] .tabs button.on,.seg button.on,:root[data-theme=dark] .seg button.on,.sc-seg button.on{background:none;box-shadow:none}
.tabs button.on::before,.seg button.on::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1}
.tabs button.on::before{background:rgba(118,118,128,.16)}
.tabs.dark button.on::before,:root[data-theme=dark] .tabs button.on::before{background:rgba(255,255,255,.17)}
:root:not([data-theme=dark]) .tabs.dark button.on::before{background:rgba(118,118,128,.16)}
.seg button.on::before{background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.12),0 1px 1px rgba(0,0,0,.05),0 0 0 .5px rgba(0,0,0,.04)}
:root[data-theme=dark] .seg button.on::before{background:#636366;box-shadow:none}
:root:not([data-theme=dark]) .sc-seg button.on::before{background:#fff}
.sc-seg button.on{color:#0a0a0a}

/* ---- motion: transform and opacity only, so it stays smooth on older phones ---- */
.scroll{animation:none}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}
@keyframes rowIn{from{opacity:0;transform:translateY(10px) scale(.985)}}
@keyframes cardIn{from{opacity:0;transform:translateY(14px) scale(.93)}}
@keyframes tick{from{opacity:0;transform:translateY(55%) scale(.8)}}
@keyframes numIn{from{opacity:0;transform:translateY(22px) scale(.86)}}
@keyframes slam{0%{opacity:0;transform:scale(1.32)}60%{opacity:1;transform:scale(.97)}100%{transform:none}}
@keyframes ring{from{opacity:.75;transform:translate(-50%,-50%) scale(.4)}to{opacity:0;transform:translate(-50%,-50%) scale(26)}}
@keyframes tabPop{0%{transform:scale(.78)}55%{transform:scale(1.14)}100%{transform:none}}
@keyframes selPop{0%{transform:scale(.92)}60%{transform:scale(1.03)}100%{transform:none}}
@keyframes sheen{from{transform:translateX(-130%)}to{transform:translateX(130%)}}
@keyframes drift{from{transform:translate(-8%,-6%)}to{transform:translate(10%,8%)}}
@keyframes growX{from{transform:scaleX(0)}}
@keyframes growY{from{transform:scaleY(.1)}}
@keyframes slideDown{from{transform:translateY(-100%)}}
@keyframes toastIn{0%{opacity:0;transform:translate(-50%,70%) scale(.9)}65%{opacity:1;transform:translate(-50%,-6%) scale(1.02)}100%{transform:translate(-50%,0)}}
@keyframes revealTheme{from{clip-path:circle(0 at var(--vx,50%) var(--vy,50%))}to{clip-path:circle(150vmax at var(--vx,50%) var(--vy,50%))}}
.scroll>*{animation:rise .6s var(--spring) both}
.scroll>:nth-child(2){animation-delay:.04s}.scroll>:nth-child(3){animation-delay:.08s}.scroll>:nth-child(4){animation-delay:.12s}.scroll>:nth-child(5){animation-delay:.16s}.scroll>:nth-child(6){animation-delay:.2s}.scroll>:nth-child(7){animation-delay:.24s}.scroll>:nth-child(n+8){animation-delay:.28s}
.scroll .list>.row,.sheet .list>.row{animation:rowIn .5s var(--spring) both}
.list>.row:nth-child(2){animation-delay:.03s}.list>.row:nth-child(3){animation-delay:.06s}.list>.row:nth-child(4){animation-delay:.09s}.list>.row:nth-child(5){animation-delay:.12s}.list>.row:nth-child(6){animation-delay:.15s}.list>.row:nth-child(7){animation-delay:.18s}.list>.row:nth-child(n+8){animation-delay:.21s}
.court,.cwrap{animation:cardIn .6s var(--spring) both}
.cwrap>.court{animation:none}
.courts>:nth-child(2){animation-delay:.05s}.courts>:nth-child(3){animation-delay:.1s}.courts>:nth-child(4){animation-delay:.15s}.courts>:nth-child(n+5){animation-delay:.2s}
.court:not(.open)::after,.tc:not(.open)::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 32%,rgba(255,255,255,.2) 50%,transparent 68%);pointer-events:none;animation:sheen 1.25s .25s var(--spring) both}
.team b,.tc-r b{display:inline-block;animation:tick .42s cubic-bezier(.2,1.25,.4,1) both}
.wt{animation:cardIn .5s var(--spring) both}.hs>:nth-child(2){animation-delay:.04s}.hs>:nth-child(3){animation-delay:.08s}.hs>:nth-child(n+4){animation-delay:.12s}
.stat{animation:cardIn .55s var(--spring) both}.stats>:nth-child(2){animation-delay:.05s}.stats>:nth-child(3){animation-delay:.1s}.stats>:nth-child(n+4){animation-delay:.15s}
.hero,.livecard,.total{position:relative;overflow:hidden}
.hero::after,.livecard::after,.total::after{content:"";position:absolute;width:90%;height:150%;right:-25%;top:-55%;background:radial-gradient(closest-side,rgba(255,255,255,.13),transparent);pointer-events:none;animation:drift 7s ease-in-out infinite alternate}
.split i{transform-origin:0 50%;animation:growX .9s .15s var(--spring) both}
.heat i{transform-origin:50% 100%;animation:growY .7s var(--spring) both;animation-delay:calc(var(--o)*.28s)}
.tabs button.on:not(.livetab) svg.i{animation:tabPop .5s var(--spring)}
.opt button.on,.cgrid button.on,.chip.on{animation:selPop .34s var(--spring)}
.sheet>*{animation:rise .55s var(--spring) both;animation-delay:.05s}
.toast{animation:toastIn .55s var(--spring) both}
.p .mid>*{animation:rise .62s var(--spring) both}
.p .mid>:nth-child(2){animation-delay:.07s}.p .mid>:nth-child(3){animation-delay:.14s}.p .mid>:nth-child(4){animation-delay:.2s}.p .mid>:nth-child(n+5){animation-delay:.26s}
.p .mid>.giant{animation:numIn .7s cubic-bezier(.2,1.2,.4,1) both;animation-delay:.05s}
.ph-court .mid>.shout{animation:slam .62s cubic-bezier(.2,.9,.3,1) both}
.ph-court .mid::after{content:"";position:absolute;left:50%;top:40%;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.7);pointer-events:none;z-index:-1;animation:ring 1.1s ease-out both}
.ph-next .mid>.shout{animation:slam .6s cubic-bezier(.2,.9,.3,1) both}
.cover .sc-w{animation:slideDown .5s var(--spring) both}
.sc-t{animation:cardIn .42s var(--spring) both}
.sc-g>:nth-child(4n+2){animation-delay:.03s}.sc-g>:nth-child(4n+3){animation-delay:.06s}.sc-g>:nth-child(4n){animation-delay:.09s}
.half.pick .nmz{display:block;animation:rise .55s var(--spring) both}
.half.pick+.half.pick .nmz{animation-delay:.07s}
.recap h2{animation:slam .7s cubic-bezier(.2,.9,.3,1) both}
.recap .stack{animation:rise .6s .3s var(--spring) both}
.tc{animation:cardIn .7s var(--spring) both}
.tv-next>div,.tv-wait>span{animation:rise .6s var(--spring) both}
.calling .cc{animation:slam .7s .12s cubic-bezier(.2,.9,.3,1) both}
.calling .pp{animation:rise .6s .3s var(--spring) both}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
/* ---- the yellow "you're on" screen looks the same in both modes ---- */
.screen:has(.p.ph-court) .tabs{background:rgba(255,255,255,.62);box-shadow:0 12px 36px rgba(60,80,0,.18),inset 0 .5px 0 rgba(255,255,255,.75)}
.screen:has(.p.ph-court) .tabs button{color:#0c1220}
.screen:has(.p.ph-court) .tabs button.on{color:#16274d}
.screen:has(.p.ph-court) .tabs button.on::before{background:rgba(22,39,77,.12)}
:root[data-theme=dark] .ph-court .b.pri{background:var(--navy);color:#fff}
:root:not([data-theme=dark]) .half+.half{box-shadow:0 -.5px 0 var(--line)}
:root:not([data-theme=dark]) .sc-t small{color:var(--g);opacity:1}

/* ---- doors between screens ---- */
.doors{position:absolute;inset:0;z-index:6;overflow:hidden;--door:#fff}
:root[data-theme=dark] .doors{--door:#16274d}
.doors i{position:absolute;top:0;bottom:0;width:50%;background:var(--door);overflow:hidden;will-change:transform}
.doors .dl{left:0;animation:doorL .6s both;box-shadow:1px 0 0 var(--door)}
.doors .dr{right:0;animation:doorR .6s both}
.doors .dl::after{content:"";position:absolute;right:0;top:0;bottom:0;width:2px;background:var(--accent);box-shadow:0 0 14px 2px var(--accent);animation:seam .6s both}
.doors img{position:absolute;top:50%;width:128px;height:auto;margin-top:-30px;animation:doorLogo .6s both}
.doors .dl img{left:calc(100% - 64px)}.doors .dr img{right:calc(100% - 64px)}
.doors.opening .dl,.doors.opening .dr,.doors.opening .dl::after,.doors.opening img{animation-delay:-.27s}
@keyframes doorL{0%{transform:translateX(-101%);animation-timing-function:cubic-bezier(.55,0,.8,.3)}33%{transform:none}46%{transform:none;animation-timing-function:cubic-bezier(.3,.8,.2,1)}100%{transform:translateX(-101%)}}
@keyframes doorR{0%{transform:translateX(101%);animation-timing-function:cubic-bezier(.55,0,.8,.3)}33%{transform:none}46%{transform:none;animation-timing-function:cubic-bezier(.3,.8,.2,1)}100%{transform:translateX(101%)}}
@keyframes seam{0%,28%{opacity:0}34%,46%{opacity:1}62%,100%{opacity:0}}
@keyframes doorLogo{0%,18%{opacity:0}33%,50%{opacity:1}72%,100%{opacity:.4}}

/* ---- the finish ---- */
.fx{position:absolute;inset:0;z-index:20;pointer-events:none;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.fx-card{position:relative;min-width:230px;max-width:84%;padding:20px 26px 22px;border-radius:30px;background:rgba(14,24,50,.88);-webkit-backdrop-filter:blur(24px) saturate(170%);backdrop-filter:blur(24px) saturate(170%);color:#fff;box-shadow:0 24px 70px rgba(0,0,0,.38),inset 0 .5px 0 rgba(255,255,255,.22);animation:fxCard 1.6s var(--spring) both}
.fx-tag{font:400 22px/1.05 var(--disp);text-transform:uppercase;color:var(--accent);letter-spacing:.01em}
.fx-name{font-size:17px;font-weight:600;margin-top:6px;letter-spacing:-.014em}
.fx-score{font:400 66px/1 var(--disp);margin-top:6px;font-variant-numeric:tabular-nums}
@keyframes fxCard{0%{opacity:0;transform:scale(.72) translateY(24px)}18%{opacity:1;transform:scale(1.03)}28%{transform:none}84%{opacity:1;transform:none}100%{opacity:0;transform:scale(.94) translateY(-12px)}}
.fx-burst{position:absolute;left:50%;top:50%}
.fx-burst u{position:absolute;width:9px;height:14px;border-radius:2px;background:var(--c);opacity:0;animation:conf 1.25s cubic-bezier(.12,.75,.3,1) var(--d) both}
@keyframes conf{0%{opacity:1;transform:translate(0,0) rotate(0) scale(.5)}70%{opacity:1}100%{opacity:0;transform:translate(var(--x),calc(var(--y) + 170px)) rotate(var(--r)) scale(1)}}
.fx-soft .fx-card{background:rgba(40,46,62,.82);animation-duration:1.6s}
.fx-soft .fx-tag{color:#fff}

/* close game: the two sides crash together, the screen jolts, the score beats twice */
.fx-close .fx-card{animation:fxCard 2.05s var(--spring) both;box-shadow:0 0 0 2px var(--accent),0 0 50px color-mix(in srgb,var(--accent) 45%,transparent),0 24px 70px rgba(0,0,0,.38)}
.fx-close .fx-score{color:var(--accent);animation:beat 1s .24s ease-in-out both}
.fx-bar{position:absolute;top:0;bottom:0;width:52%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 72%,transparent))}
.fx-bar.l{left:0;animation:barL .62s cubic-bezier(.6,0,.4,1) both}
.fx-bar.r{right:0;transform:scaleX(-1);animation:barR .62s cubic-bezier(.6,0,.4,1) both}
@keyframes barL{0%{transform:translateX(-100%)}48%{transform:none;opacity:1}100%{transform:translateX(-30%);opacity:0}}
@keyframes barR{0%{transform:scaleX(-1) translateX(-100%)}48%{transform:scaleX(-1);opacity:1}100%{transform:scaleX(-1) translateX(-30%);opacity:0}}
@keyframes beat{0%,100%{transform:none}18%{transform:scale(1.2)}36%{transform:scale(.98)}54%{transform:scale(1.14)}72%{transform:none}}
.fx-shake>.view{animation:shake .55s .2s both}
@keyframes shake{10%{transform:translateX(-7px)}25%{transform:translateX(7px) rotate(.3deg)}40%{transform:translateX(-5px)}58%{transform:translateX(4px) rotate(-.2deg)}76%{transform:translateX(-2px)}100%{transform:none}}

/* 11-0: a stamp comes down on a lime splat */
.fx-pickle .fx-card{animation:stamp 2.05s both;background:var(--accent);color:var(--on);border-radius:22px;box-shadow:0 24px 70px rgba(70,90,0,.4)}
.fx-pickle .fx-tag{color:var(--on);font-size:46px}
.fx-pickle .fx-score{font-size:44px}
@keyframes stamp{0%{opacity:0;transform:scale(3.2) rotate(-16deg)}15%{opacity:1;transform:scale(.94) rotate(-6deg)}22%{transform:scale(1.03) rotate(-6deg)}30%{transform:rotate(-6deg)}86%{opacity:1;transform:rotate(-6deg)}100%{opacity:0;transform:scale(.9) rotate(-6deg)}}
.fx-splat{position:absolute;left:50%;top:50%;width:200px;height:200px;margin:-100px;border-radius:50%;background:var(--accent);opacity:.32;animation:splat .9s .22s var(--spring) both}
@keyframes splat{from{transform:scale(0);opacity:.6}to{transform:scale(5);opacity:0}}
.fx-big .fx-tag{font-size:30px}

/* check-in tick */
.fx-in .fx-card{min-width:176px;padding:22px 26px 18px;animation-duration:1.3s}
.fx-in svg{width:66px;height:66px;display:block;margin:0 auto 8px;fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.fx-in circle{stroke-dasharray:151;stroke-dashoffset:151;animation:draw .5s .12s ease-out forwards}
.fx-in path{stroke-dasharray:44;stroke-dashoffset:44;animation:draw .3s .5s ease-out forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* big screen banner for special finishes, above the next-game call */
.tv-fx{position:absolute;left:2.4cqw;right:2.4cqw;top:2cqw;z-index:8;display:flex;align-items:baseline;gap:2cqw;padding:1.5cqw 2.4cqw;border-radius:1.8cqw;background:#0e1a36;color:#fff;box-shadow:0 0 0 .25cqw var(--accent),0 1.5cqw 5cqw rgba(0,0,0,.5);animation:tvFx 5.2s var(--spring) both}
.tv-fx span{font:400 4cqw/1 var(--disp);text-transform:uppercase;color:var(--accent)}
.tv-fx b{font-size:2.8cqw;font-weight:700;letter-spacing:-.02em}
.tv-fx em{font:400 4cqw/1 var(--disp);font-style:normal;margin-left:auto}
.tv-fx small{font-size:1.7cqw;font-weight:600;color:#9fb0cf}
@keyframes tvFx{0%{opacity:0;transform:translateY(-140%)}9%{opacity:1;transform:none}90%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-140%)}}

/* ---- small touches ---- */
.buzz.on svg.i{transform-origin:50% 8%;animation:wiggle .7s ease-in-out}
@keyframes wiggle{20%{transform:rotate(20deg)}40%{transform:rotate(-16deg)}60%{transform:rotate(10deg)}80%{transform:rotate(-6deg)}}
.ph-rest .mid>.shout{animation:rise .62s var(--spring) both,breathe 3.6s 1s ease-in-out infinite}
@keyframes breathe{50%{opacity:.62}}
.round.plus{animation:selPop .5s var(--spring)}
.round.plus:active svg.i{transform:rotate(90deg);transition:transform .3s var(--spring)}
.row .b.sm:active{transform:scale(.92)}
@media(prefers-reduced-motion:reduce){.fx,.doors,.tv-fx{display:none}}
.theme-wipe{position:fixed;z-index:999;border-radius:50%;pointer-events:none;will-change:transform,opacity}

/* ---- swipe to dismiss ---- */
.sheet{overscroll-behavior:contain}
.grab,.s-h{touch-action:none}
.grab{cursor:grab}
.sheet.drag{transition:none;user-select:none;-webkit-user-select:none}
/* ---- the menu bar is plain and on its own layer, so no phone can drop it ---- */
.screen>.tabslot{position:absolute;left:0;right:0;bottom:0;height:0;z-index:7;transform:translateZ(0)}
.tabs,.tabs.dark,:root[data-theme=dark] .tabs,:root:not([data-theme=dark]) .tabs.dark,.screen:has(.p.ph-court) .tabs{animation:none}
.theme-wipe-box{position:fixed;inset:0;z-index:999;overflow:hidden;pointer-events:none}
.theme-wipe{position:absolute;z-index:auto}

/* ---- names and courts, drawn the way v1 did: full pills on a proper court, slots you drop into ---- */
.court{display:flex;flex-direction:column;gap:10px;padding:12px 12px 12px;min-height:0}
.court:active{transform:none;opacity:1}
.pitch-p{display:grid;gap:6px;padding:7px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
.side-p{display:grid;gap:6px}
.net-p{display:flex;align-items:center;gap:8px;margin:1px 0}
.net-p::before,.net-p::after{content:"";flex:1;border-top:1.5px dashed color-mix(in srgb,var(--accent) 55%,transparent)}
.net-p span{flex:none;padding:1px 9px;border-radius:999px;background:rgba(0,0,0,.28);font-size:12px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
.net-p b{display:inline-block;animation:tick .42s cubic-bezier(.2,1.25,.4,1) both}
.sl{min-height:38px;border-radius:999px;display:flex;align-items:stretch;min-width:0}
.sl.empty{align-items:center;justify-content:center;border:1.5px dashed var(--line);color:var(--g);font-size:13px;font-weight:500;cursor:pointer}
.court .sl.empty{border-color:rgba(255,255,255,.2);color:rgba(235,240,250,.65)}
.pl{display:flex;align-items:center;gap:7px;width:100%;min-width:0;min-height:38px;padding:4px 10px 4px 4px;border-radius:999px;background:var(--card);border:.5px solid var(--line);font-size:13.5px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab;transition:opacity .15s}
.pl i{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;font:400 12px/1 var(--disp);font-style:normal;letter-spacing:.02em}
.pl .pn{min-width:0;display:block}
.pl b{display:block;font-weight:600;letter-spacing:-.012em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl small{display:block;font-size:12px;color:var(--g);white-space:nowrap}
.court .pl{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.1);color:#fff}
.court .pl i{background:#fff;color:#111}
.pl.locked{cursor:default}
.pl.lifted{opacity:.35}
.pl.ghost{position:fixed;z-index:900;pointer-events:none;max-width:220px;background:var(--accent);color:var(--on);border-color:transparent;box-shadow:0 10px 28px rgba(0,0,0,.34);transform:scale(1.05)}
.pl.ghost i{background:#111;color:var(--accent)}
.pl.ghost small{color:var(--on)}
[data-drop].over{outline:2px dashed var(--accent);outline-offset:2px}
:root:not([data-theme=dark]) .zone-p.over,:root:not([data-theme=dark]) .nx [data-drop].over{outline-color:var(--ink)}
.pl.just-swapped{animation:swapFlash .85s var(--spring)}
@keyframes swapFlash{0%,55%{background:var(--accent);color:var(--on)}}
.c-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;width:100%;padding:0 4px 0 10px;font-size:13.5px;font-weight:600;color:rgba(235,240,250,.85);text-align:left}
.c-foot i{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--on);font-style:normal;box-shadow:0 4px 12px rgba(170,205,20,.28);transition:transform .3s var(--spring)}
.c-foot i svg.i{width:20px;height:20px;stroke-width:2.6}
.c-foot:active i{transform:scale(.88)}
.c-foot.quiet{justify-content:center;color:rgba(235,240,250,.7)}
.court.open{min-height:150px}
.nx{background:var(--card);border-radius:18px;padding:12px;margin-bottom:9px;animation:rowIn .5s var(--spring) both}
.nx-h{display:flex;align-items:center;gap:8px;min-height:32px;margin-bottom:6px}
.nx-h b{font:400 20px/1 var(--disp);text-transform:uppercase}
.nx-h .link{margin-left:auto;min-height:32px;font-size:14px;color:var(--g);gap:2px}
.nx-t{display:grid;grid-template-columns:1fr auto 1fr;gap:7px;align-items:center}
.nx-t em{font:400 15px var(--disp);font-style:normal;color:var(--g)}
.nx .pl{background:var(--bg);border-color:transparent}
.zone-p{display:grid;grid-template-columns:1fr 1fr;gap:7px;background:var(--card);border-radius:18px;padding:10px;min-height:62px;align-content:start}
.zone-p .pl{background:var(--bg);border-color:transparent}
.zi{min-width:0;animation:cardIn .5s var(--spring) both}
.zone-p .hint{grid-column:1/-1;align-self:center;text-align:center;color:var(--g);font-size:14px}
:root[data-theme=dark] .pl i{background:#2f477c}
:root[data-theme=dark] .court .pl i{background:#fff;color:#111}
:root[data-theme=dark] .nx .pl,:root[data-theme=dark] .zone-p .pl{background:rgba(255,255,255,.08)}
.drag-on .scroll{overflow-y:hidden}

/* ---- score entry: a row of numbers for each team ---- */
.sc-2{flex:1;display:flex;flex-direction:column;gap:8px;min-height:0;overflow-y:auto;padding:calc(var(--safe-t) + 46px) 14px calc(var(--safe-b) + 10px);scrollbar-width:none}
.sc-2::-webkit-scrollbar{display:none}
.sc-2 .sc-pend{margin:0;width:100%;flex:none}
.sc-team{flex:none;animation:rise .5s var(--spring) both}
.sc-team+.sc-vs+.sc-team{animation-delay:.06s}
.sc-team h3{display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;font:400 clamp(26px,8cqw,32px)/1.05 var(--disp);text-transform:uppercase;text-align:center;margin-bottom:6px}
.sc-team h3 span{font:700 12px/1 var(--text);text-transform:none;background:var(--accent);color:var(--on);padding:5px 9px;border-radius:999px;animation:selPop .34s var(--spring)}
.sc-nums{display:grid;grid-template-columns:repeat(var(--c,6),1fr);gap:6px}
.sc-n{height:50px;border-radius:14px;background:rgba(255,255,255,.1);color:#fff;font:400 24px/1 var(--disp);text-align:center;box-shadow:inset 0 .5px 0 rgba(255,255,255,.16);transition:background .15s,color .15s,transform .28s var(--spring)}
.sc-n:active{transform:scale(.92)}
.sc-n.on,:root:not([data-theme=dark]) .sc-n.on{background:var(--accent);color:var(--on);box-shadow:0 5px 14px rgba(170,205,20,.34);animation:selPop .32s var(--spring)}
:root:not([data-theme=dark]) .sc-n{background:var(--card);color:var(--tx);box-shadow:0 .5px 1px rgba(0,0,0,.07)}
.sc-vs{display:flex;align-items:center;gap:10px;flex:none;margin:1px 0}
.sc-vs::before,.sc-vs::after{content:"";flex:1;border-top:1.5px dashed color-mix(in srgb,var(--accent) 55%,transparent)}
.sc-vs span{font:400 15px var(--disp);text-transform:uppercase;opacity:.7}
:root:not([data-theme=dark]) .sc-vs::before,:root:not([data-theme=dark]) .sc-vs::after{border-top-color:var(--line)}
.sc-end{margin-top:auto;display:grid;gap:8px;padding-top:6px;flex:none}
.sc-end .sc-seg{margin:0}
.sc-err{padding:11px 14px;border-radius:14px;background:rgba(255,59,48,.16);color:#ff8a82;font-size:15px;font-weight:600;text-align:center;line-height:1.3;animation:errShake .42s ease-out both}
:root:not([data-theme=dark]) .sc-err{background:rgba(255,59,48,.11);color:#c4100a}
@keyframes errShake{0%{transform:translateX(0)}18%{transform:translateX(-7px)}36%{transform:translateX(6px)}54%{transform:translateX(-4px)}72%{transform:translateX(3px)}100%{transform:none}}
.sc-end .sc-o{justify-content:center;width:100%;min-height:36px;font-size:14px}
@media(max-height:720px){.sc-n{height:44px;font-size:21px}.sc-team h3{min-height:32px;font-size:24px;margin-bottom:4px}.sc-2{gap:5px}}
:root[data-theme=dark] .sc-seg button.on{color:#fff}

/* ---- who's coming ---- */
.rbar{display:flex;align-items:center;gap:8px;width:100%;min-height:50px;padding:0 16px;margin-bottom:12px;border-radius:14px;background:var(--card);font-size:16px;font-weight:600;box-shadow:0 .5px 1px rgba(0,0,0,.05);transition:transform .3s var(--spring)}
.rbar:active{transform:scale(.98)}
.rbar b{margin-left:auto;font-weight:500;color:var(--g);font-variant-numeric:tabular-nums}
.rbar svg.i{color:var(--g3);stroke-width:2.6}
.tick{transition:background .15s}

/* ---- small additions ---- */
.ldots{display:flex;align-items:center;gap:7px;margin-top:10px}
.ldots i{width:10px;height:10px;border-radius:50%;background:currentColor;opacity:.22;animation:cardIn .4s var(--spring) both}
.ldots i.me{width:14px;height:14px;opacity:1;background:var(--ink)}
:root[data-theme=dark] .ldots i.me{background:var(--accent);box-shadow:0 0 10px var(--accent)}
.ldots em{font-style:normal;font-size:13px;opacity:.5}
.pl i{overflow:hidden}.pl i img{width:100%;height:100%;object-fit:cover;display:block}
.rbar b{white-space:nowrap}
.tv-next{display:block}
.tv-next>div{border:0!important;padding:0;gap:1.6cqw;align-items:center;white-space:normal}
.tv-next>div i{display:none}
.tv-next span{display:flex;flex-direction:column;font:400 3.5cqw/1.12 var(--disp);text-transform:uppercase}
.tv-next em{font:600 1.5cqw/1.5 var(--text);text-transform:none;color:var(--accent)}
.story{background:radial-gradient(120% 70% at 92% -6%,rgba(90,130,210,.5),transparent 70%),linear-gradient(180deg,#1d3463,#0e1a36)}
.story::after{left:0;right:0;top:auto;bottom:0;width:auto;height:14px;transform:none}

/* ---- settings name + logo, slide to remove ---- */
.clubname{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}
.clubname h3{font:400 30px/1.1 var(--disp);text-transform:uppercase;letter-spacing:.2px;min-width:0;overflow-wrap:anywhere}
.logo-tile{flex:none;width:68px;height:48px;border-radius:10px;background:#16274d;display:grid;place-items:center;padding:6px}
.logo-tile img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.sw{position:relative;overflow:hidden;touch-action:pan-y;--x:0px;--p:0}
.sw+.sw>.row::before{content:"";position:absolute;left:16px;right:0;top:0;height:.5px;background:var(--line)}
.sw-bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-right:18px;color:#fff;font-size:15px;font-weight:600;background:#ff3b30;opacity:calc(.45 + var(--p)*.55)}
.sw-bg svg{flex:none;transition:transform .2s var(--spring)}
.sw.armed .sw-bg svg{transform:scale(1.3)}
.sw>.row{background:var(--card);transform:translateX(var(--x));transition:transform .3s var(--spring);-webkit-user-select:none;user-select:none}
.sw.drag>.row{transition:none}
.sw.gone{transition:height .24s ease}
.sw.gone>.row{transition:transform .22s ease}
.sw>.row,.sw>.row:active{background:var(--card)!important;transform:translateX(var(--x))!important}

/* ---- club card, logo confirm, clearer glass ---- */
.row.clubname{justify-content:space-between;margin:0;min-height:64px}
.club-edit{padding:12px 14px}
.logo-cmp{display:flex;align-items:center;justify-content:center;gap:16px;margin:4px 0 14px}
.logo-cmp>div{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;color:var(--g)}
.logo-tile.lg{width:112px;height:80px;border-radius:14px;padding:10px}
.logo-to{font-size:22px;color:var(--g)}
:root{--glass-l:rgba(255,255,255,.42)}
:root[data-theme=dark]{--glass-l:rgba(44,44,46,.42)}
.tabs,.tabs.dark{-webkit-backdrop-filter:blur(18px) saturate(220%);backdrop-filter:blur(18px) saturate(220%)}
.tabs,:root:not([data-theme=dark]) .tabs.dark{box-shadow:0 12px 36px rgba(15,23,42,.2),inset 0 0 0 .75px rgba(255,255,255,.7),inset 0 1px 0 rgba(255,255,255,.85)}
:root[data-theme=dark] .tabs{box-shadow:0 12px 36px rgba(0,0,0,.5),inset 0 0 0 .75px rgba(255,255,255,.14),inset 0 1px 0 rgba(255,255,255,.22)}
.screen:has(.p.ph-court) .tabs{background:rgba(255,255,255,.42)}
.logo-tile{box-sizing:border-box;overflow:hidden}
.logo-tile img{width:100%;height:100%;min-width:0;min-height:0;object-fit:contain}

/* ---- swipe-down: one curve for sheet, dim and page; glass rests behind sheets ---- */
.layer.dim-js::before{opacity:0}
.layer.dim-js>.scrim{background:rgba(0,0,0,.3)}
.screen:has(>.sheetslot .sheet) .tabs{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:var(--card)!important}

/* ---- Live tab glow: soft round light behind the icon (no box-shadow, so no square layer edge on Chrome mobile) ---- */
.tabs button.livetab{position:relative;isolation:isolate}
.tabs button.livetab svg.i{animation:none;box-shadow:none}
.tabs button.livetab::before{content:"";position:absolute;left:50%;top:19px;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;z-index:-1;pointer-events:none;
  background:radial-gradient(circle closest-side,rgba(215,255,61,.95) 0,rgba(215,255,61,.55) 45%,rgba(215,255,61,.18) 72%,rgba(215,255,61,0) 100%);
  animation:liveglow2 1.8s ease-in-out infinite}
@keyframes liveglow2{0%,100%{opacity:.45;transform:scale(.62)}50%{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.tabs button.livetab::before{animation:none;opacity:.7;transform:scale(.8)}}

/* End session: proper button at the bottom of Live, armed state for the second tap */
.b.endbtn{display:flex;width:100%;margin-top:18px;justify-content:center}
.b.bad.armed{background:#d70015;color:#fff;transition:background .2s,color .2s}

/* Settings: Your club row + screen, Subscription cards */
.clubrow .logo-tile{flex:none}
.logo-tile.ini{display:inline-flex;align-items:center;justify-content:center;background:#16274d;color:#d7ff3d;font-family:Anton,Impact,sans-serif;font-size:20px}
.club-logo{display:flex;align-items:center;gap:16px;padding:6px 2px}
.club-logo-b{display:flex;gap:8px;flex-wrap:wrap}
.club-logo-b .b{width:auto}
.plancard{background:var(--card,#fff);border-radius:20px;padding:16px 18px;margin-bottom:12px;border:1.5px solid transparent}
.plancard.on{border-color:#16274d}
:root[data-theme=dark] .plancard.on{border-color:#d7ff3d}
.pc-h{display:flex;align-items:center;justify-content:space-between;font-size:19px}
.pc-p{font-size:22px;font-weight:700;margin:2px 0 8px}.pc-p small{font-size:14px;font-weight:500;opacity:.65}
.plancard ul{margin:0 0 12px;padding-left:18px;font-size:15px;line-height:1.5;opacity:.85}
.plancard .b{margin-top:2px}

/* tab slide: frozen copy of the old screen underneath while the new one slides in */
.screen>.view-old{position:absolute;inset:0;pointer-events:none;z-index:-1}
/* after a tab slide, the screen arrives whole: no per-row rise on top of the slide (class stays so the rise never replays) */
.view.slid .scroll>*,.view.slid .p .mid>*{animation:none}

/* group photo share pictures (photocard.js) */
.gphoto[data-a]{cursor:pointer}
.pcimg{padding:0;background:none;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.pcimg.pc-feed{width:72%;aspect-ratio:4/5}
.pcimg.pc-story{width:52%;aspect-ratio:9/16}
.pcimg.wait-c.pc-feed{aspect-ratio:4/5;background:var(--ink)}
.pcimg.wait-c.pc-story{aspect-ratio:9/16;background:var(--ink)}
.pcimg.wait-c{display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;color:#fff}


/* ================= 11/11 polish pass: people status, Me page rows, big-screen names, Live tools, toasts ================= */
/* avatars carry the club navy everywhere, like the courts do */
.av,.wt .av{background:linear-gradient(180deg,#2c4686,#16274d)}
:root[data-theme=dark] .av,:root[data-theme=dark] .wt .av{background:linear-gradient(180deg,#3d5aa0,#263f7a)}
/* who is where, at a glance */
.pst{display:flex!important;align-items:center;gap:6px}
.pst::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--g3,#c7c7cc);flex:none}
.pst-court::before{background:var(--accent);box-shadow:0 0 0 1.5px rgba(22,39,77,.85)}
.pst-next::before{background:var(--navy,#16274d)}
.pst-rest::before{background:#ff9f0a}
.pst-out::before{display:none}
.pst-out{opacity:.75}
:root[data-theme=dark] .pst-court::before{box-shadow:0 0 8px var(--accent)}
:root[data-theme=dark] .pst-next::before{background:#8fa8e6}
.seg button i.n{font-style:normal;font-weight:400;opacity:.5;margin-left:6px;font-variant-numeric:tabular-nums}
/* rows with an icon: Me page, History tools */
.ri{width:30px;height:30px;border-radius:8px;background:var(--navy,#16274d);color:#fff;display:grid;place-items:center;flex:none}
.ri svg.i{width:17px;height:17px;stroke-width:2}
:root[data-theme=dark] .ri{background:#2a4380}
.row:has(>.ri)+.row:has(>.ri)::before{left:58px}
.melist{margin-top:12px}
.row.signout{justify-content:center;text-align:center}
.row.signout .t b{color:var(--bad-tx,#d70015);font-weight:500}
.stats.s3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stats.s3 .stat b{font-size:36px}
.b.pri svg.i{width:19px;height:19px;stroke-width:2.1}
/* player: second row of actions, and the game clock in place of a dead 0-0 */
.p .pacts{margin-bottom:10px}
.p .pacts .b{min-height:44px;font-size:15px;font-weight:500;padding:0 10px}
.ptime .pt{display:block;font:400 44px/1.05 var(--disp);font-variant-numeric:tabular-nums;margin-top:2px}
.ptime .pt.over{color:#b3261e}
@media(max-height:720px){.ptime .pt{font-size:34px}}
/* Live: tools as proper buttons */
.tools{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:24px}
.tool{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 15px;border-radius:999px;background:var(--card);color:var(--tx);font-size:15px;font-weight:500;letter-spacing:-.01em;box-shadow:0 .5px 1px rgba(0,0,0,.05);transition:transform .32s var(--spring),opacity .2s}
.tool svg.i{width:17px;height:17px;color:var(--g);stroke-width:2}
.tool:active{transform:scale(.965);opacity:.86;transition-duration:.12s}
/* toasts stay clear of the buttons: up top on a player's phone and whenever a sheet is open */
@keyframes toastTop{0%{opacity:0;transform:translate(-50%,-70%) scale(.9)}65%{opacity:1;transform:translate(-50%,6%) scale(1.02)}100%{transform:translate(-50%,0)}}
[data-surface=player] .toast,.screen:has(.sheetslot .layer) .toast{bottom:auto;top:calc(var(--safe-t,0px) + 12px);animation-name:toastTop}
/* big screen: names as large as the court count allows; no dead 0-0 */
.tc-b.ns{gap:.35cqw}
.tc-b.ns .tc-r{font-size:calc(var(--nm,2.4cqw)*1.22);line-height:1.1}
.tc-vs{font:600 1.5cqw/1 var(--text);font-style:normal;color:var(--accent);letter-spacing:.02em}
.tc-free{margin-top:auto;font:400 3cqw/1 var(--disp);text-transform:uppercase;color:#6f86b8;letter-spacing:.02em}

/* round two: tool tiles, add rows, bigger tap areas */
.tools{gap:8px}
.tool{flex:1 1 30%;flex-direction:column;justify-content:center;gap:5px;min-height:64px;padding:9px 6px;border-radius:16px;font-size:13px;line-height:1.15;text-align:center}
.tool svg.i{width:20px;height:20px;color:var(--tint)}
.tools:has(>:nth-child(4):last-child) .tool{flex-basis:45%}
:root[data-theme=dark] .tool svg.i{color:#fff;opacity:.85}
.av.add{background:var(--fill);color:var(--tint)}
:root[data-theme=dark] .av.add{background:var(--fill);color:#fff}
[data-a=why],.cover .pillb{position:relative}
[data-a=why]::after,.cover .pillb::after{content:"";position:absolute;inset:-7px -4px}

/* ================= paddle taps: every tap is a little navy paddle ================= */
.pdl{position:relative;display:grid;place-items:center;width:54px;height:58px;border-radius:19px 19px 21px 21px;background:linear-gradient(165deg,#2c4686,#16274d 60%,#111f3e);color:var(--accent);flex:none;margin-bottom:12px;box-shadow:inset 0 .5px 0 rgba(255,255,255,.28),0 4px 10px rgba(22,39,77,.22)}
.pdl::after{content:"";position:absolute;left:50%;top:100%;width:12px;height:12px;margin:-1px 0 0 -6px;border-radius:0 0 4.5px 4.5px;background:#111f3e}
.pdl svg.i{width:28px;height:28px;stroke-width:1.9}
.pdl.sm{width:40px;height:43px;border-radius:14px 14px 16px 16px;margin-bottom:9px;box-shadow:inset 0 .5px 0 rgba(255,255,255,.28)}
.pdl.sm::after{width:9px;height:9px;margin-left:-4.5px;border-radius:0 0 3.5px 3.5px}
.pdl.sm svg.i{width:21px;height:21px;stroke-width:2}
.pdl.xs{width:24px;height:26px;border-radius:9px 9px 10px 10px;margin:0 2px 5px 0;box-shadow:none}
.pdl.xs::after{width:6px;height:5px;margin-left:-3px;border-radius:0 0 2px 2px}
.pdl.xs svg.i{width:14px!important;height:14px!important;stroke-width:2.2!important;color:var(--accent)!important}
.pdl.lg{width:112px;height:120px;border-radius:40px 40px 44px 44px;margin-bottom:26px;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 14px 30px rgba(22,39,77,.3)}
.pdl.lg::after{width:25px;height:25px;margin-left:-12.5px;border-radius:0 0 9px 9px}
.pdl.lg svg.i{width:58px;height:58px;stroke-width:1.7}
.pdl.off{background:var(--fill);color:var(--g3);box-shadow:none}
.pdl.off::after{background:var(--fill);margin-top:0}
:root[data-theme=dark] .pdl:not(.off){background:linear-gradient(165deg,#3d5aa0,#263f7a 60%,#1c3166)}
:root[data-theme=dark] .pdl:not(.off)::after{background:#1c3166}
:root[data-theme=dark] .pdl.off{color:#6b6b72}
.row:has(>.pdl)+.row:has(>.pdl)::before{left:68px}
.row:has(>.pdl) .t small{white-space:normal;line-height:1.3}
.row.picked{background:rgba(118,118,128,.1)}
.tpick{width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--on,#0a0a0a);display:grid;place-items:center;flex:none}
.tpick svg.i{width:15px;height:15px;stroke-width:2.6}
.row .r.tgr{gap:6px;color:var(--tx)}
.row .r.tgr:not(:has(.pdl)){color:var(--tint)}
/* collection */
.tpbox{background:var(--card);border-radius:14px;padding:14px 8px 6px;margin-bottom:14px;box-shadow:0 .5px 1px rgba(0,0,0,.05)}
.tpprog{display:flex;align-items:center;gap:12px;padding:0 8px 4px;font-size:13px;color:var(--g)}
.tpprog span{white-space:nowrap}.tpprog b{font:400 20px/1 var(--disp);color:var(--tx);margin-right:2px}
.tpprog>i{flex:1;height:6px;border-radius:99px;background:var(--fill);overflow:hidden}
.tpprog>i>i{display:block;height:100%;border-radius:99px;background:var(--navy,#16274d);transition:width .6s var(--spring)}
:root[data-theme=dark] .tpprog>i>i{background:var(--accent)}
.tpl{font-size:13px;font-weight:500;color:var(--g);margin:14px 8px 10px}
.tpgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 2px}
.tpc{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px 10px;border-radius:14px;min-width:0;transition:transform .32s var(--spring),background .2s}
.tpc:active{transform:scale(.94);background:rgba(118,118,128,.12)}
.tpc b{font-size:11.5px;font-weight:600;line-height:1.2;text-align:center;letter-spacing:-.01em;color:var(--tx);min-height:2.4em;display:flex;align-items:flex-start;justify-content:center}
.tpc.off b{color:var(--g);font-weight:500}
.tpn{position:absolute;top:1px;left:50%;margin-left:14px;min-width:22px;height:20px;padding:0 5px;border-radius:99px;background:var(--accent);color:var(--on,#0a0a0a);font:700 11.5px/20px var(--text);font-style:normal;text-align:center;box-shadow:0 0 0 2px var(--card)}
.tpempty{display:flex;align-items:center;gap:14px;background:var(--card);border-radius:14px;padding:14px 16px 6px;margin-bottom:14px}
.tpempty span:last-child{padding-bottom:8px}
.tpempty b{display:block;font-size:17px;font-weight:500;letter-spacing:-.016em}
.tpempty small{display:block;font-size:13px;line-height:1.3;color:var(--g);margin-top:2px}
/* one tap, up close */
.tpinfo{display:flex;flex-direction:column;align-items:center;text-align:center;padding:6px 8px 10px}
.tpinfo .pdl.lg{animation:tapPop .6s var(--spring) both}
@keyframes tapPop{0%{transform:scale(.6) rotate(-14deg);opacity:0}60%{transform:scale(1.06) rotate(4deg);opacity:1}100%{transform:none}}
.tpinfo h3{font:400 34px/1 var(--disp);text-transform:uppercase;margin-bottom:8px}
.tpinfo p{font-size:16px;line-height:1.4;color:var(--g);max-width:300px}
.tpgot{margin-top:16px;padding:9px 16px;border-radius:99px;background:var(--fill);font-size:14px;font-weight:500;color:var(--g)}
.tpgot.on{background:var(--navy,#16274d);color:#fff}
@media(prefers-reduced-motion:reduce){.tpinfo .pdl.lg{animation:none}}

/* ---------- 12/11 photo gallery (gallery.js) ---------- */
.ph-add{margin:2px 0 6px}
.ph-add .i,.ph-rc-add .i{width:20px;height:20px}
.ph-sec+.ph-sec{margin-top:6px}
.ph-t{position:relative;display:block;padding:0;border:0;background:var(--fill);border-radius:12px;overflow:hidden;cursor:pointer;aspect-ratio:1/1}
.ph-t img{display:block;width:100%;height:100%;object-fit:cover}
.ph-t:active{transform:scale(.97)}
.ph-t.grp{aspect-ratio:4/5;border-radius:16px;box-shadow:0 6px 20px rgba(14,26,54,.18)}
.ph-t.wait img{filter:blur(10px) brightness(.8);transform:scale(1.08)}
.ph-t.wait::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);background-size:220% 100%;animation:phshim 1.2s linear infinite}
@keyframes phshim{from{background-position:120% 0}to{background-position:-120% 0}}
.ph-grp{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:10px}
.ph-grp.many{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px 10px;padding:0 16px 4px;scrollbar-width:none}
.ph-grp.many::-webkit-scrollbar{display:none}
.ph-grp.many .ph-t{flex:0 0 78%;scroll-snap-align:center}
.ph-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.ph-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:46px 20px;color:var(--g)}
.ph-empty .i{width:40px;height:40px;opacity:.6;margin-bottom:4px}
.ph-empty b{color:var(--tx);font-size:17px}
.ph-empty small{font-size:15px;max-width:30ch}
.ph-big{display:block;width:100%;border-radius:16px;max-height:62vh;object-fit:contain;background:var(--fill)}
.ph-big.grp{background:none}
.ph-tick .i{width:20px;height:20px;color:var(--tx)}
.layer[data-k=gallery] .sheet{min-height:88%}
/* recap: framed group photos, swipe for more */
.recap{overflow-y:auto}
.ph-rc{display:flex;flex-direction:column;gap:6px}
.ph-rc-strip{display:grid}
.ph-rc-strip .ph-t{max-height:46vh;aspect-ratio:4/5;width:auto;margin:0 auto;box-shadow:0 12px 34px rgba(0,0,0,.4)}
.ph-rc-strip.many{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -22px;padding:0 22px 4px}
.ph-rc-strip.many::-webkit-scrollbar{display:none}
.ph-rc-strip.many .ph-t{flex:0 0 auto;height:min(46vh,92cqw);scroll-snap-align:center}
.ph-rc-strip:not(.many) .ph-t:not(.grp){aspect-ratio:auto;width:100%;max-height:280px}
.ph-rc-all{color:rgba(255,255,255,.82);align-self:center}
.ph-rc-add{color:#fff}
.ph-hold{margin:8px 0 2px;font-size:14px}

/* ---------- 12/11 business app: the club's own name on sign-in (adapter.js, multi only) ---------- */
.ag-club{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.ag-club img{height:64px;width:auto;max-width:180px;object-fit:contain;margin:0;border-radius:12px}
.ag-club b{font:400 44px/1 var(--disp);text-transform:uppercase;letter-spacing:.005em}
/* business app: invite, switch club, club picker (clubs.js + adapter.js) */
.mc-qr{display:block;width:72%;margin:6px auto 0;border-radius:18px;background:#fff}
.mc-code{text-align:center;margin-top:12px}.mc-code small{display:block;color:var(--g);font-size:13px;font-weight:600}
.mc-code b{font:400 44px/1.1 var(--disp);letter-spacing:.12em;text-transform:uppercase}
.mc-join{display:flex;gap:8px;align-items:center}.mc-join .inp{flex:1;min-width:0}
.ag-picks{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.ag-pick{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:12px 14px;border-radius:18px;border:0;background:var(--card);color:var(--tx);font:inherit;cursor:pointer}
.ag-pick img,.ag-pick i{width:48px;height:48px;border-radius:12px;object-fit:contain;flex:none}
.ag-pick i{display:grid;place-items:center;background:var(--ink);color:#fff;font:400 24px var(--disp);font-style:normal}
.ag-pick b{display:block;font-size:17px}.ag-pick small{color:var(--g);font-size:14px}
/* business app: the club's mark in place of EPC's logos (v1.js clubMarkHtml) */
.cm-img{object-fit:contain}
.cm-name{display:inline-block;font:400 22px/1 var(--disp);text-transform:uppercase;letter-spacing:.01em;color:var(--tx);max-width:70vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clogo.cm-img{height:30px;width:auto;max-width:140px;border-radius:6px}
.hlock.cm-img{height:64px;width:auto;max-width:220px;border-radius:10px}
.hlock.cm-name{font-size:40px;line-height:1.05;white-space:normal;max-width:72vw}
.pmark.cm-img{height:30px;width:auto;max-width:140px;border-radius:6px}
.pmark.cm-name{font-size:20px;color:inherit}
.dmark.cm-img{max-width:60%;max-height:30%;object-fit:contain}.dmark.cm-name{font-size:9vw;color:#fff}

/* sign-up dropdowns: readable option list (Windows draws it white, and the white text vanished) 12/11 */
.authgate select{color-scheme:dark}.authgate select option{background:#22396d;color:#fff}
:root:not([data-theme=dark]) .authgate select{color-scheme:light}:root:not([data-theme=dark]) .authgate select option{background:#fff;color:#1c1c1e}
