@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--ink:#111e26;--muted:#627079;--paper:#f4f6f5;--lime:#d0f267;--line:#dce2df;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #639216;outline-offset:4px}.preview{background:var(--lime);padding:8px 4%;font-size:12px;font-weight:800;letter-spacing:.08em}.preview span{margin-left:18px;font-weight:500;letter-spacing:0}header{padding:24px 4%;display:flex;align-items:center;gap:24px;background:white}.brand{display:flex;align-items:center;gap:12px;font-size:25px;font-weight:800;line-height:1.1;letter-spacing:.04em}.brand small{display:block;font-size:10px;letter-spacing:.14em;margin-top:6px}.mark{background:var(--ink);color:white;padding:13px 9px;font-family:'Barlow Condensed',sans-serif;font-size:28px}.mark span{color:var(--lime)}.league-switch{margin-left:auto}select,input,textarea{background:white;border:1px solid var(--line);border-radius:5px;padding:11px 12px;color:var(--ink);max-width:100%}button,.button{border:0;border-radius:4px;padding:12px 18px;background:var(--ink);color:white;font-weight:700;display:inline-block}.outline{background:transparent;border:1px solid var(--line);color:var(--ink)}nav{display:flex;padding:0 4%;gap:32px;background:white;border-block:1px solid var(--line);overflow:auto}nav a{padding:16px 0;white-space:nowrap;font-size:14px;font-weight:700;border-bottom:3px solid transparent}nav a.active{border-color:var(--ink)}main{max-width:1440px;margin:auto;padding:32px 4% 64px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.05}h1,h2,.display{font-family:'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;font-weight:700}h1{font-size:clamp(44px,5vw,76px);letter-spacing:-.015em;margin-bottom:24px}h2{font-size:34px;margin-bottom:20px}h3{font-size:19px;line-height:1.3}.eyebrow{font-size:12px;letter-spacing:.15em;font-weight:800;text-transform:uppercase;margin-bottom:20px;display:block}.hero{display:grid;grid-template-columns:1.65fr 1fr;background:var(--ink);color:white;min-height:340px}.hero-copy{padding:44px}.hero h1{max-width:600px}.hero p{color:#c2cbd0;max-width:510px}.hero .button{background:var(--lime);color:var(--ink);margin-right:15px}.text-link{font-weight:700;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:3px}.hero-board{margin:28px 28px 28px 0;background:#1d2e37;padding:28px;border:1px solid #3a4c55;display:flex;flex-direction:column;justify-content:center}.hero-board .eyebrow{color:var(--lime)}.hero-board .display{font-size:54px;line-height:1}.hero-board p{margin:12px 0;font-size:14px}.hero-board a{margin-top:14px}.strip{display:grid;grid-template-columns:repeat(3,1fr);background:white;border:1px solid var(--line);margin-bottom:36px}.strip a{padding:19px 24px;border-right:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-weight:700}.strip small{display:block;color:var(--muted);font-size:12px;font-weight:400}.grid{display:grid;grid-template-columns:1.65fr 1fr;gap:28px}.panel{background:white;border:1px solid var(--line);padding:25px;border-radius:4px}.panel-head,.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.panel-head h2,.page-head h1{margin:0}.panel-head a{font-size:14px;font-weight:700}.badge{font-size:12px;font-weight:700;background:#eaf3d5;color:#426015;border-radius:3px;padding:5px 9px}.muted{color:var(--muted)}.small{font-size:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:14px}th{font-size:12px;color:var(--muted);font-weight:600;text-align:center;padding:12px 9px;background:#f4f6f5}td{padding:15px 9px;border-bottom:1px solid #edf0ee;text-align:center}th:nth-child(2),td:nth-child(2){text-align:left}td:nth-child(2){font-weight:700}td:last-child{font-weight:800}tbody tr:first-child td:first-child{color:#528013}tbody tr:hover{background:#f7faef}button.link{background:none;padding:0;color:var(--ink);text-align:left;font-weight:700}.team-icon{display:inline-grid;place-items:center;background:#e9eeec;border:1px solid #d8dfdc;width:28px;height:28px;font-size:10px;border-radius:50%;margin-right:10px}.fixture{padding:18px 0;border-bottom:1px solid var(--line)}.fixture:last-child{border-bottom:0}.fixture-top{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:11px}.match{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;font-weight:700;font-size:14px}.match span:last-child{text-align:right}.score{padding:5px 12px;background:var(--paper);white-space:nowrap}.section{margin-top:36px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.player{padding:25px;background:white;border:1px solid var(--line);border-top:3px solid var(--ink);border-radius:3px;text-align:left;color:var(--ink);width:100%;font-weight:400}.avatar{display:grid;place-items:center;width:64px;height:64px;background:#edf2e8;color:#567b27;border-radius:50%;font-family:'Barlow Condensed',sans-serif;font-size:28px;font-weight:700;flex-shrink:0}.player-top{display:flex;gap:15px;align-items:center;margin-bottom:25px}.player h3{margin:0 0 3px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;border-top:1px solid var(--line);padding-top:18px}.stats strong{display:block;font-size:25px}.stats small{color:var(--muted);font-size:12px}.news{padding:24px;border-left:4px solid var(--lime);background:white}.news p{margin:10px 0 0}.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:24px 0}.filters input{min-width:240px}.filters label{font-size:14px}.tabs{display:flex;gap:8px}.tabs button{background:white;color:var(--ink);border:1px solid var(--line)}.tabs button.selected{background:var(--ink);color:white}.notice{background:#eaf0e0;border:1px solid #cfdbba;padding:17px 20px;font-size:14px;margin-bottom:24px}.empty{padding:64px 24px;text-align:center;border:1px dashed #c3ceca;background:white}.empty p{max-width:550px;margin:15px auto;color:var(--muted)}.empty h2{font-size:36px}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.team-card{padding:28px;background:white;border:1px solid var(--line);text-align:left;color:var(--ink)}.team-card .team-icon{width:46px;height:46px;font-size:16px;margin-bottom:20px}.team-card p{font-weight:400;color:var(--muted);font-size:14px}.team-card h3{margin-bottom:10px}footer{background:var(--ink);color:white;padding:32px 4%;display:flex;align-items:center;gap:30px;flex-wrap:wrap}footer p,footer span{margin:0;color:#c2cbd0;font-size:12px}footer span{margin-left:auto}footer .brand{font-size:18px}footer a{font-size:14px}dialog{width:min(650px,calc(100% - 32px));max-height:85vh;border:0;padding:38px;border-radius:8px;color:var(--ink)}dialog::backdrop{background:#111e2699}.close{position:absolute;right:12px;top:8px;background:none;color:var(--ink);font-size:28px;padding:0 10px}.details{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0}.details dt{font-size:12px;color:var(--muted)}.details dd{margin:3px 0;font-weight:700}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:14px}label input,label select,label textarea{display:block;width:100%;margin-top:7px}textarea{min-height:100px}.wide{grid-column:1/-1}.result-output{margin-top:20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.install{background:#e8eedf;padding:25px;margin-top:28px}.inline-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px}ul{padding-left:20px}li{margin-bottom:8px}@media(max-width:850px){header{gap:12px;flex-wrap:wrap}.brand{font-size:21px}.league-switch{margin-left:auto}header .outline{font-size:12px;padding:9px}nav{gap:24px}.hero{grid-template-columns:1fr}.hero-copy{padding:30px}.hero-board{margin:0 30px 30px}.hero-board .display{font-size:38px}.grid{grid-template-columns:1fr}.cards,.team-grid{grid-template-columns:repeat(2,1fr)}.strip a{padding:15px;font-size:14px}.page-head{align-items:flex-start}footer span{margin-left:0}}@media(max-width:550px){.preview span{display:block;margin:3px 0 0}.league-switch{order:3;width:100%;margin:0}.league-switch select{width:100%}header>.outline{margin-left:auto}.hero h1{font-size:50px}.hero-copy{padding:25px}.hero-board{margin:0 25px 25px}.strip{grid-template-columns:1fr}.strip a{border-bottom:1px solid var(--line)}.cards,.team-grid{grid-template-columns:1fr}.panel{padding:18px}.panel-head{gap:10px}.panel-head h2{font-size:28px}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.page-head{flex-direction:column}.page-head h1{font-size:44px}main{padding-top:20px}.hero .button{margin-bottom:16px}.details{gap:14px}dialog{padding:32px 22px}}

nav{flex-wrap:wrap;gap:0 25px;overflow:visible}nav a{padding:12px 0}.fixture-filters{display:grid;grid-template-columns:1fr 1fr 1.2fr auto;gap:16px;align-items:end;margin-bottom:20px}.fixture-filters input{min-width:0}.draw-rounds{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.draw-round{background:var(--paper);padding:20px}.draw-slot{background:white;border:1px solid var(--line);padding:14px;margin-top:12px;font-size:14px}@media(max-width:850px){.fixture-filters{grid-template-columns:1fr 1fr}.draw-rounds{grid-template-columns:1fr}}@media(max-width:550px){nav{gap:0 18px}nav a{font-size:13px}.fixture-filters{grid-template-columns:1fr}.tabs{flex-wrap:wrap}}

.home-shortcuts{gap:18px;background:transparent;border:0;margin:24px 0 36px}.home-shortcuts a.shortcut{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:12px;padding:26px;border:1px solid transparent;border-radius:6px;transition:transform .18s ease,box-shadow .18s ease}.fixtures-shortcut{background:#d0f267;color:#17251d}.stats-shortcut{background:#145ba1;color:#fff}.cups-shortcut{background:#663b94;color:#fff}.shortcut-title{font-size:23px;line-height:1.2;font-weight:800}.shortcut-description{font-size:14px;line-height:1.5;font-weight:400;max-width:280px}.shortcut-action{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px;font-size:14px;font-weight:800}.shortcut-action span{display:grid;place-items:center;width:38px;height:38px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);border-radius:50%;font-size:24px}.fixtures-shortcut .shortcut-action span{background:#17251d;color:#d0f267;border-color:#17251d}.home-shortcuts a:hover{transform:translateY(-3px);box-shadow:0 8px 20px #111e2620}.home-shortcuts a:focus-visible{outline:3px solid #111e26;outline-offset:4px}.hero .text-link{display:inline-block;padding:10px 14px;border:1px solid #687780;border-radius:4px}.hero-board .text-link{align-self:flex-start}.hero-board .display{font-size:clamp(34px,3.6vw,54px)}@media(max-width:850px){.home-shortcuts{gap:12px}.home-shortcuts a.shortcut{padding:20px}.shortcut-title{font-size:21px}}@media(max-width:600px){.home-shortcuts{grid-template-columns:1fr}.home-shortcuts a.shortcut{gap:8px}.shortcut-action{padding-top:4px}.brand{font-size:20px}}@media(prefers-reduced-motion:reduce){.home-shortcuts a.shortcut{transition:none}.home-shortcuts a:hover{transform:none}}

select{appearance:none;-webkit-appearance:none;padding-right:48px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='%23111e26' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:18px 18px}.login-arrow{font-size:23px;line-height:1;vertical-align:middle;margin-left:9px}header .brand-logo{width:100px;height:100px;object-fit:contain;flex-shrink:0}header .brand{gap:16px}@media(max-width:550px){header .brand-logo{width:76px;height:76px}header .brand{font-size:18px;gap:10px}header>.outline{font-size:12px}.login-arrow{font-size:20px;margin-left:4px}}@media(forced-colors:active){select{background-image:none}}

.planner-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;margin-bottom:24px}.planner-toolbar .inline-links{margin:0}.planner-fieldset{border:0;padding:0;margin:0;min-width:0}.division-editor{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.team-edit-row{display:grid;grid-template-columns:1.3fr 1.2fr 1fr auto;align-items:end;gap:14px;margin-bottom:15px}.team-editor{margin-bottom:20px}.venue-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.venue-editor{border:1px solid var(--line);padding:24px;background:var(--paper);border-radius:5px}.venue-editor>label,.venue-editor .form-grid{margin-bottom:18px}.venue-ticks{display:flex;gap:14px;flex-wrap:wrap;margin:16px 0}.check-label{display:flex;align-items:center;gap:8px}.check-label input{width:18px;height:18px;margin:0}.venue-filter-label{max-width:340px;margin:20px 0}.planner-results{max-height:600px;overflow:auto}.planner-results th{position:sticky;top:0}.planner-results td{text-align:left}.planner-error{border-color:#b53535;background:#fff1ef;color:#8e2424}.usage-home{background:#eaf3d5}.usage-empty{color:#78827c}summary{font-size:18px;font-weight:700;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.import-label{cursor:pointer}.import-label:focus-within{outline:3px solid #639216;outline-offset:3px}@media(max-width:850px){.team-edit-row{grid-template-columns:1fr 1fr}.venue-edit-grid{grid-template-columns:1fr}.division-editor .panel-head{flex-wrap:wrap}}@media(max-width:550px){.team-edit-row{grid-template-columns:1fr}.planner-toolbar .tabs{flex-wrap:wrap}.venue-editor{padding:16px}}

.board-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.board-panel{border:1px solid var(--line);border-top:5px solid #145ba1;background:#fff;padding:20px;min-width:0}.board-panel>h3{font-size:25px;margin-bottom:18px}.knockout-match{border:1px solid var(--line);padding:16px;background:#fff;margin-bottom:16px;border-radius:4px;overflow-wrap:anywhere}.match-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px;margin-bottom:14px;color:var(--muted)}.knockout-players>div{display:flex;justify-content:space-between;gap:15px;padding:9px 0;font-weight:600}.knockout-players .winner{color:#37600e}.scorer{font-size:13px;margin:15px 0 0;padding-top:12px;border-top:1px solid var(--line);color:var(--muted)}.tournament-result{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.tournament-result button{grid-column:1/-1}.tournament-result label{font-size:13px}.tournament-result input{min-width:0}.bracket-scroll{display:flex;gap:20px;overflow-x:auto;align-items:flex-start;padding-bottom:15px}.bracket-round{flex:0 0 280px;min-width:0}.bracket-round h3{padding:14px;background:var(--ink);color:white}.match-done{background:#f6f9f1}.ready-queue{padding-left:25px}.ready-queue li{padding:10px;border-bottom:1px solid var(--line)}.ready-queue small{display:block;color:var(--muted)}.champion{padding:32px;background:var(--lime);border-radius:5px}.champion h2{font-size:44px}.tournament-heading h2{overflow-wrap:anywhere}#tournament-form textarea[name=entrants]{min-height:230px}#tournament-form .inline-links{margin-top:0}.tournament-heading input[readonly]{width:100%}@media(max-width:600px){.board-grid{grid-template-columns:1fr}.board-panel{padding:16px}.bracket-round{flex-basis:260px}.panel-head:has(#tournament-player){flex-direction:column;align-items:stretch}.tournament-result{grid-template-columns:1fr}.tournament-result button{grid-column:auto}}

[hidden]{display:none!important}

/* Live setup forms */
.team-edit-row{grid-template-columns:repeat(3,minmax(0,1fr));padding:16px;border:1px solid var(--line);border-radius:8px}.team-edit-row label{min-width:0}.team-edit-row input{width:100%}@media(max-width:700px){.team-edit-row{grid-template-columns:1fr}}
/* v1.12 organiser record workflow */
.planner-ok,.workspace-ok{border-color:#4f8a5b!important;background:#eef8f0!important;color:#173c20!important}.planner-error,.workspace-error{border-color:#b85c5c!important;background:#fff1f1!important;color:#6c1f1f!important}.record-form{margin-bottom:18px}.simple-list{display:grid;gap:10px}.record-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;border:1px solid var(--line,#d8dde0);border-radius:10px;background:rgba(255,255,255,.65)}.record-row>div:first-child{display:grid;gap:3px}.record-row span{font-size:.9rem;color:var(--muted,#617078)}.division-list{display:grid;gap:14px}.division-editor{border:1px solid var(--line,#d8dde0);border-radius:12px;padding:14px}.assign-form,.compact-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:12px}.assign-form label,.compact-form label{flex:1;min-width:220px}.danger{border-color:#b85c5c!important}.admin-action-tabs{flex-wrap:wrap}@media(max-width:720px){.record-row{align-items:flex-start;flex-direction:column}.record-row .inline-links{width:100%}.assign-form{align-items:stretch;flex-direction:column}.admin-action-tabs button{flex:1 1 45%}}

/* v1.15 compact saved-team register */
.team-compact-list{gap:5px}.team-compact-row{padding:7px 10px;border-radius:6px;min-height:0}.team-compact-row>div:first-child{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.team-compact-row strong{white-space:nowrap}.team-compact-row span{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-compact-row .inline-links{margin-top:0;gap:6px;flex-wrap:nowrap}.team-compact-row .inline-links button{padding:6px 10px;font-size:12px}.team-compact-row .inline-links{margin:0}
@media(max-width:720px){.team-compact-row{padding:8px 10px;gap:8px}.team-compact-row>div:first-child{display:grid;gap:2px}.team-compact-row span{white-space:normal}.team-compact-row .inline-links{width:auto}}
/* v1.17 venue/player image controls */
.record-photo-preview{display:flex;align-items:center;gap:12px;margin:10px 0 16px}.record-photo-preview img{width:86px;height:86px;object-fit:cover;border-radius:10px;border:1px solid rgba(255,255,255,.16)}.record-photo-preview span,.field-help{display:block;font-size:.82rem;opacity:.72;margin-top:5px}.record-thumb{width:46px;height:46px;object-fit:cover;border-radius:8px;flex:0 0 46px}.record-row{gap:12px}

/* v1.18 clearer saved-image state */
.saved-photo{padding:10px 12px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.04)}
.saved-photo strong{display:block;margin-bottom:3px}.saved-photo span{margin:0}
.saved-thumb-wrap{display:flex;align-items:center;gap:8px;min-width:145px}.saved-image-badge{font-size:.75rem;font-weight:700;white-space:nowrap}
.photo-selection-status{display:block;margin-top:6px;font-size:.78rem;font-weight:700}
@media(max-width:650px){.saved-thumb-wrap{min-width:0}.saved-image-badge{white-space:normal}}

/* v1.19 compact saved-venue register */
.venue-compact-list{gap:5px}.venue-compact-row{padding:7px 10px;border-radius:6px;min-height:0}.venue-compact-row>.saved-thumb-wrap{min-width:108px;gap:6px}.venue-compact-row .record-thumb{width:34px;height:34px;flex-basis:34px;border-radius:6px}.venue-compact-row>.saved-thumb-wrap+.record-details,.venue-compact-row>div:nth-child(2){min-width:0;flex:1}.venue-compact-row>div:nth-child(2){display:flex;align-items:center;gap:10px}.venue-compact-row>div:nth-child(2) strong{white-space:nowrap}.venue-compact-row>div:nth-child(2) span{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.venue-compact-row .saved-image-badge{font-size:.68rem}.venue-compact-row .inline-links{margin:0;gap:6px;flex-wrap:nowrap}.venue-compact-row .inline-links button{padding:6px 10px;font-size:12px}
@media(max-width:720px){.venue-compact-row{padding:8px 10px;gap:8px}.venue-compact-row>div:nth-child(2){display:grid;gap:2px}.venue-compact-row>div:nth-child(2) span{white-space:normal}.venue-compact-row .inline-links{width:auto}.venue-compact-row>.saved-thumb-wrap{min-width:0}}

/* v1.21 guided league builder */
.league-builder{margin-top:18px}.team-count-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:16px 0}.league-division-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:18px}.division-slots{display:grid;gap:9px}.division-slot{display:grid;grid-template-columns:72px 1fr;align-items:center;gap:10px;font-size:13px}.division-slot select{margin-top:0}.bye-slot{padding:9px 11px;background:#f4f6f5;border:1px dashed var(--line);border-radius:4px}.bye-slot span{color:var(--muted)}.league-workspace-actions{margin-top:0;margin-bottom:18px}@media(max-width:600px){.division-slot{grid-template-columns:1fr}.league-division-grid{grid-template-columns:1fr}}

/* v1.28 active league context and protected management */
.active-league-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;margin:0 0 14px;border:2px solid currentColor;border-radius:12px;background:rgba(255,255,255,.04)}
.active-league-banner>div{display:grid;gap:2px}.active-league-banner strong{font-size:1.02rem}.active-saved-league{outline:2px solid currentColor;outline-offset:-2px}
@media(max-width:700px){.active-league-banner{align-items:flex-start;flex-direction:column}.active-league-banner .badge{align-self:flex-start}}

/* v1.34 public fixtures: full-season first, compact filters, responsive fixture cards */
.fixtures-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.fixtures-page-head h2{margin-bottom:5px}.fixture-filter-toggle{display:none;padding:8px 12px}.fixture-filter-bar{margin:0 0 18px}.fixture-filter-fields{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(132px,.8fr) minmax(132px,.8fr) minmax(145px,1fr) auto;gap:9px;align-items:end;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:6px}.fixture-filter-fields label{font-size:12px;font-weight:700;color:var(--muted);margin:0}.fixture-filter-fields label select,.fixture-filter-fields label input{margin-top:4px;padding:8px 10px;min-height:38px;font-size:14px}.fixture-filter-actions{display:flex;gap:7px;align-items:center}.fixture-filter-actions button,.fixture-filter-actions .button{padding:9px 12px;min-height:38px;font-size:13px;white-space:nowrap}.fixture-date-group{margin:0 0 26px}.fixture-date-heading{position:sticky;top:0;z-index:2;margin:0;padding:10px 12px;background:var(--ink);color:#fff;font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:21px;text-transform:uppercase;letter-spacing:.01em;border-radius:5px 5px 0 0}.fixture-date-list{background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 5px 5px}.fixture-card{padding:13px 15px;margin:0;border-bottom:1px solid var(--line)}.fixture-card:last-child{border-bottom:0}.fixture-card .fixture-top{margin-bottom:8px}.fixture-card .match{font-size:15px}.fixture-card .score{min-width:48px;text-align:center;border-radius:4px}.fixture-status{margin-top:7px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.fixture-status.is-result{color:#426015}.fixture-empty{padding:34px 20px}.section[aria-busy="true"]{opacity:.72}
@media(max-width:850px){.fixture-filter-fields{grid-template-columns:1fr 1fr}.fixture-filter-actions{grid-column:1/-1}.fixture-card .match{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}}
@media(max-width:600px){main{padding-left:14px;padding-right:14px}.fixtures-page-head{align-items:center;margin-bottom:8px}.fixtures-page-head h2{font-size:29px}.fixture-filter-toggle{display:inline-block;flex:0 0 auto}.fixture-filter-bar{margin-bottom:12px}.fixture-filter-fields{display:none;grid-template-columns:1fr 1fr;padding:10px;gap:8px}.fixture-filter-bar.filters-open .fixture-filter-fields{display:grid}.fixture-filter-fields label:first-child,.fixture-filter-fields label:nth-child(4),.fixture-filter-actions{grid-column:1/-1}.fixture-filter-actions{display:grid;grid-template-columns:1fr 1fr}.fixture-filter-actions button,.fixture-filter-actions .button{width:100%;min-height:44px}.fixture-date-group{margin-bottom:20px}.fixture-date-heading{position:static;font-size:19px;padding:9px 10px}.fixture-card{padding:12px 10px}.fixture-card .fixture-top{font-size:11px;gap:8px}.fixture-card .match{grid-template-columns:1fr auto 1fr;gap:7px;font-size:14px}.fixture-card .match span{min-width:0;overflow-wrap:anywhere}.fixture-card .score{padding:5px 8px;min-width:38px}.fixture-status{font-size:10px}.section{margin-top:20px}}
@media(max-width:390px){.fixture-filter-fields{grid-template-columns:1fr}.fixture-filter-fields label,.fixture-filter-fields label:first-child,.fixture-filter-fields label:nth-child(4),.fixture-filter-actions{grid-column:1}.fixture-filter-actions{grid-template-columns:1fr}.fixture-card .match{font-size:13px;gap:5px}.fixture-card .score{padding:4px 6px}}

/* v1.35 fixture defaults, compact footer and improved phone layout */
.fixture-view-note{margin:2px 0 0}.fixture-filter-fields{padding:8px 10px;gap:7px}.fixture-filter-fields label select,.fixture-filter-fields label input{padding:7px 9px;min-height:36px}.fixture-filter-actions button,.fixture-filter-actions .button{min-height:36px;padding:8px 11px}.fixture-date-group:first-of-type{margin-top:4px}#site-footer{gap:18px;padding-top:22px;padding-bottom:22px}#site-footer #footer-league,#site-footer #footer-version{color:#c2cbd0;font-size:12px}#site-footer #footer-version{margin-left:auto}#site-footer a[aria-disabled="true"]{color:#93a0a7;pointer-events:none}
@media(max-width:600px){
  .fixtures-page-head{display:grid;grid-template-columns:1fr auto;gap:8px 10px;align-items:start}
  .fixtures-page-head>div{min-width:0}.fixtures-page-head h2{margin-bottom:3px}.fixture-view-note{font-size:12px;line-height:1.35}
  .fixture-filter-toggle{min-height:42px;padding:8px 12px}
  .fixture-filter-fields{grid-template-columns:1fr;padding:9px;border-radius:5px}.fixture-filter-fields label:first-child,.fixture-filter-fields label:nth-child(4),.fixture-filter-actions{grid-column:auto}
  .fixture-filter-actions{grid-template-columns:1fr 1fr}.fixture-filter-fields label select,.fixture-filter-fields label input{min-height:44px;font-size:16px}
  .fixture-date-heading{font-size:18px}.fixture-card{padding:11px 10px}.fixture-card .fixture-top{display:flex;flex-wrap:wrap;justify-content:space-between;line-height:1.3;margin-bottom:7px}
  .fixture-card .match{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"home score" "away score";gap:4px 10px;align-items:center;font-size:15px}
  .fixture-card .match span:first-child{grid-area:home}.fixture-card .match .score{grid-area:score;align-self:stretch;display:grid;place-items:center;min-width:44px;padding:5px 9px}.fixture-card .match span:last-child{grid-area:away;text-align:left}
  .fixture-status{margin-top:6px}
  #site-footer{display:grid;grid-template-columns:1fr;gap:8px;padding:20px 14px}#site-footer #footer-version{margin-left:0}#site-footer .brand{margin-bottom:2px}
}


/* v1.36: simplified admin, compact lists and practical fixture filters */
.admin-welcome{margin:14px 4% 6px;padding:18px 20px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px}.admin-welcome h1{font-size:36px;margin:2px 0 4px}.admin-welcome p{margin:0;color:var(--muted);max-width:720px}.admin-backup-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.admin-save-status{margin:6px 4% 12px;padding:7px 10px;font-size:12px;color:var(--muted);border-left:3px solid var(--line);background:#fff}.admin-signout{margin:0}.admin-action-tabs{gap:7px}.admin-action-tabs button{padding:9px 12px;font-size:13px}.planner-toolbar{margin-bottom:12px}.active-league-banner{padding:10px 12px;margin-bottom:10px}.active-league-banner strong{font-size:16px}.record-row{padding:9px 11px!important;min-height:0}.record-row>div:first-of-type{min-width:0}.record-row strong{font-size:14px}.record-row span{font-size:12px}.record-row .inline-links{gap:6px;margin:0}.record-row .inline-links button{padding:6px 9px;font-size:12px}.simple-list{gap:6px}.saved-league-row{padding:9px 11px!important}.saved-league-row .badge{font-size:10px}.league-workspace-actions{margin:8px 0 12px}.panel.section{margin-top:18px}.fixture-filter-fields{grid-template-columns:minmax(160px,1.4fr) minmax(150px,.9fr) minmax(150px,1fr) auto}.fixture-filter-fields label:nth-child(4){grid-column:auto}
@media(max-width:850px){.admin-welcome{align-items:flex-start;flex-direction:column}.admin-backup-tools{justify-content:flex-start}.fixture-filter-fields{grid-template-columns:1fr 1fr}.fixture-filter-actions{grid-column:1/-1}}
@media(max-width:600px){.admin-welcome{margin:10px 14px 4px;padding:14px}.admin-welcome h1{font-size:30px}.admin-backup-tools{width:100%}.admin-backup-tools .button,.admin-backup-tools button{flex:1 1 auto;text-align:center}.admin-save-status{margin:5px 14px 9px}.admin-action-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px}.admin-action-tabs button{width:100%;min-height:42px}.admin-action-tabs button:nth-child(4),.admin-action-tabs button:nth-child(5){grid-column:1/-1}.record-row{padding:8px 9px!important;gap:8px}.record-row .inline-links{width:auto}.fixture-filter-fields{grid-template-columns:1fr}.fixture-filter-actions{grid-column:auto}.fixture-filter-bar:not(.filters-open) .fixture-filter-fields{display:none}.fixture-filter-bar.filters-open .fixture-filter-fields{display:grid}}

/* v1.37: compact public header, mobile menu, consistent standings and narrower fixtures */
.fixture-date-group{max-width:980px;margin-left:auto;margin-right:auto}.fixtures-page-head,.fixture-filter-bar{max-width:980px;margin-left:auto;margin-right:auto}
.standings-tools{display:flex;justify-content:flex-end;margin:0 0 8px}.standings-legs-toggle{display:none;padding:7px 10px;font-size:12px}.standings-panel{padding:18px 20px}.standings-panel h3{margin-bottom:10px}.standings-table{table-layout:fixed;white-space:normal}.standings-table .pos-col{width:54px}.standings-table .team-col{width:auto}.standings-table .stat-col,.standings-table .legs-col{width:48px}.standings-table .pts-col{width:58px}.standings-table th,.standings-table td{padding:10px 7px}.standings-table th:nth-child(2),.standings-table td:nth-child(2){text-align:left}.standings-table td:nth-child(2){white-space:normal;overflow-wrap:anywhere}.mobile-menu-toggle{display:none}
@media(max-width:600px){
  header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:10px 14px;align-items:center}.brand{font-size:18px;min-width:0;gap:8px}.brand-logo{width:48px;height:48px}.captain-login{grid-column:2;grid-row:1;padding:8px 10px!important;font-size:11px!important;white-space:nowrap}.league-switch{grid-column:1;grid-row:2;margin:0;min-width:0}.league-switch select{width:100%;min-height:40px;padding:7px 9px;font-size:14px}.mobile-menu-toggle{display:block;grid-column:2;grid-row:2;padding:8px 11px;min-height:40px;font-size:13px}nav{display:none;padding:4px 14px 8px;gap:0;overflow:visible;flex-direction:column;border-top:1px solid var(--line)}nav.mobile-nav-open{display:flex}nav a{padding:10px 4px;border-bottom:1px solid var(--line);font-size:14px}nav a.active{border-left:3px solid var(--ink);border-bottom:1px solid var(--line);padding-left:9px}.preview{padding:6px 14px;font-size:10px}.preview span{display:none}
  main{padding-top:18px}.standings-tools{margin-top:-4px}.standings-legs-toggle{display:inline-block}.standings-panel{padding:12px 8px;margin-top:12px!important}.standings-panel h3{padding:0 4px;margin-bottom:8px}.standings-wrap{overflow:visible}.standings-table{font-size:11px;width:100%;min-width:0}.standings-table .pos-col{width:32px}.standings-table .stat-col{width:29px}.standings-table .legs-col{width:31px}.standings-table .pts-col{width:34px}.standings-table th,.standings-table td{padding:8px 3px}.standings-table th:first-child,.standings-table td:first-child{font-size:10px}.standings-table th:nth-child(2),.standings-table td:nth-child(2){padding-left:5px}.standings-table .legs-col{display:none}.show-legs .standings-table .legs-col{display:table-cell}.show-legs .standings-table{font-size:10px}.show-legs .standings-table .stat-col{width:26px}.show-legs .standings-table .legs-col{width:27px}.show-legs .standings-table .pts-col{width:31px}
  .fixture-date-group,.fixtures-page-head,.fixture-filter-bar{max-width:none}.fixture-card{padding:9px 9px}.fixture-card .fixture-top{margin-bottom:5px}.fixture-status{display:inline-block;margin-top:5px;padding:2px 6px;background:var(--paper);border-radius:3px}
}

/* v1.38: compact clickable teams and player drill-down */
.team-division{padding:14px 16px}.team-division h3{margin-bottom:9px}.team-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.team-card{appearance:none;width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;border-radius:5px;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.team-card>span:first-child{min-width:0;display:grid;gap:2px}.team-card strong{font-size:14px;line-height:1.2}.team-card small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-card-meta{font-size:11px;color:var(--muted);white-space:nowrap}.team-card-meta b{font-size:19px;line-height:1;margin-left:4px;color:var(--ink)}@media(hover:hover) and (pointer:fine){.team-card:hover{transform:translateY(-2px);border-color:#9ea7ac;box-shadow:0 4px 10px rgba(17,30,38,.08)}}.team-card:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.team-detail-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;margin-bottom:12px}.team-detail-head h2{margin:0}.team-detail-head p{margin:3px 0 0;color:var(--muted)}.team-detail-head label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.team-detail-head select{display:block;margin-top:4px;min-width:150px}.team-history-note{font-size:12px;margin-top:-2px}.team-stat-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.team-stat-summary>div,.player-stat-detail>div{border:1px solid var(--line);background:#fff;padding:10px;border-radius:5px}.team-stat-summary span,.player-stat-detail span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.team-stat-summary strong,.player-stat-detail strong{display:block;margin-top:3px;font-size:14px}.team-stat-summary small{font-size:12px;color:var(--muted)}.player-roster-table{width:100%;table-layout:fixed}.player-roster-table th:first-child,.player-roster-table td:first-child{text-align:left;width:auto}.player-roster-table th:not(:first-child),.player-roster-table td:not(:first-child){text-align:center;width:58px}.player-roster-table th:last-child,.player-roster-table td:last-child{width:72px}.player-stats-btn{padding:5px 8px;font-size:11px}.player-stat-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
@media(max-width:700px){.team-card-grid{grid-template-columns:1fr}.team-division{padding:11px 10px}.team-card{padding:9px 10px}.team-detail-head{grid-template-columns:auto 1fr;gap:9px}.team-detail-head>label{grid-column:1/-1}.team-detail-head select{width:100%;min-height:42px}.team-stat-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.player-table-wrap{overflow-x:auto}.player-roster-table{min-width:620px;font-size:11px}.player-roster-table th,.player-roster-table td{padding:8px 5px}}
/* v1.39 Captain dashboard + Winter electronic scorecard */
.captain-head,.captain-admin-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:22px}.captain-head h2,.captain-admin-head h2{margin:4px 0}.captain-head-actions{display:flex;gap:8px;align-items:center}.captain-head-actions form{margin:0}.captain-alert{border-left:5px solid #a93434}.captain-success{border-left:5px solid #2f7b50}.captain-intro{margin-bottom:14px}.captain-fixture-list{display:grid;gap:8px}.captain-fixture-card{display:flex;justify-content:space-between;align-items:center;gap:16px;text-decoration:none;border:1px solid var(--line,#d7dde1);border-radius:12px;padding:12px 14px;background:#fff;color:inherit;transition:transform .15s ease,border-color .15s ease}.captain-fixture-card:hover{transform:translateY(-2px);border-color:#718a99}.captain-fixture-card strong{display:block;font-size:1rem;margin:2px 0}.captain-fixture-card strong span{font-weight:500;color:#72808a}.captain-fixture-card small,.captain-date{display:block;color:#6b7780;font-size:.78rem}.captain-fixture-status{display:flex;align-items:center;gap:10px;white-space:nowrap}.captain-fixture-status span{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.captain-fixture-status b{font-size:1.15rem}.captain-fixture-status i{font-style:normal;font-size:1.6rem}.captain-back{display:inline-flex;align-items:center;gap:8px;font-weight:800;text-decoration:none;margin-bottom:14px;font-size:1.02rem}.captain-back:first-letter{font-size:1.4em}.scorecard-shell{max-width:900px;margin:0 auto}.scorecard-title{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:18px;border-radius:16px;background:linear-gradient(135deg,#122833,#1d4658);color:white;margin-bottom:12px}.scorecard-title h2{margin:4px 0;color:white}.scorecard-title h2 span{opacity:.65;font-weight:500}.scorecard-title p{margin:0;opacity:.85}.live-match-score{text-align:center;min-width:125px}.live-match-score small,.live-match-score span{display:block}.live-match-score strong{display:block;font-size:2rem;line-height:1.05;margin:4px 0}.status-pill{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.scorecard-lock-note{padding:10px 12px;border-radius:10px;background:#eef4f7;margin-bottom:10px;font-weight:650}.scorecard-games{display:grid;gap:8px}.score-game{border:1px solid #d6dde1;border-radius:12px;background:white;overflow:hidden}.score-game-head{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:10px 12px;background:#f5f7f8}.game-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#173746;color:white;font-weight:800}.score-game-head strong,.score-game-head small{display:block}.score-game-head small{font-size:.74rem;color:#68757d}.game-result{display:flex;align-items:center;gap:5px}.legs-input{width:48px!important;min-width:48px!important;text-align:center;padding:7px!important;font-size:1rem!important;font-weight:800}.score-game-players{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px 12px}.score-game-players label{display:block;font-size:.74rem;font-weight:800;color:#5c6870;margin-bottom:4px}.score-game-players select{margin-bottom:5px;width:100%}.match-stats-entry{margin-top:16px;border-top:2px solid #d6dde1;padding-top:14px}.match-stats-entry h3{margin-bottom:2px}.match-stats-entry>div>p{margin-top:0;color:#66737b}.stat-entry-group{margin:12px 0;padding:10px 12px;border:1px solid #d7dde1;border-radius:10px;background:#fafbfb}.stat-entry-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.stat-entry-title button{padding:5px 8px;font-size:.75rem}.stat-entry-rows{display:grid;gap:6px}.stat-entry-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 36px;gap:7px;align-items:center}.stat-entry-row select,.stat-entry-row input{width:100%;margin:0}.remove-stat-row{border:0;background:transparent;font-size:1.4rem;cursor:pointer;color:#7a3434}.scorecard-notes{display:block;margin-top:12px}.scorecard-actions{display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:0;background:rgba(255,255,255,.96);padding:12px 0;margin-top:12px;border-top:1px solid #d9dfe2}.primary-action{font-weight:800}.correction-request{margin-top:18px;border:1px solid #e1c995;background:#fffaf0;border-radius:12px;padding:14px}.captain-admin-panel{max-width:950px;margin:16px auto}.captain-review-list{display:grid;gap:7px}.captain-review-row{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid #d7dde1;border-radius:10px;padding:9px 11px}.captain-review-row span,.captain-review-row strong,.captain-review-row small{display:block}.captain-review-row span,.captain-review-row small{font-size:.76rem;color:#6d7981}.captain-review-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.captain-review-actions form{margin:0}.captain-account-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;align-items:end}.captain-account-form label{margin:0}.captain-login-list{display:grid;gap:5px;margin-top:12px}.captain-login-list>div{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e0e5e7;padding:7px 0}.captain-login-list strong,.captain-login-list small{display:block}.captain-login-list small{color:#68757d}.captain-login-list form{margin:0}
@media(max-width:700px){.captain-head,.captain-admin-head{align-items:stretch;flex-direction:column;gap:10px}.captain-head-actions{justify-content:space-between}.captain-fixture-card{padding:11px 10px}.captain-fixture-card strong{font-size:.92rem}.captain-fixture-status span{font-size:.67rem}.scorecard-shell{width:100%}.scorecard-title{padding:14px 12px;align-items:center}.scorecard-title h2{font-size:1.15rem}.scorecard-title p{font-size:.78rem}.live-match-score{min-width:88px}.live-match-score strong{font-size:1.55rem}.score-game-head{grid-template-columns:32px 1fr auto;padding:8px}.game-number{width:27px;height:27px}.score-game-players{grid-template-columns:1fr 1fr;gap:7px;padding:8px}.score-game-players select{font-size:16px;padding:8px 6px}.legs-input{width:42px!important;min-width:42px!important}.stat-entry-row{grid-template-columns:minmax(0,1fr) 82px 30px}.stat-entry-group{padding:9px 8px}.scorecard-actions{justify-content:stretch}.scorecard-actions button,.scorecard-actions a{flex:1;text-align:center}.captain-review-row{align-items:flex-start;flex-direction:column}.captain-review-actions{width:100%}.captain-account-form{grid-template-columns:1fr}.captain-account-form button{width:100%}}

/* v1.45 compact organiser player register */
body[data-organiser="true"] .player-compact-list{max-width:980px;margin-inline:auto;gap:6px}
body[data-organiser="true"] .player-compact-row{min-height:0;padding:8px 10px;gap:10px;align-items:center}
body[data-organiser="true"] .player-compact-row .saved-thumb-wrap{min-width:48px}
body[data-organiser="true"] .player-compact-row .record-thumb{width:42px;height:42px;object-fit:cover}
body[data-organiser="true"] .player-compact-row .inline-links{margin-left:auto;gap:6px}
body[data-organiser="true"] .player-compact-row .inline-links button{padding:6px 9px;min-height:34px}
@media (max-width:700px){body[data-organiser="true"] .player-compact-row{padding:7px 8px;gap:8px}body[data-organiser="true"] .player-compact-row .record-thumb{width:36px;height:36px}}

/* v1.46 canonical saved-league context */
.active-league-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.active-league-copy{display:grid;gap:2px;min-width:220px;flex:1}.admin-season-select{display:flex;align-items:center;gap:7px;margin:0;font-size:12px;font-weight:700}.admin-season-select select{margin:0;min-width:240px;padding:7px 30px 7px 9px;font-size:13px}.player-compact-list{max-width:980px}.player-compact-row{padding:7px 10px!important}@media(max-width:700px){.admin-season-select{width:100%;align-items:stretch;flex-direction:column}.admin-season-select select{width:100%;min-width:0}.active-league-banner .badge{align-self:flex-start}}

/* v1.48: use desktop width more efficiently for standings and admin */
.standings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px;align-items:start}
.standings-grid .standings-panel{margin:0;min-width:0;padding:15px 16px}
.standings-grid .standings-panel h3{margin:0 0 8px}
.standings-grid .standings-table{font-size:12px}
.standings-grid .standings-table th,.standings-grid .standings-table td{padding:8px 5px}
.standings-grid .standings-table .pos-col{width:38px}
.standings-grid .standings-table .stat-col,.standings-grid .standings-table .legs-col{width:34px}
.standings-grid .standings-table .pts-col{width:42px}

/* Keep admin management areas denser and avoid over-wide single controls/cards. */
.admin-shell .panel,.planner-shell .panel{padding:18px 20px}
.admin-shell .section,.planner-shell .section{margin-top:22px}
.simple-list .record-row{padding-top:9px;padding-bottom:9px}
.record-row .inline-links{gap:7px;margin-top:0}
.record-row .inline-links button{padding:7px 10px;font-size:12px}
.captain-admin-list,.captain-result-list{max-width:980px}

@media(min-width:1650px){
  .standings-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
  .standings-grid .standings-panel{padding:13px 12px}
  .standings-grid .standings-table{font-size:11px}
  .standings-grid .standings-table th,.standings-grid .standings-table td{padding:7px 3px}
  .standings-grid .standings-table .pos-col{width:31px}
  .standings-grid .standings-table .stat-col,.standings-grid .standings-table .legs-col{width:27px}
  .standings-grid .standings-table .pts-col{width:33px}
}
@media(max-width:1050px){.standings-grid{grid-template-columns:1fr}}
@media(max-width:550px){.standings-grid{gap:12px;margin-top:12px}.standings-grid .standings-panel{padding:11px 8px}}

/* v1.50 content admin/public */
.content-admin{max-width:1180px;margin-inline:auto}.content-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.content-card{border:1px solid var(--line);background:#fff;padding:18px;border-radius:5px}.content-card h3{margin-bottom:14px}.content-list{margin-top:14px}.content-list .record-row{min-height:48px;padding:8px 10px}.small-button{padding:7px 10px;font-size:12px}.gallery-admin-grid,.public-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}.gallery-admin-item,.public-gallery figure{margin:0;border:1px solid var(--line);background:#fff;border-radius:5px;overflow:hidden}.gallery-admin-item img,.public-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.gallery-admin-item figcaption,.public-gallery figcaption{padding:10px;display:grid;gap:4px}.gallery-admin-item figcaption span,.public-gallery figcaption span{font-size:12px;color:var(--muted)}.document-public-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-public-details{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding:12px 0}.contact-public-details p{flex-basis:100%;margin:0}.content-public{max-width:900px}.content-public p{max-width:75ch}.form-check{display:flex;align-items:center;gap:8px}.form-check input{width:auto;margin:0}
@media(max-width:850px){.gallery-admin-grid,.public-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.document-public-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.content-admin-grid{grid-template-columns:1fr}.gallery-admin-grid,.public-gallery,.document-public-grid{grid-template-columns:1fr}.content-card{padding:14px}}


/* v1.52 contact, documents and install polish */
.team-card-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.team-card-row .team-card{min-width:0}.contact-captain-btn{padding:8px 11px;font-size:12px;white-space:nowrap}.contact-captain-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.contact-email{background:#145ba1}.document-card{position:relative;overflow:hidden;border-top:5px solid #663b94;padding-top:24px}.document-card:nth-child(3n+2){border-top-color:#145ba1}.document-card:nth-child(3n+3){border-top-color:#d0f267}.document-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#f0ecf7;color:#663b94;font-weight:900;font-size:22px;margin-bottom:14px}.document-card:nth-child(3n+2) .document-icon{background:#e7f0fa;color:#145ba1}.document-card:nth-child(3n+3) .document-icon{background:#eef8cf;color:#426015}.document-open{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;background:#111e26}.app-install-panel{max-width:900px;margin:auto}.install-device-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.install-device-grid>div{padding:18px;background:#f4f6f5;border:1px solid var(--line);border-radius:5px}.install-device-grid h3{margin-bottom:8px}.app-install-top{white-space:nowrap}
@media(max-width:700px){.team-card-row{grid-template-columns:1fr}.contact-captain-btn{width:100%}.install-device-grid{grid-template-columns:1fr}.app-install-top{display:none}}

/* v1.54 league-management simplification */
.active-league-banner.live-context{background:#eaf7ed;border-color:#63a96f;color:#173d20}
.active-league-banner.live-context .muted{color:#416548}
.live-saved-league{background:#eef9f0!important;border-color:#9ccba4!important;box-shadow:inset 4px 0 0 #4f9b5d}
.live-saved-league .live-badge{background:#3f8f50;color:#fff;border-color:#3f8f50}
.saved-league-copy{display:grid;gap:3px;min-width:0}
.league-library{max-width:1100px;margin-inline:auto}
.current-league-callout{display:grid;gap:3px;padding:13px 15px;margin:4px 0 16px;border:1px solid #9ccba4;border-radius:10px;background:#eef9f0}
.current-league-callout strong{font-size:18px;color:#245d31}
.create-league-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:14px 16px;border:1px dashed var(--line);border-radius:10px;background:var(--panel,#fff)}
.create-league-cta>div{display:grid;gap:4px;min-width:0}
.league-editor-head{max-width:1100px;margin-inline:auto}
.compact-empty{display:grid;gap:4px;padding:14px;border:1px dashed var(--line);border-radius:8px}
@media(max-width:700px){.create-league-cta{align-items:stretch;flex-direction:column}.create-league-cta button{width:100%}.league-editor-head .panel-head{align-items:stretch;flex-direction:column}.league-editor-head .panel-head>button{width:100%}}


/* v1.57 admin metadata spacing + final mobile/PWA polish */
body[data-organiser="true"] .record-row>div:not(.inline-links):not(.saved-thumb-wrap){display:grid;gap:3px;min-width:0}
body[data-organiser="true"] .record-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 0;color:var(--muted);line-height:1.35}
body[data-organiser="true"] .record-meta>span{display:inline-flex;align-items:center;white-space:normal}
body[data-organiser="true"] .record-meta>span+span::before{content:"•";display:inline-block;margin:0 8px;color:#8f9aa0;font-size:.8em}
body[data-organiser="true"] .record-nickname{color:var(--muted);font-style:italic;margin-top:-1px}
body[data-organiser="true"] .team-compact-row,
body[data-organiser="true"] .venue-compact-row,
body[data-organiser="true"] .player-compact-row{column-gap:12px}

@media(max-width:700px){
  .preview{padding:5px 12px;font-size:10px;line-height:1.3}.preview span{display:none}
  header{padding:8px 12px;gap:7px 8px}
  header .brand{font-size:16px;gap:7px}.brand-logo{width:42px!important;height:42px!important}
  .captain-login{padding:7px 8px!important;font-size:10px!important;min-height:36px}.login-arrow{display:none}
  .league-switch select{min-height:38px;font-size:13px;padding:6px 8px}
  .mobile-menu-toggle{min-height:38px;padding:7px 9px;font-size:12px}
  .app-install-top{display:inline-flex!important;grid-column:1;grid-row:3;justify-content:center;align-items:center;min-height:36px;padding:7px 9px;font-size:12px;background:#eef8cf;border-color:#b7d95b;color:#2f4511}
  header .app-install-top+ .captain-login{grid-row:1}
  nav{padding:2px 12px 6px}nav a{padding:8px 4px;font-size:13px}
  main{padding:18px 12px 38px}
  h1{font-size:clamp(34px,11vw,44px)}h2{font-size:28px}
  .panel{padding:14px}.section{margin-top:16px}
  .team-grid,.cards{gap:8px}
  .team-card{padding:12px}.team-card h3{margin-bottom:4px}.team-card p{margin-bottom:6px}
  .team-card-row{gap:6px}.contact-captain-btn{min-height:38px;padding:7px 9px}
  .content-public,.app-install-panel{max-width:none}.install-device-grid{margin:14px 0;gap:8px}.install-device-grid>div{padding:13px}
  .fixture-date-group{margin-bottom:14px}.fixture-date-heading{padding:8px 9px}.fixture-card{padding:9px}
  .standings-grid{gap:9px}.standings-grid .standings-panel{padding:9px 6px}
  #site-footer{padding:15px 12px;gap:6px}
  body[data-organiser="true"] .record-meta>span+span::before{margin:0 6px}
  body[data-organiser="true"] .record-row{align-items:flex-start}
}
@media(max-width:420px){
  header{grid-template-columns:minmax(0,1fr) auto}
  .app-install-top{grid-column:1 / -1;width:100%;margin-top:0}
  .mobile-menu-toggle{grid-column:2;grid-row:2}
  .league-switch{grid-column:1;grid-row:2}
  body[data-organiser="true"] .record-meta{display:grid;gap:2px}
  body[data-organiser="true"] .record-meta>span+span::before{content:"";margin:0}
}

/* v1.57 captain security / sharing */
.submitted-editable{border-left:5px solid #145ba1;background:#eef6ff}.result-share-box{margin:14px 0;padding:12px 14px;border:1px solid #d6dde1;border-radius:10px;background:#f7f9fa}.result-share-box .share-result-url{display:block;width:100%;margin-top:8px;font-size:.78rem}.temp-password code{display:block;margin:8px 0;padding:10px;background:#111e26;color:white;border-radius:6px;font-size:1rem;word-break:break-all}.captain-account-form-v156{grid-template-columns:repeat(2,minmax(0,1fr))}.captain-account-form-v156 button{align-self:end}.status-submitted{border-color:#145ba1}.status-locked{border-color:#426015}
@media(max-width:700px){.captain-account-form-v156{grid-template-columns:1fr}.result-share-box .share-result-btn{width:100%}}

/* v2.63 restore compact Teams & Players division layout */
.team-division-grid,.teams-division-grid,.public-team-divisions,.team-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.team-card,.team-list-card{min-width:0}
@media(max-width:760px){.team-division-grid,.teams-division-grid,.public-team-divisions,.team-groups{grid-template-columns:1fr}}

/* v2.63 linked league UI */
.public-team-divisions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.public-team-divisions .team-division{margin:0}
.team-detail-head{grid-template-columns:auto minmax(0,1fr) minmax(190px,.7fr) auto}
.team-captain-card{border-left:3px solid #d0f267;padding:7px 0 7px 14px;display:flex;flex-direction:column;gap:3px;min-width:0}
.team-captain-card strong{font-size:15px}.team-captain-card a{font-size:12px;overflow-wrap:anywhere}.team-captain-card small{font-size:11px;color:var(--muted)}
.table-team-link,.fixture-team-link{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;padding:0;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.table-team-link:hover,.fixture-team-link:hover{opacity:.72}.table-team-link:focus-visible,.fixture-team-link:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.fixture-team-link{text-align:center}
@media(max-width:760px){
 .public-team-divisions{grid-template-columns:1fr}
 .team-detail-head{grid-template-columns:auto minmax(0,1fr)}
 .team-detail-head>.team-captain-card,.team-detail-head>label{grid-column:2}
}

/* v2.63: compact individual team profile */
.team-detail-head{
  max-width:900px;
  margin:0 auto 16px;
  grid-template-columns:auto minmax(220px,1.1fr) minmax(190px,.8fr) auto;
  column-gap:22px;
  row-gap:10px;
  align-items:start;
}
.team-detail-main{max-width:360px}
.team-captain-card{max-width:280px}
.team-stat-summary,
.player-table-wrap,
.team-history-note{max-width:900px;margin-left:auto;margin-right:auto}
@media(max-width:900px){
  .team-detail-head{
    grid-template-columns:auto minmax(0,1fr);
    max-width:720px;
  }
  .team-detail-head>.team-captain-card,
  .team-detail-head>label{grid-column:2}
}
@media(max-width:600px){
  .team-detail-head{
    grid-template-columns:1fr;
    gap:10px;
    max-width:none;
  }
  .team-detail-head>.team-captain-card,
  .team-detail-head>label{grid-column:1}
  .team-detail-head>.team-back{justify-self:start}
  .team-detail-main,.team-captain-card{max-width:none}
}

/* v2.63 captain profile */
.team-captain-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:center}
.team-captain-card:not(:has(.team-captain-photo)){grid-template-columns:1fr}
.team-captain-photo{width:64px;height:64px;object-fit:cover;border-radius:50%;border:1px solid var(--line);background:#fff}
.team-captain-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
@media(max-width:600px){.team-captain-card{grid-template-columns:58px minmax(0,1fr)}.team-captain-photo{width:58px;height:58px}}

/* v2.63 — refined public team profile */
.team-profile{max-width:940px;margin:0 auto 18px}
.team-back-link{appearance:none;border:0;background:transparent;color:var(--ink);padding:4px 0;margin:0 0 12px;font:inherit;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.team-back-link span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#111e26;color:#fff;font-size:17px;transition:transform .15s ease}
.team-back-link:hover span{transform:translateX(-3px)}
.team-profile-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 8px 26px rgba(17,30,38,.08)}
.team-profile-main{padding:28px 30px;background:linear-gradient(135deg,#d0f267 0%,#e8f8b6 100%)}
.team-profile-main h2{font-size:clamp(30px,4vw,44px);line-height:1.05;margin:10px 0 22px;letter-spacing:-.02em}
.team-division-pill{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;background:#111e26;color:#fff;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.team-profile-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.team-profile-facts>div{background:rgba(255,255,255,.64);border:1px solid rgba(17,30,38,.12);padding:12px 14px;border-radius:8px}
.team-profile-facts span,.profile-label{display:block;color:#53616a;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.team-profile-facts strong{display:block;margin-top:4px;font-size:14px;color:#111e26}
.team-captain-panel{display:grid;grid-template-columns:86px minmax(0,1fr);gap:16px;align-items:center;padding:24px;background:#145ba1;color:#fff}
.team-captain-photo-wrap{display:grid;place-items:center}
.team-captain-photo,.captain-placeholder{width:82px;height:82px;border-radius:50%;border:3px solid rgba(255,255,255,.82);box-shadow:0 4px 14px rgba(0,0,0,.16)}
.team-captain-photo{object-fit:cover;background:#fff}
.captain-placeholder{display:grid;place-items:center;background:#fff;color:#145ba1;font-size:30px;font-weight:900}
.team-captain-panel .profile-label{color:rgba(255,255,255,.72)}
.team-captain-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.team-captain-copy strong{font-size:19px;line-height:1.2;margin:2px 0 3px}
.team-captain-copy a{color:#fff;font-size:12px;overflow-wrap:anywhere;text-decoration-color:rgba(255,255,255,.5);text-underline-offset:3px}
.team-captain-copy small{color:rgba(255,255,255,.72);font-size:11px}
.team-profile-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-top:12px;padding:12px 16px;border:1px solid var(--line);border-radius:9px;background:#fff}
.team-profile-toolbar p{margin:3px 0 0;color:var(--muted);font-size:12px}
.team-profile-toolbar label{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.team-profile-toolbar select{min-width:150px}
.team-history-note{max-width:940px}
.team-stat-summary{max-width:940px;gap:10px;margin:14px auto}
.team-stat-summary>div{position:relative;overflow:hidden;padding:15px 16px;border-radius:9px;border:0;box-shadow:0 3px 12px rgba(17,30,38,.07)}
.team-stat-summary>div:nth-child(1){background:#d0f267}
.team-stat-summary>div:nth-child(2){background:#e8efff}
.team-stat-summary>div:nth-child(3){background:#efe7f8}
.team-stat-summary>div:nth-child(4){background:#f5f5f2}
.team-stat-summary span{color:#53616a;font-weight:800}
.team-stat-summary strong{font-size:16px;color:#111e26}
.team-stat-summary small{display:block;margin-top:3px;font-weight:800;color:#111e26}
.player-table-wrap{max-width:940px;margin:0 auto;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 5px 18px rgba(17,30,38,.05)}
.player-roster-table{border-collapse:collapse}
.player-roster-table thead{background:#111e26;color:#fff}
.player-roster-table thead th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;border:0}
.player-roster-table tbody tr{border-bottom:1px solid var(--line)}
.player-roster-table tbody tr:last-child{border-bottom:0}
.player-roster-table tbody tr:hover{background:#fafcf5}
.player-roster-table td{border:0}
.player-name-cell{display:flex;align-items:center;gap:10px;min-width:0}
.player-avatar{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:#e8efff;color:#145ba1;font-size:12px;font-weight:900}
.player-name-cell strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-stats-btn{padding:6px 10px!important;font-size:11px!important;border-radius:999px!important}
@media(max-width:760px){
  .team-profile{max-width:none}
  .team-profile-hero{grid-template-columns:1fr}
  .team-profile-main{padding:22px 18px}
  .team-profile-main h2{font-size:32px;margin-bottom:16px}
  .team-captain-panel{grid-template-columns:70px minmax(0,1fr);padding:18px}
  .team-captain-photo,.captain-placeholder{width:66px;height:66px}
  .team-profile-toolbar{align-items:flex-start;flex-direction:column}
  .team-profile-toolbar label{width:100%;justify-content:space-between}
  .team-profile-toolbar select{min-width:0;flex:1}
  .team-stat-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .player-table-wrap{overflow-x:auto}
}
@media(max-width:480px){
  .team-profile-facts{grid-template-columns:1fr}
  .team-stat-summary{grid-template-columns:1fr 1fr}
  .player-roster-table th:not(:first-child),.player-roster-table td:not(:first-child){width:44px}
}

/* v2.63 compactness pass — preserve design, reduce vertical height */
main{padding-top:14px}
.section{margin-top:14px}
.panel{padding-top:16px;padding-bottom:16px}

.team-profile{margin-bottom:10px}
.team-back-link{margin-bottom:7px}
.team-back-link span{width:26px;height:26px;font-size:15px}

.team-profile-main{padding:18px 22px}
.team-profile-main h2{font-size:clamp(27px,3.3vw,38px);margin:7px 0 14px}
.team-division-pill{min-height:24px;padding:3px 8px;font-size:10px}

.team-profile-facts{gap:7px}
.team-profile-facts>div{padding:9px 11px}
.team-profile-facts strong{margin-top:2px;font-size:13px}

.team-captain-panel{grid-template-columns:68px minmax(0,1fr);gap:12px;padding:16px 18px}
.team-captain-photo,.captain-placeholder{width:64px;height:64px}
.captain-placeholder{font-size:24px}
.team-captain-copy{gap:2px}
.team-captain-copy strong{font-size:17px;margin:1px 0 2px}
.team-captain-copy a{font-size:11px}
.team-captain-copy small{font-size:10px}

.team-profile-toolbar{margin-top:8px;padding:9px 12px}
.team-profile-toolbar p{margin-top:1px}
.team-profile-toolbar select{min-height:34px;padding-top:5px;padding-bottom:5px}

.team-stat-summary{margin:9px auto;gap:7px}
.team-stat-summary>div{padding:10px 12px}
.team-stat-summary strong{font-size:14px;margin-top:2px}
.team-stat-summary small{margin-top:1px}

.player-table-wrap{margin-top:7px}
.player-roster-table th,.player-roster-table td{padding-top:7px;padding-bottom:7px}
.player-avatar{width:28px;height:28px;flex-basis:28px;font-size:11px}
.player-name-cell{gap:8px}
.player-name-cell strong{font-size:12px}
.player-stats-btn{padding:4px 8px!important;font-size:10px!important}

.fixtures-page-head{margin-bottom:10px}
.fixture-filter-bar{margin-bottom:10px}
.fixture-date-group{margin-top:10px}
.fixture-date-heading{margin-bottom:7px}
.fixture-card{padding-top:8px;padding-bottom:8px}

.standings-panel{padding-top:13px;padding-bottom:13px}
.standings-panel h3{margin-bottom:7px}
.standings-table th,.standings-table td{padding-top:7px;padding-bottom:7px}

.team-division{padding-top:11px;padding-bottom:11px}
.team-division h3{margin-bottom:7px}
.team-card{padding-top:8px;padding-bottom:8px}
.team-card strong{font-size:13px}
.team-card small,.team-card-meta{font-size:10px}

@media(max-width:760px){
  main{padding-top:10px}
  .section{margin-top:10px}
  .team-profile-main{padding:15px 14px}
  .team-profile-main h2{font-size:28px;margin:6px 0 11px}
  .team-profile-facts{grid-template-columns:1fr 1fr}
  .team-profile-facts>div{padding:8px 9px}
  .team-captain-panel{grid-template-columns:58px minmax(0,1fr);padding:13px 14px}
  .team-captain-photo,.captain-placeholder{width:54px;height:54px}
  .team-profile-toolbar{padding:8px 10px}
  .team-stat-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px auto}
  .team-stat-summary>div{padding:9px 10px}
  .player-roster-table th,.player-roster-table td{padding-top:6px;padding-bottom:6px}
}

@media(max-width:480px){
  header{padding-top:8px;padding-bottom:8px}
  .preview{padding-top:4px;padding-bottom:4px}
  .team-profile-facts{grid-template-columns:1fr}
  .team-captain-panel{grid-template-columns:50px minmax(0,1fr)}
  .team-captain-photo,.captain-placeholder{width:48px;height:48px}
  .team-profile-toolbar{gap:8px}
  .team-stat-summary{grid-template-columns:1fr 1fr}
  .team-stat-summary>div{padding:8px 9px}
}

/* v2.63 — public site visual system */
:root{
  --accent-lime:#d0f267;
  --accent-blue:#145ba1;
  --accent-purple:#6e4aa2;
  --surface-soft:#f6f8f7;
  --surface-blue:#edf4fb;
  --surface-purple:#f3eef8;
  --surface-lime:#f3f9dc;
  --shadow-soft:0 5px 18px rgba(17,30,38,.06);
}

/* Overall density and rhythm */
main{max-width:1180px;margin-left:auto;margin-right:auto}
main>section,main>.section,main>.panel{margin-bottom:12px}
h1,h2,h3{letter-spacing:-.015em}
h2{margin-top:0}
.small,.muted{line-height:1.4}

/* Header and nav */
header{box-shadow:0 2px 10px rgba(17,30,38,.04)}
nav a{border-radius:6px}
nav a:hover{background:var(--surface-soft)}
nav a.active{background:var(--accent-lime);color:#111e26}
.league-switch select{border-radius:7px}
.captain-login{border-radius:999px!important}

/* Common panels/cards */
.panel,.section{
  border-radius:10px;
  box-shadow:var(--shadow-soft);
}
.panel h2,.section h2{margin-bottom:8px}
.eyebrow,.profile-label{font-weight:800}

/* Home page */
.hero{gap:12px}
.hero-copy,.hero-board{
  border-radius:12px;
  box-shadow:var(--shadow-soft);
}
.hero-copy{background:var(--surface-lime)}
.hero-board{background:var(--surface-blue)}
.hero-copy .button,.hero-board .button{border-radius:999px}
.home-shortcuts,.shortcut-grid{gap:10px}
.home-shortcuts a,.shortcut-card{
  border-radius:9px;
  box-shadow:var(--shadow-soft);
}

/* Team list */
.public-team-divisions{gap:12px}
.team-division{
  border-top:4px solid var(--accent-lime);
  box-shadow:var(--shadow-soft);
}
.team-division:nth-child(2n){border-top-color:var(--accent-blue)}
.team-division:nth-child(3n){border-top-color:var(--accent-purple)}
.team-card-grid{gap:6px}
.team-card{
  border-radius:8px;
  box-shadow:none;
}
.team-card:hover{background:#fbfdf6}
.team-card-meta b{color:var(--accent-blue)}

/* Team profile */
.player-avatar-photo{object-fit:cover;background:#fff}

/* League tables */
.standings-grid{gap:12px}
.standings-panel{
  border-top:4px solid var(--accent-blue);
  box-shadow:var(--shadow-soft);
}
.standings-panel:nth-child(2n){border-top-color:var(--accent-purple)}
.standings-panel:nth-child(3n){border-top-color:var(--accent-lime)}
.standings-table thead{background:#111e26;color:#fff}
.standings-table tbody tr:nth-child(even){background:#fafbfb}
.standings-table tbody tr:hover{background:var(--surface-lime)}
.table-team-link{color:var(--accent-blue);text-decoration:none}
.table-team-link:hover{text-decoration:underline}

/* Fixtures / results */
.fixtures-page-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
}
.fixture-filter-bar{
  border:1px solid var(--line);
  border-radius:9px;
  padding:9px 11px;
  background:var(--surface-soft);
  box-shadow:var(--shadow-soft);
}
.fixture-filter-bar label{font-size:11px;font-weight:800}
.fixture-date-heading{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  background:#111e26;
  color:#fff;
  font-size:12px;
}
.fixture-date-list{display:grid;gap:7px}
.fixture-card{
  border-left:4px solid var(--accent-blue);
  border-radius:9px;
  box-shadow:var(--shadow-soft);
}
.fixture-card:nth-child(2n){border-left-color:var(--accent-purple)}
.fixture-card:nth-child(3n){border-left-color:var(--accent-lime)}
.fixture-card .match{align-items:center}
.fixture-team-link{color:#111e26;text-decoration:none}
.fixture-team-link:hover{text-decoration:underline;color:var(--accent-blue)}
.fixture-status{
  border-radius:999px!important;
  background:var(--surface-lime)!important;
  color:#111e26;
  font-weight:800;
}

/* Statistics */
.player-stat-detail{gap:8px}
.player-stat-detail>div{
  border-radius:8px;
  box-shadow:var(--shadow-soft);
}
.player-stat-detail>div:nth-child(3n+1){background:var(--surface-lime)}
.player-stat-detail>div:nth-child(3n+2){background:var(--surface-blue)}
.player-stat-detail>div:nth-child(3n){background:var(--surface-purple)}

/* News / history / documents / gallery / contact */
.news-card,.history-card,.document-card,.gallery-card,.contact-public-details{
  border-radius:10px;
  box-shadow:var(--shadow-soft);
}
.news-card{border-left:4px solid var(--accent-blue)}
.history-card{border-left:4px solid var(--accent-purple)}
.document-card{border-left:4px solid var(--accent-lime)}
.contact-public-details{
  border-top:4px solid var(--accent-blue);
  background:var(--surface-blue);
  padding:14px 16px;
}
.public-gallery figure{
  border-radius:10px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.public-gallery figcaption{padding:8px 10px}

/* Generic tables */
.table-wrap{
  border-radius:9px;
}
table th{font-weight:800}
table tbody tr:hover{background:#fbfcfa}

/* Buttons */
button,.button{
  border-radius:7px;
}
button.outline,.button.outline{background:#fff}
button:not(.outline),.button:not(.outline){
  box-shadow:none;
}

/* Footer */
footer{
  margin-top:18px;
  padding-top:14px;
  padding-bottom:14px;
}
footer a{font-weight:700}

/* Mobile */
@media(max-width:760px){
  main{padding-left:12px;padding-right:12px}
  .hero{grid-template-columns:1fr}
  .hero-copy,.hero-board{padding-top:16px;padding-bottom:16px}
  .fixtures-page-head{align-items:flex-start}
  .fixture-filter-bar{padding:8px}
  .fixture-date-list{gap:6px}
  .fixture-card{border-left-width:3px}
  .standings-grid{gap:9px}
  .public-team-divisions{gap:9px}
  .team-division{border-top-width:3px}
}

@media(max-width:480px){
  main{padding-left:10px;padding-right:10px}
  .panel,.section{border-radius:8px}
  .hero-copy,.hero-board{border-radius:9px}
  .fixture-filter-bar{border-radius:8px}
}

/* v2.63 — remove coloured edge accents and restore v1.68 homepage look */

/* Remove coloured edge accents from cards/tables/fixtures */
.team-division,
.team-division:nth-child(2n),
.team-division:nth-child(3n),
.standings-panel,
.standings-panel:nth-child(2n),
.standings-panel:nth-child(3n){
  border-top-color:var(--line)!important;
  border-top-width:1px!important;
}
.fixture-card,
.fixture-card:nth-child(2n),
.fixture-card:nth-child(3n){
  border-left-color:var(--line)!important;
  border-left-width:1px!important;
}

/* Restore homepage presentation from v1.68 */
.hero-copy,
.hero-board{
  background:initial!important;
  box-shadow:initial;
}
.home-shortcuts a,
.shortcut-card{
  box-shadow:initial;
}

/* Keep the compact radius/spacing, but do not recolour homepage cards */
.hero-copy,
.hero-board{
  color:inherit;
}

/* v2.63 — simplified homepage hero */
.home-hero{
  display:block;
  margin-bottom:10px;
}
.home-hero-copy{
  position:relative;
  overflow:hidden;
  min-height:280px;
  padding:34px 46% 28px 28px;
  border-radius:12px;
  background:#f4f5f2;
  isolation:isolate;
}
.home-hero-copy::before{
  content:"";
  position:absolute;
  inset:0 0 0 42%;
  background:
    linear-gradient(90deg,#f4f5f2 0%,rgba(244,245,242,.88) 14%,rgba(244,245,242,.28) 46%,rgba(244,245,242,0) 68%),
    url("https://upload.wikimedia.org/wikipedia/commons/6/6a/Dart_board.jpg") center 48% / cover no-repeat;
  z-index:-2;
}
.home-hero-copy::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(244,245,242,0) 55%,rgba(17,30,38,.10) 100%);
  z-index:-1;
  pointer-events:none;
}
.home-hero-copy h1{
  max-width:520px;
  font-size:clamp(42px,5.3vw,68px);
  line-height:.98;
  margin:8px 0 13px;
}
.home-hero-copy p{
  max-width:470px;
  margin:0 0 17px;
}
.home-hero-actions{
  display:flex;
  align-items:center;
  gap:15px;
  flex-wrap:wrap;
}

/* Keep the shortcut bars immediately visible beneath the hero */
.home-shortcuts{margin-top:0}

/* Mobile: no large hero image; keep it clean and direct */
@media(max-width:760px){
  .home-hero{margin-bottom:8px}
  .home-hero-copy{
    min-height:0;
    padding:17px 15px 15px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:9px;
    box-shadow:var(--shadow-soft);
  }
  .home-hero-copy::before,
  .home-hero-copy::after{display:none}
  .home-hero-copy h1{
    font-size:clamp(31px,9vw,42px);
    line-height:1;
    margin:5px 0 9px;
  }
  .home-hero-copy p{
    font-size:13px;
    margin-bottom:12px;
  }
  .home-hero-actions{
    gap:10px;
  }
  .home-shortcuts{
    margin-top:0;
  }
}
@media(max-width:480px){
  .home-hero-copy{padding:14px 12px 13px}
  .home-hero-copy .eyebrow{font-size:9px}
}

/* v2.63 — definite Southam hero + menu active-state fix */
.home-hero-copy{
  position:relative!important;
  min-height:270px!important;
  padding:30px 44% 26px 28px!important;
  border-radius:12px!important;
  overflow:hidden!important;
  color:#fff!important;
  background:
    linear-gradient(
      90deg,
      #111e26 0%,
      #111e26 37%,
      rgba(17,30,38,.98) 43%,
      rgba(17,30,38,.90) 49%,
      rgba(17,30,38,.72) 57%,
      rgba(17,30,38,.42) 66%,
      rgba(17,30,38,.12) 77%,
      rgba(17,30,38,0) 88%
    ),
    url("https://upload.wikimedia.org/wikipedia/commons/5/58/Market_Hill_-Southam_-Warwickshire.jpg") center right / cover no-repeat!important;
  box-shadow:0 6px 20px rgba(17,30,38,.10)!important;
}
.home-hero-copy::before,
.home-hero-copy::after{display:none!important}
.home-hero-copy .eyebrow,
.home-hero-copy h1,
.home-hero-copy p,
.home-hero-copy .text-link{color:#fff!important}
.home-hero-copy .button{
  background:var(--accent-lime,#d0f267)!important;
  color:#111e26!important;
  border-color:var(--accent-lime,#d0f267)!important;
}
.home-hero-copy .text-link{
  text-decoration-color:rgba(255,255,255,.6)!important;
}
.home-hero-copy h1{
  max-width:560px!important;
  margin:7px 0 12px!important;
}
.home-hero-copy p{max-width:470px!important}

/* Give the active green menu highlight breathing room */
nav a{
  padding-left:11px!important;
  padding-right:11px!important;
  margin-left:1px;
  margin-right:1px;
}
nav a.active{
  padding-left:13px!important;
  padding-right:13px!important;
  background:var(--accent-lime,#d0f267)!important;
  color:#111e26!important;
  border-radius:6px!important;
}

@media(max-width:760px){
  .home-hero-copy{
    min-height:0!important;
    padding:16px 14px 14px!important;
    color:var(--ink)!important;
    background:#fff!important;
    border:1px solid var(--line)!important;
    box-shadow:var(--shadow-soft)!important;
  }
  .home-hero-copy .eyebrow,
  .home-hero-copy h1,
  .home-hero-copy p,
  .home-hero-copy .text-link{color:var(--ink)!important}
  .home-hero-copy .button{
    background:var(--accent-lime,#d0f267)!important;
    color:#111e26!important;
  }
  nav a{
    margin:0!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  nav a.active{
    padding-left:12px!important;
    padding-right:12px!important;
  }
}

/* v2.63 — simplified main navigation + Teams/Statistics section switch */
.teams-stats-switch{
  display:inline-flex;
  gap:3px;
  padding:3px;
  margin:0 0 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
}
.teams-stats-switch a{
  padding:6px 11px;
  border-radius:999px;
  color:var(--ink);
  font-size:11px;
  font-weight:800;
  text-decoration:none;
}
.teams-stats-switch a.active{
  background:var(--accent-lime,#d0f267);
  color:#111e26;
}
@media(max-width:760px){
  .teams-stats-switch{display:flex;width:100%}
  .teams-stats-switch a{flex:1;text-align:center}
}

/* v2.63 — compact league switcher in brand */
header{position:relative}
.league-brand-wrap{position:relative;margin-right:auto}
.league-brand-toggle{
  appearance:none;
  border:0;
  background:transparent;
  color:var(--ink);
  padding:0;
  text-align:left;
}
.league-brand-toggle:hover{background:transparent}
.league-brand-arrow{
  display:inline-grid;
  place-items:center;
  width:22px;height:22px;
  margin-left:2px;
  border-radius:50%;
  background:var(--paper);
  border:1px solid var(--line);
  font-size:13px;
  transition:transform .15s ease;
}
.league-brand-toggle[aria-expanded="true"] .league-brand-arrow{transform:rotate(180deg)}
.league-brand-menu{
  position:absolute;
  z-index:50;
  left:58px;
  top:calc(100% + 9px);
  min-width:220px;
  padding:5px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  box-shadow:0 12px 30px rgba(17,30,38,.16);
}
.league-brand-menu[hidden]{display:none}
.league-brand-menu button{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 10px;
  border-radius:6px;
  background:transparent;
  color:var(--ink);
  text-align:left;
}
.league-brand-menu button:hover{background:var(--paper)}
.league-brand-menu button.selected{background:var(--lime)}
.league-brand-menu button span{font-size:11px;color:var(--muted);font-weight:600}
.league-brand-menu button.selected span{color:#334215}
.nav-mobile-only{display:none}

@media(max-width:600px){
  header{
    grid-template-columns:minmax(0,1fr) auto auto!important;
    gap:7px!important;
    padding:8px 12px!important;
  }
  .league-brand-wrap{grid-column:1;grid-row:1;margin:0;min-width:0}
  .league-brand-toggle{min-width:0;max-width:100%}
  .league-brand-toggle .brand-logo{width:44px;height:44px}
  .league-brand-toggle>span:not(.league-brand-arrow){
    font-size:17px;
    white-space:nowrap;
  }
  .league-brand-arrow{width:20px;height:20px;font-size:12px;flex:0 0 20px}
  .league-brand-menu{left:0;top:calc(100% + 7px);min-width:230px}
  .captain-login{
    grid-column:2!important;grid-row:1!important;
    padding:7px 9px!important;font-size:10px!important;
  }
  .mobile-menu-toggle{
    grid-column:3!important;grid-row:1!important;
    min-height:36px!important;padding:7px 9px!important;
  }
  .app-install-top{display:none!important}
  .nav-mobile-only{display:block}
  nav{grid-column:1/-1}
}

/* Desktop keeps Download App in header, not duplicated in nav */
@media(min-width:601px){
  .nav-mobile-only{display:none!important}
}

/* v2.63 — clearer league dropdown arrow only */
.league-brand-arrow{
  width:28px!important;
  height:28px!important;
  margin-left:5px!important;
  border-radius:7px!important;
  background:#111e26!important;
  border:0!important;
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 28px!important;
}
.league-brand-chevron{
  width:9px;
  height:9px;
  border-right:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(45deg) translate(-1px,-1px);
  transition:transform .15s ease;
}
.league-brand-toggle[aria-expanded="true"] .league-brand-arrow{
  transform:none!important;
}
.league-brand-toggle[aria-expanded="true"] .league-brand-chevron{
  transform:rotate(225deg) translate(-1px,-1px);
}
@media(max-width:600px){
  .league-brand-arrow{
    width:26px!important;
    height:26px!important;
    flex-basis:26px!important;
    border-radius:6px!important;
  }
  .league-brand-chevron{
    width:8px;
    height:8px;
  }
}

/* v2.63 — professional mobile bottom navigation bar */
.mobile-bottom-bar{display:none}

@media(max-width:600px){
  body{padding-bottom:74px}
  .mobile-bottom-bar{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:100;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr)) auto;
    align-items:center;
    min-height:64px;
    padding:6px max(8px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-right));
    background:rgba(17,30,38,.98);
    border-top:1px solid rgba(255,255,255,.12);
    box-shadow:0 -8px 24px rgba(17,30,38,.18);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
  }
  .mobile-nav-control{
    min-width:0;
    min-height:50px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    padding:5px 8px;
    border:0;
    border-radius:9px;
    background:transparent;
    color:#fff;
    font-size:10px;
    font-weight:800;
    letter-spacing:.02em;
  }
  .mobile-nav-control:active{
    background:rgba(208,242,103,.15);
  }
  .mobile-nav-icon{
    position:relative;
    display:block;
    width:23px;
    height:18px;
  }
  .mobile-nav-back::before,
  .mobile-nav-forward::before{
    content:"";
    position:absolute;
    top:4px;
    width:10px;
    height:10px;
    border-top:3px solid #fff;
    border-left:3px solid #fff;
  }
  .mobile-nav-back::before{
    left:3px;
    transform:rotate(-45deg);
  }
  .mobile-nav-forward::before{
    right:3px;
    transform:rotate(135deg);
  }
  .mobile-nav-back::after,
  .mobile-nav-forward::after{
    content:"";
    position:absolute;
    top:8px;
    width:17px;
    height:3px;
    border-radius:3px;
    background:#fff;
  }
  .mobile-nav-back::after{left:5px}
  .mobile-nav-forward::after{right:5px}
  .mobile-nav-refresh{
    display:grid;
    place-items:center;
    width:24px;
    height:24px;
    font-size:29px;
    line-height:1;
    font-weight:900;
    color:#fff;
    transform:translateY(-1px);
  }
  .mobile-version{
    min-width:64px;
    margin-left:5px;
    padding:6px 8px;
    border-left:1px solid rgba(255,255,255,.14);
    color:#fff;
    text-align:center;
    line-height:1.05;
  }
  .mobile-version span{
    display:block;
    color:rgba(255,255,255,.62);
    font-size:8px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
  }
  .mobile-version strong{
    display:block;
    margin-top:3px;
    font-size:11px;
    color:var(--lime,#d0f267);
  }
}

/* v2.63 — mobile homepage hero cleanup only */
@media(max-width:760px){
  .home-hero{
    background:transparent!important;
    padding:0!important;
    margin:0 0 6px!important;
    border:0!important;
    box-shadow:none!important;
  }
  .home-hero-copy{
    background:#fff!important;
    border:1px solid var(--line)!important;
    border-radius:10px!important;
    box-shadow:var(--shadow-soft)!important;
    margin:0!important;
    padding:14px 13px 13px!important;
  }
  .home-hero-copy::before,
  .home-hero-copy::after{display:none!important}

  .home-hero-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    align-items:center!important;
    gap:8px!important;
    margin-top:10px!important;
  }
  .home-hero-actions .button,
  .home-hero-actions .text-link{
    width:100%!important;
    min-height:38px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    padding:8px 10px!important;
    border-radius:7px!important;
    text-align:center!important;
    font-size:11px!important;
    line-height:1.2!important;
    white-space:nowrap!important;
  }
  .home-hero-actions .text-link{
    border:1px solid var(--line)!important;
    background:#fff!important;
    color:var(--ink)!important;
    text-decoration:none!important;
  }

  .home-shortcuts{
    margin-top:0!important;
    margin-bottom:10px!important;
  }
}

@media(max-width:480px){
  .home-hero-copy{
    padding:13px 11px 12px!important;
  }
  .home-hero-copy h1{
    margin-bottom:7px!important;
  }
  .home-hero-copy p{
    margin-bottom:8px!important;
  }
}

/* v2.63 — mobile homepage gap removal only */
@media(max-width:760px){
  .home-hero{
    margin-bottom:0!important;
  }
  .home-hero-copy{
    margin-bottom:0!important;
  }
  .home-shortcuts{
    margin-top:0!important;
    transform:translateY(0)!important;
  }
  .home-hero + .home-shortcuts{
    margin-top:0!important;
  }
}

/* v2.63 — team profile venue image */
.team-profile-main{position:relative}
.team-profile-main.has-venue-image{padding-right:118px}
.team-venue-photo-wrap{
  position:absolute;
  top:16px;
  right:16px;
  width:88px;
  height:88px;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 4px 12px rgba(17,30,38,.12);
}
.team-venue-photo{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
@media(max-width:760px){
  .team-profile-main.has-venue-image{padding-right:96px}
  .team-venue-photo-wrap{
    top:14px;
    right:14px;
    width:72px;
    height:72px;
    border-radius:8px;
  }
}

/* v2.63 — interactive team profile */
.captain-contact-actions{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:5px;
}
.captain-contact-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:30px;
  padding:5px 9px;
  border:1px solid rgba(255,255,255,.42);
  border-radius:999px;
  color:#fff!important;
  background:rgba(255,255,255,.10);
  font-size:10px!important;
  font-weight:800;
  line-height:1;
  text-decoration:none!important;
}
.captain-contact-action:hover,
.captain-contact-action:focus-visible{
  background:#fff;
  color:#145ba1!important;
}
.captain-contact-action span:first-child{
  font-size:13px;
  line-height:1;
}

.player-name-button{
  appearance:none;
  width:100%;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
}
.player-name-button:hover strong,
.player-name-button:focus-visible strong{
  color:#145ba1;
  text-decoration:underline;
  text-underline-offset:3px;
}
.player-name-button:focus-visible{
  outline:2px solid #145ba1;
  outline-offset:3px;
  border-radius:5px;
}
.player-stats-row{
  cursor:default;
}
.player-stats-row:hover .player-avatar{
  box-shadow:0 0 0 2px rgba(20,91,161,.16);
}

/* v2.63 — mobile history button states */
@media(max-width:600px){
  .mobile-nav-control:disabled{
    opacity:.38;
    cursor:default;
  }
  .mobile-nav-control:not(:disabled):active{
    background:rgba(208,242,103,.18);
    transform:translateY(1px);
  }
}

/* v2.63 — team cup competition setup and draw */
.cup-type-strip{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.cup-type-strip span{padding:6px 10px;border-radius:999px;background:var(--paper);font-size:11px;font-weight:800}
.cup-type-strip .active{background:var(--lime)}
.cup-type-strip .future{color:var(--muted)}
.cup-team-select-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0 8px}
.cup-team-select-head span{display:block;color:var(--muted);font-size:12px}
.cup-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:16px}
.cup-team-choice{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:12px;font-weight:700}
.cup-team-choice input{width:17px;height:17px;margin:0}
.cup-admin-card{padding:15px 0;border-top:1px solid var(--line)}
.cup-admin-card:first-of-type{border-top:0}
.cup-admin-summary{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.cup-admin-summary h3{margin-bottom:5px}
.cup-admin-summary p{margin:0;color:var(--muted);font-size:12px}
.cup-maths{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}
.cup-maths>div{padding:9px;background:var(--paper);border-radius:7px}
.cup-maths strong{display:block;font-size:20px}
.cup-maths span{font-size:10px;color:var(--muted)}
.cup-draw-preview{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fafbfa}
.cup-draw-list{display:grid;gap:5px}
.cup-draw-row{display:grid;grid-template-columns:28px 1fr 24px 1fr;gap:7px;align-items:center;padding:7px 9px;border-radius:6px;background:#fff;border:1px solid #edf0ee;font-size:12px}
.cup-draw-row>span{color:var(--muted)}
.cup-draw-row b{text-align:center}
.cup-draw-row.is-bye{grid-template-columns:28px 1fr auto}
.cup-draw-row em{font-style:normal;color:#567b27;font-weight:800;font-size:10px}
.cup-public-card{margin-bottom:14px}
.cup-public-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.cup-public-draw{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.cup-public-match{padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--paper)}
.cup-public-match>span{display:block;color:var(--muted);font-size:10px;font-weight:700;margin-bottom:4px}
.cup-public-match>div{display:grid;grid-template-columns:1fr 24px 1fr;gap:6px;align-items:center;font-size:12px}
.cup-public-match b{text-align:center}
.cup-public-match strong:last-child{text-align:right}
.cup-public-match.is-bye{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cup-public-match.is-bye>span{margin:0}
.cup-public-match.is-bye em{margin-left:auto;font-style:normal;font-size:10px;font-weight:800;color:#567b27}
@media(max-width:760px){
  .cup-team-grid{grid-template-columns:1fr 1fr}
  .cup-admin-summary{display:block}
  .cup-admin-summary .record-actions{margin-top:10px}
  .cup-maths{grid-template-columns:1fr 1fr}
  .cup-public-draw{grid-template-columns:1fr}
}
@media(max-width:420px){
  .cup-team-grid{grid-template-columns:1fr}
}

/* v2.63 — desktop homepage hero slideshow, preserving approved layout */
.home-hero-copy .home-hero-content{
  position:relative;
  z-index:3;
}
.home-hero-slides,
.home-hero-shade{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.home-hero-slides{
  z-index:0;
  overflow:hidden;
  border-radius:inherit;
}
.home-hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  background-position:center right;
  background-size:cover;
  background-repeat:no-repeat;
  transition:opacity 1.8s ease;
}
.home-hero-slide.active{opacity:1}
.home-hero-shade{
  z-index:1;
  background:linear-gradient(
    90deg,
    #111e26 0%,
    #111e26 37%,
    rgba(17,30,38,.98) 43%,
    rgba(17,30,38,.90) 49%,
    rgba(17,30,38,.72) 57%,
    rgba(17,30,38,.42) 66%,
    rgba(17,30,38,.12) 77%,
    rgba(17,30,38,0) 88%
  );
}
.home-hero-copy.hero-slideshow-ready{
  background:#111e26!important;
}
.hero-admin-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
.hero-admin-item{
  margin:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
}
.hero-admin-item img{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  background:var(--paper);
}
.hero-admin-item figcaption{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:9px 10px;
}
.hero-admin-item figcaption strong,
.hero-admin-item figcaption span{display:block}
.hero-admin-item figcaption span{font-size:10px;color:var(--muted);margin-top:2px}
.hero-admin-default{border-color:#b8d85b}
@media(max-width:760px){
  .home-hero-slides,
  .home-hero-shade{display:none!important}
  .home-hero-copy.hero-slideshow-ready{background:#fff!important}
  .hero-admin-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .hero-admin-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .home-hero-slide{transition:none}
}

/* v2.63 — keep desktop navigation aligned with the centred main/hero content */
@media(min-width:761px){
  nav{
    padding-left:max(4vw, calc((100vw - 1440px) / 2 + 57.6px))!important;
    padding-right:max(4vw, calc((100vw - 1440px) / 2 + 57.6px))!important;
  }
}

/* v2.63 — professional footer, public legal pages, cookie notice and mobile hero spacing */
#site-footer{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:26px;
  padding:24px max(4vw,calc((100vw - 1440px)/2 + 57.6px));
  background:#111e26;
  color:#fff;
}
.footer-brand-block{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}
.footer-logo-link{
  display:block;
  flex:0 0 auto;
}
.footer-logo-link img{
  width:58px;
  height:58px;
  display:block;
  object-fit:contain;
}
.footer-brand-block strong{
  display:block;
  font-family:'Barlow Condensed','Arial Narrow',sans-serif;
  font-size:20px;
  line-height:1;
  letter-spacing:.04em;
}
.footer-brand-block span{
  display:block;
  margin-top:4px;
  font-size:10px;
  color:#aebac0;
}
.footer-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
}
.footer-links a{
  font-size:12px;
  font-weight:700;
  color:#eef2f0;
}
.footer-links a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
  white-space:nowrap;
}
#site-footer .footer-meta span{
  margin:0!important;
  color:#aebac0;
  font-size:10px;
}

.legal-page{
  max-width:900px;
}
.legal-page h2{
  margin-top:28px;
  margin-bottom:9px;
  font-size:26px;
}
.legal-page p,
.legal-page li{
  max-width:820px;
}
.legal-page a:not(.button){
  color:#145ba1;
  text-decoration:underline;
  text-underline-offset:3px;
}
.legal-updated{
  color:var(--muted);
  font-size:12px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.legal-callout{
  margin-top:28px;
  padding:18px;
  border-radius:8px;
  background:#eef6d7;
  border:1px solid #d5e69b;
}
.legal-callout p{margin:6px 0 14px}

.cookie-notice{
  position:fixed;
  z-index:220;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  width:min(980px,calc(100% - 28px));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding:16px 18px;
  border-radius:10px;
  background:#fff;
  color:var(--ink);
  border:1px solid var(--line);
  box-shadow:0 14px 42px rgba(17,30,38,.22);
}
.cookie-notice[hidden]{display:none!important}
.cookie-notice-copy{min-width:0}
.cookie-notice-copy strong{
  display:block;
  margin-bottom:3px;
  font-size:14px;
}
.cookie-notice-copy p{
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}
.cookie-notice-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
}
.cookie-notice-actions button,
.cookie-notice-actions .button{
  padding:9px 11px;
  font-size:10px;
  white-space:nowrap;
}

/* The base .hero class has a desktop min-height. Remove it on the approved compact mobile homepage. */
@media(max-width:760px){
  .home-hero{
    min-height:0!important;
    height:auto!important;
    padding:0!important;
  }
  .home-hero-copy{
    min-height:0!important;
  }
  .home-hero + .home-shortcuts{
    margin-top:0!important;
  }
}

@media(max-width:850px){
  #site-footer{
    grid-template-columns:auto 1fr;
    padding:20px 18px;
  }
  .footer-links{justify-content:flex-start}
  .footer-meta{
    grid-column:1/-1;
    flex-direction:row;
    justify-content:space-between;
    align-items:center;
    width:100%;
  }
}
@media(max-width:600px){
  #site-footer{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    padding:18px 14px calc(84px + env(safe-area-inset-bottom))!important;
  }
  .footer-brand-block{align-items:center}
  .footer-logo-link img{width:50px;height:50px}
  .footer-links{
    justify-content:flex-start;
    gap:9px 15px;
  }
  .footer-meta{
    grid-column:auto;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
  }
  .cookie-notice{
    bottom:76px;
    width:calc(100% - 20px);
    display:block;
    padding:14px;
  }
  .cookie-notice-actions{
    margin-top:10px;
    display:grid;
    grid-template-columns:1fr;
  }
  .cookie-notice-actions button,
  .cookie-notice-actions .button{
    width:100%;
    text-align:center;
  }
  .legal-page h2{font-size:23px}
}

/* v2.63 — Warwickshire Arts footer credit */
.footer-powered a{
  color:var(--lime,#d0f267);
  font-weight:800;
  text-decoration:none;
}
.footer-powered a:hover,
.footer-powered a:focus-visible{
  text-decoration:underline;
  text-underline-offset:3px;
}

/* v2.63 — community dropdown holding pages */
.league-brand-menu-divider{
  height:1px;
  margin:5px 6px;
  background:var(--line);
}
.community-holding-page{
  display:grid;
  gap:14px;
}
.community-holding-hero{
  padding:28px;
  border-radius:12px;
  background:#111e26;
  color:#fff;
}
.community-holding-hero .eyebrow{color:var(--lime)}
.community-holding-hero h2{
  margin-bottom:10px;
  font-size:clamp(34px,4vw,50px);
}
.community-holding-hero p{
  max-width:680px;
  margin:0;
  color:#d4dcdf;
}
.community-info-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.community-info-card{
  min-height:100px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
}
.community-info-card span,
.community-info-card small{
  display:block;
  color:var(--muted);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.community-info-card strong{
  display:block;
  margin-top:6px;
  font-size:19px;
  line-height:1.15;
}
.community-info-card small{
  margin-top:4px;
  text-transform:none;
  letter-spacing:0;
}
.community-contact-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.community-contact-card h3{margin-bottom:5px}
.community-contact-card p{margin:0;color:var(--muted)}
.community-phone-button{
  white-space:nowrap;
  background:var(--lime)!important;
  color:#111e26!important;
}
@media(max-width:700px){
  .community-info-grid{grid-template-columns:1fr}
  .community-contact-card{display:block}
  .community-phone-button{margin-top:14px;width:100%;text-align:center}
  .community-holding-hero{padding:20px}
}

/* v2.63 — stronger venue image integration on team profile */
.team-profile-main.has-venue-image{
  padding-right:210px!important;
}
.team-venue-photo-wrap{
  top:50%!important;
  right:18px!important;
  width:168px!important;
  height:116px!important;
  transform:translateY(-50%)!important;
  border-radius:12px!important;
  overflow:hidden!important;
  box-shadow:0 6px 18px rgba(17,30,38,.16)!important;
}
.team-venue-photo{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
}
.team-profile-facts{
  max-width:440px!important;
  grid-template-columns:minmax(0,1fr) minmax(0,.72fr)!important;
  gap:7px!important;
}
.team-profile-facts>div{
  padding:8px 10px!important;
  min-width:0!important;
}
.team-profile-facts strong{
  font-size:12px!important;
  line-height:1.2!important;
}
@media(max-width:760px){
  .team-profile-main.has-venue-image{
    padding-right:126px!important;
  }
  .team-venue-photo-wrap{
    top:50%!important;
    right:12px!important;
    width:104px!important;
    height:88px!important;
    transform:translateY(-50%)!important;
    border-radius:9px!important;
  }
  .team-profile-facts{
    max-width:none!important;
    grid-template-columns:minmax(0,1fr) minmax(0,.72fr)!important;
    gap:6px!important;
  }
  .team-profile-facts>div{
    padding:7px 8px!important;
  }
  .team-profile-facts strong{
    font-size:11px!important;
  }
}
@media(max-width:430px){
  .team-profile-main.has-venue-image{
    padding-right:112px!important;
  }
  .team-venue-photo-wrap{
    width:92px!important;
    height:82px!important;
    right:10px!important;
  }
}

/* v2.63 — Website Content submenu + editable document metadata */
.content-menu-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.content-menu-card{
  min-width:0;
  min-height:122px;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 18px;
  align-items:center;
  gap:9px;
  padding:15px 13px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  color:var(--ink);
  text-align:left;
}
.content-menu-card:hover{
  border-color:#b9ca79;
  background:#fbfdf6;
}
.content-menu-icon{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:8px;
  background:var(--lime);
  color:#111e26;
  font-weight:900;
  font-size:15px;
}
.content-menu-card strong{display:block;font-size:14px}
.content-menu-card small{display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.35}
.content-menu-card em{display:inline-block;margin-top:7px;padding:2px 6px;border-radius:999px;background:var(--paper);color:var(--muted);font-size:9px;font-style:normal;font-weight:800}
.content-menu-card>b{font-size:22px;text-align:right}
.content-back-button{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-bottom:10px;
  padding:7px 10px;
  background:#fff;
  color:var(--ink);
  border:1px solid var(--line);
}
.content-single-editor{margin-top:0!important}
.content-document-edit{
  margin:0 0 16px;
  padding:14px;
  border:1px solid #cfe28d;
  border-radius:8px;
  background:#f8fbeF;
}
.document-upload-form{
  padding-top:6px;
}
.document-admin-title{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.document-admin-title>span:last-child{min-width:0}
.document-admin-title strong,
.document-admin-title small{display:block}
.document-admin-title small{margin-top:3px;color:var(--muted);font-size:10px}
.document-admin-icon{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  flex:0 0 36px;
  border-radius:8px;
  background:var(--paper);
  font-size:20px;
}
.document-icon{
  font-size:31px!important;
  line-height:1!important;
}
@media(max-width:1050px){
  .content-menu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:650px){
  .content-menu-grid{grid-template-columns:1fr 1fr}
  .content-menu-card{min-height:104px}
}
@media(max-width:400px){
  .content-menu-grid{grid-template-columns:1fr}
}

/* v2.63 — optional built-in Southam hero image */
.hero-default-setting{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:12px 0 16px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fafbfa;
}
.hero-default-setting>div strong,
.hero-default-setting>div span{display:block}
.hero-default-setting>div span{margin-top:3px;color:var(--muted);font-size:11px}
.form-switch-row{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;white-space:nowrap}
.form-switch-row input{width:18px;height:18px;margin:0}
.hero-admin-default.is-hidden-default{opacity:.58}
.hero-default-status{
  display:inline-block!important;
  margin:0!important;
  padding:3px 6px;
  border-radius:999px;
  background:var(--paper);
  color:var(--muted)!important;
  font-size:8px!important;
  font-weight:900;
  letter-spacing:.06em;
}
@media(max-width:760px){
  .hero-default-setting{display:grid;grid-template-columns:1fr;align-items:start}
  .form-switch-row{white-space:normal}
  .hero-default-setting button{justify-self:start}
}

/* v2.63 — per-image hero controls */
.hero-admin-item.is-hidden-hero,
.hero-admin-item.is-hidden-default{
  opacity:.58;
}
.hero-admin-item.is-hidden-hero img,
.hero-admin-item.is-hidden-default img{
  filter:saturate(.45);
}
.hero-edit-form{
  margin:0 0 16px;
  padding:14px;
  border:1px solid #cfe28d;
  border-radius:9px;
  background:#f9fceF;
}
.hero-admin-item figcaption{
  align-items:flex-start!important;
}
.hero-admin-item .record-actions{
  justify-content:flex-end;
  flex-wrap:wrap;
}

/* v2.63 — compact mobile homepage mirrors desktop hero */
@media(max-width:760px){
  .home-hero{
    min-height:0!important;
    height:auto!important;
    margin:0 0 6px!important;
    padding:0!important;
    background:transparent!important;
  }
  .home-hero-copy{
    position:relative!important;
    min-height:184px!important;
    height:184px!important;
    margin:0!important;
    padding:15px 42% 13px 14px!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:10px!important;
    background:#111e26!important;
    color:#fff!important;
    box-shadow:var(--shadow-soft)!important;
  }
  .home-hero-slides,
  .home-hero-shade{
    display:block!important;
  }
  .home-hero-slides{
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
  }
  .home-hero-slide{
    background-position:center right!important;
    background-size:cover!important;
  }
  .home-hero-shade{
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    background:linear-gradient(
      90deg,
      #111e26 0%,
      #111e26 40%,
      rgba(17,30,38,.98) 47%,
      rgba(17,30,38,.88) 55%,
      rgba(17,30,38,.62) 66%,
      rgba(17,30,38,.25) 78%,
      rgba(17,30,38,.05) 92%
    )!important;
  }
  .home-hero-content{
    position:relative!important;
    z-index:3!important;
  }
  .home-hero-copy.hero-slideshow-ready{
    background:#111e26!important;
  }
  .home-hero-copy .eyebrow,
  .home-hero-copy h1,
  .home-hero-copy p,
  .home-hero-copy .text-link{
    color:#fff!important;
  }
  .home-hero-copy .eyebrow{
    font-size:8px!important;
    letter-spacing:.11em!important;
  }
  .home-hero-copy h1{
    max-width:220px!important;
    margin:4px 0 6px!important;
    font-size:clamp(27px,8vw,35px)!important;
    line-height:.96!important;
  }
  .home-hero-copy p{
    max-width:215px!important;
    margin:0 0 8px!important;
    font-size:10.5px!important;
    line-height:1.25!important;
  }
  .home-hero-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
    max-width:235px!important;
    margin-top:7px!important;
  }
  .home-hero-actions .button,
  .home-hero-actions .text-link{
    width:100%!important;
    min-height:32px!important;
    margin:0!important;
    padding:6px 7px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:6px!important;
    font-size:9.5px!important;
    line-height:1.1!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
  .home-hero-actions .button{
    background:var(--accent-lime,#d0f267)!important;
    color:#111e26!important;
    border-color:var(--accent-lime,#d0f267)!important;
  }
  .home-hero-actions .text-link{
    border:1px solid rgba(255,255,255,.45)!important;
    background:rgba(255,255,255,.08)!important;
    color:#fff!important;
    text-decoration:none!important;
  }

  /* Keep all three shortcut cards identical in height */
  .home-shortcuts{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
    margin:0 0 8px!important;
  }
  .home-shortcuts a.shortcut{
    height:92px!important;
    min-height:92px!important;
    max-height:92px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto 1fr auto!important;
    column-gap:10px!important;
    row-gap:1px!important;
    padding:10px 11px!important;
    overflow:hidden!important;
  }
  .home-shortcuts .shortcut-title{
    grid-column:1!important;
    grid-row:1!important;
    font-size:16px!important;
    line-height:1.05!important;
  }
  .home-shortcuts .shortcut-description{
    grid-column:1!important;
    grid-row:2!important;
    align-self:center!important;
    margin:0!important;
    max-width:none!important;
    font-size:10px!important;
    line-height:1.22!important;
  }
  .home-shortcuts .shortcut-action{
    grid-column:1 / -1!important;
    grid-row:3!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    font-size:10px!important;
    line-height:1!important;
  }
  .home-shortcuts .shortcut-action span{
    width:25px!important;
    height:25px!important;
    font-size:16px!important;
  }
}

@media(max-width:400px){
  .home-hero-copy{
    height:180px!important;
    min-height:180px!important;
    padding-right:39%!important;
  }
  .home-hero-copy h1{
    font-size:28px!important;
    max-width:205px!important;
  }
  .home-hero-copy p{
    max-width:198px!important;
    font-size:9.8px!important;
  }
  .home-hero-actions{
    max-width:218px!important;
  }
  .home-shortcuts a.shortcut{
    height:88px!important;
    min-height:88px!important;
    max-height:88px!important;
  }
}

/* v2.63 — restore original mobile shortcut-card proportions and enlarge hero only */
@media(max-width:760px){
  /* Restore the shortcut cards to the fuller mobile dimensions used before v2.63 */
  .home-shortcuts{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    margin:0 0 10px!important;
  }
  .home-shortcuts a.shortcut{
    height:auto!important;
    min-height:122px!important;
    max-height:none!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:8px!important;
    padding:16px!important;
    overflow:visible!important;
  }
  .home-shortcuts .shortcut-title{
    font-size:21px!important;
    line-height:1.1!important;
  }
  .home-shortcuts .shortcut-description{
    margin:0!important;
    max-width:280px!important;
    font-size:13px!important;
    line-height:1.35!important;
  }
  .home-shortcuts .shortcut-action{
    display:flex!important;
    width:100%!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    margin-top:auto!important;
    padding-top:4px!important;
    font-size:12px!important;
    line-height:1!important;
  }
  .home-shortcuts .shortcut-action span{
    width:32px!important;
    height:32px!important;
    font-size:19px!important;
  }

  /* Make the hero taller without changing the approved gradient/image treatment */
  .home-hero-copy{
    height:auto!important;
    min-height:236px!important;
    padding:18px 42% 16px 14px!important;
  }
  .home-hero-copy h1{
    max-width:225px!important;
    margin:5px 0 8px!important;
    font-size:clamp(29px,8.3vw,36px)!important;
    line-height:.98!important;
  }
  .home-hero-copy p{
    max-width:220px!important;
    margin:0 0 10px!important;
    font-size:10.5px!important;
    line-height:1.28!important;
  }
  .home-hero-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
    max-width:240px!important;
    margin-top:10px!important;
  }
  .home-hero-actions .button,
  .home-hero-actions .text-link{
    min-height:38px!important;
    padding:8px 8px!important;
    font-size:10px!important;
    line-height:1.15!important;
    white-space:normal!important;
  }
}

@media(max-width:400px){
  .home-hero-copy{
    min-height:228px!important;
    padding-right:39%!important;
  }
  .home-hero-copy h1{
    max-width:210px!important;
    font-size:29px!important;
  }
  .home-hero-copy p{
    max-width:202px!important;
    font-size:9.8px!important;
  }
  .home-hero-actions{
    max-width:220px!important;
  }
  .home-shortcuts a.shortcut{
    min-height:118px!important;
    padding:15px!important;
  }
}

/* v2.63 — homepage alignment and symmetry refinements */

/* Three coloured shortcut cards: keep every text line on the same left edge */
.home-shortcuts a.shortcut{
  text-align:left!important;
}
.home-shortcuts .shortcut-title,
.home-shortcuts .shortcut-description,
.home-shortcuts .shortcut-action{
  width:100%!important;
  margin-left:0!important;
  padding-left:0!important;
  text-align:left!important;
}
.home-shortcuts .shortcut-description{
  align-self:stretch!important;
}
.home-shortcuts .shortcut-action{
  justify-content:space-between!important;
}

/* Hero actions: make both buttons use the same stacked/symmetrical treatment */
.home-hero-actions{
  align-items:stretch!important;
}
.home-hero-actions .button,
.home-hero-actions .text-link{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:3px!important;
  text-align:left!important;
}
.home-hero-actions .button::after,
.home-hero-actions .text-link::after{
  content:"➜";
  display:block;
  font-size:13px;
  line-height:1;
  opacity:.9;
}
.home-hero-actions .button{
  padding-right:12px!important;
}
.home-hero-actions .text-link{
  padding-right:12px!important;
}
/* Hide the original inline arrows so both actions use the same generated arrow line */
.home-hero-actions .button,
.home-hero-actions .text-link{
  font-size:0!important;
}
.home-hero-actions .button::before{
  content:"League tables";
  font-size:inherit;
}
.home-hero-actions .text-link::before{
  content:"Teams & players";
  font-size:inherit;
}

/* restore explicit readable font sizes after replacing inline labels */
@media(min-width:761px){
  .home-hero-actions .button::before,
  .home-hero-actions .text-link::before{
    font-size:13px;
    font-weight:800;
    line-height:1.1;
  }
}
@media(max-width:760px){
  .home-hero-actions .button::before,
  .home-hero-actions .text-link::before{
    font-size:10px;
    font-weight:800;
    line-height:1.1;
  }
  .home-hero-actions .button::after,
  .home-hero-actions .text-link::after{
    font-size:12px;
  }
}

/* v2.63 — allocated cup-night calendar */
.cup-dates-field{
  padding:14px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fbfcfa;
}
.cup-dates-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}
.cup-dates-head strong,
.cup-dates-head span{display:block}
.cup-dates-head span{
  margin-top:3px;
  color:var(--muted);
  font-size:10px;
}
.cup-date-editor{
  display:grid;
  gap:7px;
}
.cup-date-row{
  display:grid;
  grid-template-columns:28px minmax(150px,1fr) minmax(145px,.7fr) auto;
  align-items:end;
  gap:8px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
}
.cup-date-number{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  margin-bottom:2px;
  border-radius:50%;
  background:#111e26;
  color:#fff;
  font-size:11px;
  font-weight:900;
}
.cup-date-row label{margin:0}
.cup-date-row input{margin-top:3px}
.cup-date-summary{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  margin-top:7px;
}
.cup-date-summary span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 7px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:var(--muted);
  font-size:9px;
}
.cup-date-summary b{
  display:grid;
  place-items:center;
  width:15px;
  height:15px;
  border-radius:50%;
  background:#111e26;
  color:#fff;
  font-size:8px;
}
@media(max-width:760px){
  .cup-dates-head{align-items:flex-start}
  .cup-date-row{
    grid-template-columns:28px 1fr;
  }
  .cup-date-row label,
  .cup-date-row button{
    grid-column:2;
  }
  .cup-date-number{
    grid-column:1;
    grid-row:1 / span 3;
    align-self:start;
    margin-top:20px;
  }
}

/* v2.63 — bulk player import */
.player-import-panel{margin-bottom:12px}.player-import-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}.player-import-stats span{padding:9px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--muted);font-size:10px}.player-import-stats b{display:block;color:var(--ink);font-size:20px}.player-import-table-wrap{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:8px}.player-import-table{min-width:820px;margin:0}.player-import-table thead{position:sticky;top:0;z-index:2;background:#111e26;color:#fff}.player-import-table td{vertical-align:middle}.player-import-table td small{display:block;max-width:320px}.player-import-table .needs-match{background:#fff8e7}.player-import-table .is-duplicate{opacity:.58}.badge.import-ok{background:#eaf5cf;color:#31440f}.badge.import-review{background:#fff0c4;color:#6a4c00}@media(max-width:760px){.player-import-stats{grid-template-columns:1fr 1fr}}

/* v2.63 Season Calendar */
.season-calendar{border-top:1px solid var(--line,#d5dbe4);padding-top:1rem}.season-calendar-row{display:grid;grid-template-columns:150px 180px minmax(180px,1fr) minmax(180px,1fr) auto;gap:12px;align-items:end;margin:16px 0}.season-calendar-row label{display:grid;gap:6px}.season-calendar-row input,.season-calendar-row select{width:100%;min-width:0}.calendar-event h4{margin:12px 0}.cup-date-row{flex-wrap:wrap}#detail-body form[data-record-form="fixture"]{display:grid;gap:16px}@media(max-width:900px){.season-calendar-row{grid-template-columns:1fr 1fr}}@media(max-width:550px){.season-calendar-row{grid-template-columns:1fr;padding-bottom:16px;border-bottom:1px solid #ddd}}

/* v2.63 — Season Calendar save feedback */
.calendar-save-status{min-height:22px;margin-top:10px;padding:0;font-size:11px;font-weight:800;line-height:1.45}
.calendar-save-status:empty{display:none}
.calendar-save-status.is-saving,.calendar-save-status.is-ok,.calendar-save-status.is-error{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px}
.calendar-save-status.is-saving{background:#f2f5f6;color:#34444d;border:1px solid var(--line)}
.calendar-save-status.is-ok{background:#eef6d7;color:#294018;border:1px solid #cfe28d}
.calendar-save-status.is-error{background:#fff0ee;color:#8b2d24;border:1px solid #efc4bf}
.calendar-save-status.is-saving::before,[data-calendar-save-button].is-saving::before{content:"";width:13px;height:13px;flex:0 0 auto;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sdl-spin .75s linear infinite}
[data-calendar-save-button].is-saving{display:inline-flex;align-items:center;gap:7px;cursor:wait;opacity:.78}
@keyframes sdl-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.calendar-save-status.is-saving::before,[data-calendar-save-button].is-saving::before{animation:none}}

/* v2.63 — fixture venue diagnostics */
.fixture-issue-summary{margin-top:10px;padding:10px 12px;border:1px solid #e8a39c;background:#fff2f0;color:#7f251e;border-radius:8px;font-size:11px;line-height:1.45}
.fixture-issue-summary strong{display:block;margin-bottom:5px;font-size:12px}
.fixture-issue-summary div{margin:3px 0}
.fixture-issue-summary span{display:block;margin-top:6px;font-weight:700}
tr.fixture-venue-error>td{background:#fff0ee!important;border-top-color:#e6aaa4!important;border-bottom-color:#e6aaa4!important}
tr.fixture-venue-error>td:first-child{box-shadow:inset 4px 0 0 #b83b30}
.fixture-error-label{margin-top:3px;color:#9a3026;font-size:10px;font-weight:800;line-height:1.2}

/* v2.63 — fixture reversal controls and prominent league clash warning */
.fixture-admin-actions{display:flex;flex-wrap:wrap;gap:5px}
.league-clash-banner{
  margin:0 0 14px;
  padding:12px 14px;
  border:2px solid #c94135;
  border-radius:9px;
  background:#fff0ee;
  color:#7e241d;
}
.league-clash-banner strong{
  display:block;
  font-size:13px;
  line-height:1.3;
  letter-spacing:.01em;
}
.league-clash-banner span{
  display:block;
  margin-top:4px;
  font-size:11px;
  font-weight:700;
  line-height:1.4;
}
.league-clash-banner small{
  display:block;
  margin-top:5px;
  font-size:10px;
  line-height:1.35;
}

/* v2.63 — saved league health on Manage Leagues */
.saved-league-row.league-health-clash{border:2px solid #c94135!important;background:#fff0ee!important}
.saved-league-row.league-health-good{border:2px solid #6fa33a!important;background:#f4faeb!important}
.saved-league-row.league-health-pending{border:1px solid var(--line)!important}
.league-health-status{display:inline-flex!important;width:max-content;max-width:100%;margin-top:6px;padding:4px 7px;border-radius:6px;font-size:11px!important;font-weight:900;line-height:1.25}
.league-health-status.clash{background:#c94135;color:#fff}
.league-health-status.good{background:#6fa33a;color:#fff}
.league-health-status.pending{background:#eef1f2;color:#526069}
.league-health-detail{margin-top:4px;color:#8a2b22!important;font-size:10px!important;font-weight:700}
.current-league-callout.league-health-clash{border:2px solid #c94135!important;background:#fff0ee!important}
.current-league-callout.league-health-good{border:2px solid #6fa33a!important;background:#f4faeb!important}
.current-league-callout.league-health-clash small{display:block;margin-top:5px;color:#8a2b22;font-weight:800}

/* v2.63 — access choice + captain view */
.access-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.access-choice-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff}
.access-choice-card strong{font-size:20px}
.access-choice-card span{font-size:12px;line-height:1.45;color:#526069;min-height:52px}
.access-choice-card button{margin-top:auto}
.captain-view-head{margin-bottom:14px}
.captain-view-actions{margin-top:10px}
.captain-view-league{margin:12px 0}
.captain-view-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.captain-view-team-card{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;background:#fff}
.captain-view-team-card:hover{border-color:#6fa33a}
.captain-view-team-card span{font-size:11px;color:#607079}
.captain-view-team-card b{margin-top:6px;font-size:11px}
.captain-view-banner{display:flex;flex-direction:column;gap:2px;margin:10px 0;padding:9px 11px;border:1px solid #bed57d;border-radius:8px;background:#f4faeb}
.captain-view-banner span{font-size:11px}
.provisional-results-note{margin-bottom:12px}
@media(max-width:760px){.access-choice-grid,.captain-view-team-grid{grid-template-columns:1fr}}

/* v2.63 — paper-style captain score sheet + live progress */
.score-game-matchup{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);align-items:stretch;border-top:1px solid var(--line)}
.score-side{padding:12px}
.score-side-home{border-right:1px solid var(--line)}
.score-side-away{border-left:1px solid var(--line)}
.score-side-head{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.score-side-head>span{font-size:9px;font-weight:900;letter-spacing:.12em;color:#66757e}
.score-side-head>strong{font-size:13px;line-height:1.2}
.score-side-entry{display:grid;grid-template-columns:minmax(0,1fr) 62px;gap:8px;align-items:end}
.score-player-entry{display:flex;flex-direction:column;gap:6px}
.score-player-entry select{width:100%}
.score-legs-field{display:flex;flex-direction:column;gap:4px;margin:0}
.score-legs-field span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.score-legs-field input{width:100%;text-align:center;font-size:18px;font-weight:900}
.score-game-divider{display:flex;align-items:center;justify-content:center;background:#f5f7f8;font-weight:900;color:#50606a}
.live-score-state{display:inline-flex;width:max-content;margin:7px 0 3px;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.04em}
.live-score-state.in-progress{background:#eef6d7;color:#294018;border:1px solid #cfe28d}
.live-score-state.submitted{background:#edf3ff;color:#244f89;border:1px solid #bfd0ee}
.provisional-results-note{margin-bottom:12px}
@media(max-width:760px){
  .score-game-matchup{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)}
  .score-side{padding:9px 8px}
  .score-side-entry{grid-template-columns:minmax(0,1fr) 50px;gap:5px}
  .score-side-head>strong{font-size:11px}
}

/* v2.63 — in-progress fixture visibility + live match stats */
.live-stat-strip{display:flex;flex-wrap:wrap;gap:6px 12px;margin:7px 0 2px;padding:7px 9px;border-radius:7px;background:#f7f9fa;border:1px solid var(--line);font-size:10px;line-height:1.35}
.live-stat-strip span{display:inline-flex;gap:4px}
.live-stat-strip b{font-weight:900}

/* v2.63 — scorecard lifecycle labels */
.live-score-state.official{background:#eaf5e7;color:#245b2a;border:1px solid #a9d2ad}
.scorecard-actions .danger{margin-left:auto}

/* v2.63 — compact captain scorecard + quick statistic entry */
.scorecard-shell{padding:12px!important}
.scorecard-title{gap:8px!important;margin-bottom:8px!important}
.scorecard-title h2{margin:2px 0 3px!important}
.scorecard-title p{margin:0!important}
.scorecard-games{gap:7px!important}
.score-game{margin:0!important}
.score-game-head{padding:7px 9px!important;gap:7px!important}
.score-game-head small{margin-top:1px!important}
.score-side{padding:7px 8px!important}
.score-side-head{gap:1px!important;margin-bottom:5px!important}
.score-side-entry{gap:5px!important}
.score-player-entry{gap:4px!important}
.score-player-entry select{min-height:34px!important;padding-top:5px!important;padding-bottom:5px!important}
.score-legs-field{gap:2px!important}
.score-legs-field input{min-height:34px!important;padding:4px!important}
.match-stats-entry{margin-top:10px!important;padding-top:10px!important}
.match-stats-entry>div:first-child p{margin:3px 0 7px!important}
.stat-entry-group{margin-top:7px!important;padding-top:7px!important}
.stat-entry-title{margin-bottom:5px!important}
.stat-entry-row{gap:5px!important;margin:4px 0!important;align-items:center!important}
.stat-entry-row select,.stat-entry-row input{min-height:34px!important;padding-top:5px!important;padding-bottom:5px!important}
.stat-save-button{min-height:32px!important;padding:5px 8px!important;font-size:10px!important;white-space:nowrap}
.remove-stat-row{min-width:30px!important;min-height:30px!important}
.scorecard-notes{margin-top:8px!important}
.scorecard-actions{margin-top:10px!important;gap:6px!important}
.captain-view-banner{margin:6px 0!important;padding:7px 9px!important}
@media(max-width:760px){
  .scorecard-shell{padding:8px!important}
  .score-game-matchup{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr)!important}
  .score-side{padding:6px!important}
  .score-side-head{margin-bottom:4px!important}
  .score-side-head>strong{font-size:10px!important}
  .score-side-entry{grid-template-columns:minmax(0,1fr) 44px!important;gap:4px!important}
  .score-player-entry select{font-size:11px!important}
  .stat-entry-row{grid-template-columns:minmax(0,1fr) minmax(62px,.45fr) auto auto!important}
  .stat-entry-group[data-stat-group="n180"] .stat-entry-row{grid-template-columns:minmax(0,1fr) auto auto!important}
}

/* v2.63 — reliable inline statistic entry */
.stat-entry-row{
  grid-template-columns:minmax(220px,1fr) 92px 58px 30px!important;
  gap:5px!important;
  align-items:center!important;
}
.stat-entry-row select{min-width:0!important;width:100%!important}
.stat-entry-row input[type="number"]{width:100%!important;min-width:72px!important}
.stat-entry-group[data-stat-group="n180"] .stat-entry-row{
  grid-template-columns:minmax(260px,1fr) 58px 30px!important;
}
.stat-inline-error{
  display:none;
  margin:0 0 5px;
  padding:5px 7px;
  border-radius:6px;
  background:#fff0ee;
  color:#8a2b22;
  font-size:10px;
  font-weight:800;
  line-height:1.3;
}
.stat-inline-error.is-visible{display:block}
.stat-inline-saved{
  margin:0 0 5px;
  padding:4px 7px;
  border-radius:6px;
  background:#f1f8e7;
  color:#365d22;
  font-size:10px;
  font-weight:800;
}
.stat-entry-group.has-stat-error{border-color:#cf5a50!important;background:#fff9f8!important}
.stat-save-button{width:58px!important;min-width:58px!important}
.remove-stat-row{width:30px!important;min-width:30px!important;padding:0!important}
.scorecard-actions{display:grid!important;grid-template-columns:1fr 1.25fr auto!important;align-items:center!important}
.submit-result-action{order:1!important}
.save-progress-action{order:2!important;font-weight:900!important}
.scorecard-actions .danger{order:3!important;margin-left:0!important}
@media(max-width:700px){
  .stat-entry-row{
    grid-template-columns:minmax(150px,1fr) 72px 52px 28px!important;
    gap:4px!important;
  }
  .stat-entry-group[data-stat-group="n180"] .stat-entry-row{
    grid-template-columns:minmax(180px,1fr) 52px 28px!important;
  }
  .stat-save-button{width:52px!important;min-width:52px!important;padding-inline:4px!important}
  .remove-stat-row{width:28px!important;min-width:28px!important}
  .scorecard-actions{grid-template-columns:1fr 1.2fr!important}
  .scorecard-actions .danger{grid-column:1/-1!important}
}

/* v2.63 — tidy scorecard focus state */
.electronic-scorecard select:focus,
.electronic-scorecard input:focus,
.electronic-scorecard textarea:focus{
  outline:none!important;
  box-shadow:none!important;
  border-color:#6fa33a!important;
}

/* v2.63 — slightly more compact Fixtures & Results cards */
.fixture-date-group{margin-bottom:14px!important}
.fixture-date-heading{margin-bottom:7px!important}
.fixture-date-list{gap:7px!important}
.fixture.fixture-card{padding:10px 12px!important}
.fixture.fixture-card .fixture-top{margin-bottom:5px!important;gap:8px!important}
.fixture.fixture-card .match{min-height:38px!important;padding:3px 0!important}
.fixture.fixture-card .match .fixture-team-link,
.fixture.fixture-card .match>span{line-height:1.2!important}
.fixture.fixture-card .score{margin:0 8px!important;line-height:1!important}
.fixture.fixture-card .fixture-status{margin-top:4px!important;padding-top:4px!important}
.fixture.fixture-card .live-score-state{margin:4px 0 2px!important;padding:3px 6px!important}
.fixture.fixture-card .live-stat-strip{margin:5px 0 1px!important;padding:5px 7px!important;gap:4px 10px!important}
.fixture.fixture-card.calendar-event h4{margin:5px 0 4px!important}
.fixture.fixture-card.calendar-event p{margin:3px 0!important}
.fixture.fixture-card:has(.live-stat-strip),
.fixture.fixture-card:has(.live-score-state){padding-top:11px!important;padding-bottom:11px!important}
@media(max-width:760px){
  .fixture-date-list{gap:6px!important}
  .fixture.fixture-card{padding:9px 10px!important}
  .fixture.fixture-card .match{min-height:36px!important}
  .fixture.fixture-card .fixture-top{margin-bottom:4px!important}
  .fixture.fixture-card .fixture-status{margin-top:3px!important;padding-top:3px!important}
}

/* v2.63 — visibly more compact Fixtures & Results cards */
.fixture-date-group{margin-bottom:10px!important}
.fixture-date-heading{
  margin:0 0 4px!important;
  line-height:1.1!important;
}
.fixture-date-list{gap:4px!important}

.fixture.fixture-card{
  padding:6px 9px!important;
  border-radius:8px!important;
}
.fixture.fixture-card .fixture-top{
  margin:0 0 2px!important;
  gap:6px!important;
  line-height:1.05!important;
}
.fixture.fixture-card .fixture-top span{
  font-size:10px!important;
  line-height:1.05!important;
}
.fixture.fixture-card .match{
  min-height:28px!important;
  padding:0!important;
  line-height:1!important;
}
.fixture.fixture-card .match .fixture-team-link,
.fixture.fixture-card .match>span{
  line-height:1.05!important;
}
.fixture.fixture-card .score{
  margin:0 6px!important;
  line-height:1!important;
}
.fixture.fixture-card .fixture-status{
  margin-top:2px!important;
  padding-top:2px!important;
  line-height:1.05!important;
  font-size:10px!important;
}
.fixture.fixture-card .live-score-state{
  margin:2px 0 1px!important;
  padding:2px 5px!important;
  font-size:9px!important;
}
.fixture.fixture-card .live-stat-strip{
  margin:3px 0 0!important;
  padding:4px 6px!important;
  gap:3px 8px!important;
  font-size:9px!important;
}
.fixture.fixture-card.calendar-event h4{
  margin:3px 0 2px!important;
  line-height:1.1!important;
}
.fixture.fixture-card.calendar-event p{
  margin:2px 0!important;
  line-height:1.15!important;
}

/* Even cards with live/result information stay compact. */
.fixture.fixture-card:has(.live-stat-strip),
.fixture.fixture-card:has(.live-score-state){
  padding-top:7px!important;
  padding-bottom:7px!important;
}

@media(max-width:760px){
  .fixture-date-group{margin-bottom:8px!important}
  .fixture-date-heading{margin-bottom:3px!important}
  .fixture-date-list{gap:3px!important}
  .fixture.fixture-card{
    padding:5px 7px!important;
    border-radius:7px!important;
  }
  .fixture.fixture-card .fixture-top{
    margin-bottom:1px!important;
  }
  .fixture.fixture-card .fixture-top span{
    font-size:9px!important;
  }
  .fixture.fixture-card .match{
    min-height:25px!important;
  }
  .fixture.fixture-card .fixture-status{
    margin-top:1px!important;
    padding-top:1px!important;
    font-size:9px!important;
  }
  .fixture.fixture-card .live-score-state{
    margin:1px 0!important;
    padding:2px 4px!important;
    font-size:8px!important;
  }
  .fixture.fixture-card .live-stat-strip{
    margin-top:2px!important;
    padding:3px 5px!important;
    font-size:8px!important;
  }
}

/* v2.63 — more colour in Fixtures & Results + live Cup scores */
.fixture-date-heading{
  display:inline-flex!important;
  align-items:center!important;
  padding:4px 8px!important;
  border-radius:7px!important;
  background:#173f70!important;
  color:#fff!important;
  font-weight:900!important;
}
.fixture.fixture-card .fixture-top>span:first-child{
  display:inline-flex!important;
  align-items:center!important;
  padding:2px 6px!important;
  border-radius:999px!important;
  background:#e8f1fb!important;
  color:#174c82!important;
  font-weight:900!important;
}
.fixture.fixture-card .fixture-team-link{
  color:#155d9a!important;
  font-weight:900!important;
}
.fixture.fixture-card .fixture-team-link:hover,
.fixture.fixture-card .fixture-team-link:focus{
  color:#0c3f70!important;
}
.fixture.fixture-card .fixture-status{
  color:#526d7d!important;
}

.cup-live-section{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.cup-live-section h3{margin:0 0 7px}
.cup-live-list{display:grid;gap:6px}
.cup-live-match{
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}
.cup-live-meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  margin-bottom:4px;
  font-size:10px;
  font-weight:800;
  color:#5d6d76;
}
.cup-live-meta .live-score-state{margin:0!important}
.cup-live-score{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:8px;
}
.cup-live-score strong:first-child{text-align:right}
.cup-live-score strong:last-child{text-align:left}
.cup-live-score span{
  min-width:42px;
  text-align:center;
  font-weight:900;
  font-size:16px;
}
@media(max-width:760px){
  .fixture-date-heading{padding:3px 7px!important}
  .fixture.fixture-card .fixture-top>span:first-child{padding:2px 5px!important}
  .cup-live-match{padding:7px 8px}
  .cup-live-score{gap:5px}
  .cup-live-score strong{font-size:11px}
  .cup-live-score span{font-size:14px;min-width:36px}
}

/* v2.63 — mobile Fixtures & Results filter placement */
@media(max-width:760px){
  .fixtures-page-head{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:5px!important;
    margin-bottom:0!important;
  }
  .fixtures-page-head>div{
    width:100%!important;
  }
  .fixtures-page-head .fixture-filter-toggle{
    width:100%!important;
    margin:3px 0 5px!important;
    justify-content:center!important;
    text-align:center!important;
    order:2!important;
  }
  .fixture-filter-bar{
    margin-top:0!important;
    margin-bottom:7px!important;
  }
  .fixture-filter-bar.filters-open{
    margin-bottom:9px!important;
  }
}

/* v2.63 — Documents auto-generated fixture sheets */
.auto-generate-docs{margin-bottom:14px}
.auto-generate-docs h2{margin:4px 0 5px}
.auto-doc-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.auto-team-doc{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px;align-items:end;margin-top:10px}
.auto-team-doc label{margin:0}
.auto-team-doc select{width:100%}
@media(max-width:700px){
  .auto-doc-actions .button{flex:1 1 100%;text-align:center}
  .auto-team-doc{grid-template-columns:1fr}
  .auto-team-doc button{width:100%}
}

/* v2.63 — three clear printable-document choices */
.auto-doc-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.auto-doc-card{
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px;
  background:#fff;
  display:flex;
  flex-direction:column;
  min-width:0;
}
.auto-doc-card.primary-auto-doc{
  border:2px solid #173f70;
  background:#f7fbff;
}
.auto-doc-card .document-icon{
  font-size:22px;
  margin-bottom:5px;
}
.auto-doc-card h3{
  margin:0 0 5px;
  font-size:15px;
}
.auto-doc-card p{
  margin:0 0 10px;
  font-size:11px;
  line-height:1.35;
  color:#5c6d76;
}
.auto-doc-card .button,
.auto-doc-card button{
  margin-top:auto;
}
.auto-doc-card .auto-team-doc{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-top:auto;
}
.auto-doc-card .auto-team-doc label{
  width:100%;
}
.auto-doc-card .auto-team-doc select{
  width:100%;
}
@media(max-width:800px){
  .auto-doc-card-grid{grid-template-columns:1fr}
}

/* v2.63 — live Singles / Pairs knockout desk */
.tournament-entrant-tools{display:flex;gap:7px;align-items:center;margin:0 0 7px;flex-wrap:wrap}
.tournament-entrant-tools input{flex:1 1 220px}
.tournament-player-picker{border:1px solid var(--line);border-radius:9px;max-height:410px;overflow:auto;background:#fff}
.tournament-player-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 9px;border-bottom:1px solid var(--line);margin:0}
.tournament-player-row:last-child{border-bottom:0}.tournament-player-row>span{display:flex;flex-direction:column;min-width:0}.tournament-player-row small{color:#667680}
.tournament-player-row em{font-style:normal;display:flex;gap:5px;align-items:center;font-size:11px;font-weight:800}
.pair-builder{display:grid;gap:6px;margin-bottom:7px}.pair-row{display:grid;grid-template-columns:60px minmax(130px,1fr) auto minmax(130px,1fr) auto auto;gap:6px;align-items:center;padding:7px;border:1px solid var(--line);border-radius:8px}
.pair-number{font-weight:900}.pair-paid{display:flex;gap:4px;align-items:center;margin:0}
.compact-result{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;gap:6px;align-items:end;margin-top:8px}
.compact-result label{margin:0;font-size:9px}.compact-result input{min-height:34px}.compact-result>strong{padding-bottom:8px}
.board-edit{display:flex;gap:6px;align-items:center;margin:7px 0 0;font-size:10px;font-weight:900}.board-edit select{width:auto;min-width:92px}
.tournament-live-note{margin-bottom:10px}.public-tournament-header{max-width:1180px;margin:10px auto;display:flex;justify-content:space-between;align-items:center;padding:0 12px}
#public-tournament-app{max-width:1180px;margin:0 auto;padding:0 12px 30px}.public-tournament-title h1{margin:4px 0}.live-dot{font-size:10px;font-weight:900;color:#1d6e2b;background:#e7f6e9;border:1px solid #acd7b2;padding:3px 7px;border-radius:999px}
@media(max-width:760px){
 .pair-row{grid-template-columns:1fr 1fr}.pair-row .pair-number,.pair-row .pair-paid,.pair-row button{grid-column:auto}
 .compact-result{grid-template-columns:1fr 24px 1fr}.compact-result button{grid-column:1/-1}
 .tournament-player-row{grid-template-columns:auto minmax(0,1fr);}.tournament-player-row em{grid-column:2}
}

/* v2.63 — competition access + reusable manual player lists */
.competition-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.competition-generator-card{border:2px solid #173f70!important;background:#f7fbff}
.manual-player-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.manual-player-panel{border:1px solid var(--line);border-radius:9px;padding:10px;background:#f8fafb}
.manual-player-panel h4{margin:0 0 4px}.manual-player-panel textarea{width:100%}
.manual-player-list{max-height:260px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:7px}
.manual-player-list>label{display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;padding:6px 7px;margin:0;border-bottom:1px solid var(--line)}
.manual-player-list>label:last-child{border-bottom:0}.manual-player-list em{font-style:normal;display:flex;gap:4px;align-items:center;font-size:10px;font-weight:800}
.manual-save-choice{display:flex!important;align-items:center;gap:6px;margin:7px 0!important;font-size:10px}
@media(max-width:800px){.competition-menu-grid{grid-template-columns:1fr}.manual-player-tools{grid-template-columns:1fr}}

/* v2.63 — Cups top-menu dropdown + competition hub */
#nav .nav-dropdown{
  position:relative;
  display:flex;
  align-items:stretch;
}
#nav .nav-dropdown details{
  position:relative;
}
#nav .nav-dropdown summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:5px;
  height:100%;
  padding:0 12px;
  font:inherit;
  font-weight:800;
  color:inherit;
  user-select:none;
}
#nav .nav-dropdown summary::-webkit-details-marker{display:none}
#nav .nav-dropdown.active summary,
#nav .nav-dropdown summary:hover{
  color:var(--lime);
}
#nav .nav-dropdown-menu{
  position:absolute;
  z-index:100;
  top:calc(100% + 1px);
  left:0;
  min-width:220px;
  padding:6px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  box-shadow:0 10px 28px rgba(0,0,0,.16);
}
#nav .nav-dropdown-menu a{
  display:block;
  padding:8px 9px;
  border-radius:6px;
  color:#182832;
  font-size:12px;
  font-weight:800;
  text-decoration:none;
}
#nav .nav-dropdown-menu a:hover,
#nav .nav-dropdown-menu a:focus{
  background:#eef5fb;
  color:#174c82;
}
#nav .nav-dropdown-menu .nav-generator-link{
  margin-top:4px;
  border-top:1px solid var(--line);
  border-radius:0 0 6px 6px;
  padding-top:10px;
  color:#173f70;
}
.competition-menu-grid{
  margin-top:8px;
}
.competition-menu-grid .panel{
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.competition-menu-grid .panel:hover{
  border-color:#8fb5d7;
  transform:translateY(-1px);
}
.competition-focus{
  border:2px solid #173f70!important;
  box-shadow:0 0 0 3px rgba(23,63,112,.10)!important;
}
@media(max-width:760px){
  #nav .nav-dropdown{
    width:100%;
    display:block;
  }
  #nav .nav-dropdown details{
    width:100%;
  }
  #nav .nav-dropdown summary{
    width:100%;
    min-height:42px;
    justify-content:space-between;
    padding:8px 10px;
  }
  #nav .nav-dropdown-menu{
    position:static;
    min-width:0;
    width:100%;
    margin:2px 0 5px;
    box-shadow:none;
    border-radius:7px;
  }
  #nav .nav-dropdown-menu a{
    padding:9px 10px;
  }
}

/* v2.63 — clearer tournament setup, named player lists and player-source chooser */
.tournament-calendar-empty{border:1px solid var(--line);border-radius:8px;padding:9px;background:#f8fafb}
.tournament-calendar-empty p{margin:3px 0 0}
.tournament-source-select select{font-weight:800}
.saved-list-manager{margin-top:8px;border-top:1px solid var(--line);padding-top:12px}
.saved-list-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.saved-list-grid>section{border:1px solid var(--line);border-radius:9px;padding:10px;background:#f8fafb}
.saved-list-grid h4,.tournament-oneoff h4,.oneoff-selected h4{margin:0 0 5px}
.tournament-oneoff{margin-top:10px}
.oneoff-selected{margin-top:10px}
@media(max-width:760px){.saved-list-grid{grid-template-columns:1fr}}

/* v2.63 — simplified Competition Generator */
.tournament-player-list-choice{margin:2px 0 5px}.player-list-choice-head{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:10px;align-items:end}.player-list-actions{justify-content:flex-end}
.saved-list-editor{margin-top:9px;border:1px solid var(--line);border-radius:9px;padding:10px;background:#f8fafb}.saved-list-editor h3{margin:0 0 3px}
.entrant-search-box{border:1px solid var(--line);border-radius:9px;padding:10px;background:#f8fafb}.entrant-search-results{display:grid;gap:4px;margin:5px 0 8px;max-height:280px;overflow:auto}
.entrant-search-result{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;background:#fff;color:#162731;border:1px solid var(--line);border-radius:6px;padding:7px 9px}.entrant-search-result:hover,.entrant-search-result:focus{border-color:#173f70;background:#eef5fb}.entrant-search-result span{font-size:10px;font-weight:900;color:#174c82}.entrant-search-empty{padding:4px 2px;margin:0}
.confirmed-entrants{margin-top:10px}.confirmed-entrant-list{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.confirmed-entrant-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:7px 9px;border-bottom:1px solid var(--line)}.confirmed-entrant-row:last-child{border-bottom:0}.confirmed-entrant-row>span{display:flex;flex-direction:column}.confirmed-entrant-row small{color:#687983}.confirmed-entrant-row label{display:flex;align-items:center;gap:5px;margin:0;font-size:10px;font-weight:800}
@media(max-width:760px){.player-list-choice-head{grid-template-columns:1fr}.player-list-actions{justify-content:flex-start}.confirmed-entrant-row{grid-template-columns:minmax(0,1fr) auto}.confirmed-entrant-row button{grid-column:1/-1}}

/* v2.63 — fast app shell + competition loading state */
.app-starting{min-height:42vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;color:#173f70}
.app-starting img{width:72px;height:72px;object-fit:contain}
.app-starting strong{font-size:18px;letter-spacing:.05em}
.app-starting span{font-size:11px;color:#667782}
.competition-loading{min-height:180px;display:flex;flex-direction:column;justify-content:center}

/* v2.63 — compact TV-style knockout bracket */
.tournament-top-tools{margin-top:0}
.compact-tournament-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px}
.compact-tournament-heading h2,.compact-tournament-heading h1{margin:2px 0 4px}
.compact-tournament-heading p{margin:0}
.picker-card{cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:8px}
.picker-card input{cursor:pointer;width:100%}
.semi-board-fields{border:1px solid var(--line);border-radius:8px;padding:7px}
.semi-board-fields>span{display:block;font-size:10px;font-weight:800;margin-bottom:5px}
.semi-board-fields>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.semi-board-fields label{margin:0;font-size:9px}
.tournament-bracket-section{margin-top:10px}
.bracket-tv-scroll{overflow:auto;padding:2px 2px 10px}
.true-bracket{display:flex;gap:28px;min-width:max-content;min-height:calc(var(--base-matches) * 54px + 34px)}
.true-bracket-round{width:220px;flex:0 0 220px}
.true-bracket-round>h3{text-align:center;margin:0 0 5px;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.true-bracket-stage{position:relative;height:calc(var(--base-matches) * 54px);min-height:108px}
.bracket-match{position:absolute;left:0;right:0;transform:translateY(-50%);background:#fff;border:1px solid #8fa1ac;border-radius:6px;overflow:visible;box-shadow:0 1px 2px rgba(0,0,0,.05);margin:0}
.bracket-match:after{content:"";position:absolute;right:-29px;top:50%;width:29px;border-top:1px solid #8fa1ac}
.true-bracket-round:last-child .bracket-match:after{display:none}
.bracket-match.match-live{border:2px solid #2f73b7;background:#f7fbff}
.bracket-match.match-done{border-color:#79a66a;background:#f7fbf5}
.bracket-match-head{display:flex;justify-content:space-between;gap:5px;background:#e9eef1;padding:2px 5px;font-size:7px;font-weight:800;line-height:1.1}
.bracket-match-head b{color:#173f70}
.bracket-player{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:4px;align-items:center;min-height:20px;padding:2px 4px;border-top:1px solid #dce3e7;font-size:8px;line-height:1.05}
.bracket-player span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bracket-player strong{font-size:10px;text-align:center}
.bracket-player.winner{font-weight:900;background:#eaf6e6}
.bracket-player select{width:34px;min-width:34px;min-height:20px;padding:0 2px;font-size:9px;font-weight:900}
.bracket-match-foot{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px;align-items:center;padding:2px 4px;border-top:1px solid #dce3e7;font-size:6.5px;color:#5c6d76;line-height:1.1}
.bracket-match-foot button{padding:2px 6px;min-height:22px;font-size:8px}
.bracket-board-select{min-width:66px;max-width:84px;min-height:22px;padding:1px 3px;font-size:7px}
.tournament-queue-strip{margin:7px 0;padding:6px 9px;border:1px solid #b8c8d3;border-radius:7px;background:#f3f7fa;font-size:9px}
.compact-champion{padding:7px 10px;margin:7px 0}.compact-champion h2{margin:1px 0;font-size:18px}
.public-update-time{text-align:right;margin-top:5px}
@media(min-width:1200px){
 .true-bracket-round{width:205px;flex-basis:205px}
 .true-bracket{gap:24px}
 .bracket-match:after{right:-25px;width:25px}
}
@media(max-width:760px){
 .compact-tournament-heading{align-items:flex-start;flex-direction:column}
 .true-bracket-round{width:205px;flex-basis:205px}
 .true-bracket{gap:24px}
 .bracket-match:after{right:-25px;width:25px}
 .semi-board-fields>div{grid-template-columns:1fr 1fr}
}

/* v2.63 — clearer knockout bracket spacing and score controls */
.bracket-tv-scroll{padding:8px 8px 18px}
.true-bracket{
  gap:42px;
  min-height:calc(var(--base-matches) * 92px + 42px);
}
.true-bracket-round{
  width:300px;
  flex:0 0 300px;
}
.true-bracket-round>h3{
  margin:0 0 8px;
  font-size:12px;
}
.true-bracket-stage{
  height:calc(var(--base-matches) * 92px);
  min-height:184px;
}
.bracket-match{
  border-radius:8px;
  min-height:78px;
  overflow:visible;
  box-shadow:0 2px 5px rgba(0,0,0,.08);
}
.bracket-match:after{
  right:-43px;
  width:43px;
}
.bracket-match-head{
  min-height:20px;
  align-items:center;
  padding:4px 7px;
  font-size:9px;
}
.bracket-player{
  grid-template-columns:minmax(0,1fr) 52px;
  min-height:27px;
  gap:8px;
  padding:3px 7px;
  font-size:11px;
}
.bracket-player span{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  padding-right:4px;
}
.bracket-player strong{
  font-size:12px;
}
.bracket-player select{
  width:52px;
  min-width:52px;
  min-height:27px;
  padding:2px 20px 2px 7px;
  font-size:11px;
  background-position:right 5px center;
  background-size:12px 12px;
}
.bracket-match-foot{
  grid-template-columns:92px minmax(0,1fr) 58px;
  min-height:29px;
  gap:7px;
  padding:4px 7px;
  font-size:8px;
}
.bracket-match-foot button{
  display:block;
  width:58px;
  min-width:58px;
  min-height:26px;
  padding:4px 6px;
  font-size:9px;
}
.bracket-board-select{
  width:92px;
  min-width:92px;
  max-width:92px;
  min-height:26px;
  padding:2px 22px 2px 6px;
  font-size:9px;
  background-position:right 5px center;
  background-size:12px 12px;
}
.bracket-match.match-bye{
  border-style:dashed;
  background:#f4f6f5;
  opacity:.85;
}
.bracket-match.match-bye .bracket-player:first-of-type{
  font-weight:800;
}
@media(min-width:1200px){
  .true-bracket-round{width:300px;flex-basis:300px}
  .true-bracket{gap:42px}
  .bracket-match:after{right:-43px;width:43px}
}
@media(max-width:760px){
  .true-bracket-round{width:280px;flex-basis:280px}
  .true-bracket{gap:34px}
  .bracket-match:after{right:-35px;width:35px}
}

/* v2.63 — tournament library states */
.tournament-top-tools .inline-links{align-items:flex-end}
.tournament-top-tools label{min-width:190px;margin:0}
.tournament-top-tools label select{display:block;width:100%;margin-top:3px}
.tournament-list-summary{margin:-12px 0 14px}
@media(max-width:760px){
 .tournament-top-tools .inline-links{width:100%}
 .tournament-top-tools label{width:100%;min-width:0}
 .tournament-top-tools label select{width:100%}
}

/* v2.63 — fully separated bracket cards */
.bracket-tv-scroll{
  padding:10px 10px 24px;
}
.true-bracket{
  gap:46px;
  min-height:calc(var(--base-matches) * 150px + 54px);
}
.true-bracket-round{
  width:350px;
  flex:0 0 350px;
}
.true-bracket-round>h3{
  margin:0 0 10px;
  font-size:13px;
}
.true-bracket-stage{
  height:calc(var(--base-matches) * 150px);
  min-height:300px;
}
.bracket-match{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  min-height:112px;
  border-radius:9px;
  background:#fff;
}
.match-id-rail{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  padding:4px 2px;
  border-right:1px solid #cfd8dd;
  border-radius:8px 0 0 8px;
  background:#e8eef2;
  color:#173f70;
  font-size:10px;
  font-weight:900;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  letter-spacing:.04em;
}
.bracket-match-body{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.bracket-match-head{
  justify-content:flex-end;
  min-height:24px;
  padding:5px 8px;
  font-size:9px;
}
.bracket-match-head b{
  white-space:nowrap;
}
.bracket-player{
  grid-template-columns:minmax(0,1fr) 58px;
  min-height:31px;
  padding:4px 8px;
  gap:10px;
  font-size:12px;
}
.bracket-player span{
  min-width:0;
  padding-right:2px;
}
.bracket-player select{
  width:58px;
  min-width:58px;
  min-height:30px;
  padding:3px 22px 3px 8px;
  background-position:right 6px center;
  background-size:12px 12px;
}
.bracket-match-foot{
  grid-template-columns:104px minmax(0,1fr) 68px;
  min-height:34px;
  padding:5px 8px;
  gap:8px;
  font-size:8.5px;
}
.bracket-match-foot button{
  width:68px;
  min-width:68px;
  min-height:28px;
  padding:4px 7px;
  font-size:9px;
}
.bracket-board-select{
  width:104px;
  min-width:104px;
  max-width:104px;
  min-height:28px;
  padding:3px 24px 3px 7px;
  font-size:9px;
  background-position:right 6px center;
  background-size:12px 12px;
}
.bracket-match:after{
  right:-47px;
  width:47px;
}
.bracket-match.match-live .match-id-rail{
  background:#dcecff;
}
.bracket-match.match-done .match-id-rail{
  background:#e5f2e0;
}
.bracket-match.match-bye .match-id-rail{
  background:#ecefee;
}
@media(min-width:1200px){
  .true-bracket-round{width:350px;flex-basis:350px}
  .true-bracket{gap:46px}
  .bracket-match:after{right:-47px;width:47px}
}
@media(max-width:760px){
  .true-bracket-round{width:320px;flex-basis:320px}
  .true-bracket{gap:38px}
  .bracket-match:after{right:-39px;width:39px}
}

/* v2.63 — standard two-to-one bracket connectors + TV density */
.true-bracket{
  position:relative;
  display:flex;
  gap:42px;
  min-height:calc(var(--base-matches) * var(--match-step) + 34px);
}
.true-bracket-round{
  position:relative;
  z-index:2;
  width:310px;
  flex:0 0 310px;
}
.true-bracket-stage{
  height:calc(var(--base-matches) * var(--match-step));
  min-height:0;
}
.bracket-connectors{
  position:absolute;
  left:0;
  z-index:1;
  overflow:visible;
  pointer-events:none;
}
.bracket-connectors path{
  fill:none;
  stroke:#8fa1ac;
  stroke-width:1.3;
  vector-effect:non-scaling-stroke;
}
.bracket-match{
  min-height:88px;
}
.bracket-match:after{
  display:none!important;
}
.match-id-rail{
  min-width:30px;
}
.bracket-player{
  min-height:25px;
  padding:3px 7px;
  font-size:11px;
}
.bracket-player select{
  min-height:26px;
}
.bracket-match-head{
  min-height:20px;
  padding:3px 7px;
}
.bracket-match-foot{
  min-height:28px;
  padding:3px 7px;
}
.bracket-match-foot button{
  min-height:24px;
}
.bracket-board-select{
  min-height:25px;
}
@media(max-width:760px){
  .true-bracket-round{width:310px;flex-basis:310px}
  .true-bracket{gap:42px}
}

/* v2.63 — readable scrolling bracket; no card overlap */
.bracket-tv-scroll{
  overflow:auto;
  padding:12px 12px 30px;
}
.true-bracket{
  align-items:flex-start;
}
.true-bracket-stage{
  overflow:visible;
}
.bracket-match{
  min-height:112px;
  height:auto;
  box-shadow:0 2px 7px rgba(17,30,38,.10);
}
.bracket-match-body{
  min-height:110px;
}
.bracket-player{
  min-height:29px;
  padding:4px 8px;
  font-size:12px;
}
.bracket-player select{
  min-height:29px;
}
.bracket-match-head{
  min-height:23px;
  padding:4px 8px;
}
.bracket-match-foot{
  min-height:33px;
  padding:5px 8px;
}
.bracket-match-foot button{
  min-height:28px;
}
.bracket-board-select{
  min-height:28px;
}

/* Light round colouring for quick scanning on a shared screen. */
.true-bracket-round:nth-child(2) .bracket-match{
  border-top:3px solid #2f73b7;
}
.true-bracket-round:nth-child(3) .bracket-match{
  border-top:3px solid #6f9f3a;
}
.true-bracket-round:nth-child(4) .bracket-match{
  border-top:3px solid #8d67b2;
}
.true-bracket-round:nth-child(5) .bracket-match,
.true-bracket-round:last-child .bracket-match{
  border-top:3px solid #c28a2d;
}
.true-bracket-round:nth-child(2)>h3{color:#245f98}
.true-bracket-round:nth-child(3)>h3{color:#557d2d}
.true-bracket-round:nth-child(4)>h3{color:#735094}
.true-bracket-round:nth-child(5)>h3,
.true-bracket-round:last-child>h3{color:#91651e}

/* Preserve semantic live/completed states over round tinting. */
.bracket-match.match-live{
  border-left:2px solid #2f73b7;
  border-right:2px solid #2f73b7;
  border-bottom:2px solid #2f73b7;
}
.bracket-match.match-done{
  border-left:1px solid #79a66a;
  border-right:1px solid #79a66a;
  border-bottom:1px solid #79a66a;
}

/* v2.63 — match-local validation; never throw the organiser to page top */
.match-inline-error{
  margin:5px 7px 7px;
  padding:6px 8px;
  border:1px solid #c83f3f;
  border-radius:5px;
  background:#fff0ef;
  color:#8d2222;
  font-size:9px;
  font-weight:800;
  line-height:1.25;
}
.match-inline-error[hidden]{display:none}

/* v2.63 — bracket zoom + called/next-match attention state */
.tournament-view-tools{align-items:flex-end}
.tournament-view-tools label,
.public-live-tools label{margin:0;font-size:9px;font-weight:800}
.tournament-view-tools select,
.public-live-tools select{min-width:78px;margin-top:2px}
.public-live-tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap}

.bracket-match.match-called{
  border:3px solid #d49317!important;
  background:#fff8df;
  box-shadow:0 0 0 0 rgba(212,147,23,.45);
  animation:sdlCalledPulse 1.3s ease-in-out infinite;
}
.bracket-match.match-called .match-id-rail{
  background:#ffe8a8;
  color:#714b00;
}
.bracket-match.match-called .bracket-match-head{
  background:#fff0bd;
}
.bracket-match.match-called .bracket-match-head b{
  color:#8a5900;
}
.bracket-match.match-called [data-in-play]{
  background:#173f70;
  color:#fff;
  min-width:68px;
}
@keyframes sdlCalledPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(212,147,23,.25)}
  50%{box-shadow:0 0 0 7px rgba(212,147,23,.16)}
}
@media(prefers-reduced-motion:reduce){
  .bracket-match.match-called{animation:none}
}

/* v2.63 — simple active-board tournament flow */
.bracket-match.match-active{
  border:3px solid #d49317!important;
  background:#fff8df!important;
  box-shadow:0 0 0 0 rgba(212,147,23,.40);
  animation:sdlActiveBoardPulse 1.6s ease-in-out infinite;
}
.bracket-match.match-active .match-id-rail{
  background:#ffe8a8!important;
  color:#714b00!important;
}
.bracket-match.match-active .bracket-match-head{
  background:#fff0bd!important;
}
.bracket-match.match-active .bracket-match-head b{
  color:#8a5900!important;
}
@keyframes sdlActiveBoardPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(212,147,23,.18)}
  50%{box-shadow:0 0 0 6px rgba(212,147,23,.11)}
}
@media(prefers-reduced-motion:reduce){
  .bracket-match.match-active{animation:none}
}
/* Retire the old separate called/in-play visual states. */
.bracket-match.match-called{animation:none}

/* v2.63 — revise live competition board count */
.tournament-revise-setup{
  margin-top:10px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
}
.tournament-revise-setup>div:first-child{max-width:720px}
.tournament-revise-setup strong{display:block;font-size:14px;margin-top:2px}
.tournament-revise-setup p{margin:4px 0 0}
.tournament-revise-setup label{margin:0;min-width:110px;font-size:9px;font-weight:800}
.tournament-revise-setup select{margin-top:3px;min-width:90px}
@media(max-width:760px){
  .tournament-revise-setup{align-items:stretch;flex-direction:column}
  .tournament-revise-setup .inline-links{align-items:flex-end}
}

/* v2.63 — shareable bracket-only public view */
.tournament-live-link-panel{
  margin-top:10px;
}
.tournament-live-link-panel strong{
  display:block;
  font-size:14px;
  margin-top:2px;
}
.tournament-live-link-panel p{
  margin:4px 0 10px;
}
.tournament-live-link-controls{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}
.tournament-live-link-controls input{
  margin:0;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:11px;
}
#copy-live-status{
  margin-top:6px;
  min-height:16px;
}

.public-bracket-only-page{
  margin:0;
  background:#f4f6f7;
}
.public-bracket-only-app{
  width:100%;
  max-width:none;
  margin:0;
  padding:0 10px 18px;
}
.public-bracket-strip{
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:8px 12px;
  margin:0 -10px 8px;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid #d8e0e4;
}
.public-bracket-strip h1{
  margin:1px 0 0;
  font-size:18px;
  line-height:1.1;
}
.public-bracket-strip p{
  margin:2px 0 0;
  font-size:10px;
  color:#5c6970;
}
.public-bracket-strip .eyebrow{
  font-size:8px;
}
.public-bracket-canvas{
  margin:0;
  padding:0;
}
.public-bracket-only-page .bracket-tv-scroll{
  padding-top:4px;
}
.public-bracket-only-page .true-bracket-round>h3{
  margin-top:0;
}
.public-bracket-winner{
  margin:8px 0;
}
@media(max-width:760px){
  .tournament-live-link-controls{grid-template-columns:1fr}
  .public-bracket-strip{
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
  }
}

/* v2.63 — compact competition controls + aligned generator header */
.competition-generator-header{
  padding-top:14px;
  padding-bottom:14px;
  gap:18px;
}
.competition-generator-header .brand-logo{
  width:58px;
  height:58px;
}
.competition-generator-header .brand{
  font-size:20px;
  flex:0 0 auto;
}
.competition-header-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.competition-header-actions .button,
.competition-header-actions button,
.competition-header-actions select{
  min-height:40px;
  height:40px;
  box-sizing:border-box;
}
.competition-header-actions .button,
.competition-header-actions button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
}
.competition-league-switch{
  margin-left:0;
  display:flex;
  align-items:center;
  gap:7px;
}
.competition-league-switch label{
  margin:0;
  font-size:9px;
  line-height:1.1;
  font-weight:800;
  white-space:nowrap;
}
.competition-league-switch select{
  padding-top:7px;
  padding-bottom:7px;
}

.tournament-master-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px 12px;
  align-items:end;
  margin:0 0 8px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.tournament-master-nav,
.tournament-master-actions{
  display:flex;
  align-items:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.tournament-master-nav label,
.tournament-master-actions label{
  margin:0;
  font-size:8px;
  font-weight:800;
}
.tournament-master-nav select,
.tournament-master-actions select{
  min-height:32px;
  padding:5px 22px 5px 7px;
  font-size:10px;
}
.tournament-master-toolbar button,
.tournament-master-toolbar .button{
  min-height:32px;
  padding:6px 9px;
  font-size:10px;
}
.tournament-master-url{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:auto minmax(200px,1fr) auto;
  align-items:center;
  gap:7px;
  padding-top:6px;
  border-top:1px solid var(--line);
}
.tournament-master-url>span{
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.tournament-master-url input{
  width:100%;
  min-height:30px;
  padding:5px 8px;
  margin:0;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:9px;
}
.tournament-master-url small{
  min-width:170px;
  font-size:8px;
  color:var(--muted);
}
.tournament-summary-heading{
  margin-bottom:7px;
}
.tournament-summary-heading .eyebrow{
  margin-bottom:3px;
}

/* Old separate panels are retired by v2.63. */
.tournament-live-link-panel,
.tournament-revise-setup{
  display:none!important;
}

@media(max-width:1050px){
  .competition-generator-header{
    align-items:flex-start;
    flex-direction:column;
  }
  .competition-header-actions{
    margin-left:0;
    width:100%;
    justify-content:flex-start;
  }
}
@media(max-width:760px){
  .competition-header-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }
  .competition-league-switch{
    grid-column:1/-1;
    align-items:stretch;
    flex-direction:column;
  }
  .competition-header-actions .button,
  .competition-header-actions button{
    width:100%;
  }
  .tournament-master-toolbar{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .tournament-master-actions{
    justify-content:flex-start;
  }
  .tournament-master-url{
    grid-template-columns:1fr;
  }
  .tournament-master-url small{
    min-width:0;
  }
}

/* v2.63 — robust toolbar selects + better mobile live bracket */
.tournament-master-toolbar{
  display:block;
  padding:10px 12px;
}
.tournament-master-primary{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  width:100%;
}
.tournament-master-nav,
.tournament-master-actions{
  flex-wrap:nowrap;
  gap:8px;
}
.tournament-master-nav{
  min-width:0;
  flex:1 1 auto;
}
.tournament-master-actions{
  flex:0 0 auto;
  justify-content:flex-end;
}
.tournament-master-nav label{
  min-width:175px;
}
.tournament-master-actions label{
  min-width:86px;
}
.tournament-master-nav select,
.tournament-master-actions select,
.public-live-tools select{width:100%;
  min-height:36px;
  height:36px;
  box-sizing:border-box;
  padding:6px 34px 6px 10px!important;
  font-size:11px;
  line-height:1.2;
  background-color:#fff;
}
.tournament-master-actions label:has(#bracket-zoom){min-width:92px}
.tournament-master-actions label:has(#active-board-count){min-width:92px}
.tournament-master-toolbar button,
.tournament-master-toolbar .button{
  min-height:36px;
  height:36px;
  padding:7px 11px;
  font-size:11px;
  white-space:nowrap;
}
.tournament-master-url{
  margin-top:8px;
  padding-top:8px;
}
.tournament-master-url input{
  min-height:34px;
  font-size:10px;
}

/* Ensure no select text is obscured by the platform dropdown arrow. */
.competition-league-switch select,
.bracket-board-select,
.bracket-player select{padding-right:34px!important;
}
.competition-league-switch select{
  min-width:210px;
}

/* Public bracket on phones: default smaller visual scale but retain legibility.
   Horizontal/vertical scrolling remains available for the full draw. */
@media(max-width:760px){
  .tournament-master-primary{
    display:grid;
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .tournament-master-nav,
  .tournament-master-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .tournament-master-nav label,
  .tournament-master-actions label{
    min-width:0;
    width:100%;
  }
  .tournament-master-nav button,
  .tournament-master-actions button,
  .tournament-master-actions .button{
    width:100%;
  }
  .tournament-master-nav label:first-of-type{
    grid-column:1/-1;
  }
  .public-bracket-only-app{
    padding:0 6px 14px;
  }
  .public-bracket-strip{
    position:sticky;
    top:0;
    z-index:30;
    margin:0 -6px 6px;
    padding:7px 8px;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:8px;
  }
  .public-bracket-strip>div:first-child{
    min-width:0;
  }
  .public-bracket-strip h1{
    font-size:16px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:62vw;
  }
  .public-bracket-strip p{
    font-size:9px;
    line-height:1.15;
  }
  .public-bracket-strip .eyebrow{
    display:none;
  }
  .public-live-tools{
    flex:0 0 auto;
    gap:5px;
  }
  .public-live-tools .live-dot{
    font-size:8px;
  }
  .public-live-tools label{
    font-size:8px;
    min-width:72px;
  }
  .public-live-tools select{
    min-width:72px;
    height:32px;
    min-height:32px;
    padding:4px 30px 4px 8px!important;
    font-size:10px;
  }
  .public-bracket-only-page .bracket-tv-scroll{
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    padding:4px 2px 16px;
  }
  .public-bracket-only-page .true-bracket-round{
    width:250px;
    flex-basis:250px;
  }
  .public-bracket-only-page .true-bracket{
    gap:30px;
  }
  .public-bracket-only-page .bracket-match{
    min-height:104px;
  }
  .public-bracket-only-page .bracket-player{
    grid-template-columns:minmax(0,1fr) 36px;
    min-height:27px;
    padding:4px 6px;
    font-size:11px;
  }
  .public-bracket-only-page .bracket-match-foot{
    grid-template-columns:70px minmax(0,1fr);
    gap:5px;
    min-height:31px;
    padding:5px 6px;
    font-size:8px;
  }
  .public-bracket-only-page .match-id-rail{
    min-width:30px;
  }
  .public-bracket-only-page .bracket-match.match-active{
    box-shadow:0 0 0 4px rgba(212,147,23,.12);
  }
}
@media(max-width:430px){
  .public-bracket-only-page .true-bracket-round{
    width:230px;
    flex-basis:230px;
  }
  .public-bracket-only-page .true-bracket{
    gap:26px;
  }
  .public-bracket-strip h1{
    max-width:54vw;
    font-size:15px;
  }
}

/* v2.63 — one dropdown arrow only, with safe text clearance */
.tournament-master-nav select,
.tournament-master-actions select,
.public-live-tools select,
.competition-league-switch select,
.bracket-board-select,
.bracket-player select{
  padding-right:36px!important;
  background-position:right 9px center!important;
  background-repeat:no-repeat!important;
}

/* v2.63 — friendly public route renders the actual live bracket */
.public-bracket-only-page{
  min-height:100vh;
  background:#f3f5f6!important;
  color:var(--ink);
}
.public-bracket-only-app{
  width:100%;
  max-width:none!important;
  margin:0!important;
  padding:0 8px 18px!important;
}
.public-bracket-canvas{
  width:100%;
  overflow:hidden;
}
.public-bracket-only-page .bracket-tv-scroll{
  width:100%;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
}
.public-bracket-only-page .bracket-match{
  background:#fff;
}
.public-bracket-only-page .bracket-match.match-active{
  background:#fff8df!important;
  border-color:#d49317!important;
}
.public-bracket-only-page .bracket-match.match-done{
  background:#f7fbf5!important;
}
.public-bracket-only-page .bracket-match-foot{
  background:#fff;
}
.public-bracket-only-page .bracket-match.match-active .bracket-match-foot{
  background:#fff8df;
}
@media(max-width:760px){
  .public-bracket-only-page .bracket-tv-scroll{
    border-radius:6px;
  }
  .public-bracket-only-page .true-bracket{
    min-width:max-content;
  }
}

/* v2.63 — definitive public bracket presentation */
.public-bracket-only-page{
  margin:0!important;
  padding:0!important;
  min-height:100vh;
  background:#f3f5f6!important;
}
.public-bracket-only-app{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0 8px 20px!important;
}
.public-bracket-strip{
  box-sizing:border-box;
  width:calc(100% + 16px);
}
.public-bracket-canvas{
  display:block;
  width:100%;
}
.public-bracket-only-page .bracket-tv-scroll{
  display:block;
  position:relative;
  width:100%;
  overflow:auto!important;
  background:#fff!important;
  border:1px solid #d8e0e4!important;
  border-radius:8px;
  box-sizing:border-box;
}
.public-bracket-only-page .true-bracket{
  position:relative;
}
.public-bracket-only-page .true-bracket-stage{
  position:relative;
}
.public-bracket-only-page .bracket-match{
  position:absolute;
}

/* v2.63 — player-list controls aligned + editor opens visibly */
.player-list-choice-head{
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) auto!important;
  gap:12px!important;
  align-items:end!important;
}
.player-list-choice-head>label{
  margin:0!important;
}
.player-list-actions{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-end!important;
  gap:7px!important;
  margin:0!important;
  padding-bottom:0!important;
}
.player-list-actions .small-button{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}
.saved-list-editor{
  scroll-margin-top:16px;
  box-shadow:0 0 0 3px rgba(23,63,112,.08);
}
@media(max-width:760px){
  .player-list-choice-head{
    grid-template-columns:1fr!important;
  }
  .player-list-actions{
    justify-content:flex-start!important;
    flex-wrap:wrap;
  }
}

/* v2.63 — per-tournament share controls */
.tournament-summary-heading{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
}
.tournament-summary-copy{
  min-width:0;
  flex:1 1 auto;
}
.tournament-summary-share{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
}
.tournament-summary-share button,
.tournament-summary-share .button{
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}
.tournament-summary-share small{
  flex-basis:100%;
  text-align:right;
  min-height:14px;
  color:var(--muted);
  font-size:9px;
}
@media(max-width:760px){
  .tournament-summary-heading{
    align-items:stretch!important;
    flex-direction:column!important;
  }
  .tournament-summary-share{
    width:100%;
    justify-content:flex-start;
  }
  .tournament-summary-share button,
  .tournament-summary-share .button{
    flex:1 1 140px;
  }
  .tournament-summary-share small{
    text-align:left;
  }
}

/* v2.63 — users and permissions */
.users-admin-page{max-width:1180px}.permission-list{display:grid;gap:10px}.permission-row,.permission-card-wrap{border:1px solid var(--line);border-radius:9px;padding:11px;background:#fff}.permission-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.permission-row div,.permission-card-head div{display:grid;gap:2px}.permission-row span,.permission-card-head span{font-size:11px;color:var(--muted)}.permission-row.locked{background:#f5f8fa}.permission-card{margin:0}.permission-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.compact-form-grid{align-items:end}.permission-card-actions{display:flex;gap:7px;justify-content:flex-end;margin-top:8px}.permission-card-actions form{margin:0}@media(max-width:760px){.permission-row{align-items:flex-start;flex-direction:column}.permission-card-actions{justify-content:flex-start;flex-wrap:wrap}}

/* v2.63 — simpler public Cups & competitions */
.public-cup-menu{align-items:stretch}
.public-cup-card{
  width:100%;
  min-height:170px;
  text-align:left;
  color:var(--ink);
  text-decoration:none;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:7px;
  cursor:pointer;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
button.public-cup-card{
  font:inherit;
  border:1px solid var(--line);
  border-radius:5px;
  padding:20px;
  background:#fff;
}
.public-cup-card h3,.public-cup-card p{margin:0}
.public-cup-card strong{margin-top:auto}
.public-cup-card:not(.is-pending):hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(17,30,38,.10);border-color:#9eabb3}
.public-cup-card:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.public-cup-card.is-pending{cursor:default;opacity:.72}
.cup-detail-head{margin-bottom:8px}
.cup-detail-head .team-back-link{margin-bottom:10px}
.cup-live-section>h2{margin-bottom:14px}
.cup-fixture-date{margin-bottom:22px}
.cup-fixture-date .fixture-date-title{margin-bottom:8px}
.cup-fixture-card .fixture-status{text-transform:none}
@media(max-width:700px){
  .public-cup-card{min-height:140px}
}

/* v2.63 — public cup navigation reliability + document score note */
.public-cup-card[data-cup-public]{
  cursor:pointer!important;
}
.public-cup-card[data-cup-public]::after{
  content:"";
  position:absolute;
  inset:0;
}
.public-cup-card[data-cup-public]{
  position:relative;
}
.documents-score-note{
  margin:6px 0 16px;
  padding:10px 12px;
  border-left:4px solid var(--lime);
  background:#f7f9f4;
  color:var(--ink);
}

/* v2.63 — cups simplification + documents */
.documents-score-note{margin:0 0 16px;padding:11px 13px;background:#f5f8ed;border-left:4px solid #91b82f;color:var(--ink)}
.public-cup-card[href]{text-decoration:none;color:inherit}

/* v2.63 — clickable document cards */
.document-card-link{
  display:flex;
  flex-direction:column;
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.document-card-link:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(17,30,38,.10);
  border-color:#9eabb3;
}
.document-card-link:focus-visible{
  outline:3px solid var(--ink);
  outline-offset:3px;
}
.document-card-link .document-open{
  margin-top:auto;
  pointer-events:none;
}


/* v3.00 — public team cup bracket */
.cup-bracket-panel{overflow:hidden;padding-bottom:10px}
.cup-bracket-panel .panel-head{margin-bottom:4px}
.cup-bracket-scroll{margin:0 -6px;padding:10px 6px 24px}
.team-cup-bracket{position:relative;display:flex;gap:42px;align-items:flex-start}
.team-cup-bracket .true-bracket-round{width:310px;flex:0 0 310px}
.team-cup-bracket .bracket-match{min-height:105px}
.team-cup-bracket .bracket-match-body{min-height:103px}
.team-cup-bracket .match-id-rail{font-size:8px;writing-mode:vertical-rl;transform:rotate(180deg);display:flex;align-items:center;justify-content:center}
.team-cup-bracket .bracket-match-foot{grid-template-columns:1fr 1fr;gap:8px}
.team-cup-bracket .bracket-match-foot span:last-child{text-align:right}
.team-cup-bracket .bracket-player.winner{background:#eef8e9;font-weight:900}
.team-cup-bracket .bracket-player.winner span:after{content:"  ✓";color:#4f7f35}
.team-cup-bracket .match-live{border:2px solid #2f73b7!important;background:#f7fbff!important}
.cup-detail-head p{max-width:760px;margin:4px 0 0}
@media(max-width:760px){
  .cup-bracket-panel{padding-left:8px;padding-right:8px}
  .team-cup-bracket .true-bracket-round{width:285px;flex-basis:285px}
  .team-cup-bracket{gap:38px}
}


/* v3.00 — dedicated public Knockout Cup tree.
   Kept separate from Competition Generator bracket CSS so the public draw
   always renders as a true left-to-right knockout tree. */
.cup-bracket-panel{overflow:hidden}
.cup-tree-scroll{
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  padding:12px 8px 24px;
  -webkit-overflow-scrolling:touch;
}
.cup-tree{
  position:relative;
  margin:0 auto;
}
.cup-tree-lines{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:visible;
}
.cup-tree-lines path{
  fill:none;
  stroke:#7f919c;
  stroke-width:2;
  vector-effect:non-scaling-stroke;
}
.cup-tree-round-title{
  position:absolute;
  top:0;
  z-index:3;
  text-align:center;
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#314751;
}
.cup-tree-match{
  position:absolute;
  z-index:2;
  overflow:hidden;
  background:#fff;
  border:1px solid #91a1aa;
  border-radius:8px;
  box-shadow:0 3px 9px rgba(17,30,38,.10);
}
.cup-tree-match.is-live{
  border:2px solid #2f73b7;
  background:#f7fbff;
}
.cup-tree-match.is-done{
  border-color:#79a66a;
  background:#fbfef9;
}
.cup-tree-match.is-bye{
  border-style:dashed;
  background:#f5f6f5;
}
.cup-tree-match-head{
  min-height:25px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:5px 8px;
  background:#e9eef1;
  font-size:9px;
  font-weight:900;
}
.cup-tree-match-head strong{
  color:#173f70;
  font-size:9px;
}
.cup-tree-team{
  min-height:31px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 28px;
  align-items:center;
  gap:8px;
  padding:5px 9px;
  border-top:1px solid #dce3e7;
  font-size:12px;
}
.cup-tree-team span{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.cup-tree-team b{
  text-align:center;
  font-size:13px;
}
.cup-tree-team.winner{
  background:#eaf6e6;
  font-weight:900;
}
.cup-tree-team.winner span:after{
  content:"  ✓";
  color:#4f7f35;
}
.cup-tree-match-foot{
  min-height:23px;
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding:4px 8px;
  border-top:1px solid #dce3e7;
  color:#60717a;
  font-size:8px;
}
.cup-tree-match-foot span:last-child{
  text-align:right;
}
@media(max-width:760px){
  .cup-bracket-panel{
    margin-left:-12px;
    margin-right:-12px;
    border-left:0;
    border-right:0;
    border-radius:0;
  }
  .cup-tree-scroll{padding-left:14px;padding-right:14px}
}


/* v3.00 — cleaner Super Admin header actions */
.admin-header-actions{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
  flex:0 0 auto;
}
.admin-options-menu{
  position:relative;
}
.admin-options-menu>summary{
  list-style:none;
  display:inline-flex;
  align-items:center;
  gap:7px;
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
}
.admin-options-menu>summary::-webkit-details-marker{display:none}
.admin-options-menu[open]>summary{
  background:#eef3f5;
  border-color:#8fa1ac;
}
.admin-options-panel{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  z-index:40;
  width:310px;
  padding:7px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  box-shadow:0 12px 30px rgba(17,30,38,.18);
}
.admin-options-panel a{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:10px 11px;
  border-radius:7px;
  color:var(--ink);
  text-decoration:none;
}
.admin-options-panel a:hover,
.admin-options-panel a:focus-visible{
  background:#f2f5f6;
  outline:none;
}
.admin-options-panel a strong{
  font-size:12px;
}
.admin-options-panel a span{
  font-size:10px;
  line-height:1.35;
  color:#65757d;
}
.admin-options-panel .admin-option-warning strong{color:#9a3026}
.admin-view-site{white-space:nowrap}
.admin-header-actions .admin-signout{margin:0}
.admin-header-actions .admin-signout button{white-space:nowrap}

@media(max-width:1100px){
  body[data-organiser="true"]>header{
    flex-wrap:wrap;
    align-items:center;
    gap:8px 10px;
  }
  body[data-organiser="true"]>header .league-switch{
    margin-left:auto;
  }
  .admin-header-actions{
    width:100%;
    justify-content:flex-end;
    border-top:1px solid rgba(255,255,255,.14);
    padding-top:8px;
  }
}
@media(max-width:700px){
  body[data-organiser="true"]>header .league-switch{
    order:3;
    width:100%;
    margin-left:0;
  }
  body[data-organiser="true"]>header .league-switch select{
    width:100%;
  }
  .admin-header-actions{
    order:4;
    justify-content:flex-start;
    flex-wrap:wrap;
  }
  .admin-header-actions>a,
  .admin-header-actions .admin-options-menu>summary,
  .admin-header-actions .admin-signout button{
    min-height:38px;
  }
  .admin-options-panel{
    position:fixed;
    left:12px;
    right:12px;
    top:auto;
    width:auto;
    max-width:none;
  }
}

/* v3.00 — independent league/team/competition permission groups */
.permission-group{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f7f9fa}
.permission-group>strong{display:block;margin-bottom:3px}
.permission-group>.small{display:block;margin-bottom:8px}
.permission-ticks{display:flex;flex-wrap:wrap;gap:8px 18px}
.permission-ticks .check-label{margin:0}

/* v3.00 — routine user access first; higher league-admin access last */
.permission-group-admin{margin-top:6px;border-color:#d7b76a;background:#fffaf0}
.permission-group-admin>strong{color:#6f5114}
.permission-group-competition{background:#f6f8fa}


/* v3.00 — team captain / vice-captain profiles and scorer access */
.team-officers{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  align-self:stretch;
}
.team-officer-panel{min-width:0}
.team-officer-panel .captain-placeholder{font-size:16px}
.team-officer-admin-section{
  margin-top:6px;
  padding:10px 12px 6px;
  border-top:1px solid var(--line);
}
.team-officer-admin-section h3{margin:0 0 3px}
.team-officer-admin-section p{margin:0}
@media(max-width:800px){
  .team-officers{grid-template-columns:1fr}
}

/* v3.00 compact existing users */
.permission-accordion{display:grid;gap:7px}.permission-user-row{border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}.permission-user-row>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;cursor:pointer}.permission-user-row>summary::-webkit-details-marker{display:none}.permission-user-row[open]>summary{background:#f5f7f8;border-bottom:1px solid var(--line)}.permission-user-main{min-width:0;display:grid;gap:2px}.permission-user-main strong{font-size:14px}.permission-user-main small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.permission-user-status{display:flex;align-items:center;gap:10px}.permission-user-status>b{font-size:20px;transition:transform .15s ease}.permission-user-row[open] .permission-user-status>b{transform:rotate(90deg)}.permission-user-editor{padding:12px}.permission-user-secondary{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.permission-user-secondary form{margin:0}.permission-last-login{margin:9px 0 0}@media(max-width:650px){.permission-user-main small{white-space:normal}.permission-user-secondary form,.permission-user-secondary button{width:100%}}


/* v3.00 — rebalance public team header for Captain + Vice-captain */
@media(min-width:901px){
  .team-profile-hero{
    grid-template-columns:minmax(0, .82fr) minmax(520px, 1.18fr);
  }
  .team-profile-main{
    min-width:0;
  }
  .team-profile-facts{
    grid-template-columns:minmax(0,1.25fr) minmax(105px,.75fr);
    max-width:340px;
  }
  .team-officers{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    background:#145ba1;
  }
  .team-officer-panel{
    grid-template-columns:70px minmax(0,1fr);
    gap:12px;
    padding:16px 15px;
    align-content:center;
  }
  .team-officer-panel + .team-officer-panel{
    border-left:1px solid rgba(255,255,255,.28);
  }
  .team-officer-panel .team-captain-photo,
  .team-officer-panel .captain-placeholder{
    width:66px;
    height:66px;
  }
  .team-officer-panel .team-captain-copy strong{
    font-size:18px;
    line-height:1.15;
  }
  .team-officer-panel .captain-contact-actions{
    flex-wrap:nowrap;
    gap:5px;
  }
  .team-officer-panel .captain-contact-action{
    flex:1 1 0;
    min-width:0;
    padding:5px 7px;
    white-space:nowrap;
  }
}
@media(min-width:761px) and (max-width:900px){
  .team-profile-hero{grid-template-columns:1fr}
  .team-officers{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-officer-panel + .team-officer-panel{border-left:1px solid rgba(255,255,255,.24)}
}


/* v3.00 — team page: full-width team card above horizontal officer strip */
.team-profile-hero{
  display:block;
  overflow:hidden;
}
.team-profile-main{
  width:100%;
}
.team-profile-main.has-venue-image{
  padding-right:220px;
  min-height:210px;
}
.team-venue-photo-wrap{
  top:18px;
  right:20px;
  width:190px;
  height:150px;
  border-radius:12px;
}
.team-profile-facts{
  max-width:520px;
  grid-template-columns:minmax(0,1fr) minmax(120px,.55fr);
}
.team-profile-facts>div:first-child{
  min-width:0;
}
.team-officers{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  width:100%;
  background:#145ba1;
  border-top:1px solid rgba(255,255,255,.22);
}
.team-officer-panel{
  min-width:0;
  grid-template-columns:76px minmax(0,1fr);
  gap:14px;
  padding:18px 24px;
  align-items:center;
  background:#145ba1;
}
.team-officer-panel + .team-officer-panel{
  border-left:1px solid rgba(255,255,255,.36);
}
.team-officer-panel .team-captain-photo,
.team-officer-panel .captain-placeholder{
  width:72px;
  height:72px;
}
.team-officer-panel .team-captain-copy{
  min-width:0;
}
.team-officer-panel .team-captain-copy strong{
  font-size:19px;
  line-height:1.15;
  white-space:normal;
}
.team-officer-panel .captain-contact-actions{
  display:flex;
  flex-wrap:nowrap;
  gap:7px;
  margin-top:7px;
}
.team-officer-panel .captain-contact-action{
  flex:0 1 auto;
  min-width:96px;
  white-space:nowrap;
  padding:6px 12px;
}

@media(max-width:900px){
  .team-profile-main.has-venue-image{
    padding-right:160px;
    min-height:185px;
  }
  .team-venue-photo-wrap{
    width:132px;
    height:110px;
  }
  .team-profile-facts{
    max-width:430px;
  }
  .team-officer-panel{
    padding:16px 18px;
  }
}
@media(max-width:760px){
  .team-profile-main.has-venue-image{
    padding-right:96px;
    min-height:0;
  }
  .team-venue-photo-wrap{
    top:14px;
    right:14px;
    width:72px;
    height:72px;
  }
  .team-profile-facts{
    max-width:none;
    grid-template-columns:1fr 1fr;
  }
  .team-officers{
    grid-template-columns:1fr;
  }
  .team-officer-panel + .team-officer-panel{
    border-left:0;
    border-top:1px solid rgba(255,255,255,.28);
  }
  .team-officer-panel{
    grid-template-columns:58px minmax(0,1fr);
    padding:13px 14px;
  }
  .team-officer-panel .team-captain-photo,
  .team-officer-panel .captain-placeholder{
    width:54px;
    height:54px;
  }
}
@media(max-width:480px){
  .team-profile-facts{grid-template-columns:1fr}
  .team-officer-panel .captain-contact-actions{flex-wrap:wrap}
  .team-officer-panel .captain-contact-action{min-width:0}
}


/* v3.00 — installed-app update prompt */
.app-update-banner{
  position:fixed;
  left:50%;
  bottom:16px;
  z-index:9999;
  width:min(620px,calc(100% - 24px));
  transform:translate(-50%,calc(100% + 40px));
  opacity:0;
  pointer-events:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  border-radius:12px;
  background:#111e26;
  color:#fff;
  box-shadow:0 12px 34px rgba(0,0,0,.28);
  transition:transform .2s ease,opacity .2s ease;
}
.app-update-banner.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.app-update-banner>div{display:grid;gap:2px}
.app-update-banner strong{font-size:14px}
.app-update-banner span{font-size:11px;color:rgba(255,255,255,.75)}
.app-update-banner button{flex:0 0 auto;background:var(--accent-lime,#d0f267);color:#111e26;border-color:transparent;white-space:nowrap}
@media(max-width:560px){
  .app-update-banner{align-items:stretch;flex-direction:column}
  .app-update-banner button{width:100%}
}

/* v3.00 — Competition Generator live announcement */
.tournament-broadcast-panel{margin-top:10px}
.tournament-broadcast-controls{display:flex;gap:8px;align-items:center}
.tournament-broadcast-controls input{flex:1;min-width:180px}
.tournament-current-broadcast{margin:8px 0 0}
@media(max-width:700px){
  .tournament-broadcast-controls{flex-wrap:wrap}
  .tournament-broadcast-controls input{flex:1 0 100%}
}

/* v3.00 — public tournament announcement popup */
.tournament-announcement-popup{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(17,30,38,.48);
  backdrop-filter:blur(2px);
}
.tournament-announcement-card{
  width:min(560px,100%);
  padding:22px;
  border-radius:16px;
  background:#fff;
  color:#111e26;
  box-shadow:0 18px 60px rgba(0,0,0,.3);
  text-align:center;
}
.tournament-announcement-card .eyebrow{margin-bottom:8px;color:#145ba1}
.tournament-announcement-card strong{display:block;font-size:clamp(20px,4vw,30px);line-height:1.2;margin-bottom:18px}
.tournament-announcement-card button{min-width:120px}

/* v3.00 — live darts scorer */
.score-game-live-tools{display:flex;align-items:center;gap:9px;justify-content:flex-end;padding:8px 12px 11px;border-top:1px solid var(--line);background:#fafbfa}.score-game-live-tools small{color:var(--muted)}


/* v3.00 — responsive traditional chalkboard live darts scorer */
.darts-scorer-overlay{position:fixed;inset:0;z-index:10000;background:#101513;display:block;overflow:auto;padding:0}
.darts-scorer-modal.chalkboard{box-sizing:border-box;width:100%;min-height:100dvh;margin:0;border-radius:0;padding:clamp(10px,2vw,22px);color:#f4f2e8;background:#18221d;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.025),transparent 24%),radial-gradient(circle at 75% 70%,rgba(255,255,255,.018),transparent 26%);box-shadow:inset 0 0 70px rgba(0,0,0,.3);font-family:"Trebuchet MS","Segoe UI",sans-serif}
.chalkboard button,.chalkboard input{font:inherit}.chalk-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:2px solid rgba(244,242,232,.7);padding-bottom:9px}.chalk-head>div{display:grid;gap:2px}.chalk-kicker{font-size:11px;font-weight:900;letter-spacing:.14em}.chalk-head strong{font-size:14px;letter-spacing:.05em}.chalk-close{border:1px solid rgba(244,242,232,.65);background:transparent;color:#fff;width:38px;height:38px;border-radius:50%;font-size:26px;line-height:1;cursor:pointer}.chalk-matchline{text-align:center;padding:8px 0 2px;display:flex;justify-content:center;align-items:baseline;gap:10px}.chalk-matchline span{font-size:10px;font-weight:900;letter-spacing:.14em}.chalk-matchline strong{font-size:28px;letter-spacing:.06em}.chalk-sides{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(8px,2vw,22px);margin-top:4px}.chalk-player{min-width:0;border:1px solid rgba(244,242,232,.38);padding:clamp(8px,2vw,15px);position:relative}.chalk-player.active{border-color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}.chalk-player.active:before{content:"THROW";position:absolute;right:7px;top:6px;font-size:8px;font-weight:900;letter-spacing:.12em}.chalk-player-head{text-align:center;display:grid;gap:1px;padding:2px 18px 8px}.chalk-player-head small{font-size:9px;letter-spacing:.15em;font-weight:900;opacity:.78}.chalk-player-head strong{font-size:clamp(15px,3.4vw,24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}.chalk-player-head b{font-family:"Comic Sans MS","Bradley Hand",cursive;font-size:clamp(44px,10vw,82px);line-height:1;font-weight:700;text-shadow:0 0 1px #fff;transform:rotate(-.35deg)}.chalk-columns,.chalk-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;text-align:center}.chalk-columns{font-size:9px;font-weight:900;letter-spacing:.1em;border-top:1px solid rgba(244,242,232,.55);border-bottom:1px solid rgba(244,242,232,.35);padding:5px 0}.chalk-history{min-height:150px;max-height:38vh;overflow:auto;padding-top:4px}.chalk-row{width:100%;border:0;border-bottom:1px solid rgba(244,242,232,.17);background:transparent;color:#f4f2e8;padding:6px 2px;cursor:pointer;font-family:"Comic Sans MS","Bradley Hand",cursive;font-size:clamp(16px,4vw,26px);line-height:1.05}.chalk-row b{font-size:1.12em}.chalk-row:hover,.chalk-row:focus{background:rgba(255,255,255,.07);outline:none}.chalk-row.chalk-start{cursor:default;opacity:.7;font-family:inherit;font-size:12px}.chalk-entry,.chalk-bull{margin-top:10px;border-top:2px solid rgba(244,242,232,.65);padding-top:10px;text-align:center}.chalk-entry>strong,.chalk-bull>strong{display:block;font-size:clamp(16px,3.6vw,22px);text-transform:uppercase;letter-spacing:.03em}.chalk-entry form{display:grid;grid-template-columns:auto minmax(92px,180px) minmax(100px,180px);justify-content:center;align-items:center;gap:8px;margin:9px auto 0;max-width:560px}.chalk-entry label{font-size:11px;font-weight:900;letter-spacing:.1em}.chalk-entry input{width:100%;box-sizing:border-box;border:2px solid #f4f2e8;background:#f7f5e9;color:#17201c;border-radius:8px;padding:9px 8px;text-align:center;font-size:28px;font-weight:900}.chalk-enter,.chalk-bull button{border:2px solid #f4f2e8;background:#f4f2e8;color:#17201c;border-radius:8px;padding:10px 14px;font-weight:950;cursor:pointer}.chalk-bull p{margin:3px 0 9px;font-size:12px;opacity:.8}.chalk-bull>div{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.chalk-bull button{min-width:min(210px,45%);font-size:16px}.chalk-actions{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:10px;font-size:10px;opacity:.92}.chalk-actions button{background:transparent;color:#f4f2e8;border:1px solid rgba(244,242,232,.55);border-radius:7px;padding:7px 10px;cursor:pointer}.chalk-actions button:disabled{opacity:.35;cursor:default}.chalk-actions span{opacity:.72}
@media(max-width:600px){.darts-scorer-modal.chalkboard{padding:8px}.chalk-head{padding-bottom:6px}.chalk-head strong{font-size:11px}.chalk-matchline{padding-top:5px}.chalk-matchline strong{font-size:23px}.chalk-sides{gap:6px}.chalk-player{padding:6px}.chalk-player-head{padding:2px 11px 6px}.chalk-player.active:before{font-size:6px;right:4px;top:4px}.chalk-history{min-height:135px;max-height:35vh}.chalk-row{padding:5px 0}.chalk-entry form{grid-template-columns:1fr 1fr;gap:7px}.chalk-entry label{grid-column:1/-1}.chalk-entry input{font-size:30px;min-height:52px}.chalk-enter{min-height:52px;font-size:17px}.chalk-actions{margin-top:8px}.chalk-actions span{order:3;width:100%;text-align:center}}
@media(min-width:900px) and (orientation:landscape){.darts-scorer-modal.chalkboard{display:grid;grid-template-rows:auto auto 1fr auto auto}.chalk-history{max-height:48vh}.chalk-player-head b{font-size:72px}.chalk-entry form{margin-top:7px}}
\n\n/* v3.00 — larger chalk scores, permanent scorer keypad and safer navigation */\n.chalk-head{position:relative;justify-content:center;text-align:center}.chalk-back{position:absolute;left:0;top:0;display:flex;align-items:center;gap:5px;border:1px solid rgba(244,242,232,.55);background:transparent;color:#f4f2e8;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:900;cursor:pointer}.chalk-back span{white-space:nowrap}.chalk-player-head b{font-size:clamp(58px,13vw,108px)}.chalk-columns{font-size:clamp(12px,2vw,18px);padding:8px 0}.chalk-row{font-size:clamp(25px,6vw,44px);padding:10px 2px;min-height:48px}.chalk-row.chalk-start{font-size:clamp(14px,2.5vw,20px);padding:8px 2px}.chalk-history{min-height:190px}.chalk-entry form{display:block;max-width:420px}.chalk-entry label{display:block;margin:7px 0 4px}.chalk-entry input{display:block;width:min(240px,74vw);margin:0 auto 8px;font-size:40px;min-height:58px}.chalk-keypad{display:grid;grid-template-columns:repeat(3,minmax(72px,1fr));gap:7px;margin:0 auto;max-width:390px}.keypad-key,.keypad-enter{min-height:54px;border:1px solid rgba(244,242,232,.65);border-radius:8px;background:rgba(255,255,255,.07);color:#f4f2e8;font-size:24px;font-weight:900;cursor:pointer;touch-action:manipulation}.keypad-key:active{background:rgba(255,255,255,.18)}.keypad-clear,.keypad-backspace{font-size:18px}.keypad-enter{grid-column:1/-1;background:#f4f2e8;color:#17201c;border:2px solid #f4f2e8;font-size:21px}.scorer-reset{opacity:.68}.chalk-actions .scorer-reset{margin-left:auto}.chalk-actions .scorer-undo{margin-right:auto}\n@media(max-width:600px){.chalk-head{min-height:40px;padding-left:96px;padding-right:8px}.chalk-head>div{width:100%}.chalk-back{font-size:11px;padding:7px 8px}.chalk-player-head b{font-size:clamp(54px,17vw,78px)}.chalk-columns{font-size:12px;padding:7px 0}.chalk-row{font-size:clamp(24px,8vw,34px);padding:8px 1px}.chalk-history{min-height:170px;max-height:30vh}.chalk-entry{padding-top:8px}.chalk-entry>strong{font-size:16px}.chalk-entry input{min-height:50px;font-size:34px;margin-bottom:6px}.chalk-keypad{grid-template-columns:repeat(3,1fr);gap:5px}.keypad-key,.keypad-enter{min-height:48px;font-size:22px}.keypad-enter{font-size:18px}.chalk-actions{justify-content:space-between}.chalk-actions .scorer-reset,.chalk-actions .scorer-undo{margin:0}.chalk-actions span{display:none}}\n@media(max-height:700px) and (orientation:landscape){.chalk-player-head b{font-size:58px}.chalk-history{min-height:110px;max-height:27vh}.chalk-row{font-size:25px;padding:5px 2px}.chalk-entry input{min-height:44px;font-size:30px}.keypad-key,.keypad-enter{min-height:39px}.chalk-keypad{max-width:360px}}\n
/* v2.84 — compact phone scorer, stronger active throw and celebration flashes */
.chalk-player.active{border:3px solid #fff;box-shadow:0 0 0 3px rgba(255,255,255,.2),inset 0 0 24px rgba(255,255,255,.07)}
.chalk-player.active:before{font-size:10px;background:#f4f2e8;color:#17201c;padding:3px 6px;border-radius:4px;right:6px;top:5px}
.chalk-celebration{position:fixed;inset:0;z-index:10002;display:grid;place-content:center;pointer-events:none;opacity:0;background:rgba(0,0,0,.24);text-align:center}.chalk-celebration strong{font-family:"Comic Sans MS","Bradley Hand",cursive;font-size:clamp(76px,24vw,220px);line-height:.9;color:#fff;text-shadow:0 5px 0 #111,0 0 18px rgba(255,255,255,.55);transform:scale(.45) rotate(-4deg)}.chalk-celebration span{margin-top:14px;font-size:clamp(16px,4vw,28px);font-weight:950;text-transform:uppercase;color:#fff}.chalk-celebration.show{animation:chalk-celebration-bg 1.45s ease-out both}.chalk-celebration.show strong{animation:chalk-three-pop 1.35s ease-out both}.chalk-celebration.show span{animation:chalk-sub-pop 1.35s ease-out both}@keyframes chalk-three-pop{0%,100%{transform:scale(.35) rotate(-5deg);opacity:0}8%{transform:scale(1.12) rotate(2deg);opacity:1}23%{transform:scale(.9) rotate(-2deg)}38%{transform:scale(1.1) rotate(2deg)}55%{transform:scale(.92) rotate(-1deg)}72%{transform:scale(1.08) rotate(1deg)}88%{transform:scale(.96);opacity:1}}@keyframes chalk-sub-pop{0%,18%{opacity:0;transform:translateY(10px)}35%,85%{opacity:1;transform:none}100%{opacity:0}}@keyframes chalk-celebration-bg{0%,100%{opacity:0}8%,88%{opacity:1}}
.match-stats-entry .stat-entry-group.auto-stat-added{box-shadow:0 0 0 3px rgba(80,150,80,.18)}
@media(max-width:600px){
  .darts-scorer-overlay{padding:0;align-items:stretch}.darts-scorer-modal.chalkboard{width:100%;height:100dvh;max-height:100dvh;border-radius:0;padding:5px 7px;overflow:hidden;display:flex;flex-direction:column;box-sizing:border-box}
  .chalk-head{min-height:34px;padding:0 4px 4px 86px;flex:0 0 auto}.chalk-back{padding:5px 6px;font-size:10px}.chalk-kicker{font-size:9px}.chalk-head strong{font-size:10px}.chalk-matchline{padding:2px 0;gap:7px;flex:0 0 auto}.chalk-matchline strong{font-size:21px}.chalk-matchline span{font-size:9px}
  .chalk-sides{gap:5px;margin-top:1px;flex:1 1 auto;min-height:0}.chalk-player{padding:4px;display:flex;flex-direction:column;min-height:0}.chalk-player-head{padding:1px 9px 3px}.chalk-player-head small{font-size:7px}.chalk-player-head strong{font-size:clamp(13px,4vw,18px)}.chalk-player-head b{font-size:clamp(44px,14vw,66px)}.chalk-columns{font-size:11px;padding:4px 0}.chalk-history{min-height:0;max-height:none;flex:1 1 auto;overflow:auto;padding-top:1px}.chalk-row{font-size:clamp(21px,7vw,30px);padding:4px 0;min-height:33px}.chalk-row.chalk-start{font-size:11px;padding:3px 0}
  .chalk-entry{margin-top:4px;padding-top:5px;flex:0 0 auto}.chalk-entry>strong{font-size:13px}.chalk-entry form{max-width:330px;margin:3px auto 0}.chalk-entry label{display:none}.chalk-entry input{width:150px;min-height:36px;padding:2px 6px;margin:0 auto 4px;font-size:27px;border-radius:6px}.chalk-keypad{max-width:330px;gap:3px}.keypad-key,.keypad-enter{min-height:36px;font-size:19px;border-radius:6px}.keypad-clear,.keypad-backspace{font-size:15px}.keypad-enter{min-height:42px;font-size:18px}
  .chalk-actions{flex:0 0 auto;margin-top:3px;max-height:25px;overflow:hidden}.chalk-actions button{padding:3px 6px;font-size:9px}.chalk-actions .scorer-reset{display:none}.chalk-actions span{display:none}.chalk-player.active:before{font-size:7px;padding:2px 4px}
}
@media(max-width:600px) and (max-height:700px){
  .chalk-head{min-height:30px}.chalk-matchline strong{font-size:18px}.chalk-player-head b{font-size:43px}.chalk-columns{padding:3px 0}.chalk-row{font-size:20px;min-height:28px;padding:2px 0}.chalk-entry>strong{font-size:12px}.chalk-entry input{min-height:31px;font-size:23px}.keypad-key{min-height:31px;font-size:17px}.keypad-enter{min-height:37px}.chalk-actions{display:none}
}

/* v3.00 — scoring colour/readability, scroll-safe phone layout and panel navigation */
.panel-main-site-bottom{margin-top:26px;padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:center}
.chalk-player.active{border-color:#5bc0ff;box-shadow:0 0 0 3px rgba(91,192,255,.24),inset 0 0 28px rgba(91,192,255,.08)}
.chalk-player.active:before{background:#5bc0ff;color:#111e26}
.keypad-key{background:rgba(208,242,103,.14);border-color:rgba(208,242,103,.58)}
.keypad-key:active{background:rgba(208,242,103,.3)}
.keypad-enter{background:#d0f267;color:#111e26;border-color:#d0f267}
.chalk-celebration strong,.chalk-celebration span{color:#d0f267;text-shadow:0 5px 0 #111,0 0 24px rgba(208,242,103,.75)}
@media(max-width:600px){
  .darts-scorer-overlay{overflow-y:auto;-webkit-overflow-scrolling:touch}
  .darts-scorer-modal.chalkboard{min-height:100dvh;height:auto;overflow:visible;padding-bottom:26px}
  .chalk-history{min-height:120px;max-height:22vh}
  .chalk-row{font-size:clamp(22px,7vw,31px);padding:6px 1px;min-height:38px}
  .chalk-entry input{min-height:42px;font-size:30px;margin-bottom:5px}
  .keypad-key,.keypad-enter{min-height:44px}
  .chalk-actions{margin-top:14px;padding-top:12px;border-top:1px solid rgba(244,242,232,.28)}
}


/* v3.00 — Great White scorer, mobile scroll and compact live launch */
.score-game-live-tools{padding:5px 10px 7px;gap:7px}
.score-game-live-tools .score-game-launch{padding:6px 10px;font-size:12px;min-height:0}
.chalk-actions .chalk-main-site{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;background:transparent;color:#f4f2e8;border:1px solid rgba(244,242,232,.55);border-radius:7px;padding:7px 10px;font-weight:800}
@media(max-width:600px){
  .darts-scorer-overlay{overflow-y:scroll!important;overflow-x:hidden;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
  .darts-scorer-modal.chalkboard{height:auto!important;max-height:none!important;min-height:100dvh;overflow:visible!important;display:flex;flex-direction:column;padding-bottom:34px}
  .chalk-actions{display:flex!important;max-height:none!important;overflow:visible!important;min-height:90px;flex-wrap:wrap;gap:7px;padding-bottom:16px}
  .chalk-actions .scorer-reset{display:inline-flex!important}
  .chalk-actions span{display:block!important;order:10;width:100%;text-align:center}
}
.great-white-page{max-width:880px;margin:0 auto}.great-white-page-title{margin:4px 0 10px;font-size:clamp(28px,5vw,42px)}.great-white-brand{display:flex;align-items:center;gap:14px;padding:18px;border-radius:14px;background:#111e26;color:#fff;margin:12px 0 18px}.great-white-logo{width:72px;height:72px;border-radius:18px;display:block;object-fit:cover;flex:0 0 72px}.great-white-brand h2{margin:0;font-size:clamp(26px,6vw,44px);line-height:.95;text-transform:uppercase}.great-white-brand p{margin:5px 0 0;color:#d0f267;font-weight:900;letter-spacing:.12em;text-transform:uppercase;font-size:11px}.great-white-config{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.great-white-config label{display:grid;gap:5px;font-weight:800}.great-white-config .wide{grid-column:1/-1}.great-white-config select,.great-white-config input{width:100%;box-sizing:border-box}.great-white-launch{grid-column:1/-1;background:#d0f267!important;color:#111e26!important;font-size:18px!important;padding:13px 16px!important}.great-white-note{margin-top:14px;padding:12px 14px;border-left:4px solid #d0f267;background:#f6f8ef}.great-white-menu-link{display:flex;align-items:center;gap:10px;padding:11px 12px;text-decoration:none;color:inherit;border-radius:8px}.great-white-menu-link:hover{background:#f2f5f3}.great-white-menu-logo{width:28px;height:28px;border-radius:8px;display:block;object-fit:cover;flex:0 0 28px}.great-white-menu-copy{display:grid;gap:1px}.great-white-menu-copy strong{display:block}.great-white-menu-copy span{font-size:12px;color:var(--muted)}@media(max-width:600px){.great-white-config{grid-template-columns:1fr}.great-white-config .wide{grid-column:auto}.great-white-brand{padding:14px}.great-white-logo{width:58px;height:58px;border-radius:14px}}


/* v3.00 — scorer safety, visible mobile controls and bust confirmation */
.chalk-bust-choice{position:fixed;inset:0;z-index:10004;background:rgba(4,10,8,.86);display:grid;place-items:center;padding:18px}.chalk-bust-choice>div{width:min(520px,100%);box-sizing:border-box;background:#18221d;color:#f4f2e8;border:2px solid #d0f267;border-radius:14px;padding:20px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.48)}.chalk-bust-choice strong{display:block;font-size:22px;margin:7px 0}.chalk-bust-choice p{margin:7px 0 14px}.chalk-bust-actions{display:grid;gap:8px}.chalk-bust-actions button{min-height:46px;border-radius:8px;border:1px solid rgba(244,242,232,.65);background:#f4f2e8;color:#111e26;font-weight:900}.chalk-bust-actions button:first-child{background:#d0f267;border-color:#d0f267}.great-white-nav-link{font-weight:900;display:inline-flex;align-items:center;gap:8px}.great-white-nav-logo{width:20px;height:20px;border-radius:6px;display:block;object-fit:cover;flex:0 0 20px}
@media(max-width:600px){.darts-scorer-modal.chalkboard{touch-action:pan-y;padding-bottom:150px!important}.chalk-sides,.chalk-player,.chalk-history,.chalk-entry{touch-action:pan-y}.chalk-actions{margin-top:28px!important;padding-bottom:40px!important}.chalk-actions:before{content:'MORE CONTROLS';display:block;width:100%;text-align:center;font-size:9px;font-weight:900;letter-spacing:.14em;color:#d0f267;margin-bottom:2px}}

/* v3.00 live-game identity */
.live-game-progress-banner{display:grid;gap:1px;margin-right:auto;padding:6px 9px;border-radius:8px;background:#e9f5ff;border:1px solid #4d9bd3;color:#123e5a;line-height:1.15}.live-game-progress-banner strong{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.live-game-progress-banner span{font-size:.77rem;font-weight:750}@media(max-width:650px){.score-game-live-tools:has(.live-game-progress-banner){align-items:stretch;flex-direction:column}.live-game-progress-banner{margin-right:0}}

/* v3.00 — mandatory checkout dart count + clearer Great White start */
.chalk-checkout-darts .checkout-dart-actions{grid-template-columns:repeat(3,1fr)}.chalk-checkout-darts .checkout-dart-actions button{font-size:18px;font-weight:900;padding:16px 10px}.great-white-launch{font-size:18px;font-weight:900;min-height:52px}.great-white-config input::placeholder{color:#7c8784;opacity:1}

/* v2.96 compact public scorecard action */
.live-score-meta{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:4px 0 2px}.live-score-meta .live-score-state{margin:0!important}.view-scorecard-button{display:inline-flex;align-items:center;width:auto;font-size:10px;font-weight:900;line-height:1.1;padding:4px 7px;border-radius:999px;background:#d0f267;color:#111e26;text-decoration:none;border:1px solid rgba(17,30,38,.18);box-shadow:none}.view-scorecard-button:hover,.view-scorecard-button:focus{background:#e0ff7f;color:#111e26;text-decoration:none;outline:2px solid rgba(20,91,161,.3);outline-offset:1px}@media(max-width:650px){.live-score-meta{gap:2px}.view-scorecard-button{font-size:9px;padding:3px 6px}}
.public-scorecard-head{margin-bottom:14px}.public-scorecard-head h2{margin:12px 0 2px}.public-scorecard-summary{text-align:center}.public-scorecard-match{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-top:10px}.public-scorecard-match strong{font-size:20px}.public-scorecard-match b{font-size:30px}.public-scorecard-games{display:grid;gap:10px}.public-scorecard-game{padding:0;overflow:hidden}.public-scorecard-game-head{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;background:#f3f6f7;border-bottom:1px solid var(--line)}.public-scorecard-game-head span{font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.public-scorecard-row{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;padding:14px}.public-scorecard-row>div{display:grid;gap:3px}.public-scorecard-row>div:last-child{text-align:right}.public-scorecard-row small{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--muted)}.public-scorecard-row strong{font-size:15px}.public-scorecard-row>b{font-size:24px}.public-scorecard-stats,.public-scorecard-notes{margin-top:12px}
@media(max-width:560px){.public-scorecard-match{gap:8px}.public-scorecard-match strong{font-size:16px}.public-scorecard-match b{font-size:25px}.public-scorecard-row{gap:8px;padding:12px 10px}.public-scorecard-row strong{font-size:13px}.public-scorecard-row>b{font-size:20px}}

/* v3.00 — compact public result/live cards: use width, not empty vertical space */
.fixture.fixture-card .fixture-compact-footer{
  display:flex;
  align-items:center;
  gap:6px 10px;
  flex-wrap:wrap;
  margin-top:4px;
}
.fixture.fixture-card .fixture-compact-footer .live-score-meta{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:5px;
  margin:0;
  flex:0 0 auto;
}
.fixture.fixture-card .fixture-compact-footer .live-stat-strip{
  flex:1 1 420px;
  margin:0!important;
  min-width:220px;
}
.fixture.fixture-card .fixture-compact-footer .fixture-status{
  flex:0 0 auto;
  margin:0!important;
  padding:2px 6px!important;
  border-radius:999px;
  background:#f0f5d9;
  color:#526d7d!important;
  font-weight:900;
}
.fixture.fixture-card .match{
  margin-top:1px!important;
  margin-bottom:0!important;
}
@media(max-width:760px){
  .fixture.fixture-card .fixture-compact-footer{gap:4px 6px;margin-top:3px}
  .fixture.fixture-card .fixture-compact-footer .live-score-meta{gap:4px}
  .fixture.fixture-card .fixture-compact-footer .live-stat-strip{flex-basis:100%;min-width:0}
  .fixture.fixture-card .fixture-compact-footer .fixture-status{font-size:8px!important;padding:2px 5px!important}
}

/* v3.14 — simple primary navigation; League and More info open card hubs */
.public-league-menu,.public-clubhouse-menu{margin-top:14px}

/* v3.14 — coloured League/Cups hub cards and Scoring System add-on position */
.hub-card-accent{
  position:relative;
  overflow:hidden;
  border-top:5px solid transparent;
}
.hub-card-accent::before{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.07;
}
.hub-card-yellow{border-top-color:#d2a900}.hub-card-yellow::before{background:#f0c928}
.hub-card-blue{border-top-color:#2f6fb3}.hub-card-blue::before{background:#4f8fd4}
.hub-card-green{border-top-color:#5f8f2f}.hub-card-green::before{background:#8fbd55}
.hub-card-orange{border-top-color:#c66f27}.hub-card-orange::before{background:#df8a42}
.hub-card-purple{border-top-color:#754f9d}.hub-card-purple::before{background:#9570ba}
.hub-card-accent>*{position:relative;z-index:1}
.great-white-nav-addon{margin-left:6px}

/* v3.14 — solid filled League/Cups hub cards with lightweight mock graphics */
.hub-fill{
  position:relative;
  overflow:hidden;
  border:none!important;
  color:#fff;
  min-height:228px;
  box-shadow:0 18px 42px rgba(17,30,38,.14);
}
.hub-fill h3,.hub-fill p,.hub-fill strong,.hub-fill .eyebrow{position:relative;z-index:2}
.hub-fill p{color:rgba(255,255,255,.92)}
.hub-fill strong{color:#fff}
.hub-fill .eyebrow{color:rgba(255,255,255,.82)}
.hub-fill-yellow{background:linear-gradient(180deg,#d0a31a 0%,#b88708 100%)}
.hub-fill-blue{background:linear-gradient(180deg,#3277bb 0%,#215d97 100%)}
.hub-fill-green{background:linear-gradient(180deg,#5f9d4d 0%,#447736 100%)}
.hub-fill-orange{background:linear-gradient(180deg,#cf7b2a 0%,#aa5f18 100%)}
.hub-fill-purple{background:linear-gradient(180deg,#7b5ab1 0%,#5d3f91 100%)}
.hub-fill.is-pending{filter:saturate(.92)}
.hub-fill::after{
  content:'';
  position:absolute;
  inset:auto -40px -40px auto;
  width:140px;height:140px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  z-index:1;
}
.hub-card-graphic{
  position:relative;
  z-index:2;
  width:100%;
  max-width:170px;
  height:72px;
  margin:10px 0 14px;
  display:grid;
  align-items:end;
  gap:6px;
}
.hub-card-graphic span{display:block;background:rgba(255,255,255,.95);border-radius:6px}
.graphic-table{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}
.graphic-table span:nth-child(1){height:18px}.graphic-table span:nth-child(2){height:18px}.graphic-table span:nth-child(3){height:18px}
.graphic-table span:nth-child(4){height:34px}.graphic-table span:nth-child(5){height:26px}.graphic-table span:nth-child(6){height:22px}

.graphic-fixtures{grid-template-columns:1fr;grid-template-rows:repeat(4,1fr)}
.graphic-fixtures span:nth-child(1){height:12px;width:100%}
.graphic-fixtures span:nth-child(2){height:12px;width:88%}
.graphic-fixtures span:nth-child(3){height:12px;width:94%}
.graphic-fixtures span:nth-child(4){height:12px;width:76%}

.graphic-results{grid-template-columns:repeat(3,1fr);grid-template-rows:1fr}
.graphic-results span:nth-child(1){height:56px;align-self:end}
.graphic-results span:nth-child(2){height:38px;align-self:end}
.graphic-results span:nth-child(3){height:24px;align-self:end}

.graphic-teams{grid-template-columns:repeat(3,1fr);grid-template-rows:1fr}
.graphic-teams span{border-radius:999px}
.graphic-teams span:nth-child(1){height:34px;width:34px}
.graphic-teams span:nth-child(2){height:34px;width:34px}
.graphic-teams span:nth-child(3){height:34px;width:34px}

.graphic-stats{grid-template-columns:repeat(4,1fr);grid-template-rows:1fr}
.graphic-stats span:nth-child(1){height:18px}
.graphic-stats span:nth-child(2){height:30px}
.graphic-stats span:nth-child(3){height:48px}
.graphic-stats span:nth-child(4){height:40px}

.graphic-bracket{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}
.graphic-bracket span:nth-child(1),.graphic-bracket span:nth-child(2),.graphic-bracket span:nth-child(3),.graphic-bracket span:nth-child(4){height:12px}
.graphic-bracket span:nth-child(5){height:46px;grid-column:3;grid-row:1 / span 2;border-radius:10px}

.graphic-trophy{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr}
.graphic-trophy span:nth-child(1){height:20px;width:24px;justify-self:center;border-radius:10px 10px 4px 4px}
.graphic-trophy span:nth-child(2){height:44px;width:52px;justify-self:center;border-radius:16px 16px 10px 10px}
.graphic-trophy span:nth-child(3){height:10px;width:36px;justify-self:center;border-radius:4px}

.graphic-singles{grid-template-columns:repeat(3,1fr)}
.graphic-singles span:nth-child(1){height:14px;width:14px;border-radius:50%}
.graphic-singles span:nth-child(2){height:50px;width:10px;justify-self:center;border-radius:999px}
.graphic-singles span:nth-child(3){height:14px;width:14px;border-radius:50%;justify-self:end}

.graphic-pairs{grid-template-columns:repeat(4,1fr)}
.graphic-pairs span{height:26px;border-radius:999px}
.graphic-pairs span:nth-child(1),.graphic-pairs span:nth-child(2){width:26px}
.graphic-pairs span:nth-child(3),.graphic-pairs span:nth-child(4){width:26px}

.graphic-generator{grid-template-columns:repeat(4,1fr)}
.graphic-generator span:nth-child(1){height:44px}
.graphic-generator span:nth-child(2){height:28px}
.graphic-generator span:nth-child(3){height:52px}
.graphic-generator span:nth-child(4){height:20px}

@media(max-width:700px){
  .hub-fill{min-height:200px}
  .hub-card-graphic{height:60px;max-width:148px}
}

/* v3.14 — flatter home-page style hub cards; smaller visual cues */
.public-league-menu .public-cup-card,
.public-cup-menu .public-cup-card{
  border:0!important;
  color:#fff!important;
  min-height:178px!important;
  box-shadow:none!important;
  padding:22px!important;
}
.public-league-menu .public-cup-card p,
.public-cup-menu .public-cup-card p{
  color:rgba(255,255,255,.92)!important;
}
.public-league-menu .public-cup-card strong,
.public-cup-menu .public-cup-card strong,
.public-league-menu .public-cup-card .eyebrow,
.public-cup-menu .public-cup-card .eyebrow{
  color:#fff!important;
}
.public-league-menu .hub-fill-yellow,
.public-cup-menu .hub-fill-yellow{background:#d0a31a!important}
.public-league-menu .hub-fill-blue,
.public-cup-menu .hub-fill-blue{background:#145ba1!important}
.public-league-menu .hub-fill-green,
.public-cup-menu .hub-fill-green{background:#5f8f2f!important}
.public-league-menu .hub-fill-orange,
.public-cup-menu .hub-fill-orange{background:#c66f27!important}
.public-league-menu .hub-fill-purple,
.public-cup-menu .hub-fill-purple{background:#663b94!important}

/* Fallback colours for Cups even if older/live card markup does not carry hub-fill classes */
.public-cup-menu .public-cup-card:nth-child(1){background:#663b94!important}
.public-cup-menu .public-cup-card:nth-child(2){background:#145ba1!important}
.public-cup-menu .public-cup-card:nth-child(3){background:#d0a31a!important;color:#17251d!important}
.public-cup-menu .public-cup-card:nth-child(3) p,
.public-cup-menu .public-cup-card:nth-child(3) strong,
.public-cup-menu .public-cup-card:nth-child(3) .eyebrow{color:#17251d!important}
.public-cup-menu .public-cup-card:nth-child(4){background:#5f8f2f!important}
.public-cup-menu .public-cup-card:nth-child(5){background:#c66f27!important}

.hub-fill::after{display:none!important}
.hub-card-graphic{
  width:92px!important;
  height:36px!important;
  margin:2px 0 10px!important;
  gap:4px!important;
  opacity:.82;
}
.hub-card-graphic span{border-radius:3px!important}
.graphic-table span:nth-child(1),
.graphic-table span:nth-child(2),
.graphic-table span:nth-child(3){height:8px!important}
.graphic-table span:nth-child(4){height:16px!important}
.graphic-table span:nth-child(5){height:13px!important}
.graphic-table span:nth-child(6){height:10px!important}
.graphic-fixtures span{height:5px!important}
.graphic-results span:nth-child(1){height:27px!important}
.graphic-results span:nth-child(2){height:20px!important}
.graphic-results span:nth-child(3){height:12px!important}
.graphic-teams span{width:18px!important;height:18px!important}
.graphic-stats span:nth-child(1){height:9px!important}
.graphic-stats span:nth-child(2){height:16px!important}
.graphic-stats span:nth-child(3){height:26px!important}
.graphic-stats span:nth-child(4){height:21px!important}
.graphic-bracket span:nth-child(-n+4){height:6px!important}
.graphic-bracket span:nth-child(5){height:26px!important}
.graphic-trophy span:nth-child(1){height:10px!important;width:14px!important}
.graphic-trophy span:nth-child(2){height:25px!important;width:30px!important}
.graphic-trophy span:nth-child(3){height:5px!important;width:20px!important}
.graphic-singles span:nth-child(1),
.graphic-singles span:nth-child(3){width:8px!important;height:8px!important}
.graphic-singles span:nth-child(2){height:27px!important;width:6px!important}
.graphic-pairs span{width:14px!important;height:14px!important}
.graphic-generator span:nth-child(1){height:23px!important}
.graphic-generator span:nth-child(2){height:15px!important}
.graphic-generator span:nth-child(3){height:27px!important}
.graphic-generator span:nth-child(4){height:10px!important}

.public-cup-card.is-pending{opacity:1!important}
@media(max-width:700px){
  .public-league-menu .public-cup-card,
  .public-cup-menu .public-cup-card{min-height:155px!important}
  .hub-card-graphic{width:78px!important;height:31px!important}
}

/* v3.14 — compact desktop scorer and easy zoom controls */
.chalk-zoom-controls{
  position:sticky;
  top:8px;
  z-index:1001;
  display:flex;
  justify-content:flex-end;
  gap:6px;
  margin:0 0 8px;
}
.chalk-zoom-controls button{
  min-width:40px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.35);
  background:#1b2822;
  color:#fff;
  border-radius:6px;
  font-weight:900;
}
.chalk-zoom-controls .chalk-zoom-label{
  min-width:56px;
  cursor:default;
}

/* On ordinary laptop/desktop screens keep the full scorer in one viewport where possible. */
@media (min-width:900px) and (max-height:900px){
  .chalk-overlay{padding:8px!important}
  .chalk-board{
    transform-origin:top center;
    max-height:none!important;
  }
  .chalk-head{padding:8px 10px!important}
  .chalk-head strong{font-size:13px!important}
  .chalk-matchline{padding:7px 10px!important}
  .chalk-sides{gap:8px!important}
  .chalk-player{padding:10px!important}
  .chalk-player-name{font-size:18px!important}
  .chalk-score{font-size:clamp(54px,7vh,82px)!important;line-height:.88!important}
  .chalk-visit-row{padding:6px 0!important}
  .chalk-keypad{gap:6px!important;padding:8px!important}
  .chalk-keypad button{min-height:38px!important;padding:6px!important;font-size:15px!important}
  .chalk-controls{gap:6px!important;padding:8px!important}
  .chalk-controls button{min-height:36px!important;padding:6px 9px!important}
}

/* v3.14 — scorer recovery + working zoom + cleaner scorer chrome */
.chalk-zoom-controls{
  position:absolute!important;
  right:10px!important;
  top:9px!important;
  margin:0!important;
  z-index:20!important;
  background:transparent!important;
}
.chalk-zoom-controls button{
  min-width:34px!important;
  height:32px!important;
  padding:4px 7px!important;
  background:#111a16!important;
  color:#f4f2e8!important;
  border:1px solid rgba(244,242,232,.45)!important;
  box-shadow:none!important;
  font-size:13px!important;
}
.chalk-zoom-controls .chalk-zoom-label{min-width:50px!important}
.darts-scorer-modal.chalkboard{position:relative}
@media(max-width:700px){
  .chalk-zoom-controls{right:7px!important;top:6px!important}
  .chalk-zoom-controls button{min-width:30px!important;height:29px!important;font-size:12px!important}
  .chalk-zoom-controls .chalk-zoom-label{min-width:45px!important}
  .chalk-head{padding-right:118px!important}
}

/* v3.14 — light surround with more physical blackboard styling */
.darts-scorer-overlay{
  background:#ece8de!important;
  background-image:
    linear-gradient(180deg,rgba(255,255,255,.72),rgba(232,226,212,.92)),
    radial-gradient(circle at 18% 16%,rgba(255,255,255,.55),transparent 28%)!important;
}
.darts-scorer-modal.chalkboard{
  background:#f3efe5!important;
  color:#17201c!important;
  box-shadow:inset 0 0 0 1px rgba(93,73,48,.08)!important;
}

.chalk-head,
.chalk-matchline,
.chalk-entry,
.chalk-bull,
.chalk-actions{
  background:#18211c!important;
  color:#f4f2e8!important;
  border-radius:14px!important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.08),
    inset 0 0 42px rgba(0,0,0,.22)!important;
}

.chalk-head{
  padding:12px 16px 12px 118px!important;
  border-bottom:none!important;
}
.chalk-matchline{
  margin-top:10px!important;
  padding:10px 14px 8px!important;
}
.chalk-entry,
.chalk-bull{
  margin-top:12px!important;
  border-top:none!important;
  padding:14px!important;
}
.chalk-actions{
  margin-top:12px!important;
  padding:10px 12px!important;
}
.chalk-main-site{color:#f4f2e8!important;text-decoration:none;border:1px solid rgba(244,242,232,.55);border-radius:7px;padding:7px 10px}
.chalk-main-site:hover{background:rgba(255,255,255,.08)}

.chalk-player{
  background:#18211c!important;
  border:2px solid rgba(242,239,225,.72)!important;
  border-radius:12px!important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.05),
    inset 0 0 56px rgba(0,0,0,.18)!important;
  overflow:hidden;
}
.chalk-player::after{
  content:"";
  position:absolute;
  left:10px;
  top:10px;
  bottom:10px;
  width:2px;
  background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.68),rgba(255,255,255,.14));
  border-radius:99px;
  opacity:.82;
  transform:rotate(-1.4deg);
  pointer-events:none;
}
.chalk-history{
  background:
    linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0)),
    radial-gradient(circle at 18% 14%,rgba(255,255,255,.035),transparent 24%);
  border-radius:8px;
  padding:5px 6px 0 10px!important;
}
.chalk-columns{
  margin-left:6px;
  margin-right:6px;
}
.chalk-row{
  padding-left:8px!important;
  padding-right:8px!important;
}

.chalk-entry input{
  box-shadow:0 1px 0 rgba(0,0,0,.08), inset 0 1px 3px rgba(0,0,0,.08)!important;
}

@media(max-width:600px){
  .chalk-head{padding:10px 10px 10px 92px!important}
  .chalk-matchline{margin-top:8px!important}
  .chalk-entry,.chalk-bull,.chalk-actions{padding:10px!important}
  .chalk-player::after{left:6px;top:7px;bottom:7px}
}

/* v3.14 — single unified blackboard look */
.darts-scorer-overlay{
  background:rgba(12,16,14,.88)!important;
}

.darts-scorer-modal.chalkboard{
  background:#1b241e!important;
  background-image:
    radial-gradient(circle at 18% 16%, rgba(255,255,255,.035), transparent 22%),
    radial-gradient(circle at 74% 68%, rgba(255,255,255,.028), transparent 26%),
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.05))!important;
  color:#f4f2e8!important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.07),
    inset 0 0 90px rgba(0,0,0,.34),
    0 18px 42px rgba(0,0,0,.34)!important;
  border:10px solid #6e5135!important;
  border-radius:10px!important;
}

.chalk-head,
.chalk-matchline,
.chalk-entry,
.chalk-bull,
.chalk-actions,
.chalk-player{
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  color:#f4f2e8!important;
}

.chalk-head{
  border-bottom:2px solid rgba(244,242,232,.55)!important;
  padding:10px 12px 10px 118px!important;
}
.chalk-matchline{
  margin-top:8px!important;
  border-bottom:2px solid rgba(244,242,232,.38)!important;
  padding:8px 0 6px!important;
}
.chalk-entry,
.chalk-bull{
  margin-top:10px!important;
  border-top:2px solid rgba(244,242,232,.55)!important;
  padding:10px 0 0!important;
}
.chalk-actions{
  margin-top:10px!important;
  border-top:2px solid rgba(244,242,232,.55)!important;
  padding:10px 0 0!important;
}

.chalk-player{
  border:2px solid rgba(244,242,232,.48)!important;
  padding:10px!important;
  position:relative!important;
}
.chalk-player::after{
  content:"";
  position:absolute;
  left:12px;
  top:10px;
  bottom:10px;
  width:2px;
  background:rgba(244,242,232,.7);
  border-radius:999px;
  opacity:.9;
  transform:rotate(-1deg);
  pointer-events:none;
}
.chalk-player.active{
  border:3px solid rgba(255,255,255,.92)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)!important;
}
.chalk-player.active:before{
  background:#f4f2e8!important;
  color:#1b241e!important;
}

.chalk-player-head,
.chalk-columns,
.chalk-history{
  position:relative;
  z-index:1;
}
.chalk-columns{
  border-top:1px solid rgba(244,242,232,.58)!important;
  border-bottom:1px solid rgba(244,242,232,.32)!important;
  margin-left:7px;
}
.chalk-history{
  min-height:160px;
  max-height:38vh;
  padding-top:3px!important;
  padding-left:7px!important;
}
.chalk-row{
  color:#f4f2e8!important;
  border-bottom:1px solid rgba(244,242,232,.16)!important;
  background:transparent!important;
  text-shadow:0 0 1px rgba(255,255,255,.45);
}
.chalk-row:hover,.chalk-row:focus{
  background:rgba(255,255,255,.05)!important;
}
.chalk-player-head b,
.chalk-row,
.chalk-row b{
  font-family:"Comic Sans MS","Bradley Hand",cursive!important;
}

.chalk-back,
.chalk-actions button,
.chalk-main-site{
  background:transparent!important;
  color:#f4f2e8!important;
  border:1px solid rgba(244,242,232,.58)!important;
}
.chalk-main-site{
  text-decoration:none;
  border-radius:7px;
  padding:7px 10px;
}
.chalk-zoom-controls button{
  background:rgba(27,36,30,.92)!important;
  color:#f4f2e8!important;
  border:1px solid rgba(244,242,232,.45)!important;
}
.chalk-entry input{
  border:2px solid #f4f2e8!important;
  background:#f7f4ea!important;
  color:#17201c!important;
}
.keypad-key,.keypad-enter{
  border:1px solid rgba(244,242,232,.62)!important;
}
.keypad-key{
  background:rgba(255,255,255,.06)!important;
  color:#f4f2e8!important;
}
.keypad-enter{
  background:#f4f2e8!important;
  color:#17201c!important;
}

@media(max-width:600px){
  .darts-scorer-modal.chalkboard{
    border-width:6px!important;
    border-radius:0!important;
  }
  .chalk-head{padding:8px 8px 8px 92px!important}
  .chalk-player{padding:6px!important}
  .chalk-player::after{left:7px;top:7px;bottom:7px}
}

/* v3.14 — pale scorer shell with blackboard score panels only */
.darts-scorer-overlay{
  background:#ece8de!important;
  background-image:linear-gradient(180deg,#f6f3eb 0%,#e6dfd2 100%)!important;
}

.darts-scorer-modal.chalkboard{
  background:#f3efe5!important;
  background-image:none!important;
  color:#17201c!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

/* Header / legs / keypad / controls live on the pale scorer shell */
.chalk-head,
.chalk-matchline,
.chalk-entry,
.chalk-bull,
.chalk-actions{
  background:transparent!important;
  color:#17201c!important;
  border-radius:0!important;
  box-shadow:none!important;
}

.chalk-head{
  border-bottom:1px solid rgba(23,32,28,.18)!important;
}
.chalk-matchline{
  border-bottom:0!important;
}
.chalk-entry,
.chalk-bull{
  border-top:1px solid rgba(23,32,28,.18)!important;
}
.chalk-actions{
  border-top:1px solid rgba(23,32,28,.18)!important;
}

.chalk-back,
.chalk-actions button,
.chalk-main-site{
  background:#fff!important;
  color:#17201c!important;
  border:1px solid rgba(23,32,28,.22)!important;
}
.chalk-main-site{
  border-radius:7px!important;
}
.chalk-zoom-controls button{
  background:#fff!important;
  color:#17201c!important;
  border:1px solid rgba(23,32,28,.22)!important;
}

/* Only the two actual scoreboards are blackboards */
.chalk-player{
  background:#1b241e!important;
  background-image:
    radial-gradient(circle at 20% 20%,rgba(255,255,255,.035),transparent 22%),
    radial-gradient(circle at 76% 68%,rgba(255,255,255,.025),transparent 24%)!important;
  color:#f4f2e8!important;
  border:8px solid #6f5135!important;
  border-radius:7px!important;
  box-shadow:
    inset 0 0 70px rgba(0,0,0,.24),
    0 5px 16px rgba(65,50,35,.18)!important;
  padding:14px!important;
}
.chalk-player.active{
  border-color:#6f5135!important;
  box-shadow:
    inset 0 0 0 3px rgba(255,255,255,.32),
    inset 0 0 70px rgba(0,0,0,.24),
    0 5px 16px rgba(65,50,35,.18)!important;
}
.chalk-player.active:before{
  background:#f4f2e8!important;
  color:#1b241e!important;
}
.chalk-player::after{
  left:14px!important;
  top:14px!important;
  bottom:14px!important;
  width:2px!important;
  background:rgba(244,242,232,.74)!important;
}

.chalk-player-head,
.chalk-columns,
.chalk-history,
.chalk-row{
  color:#f4f2e8!important;
}
.chalk-columns{
  border-top:1px solid rgba(244,242,232,.58)!important;
  border-bottom:1px solid rgba(244,242,232,.34)!important;
}
.chalk-row{
  background:transparent!important;
  color:#f4f2e8!important;
  border-bottom:1px solid rgba(244,242,232,.16)!important;
}
.chalk-row:hover,.chalk-row:focus{
  background:rgba(255,255,255,.05)!important;
}

/* Pale keypad area */
.chalk-entry input{
  background:#fff!important;
  color:#17201c!important;
  border:2px solid #17201c!important;
}
.keypad-key{
  background:#fff!important;
  color:#17201c!important;
  border:1px solid rgba(23,32,28,.22)!important;
}
.keypad-enter{
  background:#17201c!important;
  color:#fff!important;
  border:2px solid #17201c!important;
}
.chalk-bull button{
  background:#17201c!important;
  color:#fff!important;
  border-color:#17201c!important;
}

/* Make the actual scored/left content much clearer on desktop */
@media(min-width:900px){
  .chalk-player-head b{
    font-size:clamp(82px,10vh,128px)!important;
    line-height:.9!important;
  }
  .chalk-columns{
    font-size:18px!important;
    padding:9px 0!important;
  }
  .chalk-row{
    font-size:clamp(34px,4.3vh,54px)!important;
    min-height:56px!important;
    padding:8px 4px!important;
  }
  .chalk-row.chalk-start{
    font-size:19px!important;
    min-height:40px!important;
    padding:7px 4px!important;
  }
  .chalk-history{
    min-height:210px!important;
  }
}

@media(max-width:600px){
  .chalk-player{
    border-width:5px!important;
    padding:7px!important;
  }
  .chalk-player::after{
    left:8px!important;
    top:8px!important;
    bottom:8px!important;
  }
}

/* v3.14 — fixed scorer frame, scrollable scoreboards, clear throw state, coloured keypad */
.chalk-zoom-controls{
  position:static!important;
  width:100%!important;
  display:flex!important;
  justify-content:flex-end!important;
  margin:0 0 7px!important;
  padding:0!important;
}
.chalk-zoom-controls label{
  display:flex;
  align-items:center;
  gap:8px;
  width:min(330px,100%);
  margin:0;
  color:#17201c;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
}
.chalk-zoom-range{
  flex:1;
  min-width:120px;
  margin:0!important;
  padding:0!important;
  accent-color:#639216;
  background:none!important;
  border:0!important;
}
.chalk-zoom-label{
  min-width:46px!important;
  text-align:right;
  color:#17201c!important;
  font-size:11px!important;
}

/* Keep the scorer as a frame; score histories scroll inside the blackboards. */
@media(min-width:700px){
  .darts-scorer-overlay{
    overflow:hidden!important;
  }
  .darts-scorer-modal.chalkboard{
    height:100dvh!important;
    min-height:0!important;
    display:grid!important;
    grid-template-rows:auto auto auto minmax(0,1fr) auto auto!important;
    overflow:hidden!important;
    padding:10px 14px!important;
  }
  .chalk-sides{
    min-height:0!important;
    height:auto!important;
    overflow:hidden!important;
  }
  .chalk-player{
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
  }
  .chalk-history{
    flex:1 1 auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
  }
  .chalk-entry{
    margin-top:7px!important;
    padding-top:7px!important;
  }
  .chalk-entry>strong{font-size:15px!important}
  .chalk-entry input{
    min-height:42px!important;
    font-size:28px!important;
    margin-bottom:5px!important;
  }
  .chalk-keypad{
    max-width:340px!important;
    gap:5px!important;
  }
  .keypad-key,.keypad-enter{
    min-height:37px!important;
    font-size:17px!important;
  }
  .keypad-enter{font-size:16px!important}
  .chalk-actions{
    margin-top:7px!important;
    padding-top:7px!important;
  }
}

/* On phones, the two blackboards stay a fixed visual area and can be finger-scrolled. */
@media(max-width:699px){
  .chalk-zoom-controls{
    margin-bottom:6px!important;
  }
  .chalk-zoom-controls label{
    width:100%;
    gap:6px;
  }
  .darts-scorer-modal.chalkboard{
    min-height:100dvh!important;
  }
  .chalk-sides{
    height:31vh!important;
    min-height:205px!important;
    max-height:270px!important;
    overflow:hidden!important;
  }
  .chalk-player{
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
  }
  .chalk-history{
    flex:1 1 auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
}

/* Stronger current-throw cue without changing the blackboard look. */
.chalk-player.active{
  outline:4px solid #d0f267!important;
  outline-offset:3px!important;
}
.chalk-player.active:before{
  content:"THROW"!important;
  right:8px!important;
  top:7px!important;
  padding:5px 9px!important;
  border-radius:5px!important;
  background:#d0f267!important;
  color:#17201c!important;
  font-size:12px!important;
  font-weight:950!important;
  letter-spacing:.12em!important;
  box-shadow:0 2px 7px rgba(0,0,0,.22)!important;
}
@media(max-width:600px){
  .chalk-player.active{outline-width:3px!important;outline-offset:2px!important}
  .chalk-player.active:before{
    right:5px!important;top:5px!important;
    font-size:9px!important;
    padding:4px 6px!important;
  }
}

/* Restore purposeful keypad colour on the pale scorer background. */
.keypad-key{
  background:#111e26!important;
  color:#fff!important;
  border:1px solid #111e26!important;
}
.keypad-key:active{
  background:#2b3a43!important;
}
.keypad-clear,.keypad-backspace{
  background:#31434c!important;
}
.keypad-enter{
  background:#d0f267!important;
  color:#17201c!important;
  border:2px solid #9cb94a!important;
}

/* v4.38 — scorer layout reset/stabilisation */
.darts-scorer-overlay{
  position:fixed!important;
  inset:0!important;
  overflow:auto!important;
  background:#ece8de!important;
  background-image:linear-gradient(180deg,#f7f4ed 0%,#e7e0d5 100%)!important;
  padding:0!important;
}
.darts-scorer-modal.chalkboard{
  width:100%!important;
  min-height:100dvh!important;
  height:auto!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  display:block!important;
  margin:0!important;
  padding:10px 14px 16px!important;
  border:0!important;
  border-radius:0!important;
  background:#f3efe5!important;
  background-image:none!important;
  color:#17201c!important;
  box-shadow:none!important;
}

/* Size control lives in its own row and never overlaps the rules/header. */
.chalk-zoom-controls{
  position:static!important;
  width:100%!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  margin:0 0 6px!important;
  padding:0!important;
}
.chalk-zoom-controls label{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  width:min(340px,100%)!important;
  margin:0!important;
  color:#17201c!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.08em!important;
}
.chalk-zoom-range{
  flex:1!important;
  min-width:120px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  accent-color:#639216!important;
}
.chalk-zoom-label{
  min-width:46px!important;
  color:#17201c!important;
  text-align:right!important;
  font-size:11px!important;
}

/* Pale shell controls */
.chalk-head,.chalk-matchline,.chalk-entry,.chalk-bull,.chalk-actions{
  background:transparent!important;
  color:#17201c!important;
  box-shadow:none!important;
  border-radius:0!important;
}
.chalk-head{
  min-height:36px!important;
  padding:5px 6px 6px 102px!important;
  border-bottom:1px solid rgba(23,32,28,.18)!important;
}
.chalk-head strong{font-size:12px!important}
.chalk-kicker{font-size:9px!important}
.chalk-matchline{
  margin:0!important;
  padding:4px 0!important;
  border:0!important;
}
.chalk-matchline strong{font-size:20px!important}
.chalk-back,.chalk-actions button,.chalk-main-site{
  background:#fff!important;
  color:#17201c!important;
  border:1px solid rgba(23,32,28,.22)!important;
}
.chalk-main-site{border-radius:7px!important;padding:6px 9px!important}

/* Only the player score areas are blackboards. */
.chalk-sides{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:12px!important;
  margin-top:4px!important;
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
}
.chalk-player{
  min-width:0!important;
  height:330px!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  position:relative!important;
  padding:10px!important;
  border:6px solid #6f5135!important;
  border-radius:7px!important;
  background:#1b241e!important;
  background-image:
    radial-gradient(circle at 18% 20%,rgba(255,255,255,.035),transparent 22%),
    radial-gradient(circle at 78% 70%,rgba(255,255,255,.025),transparent 25%)!important;
  color:#f4f2e8!important;
  box-shadow:inset 0 0 55px rgba(0,0,0,.22),0 4px 14px rgba(65,50,35,.16)!important;
  outline:0!important;
}
.chalk-player::after{
  content:""!important;
  position:absolute!important;
  left:10px!important;
  top:10px!important;
  bottom:10px!important;
  width:2px!important;
  background:rgba(244,242,232,.66)!important;
  border-radius:99px!important;
  opacity:.85!important;
  pointer-events:none!important;
}
.chalk-player.active{
  outline:4px solid #d0f267!important;
  outline-offset:2px!important;
  border-color:#6f5135!important;
  box-shadow:inset 0 0 55px rgba(0,0,0,.22),0 4px 14px rgba(65,50,35,.16)!important;
}
.chalk-player.active:before{
  content:"THROW"!important;
  position:absolute!important;
  right:7px!important;
  top:6px!important;
  z-index:5!important;
  padding:4px 8px!important;
  border-radius:4px!important;
  background:#d0f267!important;
  color:#17201c!important;
  font-size:10px!important;
  font-weight:950!important;
  letter-spacing:.12em!important;
}
.chalk-player-head{
  flex:0 0 auto!important;
  padding:0 16px 5px!important;
  color:#f4f2e8!important;
}
.chalk-player-head small{font-size:8px!important}
.chalk-player-head strong{font-size:20px!important}
.chalk-player-head b{
  font-size:70px!important;
  line-height:.9!important;
  color:#f4f2e8!important;
}
.chalk-columns{
  flex:0 0 auto!important;
  margin:0 4px!important;
  padding:6px 0!important;
  color:#f4f2e8!important;
  font-size:14px!important;
  border-top:1px solid rgba(244,242,232,.58)!important;
  border-bottom:1px solid rgba(244,242,232,.35)!important;
}
.chalk-history{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  padding:3px 4px 0 8px!important;
  background:transparent!important;
}
.chalk-row{
  min-height:36px!important;
  padding:4px 3px!important;
  color:#f4f2e8!important;
  background:transparent!important;
  border-bottom:1px solid rgba(244,242,232,.16)!important;
  font-size:26px!important;
  line-height:1!important;
}
.chalk-row.chalk-start{
  min-height:28px!important;
  padding:4px 3px!important;
  font-size:12px!important;
}

/* Entry/keypad is deliberately compact enough to remain visible at 100%. */
.chalk-entry,.chalk-bull{
  margin-top:7px!important;
  padding:7px 0 0!important;
  border-top:1px solid rgba(23,32,28,.18)!important;
}
.chalk-entry>strong,.chalk-bull>strong{font-size:14px!important}
.chalk-entry form{max-width:330px!important;margin:4px auto 0!important}
.chalk-entry label{margin:2px 0!important;color:#17201c!important}
.chalk-entry input{
  width:min(210px,70vw)!important;
  min-height:38px!important;
  margin:0 auto 4px!important;
  padding:4px 7px!important;
  background:#fff!important;
  color:#17201c!important;
  border:2px solid #17201c!important;
  font-size:26px!important;
}
.chalk-keypad{
  max-width:320px!important;
  gap:4px!important;
}
.keypad-key,.keypad-enter{
  min-height:34px!important;
  padding:4px!important;
  font-size:16px!important;
}
.keypad-key{
  background:#111e26!important;
  color:#fff!important;
  border:1px solid #111e26!important;
}
.keypad-clear,.keypad-backspace{background:#31434c!important}
.keypad-enter{
  background:#d0f267!important;
  color:#17201c!important;
  border:2px solid #9cb94a!important;
  font-size:15px!important;
}
.chalk-actions{
  margin-top:7px!important;
  padding:7px 0 0!important;
  border-top:1px solid rgba(23,32,28,.18)!important;
}

/* Phone remains compact; history scrolls inside each board rather than extending the page. */
@media(max-width:699px){
  .darts-scorer-modal.chalkboard{padding:7px 7px 120px!important}
  .chalk-zoom-controls label{width:100%!important}
  .chalk-head{padding:5px 5px 5px 88px!important}
  .chalk-sides{gap:6px!important}
  .chalk-player{
    height:245px!important;
    padding:6px!important;
    border-width:4px!important;
  }
  .chalk-player-head{padding:0 9px 4px!important}
  .chalk-player-head strong{font-size:15px!important}
  .chalk-player-head b{font-size:54px!important}
  .chalk-columns{font-size:11px!important;padding:4px 0!important}
  .chalk-row{font-size:23px!important;min-height:31px!important;padding:3px 1px!important}
  .chalk-row.chalk-start{font-size:10px!important;min-height:24px!important}
  .chalk-player.active:before{font-size:8px!important;padding:3px 5px!important}
  .chalk-entry input{min-height:40px!important;font-size:28px!important}
  .keypad-key,.keypad-enter{min-height:42px!important;font-size:19px!important}
  .keypad-enter{font-size:16px!important}
}

/* v4.38 — clearer phone zoom slider */
@media(max-width:699px){
  .chalk-zoom-controls{
    margin:0 0 9px!important;
    padding:8px 10px!important;
    background:#fff!important;
    border:1px solid rgba(23,32,28,.16)!important;
    border-radius:9px!important;
    box-shadow:0 2px 8px rgba(23,32,28,.08)!important;
  }
  .chalk-zoom-controls label{
    display:grid!important;
    grid-template-columns:auto 1fr auto!important;
    align-items:center!important;
    width:100%!important;
    gap:10px!important;
    font-size:11px!important;
  }
  .chalk-zoom-range{
    width:100%!important;
    min-width:0!important;
    height:32px!important;
    cursor:pointer!important;
  }
  .chalk-zoom-range::-webkit-slider-runnable-track{
    height:8px!important;
    background:#d9dfd6!important;
    border-radius:999px!important;
  }
  .chalk-zoom-range::-webkit-slider-thumb{
    -webkit-appearance:none!important;
    width:28px!important;
    height:28px!important;
    margin-top:-10px!important;
    border-radius:50%!important;
    border:3px solid #fff!important;
    background:#639216!important;
    box-shadow:0 1px 5px rgba(0,0,0,.28)!important;
  }
  .chalk-zoom-range::-moz-range-track{
    height:8px!important;
    background:#d9dfd6!important;
    border-radius:999px!important;
  }
  .chalk-zoom-range::-moz-range-thumb{
    width:24px!important;
    height:24px!important;
    border-radius:50%!important;
    border:3px solid #fff!important;
    background:#639216!important;
    box-shadow:0 1px 5px rgba(0,0,0,.28)!important;
  }
  .chalk-zoom-label{
    min-width:50px!important;
    padding:4px 6px!important;
    border-radius:5px!important;
    background:#17201c!important;
    color:#fff!important;
    text-align:center!important;
    font-size:12px!important;
  }
}

/* v4.38 — fixtures/results cards open their scorecard */
.fixture-scorecard-open{
  cursor:pointer;
  transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;
}
.fixture-scorecard-open:focus-visible{
  outline:3px solid #639216;
  outline-offset:3px;
}
@media(hover:hover) and (pointer:fine){
  .fixture-scorecard-open:hover{
    transform:translateY(-1px);
    box-shadow:0 5px 16px rgba(17,30,38,.10);
    border-color:rgba(17,30,38,.22);
  }
}
.fixture-team-name{
  font-weight:800;
  text-align:center;
  min-width:0;
}
#detail .public-scorecard-head .button{
  display:none!important;
}
#detail .public-scorecard-head{
  padding-right:42px;
}
#detail .public-scorecard-head h2{
  margin-bottom:6px;
}
#detail .public-scorecard-empty{
  margin-top:10px;
}

/* v4.38 — League/Cups dropdown navigation + fixture portrait alignment */

/* Desktop dropdowns */
#nav{
  overflow:visible!important;
}
#nav .nav-dropdown{
  position:relative!important;
  display:flex!important;
  align-items:stretch!important;
  flex:0 0 auto!important;
}
#nav .nav-dropdown details{
  position:relative!important;
}
#nav .nav-dropdown summary{
  list-style:none!important;
  cursor:pointer!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  min-height:100%!important;
  padding:16px 0!important;
  white-space:nowrap!important;
  font-size:14px!important;
  font-weight:700!important;
  border-bottom:3px solid transparent!important;
  color:var(--ink)!important;
}
#nav .nav-dropdown summary::-webkit-details-marker{display:none!important}
#nav .nav-dropdown.active summary{
  border-bottom-color:var(--ink)!important;
}
#nav .nav-dropdown-menu{
  position:absolute!important;
  z-index:2000!important;
  top:calc(100% + 1px)!important;
  left:0!important;
  min-width:220px!important;
  padding:7px!important;
  border:1px solid var(--line)!important;
  border-radius:8px!important;
  background:#fff!important;
  box-shadow:0 10px 28px rgba(0,0,0,.16)!important;
}
#nav .nav-dropdown-menu a{
  display:block!important;
  padding:9px 10px!important;
  border:0!important;
  border-radius:5px!important;
  color:var(--ink)!important;
  font-size:13px!important;
  font-weight:700!important;
}
#nav .nav-dropdown-menu a:hover,
#nav .nav-dropdown-menu a:focus{
  background:#f1f5f3!important;
}
#nav .nav-dropdown-menu .nav-generator-link{
  margin-top:4px!important;
  padding-top:10px!important;
  border-top:1px solid var(--line)!important;
}

/* Fixture/result line is always Home | score/v | Away. */
.fixture.fixture-card .match{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
  width:100%!important;
  align-items:center!important;
  column-gap:8px!important;
}
.fixture.fixture-card .match>.fixture-team-name:first-child{
  grid-column:1!important;
  text-align:left!important;
  justify-self:stretch!important;
  min-width:0!important;
}
.fixture.fixture-card .match>.score{
  grid-column:2!important;
  text-align:center!important;
  justify-self:center!important;
  margin:0!important;
}
.fixture.fixture-card .match>.fixture-team-name:last-child{
  grid-column:3!important;
  text-align:right!important;
  justify-self:stretch!important;
  min-width:0!important;
}

/* Mobile navigation stays usable without the old card hubs. */
@media(max-width:760px){
  #nav{
    overflow-x:auto!important;
    overflow-y:visible!important;
  }
  #nav .nav-dropdown{
    width:auto!important;
    display:flex!important;
  }
  #nav .nav-dropdown details{
    width:auto!important;
  }
  #nav .nav-dropdown summary{
    width:auto!important;
    min-height:auto!important;
    justify-content:flex-start!important;
    padding:16px 0!important;
  }
  #nav .nav-dropdown-menu{
    position:fixed!important;
    top:auto!important;
    left:4%!important;
    right:4%!important;
    width:auto!important;
    min-width:0!important;
    margin-top:1px!important;
  }

  .fixture.fixture-card .match{
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
    column-gap:5px!important;
  }
  .fixture.fixture-card .match>.fixture-team-name{
    font-size:12px!important;
    line-height:1.15!important;
    overflow-wrap:anywhere!important;
  }
  .fixture.fixture-card .match>.score{
    min-width:34px!important;
    padding:4px 7px!important;
    font-size:12px!important;
  }
}

/* v4.38 — centre fixture names around the versus/score on portrait phones */
@media(max-width:760px) and (orientation:portrait){
  .fixture.fixture-card .match{
    display:grid!important;
    grid-template-columns:minmax(0,auto) auto minmax(0,auto)!important;
    justify-content:center!important;
    align-items:center!important;
    column-gap:7px!important;
    width:100%!important;
  }
  .fixture.fixture-card .match>.fixture-team-name:first-child,
  .fixture.fixture-card .match>.fixture-team-name:last-child{
    justify-self:center!important;
    text-align:center!important;
    width:auto!important;
    max-width:34vw!important;
    line-height:1.15!important;
  }
  .fixture.fixture-card .match>.score{
    justify-self:center!important;
    align-self:center!important;
    margin:0!important;
    min-width:30px!important;
    text-align:center!important;
  }
}

/* v4.38 — force fixture teams and score onto one horizontal line on portrait phones */
@media(max-width:760px) and (orientation:portrait){
  .fixture.fixture-card .match{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    width:100%!important;
    min-width:0!important;
  }

  .fixture.fixture-card .match>.fixture-team-name{
    display:block!important;
    position:static!important;
    float:none!important;
    flex:0 1 38%!important;
    width:auto!important;
    max-width:38%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    line-height:1.1!important;
    vertical-align:middle!important;
    align-self:center!important;
    white-space:normal!important;
  }

  .fixture.fixture-card .match>.fixture-team-name:first-child{
    text-align:right!important;
  }

  .fixture.fixture-card .match>.fixture-team-name:last-child{
    text-align:left!important;
  }

  .fixture.fixture-card .match>.score{
    display:block!important;
    position:static!important;
    float:none!important;
    flex:0 0 auto!important;
    min-width:30px!important;
    margin:0 2px!important;
    padding:4px 6px!important;
    align-self:center!important;
    text-align:center!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
}

/* v4.38 — centre fixture teams around the versus/score on desktop too */
@media(min-width:761px){
  .fixture.fixture-card .match{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:14px!important;
    width:100%!important;
    min-width:0!important;
  }

  .fixture.fixture-card .match>.fixture-team-name{
    flex:0 1 38%!important;
    width:auto!important;
    max-width:38%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    line-height:1.15!important;
    align-self:center!important;
    white-space:normal!important;
  }

  .fixture.fixture-card .match>.fixture-team-name:first-child{
    text-align:right!important;
  }

  .fixture.fixture-card .match>.fixture-team-name:last-child{
    text-align:left!important;
  }

  .fixture.fixture-card .match>.score{
    flex:0 0 auto!important;
    min-width:42px!important;
    margin:0 4px!important;
    padding:5px 9px!important;
    text-align:center!important;
    align-self:center!important;
    white-space:nowrap!important;
  }
}

/* v4.38 — align all main navigation items on one horizontal baseline */
#nav{
  display:flex!important;
  align-items:stretch!important;
}

#nav>a,
#nav .nav-dropdown{
  display:flex!important;
  align-items:stretch!important;
}

#nav>a{
  align-items:center!important;
  min-height:52px!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:1!important;
}

#nav .nav-dropdown details{
  display:flex!important;
  align-items:stretch!important;
}

#nav .nav-dropdown summary{
  display:flex!important;
  align-items:center!important;
  min-height:52px!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:1!important;
}

#nav .great-white-nav-link{
  display:flex!important;
  align-items:center!important;
  min-height:52px!important;
  line-height:1!important;
}

#nav .great-white-nav-link span{
  display:flex!important;
  align-items:center!important;
  line-height:1!important;
}

@media(max-width:760px){
  #nav>a,
  #nav .nav-dropdown summary,
  #nav .great-white-nav-link{
    min-height:48px!important;
  }
}

/* v4.38 — restore mobile burger navigation; keep desktop alignment */
@media(max-width:760px){
  #nav{
    display:none!important;
    flex-direction:column!important;
    align-items:stretch!important;
    overflow:visible!important;
    padding:4px 14px 8px!important;
    gap:0!important;
    border-top:1px solid var(--line)!important;
  }

  #nav.mobile-nav-open{
    display:flex!important;
  }

  #nav>a,
  #nav .nav-dropdown{
    display:block!important;
    width:100%!important;
    min-height:0!important;
  }

  #nav>a{
    min-height:0!important;
    padding:10px 4px!important;
    line-height:1.25!important;
    border-bottom:1px solid var(--line)!important;
  }

  #nav .nav-dropdown details{
    display:block!important;
    width:100%!important;
  }

  #nav .nav-dropdown summary{
    min-height:0!important;
    width:100%!important;
    padding:10px 4px!important;
    line-height:1.25!important;
    border-bottom:1px solid var(--line)!important;
  }

  #nav .nav-dropdown-menu{
    position:static!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:4px 0 6px 14px!important;
    border:0!important;
    border-bottom:1px solid var(--line)!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#fff!important;
  }

  #nav .nav-dropdown-menu a{
    padding:9px 6px!important;
    font-size:13px!important;
  }

  #nav .great-white-nav-link{
    display:flex!important;
    width:100%!important;
    min-height:0!important;
    padding:10px 4px!important;
    align-items:center!important;
    line-height:1.25!important;
  }

  .mobile-menu-toggle{
    display:block!important;
  }
}

/* v4.38 — mobile navigation bar on live Singles/Pairs bracket pages */
@media(max-width:760px){
  body.public-bracket-only-page{
    padding-bottom:76px!important;
  }
  .public-bracket-only-app{
    padding-bottom:18px!important;
  }
}

/* v4.38 — standalone scorer game management */
.great-white-saved{
  margin:14px 0 18px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f7f8f5;
}
.great-white-saved-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:9px;
}
.great-white-saved-head h3{margin:0;font-size:17px}
.great-white-saved-head p{margin:0;color:var(--muted);font-size:12px}
.great-white-saved-list{display:grid;gap:8px}
.great-white-saved-game{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
  gap:8px;
}
.great-white-saved-continue{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
  min-width:0;
  padding:11px 12px;
  border:1px solid rgba(23,32,28,.16);
  border-radius:8px;
  background:#fff;
  color:#17201c;
  text-align:left;
  cursor:pointer;
}
.great-white-saved-continue strong{font-size:15px}
.great-white-saved-continue strong span{font-weight:500;margin:0 4px}
.great-white-saved-continue small{font-size:11px;color:var(--muted)}
.great-white-saved-remove{
  padding:8px 11px;
  border:1px solid #b95a50;
  border-radius:8px;
  background:#fff;
  color:#8e3027;
  font-weight:800;
  cursor:pointer;
}
.standalone-scorer-nav{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin:0 0 7px;
  padding:7px 8px;
  border:1px solid rgba(23,32,28,.15);
  border-radius:8px;
  background:#fff;
}
.standalone-scorer-nav button{
  min-height:34px;
  padding:6px 9px;
  border:1px solid rgba(23,32,28,.22);
  border-radius:6px;
  background:#f7f8f5;
  color:#17201c;
  font-size:11px;
  font-weight:850;
  cursor:pointer;
}
.standalone-scorer-nav button.danger{
  border-color:#b95a50;
  color:#8e3027;
  background:#fff;
}
@media(max-width:699px){
  .great-white-saved-game{
    grid-template-columns:minmax(0,1fr) 76px;
  }
  .great-white-saved-continue{
    padding:10px;
  }
  .standalone-scorer-nav{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
    padding:7px;
  }
  .standalone-scorer-nav button{
    min-height:42px;
    font-size:11px;
  }
  .standalone-scorer-nav button:last-child{
    grid-column:1/-1;
  }
}

/* v4.38 — scoreboard-left / keypad-right scorer layout */
.chalk-play-area{
  display:grid!important;
  grid-template-columns:minmax(0,1.7fr) minmax(250px,.95fr)!important;
  gap:12px!important;
  align-items:stretch!important;
  min-height:0!important;
  margin-top:6px!important;
}
.chalk-scoreboard,
.chalk-keypad-panel{
  min-width:0!important;
  min-height:0!important;
}
.chalk-scoreboard{
  display:flex!important;
}
.chalk-scoreboard .chalk-sides{
  flex:1 1 auto!important;
  margin:0!important;
}
.chalk-keypad-panel{
  display:flex!important;
  align-items:stretch!important;
}
.chalk-keypad-panel .chalk-entry,
.chalk-keypad-panel .chalk-bull{
  width:100%!important;
  margin:0!important;
  padding:10px!important;
  border:1px solid rgba(23,32,28,.14)!important;
  border-radius:10px!important;
  background:#ece8de!important;
  box-sizing:border-box!important;
}
.chalk-keypad-panel .chalk-entry form{
  width:100%!important;
  max-width:none!important;
  margin:7px 0 0!important;
}
.chalk-keypad-panel .chalk-entry input{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
.chalk-keypad-panel .chalk-keypad{
  width:100%!important;
  max-width:none!important;
}

.chalk-columns,
.chalk-row{
  grid-template-columns:42px minmax(0,1fr) minmax(0,1fr)!important;
}
.chalk-columns i,
.chalk-row i{
  font-style:normal!important;
  text-align:center!important;
}
.chalk-columns i{
  font-size:.8em!important;
}
.chalk-row i{
  font-size:.62em!important;
  opacity:.78!important;
  font-family:"Trebuchet MS","Segoe UI",sans-serif!important;
}
.chalk-row.chalk-start i{
  opacity:.55!important;
}

/* Desktop/tablet: make the left scoreboard visually dominant. */
@media(min-width:700px){
  .darts-scorer-modal.chalkboard{
    height:100dvh!important;
    min-height:0!important;
    overflow:hidden!important;
    padding:8px 12px 10px!important;
  }
  .chalk-play-area{
    height:calc(100dvh - 176px)!important;
    min-height:420px!important;
  }
  .chalk-scoreboard .chalk-player{
    height:auto!important;
    min-height:0!important;
  }
  .chalk-scoreboard .chalk-history{
    min-height:0!important;
    flex:1 1 auto!important;
    overflow-y:auto!important;
  }
  .chalk-player-head b{
    font-size:clamp(72px,10vh,112px)!important;
  }
  .chalk-row{
    font-size:clamp(25px,3.5vh,42px)!important;
    min-height:42px!important;
  }
  .chalk-keypad-panel .chalk-entry{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }
  .chalk-keypad-panel .chalk-entry>strong{
    font-size:16px!important;
  }
  .chalk-keypad-panel .chalk-entry input{
    min-height:52px!important;
    font-size:34px!important;
  }
  .chalk-keypad-panel .keypad-key,
  .chalk-keypad-panel .keypad-enter{
    min-height:50px!important;
    font-size:22px!important;
  }
  .chalk-keypad-panel .keypad-enter{
    font-size:18px!important;
  }
}

/* Portrait phone: still keep board left and keypad right, like a wall scorer. */
@media(max-width:699px){
  .darts-scorer-overlay{
    overflow:auto!important;
  }
  .darts-scorer-modal.chalkboard{
    min-height:100dvh!important;
    padding:6px 6px 110px!important;
  }
  .chalk-zoom-controls{
    margin-bottom:5px!important;
    padding:5px 7px!important;
  }
  .standalone-scorer-nav{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:4px!important;
    margin-bottom:5px!important;
    padding:5px!important;
  }
  .standalone-scorer-nav button{
    min-height:34px!important;
    padding:4px!important;
    font-size:9px!important;
  }
  .standalone-scorer-nav button:last-child{
    grid-column:auto!important;
  }
  .chalk-head{
    min-height:30px!important;
    padding:3px 4px 4px 80px!important;
  }
  .chalk-head strong{font-size:9px!important}
  .chalk-kicker{font-size:8px!important}
  .chalk-matchline{
    padding:2px 0!important;
  }
  .chalk-matchline strong{font-size:17px!important}

  .chalk-play-area{
    grid-template-columns:minmax(0,1.58fr) minmax(130px,.92fr)!important;
    gap:5px!important;
    min-height:430px!important;
    align-items:stretch!important;
  }
  .chalk-scoreboard .chalk-sides{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:4px!important;
    height:430px!important;
    min-height:430px!important;
    max-height:none!important;
  }
  .chalk-scoreboard .chalk-player{
    height:auto!important;
    min-height:0!important;
    padding:4px!important;
    border-width:3px!important;
  }
  .chalk-player-head{
    padding:0 4px 3px!important;
  }
  .chalk-player-head small{
    font-size:6px!important;
  }
  .chalk-player-head strong{
    font-size:11px!important;
    line-height:1.05!important;
  }
  .chalk-player-head b{
    font-size:39px!important;
    line-height:.92!important;
  }
  .chalk-player.active:before{
    top:3px!important;
    right:3px!important;
    font-size:6px!important;
    padding:2px 3px!important;
  }
  .chalk-columns{
    grid-template-columns:28px minmax(0,1fr) minmax(0,1fr)!important;
    font-size:7px!important;
    padding:3px 0!important;
    margin:0!important;
  }
  .chalk-history{
    padding:2px 1px 0 3px!important;
  }
  .chalk-row{
    grid-template-columns:28px minmax(0,1fr) minmax(0,1fr)!important;
    min-height:28px!important;
    padding:3px 1px!important;
    font-size:19px!important;
  }
  .chalk-row i{
    font-size:9px!important;
  }
  .chalk-row.chalk-start{
    min-height:24px!important;
    font-size:9px!important;
  }

  .chalk-keypad-panel .chalk-entry,
  .chalk-keypad-panel .chalk-bull{
    padding:6px!important;
    border-radius:7px!important;
  }
  .chalk-keypad-panel .chalk-entry{
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
  }
  .chalk-keypad-panel .chalk-entry>strong{
    min-height:28px!important;
    font-size:10px!important;
    line-height:1.05!important;
  }
  .chalk-keypad-panel .chalk-entry label{
    font-size:8px!important;
    margin:3px 0 2px!important;
  }
  .chalk-keypad-panel .chalk-entry input{
    min-height:38px!important;
    margin:0 0 5px!important;
    font-size:26px!important;
  }
  .chalk-keypad-panel .chalk-keypad{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:4px!important;
  }
  .chalk-keypad-panel .keypad-key,
  .chalk-keypad-panel .keypad-enter{
    min-height:43px!important;
    padding:2px!important;
    font-size:20px!important;
  }
  .chalk-keypad-panel .keypad-enter{
    font-size:14px!important;
  }
  .chalk-actions{
    margin-top:5px!important;
    padding-top:5px!important;
  }
}

/* Very narrow phones: preserve side-by-side layout, just tighten it further. */
@media(max-width:390px){
  .chalk-play-area{
    grid-template-columns:minmax(0,1.5fr) 124px!important;
  }
  .chalk-player-head b{font-size:35px!important}
  .chalk-row{font-size:17px!important}
  .chalk-keypad-panel .keypad-key,
  .chalk-keypad-panel .keypad-enter{
    min-height:40px!important;
    font-size:18px!important;
  }
}

/* v4.38 — maximise scorer area; controls moved to bottom */

/* Bottom management controls */
.standalone-scorer-nav-bottom{
  margin:10px 0 0!important;
}

/* Desktop/tablet remains board-left / keypad-right. */
@media(min-width:700px){
  .darts-scorer-modal.chalkboard{
    padding-top:6px!important;
  }
}

/* Mobile shared: let the overall scorer page scroll, so bottom settings remain reachable. */
@media(max-width:699px){
  .darts-scorer-overlay{
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  .darts-scorer-modal.chalkboard{
    height:auto!important;
    min-height:100dvh!important;
    overflow:visible!important;
    padding:4px 6px 100px!important;
  }

  /* Pull game content upward and keep the utility/header area compact. */
  .chalk-zoom-controls{
    margin:0 0 3px!important;
    padding:4px 6px!important;
  }
  .chalk-head{
    min-height:27px!important;
    padding:2px 4px 3px 76px!important;
  }
  .chalk-back{
    padding:4px 5px!important;
    font-size:9px!important;
  }
  .chalk-kicker{font-size:7px!important}
  .chalk-head strong{font-size:8px!important}
  .chalk-matchline{
    padding:1px 0 2px!important;
    margin:0!important;
  }
  .chalk-matchline strong{font-size:16px!important}

  .standalone-scorer-nav-bottom{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
    margin:10px 0 0!important;
    padding:7px!important;
  }
  .standalone-scorer-nav-bottom button{
    min-height:42px!important;
    padding:6px!important;
    font-size:10px!important;
  }
  .standalone-scorer-nav-bottom button:last-child{
    grid-column:1/-1!important;
  }
}

/* Portrait phone: long blackboards first, keypad BELOW them. */
@media(max-width:699px) and (orientation:portrait){
  .chalk-play-area{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
    min-height:0!important;
    margin-top:2px!important;
  }

  .chalk-scoreboard{
    width:100%!important;
    min-height:0!important;
  }

  .chalk-scoreboard .chalk-sides{
    height:470px!important;
    min-height:470px!important;
    max-height:none!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:5px!important;
  }

  .chalk-scoreboard .chalk-player{
    height:auto!important;
    min-height:0!important;
  }

  .chalk-scoreboard .chalk-history{
    flex:1 1 auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .chalk-keypad-panel{
    width:100%!important;
  }

  .chalk-keypad-panel .chalk-entry,
  .chalk-keypad-panel .chalk-bull{
    width:100%!important;
    padding:7px!important;
  }

  .chalk-keypad-panel .chalk-entry{
    display:block!important;
  }

  .chalk-keypad-panel .chalk-entry>strong{
    display:block!important;
    min-height:0!important;
    margin-bottom:3px!important;
    font-size:12px!important;
  }

  .chalk-keypad-panel .chalk-entry form{
    width:100%!important;
    margin:0!important;
  }

  .chalk-keypad-panel .chalk-entry input{
    width:min(220px,70vw)!important;
    min-height:42px!important;
    margin:0 auto 6px!important;
    font-size:30px!important;
  }

  .chalk-keypad-panel .chalk-keypad{
    width:100%!important;
    max-width:360px!important;
    margin:0 auto!important;
    grid-template-columns:repeat(3,1fr)!important;
    gap:5px!important;
  }

  .chalk-keypad-panel .keypad-key,
  .chalk-keypad-panel .keypad-enter{
    min-height:48px!important;
    font-size:21px!important;
  }
  .chalk-keypad-panel .keypad-enter{
    font-size:17px!important;
  }

  .chalk-actions{
    margin-top:7px!important;
  }
}

/* Landscape phone: keep the wall-scorer layout, but allow page scrolling to bottom controls. */
@media(max-width:699px) and (orientation:landscape){
  .darts-scorer-modal.chalkboard{
    padding-top:3px!important;
  }

  .chalk-play-area{
    grid-template-columns:minmax(0,1.65fr) minmax(135px,.9fr)!important;
    gap:5px!important;
    min-height:calc(100vw * .52)!important;
    margin-top:1px!important;
  }

  .chalk-scoreboard .chalk-sides{
    height:calc(100vw * .52)!important;
    min-height:310px!important;
    max-height:430px!important;
  }

  .chalk-keypad-panel .chalk-entry,
  .chalk-keypad-panel .chalk-bull{
    height:100%!important;
  }

  .chalk-keypad-panel .chalk-entry{
    justify-content:flex-start!important;
  }

  .chalk-keypad-panel .keypad-key,
  .chalk-keypad-panel .keypad-enter{
    min-height:38px!important;
  }

  .chalk-actions{
    margin-top:5px!important;
  }
}

/* Slightly taller portrait phones can use more board height. */
@media(max-width:699px) and (orientation:portrait) and (min-height:760px){
  .chalk-scoreboard .chalk-sides{
    height:520px!important;
    min-height:520px!important;
  }
}

/* v4.38 — scoring first, controls below; mobile 100% uses the old 80% visual size */

.scorer-lower-panel{
  margin-top:10px!important;
}

/* Keep the playing surface at the top of the page. */
.darts-scorer-modal.chalkboard{
  display:block!important;
}

/* Mobile scaling: 100% = previous 80% visual size.
   The slider now changes actual board/keypad sizing even where CSS zoom is unreliable. */
@media(max-width:699px){
  .darts-scorer-modal.chalkboard{
    --mobile-scorer-scale:1;
  }

  .chalk-play-area{
    transform-origin:top left!important;
  }

  /* Portrait baseline = old 80% look */
  .chalk-scoreboard .chalk-sides{
    height:calc(470px * .8 * var(--mobile-scorer-scale))!important;
    min-height:calc(470px * .8 * var(--mobile-scorer-scale))!important;
  }
  .chalk-player-head strong{
    font-size:calc(11px * .8 * var(--mobile-scorer-scale))!important;
  }
  .chalk-player-head b{
    font-size:calc(39px * .8 * var(--mobile-scorer-scale))!important;
  }
  .chalk-columns{
    font-size:calc(7px * .8 * var(--mobile-scorer-scale))!important;
  }
  .chalk-row{
    min-height:calc(28px * .8 * var(--mobile-scorer-scale))!important;
    font-size:calc(19px * .8 * var(--mobile-scorer-scale))!important;
  }
  .chalk-row i{
    font-size:calc(9px * .8 * var(--mobile-scorer-scale))!important;
  }
  .chalk-row.chalk-start{
    min-height:calc(24px * .8 * var(--mobile-scorer-scale))!important;
    font-size:calc(9px * .8 * var(--mobile-scorer-scale))!important;
  }

  .chalk-keypad-panel .chalk-entry>strong{
    font-size:calc(12px * .8 * var(--mobile-scorer-scale))!important;
  }
  .chalk-keypad-panel .chalk-entry input{
    min-height:calc(42px * .8 * var(--mobile-scorer-scale))!important;
    font-size:calc(30px * .8 * var(--mobile-scorer-scale))!important;
  }
  .chalk-keypad-panel .keypad-key,
  .chalk-keypad-panel .keypad-enter{
    min-height:calc(48px * .8 * var(--mobile-scorer-scale))!important;
    font-size:calc(21px * .8 * var(--mobile-scorer-scale))!important;
  }
  .chalk-keypad-panel .keypad-enter{
    font-size:calc(17px * .8 * var(--mobile-scorer-scale))!important;
  }

  /* The lower panel is deliberately below the playable area. */
  .scorer-lower-panel{
    margin-top:8px!important;
    padding-top:8px!important;
    border-top:1px solid rgba(23,32,28,.15)!important;
  }

  .chalk-matchline{
    margin:0 0 4px!important;
  }

  .chalk-head{
    position:relative!important;
    min-height:34px!important;
    padding:4px 6px 5px 82px!important;
    margin:0 0 6px!important;
  }

  .chalk-zoom-controls{
    margin:0!important;
  }

  /* Footer/settings are all below the scorer; overall page scrolls to reach them. */
  .chalk-actions{
    margin-top:8px!important;
  }
  .standalone-scorer-nav-bottom{
    margin-top:8px!important;
  }
}

/* Portrait: blackboards first, keypad underneath. */
@media(max-width:699px) and (orientation:portrait){
  .chalk-play-area{
    grid-template-columns:1fr!important;
    gap:6px!important;
    margin-top:0!important;
  }

  .chalk-scoreboard .chalk-sides{
    height:calc(470px * .8 * var(--mobile-scorer-scale))!important;
    min-height:calc(470px * .8 * var(--mobile-scorer-scale))!important;
  }

  .chalk-keypad-panel{
    margin-top:0!important;
  }
}

/* Landscape: blackboards left, keypad right.
   Keep the centre responsive to the same slider. */
@media(max-width:699px) and (orientation:landscape){
  .chalk-play-area{
    grid-template-columns:minmax(0,1.65fr) minmax(135px,.9fr)!important;
    gap:5px!important;
    min-height:0!important;
    margin-top:0!important;
  }

  .chalk-scoreboard .chalk-sides{
    height:calc(330px * .8 * var(--mobile-scorer-scale))!important;
    min-height:calc(330px * .8 * var(--mobile-scorer-scale))!important;
    max-height:none!important;
  }

  .chalk-player-head b{
    font-size:calc(39px * .8 * var(--mobile-scorer-scale))!important;
  }

  .chalk-row{
    min-height:calc(28px * .8 * var(--mobile-scorer-scale))!important;
    font-size:calc(18px * .8 * var(--mobile-scorer-scale))!important;
  }

  .chalk-keypad-panel .keypad-key,
  .chalk-keypad-panel .keypad-enter{
    min-height:calc(42px * .8 * var(--mobile-scorer-scale))!important;
    font-size:calc(19px * .8 * var(--mobile-scorer-scale))!important;
  }

  .chalk-keypad-panel .chalk-entry input{
    min-height:calc(38px * .8 * var(--mobile-scorer-scale))!important;
    font-size:calc(26px * .8 * var(--mobile-scorer-scale))!important;
  }
}

/* Desktop: leave the current successful board-left / keypad-right sizing intact,
   but keep the rules/zoom/settings below the playable area. */
@media(min-width:700px){
  .scorer-lower-panel{
    margin-top:8px!important;
    padding-top:7px!important;
    border-top:1px solid rgba(23,32,28,.14)!important;
  }
  .chalk-matchline{
    margin:0!important;
  }
  .chalk-head{
    margin-top:4px!important;
  }
  .chalk-zoom-controls{
    margin-top:5px!important;
  }
}

/* v4.38 — leg counts in boards, clearer bottom controls, desktop scrolling */

/* Remove the unexplained white vertical chalk marks. */
.chalk-player::after{
  display:none!important;
  content:none!important;
}

/* Leg score now lives inside each board. */
.chalk-leg-count{
  position:absolute!important;
  top:7px!important;
  z-index:6!important;
  display:flex!important;
  align-items:baseline!important;
  gap:4px!important;
  color:#f4f2e8!important;
  font-family:"Trebuchet MS","Segoe UI",sans-serif!important;
  pointer-events:none!important;
}
.chalk-leg-count-home{
  right:8px!important;
}
.chalk-leg-count-away{
  left:8px!important;
}
.chalk-leg-count span{
  font-size:8px!important;
  font-weight:900!important;
  letter-spacing:.1em!important;
  opacity:.78!important;
}
.chalk-leg-count b{
  font-size:18px!important;
  line-height:1!important;
}

/* Keep THROW readable without fighting the new leg counters. */
.chalk-player.active:before{
  top:31px!important;
}

/* Lower information/settings area should be deliberate and readable. */
.scorer-lower-panel{
  color:#17201c!important;
}
.chalk-head{
  min-height:48px!important;
}
.chalk-back{
  min-height:40px!important;
  padding:8px 11px!important;
  font-size:12px!important;
  font-weight:900!important;
}

/* Make Undo and the lower actions the same visual weight as the management buttons. */
.chalk-actions{
  opacity:1!important;
  gap:7px!important;
  font-size:12px!important;
}
.chalk-actions:before{
  display:none!important;
  content:none!important;
}
.chalk-actions button,
.chalk-actions .chalk-main-site{
  min-height:42px!important;
  padding:8px 12px!important;
  font-size:11px!important;
  font-weight:850!important;
  background:#fff!important;
  color:#17201c!important;
  border:1px solid rgba(23,32,28,.22)!important;
}
.chalk-actions .scorer-undo{
  margin:0!important;
}
.chalk-actions span{
  display:block!important;
  width:100%!important;
  order:10!important;
  margin-top:2px!important;
  color:#17201c!important;
  opacity:1!important;
  font-size:12px!important;
  font-weight:700!important;
  text-align:center!important;
}

/* Management buttons stay large because they are intentionally below the scorer. */
.standalone-scorer-nav-bottom button{
  min-height:44px!important;
  padding:8px 10px!important;
  font-size:11px!important;
  font-weight:850!important;
}

/* Desktop/laptop: allow the OUTER scorer page to scroll to lower settings.
   Board histories still scroll independently. */
@media(min-width:700px){
  .darts-scorer-overlay{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .darts-scorer-modal.chalkboard{
    height:auto!important;
    min-height:100dvh!important;
    max-height:none!important;
    overflow:visible!important;
    padding-bottom:24px!important;
  }
  .chalk-play-area{
    height:auto!important;
    min-height:520px!important;
  }
  .chalk-scoreboard .chalk-sides{
    height:520px!important;
    min-height:520px!important;
    max-height:none!important;
  }
  .chalk-scoreboard .chalk-player{
    height:auto!important;
  }
  .chalk-keypad-panel .chalk-entry,
  .chalk-keypad-panel .chalk-bull{
    min-height:520px!important;
  }
  .scorer-lower-panel{
    margin-top:10px!important;
  }
}

/* Phone refinements */
@media(max-width:699px){
  .chalk-leg-count{
    top:5px!important;
  }
  .chalk-leg-count-home{right:5px!important}
  .chalk-leg-count-away{left:5px!important}
  .chalk-leg-count span{
    font-size:6px!important;
  }
  .chalk-leg-count b{
    font-size:14px!important;
  }
  .chalk-player.active:before{
    top:24px!important;
  }

  .chalk-back{
    min-height:38px!important;
    padding:7px 9px!important;
    font-size:11px!important;
  }

  .chalk-actions{
    margin-top:9px!important;
    padding-top:8px!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .chalk-actions button,
  .chalk-actions .chalk-main-site{
    min-height:44px!important;
    padding:8px 11px!important;
    font-size:11px!important;
  }
  .chalk-actions span{
    font-size:12px!important;
    line-height:1.3!important;
  }

  .standalone-scorer-nav-bottom button{
    min-height:46px!important;
    font-size:11px!important;
  }
}

/* v4.38 — optional tap-to-speak darts scoring */
.voice-score-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:7px;
  align-items:center;
  margin:0 0 7px;
}
.voice-score-button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:42px;
  padding:7px 10px;
  border:1px solid #476b1e;
  border-radius:7px;
  background:#d0f267;
  color:#17201c;
  font-weight:900;
  cursor:pointer;
}
.voice-score-button b{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#476b1e;
  color:transparent;
  font-size:0;
}
.voice-score-button.is-listening{
  background:#17201c;
  color:#fff;
  border-color:#17201c;
}
.voice-score-button.is-listening b{
  background:#d0f267;
  box-shadow:0 0 0 4px rgba(208,242,103,.22);
}
.voice-score-button.is-confirming{
  background:#fff;
  color:#17201c;
  border-color:#639216;
}
.voice-score-button:disabled{
  cursor:not-allowed;
  opacity:.5;
}
.voice-score-status{
  min-width:0;
  font-size:10px;
  line-height:1.25;
  font-weight:700;
  color:#405047;
}
.voice-score-status[data-state="confirm"]{color:#416514}
.voice-score-status[data-state="error"]{color:#8b2f28}
.voice-score-status[data-state="accepted"]{color:#416514}

@media(max-width:699px){
  .voice-score-row{
    grid-template-columns:1fr;
    gap:4px;
    margin-bottom:5px;
  }
  .voice-score-button{
    min-height:42px;
    width:100%;
    padding:6px 8px;
    font-size:12px;
  }
  .voice-score-status{
    min-height:24px;
    font-size:9px;
    text-align:center;
  }
}

/* v4.38 — compact hold-to-talk microphone beside score box */
.voice-score-row{
  display:none!important;
}
.voice-score-inline{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 42px!important;
  grid-template-areas:
    "score mic"
    "status status"!important;
  gap:4px 6px!important;
  align-items:center!important;
  width:100%!important;
  margin:0 0 5px!important;
}
.voice-score-inline #darts-visit-score{
  grid-area:score!important;
  margin:0!important;
}
.voice-score-button-inline{
  grid-area:mic!important;
  width:42px!important;
  min-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0!important;
  border-radius:8px!important;
  touch-action:none!important;
  user-select:none!important;
  -webkit-user-select:none!important;
}
.voice-mic-icon{
  display:block!important;
  font-size:20px!important;
  line-height:1!important;
}
.voice-score-status-inline{
  grid-area:status!important;
  min-height:12px!important;
  margin:0!important;
  padding:0!important;
  font-size:9px!important;
  line-height:1.1!important;
  text-align:center!important;
}
.voice-score-status-inline:empty{
  display:none!important;
}
.voice-score-button-inline.is-listening{
  transform:scale(.96)!important;
}
.voice-score-button-inline.is-confirming{
  border-width:2px!important;
}

@media(max-width:699px){
  .voice-score-inline{
    grid-template-columns:minmax(0,1fr) 40px!important;
    gap:3px 5px!important;
    margin-bottom:4px!important;
  }
  .voice-score-button-inline{
    width:40px!important;
    min-width:40px!important;
    height:40px!important;
    min-height:40px!important;
  }
  .voice-mic-icon{
    font-size:19px!important;
  }
  .voice-score-status-inline{
    min-height:10px!important;
    font-size:8px!important;
  }
}

/* v4.38 — compact Scoring System shortcut on the public home page */
.home-scorer-strip{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  min-height:48px;
  margin:-22px 0 30px;
  padding:8px 14px;
  box-sizing:border-box;
  border:1px solid #1e2b31;
  border-radius:7px;
  background:#111e26;
  color:#fff;
  text-decoration:none;
  font-size:15px;
  font-weight:900;
}
.home-scorer-strip img{
  width:34px;
  height:34px;
  object-fit:contain;
  flex:0 0 auto;
}
.home-scorer-strip>span{
  margin-left:auto;
  font-size:20px;
  line-height:1;
}
.home-scorer-strip:hover{
  text-decoration:none;
}
.home-scorer-strip:focus-visible{
  outline:3px solid #d0f267;
  outline-offset:3px;
}

@media(max-width:600px){
  .home-scorer-strip{
    min-height:38px;
    margin:-28px 0 18px;
    padding:4px 10px;
    gap:7px;
    border-radius:5px;
    font-size:13px;
  }
  .home-scorer-strip img{
    width:26px;
    height:26px;
  }
  .home-scorer-strip>span{
    font-size:17px;
  }
}

/* v4.38 — portrait spacing and persistent voice mode */

/* Keep a proper gap below Cups & Competitions on portrait home view. */
@media(max-width:600px) and (orientation:portrait){
  .home-scorer-strip{
    margin:12px 0 18px!important;
  }
}

/* 110% is the portrait-mobile default visual scale. */
@media(max-width:699px) and (orientation:portrait){
  .darts-scorer-modal.chalkboard{
    --mobile-scorer-scale:1.1;
  }
}

/* Compact but clear voice state beside the score box. */
.voice-score-status-inline[data-state="listening"],
.voice-score-status-inline[data-state="confirm"],
.voice-score-status-inline[data-state="accepted"],
.voice-score-status-inline[data-state="cancelled"]{
  display:block!important;
  margin-top:2px!important;
  padding:4px 6px!important;
  border:1px solid rgba(23,32,28,.18)!important;
  border-radius:5px!important;
  background:#fff!important;
  color:#17201c!important;
  font-size:9px!important;
  font-weight:850!important;
  line-height:1.15!important;
}
.voice-score-button-inline.is-listening{
  background:#17201c!important;
  color:#fff!important;
  border-color:#17201c!important;
}
.voice-score-button-inline.is-confirming{
  background:#d0f267!important;
  color:#17201c!important;
  border-color:#476b1e!important;
}

/* v4.38 — cleaner lower scorer controls */

/* The lower score/rules line sits further down beneath the playable area. */
.scorer-lower-panel{
  margin-top:18px!important;
  padding-top:10px!important;
}
.chalk-head-lower{
  min-height:0!important;
  padding:6px 8px!important;
  margin:6px 0 8px!important;
  text-align:center!important;
}
.chalk-head-lower>div{
  width:100%!important;
}
.chalk-head-lower .chalk-kicker{
  display:block!important;
  margin-bottom:3px!important;
}
.chalk-head-lower strong{
  display:block!important;
}

/* Undo Last is kept prominent, right aligned and visually distinct. */
.chalk-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
}
.chalk-actions .scorer-undo{
  margin-left:auto!important;
  background:#fff1ef!important;
  border-color:#b95a50!important;
  color:#8e3027!important;
}
.chalk-actions .scorer-undo:hover{
  background:#fbe2df!important;
}
.chalk-actions span{
  flex-basis:100%!important;
}

/* Remove the old forced 110% CSS default; JavaScript now maps displayed
   100% to the former preferred 110% portrait visual size. */
@media(max-width:699px) and (orientation:portrait){
  .darts-scorer-modal.chalkboard{
    --mobile-scorer-scale:1!important;
  }
  .scorer-lower-panel{
    margin-top:16px!important;
  }
  .chalk-head-lower{
    padding:6px 4px!important;
  }
  .chalk-actions .scorer-undo{
    min-width:120px!important;
  }
}

/* Landscape/laptop lower controls remain below the keypad and scroll into view. */
@media(min-width:700px), (max-width:699px) and (orientation:landscape){
  .scorer-lower-panel{
    margin-top:20px!important;
  }
}

/* v4.38 — scorer alignment, compact landscape and in-scorer update support */

/* Portrait: score field lines up with 1/4/7/C, mic with 3/6/9/backspace. */
@media(max-width:699px) and (orientation:portrait){
  .voice-score-inline{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-template-areas:
      "score score mic"
      "status status status"!important;
    gap:5px!important;
    width:100%!important;
    max-width:360px!important;
    margin:0 auto 5px!important;
  }
  .voice-score-inline #darts-visit-score{
    grid-column:1 / 3!important;
    width:100%!important;
    max-width:none!important;
    min-height:calc(48px * .8 * var(--mobile-scorer-scale))!important;
    height:calc(48px * .8 * var(--mobile-scorer-scale))!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  .voice-score-button-inline{
    grid-column:3!important;
    width:100%!important;
    min-width:0!important;
    height:calc(48px * .8 * var(--mobile-scorer-scale))!important;
    min-height:calc(48px * .8 * var(--mobile-scorer-scale))!important;
  }
  .voice-score-status-inline{
    grid-column:1 / -1!important;
  }

  .chalk-actions{
    justify-content:flex-end!important;
  }
  .chalk-actions .scorer-undo{
    margin-left:auto!important;
  }

  /* Keep the rules / live-score / zoom block genuinely last. */
  .scorer-lower-panel{
    margin-top:18px!important;
  }
}

/* Phone landscape — including wider iPhones that otherwise hit desktop CSS. */
@media(orientation:landscape) and (max-height:500px){
  .darts-scorer-overlay{
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  .darts-scorer-modal.chalkboard{
    height:auto!important;
    min-height:100dvh!important;
    max-height:none!important;
    overflow:visible!important;
    padding:3px 5px 60px!important;
  }
  .chalk-play-area{
    display:grid!important;
    grid-template-columns:minmax(0,1.65fr) minmax(190px,.9fr)!important;
    gap:6px!important;
    align-items:start!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
  }
  .chalk-scoreboard{
    align-self:start!important;
  }
  .chalk-scoreboard .chalk-sides{
    height:calc(100dvh - 12px)!important;
    min-height:265px!important;
    max-height:390px!important;
  }
  .chalk-keypad-panel{
    align-self:start!important;
    min-height:0!important;
  }
  .chalk-keypad-panel .chalk-entry,
  .chalk-keypad-panel .chalk-bull{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    padding:5px!important;
  }
  .chalk-keypad-panel .chalk-entry>strong{
    display:block!important;
    min-height:0!important;
    margin:0 0 2px!important;
    padding:0!important;
    font-size:10px!important;
    line-height:1.05!important;
  }
  .chalk-keypad-panel .chalk-entry form{
    margin:0!important;
  }
  .chalk-keypad-panel .chalk-entry label{
    display:none!important;
  }
  .voice-score-inline{
    grid-template-columns:minmax(0,1fr) 38px!important;
    grid-template-areas:
      "score mic"
      "status status"!important;
    gap:3px 4px!important;
    margin:0 0 3px!important;
  }
  .voice-score-inline #darts-visit-score{
    width:100%!important;
    max-width:none!important;
    min-height:34px!important;
    height:34px!important;
    margin:0!important;
    font-size:22px!important;
  }
  .voice-score-button-inline{
    width:38px!important;
    min-width:38px!important;
    height:34px!important;
    min-height:34px!important;
  }
  .voice-mic-icon{
    font-size:17px!important;
  }
  .voice-score-status-inline{
    min-height:0!important;
    padding:2px 4px!important;
    margin:0!important;
    font-size:7px!important;
  }
  .voice-score-status-inline:empty{
    display:none!important;
  }
  .chalk-keypad-panel .chalk-keypad{
    gap:3px!important;
    margin:0!important;
  }
  .chalk-keypad-panel .keypad-key,
  .chalk-keypad-panel .keypad-enter{
    min-height:34px!important;
    height:34px!important;
    padding:1px!important;
    font-size:16px!important;
  }
  .chalk-keypad-panel .keypad-enter{
    font-size:13px!important;
  }

  /* Everything secondary lives below the playable board/keypad. */
  .chalk-actions{
    margin-top:7px!important;
    padding-top:6px!important;
    justify-content:flex-end!important;
  }
  .chalk-actions .scorer-undo{
    margin-left:auto!important;
  }
  .standalone-scorer-nav-bottom{
    margin-top:7px!important;
  }
  .scorer-lower-panel{
    margin-top:14px!important;
    padding-top:8px!important;
  }
}

/* Let the update prompt sit above the scorer if a new build arrives mid-game. */
.darts-scorer-overlay ~ .app-update-banner,
.app-update-banner{
  z-index:100000!important;
}

/* v4.38 — Undo directly under Enter, clearer HOME/AWAY boards, smoother zoom */

/* Undo becomes part of the keypad, full width just like Enter. */
.scorer-undo-under-keypad{
  grid-column:1 / -1!important;
  width:100%!important;
  min-height:46px!important;
  margin:0!important;
  padding:8px 12px!important;
  border:1px solid #b95a50!important;
  border-radius:8px!important;
  background:#fff1ef!important;
  color:#8e3027!important;
  font-size:13px!important;
  font-weight:900!important;
  cursor:pointer!important;
}
.scorer-undo-under-keypad:disabled{
  opacity:.42!important;
  cursor:default!important;
}
.chalk-actions .scorer-undo{
  display:none!important;
}

/* Player identity sits higher and toward the outer edge of each blackboard. */
.chalk-scoreboard .chalk-player:first-child .chalk-player-head{
  text-align:left!important;
}
.chalk-scoreboard .chalk-player:last-child .chalk-player-head{
  text-align:right!important;
}
.chalk-scoreboard .chalk-player:first-child .chalk-player-head small,
.chalk-scoreboard .chalk-player:first-child .chalk-player-head strong{
  text-align:left!important;
}
.chalk-scoreboard .chalk-player:last-child .chalk-player-head small,
.chalk-scoreboard .chalk-player:last-child .chalk-player-head strong{
  text-align:right!important;
}

/* Portrait: keep Undo full-width under Enter and preserve keypad alignment. */
@media(max-width:699px) and (orientation:portrait){
  .scorer-undo-under-keypad{
    min-height:calc(48px * .8 * var(--mobile-scorer-scale))!important;
    font-size:calc(14px * .8 * var(--mobile-scorer-scale))!important;
  }
}

/* Landscape phone: restore the previous keypad dimensions;
   only remove the excess top padding so it sits higher. */
@media(orientation:landscape) and (max-height:500px){
  .chalk-keypad-panel .chalk-entry,
  .chalk-keypad-panel .chalk-bull{
    padding:5px!important;
  }

  .chalk-keypad-panel .chalk-entry>strong{
    margin:0 0 4px!important;
    font-size:12px!important;
    line-height:1.1!important;
  }

  .voice-score-inline{
    grid-template-columns:minmax(0,1fr) 42px!important;
    gap:4px 5px!important;
    margin:0 0 5px!important;
  }

  .voice-score-inline #darts-visit-score{
    min-height:42px!important;
    height:42px!important;
    font-size:26px!important;
  }

  .voice-score-button-inline{
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    min-height:42px!important;
  }

  .voice-mic-icon{
    font-size:19px!important;
  }

  .chalk-keypad-panel .chalk-keypad{
    gap:4px!important;
  }

  .chalk-keypad-panel .keypad-key,
  .chalk-keypad-panel .keypad-enter{
    min-height:42px!important;
    height:42px!important;
    font-size:19px!important;
  }

  .chalk-keypad-panel .keypad-enter{
    font-size:15px!important;
  }

  .scorer-undo-under-keypad{
    min-height:42px!important;
    height:42px!important;
    font-size:13px!important;
  }

  /* Keep the right-hand card high without shrinking the actual controls. */
  .chalk-keypad-panel{
    transform:translateY(-2px)!important;
  }
}

/* Keep DARTS / SCORED / LEFT columns evenly spaced at all phone sizes. */
@media(max-width:699px){
  .chalk-columns,
  .chalk-row{
    grid-template-columns:34px minmax(0,1fr) minmax(0,1fr)!important;
  }
}

/* v4.38 — lock the main scorer view; standalone extras live below it */

/* Zoom now scales the whole playable area; keep legacy mobile variable neutral. */
@media(max-width:699px){
  .darts-scorer-modal.chalkboard{
    --mobile-scorer-scale:1!important;
  }
}

/* Standalone-only Shark Stats / Extras below every existing control. */
.shark-extras{
  margin:14px 0 10px!important;
  border:1px solid #145ba1!important;
  border-radius:9px!important;
  background:#eef5fb!important;
  color:#17201c!important;
  overflow:hidden!important;
}
.shark-extras summary{
  padding:12px 14px!important;
  background:#145ba1!important;
  color:#fff!important;
  font-size:14px!important;
  font-weight:900!important;
  cursor:pointer!important;
  list-style:none!important;
}
.shark-extras summary::-webkit-details-marker{display:none!important}
.shark-extras summary:after{
  content:"▾"!important;
  float:right!important;
  font-size:16px!important;
}
.shark-extras[open] summary:after{content:"▴"!important}
.shark-extras-body{
  padding:12px!important;
}
.shark-leg-order,
.shark-outshot{
  display:grid!important;
  gap:3px!important;
  margin-bottom:10px!important;
  padding:9px 10px!important;
  border:1px solid rgba(20,91,161,.22)!important;
  border-radius:7px!important;
  background:#fff!important;
}
.shark-leg-order strong,
.shark-outshot strong{
  color:#145ba1!important;
  font-size:11px!important;
  text-transform:uppercase!important;
  letter-spacing:.06em!important;
}
.shark-leg-order span,
.shark-outshot span{
  font-size:12px!important;
  font-weight:700!important;
}
.shark-stats-scroll{
  overflow-x:auto!important;
}
.shark-stats-table{
  width:100%!important;
  min-width:420px!important;
  border-collapse:collapse!important;
  background:#fff!important;
}
.shark-stats-table th,
.shark-stats-table td{
  padding:8px 9px!important;
  border-bottom:1px solid rgba(23,32,28,.1)!important;
  text-align:center!important;
  font-size:11px!important;
}
.shark-stats-table th:first-child{
  text-align:left!important;
}
.shark-stats-table thead th{
  background:#e4eff9!important;
  color:#145ba1!important;
  font-weight:900!important;
}

@media(max-width:699px){
  .shark-extras{
    margin-top:12px!important;
  }
  .shark-extras summary{
    padding:11px 12px!important;
    font-size:13px!important;
  }
  .shark-extras-body{
    padding:9px!important;
  }
}

/* v4.38 — public team venue address and directions */
.team-venue-address-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  max-width:520px;
  margin-top:10px;
  padding:10px 11px;
  border:1px solid rgba(23,32,28,.14);
  border-radius:9px;
  background:rgba(255,255,255,.56);
}
.team-venue-address-copy{
  min-width:0;
  display:grid;
  gap:2px;
}
.team-venue-address-copy span{
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.06em;
  opacity:.72;
}
.team-venue-address-copy strong{
  font-size:12px;
  line-height:1.3;
  font-weight:750;
}
.team-directions-button{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:36px;
  padding:7px 11px;
  border:1px solid #17251d;
  border-radius:7px;
  background:#17251d;
  color:#fff;
  text-decoration:none;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.team-directions-button:hover{text-decoration:none}
@media(max-width:900px){
  .team-venue-address-card{max-width:430px}
}
@media(max-width:760px){
  .team-venue-address-card{
    width:100%;
    max-width:none;
    box-sizing:border-box;
    margin-top:9px;
  }
}
@media(max-width:480px){
  .team-venue-address-card{
    align-items:stretch;
    flex-direction:column;
    gap:8px;
  }
  .team-directions-button{
    width:100%;
    min-height:40px;
    box-sizing:border-box;
  }
}

/* v4.38 — team profile spacing/alignment refinement */

/* Shared: keep the yellow summary card compact and neatly aligned. */
.team-profile-main{
  box-sizing:border-box!important;
}
.team-profile-main h2{
  margin-bottom:12px!important;
}
.team-profile-facts,
.team-venue-address-card{
  box-sizing:border-box!important;
}
.team-profile-facts>div,
.team-venue-address-card{
  min-width:0!important;
}
.team-venue-photo{
  object-fit:cover!important;
  object-position:center!important;
}

/* Desktop: use the empty right side for a genuinely useful venue image. */
@media(min-width:901px){
  .team-profile-main.has-venue-image{
    min-height:224px!important;
    padding:18px 300px 18px 22px!important;
  }
  .team-venue-photo-wrap{
    top:16px!important;
    right:18px!important;
    bottom:16px!important;
    width:258px!important;
    height:auto!important;
    transform:none!important;
    border-radius:10px!important;
  }
  .team-profile-facts{
    width:100%!important;
    max-width:620px!important;
    grid-template-columns:minmax(0,1.35fr) minmax(120px,.65fr)!important;
    gap:8px!important;
  }
  .team-venue-address-card{
    width:100%!important;
    max-width:620px!important;
    margin-top:8px!important;
  }
}

/* Tablet / phone landscape: two clean zones, information left and image right. */
@media(min-width:601px) and (max-width:900px){
  .team-profile-main.has-venue-image{
    min-height:205px!important;
    padding:16px 250px 16px 18px!important;
  }
  .team-venue-photo-wrap{
    top:14px!important;
    right:14px!important;
    bottom:14px!important;
    width:218px!important;
    height:auto!important;
    transform:none!important;
    border-radius:9px!important;
  }
  .team-profile-main h2{
    margin:6px 0 11px!important;
  }
  .team-profile-facts{
    width:100%!important;
    max-width:none!important;
    grid-template-columns:minmax(0,1.35fr) minmax(105px,.65fr)!important;
    gap:7px!important;
  }
  .team-venue-address-card{
    width:100%!important;
    max-width:none!important;
    margin-top:7px!important;
    padding:8px 9px!important;
  }
}

/* Portrait phone: stop squeezing a tiny image down the right.
   Give the photograph the full width of the card, then stack the useful facts below it. */
@media(max-width:600px) and (orientation:portrait){
  .team-profile-main,
  .team-profile-main.has-venue-image{
    min-height:0!important;
    padding:12px!important;
  }
  .team-profile-main.has-venue-image .team-venue-photo-wrap{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    height:clamp(140px,42vw,190px)!important;
    margin:0 0 11px!important;
    transform:none!important;
    border-radius:9px!important;
  }
  .team-profile-main h2{
    margin:6px 0 10px!important;
    font-size:clamp(26px,8vw,34px)!important;
  }
  .team-profile-facts{
    width:100%!important;
    max-width:none!important;
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
  }
  .team-profile-facts>div{
    padding:8px 9px!important;
  }
  .team-venue-address-card{
    width:100%!important;
    max-width:none!important;
    margin-top:6px!important;
    padding:8px 9px!important;
  }
  .team-venue-address-copy strong{
    font-size:11px!important;
  }
}

/* Very narrow phones: keep the cards in one clean vertical line. */
@media(max-width:390px) and (orientation:portrait){
  .team-profile-facts{
    grid-template-columns:1fr!important;
  }
  .team-venue-address-card{
    flex-direction:column!important;
    align-items:stretch!important;
    gap:7px!important;
  }
  .team-directions-button{
    width:100%!important;
    box-sizing:border-box!important;
  }
}

/* Short landscape phones: use the width, not extra height. */
@media(orientation:landscape) and (max-height:500px) and (min-width:601px){
  .team-profile-main.has-venue-image{
    min-height:188px!important;
    padding:13px 238px 13px 16px!important;
  }
  .team-venue-photo-wrap{
    top:12px!important;
    right:12px!important;
    bottom:12px!important;
    width:210px!important;
  }
  .team-profile-main h2{
    margin:4px 0 8px!important;
    font-size:28px!important;
  }
  .team-profile-facts>div{
    padding:7px 8px!important;
  }
  .team-venue-address-card{
    margin-top:6px!important;
    padding:7px 8px!important;
  }
  .team-directions-button{
    min-height:34px!important;
    padding:6px 9px!important;
  }
}
\n/* v4.38 — semi-final draw-on-the-night treatment */\n.cup-tree-match:has(.cup-tree-match-head strong){box-sizing:border-box}\n.cup-tree-match .cup-tree-match-head strong{white-space:nowrap}\n
/* v4.38 — scorecard rule guidance / failsafe cues */
.scorecard-safety-note{
  display:flex;
  align-items:center;
  gap:10px;
  margin:8px 0 12px;
  padding:9px 11px;
  border:1px solid #bfd7c4;
  border-radius:8px;
  background:#eff8f1;
  color:#223b2a;
  font-size:11px;
}
.scorecard-safety-note strong{
  flex:0 0 auto;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.score-game.awaiting-first-nomination{
  position:relative;
}
.score-player-entry select.nomination-waiting{
  opacity:.55;
  cursor:not-allowed;
  background:#f0f2f1;
}
.restore-card-action{
  border-color:#3f6f4b!important;
  color:#2d5b39!important;
  background:#eef8f0!important;
}
@media(max-width:600px){
  .scorecard-safety-note{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
}

/* v4.38 — desktop hover-to-open League / Cups menus */
@media(min-width:761px) and (hover:hover) and (pointer:fine){
  #nav .nav-dropdown summary{
    transition:color .12s ease;
  }
  #nav .nav-dropdown:hover summary{
    color:var(--lime);
  }
  #nav .nav-dropdown-menu{
    margin-top:0;
  }
}

/* v4.38 — sturdier desktop dropdowns + stronger back arrows */
@media(min-width:761px) and (hover:hover) and (pointer:fine){
  #nav .nav-dropdown details{
    min-height:100%;
  }
  #nav .nav-dropdown details[open]::after{
    content:"";
    position:absolute;
    left:-14px;
    right:-28px;
    top:100%;
    height:14px;
    background:transparent;
  }
  #nav .nav-dropdown-menu{
    top:100%!important;
  }
}
.main-site-back-link{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  text-decoration:none!important;
  font-weight:800!important;
}
.main-site-back-arrow{
  display:inline-grid!important;
  place-items:center!important;
  width:30px!important;
  height:30px!important;
  flex:0 0 30px!important;
  border-radius:50%!important;
  background:#111e26!important;
  color:#fff!important;
  font-size:20px!important;
  font-weight:900!important;
  line-height:1!important;
}
.main-site-back-button{
  gap:9px!important;
}
.main-site-back-button .main-site-back-arrow{
  width:28px!important;
  height:28px!important;
  flex-basis:28px!important;
  background:currentColor!important;
  color:#fff!important;
}

/* v4.38 — stable league-table resizing */
.standings-grid{
  width:100%;
  max-width:100%;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.standings-grid .standings-panel{
  min-width:0!important;
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.standings-grid .standings-wrap{
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.standings-grid .standings-table{
  width:100%;
  max-width:100%;
}
@media(max-width:1050px){
  .standings-grid{grid-template-columns:1fr!important}
}
@media(max-width:600px){
  .standings-grid .standings-wrap{overflow-x:hidden}
  .standings-grid .standings-table{min-width:0!important}
}

/* v4.38 — Super Admin bottom navigation */
.admin-bottom-bar{
  position:sticky;
  bottom:0;
  z-index:80;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  padding:10px 12px;
  background:rgba(255,255,255,.97);
  border-top:1px solid var(--line);
  box-shadow:0 -5px 18px rgba(17,30,38,.09);
}
.admin-bottom-bar button,
.admin-bottom-bar .button{
  min-height:38px;
  padding:8px 13px;
  font-size:12px;
  font-weight:800;
}
@media(max-width:600px){
  .admin-bottom-bar{
    justify-content:stretch;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
  }
  .admin-bottom-bar button,
  .admin-bottom-bar .button{
    width:100%;
    min-width:0;
    padding:8px 6px;
    text-align:center;
  }
  .admin-bottom-bar .button:nth-child(4){
    grid-column:1 / span 2;
  }
}

/* v4.38 — faster, persistent voice-scoring feedback */
.voice-score-inline{
  position:relative;
}
.voice-score-button.is-listening{
  box-shadow:0 0 0 3px rgba(123,190,63,.22);
  animation:voiceListeningPulse 1.15s ease-in-out infinite;
}
.voice-score-button.is-confirming{
  box-shadow:0 0 0 3px rgba(255,196,63,.26);
}
.voice-score-off{
  min-height:36px;
  padding:6px 9px;
  border:1px solid #8b969c;
  border-radius:7px;
  background:#fff;
  color:#283942;
  font-size:10px;
  font-weight:900;
  letter-spacing:.04em;
  white-space:nowrap;
}
.voice-score-off[hidden]{display:none!important}
.voice-score-status[data-state="listening"],
.voice-score-status[data-state="already-on"]{
  font-weight:900;
}
.voice-score-status[data-state="hearing"]{
  font-weight:900;
  color:#315f21;
}
.voice-score-status[data-state="confirm"]{
  font-weight:900;
}
@keyframes voiceListeningPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.05)}
}
@media(prefers-reduced-motion:reduce){
  .voice-score-button.is-listening{animation:none}
}

/* v4.38 — Super Admin match-night random tools */
.admin-match-night-tools{
  margin:10px 4% 14px;
  padding:18px 20px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
}
.admin-match-night-tools-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
}
.admin-match-night-tools-head h2{
  margin:2px 0 4px;
  font-size:24px;
}
.admin-match-night-tools-head p{
  margin:0;
  color:var(--muted);
}
.admin-match-night-tools-grid{
  display:grid;
  grid-template-columns:minmax(240px,.72fr) minmax(420px,1.28fr);
  gap:12px;
}
.admin-random-tool{
  min-width:0;
  padding:16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafb;
}
.admin-random-tool-head{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-bottom:13px;
}
.admin-random-tool-head h3{
  margin:0 0 3px;
  font-size:18px;
}
.admin-random-tool-head p{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}
.admin-tool-icon{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:50%;
  background:#111e26;
  color:#d0f267;
  font-size:19px;
  font-weight:900;
}
.coin-toss-stage{
  min-height:122px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  margin:3px 0 12px;
  border:1px dashed #b8c4c9;
  border-radius:9px;
  background:#fff;
}
.coin-toss-coin{
  display:grid;
  place-items:center;
  width:66px;
  height:66px;
  border-radius:50%;
  border:5px solid #111e26;
  background:#d0f267;
  color:#111e26;
  font-size:27px;
  font-weight:900;
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.55);
}
.coin-toss-coin.is-tossing{
  animation:coinTossSpin .22s linear infinite;
}
.coin-toss-stage strong{
  font-size:16px;
  letter-spacing:.02em;
}
.coin-toss-tool>button{
  width:100%;
}
.semi-final-team-inputs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 10px;
}
.semi-final-team-inputs label{
  margin:0;
}
.semi-final-team-inputs input{
  width:100%;
  box-sizing:border-box;
  min-height:42px;
}
.semi-final-draw-actions{
  display:flex;
  gap:8px;
  margin-top:11px;
  flex-wrap:wrap;
}
.semi-final-draw-note{
  margin:8px 0 0;
}
.semi-final-draw-error{
  margin-top:10px;
  padding:8px 10px;
  border-left:4px solid #a12d2d;
  background:#fff0f0;
  color:#772020;
  font-size:12px;
  font-weight:800;
}
.semi-final-draw-results{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:13px;
}
.semi-final-match-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  grid-template-areas:
    "title title title"
    "home versus away";
  gap:7px 10px;
  align-items:center;
  padding:12px;
  border:2px solid #173f70;
  border-radius:9px;
  background:#fff;
}
.semi-final-match-card>span{
  grid-area:title;
  font-size:11px;
  font-weight:900;
  color:#173f70;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.semi-final-match-card>div:first-of-type{grid-area:home}
.semi-final-match-card>b{grid-area:versus;font-size:14px;color:var(--muted)}
.semi-final-match-card>div:last-of-type{grid-area:away}
.semi-final-match-card div{
  min-width:0;
}
.semi-final-match-card small{
  display:block;
  margin-bottom:2px;
  font-size:9px;
  font-weight:900;
  color:var(--muted);
}
.semi-final-match-card strong{
  display:block;
  overflow-wrap:anywhere;
  font-size:15px;
}
.semi-final-draw-count{
  grid-column:1/-1;
  margin:0;
  text-align:center;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}
.semi-final-draw-results.draw-pop .semi-final-match-card{
  animation:drawPop .28s ease-out;
}
@keyframes coinTossSpin{
  0%{transform:rotateY(0deg) scale(1)}
  50%{transform:rotateY(180deg) scale(.9)}
  100%{transform:rotateY(360deg) scale(1)}
}
@keyframes drawPop{
  from{transform:translateY(4px);opacity:.45}
  to{transform:translateY(0);opacity:1}
}
@media(prefers-reduced-motion:reduce){
  .coin-toss-coin.is-tossing,
  .semi-final-draw-results.draw-pop .semi-final-match-card{animation:none}
}
@media(max-width:900px){
  .admin-match-night-tools-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .admin-match-night-tools{
    margin:8px 14px 12px;
    padding:14px;
  }
  .semi-final-team-inputs{grid-template-columns:1fr}
  .semi-final-draw-results{grid-template-columns:1fr}
  .semi-final-draw-actions{display:grid;grid-template-columns:1fr 1fr}
  .semi-final-draw-actions button{width:100%}
}

/* v4.38 — Super Admin phone tidy-up */
@media(max-width:700px){
  body[data-organiser="true"]>header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:
      "brand signout"
      "league league"
      "actions actions"!important;
    gap:8px 10px!important;
    align-items:center!important;
    padding:10px 12px 9px!important;
    overflow:visible!important;
  }
  body[data-organiser="true"]>header>.brand{
    grid-area:brand!important;
    min-width:0!important;
    max-width:100%!important;
    gap:8px!important;
    font-size:18px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }
  body[data-organiser="true"]>header>.brand .brand-logo{
    width:48px!important;
    height:48px!important;
    flex:0 0 48px!important;
  }
  body[data-organiser="true"]>header>.brand span{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body[data-organiser="true"]>header .league-switch{
    grid-area:league!important;
    order:initial!important;
    width:100%!important;
    margin:0!important;
  }
  body[data-organiser="true"]>header .league-switch select{
    width:100%!important;
    min-height:42px!important;
    font-size:15px!important;
  }
  body[data-organiser="true"]>header .admin-header-actions{
    grid-area:actions!important;
    order:initial!important;
    width:100%!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    justify-content:flex-start!important;
    gap:6px!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    border-top:1px solid rgba(255,255,255,.14)!important;
    padding:8px 0 1px!important;
  }
  body[data-organiser="true"]>header .admin-header-actions::-webkit-scrollbar{display:none}
  body[data-organiser="true"]>header .admin-header-actions>a,
  body[data-organiser="true"]>header .admin-header-actions .admin-options-menu,
  body[data-organiser="true"]>header .admin-header-actions .admin-signout{
    flex:0 0 auto!important;
    margin:0!important;
  }
  body[data-organiser="true"]>header .admin-header-actions>a,
  body[data-organiser="true"]>header .admin-header-actions .admin-options-menu>summary,
  body[data-organiser="true"]>header .admin-header-actions .admin-signout button{
    min-height:36px!important;
    padding:7px 10px!important;
    font-size:11px!important;
    white-space:nowrap!important;
    line-height:1!important;
  }
  body[data-organiser="true"]>header .admin-signout{
    position:absolute!important;
    top:11px!important;
    right:12px!important;
    z-index:5!important;
  }
  body[data-organiser="true"]>header .admin-signout button{
    min-width:0!important;
    background:#fff!important;
  }
  .admin-options-panel{
    left:12px!important;
    right:12px!important;
    width:auto!important;
    max-height:65vh!important;
    overflow:auto!important;
  }
}

/* v4.38 — real coin artwork + richer flip */
.coin-toss-coin{
  width:86px!important;
  height:86px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  perspective:500px;
}
.coin-toss-coin img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:50%;
  filter:drop-shadow(0 5px 5px rgba(17,30,38,.24));
}
.coin-toss-coin.is-tossing{
  animation:coinToss3D .9s cubic-bezier(.22,.65,.2,1) infinite!important;
}
.coin-toss-coin.has-result{
  animation:coinLand .28s ease-out;
}
@keyframes coinToss3D{
  0%{transform:translateY(0) rotateY(0deg) rotateX(0deg) scale(1)}
  25%{transform:translateY(-24px) rotateY(180deg) rotateX(14deg) scale(1.06)}
  50%{transform:translateY(-34px) rotateY(360deg) rotateX(-12deg) scale(.96)}
  75%{transform:translateY(-18px) rotateY(540deg) rotateX(10deg) scale(1.03)}
  100%{transform:translateY(0) rotateY(720deg) rotateX(0deg) scale(1)}
}
@keyframes coinLand{
  from{transform:scale(.9);opacity:.7}
  to{transform:scale(1);opacity:1}
}
@media(prefers-reduced-motion:reduce){
  .coin-toss-coin.is-tossing,.coin-toss-coin.has-result{animation:none!important}
}

/* v4.38 — app-like Super Admin bottom bar */
.admin-bottom-bar{
  position:sticky!important;
  bottom:0!important;
  z-index:90!important;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:0!important;
  padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important;
  background:rgba(255,255,255,.98)!important;
  border-top:1px solid #d5dde1!important;
  box-shadow:0 -4px 15px rgba(17,30,38,.08)!important;
  backdrop-filter:blur(10px);
}
.admin-bottom-bar button,
.admin-bottom-bar a{
  min-width:0!important;
  min-height:52px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  padding:4px 3px!important;
  margin:0!important;
  border:0!important;
  border-radius:9px!important;
  background:transparent!important;
  color:#263943!important;
  text-decoration:none!important;
  font:inherit!important;
  font-size:9px!important;
  font-weight:800!important;
  line-height:1.05!important;
  box-shadow:none!important;
}
.admin-bottom-bar button:hover,
.admin-bottom-bar button:focus-visible,
.admin-bottom-bar a:hover,
.admin-bottom-bar a:focus-visible{
  background:#eef3f5!important;
  outline:none!important;
}
.admin-bottom-bar .admin-bottom-home{
  background:#111e26!important;
  color:#fff!important;
  margin:0 2px!important;
}
.admin-bottom-icon{
  display:grid!important;
  place-items:center!important;
  width:26px!important;
  height:26px!important;
  font-size:21px!important;
  font-weight:900!important;
  line-height:1!important;
}
.admin-bottom-home .admin-bottom-icon{
  color:#d0f267!important;
}
@media(min-width:701px){
  .admin-bottom-bar{
    max-width:760px;
    margin:0 auto;
    border:1px solid #d5dde1!important;
    border-bottom:0!important;
    border-radius:12px 12px 0 0;
  }
  .admin-bottom-bar button,
  .admin-bottom-bar a{
    min-height:48px!important;
    font-size:10px!important;
  }
}

/* v4.38 — Super Admin player sign-on / registration */
.player-registration-panel{border:2px solid #173f70}
.registration-team-list{display:grid;gap:10px}
.registration-team-card{border:1px solid var(--line);border-radius:10px;background:#f8fafb;overflow:hidden}
.registration-team-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;background:#eef4f8;border-bottom:1px solid var(--line)}
.registration-team-head h3{margin:0 0 2px;font-size:17px}
.registration-team-head p{margin:0;color:var(--muted);font-size:11px}
.registration-player-list{background:#fff}
.registration-player-row{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(115px,.6fr));gap:8px;align-items:center;padding:9px 11px;border-bottom:1px solid var(--line)}
.registration-player-row:last-child{border-bottom:0}
.registration-player-name{min-width:0;display:flex;flex-direction:column}
.registration-player-name strong{font-size:14px}
.registration-player-name span{font-size:10px;color:var(--muted)}
.registration-check{display:flex!important;align-items:center;gap:6px;margin:0!important;min-height:34px;padding:5px 7px;border:1px solid #d8e0e4;border-radius:7px;background:#f8fafb;font-size:11px;font-weight:800}
.registration-check input{width:18px;height:18px;margin:0;flex:0 0 18px}
.registration-check.signed{background:#f2faee}
.registration-check.pdc{background:#fff9eb}
.registration-team-foot{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 11px;background:#f8fafb;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}
.registration-limit-error{color:#9a3026}
.registration-over-limit{border-color:#ba4b42;box-shadow:0 0 0 2px rgba(186,75,66,.12)}
.registration-over-limit [data-reg-pdc-count]{color:#a12820}
.player-registration-flags{display:flex;flex-wrap:wrap;gap:8px 14px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#f8fafb}
.player-registration-flags .check-label{margin:0}
.player-registration-flags .field-help{width:100%}
.player-status-badges{display:inline-flex!important;flex-wrap:wrap;gap:4px}
.player-status-badges .badge{font-size:9px}
.registration-active{background:#e9f6e4!important;color:#315f21!important}
.registration-inactive{background:#eceff1!important;color:#5f6d74!important}
.registration-u18{background:#eef4ff!important;color:#214e86!important}
.registration-pdc{background:#fff2cf!important;color:#75520c!important}
@media(max-width:760px){
  .registration-team-head{align-items:flex-start;flex-direction:column}
  .registration-team-head button{width:100%}
  .registration-player-row{grid-template-columns:1fr 1fr;gap:6px;padding:9px}
  .registration-player-name{grid-column:1/-1;padding-bottom:2px}
  .registration-check{min-height:40px;font-size:10px}
  .registration-check.pdc{grid-column:1/-1}
  .registration-team-foot{align-items:flex-start;flex-direction:column}
}
@media(max-width:380px){
  .registration-player-row{grid-template-columns:1fr}
  .registration-player-name,.registration-check.pdc{grid-column:auto}
}

/* v4.38 — player registration filters */
.registration-filters{
  display:grid;
  grid-template-columns:minmax(180px,.8fr) minmax(220px,1fr) auto;
  gap:8px 10px;
  align-items:end;
  margin:0 0 8px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f8fafb;
}
.registration-filters label{margin:0}
.registration-filters select,
.registration-filters input{width:100%;min-height:42px;box-sizing:border-box}
.registration-filters button{min-height:42px;white-space:nowrap}
.registration-filter-status{
  min-height:18px;
  margin:0 2px 8px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}
.registration-no-results{
  padding:14px;
  border:1px dashed var(--line);
  border-radius:9px;
  background:#f8fafb;
  color:var(--muted);
  text-align:center;
  font-weight:800;
}
.registration-team-card[hidden],
.registration-player-row[hidden]{display:none!important}
@media(max-width:700px){
  .registration-filters{grid-template-columns:1fr 1fr}
  .registration-filters button{grid-column:1/-1;width:100%}
}
@media(max-width:460px){
  .registration-filters{grid-template-columns:1fr}
  .registration-filters button{grid-column:auto}
}

/* v4.38 — inline player transfer/delete in registration list */
.registration-player-row{
  grid-template-columns:minmax(180px,1.25fr) repeat(3,minmax(105px,.5fr)) minmax(280px,1fr)!important;
}
.registration-player-actions{
  display:grid;
  grid-template-columns:minmax(145px,1fr) auto auto;
  gap:6px;
  align-items:end;
}
.registration-transfer{
  margin:0!important;
  font-size:9px!important;
  font-weight:900!important;
  color:var(--muted);
}
.registration-transfer select{
  width:100%;
  min-height:36px;
  margin-top:2px;
  padding:6px 7px;
  font-size:11px;
}
.registration-move-button,
.registration-delete-button{
  min-height:36px!important;
  padding:6px 9px!important;
  font-size:10px!important;
  white-space:nowrap;
}
@media(max-width:1000px){
  .registration-player-row{
    grid-template-columns:minmax(180px,1fr) repeat(3,minmax(100px,.55fr))!important;
  }
  .registration-player-actions{
    grid-column:1/-1;
  }
}
@media(max-width:760px){
  .registration-player-row{
    grid-template-columns:1fr 1fr!important;
  }
  .registration-player-name{grid-column:1/-1!important}
  .registration-check.pdc{grid-column:1/-1!important}
  .registration-player-actions{
    grid-column:1/-1;
    grid-template-columns:1fr auto;
  }
  .registration-transfer{grid-column:1/-1}
  .registration-move-button,
  .registration-delete-button{width:100%}
}
@media(max-width:390px){
  .registration-player-row{grid-template-columns:1fr!important}
  .registration-player-name,
  .registration-check.pdc,
  .registration-player-actions{grid-column:auto!important}
  .registration-player-actions{grid-template-columns:1fr}
  .registration-transfer{grid-column:auto}
}

/* v4.38 — Gallery on homepage after News */
.home-news-section,
.home-gallery-section{
  margin-top:28px;
}
.home-gallery-section .page-head{
  margin-bottom:12px;
}
.home-gallery-section .page-head h1{
  margin:0;
}
.home-gallery-section .public-gallery{
  margin-top:0;
}
@media(min-width:901px){
  .home-gallery-section .public-gallery{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
@media(max-width:700px){
  .home-news-section,
  .home-gallery-section{
    margin-top:20px;
  }
  .home-gallery-section .public-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .home-gallery-section .public-gallery figcaption{
    padding:8px;
  }
}
@media(max-width:430px){
  .home-gallery-section .public-gallery{
    grid-template-columns:1fr;
  }
}

/* v4.38 — clearer hold-to-talk voice scoring */
.voice-score-inline{
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:stretch!important;
  gap:7px!important;
}
.voice-score-button{
  min-width:86px!important;
  min-height:56px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1px!important;
  touch-action:none!important;
  user-select:none!important;
  -webkit-user-select:none!important;
}
.voice-score-button .voice-mic-icon{
  font-size:24px!important;
  line-height:1!important;
}
.voice-mic-label{
  display:block!important;
  font-size:9px!important;
  font-weight:900!important;
  letter-spacing:.05em!important;
  line-height:1!important;
}
.voice-score-button.is-holding{
  background:#d0f267!important;
  color:#111e26!important;
  border-color:#d0f267!important;
  box-shadow:0 0 0 4px rgba(208,242,103,.28)!important;
  transform:scale(.98);
  animation:voiceHoldPulse .85s ease-in-out infinite!important;
}
.voice-score-instruction{
  grid-column:1/-1;
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:7px;
  padding:5px 7px;
  border-radius:7px;
  background:#eef3f5;
  color:#263943;
  text-align:center;
}
.voice-score-instruction strong{
  font-size:12px;
  letter-spacing:.03em;
}
.voice-score-instruction span{
  font-size:10px;
  color:#65757d;
}
.voice-score-status{
  grid-column:1/-1;
  min-height:24px!important;
  padding:5px 7px!important;
  text-align:center!important;
  font-size:12px!important;
  font-weight:900!important;
  line-height:1.15!important;
}
.voice-score-status[data-state="listening"],
.voice-score-status[data-state="hearing"],
.voice-score-status[data-state="confirm"]{
  background:#111e26!important;
  color:#d0f267!important;
  border-radius:7px;
}
@keyframes voiceHoldPulse{
  0%,100%{box-shadow:0 0 0 3px rgba(208,242,103,.22)}
  50%{box-shadow:0 0 0 7px rgba(208,242,103,.11)}
}
@media(max-width:600px){
  .voice-score-button{
    min-width:92px!important;
    min-height:60px!important;
  }
  .voice-score-instruction{
    display:grid;
    gap:1px;
  }
  .voice-score-instruction strong{font-size:13px}
  .voice-score-instruction span{font-size:10px}
  .voice-score-status{font-size:13px!important}
}
@media(prefers-reduced-motion:reduce){
  .voice-score-button.is-holding{animation:none!important}
}

/* v4.38 — Super Admin bottom controls always visible */
body[data-organiser="true"]{
  padding-bottom:calc(72px + env(safe-area-inset-bottom))!important;
}
.admin-bottom-bar{
  position:fixed!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  z-index:999!important;
  border-radius:0!important;
  border-left:0!important;
  border-right:0!important;
  border-bottom:0!important;
}
@media(min-width:701px){
  body[data-organiser="true"]{
    padding-bottom:66px!important;
  }
  .admin-bottom-bar{
    left:50%!important;
    right:auto!important;
    width:min(760px,calc(100% - 24px))!important;
    transform:translateX(-50%)!important;
    border:1px solid #d5dde1!important;
    border-bottom:0!important;
    border-radius:12px 12px 0 0!important;
  }
}


/* v4.38 — private captain / committee messaging */
.message-nav-link{position:relative}.message-nav-link.has-unread{border-color:#b34a3f!important;background:#fff3f1!important;color:#8d2e25!important}.message-nav-count,.message-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#b5362d;color:#fff;font-size:10px;font-weight:900;line-height:1}.message-nav-count[hidden]{display:none!important}
.messages-page{padding-bottom:76px}.message-shell{max-width:1050px;margin:auto;padding:22px 18px 96px}.message-page-head{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end;margin-bottom:16px}.message-page-head>.main-site-back-link{grid-column:1/-1}.message-page-head h1{margin:3px 0 4px}.message-page-head p{margin:0;color:var(--muted)}.message-compose{margin-bottom:14px}.message-compose-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.message-compose-grid .wide{grid-column:1/-1}.message-tabs{display:flex;gap:7px;margin:14px 0 8px}.message-tabs a{display:flex;align-items:center;gap:7px;padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-weight:900;text-decoration:none}.message-tabs a.selected{background:#111e26;color:#fff;border-color:#111e26}.message-list{display:grid;gap:8px}.message-list>.panel-head{margin-bottom:2px}.message-card{padding:13px 14px;border:1px solid var(--line);border-radius:9px;background:#fff}.message-card.unread{border-left:5px solid #145ba1;background:#f4f9ff}.message-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.message-card-head h3{margin:2px 0 3px;font-size:18px}.message-card-head p{margin:0;color:var(--muted);font-size:12px}.message-unread-dot{padding:4px 7px;border-radius:999px;background:#145ba1;color:#fff;font-size:9px;font-weight:900}.message-body{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);line-height:1.5;white-space:normal}.message-actions{display:flex;gap:7px;align-items:center;margin-top:11px}.message-actions form{margin:0}.message-bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:999;display:grid;grid-template-columns:repeat(4,1fr);padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));background:rgba(255,255,255,.98);border-top:1px solid #d5dde1;box-shadow:0 -4px 15px rgba(17,30,38,.08)}.message-bottom-bar a,.message-bottom-bar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:50px;border:0;background:transparent;color:#263943;text-decoration:none;font:inherit;font-size:18px;font-weight:900}.message-bottom-bar span{font-size:9px}
@media(max-width:650px){.message-shell{padding:14px 12px 92px}.message-page-head{grid-template-columns:1fr}.message-page-head>button{width:100%}.message-compose-grid{grid-template-columns:1fr}.message-compose-grid .wide{grid-column:auto}.message-card-head{gap:7px}.message-actions{flex-wrap:wrap}.message-actions .button,.message-actions button{min-height:38px}.captain-head-actions .message-nav-link{order:-1}}

/* v4.38 — explicit Super Admin / Captain View switching */
.admin-role-switch{
  background:#d0f267!important;
  border-color:#d0f267!important;
  color:#111e26!important;
  font-weight:900!important;
}
.access-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.access-choice-card{display:grid;gap:8px;padding:22px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(17,30,38,.07)}
.access-choice-card strong{font-size:23px}.access-choice-card span{color:var(--muted);line-height:1.45}.access-choice-card button{margin-top:8px}
.access-choice-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:#111e26;color:#d0f267;font-size:26px}
.captain-choice{background:#f5fae8;border-color:#c9df83}.captain-choice .access-choice-icon{background:#d0f267;color:#111e26}
.access-choice-note{margin-top:16px;padding:11px 13px;border-radius:9px;background:#eef3f5;color:#42545d}
.captain-view-mode-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;margin-bottom:14px;border:2px solid #145ba1;border-radius:12px;background:#eef6ff}
.captain-view-mode-banner h2{margin:3px 0 4px}.captain-view-mode-banner p{margin:0;color:#47606e}
.captain-return-admin{background:#111e26!important;color:#fff!important;border-color:#111e26!important;white-space:nowrap}
.captain-view-active{border:2px solid #145ba1!important;background:#f7fbff!important}
@media(max-width:700px){
  .access-choice-grid{grid-template-columns:1fr}
  .captain-view-mode-banner{align-items:stretch;flex-direction:column}
  .captain-view-mode-banner .captain-return-admin{width:100%}
  .admin-role-switch{order:-2}
}

/* v4.38 — familiar mobile messaging experience */
.messages-page{background:#edf1f3}
.message-shell{max-width:860px!important;padding:0 12px 92px!important}
.message-app-header{
  position:sticky;top:0;z-index:20;
  display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;
  gap:10px;align-items:center;
  margin:0 -12px 10px;padding:12px 14px;
  background:#111e26;color:#fff;
  box-shadow:0 3px 14px rgba(17,30,38,.18)
}
.message-back{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#fff;text-decoration:none;font-size:24px;font-weight:900}
.message-back:hover{background:rgba(255,255,255,.1)}
.message-app-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#d0f267;color:#111e26;font-weight:900}
.message-app-title{min-width:0}.message-app-title h1{margin:0;font-size:20px;color:#fff}.message-app-title p{margin:1px 0 0;font-size:10px;color:#c7d2d7}.message-app-title .eyebrow{color:#d0f267}
.message-notify-button{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:44px!important;padding:5px!important;border:0!important;background:transparent!important;color:#fff!important;font-size:18px!important}.message-notify-button span{font-size:8px;font-weight:800}
.message-view-mode{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:8px 0 10px;padding:9px 11px;border-radius:9px;background:#e6f2ff;border:1px solid #9ec8ef;color:#214f76;font-size:11px}.message-view-mode span{flex:1}.message-view-mode a{font-weight:900;color:#145ba1}
.message-app-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0 10px;padding:4px;border-radius:12px;background:#dfe6e9}
.message-app-tabs a{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;min-height:42px;border-radius:9px;color:#52636b;text-decoration:none;font-weight:900;font-size:13px}
.message-app-tabs a.selected{background:#fff;color:#111e26;box-shadow:0 2px 8px rgba(17,30,38,.08)}
.message-tab-icon{font-size:15px}.message-app-tabs .message-count{position:absolute;right:12px;top:10px}
.message-chat-compose{margin:0 0 10px;padding:0!important;border:0!important;background:transparent!important}
.message-chat-compose details{border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(17,30,38,.07);overflow:hidden}
.message-chat-compose summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none}.message-chat-compose summary::-webkit-details-marker{display:none}
.message-chat-compose summary>span:last-child{display:grid;gap:1px}.message-chat-compose summary strong{font-size:14px}.message-chat-compose summary small{color:var(--muted);font-size:10px}
.compose-plus{display:grid!important;place-items:center;width:34px;height:34px;border-radius:50%;background:#d0f267;color:#111e26;font-size:24px;font-weight:400!important}
.message-compose-form{padding:0 14px 14px}.message-compose-grid{grid-template-columns:1fr 1fr}.message-compose-grid select,.message-compose-grid input,.message-compose-grid textarea{border-radius:9px;background:#f8fafb}
.message-send-button{display:flex;align-items:center;justify-content:center;gap:8px;min-width:130px;background:#145ba1!important}
.message-conversation-list{display:grid;gap:7px;padding:0!important;border:0!important;background:transparent!important}
.message-list-head{display:flex;align-items:end;justify-content:space-between;gap:10px;padding:6px 3px}.message-list-head h2{margin:0;font-size:18px}.message-list-head p{margin:2px 0 0;color:var(--muted);font-size:10px}
.message-thread-row{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:start;padding:11px 12px;border-radius:12px;background:#fff;box-shadow:0 2px 9px rgba(17,30,38,.06)}
.message-thread-row.unread{background:#f5faff;box-shadow:inset 4px 0 0 #145ba1,0 2px 9px rgba(17,30,38,.06)}
.message-contact-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#d8e2e7;color:#263943;font-size:16px;font-weight:900}
.message-thread-main{min-width:0}.message-thread-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.message-thread-top strong{font-size:13px;min-width:0}.message-thread-top strong small{font-weight:600;color:var(--muted)}.message-thread-top time{flex:0 0 auto;color:#7b888f;font-size:9px}
.message-thread-main h3{margin:2px 0 7px;font-size:12px;color:#58676e}
.message-bubble{width:fit-content;max-width:min(92%,650px);padding:9px 11px;border-radius:4px 12px 12px 12px;line-height:1.45;font-size:13px;white-space:normal}
.message-bubble.incoming{background:#edf2f5;color:#1d2b32}.message-bubble.outgoing{margin-left:auto;background:#dcf7c8;color:#1d2b32;border-radius:12px 4px 12px 12px}
.message-row-actions{display:flex;align-items:center;gap:10px;margin-top:7px}.message-row-actions form{margin:0}.message-reply,.message-mark-read{border:0!important;background:transparent!important;padding:2px!important;color:#145ba1!important;font-size:10px!important;font-weight:900!important;text-decoration:none}.message-mark-read{color:#567078!important}
.message-unread-dot{align-self:center;width:10px!important;min-width:10px!important;height:10px!important;padding:0!important;border-radius:50%!important;background:#145ba1!important}
.message-read-state{text-align:right;margin-top:4px;font-size:9px;font-weight:900}.message-read-state.pending{color:#7a888e}.message-read-state.seen{color:#1773b9}
.sent-list .message-contact-avatar{background:#d0f267;color:#111e26}
.message-empty{display:grid;place-items:center;gap:5px;padding:30px 16px;border-radius:12px;background:#fff;color:#66777f;text-align:center}.message-empty>span{font-size:30px}.message-empty strong{color:#263943}.message-empty p{margin:0;font-size:11px}
.message-bottom-bar{background:#fff!important}
.message-bottom-bar a,.message-bottom-bar button{font-size:19px!important}
.message-bottom-bar span{font-size:8px!important}
@media(max-width:650px){
  .message-shell{padding-left:8px!important;padding-right:8px!important}
  .message-app-header{margin-left:-8px;margin-right:-8px;padding:10px 9px}
  .message-app-avatar{width:38px;height:38px}
  .message-app-title h1{font-size:18px}
  .message-compose-grid{grid-template-columns:1fr}
  .message-compose-grid .wide{grid-column:auto}
  .message-thread-row{padding:9px;grid-template-columns:auto minmax(0,1fr) auto}
  .message-contact-avatar{width:38px;height:38px}
  .message-bubble{max-width:96%;font-size:12px}
}

/* v4.38 — polished Captain Dashboard header / action menu */
.captain-dashboard-header{
  display:grid!important;
  grid-template-columns:minmax(220px,.9fr) minmax(420px,1.6fr)!important;
  gap:18px!important;
  align-items:stretch!important;
  margin:0 0 22px!important;
  padding:0!important;
  border:1px solid #d8e0e4!important;
  border-radius:16px!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 8px 26px rgba(17,30,38,.08)!important;
}
.captain-dashboard-header.captain-view-active{
  border:1px solid #9fc4e5!important;
  background:#fff!important;
}
.captain-dashboard-identity{
  position:relative;
  display:flex;
  align-items:center;
  gap:13px;
  min-width:0;
  padding:20px 18px;
  background:#111e26;
  color:#fff;
}
.captain-dashboard-identity::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:5px;
  background:#d0f267;
}
.captain-dashboard-icon{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  flex:0 0 58px;
  border-radius:50%;
  background:#d0f267;
  color:#111e26;
  font-size:27px;
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.35);
}
.captain-dashboard-copy{min-width:0}
.captain-dashboard-copy .eyebrow{
  color:#d0f267!important;
  font-size:10px!important;
  letter-spacing:.08em!important;
}
.captain-dashboard-copy h2{
  margin:4px 0 4px!important;
  color:#fff!important;
  font-size:clamp(24px,3vw,34px)!important;
  line-height:1.05!important;
  overflow-wrap:anywhere;
}
.captain-dashboard-copy p{
  margin:0!important;
  color:#c8d2d6!important;
  font-size:13px!important;
}
.captain-quick-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  align-content:center!important;
  padding:12px!important;
  margin:0!important;
}
.captain-quick-actions .captain-action-card{
  position:relative;
  min-width:0;
  min-height:74px;
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  padding:11px 12px!important;
  margin:0!important;
  border:1px solid #dbe2e6!important;
  border-radius:12px!important;
  background:#f8fafb!important;
  color:#1d2d35!important;
  text-decoration:none!important;
  text-align:left!important;
  box-shadow:none!important;
  transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease;
}
.captain-quick-actions .captain-action-card:hover,
.captain-quick-actions .captain-action-card:focus-visible{
  transform:translateY(-1px);
  border-color:#9eafb8!important;
  box-shadow:0 5px 14px rgba(17,30,38,.08)!important;
  outline:none!important;
}
.captain-action-icon{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:10px;
  background:#e6ecef;
  color:#263943;
  font-size:18px;
  font-weight:900;
}
.captain-action-copy{
  display:grid;
  gap:2px;
  min-width:0;
}
.captain-action-copy strong{
  font-size:14px;
  line-height:1.08;
}
.captain-action-copy small{
  color:#6e7c83;
  font-size:9px;
  line-height:1.2;
}
.captain-action-messages{
  border-color:#bfd9ee!important;
  background:#eef7ff!important;
}
.captain-action-messages .captain-action-icon{
  background:#145ba1;
  color:#fff;
}
.captain-action-messages.has-unread{
  border-color:#145ba1!important;
  box-shadow:inset 4px 0 0 #145ba1!important;
}
.captain-action-team{
  border-color:#dfd1eb!important;
  background:#f7f1fb!important;
}
.captain-action-team .captain-action-icon{
  background:#663b94;
  color:#fff;
}
.captain-action-admin,
.captain-return-admin.captain-action-card{
  border-color:#111e26!important;
  background:#111e26!important;
  color:#fff!important;
}
.captain-action-admin .captain-action-icon{
  background:#d0f267;
  color:#111e26;
}
.captain-action-admin .captain-action-copy small{
  color:#bfcbd0;
}
.captain-signout-form{
  margin:0!important;
  min-width:0;
}
.captain-signout-form .captain-action-card{
  width:100%;
  border-color:#ead9d7!important;
  background:#fff7f6!important;
  cursor:pointer;
}
.captain-action-signout .captain-action-icon{
  background:#f1dfdc;
  color:#8a342c;
}
.captain-quick-actions .message-nav-count{
  position:static!important;
  min-width:24px!important;
  height:24px!important;
  margin:0!important;
  background:#b5362d!important;
  color:#fff!important;
  font-size:10px!important;
}
.captain-dashboard{
  margin-top:0;
}
.captain-intro{
  padding:0 2px 2px;
}
.captain-intro h3{
  margin-bottom:6px;
  font-size:22px;
}
.captain-intro p{
  margin-top:0;
  color:#53646d;
  max-width:72ch;
}
@media(max-width:800px){
  .captain-dashboard-header{
    grid-template-columns:1fr!important;
    gap:0!important;
  }
  .captain-dashboard-identity{
    padding:16px 14px;
  }
  .captain-quick-actions{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    padding:9px!important;
  }
}
@media(max-width:520px){
  .captain-dashboard-header{
    margin-bottom:16px!important;
    border-radius:13px!important;
  }
  .captain-dashboard-icon{
    width:50px;height:50px;flex-basis:50px;font-size:23px;
  }
  .captain-dashboard-copy h2{
    font-size:25px!important;
  }
  .captain-quick-actions{
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }
  .captain-quick-actions .captain-action-card{
    grid-template-columns:34px minmax(0,1fr) auto;
    min-height:66px;
    padding:9px!important;
  }
  .captain-action-icon{
    width:34px;height:34px;font-size:16px;
  }
  .captain-action-copy strong{font-size:12px}
  .captain-action-copy small{font-size:8px}
}
@media(max-width:370px){
  .captain-quick-actions{
    grid-template-columns:1fr!important;
  }
}

/* v4.38 — restrained colour pass across public league pages
   Uses filled surfaces rather than coloured side-bars / outlines. */

/* Fixtures & results */
.fixture-filter-fields{
  background:#f3f7fa!important;
  border-color:#d9e3e8!important;
}
.fixture-filter-actions button[type="submit"]{
  background:#145ba1!important;
  border-color:#145ba1!important;
  color:#fff!important;
}
.fixture-filter-toggle{
  background:#eef4ff!important;
  border-color:#d3e0f2!important;
  color:#214e86!important;
}
.fixture-date-heading{
  background:#173746!important;
  color:#fff!important;
}
.fixture-card{
  background:#fff!important;
}
.fixture-card .fixture-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.fixture-card .fixture-top>span:first-child{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:72%;
  padding:4px 8px;
  border-radius:999px;
  background:#e9f1fb;
  color:#214e86;
  font-weight:900;
  font-size:10px;
  line-height:1.1;
}
.fixture-card .fixture-top>span:last-child{
  color:#6a7880;
}
.fixture-card .score{
  padding:5px 8px;
  background:#f1f4f5;
  color:#111e26;
  font-weight:900;
}
.fixture-card .fixture-status{
  display:inline-flex;
  width:max-content;
  align-items:center;
  margin-left:auto;
  padding:4px 8px;
  border-radius:999px;
  font-size:9px;
  line-height:1.1;
}
.fixture-card .fixture-status.is-fixture{
  background:#e7f3bd!important;
  color:#334b13!important;
}
.fixture-card .fixture-status.is-result{
  background:#dfeaf7!important;
  color:#214e86!important;
}
.calendar-event{
  background:#fbf7ff!important;
}
.calendar-event .fixture-top>span:first-child{
  background:#eee3f7!important;
  color:#663b94!important;
}

/* League tables */
.standings-panel{
  overflow:hidden;
  padding-top:0!important;
}
.standings-panel>h3{
  margin:0 -16px 10px!important;
  padding:9px 14px!important;
  background:#e7f0fa!important;
  color:#173f70!important;
  font-size:18px!important;
}
.standings-panel:nth-child(2n)>h3{
  background:#efe8f6!important;
  color:#663b94!important;
}
.standings-table thead th{
  background:#f0f4f6!important;
  color:#263943!important;
}
.standings-table tbody tr:nth-child(even){
  background:#fafcfc;
}

/* Teams */
.team-division{
  overflow:hidden;
  padding-top:0!important;
}
.team-division>h3{
  margin:0 -20px 10px!important;
  padding:9px 14px!important;
  background:#e9f1fb!important;
  color:#214e86!important;
}
.team-division:nth-child(2n)>h3{
  background:#f1eafa!important;
  color:#663b94!important;
}
.team-card{
  background:#f9fbfc!important;
}
.team-card:hover,
.team-card:focus-visible{
  background:#f1f7fb!important;
}

/* General public controls / chips */
.filters.tabs button.selected,
.tabs button.selected{
  background:#145ba1!important;
  border-color:#145ba1!important;
  color:#fff!important;
}
.teams-stats-switch a.active{
  background:#663b94!important;
  color:#fff!important;
}
.badge{
  border:0!important;
}
.page-head .eyebrow,
.content-public .eyebrow{
  color:#145ba1;
}

/* Keep the vivid League / Cup hub cards as the strongest colour area. */
.public-league-menu .public-cup-card,
.public-cup-menu .public-cup-card{
  border:0!important;
}

/* Mobile keeps the same colour language without making cards oversized. */
@media(max-width:700px){
  .fixture-card .fixture-top>span:first-child{
    max-width:66%;
    font-size:9px;
    padding:4px 7px;
  }
  .fixture-card .fixture-status{
    font-size:8px;
    padding:4px 7px;
  }
  .standings-panel>h3{
    margin-left:-8px!important;
    margin-right:-8px!important;
  }
  .team-division>h3{
    margin-left:-10px!important;
    margin-right:-10px!important;
  }
}

/* v4.38 — public Contact page: clear route into captain messaging */
.contact-page-grid{
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr)!important;
  align-items:start;
}
.contact-captain-column{
  display:grid;
  gap:12px;
}
.contact-message-card{
  position:relative;
  overflow:hidden;
  background:#eef7ff!important;
  border:0!important;
}
.contact-message-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:7px;
  background:#145ba1;
}
.contact-message-icon{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  margin:5px 0 12px;
  border-radius:14px;
  background:#145ba1;
  color:#fff;
  font-size:23px;
}
.contact-message-card h2{
  margin-bottom:8px;
}
.contact-message-login{
  width:100%;
  margin-top:9px;
  background:#145ba1!important;
  border-color:#145ba1!important;
  color:#fff!important;
  text-align:center;
}
.contact-rearrange-card{
  background:#f5f0fa!important;
  border:0!important;
}
.contact-rearrange-card .eyebrow{
  color:#663b94!important;
}
.contact-rearrange-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
}
.contact-rearrange-actions .button:first-child{
  background:#663b94!important;
  border-color:#663b94!important;
  color:#fff!important;
}
.contact-committee-panel{
  background:#fff!important;
}
@media(max-width:820px){
  .contact-page-grid{
    grid-template-columns:1fr!important;
  }
  .contact-captain-column{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:600px){
  .contact-captain-column{
    grid-template-columns:1fr;
  }
  .contact-rearrange-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .contact-rearrange-actions .button{
    width:100%;
    text-align:center;
  }
}

/* v4.38 — latest-news feature card */
.summer-presentation-news{
  position:relative;
  overflow:hidden;
  padding:24px 24px 22px!important;
  background:#663b94!important;
  color:#fff!important;
  border:0!important;
  border-radius:12px!important;
  box-shadow:0 12px 28px rgba(40,24,58,.18)!important;
}
.summer-presentation-news::before{
  content:"LATEST NEWS";
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-bottom:12px;
  padding:5px 9px;
  border-radius:999px;
  background:#d0f267;
  color:#111e26;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
}
.summer-presentation-news .eyebrow{
  display:block;
  margin-bottom:5px;
  color:#e9dcf5!important;
  font-weight:800;
}
.summer-presentation-news h3{
  margin:0 0 8px!important;
  color:#fff!important;
  font-size:clamp(23px,3vw,31px)!important;
  line-height:1.05!important;
}
.summer-presentation-news p,
.summer-presentation-news .muted{
  color:rgba(255,255,255,.94)!important;
  font-size:14px;
  line-height:1.55;
}
@media(max-width:600px){
  .summer-presentation-news{
    padding:18px 16px 17px!important;
  }
  .summer-presentation-news h3{
    font-size:23px!important;
  }
  .summer-presentation-news p,
  .summer-presentation-news .muted{
    font-size:13px;
  }
}

/* v4.38 — New website newsflash */
.news.section:has(h3){
  transition:background-color .15s ease;
}

/* v4.38 — Super Admin gallery folders */
.gallery-content-admin .panel-head{
  margin-bottom:14px;
}
.gallery-upload-form{
  padding:12px;
  border-radius:10px;
  background:#f4f8fa;
  border:1px solid #dce5e9;
}
.gallery-folder-summary{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:12px 0;
}
.gallery-folder-summary span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:6px 9px;
  border-radius:999px;
  background:#e9f1fb;
  color:#214e86;
  font-size:10px;
  font-weight:800;
}
.gallery-folder-admin-list{
  display:grid;
  gap:10px;
}
.gallery-folder-admin{
  border:1px solid #d8e1e5;
  border-radius:11px;
  background:#fff;
  overflow:hidden;
}
.gallery-folder-admin>summary{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  padding:11px 13px;
  cursor:pointer;
  list-style:none;
  background:#eef4f8;
}
.gallery-folder-admin>summary::-webkit-details-marker{display:none}
.gallery-folder-admin>summary>span:nth-child(2){
  display:grid;
  gap:1px;
}
.gallery-folder-admin>summary strong{
  font-size:14px;
}
.gallery-folder-admin>summary small{
  color:#66777f;
  font-size:9px;
}
.gallery-folder-admin[open]>summary{
  background:#e7f0fa;
}
.gallery-folder-icon{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:9px;
  background:#145ba1;
  color:#fff;
  font-size:17px;
}
.gallery-folder-admin>.gallery-admin-grid{
  padding:10px;
}
.gallery-folder-photo{
  display:flex;
  flex-direction:column;
}
.gallery-folder-photo figcaption{
  display:grid;
  gap:5px;
}
.gallery-photo-edit{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  margin-top:5px;
}
.gallery-photo-edit label{
  margin:0;
  font-size:9px;
}
.gallery-photo-edit input{
  width:100%;
  min-height:34px;
  margin-top:2px;
  padding:6px 7px;
  font-size:11px;
}
.gallery-photo-edit .wide{
  grid-column:1/-1;
}
.gallery-photo-actions{
  display:flex;
  gap:6px;
  align-items:center;
}
.gallery-photo-actions button{
  min-height:34px;
}
@media(max-width:650px){
  .gallery-folder-summary{
    display:grid;
    grid-template-columns:repeat(3,1fr);
  }
  .gallery-folder-summary span{
    justify-content:center;
    border-radius:8px;
    text-align:center;
  }
  .gallery-photo-edit{
    grid-template-columns:1fr;
  }
  .gallery-photo-edit .wide{
    grid-column:auto;
  }
  .gallery-photo-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .gallery-photo-actions button{
    width:100%;
  }
}

/* v4.38 — role/security administration + league-scoped messages */
.access-role-guide{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
  margin:10px 0 14px;
}
.access-role-guide>div{
  padding:9px;
  border-radius:9px;
  background:#f1f5f7;
}
.access-role-guide strong,
.access-role-guide span{display:block}
.access-role-guide strong{font-size:11px;color:#263943}
.access-role-guide span{margin-top:3px;font-size:9px;color:#6b7a82;line-height:1.3}
.access-account-form{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.message-league-switch,
.message-league-label{
  margin:8px 0 10px;
  padding:8px 10px;
  border-radius:9px;
  background:#eaf2f8;
  color:#214e86;
  font-weight:900;
}
.message-league-switch label{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  font-size:11px;
}
.message-league-switch select{
  width:auto;
  min-width:220px;
  margin:0;
  padding:6px 28px 6px 8px;
}
.message-league-label{
  font-size:11px;
  text-align:center;
}
@media(max-width:900px){
  .access-role-guide{grid-template-columns:repeat(2,minmax(0,1fr))}
  .access-account-form{grid-template-columns:1fr 1fr!important}
}
@media(max-width:600px){
  .access-role-guide{grid-template-columns:1fr}
  .access-account-form{grid-template-columns:1fr!important}
  .message-league-switch label{align-items:stretch;flex-direction:column}
  .message-league-switch select{width:100%;min-width:0}
}

/* v4.38 — no-dead-end document and utility navigation */
body.document-view-page,
body.print-document-page{
  padding-bottom:calc(70px + env(safe-area-inset-bottom));
}
.document-view-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 4%;
  background:#fff;
  border-bottom:1px solid #d7e0e4;
}
.document-view-shell{
  width:min(1080px,calc(100% - 24px));
  margin:18px auto 84px;
  padding:0;
}
.document-view-title{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}
.document-view-title h1{margin:2px 0 0}
.document-view-actions{display:flex;gap:8px;flex-wrap:wrap}
.document-pdf-frame{
  height:min(78vh,900px);
  min-height:560px;
  border-radius:10px;
  overflow:hidden;
  background:#dfe5e8;
  box-shadow:0 6px 20px rgba(17,30,38,.12);
}
.document-pdf-frame iframe{
  width:100%;
  height:100%;
  border:0;
  background:#fff;
}
.document-non-pdf{
  text-align:center;
  padding:36px!important;
}
.document-large-icon{font-size:44px}
.document-app-nav{
  position:fixed;
  z-index:1200;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:min(760px,100%);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:3px;
  padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));
  background:rgba(255,255,255,.98);
  border:1px solid #d5dde1;
  border-bottom:0;
  border-radius:12px 12px 0 0;
  box-shadow:0 -4px 15px rgba(17,30,38,.10);
}
.document-app-nav a,
.document-app-nav button{
  min-width:0!important;
  min-height:50px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  padding:4px!important;
  margin:0!important;
  border:0!important;
  border-radius:8px!important;
  background:transparent!important;
  color:#263943!important;
  text-decoration:none!important;
  font:inherit!important;
  font-size:18px!important;
  font-weight:900!important;
  box-shadow:none!important;
}
.document-app-nav a span,
.document-app-nav button span{font-size:8px!important;font-weight:800!important}
.document-app-nav .document-nav-home{
  background:#111e26!important;
  color:#fff!important;
}body:has(.admin-utility-nav){
  padding-bottom:calc(70px + env(safe-area-inset-bottom));
}
@media(max-width:700px){
  .document-view-header{padding:8px 10px}
  .document-view-header .brand span{display:none}
  .document-view-header .brand-logo{width:46px;height:46px}
  .document-view-shell{width:calc(100% - 16px);margin-top:10px}
  .document-view-title{align-items:stretch;flex-direction:column}
  .document-view-actions{display:grid;grid-template-columns:1fr 1fr}
  .document-view-actions .button{text-align:center}
  .document-pdf-frame{height:72vh;min-height:420px}
  .document-app-nav{border-radius:0;width:100%}
}
@media print{
  .document-app-nav{display:none!important}
}

/* v4.38 — documents open immediately, with navigation always retained */
body.document-view-direct{
  height:100vh;
  min-height:100vh;
  overflow:hidden;
  padding:0!important;
  background:#dfe5e8!important;
}
.document-direct-toolbar{
  position:fixed;
  z-index:1300;
  top:0;
  left:0;
  right:0;
  min-height:58px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:8px 12px;
  background:#111e26;
  color:#fff;
  box-shadow:0 3px 12px rgba(0,0,0,.18);
}
.document-direct-toolbar strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:center;
  font-size:13px;
}
.document-direct-toolbar a{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 10px;
  border-radius:7px;
  background:#263943;
  color:#fff;
  font-size:11px;
  font-weight:900;
  text-decoration:none;
}
.document-direct-back{
  background:#d0f267!important;
  color:#111e26!important;
}
.document-direct-actions{
  display:flex;
  gap:6px;
}
.document-direct-actions a:last-child{
  background:#fff;
  color:#111e26;
}
.document-direct-stage{
  position:fixed;
  inset:58px 0 64px;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:#dfe5e8;
}
.document-pdf-object{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#fff;
}
.document-pdf-object>embed{
  display:block;
  width:100%;
  height:100%;
}
.document-preview-fallback{
  height:100%;
  display:grid;
  place-content:center;
  gap:10px;
  padding:24px;
  text-align:center;
  background:#fff;
}
.document-direct-error{
  position:fixed;
  inset:58px 0 64px;
  display:grid;
  place-items:center;
  max-width:none!important;
  margin:0!important;
  padding:18px!important;
  overflow:auto;
}
.document-direct-error>.panel{
  width:min(620px,100%);
}
.document-file-actions{
  display:flex;
  gap:8px;
  justify-content:center;
  flex-wrap:wrap;
}
.document-view-direct .document-app-nav{
  z-index:1400;
}
@media(max-width:680px){
  .document-direct-toolbar{
    min-height:54px;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:6px;
    padding:6px 7px;
  }
  .document-direct-toolbar strong{
    font-size:10px;
  }
  .document-direct-toolbar a{
    min-height:36px;
    padding:6px 8px;
    font-size:9px;
  }
  .document-direct-actions a:first-child{
    display:none;
  }
  .document-direct-actions a:last-child{
    font-size:0;
    width:38px;
    padding:0;
  }
  .document-direct-actions a:last-child::before{
    content:"⌂";
    font-size:18px;
  }
  .document-direct-back span{
    display:none;
  }
  .document-direct-stage,
  .document-direct-error{
    inset:54px 0 64px;
  }
}
@media print{
  .document-direct-toolbar,
  .document-view-direct .document-app-nav{
    display:none!important;
  }
  .document-direct-stage{
    position:static;
    height:auto;
  }
}

/* v4.38 — Super Admin navigation overhaul
   No horizontal scrolling; all primary actions align to a consistent grid. */
body[data-organiser="true"]>header{
  display:grid!important;
  grid-template-columns:minmax(190px,.8fr) minmax(220px,.55fr) minmax(610px,1.65fr)!important;
  align-items:center!important;
  gap:12px!important;
  padding:14px 3%!important;
  background:#111e26!important;
  color:#fff!important;
  overflow:visible!important;
}
body[data-organiser="true"]>header>.brand{
  min-width:0!important;
  margin:0!important;
  color:#fff!important;
}
body[data-organiser="true"]>header>.brand .brand-logo{
  width:54px!important;
  height:54px!important;
  flex:0 0 54px!important;
}
body[data-organiser="true"]>header>.brand>span{
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:19px!important;
}
body[data-organiser="true"]>header .league-switch{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
body[data-organiser="true"]>header .league-switch label{
  display:block!important;
  margin:0 0 3px!important;
  color:#b9c7ce!important;
  font-size:9px!important;
  font-weight:800!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
}
body[data-organiser="true"]>header .league-switch select{
  width:100%!important;
  min-width:0!important;
  min-height:38px!important;
  margin:0!important;
  padding:7px 28px 7px 9px!important;
  border-color:#40545f!important;
  background:#fff!important;
  color:#111e26!important;
  font-size:11px!important;
  font-weight:800!important;
}

body[data-organiser="true"]>header .admin-header-actions{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:6px!important;
  align-items:stretch!important;
  overflow:visible!important;
  border:0!important;
}
body[data-organiser="true"]>header .admin-header-actions>a,
body[data-organiser="true"]>header .admin-header-actions .admin-options-menu,
body[data-organiser="true"]>header .admin-header-actions .admin-signout{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  position:relative!important;
  inset:auto!important;
}
body[data-organiser="true"]>header .admin-header-actions>a,
body[data-organiser="true"]>header .admin-header-actions .admin-options-menu>summary,
body[data-organiser="true"]>header .admin-header-actions .admin-signout button{
  width:100%!important;
  min-width:0!important;
  min-height:40px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  margin:0!important;
  padding:7px 5px!important;
  border:1px solid #465b66!important;
  border-radius:8px!important;
  background:#1d2e37!important;
  color:#fff!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  box-shadow:none!important;
}
body[data-organiser="true"]>header .admin-header-actions>a:hover,
body[data-organiser="true"]>header .admin-header-actions .admin-options-menu>summary:hover,
body[data-organiser="true"]>header .admin-header-actions .admin-signout button:hover{
  background:#2a404b!important;
}
body[data-organiser="true"]>header .admin-role-switch{
  background:#d0f267!important;
  border-color:#d0f267!important;
  color:#111e26!important;
}
body[data-organiser="true"]>header .message-nav-link.has-unread{
  background:#fff3f1!important;
  border-color:#e0a099!important;
  color:#8d2e25!important;
}
body[data-organiser="true"]>header .admin-view-site{
  background:#145ba1!important;
  border-color:#145ba1!important;
  color:#fff!important;
}
body[data-organiser="true"]>header .admin-signout button{
  background:#fff!important;
  border-color:#fff!important;
  color:#111e26!important;
}
body[data-organiser="true"]>header .admin-options-chevron{
  margin-left:1px;
}

/* Keep Options anchored below its own button on desktop/tablet. */
body[data-organiser="true"]>header .admin-options-panel{
  position:absolute!important;
  top:calc(100% + 7px)!important;
  right:0!important;
  left:auto!important;
  width:min(330px,calc(100vw - 24px))!important;
  max-height:min(70vh,520px)!important;
  overflow:auto!important;
  z-index:1200!important;
}

/* Medium screens: brand and league remain aligned above a clean 6-button row. */
@media(max-width:1180px){
  body[data-organiser="true"]>header{
    grid-template-columns:minmax(180px,1fr) minmax(230px,.8fr)!important;
    grid-template-areas:
      "brand league"
      "actions actions"!important;
    gap:9px 12px!important;
  }
  body[data-organiser="true"]>header>.brand{grid-area:brand!important}
  body[data-organiser="true"]>header>.league-switch{grid-area:league!important}
  body[data-organiser="true"]>header>.admin-header-actions{grid-area:actions!important}
}

/* Phones: no sideways scrolling. Six actions become a tidy 3 x 2 grid. */
@media(max-width:700px){
  body[data-organiser="true"]>header{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:
      "brand"
      "league"
      "actions"!important;
    padding:10px!important;
    gap:8px!important;
  }
  body[data-organiser="true"]>header>.brand{
    padding-right:0!important;
  }
  body[data-organiser="true"]>header>.brand .brand-logo{
    width:44px!important;
    height:44px!important;
    flex-basis:44px!important;
  }
  body[data-organiser="true"]>header>.brand>span{
    font-size:17px!important;
  }
  body[data-organiser="true"]>header .league-switch select{
    min-height:40px!important;
    font-size:12px!important;
  }
  body[data-organiser="true"]>header .admin-header-actions{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
  }
  body[data-organiser="true"]>header .admin-header-actions>a,
  body[data-organiser="true"]>header .admin-header-actions .admin-options-menu,
  body[data-organiser="true"]>header .admin-header-actions .admin-signout{
    flex:none!important;
  }
  body[data-organiser="true"]>header .admin-header-actions>a,
  body[data-organiser="true"]>header .admin-header-actions .admin-options-menu>summary,
  body[data-organiser="true"]>header .admin-header-actions .admin-signout button{
    min-height:42px!important;
    padding:6px 4px!important;
    font-size:9px!important;
  }
  body[data-organiser="true"]>header .admin-options-panel{
    position:fixed!important;
    top:132px!important;
    left:10px!important;
    right:10px!important;
    width:auto!important;
    max-height:calc(100vh - 150px)!important;
  }
}

/* v4.38 — simplified professional bottom utility dock */
body[data-organiser="true"]{
  padding-bottom:calc(58px + env(safe-area-inset-bottom))!important;
}
.admin-bottom-bar{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:0!important;
  transform:translateX(-50%)!important;
  width:min(430px,100%)!important;
  max-width:none!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:4px!important;
  margin:0!important;
  padding:5px 7px calc(5px + env(safe-area-inset-bottom))!important;
  border:1px solid #cfd9de!important;
  border-bottom:0!important;
  border-radius:12px 12px 0 0!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 -5px 18px rgba(17,30,38,.10)!important;
  backdrop-filter:blur(10px);
  z-index:1100!important;
}
.admin-bottom-bar button,
.admin-bottom-bar a{
  min-width:0!important;
  min-height:42px!important;
  display:grid!important;
  grid-template-columns:auto auto!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  margin:0!important;
  padding:5px 7px!important;
  border:0!important;
  border-radius:8px!important;
  background:transparent!important;
  color:#263943!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
.admin-bottom-icon{
  width:auto!important;
  height:auto!important;
  font-size:18px!important;
  line-height:1!important;
}
.admin-bottom-bar .admin-bottom-home{
  margin:0!important;
  background:#111e26!important;
  color:#fff!important;
}
.admin-bottom-home .admin-bottom-icon{
  color:#d0f267!important;
}
@media(max-width:480px){
  .admin-bottom-bar{
    width:100%!important;
    border-radius:0!important;
    border-left:0!important;
    border-right:0!important;
  }
  .admin-bottom-bar button,
  .admin-bottom-bar a{
    min-height:44px!important;
    grid-template-columns:1fr!important;
    gap:1px!important;
    padding:4px!important;
    font-size:8px!important;
  }
  .admin-bottom-icon{
    font-size:17px!important;
  }
}

/* v4.38 — reliable PDF document pages inside the app */
.document-image-viewer{
  position:fixed;
  inset:58px 0 64px;
  max-width:none!important;
  margin:0!important;
  padding:14px 10px 24px!important;
  overflow:auto;
  background:#cfd7dc;
  -webkit-overflow-scrolling:touch;
}
.document-preview-page{
  width:min(1100px,calc(100% - 4px));
  margin:0 auto 14px;
  padding:0;
  background:#fff;
  box-shadow:0 4px 18px rgba(17,30,38,.18);
}
.document-preview-page img{
  display:block;
  width:100%;
  height:auto;
  background:#fff;
}
.document-preview-page figcaption{
  padding:5px 8px;
  border-top:1px solid #dde4e8;
  color:#65757d;
  text-align:center;
  font-size:9px;
  font-weight:800;
}
.document-toolbar-print{
  min-height:38px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:7px 10px!important;
  border:0!important;
  border-radius:7px!important;
  background:#263943!important;
  color:#fff!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
}
@media(max-width:680px){
  .document-image-viewer{
    inset:54px 0 64px;
    padding:7px 4px 14px!important;
  }
  .document-preview-page{
    width:100%;
    margin-bottom:7px;
    box-shadow:0 2px 8px rgba(17,30,38,.14);
  }
  .document-toolbar-print{
    display:none!important;
  }
}
@media print{
  body.document-view-direct{
    height:auto!important;
    overflow:visible!important;
    background:#fff!important;
  }
  .document-direct-toolbar,
  .document-app-nav{
    display:none!important;
  }
  .document-image-viewer{
    position:static!important;
    inset:auto!important;
    overflow:visible!important;
    padding:0!important;
    background:#fff!important;
  }
  .document-preview-page{
    width:100%!important;
    margin:0!important;
    box-shadow:none!important;
    break-after:page;
  }
  .document-preview-page:last-child{
    break-after:auto;
  }
  .document-preview-page figcaption{
    display:none!important;
  }
}

/* v4.38 — League Administration first; Match Night Tools moved into Options */
.admin-options-panel .admin-option-button{
  width:100%;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:2px!important;
  margin:0!important;
  padding:10px 11px!important;
  border:0!important;
  border-radius:7px!important;
  background:transparent!important;
  color:var(--ink)!important;
  text-align:left!important;
  white-space:normal!important;
  box-shadow:none!important;
}
.admin-options-panel .admin-option-button:hover,
.admin-options-panel .admin-option-button:focus-visible{
  background:#f2f5f6!important;
  outline:none!important;
}
.admin-options-panel .admin-option-button strong{
  font-size:12px;
}
.admin-options-panel .admin-option-button span{
  font-size:10px;
  line-height:1.35;
  color:#65757d;
}
.match-night-tools-dialog{
  width:min(980px,calc(100% - 24px));
  max-height:min(90vh,860px);
  padding:0;
  border:0;
  border-radius:14px;
  background:#f4f6f5;
  color:var(--ink);
  box-shadow:0 24px 70px rgba(17,30,38,.32);
  overflow:auto;
}
.match-night-tools-dialog::backdrop{
  background:rgba(17,30,38,.58);
  backdrop-filter:blur(2px);
}
.match-night-dialog-head{
  position:sticky;
  top:0;
  z-index:5;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
  border-bottom:1px solid #d8e0e4;
  background:#fff;
}
.match-night-dialog-head .eyebrow{
  margin-bottom:4px;
  color:#145ba1;
}
.match-night-dialog-head h2{
  margin:0 0 4px;
  font-size:30px;
}
.match-night-dialog-head p{
  margin:0;
  color:var(--muted);
  font-size:12px;
}
.match-night-dialog-close{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border-radius:50%!important;
  background:#eef2f4!important;
  color:#111e26!important;
  font-size:25px!important;
  line-height:1!important;
}
.match-night-tools-dialog .admin-match-night-tools{
  margin:0!important;
  padding:16px 18px 20px!important;
  border:0!important;
  background:transparent!important;
}
.match-night-tools-dialog .admin-match-night-tools-head{
  display:none!important;
}
/* Keep the normal admin hierarchy obvious: intro, current league, then actions. */
body[data-organiser="true"] .admin-welcome{
  margin-bottom:8px!important;
}
body[data-organiser="true"] #workspace-status{
  margin-top:0!important;
  margin-bottom:8px!important;
}
body[data-organiser="true"] main#app{
  padding-top:10px!important;
}
body[data-organiser="true"] main#app>.page-head:first-child{
  margin-bottom:12px!important;
}
@media(max-width:650px){
  .match-night-tools-dialog{
    width:calc(100% - 12px);
    max-height:92vh;
    border-radius:10px;
  }
  .match-night-dialog-head{
    padding:12px;
  }
  .match-night-dialog-head h2{
    font-size:25px;
  }
  .match-night-tools-dialog .admin-match-night-tools{
    padding:10px 10px 16px!important;
  }
}

/* v4.38 — generic uploaded PDF recovery */
.document-native-pdf-stage{
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
}
.document-native-pdf-frame{
  width:100%;
  height:100%;
  min-height:0;
  border:0;
  background:#fff;
}
.document-native-pdf-help{
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:6px 10px;
  border-top:1px solid #cdd7dc;
  background:#fff;
  color:#5f7078;
  font-size:10px;
  font-weight:700;
}
.document-native-pdf-help a{
  padding:5px 8px;
  border-radius:6px;
  background:#111e26;
  color:#fff;
  font-weight:900;
}
@media(max-width:600px){
  .document-native-pdf-help{
    justify-content:space-between;
  }
  .document-native-pdf-help span{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
}

/* v4.38 — four printable fixture document choices */
.auto-doc-card-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}
.auto-doc-card.venue-auto-doc{
  background:#f4f1fb;
}
.auto-doc-card.venue-auto-doc .document-icon{
  color:#663b94;
}
@media(max-width:1050px){
  .auto-doc-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:650px){
  .auto-doc-card-grid{
    grid-template-columns:1fr!important;
  }
}

/* v4.38 — PDF preview streamed by the site itself */
.document-native-pdf-stage{
  background:#d5dde1!important;
}
.document-native-pdf-frame{
  display:block!important;
  width:100%!important;
  height:100%!important;
  border:0!important;
  background:#fff!important;
}

/* v4.38 — Thursday Ladies League separation */
.score-game-rule{
  margin-top:8px;
  padding:7px 9px;
  border-radius:7px;
  background:#f3f0f8;
  color:#563a70;
  text-align:center;
  font-weight:800;
}
.thursday-setup-card{
  max-width:820px;
  margin:18px auto;
}
body[data-league="thursday"] .great-white-nav-addon{
  display:none!important;
}

/* v4.38 — explicit league-first Super Admin login */
.league-login-choice-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin:18px 0;
}
.league-login-choice{
  padding:22px;
  border-radius:12px;
  background:#fff;
  box-shadow:0 5px 18px rgba(17,30,38,.08);
}
.league-login-choice h3{margin:0 0 8px;font-size:25px}
.league-login-choice p{min-height:48px;color:#65757d}
.league-choice-monday{border-top:5px solid #145ba1}
.league-choice-thursday{border-top:5px solid #663b94}
.league-login-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.league-login-actions form,
.league-login-actions button{width:100%;margin:0}
body[data-organiser="true"][data-admin-league="thursday"] .admin-welcome{background:#f3eff8}
body[data-organiser="true"][data-admin-league="thursday"] .admin-welcome .eyebrow{color:#663b94}
body[data-organiser="true"][data-admin-league="monday"] .admin-welcome{background:#eef5fb}
body[data-organiser="true"][data-admin-league="monday"] .admin-welcome .eyebrow{color:#145ba1}
@media(max-width:680px){
  .league-login-choice-grid{grid-template-columns:1fr}
  .league-login-choice p{min-height:0}
}

/* v4.38 — Ladies news publication + cup holding page */
.ladies-news-empty{
  background:#f4f1f8;
}
.ladies-cup-holding{
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:18px;
  background:#f4f1f8;
}
.ladies-cup-holding-icon{
  flex:0 0 58px;
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#663b94;
  font-size:29px;
}
.ladies-cup-holding h2{
  margin:0 0 7px;
}
.ladies-cup-holding p{
  margin:0;
  color:#65757d;
}
.ladies-cup-date-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.ladies-cup-date h3{
  margin:0 0 12px;
}
@media(max-width:720px){
  .ladies-cup-date-grid{
    grid-template-columns:1fr;
  }
  .ladies-cup-holding{
    align-items:flex-start;
  }
}

/* v4.38 — league-contained app/navigation behaviour */
body[data-league="thursday"] .league-brand-toggle::after{
  content:"LADIES";
  display:inline-flex;
  align-items:center;
  margin-left:7px;
  padding:3px 6px;
  border-radius:999px;
  background:#663b94;
  color:#fff;
  font-size:8px;
  font-weight:900;
  letter-spacing:.06em;
}
body[data-league="monday"] .league-brand-toggle::after{
  content:"MONDAY";
  display:inline-flex;
  align-items:center;
  margin-left:7px;
  padding:3px 6px;
  border-radius:999px;
  background:#145ba1;
  color:#fff;
  font-size:8px;
  font-weight:900;
  letter-spacing:.06em;
}
@media(max-width:430px){
  body[data-league] .league-brand-toggle::after{
    margin-left:4px;
    padding:2px 5px;
    font-size:7px;
  }
}

/* v4.38 — no dead-end pages: persistent Back / Website controls */
.standalone-site-page{padding-bottom:72px}
.standalone-page-panel{position:relative}
.standalone-page-topnav{
  display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px
}
.standalone-page-topnav .main-site-back-link{
  min-height:38px;display:inline-flex;align-items:center;gap:6px;padding:7px 10px;
  border:1px solid #d5dcdf;border-radius:7px;background:#fff;color:#111e26;
  font-weight:850;font-size:12px;cursor:pointer
}
.standalone-bottom-bar{
  position:fixed;left:50%;bottom:8px;z-index:1400;transform:translateX(-50%);
  width:min(480px,calc(100% - 16px));min-height:52px;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;
  border:1px solid #ccd6da;border-radius:13px;background:#fff;
  box-shadow:0 7px 28px rgba(17,30,38,.2)
}
.standalone-bottom-bar>a,.standalone-bottom-bar>button{
  min-width:0;min-height:52px!important;display:flex!important;align-items:center!important;
  justify-content:center!important;gap:6px!important;margin:0!important;padding:7px 8px!important;
  border:0!important;border-right:1px solid #e3e8ea!important;border-radius:0!important;
  background:#fff!important;color:#111e26!important;font-size:10px!important;font-weight:900!important;
  line-height:1.1!important;text-align:center!important
}
.standalone-bottom-bar>*:last-child{border-right:0!important}
.standalone-bottom-icon{font-size:18px;line-height:1}
.fixture-print-bottom-bar,.standalone-four-nav{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.scorecard-return-note{
  padding:9px 11px;border-radius:8px;background:#eef4f7;color:#4b5f68;font-size:12px
}
.document-toolbar-back{
  min-height:38px!important;display:inline-flex!important;align-items:center!important;
  padding:7px 10px!important;border:0!important;border-radius:7px!important;
  background:#263943!important;color:#fff!important;font-size:11px!important;font-weight:900!important
}
.fixture-print-nav{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
@media(max-width:620px){
  .standalone-site-page{padding-bottom:68px}
  .standalone-bottom-bar{
    left:0;bottom:0;transform:none;width:100%;border-width:1px 0 0;border-radius:0
  }
  .standalone-bottom-bar>a,.standalone-bottom-bar>button{
    min-height:60px!important;flex-direction:column!important;gap:3px!important;font-size:9px!important
  }
  .standalone-page-topnav{align-items:stretch}
  .standalone-page-topnav .main-site-back-link{flex:1;justify-content:center}
}
@media print{.standalone-bottom-bar{display:none!important}}

/* v4.38 — protected scorer exit / resume */
.chalk-actions .scorer-main-site{
  min-height:38px;
}
.darts-scorer-overlay .chalk-actions{
  position:sticky;
  bottom:0;
  z-index:20;
}
@media(max-width:699px){
  .darts-scorer-overlay .chalk-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
  }
  .darts-scorer-overlay .chalk-actions>span{
    grid-column:1/-1;
    text-align:center;
  }
  .darts-scorer-overlay .chalk-actions .scorer-reset{
    grid-column:1/-1;
  }
}

/* v4.38 — Thursday news is league-specific admin content */
.ladies-published-news{
  background:#f4f1f8;
}
.ladies-published-news .eyebrow{
  color:#663b94;
}

/* v4.38 — resilient league-admin landing and direct player editor */
.admin-quick-start{
  max-width:1180px;
  margin:14px auto;
  padding:16px;
  border-radius:12px;
  background:#fff;
  box-shadow:0 4px 18px rgba(17,30,38,.08);
}
.admin-quick-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:9px;
}
.admin-quick-card{
  min-height:112px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:5px;
  padding:13px;
  border-radius:9px;
  background:#eef3f5;
  color:#111e26;
  text-decoration:none;
}
.admin-quick-card>span{font-size:22px}
.admin-quick-card strong{font-size:14px}
.admin-quick-card small{font-size:10px;line-height:1.25;color:#5d6d75}
.admin-quick-card.admin-quick-primary{
  background:#eaf4ff;
}
.admin-runtime-error{
  border:2px solid #d9a33a;
}
.league-player-admin{
  padding-bottom:68px;
}
.league-player-direct-form{
  margin:14px 0;
}
.direct-player-row{
  padding:10px 0;
  border-bottom:1px solid #dde4e7;
}
.direct-player-row:last-child{border-bottom:0}
.direct-player-row summary{
  display:flex;
  justify-content:space-between;
  gap:12px;
  cursor:pointer;
  list-style:none;
}
.direct-player-row summary::-webkit-details-marker{display:none}
.direct-player-row summary span{
  color:#66777f;
  font-size:12px;
}
.direct-player-edit{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #e4e9eb;
}
@media(max-width:1050px){
  .admin-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:650px){
  .admin-quick-start{margin:10px 8px;padding:12px}
  .admin-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-quick-card{min-height:98px}
}

/* v4.38 — standard League Administration landing */
body[data-organiser="true"][data-admin-planner="false"] .admin-quick-start{
  margin-top:18px;
}
body[data-organiser="true"][data-admin-planner="false"] .admin-quick-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
body[data-organiser="true"][data-admin-planner="false"] .admin-quick-card{
  min-height:138px;
  padding:18px;
}
body[data-organiser="true"][data-admin-planner="false"] .admin-quick-card strong{
  font-size:18px;
}
body[data-organiser="true"][data-admin-planner="false"] .admin-quick-card small{
  font-size:12px;
}
.admin-section-return{
  max-width:1180px;
  margin:10px auto 0;
}
@media(max-width:760px){
  body[data-organiser="true"][data-admin-planner="false"] .admin-quick-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body[data-organiser="true"][data-admin-planner="false"] .admin-quick-card{
    min-height:112px;
    padding:14px;
  }
  body[data-organiser="true"][data-admin-planner="false"] .admin-quick-card strong{
    font-size:15px;
  }
}

/* v4.38 — Thursday Ladies League electronic match card */
.ladies-electronic-card-head{
  max-width:980px;margin:0 auto 14px;padding:18px;border-radius:10px;
  background:#fff;border:2px solid #1d252a
}
.ladies-electronic-card-head h2{margin:3px 0 14px;font-size:26px}
.ladies-match-meta{
  display:grid;grid-template-columns:.8fr 1fr 1fr;border:1px solid #aeb9be;
  border-radius:7px;overflow:hidden
}
.ladies-match-meta>div{padding:10px 12px;border-right:1px solid #c8d0d4}
.ladies-match-meta>div:last-child{border-right:0}
.ladies-match-meta small{display:block;text-transform:uppercase;letter-spacing:.06em;font-weight:850;color:#65757d}
.ladies-match-meta strong{display:block;margin-top:3px;font-size:15px}
.ladies-electronic-scorecard{max-width:980px;margin-inline:auto}
.ladies-electronic-scorecard .scorecard-games{
  display:grid;gap:0;border:2px solid #1d252a;border-radius:9px;overflow:hidden;background:#fff
}
.ladies-electronic-scorecard .ladies-score-game{
  border:0;border-bottom:1px solid #9faeb5;border-radius:0;margin:0;padding:0
}
.ladies-electronic-scorecard .ladies-score-game:last-child{border-bottom:0}
.ladies-electronic-scorecard .score-game-head{
  padding:8px 12px;background:#eef1f2;border-bottom:1px solid #c8d0d4
}
.ladies-electronic-scorecard .score-game-matchup{padding:8px 10px 10px}
.ladies-electronic-scorecard .score-legs-field input{
  min-width:62px;font-size:18px;font-weight:900;text-align:center
}
.ladies-electronic-scorecard .ladies-live-score-note{
  padding:6px 12px 10px;background:#fafbfb;color:#68787f
}
.ladies-electronic-scorecard .match-stats-entry{
  margin-top:18px;border:2px solid #1d252a;border-radius:9px;background:#fff
}
.ladies-scorecard-footer-note{
  margin-top:18px;padding:13px 14px;border-radius:8px;background:#f2f4f5;border:1px solid #cbd4d8
}
.ladies-scorecard-footer-note p{margin:5px 0 0}
.ladies-scorecard-footer-note a{font-weight:850}
@media(max-width:700px){
  .ladies-match-meta{grid-template-columns:1fr}
  .ladies-match-meta>div{border-right:0;border-bottom:1px solid #c8d0d4}
  .ladies-match-meta>div:last-child{border-bottom:0}
  .ladies-electronic-card-head{margin-inline:8px;padding:13px}
  .ladies-electronic-card-head h2{font-size:22px}
}

/* v4.38: one direct website return per navigation bar; retain Documents. */
.document-direct-navigation{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.document-view-direct .document-app-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:620px){
  .document-direct-navigation{gap:4px}
  .document-direct-navigation a{padding:6px 7px;font-size:10px}
}
@media(max-width:680px){
  .document-view-direct .document-direct-actions a{
    display:inline-flex!important;font-size:10px!important;width:auto!important;padding:6px 8px!important;
  }
  .document-view-direct .document-direct-actions a::before{content:none!important}
  .document-view-direct .document-direct-toolbar strong{display:none}
  .document-view-direct .document-direct-toolbar{grid-template-columns:minmax(0,1fr) auto}
}

/* v4.38: fixture pages have one return bar with native links. */
.fixture-print-bottom-bar{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.mobile-bottom-bar a.mobile-nav-control,.admin-bottom-bar>a{display:flex;align-items:center;justify-content:center;text-decoration:none}

/* v4.38: active league is text, with a separate row for mobile actions. */
.public-league-site .league-brand-toggle::after{display:none!important}
.public-league-site .league-brand-copy{display:flex!important;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;white-space:normal!important;font-size:inherit!important;line-height:1.15!important}
.public-league-site .league-brand-name{display:block;font-size:inherit;font-weight:900}
.public-league-site .league-brand-current{display:block;font-size:12px;font-weight:800;color:#32537a;letter-spacing:.02em}
.public-league-site[data-league="thursday"] .league-brand-current{color:#663b94}
@media(max-width:760px){
  .public-league-site>header{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;padding:9px 12px!important;align-items:center!important;overflow:visible!important}
  .public-league-site>header .league-brand-wrap{grid-column:1/-1!important;grid-row:1!important;min-width:0!important;width:100%!important;margin:0!important}
  .public-league-site>header .league-brand-toggle{display:flex!important;width:100%!important;max-width:100%!important;gap:10px!important;padding:0!important;justify-content:flex-start!important;position:static!important;transform:none!important}
  .public-league-site>header .league-brand-toggle .brand-logo{width:42px!important;height:42px!important;flex:0 0 42px!important}
  .public-league-site>header .league-brand-copy{font-size:17px!important;max-width:none!important}
  .public-league-site>header .league-brand-current{font-size:12px!important}
  .public-league-site>header .league-brand-arrow{position:static!important;margin-left:auto!important;flex:0 0 32px!important;transform:none!important}
  .public-league-site>header .captain-login{grid-column:1!important;grid-row:2!important;position:static!important;justify-self:start!important;margin:0!important;min-height:42px!important;padding:8px 12px!important;font-size:12px!important;width:auto!important;max-width:100%!important;transform:none!important}
  .public-league-site>header .mobile-menu-toggle{grid-column:2!important;grid-row:2!important;position:static!important;justify-self:end!important;margin:0!important;min-height:42px!important;font-size:12px!important;transform:none!important}
  .public-league-site>header .app-install-top{display:none!important}
  .public-league-site .league-brand-menu{top:calc(100% + 7px)!important;left:0!important;right:0!important;width:100%!important;max-width:none!important}
}
.week-off{border-left:4px solid #718296;background:#f3f6f8!important;cursor:default!important}
.week-off p{font-size:12px;color:#4e5c66;margin:7px 0 0}
.admin-maintenance-link{max-width:1200px;margin:10px auto;padding:0 12px}
/* v4.38 gallery positioning and division screen */
.gallery-crop-editor{max-width:760px;border:1px solid var(--line);border-radius:8px;padding:14px;background:#f5f7f8}
.gallery-crop-editor canvas{display:block;width:100%;height:auto;aspect-ratio:4/3;background:#1b252c;touch-action:none;cursor:grab;border:2px solid #1b252c}
.gallery-crop-editor canvas:active{cursor:grabbing}.gallery-crop-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.gallery-crop-controls input{width:100%;min-height:40px}.gallery-crop-controls button{grid-column:1/-1;justify-self:start}
.fixture-screen{max-width:1600px;margin:auto;padding:20px}.fixture-screen header{display:flex;justify-content:space-between;gap:20px;align-items:center}.fixture-screen .fixture-screen-open{display:none}.fixture-screen .fixture-filter-fields{display:flex;flex-wrap:wrap;gap:14px}.fixture-screen .fixture-filter-toggle{display:none}.fixture-screen .fixture-filter-fields label{min-width:150px}.fixture-screen .fixture-date-group>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px}.fixture-screen .fixture-card{margin:0}.fixture-screen-status{min-height:1.5em}.fixture-screen .score{font-size:32px}
@media(max-width:600px){.gallery-crop-controls{grid-template-columns:1fr}.fixture-screen{padding:12px}.fixture-screen header{align-items:start;flex-direction:column}.fixture-screen .fixture-date-group>div{grid-template-columns:1fr}}
.fixture-screen main{max-width:none;width:100%;padding:0}.fixture-screen header{padding:20px}.fixture-screen header h1{font-size:clamp(28px,3.5vw,52px)}.fixture-screen .fixture-card .match{font-size:22px!important;min-height:64px!important}.fixture-screen .fixture-card .fixture-top{font-size:14px!important}.fixture-screen .fixture-card .score{font-size:32px!important}.fixture-screen .fixture-date-list{gap:14px!important}
@media(max-width:600px){.fixture-screen .fixture-card .match{font-size:16px!important}.fixture-screen .fixture-filter-fields label{min-width:0;flex:1 1 140px}}
/* v4.38: one private conversation per person, with both directions together. */
.messages-page .chat-contact{color:inherit;text-decoration:none;align-items:start}.chat-contact:hover{background:#f2f7f6}.chat-contact-preview{margin:4px 0;color:#4e606a;font-size:13px;overflow-wrap:anywhere}.chat-contact-subject{margin:5px 0 0;font-size:13px;font-weight:700}.chat-contact-state{font-size:11px;color:#586c76}.chat-contact .message-count{flex:0 0 auto}
.chat-conversation{background:#fff;border:1px solid #dce2df;border-radius:14px;overflow:hidden;margin:18px 0}.chat-heading{display:flex;align-items:center;gap:18px;padding:16px;border-bottom:1px solid #dce2df;background:#f5f8f7}.chat-heading h2{font-family:inherit;text-transform:none;font-size:21px;line-height:1.2;margin:0;overflow-wrap:anywhere}.chat-heading p{font-size:12px;margin:5px 0 0;color:#627079}.chat-heading .button{font-size:12px;flex:0 0 auto}.chat-transcript{max-height:60vh;min-height:200px;overflow-y:auto;overscroll-behavior:contain;background:#eaf0ee;padding:18px;scrollbar-gutter:stable}.message-stream{display:flex;flex-direction:column;gap:13px}.chat-message{display:flex;width:100%;margin:0}.chat-message.incoming{justify-content:flex-start;padding-right:12%}.chat-message.outgoing{justify-content:flex-end;padding-left:12%}.chat-bubble{max-width:85%;padding:12px 15px;border-radius:14px;box-shadow:0 1px 2px #111e2615;overflow-wrap:anywhere;background:white;color:#182b36}.incoming .chat-bubble{border-top-left-radius:3px}.outgoing .chat-bubble{background:#ddf1c2;border-top-right-radius:3px}.chat-author{font-size:12px;display:block;color:#304d5d}.chat-subject{font-size:12px;font-weight:700;margin:3px 0 6px}.chat-body{font-size:15px;line-height:1.5;white-space:normal}.chat-meta{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;font-size:10px;color:#52666c;margin-top:8px}.chat-reply-form{padding:16px;border-top:1px solid #dce2df;display:grid;gap:12px}.chat-reply-form textarea{width:100%;resize:vertical;min-height:90px}.chat-reply-form button{justify-self:end}.chat-refresh-status{padding:8px 16px;margin:0;font-size:11px}.chat-read-form{align-self:center}.chat-read-form[hidden]{display:none}.message-older{text-align:center;margin:0}.chat-contact .message-thread-top strong{overflow-wrap:anywhere}.messages-page .chat-conversation>p{padding:0 16px}
@media(max-width:600px){.chat-heading{align-items:flex-start;flex-direction:column;gap:12px;padding:12px}.chat-transcript{padding:10px;max-height:57vh}.chat-bubble{max-width:100%;padding:10px 12px}.chat-body{font-size:14px}.chat-message.incoming{padding-right:8%}.chat-message.outgoing{padding-left:8%}.chat-contact .message-thread-top{align-items:flex-start;flex-direction:column;gap:4px}.chat-contact .message-thread-top time{font-size:10px}.chat-reply-form{padding:12px}}
/* v4.38: reopen existing gallery photographs for positioning or replacement. */
.gallery-image-dialog{width:min(850px,95vw);max-width:95vw;max-height:92vh;padding:22px;border:0;border-radius:12px;overflow:auto}.gallery-image-dialog::backdrop{background:#111e2699}.gallery-image-dialog h2{font-size:30px}.gallery-image-dialog .gallery-crop-editor{max-width:none;margin:14px 0}.gallery-image-dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:14px}.gallery-image-dialog [data-crop-save]:disabled{opacity:.5;cursor:wait}@media(max-width:600px){.gallery-image-dialog{padding:14px}.gallery-image-dialog-actions button{min-height:44px;flex:1}}
/* v4.38: sponsor beneath the existing footer/Warwickshire Arts credit. */
.site-sponsor{display:block;clear:both;width:100%;margin:0;background:#050505;color:#fff;text-align:left;border-top:1px solid #343434;box-sizing:border-box}
.site-sponsor-inner{display:grid;grid-template-columns:88px minmax(0,1fr) auto;grid-template-areas:"logo title button" "logo copy button";gap:8px 26px;align-items:center;max-width:1400px;margin:0 auto;padding:30px 28px;box-sizing:border-box}
.site-sponsor-logo{grid-area:logo;position:relative;display:block;width:88px;height:88px;overflow:hidden;background:#000;border-radius:50%;flex-shrink:0}
.site-sponsor-logo img{position:absolute;display:block;width:612%;max-width:none;height:auto;left:-14%;top:-47%;margin:0;object-fit:initial;aspect-ratio:auto}
.site-sponsor-title{grid-area:title;margin:0!important;color:#fff!important;font-family:Arial,sans-serif;font-size:clamp(20px,2vw,29px);font-weight:600;line-height:1.25;letter-spacing:normal;text-transform:none;overflow-wrap:anywhere}
.site-sponsor-title strong{font-weight:800;white-space:nowrap}.site-sponsor-copy{grid-area:copy;min-width:0}.site-sponsor-copy p{margin:0!important;font-family:Arial,sans-serif;color:#fff!important;line-height:1.45;font-size:17px}.site-sponsor-copy p+p{margin-top:5px!important;color:#d4d4d4!important;font-size:14px}
.site-sponsor .site-sponsor-button{grid-area:button;display:flex;gap:14px;align-items:center;justify-content:center;padding:13px 20px;min-height:48px;border:2px solid #fff;border-radius:40px;background:#050505;color:#fff;font-family:Arial,sans-serif;font-size:15px;font-weight:700;line-height:1.35;text-decoration:none;box-sizing:border-box;text-align:center;transition:background .15s,color .15s}.site-sponsor-button>span[aria-hidden]{font-size:23px;line-height:1}.site-sponsor .site-sponsor-button:hover{background:#fff;color:#050505}.site-sponsor .site-sponsor-button:focus-visible{outline:3px solid #d0f267;outline-offset:5px}
@media(max-width:1000px){.site-sponsor-inner{grid-template-columns:72px minmax(0,1fr);grid-template-areas:"logo title" "logo copy" "logo button";gap:10px 22px;padding:25px}.site-sponsor-logo{width:72px;height:72px}.site-sponsor-button{justify-self:start}}
@media(max-width:600px){.site-sponsor-inner{grid-template-columns:58px minmax(0,1fr);grid-template-areas:"logo title" "copy copy" "button button";gap:16px;padding:24px 18px}.site-sponsor-logo{width:58px;height:58px}.site-sponsor-title{font-size:21px}.site-sponsor-copy p{font-size:16px}.site-sponsor-copy p+p{font-size:14px}.site-sponsor .site-sponsor-button{width:100%;justify-self:stretch;font-size:14px;padding:12px 14px}}
/* Keep the document view scrollable so its sponsor is reachable below the file. */
@media screen{body.document-view-direct{height:auto;min-height:100vh;overflow:auto;padding:58px 0 76px!important}.document-view-direct .document-image-viewer,.document-view-direct .document-direct-stage,.document-view-direct .document-direct-error{position:relative;inset:auto;overflow:visible;max-width:none!important}.document-view-direct .document-native-pdf-stage{height:calc(100vh - 134px);min-height:400px}.document-view-direct .document-direct-error{min-height:calc(100vh - 134px)}@media(max-width:680px){body.document-view-direct{padding-top:54px!important}}}
@media print{.site-sponsor{display:none!important}}
@media(max-width:760px){body.public-league-site #site-footer{padding-bottom:24px!important}}
/* v4.38: one charcoal footer, with matching aligned badges. */
:root{--site-footer-bg:#1b252c;--site-footer-logo:88px}
#site-footer,.site-sponsor{background:var(--site-footer-bg)!important}.site-sponsor{border-top:0;isolation:isolate}.site-sponsor-logo{background:transparent}.site-sponsor-logo img{mix-blend-mode:screen}.site-sponsor .site-sponsor-button{background:var(--site-footer-bg)}.site-sponsor .site-sponsor-button:hover{background:#fff}
#site-footer{padding:24px max(28px,calc((100% - 1344px)/2))!important}.footer-logo-link img{width:var(--site-footer-logo)!important;height:var(--site-footer-logo)!important}.site-sponsor-logo{width:var(--site-footer-logo);height:var(--site-footer-logo)}
@media(max-width:1000px){:root{--site-footer-logo:72px}#site-footer{padding:24px 25px!important}}
@media(max-width:600px){:root{--site-footer-logo:58px}#site-footer{padding:24px 18px!important}}
/* Aggregate analytics dashboard, Super Admin only. */
body.analytics-admin-page .standalone-page-panel{max-width:1200px!important}.analytics-filter{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin:18px 0}.analytics-filter label{min-width:160px}.analytics-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:20px 0}.analytics-card{padding:16px;border:1px solid #dce2df;border-radius:9px;background:#f4f7f5}.analytics-card strong{font-size:30px;display:block}.analytics-card span{font-size:12px;color:#50626d}.analytics-columns{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}.analytics-admin-page table{width:100%;font-size:13px}.analytics-admin-page th,.analytics-admin-page td{padding:9px 6px;text-align:left}.analytics-admin-page td:last-child,.analytics-admin-page th:last-child{text-align:right}.analytics-bar{display:block;height:8px;background:#315c98;border-radius:4px;max-width:100%}.analytics-admin-page details{margin-top:22px}.analytics-note{font-size:13px;color:#536773}@media(max-width:720px){.analytics-columns{grid-template-columns:1fr}.analytics-filter label{flex:1 1 140px}}
#site-footer{border-bottom:0!important}
.analytics-columns .table-wrap{max-height:480px;overflow:auto}
@media(max-width:600px){.analytics-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-card{padding:12px}.analytics-card strong{font-size:26px}}

/* v4.38: direct league player register, shared by both leagues. */
.direct-player-filter{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:16px 0}
.direct-player-filter label{flex:1 1 220px;margin:0}
.direct-player-filter select{width:100%;min-height:44px}
.direct-player-filter a{padding:10px 0}
.direct-player-registration{margin:0;padding:18px 0}
.direct-player-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px}
.direct-player-heading span{color:#53656d;font-size:13px}
.direct-player-flags{display:flex;flex-wrap:wrap;gap:8px 20px;margin:10px 0}
.direct-player-flags .check-label{display:flex;align-items:center;gap:8px;min-height:44px;margin:0}
.direct-player-flags input[type=checkbox]{width:20px;height:20px;flex:none;accent-color:#386400}
.direct-player-identity{margin:8px 0 12px}
.direct-player-identity summary{font-size:14px;color:#39535f;padding:6px 0}
.direct-player-identity .form-grid{margin-top:12px}
@media(max-width:480px){.direct-player-heading{display:block}.direct-player-heading span{display:block;margin-top:4px}.direct-player-filter button{width:100%}}

/* v4.38 — scrollable scorer controls and resilient scorecard entry at narrow widths. */
.darts-scorer-overlay{overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom,0px)!important}
.darts-scorer-modal.chalkboard{max-width:100%!important;min-height:100dvh!important;height:auto!important;max-height:none!important;overflow:visible!important;box-sizing:border-box!important}
.electronic-scorecard,.scorecard-shell,.great-white-page,.great-white-config{min-width:0;max-width:100%;box-sizing:border-box}
.great-white-config>label,.score-game-side,.stat-entry-row{min-width:0}
.electronic-scorecard select,.electronic-scorecard input,.great-white-config input,.great-white-config select{max-width:100%;box-sizing:border-box}
.standalone-scorer-nav{flex-wrap:wrap!important;gap:6px!important}
.standalone-scorer-nav button{min-height:44px!important;white-space:normal!important}
@media(max-width:480px){
 .great-white-config{grid-template-columns:minmax(0,1fr)!important}
 .electronic-scorecard select,.electronic-scorecard input,.electronic-scorecard textarea,.great-white-config input,.great-white-config select{font-size:16px!important}
 .stat-entry-row{flex-wrap:wrap;grid-template-columns:minmax(0,1fr) minmax(60px,90px) auto auto}
 .scorecard-title,.scorecard-actions{flex-wrap:wrap}
}
@media(max-width:480px){
 .electronic-scorecard .stat-entry-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto 28px!important;gap:6px!important}
 .electronic-scorecard .stat-entry-row>select{grid-column:1/-1!important;min-width:0!important;width:100%!important}
 .electronic-scorecard .stat-entry-row>input:not([type=hidden]){min-width:0!important;width:100%!important}
 .electronic-scorecard .stat-entry-row>.stat-save-button{min-width:44px!important}
 .electronic-scorecard .stat-entry-row>.remove-stat-row{grid-column:3!important}
}
.darts-scorer-overlay .chalk-actions{position:relative!important;bottom:auto!important}
/* Scale digits to each player's board, including the narrower iPad columns. */
.chalk-player{container-type:inline-size;min-width:0!important}
.chalk-player-head>b{font-size:clamp(36px,30cqw,110px)!important;max-width:100%!important;line-height:1.05!important}
.chalk-player-head>strong{font-size:clamp(10px,6cqw,18px)!important;white-space:normal!important;overflow-wrap:anywhere!important;max-width:100%!important}
.chalk-player .chalk-columns{grid-template-columns:34px minmax(0,1fr) minmax(0,1fr)!important;gap:4px!important;font-size:clamp(8px,3.5cqw,11px)!important}
.chalk-player:first-child .chalk-player-head>strong{padding-right:28px!important;box-sizing:border-box!important}
.chalk-player:last-child .chalk-player-head>strong{padding-left:28px!important;box-sizing:border-box!important}

/* v4.38 — readable joining guidance, breadcrumbs and website credits. */
.seo-guide{max-width:960px;margin:18px auto;line-height:1.7}.seo-guide h1{font-size:clamp(26px,4vw,44px);line-height:1.15;overflow-wrap:break-word}.seo-guide h2{margin-top:28px}.seo-guide p{max-width:76ch}.seo-guide a,.seo-local a,.seo-intro a{text-decoration:underline;text-underline-offset:3px}.seo-breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;font-size:13px}.seo-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.seo-link-grid>div{min-width:0}.seo-page-list{padding-left:22px;columns:2;column-gap:30px}.seo-page-list li{break-inside:avoid;margin:9px 0}.standalone-website-credit{max-width:960px;margin:22px auto;padding:0 18px;text-align:center;font-size:13px;line-height:1.6}.footer-powered{line-height:1.5}@media(max-width:650px){.seo-link-grid{grid-template-columns:minmax(0,1fr)}.seo-page-list{columns:1}.seo-guide{padding:18px}.seo-breadcrumbs{font-size:12px}}
.seo-breadcrumbs a{padding:0;border:0;white-space:normal;font:inherit;text-decoration:underline;text-underline-offset:3px}.seo-breadcrumbs{overflow:visible;background:transparent}
.seo-breadcrumbs{flex-direction:row!important;align-items:center;justify-content:flex-start!important}.seo-breadcrumbs>a,.seo-breadcrumbs>span{width:auto!important;flex:0 1 auto}

/* v4.38 — Captain pages use the available screen, while sign-in forms stay compact. */
body.captain-site-page main{width:100%!important;max-width:1600px!important;padding:24px clamp(12px,2.2vw,36px) 90px!important}
body.captain-site-page main>.standalone-page-panel{width:100%!important;max-width:none!important;margin:0!important;min-width:0}
body.captain-site-page .scorecard-shell{width:100%;max-width:none;min-width:0}
body.captain-site-page .captain-dashboard-identity,body.captain-site-page .captain-action-card,body.captain-site-page .captain-fixture-card>div,body.captain-site-page .score-side,body.captain-site-page .score-player-entry{min-width:0}
body.captain-site-page .captain-dashboard-copy h2,body.captain-site-page .captain-fixture-card strong,body.captain-site-page .scorecard-title h2{overflow-wrap:anywhere}
body.captain-site-page .captain-action-copy strong,body.captain-site-page .captain-action-copy small{white-space:normal}
body.captain-site-page .captain-fixture-status{white-space:normal;flex-wrap:wrap;justify-content:flex-end}
body.captain-site-page .scorecard-title>div:first-child{min-width:0;flex:1 1 220px}
body.captain-site-page .scorecard-title{flex-wrap:wrap}
body.captain-site-page .score-side-entry{min-width:0}
body.captain-site-page .score-player-entry select{min-width:0;width:100%}
@media(min-width:1100px){
 body.captain-site-page .captain-fixture-list,body.captain-site-page .scorecard-games{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 body.captain-site-page .match-stats-entry{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 body.captain-site-page .match-stats-entry>div:first-child,body.captain-site-page .scorecard-notes,body.captain-site-page .ladies-scorecard-footer-note{grid-column:1/-1}
 body.captain-site-page .stat-entry-group{margin:0}
}
@media(max-width:700px){
 body.captain-site-page main{padding:12px 8px 90px!important}
 body.captain-site-page main>.standalone-page-panel{padding:12px!important}
 body.captain-site-page .captain-fixture-list,body.captain-site-page .scorecard-games{grid-template-columns:minmax(0,1fr)}
 body.captain-site-page .scorecard-actions{flex-wrap:wrap}
}

/* v4.38 — honours archive. All styles are scoped to the historical records. */
.honours-panel{border:1px solid #d9e0e4;border-radius:16px;overflow:hidden;background:#fff;margin:22px 0}
.honours-panel [hidden]{display:none!important}
.honours-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px;background:linear-gradient(120deg,#142b38,#264b5d);color:#fff}
.honours-hero h2{color:#fff;margin:7px 0 12px;font-size:clamp(30px,4vw,46px)}
.honours-hero p{margin:0;color:#d6e3e9;max-width:48ch}
.honours-hero .eyebrow{color:#ead38e}
.honours-totals{display:flex;gap:26px;margin:0;flex-wrap:wrap;flex-shrink:0}
.honours-totals div{display:flex;flex-direction:column-reverse;gap:5px}
.honours-totals dt{font-size:11px;color:#d6e3e9;text-transform:uppercase;letter-spacing:.06em}
.honours-totals dd{margin:0;color:#f5df9c;font-size:27px;font-weight:800;line-height:1.1}
.honours-open{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 26px;cursor:pointer;list-style:none;background:#f7f4e9;color:#192e3a}
.honours-open::-webkit-details-marker,.honours-season>summary::-webkit-details-marker{display:none}
.honours-open strong,.honours-open small{display:block}.honours-open strong{font-size:18px}.honours-open small{color:#52616a;font-size:12px;margin-top:4px}
.honours-open-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:#193a4c;color:#fff;font-size:25px;transition:transform .15s}
.honours-archive[open]>.honours-open .honours-open-icon{transform:rotate(45deg)}
.honours-content{padding:22px 26px}.honours-archive-note{font-size:13px;color:#627079;margin:0 0 20px}
.honours-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(200px,1.4fr) auto;gap:14px;align-items:end;padding:18px;border:1px solid #dbe2e6;border-radius:12px;background:#f4f7f8}
.honours-filters label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px;font-weight:700;color:#324b59}
.honours-filters select,.honours-filters input[type=search]{width:100%;max-width:100%;min-width:0;min-height:44px;font-size:14px}
.honours-filters button{min-height:44px;white-space:normal}
.honours-filters .honours-gaps{grid-column:1/-1;display:flex;flex-direction:row;align-items:center;font-weight:500}
.honours-gaps input{width:18px;height:18px;margin:0;flex:0 0 18px}
.honours-status{font-size:13px;color:#526772;margin:16px 0}
.honours-seasons{display:grid;gap:14px}.honours-season{border:1px solid #dce3e7;border-radius:12px;overflow:hidden}
.honours-season>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;padding:18px 20px;background:#f0f4f5}
.honours-season-title{font-size:18px;font-weight:800;color:#193a4c}.honours-season-count{font-size:12px;color:#536d79;flex-shrink:0}
.honours-season>summary::after{content:'+';font-size:23px;color:#31596e}.honours-season[open]>summary::after{content:'−'}
.honours-awards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px}
.honours-award{min-width:0;padding:18px;border:1px solid #dce3e5;border-top:3px solid #c6a34d;border-radius:10px;background:#fff}
.honours-award-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;min-height:22px;margin-bottom:10px}
.honours-category{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#657883;font-weight:700}
.honours-performance{padding:4px 8px;border-radius:6px;background:#e8f0f4;color:#1e465b;font-size:12px}
.honours-award h3{font-size:19px;line-height:1.25;margin:0 0 17px;color:#213c4a}
.honours-result{display:grid;gap:5px;min-width:0}.honours-result>span{font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.05em;color:#778891}
.honours-result>strong{font-size:15px;line-height:1.5;overflow-wrap:anywhere}.honours-winner{padding-left:11px;border-left:3px solid #cfb66e}
.honours-runner{margin-top:16px;padding-top:13px;border-top:1px solid #e8edef}.honours-runner>strong{font-size:13px;font-weight:500;color:#566d79}
.honours-result em{font-weight:400;font-style:normal;color:#8a969c}.honours-unrecorded{border-top-color:#c4cdd2;background:#fafbfb}
.honours-season-note{margin:0 18px 18px;padding:14px 16px;background:#f8f5e9;border-left:3px solid #c6a34d;font-size:14px}.honours-season-note p{margin:5px 0 0;overflow-wrap:anywhere}
.honours-empty{padding:28px;border:1px dashed #bdcbd3;border-radius:12px;background:#fafcfc;text-align:center}.honours-empty h3{margin:0 0 8px}.honours-empty p{margin:0;color:#657883}
@media(max-width:1100px){.honours-hero{align-items:flex-start;flex-direction:column}.honours-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.honours-search-label{grid-column:1/-1}.honours-awards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.honours-hero{padding:21px 18px;gap:20px}.honours-totals{gap:20px}.honours-totals dd{font-size:22px}.honours-open{padding:17px 18px}.honours-content{padding:18px 12px}.honours-filters{padding:13px;grid-template-columns:minmax(0,1fr)}.honours-filters select,.honours-filters input[type=search]{font-size:16px}.honours-awards{grid-template-columns:minmax(0,1fr);padding:12px}.honours-season>summary{padding:15px 13px;flex-wrap:wrap;gap:7px}.honours-season-title{flex:1 1 190px;font-size:16px}.honours-season-count{flex:1 1 auto;font-size:11px}.honours-season-note{margin:0 12px 12px}.honours-panel{border-radius:12px}}
body.captain-site-page .standalone-page-panel>h1{font-size:clamp(28px,3vw,44px);line-height:1.15}
body.history-site-page main{max-width:1440px;width:100%}body.history-site-page main>.standalone-page-panel{max-width:none!important;width:100%}
.honours-filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
@media(max-width:650px){.honours-filters{grid-template-columns:minmax(0,1fr)}}

/* Captain Results and scorecards must fill desktop screens as well as wrap on phones. */
body.captain-results-page .captain-review-row{display:flex;flex-wrap:wrap;gap:16px;min-width:0}
body.captain-results-page .captain-review-row>div:first-child{flex:1 1 320px;min-width:0;overflow-wrap:anywhere}
body.captain-results-page .captain-review-actions{display:flex;flex-wrap:wrap;gap:10px;min-width:0}
.stats-toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin:18px 0}
.stats-toolbar label{flex:1 1 180px;min-width:0}
.stats-sort-button{background:none;border:0;color:inherit;padding:10px 4px;font:inherit;font-weight:700;white-space:normal;box-shadow:none}
.stats-sort-button:hover,.stats-sort-button:focus-visible{background:#edf2f5;color:#182b37}
.stats-sort-button:after{content:' ↕';font-size:.8em}
th[aria-sort="ascending"] .stats-sort-button:after{content:' ↑'}
th[aria-sort="descending"] .stats-sort-button:after{content:' ↓'}
.player-confirm-control{min-width:0;display:grid;gap:6px}.player-confirmed-name{color:#46604c;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.player-confirm-button{font-size:12px;padding:7px;white-space:normal}.player-confirm-dialog{width:min(440px,calc(100% - 24px));max-height:85vh;overflow:auto;padding:24px;border:0;border-radius:16px;box-shadow:0 18px 80px #0005}.player-confirm-dialog::backdrop{background:#101d2bc2}.player-confirm-dialog h2{margin-top:0}.player-confirm-actions{display:flex;gap:12px;flex-wrap:wrap}.scorecard-sync-status{padding:12px;background:#eef4f1;border-radius:9px;line-height:1.5}.player-confirm-control [hidden]{display:none!important}
.manual-game-confirm{margin-top:14px;padding-top:14px;border-top:1px solid #dfe7e4;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.manual-game-confirm button{white-space:normal;min-height:44px}.game-result-status{flex:1 1 180px;min-width:0;margin:0;font-size:13px;line-height:1.4;color:#42564b}.score-game{scroll-margin-top:18px}@media(max-width:650px){.manual-game-confirm{display:grid;grid-template-columns:minmax(0,1fr)}.manual-game-confirm button{width:100%}}
@media(max-width:650px){
 body.captain-site-page .electronic-scorecard:not(.ladies-electronic-scorecard) .score-game-matchup{grid-template-columns:minmax(0,1fr)!important}
 body.captain-site-page .electronic-scorecard:not(.ladies-electronic-scorecard) .score-game-divider{display:none!important}
 body.captain-site-page .electronic-scorecard:not(.ladies-electronic-scorecard) .score-side-entry{grid-template-columns:minmax(0,1fr) 56px!important}
 body.captain-site-page .electronic-scorecard:not(.ladies-electronic-scorecard) .score-side-home{border-right:0;border-bottom:1px solid #dfe7e4}
 body.captain-site-page .electronic-scorecard:not(.ladies-electronic-scorecard) .scorecard-actions{position:static!important}
}
.game-sequence-error{margin:12px;padding:12px;background:#fff0e9;color:#843a20;border:1px solid #ebbaa4;border-radius:9px;font-size:14px;line-height:1.45}.game-needs-result{outline:2px solid #c8784a;outline-offset:1px}.game-sequence-error[hidden]{display:none!important}
.stats-rankings{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.stats-rankings button{min-height:44px;white-space:normal;background:#eff3f5;color:#213843;border:1px solid #c9d5db}.stats-rankings button[aria-pressed="true"]{background:#213843;color:#fff;border-color:#213843}.stats-rankings[hidden],.stats-browser [hidden]{display:none!important}.stats-toolbar>[data-stats-clear]{min-height:44px}.stats-browser [data-stats-empty]{padding:14px;border-radius:10px;background:#f2f5f6}@media(max-width:650px){.stats-rankings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stats-rankings button{width:100%;padding:10px 8px}}
.stats-footer{display:flex;justify-content:center;margin:22px 0 10px}.stats-return-top{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;text-decoration:none}.stats-controls-error{margin:16px 0}

/* Compact season leaders, with tied players side by side. */
.season-leaders-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:start}
.season-leaders .panel-head{flex-wrap:wrap;gap:10px;margin-bottom:12px}.season-leaders h2{margin:2px 0 0;font-size:28px}.season-leaders .panel-head .button{padding:8px 12px;font-size:13px}
.season-leader{min-width:0;padding:14px}.season-leader h3{margin:0;font-size:16px;line-height:1.2}.season-leader-value{display:block;font-size:1.8rem;line-height:1.1;color:var(--ink,#111e26);margin:7px 0 10px}
.season-leader ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;list-style:none;margin:0;padding:0}.season-leader li{min-width:0;padding:6px 0;border-top:1px solid var(--line,#dce2df);overflow-wrap:anywhere;line-height:1.3}.season-leader li strong,.season-leader li span{display:block}.season-leader li strong{font-size:13px}.season-leader li span{font-size:11px;opacity:.75;margin-top:2px}.season-leader>p{font-size:13px;margin:10px 0 0}.season-leaders>.small{font-size:11px;margin:8px 0 0}
@media(max-width:1100px){.season-leaders-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.season-leaders-grid{grid-template-columns:1fr}.season-leader{padding:12px}.season-leader ul{column-gap:16px}}

/* Equal-depth leader cards, capped at three rows of two names. */
.season-leaders-grid{align-items:stretch}
.season-leader{height:340px;display:flex;flex-direction:column;border-top:4px solid var(--leader-colour);background:var(--leader-bg);border-radius:8px}
.season-leader-wins{--leader-colour:#56821c;--leader-bg:#f3f8e8}.season-leader-n180{--leader-colour:#2468a5;--leader-bg:#edf5fc}.season-leader-hi{--leader-colour:#8051a2;--leader-bg:#f6effb}.season-leader-out{--leader-colour:#aa6420;--leader-bg:#fff5e9}
.season-leader-value{color:var(--leader-colour)}
.season-leader ul{grid-auto-rows:64px;flex-shrink:0}.season-leader li strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.season-leader li span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.season-leader-more{display:block;margin-top:auto;font-size:12px;font-weight:700;text-decoration:underline;line-height:1.4;padding-top:6px}

/* Brighter pastel season leaders. Scope specificity keeps the panel background. */
.panel.season-leader-wins{background:#e8f4c9}.panel.season-leader-n180{background:#deefff}.panel.season-leader-hi{background:#eee1fb}.panel.season-leader-out{background:#ffedce}
#scorecard-approval-dialog{width:min(520px,calc(100% - 32px));border:0;border-radius:12px;padding:28px}#scorecard-approval-dialog::backdrop{background:#111e2699}.approval-choices{display:flex;flex-wrap:wrap;gap:12px}.scorecard-approval{margin-top:20px;background:#eef7df}

/* Five equal leader cards, four names in a single column. */
.season-leaders-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.season-leader{height:380px;padding:12px}.season-leader h3{min-height:39px}
.season-leader ul{grid-template-columns:minmax(0,1fr);grid-auto-rows:58px}
.panel.season-leader-singlesWins{--leader-colour:#56821c;background:#e8f4c9}
.panel.season-leader-doublesWins{--leader-colour:#197b72;background:#def4ed}
@media(max-width:1100px){.season-leaders-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.season-leaders-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){.season-leaders-grid{grid-template-columns:1fr}}

.weekly-roundup{background:linear-gradient(120deg,#edf6dd,#f4f9ff);border-left:4px solid #56821c;border-radius:8px;padding:22px 24px}.weekly-roundup h2{font-size:28px;margin:5px 0 12px}.weekly-roundup-copy{font-size:16px;line-height:1.7;max-width:100ch;margin-bottom:14px;overflow-wrap:anywhere}.weekly-roundup-footer{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px}.weekly-roundup-footer a{font-size:13px;text-decoration:underline;font-weight:700}.weekly-roundup-note{font-size:12px;color:var(--muted);margin:12px 0 0}.home-weekly-roundup:empty{display:none}@media(max-width:540px){.weekly-roundup{padding:18px 16px}.weekly-roundup h2{font-size:25px}.weekly-roundup-copy{font-size:15px}}

.player-photo-control{display:flex;flex-direction:column;gap:6px;margin:12px 0;max-width:100%}.player-photo-control input[type=file]{width:100%;max-width:420px;background:white;font-size:13px}.player-photo-control small{font-size:12px;color:var(--muted)}.direct-player-heading{justify-content:flex-start;align-items:center}.direct-player-heading>span:not(.admin-player-photo){margin-left:auto}.admin-player-photo{width:56px;height:56px;object-fit:cover;border-radius:50%;flex:none;border:1px solid var(--line)}.admin-player-photo-placeholder{display:grid;place-items:center;background:#edf3df;color:#405d25;font-weight:700;font-size:22px}.player-remove-photo{margin:4px 0 12px}.player-photo-error{color:#932d20}@media(max-width:480px){.direct-player-heading{display:flex}.direct-player-heading>span:not(.admin-player-photo){width:100%;margin-left:0}.admin-player-photo{width:48px;height:48px}}

.direct-player-heading .admin-player-photo-placeholder{font-size:22px;color:#405d25;margin-left:0}

.scorer-correction-dialog{width:min(500px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:24px;border:0;border-radius:12px;color:var(--ink);background:#f7faef}.scorer-correction-dialog::backdrop{background:#061216bb}.scorer-correction-dialog h2{font-size:28px;margin-bottom:12px}.scorer-correction-dialog label{display:flex;flex-direction:column;gap:6px;margin:14px 0}.scorer-correction-dialog [hidden]{display:none!important}.scorer-correction-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.scorer-correction-actions button{min-height:44px}.scorer-correction-error{color:#982e21;font-size:14px;line-height:1.5}.scorer-correction-error:empty{display:none}
