:root{--bg:#031b10;--header:#16743c;--card:#132f21;--card-2:#0a2417;--line:#2d6948;--line-soft:#204b35;--green:#1c914d;--green-dark:#0f6635;--yellow:#ffcc16;--red:#cf3b2f;--text:#f2f2eb;--muted:#82a48f;--shadow:0 14px 38px rgba(0,0,0,.28);--radius:22px}*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:'Segoe UI',sans-serif}button,input,select{font:inherit}.hidden{display:none!important}.noise{display:none}.topbar{height:96px;padding:0 max(24px,calc((100% - 960px)/2));display:flex;align-items:center;justify-content:space-between;background:var(--header);border-bottom:3px solid var(--yellow);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:14px}.brand-button{border:0;background:none;color:var(--text);cursor:pointer;padding:0}.brand-rack{display:grid;place-items:center;width:50px;height:50px;font-size:32px;filter:drop-shadow(0 3px 3px rgba(0,0,0,.3))}.brand>span:last-child{display:grid;text-align:left}.brand b{font-size:25px;line-height:1;color:var(--yellow);letter-spacing:-.04em}.brand small{font-size:13px;letter-spacing:.38em;color:#061a10;margin-top:6px;font-weight:900}.top-actions,.heading-actions,.hero-actions,.modal-actions{display:flex;align-items:center;gap:12px}.connection-pill{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.78);font-size:12px}.connection-pill i{width:8px;height:8px;border-radius:50%;background:var(--yellow)}
.auth-layout,.page{width:min(960px,calc(100% - 34px));margin:0 auto}.auth-layout{display:grid;grid-template-columns:1fr 440px;gap:36px;align-items:center;padding:54px 0 90px;min-height:calc(100vh - 96px)}.hero-copy{text-align:center}.tracker-emblem{font-size:105px;line-height:1;filter:drop-shadow(0 10px 10px rgba(0,0,0,.3))}.hero-copy h1{font-size:54px;line-height:1;margin:20px 0 18px;color:var(--red);letter-spacing:-.04em}.hero-copy h1 span{color:var(--yellow)}.hero-lede{font-size:18px;line-height:1.55;color:var(--muted);max-width:570px;margin:0 auto}.eyebrow{margin:0;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.eyebrow.coral,.eyebrow.mint{color:var(--yellow)}.feature-strip{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:28px 0;color:var(--muted);font-weight:700;font-size:13px}.feature-strip span{display:flex;gap:6px}.mini-board{display:none}.panel{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.auth-card{padding:32px}.auth-card h2,.modal-card h2{margin:10px 0 8px;color:var(--yellow);font-size:30px}.muted{color:var(--muted)}.tiny{font-size:11px;line-height:1.5;margin-top:20px}.auth-card>p.muted{margin-top:0}label{display:grid;gap:8px;margin-top:18px;font-size:13px;font-weight:800;color:#c7d7cd}input,select{width:100%;padding:14px 15px;color:var(--text);background:#092216;border:2px solid var(--line-soft);border-radius:12px;outline:none}input:focus,select:focus{border-color:var(--yellow);box-shadow:0 0 0 3px rgba(255,204,22,.1)}select option{background:#092216}.button{border:2px solid transparent;border-radius:12px;padding:12px 18px;font-weight:900;cursor:pointer;transition:.15s;white-space:nowrap}.button:hover{filter:brightness(1.08);transform:translateY(-1px)}.button:disabled{opacity:.4;cursor:not-allowed;transform:none}.button.primary{background:var(--yellow);color:#092216}.button.secondary{background:var(--green);color:white}.button.ghost{background:transparent;color:var(--muted);border-color:var(--line)}.button.wide{width:100%;margin-top:22px}.button.small{padding:8px 12px;font-size:11px}.coral-button{background:var(--yellow);color:#102116}.display-button{background:var(--green);color:white}.text-button,.back-link{border:0;background:none;color:var(--yellow);font-weight:800;cursor:pointer;padding:15px 0 0}.back-link{padding:0;margin-bottom:18px}.form-error{min-height:18px;color:#ff7568;font-size:12px;margin-top:11px}.auth-or{display:flex;align-items:center;gap:12px;margin:20px 0 12px;color:var(--muted);font-size:10px;font-weight:800}.auth-or::before,.auth-or::after{content:'';height:1px;flex:1;background:var(--line)}.google-button{width:100%;border:1px solid #c5c9c6;border-radius:10px;background:white;color:#303631;padding:12px;font-weight:800;cursor:pointer}.google-g{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:9px;border-radius:50%;color:#4285f4;font-size:18px;font-weight:900}
.page{padding:48px 0 90px}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:25px}.page-heading h1,.club-hero h1{margin:8px 0 5px;color:var(--yellow);font-size:42px;letter-spacing:-.04em}.club-grid{display:grid;gap:14px}.club-card{position:relative;min-height:150px;padding:24px 280px 24px 28px;background:var(--card);border:2px solid var(--line);border-radius:20px;cursor:pointer;overflow:hidden}.club-card:hover{border-color:var(--yellow)}.club-card::after{content:'🎱  Open Club';position:absolute;right:25px;top:50%;transform:translateY(-50%);padding:14px 22px;background:var(--green);border-radius:13px;font-size:18px;font-weight:900}.club-card .role{font-size:11px;text-transform:uppercase;color:var(--yellow);letter-spacing:.1em}.club-card h2{margin:20px 0 6px;color:var(--yellow);font-size:25px}.club-card p{color:var(--muted);margin:0}.club-card .club-meta{display:flex;gap:18px;margin-top:13px;color:var(--muted);font-size:11px}.empty-state{text-align:center;padding:65px 20px;border:2px dashed var(--line);border-radius:var(--radius)}.empty-eight{display:grid;place-items:center;margin:0 auto 18px;width:70px;height:70px;border-radius:50%;background:#111;color:white;border:7px solid #303633;font-size:30px;font-weight:900}.empty-state h2{color:var(--yellow);margin:0}.empty-state p{color:var(--muted);max-width:440px;margin:10px auto 22px}.club-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:32px}.dark-panel{background:var(--card)}.club-code-line{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.code-chip{border:0;border-radius:22px;padding:8px 14px;background:var(--yellow);color:#132116;font-weight:900;letter-spacing:.1em;cursor:pointer}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px 0}.tabs button{border:0;border-radius:12px;padding:13px;background:transparent;color:var(--muted);font-weight:900;cursor:pointer}.tabs button.active{background:var(--green);color:white}.section-title{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.section-title h2{margin:0;color:var(--yellow)}.section-title p{margin:5px 0 0;font-size:13px}.match-list{display:grid;gap:11px}.match-row{display:grid;grid-template-columns:82px minmax(12ch,1fr) auto minmax(12ch,1fr) 130px auto;align-items:center;gap:18px;padding:18px;background:var(--card);border:2px solid var(--line);border-radius:16px}.match-status{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.match-status.live{color:#62d88e}.match-status.finished{color:var(--muted)}.team-name{font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-name.right{text-align:right}.match-score{color:var(--yellow);font-size:25px;font-weight:900}.match-score i{padding:0 7px;color:var(--muted);font-style:normal}.match-info{text-align:right;color:var(--muted);font-size:11px}.row-actions{display:flex;gap:6px;justify-content:flex-end}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:15px}.two-column>.panel,.table-panel{padding:24px}.people-list{display:grid;gap:8px}.person-row{display:flex;align-items:center;gap:12px;padding:12px;background:var(--card-2);border:1px solid var(--line-soft);border-radius:12px}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--green);font-size:12px;font-weight:900}.person-row b{flex:1}.person-row small{color:var(--muted);text-transform:capitalize}.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:15px}.tournament-player-groups{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.tournament-player-groups.has-abandoned{grid-template-columns:repeat(3,1fr)}.tournament-player-group h4{margin:0 0 8px;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.tournament-player-group .muted.small{font-size:12px;margin:0}.stat-card{padding:22px;background:var(--card);border:2px solid var(--line);border-radius:16px}.stat-card small{display:block;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase}.stat-card strong{display:block;margin-top:13px;color:var(--yellow);font-size:32px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:11px 13px;color:var(--muted);border-bottom:1px solid var(--line);font-size:10px;text-transform:uppercase}td{padding:13px;border-bottom:1px solid var(--line);white-space:nowrap}td:first-child{font-weight:900;color:var(--yellow)}
.modal{border:0;padding:0;background:transparent;width:min(580px,calc(100% - 22px));max-height:calc(100vh - 25px)}.modal::backdrop{background:rgba(0,10,5,.8);backdrop-filter:blur(4px)}.modal-card{max-height:calc(100vh - 25px);overflow:auto;padding:28px;background:var(--card);color:var(--text);border:2px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.modal-top{display:flex;justify-content:space-between;align-items:flex-start}.icon-button{width:36px;height:36px;border:2px solid var(--line);border-radius:10px;background:var(--card-2);color:var(--muted);font-size:22px;cursor:pointer}.modal-actions{justify-content:flex-end;margin-top:25px;padding-top:18px;border-top:1px solid var(--line)}.match-modal{width:min(900px,calc(100% - 22px))}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;margin:24px 0;background:#082116;border:2px solid var(--line);border-radius:15px}.segmented button,.best-presets button{border:0;border-radius:10px;padding:11px;background:transparent;color:var(--muted);font-weight:900;cursor:pointer}.segmented button.active,.best-presets button.active{background:var(--yellow);color:#0b2015}.field-block{margin:18px 0}.field-label{color:var(--muted);font-size:12px;font-weight:800}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:9px}.choice{padding:16px;text-align:left;color:var(--text);background:var(--card-2);border:2px solid var(--line);border-radius:14px;cursor:pointer}.choice.active{border-color:var(--yellow);background:#293519}.choice b,.choice small{display:block}.choice b{color:var(--yellow)}.choice small{margin-top:5px;color:var(--muted)}.setup-row{display:flex;align-items:end;gap:14px;margin:18px 0}.setup-row label{width:115px;margin:0}.best-presets{display:flex;gap:5px}.best-presets button{min-width:48px;background:#082116;border:1px solid var(--line)}.versus-grid{display:grid;grid-template-columns:1fr 52px 1fr;align-items:center;gap:12px}.team-setup{padding:18px;background:var(--card-2);border:2px solid var(--line);border-radius:16px}.team-letter{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--yellow);color:#0b2015;font-weight:900}.team-b .team-letter{background:var(--red);color:white}.versus{text-align:center;color:var(--yellow);font-size:12px;font-weight:900}.player-picks{display:grid;gap:9px;margin-top:14px}.player-picks label{margin:0}.toast{position:fixed;left:50%;bottom:25px;z-index:50;transform:translate(-50%,20px);padding:12px 17px;background:var(--yellow);color:#0b2015;border-radius:10px;font-size:12px;font-weight:900;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.topbar{height:82px;padding:0 18px;border-bottom-width:3px}.brand b{font-size:20px}.brand-rack{width:38px;height:38px;font-size:25px}.auth-layout{grid-template-columns:1fr;padding:35px 0}.tracker-emblem{font-size:78px}.hero-copy h1{font-size:42px}.auth-card{max-width:560px;width:100%;margin:auto}.page{padding-top:30px}.page-heading,.club-hero{align-items:flex-start;flex-direction:column}.club-hero{padding:24px}.hero-actions{width:100%}.hero-actions .button{flex:1}.club-card{padding:22px}.club-card::after{content:'›';right:22px;padding:0;background:none;color:var(--yellow);font-size:42px}.club-card h2{padding-right:45px}.match-row{grid-template-columns:65px minmax(12ch,1fr) auto minmax(12ch,1fr);row-gap:10px}.match-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.match-info{display:none}.row-actions{grid-column:1/-1;justify-content:flex-start}.two-column{grid-template-columns:1fr}.tournament-player-groups{grid-template-columns:1fr}.versus-grid{grid-template-columns:1fr}.versus{padding:3px}.choice-grid{grid-template-columns:1fr}.top-actions .connection-pill span{display:none}.page,.auth-layout{width:min(100% - 22px,960px)}.heading-actions{width:100%}.heading-actions .button{flex:1}.page-heading h1{font-size:36px}.feature-strip{gap:10px;font-size:11px}.club-grid{grid-template-columns:1fr}.tabs{gap:4px}.tabs button{padding:11px 6px;font-size:12px}.match-row{grid-template-columns:1fr auto;gap:7px 14px}.match-status{grid-column:1/-1}.team-name.right{text-align:left}.match-score{grid-row:2/4;grid-column:2}.row-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.stat-cards{grid-template-columns:repeat(3,1fr);gap:6px}.stat-card{padding:12px 8px}.stat-card small{font-size:8px}.stat-card strong{margin-top:6px;font-size:19px}.setup-row{align-items:flex-start;flex-direction:column}.modal-card{padding:22px}.top-actions .button{display:none}
.profile-pill{display:flex;align-items:center;gap:9px;padding:6px 12px 6px 6px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(4,39,20,.28);color:white;cursor:pointer}.profile-pill span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--yellow);color:#102116;font-size:13px;font-weight:900}.profile-pill b{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.register-layout{display:block;max-width:560px;padding-top:42px}.register-card{width:100%}.registration-checklist{display:grid;gap:7px;margin-top:17px;padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:var(--card-2);color:var(--muted);font-size:12px}.registration-checklist span{transition:.15s}.registration-checklist .good{color:#63d78f}.registration-checklist .bad{color:#ff7568}.registration-checklist .pending{color:var(--yellow)}
.account-panel{max-width:680px;margin:0 auto;overflow:hidden}.account-profile{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;padding:25px}.account-profile h1{margin:0 0 4px;color:var(--yellow);font-size:25px}.account-profile p{margin:0}.account-avatar{grid-row:1/3;display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:var(--green);color:white;font-size:19px;font-weight:900}.icon-edit{align-self:start;border:1px solid var(--line);border-radius:9px;background:var(--card-2);color:var(--yellow);width:35px;height:35px;cursor:pointer}.account-badge{grid-column:2/4;justify-self:start;padding:6px 10px;border-radius:999px;background:var(--card-2);border:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:900}.account-row{width:100%;display:flex;align-items:center;gap:10px;padding:18px 25px;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left;cursor:pointer}.account-row b{flex:1}.account-row span{color:var(--yellow);font-size:25px}.account-matches{display:grid;gap:8px;padding:15px;background:var(--card-2);border-bottom:1px solid var(--line)}.account-matches .match-row{grid-template-columns:65px minmax(12ch,1fr) auto minmax(12ch,1fr)}.account-matches .match-info{display:none}.settings-divider{height:12px;background:var(--card-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.preference-row{display:grid;gap:10px;padding:18px 25px;border-bottom:1px solid var(--line)}.preference-row>span{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.1em}.setting-options{display:flex;gap:7px;flex-wrap:wrap}.setting-options button{flex:1;min-width:100px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--card-2);color:var(--muted);font-size:12px;font-weight:800;cursor:pointer}.setting-options button.active{border-color:var(--yellow);background:var(--green);color:white;box-shadow:inset 0 0 0 1px var(--yellow)}.account-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:20px 25px}.account-actions button{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2);color:var(--text);font-weight:800;cursor:pointer}.account-panel>.google-button{width:calc(100% - 50px);margin:0 25px 22px}.account-signout{width:100%;padding:20px;border:0;background:transparent;color:#ff7568;font-weight:900;cursor:pointer}
body[data-theme="midnight"]{--bg:#080b12;--header:#101827;--card:#141b28;--card-2:#0c121d;--line:#334057;--line-soft:#273348;--green:#266f56;--green-dark:#1d5846;--muted:#91a0b4}body[data-theme="light"]{--bg:#eef3ee;--header:#16743c;--card:#fff;--card-2:#f3f7f3;--line:#c8d8cc;--line-soft:#d8e3da;--text:#15231a;--muted:#617266;--shadow:0 12px 32px rgba(21,48,29,.12)}body[data-theme="light"] input,body[data-theme="light"] select{background:#fff;color:#15231a}body[data-theme="light"] select option{background:white}body[data-theme="light"] .modal-card{background:var(--card);color:var(--text)}
.profile-pill b{display:none}.profile-pill{padding-right:6px}.register-layout{padding-top:24px}.account-profile{padding:20px}.preference-row{padding:16px}.setting-options{display:grid;grid-template-columns:1fr}.account-actions{grid-template-columns:1fr;padding:18px}.account-panel>.google-button{width:calc(100% - 36px);margin-left:18px;margin-right:18px}.account-matches .match-row{grid-template-columns:1fr auto}
.registration-checklist i{display:inline-block;width:16px;font-style:normal;font-weight:900}

/* Keep short screens snug while preserving normal scrolling for real content. */
.page{padding-bottom:max(18px,env(safe-area-inset-bottom))}.auth-layout{padding-bottom:max(18px,env(safe-area-inset-bottom))}body{overflow-x:hidden}
.clubs-menu{flex-wrap:wrap;justify-content:flex-end}.dashboard-actions-row{justify-content:stretch;margin-bottom:12px}.dashboard-actions-row .button{flex:1}.live-tournament-card{border-color:#d99bff;background:linear-gradient(135deg,var(--card-2),rgba(112,52,135,.18))}.live-tournament-card h2{color:#edc9ff}.clubs-menu{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.clubs-menu .button{white-space:normal}.dashboard-actions-row{margin-bottom:10px}

.public-match-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.public-match-actions .button{padding:11px 8px}.public-access-or{margin-top:14px}.public-match-dialog .muted{line-height:1.45}.public-match-result{display:grid;gap:9px;margin-top:18px}.public-match-result p{display:grid;gap:5px;margin:0 0 4px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card-2)}.public-match-result p b{color:var(--yellow);font-size:1.05rem}.public-match-result p small{color:var(--muted)}.public-match-result .button{text-align:center;text-decoration:none}.public-match-actions{grid-template-columns:1fr}.public-match-dialog .modal-card{padding:19px}
/* KellyPool-scale layout: compact 600px working column and table-first club cards. */

body{font-family:'Segoe UI',sans-serif}.topbar{height:auto;min-height:59px;padding:10px 16px;border-bottom-width:3px;gap:8px}.brand{gap:10px}.brand-rack{width:36px;height:36px;font-size:26px}.brand b{font-size:1.2rem;letter-spacing:-.5px}.brand small{font-size:.62rem;letter-spacing:.42em;margin-top:3px;color:#071d10}.connection-pill{display:none}.top-actions{flex-shrink:0}.profile-pill{padding:5px 12px 5px 5px;gap:7px}.profile-pill span{width:28px;height:28px;font-size:11px}.profile-pill b{font-size:.9rem;font-weight:500}.header-match-pills{display:flex;align-items:center;justify-content:center;gap:6px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.header-match-pills::-webkit-scrollbar{display:none}.header-match-pills button{display:flex;align-items:center;gap:5px;flex-shrink:0;padding:5px 11px;border:1px solid var(--yellow);border-radius:20px;background:#174c2b;color:var(--yellow);font-size:.78rem;font-weight:800;cursor:pointer}.header-match-pills i{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 6px rgba(74,222,128,.7)}
.auth-layout,.page{display:block;width:100%;max-width:600px;margin:0 auto;padding:16px}.auth-layout{min-height:0}.hero-copy,.dashboard-intro{text-align:center;padding:24px 0 16px}.tracker-emblem,.dashboard-intro .tracker-emblem{font-size:86px;line-height:1}.hero-copy h1,.dashboard-intro h1{margin:10px 0 0;color:var(--yellow);font-size:2rem;letter-spacing:-1px}.hero-copy h1 span{color:var(--yellow)}.dashboard-intro h1 span,.hero-copy h1 span+span{color:var(--red);font-size:.85rem;letter-spacing:1.5px;vertical-align:middle}.hero-lede,.dashboard-intro p{max-width:360px;margin:6px auto 0;color:var(--muted);font-size:.78rem;line-height:1.5}.hero-copy>.eyebrow,.feature-strip{display:none}.auth-card{width:100%;padding:18px;border-width:1px;border-radius:12px;box-shadow:none}.auth-card h2,.modal-card h2{margin:0 0 14px;font-size:1.05rem}.auth-card>p.muted{font-size:.85rem;margin-bottom:8px}.auth-card label{margin-top:0;margin-bottom:4px;color:var(--muted);font-size:.85rem;font-weight:400}.auth-card input{padding:10px 14px;margin-bottom:10px;border-width:1px;border-radius:8px;font-size:1rem}.button{padding:12px;border-radius:8px;font-size:1rem}.button.small{padding:7px 14px;font-size:.82rem}.button.wide{margin-top:0}.google-button{padding:10px;border-radius:8px}.text-button{font-size:.85rem}.register-layout{max-width:600px;padding-top:16px}.register-card{max-width:none}.registration-checklist{margin:8px 0 10px;padding:10px;border-radius:8px}.page{padding-top:16px;padding-bottom:60px}
.dashboard-intro{padding-top:24px}.dashboard-intro .tracker-emblem{font-size:86px}.live-matches-banner{display:grid;gap:8px;margin-bottom:12px}.live-match-card{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;background:var(--card-2);border:2px solid var(--yellow);border-radius:12px}.live-match-card>div:first-child{flex:1;min-width:0}.live-match-card>div:last-child{display:flex;gap:8px}.live-match-card span{display:block;margin-bottom:3px;color:var(--muted);font-size:.72rem;letter-spacing:1px}.live-match-card h2{margin:0;color:var(--yellow);font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-match-card h2 i{padding:0 4px;color:var(--text);font-style:normal}.live-match-card p{margin:3px 0 0;color:var(--muted);font-size:.78rem}.clubs-panel{padding:18px;border-width:1px;border-radius:12px;box-shadow:none}.clubs-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.clubs-options-wrap{position:relative}.clubs-options-dropdown{position:absolute;right:0;top:calc(100% + 8px);display:grid;min-width:180px;background:var(--card);border:2px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;z-index:20}.clubs-options-dropdown button{padding:12px 16px;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left;font-weight:800;cursor:pointer}.clubs-options-dropdown button:hover{background:var(--card-2)}.clubs-options-dropdown button+button{border-top:1px solid var(--line)}.empty-state-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.clubs-heading h2{margin:0;color:var(--yellow);font-size:1.05rem}.clubs-heading p{margin:3px 0 0;color:var(--muted);font-size:.78rem}.clubs-menu{display:flex;gap:6px}.club-grid{display:grid;gap:10px}.club-card{position:relative;min-height:0;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer}.club-card::after{display:none}.club-card:hover{border-color:var(--yellow)}.club-card-main{display:flex;align-items:center;justify-content:space-between;gap:10px}.club-card-copy{min-width:0}.club-card h3{margin:0;color:var(--yellow);font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.club-card p{margin:2px 0 0;color:var(--muted);font-size:.78rem;overflow-wrap:break-word}.club-new-match{width:110px;margin:0;flex-shrink:0;white-space:nowrap}.club-live-list{display:grid;gap:5px;margin:12px -4px -2px;padding:10px 4px 0;border-top:1px solid var(--line)}.club-live-list>span{color:#4ade80;font-size:.68rem;font-weight:900;letter-spacing:.09em}.club-live-list button{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:7px;width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--card-2);color:var(--text);text-align:left;cursor:pointer}.club-live-list button i{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 5px rgba(74,222,128,.65)}.club-live-list button b{color:var(--yellow);font-size:.78rem}.club-live-list button small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.club-live-list button strong{color:var(--yellow);font-size:.75rem}.empty-state{padding:28px 12px;border-width:1px;border-radius:10px}.empty-eight{width:54px;height:54px;margin-bottom:12px;border-width:5px;font-size:22px}
.back-link{margin:2px 0 12px;font-size:.85rem}.club-hero{padding:18px;border-width:1px;border-radius:12px}.club-hero h1{font-size:1.5rem;margin:4px 0}.club-code-line{font-size:.78rem}.hero-actions .button{font-size:.82rem;padding:8px 11px}.tabs{gap:4px;margin:14px 0}.tabs button{padding:9px 5px;font-size:.82rem}.match-row{grid-template-columns:64px minmax(12ch,1fr) auto minmax(12ch,1fr);padding:12px;gap:8px;border-width:1px;border-radius:10px}.match-info{display:none}.two-column{grid-template-columns:1fr;gap:10px}.two-column>.panel,.table-panel{padding:18px;border-width:1px;border-radius:12px}.account-panel{border-width:1px;border-radius:12px;box-shadow:none}.modal-card{padding:20px;border-width:1px;border-radius:12px}.match-modal{width:min(600px,calc(100% - 22px))}
@media (max-width:480px){.topbar{padding:8px 10px}.brand-rack{width:32px;height:32px;font-size:23px}.brand b{font-size:1.05rem}.header-match-pills{justify-content:flex-start}.header-match-pills button{padding:4px 8px;font-size:.7rem}.profile-pill b{display:none}.profile-pill{padding-right:5px}.auth-layout,.page{padding-left:12px;padding-right:12px}.hero-copy,.dashboard-intro{padding-top:18px}.tracker-emblem,.dashboard-intro .tracker-emblem{font-size:72px}.hero-copy h1,.dashboard-intro h1{font-size:1.7rem}.clubs-panel{padding:14px}.clubs-heading{align-items:flex-start}.clubs-heading p{display:none}.clubs-menu{gap:4px}.clubs-menu .button{padding:7px 9px}.club-card{padding:12px}.club-card-main{align-items:center}.club-new-match{width:104px;padding:8px 7px}.live-match-card>div:last-child{width:100%}.live-match-card>div:last-child .button{flex:1}.club-live-list button{grid-template-columns:auto auto 1fr}.club-live-list button strong{display:none}.live-tournament-card>div:last-child{width:auto}.live-tournament-card>div:last-child .button{flex:none}.live-tournament-card{flex-wrap:nowrap;gap:8px}.live-tournament-card h2{font-size:.92rem}}

/* Dashboard: club ownership is deliberately separated from following. */
.club-home-entry{display:grid;gap:7px}.club-home-entry .club-new-match{width:100%;padding:10px;margin:0}.followed-clubs-panel{margin-top:24px;padding:0;border:0;background:transparent;box-shadow:none}.followed-clubs-grid{display:grid;gap:22px}.followed-club{display:grid;gap:9px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.followed-club-group{display:grid;gap:10px;min-width:0}.followed-club-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.followed-club-heading h3{margin:0;color:var(--yellow);font-size:1rem}.followed-club-heading .text-button{padding:0;color:var(--muted);font-size:.75rem}.followed-club-heading p{margin:3px 0 0}.followed-activity{display:grid;gap:6px}.followed-activity h4{margin:4px 0 0;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}.followed-activity-card{display:grid;gap:3px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card-2);color:var(--text);text-decoration:none}.followed-activity-card b{color:#64dc91;font-size:.68rem;letter-spacing:.05em}.followed-activity-card span{font-size:.84rem;font-weight:800}.followed-activity-card small{color:var(--muted);font-size:.72rem}
.club-card h3{font-size:1.28rem}.followed-club{cursor:default}.followed-club-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.followed-club-actions .text-button{padding:0;color:var(--muted);font-size:.75rem}.followed-club-actions .button{white-space:nowrap}.followed-club-view .back-link{margin-bottom:12px}.followed-club-hero{margin-bottom:14px}.followed-club-hero h1{margin:0;color:var(--yellow);font-size:1.6rem}
.match-status small{display:block;margin-top:3px;color:var(--yellow);font-size:.68rem;letter-spacing:.06em}
.brand small{color:var(--red)}.hero-copy h1{color:var(--red)}.hero-copy h1 span{color:var(--yellow);font-size:inherit;letter-spacing:inherit;vertical-align:baseline}.dashboard-intro h1{color:var(--yellow)}.dashboard-intro h1 span{color:var(--red);font-size:.85rem;letter-spacing:1.5px;vertical-align:middle}
.tabs{display:flex;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:1;min-width:94px}.setup-type-options{margin-top:18px}.tournament-field{margin-top:18px}.tournament-field>.field-label{display:block;margin-bottom:8px}.tournament-participants{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;max-height:250px;overflow:auto;padding:8px;background:var(--card-2);border:1px solid var(--line);border-radius:10px}.tournament-participants label{display:flex;align-items:center;gap:9px;margin:0;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--card);cursor:pointer}.tournament-participants input{width:18px;height:18px;margin:0;flex-shrink:0}.tournament-participants span,.tournament-participants b,.tournament-participants small{display:block}.tournament-participants span{min-width:0}.tournament-participants b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:.82rem}.tournament-participants small{margin-top:2px;color:var(--muted);font-size:.67rem}.tournament-field>small{display:block;margin-top:7px;color:var(--yellow);font-weight:800}.manual-pairings{display:grid;gap:7px;margin-top:12px;padding:10px;background:var(--card-2);border:1px solid var(--line);border-radius:10px}.manual-draw-note{color:var(--muted);font-size:.75rem}.manual-pair{display:grid;grid-template-columns:70px 1fr 24px 1fr;align-items:center;gap:7px}.manual-pair>span{color:var(--yellow);font-size:.72rem;font-weight:900}.manual-pair>b{text-align:center;color:var(--muted);font-size:.72rem}.manual-pair select{margin:0;padding:9px;font-size:.78rem}.tournament-best-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.tournament-best-grid label{margin-top:18px}.tournaments-list{display:grid;gap:9px}.tournament-card{position:relative;width:100%;padding:15px 125px 15px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);text-align:left;cursor:pointer}.tournament-card:hover{border-color:var(--yellow)}.tournament-card h3{margin:7px 0 3px;color:var(--yellow);font-size:1rem}.tournament-card p{margin:0;color:var(--muted);font-size:.78rem}.tournament-card>strong{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--yellow);font-size:.82rem}.tournament-status{display:inline-block;color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.08em}.tournament-status.live{color:#4ade80}.tournament-status.abandoned{color:#e0847a}.tournament-status.draft{color:var(--yellow)}
.draft-later-field{display:flex;align-items:flex-start;gap:10px;margin-top:18px;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:var(--card-2);cursor:pointer}
.draft-later-field input{width:18px;height:18px;margin-top:2px;flex-shrink:0}
.draft-later-field span{display:block}
.draft-later-field b{display:block;color:var(--text);font-size:.85rem}
.draft-later-field small{display:block;margin-top:3px;color:var(--muted);font-size:.72rem;font-weight:400}
#tournament-expected-size-field .segmented button.active{border-color:var(--yellow);background:#2a1e00;color:var(--yellow)}
.tournament-draft-banner{display:grid;gap:4px;margin:15px 0 4px;padding:13px 15px;border:2px solid var(--yellow);border-radius:12px;background:color-mix(in srgb,var(--yellow) 13%,var(--card));color:var(--text)}
.tournament-draft-banner b{color:var(--yellow);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
.tournament-draft-banner span{font-size:.78rem;line-height:1.45}.wizard-mode [data-wizard-step].wizard-step-hidden{display:none!important}.wizard-chrome{display:none}.wizard-mode .wizard-chrome{display:block;margin-bottom:6px}.wizard-nav{display:none}.wizard-mode .wizard-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:25px;padding-top:18px;border-top:1px solid var(--line)}.wizard-nav #wizard-next{margin-left:auto}.wizard-mode .modal-actions{display:none}.wizard-steps{display:flex;gap:6px;margin:4px 0 10px}.wizard-dot{appearance:none;flex:1;height:5px;padding:0;border:0;border-radius:3px;background:var(--line);cursor:help}.wizard-dot.active,.wizard-dot.done{background:var(--yellow)}.wizard-dot.unavailable{background:var(--red)!important}.wizard-step-label{margin:0 0 14px;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.wizard-placeholder-chips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0}.wizard-placeholder-chip{padding:9px 13px;border:2px dashed var(--line);border-radius:12px;background:var(--card-2);color:var(--muted);font-size:.74rem;font-weight:800;cursor:not-allowed}.wizard-explain{margin:14px 0;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.wizard-explain b{display:block;margin-bottom:4px;color:var(--yellow);font-size:.78rem}.winner-stays-prize-note b{color:var(--red)}.wizard-summary{margin:14px 0}.wizard-summary-rows{display:flex;flex-direction:column;margin:4px 0 18px;padding:4px 13px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.wizard-summary-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}.wizard-summary-row:last-child{border-bottom:0}.wizard-summary-row span{color:var(--muted);font-size:.78rem;font-weight:700}.wizard-summary-row b{text-align:right;font-size:.86rem}.wizard-skip-discrete{display:flex;align-items:center;gap:8px;padding-top:12px;color:var(--muted);font-size:.74rem;font-weight:600;cursor:pointer}.wizard-skip-discrete input{width:15px;height:15px;margin:0;flex-shrink:0}
/* The heading b is a block; emphasis inside the body text is not, or a
   phrase like "Stripes & solids" breaks onto a line of its own mid-sentence
   (Ryan, 2026-08-21). */
.wizard-explain span b{display:inline;margin:0;font-size:inherit}
.wizard-explain span{display:block;color:var(--muted);font-size:.78rem;line-height:1.5}.prize-band-rows{display:grid;gap:8px;margin-top:9px}.prize-band-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;background:var(--card);border:1px solid var(--line);border-radius:9px}.prize-band-row label{display:flex;align-items:center;gap:8px;margin:0;font-size:.8rem;font-weight:800;color:var(--text)}.prize-band-row input[type="checkbox"]{width:18px;height:18px;margin:0;accent-color:var(--yellow)}.prize-band-row .prize-amount{display:flex;align-items:center;gap:6px;max-width:130px}.prize-band-row .prize-amount input{margin:0;padding:8px 9px}@media(max-width:480px){.wizard-nav{flex-wrap:wrap}.wizard-nav #wizard-cancel{order:3;flex:1}.wizard-nav #wizard-back{flex:1}.wizard-nav #wizard-next{flex:1;margin-left:0}}.tournament-detail-head{margin-bottom:14px}.tournament-detail-head .back-link{display:block}.tournament-detail-head h2{margin:7px 0 3px;color:var(--yellow)}.tournament-detail-head p{margin:0;color:var(--muted)}.tournament-rounds{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(235px,1fr);gap:12px;overflow-x:auto;padding:3px 2px 14px;scroll-snap-type:x proximity}.tournament-round{display:grid;align-content:start;gap:9px;scroll-snap-align:start}.round-heading{display:flex;width:100%;align-items:center;justify-content:space-between;padding:0 3px;background:none;border:none;font:inherit;color:inherit;cursor:pointer}.round-heading h3{margin:0;color:var(--yellow);font-size:.9rem}.round-heading span{color:var(--muted);font-size:.7rem}.round-matches{display:grid;gap:9px;margin-top:9px}.bracket-match{padding:11px;background:var(--card);border:2px solid var(--line);border-radius:10px}.bracket-match.live{border-color:var(--yellow)}.bracket-match.abandoned{border-color:#8a5a52;opacity:.75}.bracket-match.abandoned>span{color:#e0847a}.bracket-match.viewable{cursor:pointer}.bracket-match.viewable:hover{border-color:var(--yellow)}.bracket-match>span{color:var(--muted);font-size:.65rem;font-weight:900;letter-spacing:.08em}.bracket-match.live>span{color:#4ade80}.bracket-match>div{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:7px}.bracket-match>div b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.bracket-match>div b:nth-of-type(2){grid-row:2}.bracket-match>div strong{grid-column:2;grid-row:1/3;align-self:center;color:var(--yellow)}.bracket-match>small{display:block;margin-top:7px;color:var(--yellow)}.bracket-match footer{display:flex;gap:5px;margin-top:9px}.bracket-match footer .button{flex:1;padding:7px 8px;font-size:.72rem}.club-settings-panel{padding:18px;border-width:1px;border-radius:12px}.club-settings-panel h2{margin:7px 0;color:var(--yellow)}.club-mode-options{margin-top:16px}.mode-help{margin:10px 0 0;color:var(--muted);font-size:.78rem}.empty-state.compact{padding:24px 12px}
@media (max-width:480px){.tournament-participants{grid-template-columns:1fr}.tournament-best-grid{grid-template-columns:1fr}.manual-pair{grid-template-columns:60px 1fr}.manual-pair>b{display:none}.manual-pair select:last-child{grid-column:2}.tournament-card{padding-right:16px}.tournament-card>strong{position:static;display:block;margin-top:9px;transform:none}.tournament-rounds{grid-auto-flow:row;grid-auto-columns:unset;overflow-x:visible}.round-heading::after{content:'▾';margin-left:8px;color:var(--yellow);transition:transform .15s}.tournament-round.expanded .round-heading::after{transform:rotate(180deg)}.round-matches{display:none}.tournament-round.expanded .round-matches{display:grid}}
.tournament-player-strip{display:grid;gap:6px;margin-top:10px}.player-strip-row{display:flex;align-items:baseline;gap:8px;width:100%;padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);font-size:.78rem;font-weight:800;text-align:left;cursor:pointer}.player-strip-row:hover{border-color:var(--yellow)}.player-strip-row small{color:var(--muted);font-weight:600;text-transform:capitalize}.player-strip-row.eliminated{opacity:.55}.player-strip-row.eliminated b{text-decoration:line-through}.player-matches-list{display:grid;gap:9px;margin-top:14px;max-height:60vh;overflow-y:auto}


/* Match setup refinements: keep the header fixed while choices reveal below it. */
.brand-button{text-decoration:none}.match-modal[open]{margin:14px auto auto}/* Ryan fix 2026-08-22: the New Match / Tournament setup frame is a fixed size on every wizard step -- Basics, Timer, Players, Prize money, all of it -- so Cancel/Back/Next always land in the same spot. Content that doesn't fit scrolls inside the frame instead of resizing it. */.match-modal .modal-card{scrollbar-gutter:stable;height:min(640px,calc(100vh - 25px));display:flex;flex-direction:column}.match-modal .modal-card>.modal-actions,.match-modal .modal-card>.wizard-nav{position:sticky;bottom:0;margin-top:auto;background:var(--card);z-index:1;flex-shrink:0}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.ball-set-field{margin:16px 0}.ball-set-field>.field-label,.best-of-block>.field-label{display:block;margin-bottom:8px}.ball-set-options{grid-template-columns:repeat(3,1fr);margin-top:0}.ball-set-options .choice{padding:12px;text-align:center}.ball-set-options .choice b{font-size:.8rem}.ball-icon-pair{display:flex;justify-content:center;gap:5px;margin:0 0 8px}.ball-icon{width:20px;height:20px;border-radius:50%;flex-shrink:0;box-shadow:inset -3px -3px 5px rgba(0,0,0,.35),inset 2px 2px 3px rgba(255,255,255,.3),0 1px 2px rgba(0,0,0,.3)}.ball-solid-orange{background:radial-gradient(circle at 35% 30%,#ffcf7a,#d9720a 65%,#a85306)}.ball-solid-red{background:radial-gradient(circle at 35% 30%,#ff8f7a,#c0392b 65%,#8f2016)}.ball-solid-yellow{background:radial-gradient(circle at 35% 30%,#fff2a8,#e8b60c 65%,#a97e05)}.ball-stripe-orange{background:linear-gradient(to bottom,#f4f4f4 0,#f4f4f4 30%,#d9720a 30%,#d9720a 70%,#f4f4f4 70%,#f4f4f4 100%)}.best-of-block{margin:18px 0}.best-presets{display:flex;flex-wrap:wrap;gap:6px}.best-of-block .best-presets button,.tournament-best-choice .best-presets button{flex:1;min-width:50px}.player-pick{margin:0}.player-pick select{margin:0}.tournament-best-stack{display:grid;gap:14px;margin-top:18px}.tournament-best-choice{padding:12px;background:var(--card-2);border:1px solid var(--line);border-radius:10px}.tournament-best-choice>.field-label{display:block;margin-bottom:8px}.tournament-best-choice .best-presets button{padding:9px 7px}.inline-guest{margin-top:18px}.inline-guest>.button{margin:0;border-style:dashed}.inline-guest-fields{display:grid;grid-template-columns:1fr auto;align-items:end;gap:9px;padding:13px;background:var(--card-2);border:1px solid var(--line);border-radius:10px}.inline-guest-fields label{margin:0}.inline-guest-fields>div{display:flex;gap:7px}.inline-guest-fields .button{padding:11px 12px;font-size:.8rem}.inline-guest-fields .form-error{grid-column:1/-1;min-height:0;margin:0}
.match-modal[open]{margin:8px auto auto}.inline-guest-fields{grid-template-columns:1fr}.inline-guest-fields>div{grid-column:1}.inline-guest-fields>div .button{flex:1}

.club-new-match{display:flex;align-items:center;justify-content:center;text-align:center;width:118px;min-height:36px;padding:8px 7px;line-height:1;overflow:hidden}.warning-row{margin-top:-8px}.warning-row label{width:115px}.prize-settings{margin-top:18px;padding:13px;background:var(--card-2);border:1px solid var(--line);border-radius:10px}.prize-settings>.field-label{display:block}.prize-rows{display:grid;gap:8px;margin-top:9px}.prize-amount{display:flex;align-items:center;gap:6px}.prize-amount i{color:var(--muted);font-style:normal;font-weight:800}.prize-amount input{margin:0;padding:9px 10px;width:100%}.timer-alert-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.timer-alert-options label{display:flex;align-items:center;gap:8px;margin:0;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--card-2);color:var(--text);font-size:12px}.timer-alert-options input{width:18px;height:18px;margin:0;accent-color:var(--yellow)}.timer-alert-help{display:block;margin-top:7px;color:var(--muted);font-size:10px}.hero-actions{flex-wrap:wrap}.hero-actions .display-button{min-width:112px}
.club-new-match{width:110px;padding:8px 5px}.hero-actions .button{min-width:0}.hero-actions{display:grid;grid-template-columns:1fr 1fr}.timer-alert-options{grid-template-columns:1fr}

/* Match KellyPool's logo and account header exactly. */
.topbar{background:#1a6b3c}.brand small{color:#000}.profile-pill{display:flex;align-items:center;padding:6px 14px;border:1px solid rgba(255,255,255,.2);border-radius:20px;background:rgba(255,255,255,.12);color:white;cursor:pointer;max-width:200px}.profile-pill b{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:400}.hero-copy h1,.dashboard-intro h1{color:var(--yellow)}.hero-copy h1 .home-logo-title,.dashboard-intro h1 .home-logo-title{color:var(--yellow);font-size:inherit;letter-spacing:inherit;vertical-align:baseline}.hero-copy h1 .home-logo-tracker,.dashboard-intro h1 .home-logo-tracker{position:relative;top:-2px;color:var(--red);font-size:1.35rem;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;vertical-align:middle}.hero-copy h1 .home-logo-tracker,.dashboard-intro h1 .home-logo-tracker{font-size:1.1rem;letter-spacing:1.8px}.profile-pill{padding:4px 9px;max-width:92px}.profile-pill b{font-size:.72rem}

/* KellyPool parity: exact felt palette, logo geometry and auth rhythm. */
:root{--bg:#0d1f14;--header:#1a6b3c;--card:#1a2e22;--card-2:#0d2518;--line:#2d4a38;--line-soft:#3d6b4f;--green:#217a47;--green-dark:#1a6b3c;--yellow:#f5c518;--red:#c0392b;--text:#f0f0f0;--muted:#7a9e89}body[data-theme="midnight"]{--bg:#0a0e1a;--header:#2a4a8c;--card:#141b2e;--card-2:#0f1424;--line:#28324a;--line-soft:#374564;--green:#34579e;--green-dark:#2a4a8c;--yellow:#ffb347;--red:#e8584a;--text:#eef0f5;--muted:#8893b8}body[data-theme="light"]{--bg:#e2e5e3;--header:#1a6b3c;--card:#eef1ef;--card-2:#e2e8e4;--line:#c7d1cb;--line-soft:#a3b3aa;--green:#217a47;--green-dark:#1a6b3c;--yellow:#c9960b;--red:#c0392b;--text:#16261c;--muted:#5c7468}button,input,select{font-family:'Segoe UI',sans-serif}.brand-rack{filter:none}.brand-rack .eight-ball-logo{display:block;width:36px;height:36px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.35))}.tracker-emblem{height:110px;font-size:0;line-height:0}.tracker-emblem .eight-ball-logo{display:block;width:110px;height:110px;margin:0 auto;filter:drop-shadow(0 4px 16px rgba(0,0,0,.5))}.hero-copy,.dashboard-intro{padding:10px 0 8px}.hero-copy h1,.dashboard-intro h1{margin:8px 0 0;line-height:normal}.hero-lede,.dashboard-intro p{margin-top:4px}#auth-form label{gap:4px;margin-bottom:0}.form-error:empty{display:none}.auth-layout#auth-view>.auth-card{margin-top:2px}.auth-links{display:flex;align-items:center;justify-content:center;gap:8px;height:23px;margin:10px 0 4px}.auth-links .text-button{padding:3px 0;color:var(--muted);font-weight:400}.auth-or{margin:10px 0 14px;line-height:16px}.auth-card{background:var(--card);border-color:var(--line)}#auth-submit{height:45px;border:0}.google-button{height:44px;padding:12px;margin-bottom:8px}.google-g{display:inline-block;width:18px;height:18px;line-height:18px;margin-right:9px;vertical-align:middle;font-size:16px}.brand-rack .eight-ball-logo{width:30px;height:30px}.tracker-emblem{height:80px}.tracker-emblem .eight-ball-logo{width:80px;height:80px}.hero-copy,.dashboard-intro{padding:6px 0 4px}

/* KellyPool-sized account settings. */
:root{--text-label:#d0f0e0}
body[data-theme="light"]{--text-label:#314a3c}
body[data-theme="midnight"]{--text-label:#cbd3ec}
#account-view{padding-top:16px}
.account-panel{max-width:none;margin:0;padding:18px;overflow:visible;border-radius:12px}
.account-profile{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:0;margin-bottom:16px}
.account-avatar{grid-row:auto;width:48px;height:48px;background:var(--yellow);color:#0d1f14;font-size:1.4rem}
.account-profile h1{margin:0;font-size:1.1rem;color:var(--text);line-height:1.2}
.account-profile p{font-size:.8rem}
.account-identity{min-width:0}.account-name-line{display:flex;align-items:center;gap:8px}.icon-edit{align-self:center;width:28px;height:28px;border-radius:50%;background:transparent;color:var(--muted);font-size:.9rem;flex:0 0 28px}
.account-badge{grid-column:auto;justify-self:end;padding:5px 10px;background:var(--yellow);border:0;color:#0d1f14;font-size:.72rem;font-weight:700;white-space:nowrap}
.account-row{display:flex;width:100%;align-items:center;gap:10px;margin-top:14px;padding:12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--card);color:var(--text-label);font-size:1rem;font-weight:700}.account-row-label{flex:1;font-weight:700}
.account-row span{color:var(--muted);font-size:1rem}
.account-matches{margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--card-2)}
.my-matches-panel{padding:20px}
.my-matches-panel .section-title{margin-bottom:14px}
.my-matches-panel .section-title h1{margin:0;color:var(--yellow);font-size:1.45rem}
.account-rule{border:0;border-top:1px solid var(--line);margin:14px 0}
.account-preferences-grid{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:6px;row-gap:8px;align-items:center;margin-bottom:6px}
.account-preferences-grid>span{color:var(--muted);font-size:.72rem;letter-spacing:.08em;white-space:nowrap}
.account-preferences-grid .setting-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;flex-wrap:nowrap}
.account-preferences-grid .setting-options button{min-width:0;padding:7px 3px;border:2px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font-size:.72rem;font-weight:600;white-space:nowrap}
.account-preferences-grid .setting-options button.active{border-color:var(--yellow);background:#2a1e00;color:var(--yellow);box-shadow:none}
.account-preferences-grid .setting-options .theme-felt{background:#1a2e22;color:#f0f0f0}
.account-preferences-grid .setting-options .theme-light{background:#eef1ef;color:#16261c}
.account-preferences-grid .setting-options .theme-midnight{background:#141b2e;color:#eef0f5}
.account-preferences-grid .setting-options [class^="theme-"][class*=" active"]{border-color:var(--yellow);color:inherit}
.account-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0;margin-bottom:8px}
.account-actions button{padding:7px 14px;border:1px solid var(--line-soft);border-radius:8px;background:var(--card);color:var(--text-label);font-size:.82rem}
.account-security-info{margin:0 0 8px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--card-2);font-size:.78rem;line-height:1.45}
.account-google-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:8px}.account-google-actions.two-actions{grid-template-columns:1fr 1fr}.account-google-actions .google-button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;height:auto;margin:0;padding:9px 10px;font-size:.82rem;font-weight:600;white-space:nowrap}.account-google-actions.two-actions #change-password{border:1px solid var(--line-soft);border-radius:8px;background:var(--card);color:var(--text-label);font-size:.82rem;font-weight:600;white-space:nowrap}.google-mark{flex:0 0 auto}
.account-panel>.google-button{width:100%;margin:0 0 8px}
.account-signout{display:block;width:100%;padding:12px;border:0;border-radius:8px;background:var(--red);color:white;font-size:1rem;font-weight:700}
.account-profile{grid-template-columns:44px minmax(0,1fr) auto}.account-avatar{width:44px;height:44px}.account-preferences-grid{grid-template-columns:82px minmax(0,1fr)}.account-preferences-grid .setting-options{gap:4px}.account-preferences-grid .setting-options button{font-size:.66rem}

/* Per-device Ball Skin choices, kept deliberately subtle on the felt UI. */
.match-modal .tooltip-label.field-label,.match-modal #match-name-field .field-heading>span:first-child{color:var(--muted);font-size:12px;font-weight:600}.ball-set-options .choice>span:last-child{display:block;color:var(--text);font-size:.8rem;font-weight:700}.wizard-mode #wizard-back.hidden{display:inline-flex!important;visibility:hidden}
html[data-ballskin="neon"] .ball-icon{filter:saturate(1.7) brightness(1.2);box-shadow:0 0 7px rgba(110,255,220,.75),inset -3px -3px 5px rgba(0,0,0,.35),inset 2px 2px 3px rgba(255,255,255,.3)}
html[data-ballskin="pastel"] .ball-icon{filter:saturate(.58) brightness(1.25);box-shadow:inset -3px -3px 5px rgba(0,0,0,.2),inset 2px 2px 3px rgba(255,255,255,.5),0 1px 2px rgba(0,0,0,.18)}

/* Local players and delegated club staff. */
.person-row select{width:auto;min-width:104px;margin:0;padding:7px 9px;font-size:.75rem}
.club-settings-panel+.club-settings-panel{margin-top:12px}
.join-requests-list,.staff-permission-groups{display:grid;gap:20px;margin-top:14px}.staff-permission-group h3{margin:0 0 9px;color:var(--yellow);font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.staff-permissions{display:grid;gap:9px}
.join-requests-list article{display:grid;grid-template-columns:minmax(0,1fr) 105px auto auto;align-items:center;gap:8px;padding:11px;border:1px solid var(--line);border-radius:9px;background:var(--card-2)}
.join-requests-list article div{min-width:0}.join-requests-list b,.join-requests-list small{display:block}.join-requests-list small{margin-top:3px;color:var(--muted);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.join-requests-list select{margin:0;padding:8px;font-size:.75rem}
.join-requests-list button{padding:8px 10px;border:0;border-radius:7px;background:var(--yellow);color:#0d1f14;font-size:.72rem;font-weight:800;cursor:pointer}
.join-requests-list button.reject{background:var(--red);color:white}
.staff-permissions>div{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}
.staff-permissions>div>span{display:block;margin-bottom:9px;color:var(--text-label);font-size:.82rem}
.staff-permissions>div>div{display:grid;grid-template-columns:1fr 1fr;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--bg)}
.staff-permissions button{padding:8px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-weight:800;cursor:pointer}
.staff-permissions button.active{background:var(--yellow);color:#0d1f14}.staff-permissions button.active.no{background:var(--red);color:white}
.staff-permission-row{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(150px,220px);align-items:center;gap:12px;margin:0!important;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.staff-permission-row>span{margin:0!important;color:var(--text-label);font-size:.82rem}.staff-permission-row select{width:100%;margin:0;padding:9px 34px 9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font-size:.78rem;font-weight:800;line-height:1.2;cursor:pointer}.info-tooltip{display:inline-grid;place-items:center;width:22px;height:22px;margin-left:4px;padding:0;border:1px solid var(--yellow);border-radius:50%;background:transparent;color:var(--yellow);font-size:.75rem;font-weight:900;line-height:1;vertical-align:middle;cursor:pointer}
@media (max-width:480px){.staff-permission-row{grid-template-columns:1fr}.staff-permission-row select{max-width:none}}
.join-requests-list article{grid-template-columns:1fr 1fr}.join-requests-list article div{grid-column:1/-1}

/* Match setup reads directly as selected names: Ryan vs John. */
.versus-grid{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:8px}
.team-setup{padding:0;border:0;border-radius:0;background:transparent}
.player-picks{margin:0}.versus{font-size:.78rem;text-transform:lowercase;color:var(--muted)}
.versus-grid{grid-template-columns:1fr}.versus{padding:0}.player-picks{gap:7px}

.manual-tournament-teams{display:grid;gap:7px;margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}
.manual-team{display:grid;grid-template-columns:65px minmax(0,1fr) 18px minmax(0,1fr);align-items:center;gap:7px}
.manual-team>span{color:var(--yellow);font-size:.72rem;font-weight:800}.manual-team>b{text-align:center;color:var(--muted)}
.manual-team select{margin:0;padding:9px;font-size:.78rem}
#pairing-options button:disabled{opacity:.35;cursor:not-allowed}
#pairing-options,.draw-policy-options{flex-wrap:wrap}
#pairing-options button,.draw-policy-options button{min-width:min(100%,145px)}
.manual-team{grid-template-columns:58px minmax(0,1fr)}.manual-team>b{display:none}.manual-team select:last-child{grid-column:2}

/* Installable PWA prompt, matching the KellyPool app flow. */
.install-banner{display:flex;align-items:center;gap:12px;width:min(568px,calc(100% - 24px));margin:12px auto 0;padding:11px 13px;border:1px solid var(--yellow);border-radius:11px;background:var(--card);box-shadow:0 10px 28px rgba(0,0,0,.25);color:var(--text)}
.install-banner.hidden{display:none}.install-banner>div{display:grid;gap:2px;min-width:0;flex:1}.install-banner strong{color:var(--yellow);font-size:.86rem}.install-banner span{color:var(--muted);font-size:.74rem;line-height:1.35}.install-action{padding:8px 13px;border:0;border-radius:8px;background:var(--yellow);color:#102116;font-weight:900;cursor:pointer}.install-dismiss{padding:3px;border:0;background:transparent;color:var(--muted);font-size:1.2rem;cursor:pointer}

/* Keep the signed-in user's name visible in the mobile settings pill. */
.top-actions .profile-pill{max-width:110px;padding:4px 9px}.top-actions .profile-pill b{display:block;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}

.best-of-block .best-presets,.tournament-best-choice .best-presets{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.best-of-block .best-presets button,.tournament-best-choice .best-presets button{min-width:0;padding:9px 2px}.timer-preset-row{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:8px;margin:10px 0}.timer-preset-row .field-label{font-size:.8rem}.timer-preset-row .best-presets{display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:6px}.timer-preset-row .best-presets button{min-width:0;padding:10px 6px}.warning-row.timer-preset-row{margin-top:6px}
.install-banner{gap:8px;margin-top:8px;padding:9px 10px}.install-banner strong{font-size:.8rem}.install-banner span{font-size:.68rem}.install-action{padding:7px 10px;font-size:.78rem}
.live-stream-settings .live-stream-toggle {
  width: 100%;
  max-width: none;
  margin: 9px 0 0;
}

/* Compact club navigation and dense match records. */
.tabs.club-tabs{gap:3px;margin:6px 0 10px;padding:2px;border-radius:8px}
.tabs.club-tabs>button{min-height:34px;padding:6px 3px;border-radius:6px}
.subscription-payment-method{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--card-2)}
.subscription-payment-method small{color:var(--muted);font-weight:800}.subscription-payment-method strong{color:var(--text);text-align:right}
.activity-record-table .activity-summary.has-lines{display:grid;gap:3px}.activity-record-table .activity-summary.has-lines>span{display:block}
.activity-record-table th:nth-child(1){width:20%}.activity-record-table th:nth-child(2){width:32%}.activity-record-table th:nth-child(3){width:48%}
.team-match-stats-table tr[data-team-round-start] td{border-top-width:2px;padding-top:10px}.team-match-statistics{padding:10px}.team-match-statistics .competition-section-heading{margin-bottom:5px}.team-match-stats-table th,.team-match-stats-table td{padding-block:6px}
@media(max-width:480px){.tabs.club-tabs>button{min-height:32px;padding:5px 1px}.activity-record-table th:nth-child(1){width:24%}.activity-record-table th:nth-child(2){width:31%}.activity-record-table th:nth-child(3){width:45%}}

/* Site administration uses the full app canvas. Tables remain contained by
   their panel and can scroll on narrow phones instead of overflowing it. */
#admin-view,#admin-view .admin-panel-shell,#admin-view .admin-screen{width:100%;max-width:none;min-width:0}
#admin-view .admin-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#admin-view .admin-chart-grid,#admin-view .admin-insight-grid{grid-template-columns:minmax(0,1fr)}
#admin-view .admin-chart-card canvas{width:100%!important;height:clamp(230px,30vw,430px)!important;max-height:none}
#admin-view .admin-table-wrap{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto!important}
#admin-view .admin-table{width:100%;min-width:680px}
#admin-view .admin-collection-list{min-width:0}
#admin-view .admin-summary-card:is(button){color:var(--text);cursor:pointer}
#admin-view .admin-summary-card:is(button):hover,#admin-view .admin-summary-card:is(button):focus-visible{border-color:var(--yellow);background:rgba(245,197,66,.08)}
#admin-view .admin-table th button{display:flex;align-items:center;gap:5px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;white-space:nowrap;cursor:pointer}
#admin-view .admin-table th button:hover,#admin-view .admin-table th button:focus-visible{color:var(--yellow)}
@media(max-width:760px){#admin-view .admin-panel-shell{padding:14px}#admin-view .admin-chart-card canvas{height:230px!important}#admin-view .admin-overview-card{min-width:0;padding:11px 7px}}
.pending-player-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pending-player-tile{position:relative;display:flex!important;align-items:center;justify-content:center;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--card-2);font-weight:700;text-align:center;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.pending-player-tile input{position:absolute;inset:0;width:100%!important;height:100%;margin:0;opacity:0;cursor:pointer}.pending-player-tile:has(input:checked){border-color:var(--yellow);background:var(--yellow);color:#102116;box-shadow:0 0 0 1px var(--yellow)}.pending-player-tile:has(input:focus-visible){outline:2px solid var(--yellow);outline-offset:2px}

.live-stream-fields {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(160px, 1fr) minmax(160px, 1fr);
  gap: 12px;
  margin: 12px 0;
}

.live-stream-fields label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-weight: 800;
}

.live-stream-fields label small {
  font-weight: 500;
}

.live-stream-fields input {
  width: 100%;
}


  .live-stream-fields {
    grid-template-columns: 1fr;
  }


/* Live matches vs live tournaments split, and staff QR add-on. */
.live-section+.live-section{margin-top:14px}.live-section-title{margin:0 0 8px;color:var(--yellow);font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.live-section-note{margin:-2px 0 10px;color:var(--muted);font-size:.76rem;line-height:1.35}.live-section-competition-frames{margin-top:18px!important;padding-top:14px;border-top:1px solid var(--line)}.live-section-list{display:grid;gap:8px}
.staff-qr-wrap{display:grid;place-items:center;margin:16px 0;padding:16px;background:var(--card-2);border:1px solid var(--line);border-radius:12px}.staff-qr-wrap img{width:220px;height:220px;background:#fff;border-radius:8px}
.staff-credential-rows{display:grid;gap:8px;margin-top:6px}.staff-credential-rows>div{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--card-2);border:1px solid var(--line);border-radius:8px}.staff-credential-rows span{color:var(--muted);font-size:.78rem}.staff-credential-rows b{color:var(--yellow);font-size:.95rem}
.person-row .icon-edit{margin-left:auto;flex-shrink:0}
#players-dialog-list{max-height:260px;overflow:auto;margin:14px 0}

/* Ryan list round 2: activity log, staff row actions. */
.activity-list{display:grid;gap:8px;margin-top:8px;max-height:60vh;overflow:auto}
.activity-row{cursor:pointer}
.activity-row div{display:grid;gap:2px;min-width:0}
.activity-row b{color:var(--yellow);font-size:.82rem}
.activity-row span{color:var(--text);font-size:.8rem}
.activity-row small{flex-shrink:0;color:var(--muted);font-size:.7rem;white-space:nowrap}
.person-row select+.icon-edit,.person-row .icon-edit+.icon-edit{margin-left:6px}

/* Match setup timer rows and associated alerts. */
#match-name-field,#tournament-name-field{display:grid;gap:7px;margin:16px 0;color:var(--muted);font-weight:800}#match-name-field small,#tournament-name-field small{font-weight:500}#match-name-field input,#tournament-name-field input{width:100%}
.timer-setting-block{margin:14px 0;padding:0 0 12px;border-bottom:1px solid var(--line)}
.timer-setting-block .timer-preset-row{margin:0}.timer-setting-block .best-presets{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.timer-setting-block .best-presets button{min-width:0}.timer-setting-block .best-presets .disable-preset{border-color:var(--red);color:#f18f87}
.timer-setting-block .best-presets .disable-preset.active{background:var(--red);color:white}
.associated-alerts{display:flex;align-items:center;gap:16px;margin:8px 0 0 90px;padding:8px 11px;border-radius:9px;background:var(--card-2)}
.associated-alerts>span{min-width:56px;color:var(--muted);font-size:.7rem;font-weight:900;text-transform:uppercase}.associated-alerts label{margin:0}
.timer-setting-block.disabled .associated-alerts{opacity:.42}
.timer-setting-block .timer-preset-row{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center}.associated-alerts{margin-left:0;gap:10px}.associated-alerts>span{min-width:auto;margin-right:auto}

/* Tournament-scoped Help a Club access. */
.person-row b em{display:block;margin-top:2px;color:var(--muted);font-size:.62rem;font-style:normal;font-weight:600;text-transform:uppercase;letter-spacing:.06em}

.helper-tournament-view{display:grid;gap:16px}.helper-tournament-view.hidden{display:none}
.helper-access-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px}.helper-access-head h1{margin:5px 0;color:var(--yellow)}
.helper-admin-bar{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:13px 15px;border:1px solid var(--yellow);border-radius:12px;background:var(--card)}.helper-admin-bar b{color:var(--yellow)}.helper-admin-bar span{flex:1;color:var(--muted);font-size:.78rem}
.helper-umpire-label{align-self:center;color:var(--muted);font-size:.75rem;font-weight:800}
.helper-access-head,.helper-admin-bar{align-items:stretch;flex-direction:column}.helper-access-head .button,.helper-admin-bar .button{width:100%}
.pending-sync-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:rgba(245,197,24,.15);border:1px solid #f5c518;color:#f5c518;font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}

.club-name-row{display:flex;align-items:center;gap:10px}
.club-identity{min-width:0;flex:1}.club-name-row h1{min-width:0;max-width:100%;overflow:visible;text-overflow:clip;white-space:nowrap}.club-hero .club-name-row h1{margin:0;font-size:1.75rem;letter-spacing:0}.club-hero .club-name-row .icon-edit{align-self:center;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:.78rem;flex:0 0 28px}.club-hero .club-name-row .icon-edit.hidden{display:none}.club-summary{margin:7px 0 10px;color:var(--muted);font-size:.82rem}.quick-match-button{border-color:var(--yellow);color:var(--yellow)}

.staff-qr-block{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.staff-qr-block img{width:160px;height:160px;border-radius:12px;background:#fff;padding:8px}
.staff-qr-block p{margin:0;text-align:center}
.helper-hint{display:block;color:var(--muted);font-size:.72rem;margin-top:6px}
.helper-club-match{margin-bottom:10px}
#helper-back-to-club{margin-bottom:14px}
#helper-tournament-detail h3{margin:18px 0 8px;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
#helper-tournament-detail h3:first-of-type{margin-top:6px}

#copy-note{color:var(--yellow);font-weight:800}


/* ── Club deletion (Ryan, 2026-08-15) ───────────────────────────────────────
   The owner-only danger panel, its confirm dialog, and the read-only state a
   club sits in for the 7 days between Delete Club and the data actually going.

   Everything here hangs off --red, the destructive token this app already uses
   for Sign Out and for form errors. Note .coral-button is NOT a red button in
   this stylesheet -- it resolves to --yellow -- which is why Delete gets its
   own .button.danger variant rather than reusing it. Each tinted surface
   declares a flat fallback first for anything without color-mix(). */
.button.danger { background: var(--red); color: #fff; border-color: transparent; }
.button.danger:disabled { opacity: 0.5; cursor: not-allowed; }
.eyebrow.danger { color: var(--red); }

.club-card-deleting { opacity: 0.72; }
.club-card-deleting .club-card-copy h3 { text-decoration: line-through; text-decoration-thickness: 1px; }
.deleting-pill {
  display: inline-block; margin-left: 8px; padding: 2px 9px; vertical-align: middle;
  border-radius: 999px; font-size: 0.66rem; font-weight: 900;
  letter-spacing: 0.04em; text-transform: uppercase;
  text-decoration: none; white-space: nowrap;
  color: var(--red);
  background: rgba(207, 59, 47, 0.16);
  background: color-mix(in srgb, var(--red) 16%, transparent);
  border: 1px solid rgba(207, 59, 47, 0.4);
  border-color: color-mix(in srgb, var(--red) 40%, transparent);
}
.club-card-main .deleting-pill{margin-left:auto;flex-shrink:0;text-align:right}.pending-deletion-pill{color:var(--yellow);background:color-mix(in srgb,var(--yellow) 14%,transparent);border-color:color-mix(in srgb,var(--yellow) 40%,transparent)}
.club-deleting-banner {
  margin: 0 0 14px; padding: 12px 16px; border-radius: 14px;
  font-size: 0.87rem; line-height: 1.5; color: var(--text);
  background: rgba(207, 59, 47, 0.12);
  background: color-mix(in srgb, var(--red) 12%, transparent);
  border: 1px solid rgba(207, 59, 47, 0.36);
  border-color: color-mix(in srgb, var(--red) 36%, transparent);
}
.club-deleting-banner b { color: var(--red); }

.danger-panel { border-color: rgba(207, 59, 47, 0.36); }
.danger-panel { border-color: color-mix(in srgb, var(--red) 36%, transparent); }
.danger-panel h2 { color: var(--red); }

#delete-club-dialog .modal-card { max-width: 430px; }
#delete-club-dialog label { display: block; margin-bottom: 12px; color: var(--muted); font-size: 0.82rem; }
#delete-club-dialog label input { display: block; width: 100%; margin-top: 6px; }
#delete-club-dialog p.muted b { color: var(--text); }


/* ── 3.1: --text-soft was used but never defined ────────────────────────────
   index.html referenced var(--text-soft) five times on the About page (ported
   across from the Kelly Pool app, whose palette defines it). Nothing here did,
   so that copy silently fell back to inherited colour. Defining it per theme is
   the smaller fix than rewriting the markup, and it makes the next port safer.
   Sits between --text and --muted, as it does in the app it came from. */
:root { --text-soft: #d0e4d8; }
body[data-theme="midnight"] { --text-soft: #c8cfe4; }
body[data-theme="light"] { --text-soft: #3a4a41; }

/* ── Toast titles (2.2) ──────────────────────────────────────────────────── */
.toast-title { display: block; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; opacity: .72; margin-bottom: 3px; }

/* ── Account screen: legal links + Delete Account (1.2) ──────────────────── */
.account-legal { margin: 14px 0 10px; text-align: center; font-size: 0.78rem; color: var(--muted); }
.account-legal a { color: var(--muted); text-decoration: underline; }
.account-legal a:hover { color: var(--text); }
.account-delete {
  display: block; width: 100%; padding: 12px; border-radius: 8px;
  background: transparent; color: var(--red); border: 2px solid var(--red);
  font-size: 1rem; font-weight: 700; cursor: pointer;
}
.account-delete:hover { background: var(--red); color: #fff; }
#account-signout{margin-bottom:12px}
#delete-account-dialog .modal-card { max-width: 430px; }
#delete-account-dialog label { display: block; margin-bottom: 12px; color: var(--muted); font-size: 0.82rem; }
#delete-account-dialog label input { display: block; width: 100%; margin-top: 6px; }
#delete-account-clubs:empty { display: none; }
#delete-account-clubs b { color: var(--text); }

/* ── Generic confirm dialog (2.1) ───────────────────────────────────────── */
#confirm-dialog .modal-card { max-width: 400px; }

/* Home "Your Clubs" header (Ryan, 2026-08-15). A stray flex-direction:column
   above was stacking the "..." club menu under the heading; it belongs on the
   same line, Kelly Pool style. "View a Match" now sits beside it as its own
   button so watching a match never means opening a menu first. */
.clubs-heading{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;position:relative}
.clubs-heading h2{flex:1;min-width:0;margin:0}
.clubs-heading-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;position:relative}
.clubs-heading-actions .button{margin:0}
.clubs-view-match{white-space:nowrap}
.clubs-options-toggle{display:grid;place-items:center;width:38px;height:34px;padding:0;text-align:center;flex-shrink:0;line-height:1}
@media (max-width:480px){.clubs-heading{align-items:center}.clubs-view-match{padding:7px 10px;font-size:.76rem}.clubs-options-toggle{width:34px;padding:6px 0}}

/* Compact KellyPool-style club navigation and record tables. */
.club-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
.club-tabs button{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;white-space:nowrap}
.club-tabs button>span{font-size:.9em}
.club-record-list,.tournaments-list{display:block}
.club-record-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.club-record-table{width:100%;border-collapse:collapse;table-layout:fixed}
.club-record-table th{padding:10px 12px;background:var(--card-2);font-size:.66rem;letter-spacing:.07em}
.club-record-table td{padding:11px 12px;border-bottom:1px solid var(--line);white-space:normal;vertical-align:middle}
.club-record-table tbody tr:last-child td{border-bottom:0}
.club-record-row{transition:background .15s}
.club-record-row[data-tournament]{cursor:pointer}
.club-record-row:hover,.club-record-row:focus{background:var(--card-2);outline:none}
.club-record-table td:first-child{color:inherit}
.club-record-table td strong,.club-record-table td small{display:block}
.club-record-table td strong{color:var(--yellow);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.club-record-table td small{margin-top:3px;color:var(--muted);font-size:.67rem}
.record-status{display:inline-block;color:var(--muted);font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.record-status.live{color:#62d88e}.record-status.abandoned{color:#e0847a}.record-status.draft,.record-status.on-hold,.match-status.on-hold{color:var(--yellow)}
.record-versus{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:7px}
.record-versus span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.record-versus span:last-child{text-align:right}
.record-versus b{color:var(--yellow);font-size:1rem}
.record-meta,.record-format{color:var(--muted);font-size:.76rem}
.record-action,.record-open{text-align:right}
.record-open{color:var(--yellow);font-weight:800;font-size:.78rem}
.match-record-table th:nth-child(1){width:12%}.match-record-table th:nth-child(2){width:25%}.match-record-table th:nth-child(3){width:34%}.match-record-table th:nth-child(4){width:19%}.match-record-table th:nth-child(5){width:10%}
.tournament-record-table th:nth-child(1){width:15%}.tournament-record-table th:nth-child(2){width:27%}.tournament-record-table th:nth-child(3){width:18%}.tournament-record-table th:nth-child(4){width:11%}.tournament-record-table th:nth-child(5){width:18%}.tournament-record-table th:nth-child(6){width:11%}
.history-activity{margin-top:15px}.history-activity .activity-list{margin-top:0}
@media (max-width:480px){
  .club-tabs{gap:2px}.club-tabs button{gap:2px;padding:8px 2px;font-size:.68rem;letter-spacing:-.02em}.club-tabs button>span{font-size:.84rem}
  .club-record-table th{padding:8px 6px;font-size:.58rem}.club-record-table td{padding:9px 6px;font-size:.72rem}
  .match-record-table th:nth-child(1){width:17%}.match-record-table th:nth-child(2){width:29%}.match-record-table th:nth-child(3){width:39%}.match-record-table th:nth-child(5){width:15%}
  .match-record-table th:nth-child(4),.match-record-table td:nth-child(4),.tournament-record-table th:nth-child(5),.tournament-record-table td:nth-child(5){display:none}
  .tournament-record-table th:nth-child(1){width:22%}.tournament-record-table th:nth-child(2){width:30%}.tournament-record-table th:nth-child(3){width:22%}.tournament-record-table th:nth-child(4){width:14%}.tournament-record-table th:nth-child(6){width:12%}
  .record-versus{grid-template-columns:1fr auto;gap:2px 5px}.record-versus span:last-child{grid-column:1;text-align:left}.record-versus b{grid-column:2;grid-row:1/3}
  .record-action .button{padding:6px 5px;font-size:.62rem}.record-open{font-size:.68rem}
  .history-activity{margin-top:10px}
}
@media (max-width:430px){.club-tabs button{font-size:.62rem}.club-tabs button>span{display:none}}

/* Tournament drill-down is its own navigation state. Browser/phone Back is
   the only way back to the club-level actions and tabs. */
.tournament-detail-open .club-tabs,
.tournament-detail-open .fixtures-subtabs,
.tournament-detail-open #new-match,
.tournament-detail-open #quick-match,
.tournament-detail-open #end-active-tournament{display:none!important}
.tournament-canned-banner{display:grid;gap:4px;margin:15px 0 4px;padding:13px 15px;border:2px solid var(--red);border-radius:12px;background:color-mix(in srgb,var(--red) 13%,var(--card));color:var(--text)}
.tournament-canned-banner b{color:var(--red);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
.tournament-canned-banner span{font-size:.78rem;line-height:1.45}

/* Compact, shared match/tournament setup controls. */
.match-modal{overflow:hidden}
body:has(#match-dialog[open]),body:has(#tournament-roster-dialog[open]){overflow:hidden}
.match-modal .modal-card,.tournament-participants,.roster-participants{scrollbar-width:none;-ms-overflow-style:none}
.match-modal .modal-card::-webkit-scrollbar,.tournament-participants::-webkit-scrollbar,.roster-participants::-webkit-scrollbar{display:none;width:0;height:0}
.field-heading{display:flex;align-items:center;gap:7px;min-width:0}
.field-heading small{margin-left:auto;color:var(--muted);font-size:.72rem;font-weight:600;text-transform:lowercase}
#match-name-field,#tournament-name-field,#match-table-field{gap:7px}
.scoring-mode-field>.field-heading,.ball-set-field>.field-heading,.match-format-field>.field-heading{justify-content:flex-start}
.scoring-mode-field>.segmented{margin:6px 0 0}
.tooltip-label{position:relative;display:inline;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;line-height:inherit;text-align:left;cursor:pointer}
.match-modal#match-dialog .timer-setting-block .associated-alerts>span:first-child{display:none}
/* The hover bubble that used to live here was a second copy of the help text and was clipped by .modal-card's overflow; app.js's .floating-info-popover now serves hover, focus and click from one source. */
.heading-tooltip{color:var(--yellow);font:inherit;font-weight:inherit}.tournament-field>.field-heading{margin-bottom:8px}.doubles-format-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:6px}.doubles-format-options button{min-width:0}#doubles-row.hidden:not(.wizard-step-hidden),#tournament-doubles-row.hidden:not(.wizard-step-hidden){display:block!important;visibility:hidden}.associated-alerts input:disabled{cursor:not-allowed}
.quick-choice-grid{grid-template-columns:1fr;gap:10px}
.quick-choice-grid .choice{text-align:left}
.floating-info-popover{position:fixed;z-index:10000;display:grid;gap:5px;padding:11px 13px;border:1px solid var(--yellow);border-radius:10px;background:var(--card-2);box-shadow:var(--shadow);color:var(--text);font-size:.78rem;line-height:1.45}.floating-info-popover b{color:var(--yellow)}.floating-info-popover span{color:var(--text)}.floating-info-link{margin-top:3px;color:var(--yellow);font-weight:850;text-decoration:underline;text-underline-offset:3px}
.timer-setting-block .timer-preset-row{grid-template-columns:minmax(0,1fr);gap:7px}
.timer-setting-block .timer-preset-row>.field-label{display:block}
.timer-setting-block .best-presets{width:100%;grid-template-columns:repeat(4,minmax(0,1fr))}
.timer-setting-block .associated-alerts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:7px 0 0;padding:0;background:transparent}
.timer-setting-block .associated-alerts label{justify-content:center}
.timer-setting-block .best-presets button:disabled{opacity:.3;cursor:not-allowed;text-decoration:line-through}
.tournament-detail-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.roster-lock-note{color:var(--muted);font-size:.75rem}
.roster-participants{margin-top:14px;max-height:45vh}
.selection-count{display:block;margin-top:8px;color:var(--yellow);font-weight:800}

/* Header and dashboard sizing shared with Kelly Pool. Keep the two apps on
   the same desktop/mobile breakpoint so a side-by-side view cannot put one
   wordmark in compact mode while leaving the other full sized. */
.brand>span:last-child{display:flex;flex-direction:column;align-items:stretch;line-height:1}
.brand b{font-size:1.2rem;letter-spacing:.02em;white-space:nowrap}
.brand small{display:flex;width:100%;justify-content:space-between;margin-top:1px;color:#000;font-size:.62rem;font-weight:800;line-height:1.3;letter-spacing:0;text-transform:uppercase}
.top-actions{margin-left:auto;gap:10px;flex-shrink:0}
.header-match-pills{flex:0 0 auto;justify-content:flex-end;overflow:visible}
.header-match-pills button{padding:5px 14px;font-size:.95rem}
.top-actions .profile-pill{display:flex;max-width:200px;padding:6px 14px}
.top-actions .profile-pill b{display:block;max-width:170px;font-size:.9rem;font-weight:400}
.tracker-emblem,.dashboard-intro .tracker-emblem{height:110px}
.tracker-emblem .eight-ball-logo,.dashboard-intro .tracker-emblem .eight-ball-logo{width:110px;height:110px}
.hero-copy,.dashboard-intro{padding:10px 0 8px}
.hero-copy h1,.dashboard-intro h1{margin-top:4px;font-size:2rem}
.hero-copy h1 .home-logo-tracker,.dashboard-intro h1 .home-logo-tracker{font-size:1.35rem;letter-spacing:2.5px}
.hero-lede,.dashboard-intro p{max-width:300px;font-size:.78rem}

@media(max-width:480px){
  .brand b{font-size:1.02rem}
  .brand small{font-size:.56rem}
  .header-match-pills button{padding:4px 10px;font-size:.74rem}
  .top-actions .profile-pill{max-width:92px;padding:4px 9px}
  .top-actions .profile-pill b{max-width:72px;font-size:.72rem}
  .tracker-emblem,.dashboard-intro .tracker-emblem{height:80px}
  .tracker-emblem .eight-ball-logo,.dashboard-intro .tracker-emblem .eight-ball-logo{width:80px;height:80px}
  .hero-copy,.dashboard-intro{padding:6px 0 4px}
  .hero-copy h1,.dashboard-intro h1{margin-top:2px;font-size:1.6rem}
  .hero-copy h1 .home-logo-tracker,.dashboard-intro h1 .home-logo-tracker{font-size:1.1rem;letter-spacing:1.8px}
}


/* KellyPool-style record tables for People and Club Activity. */
.people-grid{display:grid;grid-template-columns:1fr;gap:18px}
.people-grid-section{min-width:0}
.people-grid-section .section-title{margin-bottom:12px}
.staff-invite-row{display:flex;justify-content:flex-end;margin-top:12px}
.people-table-wrap,.activity-table-wrap{border:1px solid var(--line);border-radius:10px;background:var(--card);overflow-x:auto}
.people-record-table,.activity-record-table{width:100%;border-collapse:collapse;table-layout:fixed}
.people-record-table td,.activity-record-table td{white-space:normal;vertical-align:middle}
.people-record-table tbody tr:last-child td,.activity-record-table tbody tr:last-child td{border-bottom:0}
.people-record-table td strong,.activity-record-table td strong{color:var(--yellow)}
.people-record-table select{min-width:98px;margin:0;padding:7px 8px}
.people-record-table th:nth-child(1){width:34%}.people-record-table th:nth-child(2){width:27%}.people-record-table th:nth-child(3){width:39%}
.people-access{color:var(--muted)}
.people-access>.icon-edit{float:right;margin:-5px 0 -5px 6px!important}
.people-actions{display:inline-flex;float:right;gap:4px;margin:-5px 0 -5px 6px;white-space:nowrap!important}
.people-actions .icon-edit{flex:0 0 28px;margin:0!important}
.role-label{text-transform:capitalize}

.activity-record-table th:nth-child(1){width:22%}.activity-record-table th:nth-child(2){width:28%}.activity-record-table th:nth-child(3){width:50%}.activity-record-table .activity-row{display:table-row}.activity-record-table .activity-row:hover{background:var(--card-2)}.club-activity-panel{padding:24px;margin-top:16px}#alert-message{white-space:pre-line}.fixtures-subtabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.fixtures-subtabs button{border:0;border-radius:10px;padding:9px 16px;background:var(--card-2);color:var(--muted);font-weight:900;font-size:.82rem;cursor:pointer}.fixtures-subtabs button:hover:not(:disabled){color:var(--text)}.fixtures-subtabs button.active{background:var(--green);color:#fff}
.activity-record-table td:first-child{color:var(--muted);font-weight:400;font-size:.72rem}
.activity-record-table td:last-child{line-height:1.4}
.activity-summary{font-weight:800;color:var(--text)}
.stat-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px}
.stat-card-link{width:100%;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--text);cursor:pointer;text-align:left}.stat-card-link:hover{border-color:var(--yellow)}
.stat-card small{display:flex;align-items:center;gap:4px;min-width:0}
.stat-card strong{flex-shrink:0;margin:0;font-size:26px;text-align:right}
.stat-card .stat-help{width:auto;height:auto;margin:0;padding:0;font-size:10px;line-height:1.2;flex:0 1 auto}
.club-summary{display:grid;gap:3px}.club-summary-main-row{display:grid;justify-items:start;gap:4px;min-width:0}.club-summary-metrics{display:flex;align-items:baseline;flex-wrap:wrap;min-width:0}.club-summary-status-row{display:flex;align-items:center;gap:7px;padding:5px 0 6px}.club-summary-role{margin-left:0;color:var(--yellow);font-size:.72rem;font-weight:900;text-transform:uppercase;white-space:nowrap}.club-summary-plan-badge{display:inline-flex;align-items:center;min-height:20px;padding:2px 8px;border:1px solid var(--yellow);border-radius:999px;background:rgba(245,197,66,.1);color:var(--yellow);font-size:.62rem;font-weight:950;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;cursor:pointer}.club-summary-plan-badge:hover,.club-summary-plan-badge:focus-visible{background:var(--yellow);color:#092216;outline:none}.club-summary-separator{padding:0 4px}.club-summary-note{font-size:.8em}.club-summary-link{border:0;background:transparent;color:inherit;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.club-summary-link:hover{color:var(--yellow)}

@media (max-width:480px){
  .people-grid{grid-template-columns:1fr;gap:18px}
  .people-record-table th,.people-record-table td,.activity-record-table th,.activity-record-table td{padding:8px 7px;font-size:.7rem}
  .people-record-table th:nth-child(1){width:31%}.people-record-table th:nth-child(2){width:28%}.people-record-table th:nth-child(3){width:41%}
  .stat-card{padding:10px 9px}.stat-card strong{font-size:18px}
}

/* ── Quick Match (Ryan, 2026-08-19) ──────────────────────────────────────── */
.quick-play-or span{color:var(--yellow)}
.quick-play-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.quick-play-actions .button{margin:0}
.quick-play-note{margin:8px 0 0;color:var(--muted);font-size:.76rem;text-align:center}
.quick-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}
.quick-head h1{margin:4px 0 0;color:var(--yellow);font-size:1.9rem}
.quick-code-block{padding:18px;background:var(--card-2);border:2px dashed var(--yellow);border-radius:14px;text-align:center}
.quick-code-block>span{color:var(--muted);font-size:.66rem;font-weight:900;letter-spacing:.18em}
.quick-code-block strong{display:block;margin:6px 0 4px;color:var(--yellow);font:900 2.9rem/1 'DM Mono',monospace;letter-spacing:.14em}
.quick-code-block p{margin:8px 0 0;color:var(--muted);font-size:.78rem}
.quick-players{margin-top:18px}
.quick-players h2{margin:0 0 10px;color:var(--yellow);font-size:1rem}
.quick-players h2 small{color:var(--muted);font-weight:400}
.quick-player-row b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quick-player-row .quick-setup{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.quick-lobby-actions{display:grid;gap:8px;margin-top:14px}
.quick-joiner-wait{display:grid;justify-items:center;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);text-align:center}
.quick-joiner-wait p{margin:0;color:var(--muted)}
.quick-joiner-wait b{color:var(--yellow)}
.quick-spinner{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--yellow);border-radius:50%;animation:quickSpin .9s linear infinite}
@keyframes quickSpin{to{transform:rotate(360deg)}}
.quick-home-actions{display:grid;gap:8px}
.quick-home-actions .button{margin:0}
.temporary-account-banner{display:grid;gap:7px;margin:0 0 12px;padding:20px;border:2px solid var(--red);border-radius:12px;background:color-mix(in srgb,var(--red) 13%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--red) 25%,transparent)}
.temporary-account-banner .eyebrow.danger{color:var(--red)}
.temporary-account-banner h2{margin:0;color:var(--text);font-size:1.15rem;line-height:1.25}
.temporary-account-banner p:not(.eyebrow){margin:0;color:var(--text);font-size:.84rem;line-height:1.5;white-space:pre-line}
.temporary-account-banner p:not(.eyebrow) b{color:var(--yellow)}
.temporary-account-banner .button{margin-top:5px}
.temporary-feature-lock{display:grid;width:100%;min-height:210px;place-content:center;gap:8px;border-color:rgba(245,197,66,.55);background:linear-gradient(135deg,var(--card),rgba(245,197,66,.08));color:var(--text);text-align:center;cursor:pointer}.temporary-feature-lock span{font-size:1.65rem}.temporary-feature-lock strong{color:var(--yellow);font-size:1.15rem}.temporary-feature-lock small{color:var(--muted)}
.temporary-best-of-lock{margin:10px 0 0;padding:9px 11px;border:1px solid rgba(245,197,66,.42);border-radius:9px;background:rgba(245,197,66,.08);color:var(--muted);font-size:.72rem;text-align:center}.temporary-best-of-lock b{color:var(--yellow)}
.temporary-account-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.temporary-account-actions .button{margin-top:5px}
.temporary-account-actions-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
.temporary-account-actions-two .button{width:100%}
.temporary-delete-button{border-color:#ff7568!important;color:#ff9a91!important}
.temporary-delete-button span{display:block;line-height:1.15}
.temporary-delete-button:hover{background:#c0392b!important;border-color:#c0392b!important;color:#fff!important}
.quick-save-panel{padding:20px}
.quick-save-panel .button{justify-self:start}
#quick-convert-dialog label small{display:block;margin-top:2px;color:var(--muted);font-size:.7rem;font-weight:400}
@media (max-width:480px){.quick-play-actions{grid-template-columns:1fr}.quick-code-block strong{font-size:2.4rem}}

/* Live tournament hero (Ryan, 2026-08-20) -- the home screen's single most
   important state. Sits above Live Matches and stands about three
   live-match cards tall so it cannot be scrolled past by accident. */
.live-section-tournaments{margin-bottom:16px}
.live-tournament-hero{min-height:186px;align-items:stretch;flex-wrap:nowrap;gap:18px;padding:22px 24px;border-width:3px;border-color:#d99bff;background:linear-gradient(135deg,var(--card-2),rgba(112,52,135,.32));box-shadow:0 0 0 1px rgba(217,155,255,.25),0 12px 34px rgba(112,52,135,.35)}
.live-tournament-hero>div:first-child{display:flex;flex-direction:column;justify-content:center;gap:2px}
.live-tournament-hero>div:last-child{display:flex;align-items:center;flex-shrink:0}
.live-tournament-hero span{margin-bottom:8px;color:#edc9ff;font-size:.82rem;font-weight:900;letter-spacing:.16em}
.live-tournament-hero h2{color:#edc9ff;font-size:2rem;line-height:1.12;white-space:normal}
.live-tournament-hero p{margin:2px 0 0;font-size:1rem}
.live-tournament-hero .live-tournament-hero-meta{color:#edc9ff;font-weight:800}
.live-tournament-hero-cta{width:auto;margin:0;padding:14px 22px;font-size:1rem}
@media (max-width:480px){.live-tournament-hero{min-height:172px;flex-wrap:wrap;gap:14px;padding:18px}.live-tournament-hero h2{font-size:1.45rem}.live-tournament-hero>div:last-child{width:100%}.live-tournament-hero-cta{width:100%}}

/* End-a-tournament reason + the permanent ended-when/why/who record
   (Ryan, 2026-08-20). */
.end-reason-label{display:block;margin-top:14px;color:var(--text);font-weight:800}
.end-reason-label small{color:var(--muted);font-size:.72rem;font-weight:400}
.end-reason-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}
.end-reason-label textarea{width:100%;padding:10px 12px;border:2px solid var(--line);border-radius:10px;background:var(--card-2)!important;color:var(--text)!important;caret-color:var(--text);font:inherit;font-weight:400;resize:vertical}
.end-reason-label textarea:focus{border-color:var(--yellow);outline:none}
.end-reason-count{margin:4px 0 0;color:var(--muted);font-size:.72rem;text-align:right}
#end-tournament-confirm[disabled]{opacity:.45;cursor:not-allowed}
.tournament-ended-line{display:grid;gap:4px;margin:12px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card-2);text-align:left}
.tournament-ended-when{color:var(--text);font-size:.86rem;font-weight:800}
.tournament-ended-reason{color:var(--muted);font-size:.82rem;overflow-wrap:anywhere}
.tournament-ended-reason b{color:var(--text)}

/* Club screen alignment with Kelly Pool (Ryan, 2026-08-20): every club
   table centres its headings and its data, action buttons are words rather
   than glyphs, and Past Matches reveals a match's time on hover or tap. */
.club-record-table th,.club-record-table td{text-align:center;vertical-align:middle}
.club-record-table td strong,.club-record-table td small{text-align:center}
.club-record-table .record-side{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.club-record-table .record-score{color:var(--yellow);font-weight:900;font-size:.95rem;white-space:nowrap}
.club-record-table .record-date{white-space:nowrap;font-variant-numeric:tabular-nums}
.time-tip-anchor{cursor:pointer;border-bottom:1px dotted var(--muted)}
.table-action{width:auto;margin:0 auto;padding:6px 10px;font-size:.68rem;white-space:nowrap}
.people-record-table td{vertical-align:middle}
.table-panel table th,.table-panel table td{text-align:center}
.table-panel table th:first-child,.table-panel table td:first-child{text-align:center}
.club-live-section{margin-bottom:18px}
.club-live-section .live-section-list{display:grid;gap:8px}
.time-tip{position:fixed;z-index:9999;display:none;padding:6px 10px;border:1px solid var(--yellow);border-radius:8px;background:var(--card-2);color:var(--text);font-size:.8rem;white-space:nowrap;box-shadow:0 6px 24px rgba(0,0,0,.45)}
/* Header wordmark: same weight as Kelly Pool's, and "8 Ball" centred over
   TRACKER rather than left-aligned against a much wider word. */
.brand>span:last-child{text-align:center}
.brand b{font-weight:900}
.brand small{margin-right:-.42em}

/* Club tab tray and table type scale, matched to Kelly Pool's so the two club
   screens read as one product (Ryan, 2026-08-20). Kelly Pool has four tabs
   and 8 Ball five, which is the only difference in the grid. */
.tabs.club-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0 14px;padding:4px;background:var(--card-2);border:1px solid var(--line);border-radius:12px;overflow:visible}
.tabs.club-tabs.three-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.tabs.club-tabs button{min-width:0;flex:none;padding:10px 4px;border:0;border-radius:9px;background:transparent;color:var(--muted);font:700 .78rem/1.1 inherit;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tabs.club-tabs button:hover{color:var(--text)}
.tabs.club-tabs button.active{background:var(--green);color:#fff;box-shadow:inset 0 0 0 1px var(--yellow)}
.club-record-table th{padding:8px 10px;font-size:.72rem;letter-spacing:.05em}
.club-record-table td{padding:8px 10px;font-size:.82rem}
.club-record-table td small{font-size:.7rem}
.table-panel table th{font-size:.72rem}
.table-panel table td{font-size:.82rem}
@media (max-width:480px){.tabs.club-tabs{gap:3px;padding:3px}.tabs.club-tabs button{padding:8px 2px;font-size:.6rem;letter-spacing:-.02em}.club-record-table th{padding:7px 5px;font-size:.62rem}.club-record-table td{padding:7px 5px;font-size:.74rem}.table-panel table th{font-size:.62rem}.table-panel table td{font-size:.74rem}}

/* Settings controls sized to Kelly Pool's (Ryan, 2026-08-20). A setting is
   a label and a pill toggle on one bordered row, not a heading and a
   paragraph -- which is what made 8 Ball's settings read twice the size of
   the same settings in Kelly Pool. */
.club-settings-panel h2{margin:0 0 10px;font-size:1rem}
.club-settings-panel>p.muted{margin:0 0 12px;font-size:.82rem}
.setting-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card-2);user-select:none}
.setting-row-text{flex:1 1 auto;min-width:0;color:var(--text);font-size:.82rem;line-height:1.3}.setting-label-help{padding:0;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}.setting-label-help:hover,.setting-label-help:focus-visible{text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}
.setting-row-sub{display:block;margin-top:2px;color:var(--muted);font-size:.74rem;line-height:1.35}
.setting-row-yn{display:flex;flex-basis:100%;gap:2px;padding:2px;border:1px solid var(--line);border-radius:20px;background:var(--bg)}
.setting-row-yn button{flex:1;min-width:0;padding:8px 12px;border:0;border-radius:18px;background:transparent;color:var(--muted);font-size:.82rem;font-weight:700;cursor:pointer}
.setting-row-yn button.active{background:var(--yellow);color:#0d1f14;box-shadow:none}
.live-stream-fields{display:grid;gap:10px;margin:2px 0 12px}
.live-stream-fields label{display:grid;gap:7px;font-size:.82rem}
.live-stream-fields select{width:100%}
.live-stream-source-fields{display:grid;grid-template-columns:minmax(0,2fr) minmax(140px,1fr) minmax(140px,1fr);gap:10px}
.live-stream-source-fields[data-table-stream-youtube]{grid-template-columns:1fr}
.live-stream-source-help{width:max-content;color:var(--muted);font-weight:800}
.live-stream-table-list{display:grid;gap:10px}.live-stream-table-card{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--card-2)}.live-stream-table-card[open],.live-stream-table-card.primary-camera-card{display:grid;gap:10px}.live-stream-table-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;cursor:pointer;list-style:none}.primary-camera-card>.live-stream-table-heading{cursor:default}.live-stream-table-heading::-webkit-details-marker{display:none}.live-stream-table-heading h4{margin:0;color:var(--yellow);font-size:.88rem}.live-stream-table-heading>span{display:flex;align-items:center;gap:9px}.live-stream-table-heading small{color:var(--muted);font-size:.68rem;text-align:right}.live-stream-table-heading i{color:var(--yellow);font-style:normal;font-size:1rem;transition:transform .18s ease}.live-stream-table-card[open] .live-stream-table-heading i{transform:rotate(180deg)}.live-stream-guide-link{display:flex;width:100%;align-items:center;justify-content:space-between;text-decoration:none}.live-stream-more-cameras{padding:0;border:1px solid var(--line);border-radius:11px;background:rgba(0,0,0,.08)}.live-stream-more-cameras>summary{display:flex;align-items:center;gap:10px;padding:12px;cursor:pointer;list-style:none}.live-stream-more-cameras>summary::-webkit-details-marker{display:none}.live-stream-more-cameras>summary span{color:var(--yellow);font-size:.82rem;font-weight:900}.live-stream-more-cameras>summary small{margin-left:auto;color:var(--muted);font-size:.68rem}.live-stream-more-cameras>summary i{color:var(--yellow);font-style:normal;transition:transform .18s ease}.live-stream-more-cameras[open]>summary i{transform:rotate(180deg)}.live-stream-more-cameras>div{display:grid;gap:8px;padding:0 10px 10px}.live-stream-more-cameras .live-stream-table-card{background:var(--card)}
@media (max-width:760px){.live-stream-source-fields{grid-template-columns:1fr}}
.staff-permissions{gap:10px}
.staff-permission-row{grid-template-columns:minmax(0,1fr) minmax(140px,200px);padding:7px 10px;border-radius:8px;background:var(--card-2)}
.staff-permission-row>span{font-size:.82rem}
.staff-permission-row select{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font-size:.82rem}
#save-live-stream{width:auto;padding:9px 16px;font-size:.82rem}
@media (max-width:480px){.staff-permission-row{grid-template-columns:minmax(0,1fr)}}

/* "8 Ball" on the home screen, matched to "Kelly Pool" under the Kelly Pool
   logo (Ryan, 2026-08-20). Both headings were already 2rem with -1px tracking
   in gold, but 8 Ball never set a weight, so it fell back to the browser's
   default h1 bold (700) against Kelly Pool's 900 -- which is why it read
   lighter and slightly smaller. The TRACKER half already matched (1.35rem/800,
   1.1rem on a phone). Mobile size brought to 1.6rem to match as well; the
   breakpoints stay each app's own, since they switch whole layouts. */
.hero-copy h1,.dashboard-intro h1{font-weight:900}
@media (max-width:480px){.hero-copy h1,.dashboard-intro h1{font-size:1.6rem}}

/* -- Landing menu, guest extras and the feedback form (Ryan, 2026-08-21) --
   The landing card is a 2x3 button grid: four ways in, then Quick Match across
   the full row because it is the one that needs nothing from you at all. The
   extras cards are buttons rather than divs with onclick so they are reachable
   by keyboard and announce themselves properly; .card had never actually been
   defined in here, which is why the About page it was already written for
   looked unstyled. */
.card{padding:24px;background:var(--card);border:2px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card+.card{margin-top:14px}
.landing-menu{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.landing-menu .button{width:100%;margin:0;white-space:normal}
.landing-menu-wide{grid-column:1/-1}
.landing-card .quick-play-note{margin:14px 0 0;color:var(--muted);font-size:12px;text-align:center}
.auth-column{display:grid;gap:14px;align-content:start}
.guest-extras{display:grid;gap:10px}
.extras-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.extras-card{display:grid;gap:4px;width:100%;padding:12px 16px;background:transparent;border:2px solid var(--line);border-radius:12px;color:var(--muted);font:inherit;font-weight:900;text-align:center;cursor:pointer;transition:.15s}
.extras-card:hover{border-color:var(--yellow);filter:brightness(1.08);transform:translateY(-1px)}
.extras-card b{color:var(--yellow);font-size:.88rem}
.extras-card span{font-size:.76rem;line-height:1.45;font-weight:400}
.club-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px 18px}
.club-code-line{justify-self:end;align-self:start}
#club-code{padding:0;border:0;border-radius:0;background:transparent;color:var(--yellow);font-weight:400;letter-spacing:.08em}
.club-hero .hero-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}
.club-hero #new-match{grid-column:1/-1;width:100%}
.tabs.club-tabs button{font-weight:400}
.fixtures-subtabs{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;overflow:visible;margin:0 0 18px;padding-bottom:2px}
.fixtures-subtabs button{flex:0 0 auto;padding:6px 8px;font-size:.68rem;font-weight:400;white-space:nowrap}
.fixture-history-section+.fixture-history-section{margin-top:20px}.fixture-history-section h3{margin:0 0 4px;color:var(--yellow);font-size:1rem}.fixture-history-section>p{margin:0 0 10px;font-size:.78rem}.tournament-detail-open .fixtures-subpanel{display:none!important}
.time-tip-anchor{border-bottom:0;text-decoration:none}
.extras-wide{padding:18px 20px}
.extras-wide b{font-size:.95rem}
.extras-wide span{font-size:.82rem}
#dashboard-view .guest-extras{margin-top:14px}
@media (max-width:480px){.extras-grid{grid-template-columns:1fr}.feedback-contact{grid-template-columns:1fr}.landing-menu .button{padding:12px 8px;font-size:.9rem}}

/* -- Quick Match setup screen (Ryan, 2026-08-21) -----------------------------
   Was a lobby with a match code and a waiting list; it is a player list and a
   Start button now. The third side option is "not in this match", so a phone
   that has built up a few regulars can leave most of them off the table. */
.quick-setup-panel{padding:18px}
.quick-setup-panel .section-title{margin-bottom:14px}
.quick-player-list{display:grid;gap:8px;margin-bottom:4px}
.quick-player-row{display:flex;align-items:center;gap:10px;padding:11px 13px;background:var(--card-2);border:1px solid var(--line);border-radius:10px}
.quick-player-row b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quick-side-toggle{display:flex;gap:4px;flex-shrink:0}
.quick-side-toggle button{min-width:34px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--muted);font-weight:900;cursor:pointer}
.quick-side-toggle button.active{border-color:var(--yellow);background:var(--yellow);color:#0d1f14}
.quick-host-tag{flex-shrink:0;padding:3px 8px;border-radius:999px;background:var(--green);color:#fff;font-size:.62rem;font-weight:900;letter-spacing:.08em}
.quick-live-panel{padding:18px}
.quick-live-list{display:grid;gap:8px}
.quick-live-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;background:var(--card-2);border:2px solid var(--yellow);border-radius:10px}
.quick-live-row>div:first-child{flex:1;min-width:0}
.quick-live-row b{display:block;color:var(--yellow);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quick-live-row small{display:block;margin-top:2px;color:var(--muted);font-size:.75rem}
.quick-live-row>div:last-child{display:flex;gap:6px;flex-shrink:0}

/* Exports card and the cast chooser (Ryan, 2026-08-21). */
.club-export-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:10px}
.club-export-buttons .button{width:100%;margin:0}
#club-exports-panel>.button.primary{width:100%;margin-top:12px}
.cast-choice-grid{grid-template-columns:1fr;margin-top:4px}
.venue-display-destinations{display:grid;gap:10px;margin-top:16px}
.venue-display-destinations>section{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;background:var(--card-2);border:2px solid var(--line);border-radius:14px}
.venue-display-destinations>section>div:first-child{display:grid;gap:4px;min-width:0}
.venue-display-destinations b{color:var(--yellow)}
.venue-display-destinations small{color:var(--muted);line-height:1.4}
.venue-display-destinations>section>div:last-child{display:flex;gap:7px}
.venue-display-modal-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.venue-display-modal-top>div{text-align:center}.venue-display-modal-top .icon-button{align-self:start;justify-self:end}
.venue-display-destinations>section.unavailable{border-color:var(--line-soft);background:rgba(255,255,255,.035);opacity:.5}.venue-display-destinations>section.unavailable button{filter:grayscale(1);cursor:not-allowed}
.venue-choice-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.venue-choice-button{display:grid;gap:5px;width:100%;padding:14px;text-align:left;color:var(--text);background:var(--card-2);border:2px solid var(--line);border-radius:13px;cursor:pointer}.venue-choice-button:hover,.venue-choice-button:focus-visible{border-color:var(--green)}.venue-choice-button.active{border-color:var(--yellow);background:#293519}.venue-choice-button .venue-choice-type{color:var(--muted);font-size:.64rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.venue-choice-button b{color:var(--yellow);font-size:.9rem}.venue-choice-button .venue-choice-name{display:block;min-width:0;overflow:hidden;white-space:nowrap}.venue-choice-button .venue-choice-name.name-long{font-size:.78rem}.venue-choice-button .venue-choice-name.name-extra-long{font-size:.67rem;letter-spacing:-.01em}.venue-choice-button small{color:var(--muted);font-size:.72rem;line-height:1.35}.venue-overview-choice{margin-top:15px;padding:15px;background:rgba(244,203,12,.06);border:2px solid var(--yellow);border-radius:14px}.venue-overview-choice h3,#venue-frame-choice-section h3{margin:0 0 3px;color:var(--yellow)}.venue-overview-choice .venue-choice-button{margin-top:10px;background:var(--yellow);border-color:var(--yellow);color:#092014}.venue-overview-choice .venue-choice-button b,.venue-overview-choice .venue-choice-button small{color:#092014}.venue-overview-choice .venue-table-overview-choice{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}#venue-frame-choice-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
#venue-display-dialog.venue-flow-active .modal-card{height:min(780px,calc(100dvh - 25px));display:flex;flex-direction:column;overflow:hidden}
#venue-display-dialog.venue-flow-active #venue-display-matches:not(.hidden),#venue-display-dialog.venue-flow-active #venue-display-views:not(.hidden){display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;flex:1;overflow:hidden}
#venue-display-dialog .venue-flow-scroll{min-height:0;overflow:auto;padding:0 4px 8px 0;scrollbar-gutter:stable}
#venue-display-dialog .venue-flow-actions{position:static;margin-top:8px;padding:12px 0 max(2px,env(safe-area-inset-bottom));flex-shrink:0;background:var(--card)}
#venue-display-dialog .venue-flow-actions .button{min-width:110px}
.venue-match-tabs{display:flex;gap:8px;margin-top:13px}.venue-match-tabs .button{flex:1}.venue-match-tabs .button.active{border-color:var(--yellow);color:var(--yellow);background:rgba(244,203,12,.08)}
.venue-past-table-wrap{max-height:min(58vh,560px);margin-top:14px;overflow:auto;border:2px solid var(--line);border-radius:13px}.venue-past-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.76rem}.venue-past-table th,.venue-past-table td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.venue-past-table th{position:sticky;top:0;z-index:1;color:var(--muted);background:var(--card-2);font-size:.65rem;letter-spacing:.06em;text-transform:uppercase}.venue-past-table th:first-child{width:23%}.venue-past-table th:nth-child(2){width:20%}.venue-past-table th:nth-child(4){width:15%;text-align:center}.venue-past-table td:nth-child(4){text-align:center}.venue-past-table tbody tr{cursor:pointer}.venue-past-table tbody tr:hover,.venue-past-table tbody tr:focus-visible{background:rgba(244,203,12,.08);outline:none}.venue-past-table tbody tr:last-child td{border-bottom:0}.venue-past-table .venue-past-name{color:var(--yellow);font-weight:800}.venue-past-empty{padding:24px!important;color:var(--muted);text-align:center!important}
@media(max-width:480px){.venue-display-destinations>section{grid-template-columns:1fr}.venue-display-destinations>section>div:last-child .button{flex:1}.venue-display-modal-top{grid-template-columns:minmax(0,1fr) auto;gap:7px}.venue-choice-buttons{grid-template-columns:1fr}}

/* Quick Match's own frame, and the two public entry points above Your Clubs
   (Ryan, 2026-08-21). The extra padding is the point of the frame: it is the
   one route in that costs the visitor nothing, so it gets room to breathe
   rather than being the last row of the sign-in menu. */
.landing-quick-card{padding:24px 22px;text-align:center}
.landing-view-card{padding:24px 22px}
.landing-view-card .button{margin:0}
.landing-quick-card .button{margin:0}
.landing-quick-card .quick-play-note{margin:14px 0 0;color:var(--muted);font-size:12px}
.dashboard-actions-row{display:flex;gap:8px;margin-bottom:12px}
.dashboard-actions-row .button{flex:1;white-space:normal}
.quick-history-panel{padding:24px 22px}
.quick-history-panel .section-title{margin-bottom:14px}
#quick-view #quick-live-banner{margin-bottom:12px}
.best-mode-options{display:grid;grid-template-columns:1fr 1fr;margin:0 0 10px}.best-mode-options button{padding:8px 10px;font-size:.76rem}
.quick-recommend-copy{line-height:1.55;margin-top:0}
.quick-recommend-actions{display:grid;gap:10px;margin-top:18px}.clubless-match-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 16px}.clubless-match-types button{min-width:0;min-height:42px;padding:8px}
.validation-problems{margin:0 0 4px;padding-left:22px;color:var(--text);line-height:1.65}
.validation-problems li+li{margin-top:3px}
#quick-name-form{display:grid;gap:14px}
#quick-name-form label{margin-top:0}
#quick-name-form .button{margin-top:8px}
.best-of-block .best-presets,.tournament-best-choice .best-presets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.live-match-card,.live-tournament-hero{box-sizing:border-box;max-width:100%}.live-tournament-hero{flex-wrap:wrap;overflow:hidden}.live-tournament-hero>div:last-child{max-width:100%}
.live-match-card{min-width:0;overflow:hidden}.live-match-card>div:last-child{min-width:0;max-width:100%;flex-wrap:wrap}.live-tournament-hero{display:grid;grid-template-columns:minmax(0,1fr);min-height:0;gap:14px;padding:18px}.live-tournament-copy{min-width:0}.live-tournament-hero .live-tournament-copy>span{display:block;margin:0 0 8px;white-space:nowrap}.live-tournament-hero h2{margin:0;overflow-wrap:anywhere}.live-tournament-hero .live-tournament-club{margin:7px 0 0;color:var(--text);font-weight:700}.live-tournament-hero .live-tournament-hero-meta{margin:5px 0 0}.live-tournament-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.live-tournament-hero .live-tournament-actions{width:100%;justify-content:flex-start}.live-tournament-hero-cta{padding:9px 18px;font-size:.82rem}.live-tournament-actions .button{width:auto;margin:0;padding:9px 18px;font-size:.82rem}
.wizard-steps{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;align-items:start}.wizard-dot{height:7px;cursor:pointer}.wizard-dot.active{border:1px solid var(--yellow);background:var(--card);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--yellow) 28%,transparent)}.wizard-dot.done{background:#4ade80}.wizard-step-label{grid-row:2;justify-self:center;margin:3px 0 10px;white-space:nowrap;text-align:center;text-transform:none}
.best-of-block .best-presets button,.tournament-best-choice .best-presets button{min-width:0}
.prize-band-row label{min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--card-2);cursor:pointer;transition:.15s}
.prize-band-row label:hover{border-color:var(--yellow)}
.prize-band-row:has([data-band-toggle]:checked) label{border-color:var(--yellow);background:rgba(245,197,24,.12);color:var(--yellow)}

/* -- Feedback, matched to Kelly Pool's (Ryan, 2026-08-21) --------------------
   Scoped to this screen on purpose: .choice and .button are 8 Ball's own and
   are used on a dozen other screens, so the match is made here rather than by
   restyling them. Colours come from 8 Ball's tokens, which are already Kelly
   Pool's values, so the light and midnight themes keep working. */
#feedback-view .card{padding:18px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:none}
#feedback-view .fb-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
#feedback-view .fb-head h2{margin:0;color:var(--text);font-size:1.15rem;font-weight:700}
#feedback-view .fb-intro{margin:0 0 14px;color:var(--muted);font-size:.85rem;line-height:1.5}
#feedback-view .fb-field{margin-bottom:14px}
#feedback-view .fb-label{display:block;margin:0 0 8px;color:var(--muted);font-size:.82rem;font-weight:400}
#feedback-view .fb-options{display:flex;flex-direction:column;gap:8px}
#feedback-view .fb-option{display:flex;align-items:center;gap:10px;margin:0;padding:10px 12px;background:var(--card-2);border:1px solid var(--line);border-radius:8px;color:var(--text);font-size:.88rem;font-weight:400;cursor:pointer;user-select:none;transition:border-color .15s,background .15s}
#feedback-view .fb-option input[type="radio"]{width:18px;height:18px;margin:0;flex-shrink:0;accent-color:var(--yellow);cursor:pointer}
#feedback-view .fb-option-body{display:block;flex:1;min-width:0}
#feedback-view .fb-option-title{display:block;color:var(--text);font-size:.88rem;font-weight:700}
#feedback-view .fb-option-sub{display:block;margin-top:1px;color:var(--muted);font-size:.76rem;font-weight:400}
#feedback-view .fb-option.selected{border-color:var(--yellow);background:rgba(245,197,24,.08)}
#feedback-view .fb-option.selected .fb-option-title{color:var(--yellow)}
#feedback-view select,#feedback-view input{width:100%;margin:0;padding:10px 12px;background:var(--card-2);color:var(--text);border:1px solid var(--line-soft);border-radius:8px;font-size:.9rem}
#feedback-view textarea{width:100%;padding:10px 12px;background:var(--card-2);color:var(--text);border:1px solid var(--line);border-radius:8px;font-family:'Segoe UI',sans-serif;font-size:.9rem;resize:vertical;outline:none}
#feedback-view textarea:focus,#feedback-view input:focus,#feedback-view select:focus{border-color:var(--yellow);outline:none}
#feedback-view .fb-contact{padding:12px;margin-bottom:14px;background:var(--card-2);border:1px solid var(--line);border-radius:8px}
#feedback-view .fb-contact .fb-field:last-of-type{margin-bottom:0}
#feedback-view .fb-note{margin:8px 0 0;color:var(--muted);font-size:.76rem;line-height:1.5}
#feedback-view .fb-source-select{position:absolute;width:1px;height:1px;padding:0;opacity:0;pointer-events:none}
#feedback-view .fb-picker-button,.scheduled-start-picker{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;padding:10px 14px;border:1px solid var(--line-soft);border-radius:8px;background:var(--card-2);color:var(--text);font:inherit;text-align:start;cursor:pointer}
#feedback-view .fb-picker-button:hover,.scheduled-start-picker:hover{border-color:var(--yellow)}
#feedback-view .fb-picker-button:disabled{opacity:.6;cursor:not-allowed}
.feedback-picker-dialog{color-scheme:dark}
.feedback-picker-card{width:min(440px,calc(100vw - 32px));max-height:min(78vh,700px);display:flex;flex-direction:column;gap:14px;background:var(--card);color:var(--text)}
.feedback-picker-card h2{margin:0;color:var(--yellow)}
.feedback-picker-options{display:grid;gap:6px;overflow:auto;min-height:0}
.fb-picker-option{width:100%;padding:12px;text-align:start;border:1px solid var(--line);border-radius:8px;background:var(--card-2);color:var(--text);font:inherit;cursor:pointer}
.fb-picker-option[aria-current="true"],.fb-picker-option:hover{border-color:var(--yellow);color:var(--yellow)}
#feedback-view .fb-error{margin-top:6px;color:var(--red);font-size:.85rem}
#feedback-view .fb-submit{display:block;width:100%;margin-top:12px;padding:12px;border:0;border-radius:8px;background:var(--yellow);color:#0d1f14;font-size:1rem;font-weight:700;cursor:pointer}
#feedback-view .fb-submit:disabled{opacity:.5;cursor:not-allowed}

/* The ID fields uppercase what is typed, not the hint that is not typed yet
   (Ryan, 2026-08-21) -- an empty field was shouting its own placeholder. */
#viewer-match-code::placeholder,#helper-access-id-public::placeholder{text-transform:none}
#quick-setup-panel .button{margin:0}

/* A locked prize place (Ryan, 2026-08-21): the one above it is not paying, so
   this one cannot be either. Dimmed rather than removed, so the ladder still
   reads top to bottom and it is obvious what would unlock it. */
.prize-band-locked{opacity:.45}
.prize-band-locked label{cursor:not-allowed}

/* Keep scrolling available everywhere without drawing browser or nested-pane
   scrollbars into the app chrome. Wheel, touch and keyboard scrolling remain. */
*{scrollbar-width:none;-ms-overflow-style:none}
*::-webkit-scrollbar{display:none;width:0;height:0}

/* The New Match frame follows each step's content until it reaches the
   viewport. Only then does the middle row scroll, keeping the action row in
   view without leaving short steps inside a tall empty box. */
.match-modal .modal-card{height:auto;display:block;scrollbar-gutter:auto}
.match-modal .modal-card>.modal-actions,
.match-modal .modal-card>.wizard-nav{position:static;bottom:auto;margin-top:25px}
.match-modal.wizard-mode .modal-card{
  height:auto;
  max-height:calc(100dvh - 8px);
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  overflow:hidden;
}
.match-modal.wizard-mode .wizard-body{
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  padding:0 2px;
}
.match-modal.wizard-mode .wizard-nav{margin-top:0;background:var(--card);z-index:1}

/* Cue-sport family header parity: center the app name over TRACKER. */
.brand b{text-align:center}
.brand>span:last-child{text-align:center}
/* Final header parity with Kelly Pool: centered app name over evenly spaced
   TRACKER lettering at the same desktop and responsive sizes. */
.brand>span:last-child{display:flex;flex-direction:column;align-items:center;text-align:center;line-height:1}
.brand b{font-size:1.2rem;font-weight:900;letter-spacing:-.5px;text-align:center}
.brand small{display:flex;width:100%;justify-content:space-between;margin-top:1px;color:#000;font-size:.62rem;font-weight:800;line-height:1.3;letter-spacing:0;text-transform:uppercase}
.brand small span{flex:1;text-align:center}
.hero-lede{max-width:430px;text-wrap:balance}
@media(max-width:480px){.brand b{font-size:1.02rem}.brand small{font-size:.56rem}.hero-lede{max-width:calc(100% - 20px)}}
/* Landing actions are deliberately one full-width row each on the public
   login screen. Feedback stays available as one full-width card; the coffee
   prompt is intentionally gone. */
.landing-menu{grid-template-columns:1fr}
.landing-menu .button{grid-column:1/-1}
.guest-extras .extras-grid{grid-template-columns:1fr}
.guest-extras .extras-wide{grid-column:1/-1;width:100%}
.guest-extras .extras-card{min-height:104px;align-content:center}
.auth-footer{grid-column:1/-1;margin:8px 0 0;padding:16px 0 4px;border-top:1px solid var(--line);text-align:center}
.auth-footer a{color:var(--yellow);font-size:.82rem;font-weight:900;letter-spacing:.04em;text-decoration:none}
.auth-footer a:hover{text-decoration:underline}
/* Keep the app identity available at every scroll position. Dialogs live in
   the browser's top layer, so they need their own offset rather than relying
   on the header's z-index. */
:root{--app-header-height:59px}
body{padding-top:var(--app-header-height)}
.topbar{position:fixed;inset:0 0 auto;width:100%;z-index:100}
.modal[open]{margin:calc(var(--app-header-height) + 10px) auto 12px;max-height:calc(100dvh - var(--app-header-height) - 22px)}
.modal[open] .modal-card{max-height:calc(100dvh - var(--app-header-height) - 22px)}
.match-modal[open]{margin:calc(var(--app-header-height) + 8px) auto 12px}
.match-modal[open] .modal-card{height:min(640px,calc(100dvh - var(--app-header-height) - 20px))}
/* CueTracker is a quiet end marker: it follows long content naturally and
   settles at the bottom of a short signed-out screen without becoming a card. */
.auth-layout{min-height:calc(100dvh - var(--app-header-height));grid-template-rows:minmax(0,1fr) auto;align-content:stretch}
.auth-footer{align-self:end;margin:22px 0 0;padding:8px 0 2px;border:0;text-align:center}
.auth-footer a{color:var(--muted);font-size:.72rem;font-weight:400;letter-spacing:0;text-decoration:underline;text-underline-offset:2px}
.app-footer{width:min(600px,calc(100% - 24px));margin:0 auto;padding:12px 0 max(18px,env(safe-area-inset-bottom));text-align:center}
.app-footer a{color:var(--muted);font-size:.72rem;font-weight:400;text-decoration:underline;text-underline-offset:2px}
.app-footer a:hover{color:var(--yellow)}
@media(max-width:480px){:root{--app-header-height:59px}}
/* Header proportions mirrored from Kelly Pool: a 40px mark on a 59px bar,
   wordmark beginning after the same left inset, and TRACKER starting exactly
   beneath the title rather than being stretched across it. */
.topbar{min-height:59px;padding:5px 24px}
.brand{gap:13px}
.brand-rack{width:40px;height:40px}
.brand-rack .eight-ball-logo{width:40px;height:40px}
.brand>span:last-child{align-items:flex-start;text-align:left;transform:none}
.brand b{font-size:1.2rem;line-height:1;text-align:left}
.brand small{display:block;width:auto;margin:0;font-size:.75rem;line-height:1;letter-spacing:.28em;text-align:left}
.live-match-card .live-now{display:flex;align-items:center;gap:6px;margin:0 0 5px;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.08em}
.live-match-card .live-now i{width:9px;height:9px;border-radius:50%;background:#4ade80;box-shadow:0 0 6px rgba(74,222,128,.7)}
.live-match-card .live-now small{font:inherit;color:var(--muted)}
.live-competition-card .live-match-kicker{color:#edc9ff!important}
.team-round-lineups{margin-top:16px}.team-round-lineup{margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.team-round-lineup h4{margin:0 0 8px;color:var(--yellow);font-size:.82rem}.team-round-lineup>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.team-round-lineup section>b{display:block;color:var(--muted);font-size:.7rem}.team-round-lineup ol{display:grid;gap:4px;margin:5px 0 0;padding:0;list-style:none}.team-round-lineup li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:6px;font-size:.78rem}.team-round-lineup li b{color:var(--yellow)}@media(max-width:480px){.team-round-lineup>div{grid-template-columns:1fr}}
.scheduled-match-card .scheduled-date{color:var(--yellow);font-size:.9rem;font-weight:900;letter-spacing:.04em}
@media(max-width:480px){.topbar{padding:5px 16px}.brand{gap:10px}.brand-rack,.brand-rack .eight-ball-logo{width:36px;height:36px}.brand b{font-size:1.08rem}.brand small{font-size:.58rem;letter-spacing:.27em}}

/* Kelly Pool-style site administration: a compact control centre rather than
   the old four-number card followed by an unsearchable account dump. */
.admin-panel-shell{padding:22px}.admin-screen>.account-name-line{margin-bottom:8px}.admin-screen>.account-name-line h1{font-size:1.5rem}.admin-overview-grid{margin:20px 0 12px}.admin-overview-card{display:grid;gap:4px;width:100%;border:1px solid var(--line);border-radius:11px;background:var(--card-2);color:var(--text);cursor:pointer}.admin-overview-card:hover,.admin-overview-card:focus-visible{border-color:var(--yellow);background:rgba(245,197,66,.08)}.admin-overview-card strong{color:var(--yellow)}.admin-collection-list{display:grid;gap:9px}.admin-collection-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;width:100%;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--card-2);color:var(--text);text-align:left}.admin-collection-card[data-admin-account]{cursor:pointer}.admin-collection-card[data-admin-account]:hover,.admin-collection-card[data-admin-account]:focus-visible{border-color:var(--yellow)}.admin-collection-card strong{color:var(--yellow);font-size:.92rem}.admin-collection-card small{grid-column:1/-1;color:var(--muted);font-size:.73rem;line-height:1.4}.admin-collection-card>span{grid-column:2;grid-row:1;color:var(--yellow);font-size:1.2rem}.admin-analytics-open{display:flex;align-items:center;justify-content:space-between;margin:0 0 22px}.admin-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 10px}.admin-section-heading>div{display:flex;align-items:flex-start;gap:9px}.admin-section-heading>div>span{font-size:1.15rem}.admin-section-heading h2,.admin-trend-heading h2,.admin-insight-grid h2,.admin-system-section h2,.admin-detail-section h2{margin:0;font-size:1rem;color:var(--text)}.admin-section-heading p,.admin-trend-heading p{margin:2px 0 0;color:var(--muted);font-size:.74rem}.admin-search-field input{margin:0}.admin-search-results{display:grid;gap:6px;margin-top:10px}.admin-search-group{display:grid;gap:5px;margin-top:8px}.admin-search-group>h3{margin:0 0 2px;color:var(--muted);font-size:.67rem;letter-spacing:.09em;text-transform:uppercase}.admin-search-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:var(--card-2);color:var(--text);text-align:left}.admin-search-row[data-admin-account]{cursor:pointer}.admin-search-row[data-admin-account]:hover{border-color:var(--yellow)}.admin-search-row>span:first-child{min-width:0}.admin-search-row b,.admin-search-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-search-row b{font-size:.86rem}.admin-search-row small{margin-top:3px;color:var(--muted);font-size:.7rem}.admin-search-arrow{color:var(--yellow);font-size:1.1rem}.admin-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.admin-table{width:100%;border-collapse:collapse;font-size:.78rem}.admin-table th{padding:8px 10px;background:var(--card-2);color:var(--muted);font-size:.67rem;letter-spacing:.06em;text-align:left;text-transform:uppercase;white-space:nowrap}.admin-table td{padding:9px 10px;border-top:1px solid var(--line);color:var(--text);vertical-align:middle}.admin-table td.num,.admin-table th.num{text-align:center}.admin-table tbody tr[data-admin-account]{cursor:pointer}.admin-table tbody tr[data-admin-account]:hover{background:color-mix(in srgb,var(--yellow) 7%,transparent)}.admin-table .primary-cell{font-weight:800;color:var(--yellow)}.admin-table .sub-cell{display:block;margin-top:2px;color:var(--muted);font-size:.68rem}.admin-badge,.admin-badges span{display:inline-flex;align-items:center;padding:3px 7px;border:1px solid var(--line);border-radius:999px;background:var(--card-2);color:var(--muted);font-size:.68rem;font-weight:800}.admin-badge.good,.admin-badges .good{border-color:#2d7651;color:#67d695}.admin-badge.gold,.admin-badges .gold{border-color:#8e7422;color:var(--yellow)}.admin-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:8px;margin:14px 0 22px}.admin-summary-card{padding:12px 8px;border:1px solid var(--line);border-radius:10px;background:var(--card-2);text-align:center}.admin-summary-card strong{display:block;color:var(--yellow);font-size:1.3rem}.admin-summary-card span{display:block;margin-top:3px;color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.admin-trend-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}.admin-range-toggle{display:flex;gap:5px}.admin-range-toggle .active{border-color:var(--yellow);color:var(--yellow)}.admin-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.admin-chart-card{min-width:0;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.admin-chart-card h3{margin:0 0 10px;color:var(--muted);font-size:.74rem;text-transform:uppercase}.admin-chart-card canvas{width:100%!important;max-height:190px}.admin-insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.admin-insight-grid h2,.admin-system-section h2,.admin-detail-section h2{margin-bottom:9px}.admin-system-section,.admin-detail-section{margin-top:22px}.admin-badges{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 18px}
.admin-plan-preview-section>p{margin:0 0 6px;font-size:.76rem}.admin-plan-preview-section>.admin-insight-grid{margin-top:0}
.admin-testing-section{margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--card-2)}.admin-testing-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-testing-heading h2{margin:0 0 4px;font-size:1rem}.admin-testing-heading p{max-width:470px;margin:0;font-size:.74rem;line-height:1.45}.admin-testing-badge{flex:0 0 auto;padding:5px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.admin-testing-badge.good{border-color:#2d7651;color:#67d695}.admin-testing-badge.warning{border-color:var(--yellow);color:var(--yellow)}.admin-safeguard-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.admin-safeguard-toggle .button{width:100%}.admin-safeguard-toggle .active{border-color:var(--yellow);background:color-mix(in srgb,var(--yellow) 12%,var(--card));color:var(--yellow)}.admin-testing-note{margin:10px 0 0;color:var(--muted);font-size:.72rem;line-height:1.45}.admin-testing-note.warning{padding:9px 10px;border:1px solid color-mix(in srgb,var(--yellow) 55%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--yellow) 7%,var(--card));color:var(--text)}
.admin-venue-test-links{display:grid;gap:10px;margin-top:12px}.admin-venue-test-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.admin-venue-test-filters{display:flex;gap:6px;flex-wrap:wrap}.admin-venue-test-filters .active{border-color:var(--yellow);background:rgba(245,197,24,.12);color:var(--yellow)}.admin-venue-test-group{padding:10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.02)}.admin-venue-test-group h3{margin:0 0 8px;font-size:.8rem;color:var(--yellow)}.admin-venue-test-group-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.admin-venue-test-links a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--text);font-size:.76rem;text-decoration:none}.admin-venue-test-links a:hover{border-color:var(--yellow);color:var(--yellow)}@media(max-width:760px){.admin-venue-test-controls>*{width:100%}.admin-venue-test-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-venue-test-group-links{grid-template-columns:1fr}}
.admin-app-statistics-section>.admin-overview-grid{margin-top:12px}.admin-site-wide-statistics-link{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card-2)}.admin-site-wide-statistics-link h2,.admin-site-wide-statistics-link p{margin:0}.admin-site-wide-statistics-link p{margin-top:4px}@media(max-width:480px){.admin-site-wide-statistics-link{align-items:stretch;flex-direction:column}}
.admin-access-timing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.admin-access-timing-grid label{display:grid;gap:5px;color:var(--muted);font-size:.7rem;font-weight:850}.admin-access-timing-grid input{width:100%}.admin-access-timing-save{margin-top:12px}
.admin-repeat-access-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.admin-capacity-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.admin-capacity-heading h2{margin:0 0 4px}.admin-capacity-heading p{max-width:760px;margin:0;font-size:.76rem;line-height:1.45}.admin-capacity-heading>span{flex:0 0 auto;padding:5px 9px;border:1px solid var(--red);border-radius:999px;color:var(--red);font-size:.62rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.admin-capacity-warning{margin:12px 0 0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--yellow) 65%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--yellow) 8%,var(--card));color:var(--text);font-size:.75rem;font-weight:750;line-height:1.45}.admin-capacity-section .admin-summary-grid{margin-bottom:12px}.admin-capacity-chart-card{margin-bottom:12px}.admin-capacity-chart-card canvas{height:clamp(250px,30vw,390px)!important;max-height:none}.admin-capacity-limit{color:var(--red)!important;font-weight:900}
.admin-display-activity-description{max-width:760px;margin:0;font-size:.76rem;line-height:1.45}.admin-display-activity-section .admin-summary-grid{margin-bottom:12px}
.admin-analytics-filter{align-items:center}.admin-analytics-filter .advanced-stats-ranges{max-width:510px;flex:0 1 510px}.admin-monitoring-history-description{max-width:760px;margin:4px 0 12px;line-height:1.45}.admin-history-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-history-chart-grid .admin-chart-card:first-child{grid-column:1/-1}.admin-history-chart-grid canvas{min-height:210px;max-height:240px}.admin-monitoring-history-note{margin:10px 2px 0;font-size:.7rem;line-height:1.45}
@media(max-width:760px){.admin-chart-grid,.admin-insight-grid{grid-template-columns:1fr}.admin-chart-card canvas{max-height:160px}.admin-trend-heading{align-items:flex-start;flex-direction:column}.admin-range-toggle{width:100%}.admin-range-toggle .button{flex:1}.admin-panel-shell{padding:16px}.admin-table{font-size:.72rem}.admin-table th,.admin-table td{padding:8px 7px}}
@media(max-width:760px){.admin-capacity-heading,.admin-testing-heading{flex-direction:column}.admin-capacity-heading>span,.admin-testing-badge{align-self:flex-start}.admin-capacity-chart-card canvas{height:260px!important;max-height:none}}
@media(max-width:760px){.admin-analytics-filter .advanced-stats-ranges{flex-basis:auto;max-width:none}.admin-history-chart-grid{grid-template-columns:1fr}.admin-history-chart-grid .admin-chart-card:first-child{grid-column:auto}.admin-history-chart-grid canvas{min-height:200px;max-height:none}}
@media(max-width:480px){.admin-safeguard-toggle,.admin-access-timing-grid,.admin-repeat-access-row{grid-template-columns:1fr}}
/* Let long setup steps use the full viewport while short steps remain compact. */
.match-modal.wizard-mode[open]{max-height:calc(100dvh - 8px);margin-block:4px}
.match-modal.wizard-mode[open] .modal-card{height:auto;max-height:calc(100dvh - 8px)}
.match-modal.wizard-mode .wizard-body{overflow:auto;overscroll-behavior:contain}
/* An app-update notice is safe to centre: it does not need to leave the
   fixed header visible for context, unlike destructive confirmations. */
#confirm-dialog.viewport-centred-confirm[open]{position:fixed;top:50%;left:50%;margin:0;transform:translate(-50%,-50%)}
/* Player lists grow only as far as their contents require, capped at the
   existing 250px maximum so larger clubs still scroll inside the list. */
.tournament-participants{height:auto;max-height:250px}
.team-match-assignment-list{height:250px;overflow:auto}
.quick-save-panel .button{justify-self:stretch;width:100%}
.quick-save-panel .temporary-account-actions .button{justify-self:auto;width:auto}
.tournament-player-management{display:flex;justify-content:flex-end;margin:14px 0 -10px}
.tournament-player-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.tournament-participants{align-content:start}
.tournament-player-card{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;padding:9px;border:1px solid var(--line);border-radius:9px;background:var(--card)}
.tournament-participants .tournament-player-select{display:flex;align-items:center;gap:9px;margin:0;padding:0;border:0;background:transparent}
.tournament-player-select span{min-width:0}.tournament-player-select b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:.82rem}
.tournament-player-edit,.tournament-player-actions{display:none}
.tournament-participants.editing .tournament-player-select span{display:none}
.tournament-participants.editing .tournament-player-card{grid-template-columns:auto minmax(0,1fr);align-items:center}
.tournament-participants.editing .tournament-player-select{grid-row:1/3}.tournament-participants.editing .tournament-player-edit{display:block;padding:0;border:0;background:transparent;color:var(--yellow);font:800 .84rem inherit;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-participants.editing .tournament-player-edit:hover{text-decoration:underline}
.tournament-participants.editing .tournament-player-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.tournament-player-actions label{display:flex;align-items:center;gap:5px;margin:0;color:var(--muted);font-size:.74rem;font-weight:800}.tournament-player-actions input{width:16px;height:16px;margin:0;accent-color:var(--yellow)}.tournament-player-actions .button{padding:6px 9px;font-size:.7rem}
.roster-participants .roster-player-card{grid-template-columns:minmax(0,1fr) auto;align-items:center}.roster-player-actions{display:flex;align-items:center;gap:8px}.roster-player-actions label{display:flex;align-items:center;gap:5px;margin:0;color:var(--muted);font-size:.74rem;font-weight:800}.roster-player-actions input{width:16px;height:16px;margin:0;accent-color:var(--yellow)}.roster-player-actions .button{padding:6px 9px;font-size:.7rem}.roster-player-card.removed{opacity:.55}.roster-player-card.removed .roster-player-actions{display:none}
@media(max-width:480px){.tournament-participants.editing .tournament-player-card{grid-template-columns:auto minmax(0,1fr)}.tournament-player-management{margin-top:10px}}
.team-match-format-options{display:grid;gap:8px;margin:14px 0}.team-match-decider{display:flex;align-items:flex-start;gap:10px;margin:12px 0;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2);color:var(--text)}.team-match-decider input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--yellow)}.team-match-decider span{display:grid;gap:3px;font-size:.78rem}.team-match-decider small{color:var(--muted);font-weight:500;line-height:1.35}
.team-match-format-options>.field-label{display:block}
.team-match-format-options .segmented{margin:0}
.team-match-format-options .segmented button{display:grid;gap:3px}
.team-match-format-options .segmented button small{font-size:.68rem;font-weight:600;color:var(--muted)}
/* Start scheduling belongs beside the name/type choice. Keep it compact so
   every setup type starts on one phone screen without hiding the Continue
   control below a needless gap. */
.start-time-field{margin-top:10px}.start-time-field .segmented{margin:6px 0 0}.start-time-field .segmented button{padding:8px 10px;font-size:.78rem}.start-time-field label{margin:8px 0 0}.setup-type-options button{padding:8px 6px;font-size:.76rem}.wizard-mode .wizard-chrome{margin-bottom:0}.wizard-step-label{margin-bottom:8px}
#scheduled-start-field{position:relative;margin-top:10px}
#scheduled-start-field #scheduled-start-at{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;color-scheme:dark}
#scheduled-start-field .scheduled-start-picker{margin-top:6px;border-color:var(--line);color-scheme:dark}
.scheduled-calendar-card{background:var(--card);color:var(--text)}
.scheduled-calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 0}
.scheduled-calendar-nav button{width:40px;height:40px;border:1px solid var(--line);border-radius:9px;background:var(--card-2);color:var(--yellow);font-size:1.5rem;cursor:pointer}
.scheduled-calendar-nav strong{color:var(--yellow);text-align:center}
.scheduled-calendar-weekdays,.scheduled-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.scheduled-calendar-days{grid-template-rows:repeat(6,38px)}
.scheduled-calendar-weekdays{color:var(--muted);font-size:.72rem;font-weight:800}
.scheduled-calendar-days button{min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--card-2);color:var(--text);cursor:pointer}
.scheduled-calendar-days button[aria-pressed="true"]{border-color:var(--yellow);background:var(--yellow);color:var(--bg);font-weight:900}
.scheduled-calendar-days button:focus-visible,.scheduled-calendar-nav button:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.scheduled-calendar-time{display:flex;align-items:end;justify-content:center;gap:9px;margin-top:18px;color:var(--muted);font-size:.8rem;font-weight:800}
.scheduled-calendar-time label{display:grid;gap:3px;margin:0}
.scheduled-calendar-time select{width:74px;padding:7px;background:var(--card-2);color:var(--text);color-scheme:dark}
.scheduled-calendar-time>span{align-self:flex-end;display:flex;align-items:center;min-height:38px}
.scheduled-calendar-time label{text-align:center;justify-items:center}
.feedback-status-card{text-align:center;min-height:185px}
.feedback-status-spinner{width:38px;height:38px;margin:16px auto;border:4px solid var(--line);border-top-color:var(--yellow);border-radius:50%;animation:feedback-spin .8s linear infinite}
@keyframes feedback-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.feedback-status-spinner{animation:none;border-color:var(--yellow)}}
.scheduled-match-banner{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:8px 0 12px;padding:10px 12px;border:1px solid var(--yellow);border-radius:10px;background:color-mix(in srgb,var(--yellow) 10%,var(--card));text-align:center}.scheduled-match-banner span{color:var(--yellow);font-size:.68rem;font-weight:900;letter-spacing:.08em}.scheduled-match-banner strong{font-size:.82rem}.scheduled-match-banner small{color:var(--muted);font-size:.75rem}
@media(max-width:480px){.scheduled-match-banner{display:grid;gap:2px}.scheduled-match-banner span,.scheduled-match-banner strong,.scheduled-match-banner small{display:block}.setup-type-options button{font-size:.7rem;padding:7px 3px}}
/* Keep the public match lookup controls stacked, and put the expiry choices on their own row. */
.public-match-dialog #view-match-entry{display:grid;gap:10px}
.public-match-dialog #view-match-entry label{display:grid;gap:7px}
.setup-type-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.timer-setting-block .associated-alerts>span{grid-column:1/-1;margin:0}
.team-match-prize .choice-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--text)}.team-match-prize .choice-row input{width:18px;height:18px;accent-color:var(--yellow)}.team-match-prize .choice-row span{display:grid;gap:2px}.team-match-prize .choice-row small{color:var(--muted)}.team-match-roster{display:grid;gap:8px;margin-top:14px}.team-match-roster>div{display:flex;flex-wrap:wrap;gap:6px}.player-chip{display:inline-block;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:.76rem}
.team-match-round-note{padding:14px;background:var(--card-2);border:1px solid var(--line);border-radius:12px}.team-match-round-note p{margin:8px 0 0;line-height:1.5}
.team-match-teams{margin:14px 0;padding:13px;background:var(--card-2);border:1px solid var(--line);border-radius:10px}.team-match-team-help{margin:7px 0 10px;font-size:.76rem;line-height:1.45}.team-match-assignment-list{display:grid;gap:7px}.team-match-assignment-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:8px 10px;background:var(--card);border:1px solid var(--line);border-radius:8px;font-size:.76rem}.team-match-assignment-row label{display:flex;align-items:center;gap:4px;margin:0;color:var(--muted);font-size:.7rem;font-weight:700}.team-match-assignment-row input{width:16px;height:16px;margin:0;accent-color:var(--yellow)}
.team-match-prize .prize-amount{margin:10px 0 0 28px}
.team-match-name-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.team-match-name-fields label{display:grid;gap:5px;margin:0;color:var(--muted);font-size:.72rem;font-weight:800}.team-match-name-fields input{margin:0;padding:8px 9px}.team-match-assignment-row>div{display:flex;gap:6px}.team-match-assignment-row button{width:104px;padding:6px 4px;border:1px solid var(--line);border-radius:7px;background:var(--card-2);color:var(--muted);font:700 .68rem inherit;cursor:pointer;white-space:nowrap}.team-match-assignment-row button.active{border-color:var(--yellow);color:var(--yellow);background:rgba(245,197,24,.1)}.team-match-round-draw{margin:7px 0 0;width:100%}.team-match-round-grid{display:grid;gap:7px}.team-match-round-grid-head,.team-match-round-grid-row{display:grid;grid-template-columns:58px 1fr 1fr;gap:7px;align-items:center}.team-match-round-grid-head{color:var(--muted);font-size:.7rem}.team-match-round-grid-row>span{color:var(--yellow);font-size:.76rem;font-weight:900}.team-match-round-grid-row select{margin:0;padding:8px;font-size:.76rem}@media(max-width:480px){.team-match-name-fields{grid-template-columns:1fr}.team-match-assignment-row{grid-template-columns:1fr}.team-match-assignment-row button{flex:1;width:auto}.team-match-round-grid-head,.team-match-round-grid-row{grid-template-columns:42px 1fr 1fr}.team-match-round-grid-row select{min-width:0}}
.team-match-player-management{display:none}.team-match-assignment-list.editing .team-match-assignment-row{grid-template-columns:minmax(0,1fr) auto}.team-match-assignment-list.editing .team-match-assignment-row>b{display:none}.team-match-assignment-list.editing .team-match-assignment-row>div:not(.team-match-player-management){grid-column:1/-1}.team-match-assignment-list.editing .team-match-player-management{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;gap:8px}.team-match-assignment-list.editing .team-match-player-management .tournament-player-edit{display:block;flex:1;min-width:0;width:auto;padding:0;border:0;background:transparent;color:var(--yellow);font:800 .84rem inherit;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-match-assignment-list.editing .team-match-player-management .tournament-player-edit:hover{text-decoration:underline}.team-match-assignment-list.editing .team-match-player-management .tournament-player-actions{display:flex;align-items:center;gap:8px}.team-match-assignment-list.editing .tournament-player-actions .button{width:auto;padding:6px 9px;font-size:.7rem}
.winner-stays-order{display:grid;gap:7px;margin-top:14px;padding:12px;background:var(--card-2);border:1px solid var(--line);border-radius:10px}.winner-stays-order>b{color:var(--yellow)}.winner-stays-order>span{color:var(--muted);font-size:.78rem}.winner-stays-order ol{display:grid;gap:6px;margin:0;padding:0;list-style:none;counter-reset:challenger}.winner-stays-order li{display:flex;gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);cursor:grab}.winner-stays-order li::before{counter-increment:challenger;content:counter(challenger);color:var(--yellow);font-weight:900}.winner-stays-order li.dragging{opacity:.45}

/* Keep the short wizard pages genuinely short on a phone. Format uses the
   same compact control geometry as Start time, and the step strip sits closer
   to the setup choices instead of consuming a second row of empty space. */
.wizard-mode .modal-top{margin-bottom:0;padding-right:42px}.wizard-mode .wizard-chrome{margin:12px 0 2px}.wizard-mode .wizard-steps{margin:0 0 5px}.wizard-mode .wizard-step-label{margin-bottom:8px}.wizard-mode .wizard-body>.field-block,.wizard-mode .wizard-body>label{margin-top:10px;margin-bottom:10px}.wizard-mode #start-time-options,.wizard-mode #format-options,.wizard-mode #tournament-format-options,.wizard-mode .doubles-format-options{margin:8px 0}.wizard-mode #start-time-options button,.wizard-mode #format-options button,.wizard-mode #tournament-format-options button,.wizard-mode .doubles-format-options button{min-height:38px;padding:8px 10px;font-size:.82rem}.wizard-mode .ball-set-field{margin:8px 0}.wizard-mode .ball-set-options .choice{min-height:0;padding:8px 5px}.wizard-mode .ball-set-options .choice b{font-size:.72rem}.wizard-mode .ball-icon-pair{gap:4px;margin-bottom:5px}.wizard-mode .ball-icon{width:17px;height:17px}.wizard-mode .wizard-explain{margin:8px 0;padding:10px 11px}.wizard-mode .modal-card{height:auto;position:relative}.wizard-mode #match-close{position:absolute;top:8px;right:8px;z-index:3}.setup-type-options [data-setup-type="winner-stays"]{white-space:nowrap}
.quick-match-mode .wizard-chrome{display:none}.quick-match-mode .setup-type-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:14px}.quick-match-mode .wizard-nav{position:sticky!important;bottom:0;padding-top:12px;background:var(--card);z-index:3}.quick-match-mode #wizard-next{width:100%;margin:0}.quick-match-mode [data-setup-type="team-match"]{display:none!important}.quick-match-mode .modal-card{overflow-y:auto}.quick-match-mode .inline-guest-fields{grid-template-columns:minmax(0,1fr);align-items:stretch}.quick-match-mode .inline-guest-fields>div{display:grid;grid-template-columns:1fr 1fr}.quick-match-mode .inline-guest-fields .button{min-width:0}

/* Team Match gets its own calm, table-first detail view. */
.wizard-dot.skipped{display:grid;place-items:center;border:0;background:var(--red)!important;color:var(--red);font-weight:900;cursor:pointer}
.dashboard-intro{transform:translateY(-10px);margin-bottom:-8px}
/* Keep the wordmark tucked neatly beneath the rack, on both the welcome and
   signed-in home screens. */
.hero-copy h1,.dashboard-intro h1{margin-top:-6px}

/* Account settings are kept visually in step with Kelly Pool. */
#account-name{cursor:pointer}
.account-language-select{width:112px;margin:0;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card-2);color:var(--text);font-size:.9rem}
.account-rename-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,10,5,.8);backdrop-filter:blur(4px)}
.account-rename-sheet{width:min(400px,100%);padding:20px;background:var(--card);border:2px solid var(--yellow);border-radius:16px;box-shadow:var(--shadow)}
.account-rename-sheet h2{margin:0;color:var(--yellow);font-size:1.2rem}.account-rename-sheet>p{margin:6px 0 14px;color:var(--muted);font-size:.85rem;line-height:1.4}.account-rename-sheet label{margin:0}.account-rename-sheet input{margin-top:0;padding:11px 14px;border-width:1px;border-color:var(--line);border-radius:8px}.account-rename-sheet input:focus{border-color:var(--yellow);box-shadow:none}
.account-name-checklist{display:grid;gap:8px;margin-top:10px;margin-bottom:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card-2);color:var(--muted);font-size:.82rem}.account-name-checklist span{display:flex;align-items:center;gap:8px}.account-name-checklist i{display:grid;place-items:center;width:18px;height:18px;border:1px solid var(--line);border-radius:50%;font-style:normal;font-size:.72rem;line-height:1}.account-name-checklist i.good{border:0;background:#5cdb90;color:#092216}.account-name-checklist i.bad{border-color:var(--red);color:#ff7568}.account-name-checklist i.pending{border-color:var(--yellow);color:var(--yellow)}
.account-rename-actions{display:flex;gap:8px;margin-top:6px}.account-rename-actions .button{flex:1;margin:0;padding:11px 14px}.account-rename-actions .ghost{color:var(--muted)}
#confirm-dialog.app-update-confirm .modal-card{max-width:400px;border-radius:16px}#confirm-dialog.app-update-confirm #confirm-kicker,#confirm-dialog.app-update-confirm #confirm-close{display:none}#confirm-dialog.app-update-confirm .modal-top{display:block;text-align:center}#confirm-dialog.app-update-confirm .modal-top>div,#confirm-dialog.app-update-confirm #confirm-title,#confirm-dialog.app-update-confirm #confirm-message{width:100%;text-align:center}#confirm-dialog.app-update-confirm #confirm-message{white-space:pre-line;margin:10px 0 16px;line-height:1.5}#confirm-dialog.app-update-confirm .modal-actions{margin-top:0;padding-top:0;border:0}#confirm-dialog.app-update-confirm #confirm-ok{order:-1;flex:1}#confirm-dialog.app-update-confirm #confirm-cancel{flex:1}
/* Keep the action rail locked in place from the first wizard page onward. */
.wizard-nav #wizard-back.hidden{display:inline-flex!important;visibility:hidden}
.wizard-mode #match-close{top:4px}

/* Keep the home introduction and language picker aligned with Kelly Pool. */
:root{--text-faint:#5a8a6a}
body[data-theme="light"]{--text-faint:#6f8a7a}
body[data-theme="midnight"]{--text-faint:#6b76a0}
.hero-lede,.dashboard-intro p{color:var(--text-faint)}
#dashboard-view .dashboard-intro p{min-height:3.6em;line-height:1.5}
.account-language-select{width:156px;min-height:38px;margin:0;padding:7px 12px;font-size:.78rem;line-height:1.25}

/* Match the compact home-card rhythm used by Kelly Pool. */
#dashboard-visitor-actions.landing-quick-card{padding:18px 20px;border-width:1px}
#dashboard-create-match{min-height:44px;padding:12px;border:0;font-size:1rem;font-weight:700}
.followed-clubs-panel{padding:18px;border-width:1px}
.followed-clubs-panel .clubs-heading h2{font-size:1.05rem;font-weight:700}
.followed-clubs-panel .clubs-view-match{min-height:0;padding:7px 14px;font-size:.82rem;font-weight:700}
#empty-followed-clubs{margin:0;font-size:.82rem;line-height:1.45}
#dashboard-view .guest-extras{gap:12px}
#dashboard-view .guest-extras .extras-card{min-height:0;padding:18px 20px;border-width:1px;background:var(--card)}
#dashboard-view .guest-extras .extras-card b{margin-bottom:4px;font-size:.95rem;font-weight:700}
#dashboard-view .guest-extras .extras-card span{font-size:.82rem;line-height:1.45;font-weight:400}

/* A site admin has a service-wide dashboard, not a player-shaped home page. */
.admin-home-dashboard{padding:24px 22px}
.admin-home-dashboard h2{margin:4px 0;color:var(--yellow);font-size:1.35rem}
.admin-home-dashboard>p.muted{margin:0 0 18px;font-size:.85rem;line-height:1.45}
.admin-home-dashboard .club-stat-grid{margin:0 0 18px}.admin-home-scope-title{margin:18px 0 8px;color:var(--muted);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.admin-home-dashboard .button{margin:0}
.site-admin-dashboard>.dashboard-intro,.site-admin-dashboard>#dashboard-visitor-actions,.site-admin-dashboard>#dashboard-temporary-banner,.site-admin-dashboard>.clubs-panel,.site-admin-dashboard>.live-matches-banner,.site-admin-dashboard>.followed-clubs-panel,.site-admin-dashboard>.guest-extras{display:none}
/* The first wizard page uses one label hierarchy across every match type.
   A 1 vs 1, tournament and start-time choice should never look like they
   came from separate forms. */
#match-name-field .field-heading,#tournament-name-field .field-heading,.match-format-field .field-heading,.doubles-format-field .field-heading,#tournament-format-field .field-heading,.start-time-field>.field-label,#scheduled-start-field>.field-label,#team-match-format-field>.field-label,#team-match-decider-field span>b{color:var(--muted);font-size:12px;font-weight:600}
.match-format-field .tooltip-label,.doubles-format-field .tooltip-label,#tournament-format-field .tooltip-label{color:inherit;font-size:inherit;font-weight:inherit}
.team-match-name-bar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 10px}.team-match-name-bar .team-roster-name{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card-2);color:var(--yellow);font-weight:800;text-align:left;cursor:pointer}
.former-owner-note{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2);color:var(--muted);font-size:.8rem;line-height:1.4}
.collapsible-section-heading{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.collapsible-section-heading>span{color:var(--yellow);font-size:1.1rem;transition:transform .15s}.collapsible-section-heading.expanded>span{transform:rotate(90deg)}

/* Account page: use Kelly Pool's compact type and control geometry exactly. */
.account-profile{grid-template-columns:48px minmax(0,1fr) auto}.account-avatar{width:48px;height:48px}
.account-preferences-grid .setting-options button{font-size:.72rem}
.account-google-actions.two-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:8px;margin-bottom:8px}
.account-google-actions.two-actions #change-password,.account-google-actions.two-actions .google-button{display:flex;align-items:center;justify-content:center;min-height:34px;height:34px;margin:0;padding:7px 14px;border-radius:8px;font-size:.82rem;line-height:1;white-space:nowrap}
.account-google-actions.two-actions #change-password{border:1px solid var(--line-soft);background:var(--card);color:var(--text-label);font-weight:700}
.account-google-actions.two-actions .google-button{gap:10px;border:1px solid #dadce0;background:#fff;color:#1f1f1f;font-weight:600}
.live-match-card{padding:10px 12px;gap:8px}.live-match-card h2{font-size:.94rem}.live-match-card p{font-size:.72rem}.live-match-card>div:last-child{margin-left:auto;align-self:end}.live-tournament-hero{min-height:0;padding:13px 15px;gap:8px}.live-tournament-hero h2{font-size:1.15rem}.live-tournament-hero .live-tournament-copy>span{margin-bottom:3px;font-size:.7rem}.live-tournament-hero .live-tournament-club{margin:3px 0 0}.live-tournament-hero .live-tournament-hero-meta{margin:3px 0 0}.live-tournament-hero .live-tournament-actions{width:auto;justify-content:flex-end;align-items:center}.live-tournament-hero-cta,.live-tournament-actions .button{padding:7px 12px;font-size:.76rem}
.round-best-edit{justify-self:start;border:0;padding:0 3px;background:transparent;color:var(--yellow);font:800 .7rem inherit;cursor:pointer}
.setup-type-options{grid-template-columns:repeat(6,minmax(0,1fr))}.setup-type-options button{grid-column:span 2}.setup-type-options button:nth-child(4){grid-column:2/span 2}.setup-type-options button:nth-child(5){grid-column:4/span 2}
#tournament-doubles-row.team-match-hidden{display:none!important;visibility:hidden}
.quick-history-empty{margin:4px 0 0;font-size:.78rem}.live-tournament-hero{display:block;width:100%;text-align:left;cursor:pointer}.live-tournament-hero:hover{border-color:var(--yellow)}
.tournament-detail-open .club-identity-home-link{cursor:pointer}.tournament-detail-open .club-identity-home-link:hover h1,.tournament-detail-open .club-identity-home-link:hover .club-summary{color:var(--yellow)}.competition-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:8px 0}.competition-title-row h2{margin:0;color:var(--yellow)}.competition-id{flex:0 0 auto;border:0;padding:0;background:transparent;color:var(--yellow);font:900 .72rem inherit;letter-spacing:.08em;cursor:pointer}.competition-id:hover{text-decoration:underline}.competition-match-section{margin:0;padding:14px}.competition-match-section .competition-section-heading{margin-bottom:4px}.competition-match-section .competition-section-heading h3{margin:0}.competition-match-list{display:grid}.competition-match-list .muted{margin:4px 0}.round-robin-match-sections{gap:12px}.competition-end-bottom{margin-top:24px}.competition-end-bottom .tournament-detail-actions{display:block}.competition-end-bottom .button{width:100%}.team-match-roster{grid-template-columns:1fr 1fr;gap:12px}.team-match-roster>section{display:block;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.team-match-roster>section>b{display:block;margin-bottom:7px;color:var(--yellow);font-size:.8rem}.team-match-roster-table{font-size:.76rem}.team-match-roster-table th,.team-match-roster-table td{padding:6px 4px;white-space:normal}.team-match-roster-table th:first-child,.team-match-roster-table td:first-child{color:var(--text);font-weight:700}.team-roster-action{border:0;padding:3px 5px;background:transparent;color:var(--yellow);font:800 .68rem inherit;cursor:pointer}.team-roster-action.remove{color:#ff9a8f}.team-match-rounds{display:grid;grid-template-columns:1fr;grid-auto-flow:row;overflow:visible}.team-match-rounds .tournament-round{min-width:0}.top-five-leaderboards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.top-five-table{padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.top-five-table h3{margin:0 0 8px;color:var(--yellow);font-size:.9rem}.top-five-table table{font-size:.8rem}.top-five-table th,.top-five-table td{padding:7px 4px}.stats-value-link{border:0;padding:0;background:transparent;color:var(--yellow);font:inherit;cursor:pointer}.club-record-row.viewable{cursor:pointer}.club-record-row.viewable:hover{background:var(--card-2)}
.match-meta{display:flex;align-items:center;gap:8px}.match-club-link{margin:0;padding:0;color:var(--yellow);font-size:.9rem;font-weight:900;white-space:nowrap}
@media(max-width:480px){.setup-type-options{grid-template-columns:repeat(6,minmax(0,1fr))}.setup-type-options button{font-size:.68rem}.team-match-roster{grid-template-columns:1fr}.competition-title-row{align-items:flex-start;flex-direction:column;gap:3px}.competition-title-row h2{font-size:1.15rem}.top-five-leaderboards{grid-template-columns:1fr}.match-meta{gap:5px}.match-club-link{font-size:.62rem}}

.temporary-account-button{border-color:var(--yellow);color:var(--yellow)}.temporary-account-button b{color:var(--yellow)}
.temporary-settings-note{display:grid;gap:4px;margin-bottom:12px;padding:12px 14px;border:1px solid var(--yellow);border-radius:10px;background:color-mix(in srgb,var(--yellow) 10%,var(--card));color:var(--muted);font-size:.82rem;line-height:1.45}.temporary-settings-note b{color:var(--yellow)}

/* Kelly Pool's compact card layout: content left, actions centred on the
   right.  Buttons never force the status text into a separate row. */
.live-tournament-hero{display:flex;width:100%;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.live-tournament-copy{min-width:0;text-align:left}.live-tournament-copy>*{text-align:left}.live-tournament-hero .live-tournament-actions{display:flex;width:auto;align-items:center;justify-content:flex-end;gap:7px;flex:0 0 auto;margin-left:12px;align-self:center}.live-tournament-hero .live-tournament-actions .button{width:auto;margin:0;padding:7px 12px;font-size:.76rem}@media(max-width:430px){.live-tournament-hero{align-items:flex-start}.live-tournament-hero .live-tournament-actions{align-self:center;margin-left:8px}.live-tournament-hero .live-tournament-actions .button{padding:7px 10px}}

/* Live cards use Kelly Pool's hierarchy everywhere: a gold club heading,
   white match name, and an actual red End control centred beside the copy. */
.live-competition-card{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;border:2px solid var(--yellow)!important;background:var(--card-2)!important;text-align:left}.live-competition-card .live-tournament-copy{flex:1;min-width:0}.live-competition-card .live-card-club{margin:2px 0 0;color:var(--yellow)!important;font-size:1.05rem;line-height:1.2;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-competition-card .live-card-score-stack{display:grid;gap:1px;margin:3px 0 0;color:var(--text);font-size:.85rem;line-height:1.2;font-weight:800}.live-competition-card .live-card-score-stack span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-competition-card .live-card-score-stack strong{color:var(--yellow);font-size:1.12em}.live-competition-card .live-frame-origin{margin:3px 0 0;color:var(--muted);font-size:.72rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-competition-card .live-card-match-name{margin:2px 0 0;color:var(--text);font-size:.85rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-competition-card .live-tournament-hero-meta{margin:3px 0 0;color:var(--muted);font-size:.72rem}.live-competition-card .live-tournament-actions{display:flex!important;width:auto!important;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;margin-left:14px;align-self:center!important}.live-competition-card .live-tournament-actions .button{width:auto!important;flex:none!important;margin:0;padding:8px 12px;font-size:.82rem}.live-competition-card .button.danger{background:var(--red);border-color:var(--red);color:#fff}@media(max-width:480px){.live-competition-card{gap:8px;padding:12px}.live-competition-card> .live-tournament-actions{width:auto!important}.live-competition-card .live-tournament-actions{margin-left:8px;gap:6px}.live-competition-card .live-tournament-actions .button{padding:7px 10px;font-size:.76rem}.live-competition-card .live-card-club{font-size:.94rem}.live-competition-card .live-card-score-stack{font-size:.78rem}.live-competition-card .live-card-match-name{font-size:.78rem}}
.live-competition-card .live-frame-competition-name{margin:2px 0 0;color:var(--yellow)!important;font-size:1.05rem;line-height:1.2;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-competition-card .live-frame-position{margin:3px 0 0;color:var(--text);font-size:.78rem;font-weight:400}.club-live-card-section{display:grid;gap:8px;min-width:0}.club-live-card-section+.club-live-card-section{margin-top:14px}.club-live-section>.section-title{display:none}.record-score-link{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;text-align:center}.record-score-link small{display:block}.record-score-link:hover,.record-score-link:focus-visible{color:var(--text)}

/* Competition details share the same table-first language. The round list is
   deliberately vertical and collapsible: on a phone or a wide display it is
   easy to scan a whole night without a sideways bracket. */
.competition-prize-banner{display:flex;align-items:baseline;gap:9px;margin:12px 0;padding:10px 12px;border:1px solid var(--yellow);border-radius:10px;background:color-mix(in srgb,var(--yellow) 11%,var(--card));color:var(--text)}.competition-prize-banner b{color:var(--yellow);font-size:.72rem;letter-spacing:.08em}.competition-prize-banner span{font-size:.85rem;font-weight:800}.team-match-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.team-match-summary>div{display:grid;gap:4px;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:var(--card-2)}.team-match-summary span{color:var(--muted);font-size:.64rem;font-weight:900;letter-spacing:.07em}.team-match-summary b{color:var(--text);font-size:.78rem;line-height:1.35}.team-match-summary>div:nth-child(2) b{color:var(--yellow)}.paid-toggle.paid,.table-action.paid{border-color:var(--yellow);color:var(--yellow)}.tournament-rounds{display:grid;grid-template-columns:1fr;grid-auto-flow:row;gap:10px;overflow:visible;padding:3px 0 14px}.tournament-round{min-width:0;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--card-2)}.round-heading{padding:2px 3px}.round-heading::after{content:'▸';margin-left:9px;color:var(--yellow);font-size:1rem;transition:transform .15s}.tournament-round.expanded .round-heading::after{transform:rotate(90deg)}.round-matches{display:none}.tournament-round.expanded .round-matches{display:grid}.team-match-rounds .tournament-round{min-width:0}.competition-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}.competition-section-heading h3{margin:4px 0 0;color:var(--yellow);font-size:1rem}.competition-section-heading p{max-width:310px;margin:0;color:var(--muted);font-size:.75rem;text-align:right;line-height:1.4}.competition-roster,.competition-results,.competition-live-game{margin-top:14px}.competition-roster{padding:14px}.competition-player-link{border:0;padding:0;background:transparent;color:var(--text);font:800 .8rem inherit;text-align:left;cursor:pointer}.competition-player-link:hover{color:var(--yellow);text-decoration:underline}.competition-player-row.removed{opacity:.58}.competition-player-row small{display:block;margin-top:2px;color:var(--muted);font-size:.64rem}.danger-action{color:#ff9a8f}.competition-live-game{display:grid;gap:5px;border-color:var(--yellow);background:color-mix(in srgb,var(--yellow) 8%,var(--card))}.competition-live-game span{color:var(--yellow);font-size:.7rem;font-weight:900;letter-spacing:.08em}.competition-live-game strong{font-size:1rem}.competition-live-game strong b{margin:0 7px;color:var(--yellow)}
.team-match-summary>div{justify-items:center;text-align:center}.team-match-summary span,.team-match-summary b{width:100%;text-align:center}.team-match-roster-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.team-roster-name{padding:0;border:0;background:transparent;color:var(--yellow);font:800 .8rem inherit;text-align:left;cursor:pointer}.team-roster-name:hover{text-decoration:underline}.team-match-paid-cell,.team-match-paid-header{text-align:center}.team-match-paid-cell .team-roster-action{margin-inline:auto}.team-match-round-lock{margin:8px 0 0;padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:.74rem;text-align:center}.team-match-statistics{margin-top:14px}.team-match-stats-table th:nth-child(n+3),.team-match-stats-table td:nth-child(n+3){text-align:center}
.competition-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.competition-summary>div{display:grid;gap:4px;justify-items:center;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:var(--card-2);text-align:center}.competition-summary span{width:100%;color:var(--muted);font-size:.64rem;font-weight:900;letter-spacing:.07em;text-align:center}.competition-summary b{width:100%;color:var(--text);font-size:.78rem;line-height:1.35;text-align:center}.competition-summary>div:nth-child(2) b{color:var(--yellow)}.round-robin-draw-round{display:grid;gap:7px;padding:10px 0}.round-robin-draw-round+.round-robin-draw-round{border-top:1px solid var(--line)}.round-robin-draw-round>b{color:var(--yellow);font-size:.77rem}
.winner-stays-length{display:flex;align-items:center;gap:8px;margin:10px 0;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--card-2)}.winner-stays-length span{color:var(--muted);font-size:.64rem;font-weight:900;letter-spacing:.07em}.winner-stays-length b{color:var(--yellow);font-size:.82rem}.winner-stays-length .button{margin-left:auto}
@media(max-width:480px){.competition-summary,.team-match-summary{gap:5px}.competition-summary>div,.team-match-summary>div{padding:7px 4px}.competition-summary span,.team-match-summary span{font-size:.52rem;letter-spacing:.04em}.competition-summary b,.team-match-summary b{font-size:.68rem}.competition-section-heading{align-items:start;flex-direction:column}.competition-section-heading p{text-align:left}.competition-roster{padding:11px}.club-record-table.competition-roster-table{font-size:.72rem}.competition-roster-table th,.competition-roster-table td{padding:7px 5px}}

.round-robin-detail-head{padding-bottom:6px}.competition-club-link{border:0;padding:0;background:transparent;color:var(--yellow);font:800 .84rem inherit;cursor:pointer}.competition-club-link:hover{text-decoration:underline}.round-robin-detail-head h1{margin:8px 0 4px;color:var(--yellow);font-size:1.65rem;letter-spacing:.03em}.round-robin-detail-head p{margin:0;color:var(--muted);font-size:.82rem}

/* Competition history and Team Match setup refinements. */
body.round-robin-detail-open #club-view>.club-hero{display:none!important}
.round-robin-detail-head{text-align:center}
.round-robin-detail-head .competition-club-link{font-size:1.2rem;line-height:1.3}
.round-robin-detail-head>.eyebrow{margin-top:9px!important;text-align:center}
.round-robin-detail-head h1{margin:4px auto 2px;font-size:1.75rem;text-align:center}
.round-robin-dates{margin:5px 0 14px!important;color:var(--muted)!important;font-size:.84rem!important;text-align:center}
.round-robin-leaderboard,.round-robin-playoffs{text-align:left}
.round-robin-position{color:var(--yellow)!important;font-weight:900}
.round-robin-qualified{display:block;margin-top:3px;color:#4ade80;font-size:.62rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.bracket-match.viewable{cursor:pointer}
.bracket-match.viewable:hover,.bracket-match.viewable:focus{border-color:var(--yellow);outline:none}

.match-record-table{min-width:650px}
.match-record-table th:nth-child(1){width:14%}
.match-record-table th:nth-child(2){width:30%}
.match-record-table th:nth-child(3),.match-record-table th:nth-child(4){width:21%}
.match-record-table th:nth-child(5){width:14%}
.match-record-table th:nth-child(4),.match-record-table td:nth-child(4){display:table-cell}
.match-record-table th:nth-child(2),.match-record-table td:nth-child(2){text-align:center}
.tournament-record-table{min-width:720px}.tournament-record-table th:nth-child(1){width:15%}.tournament-record-table th:nth-child(2){width:36%}.tournament-record-table th:nth-child(3){width:12%}.tournament-record-table th:nth-child(4),.tournament-record-table th:nth-child(5){width:12%;text-align:center}.tournament-record-table td:nth-child(4),.tournament-record-table td:nth-child(5){text-align:center}.tournament-record-table th:nth-child(5),.tournament-record-table td:nth-child(5){display:table-cell}.tournament-record-table .record-date small{display:block;margin-top:3px}.tournament-record-table .record-tournament{text-align:center}

.team-position-grids{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.team-position-card{min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}
.team-position-card .team-match-roster-heading{justify-content:center}
.team-position-card .team-roster-name,.team-position-card .team-match-roster-heading>b{color:var(--yellow);font-size:1rem;text-align:center}
.team-position-table{width:100%;border-collapse:collapse;table-layout:fixed}
.team-position-table th,.team-position-table td{padding:8px 5px;border-bottom:1px solid var(--line);text-align:center}
.team-position-table tr:last-child td{border-bottom:0}
.team-position-table th:first-child{width:24%}.team-position-table th:last-child{width:27%}
.team-position-label{color:var(--yellow);font-weight:900}
.team-club-player-heading{margin-top:18px}
.team-new-club-player{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}
.team-new-club-player .competition-inline-player{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:10px}
.team-new-club-player input{margin:0}
.team-match-start-panel{display:grid;gap:10px;margin-top:14px;padding:14px;border:1px solid var(--yellow);border-radius:10px;background:color-mix(in srgb,var(--yellow) 9%,var(--card));text-align:center}
.team-match-start-panel p{margin:0;color:var(--text);font-size:.82rem;line-height:1.45}
.team-match-start-panel .button{margin:0}
.team-match-stats-table th,.team-match-stats-table td{text-align:center}

@media(max-width:480px){
  .team-position-grids{grid-template-columns:1fr}
  .team-new-club-player .competition-inline-player{grid-template-columns:1fr}
  .match-record-table{min-width:620px}
  .match-record-table th:nth-child(5),.match-record-table td:nth-child(5){display:table-cell;position:sticky;right:0;background:var(--card);z-index:1}
  .match-record-table th:nth-child(5){background:var(--card-2);z-index:2}
  .fixtures-subtabs{flex-wrap:nowrap;gap:2px;justify-content:center}
  .fixtures-subtabs button{padding:5px 3px;font-size:.56rem;letter-spacing:-.04em}
}

/* Shared CueTracker responsive foundation: phone, tablet, desktop. */
:root{--responsive-page-gutter:12px;--responsive-content-max:600px;--responsive-control-height:44px;--responsive-control-gap:8px;--responsive-panel-space:16px}
html{-webkit-text-size-adjust:100%}body{overflow-x:hidden}.button:not(.small),.google-button,input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:var(--responsive-control-height)}.page,.auth-layout{width:min(var(--responsive-content-max),calc(100% - (var(--responsive-page-gutter) * 2)));padding-inline:0}
@media (min-width:600px) and (max-width:1199px){:root{--responsive-page-gutter:12px;--responsive-content-max:960px;--responsive-control-height:46px;--responsive-control-gap:12px;--responsive-panel-space:22px}.button:not(.small){padding-inline:20px}.panel,.club-card,.club-hero,.stat-card,.two-column>.panel,.table-panel{padding:var(--responsive-panel-space)}}
@media (min-width:600px) and (max-width:1199px) and (orientation:portrait){.auth-layout,.two-column{grid-template-columns:1fr}.match-list{grid-template-columns:1fr}}
@media (min-width:600px) and (max-width:1199px) and (orientation:landscape){.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.match-list{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}}
@media (min-width:1200px){:root{--responsive-page-gutter:12px;--responsive-content-max:1200px;--responsive-control-height:48px;--responsive-control-gap:14px;--responsive-panel-space:28px}.button:not(.small){padding-inline:22px}.panel,.club-card,.club-hero,.stat-card,.two-column>.panel,.table-panel{padding:var(--responsive-panel-space)}.match-modal{width:min(1080px,calc(100% - 24px))}}

/* Home actions keep the same clear, rectangular proportions at every width. */
.clubs-heading-actions{margin-left:auto}
.live-tournament-hero-cta{width:auto;min-width:72px}

/* Keep the home-card actions deliberately compact and identical: View, Join
   and End should read as one control family rather than one oversized CTA. */
.live-tournament-actions .button{display:inline-flex;align-items:center;justify-content:center;width:64px;min-width:64px;min-height:34px;margin:0;padding:7px 0;font-size:.76rem}
.live-tournament-hero-cta{min-width:64px}
.live-match-card>div.live-tournament-actions:last-child{justify-content:flex-end}.live-match-card>div.live-tournament-actions:last-child .button{flex:0 0 64px}

/* Followed Clubs is a persistent home section, with the same cards as live play. */
.followed-club{min-width:0}.followed-club .club-card-main,.follower-request-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.followed-club .club-card-copy{flex:1 1 180px;min-width:0}.followed-club-actions{flex-wrap:wrap;max-width:100%}.follower-request-row{padding:12px 0;border-bottom:1px solid var(--line)}.follower-request-row p{margin:4px 0 0}.follower-request-notice{color:var(--yellow)!important}#follower-name-field .small{font-weight:400;line-height:1.4}#follower-settings-panel .setting-row{flex-wrap:wrap;gap:12px}#follower-settings-panel .setting-row-yn{flex-shrink:0}

/* Club follow sharing uses the same two-column code/QR layout as Kelly Pool:
   controls on the left, club ID above a prominent scannable QR on the right. */
.club-hero{grid-template-columns:minmax(0,1fr) 124px;gap:10px 14px}
.club-hero-copy{display:grid;gap:8px;min-width:0}.club-share-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}.club-share-actions .button{width:100%;margin:0;padding:8px 4px;font-size:.78rem}.club-share-actions #venue-display-action,.club-share-actions .club-venue-display,.club-share-actions #copy-note{grid-column:1/-1}.club-share-actions .club-venue-display{width:100%}.club-share-actions #copy-note{min-height:0;color:var(--muted);font-size:.7rem;text-align:center}
.club-hero .hero-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr;gap:8px;width:100%}.club-hero #new-match{width:100%}.club-name-row h1,#account-name{cursor:pointer}.fixtures-subtabs button{padding:8px 10px;font-size:.75rem}
.club-follow-qr{display:grid;grid-column:2;grid-row:1;gap:4px;justify-self:end;align-self:start;text-align:center}.club-follow-qr #club-code{display:block;min-width:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--yellow);font-weight:900;font-size:1.12rem;letter-spacing:.16em;line-height:1.15}.club-follow-qr img{width:116px;height:116px;padding:4px;border-radius:8px;background:#fff}

.club-access-request-card{margin:14px 0}.club-access-request-card .section-title{margin-bottom:8px}

/* Release set 1: shared club-shell hierarchy.  Kelly Pool already uses these
   visual landmarks; 8 Ball uses the same cues while keeping its pool-specific
   play and controller screens intact. */
.header-access-pill{display:inline-flex;align-items:center;gap:7px}.header-access-pill .header-notification-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.17);font-size:.9rem}.header-access-pill #header-access-count{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:4px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:.72rem;font-variant-numeric:tabular-nums}.club-access-request-card{padding:18px;border-color:var(--yellow);box-shadow:0 10px 28px rgba(0,0,0,.2)}.club-access-request-card h2{display:flex;align-items:center;gap:8px}.request-count-badge{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:var(--yellow);color:#102116;font-size:.75rem;font-variant-numeric:tabular-nums}.club-access-request-card .follower-request-row:last-child{border-bottom:0}#tab-settings{display:flex;flex-direction:column;gap:12px}#temporary-settings-note{order:0}#live-stream-settings-panel{order:1}#follower-settings-panel{order:2}#staff-permissions-panel{order:3}#club-exports-panel{order:4}#delete-club-panel{order:5}.club-settings-panel+.club-settings-panel{margin-top:0}.settings-eyebrow{margin:0 0 5px;color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.settings-eyebrow.danger{color:#ff8e84}.club-settings-panel h2{letter-spacing:-.01em}.club-exports-panel,.club-settings-panel{box-shadow:0 8px 20px rgba(0,0,0,.16)}.install-banner{border-radius:12px}.empty-state.compact{background:var(--card-2)}.fixture-empty-state{padding:22px 8px}.fixture-empty-state h2{font-size:clamp(.68rem,3.2vw,.82rem);letter-spacing:0;white-space:nowrap}
@media(max-width:480px){.header-access-pill{padding-right:5px}.header-access-pill b{display:none}.header-access-pill #header-access-count{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;margin:0;padding:0 3px;font-size:.62rem}.header-access-pill{position:relative}.club-access-request-card{padding:14px}.request-count-badge{min-width:22px;height:22px}.settings-eyebrow{font-size:.64rem}}

/* Resolve environment and route state before exposing the application shell.
   This prevents a stale/default page or production-green header being painted
   while a saved session or deep link is still being restored. */
/* Staging and all page themes use the production brand palette. */
body :is(.topbar,.match-topbar){background:#1a6b3c!important;color:#f0f0f0}
body[data-theme="midnight"] :is(.topbar,.match-topbar){background:#284675!important}
body[data-theme="light"] :is(.topbar,.match-topbar){background:#46534c!important}
body :is(.topbar,.match-topbar) :is(.brand-name,.brand-text),body :is(.topbar,.match-topbar) .brand b{color:#f5c518}
body :is(.topbar,.match-topbar) .brand small{color:#071d10}
body[data-theme="midnight"] :is(.topbar,.match-topbar) .brand small{color:#e4ecff}
body :is(.topbar,.match-topbar) .profile-pill,body :is(.topbar,.match-topbar) .profile-pill b{color:#fff}

.live-stream-local-only{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;margin-top:2px;padding:12px 14px;background:rgba(245,197,24,.055);border:1px solid var(--line);border-radius:12px}
.live-stream-local-only>.setting-label-help{color:var(--text);font-size:.82rem;font-weight:850}.settings-switch{position:relative!important;display:block!important;width:48px;height:27px;flex:0 0 48px;cursor:pointer}.settings-switch input{position:absolute;width:1px!important;height:1px!important;margin:0!important;opacity:0}.settings-switch span{display:block;width:48px;height:27px;border:1px solid var(--line);border-radius:999px;background:var(--bg);transition:.18s ease}.settings-switch span::after{content:'';display:block;width:21px;height:21px;margin:2px;border-radius:50%;background:var(--muted);transition:.18s ease}.settings-switch input:checked+span{border-color:var(--yellow);background:rgba(245,197,24,.22)}.settings-switch input:checked+span::after{transform:translateX(21px);background:var(--yellow)}.settings-switch input:focus-visible+span{outline:2px solid var(--yellow);outline-offset:2px}
.api-key-list{display:grid;gap:8px;margin:14px 0}.api-key-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.api-key-row span{display:grid;gap:3px;min-width:0}.api-key-row b,.api-key-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.api-key-row small{color:var(--muted);font-size:.7rem}
.advanced-stats-shell{display:grid;gap:16px;max-width:1220px;margin:0 auto;container-type:inline-size}.advanced-stats-heading{margin-bottom:0}.advanced-stats-filter-panel{display:flex;align-items:center;justify-content:space-between;gap:20px}.advanced-stats-filter-panel>div:first-child{min-width:0;flex:1 1 350px}.advanced-stats-filter-panel h2,.advanced-stats-section h2{margin:0;color:var(--yellow)}.advanced-stats-filter-panel p,.advanced-stats-section-heading p{margin:5px 0 0}.advanced-stats-ranges{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;min-width:0;flex:0 1 510px;width:100%}.advanced-stats-ranges button{min-width:0;padding:9px 8px;border:1px solid var(--line);border-radius:9px;background:var(--card-2);color:var(--text);font:inherit;font-size:.76rem;font-weight:850;cursor:pointer}.advanced-stats-ranges button:hover,.advanced-stats-ranges button:focus-visible,.advanced-stats-ranges button.active{border-color:var(--yellow);background:var(--yellow);color:#17251a}.advanced-stats-section{min-width:0;margin:0;overflow:hidden}.advanced-stats-section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,510px);align-items:center;gap:12px;margin-bottom:12px}.advanced-stats-section-heading>div:first-child{min-width:0}.advanced-stats-title-row{display:flex;align-items:center;gap:8px;min-width:0}.advanced-stats-title-row h2{line-height:1.2;white-space:nowrap;overflow-wrap:normal;word-break:keep-all}.advanced-chart-help{display:grid;place-items:center;width:22px;height:22px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--card-2);color:var(--yellow);font:900 .72rem/1 inherit;cursor:pointer}.advanced-chart-help:hover,.advanced-chart-help:focus-visible{border-color:var(--yellow)}.advanced-form-table{width:100%;min-width:0;table-layout:fixed}.advanced-form-table th:first-child,.advanced-form-table td:first-child{width:42%;text-align:left}.advanced-form-table th:nth-child(2),.advanced-form-table td:nth-child(2),.advanced-form-table th:nth-child(3),.advanced-form-table td:nth-child(3){width:29%;text-align:center}.advanced-form-table td{vertical-align:middle}.advanced-form-table td:first-child{font-weight:850;overflow-wrap:anywhere}.form-result-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,20px);justify-items:center;align-items:center;gap:3px;width:100%}.form-result{display:grid;place-items:center;width:18px;height:18px;margin:0;padding:0;border:0;border-radius:50%;box-shadow:none;background:#6b7f72;color:#fff;font:900 .6rem/1 inherit;font-style:normal;cursor:pointer}.form-result.w{background:#16803d}.form-result.l{background:#c32e2e}.form-result.d{background:#756525}.advanced-chart-controls{display:flex;justify-content:flex-end}.advanced-chart-controls label{display:grid;gap:4px;width:min(100%,260px);color:var(--muted);font-size:.7rem;font-weight:800}.advanced-chart-controls select{width:100%;min-height:38px}.advanced-chart-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 8px}.advanced-chart-summary span{display:grid;gap:3px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--card-2);text-align:center}.advanced-chart-summary small{color:var(--muted);font-size:.62rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.advanced-chart-summary b{color:var(--text);font-size:.95rem}.advanced-chart-legend{display:flex;gap:16px;margin:12px 0 6px;color:var(--muted);font-size:.7rem;font-weight:800}.advanced-chart-legend span{display:inline-flex;align-items:center;gap:6px}.advanced-chart-legend i{display:block;width:22px;height:3px;border-radius:4px}.advanced-chart-legend i.wins{background:#16803d}.advanced-chart-legend i.losses{height:0;border-top:3px dashed #c32e2e}.advanced-player-chart{width:100%;max-width:100%;min-height:260px;padding:8px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--card-2)}.advanced-player-chart svg{display:block;width:100%;max-width:100%;height:auto;min-width:0;min-height:240px;overflow:visible}.advanced-chart-grid line{stroke:var(--line);stroke-width:1}.advanced-chart-grid line.vertical{stroke-dasharray:2 5;opacity:.55}.advanced-chart-grid text,.advanced-chart-labels text{fill:var(--muted);font-size:12px}.advanced-chart-grid .axis-title{font-size:11px;font-weight:800;text-transform:uppercase}.advanced-chart-chart-labels text{fill:var(--muted);font-size:12px}.advanced-chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.advanced-chart-line.losses{stroke-dasharray:7 6}.advanced-chart-line.wins,.advanced-chart-dot.wins{stroke:#16803d;fill:#16803d}.advanced-chart-line.losses,.advanced-chart-dot.losses{stroke:#c32e2e;fill:#c32e2e}.advanced-chart-dot{stroke-width:2}.advanced-chart-hit{fill:transparent;cursor:pointer;pointer-events:all}.plan-card-subframe{display:grid;gap:3px;margin-top:auto;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card-2);font-size:.72rem}.plan-card-subframe b{color:var(--yellow)}.plan-card-subframe span{color:var(--muted)}.subscription-expiry-test{grid-template-columns:minmax(0,1fr) minmax(230px,310px);align-items:center;gap:18px;margin:0}.subscription-expiry-test h2{margin:0;color:var(--yellow);font-size:1rem}.subscription-expiry-test small{display:block;margin-top:5px;color:var(--muted);line-height:1.4}.subscription-expiry-test label{display:grid;gap:6px;margin:0;color:var(--text-label);font-size:.76rem;font-weight:800}.subscription-expiry-test input{width:100%;min-height:56px;padding:12px 14px;border:2px solid rgba(245,197,66,.45);border-radius:12px;background:var(--card-2);color:var(--text);font:800 1rem inherit;color-scheme:dark}
@container (max-width:1000px){.advanced-stats-filter-panel{align-items:stretch;flex-direction:column}.advanced-stats-section-heading{grid-template-columns:minmax(0,1fr);align-items:stretch}.advanced-stats-ranges{flex-basis:auto;max-width:510px}}
@media(max-width:760px){.advanced-stats-filter-panel{align-items:stretch;flex-direction:column}.advanced-stats-section-heading{grid-template-columns:1fr}.advanced-stats-ranges{min-width:0}.advanced-form-table{min-width:0}.advanced-form-table th:first-child,.advanced-form-table td:first-child{width:40%}.advanced-form-table th:nth-child(2),.advanced-form-table td:nth-child(2),.advanced-form-table th:nth-child(3),.advanced-form-table td:nth-child(3){width:30%}.form-result-grid{grid-template-rows:repeat(2,18px);gap:2px}.form-result{width:16px;height:16px;font-size:.54rem}.advanced-chart-controls{justify-content:stretch}.advanced-chart-controls label{width:100%;min-width:0}.subscription-expiry-test{grid-template-columns:1fr}.advanced-player-chart{padding:4px}.advanced-player-chart svg{min-width:0}.advanced-player-chart{overflow:hidden}}
body.app-booting{cursor:wait}
body.app-booting>*{visibility:hidden!important}
body.app-booting>.topbar{visibility:visible!important;pointer-events:none}
body.app-booting>.topbar .top-actions{visibility:hidden!important}
.live-page-empty{padding:30px;text-align:center}

/* Adding a player is one consistent, centred card in a completed match and in
   every Step-by-Step Players screen. */
.club-player-add-card{display:grid;gap:11px;text-align:center}.club-player-add-card .competition-section-heading{justify-content:center;margin-bottom:0}.club-player-add-card .competition-section-heading>div{width:100%}.club-player-add-card h3,.club-player-add-copy h3{margin:0;color:var(--yellow);font-size:1rem}.club-player-add-card p,.club-player-add-copy p{margin:4px auto 0;max-width:420px;color:var(--muted);font-size:.78rem;line-height:1.45}.inline-guest.club-player-add-card{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.inline-guest.club-player-add-card>.button{border-style:solid}.competition-new-club-player .competition-inline-player{justify-content:center}.competition-new-club-player .button.primary{min-width:152px}

/* Dialogs retain the existing solid card and blurred backdrop, but now use the
   centre of the viewport instead of collecting below the fixed app header. */
.modal[open],.match-modal[open]{position:fixed;inset:0;margin:auto}

/* Final responsive fixture rules live after the shared foundation so a later
   desktop declaration cannot silently undo the phone layout. */
.tabs.club-tabs button[data-tab="unfollow"]{background:var(--yellow);color:#102116}
.tabs.club-tabs button[data-tab="unfollow"].active{background:var(--yellow);color:#102116;box-shadow:inset 0 0 0 1px #102116}

/* Player profiles reuse the Club frame itself, including its controls and QR
   proportions, rather than a simplified look-alike header. */
.profile-club-hero{grid-template-columns:minmax(0,1fr) clamp(104px,30%,144px);gap:10px;margin-bottom:18px}
.profile-club-hero .club-hero-copy{display:contents}
.profile-club-hero .club-identity{grid-column:1;grid-row:1;align-self:start}
.profile-club-hero .club-share-actions{grid-column:1;grid-row:2;align-self:end;position:relative}
.profile-club-hero .club-follow-qr{grid-column:2;grid-row:1/3;align-self:end;width:100%}
.profile-club-hero .club-follow-qr img{width:100%;height:auto;aspect-ratio:1}
.profile-club-hero .hero-actions{grid-row:3;grid-column:1/-1;grid-template-columns:minmax(0,1fr)}
.profile-club-hero .hero-actions>.club-venue-display,.profile-club-hero .hero-actions>.button.primary{grid-column:1/-1;width:100%}
.profile-club-hero .code-chip{display:block;width:100%;min-width:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--yellow);font-weight:900;font-size:1.12rem;letter-spacing:.16em;line-height:1.15}
@media(max-width:760px){
  .profile-club-hero{grid-template-columns:minmax(0,1fr) clamp(104px,24vw,132px);gap:10px}
  .profile-club-hero .club-identity{grid-column:1;grid-row:1;align-self:start}
  .profile-club-hero .club-share-actions{grid-column:1;grid-row:2;align-self:start}
  .profile-club-hero .club-follow-qr{grid-column:2;grid-row:1/3;justify-self:end;align-self:start;width:100%;max-width:132px}
  .profile-club-hero .club-follow-qr img{width:100%;height:auto;aspect-ratio:1}
  .profile-club-hero .hero-actions{grid-column:1/-1;grid-row:3}
}
@media(max-width:430px){.profile-club-hero .club-follow-qr{width:104px;max-width:104px}.profile-club-hero .club-follow-qr img{width:104px;height:104px}}

/* Subscription, club settings and match-screen alignment follow-ups. */
.subscription-billing-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.subscription-billing-actions .button{width:100%;min-width:0;min-height:42px;margin:0;white-space:normal}
.team-match-next-round-action.viewer{grid-template-columns:minmax(0,1fr)}
.match-screen-metrics>div:not(.match-score-metric){align-content:center}
.tabs.club-tabs>button{min-height:34px;padding-block:6px}
.club-settings-toggle{display:grid;gap:9px}.club-settings-toggle .setting-row-text{padding:0;background:transparent;border:0;color:var(--text-label);text-align:left}.club-settings-segmented{margin:0}
.branding-logo-field .club-branding-control{align-items:stretch}.branding-logo-picker,#club-branding-remove-logo,#club-branding-remove-advertisement{min-height:48px;margin:0;align-self:stretch}.branding-logo-picker{justify-content:center}
.profile-club-name-link{max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:left;cursor:pointer}.profile-club-name-link:hover,.profile-club-name-link:focus-visible{text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}
/* Recent matches and recent frames share one responsive Recent Form panel,
   and therefore use one shared time range. */
.advanced-recent-form{overflow:hidden}.advanced-stats-section>.club-record-table-wrap{width:100%;max-width:100%;overflow:hidden}.advanced-form-table,.advanced-head-table{width:100%;min-width:0!important;table-layout:fixed!important}.advanced-form-table th:first-child,.advanced-form-table td:first-child{width:30%;text-align:left}.advanced-form-table th:nth-child(2),.advanced-form-table td:nth-child(2),.advanced-form-table th:nth-child(3),.advanced-form-table td:nth-child(3){display:table-cell!important;width:35%;text-align:center}.advanced-form-table :is(th,td):nth-child(3){border-left:3px solid var(--yellow)}.advanced-head-table :is(th,td):is(:nth-child(1),:nth-child(3)){width:34%}.advanced-head-table :is(th,td):is(:nth-child(2),:nth-child(4)){width:16%;text-align:center}.advanced-head-table th{font-size:.62rem}.advanced-head-table td,.advanced-head-table .match-stat-link{font-size:.72rem}.advanced-stats-ranges.compact{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;width:100%;max-width:none}.advanced-stats-ranges.compact button{padding:6px 2px;font-size:.58rem;line-height:1}.advanced-form-table td:first-child{font-size:.72rem}.form-result-grid{min-width:0}
@media(max-width:760px){.advanced-stats-shell{gap:10px}.advanced-stats-section{padding:12px}.advanced-stats-section-heading{gap:8px;margin-bottom:9px}.advanced-form-table,.advanced-head-table{min-width:0;font-size:.62rem}.advanced-form-table th,.advanced-form-table td,.advanced-head-table th,.advanced-head-table td{padding:6px 3px;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important;word-break:normal!important}.advanced-head-table td,.advanced-head-table .match-stat-link{font-size:.68rem}.advanced-form-table th:first-child,.advanced-form-table td:first-child{width:26%}.advanced-form-table th:nth-child(2),.advanced-form-table td:nth-child(2),.advanced-form-table th:nth-child(3),.advanced-form-table td:nth-child(3){width:37%}.advanced-stats-ranges.compact{gap:2px}.advanced-stats-ranges.compact button{min-height:28px;padding:4px 1px;font-size:.49rem;letter-spacing:-.03em}.form-result-grid{grid-template-rows:repeat(2,16px);gap:1px}.form-result{width:15px;height:15px;font-size:.5rem}}
@media(max-width:480px){.subscription-billing-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.tabs.club-tabs>button{min-height:32px;padding-block:5px}.branding-logo-field .club-branding-control{grid-template-columns:repeat(2,minmax(0,1fr))}.branding-logo-field .button{width:100%;justify-self:stretch}.advanced-stats-section{padding:9px}.advanced-form-table th,.advanced-form-table td{padding:5px 2px}.advanced-form-table th:first-child,.advanced-form-table td:first-child{width:24%}.advanced-form-table th:nth-child(2),.advanced-form-table td:nth-child(2),.advanced-form-table th:nth-child(3),.advanced-form-table td:nth-child(3){width:38%}.advanced-stats-ranges.compact button{font-size:.45rem}}
.winner-stays-retire-action{width:100%;margin:10px 0}.winner-stays-retire-action .button{width:100%;min-height:0;margin:0;padding:6px 10px;background:var(--yellow);border-color:var(--yellow);color:#102116;font-size:.68rem;line-height:1.05}
.live-card-link{cursor:pointer}.live-card-link:focus-visible,.team-match-stats-table tr.viewable:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.clubs-options-toggle{display:grid!important;place-items:center;padding:0!important;line-height:1!important}.match-settings-actions{position:sticky;bottom:-22px;z-index:2;background:var(--card);padding-bottom:max(18px,env(safe-area-inset-bottom))}
.competition-table-defaults{display:grid;gap:12px;margin-top:14px}.competition-table-default{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card-2)}.competition-table-default>h3{margin:0;color:var(--text);font-size:.88rem}.competition-table-setting{display:grid;gap:7px}.competition-table-setting>span{color:var(--muted);font-size:.72rem;font-weight:700}.competition-table-default .ball-set-options{margin:0}.competition-table-default .ball-set-options .choice{min-height:0;padding:8px 5px}.competition-table-default .ball-icon-pair{margin-bottom:5px}.competition-table-default .ball-icon{width:17px;height:17px}.competition-table-default .ball-set-options .choice>span:last-child{font-size:.7rem}.competition-table-default .segmented{margin:0}.competition-table-default .segmented button{min-height:38px;padding:8px}
.match-modal #tournament-name-field .field-heading>span:first-child,.match-modal .prize-settings .field-heading>span:first-child{color:var(--muted);font-size:12px;font-weight:600}
.team-match-next-round-action{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,240px);align-items:center;gap:14px;margin:0 0 12px;padding:14px;border:1px solid var(--yellow);border-radius:12px;background:color-mix(in srgb,var(--yellow) 9%,var(--card))}.team-match-next-round-action b{color:var(--yellow)}.team-match-next-round-action p{margin:4px 0 0;color:var(--muted);font-size:.76rem;line-height:1.4}.team-match-next-round-action .button{margin:0;background:var(--yellow);border-color:var(--yellow);color:#102116}@media(max-width:480px){.team-match-next-round-action{grid-template-columns:1fr}}
.team-match-stats-table tr.viewable{cursor:pointer}.team-match-stats-table tr.viewable:hover{background:var(--card-2)}.team-match-stats-table tr.pending td{color:var(--yellow)}
.team-position-table tr[draggable="true"]{cursor:grab}.team-position-table tr[draggable="true"]:active{cursor:grabbing}.team-position-table tr.dragging{opacity:.42}.team-position-drag-handle{display:inline-flex;align-items:center;gap:4px;touch-action:none;user-select:none}
.fixtures-subtabs{display:flex;flex-wrap:nowrap;justify-content:center;gap:3px;width:100%;overflow-x:auto;scrollbar-width:none}
.fixtures-subtabs::-webkit-scrollbar{display:none}
.fixtures-subtabs button{flex:0 0 auto;min-width:0;padding:7px clamp(3px,.75vw,8px);font-size:clamp(.64rem,1.9vw,.74rem);line-height:1.05;letter-spacing:-.04em;white-space:nowrap}

/* One compact shell for 1 vs 1 and every competition format. */
body.tournament-detail-open #club-view>.club-hero,
body.tournament-detail-open #club-view>.club-tabs,
body.tournament-detail-open #tab-fixtures>.fixtures-subtabs{display:none!important}
.match-screen-header{display:grid;gap:12px;margin:0 0 12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,color-mix(in srgb,var(--green) 16%,var(--card)),var(--card));box-shadow:0 12px 28px rgba(0,0,0,.16)}
.match-screen-club-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.match-screen-title{text-align:center}.match-screen-title .eyebrow{margin:0 0 3px}.match-screen-title h1{margin:0;color:var(--yellow);font-size:clamp(1.35rem,4vw,1.8rem);line-height:1.1}.match-screen-title>p:last-child{margin:5px 0 0;color:var(--muted);font-size:.78rem}
.match-screen-metrics,.match-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.match-screen-metrics>div,.match-settings-grid>div,.match-settings-grid>.match-setting-edit{display:grid;align-content:start;gap:4px;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--card-2);text-align:center}
.match-setting-card .match-setting-help,.match-setting-card .match-setting-value{min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:center;cursor:pointer}.match-setting-card .match-setting-help{color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.07em}.match-setting-card .match-setting-value:hover b,.match-setting-card .match-setting-value:focus-visible b{color:var(--yellow)}
.match-screen-metrics span,.match-settings-grid span{color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.07em}.match-screen-metrics b,.match-settings-grid b{overflow-wrap:anywhere;color:var(--text);font-size:.78rem;line-height:1.35}
.match-settings-grid>.match-setting-edit{font:inherit;cursor:pointer}.match-settings-grid>.match-setting-edit:hover{border-color:var(--yellow);background:color-mix(in srgb,var(--yellow) 10%,var(--card-2))}.match-settings-grid>.match-setting-edit:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.match-screen-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:5px;margin:0 0 12px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--card-2);overflow-x:auto;scrollbar-width:none}.match-screen-tabs::-webkit-scrollbar{display:none}.match-screen-tabs button{min-width:92px;padding:9px 8px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:700 .75rem/1.1 inherit;white-space:nowrap;cursor:pointer}.match-screen-tabs button.active{background:var(--green);color:#fff;box-shadow:inset 0 0 0 1px var(--yellow)}
.match-screen-tab-panel>.competition-roster:first-child,.match-screen-tab-panel>.competition-live-game:first-child,.match-screen-tab-panel>.tournament-rounds:first-child{margin-top:0}.match-screen-tab-panel.hidden{display:none!important}.match-settings-summary{margin-top:0}.competition-winner-line{padding:10px;border:1px solid var(--yellow);border-radius:9px;color:var(--yellow);font-weight:900;text-align:center}
.standalone-results-table th:not(:nth-child(2)),.standalone-results-table td:not(:nth-child(2)){text-align:center}
@media(max-width:480px){.match-screen-header{padding:12px}.match-screen-metrics,.match-settings-grid{gap:5px}.match-screen-metrics>div,.match-settings-grid>div,.match-settings-grid>.match-setting-edit{padding:7px 4px}.match-screen-metrics span,.match-settings-grid span{font-size:.52rem;letter-spacing:.04em}.match-screen-metrics b,.match-settings-grid b{font-size:.68rem}.match-screen-tabs{grid-auto-columns:minmax(86px,1fr)}.match-screen-tabs button{min-width:86px;font-size:.7rem}.standalone-results-table{min-width:650px}}

/* All five fields are part of the 1 vs 1 record at every viewport width. This
   global override also defeats older shared-table rules that hid Player 2 or
   Score before a narrow phone breakpoint was reached. */
.match-record-table{width:100%;min-width:0;table-layout:fixed}
.match-record-table th:nth-child(4),.match-record-table td:nth-child(4),.match-record-table th:nth-child(5),.match-record-table td:nth-child(5){display:table-cell!important}

@media(max-width:760px){
  .match-record-table{font-size:.62rem}
  .match-record-table th,.match-record-table td{display:table-cell!important;position:static!important;padding:6px 2px;white-space:normal;overflow-wrap:anywhere;text-align:center}
  .match-record-table th:nth-child(1){width:15%}.match-record-table th:nth-child(2){width:22%}.match-record-table th:nth-child(3),.match-record-table th:nth-child(4){width:23%}.match-record-table th:nth-child(5){width:17%}
  .match-record-table td:nth-child(5),.match-record-table th:nth-child(5){background:transparent;z-index:auto}
  .match-record-table th:nth-child(5){background:var(--card-2)}
}

/* New Match prize builder: fixed cash amounts remain available, while the
   estimate view turns player fees and a venue top-up into a live prize pot. */
.prize-mode-picker{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0 12px;padding:4px;background:var(--card-2);border:1px solid var(--line);border-radius:14px}
.prize-mode-picker button{display:grid;gap:3px;padding:11px 12px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);text-align:left;cursor:pointer}
.prize-mode-picker button b{font-size:.82rem;color:inherit}.prize-mode-picker button span{font-size:.66rem;line-height:1.3}
.prize-mode-picker button.active{border-color:var(--yellow);background:rgba(245,197,24,.12);color:var(--yellow);box-shadow:0 5px 14px rgba(0,0,0,.14)}
.prize-estimate-panel{margin:10px 0 12px;padding:14px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(245,197,24,.12),var(--card-2) 44%);box-shadow:inset 0 1px rgba(255,255,255,.04)}
.prize-pool-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.prize-pool-heading>div{display:grid;gap:3px}.prize-pool-heading>div>span{color:var(--yellow);font-size:.62rem;font-weight:900;letter-spacing:.1em}.prize-pool-heading b{font-size:1.65rem;line-height:1;color:var(--text)}
.prize-pool-heading>span{color:var(--muted);font-size:.7rem;text-align:right}
.prize-pool-inputs{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.prize-step-control{display:grid;gap:6px;margin:0;color:var(--muted);font-size:.7rem}.prize-step-control>span{min-height:17px}.prize-step-control small{color:var(--yellow);font-size:.58rem;font-weight:800}.prize-players-control,.prize-player-presets{grid-column:1/-1}.prize-stepper{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--card)}.prize-stepper button{border:0;background:var(--card-2);color:var(--yellow);font-size:1.1rem;font-weight:900;cursor:pointer}.prize-stepper button:hover{background:var(--green)}.prize-stepper b{display:grid;place-items:center;min-height:40px;color:var(--text);font-size:.82rem}.prize-player-presets{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.prize-player-presets button{min-height:34px;padding:5px 2px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--muted);font-size:.7rem;font-weight:800;cursor:pointer}.prize-player-presets button:hover{border-color:var(--yellow);color:var(--yellow)}
.prize-money-input{position:relative}.prize-money-input i{position:absolute;left:10px;top:50%;z-index:1;transform:translateY(-50%);color:var(--yellow);font-style:normal;font-weight:900}.prize-money-input input{padding-left:24px}
.prize-pool-breakdown{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:7px;margin-top:10px}.prize-pool-breakdown>div{display:grid;gap:3px;padding:9px;border:1px solid var(--line-soft);border-radius:9px;background:rgba(0,0,0,.12)}.prize-pool-breakdown span{color:var(--muted);font-size:.61rem}.prize-pool-breakdown b{font-size:.78rem}.prize-pool-breakdown .prize-pool-total{border-color:var(--yellow);background:rgba(245,197,24,.1)}.prize-pool-breakdown .prize-pool-total b{color:var(--yellow)}
.prize-split-presets{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:11px}.prize-split-presets>span{margin-right:2px;color:var(--muted);font-size:.62rem;font-weight:900;text-transform:uppercase}.prize-split-presets button{padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font-size:.62rem;font-weight:800;cursor:pointer}.prize-split-presets button:hover{border-color:var(--yellow);color:var(--yellow)}
.prize-allocation-help{margin:10px 1px 7px;color:var(--muted);font-size:.7rem;line-height:1.4}.prize-row-values{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:0}.prize-band-estimate{min-width:72px;color:var(--yellow);font-size:.66rem;font-weight:800;text-align:right}.prize-band-row .prize-amount i{min-width:11px;color:var(--yellow);font-style:normal;font-weight:900;text-align:center}
.prize-allocation-summary{margin-top:11px;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--card-2)}.prize-allocation-bar{height:7px;overflow:hidden;border-radius:99px;background:var(--line)}.prize-allocation-bar i{display:block;width:0;height:100%;border-radius:inherit;background:var(--yellow);transition:width .18s}.prize-allocation-bar i.over{background:var(--red)}.prize-allocation-summary.complete .prize-allocation-bar i{background:#4ade80}.prize-allocation-summary>div:last-child{display:flex;justify-content:space-between;gap:12px;margin-top:8px;color:var(--muted);font-size:.66rem}.prize-allocation-summary>div:last-child span:last-child{text-align:right}.prize-allocation-summary b{color:var(--text)}
@media(max-width:480px){.prize-pool-inputs{grid-template-columns:1fr 1fr}.prize-player-presets{grid-template-columns:repeat(3,1fr)}.prize-pool-breakdown{grid-template-columns:1fr 1fr}.prize-pool-breakdown .prize-pool-total{grid-column:1/-1}.prize-band-row{align-items:flex-start}.prize-row-values{flex-direction:column;align-items:flex-end;gap:4px}.prize-allocation-summary>div:last-child{display:grid}.prize-allocation-summary>div:last-child span:last-child{text-align:left}}

/* Competition setup and pre-match roster alignment. */
.tabs.club-tabs{display:flex}.tabs.club-tabs>button{flex:1;min-width:0}
#club-view>.club-hero{grid-template-columns:minmax(0,1fr) clamp(104px,30%,144px)}
#club-view>.club-hero .club-hero-copy{display:contents}
#club-view>.club-hero .club-identity{grid-column:1;grid-row:1;align-self:start}
#club-view>.club-hero .club-share-actions{grid-column:1;grid-row:2;align-self:end;position:relative}
#club-view>.club-hero .club-share-actions #copy-note:empty{display:none}
#club-view>.club-hero .club-share-actions #copy-note:not(:empty){position:absolute;top:100%;left:0;right:0}
#club-view>.club-hero .club-follow-qr{grid-column:2;grid-row:1/3;align-self:end;width:100%}
#club-view>.club-hero .club-follow-qr img{width:100%;height:auto;aspect-ratio:1}
#club-view>.club-hero .hero-actions{grid-row:3;grid-column:1/-1}
#club-undo-host:empty{display:none}
.timer-wheel{position:relative;margin:14px 0;padding:12px 8px 9px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.055),transparent 22%,rgba(0,0,0,.25)),var(--card-2);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 -20px 34px rgba(0,0,0,.19),0 8px 22px rgba(0,0,0,.12);overflow:hidden}
.timer-wheel-columns{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.timer-wheel-column{position:relative;min-width:0;text-align:center}.timer-wheel-column .timer-wheel-highlight{position:absolute;z-index:3;top:100px;left:0;right:0;height:34px;border:1px solid rgba(255,210,0,.76);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.26),rgba(255,202,0,.14) 42%,rgba(0,0,0,.16)),linear-gradient(90deg,rgba(255,202,0,.13),rgba(255,255,255,.19),rgba(255,202,0,.13));box-shadow:0 3px 14px rgba(0,0,0,.46),0 0 10px rgba(255,201,0,.1),inset 0 2px 1px rgba(255,255,255,.24),inset 0 -3px 3px rgba(0,0,0,.31),inset 2px 0 2px rgba(255,255,255,.08),inset -2px 0 2px rgba(0,0,0,.2);pointer-events:none}.timer-wheel-column .timer-wheel-highlight::before{position:absolute;top:3px;left:7px;right:7px;height:7px;border-radius:6px;background:linear-gradient(180deg,rgba(255,255,255,.3),transparent);content:""}.timer-wheel-column .timer-wheel-highlight::after{position:absolute;right:4px;bottom:3px;left:4px;height:3px;border-radius:50%;background:rgba(0,0,0,.28);box-shadow:0 -1px 0 rgba(255,255,255,.08);content:""}
.timer-wheel-column h3{position:relative;z-index:5;height:32px;margin:0;color:var(--text);font-size:.72rem;line-height:1.1}.timer-wheel-label{position:relative;width:100%;height:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:900;cursor:help}.timer-wheel-label::after{position:absolute;z-index:10;top:calc(100% + 4px);left:50%;width:min(210px,calc(100vw - 28px));padding:8px 9px;border:1px solid var(--yellow);border-radius:8px;background:var(--card);box-shadow:0 8px 20px rgba(0,0,0,.35);color:var(--text);content:attr(data-wheel-tooltip);font-size:.68rem;font-weight:700;line-height:1.3;opacity:0;pointer-events:none;text-align:left;transform:translate(-50%,-4px);transition:opacity .12s ease,transform .12s ease;visibility:hidden}.timer-wheel-label:hover::after,.timer-wheel-label:focus-visible::after,.timer-wheel-label.tooltip-open::after{opacity:1;transform:translate(-50%,0);visibility:visible}
.timer-wheel-track{height:170px;overflow-y:auto;scrollbar-width:none;padding:68px 0;border:1px solid rgba(123,189,151,.17);border-radius:12px;background:radial-gradient(ellipse 88% 42% at 50% 50%,rgba(151,221,180,.12),transparent 68%),linear-gradient(180deg,rgba(0,0,0,.61),rgba(0,0,0,.14) 37%,rgba(255,255,255,.035) 50%,rgba(0,0,0,.14) 63%,rgba(0,0,0,.61));box-shadow:inset 0 29px 27px rgba(0,0,0,.43),inset 0 -29px 27px rgba(0,0,0,.43),inset 8px 0 13px rgba(0,0,0,.2),inset -8px 0 13px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.035);touch-action:none;overscroll-behavior:contain;cursor:ns-resize;user-select:none;-webkit-user-select:none;-webkit-mask-image:linear-gradient(transparent,#000 15%,#000 85%,transparent);mask-image:linear-gradient(transparent,#000 15%,#000 85%,transparent)}
.timer-wheel-track.dragging{cursor:grabbing;scroll-snap-type:none}
.timer-wheel-track::-webkit-scrollbar{display:none}
.timer-wheel-track button{position:relative;z-index:1;display:block;width:100%;height:34px;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font-weight:800;cursor:inherit;transform-origin:50% 50%;will-change:transform,opacity,filter;transition:color .1s ease,text-shadow .1s ease,background .1s ease,box-shadow .1s ease,filter .1s ease}.timer-wheel-track button.wheel-near{z-index:2}.timer-wheel-track button.wheel-selected{z-index:4;border-color:rgba(255,215,38,.78);background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,208,0,.18) 43%,rgba(43,23,0,.23)),radial-gradient(ellipse at 50% 0,rgba(255,255,255,.24),transparent 64%);box-shadow:0 3px 7px rgba(0,0,0,.46),0 0 var(--wheel-glow,5px) rgba(255,198,0,.24),inset 0 2px 1px rgba(255,255,255,.38),inset 0 -3px 2px rgba(46,23,0,.4),inset 2px 0 2px rgba(255,255,255,.12),inset -2px 0 2px rgba(0,0,0,.28);color:var(--yellow);filter:brightness(var(--wheel-brightness,1));font-weight:900;text-shadow:0 1px 0 rgba(0,0,0,.78),0 2px 8px rgba(255,199,0,.7)}
.timer-wheel-column.disabled .timer-wheel-track{overflow:hidden;opacity:.3;cursor:not-allowed;pointer-events:none}
.timer-wheel-options{display:grid;gap:5px;margin-top:8px}
.timer-wheel-options>button,.timer-wheel-options label{display:flex;align-items:center;justify-content:center;min-height:28px;margin:0;padding:4px 3px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--muted);font-size:.62rem;font-weight:800;cursor:pointer}
.timer-wheel-options>button.active{border-color:var(--red);color:#ff9188}
.timer-wheel-options input{width:14px;height:14px;margin:0 4px 0 0;accent-color:var(--yellow)}
.timer-wheel-options label.disabled-option{opacity:.38;cursor:not-allowed;filter:saturate(.15)}
.timer-wheel-master-toggle{display:block;width:100%;min-height:42px;margin-top:10px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--muted);font-size:.78rem;font-weight:900;cursor:pointer}.timer-wheel-master-toggle:hover,.timer-wheel-master-toggle:focus-visible{border-color:var(--yellow);color:var(--text)}.timer-wheel-master-toggle.active{border-color:var(--green);color:var(--green)}.timer-wheel-column.shot-clock-locked .timer-wheel-options label{pointer-events:none}
.wizard-mode :is(#match-timer-wheel,#tournament-timer-wheel){margin-top:4px;margin-bottom:4px;padding-top:7px;padding-bottom:5px}
.wizard-mode :is(#match-timer-wheel,#tournament-timer-wheel) .timer-wheel-options{margin-top:4px;gap:3px}
.wizard-mode :is(#match-timer-wheel,#tournament-timer-wheel) .timer-wheel-master-toggle{min-height:32px;margin-top:4px;font-size:.69rem}
.timer-wheel-legacy{display:none!important}
@media(max-width:430px){.timer-wheel{padding-inline:5px}.timer-wheel-columns{gap:2px}.timer-wheel-column h3{font-size:.61rem}.timer-wheel-options>button,.timer-wheel-options label{font-size:.54rem;padding-inline:1px}}
.match-scope-actions{display:flex;justify-content:flex-end;margin-top:8px}.scope-undo{white-space:nowrap}
.player-profile-page{width:min(var(--responsive-content-max),calc(100% - (var(--responsive-page-gutter) * 2)));max-width:1200px;margin:16px auto;padding:0}.profile-heading{margin:12px 0}.profile-heading>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}.profile-heading h1{margin:0}.profile-heading .muted{margin:0}.profile-last-login{font-size:.8rem}.profile-summary,.profile-games{width:100%;min-width:0;table-layout:auto}.profile-summary th,.profile-summary td,.profile-games th,.profile-games td{white-space:normal;overflow-wrap:anywhere;padding:9px 10px}.profile-summary th:first-child{min-width:108px}.profile-summary-panel,.profile-history,.profile-head-to-head,.profile-compare-picker,.profile-comparison-history{padding:20px;overflow:hidden}.profile-match-row th,.profile-match-row td,.profile-match-row .profile-stat-link{color:var(--yellow);font-weight:400}.profile-match-row .profile-stat-link{text-decoration:none}.profile-streak-row th,.profile-streak-row td{background:var(--card-2);vertical-align:middle}.profile-streak-row td{color:var(--yellow);font-weight:700;text-align:left}.profile-streak-stat{display:flex;min-height:30px;align-items:center;justify-content:space-between;gap:10px}.profile-streak-stat>span{display:inline-flex;align-items:center}.profile-stat-link{padding:0;border:0;background:transparent;color:var(--yellow);font:inherit;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.profile-stat-link:hover,.profile-stat-link:focus-visible{color:var(--text)}.profile-games .fixture-record-link{width:auto;text-align:left}.player-profile-page .panel{margin:12px 0}.record-score small{display:block;font-size:.65rem;font-weight:400;color:var(--muted)}
.profile-sort-button{display:flex;align-items:center;gap:4px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:inherit;cursor:pointer}.profile-sort-button span{min-width:.7em;color:var(--yellow);font-size:.72em}.profile-sort-button:hover,.profile-sort-button:focus-visible{color:var(--yellow)}.profile-comparison-link{text-decoration:none}
@media (max-width:760px){
  .tabs.club-tabs>button{padding:9px 3px;font-size:.62rem}.tabs.club-tabs>button[data-tab="people"]{flex:1.35}
  #tab-fixtures .club-record-list .club-record-table,#tab-fixtures .tournaments-list .tournament-record-table{width:100%;min-width:0!important;table-layout:fixed;font-size:.62rem}
  #tab-fixtures .club-record-list .club-record-table th,#tab-fixtures .club-record-list .club-record-table td,#tab-fixtures .tournament-record-table th,#tab-fixtures .tournament-record-table td{padding:5px 3px!important;white-space:normal!important;overflow-wrap:anywhere;position:static!important}
  #tab-fixtures .tournament-record-table th:nth-child(3),#tab-fixtures .tournament-record-table td:nth-child(3){display:none}
  #tab-fixtures .tournament-record-table th:nth-child(1){width:20%}#tab-fixtures .tournament-record-table th:nth-child(2){width:29%}#tab-fixtures .tournament-record-table th:nth-child(4){width:17%}#tab-fixtures .tournament-record-table th:nth-child(5){width:22%}#tab-fixtures .tournament-record-table th:nth-child(6){width:12%}
  #tab-fixtures .club-record-table td.record-date{font-size:.57rem;overflow-wrap:normal;white-space:nowrap!important}
  #tab-fixtures .club-record-table td.record-date .time-tip-anchor{white-space:nowrap}
  #tab-fixtures .club-record-table .record-tournament strong{white-space:normal;overflow-wrap:normal;font-size:.68rem}
  #tab-fixtures .club-record-table small{font-size:.55rem;line-height:1.25}#tab-fixtures .club-record-table .record-status{font-size:.53rem;padding:2px}
  #club-view .club-live-section .live-match-card{padding:9px}.profile-comparison{grid-template-columns:1fr}.player-profile-page{padding:0}.profile-summary,.profile-games{min-width:0;table-layout:fixed;font-size:.67rem}.profile-summary th,.profile-summary td,.profile-games th,.profile-games td{padding:7px 4px;white-space:normal;overflow-wrap:anywhere}.profile-summary th:first-child{width:22%;min-width:0}.profile-summary th:not(:first-child){width:15.6%}.profile-games th:nth-child(1){width:18%}.profile-games th:nth-child(2){width:28%}.profile-games th:nth-child(3){width:24%}.profile-games th:nth-child(4){width:15%}.profile-games th:nth-child(5){width:15%}.profile-frame-history th:nth-child(2){width:28%}.profile-frame-history th:nth-child(3){width:12%}.profile-frame-history th:nth-child(4){width:27%}.profile-frame-history th:nth-child(5){width:15%}.profile-summary-panel,.profile-history,.profile-head-to-head,.profile-compare-picker,.profile-comparison-history{padding:14px}.profile-club-hero{margin-inline:0}
}
.match-start-conflict{display:flex;align-items:center;justify-content:space-between;gap:12px}.match-start-conflict p{min-width:0;overflow-wrap:anywhere;margin:0}.match-start-conflict .button{flex:0 0 auto;width:auto;white-space:nowrap}.round-bye td{color:var(--muted)}
.activity-frame{border:1px solid var(--line);border-radius:10px;margin:10px 0;overflow:hidden}.activity-frame summary{padding:12px;cursor:pointer;font-weight:700;overflow-wrap:anywhere}.activity-frame summary small{color:var(--muted);font-weight:400}.activity-entry{padding:10px 12px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.activity-entry:last-child{border-bottom:0}.activity-entry p{margin:0 0 5px;font-size:.82rem}.activity-entry small{color:var(--muted);font-size:.65rem}
.live-draw-table{width:100%;min-width:0;table-layout:fixed}.live-draw-table th,.live-draw-table td{padding:6px 4px!important;white-space:normal!important;overflow-wrap:normal;word-break:normal;font-size:.7rem}.live-draw-table:not(.detailed-results-table) th:first-child{width:16%}.live-draw-table:not(.detailed-results-table) th:last-child{width:30%}.detailed-results-table th:nth-child(1){width:9%}.detailed-results-table th:nth-child(2),.detailed-results-table th:nth-child(3){width:17%}.detailed-results-table th:nth-child(4){width:14%}.detailed-results-table th:nth-child(5){width:13%}.detailed-results-table th:nth-child(6){width:9%}.detailed-results-table th:nth-child(7){width:12%}.detailed-results-table th:nth-child(8){width:9%}.detailed-results-table th:nth-child(n+4),.detailed-results-table td:nth-child(n+4){text-align:center}.live-draw-table .button{width:100%;min-width:0;padding:7px 3px;font-size:.65rem;white-space:normal;line-height:1.2}.match-abandonment-row td{padding:8px 10px!important;border-bottom-color:color-mix(in srgb,#e0847a 45%,var(--line));background:color-mix(in srgb,#e0847a 7%,var(--card-2));color:var(--muted);font-size:.68rem;text-align:left!important}.match-abandonment-row b{margin-right:7px;color:#e9a097;font-size:.62rem;letter-spacing:.06em}.match-abandonment-row span{line-height:1.4}.first-break-marker{color:var(--yellow);font-weight:900}.first-break-legend{margin:4px 0 7px;color:var(--muted);font-size:.65rem}
.match-result-management{display:flex;align-items:center;justify-content:space-between;gap:18px}.match-result-management p{margin:4px 0 0;color:var(--muted)}.match-result-action{display:block;margin:6px auto 0;white-space:nowrap}.winner-column .match-result-action{font-size:.66rem;padding:5px 7px}.live-draw-table .winner-column{width:1%;white-space:nowrap!important}.live-draw-table .winner-column .button{display:inline-flex;width:max-content;min-width:76px;justify-content:center;white-space:nowrap}.result-value-action{display:inline-grid;place-items:center;gap:2px;min-width:0;padding:4px 7px;border:1px solid var(--yellow);border-radius:7px;background:transparent;color:inherit;font:inherit;font-weight:800;cursor:pointer}.result-value-action:hover{background:color-mix(in srgb,var(--yellow) 12%,transparent)}.result-value-action:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
@media(max-width:480px){.detailed-results-table th,.detailed-results-table td{padding-inline:3px!important;font-size:.62rem}.detailed-results-table th{font-size:.55rem}.match-abandonment-row td{padding:7px 8px!important;font-size:.62rem}.match-result-management{align-items:stretch;flex-direction:column}}
.match-table-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.match-table-choice{display:grid;grid-template-rows:1fr auto;gap:10px;min-width:0;padding:13px 10px;border:1px solid var(--yellow);border-radius:9px;background:var(--card-2)}.match-table-choice-body{display:grid;align-content:start;gap:9px;min-width:0}.match-table-choice-body>b{color:var(--yellow);font-size:.94rem}.match-table-inline-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.match-table-inline-settings label{display:grid;gap:4px;margin:0;color:var(--muted);font-size:.64rem;font-weight:800}.match-table-inline-settings select{width:100%;min-width:0;margin:0;padding:7px 24px 7px 7px;font-size:.7rem}.match-table-readonly-settings{display:grid;gap:4px}.match-table-choice small{display:block;color:var(--muted);overflow-wrap:anywhere}.match-table-choice small strong{color:var(--text)}.match-table-players{display:grid;gap:2px;padding:7px 8px;border-radius:7px;background:rgba(255,255,255,.035)}.match-table-players span{color:var(--muted);font-size:.6rem;font-weight:900;letter-spacing:.07em}.match-table-players strong{color:var(--text);font-size:.76rem;overflow-wrap:anywhere}.match-table-choice footer{display:grid}.match-table-choice footer .button{display:flex;width:100%;margin:0;align-items:center;justify-content:center;text-align:center;text-decoration:none}.match-table-choice.occupied{border-color:#394358;background:#101522;box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}.match-table-choice.occupied .match-table-choice-body>b,.match-table-choice.occupied small strong,.match-table-choice.occupied .match-table-players strong{color:#aeb5c6}.match-table-choice.occupied small,.match-table-choice.occupied .match-table-players span{color:#747e93}.match-table-choice.occupied footer .button{border-color:#576176;background:#30394b;color:#eef1f7}.match-table-choice .button:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}@media(max-width:480px){.match-table-picker{grid-template-columns:1fr}.match-table-inline-settings{grid-template-columns:1fr 1fr}}
.match-table-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.match-table-title-row>b{color:var(--yellow);font-size:.94rem;overflow-wrap:anywhere}.match-table-title-row .button{flex:0 0 auto;width:auto;min-height:34px;padding:5px 9px;font-size:.66rem}.match-table-inline-settings{grid-template-columns:1fr}.match-table-inline-settings select{font-size:.68rem;padding-right:31px;line-height:1.3}.match-table-choice.occupied .match-table-title-row>b{color:#aeb5c6}
.table-settings-dialog[open]>.modal-card{display:flex!important;flex-direction:column!important;height:min(820px,calc(100dvh - 20px));max-height:calc(100dvh - 20px)!important;overflow:hidden!important;background:var(--card)!important;isolation:isolate}.table-settings-dialog #simple-form>.modal-top{flex:0 0 auto}.table-settings-dialog #simple-fields{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-inline:2px}.table-settings-dialog #simple-error{flex:0 0 auto}.table-settings-dialog #simple-form>.modal-actions{position:relative;z-index:2;flex:0 0 auto;margin:0 -24px -24px;padding:14px 24px 24px;border-top:1px solid var(--line);background:var(--card);box-shadow:0 -10px 16px var(--card)}
#competition-table-count,.settings-table-count{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:7px}
#competition-table-count button,.settings-table-count button{width:100%;min-width:0}
.competition-roster-table .table-action{width:88px;min-width:88px;padding-inline:5px;text-align:center}
.team-roster-action{display:inline-flex;align-items:center;justify-content:center;min-width:88px;min-height:28px;text-align:center}
.settings-table-card label{margin:0}.settings-table-timers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.settings-table-timers label{font-size:.68rem}.settings-table-timers input{margin-top:5px}
@media(max-width:480px){.settings-table-timers{grid-template-columns:1fr}.competition-roster-table .table-action,.team-roster-action{width:82px;min-width:82px}}
/* Round tables replaced .round-matches; collapse their content at every size. */
.tournament-round:not(.expanded)>:not(.round-heading){display:none}
.tournament-round .round-heading:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
/* The sign-in action is a label, not a truncatable account name. */
.top-actions #open-signin-header{flex:none;width:max-content;max-width:none}
.top-actions #open-signin-header b{max-width:none;overflow:visible;text-overflow:clip}
/* Stack phone leaderboards in portrait and landscape; keep tablet columns. */
@media(max-width:760px),(max-height:500px) and (pointer:coarse){
  #top-five-leaderboards{grid-template-columns:minmax(0,1fr)}
  .top-five-table{min-width:0}
  .top-five-table table{width:100%;min-width:0}
}

/* App-wide responsive completion. These are intentionally limited to shared
   layout primitives so the five match formats keep their existing scoring UI. */
*,*::before,*::after{box-sizing:border-box}
:where(.page,.panel,.club-card,.club-hero,.modal-card,.match-screen-header,.table-panel,.two-column)>*{min-width:0}
:where(button,.button,.text-button,.icon-button){max-width:100%;overflow-wrap:anywhere}
:where(input,select,textarea){max-width:100%}
.club-summary,.club-card-copy p,.match-screen-title p,.muted{overflow-wrap:anywhere}
.club-card-main,.section-title,.modal-actions,.followed-club-actions,.hero-actions,.competition-section-heading{flex-wrap:wrap}
.modal[open]:not(.match-modal){width:min(680px,calc(100% - 20px));max-height:calc(100dvh - 20px);padding:0;overflow:auto;overscroll-behavior:contain}
.modal[open]:not(.match-modal)>.modal-card{width:100%;max-height:calc(100dvh - 20px);overflow:auto;overscroll-behavior:contain}
.modal[open]:not(.match-modal) .modal-actions{position:sticky;bottom:0;z-index:2;padding-top:12px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--card)}
.club-record-table-wrap,.people-table-wrap,.table-scroll,.table-panel{max-width:100%;overscroll-behavior-inline:contain}
.club-record-table-wrap,.people-table-wrap,.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:760px){
  .topbar{gap:8px}.top-actions{min-width:0;gap:6px}.brand{min-width:0}.brand b{overflow:hidden;text-overflow:ellipsis}
  .club-hero,.followed-club-hero{grid-template-columns:minmax(0,1fr)}
  #club-view>.club-hero .club-identity,#club-view>.club-hero .club-share-actions,#club-view>.club-hero .club-follow-qr,#club-view>.club-hero .hero-actions{grid-column:1;grid-row:auto}
  /* Keep the scan code next to the display controls throughout the phone
     range.  A 480px-only rule missed wider phones such as the one pictured. */
  #club-view>.club-hero{grid-template-columns:minmax(0,1fr) clamp(104px,24vw,132px);gap:10px}
  #club-view>.club-hero .club-identity{grid-column:1;grid-row:1;align-self:start}
  #club-view>.club-hero .club-share-actions{grid-column:1;grid-row:2;align-self:start}
  #club-view>.club-hero .club-follow-qr{grid-column:2;grid-row:1/3;justify-self:end;align-self:start;width:100%;max-width:132px}
  #club-view>.club-hero .club-follow-qr img{width:100%;height:auto;aspect-ratio:1}
  #club-view>.club-hero .hero-actions{grid-column:1/-1;grid-row:3}
  .club-share-actions,.hero-actions,.modal-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .club-share-actions #venue-display-action,.club-share-actions #copy-note,.hero-actions>#new-match,.modal-actions>.wide{grid-column:1/-1}
  .section-title{align-items:flex-start}.section-title>.button{width:100%}
  .people-grid,.two-column,.stats-grid,.admin-insight-grid{grid-template-columns:minmax(0,1fr)}
  .match-screen-club-row,.competition-section-heading,.match-start-conflict{align-items:flex-start;flex-direction:column}
  .match-start-conflict .button{width:100%;white-space:normal}
}
@media (max-width:480px){
  .modal[open]:not(.match-modal){width:calc(100% - 12px);max-height:calc(100dvh - 12px)}
  .modal[open]:not(.match-modal)>.modal-card{max-height:calc(100dvh - 12px)}
  .modal-actions{grid-template-columns:minmax(0,1fr)!important}.modal-actions>.button{width:100%}
  .club-card-main,.section-title{gap:8px}.club-card-copy p{line-height:1.45}
  .people-grid-section,.club-settings-panel,.club-exports-panel{min-width:0}
}
@media (max-width:430px){
  /* Only genuinely narrow phones need a fixed compact QR column. */
  #club-view>.club-hero .club-follow-qr{width:104px;max-width:104px}
  #club-view>.club-hero .club-follow-qr img{width:104px;height:104px}
}

/* Club fixtures: the filter labels stay legible on a phone, while records
   retain usable columns instead of shrinking each cell to a sliver. */
#tab-fixtures .fixtures-subtabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;overflow:visible}
#tab-fixtures .fixtures-subtabs button{min-width:0;padding:7px 3px;font-size:.72rem;letter-spacing:-.015em;line-height:1.1;white-space:normal}
.fixture-record-link,.record-player-count{display:block;width:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:inherit;cursor:pointer}
.fixture-record-link{border-radius:5px}.fixture-record-link:hover strong,.fixture-record-link:focus-visible strong{color:var(--text);text-decoration:none}.fixture-record-link:focus-visible,.record-player-count:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.record-player-count{color:var(--yellow);font-weight:800;text-align:center;text-decoration:none}
.time-tip.player-tip{max-width:min(280px,calc(100vw - 16px));white-space:pre-line;line-height:1.45}
.tournament-record-table{min-width:0!important}
.tournament-record-table th:nth-child(1){width:15%}.tournament-record-table th:nth-child(2){width:40%}.tournament-record-table th:nth-child(3){width:15%}.tournament-record-table th:nth-child(4){width:13%}.tournament-record-table th:nth-child(5){width:17%}
#club-view>.club-hero .club-follow-qr{align-self:end}
#club-view>.club-hero .hero-actions{grid-template-columns:minmax(0,1fr)}
#club-view>.club-hero .hero-actions>#venue-display-action,#club-view>.club-hero .hero-actions>#new-match{grid-column:1/-1;width:100%}

@media(min-width:1200px){
  #tab-fixtures .club-record-table-wrap{width:min(100%,1400px);margin-inline:auto}
  #tab-fixtures .club-record-table{font-size:.9rem}
  #tab-fixtures .club-record-table th,#tab-fixtures .club-record-table td{padding:11px 14px}
}

/* Site-admin drill-downs use the same row affordance for accounts and clubs.
   The anomaly block stays visually distinct without becoming a second page. */
#admin-view :is(.admin-search-row,.admin-table tbody tr):is([data-admin-account],[data-admin-club]){cursor:pointer}
#admin-view :is(.admin-search-row,.admin-table tbody tr):is([data-admin-account],[data-admin-club]):hover{border-color:var(--yellow);background:color-mix(in srgb,var(--yellow) 7%,transparent)}
.admin-anomaly-section{margin:4px 0 20px;padding:14px;border:1px solid color-mix(in srgb,var(--yellow) 55%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--yellow) 4%,var(--card-2))}
.admin-anomaly-section .admin-section-heading{margin:0 0 10px}.admin-anomaly-count{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:999px;background:var(--yellow);color:#102116;font-weight:950}
.admin-anomaly-clear{text-align:center;color:var(--muted)!important;padding:18px!important}
@media(max-width:760px){.admin-anomaly-section{padding:10px}.admin-anomaly-table th:nth-child(2),.admin-anomaly-table td:nth-child(2){width:15%}.admin-anomaly-table th:nth-child(3),.admin-anomaly-table td:nth-child(3){width:22%}}

@media(max-width:760px){
  #tab-fixtures .fixtures-subtabs button{font-size:.68rem;padding:7px 2px}
  #tab-fixtures .club-record-table-wrap{overflow-x:hidden}
  #tab-fixtures .club-record-table{width:100%;min-width:0!important;table-layout:fixed;font-size:.68rem}
  #tab-fixtures .club-record-table th,#tab-fixtures .club-record-table td{padding:6px 3px!important;white-space:normal!important;overflow-wrap:anywhere;word-break:normal}
  #tab-fixtures .match-record-table th:nth-child(1){width:18%}#tab-fixtures .match-record-table th:nth-child(2){width:26%}#tab-fixtures .match-record-table th:nth-child(3),#tab-fixtures .match-record-table th:nth-child(4){width:21%}#tab-fixtures .match-record-table th:nth-child(5){width:14%}
  #tab-fixtures .tournament-record-table th:nth-child(1){width:18%}#tab-fixtures .tournament-record-table th:nth-child(2){width:32%}#tab-fixtures .tournament-record-table th:nth-child(3){width:16%}#tab-fixtures .tournament-record-table th:nth-child(4){width:16%}#tab-fixtures .tournament-record-table th:nth-child(5){width:18%}
  #tab-fixtures .tournament-record-table th:nth-child(3),#tab-fixtures .tournament-record-table td:nth-child(3){display:table-cell}
  #tab-fixtures .club-record-table td.record-date{font-size:.68rem}
  #tab-fixtures .club-record-table small{font-size:.63rem;line-height:1.3}
  #club-view>.club-hero .club-follow-qr{align-self:end}
}

@media(max-width:430px){
  #tab-fixtures .fixtures-subtabs button{font-size:.62rem;line-height:1.05}
  #tab-fixtures .club-record-table{font-size:.72rem}
}

/* Final club table sizing: keep every action and value inside its own panel. */
@media(min-width:1200px){
  :root{--responsive-content-max:1400px}
}
.player-table-wrap{overflow-x:hidden}
.player-record-table{width:100%;min-width:0!important;table-layout:fixed}
.player-record-table.can-manage th:nth-child(1){width:34%}
.player-record-table.can-manage th:nth-child(2){width:16%}
.player-record-table.can-manage th:nth-child(3),.player-record-table.can-manage th:nth-child(4){width:25%}
.player-record-table:not(.can-manage) th:nth-child(1){width:62%}
.player-record-table:not(.can-manage) th:nth-child(2){width:38%}
.player-record-table .table-action{width:100%;min-width:0;padding-inline:3px;white-space:normal}

#top-five-leaderboards{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}
.top-five-table{min-width:0;overflow:hidden}
.top-five-table table{width:100%;min-width:0;table-layout:fixed}
.top-five-table th,.top-five-table td{min-width:0;white-space:normal;overflow-wrap:anywhere}
.top-five-table.has-percentage th:nth-child(1){width:52%}
.top-five-table.has-percentage th:nth-child(2){width:22%}
.top-five-table.has-percentage th:nth-child(3){width:26%}
.top-five-table:not(.has-percentage) th:nth-child(1){width:64%}
.top-five-table:not(.has-percentage) th:nth-child(2){width:36%}
.top-five-table .competition-player-link{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:left}

.activity-record-table{width:100%;min-width:0!important;table-layout:fixed}
.activity-record-table th,.activity-record-table td{min-width:0;white-space:normal;overflow-wrap:anywhere}
.activity-record-table td strong{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.activity-record-table td strong{color:var(--text)}
.match-player-name-field{margin-bottom:14px}.match-player-name-validation{display:block;min-height:1.3em;margin:0 0 12px}
.match-result-actions{display:flex;gap:8px;flex-wrap:wrap}
.quick-match-mode [data-setup-type="team-match"],.quick-match-mode #match-name-field,.quick-match-mode #tournament-name-field,.quick-match-mode .match-format-field,.quick-match-mode #tournament-format-field,.quick-match-mode #doubles-row,.quick-match-mode #tournament-doubles-row{display:none!important}
.permission-hidden{display:none!important}
.activity-record-table .activity-summary{display:block;max-width:100%;line-height:1.35;overflow-wrap:anywhere}

/* The selected yellow value continues to travel with the wheel; only the
   separate fixed outline is suppressed. */
.timer-wheel-column .timer-wheel-highlight{border-color:transparent}

@media(max-width:760px){
  #tab-fixtures .fixtures-subtabs button{padding-inline:1px;font-size:.62rem;letter-spacing:-.035em;white-space:nowrap}
  #top-five-leaderboards{grid-template-columns:minmax(0,1fr)}
  .player-record-table th,.player-record-table td{padding:6px 3px;font-size:.62rem;overflow-wrap:anywhere}
  .player-record-table .table-action{padding:5px 1px;font-size:.56rem;line-height:1.1}
  .activity-table-wrap{overflow-x:hidden}
  .activity-record-table th,.activity-record-table td{padding:7px 4px;font-size:.62rem;line-height:1.3}
  .activity-record-table th:nth-child(1){width:23%}
  .activity-record-table th:nth-child(2){width:24%}
  .activity-record-table th:nth-child(3){width:53%}
  .activity-record-table td:first-child{font-size:.6rem}
}
@media(max-width:430px){
  #tab-fixtures .fixtures-subtabs button{font-size:.57rem}
}

/* Every Match Screen section stays visible in one phone-width tab row. */
@media(max-width:760px){
  .match-screen-tabs{width:100%;grid-auto-columns:minmax(0,1fr);gap:2px;overflow-x:hidden}
  .match-screen-tabs button{min-width:0;padding:8px 1px;font-size:clamp(.5rem,2.2vw,.62rem);letter-spacing:-.03em;white-space:nowrap}
}

/* Canonical responsive tables. Phone layouts always show the complete table;
   larger displays use the full page width and restore generous cell spacing. */
@media(max-width:760px){
  :where(.table-wrap,.club-record-table-wrap,.people-table-wrap,.activity-table-wrap,.table-scroll,.admin-table-wrap,.table-panel){width:100%;max-width:100%;overflow-x:hidden!important}
  table{width:100%!important;max-width:100%;min-width:0!important;table-layout:fixed!important}
  table th,table td{min-width:0!important;padding:5px 2px!important;font-size:clamp(.56rem,2.45vw,.68rem);line-height:1.25;white-space:normal!important;overflow-wrap:anywhere;word-break:normal}
  table th{font-size:clamp(.5rem,2.2vw,.61rem);letter-spacing:.025em}
  table td :where(strong,small,span,a){max-width:100%;white-space:normal!important;overflow-wrap:anywhere}
  table :where(button,.button,input,select){min-width:0!important;max-width:100%;white-space:normal!important}
  table .table-action{width:100%!important;min-width:0!important;padding:5px 2px!important;line-height:1.15}
  table:has(tr>:nth-child(6)) th,table:has(tr>:nth-child(6)) td{padding-inline:1px!important;font-size:clamp(.49rem,2vw,.59rem)}
  #tab-fixtures .club-record-table{min-width:0!important;table-layout:fixed!important}
  #tab-fixtures .club-record-table th,#tab-fixtures .club-record-table td{padding:5px 2px!important;white-space:normal!important;overflow-wrap:anywhere}
}
@media(min-width:1200px){
  :root{--responsive-content-max:1560px}
  .player-profile-page{max-width:var(--responsive-content-max)}
  :where(.table-wrap,.club-record-table-wrap,.people-table-wrap,.activity-table-wrap,.table-scroll,.admin-table-wrap,.table-panel){width:100%;max-width:100%}
  table th{padding:13px 16px!important}
  table td{padding:15px 16px!important}
}

/* Account settings remain a single readable column on narrow phones. */
.top-actions .profile-pill.temporary-account-button{width:max-content;max-width:none;flex:0 0 auto}
.top-actions .profile-pill.temporary-account-button b{max-width:none;overflow:visible;text-overflow:clip;white-space:nowrap}
@media(max-width:480px){
  #account-view .account-panel{padding:14px}
  #account-view .account-profile{grid-template-columns:44px minmax(0,1fr);gap:10px}
  #account-view .account-badge{grid-column:2;justify-self:start;max-width:100%;white-space:normal;overflow-wrap:anywhere}
  #account-view .account-identity,#account-view .account-name-line{min-width:0}
  #account-view .account-name-line h1,#account-view .account-profile p{max-width:100%;overflow-wrap:anywhere}
  #account-view .account-preferences-grid{grid-template-columns:minmax(0,1fr);gap:5px;margin-bottom:10px}
  #account-view .account-preferences-grid>span{margin-top:6px;white-space:normal;overflow-wrap:anywhere}
  #account-view .account-preferences-grid .setting-options{width:100%;gap:4px}
  #account-view .account-preferences-grid .setting-options button{min-width:0;min-height:38px;padding:6px 2px;font-size:clamp(.59rem,2.7vw,.7rem);line-height:1.15;white-space:normal;overflow-wrap:anywhere}
  #account-view .account-language-select{width:100%;min-width:0}
  #account-view .account-actions,#account-view .account-google-actions.two-actions{grid-template-columns:minmax(0,1fr)}
  #account-view .account-actions button,#account-view .account-google-actions.two-actions #change-password,#account-view .account-google-actions.two-actions .google-button{width:100%;height:auto;min-height:40px;white-space:normal;overflow-wrap:anywhere}
  .top-actions .profile-pill.temporary-account-button{padding-inline:8px}
  .top-actions .profile-pill.temporary-account-button b{font-size:.68rem}
}

/* Tournament result columns are tap targets, with the player name given the
   room it needs and every other value vertically centred beside wrapped names. */
.match-statistics-table{width:100%;min-width:0;table-layout:fixed}
.match-statistics-table th:first-child{width:36%}
.match-statistics-table th:not(:first-child){width:16%}
.match-statistics-table th,.match-statistics-table td{vertical-align:middle;text-align:center}
.match-statistics-table th:first-child,.match-statistics-table td:first-child{text-align:left}
.match-statistics-table .competition-player-link{display:block;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.2;text-align:left}
.match-stat-link{min-width:28px;padding:3px;border:0;background:transparent;color:var(--yellow);font:inherit;font-weight:800;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;cursor:pointer}

/* Club and match activity share one table rhythm. Dates never split, while
   the longer What description gets a little more room and finer phone type. */
.activity-record-table th:first-child,.activity-record-table td:first-child,.activity-record-table td:first-child .time-tip-anchor{white-space:nowrap!important;overflow-wrap:normal!important}
.match-activity-record-table{margin-top:8px}
.match-activity-record-table :is(th,td):nth-child(2),.match-activity-record-table :is(th,td):nth-child(2) *{white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}
.match-activity-record-table :is(th,td):nth-child(3),.match-activity-record-table :is(th,td):nth-child(3) *{white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}
.match-activity-record-table .activity-person-link{color:var(--text);font-weight:800;text-decoration:none}.match-activity-record-table .activity-person-link:hover,.match-activity-record-table .activity-person-link:focus-visible{text-decoration:underline}
.match-activity-record-table .visit-start-row td{border-top:3px solid var(--line-soft)}.match-activity-record-table .timeline-time{color:var(--muted);font-weight:800;text-decoration:underline dotted;text-underline-offset:3px}
.frame-activity-record-table th:nth-child(1),.frame-activity-record-table td:nth-child(1){width:9%;text-align:center}.frame-activity-record-table th:nth-child(2),.frame-activity-record-table td:nth-child(2){width:15%;white-space:nowrap}.frame-activity-record-table th:nth-child(3),.frame-activity-record-table td:nth-child(3){width:52%}.frame-activity-record-table th:nth-child(4),.frame-activity-record-table td:nth-child(4){width:24%}.frame-activity-record-table .visit-start-row td{border-top:3px solid var(--line-soft)}
.team-forfeit-label{display:block;margin-top:2px;color:var(--coral);font-size:.55rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.frame-result-comment{display:block;max-width:240px;margin-top:4px;color:var(--muted);font-size:.58rem;font-weight:700;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
.frame-forfeit-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.frame-forfeit-options .button{min-width:0;padding:10px 6px;font-size:.72rem;overflow-wrap:anywhere}
@media(max-width:760px){
  .activity-record-table th:nth-child(1){width:27%}
  .activity-record-table th:nth-child(2){width:23%}
  .activity-record-table th:nth-child(3){width:50%}
  .activity-record-table td:nth-child(3){font-size:.57rem!important}
}

/* Club settings use the same compact card hierarchy as the rest of the club.
   Full explanations are available from each labelled help trigger. */
.club-settings-heading{display:inline-flex;align-items:center;gap:7px;max-width:100%;margin:0;padding:0;border:0;background:transparent;color:var(--yellow);font:inherit;font-weight:inherit;text-align:left;cursor:pointer}
.club-settings-heading span{min-width:0;overflow-wrap:anywhere}
.club-settings-heading small{display:grid;place-items:center;flex:0 0 18px;width:18px;height:18px;border:1px solid var(--yellow);border-radius:50%;color:var(--yellow);font-size:.65rem;line-height:1}
.club-settings-heading:hover span,.club-settings-heading:focus-visible span{text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}
#tab-settings .club-settings-panel{display:grid;gap:12px}
#tab-settings .club-settings-panel h2,#tab-settings .club-settings-panel>p.settings-eyebrow{margin:0}
#tab-settings .setting-row{margin:0}
@media(max-width:480px){
  #tab-settings .club-settings-panel{padding:14px}
  #tab-settings .club-settings-heading{font-size:.95rem}
}
#account-view .account-upgrade-row{margin-bottom:8px;border-color:rgba(245,197,66,.55);background:linear-gradient(135deg,rgba(245,197,66,.12),rgba(26,107,60,.12))}.account-upgrade-icon{display:grid!important;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--yellow);color:#172218!important;font-size:.78rem!important}.account-upgrade-row .account-row-label{display:grid;gap:2px}.account-upgrade-row .account-row-label b{color:var(--yellow)}.account-upgrade-row .account-row-label small{color:var(--muted);font-size:.68rem;font-weight:600}.upgrade-shell{display:grid;gap:18px}.upgrade-heading{align-items:center;margin-bottom:0}.upgrade-heading h1{margin:5px 0;color:var(--yellow)}.plan-preview-badge{padding:7px 11px;border:1px solid var(--yellow);border-radius:999px;color:var(--yellow);font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.plan-preview-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-color:rgba(98,216,142,.45);background:rgba(98,216,142,.08)}.plan-preview-notice.simulating{border-color:rgba(245,197,66,.55);background:rgba(245,197,66,.09)}.plan-preview-notice strong{color:#62d88e}.plan-preview-notice.simulating strong{color:var(--yellow)}.plan-preview-notice p{margin:5px 0 0;color:var(--muted);font-size:.82rem}.plan-scope-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px;border-color:rgba(245,197,66,.4)}.plan-scope-card h2{margin:3px 0 6px;color:var(--yellow);font-size:1rem}.plan-scope-card p{margin:0;line-height:1.45}.plan-usage-summary{min-width:190px;padding:12px 14px;border-radius:11px;background:var(--card-2);text-align:center}.plan-usage-summary:empty{display:none}.plan-usage-summary strong,.plan-usage-summary span,.plan-usage-summary small{display:block}.plan-usage-summary strong{color:var(--yellow);font-size:1.15rem}.plan-usage-summary span{margin-top:3px;color:var(--text);font-size:.72rem;font-weight:800}.plan-usage-summary small{margin-top:4px;color:var(--muted);font-size:.66rem}.plan-usage-summary .plan-usage-warning{color:var(--coral)}.upgrade-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.plan-card{position:relative;display:flex;min-width:0;flex-direction:column;padding:19px;border:2px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden}.plan-card.recommended{border-color:var(--yellow);box-shadow:0 12px 30px rgba(0,0,0,.2)}.plan-card.requested{box-shadow:0 0 0 3px rgba(245,197,66,.22),0 12px 30px rgba(0,0,0,.22)}.plan-card.current{border-style:dashed}.plan-card-ribbon{margin:-19px -19px 14px;padding:6px;background:var(--yellow);color:#172218;font-size:.65rem;font-weight:950;letter-spacing:.07em;text-align:center;text-transform:uppercase}.plan-card-heading{display:flex;align-items:center;justify-content:space-between;gap:7px}.plan-card-heading h2{margin:0;color:var(--yellow)}.plan-card-heading span{padding:4px 7px;border-radius:999px;background:var(--green);color:#fff;font-size:.61rem;font-weight:900;white-space:nowrap}.plan-price{display:grid;min-height:55px;margin:13px 0}.plan-price>strong{color:var(--text);font-size:1.55rem}.plan-price>strong small{margin-left:3px;color:var(--muted);font-size:.72rem}.plan-price>small,.plan-price>span{color:var(--muted);font-size:.72rem}.plan-card ul{display:grid;gap:9px;flex:1;margin:5px 0 18px;padding:0;list-style:none}.plan-card li{position:relative;padding-left:18px;color:var(--muted);font-size:.78rem;line-height:1.35}.plan-card li::before{content:'✓';position:absolute;left:0;color:#62d88e;font-weight:900}.plan-card .button{padding-inline:10px;white-space:normal}.event-pass-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;border-color:rgba(245,197,66,.5);background:linear-gradient(135deg,var(--card),rgba(245,197,66,.08))}.event-pass-card h2{margin:3px 0 7px;color:var(--yellow)}.event-pass-card h2 b{margin-left:5px}.event-pass-card p{max-width:720px;margin:0;color:var(--muted);font-size:.82rem}.plan-comparison{padding:20px}.plan-table{font-size:.72rem;table-layout:auto}.plan-table th,.plan-table td{padding:8px 7px;overflow-wrap:normal;word-break:normal}.plan-table th:first-child,.plan-table td:first-child{min-width:142px;white-space:nowrap;color:var(--text)}.plan-table th:not(:first-child),.plan-table td:not(:first-child){min-width:88px;text-align:center}.plan-feature-help{display:inline-flex;align-items:center;gap:5px;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:750;white-space:nowrap;cursor:help}.plan-feature-help i{display:grid;place-items:center;width:15px;height:15px;border:1px solid currentColor;border-radius:50%;font-size:.58rem;font-style:normal}.plan-feature-help:hover span,.plan-feature-help:focus-visible span{text-decoration:underline;text-decoration-style:dotted}.simulation-impact{margin-top:14px;padding:13px;border:1px solid rgba(255,139,112,.45);border-radius:10px;background:rgba(255,139,112,.08)}.simulation-impact.safe{border-color:rgba(98,216,142,.45);background:rgba(98,216,142,.08)}.simulation-impact p{margin:7px 0 0}.simulation-impact ul{max-height:220px;margin:9px 0;padding-left:20px;overflow:auto}.simulation-impact li{margin:6px 0;font-size:.78rem}.plan-option-locked{position:relative;opacity:.46;filter:saturate(.35);cursor:not-allowed!important}.plan-option-locked::after{content:'🔒';margin-left:4px;font-size:.66em}.plan-gate-panel{position:relative;overflow:hidden}.plan-gate-panel.plan-locked>.club-record-table-wrap{filter:blur(4px);opacity:.45;pointer-events:none;user-select:none}.plan-gate-cover{position:absolute;z-index:2;inset:54px 16px 16px;display:grid;place-content:center;gap:5px;padding:18px;border:1px solid rgba(245,197,66,.55);border-radius:12px;background:rgba(17,31,23,.89);color:var(--text);text-align:center;cursor:pointer}.plan-gate-cover.hidden{display:none}.plan-gate-cover span{font-size:1.4rem}.plan-gate-cover strong{color:var(--yellow)}.plan-gate-cover small{color:var(--muted)}.premium-preview-lock.unlocked{background:#237a48}.alert-action-button{margin-top:12px}.premium-feature-preview{position:relative;display:grid;width:100%;grid-template-columns:minmax(0,1fr) minmax(180px,.65fr) auto;align-items:center;gap:18px;margin:15px 0;padding:18px;border:1px solid rgba(245,197,66,.48);background:linear-gradient(135deg,var(--card),rgba(245,197,66,.08));color:var(--text);text-align:left;cursor:pointer;overflow:hidden}.premium-feature-preview:hover{border-color:var(--yellow)}.premium-preview-copy{display:grid;gap:4px}.premium-preview-copy strong{color:var(--yellow);font-size:1rem}.premium-preview-copy small{color:var(--muted);line-height:1.4}.premium-preview-chart{display:flex;height:48px;align-items:flex-end;gap:7px;padding:6px 9px;border-radius:8px;background:var(--card-2);filter:blur(3px);opacity:.65}.premium-preview-chart i{flex:1;border-radius:3px 3px 0 0;background:var(--yellow)}.premium-preview-chart i:nth-child(1){height:35%}.premium-preview-chart i:nth-child(2){height:70%}.premium-preview-chart i:nth-child(3){height:48%}.premium-preview-chart i:nth-child(4){height:92%}.premium-preview-chart i:nth-child(5){height:63%}.premium-preview-lock{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;background:var(--green);color:#fff;font-size:.72rem;white-space:nowrap}.premium-preview-lock span{font-size:1.05rem}
#advanced-stats-preview.plan-locked{min-height:126px}#advanced-stats-preview.plan-locked>:not(#advanced-stats-lock){filter:blur(1.7px);opacity:.55}#advanced-stats-preview>.premium-preview-chart,#advanced-stats-preview.plan-locked>.premium-preview-chart{filter:none!important;opacity:1!important}#advanced-stats-lock{inset:10px}
.plan-currency{margin:7px 0 0;color:var(--muted);font-size:.72rem;font-weight:700}.plan-pair-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.plan-compare-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.plan-compare-buttons .button{flex:1 1 150px}.plan-compare-buttons .button.active{border-color:var(--yellow);background:var(--yellow);color:#172218}.plan-full-table{width:100%;font-size:.63rem;table-layout:fixed}.plan-full-table th:first-child,.plan-full-table td:first-child{width:30%}.plan-full-table th:not(:first-child),.plan-full-table td:not(:first-child){width:17.5%;text-align:center}.plan-pair-table{width:100%;font-size:.68rem}.plan-pair-table th:first-child,.plan-pair-table td:first-child{width:42%;min-width:126px}.plan-cell-lines{display:grid;gap:2px}.plan-cell-lines>span{display:block;white-space:nowrap}@media(max-width:760px){.premium-feature-preview{grid-template-columns:minmax(0,1fr) auto}.premium-preview-chart{display:none}.plan-full-table{font-size:.5rem}.plan-full-table th,.plan-full-table td{padding:5px 2px!important}.plan-full-table .plan-feature-help{font-size:.5rem;white-space:normal}.plan-full-table .plan-feature-help span{overflow:visible;text-overflow:clip;word-break:keep-all}.plan-pair-table{font-size:.59rem}.plan-pair-table th,.plan-pair-table td{padding:5px 4px!important}.plan-pair-table th:first-child,.plan-pair-table td:first-child{width:42%;min-width:0;white-space:nowrap;overflow-wrap:normal!important;word-break:keep-all!important}.plan-pair-table th:not(:first-child),.plan-pair-table td:not(:first-child){width:29%;min-width:0}.plan-feature-help{max-width:100%;font-size:.59rem}.plan-feature-help span{overflow:hidden;text-overflow:ellipsis}.plan-cell-lines>span{white-space:normal}.plan-cell-lines.compact-lines{font-size:.55rem}.plan-pair-table .plan-cell-lines.compact-lines>span{white-space:nowrap!important;overflow-wrap:normal}}
.staff-plan-paused{opacity:.68}.plan-paused-label{color:var(--coral);font-weight:850}.staff-plan-paused select{opacity:.65}
.plan-activity-note{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;padding:8px 10px;border:1px solid rgba(245,197,66,.45);border-radius:8px;background:rgba(245,197,66,.08);color:var(--yellow);font-size:.7rem;font-weight:800}.plan-activity-note .button{flex:0 0 auto;margin:0}
.club-report-preview{position:relative;display:grid;gap:7px;margin:10px 0;padding:20px;border:1px solid var(--line);border-radius:10px;background:#f8f6ef;color:#183022;overflow:hidden}.club-report-preview h3,.club-report-preview p{margin:0}.club-report-preview>div{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;align-items:baseline;gap:5px 8px;margin-top:8px}.club-report-preview>div b{color:#1a6b3c;font-size:1.15rem}.club-report-preview>div span{font-size:.66rem}.report-preview-brand{color:#1a6b3c;font-weight:950}.report-watermark{position:absolute;right:-43px;bottom:22px;transform:rotate(-32deg);padding:4px 45px;background:rgba(26,107,60,.15);color:rgba(26,107,60,.62);font-size:.64rem;text-transform:uppercase}
.plan-impact-summary{display:grid;width:100%;margin-top:9px;padding:8px;border:1px solid rgba(255,139,112,.45);border-radius:8px;background:rgba(255,139,112,.08);color:var(--text);cursor:pointer}.plan-impact-summary b{color:var(--coral)!important;font-size:1rem!important}.plan-impact-summary span{font-size:.65rem!important}
@media(max-width:480px){.plan-scope-card{grid-template-columns:minmax(0,1fr)}.plan-usage-summary{min-width:0}.upgrade-plan-grid{grid-template-columns:minmax(0,1fr)}.event-pass-card,.plan-preview-notice{align-items:stretch;flex-direction:column}.event-pass-card .button,.plan-preview-notice .button{width:100%}.plan-comparison{padding:10px}.plan-table{font-size:.62rem}.plan-table th,.plan-table td{padding:6px 5px}.plan-table th:first-child,.plan-table td:first-child{min-width:128px}.plan-table th:not(:first-child),.plan-table td:not(:first-child){min-width:72px}.premium-feature-preview{grid-template-columns:minmax(0,1fr);gap:11px}.premium-preview-lock{justify-content:center}.plan-preview-badge{align-self:flex-start}}

/* Membership plan status and dense, genuinely responsive comparisons. */
.header-plan-badge{flex:0 0 auto;padding:6px 11px;border:1px solid var(--yellow);border-radius:999px;background:#104c2a;color:var(--yellow);font-size:.7rem;font-weight:950;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}.header-plan-badge:hover,.header-plan-badge:focus-visible{background:var(--yellow);color:#172218}.header-plan-badge.simulating::before{content:'Test · '}.plan-comparison .club-record-table-wrap{overflow-x:hidden!important}.plan-table{width:100%;table-layout:fixed!important;font-size:.6rem;line-height:1.25}.plan-table th,.plan-table td{min-width:0!important;padding:6px 4px!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}.plan-table th:first-child,.plan-table td:first-child{width:30%;min-width:0!important;white-space:normal!important;text-align:left}.plan-table th:not(:first-child),.plan-table td:not(:first-child){min-width:0!important;text-align:center}.plan-feature-help{display:block;max-width:100%;white-space:normal;text-align:left;line-height:1.2;overflow-wrap:anywhere}.plan-feature-help span{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere}.plan-cell-lines>span,.plan-pair-table .plan-cell-lines.compact-lines>span{white-space:normal!important;overflow-wrap:anywhere!important}.plan-pair-table{font-size:.64rem}.plan-pair-table th:first-child,.plan-pair-table td:first-child{width:40%;min-width:0!important}.plan-pair-table th:not(:first-child),.plan-pair-table td:not(:first-child){width:30%}.plan-limit-alert #alert-message{white-space:pre-line;text-align:center;line-height:1.5}.plan-limit-alert .modal-actions{justify-content:center}.plan-limit-alert #alert-ok{min-width:120px}.team-new-club-player{margin:0 0 12px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--card-2)}.team-new-club-player .competition-inline-player{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.team-new-club-player input{margin:0}.team-match-statistics .club-record-table-wrap{overflow-x:hidden!important}.team-match-stats-table{width:100%;min-width:0!important;table-layout:fixed;font-size:.66rem}.team-match-stats-table th,.team-match-stats-table td{padding:6px 3px!important;line-height:1.15;white-space:normal!important;overflow-wrap:anywhere}.team-match-stats-table th:nth-child(1){width:12%}.team-match-stats-table th:nth-child(2){width:8%}.team-match-stats-table th:nth-child(3),.team-match-stats-table th:nth-child(4){width:20%}.team-match-stats-table th:nth-child(5){width:14%}.team-match-stats-table th:nth-child(6){width:11%}.team-match-stats-table th:nth-child(7){width:15%}.team-match-stats-table .button{width:100%;min-height:30px;padding:5px 2px;font-size:.58rem;white-space:normal}
@media(max-width:480px){.top-actions{gap:4px}.header-plan-badge{padding:5px 7px;font-size:.57rem;letter-spacing:.02em}.plan-table{font-size:.48rem}.plan-table th,.plan-table td{padding:5px 2px!important}.plan-feature-help{font-size:.48rem}.plan-cell-lines.compact-lines{font-size:.47rem}.plan-pair-table{font-size:.57rem}.plan-pair-table .plan-feature-help{font-size:.57rem}.team-new-club-player .competition-inline-player{grid-template-columns:minmax(0,1fr)}.team-match-statistics{padding:8px!important}.team-match-stats-table{font-size:.56rem}.team-match-stats-table th,.team-match-stats-table td{padding:5px 1px!important}.team-match-stats-table .competition-player-link{font-size:.56rem;line-height:1.1}.team-match-stats-table .button{min-height:27px;padding:4px 1px;font-size:.51rem}}
.event-pass-card .button{flex:0 1 160px;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.2}.club-plan-review-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;border-color:rgba(255,139,112,.55);background:rgba(255,139,112,.08)}.club-plan-review-banner h2{margin:3px 0;color:var(--coral)}.club-plan-review-banner p{margin:0}.club-plan-review-actions,.club-branding-actions{display:flex;gap:8px;flex-wrap:wrap}.club-branding-preview{--club-brand-accent:#f5c542;display:grid;gap:11px;margin:13px 0;padding:14px;border:1px solid var(--club-brand-accent);border-radius:12px;background:var(--card-2)}.club-branding-preview-identity{display:flex;align-items:center;gap:13px;min-width:0}.club-branding-preview-identity>div{display:grid;gap:4px;min-width:0}.club-branding-preview-logo{flex:0 0 auto;width:58px;height:58px;object-fit:contain}.club-branding-preview-advertisement{display:block;width:100%;height:auto;aspect-ratio:7.5/1;object-fit:contain;border:1px solid var(--line);border-radius:7px;background:var(--card)}.club-branding-preview strong{color:var(--club-brand-accent);font-size:1rem}.club-branding-preview span{color:var(--muted);font-size:.74rem}.club-branding-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.club-branding-field{display:grid;gap:7px;color:var(--text-label);font-size:.76rem;font-weight:800}.club-branding-control{position:relative;display:grid;gap:8px;min-height:48px}.club-branding-control input{width:100%}.branding-logo-field .club-branding-control{grid-template-columns:minmax(0,1fr) auto;align-items:center}.branding-logo-field .club-branding-lock{grid-column:1/-1}.club-branding-lock{inset:0;min-height:48px;padding:6px 12px;grid-template-columns:auto auto 1fr;place-content:center;align-items:center;gap:7px;background:rgba(17,31,23,.96)}.club-branding-lock span{font-size:.9rem}.club-branding-lock small{text-align:left}.club-settings-subsection{display:grid;gap:10px;padding-top:14px}.club-settings-subsection+.club-settings-subsection{margin-top:16px;border-top:1px solid var(--line)}.club-settings-subsection h3{margin:0;color:var(--text);font-size:.82rem}.staff-plan-access-list{display:grid;gap:8px;margin:12px 0}.staff-plan-access-option{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--card-2)}.staff-plan-access-option span{display:grid;gap:2px}.staff-plan-access-option small{color:var(--muted)}
@media(max-width:480px){.club-plan-review-banner{align-items:stretch;flex-direction:column}.club-plan-review-actions .button{flex:1}.branding-logo-field .club-branding-control{grid-template-columns:1fr}.branding-logo-field .button{justify-self:start}.event-pass-card .button{flex-basis:auto;width:100%}}

/* Club navigation, home summaries, staff records and membership alignment. */
.club-name-row h1{max-width:100%;text-overflow:clip}

/* Club-plan access and compact membership scope refinements. */
.club-card-plan-paused{border-color:rgba(245,197,66,.7);cursor:pointer}
.club-card-plan-paused:hover,.club-card-plan-paused:focus-visible{border-color:var(--yellow);box-shadow:0 0 0 2px rgba(245,197,66,.12)}
.club-home-plan-paused{width:max-content;margin:8px 0 0!important;padding:5px 9px;border:1px solid rgba(245,197,66,.75);border-radius:999px;background:rgba(245,197,66,.12);color:var(--yellow)!important;font-size:.7rem!important;font-weight:950;letter-spacing:.04em;text-transform:uppercase}
.club-subscription-hold-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px;padding:18px;border-color:rgba(245,197,66,.75);background:linear-gradient(135deg,var(--card),rgba(245,197,66,.1))}.club-subscription-hold-banner>div{min-width:0;flex:1}.club-subscription-hold-banner h2{margin:4px 0;color:var(--yellow)}.club-subscription-hold-banner p{margin:0}#club-subscription-hold-action{flex:0 1 auto;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}@media(max-width:480px){.club-subscription-hold-banner{align-items:stretch;flex-direction:column}#club-subscription-hold-action{width:100%}}.tracking-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.tracking-options>span{grid-column:1/-1;color:var(--yellow);font-size:.75rem;font-weight:900}.tracking-options label{display:flex;align-items:center;gap:8px;margin:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);font-size:.75rem}.tracking-options input{width:18px;height:18px;margin:0;accent-color:var(--yellow)}
.competition-table-default .competition-table-tracking{margin-top:2px;background:var(--card)}.competition-table-default .competition-table-tracking label{background:var(--card-2)}
.plan-scope-card{grid-template-columns:minmax(0,1fr) minmax(130px,160px);gap:14px}
.plan-usage-summary{width:100%;min-width:0;padding:10px 9px}
.plan-usage-summary strong{font-size:1.05rem}
.plan-usage-summary span{font-size:.68rem}
.plan-usage-summary small{font-size:.6rem;overflow-wrap:anywhere}
@media(max-width:480px){.plan-scope-card{grid-template-columns:minmax(0,1fr) minmax(118px,140px);gap:10px;padding:14px}}
@media(max-width:430px){.plan-scope-card{grid-template-columns:minmax(0,1fr)}.plan-usage-summary{width:min(180px,100%);justify-self:center}}
#followers-section{scroll-margin-top:calc(var(--app-header-height,59px) + 14px)}
.club-home-meta-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;margin-top:8px}.club-home-metrics{display:flex;align-items:center;justify-content:flex-start;gap:clamp(7px,2vw,17px);min-width:0;color:var(--muted);font-size:.67rem;white-space:nowrap}.club-home-metrics span{min-width:0;white-space:nowrap}

/* The home score stack has three deliberately even rows, whether it is a
   stand-alone match or a frame inside a competition. */
.live-match-card .live-card-score-stack{display:grid;grid-template-rows:repeat(3,1.35em);align-items:center;row-gap:0;margin:5px 0 0;line-height:1}.live-match-card .live-card-score-stack span,.live-match-card .live-card-score-stack strong{display:block;align-self:center;line-height:1}.live-match-card .live-card-score-stack strong{color:var(--yellow)}
.live-tournament-status-lines{display:grid;gap:2px}.live-tournament-status-lines>span{display:block}
@media(max-width:430px){.club-home-meta-row{gap:7px}.club-home-metrics{gap:5px;font-size:.59rem}.club-home-role{font-size:.62rem!important}}
.club-home-role{flex:0 0 auto;margin:0 0 0 auto!important;color:var(--yellow)!important;font-size:.7rem!important;font-weight:900;text-transform:uppercase;white-space:nowrap}
.home-live-club-group{display:grid;gap:8px;margin-top:12px}.home-live-club-group>h3{margin:0;padding:0 2px;color:var(--yellow);font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}
.staff-record-table th:nth-child(1){width:30%}.staff-record-table th:nth-child(2){width:28%}.staff-record-table th:nth-child(3){width:22%}.staff-record-table th:nth-child(4){width:20%}
.staff-record-table select{width:100%;min-width:0;min-height:40px;padding:8px 20px 8px 7px;line-height:1.25}
.staff-record-table th:last-child,.staff-record-table td:last-child{text-align:right}.staff-record-table td:last-child .button{width:100%;padding-inline:3px;white-space:normal}
.plan-card.current{border:2px solid var(--line);box-shadow:none}
.plan-card ul{align-content:start}
.plan-card-ribbon-slot{display:grid;place-items:stretch;height:27px;margin:-19px -19px 14px}.plan-card-ribbon{display:grid;place-items:center;height:27px;margin:0;padding:0}
.plan-card-pass-note{margin:0 0 12px;padding:9px 10px;border:1px solid rgba(245,197,66,.35);border-radius:9px;background:rgba(245,197,66,.07);color:var(--muted);font-size:.69rem;line-height:1.35}
@media(max-width:760px){#club-view>.club-hero .club-identity{grid-column:1;grid-row:1}#club-view>.club-hero .club-share-actions{grid-column:1;grid-row:2;align-self:end}#club-view>.club-hero .club-follow-qr{grid-column:2;grid-row:1/3;align-self:end}#club-view>.club-hero .hero-actions{grid-column:1/-1;grid-row:3}}
@media(max-width:480px){.staff-record-table th,.staff-record-table td{padding:7px 3px!important;font-size:.61rem!important;overflow-wrap:anywhere}.staff-record-table select{min-height:38px;padding:6px 13px 6px 3px;font-size:.59rem}.staff-record-table .button{font-size:.56rem}}

/* Plan-resolution and settings lock polish. */
.club-plan-review-banner{padding:20px}.club-plan-review-banner>div:first-child{min-width:0}.club-plan-review-banner .muted{line-height:1.48}
#tab-settings>#club-subscription-panel{order:1;border-color:rgba(245,197,66,.55);background:linear-gradient(135deg,var(--card),rgba(245,197,66,.08))}#tab-settings>#follower-settings-panel{order:2}#tab-settings>#club-match-length-panel{order:3}#tab-settings>#live-stream-settings-panel{order:4}#tab-settings>#staff-permissions-panel{order:5}#tab-settings>#staff-plan-access-panel{order:6}#tab-settings>#club-reports-panel{order:7}#tab-settings>#club-api-panel{order:8}#tab-settings>#club-mqtt-panel{order:9}#tab-settings>#delete-club-panel{order:10}
.subscription-expiry-banner{margin:0 auto;padding:12px clamp(16px,4vw,40px);display:flex;align-items:center;justify-content:center;gap:18px;background:#7d281f;color:#fff;border-bottom:1px solid rgba(255,255,255,.25)}.subscription-expiry-banner>div{display:grid;gap:2px}.subscription-expiry-banner span{font-size:.9rem}.subscription-status{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;display:grid;gap:12px;background:var(--card-2)}.subscription-status-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.subscription-status-heading>div{display:grid;gap:3px}.subscription-status-heading b{color:var(--yellow);font-size:1.05rem}.subscription-status-label{color:var(--muted);font-size:.65rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.subscription-status-badge{padding:5px 8px;border-radius:999px;background:rgba(98,216,142,.14);color:#62d88e;font-size:.67rem;font-weight:900;white-space:nowrap}.subscription-status-badge.past_due,.subscription-status-badge.unpaid{background:rgba(255,139,112,.14);color:var(--coral)}.subscription-status-badge.cancelled,.subscription-status-badge.downgrade-scheduled{background:rgba(245,197,66,.14);color:var(--yellow)}.subscription-status-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.subscription-status-details>span{display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--card)}.subscription-status-details small{color:var(--muted);font-size:.65rem;font-weight:800;text-transform:uppercase}.subscription-status-details strong{font-size:.76rem;line-height:1.35}.subscription-status-note,.subscription-scheduled-change{margin:0!important;font-size:.75rem!important;line-height:1.45}.subscription-scheduled-change{padding:9px 10px;border-radius:8px;background:rgba(245,197,66,.1);color:var(--text)!important}.subscription-manage-billing{justify-self:start}.subscription-auto-renew{margin-top:12px;display:flex;align-items:flex-start;gap:10px}.subscription-auto-renew input{margin-top:4px}.subscription-auto-renew span{display:grid;gap:2px}.subscription-auto-renew small{color:var(--muted)}.plan-choice-auto-renew{margin:14px 0 0;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.button-busy-spinner{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:paymentSpin .7s linear infinite}.activity-alert-delivery{display:grid;gap:6px;margin-top:-4px;padding-left:30px;font-size:.78rem;font-weight:800}.activity-alert-delivery select{width:100%}
@media(max-width:480px){.subscription-status-details{grid-template-columns:1fr}.subscription-status-heading{align-items:flex-start}.subscription-status-badge{white-space:normal;text-align:right}}
.subscription-status-details{grid-template-columns:repeat(3,minmax(0,1fr))}.subscription-billing-actions{display:flex;flex-wrap:wrap;gap:9px;padding-top:2px}.billing-review{display:grid;gap:14px;margin-top:16px}.billing-review-club{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:.75rem;font-weight:850}.billing-review-club b{padding:4px 7px;border-radius:999px;background:rgba(245,197,66,.12);color:var(--yellow);font-size:.62rem;letter-spacing:.04em;text-transform:uppercase}.billing-plan-change{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:9px}.billing-plan-card{display:grid;gap:4px;min-width:0;padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--card-2)}.billing-plan-card.single{width:100%}.billing-plan-card.selected{border-color:var(--yellow);background:rgba(245,197,66,.08)}.billing-plan-card small,.billing-review-details small{color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.billing-plan-card strong{color:var(--yellow);font-size:1rem}.billing-plan-card span{font-size:.71rem;line-height:1.35}.billing-plan-arrow{align-self:center;color:var(--yellow);font-size:1.25rem;font-weight:900}.billing-review-details{display:grid;border:1px solid var(--line);border-radius:11px;background:var(--card-2)}.billing-review-details>span{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:10px 12px;border-bottom:1px solid var(--line)}.billing-review-details>span:last-child{border-bottom:0}.billing-review-details strong{font-size:.76rem;text-align:right}.billing-review-renewal{margin:0}.payment-method-handoff{display:grid;gap:8px;margin-top:16px;padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--card-2)}.payment-method-handoff strong{color:var(--yellow)}.payment-method-handoff p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.5}
@media(max-width:760px){.subscription-status-details{grid-template-columns:1fr 1fr}.subscription-status-details>span:last-child{grid-column:1/-1}}
@media(max-width:480px){.subscription-status-details{grid-template-columns:1fr}.subscription-status-details>span:last-child{grid-column:auto}.subscription-billing-actions{display:grid;grid-template-columns:1fr}.subscription-billing-actions .button{width:100%}.billing-plan-change{grid-template-columns:1fr}.billing-plan-arrow{justify-self:center;transform:rotate(90deg)}.billing-review-details>span{align-items:flex-start;flex-direction:column;gap:3px}.billing-review-details strong{text-align:left}}
.club-plan-item-lock.plan-option-locked{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-height:54px;padding:9px 12px;border:1px solid rgba(245,197,66,.55);background:rgba(245,197,66,.07);color:var(--text);text-align:left;opacity:1;filter:none;cursor:pointer!important}.club-plan-item-lock.plan-option-locked::after{content:none}.club-plan-lock-icon{flex:0 0 auto;font-size:1rem}.club-plan-lock-copy{display:grid;gap:2px;min-width:0}.club-plan-lock-copy strong{color:var(--yellow);font-size:.76rem}.club-plan-lock-copy small{color:var(--muted);font-size:.66rem;font-weight:750}.club-export-buttons .club-plan-item-lock{width:100%}
#club-reports-section{position:relative}#club-reports-section.plan-locked{min-height:190px}#club-reports-section.plan-locked>h3,#club-reports-section.plan-locked>p,#club-reports-section.plan-locked>.club-export-buttons{filter:blur(1.7px);opacity:.55;pointer-events:none;user-select:none}.temporary-reports-lock{inset:38px 0 0;min-height:145px;background:rgba(17,31,23,.92)}
#staff-permissions-panel{position:relative;overflow:hidden}#staff-permissions-panel.plan-locked{min-height:330px}#staff-permissions-panel.plan-locked>:is(#staff-permissions,#venue-replacement-settings){filter:blur(3px);opacity:.42;pointer-events:none;user-select:none}#staff-permissions-panel .club-settings-heading{width:100%;min-width:0;line-height:1.25}#staff-permissions-panel .club-settings-feature-lock{inset:64px 14px 14px;min-height:0;background:rgba(17,31,23,.94)}.club-settings-feature-lock{inset:82px 14px 14px;min-height:190px;background:rgba(17,31,23,.9)}
#club-exports-panel{position:relative}#club-exports-panel.plan-locked{min-height:224px}#club-exports-panel.plan-locked>#export-club-workbook,#club-exports-panel.plan-locked>.club-export-buttons{filter:blur(1.7px);opacity:.62;pointer-events:none;user-select:none}.club-exports-lock{inset:43px 0 0;min-height:166px;background:rgba(17,31,23,.9)}
#dashboard-view>#live-matches-banner:not(.hidden){margin-top:22px}#dashboard-view>#live-matches-banner>.section-title{margin-bottom:4px}#dashboard-view>#live-matches-banner>.live-section-primary{margin-top:-6px}#dashboard-view>#live-matches-banner .home-live-club-group{margin-top:2px}
@media(max-width:760px){.club-plan-review-banner{align-items:stretch;flex-direction:column;padding:18px}.club-plan-review-actions{width:100%}.club-plan-review-actions .button{flex:1 1 160px}}
@media(max-width:480px){#staff-permissions-panel.plan-locked{min-height:350px}.club-settings-feature-lock{inset:80px 12px 12px}#club-exports-panel.plan-locked{min-height:246px}.club-exports-lock{inset:42px 0 0;min-height:184px}}

/* Included Club Night status and membership table hierarchy. */
.club-night-status-banner{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:7px 11px;border:1px solid rgba(245,197,66,.58);border-radius:9px;background:rgba(245,197,66,.1);color:var(--text);font-size:.72rem}.club-night-status-banner strong{color:var(--yellow);white-space:nowrap}.club-night-status-banner span{font-weight:900;white-space:nowrap}.club-night-status-banner small{margin-left:auto;color:var(--muted);line-height:1.25}
.club-night-allowance-panel{border-color:rgba(245,197,66,.58)!important;background:linear-gradient(135deg,rgba(245,197,66,.08),transparent 62%),var(--panel)}.club-night-allowance-status{display:grid;gap:9px}.club-night-usage-table{table-layout:fixed}.club-night-usage-table th:first-child,.club-night-usage-table td:first-child{width:48%}.club-night-usage-table td:last-child{color:var(--yellow);font-weight:900;white-space:normal}.club-night-allowance-status p{margin:0;padding:8px 11px;border-radius:8px;background:rgba(74,222,128,.08);color:var(--text);font-size:.75rem;line-height:1.4}
.inline-link{display:inline;padding:0;border:0;background:transparent;color:var(--yellow);font:inherit;font-weight:900;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;cursor:pointer}
.plan-table{font-size:.68rem}.plan-table th,.plan-table td{font-size:inherit}.plan-feature-help{font-size:inherit!important;font-weight:850}.plan-full-table .plan-feature-help,.plan-full-table .plan-cell-lines,.plan-full-table .plan-cell-lines.compact-lines{font-size:inherit!important}.plan-compare-buttons{flex-wrap:nowrap}.plan-compare-buttons .button{flex:1 1 0;min-width:0;padding-inline:5px;font-size:.68rem;white-space:nowrap}
@media(max-width:480px){.club-night-status-banner{align-items:flex-start;flex-wrap:wrap;font-size:.64rem}.club-night-status-banner small{width:100%;margin-left:0}.plan-table{font-size:.55rem}.plan-feature-help,.plan-full-table .plan-feature-help{font-size:inherit!important}.plan-compare-buttons{gap:4px}.plan-compare-buttons .button{padding:7px 2px;font-size:.53rem;letter-spacing:-.01em}}
.draft-round-best-stack{display:grid;gap:10px}.draft-round-best-choice .best-presets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.draft-round-best-choice .best-presets button{min-width:0}

/* Keep Team Match frame identifiers on one line and give that column room. */
.team-match-stats-table th:nth-child(1){width:10%}.team-match-stats-table th:nth-child(2){width:12%}.team-match-stats-table th:nth-child(3),.team-match-stats-table th:nth-child(4){width:19%}.team-match-stats-table th:nth-child(5){width:13%}.team-match-stats-table th:nth-child(6){width:11%}.team-match-stats-table th:nth-child(7){width:16%}.team-match-stats-table th:nth-child(2),.team-match-stats-table td:nth-child(2){white-space:nowrap!important;overflow-wrap:normal}

/* Match result refinements. */
.match-stat-link.match-stat-tooltip{text-decoration:none}.match-score-metric b{display:grid;gap:2px}.match-score-metric b i{font-style:normal}.match-score-metric b i:nth-child(2){color:var(--yellow);font-size:1rem}.match-screen-winner{margin:10px 0 0}.winner-column{background:color-mix(in srgb,var(--yellow) 12%,transparent)!important;color:var(--yellow)!important;font-weight:900}.standalone-result-row.viewable{cursor:pointer}.standalone-result-row.viewable:hover{background:var(--card-2)}

/* API documentation and per-club MQTT integration. */
.extras-card{appearance:none;text-decoration:none}.extras-card:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.account-row-link{text-decoration:none}.account-row-label{display:grid;gap:3px;min-width:0}.account-row-label b{color:var(--text)}.account-row-label small{color:var(--muted);font-size:.72rem;font-weight:500;line-height:1.35}.account-row-preview{border-style:dashed;border-color:rgba(245,197,66,.7);background:linear-gradient(135deg,var(--card),rgba(245,197,66,.06))}.integration-doc-link{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:13px 0;padding:11px 13px;border:1px solid var(--yellow);border-radius:9px;background:rgba(245,197,66,.07);color:var(--yellow);font-size:.82rem;font-weight:850;text-decoration:none}.integration-doc-link:hover{background:rgba(245,197,66,.13)}.mqtt-preview-status{margin-bottom:12px;padding:13px;border:1px solid rgba(245,197,66,.65);border-radius:10px;background:rgba(245,197,66,.08)}.mqtt-preview-status strong{color:var(--yellow)}.mqtt-preview-status p{margin:5px 0 0;color:var(--muted);font-size:.8rem;line-height:1.45}.mqtt-preview-form{margin:14px 0 0;padding:0;border:0}.mqtt-preview-form:disabled{opacity:.62}.mqtt-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mqtt-preview-grid label{margin:0}.mqtt-preview-wide{grid-column:1/-1}.mqtt-preview-check{display:flex;align-items:center;gap:8px}.mqtt-preview-check input,.mqtt-preview-events input{width:auto}.mqtt-preview-events{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-top:18px;padding:13px;border:1px solid var(--line);border-radius:10px}.mqtt-preview-events strong{grid-column:1/-1;color:var(--text)}.mqtt-preview-events label{display:flex;align-items:center;gap:7px;margin:0;color:var(--muted);font-size:.78rem}.mqtt-preview-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.mqtt-preview-actions .button{margin:0}.mqtt-preview-form button:disabled{cursor:not-allowed;filter:saturate(.35)}
@media(max-width:480px){.mqtt-preview-grid,.mqtt-preview-events,.mqtt-preview-actions{grid-template-columns:1fr}.mqtt-preview-wide,.mqtt-preview-events strong{grid-column:1}}
.mqtt-settings-panel{position:relative;min-width:0;overflow:hidden}.mqtt-settings-panel .club-settings-heading{color:inherit;text-decoration:none}.mqtt-enabled-check{display:flex;align-items:flex-start;gap:10px;margin:0 0 15px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.mqtt-enabled-check input{width:auto;margin-top:2px}.mqtt-enabled-check span{display:grid;gap:3px;min-width:0}.mqtt-enabled-check small{color:var(--muted);font-size:.7rem;line-height:1.35}.mqtt-settings-panel.plan-locked{min-height:390px}.mqtt-settings-panel.plan-locked>.mqtt-preview-status,.mqtt-settings-panel.plan-locked>.integration-doc-link,.mqtt-settings-panel.plan-locked>.mqtt-preview-form{filter:blur(1.7px);opacity:.55;pointer-events:none;user-select:none}.mqtt-settings-panel .club-settings-feature-lock{inset:92px 14px 14px;min-height:260px}.mqtt-preview-grid>*,.mqtt-preview-events>*{min-width:0;overflow-wrap:anywhere}.mqtt-preview-grid input{width:100%;min-width:0}.mqtt-preview-status[data-status="connected"]{border-color:rgba(98,216,142,.65);background:rgba(98,216,142,.08)}.mqtt-preview-status[data-status="connected"] strong{color:#62d88e}.mqtt-preview-status[data-status="error"]{border-color:rgba(255,139,112,.65);background:rgba(255,139,112,.08)}.mqtt-preview-status[data-status="error"] strong{color:var(--coral)}
@media(max-width:760px){.mqtt-preview-grid,.mqtt-preview-events,.mqtt-preview-actions{grid-template-columns:minmax(0,1fr)}.mqtt-preview-wide,.mqtt-preview-events strong{grid-column:1}.mqtt-settings-panel .club-settings-feature-lock{inset:110px 12px 12px}}

/* Club integrations stay compact until opened and never create sideways page scroll. */
#tab-settings .integration-settings-panel{display:block;min-width:0;overflow:hidden}#tab-settings .integration-settings-panel.hidden{display:none!important}.integration-settings-panel.plan-locked{min-height:0}.integration-settings-panel.plan-locked>.integration-settings-body{display:none}.integration-settings-panel.plan-locked .integration-summary-end b{border-color:var(--yellow);color:var(--yellow)}.integration-settings-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;cursor:pointer;list-style:none}.integration-settings-summary::-webkit-details-marker{display:none}.integration-settings-summary>span:first-child{display:grid;gap:4px;min-width:0}.integration-settings-summary strong{color:var(--yellow);font-size:1.05rem;line-height:1.25;overflow-wrap:anywhere}.integration-settings-summary small{color:var(--muted);font-size:.72rem;line-height:1.4;overflow-wrap:anywhere}.integration-summary-end{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.integration-summary-end b{max-width:145px;padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.62rem;line-height:1.2;text-align:center;overflow-wrap:anywhere}.integration-summary-end i{color:var(--yellow);font-size:1.35rem;font-style:normal;transition:transform .15s}.integration-settings-panel[open] .integration-summary-end i{transform:rotate(90deg)}.integration-settings-body{display:grid;gap:10px;min-width:0;padding-top:15px;border-top:1px solid var(--line-soft);margin-top:15px}.integration-settings-controls{position:relative;display:grid;gap:10px;min-width:0}.api-settings-panel label,.api-settings-panel input{min-width:0;width:100%}.api-settings-panel .api-key-list{min-width:0;margin:4px 0}.api-key-row{min-width:0;flex-wrap:wrap}.api-key-row span{flex:1 1 190px}.api-key-row b,.api-key-row small{white-space:normal;overflow-wrap:anywhere}.mqtt-preview-wide small{display:block;margin-top:5px;color:var(--muted);font-size:.68rem;line-height:1.35}.mqtt-preview-wide input[readonly]{border-style:dashed;color:var(--muted);cursor:not-allowed}
@media(max-width:480px){.integration-settings-summary{align-items:start;gap:8px}.integration-summary-end{align-items:flex-end;flex-direction:column-reverse;gap:5px}.integration-summary-end b{max-width:90px;font-size:.55rem}.integration-settings-summary strong{font-size:.95rem}.integration-settings-summary small{font-size:.66rem}.integration-settings-body{padding-top:12px;margin-top:12px}.api-key-row .button{width:100%}}

/* MQTT controls use the same compact field rhythm as the rest of Club Settings. */
.mqtt-preview-grid select{width:100%;min-width:0}.mqtt-topic-copy{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:0;margin-top:6px;padding:10px 11px;border:1px solid var(--line);border-radius:8px;background:var(--input);color:var(--muted);font:inherit;text-align:left;cursor:pointer}.mqtt-topic-copy:hover,.mqtt-topic-copy:focus-visible{border-color:var(--yellow);color:var(--text)}.mqtt-topic-copy span{min-width:0;overflow-wrap:anywhere}.mqtt-topic-copy i{flex:0 0 auto;color:var(--yellow);font-size:1rem;font-style:normal}.mqtt-tls-toggle{display:flex;align-items:center;justify-content:flex-start;align-self:end;gap:9px;min-height:44px;margin:0;padding:0;white-space:nowrap;cursor:pointer}.mqtt-tls-toggle>input{position:absolute;width:1px!important;height:1px;opacity:0;pointer-events:none}.mqtt-toggle-ui{position:relative;display:inline-block;flex:0 0 42px;width:42px;height:24px;border:1px solid var(--line);border-radius:999px;background:var(--card-2);transition:.18s}.mqtt-toggle-ui i{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:.18s}.mqtt-tls-toggle>input:checked+.mqtt-toggle-ui{border-color:var(--yellow);background:rgba(245,197,66,.18)}.mqtt-tls-toggle>input:checked+.mqtt-toggle-ui i{left:21px;background:var(--yellow)}.mqtt-tls-toggle>input:focus-visible+.mqtt-toggle-ui{outline:3px solid color-mix(in srgb,var(--yellow) 45%,transparent);outline-offset:2px}.mqtt-tls-toggle>b{color:var(--text);font-size:.82rem}

/* Filtered live cards are the home design, without repeating the open club. */
.fixture-filter-live{margin-bottom:14px}.fixture-filter-live .live-card-club{display:block}
:is(.match-record-table,.profile-record-table){font-size:.62rem}:is(.match-record-table,.profile-record-table) :is(th,td){padding:6px 4px!important}

/* Past Matches competitions are the density source of truth. The same class is
   used by 1 vs 1 and player-profile histories so generic cell and link styles
   cannot silently enlarge one version of the same record table. */
.club-history-table{font-size:.62rem;line-height:normal}.club-history-table th{font-size:.62rem}.club-history-table td{font-size:.72rem}.club-history-table td small,.club-history-table .record-status{font-size:.62rem}.club-history-table .record-meta,.club-history-table .record-score,.club-history-table .competition-player-link{font-size:.72rem}.club-history-table .record-score-link{font-size:inherit}

/* Club match records use the same five-column density at every filter size. */
.tournament-record-table{width:100%;min-width:0!important;table-layout:fixed;font-size:.62rem}.tournament-record-table th,.tournament-record-table td{padding:6px 4px!important;white-space:normal!important;overflow-wrap:anywhere}.tournament-record-table th:nth-child(1){width:21%!important}.tournament-record-table th:nth-child(2){width:35%!important}.tournament-record-table th:nth-child(3){width:15%!important}.tournament-record-table th:nth-child(4){width:13%!important}.tournament-record-table th:nth-child(5){width:16%!important}.tournament-record-table th:nth-child(3),.tournament-record-table td:nth-child(3),.tournament-record-table th:nth-child(4),.tournament-record-table td:nth-child(4),.tournament-record-table th:nth-child(5),.tournament-record-table td:nth-child(5){display:table-cell!important;text-align:center}.club-summary{gap:1px}.live-team-score-stack{align-items:stretch;text-align:left;row-gap:3px}.live-team-score-stack span,.live-team-score-stack strong{margin:0!important;text-align:left}.live-team-score-stack strong{align-self:stretch}

/* Result screens keep their overview compact; detailed shot statistics live in
   the completed-frame controller view. */
.winner-column{background:transparent!important}
.match-screen-metrics.single{grid-template-columns:minmax(0,1fr)}
.match-screen-metrics.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.detailed-results-table th:nth-child(1){width:12%}.detailed-results-table th:nth-child(2),.detailed-results-table th:nth-child(3){width:28%}.detailed-results-table th:nth-child(4){width:16%}.detailed-results-table th:nth-child(5){width:16%}
.detailed-results-table th:last-child,.standalone-results-table th:last-child{white-space:nowrap!important}
.standalone-results-table{min-width:520px!important}
.winner-stays-completed .round-heading{cursor:default}
.plan-limit-alert .modal-actions{align-items:stretch}.plan-limit-alert .modal-actions>.button{display:inline-flex;align-items:center;justify-content:center;min-width:150px;margin:0}
.team-match-stats-table th:nth-child(1){width:9%}.team-match-stats-table th:nth-child(2){width:9%}.team-match-stats-table th:nth-child(3),.team-match-stats-table th:nth-child(5){width:11%}.team-match-stats-table th:nth-child(4),.team-match-stats-table th:nth-child(6){width:22%}.team-match-stats-table th:nth-child(7){width:16%}
.team-match-stats-table th:last-child,.team-match-stats-table td:last-child,.team-match-stats-table td:last-child *{white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}
.team-match-stats-table tr[data-team-round-start] td{border-top:4px solid var(--yellow)}
.team-match-stats-table :is(th,td):nth-child(3){border-left:4px solid var(--yellow)}
.team-result-heading{width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:help}
.team-result-heading:focus-visible{outline:2px solid var(--yellow);outline-offset:1px}
.team-match-stats-table th{padding-inline:1px!important;font-size:.54rem!important;letter-spacing:-.02em;white-space:nowrap!important}
.advanced-extension-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.advanced-extension-stats>div{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--card-2);text-align:center}.advanced-extension-stats span{color:var(--muted);font-size:.66rem;font-weight:850;text-transform:uppercase}.advanced-extension-stats b{color:var(--yellow);font-size:1.1rem}
@media(max-width:480px){.advanced-extension-stats{grid-template-columns:1fr}.plan-limit-alert .modal-actions>.button{width:100%}.team-match-stats-table th{font-size:.46rem!important;letter-spacing:-.04em}}
@media(max-width:430px){#tab-fixtures .club-history-table td.record-date,#tab-fixtures .club-history-table td.record-date *{font-size:.49rem!important;letter-spacing:-.035em;white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}#tab-fixtures .club-history-table .record-status{padding:2px 1px!important;white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}}
.cast-progress-dialog .modal-card{max-width:460px}.cast-progress-dialog #cast-progress-message{min-height:3em;line-height:1.55}.cast-progress-meter{height:8px;margin-top:18px;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:var(--card-2)}.cast-progress-meter span{display:block;width:100%;height:100%;background:var(--yellow);transform-origin:left center;transition:transform .25s linear}.cast-progress-dialog .modal-actions{justify-content:stretch}.cast-progress-dialog .modal-actions .button{width:100%}
.competition-stat-frame{display:block;width:max-content;margin:4px auto 0;padding:2px 5px;border:1px solid currentColor;border-radius:999px;font-size:7px;font-weight:900;letter-spacing:.05em;white-space:nowrap}.competition-stat-frame.excluded{color:var(--red)}.competition-stat-frame.corrected{color:var(--mint)}
.followed-club[role="link"]{cursor:pointer}.followed-club[role="link"]:hover,.followed-club[role="link"]:focus-visible{border-color:var(--yellow)}
.live-match-card .live-card-score-stack strong{display:flex;align-items:baseline;gap:7px}.live-match-card .live-score-format{color:var(--muted);font-size:.62em;font-weight:700;white-space:nowrap}
.time-tip.player-tip{max-width:min(320px,calc(100vw - 16px));white-space:pre-line}
.team-position-table .team-roster-action{width:auto!important;min-width:0!important;padding-inline:3px;white-space:nowrap!important}.team-position-table th:last-child{white-space:nowrap}.team-open-position{padding:2px 4px;border:0;background:transparent;color:var(--yellow);font:inherit;font-weight:800;text-decoration:underline;text-decoration-style:dotted;cursor:pointer}.duration-heading{font-size:.58rem!important;letter-spacing:0!important;white-space:nowrap!important}
.profile-current-streak{display:inline-flex;align-items:center;margin:0;padding:4px 8px;border:1px solid color-mix(in srgb,var(--mint) 52%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--mint) 10%,transparent);color:var(--mint);font-size:.66rem;font-weight:800;line-height:1;white-space:nowrap}

/* Home keeps live play compact; the detailed cards live directly below the Club banner. */
.club-home-live-summary{display:grid;gap:3px;margin:12px 0 0;padding:11px 12px;border:1px solid rgba(74,222,128,.58);border-radius:10px;background:rgba(74,222,128,.08)}
.club-home-live-summary strong{color:#4ade80;font-size:1rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.club-home-live-summary small{color:var(--text);font-size:.7rem;line-height:1.35}
.club-live-overview{display:grid;gap:12px;margin:0 0 12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.club-live-overview.hidden{display:none!important}.club-live-overview>.live-section-list{display:grid;gap:14px}
.club-live-frames-disclosure{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--card-2)}
.club-live-frames-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;color:var(--yellow);font-size:.78rem;font-weight:900;cursor:pointer;list-style:none}
.club-live-frames-disclosure>summary::-webkit-details-marker{display:none}.club-live-frames-disclosure>summary::after{content:'›';font-size:1.2rem;transition:transform .15s}.club-live-frames-disclosure[open]>summary::after{transform:rotate(90deg)}
.club-live-frames-disclosure>summary span{margin-left:auto;padding:2px 7px;border-radius:999px;background:var(--green);color:#fff;font-size:.65rem}
.club-live-frames-disclosure>.club-live-card-section{padding:0 10px 10px}
body.tournament-detail-open #club-view>.club-live-overview{display:none!important}

/* Match identity and state share the same centred hierarchy as the rest of the banner. */
.match-screen-club-row{justify-content:center!important;flex-wrap:wrap;text-align:center}
@media(max-width:760px){.match-screen-club-row{align-items:center!important;flex-direction:column!important}}

/* Undo is a described Settings action, not part of the Club identity header. */
.match-settings-undo{display:grid;gap:9px;margin:0 0 12px;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}
.match-settings-undo p{display:grid;gap:2px;margin:0;color:var(--muted);font-size:.75rem;line-height:1.4}.match-settings-undo p span{display:block}.match-settings-undo .scope-undo{width:100%;min-height:42px;margin:0;font-size:.82rem}

/* On phones, All only takes the width it needs; the five named filters share the rest. */
#tab-fixtures .fixtures-subtabs{grid-template-columns:max-content repeat(5,minmax(0,1fr))!important;gap:clamp(3px,1vw,7px)!important}
#tab-fixtures .fixtures-subtabs button:first-child{padding-inline:8px!important}
#tab-fixtures .fixtures-subtabs button:not(:first-child){width:100%}

/* Home resources now belong to the Tutorial / Demo frame, and Followed Clubs
   uses the same section frame as Your Clubs. */
.tutorial-resources-card{display:grid;gap:0;width:100%;min-height:74px;overflow:hidden;border:2px solid var(--line);border-radius:12px;background:transparent;color:var(--muted);text-align:center}
.tutorial-resource-main{display:grid;gap:4px;width:100%;padding:12px 16px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;transition:.15s}
.tutorial-resource-main:hover{filter:brightness(1.08)}
.tutorial-resource-main b,.tutorial-resource-links b{color:var(--yellow);font-size:.88rem}
.tutorial-resource-main span,.tutorial-resource-links span{font-size:.76rem;line-height:1.45;font-weight:400}
.tutorial-resource-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
.tutorial-resource-links a{display:grid;gap:4px;min-width:0;padding:11px 10px;color:var(--muted);text-decoration:none;transition:.15s}
.tutorial-resource-links a+a{border-left:1px solid var(--line)}
.tutorial-resource-links a:hover,.tutorial-resource-links a:focus-visible{background:var(--card-2);filter:brightness(1.08)}
.clubs-panel.followed-clubs-panel{margin-top:24px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:none}

/* Six Club tabs share one row. Multi-word labels use translated newlines so
   every word receives its own row at every viewport width. */
.tabs.club-tabs>button{min-height:46px;white-space:nowrap!important;line-height:1.05!important;text-overflow:clip;font-size:clamp(.56rem,1.6vw,.76rem)}
#tab-live{display:grid;gap:12px}
#tab-live.hidden{display:none!important}
#tab-live .club-live-section{margin:0}
#club-live-scheduled-empty{margin:0}
@media(max-width:480px){
  .clubs-panel.followed-clubs-panel{padding:14px}
  .tabs.club-tabs>button{min-height:42px;padding-inline:1px;font-size:.5rem;letter-spacing:-.035em}
  .tutorial-resource-links{grid-template-columns:minmax(0,1fr)}
  .tutorial-resource-links a+a{border-top:1px solid var(--line);border-left:0}
}
.tutorial-documentation-card .tutorial-resource-links{margin-top:14px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.round-robin-completion-options{display:grid;gap:10px;margin-top:12px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--card-2)}
.round-robin-finish-choices{grid-template-columns:repeat(3,minmax(0,1fr))}
.round-robin-finish-choices .choice{align-content:start;min-height:88px}
.round-robin-qualifier-count{display:grid;gap:7px;padding-top:10px;border-top:1px solid var(--line)}
@media(max-width:480px){.round-robin-finish-choices{grid-template-columns:1fr}.round-robin-finish-choices .choice{min-height:0}}
.plan-scope-card{border:2px solid rgba(245,197,66,.72);background:linear-gradient(135deg,var(--card),rgba(245,197,66,.08))}
.subscription-club-title{display:block;width:100%;min-width:0;margin:3px 0 6px;padding:0;border:0;background:transparent;color:var(--yellow);font:900 1.25rem/1.2 inherit;text-align:left;white-space:nowrap;cursor:pointer}.subscription-club-title:hover,.subscription-club-title:focus-visible{text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}
.subscription-club-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.subscription-club-heading .button{flex:0 0 auto}.subscription-club-heading .subscription-club-title{flex:1 1 auto}
.subscription-club-choices{grid-template-columns:1fr}
.subscription-club-choice{width:100%}
.subscription-club-choice-help{margin-bottom:10px}
@media(max-width:480px){.subscription-club-heading{align-items:flex-start;flex-direction:column}.subscription-club-heading .button{width:100%}}

/* Subscription controls deliberately use the full card width unless Free
   Club Night context is present. */
.plan-scope-card{grid-template-columns:minmax(0,1fr)}
.plan-scope-card.has-plan-usage{grid-template-columns:minmax(0,1fr) minmax(130px,160px)}
.subscription-auto-renew{align-items:center;gap:14px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--card-2);cursor:pointer}
.subscription-auto-renew input{flex:0 0 auto;width:26px;height:26px;margin:0;accent-color:var(--yellow);cursor:pointer}
.subscription-auto-renew span{min-width:0}.subscription-auto-renew b{font-size:.88rem}.subscription-auto-renew small{font-size:.73rem;line-height:1.35}
.billing-review-payment-note{margin:12px 0 0;padding:11px 12px;border-left:3px solid var(--yellow);border-radius:7px;background:rgba(245,197,66,.08);color:var(--muted);font-size:.76rem;line-height:1.45}
.branding-logo-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.branding-logo-picker{display:inline-flex!important;align-items:center;gap:8px;cursor:pointer}.branding-logo-picker small{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;opacity:.72;font-size:.68rem;font-weight:700}
.plan-choice-auto-renew{margin:14px 0 0}.plan-billing-interval{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0 0;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}.plan-billing-interval legend{padding:0 4px;color:var(--muted);font-size:.7rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.plan-billing-interval label{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--card);cursor:pointer}.plan-billing-interval input{width:18px;height:18px;margin:0;accent-color:var(--green)}.plan-billing-interval span{display:grid;gap:2px}.plan-billing-interval small{color:var(--muted);font-size:.72rem}
.subscription-expiry-input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}
.subscription-expiry-line{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.subscription-expiry-button{display:grid;place-items:center;inline-size:34px;block-size:34px;padding:0;border:1px solid var(--yellow);border-radius:9px;background:rgba(245,197,66,.12);color:var(--yellow);font:1.05rem/1 inherit;cursor:pointer}
.subscription-expiry-button:hover,.subscription-expiry-button:focus-visible{background:var(--yellow);color:#172218}
@media(max-width:480px){.plan-scope-card.has-plan-usage{grid-template-columns:minmax(0,1fr) minmax(118px,140px)}}
@media(max-width:430px){.plan-scope-card.has-plan-usage{grid-template-columns:minmax(0,1fr)}}

/* Desktop and tablet record tables use the browser's intrinsic-content sizing
   instead of equal/fixed percentages. Short identifiers keep only their natural
   width, leaving the remaining room for names and descriptive copy. Phone table
   layouts and symmetric plan comparisons intentionally remain fixed. */
@media(min-width:761px){
  .club-record-table:not(.plan-table),.team-position-table,.top-five-table table{table-layout:auto!important}
  .club-record-table:not(.plan-table) th,.team-position-table th,.top-five-table th{width:auto!important}
  .club-record-table:not(.plan-table) th,.club-record-table:not(.plan-table) td,.team-position-table th,.team-position-table td,.top-five-table th,.top-five-table td{word-break:normal;overflow-wrap:break-word}
  .club-record-table:not(.plan-table) td strong{overflow:visible;text-overflow:clip;white-space:normal}
  .people-record-table .table-action,.staff-record-table td:last-child .button{width:auto;min-width:max-content;padding-inline:10px;white-space:nowrap}
  .people-record-table :is(th,td):nth-child(n+3){width:1%!important;white-space:nowrap}
  .staff-record-table :is(th,td):first-child{width:auto!important}

  .match-record-table :is(th,td):is(:nth-child(1),:nth-child(5)),
  .tournament-record-table :is(th,td):is(:nth-child(1),:nth-child(3),:nth-child(4),:nth-child(5)),
  .activity-record-table :is(th,td):first-child,
  .people-record-table :is(th,td):nth-child(n+3),
  .match-statistics-table:not(.team-player-stats-table) :is(th,td):nth-child(n+2),
  .team-player-stats-table :is(th,td):nth-child(n+3),
  .team-match-stats-table :is(th,td):is(:nth-child(1),:nth-child(2),:nth-child(3),:nth-child(5),:nth-child(7)),
  .team-position-table :is(th,td):first-child,
  .team-position-table :is(th,td):nth-child(n+3),
  .round-robin-playoffs :is(th,td):is(:nth-child(1),:nth-child(2),:nth-child(5)),
  .round-robin-leaderboard :is(th,td):is(:first-child,:nth-child(n+3)),
  .winner-stays-order :is(th,td):first-child,
  .winner-stays-order table:has(tr>:nth-child(3)) :is(th,td):last-child,
  .standalone-results-table :is(th,td):is(:first-child,:nth-child(5),:nth-child(6)),
  .live-draw-table :is(th,td):first-child,
  .live-draw-table.detailed-results-table :is(th,td):last-child,
  .top-five-table :is(th,td):nth-child(n+2),
  .admin-table :is(th,td).num{width:1%;white-space:nowrap}

  .match-record-table :is(th,td):is(:nth-child(1),:nth-child(5)),
  .tournament-record-table :is(th,td):is(:nth-child(1),:nth-child(3),:nth-child(4),:nth-child(5)),
  .activity-record-table :is(th,td):first-child,
  .people-record-table :is(th,td):nth-child(n+3),
  .match-statistics-table:not(.team-player-stats-table) :is(th,td):nth-child(n+2),
  .team-player-stats-table :is(th,td):nth-child(n+3),
  .team-match-stats-table :is(th,td):is(:nth-child(1),:nth-child(2),:nth-child(3),:nth-child(5),:nth-child(7)),
  .team-position-table :is(th,td):first-child,
  .team-position-table :is(th,td):nth-child(n+3),
  .round-robin-playoffs :is(th,td):is(:nth-child(1),:nth-child(2),:nth-child(5)),
  .round-robin-leaderboard :is(th,td):is(:first-child,:nth-child(n+3)),
  .winner-stays-order :is(th,td):first-child,
  .winner-stays-order table:has(tr>:nth-child(3)) :is(th,td):last-child,
  .standalone-results-table :is(th,td):is(:first-child,:nth-child(5),:nth-child(6)),
  .live-draw-table :is(th,td):first-child,
  .live-draw-table.detailed-results-table :is(th,td):last-child,
  .top-five-table :is(th,td):nth-child(n+2){width:1%;white-space:nowrap}
}

/* Phone record tables minimise the height of the whole row. Dates, scores,
   counts, statuses and actions keep a readable unbroken width; only the one or
   two text-heavy name/description columns wrap when everything cannot fit on a
   single line. Plan comparisons stay fixed because their columns are
   intentionally symmetrical. */
@media(max-width:760px){
  #tab-fixtures .club-record-table:not(.plan-table),
  .club-record-table:not(.plan-table),
  .team-position-table,
  .top-five-table table{table-layout:auto!important}

  #tab-fixtures .club-record-table:not(.plan-table) th,
  .club-record-table:not(.plan-table) th,
  .team-position-table th,
  .top-five-table th{width:auto!important}

  :is(
    .match-record-table :is(th,td):is(:nth-child(1),:nth-child(5)),
    .tournament-record-table :is(th,td):is(:nth-child(1),:nth-child(3),:nth-child(4),:nth-child(5)),
    .activity-record-table :is(th,td):first-child,
    .people-record-table :is(th,td):nth-child(n+3),
    .match-statistics-table:not(.team-player-stats-table) :is(th,td):nth-child(n+2),
    .team-player-stats-table :is(th,td):nth-child(n+3),
    .team-position-table :is(th,td):first-child,
    .team-position-table :is(th,td):nth-child(n+3),
    .round-robin-playoffs :is(th,td):is(:nth-child(1),:nth-child(2),:nth-child(5)),
    .round-robin-leaderboard :is(th,td):is(:first-child,:nth-child(n+3)),
    .winner-stays-order :is(th,td):first-child,
    .winner-stays-order table:has(tr>:nth-child(3)) :is(th,td):last-child,
    .standalone-results-table :is(th,td):is(:first-child,:nth-child(5),:nth-child(6)),
    .team-match-stats-table :is(th,td):is(:nth-child(1),:nth-child(2),:nth-child(3),:nth-child(5),:nth-child(7)),
    .live-draw-table :is(th,td):first-child,
    .live-draw-table.detailed-results-table :is(th,td):last-child,
    .profile-games:not(.profile-frame-history) :is(th,td):is(:first-child,:nth-child(4),:nth-child(5)),
    .profile-frame-history :is(th,td):is(:first-child,:nth-child(3),:nth-child(5)),
    .top-five-table :is(th,td):nth-child(n+2)
  ){width:auto!important;white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}

  :is(
    .match-record-table :is(th,td):is(:nth-child(1),:nth-child(5)),
    .tournament-record-table :is(th,td):is(:nth-child(1),:nth-child(3),:nth-child(4),:nth-child(5)),
    .activity-record-table :is(th,td):first-child,
    .people-record-table :is(th,td):nth-child(n+3),
    .match-statistics-table:not(.team-player-stats-table) :is(th,td):nth-child(n+2),
    .team-player-stats-table :is(th,td):nth-child(n+3),
    .team-position-table :is(th,td):first-child,
    .team-position-table :is(th,td):nth-child(n+3),
    .round-robin-playoffs :is(th,td):is(:nth-child(1),:nth-child(2),:nth-child(5)),
    .round-robin-leaderboard :is(th,td):is(:first-child,:nth-child(n+3)),
    .winner-stays-order :is(th,td):first-child,
    .winner-stays-order table:has(tr>:nth-child(3)) :is(th,td):last-child,
    .standalone-results-table :is(th,td):is(:first-child,:nth-child(5),:nth-child(6)),
    .team-match-stats-table :is(th,td):is(:nth-child(1),:nth-child(2),:nth-child(3),:nth-child(5),:nth-child(7)),
    .live-draw-table :is(th,td):first-child,
    .live-draw-table.detailed-results-table :is(th,td):last-child,
    .profile-games:not(.profile-frame-history) :is(th,td):is(:first-child,:nth-child(4),:nth-child(5)),
    .profile-frame-history :is(th,td):is(:first-child,:nth-child(3),:nth-child(5)),
    .top-five-table :is(th,td):nth-child(n+2)
  ) *{white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}

  .club-record-table:not(.plan-table) :is(.record-date,.record-score,.record-status),
  .club-record-table:not(.plan-table) :is(.record-date,.record-score,.record-status) *{white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}

  .team-player-stats-table :is(th,td):is(:first-child,:nth-child(2)){min-width:0!important;white-space:normal!important;overflow-wrap:break-word!important}
}

/* Record-table padding follows the table's real width, not a viewport
   breakpoint. Content therefore receives new space first; padding grows only
   once the table itself is comfortably wider. */
:where(.table-wrap,.club-record-table-wrap,.people-table-wrap,.activity-table-wrap,.table-scroll,.table-panel){container-type:inline-size}
:is(.club-record-table:not(.plan-table),.team-position-table,.top-five-table table):has(tr>:nth-child(4)) :is(th,td){padding-inline:2px!important}
@container(min-width:760px){
  :is(.club-record-table:not(.plan-table),.team-position-table,.top-five-table table):has(tr>:nth-child(4)) :is(th,td){padding-inline:4px!important}
}
@container(min-width:960px){
  :is(.club-record-table:not(.plan-table),.team-position-table,.top-five-table table):has(tr>:nth-child(4)) :is(th,td){padding-inline:7px!important}
}
@container(min-width:1200px){
  :is(.club-record-table:not(.plan-table),.team-position-table,.top-five-table table):has(tr>:nth-child(4)) :is(th,td){padding-inline:10px!important}
}

/* A phone table gets at most two wrapping columns, chosen by the meaning of
   that table. Headers and every other value remain one line; dense opposing
   name/team fields use a slightly smaller fluid type size. This keeps row
   height predictable instead of letting every text column wrap at once. */
@media(max-width:760px){
  :is(.club-record-table:not(.plan-table),.team-position-table,.top-five-table table):has(tr>:nth-child(4)) th{
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis;overflow-wrap:normal!important;word-break:keep-all!important;
    font-size:clamp(.48rem,1.9vw,.61rem)!important
  }
  :is(.club-record-table:not(.plan-table),.team-position-table,.top-five-table table):has(tr>:nth-child(4)) td,
  :is(.club-record-table:not(.plan-table),.team-position-table,.top-five-table table):has(tr>:nth-child(4)) td *{
    white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal!important;word-break:keep-all!important
  }

  :is(
    .match-record-table td:nth-child(2),
    .tournament-record-table td:nth-child(2),
    .people-record-table td:first-child,
    .activity-record-table td:last-child,
    .match-statistics-table:not(.team-player-stats-table) td:first-child,
    .team-player-stats-table td:is(:first-child,:nth-child(2)),
    .team-position-table td:nth-child(2),
    .round-robin-playoffs td:is(:nth-child(3),:nth-child(4)),
    .round-robin-leaderboard td:nth-child(2),
    .standalone-results-table td:is(:nth-child(2),:nth-child(3)),
    .team-match-stats-table td:is(:nth-child(4),:nth-child(6)),
    .live-draw-table td:is(:nth-child(2),:nth-child(3)),
    .profile-games:not(.profile-frame-history) td:is(:nth-child(2),:nth-child(3)),
    .profile-frame-history td:is(:nth-child(2),:nth-child(4)),
    .top-five-table td:first-child
  ),
  :is(
    .match-record-table td:nth-child(2),
    .tournament-record-table td:nth-child(2),
    .people-record-table td:first-child,
    .activity-record-table td:last-child,
    .match-statistics-table:not(.team-player-stats-table) td:first-child,
    .team-player-stats-table td:is(:first-child,:nth-child(2)),
    .team-position-table td:nth-child(2),
    .round-robin-playoffs td:is(:nth-child(3),:nth-child(4)),
    .round-robin-leaderboard td:nth-child(2),
    .standalone-results-table td:is(:nth-child(2),:nth-child(3)),
    .team-match-stats-table td:is(:nth-child(4),:nth-child(6)),
    .live-draw-table td:is(:nth-child(2),:nth-child(3)),
    .profile-games:not(.profile-frame-history) td:is(:nth-child(2),:nth-child(3)),
    .profile-frame-history td:is(:nth-child(2),:nth-child(4)),
    .top-five-table td:first-child
  ) *{white-space:normal!important;overflow:visible;text-overflow:clip;overflow-wrap:anywhere!important;word-break:normal!important}

  .match-record-table :is(td:nth-child(3),td:nth-child(4)),
  .standalone-results-table :is(td:nth-child(2),td:nth-child(3),td:nth-child(4)),
  .live-draw-table :is(td:nth-child(2),td:nth-child(3),td:nth-child(4)){
    font-size:clamp(.52rem,2.15vw,.68rem)!important
  }
}

/* Home metrics fill the card. Live and scheduled names get the full first row;
   their detail and actions then share one compact row beneath it. */
.club-home-entry .club-card-copy{flex:1 1 auto;width:100%}
.live-competition-card{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important}
.live-competition-card>.live-tournament-copy{display:block!important;width:100%;min-width:0}
.live-competition-card .live-card-club,.live-competition-card .live-frame-competition-name{overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}
.live-card-detail-row{display:flex;align-items:flex-end;gap:12px;width:100%;min-width:0;margin-top:4px}
.live-card-details{flex:1 1 auto;min-width:0}
.live-competition-card .live-card-detail-row .live-tournament-actions{display:flex!important;width:auto!important;justify-content:flex-end!important;align-self:flex-end!important;flex:0 0 auto;gap:8px;margin:0!important}
.live-competition-card .live-tournament-actions .button{min-width:64px}
.scheduled-card-details{display:grid;gap:2px}.scheduled-card-details small{color:var(--muted);font-size:.7rem;font-weight:700}.scheduled-card-datetime{color:var(--text);font-size:1rem;line-height:1.25}.scheduled-card-format{color:var(--text);font-size:.82rem}
.live-section-all-frames{margin-top:18px!important;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:480px){.live-card-detail-row{gap:8px}.scheduled-card-datetime{font-size:.9rem}}

/* The Free Club Night allowance needs breathing room above its plan action. */
.free-plan-club-night{margin-bottom:14px}

/* Visitors can override an imperfect regional currency guess without leaving subscriptions. */
.plan-currency-picker{display:grid;gap:5px;min-width:210px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card-2)}
.plan-currency-picker>span{color:var(--muted);font-size:.65rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.plan-currency-picker select{width:100%;min-height:38px;padding:7px 30px 7px 9px;font:800 .78rem/1.2 inherit}
@media(max-width:480px){.upgrade-heading{align-items:stretch;flex-direction:column}.plan-currency-picker{width:100%;min-width:0}}

.payment-processing{display:grid;justify-items:center;gap:13px;padding:10px 0 4px;text-align:center}.payment-processing p{max-width:290px;margin:0;color:var(--muted);line-height:1.45}.payment-processing-spinner{width:34px;height:34px;border:4px solid var(--line);border-top-color:var(--yellow);border-radius:50%;animation:paymentSpin .85s linear infinite}@keyframes paymentSpin{to{transform:rotate(360deg)}}

/* Profile history retains its match context while table density and responsive
   sizing come from the same shared rules used by Club Past Matches. */
.profile-match-context{display:block;margin-top:3px;color:var(--muted);font-size:.72em;font-weight:700;line-height:1.25}
#profile-history-table .profile-games th{text-align:center!important}
#profile-history-table .profile-sort-button{justify-content:center;text-align:center}
#tab-fixtures .tournament-record-table th:nth-child(3){white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}
@media(max-width:760px){
  .profile-history .profile-games .fixture-record-link{width:100%;min-width:0;line-height:1.2}
  .player-record-table.can-manage :is(th,td):nth-child(1){width:34%!important}.player-record-table.can-manage :is(th,td):nth-child(2){width:17%!important}.player-record-table.can-manage :is(th,td):nth-child(3),.player-record-table.can-manage :is(th,td):nth-child(4){width:24.5%!important}
  .player-record-table .table-action,.staff-record-table td:last-child .button{width:auto!important;min-width:max-content!important;padding-inline:5px!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
  .staff-record-table :is(th,td):nth-child(1){width:27%!important}.staff-record-table :is(th,td):nth-child(2){width:24%!important}.staff-record-table :is(th,td):nth-child(3){width:24%!important}.staff-record-table :is(th,td):nth-child(4){width:25%!important}
}

/* Final cascade overrides for compact controls shared with older layouts. */
.subscription-billing-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding-top:2px}.subscription-billing-actions .button{width:100%;min-width:0;min-height:42px;margin:0;white-space:normal}
.tabs.club-tabs>button{min-height:34px;padding-block:6px}
.branding-logo-field .club-branding-control{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}.branding-logo-picker,#club-branding-remove-logo,#club-branding-remove-advertisement{width:100%;min-height:48px;margin:0;align-self:stretch;justify-self:stretch}
#player-profile-view .profile-record-table{min-width:0!important;table-layout:auto!important;line-height:normal}
#player-profile-view .profile-record-table :is(th,td){width:auto!important;min-width:0!important;height:auto;vertical-align:middle}
#player-profile-view .profile-record-table th{font-size:.62rem}
#player-profile-view .profile-record-table td{font-size:.72rem}
#player-profile-view .profile-record-table td small{font-size:.62rem}
@media(max-width:760px){
  .club-history-table td,#player-profile-view .profile-record-table td{font-size:.68rem!important}
  .club-history-table :is(.record-meta,.record-score,.competition-player-link){font-size:inherit!important}
  .club-history-table td small,#player-profile-view .profile-record-table td small{font-size:.63rem}
  #player-profile-view .club-record-table-wrap{width:100%;max-width:100%;overflow-x:hidden}
  #player-profile-view .profile-record-table{width:100%!important;max-width:100%;table-layout:fixed!important}
  #player-profile-view .profile-record-table :is(th,td){min-width:0!important;overflow-wrap:anywhere}
  #player-profile-view .profile-summary th:first-child{width:22%!important}
  #player-profile-view .profile-summary th:not(:first-child){width:15.6%!important}
  #player-profile-view .profile-games:not(.profile-frame-history) th:nth-child(1){width:18%!important}
  #player-profile-view .profile-games:not(.profile-frame-history) th:nth-child(2){width:34%!important}
  #player-profile-view .profile-games:not(.profile-frame-history) th:nth-child(n+3){width:16%!important}
  #player-profile-view .profile-frame-history th:nth-child(1){width:18%!important}
  #player-profile-view .profile-frame-history th:nth-child(2){width:30%!important}
  #player-profile-view .profile-frame-history th:nth-child(3){width:10%!important}
  #player-profile-view .profile-frame-history th:nth-child(4){width:26%!important}
  #player-profile-view .profile-frame-history th:nth-child(5){width:16%!important}
}
@media(max-width:480px){.subscription-billing-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.tabs.club-tabs>button{min-height:32px;padding-block:5px}}

/* Club navigation and People tables share one readable density. */
.tabs.club-tabs>button{font-size:clamp(.68rem,1.7vw,.86rem)}
:is(.player-record-table,.staff-record-table) :is(th,td):nth-child(2){text-align:center}
.staff-record-table select{text-align:center;text-align-last:center;font-size:inherit}
.standalone-match-stats-table :is(th,td):first-child{width:26%}.standalone-match-stats-table :is(th,td):nth-child(2){width:24%}.standalone-match-stats-table :is(th,td):nth-child(n+3){width:12.5%}
.team-player-stats-table :is(th,td):first-child{width:27%}.team-player-stats-table :is(th,td):nth-child(2){width:23%}.team-player-stats-table :is(th,td):nth-child(n+3){width:12.5%}
.competition-activity-loading{min-height:120px;display:grid;place-items:center}.competition-activity-loading .button-busy-spinner{color:var(--yellow)}
@media(max-width:760px){.staff-record-table th,.staff-record-table td{padding:6px 3px!important;font-size:.62rem!important;overflow-wrap:anywhere}.staff-record-table select{font-size:inherit}.standalone-match-stats-table :is(th,td):is(:first-child,:nth-child(2)){min-width:0!important;white-space:normal!important;overflow-wrap:break-word!important}}
@media(max-width:480px){.tabs.club-tabs>button{font-size:clamp(.56rem,2.5vw,.68rem)}}

/* Staff plan-status copy can be substantially longer in translation. Keep the
   information columns inside the phone viewport and give the action its own row. */
@media(max-width:480px){
  .staff-record-table{display:block;width:100%!important;max-width:100%;min-width:0!important;table-layout:fixed!important}
  .staff-record-table :is(thead,tbody){display:block;width:100%}
  .staff-record-table tr{display:grid;grid-template-columns:minmax(0,32fr) minmax(0,25fr) minmax(0,43fr);width:100%}
  .staff-record-table tr:not(:has(>:nth-child(3))){grid-template-columns:repeat(2,minmax(0,1fr))}
  .staff-record-table thead th:nth-child(4){display:none}
  .staff-record-table tbody td:nth-child(4){grid-column:1/-1;width:100%!important;padding-top:2px!important}
  .club-record-table.staff-record-table:has(tr>:nth-child(4)) :is(th,td),.club-record-table.staff-record-table:has(tr>:nth-child(4)) td *{width:auto!important;min-width:0!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important;word-break:normal!important}
  .club-record-table.staff-record-table:has(tr>:nth-child(4)) td.people-access{overflow:hidden!important}
  .club-record-table.staff-record-table:has(tr>:nth-child(4)) td.people-access>span{display:block!important;width:100%!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  .club-record-table.staff-record-table:has(tr>:nth-child(4)) td:nth-child(4) .button{display:block!important;width:100%!important;min-width:0!important;padding-inline:2px!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .staff-record-table .competition-player-link,.staff-record-table :is(.plan-paused-label,.people-access span){display:block!important;width:100%!important;max-width:100%;min-width:0;white-space:normal!important;overflow-wrap:anywhere!important}
}

/* Phone logo actions keep both the action and its changing status readable. */
@media(max-width:480px){
  .branding-logo-picker{min-width:0;padding:6px 4px!important;flex-direction:column;justify-content:center!important;gap:2px!important;font-size:.63rem!important;line-height:1.1;text-align:center}
  .branding-logo-picker span{max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .branding-logo-picker small{max-width:100%;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;font-size:.52rem!important;line-height:1.12}
  #club-branding-remove-logo,#club-branding-remove-advertisement{padding:6px 4px!important;font-size:.63rem!important;line-height:1.15;white-space:normal;overflow-wrap:anywhere}
}

/* Winner Stays On has one rolling match length, so it is shown as a compact
   setting card instead of a round-by-round table. */
.winner-stays-match-length{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--card-2)}
.winner-stays-match-length .competition-section-heading{margin-bottom:8px}
.winner-stays-best-of{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--card)}
.winner-stays-best-of>span{color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.winner-stays-best-of>b{color:var(--yellow);font-size:.86rem}
@media(max-width:480px){.winner-stays-match-length{padding:9px}.winner-stays-best-of{grid-template-columns:minmax(0,1fr) auto;gap:7px}.winner-stays-best-of .button,.winner-stays-best-of>.muted{grid-column:1/-1;width:100%;text-align:center}}

/* Keep every Advanced Statistics heading stable as its shared range control
   moves between beside-the-title and below-the-title layouts. */
.advanced-stats-title-row h2{font-size:clamp(1rem,2.1vw,1.5rem)}

/* Venue Display advert guidance stays readable above the fixed-size picker. */
.branding-advertisement-field>span{display:grid;gap:2px}.branding-advertisement-field>span small{color:var(--muted);font-size:.66rem;line-height:1.35}

/* Fixed setup workspace: every step occupies the same centred 80% viewport
   frame, while only its body scrolls. This keeps navigation stationary. */
.match-modal.wizard-mode[open]{width:min(900px,calc(100% - 22px));height:80dvh;max-height:80dvh;margin:auto}
.match-modal.wizard-mode[open] .modal-card{width:100%;height:100%;max-height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}
.match-modal.wizard-mode .wizard-body{min-height:0;overflow:auto;overscroll-behavior:contain}
.match-modal.wizard-mode .wizard-nav{position:static;margin-top:0;flex-shrink:0}

/* Quick Match is deliberately a single compact screen. Later general setup
   grid rules give each type button a two-column span, so explicitly reset the
   placement here and keep the action row in its own non-overlapping grid row. */
.match-modal.quick-match-mode[open]{height:80dvh;max-height:80dvh}
.match-modal.quick-match-mode[open] .modal-card{height:100%;max-height:100%;grid-template-rows:auto minmax(0,1fr) auto}
.quick-match-mode .setup-type-options>button,
.quick-match-mode .setup-type-options>button:nth-child(4),
.quick-match-mode .setup-type-options>button:nth-child(5){grid-column:auto;min-width:0}
.quick-match-mode .wizard-body{padding-bottom:16px}
.quick-match-mode .wizard-nav{position:static!important;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;padding:12px 0 max(8px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--card)}
.quick-match-mode #wizard-cancel,.quick-match-mode #wizard-back{flex:0 0 auto;min-width:96px;margin:0}
.quick-match-mode #wizard-cancel{order:1}.quick-match-mode #wizard-back{order:2}.quick-match-mode #wizard-next{order:3;grid-column:1/-1;width:100%;min-width:0;margin:0}
.match-setup-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.match-setup-mode-card{display:flex;flex-direction:column;min-height:190px;padding:17px;border:1px solid var(--line);border-radius:13px;background:var(--card-2)}.match-setup-mode-card h3{margin:0 0 8px;color:var(--yellow)}.match-setup-mode-card p{flex:1;margin:0 0 16px;color:var(--muted);font-size:.82rem;line-height:1.5}@media(max-width:480px){.match-setup-mode-grid{grid-template-columns:1fr}.match-setup-mode-card{min-height:0}}
.match-setup-sized-dialog[open]{width:min(900px,calc(100% - 22px));height:80dvh;max-height:80dvh;margin:auto}.match-setup-sized-dialog[open]>.modal-card{width:100%;height:100%;max-height:100%;display:flex;flex-direction:column;overflow:auto}.match-setup-sized-dialog[open] .modal-actions{justify-content:space-between;margin-top:auto}
.match-modal.wizard-mode[open],.match-setup-sized-dialog[open]{box-sizing:border-box;width:min(900px,calc(100% - 22px))!important;height:80dvh;max-height:80dvh}
.club-summary-plan-badge:disabled{opacity:1;pointer-events:none;cursor:default}
.match-setup-sized-dialog[open] #simple-cancel,.match-setup-sized-dialog[open] #simple-back{order:1;flex:0 0 auto;width:auto;min-width:96px;margin:0}.match-setup-sized-dialog[open] #simple-back{order:2}.match-setup-sized-dialog[open] #simple-submit{order:3;flex:0 0 auto;width:auto;min-width:112px;margin-left:auto}
.match-name-availability{min-height:1.3em;margin-top:7px;color:var(--muted);font-size:.76rem;font-weight:700}.match-name-availability.good{color:#62d88e}.match-name-availability.bad{color:var(--coral)}
.plan-locked-option[aria-disabled="true"]{position:relative;opacity:.48;cursor:not-allowed}
.plan-locked-option[aria-disabled="true"]::after{content:'🔒';margin-left:4px;font-size:.66em}
.quick-match-mode .versus-grid{display:none}.quick-match-versus{margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2);color:var(--text);font-weight:900;text-align:center}.quick-player-add{min-height:44px;display:flex;align-items:center;justify-content:center;gap:6px}.quick-match-mode #match-player-count{display:block;margin-top:12px}#club-name-checklist{border:0;background:none;padding:0}
.quick-match-mode .tournament-participants.quick-player-buttons.many-players{grid-template-columns:repeat(2,minmax(0,1fr))}
.quick-match-mode .quick-player-buttons .tournament-player-card{min-width:0;padding:0;border:0;background:transparent}
.quick-match-mode .quick-player-buttons .tournament-player-select{min-width:0;padding:9px 7px;border:1px solid var(--line);border-radius:9px;background:var(--card-2);color:var(--muted);opacity:.68;transition:border-color .15s,background .15s,opacity .15s}
.quick-match-mode .quick-player-buttons .tournament-player-select:has(input:checked){border-color:#4ade80;background:rgba(74,222,128,.1);color:#4ade80;opacity:1}
.quick-match-mode .quick-player-buttons .tournament-player-select input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.quick-match-mode .quick-player-buttons .tournament-player-select b{color:inherit;font-size:clamp(.62rem,2.5vw,.78rem)}
.table-inline-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.standalone-live-play-table{table-layout:auto}.standalone-live-play-table th:first-child,.standalone-live-play-table th:nth-child(3){width:32%}.standalone-live-play-table th:nth-child(2){width:10%}.standalone-live-play-table th:last-child{width:1%;white-space:nowrap}.standalone-live-actions{justify-content:flex-end;flex-wrap:nowrap;min-width:max-content}
.tournament-detail-open .club-match-search{display:none!important}
.quick-match-mode #pairing-options{grid-template-columns:1fr}

/* Draw choices are policies, not a compact segmented toggle. One option per
   line leaves their full wording readable on phones and in the settings modal. */
#pairing-options,.draw-policy-options{grid-template-columns:1fr}
#pairing-options button,.draw-policy-options button{width:100%;min-width:0}

.competition-draw-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}
.competition-draw-summary>div{display:grid;gap:3px}.competition-draw-summary span{color:var(--muted);font-size:.72rem;font-weight:800}.competition-draw-summary b{color:var(--yellow)}
.admin-draw-action{display:flex;justify-content:flex-end;padding:0 12px 10px}
.player-match-result{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:inherit;cursor:pointer}.player-match-result .bracket-match{pointer-events:none}.player-match-result:hover .bracket-match,.player-match-result:focus-visible .bracket-match{border-color:var(--yellow)}

/* The action belongs to its own club card, not to the surrounding Your Clubs
   list. */
.club-card>.club-new-match{width:100%;margin:12px 0 0}
.venue-recently-finished{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.venue-recently-finished h3{margin:0 0 10px;color:var(--yellow);font-size:.9rem}
#match-settings-dialog[open]{width:min(900px,calc(100% - 22px));max-height:calc(100dvh - 20px)}
#match-settings-dialog[open]>.modal-card{display:flex;height:min(820px,calc(100dvh - 20px));max-height:calc(100dvh - 20px);flex-direction:column;overflow:hidden}
#live-table-field{display:grid;grid-template-columns:1fr;gap:8px}
#live-table-new{margin-top:0}
#match-settings-dialog .scoring-mode-field{order:90}
#match-settings-dialog #live-settings-error{order:91}
#match-settings-dialog .match-settings-actions{order:92}
.standalone-length-presets{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:6px}
.standalone-length-presets button{min-width:0!important}
.round-length-presets{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:6px}
.round-length-presets button{min-width:0!important}

/* Club/Home live cards share one rhythm. Every piece of copy begins at the
   card's top-left; only the action controls remain centred on the right. */
.live-competition-card.live-tournament-hero{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:stretch!important;column-gap:16px}
.live-competition-card>.live-card-main-copy{display:grid!important;align-self:stretch;align-content:start;justify-items:start;gap:4px;width:100%;min-width:0;text-align:left!important}
.live-card-main-copy>*,.live-card-main-copy .live-card-details>*{width:100%;margin-block:0!important;text-align:left!important}
.live-card-main-copy .live-card-details{display:grid;align-content:start;justify-items:start;gap:4px;width:100%;min-width:0}
.live-competition-card>.live-tournament-actions{grid-column:2;grid-row:1;align-self:center!important;justify-self:end;margin:0!important}
.live-competition-card .live-card-score-stack{display:inline-grid;width:fit-content;max-width:100%;grid-template-rows:repeat(3,minmax(1.25em,auto));justify-items:start;justify-self:start;row-gap:4px;margin:0;text-align:left!important}
.live-competition-card .live-card-score-stack>span,.live-competition-card .live-card-score-stack>strong{width:100%;justify-content:flex-start;text-align:left;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}
.live-competition-card .live-card-fit-name{width:100%;overflow:hidden;text-overflow:clip;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.scheduled-match-card .live-card-fit-name{width:100%;overflow:hidden;text-overflow:clip;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.live-match-kicker{display:flex!important;align-items:baseline;gap:8px}
.live-match-kicker>span{display:inline;margin:0;color:inherit;font:inherit;letter-spacing:inherit}
.live-match-kicker>small{color:var(--mint);font-size:.9em;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.live-winner-stays-players{display:flex;align-items:center;gap:7px;max-width:100%;font-size:clamp(.58rem,1.8vw,.8rem);line-height:1.25;white-space:nowrap;overflow:hidden}
.live-winner-stays-players span{display:inline;margin:0;color:var(--muted);font-size:.82em;font-weight:900;letter-spacing:.06em}
.live-winner-stays-players b{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.live-winner-stays-players i{color:var(--yellow);font-style:normal;font-weight:900}
@media(max-width:480px){
  .live-competition-card.live-tournament-hero{column-gap:8px}
  .live-competition-card>.live-tournament-actions{flex-direction:column;gap:6px}
  .live-competition-card>.live-card-main-copy,.live-card-main-copy .live-card-details{gap:3px}
}

/* Statistics drill-downs deliberately trade generous cell padding for a
   complete, single-screen view on phones and small tablets. */
.stats-drilldown-table table{width:100%;table-layout:fixed;font-size:.64rem}
.stats-drilldown-table :is(th,td){padding:5px 3px;white-space:normal;overflow-wrap:anywhere;line-height:1.25}
.stats-drilldown-table :is(th,td):first-child{width:24%}

/* Quick Try exposes the same Statistics surface as saved accounts, but keeps
   it visibly unavailable instead of removing half the page. */
#tab-history:has(#temporary-statistics-lock:not(.hidden)){position:relative}
#temporary-statistics-lock:not(.hidden){position:sticky;top:74px;z-index:5;width:min(420px,100%);margin:0 auto 12px}
#club-statistics-content.temporary-statistics-preview{filter:blur(3px);opacity:.48;pointer-events:none;user-select:none}

/* Club statistics always state which results were universally available and
   which performance figures came from eligible Detailed-tracking frames. */
.stats-leaderboard-heading{align-items:flex-start}
.stats-leaderboard-heading>div:first-child{min-width:0;flex:1 1 260px}
.stats-leaderboard-heading .advanced-stats-ranges{flex:0 1 510px}
.statistics-coverage{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 16px}
.statistics-coverage>div{display:grid;align-content:start;gap:5px;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}
.statistics-coverage strong{color:var(--yellow);font-size:.72rem}
.statistics-coverage span{color:var(--muted);font-size:.68rem;line-height:1.4}
.statistics-coverage span small{display:block;margin-top:4px;color:var(--text);font-size:.64rem}
.top-five-eligibility{min-height:2.7em;margin:4px 0 8px;color:var(--muted);font-size:.62rem;line-height:1.35}
.stats-eligibility-count{display:block;margin-top:2px;color:var(--muted);font-size:.56rem;font-weight:700;white-space:normal}
.statistics-context-note{max-width:780px;margin:5px 0 0!important;font-size:.68rem!important;line-height:1.4}
.statistics-quality-reasons{display:grid;gap:3px;margin:4px 0 0;padding:0;list-style:none}
.statistics-quality-reasons li{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:.63rem}
.statistics-quality-reasons b{color:var(--text)}
.advanced-extension-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.advanced-chart-controls{display:block;width:100%;justify-content:stretch}
.advanced-chart-controls label{width:100%;max-width:none;min-width:0}

/* The copy column is anchored to the card edge on every Club Live section.
   The action column remains independently centred on the right. */
#tab-live .club-live-card-section .live-competition-card>.live-card-main-copy{grid-column:1;grid-row:1;grid-template-columns:minmax(0,1fr);justify-content:stretch;justify-self:stretch;align-items:start;margin:0!important;padding:0!important}
#tab-live .club-live-card-section .live-card-main-copy :is(.live-match-kicker,.live-card-club,.live-card-details,.live-card-score-stack,.live-winner-stays-players,.live-frame-origin,.live-frame-competition-name,.live-frame-position){justify-self:start!important;margin-left:0!important;margin-right:0!important;text-align:left!important}

@media(max-width:760px){
  .stats-leaderboard-heading{align-items:stretch;flex-direction:column}
  .stats-leaderboard-heading .advanced-stats-ranges{flex-basis:auto}
  .statistics-coverage{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px){
  .statistics-coverage,.advanced-extension-stats{grid-template-columns:1fr}
  .top-five-eligibility{min-height:0}
}

/* Statistics controls belong directly below their heading, and content pages
   finish close to the shared footer instead of leaving the old 90px gutter. */
.page{padding-bottom:28px}
.stats-leaderboard-heading{margin-bottom:10px}
#club-stats-ranges{width:100%;max-width:none;margin:0 0 16px}

/* Player run achievements use the same framed hierarchy as the rest of the
   profile instead of falling back to unstyled text blocks. */
.profile-achievement-panel{padding:20px}
.profile-achievement-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.profile-achievement-heading h2{margin:3px 0 0;color:var(--yellow)}
.profile-achievement-context{display:grid;gap:4px;margin-bottom:12px;padding:11px 12px;border:1px solid var(--line);border-left:4px solid var(--yellow);border-radius:10px;background:var(--card-2)}
.profile-achievement-context strong{color:var(--text);font-size:.72rem}
.profile-achievement-context span{color:var(--muted);font-size:.68rem;line-height:1.45}
.profile-achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.profile-achievement-card{display:grid;align-content:center;justify-items:center;gap:5px;min-width:0;min-height:118px;padding:14px 10px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,var(--card-2),color-mix(in srgb,var(--yellow) 5%,var(--card-2)));text-align:center}
.profile-achievement-card>span{color:var(--muted);font-size:.67rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.profile-achievement-card>strong{color:var(--yellow);font-size:2rem;line-height:1}
.profile-achievement-card>small{color:var(--muted);font-size:.62rem;line-height:1.3}
@media(max-width:480px){
  .profile-achievement-grid{grid-template-columns:1fr}
  .profile-achievement-card{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;min-height:0;justify-items:start;text-align:left}
  .profile-achievement-card>strong{grid-column:2;grid-row:1/3;align-self:center;font-size:1.7rem}
}

/* Home cards carry the same club-plan context as the Club Screen. */
.club-home-status{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 0 auto;margin-left:auto}
.club-home-plan-badge{display:inline-flex;align-items:center;min-height:19px;padding:2px 7px;border:1px solid var(--yellow);border-radius:999px;background:rgba(245,197,66,.1);color:var(--yellow);font-size:.58rem;font-weight:950;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}

/* Players and club staff share one sortable roster. Followers retain their
   access-management table because they are not club members. */
.club-people-heading{align-items:flex-end}
.club-people-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.club-people-filters{grid-template-columns:repeat(3,minmax(0,1fr));max-width:460px;margin:0 0 10px}
.club-people-table :is(th,td):nth-child(1){width:38%!important;text-align:center}
.club-people-table th:first-child .profile-sort-button{justify-content:center;text-align:center}
.club-people-table td:first-child :is(a,button,strong){color:var(--text);text-align:center}
.club-people-table td:first-child :is(a,button){display:inline-flex;justify-content:center}
.club-people-table :is(th,td):nth-child(2){width:27%!important;text-align:center}
.club-people-table :is(th,td):nth-child(3){width:35%!important;text-align:center}
.club-people-table select{width:100%;min-width:0;margin:0;padding:7px 22px 7px 7px;text-align:center;text-align-last:center}
.winner-stays-live-end{margin-top:18px}.winner-stays-live-end .tournament-detail-actions,.winner-stays-live-end .button{display:block;width:100%}
.people-row-actions{display:flex;justify-content:center;gap:5px;min-width:0}
.people-row-actions .button{width:auto!important;min-width:0!important;white-space:normal!important}

/* Coverage values are deliberate line items, not a sentence that becomes
   difficult to scan on a phone. */
.statistics-info-lines{display:grid!important;gap:2px}
.statistics-info-lines>span{display:block}
.statistics-coverage>div>small{display:block;margin-top:4px;color:var(--text);font-size:.64rem;line-height:1.35}

/* 2026-10-11: compact statistics, profile tables and a conventional readable
   light palette. These overrides intentionally sit after legacy responsive
   rules so old phone-only column hiding cannot reappear at intermediate sizes. */
.admin-home-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.statistics-coverage{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:1fr}
.statistics-coverage>div{height:100%}
.advanced-form-table :is(th,td):nth-child(2),.advanced-form-table :is(th,td):nth-child(3){border-left:1px solid color-mix(in srgb,var(--yellow) 65%,transparent)}
.form-result.selected{outline:2px solid var(--yellow);outline-offset:2px;transform:scale(1.12);filter:brightness(1.18)}
.advanced-head-row{cursor:pointer}.advanced-head-row:hover{background:color-mix(in srgb,var(--yellow) 8%,transparent)}
.profile-streak-row th{width:36%!important;min-width:190px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.25}.profile-streak-row td{padding-left:18px!important}.profile-streak-stat>span{padding-left:4px}
.profile-games,.profile-frame-history{table-layout:auto!important}
.profile-games :is(th,td):first-child{min-width:92px;width:auto!important;white-space:nowrap!important}
.profile-games :is(th,td):nth-child(n+2){width:auto!important}
.profile-comparison-filter-label{margin:0;color:var(--yellow);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.app-footer{padding-top:4px;margin-top:-4px}

body[data-theme="light"]{--bg:#f5f7f6;--header:#17683a;--card:#ffffff;--card-2:#f0f4f1;--line:#cbd7cf;--line-soft:#dce5df;--green:#1e7546;--green-dark:#165c36;--yellow:#9a6d00;--red:#b8322a;--text:#17251c;--muted:#52665a;--text-label:#263b2e;--input:#fff;--shadow:0 8px 24px rgba(24,55,35,.1)}
body[data-theme="light"] :is(input,select,textarea){background:#fff;color:var(--text);border-color:#aebfb4}
body[data-theme="light"] select option{background:#fff;color:#17251c}
body[data-theme="light"] :is(.panel,.modal-card,.club-card,.match-row,.tournament-card){box-shadow:0 5px 18px rgba(24,55,35,.08)}
body[data-theme="light"] :is(.segmented,.best-presets button,.account-preferences-grid .setting-options button){background:#e7eee9;color:#263b2e}
body[data-theme="light"] :is(.segmented button.active,.best-presets button.active,.account-preferences-grid .setting-options button.active){background:#17683a;color:#fff;border-color:#17683a}
body[data-theme="light"] .button.ghost{color:#344c3d;border-color:#afc0b5;background:#fff}
body[data-theme="light"] .muted{color:#52665a}
body[data-theme="light"] .eyebrow{color:#465d4f}
body[data-theme="light"] .plan-gate-cover{background:rgba(255,255,255,.94);color:#17251c}
body[data-theme="light"] .modal::backdrop{background:rgba(23,37,28,.45)}
@media(max-width:480px){.admin-home-actions{grid-template-columns:1fr}.statistics-coverage{grid-template-columns:repeat(2,minmax(0,1fr))!important}.profile-games{font-size:.66rem}.profile-games :is(th,td){padding:7px 4px!important}.profile-games :is(th,td):first-child{min-width:78px}}
.integration-settings-panel.plan-locked{min-height:220px!important}
.integration-settings-panel.plan-locked>.integration-settings-body{display:grid!important;max-height:145px;overflow:hidden;filter:blur(3px);opacity:.48;pointer-events:none;user-select:none}
.mqtt-settings-panel.plan-locked{min-height:260px!important}.mqtt-settings-panel.plan-locked>.integration-settings-body{max-height:175px}
.integration-settings-panel .integration-plan-lock{inset:76px 14px 14px;z-index:5;min-height:0;background:color-mix(in srgb,var(--card) 92%,transparent)}
.integration-settings-panel.plan-locked .integration-summary-end b{display:none}
.stream-advertisement-settings{position:relative;display:grid;gap:10px;margin:12px 0 18px;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--card-2)}
.stream-advertisement-settings .club-settings-toggle{margin:0}.stream-advertisement-settings .setting-row-text small{display:block;margin-top:4px;color:var(--muted);font-size:.68rem;line-height:1.35}
.stream-advertisement-settings>.muted{margin:0}.stream-advertisement-settings.plan-locked>:not(.club-settings-feature-lock){filter:blur(3px);opacity:.42;pointer-events:none;user-select:none}.stream-advertisement-settings .club-settings-feature-lock{z-index:4;inset:-1px;min-height:0;border-radius:10px;background:rgba(17,31,23,.94)}body[data-theme="light"] .stream-advertisement-settings .club-settings-feature-lock{background:rgba(255,255,255,.96)}
.profile-achievement-context-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.profile-achievement-context dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 14px;margin:6px 0 0}
.profile-achievement-context dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0;padding:0;border:0;background:transparent}
.profile-achievement-context dt{color:var(--muted);font-size:.55rem;font-weight:750;text-transform:uppercase}
.profile-achievement-context dd{margin:0;color:var(--text);font-size:.68rem;font-weight:800}
.staff-profile-heading>div{display:grid;align-items:start;gap:5px}
.staff-profile-heading .eyebrow,.staff-profile-heading h1{display:block;width:100%}
.profile-achievement-grid{grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr))}
.profile-achievement-card{appearance:none;width:100%;color:inherit;font:inherit;cursor:pointer}
.profile-achievement-card:hover,.profile-achievement-card:focus-visible{border-color:var(--yellow);outline:none;filter:brightness(1.08)}
.profile-head-to-head-content{display:grid;gap:12px;margin-top:14px}
.advanced-head-mode{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 10px}
.profile-head-to-head-content .profile-record-table{width:100%;table-layout:fixed}
.profile-head-to-head-content .profile-summary :is(th,td):first-child{width:22%}
.profile-head-to-head-content .profile-summary :is(th,td):not(:first-child){width:15.6%}
.profile-comparison-games .profile-games :is(th,td):nth-child(1){width:24%}
.profile-comparison-games .profile-games :is(th,td):nth-child(2){width:50%}
.profile-comparison-games .profile-games :is(th,td):nth-child(3){width:26%}
.profile-comparison-games{padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:760px){
  .stats-leaderboard-heading>div:first-child{flex-basis:auto}
}
@media(max-width:480px){
  .club-home-meta-row{align-items:flex-end;flex-wrap:wrap}
  .club-home-status{margin-left:0}
  .club-people-heading{align-items:flex-start}
  .club-people-actions{width:100%;justify-content:stretch}
  .club-people-actions .button{flex:1 1 0;min-width:0;white-space:normal}
  .club-people-table :is(th,td):nth-child(1){width:34%!important}
  .club-people-table :is(th,td):nth-child(2){width:28%!important}
  .club-people-table :is(th,td):nth-child(3){width:38%!important;white-space:normal!important}
  .people-row-actions{display:grid;grid-template-columns:1fr}
  .people-row-actions .button{width:100%!important;padding-inline:2px!important}
  .profile-achievement-context dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-drilldown-table table{font-size:.62rem}
  .stats-drilldown-table :is(th,td){padding:6px 4px}
}

/* Drill-down tables begin compactly and expand only when requested. */
.top-five-title{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin:0 0 8px;padding:0;border:0;background:transparent;color:var(--yellow);font:400 .9rem/1.25 inherit;text-align:left;cursor:pointer}
.club-stats-summary-detail{margin:12px 0}
.club-stats-summary-detail>.section-title{margin-bottom:10px}
.stat-card-link.active{border-color:var(--yellow);box-shadow:0 0 0 1px color-mix(in srgb,var(--yellow) 35%,transparent)}
.progressive-table-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:8px 2px}
.progressive-table-controls>span{color:var(--muted);font-size:.7rem;font-weight:750}
.progressive-table-controls>div{display:flex;align-items:center;gap:12px}
.progressive-table-controls .text-button{margin:0;padding:4px 0;color:var(--yellow);font-size:.74rem;font-weight:900}
.stats-drilldown-target{animation:stats-drilldown-pulse 2.4s ease-out}
@keyframes stats-drilldown-pulse{0%,35%{background:color-mix(in srgb,var(--yellow) 24%,var(--card-2))}100%{background:transparent}}
@media(max-width:480px){
  .progressive-table-controls{align-items:flex-start;flex-direction:column}
  .progressive-table-controls>div{width:100%;justify-content:space-between}
}

/* Temporary settings keep their headings readable while making the locked
   controls visible enough to understand what signing in will unlock. */
#live-stream-settings-panel,#follower-settings-panel{position:relative}
.temporary-settings-locked>h2~*:not(.temporary-settings-lock){filter:blur(2px);opacity:.45;pointer-events:none;user-select:none}
.temporary-settings-lock{inset:58px 14px 14px;min-height:150px;background:rgba(17,31,23,.91)}
#club-reports-section.plan-locked>h3{filter:none;opacity:1;pointer-events:auto;user-select:auto}
.integration-settings-panel.plan-locked{min-height:240px}
.integration-settings-panel.plan-locked>.integration-settings-body{display:grid;filter:blur(2px);opacity:.42;pointer-events:none;user-select:none}

/* Locale direction applies to the interface, not the Latin wordmark or email. */
.brand b,.brand small,.hero-copy h1,.dashboard-intro h1{direction:ltr;unicode-bidi:isolate}
#auth-identifier,#reg-email,#account-email{direction:ltr;unicode-bidi:isolate}
.home-language-control{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:nowrap;margin:8px 0;color:var(--muted);font-size:.78rem}
.home-language-control select{flex:none;width:112px;min-width:0;max-width:112px;height:32px;min-height:32px;margin:0;padding:3px 6px;border-width:1px;border-radius:7px;font-size:.76rem}
#auth-view .home-language-control select,#dashboard-view .home-language-control select{height:32px;min-height:32px;font-size:.76rem;line-height:1.15}
/* Staff-only display takeover controls; keep long translations usable on phones. */
.venue-session-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 28px));max-height:85vh;overflow:auto;padding:22px;border:2px solid #28593c;border-radius:18px;background:#10291c;color:#f6fff9}
.venue-session-dialog::backdrop{background:#000b}
.venue-session-dialog h2{margin-top:0;color:#ffcc16}
.venue-session-dialog p,.venue-session-dialog small{overflow-wrap:anywhere;line-height:1.45}
.venue-session-card{display:grid;gap:8px;padding:16px 0;border-top:1px solid #28593c}
.venue-session-card p{margin:0}
.venue-session-card>span,.venue-session-card>small{color:#8fc4a4}
.venue-session-details{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 12px;margin:0}
.venue-session-details dt{color:#8fc4a4;font-weight:800}
.venue-session-details dd{min-width:0;margin:0;overflow-wrap:anywhere}
.venue-session-dialog button{width:100%;white-space:normal;min-height:44px;padding:12px}

/* Keep long translated expiry warnings readable instead of squeezing them beside an action. */
@media(max-width:480px){
  .subscription-expiry-banner{flex-direction:column;align-items:stretch;gap:10px;padding:14px 16px}
  .subscription-expiry-banner>div{min-width:0;overflow-wrap:anywhere}
  .subscription-expiry-banner>.button{width:100%;min-height:44px;white-space:normal}
}

/* Native pickers inherit the active palette (including Android's option sheet). */
body:not([data-theme="light"]) select{color-scheme:dark}
body:not([data-theme="light"]) select option{background:var(--card-2);color:var(--text)}
body[data-theme="light"] select{color-scheme:light}
body[data-theme="light"] select option{background:var(--card-2);color:var(--text)}

/* Profile tables own their frames; outer sections no longer consume mobile width. */
.player-profile-page :is(.profile-summary-panel,.profile-history,.profile-head-to-head,.profile-compare-picker,.profile-comparison-history){padding:0;border:0;background:transparent;box-shadow:none;overflow:visible}
.player-profile-page .club-record-table-wrap{border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:auto}
.player-profile-page .profile-achievement-panel{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.player-profile-page .profile-achievement-context{border-left:1px solid var(--line)}
.player-profile-page :is(.profile-stat-link,.fixture-record-link,.competition-player-link,.profile-club-name-link){text-decoration:none!important}
.player-profile-page .profile-games{font-size:.62rem}
.player-profile-page .profile-games :is(th,td){padding:7px 3px}
.player-profile-page .profile-games :is(th,td):first-child{width:24%}
.player-profile-page .profile-games .record-date{font-size:.58rem;white-space:nowrap;overflow-wrap:normal}
.club-people-table th:nth-child(2),.club-people-table th:nth-child(2) .profile-sort-button{text-align:center;justify-content:center}
#club-stats-summary-detail .club-record-table{font-size:.68rem}
#club-stats-summary-detail .club-record-table :is(th,td){padding:6px 4px}
.people-name-edit{display:inline-block;margin-left:8px;padding:2px 4px;border:0;background:transparent;color:var(--yellow);font-size:.64rem;font-weight:800;cursor:pointer;vertical-align:middle}
.people-name-edit:hover,.people-name-edit:focus-visible{text-decoration:underline}
.profile-person-details{display:flex;flex-wrap:wrap;gap:8px 18px;width:100%;margin:6px 0 4px}
.profile-person-details div{display:flex;gap:5px;align-items:baseline}
.profile-person-details dt{color:var(--muted);font-size:.7rem;font-weight:800}
.profile-person-details dd{margin:0;color:var(--text);font-size:.76rem}
body:not([data-theme="light"]) input[type="date"]{color-scheme:dark}
body[data-theme="light"] input[type="date"]{color-scheme:light}
.setup-player-picker-button{width:100%;min-height:46px;padding:11px 38px 11px 14px;border:2px solid var(--line-soft);border-radius:12px;background:var(--card-2);color:var(--text);font:inherit;text-align:left;cursor:pointer;position:relative}
.setup-player-picker-button::after{content:'⌄';position:absolute;right:14px;top:50%;transform:translateY(-55%);color:var(--muted);font-size:1.1rem}
.setup-player-picker-button:hover,.setup-player-picker-button:focus-visible{border-color:var(--yellow)}

/* Light mode keeps the brand gold for headings, but uses calmer action
   colours so primary and success buttons do not read as brown or neon. */
body[data-theme="light"]{--bg:#e5e9e7;--card:#f2f4f3;--card-2:#e9eeeb;--input:#f6f7f6;--green:#5f8f73;--green-dark:#47745c}
body[data-theme="light"] :is(input,select,textarea){background:var(--input)}
body[data-theme="light"] :is(.button.primary,.coral-button){border-color:#55788c;background:#55788c;color:#fff}
body[data-theme="light"] :is(.button.secondary,.display-button,.tabs button.active,.setting-options button.active){background:var(--green);color:#fff}
body[data-theme="light"] .live-tournament-card{border-color:#9567a4;background:#f7eff9}
body[data-theme="light"] .live-tournament-card h2{color:#683a76}
body[data-theme="light"] #tab-live .live-competition-card :is(.live-match-kicker,.live-frame-competition-name,.live-card-club){color:#63406e!important}
body[data-theme="light"] #tab-live .live-competition-card :is(.live-card-score-stack,.live-card-match-name,.live-frame-position,.live-frame-origin,.live-tournament-hero-meta){color:#263b2e!important}
body[data-theme="light"] #tab-live .live-competition-card :is(.live-match-kicker,.live-frame-competition-name,.live-card-club,.live-tournament-copy>span){color:var(--green-dark)!important}
body[data-theme="light"] #tab-live .live-competition-card .live-card-score-stack>span{color:var(--text)!important}

/* API and MQTT locks are bounded to their own Settings cards. Without this
   containing block the absolutely positioned Pro cover can fill the club. */
.integration-settings-panel{position:relative}
.club-people-search{display:block;margin:9px 0 12px}.club-people-search input{width:100%;margin:0}
.player-name-validation{display:block;min-height:1.35em;margin-top:7px;color:var(--muted);font-size:.74rem;font-weight:750}.player-name-validation.good{color:#63d78f}.player-name-validation.bad{color:#ff7568}
.branding-logo-picker,#club-branding-remove-logo,#club-branding-remove-advertisement{border-width:1px;border-radius:9px;box-shadow:none}
.integration-settings-panel.plan-locked{min-height:290px!important}
.mqtt-settings-panel.plan-locked{min-height:320px!important}
.integration-settings-panel.plan-locked>.integration-settings-body{display:grid!important;max-height:215px;overflow:hidden;filter:blur(2px);opacity:.52;pointer-events:none;user-select:none}
.mqtt-settings-panel.plan-locked>.integration-settings-body{max-height:245px}
.integration-settings-panel .integration-plan-lock{inset:62px 14px 14px;background:color-mix(in srgb,var(--card) 84%,transparent)}
.integration-settings-panel.plan-locked .integration-settings-summary>span:first-child small,.integration-settings-panel.plan-locked .integration-summary-end{display:none}

.club-night-prompt-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}
.club-night-prompt-summary>span{display:grid;gap:4px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card-2);text-align:center}
.club-night-prompt-summary>span.wide{grid-column:1/-1}
.club-night-usage-counts{display:grid;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.club-night-usage-counts>span{display:grid;gap:4px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card-2);text-align:center}
.match-screen-club-row .tournament-status.draft{flex-basis:100%;text-align:center}
.club-night-prompt-summary small{color:var(--muted);font-size:.67rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.club-night-prompt-summary b{color:var(--text);font-size:.78rem;line-height:1.3;overflow-wrap:anywhere}

/* The Past Matches competition table always reserves enough width for its
   Progress heading. Long tournament names yield space and scale gently. */
.tournament-record-table th:nth-child(1){width:19%!important}
.tournament-record-table th:nth-child(2){width:29%!important}
.tournament-record-table th:nth-child(3){width:14%!important}
.tournament-record-table th:nth-child(4){width:14%!important}
.tournament-record-table th:nth-child(5){width:24%!important;white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important;font-size:.56rem}
.tournament-record-table td:nth-child(2) :is(strong,.fixture-record-link){font-size:clamp(.58rem,2.2vw,.72rem);line-height:1.15}
@media(max-width:480px){.tournament-record-table th:nth-child(1){width:17%!important}.tournament-record-table th:nth-child(2){width:29%!important}.tournament-record-table th:nth-child(5){width:26%!important;font-size:.52rem}}

.top-five-static-title{margin:0 0 8px;color:var(--yellow);font:400 .9rem/1.25 inherit}
.top-five-static-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.stats-range-badge{display:inline-flex;align-items:center;flex:0 0 auto;padding:3px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.62rem;font-style:normal;line-height:1;white-space:nowrap}
.top-five-title .stats-range-badge{margin-left:auto}.top-five-title i{margin-left:0}
.settings-title-row,.profile-display-name-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-title-row h2,.profile-display-name-row h1{margin:0}
.plan-badge{display:inline-flex;padding:4px 9px;border:1px solid var(--yellow);border-radius:999px;color:var(--yellow);font-size:.7rem;font-weight:900;letter-spacing:.08em}
.profile-edit-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--yellow);font-size:1.15rem;cursor:pointer}
.profile-person-details{display:grid;grid-template-columns:1fr;margin:10px 0 0}.profile-person-details>div{display:grid;grid-template-columns:minmax(90px,.45fr) 1fr;gap:10px}.profile-person-details dt,.profile-person-details dd,.profile-historical-player{color:var(--text);font:inherit}.profile-membership-status,.profile-membership-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.profile-historical-player{margin:0}
.activity-record-table .competition-player-link,.activity-record-table [data-activity-staff-profile]{color:var(--text)!important}
.quick-result-toolbar{display:flex;width:100%;margin:0 0 10px}.quick-result-toolbar .button{width:100%;min-height:44px}.live-draw-table{width:100%;table-layout:fixed}.live-draw-table .winner-column{width:110px!important}.live-draw-table .winner-column .button{width:96px;min-width:96px}
.admin-access-timing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-access-timing-grid>label:nth-last-child(-n+2){grid-row:auto}
@media(max-width:480px){.admin-access-timing-grid,.admin-repeat-access-row{grid-template-columns:1fr}.stats-range-badge{font-size:.58rem}}
.stats-occurrence-summary{display:block;margin:0 0 12px;padding:0;border:0;background:transparent;color:var(--muted);font-size:.78rem;font-weight:700;line-height:1.45}
.club-match-search{margin:0 0 14px}.club-match-search input{width:100%}
@media(max-width:480px){.profile-streak-row th{min-width:145px!important;width:42%!important}.profile-streak-row td{padding-left:12px!important}}

/* Locked integration cards use the same three-line lock treatment and surface
   colour as every other plan-gated Club Setting. */
.integration-settings-panel .integration-plan-lock{background:rgba(17,31,23,.89)}
.integration-settings-panel .integration-plan-lock strong{font-size:.9rem}
.integration-settings-panel .integration-plan-lock small{font-size:.72rem}
body[data-theme="light"] .integration-settings-panel .integration-plan-lock{background:rgba(255,255,255,.94)}

/* Venue branding uses the same visual lock strength as the other gated
   settings cards while keeping its lock copy crisp above the blur. */
.club-branding-control.plan-locked>:not(.club-branding-lock){filter:blur(3px);opacity:.42;pointer-events:none;user-select:none}
.match-screen-name-button{display:inline-flex;align-items:center;max-width:100%;margin:0;border:0;padding:0;overflow:hidden;background:transparent;color:var(--text);font:inherit;font-size:clamp(1.45rem,5vw,2.25rem);font-weight:900;line-height:1.08;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.match-screen-title>h1{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-screen-name-button:hover{color:var(--yellow)}
.first-break-legend{margin:0 0 10px;color:var(--muted);font-size:.76rem}
.team-position-changed{color:var(--yellow);font-weight:900}
.manual-score-entry{display:grid;gap:10px;margin-top:12px}.manual-score-toggle{display:flex;align-items:center;gap:10px;margin:0;cursor:pointer}.manual-score-toggle>input{position:absolute;width:1px!important;height:1px;opacity:0;pointer-events:none}.manual-score-toggle-ui{position:relative;display:inline-block;flex:0 0 42px;width:42px;height:24px;border:1px solid var(--line);border-radius:999px;background:var(--card-2);transition:.18s}.manual-score-toggle-ui i{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:.18s}.manual-score-toggle>input:checked+.manual-score-toggle-ui{border-color:var(--yellow);background:rgba(245,197,66,.18)}.manual-score-toggle>input:checked+.manual-score-toggle-ui i{left:21px;background:var(--yellow)}.manual-score-toggle>input:focus-visible+.manual-score-toggle-ui{outline:3px solid color-mix(in srgb,var(--yellow) 45%,transparent);outline-offset:2px}.manual-score-toggle>b{color:var(--text);font-size:.82rem}.manual-score-steppers{display:grid;grid-template-columns:1fr 1fr;gap:10px}.manual-score-steppers>div{display:grid;gap:5px}.manual-score-stepper{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden}.manual-score-stepper button{min-height:42px;border:0;background:var(--card-2);color:var(--yellow);font-size:1.2rem;font-weight:900}.manual-score-stepper b{text-align:center}.manual-winner-readonly{cursor:not-allowed;opacity:.78}
.manual-statistics-entry{display:grid;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.manual-statistics-fields{display:grid;gap:10px;max-height:42dvh;overflow:auto;overscroll-behavior:contain;padding:2px}.manual-statistics-fields fieldset{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:10px;border:1px solid var(--line);border-radius:10px}.manual-statistics-fields legend{padding:0 5px;color:var(--yellow);font-weight:900}.manual-statistics-fields label{margin:0}@media(max-width:480px){.manual-statistics-fields fieldset{grid-template-columns:1fr}}
.manual-statistics-fields fieldset label{display:grid;gap:5px;color:var(--muted);font-size:.68rem}.manual-stat-stepper{display:grid;grid-template-columns:36px minmax(34px,1fr) 36px;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--card-2)}.manual-stat-stepper button{height:36px;padding:0;border:0;background:transparent;color:var(--yellow);font-size:1.05rem;font-weight:950}.manual-stat-stepper b{text-align:center;color:var(--text);font-size:.82rem}.manual-result-dialog[open]>.modal-card,.stats-drilldown-dialog[open]>.modal-card{display:flex;max-height:calc(100dvh - 20px);flex-direction:column;overflow:hidden}.manual-result-dialog #simple-fields,.stats-drilldown-dialog #simple-fields{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 2px 12px}.manual-result-dialog #simple-form>.modal-actions,.stats-drilldown-dialog #simple-form>.modal-actions{position:sticky;bottom:0;z-index:3;flex:0 0 auto;margin:0 -22px -22px;padding:14px 22px max(18px,env(safe-area-inset-bottom));background:var(--card);box-shadow:0 -10px 18px var(--card)}.stats-drilldown-dialog{width:min(680px,calc(100% - 12px))}.stats-drilldown-dialog .stats-drilldown-table{overflow:auto}.stats-drilldown-dialog .stats-drilldown-table table{min-width:0!important;font-size:.56rem!important}.stats-drilldown-dialog .stats-drilldown-table :is(th,td){padding:4px 2px!important;line-height:1.15!important}.stats-drilldown-dialog .stats-drilldown-table strong{font-size:inherit}.stats-drilldown-dialog .stats-drilldown-table small{font-size:.5rem}
@media(max-width:480px){.stats-drilldown-dialog[open]>.modal-card{padding:14px}.stats-drilldown-dialog .stats-drilldown-table table{font-size:.5rem!important}.stats-drilldown-dialog .stats-drilldown-table :is(th,td){padding:3px 2px!important}.stats-drilldown-dialog #simple-form>.modal-actions{margin:0 -14px -14px;padding:10px 14px max(12px,env(safe-area-inset-bottom))}}
/* Record surfaces set cell and nested-control sizes explicitly: a table font
   alone cannot override the legacy cell rules or shared reporting stylesheet. */
#empty-clubs #empty-create{width:100%;flex:1 1 100%}
#player-profile-view .profile-streak-row th{width:auto!important;min-width:0!important;white-space:normal!important}
#player-profile-view .profile-streak-row td{padding-inline-start:16px!important}
#player-profile-view .profile-streak-stat{flex-wrap:wrap;gap:8px 16px}

/* Keep actions outside the scrolling fields. The generic modal rule has higher
   specificity than a class alone, so target the actual dialog and form. */
#simple-dialog:is(.manual-result-dialog,.stats-drilldown-dialog)[open]{overflow:hidden}
#simple-dialog:is(.manual-result-dialog,.stats-drilldown-dialog)[open]>#simple-form{
  display:flex;flex-direction:column;overflow:hidden;
  max-height:calc(100dvh - 20px);padding:18px;
}
#simple-dialog:is(.manual-result-dialog,.stats-drilldown-dialog) #simple-fields{
  flex:1 1 auto;min-height:0;overflow:auto;padding:0 2px 16px;
}
#simple-dialog:is(.manual-result-dialog,.stats-drilldown-dialog) :is(.modal-top,#simple-error){flex:0 0 auto}
#simple-dialog:is(.manual-result-dialog,.stats-drilldown-dialog) #simple-form>.modal-actions{
  position:static;flex:0 0 auto;display:flex;flex-wrap:wrap;gap:8px;
  margin:0;padding:12px 0 0;background:var(--card);box-shadow:none;
}
#simple-dialog:is(.manual-result-dialog,.stats-drilldown-dialog) .modal-actions>.button{flex:1;min-width:0;width:auto}
#simple-dialog.stats-drilldown-dialog .stats-drilldown-table :is(th,td){font-size:.68rem!important}
#simple-dialog.stats-drilldown-dialog .stats-drilldown-table table thead th{white-space:nowrap!important;overflow-wrap:normal!important;word-break:normal!important}
#simple-dialog.stats-drilldown-dialog .stats-drilldown-table table:has(th:nth-child(4)) th:nth-last-child(-n+2){width:15%}
#simple-dialog.stats-drilldown-dialog .stats-drilldown-table :is(strong,small,button,a,span){font-size:inherit!important;line-height:inherit;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}
@media(max-width:760px){
  #tab-fixtures .club-record-table,
  #player-profile-view .club-record-table{width:100%;min-width:0!important;table-layout:fixed!important}
  #tab-fixtures .club-record-table :is(th,td),
  #player-profile-view .club-record-table :is(th,td),
  #simple-dialog.stats-drilldown-dialog .stats-drilldown-table :is(th,td){
    font-size:clamp(.58rem,2.55vw,.7rem)!important;line-height:1.25!important;
    letter-spacing:0!important;padding:6px 3px!important;min-width:0!important;
    white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;text-overflow:clip;
  }
  #tab-fixtures .club-record-table :is(strong,small,button,a,span),
  #player-profile-view .club-record-table :is(strong,small,button,a,span){
    font-size:inherit!important;line-height:inherit;letter-spacing:0!important;
    white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;
  }
  #tab-fixtures .club-record-table :is(.record-date,.record-score),
  #player-profile-view .club-record-table :is(.record-date,.record-score){white-space:nowrap!important}
  #player-profile-view .profile-summary th:first-child{width:24%}
  #player-profile-view .profile-summary th:not(:first-child){width:auto}
  #simple-dialog.stats-drilldown-dialog .stats-drilldown-table :is(th,td):first-child{width:27%;white-space:nowrap!important}
}
