:root{
  --green:#218a21;
  --green-2:#145f19;
  --green-3:#e8f5e8;
  --ink:#111715;
  --muted:#66756d;
  --bg:#f3f6f4;
  --white:#ffffff;
  --win:#17924a;
  --draw:#8a8f94;
  --loss:#c9473b;
  --radius:22px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
body{min-height:100vh}
body.role-parent [data-requires-edit]{display:none!important}
body.role-parent .editable-inputs input,
body.role-parent .editable-inputs select,
body.role-parent .editable-inputs textarea{pointer-events:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.app-shell{width:min(820px,100%);margin:0 auto;min-height:100vh;position:relative;background:var(--bg)}
.hero{position:relative;overflow:hidden;padding:18px 18px 18px;background:linear-gradient(145deg,#050a06 0%,#111713 40%,var(--green) 100%);color:#fff;border-bottom-left-radius:28px;border-bottom-right-radius:28px;box-shadow:0 10px 34px rgba(0,0,0,.18)}
.hero-pattern{position:absolute;inset:0;background:radial-gradient(circle at 14% 18%,rgba(255,255,255,.11) 0 3px,transparent 4px),radial-gradient(circle at 88% 22%,rgba(255,255,255,.08) 0 4px,transparent 5px),radial-gradient(circle at 70% 85%,rgba(255,255,255,.05) 0 4px,transparent 5px);opacity:.55;pointer-events:none}
.hero-topbar{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.mode-pill{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900;letter-spacing:.3px}
.hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:92px 1fr;gap:14px;align-items:center}
.club-logo-wrap{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.18);box-shadow:inset 0 0 0 6px rgba(255,255,255,.04)}
.club-logo{width:88px;height:88px;object-fit:contain;border-radius:50%;filter:drop-shadow(0 4px 7px rgba(0,0,0,.22))}
.club-logo-wrap{overflow:hidden;isolation:isolate}
.hero-copy h1{margin:2px 0 4px;font-size:36px;line-height:.94;font-weight:1000;letter-spacing:.8px}
.eyebrow{margin:0;color:#cfe7d4;font-size:11px;font-weight:900;letter-spacing:1.5px}.season-line{margin:0;color:#edf7f0;font-size:13px;font-weight:700}
.hero-subrow{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.hero-badge{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);padding:6px 10px;border-radius:999px;font-size:11px;font-weight:850;color:#f3fbf5}
.brand-mark{width:72px;height:81px;display:grid;place-items:center;opacity:.82}.brand-mark svg{width:100%;height:100%}.shield-fill{fill:#fff}.shield-line,.helmet,.neck,.ball-line{fill:none;stroke:#fff;stroke-width:3}.visor,.ball{fill:#0e1512}.visor-cut{fill:#fff}.plume,.sword{fill:#31b64b}.role-banner{position:relative;z-index:1;margin-top:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);padding:10px 12px;border-radius:14px;font-size:12px;font-weight:800;color:#edf8f0}
.content{padding:18px 16px calc(118px + env(safe-area-inset-bottom))}.view{display:none}.view.active{display:block}.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 14px}.section-title-row h2{margin:3px 0 0;font-size:28px;line-height:1;font-weight:1000}.kicker{margin:0;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:1px;text-transform:uppercase}
.icon-button,.text-button{appearance:none;border:0;background:#fff;border-radius:14px;padding:10px 12px;font-size:22px;box-shadow:none}.text-button{border:0;background:none;color:var(--green);font-weight:850;padding:6px;font-size:14px}.hidden{display:none!important}
.primary-button,.secondary-button,.danger-button{border:0;border-radius:14px;padding:13px 16px;font-weight:900}.primary-button{background:var(--green);color:#fff;box-shadow:0 7px 16px rgba(11,95,58,.22)}.primary-button.compact,.secondary-button.compact{padding:10px 15px}.primary-button.large{width:100%;padding:16px;font-size:16px}.secondary-button{background:#eef2ef;color:var(--ink);border:1px solid #d8dfda}.secondary-button.tiny{padding:8px 10px;font-size:12px}.danger-button{background:#fbe8e6;color:#8d2e29}
.panel{background:var(--white);border:1px solid #e2e8e4;border-radius:var(--radius);padding:17px;margin-bottom:14px;box-shadow:0 6px 18px rgba(9,45,27,.055)}.panel h3{margin:0 0 12px;font-size:17px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading h3{margin:0}.muted,.helper{color:var(--muted)}.helper{font-size:12px}.small-text{font-size:12px}.shield-mini{background:var(--green-3);color:var(--green);width:31px;height:31px;border-radius:10px;display:grid;place-items:center;font-weight:900}
.knight-panel{background:linear-gradient(135deg,#0d1712,#17271d);color:#fff;border-color:#17271d;position:relative;overflow:hidden}.knight-panel::after{content:"⚔";position:absolute;right:12px;top:-22px;font-size:108px;color:rgba(255,255,255,.04);transform:rotate(-25deg)}
.record-card{display:grid;grid-template-columns:1fr 1.7fr;gap:18px;padding:20px}.record-main{display:flex;flex-direction:column}.record-number{font-size:58px;font-weight:1000;line-height:.86}.record-label{font-size:11px;letter-spacing:2px;color:#b9c7be;font-weight:900;margin-top:8px}.record-split{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;align-self:center}.record-split div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:11px 8px;text-align:center}.record-split strong{display:block;font-size:24px}.record-split span{font-size:11px;color:#b8c8be;font-weight:900}.record-footer{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);font-size:11px;color:#bac7bf;text-align:center}.record-footer b{display:block;color:#fff;font-size:16px}
.dashboard-grid{display:grid;grid-template-columns:1fr;gap:0}.form-row{display:flex;gap:8px;margin:14px 0}.form-chip{width:34px;height:34px;border-radius:10px;color:#fff;display:grid;place-items:center;font-weight:1000}.form-chip.W{background:var(--win)}.form-chip.D{background:var(--draw)}.form-chip.L{background:var(--loss)}.form-empty{color:var(--muted);font-size:13px}
.mini-list,.ranking-list,.award-list{display:flex;flex-direction:column}.mini-item,.rank-item,.award-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #edf1ee}.mini-item:first-child,.rank-item:first-child,.award-item:first-child{border-top:0}.mini-team{font-weight:800}.mini-meta{font-size:12px;color:var(--muted)}.scoreline{font-weight:1000;font-size:17px;white-space:nowrap}.rank-left{display:flex;align-items:center;gap:10px}.rank-no{width:28px;height:28px;border-radius:9px;background:#eef4f0;color:var(--green);display:grid;place-items:center;font-weight:1000;font-size:12px}.rank-name{font-weight:850}.rank-value{font-weight:1000;color:var(--green)}.next-action-panel{background:linear-gradient(135deg,#e3f2e9,#f8fbf9);border-color:#cfe5d7}.next-action-panel p:not(.kicker){color:#4d5e54;margin:0 0 15px}
.filter-bar{display:grid;grid-template-columns:1.4fr 1fr;gap:9px;margin-bottom:14px}.filter-bar input,.filter-bar select,input,select,textarea{width:100%;border:1px solid #d8e0da;border-radius:12px;background:#fff;color:var(--ink);padding:12px;outline:none}.filter-bar input:focus,.filter-bar select:focus,input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(11,95,58,.1)}
.match-list{display:flex;flex-direction:column;gap:11px}.match-card{background:#fff;border:1px solid #e0e7e2;border-radius:18px;padding:15px;display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;box-shadow:0 4px 12px rgba(9,45,27,.04)}.result-badge{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;color:#fff;font-weight:1000}.result-badge.W{background:var(--win)}.result-badge.D{background:var(--draw)}.result-badge.L{background:var(--loss)}.match-opponent{font-weight:900;font-size:15px}.match-meta{font-size:11.5px;color:var(--muted);margin-top:3px}.match-score{font-size:22px;font-weight:1000;white-space:nowrap;text-align:right}.match-actions{grid-column:2/-1;display:flex;gap:12px;justify-content:flex-end;margin-top:-2px}.inline-action{border:0;background:none;color:var(--green);font-weight:850;font-size:12px;padding:3px}.inline-action.delete{color:#9f3c36}
.form-stack{display:flex;flex-direction:column;gap:0}.form-panel h3{margin-bottom:14px}.form-grid{display:grid;grid-template-columns:1fr;gap:12px}.form-grid.two{grid-template-columns:1fr 1fr}.form-panel label,.modal label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:850;color:#405047}.score-entry{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px;margin:14px 0}.score-entry span{font-size:26px;font-weight:1000;padding-bottom:10px}.score-entry input{text-align:center;font-size:27px;font-weight:1000}.scorer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.scorer-row{display:grid;grid-template-columns:1fr 66px;gap:8px;align-items:center;background:#f5f8f6;border-radius:12px;padding:9px 10px}.scorer-player{font-weight:800;font-size:13px}.shirt-tag{color:var(--green);font-size:11px;font-weight:1000;margin-right:5px}.scorer-row input{text-align:center;padding:8px}.goal-check{margin-top:12px;border-radius:10px;background:#eef3f0;padding:10px 12px;font-size:12px;font-weight:850;color:#54655b}.goal-check.good{background:#e3f4e9;color:#09693b}.goal-check.bad{background:#fae9e7;color:#913d36}
.read-only-card{margin-bottom:12px;background:#fff7e7;border:1px solid #f3d69a;color:#775a13;padding:12px 14px;border-radius:16px;font-size:13px;font-weight:800}
.squad-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#0c422b,var(--green));color:#fff}.squad-banner p{margin:0;color:#d9e9df;font-size:12px;max-width:330px}.squad-count strong{display:block;font-size:34px;line-height:1}.squad-count span{font-size:11px;color:#d9e9df}.squad-list{display:grid;grid-template-columns:1fr;gap:9px}.player-card{background:#fff;border:1px solid #e1e7e3;border-radius:16px;padding:12px 14px;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:12px}.shirt-circle{width:46px;height:46px;border-radius:14px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:18px;font-weight:1000;border:3px solid #d7e2db}.player-name{font-weight:950}.player-sub{font-size:11px;color:var(--muted);margin-top:2px}.player-card.vacant{background:#f7f9f8;border-style:dashed}.player-card.vacant .shirt-circle{background:#dfe5e1;color:#66736b}.player-card.vacant .player-name{color:#7d8982;font-weight:700}.player-edit{border:0;background:#edf4ef;color:var(--green);border-radius:10px;padding:8px 10px;font-weight:850}
.award-item{align-items:flex-start}.award-type{font-size:11px;color:var(--green);font-weight:900;text-transform:uppercase;letter-spacing:.6px}.award-player{font-weight:950}.award-event{font-size:12px;color:var(--muted)}.award-date{font-size:11px;color:var(--muted);white-space:nowrap}.button-stack{display:grid;grid-template-columns:1fr;gap:9px}.two-buttons{grid-template-columns:1fr 1fr}.pin-grid{margin-top:14px;align-items:end}.align-end{align-self:end}.file-label{text-align:center;cursor:pointer}.file-label input{display:none}.danger-zone{border-color:#f1d5d2}
.bottom-nav{position:fixed;z-index:30;bottom:0;left:50%;transform:translateX(-50%);width:min(820px,100%);min-height:74px;height:auto;padding:8px 8px max(10px,env(safe-area-inset-bottom));background:rgba(255,255,255,.97);backdrop-filter:blur(18px);border-top:1px solid #dfe6e1;display:grid;grid-template-columns:repeat(4,1fr);box-shadow:0 -8px 20px rgba(10,30,18,.06)}.nav-item{border:0;background:none;color:#728077;font-size:10px;font-weight:850;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.nav-item.active{color:var(--green)}.nav-item.disabled{opacity:.35}.nav-item.disabled .nav-add{background:#aeb7b1;box-shadow:none}.nav-icon{font-size:23px;line-height:1}.add-nav{position:relative}.nav-add{width:43px;height:43px;border-radius:14px;background:var(--green);color:#fff;display:grid;place-items:center;font-size:26px;margin-top:-22px;box-shadow:0 7px 16px rgba(11,95,58,.3);border:3px solid #fff}.add-nav span:last-child{margin-top:0}
.modal{border:0;border-radius:22px;padding:0;width:min(92vw,460px);box-shadow:0 24px 70px rgba(0,0,0,.25)}.small-modal{width:min(92vw,380px)}.modal::backdrop{background:rgba(5,15,9,.55);backdrop-filter:blur(3px)}.modal form{padding:19px;display:flex;flex-direction:column;gap:12px}.modal-heading{display:flex;justify-content:space-between;align-items:center}.modal-heading h3{margin:0}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.pin-error{font-size:12px;font-weight:800;color:#9d2f27}
.toast{position:fixed;z-index:100;left:50%;bottom:92px;transform:translate(-50%,20px);background:#0d1712;color:#fff;padding:12px 16px;border-radius:13px;font-size:13px;font-weight:750;opacity:0;pointer-events:none;transition:.2s;box-shadow:0 8px 30px rgba(0,0,0,.22)}.toast.show{opacity:1;transform:translate(-50%,0)}
.empty-state{text-align:center;padding:30px 14px;color:var(--muted)}.empty-state strong{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}
@media(min-width:650px){.content{padding:26px 26px 105px}.dashboard-grid{grid-template-columns:1fr 1fr;gap:14px}.dashboard-grid .panel{margin-bottom:0}.record-card{margin-bottom:14px}.squad-list{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr 1fr}.button-stack{grid-template-columns:1fr 1fr}.hero{padding-left:30px;padding-right:30px}.hero-inner{grid-template-columns:100px 1fr}}
@media(max-width:500px){.hero-inner{grid-template-columns:82px 1fr}.record-card{grid-template-columns:.8fr 1.8fr}.record-footer{grid-template-columns:repeat(2,1fr)}.filter-bar{grid-template-columns:1fr}.two-buttons{grid-template-columns:1fr}.hero-copy h1{font-size:31px}}
@media(max-width:420px){.form-grid.two{grid-template-columns:1fr}.scorer-grid{grid-template-columns:1fr}.squad-banner{align-items:flex-start;flex-direction:column;gap:10px}}

/* Simplified 2026/27 league layout */
.hero-inner{margin-top:0}
.league-summary-card{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#ffffff,#f1f8f2)}
.league-summary-copy h3{margin:3px 0 3px;font-size:19px}
.league-summary-copy p:last-child{margin:0;color:var(--muted);font-size:12px}
.league-progress-ring{width:70px;height:70px;border-radius:50%;display:flex;align-items:baseline;justify-content:center;gap:2px;flex-shrink:0;background:var(--ink);color:#fff;padding-top:21px;border:5px solid #dcecdf}
.league-progress-ring strong{font-size:24px;line-height:1}.league-progress-ring span{font-size:11px;color:#c7d3cb;font-weight:900}
.league-programme{padding:0;overflow:hidden}
.league-programme summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px;cursor:pointer}
.league-programme summary::-webkit-details-marker{display:none}
.league-programme summary>div{display:flex;flex-direction:column;gap:4px}.league-programme summary strong{font-size:16px}.league-programme summary>span{font-size:12px;font-weight:950;color:var(--green);background:var(--green-3);padding:8px 10px;border-radius:999px;white-space:nowrap}
.division-opponents{border-top:1px solid #e8ede9;padding:0 17px 8px}
.division-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid #edf1ee}.division-row:first-child{border-top:0}
.division-team{font-weight:850;font-size:13px}.division-results{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.division-count{font-size:11px;font-weight:950;color:var(--muted);min-width:28px;text-align:right}
.league-result{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:25px;border-radius:8px;color:#fff;font-size:10px;font-weight:950;padding:0 6px}.league-result.W{background:var(--win)}.league-result.D{background:var(--draw)}.league-result.L{background:var(--loss)}
.league-slot{width:25px;height:25px;border-radius:8px;border:1px dashed #cfd8d2;background:#f8faf9}
.optional{font-size:10px;color:var(--muted);font-weight:700}
@media(max-width:500px){.hero{padding-top:17px}.club-logo-wrap{width:82px;height:82px}.club-logo{width:78px;height:78px}.season-line{font-size:12px}.league-summary-card{padding:14px 15px}.league-progress-ring{width:62px;height:62px;padding-top:18px}.league-programme summary{padding:14px 15px}.division-opponents{padding:0 15px 8px}.division-team{font-size:12.5px}}

/* 2026-09 reusable team + separated league/friendly update */
.record-heading{grid-column:1/-1;font-size:12px;font-weight:950;letter-spacing:1.2px;text-transform:uppercase;color:#d5e1d9;margin-bottom:-6px}
.running-count-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.running-count-card{margin:0;padding:14px 15px;min-width:0}
.running-main{display:flex;align-items:baseline;gap:7px;margin-top:5px}.running-main strong{font-size:32px;line-height:1;font-weight:1000}.running-main span{font-size:11px;color:var(--muted);font-weight:850}
.running-split{display:flex;gap:12px;margin-top:10px;font-size:11px;color:var(--muted);font-weight:800}.running-split b{color:var(--ink);font-size:14px}
.running-goals{display:flex;gap:12px;margin-top:7px;padding-top:7px;border-top:1px solid #edf1ee;font-size:10px;color:var(--muted);font-weight:800}.running-goals b{color:var(--green);font-size:12px}
.friendly-count-card{background:linear-gradient(135deg,#fff,#f6faf7)}
.single-filter{grid-template-columns:1fr}
.match-section{margin:20px 0 24px}.match-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 2px 10px}.match-section-heading h3{margin:2px 0 0;font-size:20px}.match-section-count{display:inline-grid;place-items:center;min-width:28px;min-height:28px;padding:3px 8px;border-radius:999px;background:var(--gch-soft-green);color:var(--gch-green-950);font-size:.8125rem;font-weight:700;line-height:1.4}.friendly-section{padding:14px;border:1px solid #dce9df;background:linear-gradient(135deg,#edf6ef,#f9fbfa);border-radius:20px}.friendly-section .match-section-heading{margin:0 0 10px}.friendly-section .match-card{box-shadow:none}
.compact-squad-banner{justify-content:flex-start;padding:16px 18px;min-height:86px}.compact-squad-banner .squad-count strong{font-size:38px}
.player-card{grid-template-columns:58px 1fr auto}
.jersey-icon{position:relative;width:58px;height:54px;display:grid;place-items:center}.jersey-icon svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 2px 2px rgba(0,0,0,.12))}.jersey-icon svg path{fill:var(--green);stroke:#0e5222;stroke-width:1.5}.jersey-icon span{position:relative;z-index:1;color:#fff;font-size:17px;font-weight:1000;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.35);margin-top:3px}.jersey-icon.goalkeeper svg path{fill:#f2d33f;stroke:#9f8610}.jersey-icon.goalkeeper span{color:#121612;text-shadow:none}.player-card:has(.jersey-icon.goalkeeper){border-color:#e9dfaa;background:linear-gradient(135deg,#fff,#fffdf2)}
.settings-grid .full-span{grid-column:1/-1}.setup-save{margin-top:14px;width:100%}
.score-entry label>span:first-child{min-height:18px}
@media(max-width:500px){.running-count-grid{grid-template-columns:1fr 1fr}.running-count-card{padding:13px}.running-main strong{font-size:28px}.running-split{gap:8px}.match-section{margin-top:17px}.friendly-section{padding:12px}}
@media(max-width:360px){.running-count-grid{grid-template-columns:1fr}}

/* Distribution roles + editable league list */
.league-editor-help{margin-top:-2px;margin-bottom:14px}
#settings-opponents{min-height:190px;resize:vertical;line-height:1.45}
body.build-parent .read-only-card{display:none!important}
body.build-parent .bottom-nav{grid-template-columns:repeat(4,1fr)}
body.build-parent .bottom-nav .add-nav{display:none!important}


/* U11+ league table and pasted results */
.league-table-panel{overflow:hidden}
.league-table-heading{align-items:flex-end;margin-bottom:10px}.league-table-heading h3{margin:2px 0 0}.age-rule{font-size:10px;font-weight:950;color:var(--green);background:var(--green-3);border-radius:999px;padding:6px 8px}
.league-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -5px;padding:0 5px}.league-table{width:100%;min-width:590px;border-collapse:collapse;font-size:11px}.league-table th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.4px;font-weight:900;padding:8px 6px;border-bottom:1px solid #dfe7e2;text-align:center}.league-table th:nth-child(2){text-align:left}.league-table td{padding:9px 6px;border-bottom:1px solid #edf1ee;text-align:center;font-variant-numeric:tabular-nums}.league-table .team-cell{text-align:left;font-weight:800;max-width:220px}.league-table .pos{font-weight:900;color:var(--muted);width:26px}.league-table .pts{font-weight:1000;color:var(--green)}.league-table tr.our-team-row td{background:#e9f6eb;font-weight:950}.league-table tr.our-team-row .team-cell{color:var(--green-2)}.league-table tr:last-child td{border-bottom:0}.table-meta{margin:9px 0 0;color:var(--muted);font-size:10.5px}.table-empty{text-align:center!important;color:var(--muted);padding:20px!important}
.league-import-panel textarea{margin-top:10px;min-height:142px;resize:vertical}.import-help{font-size:12px;margin:8px 0 0}.import-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.import-feedback{font-size:11.5px;font-weight:800;margin-top:9px;min-height:16px}.import-feedback.good{color:#08743e}.import-feedback.warn{color:#9b5b12}.imported-results-details{margin-top:12px;border-top:1px solid #e9eeeb;padding-top:10px}.imported-results-details summary{cursor:pointer;color:var(--green);font-weight:850;font-size:12px}.imported-result-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #edf1ee;padding:9px 0;font-size:11.5px}.imported-result-row:first-child{margin-top:6px}.imported-result-row strong{display:block}.imported-result-row span{display:block;color:var(--muted);font-size:10px;margin-top:2px}.compact-empty{padding:14px 4px;font-size:11px}.settings-note{margin:10px 0 0;color:var(--muted);font-size:10.5px}
@media(max-width:500px){.import-actions{grid-template-columns:1fr}.league-table{min-width:560px}}

/* Selkent automatic sync */
.selkent-sync-settings{background:linear-gradient(135deg,#fff,#f4faf5)}
.sync-dot{width:12px;height:12px;border-radius:50%;background:#aab4ae;box-shadow:0 0 0 5px #eef2ef}.sync-dot.good{background:#1f9d50;box-shadow:0 0 0 5px #e5f5e9}.sync-dot.busy{background:#d39c1a;box-shadow:0 0 0 5px #fff3d5}.sync-dot.bad{background:#c94b40;box-shadow:0 0 0 5px #fbe8e6}
.toggle-row{display:flex;align-items:center;gap:11px;border:1px solid #dfe8e1;border-radius:14px;padding:12px 13px;margin:12px 0;background:#fff}.toggle-row input{width:20px;height:20px;accent-color:var(--green);flex:0 0 auto}.toggle-row span{display:flex;flex-direction:column;gap:2px}.toggle-row strong{font-size:13px}.toggle-row small{font-size:10.5px;color:var(--muted);font-weight:650}
.selkent-fixtures-panel{background:linear-gradient(135deg,#fff,#f7fbf8)}.synced-fixture-list{display:flex;flex-direction:column}.synced-fixture{display:grid;grid-template-columns:70px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #edf1ee}.synced-fixture:first-child{border-top:0}.synced-fixture-date{font-size:11px;font-weight:900;color:var(--green)}.synced-fixture-opponent{font-size:13px;font-weight:850}.synced-fixture-venue{font-size:10px;font-weight:950;color:var(--muted);background:#eef3f0;border-radius:999px;padding:5px 8px}.sync-source-link{color:var(--green);font-weight:850;text-decoration:none}
@media(max-width:420px){.synced-fixture{grid-template-columns:62px 1fr auto}.synced-fixture-opponent{font-size:12px}}
\n\n/* v1.6 secure club roles + team assignment lock */\nbody:not(.role-admin) [data-admin-only]{display:none!important}\n.app-shell.account-locked{display:none!important}\n.activation-gate{position:fixed;inset:0;z-index:5000;background:linear-gradient(145deg,#071009,#102016 58%,#218a21);padding:22px;overflow:auto;display:grid;place-items:center}\n.activation-card{width:min(520px,100%);background:#fff;border-radius:26px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.32)}\n.activation-logo{display:block;width:min(360px,88%);height:auto;max-height:116px;object-fit:contain;margin:0 auto 15px}.activation-card h1{margin:4px 0 9px;font-size:29px;line-height:1}.activation-card>.kicker{text-align:center}.activation-card>h1,.activation-card>p{text-align:center}\n.activation-card label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:900;color:#405047;margin-top:17px}.activation-card textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;line-height:1.35;word-break:break-all;resize:vertical}.activation-error{background:#fbe8e6;color:#8d2e29;border-radius:12px;padding:10px 12px;font-size:12px;font-weight:800;text-align:left!important}.activation-help{font-size:10.5px!important;color:var(--muted);margin:12px 0 0!important}.activation-card .primary-button{margin-top:12px}\n.account-role-badge{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;background:var(--green-3);color:var(--green-2);font-size:10.5px;font-weight:950;text-transform:uppercase;letter-spacing:.4px}\n.locked-team-note{margin:13px 0 0;padding:10px 12px;border-radius:12px;background:#eef7f0;border:1px solid #d5e8da;color:#225d32;font-size:11px;font-weight:800}\nbody.team-locked #settings-team-name,body.team-locked #settings-age-group,body.team-locked #settings-league-team-name{background:#f1f4f2;color:#657168;border-color:#dfe4e1;opacity:1}\n.admin-assignment-panel{background:linear-gradient(135deg,#fff,#f2f9f3)}.assignment-output-label{display:flex;flex-direction:column;gap:6px;margin-top:14px;font-size:12px;font-weight:850;color:#405047}.assignment-output-label textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;line-height:1.35;word-break:break-all;resize:vertical}.assignment-code-meta{margin:12px 0 -2px;font-size:11px;font-weight:800;color:var(--green-2)}\nbody.build-parent .bottom-nav{grid-template-columns:repeat(4,1fr)}\n@media(max-width:500px){.activation-gate{padding:14px}.activation-card{padding:20px;border-radius:22px}.activation-card h1{font-size:25px}}\n

/* v2.0.5 — responsive navigation, club admin overview, synced match details */
.auto-team-summary,.league-auto-status{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.auto-team-summary>div,.league-auto-status>div{background:#f4f8f5;border:1px solid #e0e8e2;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:3px}.auto-team-summary span,.league-auto-status span{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-weight:900}.auto-team-summary strong,.league-auto-status strong{font-size:15px}.auto-team-summary small{font-size:10px;color:var(--muted);line-height:1.3}.manual-league-fallback,.data-maintenance{margin-top:14px;border-top:1px solid #e8eeea;padding-top:12px}.manual-league-fallback summary,.data-maintenance summary{cursor:pointer;color:var(--green);font-size:12px;font-weight:900}.manual-league-fields{margin-top:12px}.feature-toggle-list{display:grid;gap:9px;margin-top:12px}.match-detail-settings .toggle-row{margin:0}.data-maintenance .button-stack{margin-top:10px}.danger-button.compact{padding:10px 12px;font-size:12px}
.admin-overview-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.admin-stat{margin:0;padding:12px;display:flex;flex-direction:column;gap:3px}.admin-stat span{font-size:10px;color:var(--muted);font-weight:850}.admin-stat strong{font-size:25px;color:var(--green-2)}.admin-team-overview-panel{margin-bottom:14px}.admin-overview-meta{font-size:11px;margin:8px 0 10px}.admin-team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.admin-team-card{border:1px solid #dfe8e1;border-radius:16px;padding:12px;background:#fbfdfb;display:flex;flex-direction:column;gap:7px}.admin-team-card.active-team{border-color:#75bd81;box-shadow:0 0 0 2px rgba(33,138,33,.08)}.admin-team-card-head{display:flex;align-items:center;gap:7px}.admin-team-card-head span{font-size:10px;font-weight:950;color:#fff;background:var(--green);border-radius:999px;padding:4px 7px}.admin-team-card-head strong{font-size:14px}.admin-team-division{font-size:11px;color:var(--muted);min-height:28px}.admin-team-mini{display:flex;flex-wrap:wrap;gap:8px;font-size:10px;color:#5c6b62}.admin-team-card small{font-size:9.5px;color:#809087}.admin-team-card button{margin-top:auto}.selected-team-divider{display:flex;align-items:center;gap:10px;margin:2px 0 14px;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}.selected-team-divider::before,.selected-team-divider::after{content:"";height:1px;background:#dce4df;flex:1}
.match-detail-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.match-detail-badges span{font-size:9px;font-weight:900;color:#31503b;background:#eef5f0;border-radius:999px;padding:3px 6px}.match-detail-modal{width:min(94vw,520px);max-height:calc(100dvh - 28px);overflow:auto}.match-detail-modal form{padding-bottom:max(20px,env(safe-area-inset-bottom))}.detail-match-summary{background:#eef6f0;border-radius:13px;padding:11px 12px;display:flex;justify-content:space-between;gap:8px;align-items:center}.detail-match-summary strong{font-size:12px}.detail-match-summary span{font-size:12px;color:var(--muted);text-align:right}.detail-feature-section{border-top:1px solid #e5ebe7;padding-top:12px}.detail-feature-section h3{margin:0 0 10px}.detail-player-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.detail-player-row{background:#f6f8f7;border-radius:11px;padding:8px;display:grid!important;grid-template-columns:1fr 56px;align-items:center;gap:7px}.detail-player-row span{font-size:11px}.detail-player-row b{color:var(--green)}.detail-player-row input{padding:7px;text-align:center}.detail-booking-grid{display:grid;gap:7px}.detail-booking-row{display:grid;grid-template-columns:1fr 58px 58px;gap:7px;align-items:center;background:#f6f8f7;border-radius:11px;padding:8px}.detail-booking-row>span{font-size:11px}.detail-booking-row b{color:var(--green)}.detail-booking-row label{display:grid!important;grid-template-columns:auto 1fr;align-items:center;gap:4px!important;font-size:10px!important}.detail-booking-row input{padding:7px;text-align:center}.empty-detail-options{background:#fff7e7;border:1px solid #f2d79e;color:#715a1c;border-radius:12px;padding:12px;font-size:12px;line-height:1.4}
@media(max-width:560px){.admin-overview-stats{grid-template-columns:1fr 1fr}.admin-team-grid{grid-template-columns:1fr}.auto-team-summary{grid-template-columns:1fr}.detail-player-grid{grid-template-columns:1fr}.bottom-nav{padding-bottom:max(12px,env(safe-area-inset-bottom))}.content{padding-bottom:calc(126px + env(safe-area-inset-bottom))}}

.manual-result-fallback{margin-top:12px;border-top:1px solid #e8eeea;padding-top:10px}.manual-result-fallback summary{color:var(--green);font-size:12px;font-weight:900;cursor:pointer}.manual-result-fallback .muted{font-size:11px;margin:9px 0}

/* v2.0.6 — authoritative division + league table sync */
.selkent-source-card{margin:13px 0;background:#f4f8f5;border:1px solid #dfe9e1;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:3px}.selkent-source-card span{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-weight:900}.selkent-source-card strong{font-size:13px;color:var(--green-2)}.selkent-source-card small{font-size:10px;line-height:1.35;color:var(--muted)}
html,body{min-height:100%;min-height:100dvh}.bottom-nav{bottom:0;padding-bottom:max(12px,env(safe-area-inset-bottom));min-height:calc(72px + env(safe-area-inset-bottom))}.content{padding-bottom:calc(132px + env(safe-area-inset-bottom))}

/* v2.0.7 — adaptive system-bar clearance, floating navigation and compact settings */
:root{--android-inset-bottom:0px}
html,body{min-height:100%;min-height:100dvh}
.content{padding-bottom:calc(108px + var(--android-inset-bottom,0px) + env(safe-area-inset-bottom))}
.bottom-nav{
  bottom:var(--android-inset-bottom,0px);
  min-height:72px;
  padding:8px 8px max(10px,env(safe-area-inset-bottom));
  grid-template-columns:repeat(4,1fr);
  transform:translateX(-50%);
  transition:transform .24s cubic-bezier(.2,.7,.2,1),opacity .18s ease,box-shadow .18s ease;
  will-change:transform,opacity;
}
body.role-admin .bottom-nav{grid-template-columns:repeat(5,1fr)}
.bottom-nav.nav-hidden{
  transform:translate(-50%,calc(100% + var(--android-inset-bottom,0px) + 28px));
  opacity:0;
  pointer-events:none;
  box-shadow:none;
}
body:has(dialog[open]) .bottom-nav{transform:translate(-50%,calc(100% + var(--android-inset-bottom,0px) + 28px));opacity:0;pointer-events:none}

/* Settings are deliberately compact: one collapsed list until the coach opens an item. */
.settings-accordion-list{display:flex;flex-direction:column;gap:10px}
.settings-accordion{margin:0;padding:0;overflow:hidden}
.settings-accordion>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px;font-size:15px;font-weight:950;color:var(--ink);user-select:none}
.settings-accordion>summary::-webkit-details-marker{display:none}
.settings-accordion[open]>summary{border-bottom:1px solid #e7ece8;background:#fbfdfb}
.settings-chevron{color:var(--green);font-size:18px;line-height:1;transition:transform .18s ease}
.settings-accordion[open] .settings-chevron{transform:rotate(180deg)}
.settings-accordion-body{padding:15px 17px 17px}
.nested-settings{border:1px solid #e3eae5;border-radius:13px;background:#f9fbfa;padding:0;margin-top:12px}
.nested-settings>summary{list-style:none;cursor:pointer;padding:12px 13px;color:var(--green-2)!important;font-size:12px!important;font-weight:900!important}
.nested-settings>summary::-webkit-details-marker{display:none}
.nested-settings[open]{padding-bottom:12px}
.nested-settings[open]>:not(summary){margin-left:12px;margin-right:12px}
.server-backup-note{margin:13px 0;padding:12px 13px;border-radius:13px;background:#eef7f0;border:1px solid #d7e8da;display:flex;flex-direction:column;gap:3px}
.server-backup-note strong{font-size:12px;color:var(--green-2)}
.server-backup-note span{font-size:10.5px;line-height:1.4;color:var(--muted)}

/* Team access / approval list */
.access-members-heading{margin-top:16px;padding-top:14px;border-top:1px solid #e8eeea}
.team-members-list{display:flex;flex-direction:column;gap:8px;margin-top:9px}
.team-member-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid #e1e9e3;border-radius:14px;padding:11px 12px;background:#fbfdfb}
.team-member-row.pending{border-color:#efd99e;background:#fff9e9}
.team-member-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.team-member-copy strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-member-copy span{font-size:10.5px;color:var(--muted)}
.team-member-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.member-role-pill{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#eaf4ed;color:var(--green-2);font-size:9.5px;font-weight:950;text-transform:uppercase}
.team-member-row.pending .member-role-pill{background:#fff0c4;color:#7a5b09}
.member-empty{padding:13px 4px;color:var(--muted);font-size:11px;text-align:center}

/* Award history now lives with Player awards rather than Settings. */
.award-history-inline{margin-top:11px;border-top:1px solid #e8eeea;padding-top:10px}
.award-history-inline>summary{cursor:pointer;list-style:none;color:var(--green);font-weight:900;font-size:12px;display:flex;align-items:center;justify-content:space-between}
.award-history-inline>summary::-webkit-details-marker{display:none}
.award-history-actions{display:flex;justify-content:flex-end;margin:7px 0 2px}

/* Dialogs stay inside the usable viewport when the software keyboard/system bar is visible. */
dialog.modal{
  max-height:calc(100dvh - var(--android-inset-bottom,0px) - 20px);
  overflow:hidden;
}
.modal form{
  max-height:calc(100dvh - var(--android-inset-bottom,0px) - 20px);
  overflow-y:auto;
  overscroll-behavior:contain;
  padding-bottom:max(16px,env(safe-area-inset-bottom));
}
.modal-actions{position:sticky;bottom:-1px;z-index:3;background:linear-gradient(to bottom,rgba(255,255,255,.88),#fff 24%);padding-top:12px;padding-bottom:2px}

/* Keep compact output fields readable now invites are short one-time codes. */
.assignment-output-label input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;font-weight:800;letter-spacing:.4px}

@media(max-width:560px){
  .content{padding-bottom:calc(104px + var(--android-inset-bottom,0px) + env(safe-area-inset-bottom))}
  .bottom-nav{bottom:var(--android-inset-bottom,0px);min-height:70px;padding-bottom:max(10px,env(safe-area-inset-bottom))}
  .settings-accordion>summary{padding:15px 15px}.settings-accordion-body{padding:14px 15px 16px}
  .team-member-row{grid-template-columns:1fr}.team-member-actions{justify-content:flex-start}
}
.member-group-label{margin:9px 2px 2px;color:var(--muted);font-size:9.5px;font-weight:950;text-transform:uppercase;letter-spacing:.8px}

/* v2.0.8 — Club Admin/Coach UI switch and squad removal */
.admin-ui-mode-panel{margin-bottom:12px;display:flex;flex-direction:column;gap:10px}.admin-ui-mode-panel>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-ui-mode-panel>div:first-child strong{font-size:13px}.admin-ui-mode-panel>div:first-child span{font-size:11px;color:var(--muted);font-weight:800}.admin-ui-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border:1px solid #dfe8e1;background:#f3f7f4;border-radius:14px}.mode-switch-button{appearance:none;border:0;border-radius:10px;padding:10px 8px;background:transparent;color:#657168;font:inherit;font-size:11px;font-weight:900}.mode-switch-button.active{background:#fff;color:var(--green-2);box-shadow:0 2px 8px rgba(16,66,34,.09)}
body.admin-club-mode .bottom-nav{grid-template-columns:repeat(2,1fr)}
body.admin-coach-mode .bottom-nav{grid-template-columns:repeat(4,1fr)}
.remove-player-button{width:100%;margin-top:14px}.player-remove-note{margin:7px 2px 0;font-size:10.5px!important;line-height:1.4}


/* v2.0.9 — dual Club Admin/Coach profile switch + safe Selkent parsing */
.hero-profile-actions{position:absolute;z-index:4;top:max(12px,env(safe-area-inset-top));right:14px;display:flex;gap:7px;align-items:center}
.hero-profile-button{border:1px solid rgba(255,255,255,.3);background:rgba(5,14,8,.72);color:#fff;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:900;box-shadow:0 5px 18px rgba(0,0,0,.18);backdrop-filter:blur(8px)}
.hero-profile-button:active{transform:translateY(1px)}
.hero-team-select{appearance:none;-webkit-appearance:none;text-align:center;cursor:pointer;max-width:150px}
.hero-team-select option{color:#0b1f12;background:#fff}
body.admin-club-mode .hero-copy,body.admin-coach-mode .hero-copy,body.admin-preview-mode .hero-copy{padding-right:116px}
.admin-team-card[data-admin-open-team]{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.admin-team-card[data-admin-open-team]:active{transform:scale(.992)}
.admin-team-card[data-admin-open-team]:focus-visible{outline:3px solid rgba(0,145,34,.28);outline-offset:2px}
body.admin-preview-mode [data-coach-ui-only]{display:none!important}
@media(max-width:500px){
  .hero-profile-actions{top:max(10px,env(safe-area-inset-top));right:10px}
  .hero-profile-button{font-size:10px;padding:7px 9px;max-width:116px;white-space:normal;line-height:1.1}
  body.admin-club-mode .hero-copy,body.admin-coach-mode .hero-copy,body.admin-preview-mode .hero-copy{padding-right:104px}
}

/* v2.0.10 — Selkent-published competition mode + quick League tab */
body.team-has-league:not(.role-admin) .bottom-nav{grid-template-columns:repeat(5,1fr)}
body.admin-coach-mode.team-has-league .bottom-nav{grid-template-columns:repeat(5,1fr)}
body.admin-preview-mode.team-has-league .bottom-nav{grid-template-columns:repeat(6,1fr)}
body.admin-club-mode.team-has-league .bottom-nav{grid-template-columns:repeat(2,1fr)}
.competition-mode-pill{margin-left:auto;display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-style:normal;font-size:9px;font-weight:950;letter-spacing:.35px;text-transform:uppercase;white-space:nowrap}
.competition-mode-pill.league{background:#dff4e4;color:#08772d}.competition-mode-pill.no-league{background:#eef1ef;color:#5c6861}
#view-league .league-table-panel{display:block}
#view-league .division-row{padding:10px 0}
#add-division-result{white-space:nowrap}
@media(max-width:420px){body.admin-preview-mode.team-has-league .bottom-nav .nav-item{font-size:9px}.competition-mode-pill{font-size:8px;padding:3px 6px}}

/* v2.0.11 — status-bar safe header, competition nav, coach club results and custom awards */
:root{--android-inset-top:0px}
.hero{padding-top:calc(18px + var(--android-inset-top,0px))}
.hero-profile-actions{top:calc(12px + var(--android-inset-top,0px))}
body:not(.team-has-league) [data-league-nav]{display:none!important}
body.role-coach .bottom-nav{grid-template-columns:repeat(5,1fr)}
body.role-coach.team-has-league .bottom-nav{grid-template-columns:repeat(6,1fr)}
body.admin-coach-mode .bottom-nav{grid-template-columns:repeat(5,1fr)}
body.admin-coach-mode.team-has-league .bottom-nav{grid-template-columns:repeat(6,1fr)}
body.role-coach #admin-club-overview,body.role-coach #admin-assignment-panel,body.role-coach #admin-coach-access-panel{display:none!important}
body.role-coach #coach-club-results{display:block!important}
body.role-parent .club-nav-item{display:none!important}
.club-results-list{display:grid;gap:10px}.club-result-row{border:1px solid #e0e9e2;border-radius:16px;padding:12px;background:#f8fbf9}.club-result-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:10px;font-weight:850;margin-bottom:7px}.club-result-score{display:grid;grid-template-columns:1fr auto 1fr;gap:9px;align-items:center;font-size:12px}.club-result-score span:last-child{text-align:right}.club-result-score strong{font-size:18px;color:var(--green-2)}
.custom-award-settings{margin-top:16px;padding-top:14px;border-top:1px solid #e1e8e3}.award-type-list{display:grid;gap:7px}.award-type-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f6f9f7;border:1px solid #e2eae4;border-radius:12px;padding:9px 10px;font-size:12px;font-weight:800}.inline-add-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}.inline-add-row input{min-width:0}
@media(max-width:500px){.hero{padding-top:calc(16px + var(--android-inset-top,0px))}.hero-profile-actions{top:calc(9px + var(--android-inset-top,0px))}.bottom-nav .nav-item{font-size:9px}.club-result-score{font-size:11px}.inline-add-row{grid-template-columns:1fr}.inline-add-row button{width:100%}}
.activation-gate{padding-top:calc(22px + var(--android-inset-top,0px))}

/* v2.0.12 — no-league home/away matrix + consistent result colours */
.division-matrix-head,.division-matrix-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(74px,.7fr) minmax(74px,.7fr);gap:8px;align-items:center}
.division-matrix-head{padding:0 0 8px;color:var(--muted);font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid #e7ede9}
.division-matrix-head span:nth-child(n+2){text-align:center}
.division-matrix-row{padding:10px 0;border-bottom:1px solid #edf1ee}
.division-matrix-row:last-child{border-bottom:0}
.division-team-link{border:0;background:none;padding:4px 0;color:var(--green);font:inherit;font-weight:950;text-align:left;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;cursor:pointer}
.division-team-label{font-weight:900;color:#17221b}
.division-result-cell{width:100%;min-height:38px;border:0;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:6px 5px;color:#fff;font-size:11px;font-weight:1000;white-space:nowrap}
button.division-result-cell{cursor:pointer}
.division-result-cell.W{background:var(--win)}
.division-result-cell.D{background:var(--draw)}
.division-result-cell.L{background:var(--loss)}
.division-result-empty{width:100%;min-height:38px;border-radius:10px;background:#f0f3f1;color:#8d9891;display:grid;place-items:center;font-weight:900}
.match-card.result-W,.club-result-row.result-W,.imported-result-row.result-W{background:#eff9f3;border-color:#a8d8b9}
.match-card.result-D,.club-result-row.result-D,.imported-result-row.result-D{background:#f3f4f4;border-color:#c8cccf}
.match-card.result-L,.club-result-row.result-L,.imported-result-row.result-L{background:#fcf0ef;border-color:#e4b1ac}
.club-result-row.result-W .club-result-score strong{color:var(--win)}
.club-result-row.result-D .club-result-score strong{color:#656b70}
.club-result-row.result-L .club-result-score strong{color:var(--loss)}
@media(max-width:390px){.division-matrix-head,.division-matrix-row{grid-template-columns:minmax(0,1.25fr) 68px 68px;gap:6px}.division-result-cell{font-size:10px}.division-team-link,.division-team-label{font-size:12px}}


/* v2.0.13 — match status + Cup/Vase/Shield competition tables */
.result-badge.PST,.competition-result-pill.PST{background:#8a6a22;color:#fff}.result-badge.ABD,.competition-result-pill.ABD{background:#9b5429;color:#fff}.result-badge.SCH,.competition-result-pill.SCH{background:#66727a;color:#fff}
.match-card.status-postponed{background:#fff9e9;border-color:#e5d19a}.match-card.status-abandoned{background:#fff3ea;border-color:#e3b594}.match-card.status-scheduled{background:#f4f7f8;border-color:#cfd7db}
.division-result-cell.PST{background:#8a6a22}.division-result-cell.ABD{background:#9b5429}.division-result-cell.SCH{background:#66727a}
.status-no-score{opacity:.58}.match-heading-actions{display:flex;align-items:center;gap:8px}.competition-game-grid{display:grid;gap:12px}.competition-games-panel{padding:0;overflow:hidden}.competition-games-panel summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;cursor:pointer;list-style:none}.competition-games-panel summary::-webkit-details-marker{display:none}.competition-games-panel summary strong{display:block;font-size:15px}.competition-games-panel summary small{display:block;color:var(--muted);font-size:10.5px;margin-top:2px}.competition-summary-actions{display:flex;align-items:center;gap:8px}.competition-table-scroll{overflow-x:auto;border-top:1px solid #e6ece8}.competition-games-table{width:100%;border-collapse:collapse;min-width:570px}.competition-games-table th,.competition-games-table td{text-align:left;padding:10px 11px;border-bottom:1px solid #edf1ee;font-size:11.5px}.competition-games-table th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f8faf8}.competition-games-table tr.result-W td{background:#eff9f3}.competition-games-table tr.result-D td{background:#f3f4f4}.competition-games-table tr.result-L td{background:#fcf0ef}.competition-games-table tr.status-postponed td{background:#fff9e9}.competition-games-table tr.status-abandoned td{background:#fff3ea}.competition-games-table tr.status-scheduled td{background:#f4f7f8}.competition-result-pill{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:5px 8px;border-radius:999px;font-weight:950;color:#fff;background:#748079}.competition-result-pill.W{background:var(--win)}.competition-result-pill.D{background:var(--draw)}.competition-result-pill.L{background:var(--loss)}.competition-game-link{border:0;background:none;padding:0;color:var(--green);font-weight:900;text-align:left}.empty-competition:not([open]){opacity:.88}
@media(max-width:500px){.competition-games-panel summary{padding:12px}.competition-summary-actions .secondary-button{padding:7px 9px}.match-heading-actions{gap:6px}}

.form-chip.PST{background:#8a6a22}.form-chip.ABD{background:#9b5429}.form-chip.SCH{background:#66727a}


/* v2.0.14 — next fixture, kit colours and mandatory default award */
.next-match-card{display:grid;gap:14px}
.next-match-card.no-fixture{opacity:.9}
.next-match-status{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:6px 9px;border-radius:999px;background:#e8f4e8;color:#1f6d26;white-space:nowrap}
.next-match-grid{display:grid;grid-template-columns:1.5fr .7fr;gap:10px}
.next-match-grid>div,.next-match-kits{border:1px solid #dfe8df;border-radius:12px;padding:11px 12px;background:#f9fbf9;display:flex;flex-direction:column;gap:3px}
.next-match-grid span,.next-match-kits span{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#687268;font-weight:700}
.next-match-grid strong,.next-match-kits strong{font-size:.95rem;color:#183d1b}
.default-award-badge{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:999px;background:#e6f2e6;color:#1b6b23;font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle}
.mini-soccer-note{margin:8px 0 0}
@media(max-width:430px){.next-match-grid{grid-template-columns:1fr 1fr}.next-match-status{font-size:.65rem}}
.next-fixture-modal .next-fixture-time-only{grid-template-columns:minmax(0,1fr)}

/* v2.0.16 — solid footer nav + grouped club overview */
.bottom-nav{
  background:linear-gradient(145deg,#050a06 0%,#111713 40%,var(--green) 100%)!important;
  backdrop-filter:none!important;
  border-top:1px solid rgba(255,255,255,.08)!important;
  box-shadow:0 -12px 28px rgba(0,0,0,.26)!important;
}
.bottom-nav .nav-item{color:rgba(255,255,255,.72)}
.bottom-nav .nav-item .nav-icon{color:inherit}
.bottom-nav .nav-item.active{color:#fff}
.bottom-nav .nav-item.active .nav-icon{
  text-shadow:0 0 10px rgba(255,255,255,.16);
}
.bottom-nav .nav-item.active span:last-child{font-weight:1000}
.bottom-nav .nav-item:active{transform:translateY(1px)}

.admin-age-group-list{display:flex;flex-direction:column;gap:10px}
.admin-age-group{margin:0;padding:0;overflow:hidden}
.admin-age-group>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;cursor:pointer;font-weight:950;font-size:15px}
.admin-age-group>summary::-webkit-details-marker{display:none}
.admin-age-group>summary span{color:var(--muted);font-size:11px;font-weight:900}
.admin-age-group[open]>summary{border-bottom:1px solid #e6ede8;background:#fbfdfb}
.admin-age-group-body{padding:14px 15px 16px;display:grid;gap:10px}
.admin-team-card .secondary-button{pointer-events:none}

/* v2.0.17 — cleaner Club Admin dashboard */
.admin-dashboard-summary{margin-bottom:14px;padding:16px;background:linear-gradient(145deg,#ffffff,#f1f8f3)}
.admin-dashboard-head,.admin-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.admin-dashboard-head h3,.admin-section-heading h3{margin:2px 0 0;font-size:18px}
.admin-dashboard-summary .admin-overview-stats{margin:14px 0 8px;grid-template-columns:repeat(4,1fr)}
.admin-dashboard-summary .admin-stat{border:1px solid #dce8df;border-radius:14px;background:#fff;padding:11px 10px;min-width:0}
.admin-dashboard-summary .admin-stat span{font-size:9.5px;text-transform:uppercase;letter-spacing:.04em}
.admin-dashboard-summary .admin-stat strong{font-size:24px;line-height:1.05}
.admin-dashboard-summary .admin-stat small{font-size:10px;line-height:1.3;color:var(--muted)}
.admin-dashboard-summary button.admin-stat{font:inherit;color:inherit;text-align:left;cursor:pointer;justify-content:center;transition:border-color .15s,transform .15s}
.admin-dashboard-summary button.admin-stat:hover{border-color:var(--green);transform:translateY(-1px)}
.admin-dashboard-summary button.admin-stat:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.club-list-modal{width:min(94vw,760px);max-height:calc(100dvh - 24px)}
.club-list-modal-shell{max-height:calc(100dvh - 24px);overflow-y:auto;padding:18px;overscroll-behavior:contain}
.club-list-modal-shell>.modal-heading{position:sticky;top:-18px;z-index:1;margin:-18px -18px 14px;padding:16px 18px;background:var(--white);border-bottom:1px solid #dce8df}
#context-switch-dialog{width:min(94vw,460px)}
.context-switch-shell{box-sizing:border-box}
.context-switch-shell>.muted{margin:0 0 16px}
.context-switch-list{display:grid;gap:8px}
.context-switch-choice{display:grid;grid-template-columns:1fr auto;gap:4px 12px;width:100%;min-height:64px;padding:12px 14px;border:1px solid var(--border,#d8ded9);border-radius:12px;background:var(--panel,#fff);color:var(--ink,#17231b);text-align:left;cursor:pointer}
.context-switch-choice strong{font-size:15px}.context-switch-choice small{grid-column:1;color:var(--muted,#667085);font-size:12px}
.context-switch-choice span{grid-column:2;grid-row:1/3;align-self:center;font-size:12px;font-weight:800;color:#16763e}
.context-switch-choice[aria-current="true"]{border-color:#16844b;background:#eaf6ef;cursor:default}
.context-switch-choice:disabled{opacity:1}
.context-switch-choice:focus-visible{outline:2px solid #16844b;outline-offset:2px}
html[data-theme="dark"] .context-switch-choice{background:#17211b;color:#f2f7f3;border-color:#35443a}
html[data-theme="dark"] .context-switch-choice[aria-current="true"]{background:#203b2b;border-color:#53ba79}
html[data-theme="dark"] .context-switch-choice span{color:#87dba0}
.club-list-modal .admin-fixture-centre,.club-list-modal .club-results-browser{margin:0;padding:0;border:0;box-shadow:none}
.club-list-modal .admin-fixture-centre>.panel-heading,.club-list-modal .club-results-browser>.panel-heading{display:none}
#admin-home-age-select,#admin-attention-panel{scroll-margin-top:calc(var(--android-inset-top,0px) + 85px)}
.admin-team-overview-panel{margin-bottom:14px}
.admin-section-heading{padding:4px 2px 10px}
.admin-section-hint{font-size:10px;color:var(--muted);font-weight:800;text-align:right}
.admin-overview-meta{margin:6px 0 0!important}

.admin-age-group-list{display:flex!important;flex-direction:column;gap:9px}
.admin-age-group{border:1px solid #dfe8e1;border-radius:16px;background:#fff;box-shadow:0 4px 14px rgba(20,58,32,.04)}
.admin-age-group>summary{padding:14px 15px}
.admin-age-group>summary strong{font-size:16px;color:var(--ink)}
.admin-age-group>summary span{font-size:10.5px;color:var(--muted)}
.admin-age-group-body{padding:6px 12px 10px;gap:0}
.admin-team-row{display:grid;grid-template-columns:minmax(0,1fr) auto 10px 14px;gap:10px;align-items:center;padding:12px 2px;border-bottom:1px solid #edf1ee;cursor:pointer;transition:background .14s ease}
.admin-team-row:last-child{border-bottom:0}
.admin-team-row:active{background:#f3f8f4}
.admin-team-row:focus-visible{outline:3px solid rgba(0,145,34,.22);outline-offset:2px;border-radius:10px}
.admin-team-row.active-team{background:#eef8f0;border-radius:10px;padding-left:8px;padding-right:8px}
.admin-team-row-main{min-width:0;display:flex;flex-direction:column;gap:3px}
.admin-team-row-title{display:flex;align-items:center;gap:7px;min-width:0}
.admin-team-row-title strong{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-team-row-main>span{font-size:10.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-team-row-stats{display:flex;gap:7px;color:#66736a;font-size:9.5px;font-weight:800;white-space:nowrap}
.admin-team-row-stats b{color:var(--ink)}
.admin-sync-dot{width:8px;height:8px;border-radius:999px;display:block}
.admin-sync-dot.synced{background:#1f9c3a;box-shadow:0 0 0 3px #e2f4e6}
.admin-sync-dot.needs-sync{background:#b3bab5;box-shadow:0 0 0 3px #eef1ef}
.admin-row-chevron{font-size:24px;line-height:1;color:#8b958e;font-weight:400}

.admin-management-panel{margin-top:14px;padding:0;overflow:hidden}
.admin-management-panel>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px}
.admin-management-panel>summary::-webkit-details-marker{display:none}
.admin-management-panel>summary strong{display:block;font-size:15px;margin-top:2px}
.admin-management-panel[open]>summary{border-bottom:1px solid #e5ebe7;background:#fbfdfb}
.admin-management-panel[open] .settings-chevron{transform:rotate(180deg)}
.admin-management-body{padding:0 16px 16px}
.admin-access-block{padding:16px 0;border-bottom:1px solid #e8eeea}
.admin-access-block:last-child{border-bottom:0;padding-bottom:0}
.admin-access-block .panel-heading{align-items:flex-start}
.admin-assignment-panel{background:none!important}

@media(max-width:560px){
  .admin-dashboard-summary .admin-overview-stats{grid-template-columns:repeat(2,1fr)}
  .admin-dashboard-summary .admin-stat strong{font-size:22px}
  .admin-team-row{grid-template-columns:minmax(0,1fr) auto 9px 12px;gap:7px}
  .admin-team-row-stats{gap:5px;font-size:9px}
  .admin-team-row-title .competition-mode-pill{font-size:8px;padding:3px 6px}
  .admin-section-hint{display:none}
}


/* v2.0.18 — squad tactics, club results browser and fixture directory detail */
.squad-format-summary{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 12px}
.squad-format-summary span{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;background:#e9f5eb;color:#146127;font-size:11px;font-weight:900;border:1px solid #d2e7d6}
.squad-format-summary span:nth-child(3){background:#e8f0f8;color:#315f83;border-color:#d5e1ec}.squad-format-summary span:nth-child(4){background:#fff3d8;color:#78550e;border-color:#ead8ad}
.squad-view-tabs,.club-view-tabs{display:flex;gap:5px;background:#e9efeb;border-radius:15px;padding:4px;margin:0 0 12px}
.squad-view-tab,.club-view-tab{flex:1;border:0;background:transparent;border-radius:11px;padding:10px 8px;color:#627168;font-weight:900}.squad-view-tab.active,.club-view-tab.active{background:#fff;color:#0b6f25;box-shadow:0 3px 10px rgba(22,53,29,.09)}
.squad-pages{display:block}.squad-view-page{display:block;min-width:0}.squad-view-page.hidden{display:none!important}
.squad-space-count{font-size:11px;color:var(--muted,#68766d);font-weight:850;margin-top:4px}.tactics-panel{overflow:hidden}.tactics-heading{align-items:flex-start}.tactics-heading .muted{margin:3px 0 0;max-width:260px}
.tactics-pitch{position:relative;width:min(100%,430px);aspect-ratio:0.68/1;margin:12px auto 0;border-radius:16px;overflow:hidden;border:2px solid rgba(255,255,255,.88);background:linear-gradient(90deg,#207d32 0 12.5%,#278c3a 12.5% 25%,#207d32 25% 37.5%,#278c3a 37.5% 50%,#207d32 50% 62.5%,#278c3a 62.5% 75%,#207d32 75% 87.5%,#278c3a 87.5%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);touch-action:none}
.pitch-halfway{position:absolute;left:0;right:0;top:50%;border-top:2px solid rgba(255,255,255,.75)}.pitch-circle{position:absolute;width:82px;height:82px;left:50%;top:50%;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.75);border-radius:50%}.pitch-box{position:absolute;left:23%;width:54%;height:16%;border:2px solid rgba(255,255,255,.75)}.pitch-box-top{top:-2px}.pitch-box-bottom{bottom:-2px}
.tactics-player{position:absolute;transform:translate(-50%,-50%);width:60px;min-height:50px;border:0;border-radius:15px;padding:5px;background:#fff;color:#0a3214;box-shadow:0 5px 14px rgba(0,0,0,.28);font-size:9px;font-weight:900;line-height:1.1;touch-action:none;z-index:3}.tactics-player b{display:block;font-size:14px;margin-bottom:2px}.tactics-player.goalkeeper{background:#fff1a9}.tactics-player.selected,.tactics-bench-player.selected{outline:3px solid #ffd54e}
.tactics-availability-hint{margin:7px 0 0;font-size:11px;font-weight:750;color:var(--muted)}
.tactics-player.availability-unavailable,.tactics-bench-player.availability-unavailable{box-shadow:0 0 0 2px #b13d36,0 5px 14px rgba(0,0,0,.28)}
.tactics-player.availability-unsure,.tactics-bench-player.availability-unsure{box-shadow:0 0 0 2px #ac741b,0 5px 14px rgba(0,0,0,.28)}
.tactics-availability-flag{display:inline-block;border-radius:999px;padding:3px 5px;font-size:9px;font-weight:900;line-height:1;color:#fff;background:#a43b34}
.availability-unsure .tactics-availability-flag{background:#80530e}
.tactics-player .tactics-availability-flag{position:absolute;top:-7px;right:-6px;font-size:8px}
.tactics-bench-player .tactics-availability-flag{margin-left:4px}
.tactics-bench-wrap{margin-top:14px}.tactics-bench{display:flex;gap:7px;flex-wrap:wrap}.tactics-bench-player{border:1px solid #d5e0d8;background:#fff;color:#173d20;border-radius:999px;padding:8px 10px;font-size:11px;font-weight:900}.tactics-readonly .tactics-player,.tactics-readonly .tactics-bench-player{cursor:default}
.club-results-age-label{display:grid;gap:6px;font-size:12px;font-weight:900;color:#405047;margin:13px 0}.club-results-age-label select{width:100%;border:1px solid #d8e3db;border-radius:13px;background:#fff;padding:11px}
.club-results-pager{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin-top:12px}.club-results-pager span{text-align:center;color:#68766d;font-size:11px;font-weight:900}.club-results-pager button:last-child{justify-self:stretch}
.club-results-page-group{display:grid;gap:9px}.club-result-row{border:1px solid #dce6df;border-radius:16px;background:#fff;padding:12px}.club-result-meta{display:flex;justify-content:space-between;gap:8px;color:#657269;font-size:10px;font-weight:900;margin-bottom:9px}.club-result-score{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center;text-align:center}.club-result-score span{font-size:11px;font-weight:850}.club-result-score strong{background:#071009;color:#fff;border-radius:10px;padding:7px 10px;font-size:18px}.club-result-row.result-W{border-left:4px solid #14923a}.club-result-row.result-L{border-left:4px solid #d44742}.club-result-row.result-D{border-left:4px solid #7b8580}
.fixture-directory-detail{display:block;margin-top:5px;color:#5f6f65;font-size:11px;line-height:1.35}.next-match-directory{margin-top:7px;color:#dce9df;font-size:11px;line-height:1.4}
@media(max-width:430px){.tactics-player{width:54px;min-height:46px}.club-result-score{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr)}}

/* v2.0.19 — auth recovery reliability fix; no visual layout changes. */


/* v2.0.20 — Club Admin workflow + Admin ↔ Coach inbox */
.admin-dashboard-summary .admin-overview-stats{grid-template-columns:repeat(3,1fr)}
.admin-attention-list{margin-top:12px;display:grid;gap:6px}.admin-attention-heading{display:flex;justify-content:space-between;align-items:center;padding:2px 2px 4px}.admin-attention-heading strong{font-size:12px}.admin-attention-heading span{min-width:24px;height:24px;border-radius:999px;background:#fff0d8;color:#7a5200;display:grid;place-items:center;font-size:10px;font-weight:950}
.admin-attention-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;border:1px solid #e4eae6;border-radius:11px;background:#fff;padding:9px 10px;text-align:left;color:var(--ink)}.admin-attention-row span{font-size:10px;font-weight:950;color:#59665d}.admin-attention-row strong{font-size:11px}.admin-attention-row b{font-size:18px;color:#8a948d}.admin-attention-row.high{border-left:4px solid #d54b42}.admin-attention-row.medium{border-left:4px solid #e3a62c}.admin-attention-row.low{border-left:4px solid #7e9aad}.admin-health-good{margin-top:11px;border-radius:11px;background:#eaf7ed;color:#186729;padding:10px 12px;font-size:11px;font-weight:900}
.squad-capacity.full{color:#a72922}.squad-capacity.near{color:#976400}
.club-view-tabs{overflow-x:auto;scrollbar-width:none}.club-view-tabs::-webkit-scrollbar{display:none}.club-view-tab{flex:0 0 auto;min-width:82px;white-space:nowrap}.inbox-tab-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#d73832;color:#fff;font-size:9px;margin-left:3px}.inbox-tab-badge.hidden{display:none}
.admin-filter-label{display:grid;gap:6px;font-size:11px;font-weight:900;margin:12px 0}.admin-filter-label select,.admin-coach-invite select,.inbox-contact-bar select{width:100%;border:1px solid #d8e3db;border-radius:12px;background:#fff;padding:10px 11px;font:inherit}
.admin-fixture-list{display:grid;gap:8px;margin-top:10px}.admin-fixture-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:10px;align-items:flex-start;border:1px solid #dfe7e1;border-radius:14px;background:#fff;padding:11px}.admin-fixture-row.tbc{background:#f7f9f7;border-style:dashed}.admin-fixture-date{display:flex;flex-direction:column;gap:3px}.admin-fixture-date strong{font-size:11px}.admin-fixture-date span{font-size:9.5px;color:var(--muted);font-weight:800}.admin-fixture-main{display:flex;min-width:0;flex-direction:column;gap:3px}.admin-fixture-main strong{font-size:12px}.admin-fixture-main span{font-size:10px;color:#526158;font-weight:800}.admin-fixture-main small{font-size:9.5px;color:var(--muted);line-height:1.3}.fixture-source-pill{display:inline-flex;border-radius:999px;background:#eef1ef;color:#637168;padding:4px 7px;font-size:8.5px;font-weight:950}.fixture-source-pill.selkent{background:#e3f4e7;color:#176a29}
.admin-coach-invite{display:grid;gap:9px;margin:12px 0 15px;padding:12px;border-radius:14px;background:#f5f9f6;border:1px solid #e0e9e2}.admin-coach-invite label{display:grid;gap:6px;font-size:11px;font-weight:900}.admin-invite-output{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.admin-invite-output.hidden{display:none}.admin-invite-output input{min-width:0;border:1px solid #d8e3db;border-radius:10px;padding:9px;font:inherit;background:#fff}
.admin-invite-output #admin-coach-invite-target{grid-column:1/-1;margin:0;font-weight:800}
.club-inbox-card{padding:15px}.inbox-contact-bar{margin:12px 0}.inbox-contact-bar label{display:grid;gap:6px;font-size:11px;font-weight:900}.inbox-thread{display:flex;flex-direction:column;gap:8px;min-height:170px;max-height:50vh;overflow-y:auto;padding:10px;border:1px solid #e2e9e4;border-radius:14px;background:#f7faf8}.inbox-message{max-width:88%;border-radius:14px;padding:10px 11px;background:#fff;border:1px solid #e0e8e2;align-self:flex-start}.inbox-message.mine{align-self:flex-end;background:#e5f5e8;border-color:#cae7cf}.inbox-message-meta{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px}.inbox-message-meta strong{font-size:9.5px}.inbox-message-meta span{font-size:8.5px;color:var(--muted)}.inbox-message-subject{display:block;font-size:11px;margin-bottom:3px}.inbox-message p{margin:0;font-size:11px;line-height:1.42}.inbox-message small{display:block;margin-top:5px;text-align:right;color:#758179;font-size:8.5px}.inbox-compose{display:grid;gap:10px;margin-top:12px}.inbox-compose label{display:grid;gap:6px;font-size:11px;font-weight:900}.inbox-compose input,.inbox-compose textarea{width:100%;box-sizing:border-box;border:1px solid #d8e3db;border-radius:12px;background:#fff;padding:10px 11px;font:inherit}.inbox-compose-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.inbox-compose-actions .helper{font-size:9.5px;color:var(--muted)}
.readonly-detail-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 2px;border-bottom:1px solid #e7ece8}.readonly-detail-row:last-child{border-bottom:0}.readonly-detail-row span{font-size:11px}.readonly-detail-row strong{font-size:11px;color:#164f23}.readonly-dialog #save-match-details{display:none!important}
@media(max-width:560px){.admin-dashboard-summary .admin-overview-stats{grid-template-columns:repeat(2,1fr)}.admin-fixture-row{grid-template-columns:75px minmax(0,1fr)}.fixture-source-pill{grid-column:1/-1;justify-self:start}.inbox-message{max-width:94%}}


/* v2.0.21 — horizontal navigation, footer removal and background-first status UI */
.bottom-nav{display:none!important}
.content{padding-bottom:calc(28px + var(--android-inset-bottom,0px) + env(safe-area-inset-bottom))!important}
.top-nav-tabs{
  position:sticky;
  top:calc(var(--android-inset-top,0px) + 4px);
  z-index:28;
  display:flex;
  gap:5px;
  overflow-x:auto;
  scrollbar-width:none;
  width:min(1040px,calc(100% - 28px));
  margin:12px auto 10px;
  padding:5px;
  border-radius:16px;
  background:#e9efeb;
  box-shadow:0 7px 18px rgba(18,48,27,.08);
  -webkit-overflow-scrolling:touch;
}
.top-nav-tabs::-webkit-scrollbar{display:none}
.top-nav-tabs.hidden{display:none!important}
.top-nav-tab.nav-item{
  flex:0 0 auto;
  min-width:82px;
  min-height:44px;
  display:block;
  padding:10px 14px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#52645b;
  font-size:12px;
  font-weight:950;
  line-height:1.15;
  white-space:nowrap;
}
.top-nav-tab.nav-item.active{
  background:#fff;
  color:var(--green);
  box-shadow:0 3px 10px rgba(22,53,29,.09);
}
.club-view-tabs{
  position:sticky;
  top:calc(var(--android-inset-top,0px) + 4px);
  z-index:27;
  box-shadow:0 7px 18px rgba(18,48,27,.06);
}
.admin-team-row{grid-template-columns:minmax(0,1fr) auto 14px}
.admin-dashboard-summary .admin-overview-stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
body.view-club.admin-club-mode .top-nav-tabs{display:none!important}
body.role-parent [data-coach-ui-only]{display:none!important}
body.role-parent [data-requires-edit]{display:none!important}
body.admin-preview-mode [data-requires-edit]{display:none!important}
@media(min-width:650px){
  .content{padding-bottom:40px!important}
}
@media(max-width:560px){
  .top-nav-tabs{width:calc(100% - 20px);margin:9px auto 8px;padding:4px}
  .top-nav-tab.nav-item{min-width:76px;padding:10px 12px;font-size:11.5px}
  .club-view-tabs{top:calc(var(--android-inset-top,0px) + 3px)}
  .admin-team-row{grid-template-columns:minmax(0,1fr) auto 12px}
}


/* v2.0.22 — fixed top navigation and simplified automated workflow */
.top-nav-tabs{
  position:sticky!important;
  top:var(--android-inset-top,0px)!important;
  z-index:40!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:6px max(10px,calc((100% - 1040px)/2 + 10px))!important;
  border-radius:0!important;
  background:#e9efeb!important;
  border-bottom:1px solid #d8e2da!important;
  box-shadow:none!important;
  box-sizing:border-box;
}
.top-nav-tabs.hidden{display:flex!important}
body.view-club.admin-club-mode .top-nav-tabs{display:flex!important}
.club-view-tabs{display:none!important}
.admin-attention-panel{margin-top:14px}
.formation-control{display:grid;grid-template-columns:auto minmax(130px,220px);gap:10px;align-items:center;margin:0 0 12px;font-size:11px;font-weight:900;color:#53645a}
.formation-control select{width:100%;border:1px solid #d7e1da;border-radius:11px;padding:9px 10px;background:#fff;font:inherit;color:#153c20}
.map-link{display:inline-flex;align-items:center;justify-content:center;width:max-content;margin-top:10px;padding:9px 12px;border-radius:11px;background:#e5f3e8;color:#0b6f2c;font-size:10.5px;font-weight:950;text-decoration:none;border:1px solid #cbe3d0}
.map-link.compact{margin-top:6px;padding:6px 9px;font-size:9.5px}
.map-link.hidden{display:none!important}
.synced-fixture .map-link{grid-column:1/-1}
@media(max-width:560px){
  .top-nav-tabs{padding:5px 8px!important}
  .top-nav-tab.nav-item{min-width:74px;padding:10px 11px;font-size:11px}
  .formation-control{grid-template-columns:1fr;margin-bottom:10px}
}


/* v2.0.25 — opening splash, fixture acknowledgement, matchday squad + access management */
.app-splash{position:fixed;inset:0;z-index:30000;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#218a21 0%,#145f19 44%,#071009 100%);}
.app-splash-inner{width:min(88vw,560px);text-align:center;color:#fff;animation:splashIn .55s ease both}.app-splash-logo{display:block;width:100%;height:auto;max-height:260px;object-fit:contain;filter:drop-shadow(0 16px 28px rgba(0,0,0,.34))}body.splash-active{overflow:hidden}@keyframes splashIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
.fixture-ack{margin-top:14px;padding-top:13px;border-top:1px solid #e4ebe6;display:flex;align-items:center;justify-content:space-between;gap:12px}.fixture-ack-copy{display:flex;flex-direction:column;gap:3px}.fixture-ack-copy strong{font-size:13px}.fixture-ack-copy span{font-size:11px;color:var(--muted);line-height:1.35}.fixture-ack-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.fixture-ack.confirmed .fixture-ack-copy strong{color:var(--win)}.fixture-ack.issue .fixture-ack-copy strong,.fixture-ack.changed .fixture-ack-copy strong{color:#a43c31}.fixture-ack.awaiting .fixture-ack-copy strong{color:#8a6500}.fixture-ack-pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:950;background:#f0f3f1;color:#536159}.fixture-ack-pill.confirmed{background:#e7f6ec;color:#167540}.fixture-ack-pill.issue,.fixture-ack-pill.changed{background:#fbe9e7;color:#9d372f}.fixture-ack-pill.awaiting{background:#fff4d9;color:#855f00}
.matchday-squad-picker{margin:10px 0 14px;padding:13px;border-radius:16px;background:#f6f9f7;border:1px solid #dfe8e1}.matchday-squad-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.matchday-squad-head>div{display:flex;flex-direction:column;gap:2px}.matchday-squad-head strong{font-size:14px}.matchday-squad-head span{font-size:11px;color:var(--muted)}.matchday-squad-head b{font-size:12px;background:#fff;border:1px solid #dce4de;border-radius:999px;padding:6px 9px}.matchday-squad-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.matchday-player-option{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:12px;background:#fff;border:1px solid #dde6df;font-size:12px;font-weight:800}.matchday-player-option input{accent-color:var(--green);width:17px;height:17px}.matchday-player-option.selected{border-color:#8fc493;background:#edf8ee}.matchday-player-option.disabled-limit{opacity:.48}
.admin-access-management{margin-top:18px;padding-top:18px;border-top:1px solid #e3e9e5}.admin-access-filter{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:900;color:var(--muted)}.admin-access-filter select{border:1px solid #dbe4de;border-radius:10px;background:#fff;padding:8px}.admin-access-stats{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.admin-access-stat{background:#f0f5f1;border:1px solid #dfe8e1;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:900}.admin-access-row-role{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.access-method-pill{font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.4px;color:#647069}
@media(max-width:520px){.fixture-ack{align-items:flex-start;flex-direction:column}.fixture-ack-actions{width:100%}.fixture-ack-actions button{flex:1}.matchday-squad-options{grid-template-columns:1fr}.admin-access-management .panel-heading{align-items:flex-start;flex-direction:column}.admin-access-filter{width:100%;justify-content:space-between}.admin-access-filter select{flex:1;max-width:220px}}

/* v2.0.26 numbered shirt clarity + weekend overview */
.mini-jersey{position:relative;display:inline-grid;place-items:center;width:32px;height:30px;flex:0 0 32px;vertical-align:middle}.mini-jersey svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 1px 1px rgba(0,0,0,.12))}.mini-jersey svg path{fill:var(--green);stroke:#0e5222;stroke-width:1.8}.mini-jersey b{position:relative;z-index:1;color:#fff;font-size:11px;font-weight:1000;line-height:1;margin-top:2px}.mini-jersey.goalkeeper svg path{fill:#f2d33f;stroke:#9f8610}.mini-jersey.goalkeeper b{color:#111}.mini-jersey.compact{width:27px;height:25px;flex-basis:27px}.mini-jersey.tactics-shirt{width:30px;height:28px}.rank-no{display:none}.matchday-player-label,.tactics-bench-player{display:flex;align-items:center;gap:7px}.tactics-player{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px}.tactics-player>span:last-child{font-size:11px;font-weight:900;line-height:1.05}.admin-weekend-panel{margin-top:18px}.admin-weekend-list{display:flex;flex-direction:column;gap:9px}.weekend-fixture-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid #dfe8e2;border-radius:14px;background:#fff}.weekend-fixture-row>div{display:flex;flex-direction:column;gap:3px}.weekend-fixture-row span,.weekend-fixture-row small{color:var(--muted)}.weekend-fixture-row.warning{border-color:#efc05c;background:#fffaf0}.weekend-fixture-row.warning small{color:#8a5b00;font-weight:800}

/* v2.0.27 PIN access, RSVP, secure coaching notes and player stats */
.match-availability{margin-top:14px;padding:14px;border-radius:16px;background:#f6f9f7;border:1px solid #dfe8e1}.match-availability-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.match-availability-head>div{display:flex;flex-direction:column;gap:2px}.match-availability-head span{font-size:11px;color:var(--muted)}.availability-count{white-space:nowrap;font-size:11px!important;font-weight:900;background:#fff;border:1px solid #dbe5dd;border-radius:999px;padding:6px 9px;color:#24562b!important}.parent-availability-controls{margin-top:12px;display:grid;gap:10px}.parent-availability-controls label{display:grid;gap:5px;font-size:11px;font-weight:900;color:var(--muted)}.availability-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.availability-btn{border:1px solid #dce5df;border-radius:12px;background:#fff;padding:10px 7px;font-weight:900}.availability-btn.available.selected{background:#e6f7e8;border-color:#64aa70;color:#146324}.availability-btn.unsure.selected{background:#fff7dd;border-color:#e7bf55;color:#7d5b00}.availability-btn.unavailable.selected{background:#fff0ee;border-color:#df7c70;color:#9a261a}.coach-availability-summary{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.availability-summary-group{padding:10px;border-radius:12px;background:#fff;border:1px solid #e0e6e2}.availability-summary-group>strong{display:block;font-size:11px;margin-bottom:7px}.availability-summary-group>div{display:flex;flex-direction:column;gap:5px}.availability-summary-group span{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:800}.availability-summary-group em{font-size:11px;color:var(--muted);font-style:normal}.availability-summary-group.available{border-color:#b8dcbc}.availability-summary-group.unsure{border-color:#ecd98f}.availability-summary-group.unavailable{border-color:#e8bbb5}
.season-player-stats{margin-top:18px}.season-player-table-wrap{overflow-x:auto}.season-player-table{width:100%;border-collapse:collapse;min-width:520px}.season-player-table th,.season-player-table td{padding:10px 8px;border-bottom:1px solid #edf1ee;text-align:center;font-size:12px}.season-player-table th:first-child,.season-player-table td:first-child{text-align:left}.season-player-name{display:flex;align-items:center;gap:7px}.secure-coach-note{border-top:1px solid #e7ece8;padding-top:14px}.secure-coach-note textarea{width:100%;resize:vertical}.coach-note-readonly{margin:0;padding:12px;border-radius:12px;background:#f6f9f7;white-space:pre-wrap}.team-member-row .member-role-pill+button[data-reset-parent-pin]{white-space:nowrap}
@media(max-width:620px){.coach-availability-summary{grid-template-columns:1fr}.availability-buttons{grid-template-columns:1fr}.season-player-stats{overflow:hidden}}

/* v2.0.28 linked parents, RSVP-driven squad, fixture diffs and matchday dashboard */
.matchday-squad-head small{font-size:10px;color:var(--muted);font-weight:800;margin-top:2px}.matchday-squad-head-actions{display:flex;align-items:center;gap:8px}.matchday-player-label>span:last-child{display:flex;flex-direction:column;gap:1px}.matchday-player-label small{font-size:9px;color:#738078;font-weight:850}.matchday-player-option.availability-available{border-left:4px solid #3ca257}.matchday-player-option.availability-unsure{border-left:4px solid #e0b440}.matchday-player-option.availability-unavailable{border-left:4px solid #dc6b5d;background:#fbf4f3}.matchday-player-option.availability-unavailable:not(.selected){opacity:.62}.matchday-player-option.availability-no-response{border-left:4px solid #aeb8b1}.parent-link-player-list{display:grid;gap:8px;margin:14px 0}.parent-link-player{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid #dfe7e1;border-radius:13px;background:#fff;font-weight:900}.parent-link-player input{width:18px;height:18px;accent-color:var(--green)}
.matchday-dashboard{margin-top:16px;background:linear-gradient(145deg,#fff,#f1f8f3)}.matchday-dashboard-heading{align-items:flex-start}.matchday-dashboard-status{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:950;background:#eef2ef;color:#59665e}.matchday-dashboard-status.confirmed{background:#e6f6ea;color:#14743a}.matchday-dashboard-status.changed,.matchday-dashboard-status.issue{background:#fbeae8;color:#a13c31}.matchday-dashboard-status.awaiting{background:#fff4d9;color:#855f00}.matchday-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.matchday-dashboard-grid article{padding:10px;border-radius:13px;background:#fff;border:1px solid #dfe8e1;display:flex;flex-direction:column;gap:3px}.matchday-dashboard-grid span{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:900}.matchday-dashboard-grid strong{font-size:12px}.matchday-dashboard-alert{margin:10px 0;padding:10px 12px;border-radius:12px;background:#fff0ee;border:1px solid #e8bbb5;color:#8f3027;font-size:11px;font-weight:850;line-height:1.4}.matchday-dashboard-kits{margin:8px 0;color:#5d6a62;font-size:11px}.matchday-dashboard-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0}.matchday-dashboard-note{margin-top:13px;padding-top:13px;border-top:1px solid #dfe8e1}.matchday-dashboard-note textarea{width:100%;resize:vertical}.matchday-dashboard-note .panel-heading{margin-bottom:8px}
@media(max-width:620px){.matchday-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.matchday-squad-head{flex-direction:column}.matchday-squad-head-actions{width:100%;justify-content:space-between}}

/* v2.0.29 dashboard reflow, removable award actions and mini-soccer score entry */
@media(min-width:650px){.dashboard-grid .panel.dashboard-fill-row{grid-column:1/-1}}
.award-item-actions{display:flex;align-items:flex-end;gap:8px;flex-direction:column}.award-item-actions .inline-action{font-size:9px;padding:5px 7px}
.division-team-link{border:0;background:none;color:inherit;font:inherit;font-weight:900;padding:0;text-align:left;cursor:pointer}.division-team-link:hover,.division-team-link:focus{color:var(--green);text-decoration:underline}.division-result-add{background:#eef7f0!important;color:var(--green)!important;border:1px dashed #a9cdb1!important;font-size:9px!important;white-space:nowrap}
.matches-next-fixture{margin-top:0}

/* v2.0.30 announcements, attendance and grouped club health */
.club-notices-panel{margin-bottom:16px}.club-notices-list{display:grid;gap:10px}.club-notice{border:1px solid rgba(21,90,33,.15);border-radius:14px;padding:12px;background:#fff}.club-notice.unread{border-left:4px solid #218a21}.club-notice.important{background:#fff9e8;border-color:#e6bd52}.club-notice.pinned{box-shadow:0 2px 10px rgba(0,0,0,.05)}.club-notice-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.club-notice-head>div{display:grid;gap:2px}.club-notice-head strong{font-size:15px}.club-notice-head span,.club-notice time{font-size:11px;color:#6b756b}.club-notice p{margin:8px 0 6px;line-height:1.45}.notice-unread-badge{background:#218a21;color:#fff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}
.admin-announcement-centre{margin:16px 0}.announcement-compose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.announcement-compose-grid label{display:grid;gap:5px;font-size:12px;font-weight:700}.announcement-compose-grid input,.announcement-compose-grid select,.announcement-compose-grid textarea{width:100%}.announcement-body-label{grid-column:1/-1}.announcement-compose-grid .checkbox-line{display:flex;align-items:center;gap:8px}.announcement-compose-grid .checkbox-line input{width:auto}.admin-announcements-list{display:grid;gap:8px;margin-top:14px}.admin-announcement-row{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #e9ede9;padding-top:10px}.admin-announcement-row>div{display:grid;gap:3px}.admin-announcement-row span{font-size:11px;color:#667066}.admin-announcement-row p{margin:2px 0 0;font-size:13px}.admin-announcement-row.expired{opacity:.58}
.match-attendance-list{display:grid;gap:8px}.attendance-player-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e5eae5;border-radius:12px;padding:8px 10px;background:#fff}.attendance-player-row>span{display:flex;align-items:center;gap:8px;min-width:0}.attendance-player-row select{min-width:130px}.attendance-player-row.readonly b{font-size:12px;color:#3f5a43}
.admin-health-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-health-group{border:1px solid #dfe7df;border-radius:14px;padding:12px;background:#fff;display:grid;gap:4px}.admin-health-group.warn{border-color:#e7c47a;background:#fffaf0}.admin-health-group>span{font-size:12px;color:#5e6b60;font-weight:700}.admin-health-group>strong{font-size:26px;line-height:1}.admin-health-group>small{color:#727d73}.admin-health-group>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.health-team-link{border:0;background:#edf6ed;color:#236d29;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700}.health-team-link.static{display:inline-block}
@media(max-width:680px){.announcement-compose-grid{grid-template-columns:1fr}.announcement-body-label{grid-column:auto}.admin-health-groups{grid-template-columns:1fr}.club-notice-head{align-items:center}.attendance-player-row{align-items:center}.attendance-player-row select{min-width:120px}}

/* v2.0.31 — appearance themes, read-only player profiles and Selkent opponent selector */
html[data-theme="dark"]{
  color-scheme:dark;
  --ink:#f2f7f3;
  --muted:#a9b8ae;
  --bg:#0d1310;
  --white:#151d18;
  --green-3:#17311f;
}
html[data-theme="dark"] body,
html[data-theme="dark"] .app-shell{background:var(--bg);color:var(--ink)}
html[data-theme="dark"] .panel,
html[data-theme="dark"] .match-card,
html[data-theme="dark"] .player-card,
html[data-theme="dark"] .settings-accordion,
html[data-theme="dark"] .modal,
html[data-theme="dark"] dialog,
html[data-theme="dark"] .team-member-row,
html[data-theme="dark"] .synced-fixture,
html[data-theme="dark"] .division-matrix-row,
html[data-theme="dark"] .division-matrix-head,
html[data-theme="dark"] .next-match-card,
html[data-theme="dark"] .admin-announcement-row,
html[data-theme="dark"] .attendance-player-row,
html[data-theme="dark"] .season-player-table-wrap{
  background:#151d18!important;
  border-color:#27342c!important;
  color:var(--ink)!important;
}
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea{
  background:#101713!important;
  color:#f2f7f3!important;
  border-color:#35443a!important;
}
html[data-theme="dark"] option{background:#101713;color:#f2f7f3}
html[data-theme="dark"] .secondary-button,
html[data-theme="dark"] .icon-button{
  background:#202a23!important;color:#f2f7f3!important;border-color:#35443a!important;
}
html[data-theme="dark"] .scorer-row,
html[data-theme="dark"] .goal-check,
html[data-theme="dark"] .nested-settings,
html[data-theme="dark"] .server-backup-note,
html[data-theme="dark"] .next-action-panel{
  background:#17211b!important;border-color:#2d3c32!important;color:var(--ink)!important;
}
html[data-theme="dark"] .settings-accordion[open]>summary{background:#17211b!important;border-color:#27342c!important}
html[data-theme="dark"] .mini-item,
html[data-theme="dark"] .rank-item,
html[data-theme="dark"] .award-item{border-color:#28352d!important}
html[data-theme="dark"] .season-player-table th,
html[data-theme="dark"] .season-player-table td{border-color:#28352d!important;color:var(--ink)!important}
html[data-theme="dark"] .read-only-card{background:#2d2818;color:#f3d98f;border-color:#564b2b}
html[data-theme="dark"] .player-profile-readonly-note{background:#18211b;border-color:#2d3a31;color:#aebbb2}

.player-profile-card{cursor:pointer;position:relative}
.player-profile-card:hover{border-color:#b9d8c1}
.player-profile-modal{max-width:520px}
.player-profile-shell{display:flex;flex-direction:column;gap:14px}
.player-profile-hero{display:grid;grid-template-columns:84px 1fr;gap:16px;align-items:center;padding:14px;border-radius:18px;background:linear-gradient(135deg,var(--green-3),var(--white));border:1px solid #d9e8dd}
.player-profile-hero .player-profile-jersey{display:grid;place-items:center}
.player-profile-hero .jersey{transform:scale(.84);transform-origin:center}
.player-profile-hero strong{display:block;font-size:23px;line-height:1.05}
.player-profile-hero span{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:750}
.player-profile-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.player-profile-stats article{border:1px solid #e0e8e2;background:var(--white);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px}
.player-profile-stats span{font-size:11px;color:var(--muted);font-weight:800}
.player-profile-stats strong{font-size:22px}
.player-profile-availability{border-top:1px solid #e3eae5;padding-top:14px}
.player-profile-readonly-note{padding:10px 12px;border-radius:12px;background:#f4f7f5;border:1px solid #e2e8e4;color:var(--muted);font-size:11px;line-height:1.4}
#match-opponent-input-wrap .helper{margin-top:1px;font-weight:650;line-height:1.35}

@media(max-width:520px){
  .player-profile-stats{grid-template-columns:1fr 1fr}
  .player-profile-hero{grid-template-columns:72px 1fr}
}

/* v2.0.31 player-access hardening + complete appearance treatment */
body.role-player [data-coach-ui-only],
body.role-player [data-requires-edit],
body.role-player .player-edit,
body.role-player .match-actions .delete{display:none!important}
.team-access-invite-block{display:grid;gap:8px;padding:12px 0;border-top:1px solid #e4ebe6}.team-access-invite-block:first-of-type{border-top:0;padding-top:0}.team-access-invite-block label{display:grid;gap:5px;font-size:11px;font-weight:850;color:var(--muted)}
html[data-theme="dark"] .top-nav-tabs{background:#111914!important;border-color:#28352d!important}
html[data-theme="dark"] .top-nav-tab.nav-item{color:#b7c4bb!important}
html[data-theme="dark"] .top-nav-tab.nav-item.active{background:#203027!important;color:#8ee09a!important;box-shadow:none!important}
html[data-theme="dark"] .club-notice,
html[data-theme="dark"] .availability-summary-group,
html[data-theme="dark"] .matchday-player-option,
html[data-theme="dark"] .matchday-squad-picker,
html[data-theme="dark"] .matchday-dashboard,
html[data-theme="dark"] .matchday-dashboard-grid article,
html[data-theme="dark"] .parent-link-player,
html[data-theme="dark"] .admin-health-group,
html[data-theme="dark"] .player-profile-stats article{
  background:#151d18!important;border-color:#2b3930!important;color:var(--ink)!important;
}
html[data-theme="dark"] .matchday-dashboard{background:linear-gradient(145deg,#151d18,#101713)!important}
html[data-theme="dark"] .club-notice.important{background:#2d2818!important;border-color:#5b4c24!important}
html[data-theme="dark"] .availability-btn{background:#17211b!important;color:var(--ink)!important;border-color:#344239!important}
html[data-theme="dark"] .availability-btn.available.selected{background:#16351f!important;color:#a7eab2!important}
html[data-theme="dark"] .availability-btn.unsure.selected{background:#372f16!important;color:#f2d780!important}
html[data-theme="dark"] .availability-btn.unavailable.selected{background:#3a1d1a!important;color:#f0aaa2!important}
html[data-theme="dark"] .player-profile-hero{border-color:#2c3b31!important;background:linear-gradient(135deg,#17311f,#151d18)!important}
html[data-theme="dark"] .map-link{background:#193322!important;color:#8ee09a!important;border-color:#2f5038!important}
html[data-theme="dark"] .health-team-link{background:#1c3322!important;color:#95dfa0!important}

/* v2.0.32 weekly-cycle controls */
.hero-notification-button{position:relative;border:1px solid rgba(255,255,255,.28);background:rgba(0,0,0,.16);color:#fff;border-radius:999px;min-width:42px;height:38px;padding:0 12px;font-size:18px;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.notification-badge{position:absolute;right:-5px;top:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#b91c1c;color:#fff;font-size:11px;line-height:20px;text-align:center;font-weight:800;border:2px solid rgba(255,255,255,.9)}
.availability-deadline{margin-top:12px;padding-top:12px;border-top:1px solid var(--border,#d8ded9);display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.availability-deadline>div:first-child{display:flex;flex-direction:column;gap:2px}.availability-deadline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.availability-deadline-actions input{min-width:210px}
.notification-modal{width:min(680px,calc(100vw - 24px));max-height:84vh}.notification-shell{display:flex;flex-direction:column;gap:12px}.notification-list{display:grid;gap:10px;overflow:auto;max-height:60vh;padding-right:2px}.notification-item{border:1px solid var(--border,#d8ded9);border-radius:14px;padding:12px;background:var(--panel,#fff);display:grid;gap:6px}.notification-item.unread{border-left:4px solid #218a21}.notification-item.important{border-left-color:#b91c1c}.notification-item-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.notification-item-head strong{font-size:14px}.notification-item time,.notification-item small{font-size:11px;color:var(--muted,#667085)}.notification-item p{margin:0;line-height:1.4}.notification-item-actions{display:flex;justify-content:flex-end}.test-mode-banner{position:sticky;top:0;z-index:9999;background:#8a4b08;color:#fff;padding:7px 12px;text-align:center;font-weight:800;font-size:12px;letter-spacing:.04em}.quick-test-login{margin-top:10px;border-style:dashed!important}.quick-test-note{font-size:11px;color:var(--muted,#667085);text-align:center;margin:4px 0 0}
@media(max-width:620px){.availability-deadline{align-items:stretch}.availability-deadline-actions{display:grid;grid-template-columns:1fr 1fr}.availability-deadline-actions input{grid-column:1/-1;width:100%}.matchday-dashboard-actions{gap:7px}.matchday-dashboard-actions>*{flex:1 1 auto}}

/* v2.0.33 — dark-mode contrast hardening */
html[data-theme="dark"]{
  --border:#344239;
  --panel:#151d18;
}
html[data-theme="dark"] .muted,
html[data-theme="dark"] .helper,
html[data-theme="dark"] .kicker,
html[data-theme="dark"] .player-sub,
html[data-theme="dark"] .team-member-copy span,
html[data-theme="dark"] .admin-team-mini,
html[data-theme="dark"] .admin-team-card small,
html[data-theme="dark"] .admin-team-row-stats,
html[data-theme="dark"] .admin-row-chevron,
html[data-theme="dark"] .club-result-meta,
html[data-theme="dark"] .club-results-pager span,
html[data-theme="dark"] .fixture-directory-detail,
html[data-theme="dark"] .admin-fixture-main span,
html[data-theme="dark"] .access-method-pill,
html[data-theme="dark"] .notification-item time,
html[data-theme="dark"] .notification-item small,
html[data-theme="dark"] .club-notice-head span,
html[data-theme="dark"] .club-notice time,
html[data-theme="dark"] .admin-announcement-row span,
html[data-theme="dark"] .admin-health-group>span,
html[data-theme="dark"] .admin-health-group>small,
html[data-theme="dark"] .player-profile-hero span,
html[data-theme="dark"] .player-profile-stats span,
html[data-theme="dark"] .team-access-invite-block label,
html[data-theme="dark"] .quick-test-note{
  color:#b9c7be!important;
}
html[data-theme="dark"] .form-panel label,
html[data-theme="dark"] .modal label,
html[data-theme="dark"] .activation-card label,
html[data-theme="dark"] .assignment-output-label,
html[data-theme="dark"] .club-results-age-label,
html[data-theme="dark"] .formation-control,
html[data-theme="dark"] .division-team-label{
  color:#e6efe9!important;
}
html[data-theme="dark"] .next-action-panel p:not(.kicker),
html[data-theme="dark"] .next-match-grid strong,
html[data-theme="dark"] .next-match-kits strong,
html[data-theme="dark"] .readonly-detail-row strong,
html[data-theme="dark"] .attendance-player-row.readonly b{
  color:#d8e7dc!important;
}
html[data-theme="dark"] .next-match-grid span,
html[data-theme="dark"] .next-match-kits span{
  color:#aebcb2!important;
}
html[data-theme="dark"] .mode-switch-button,
html[data-theme="dark"] .squad-view-tab,
html[data-theme="dark"] .club-view-tab{
  color:#c3d0c7!important;
}
html[data-theme="dark"] .mode-switch-button.active,
html[data-theme="dark"] .squad-view-tab.active,
html[data-theme="dark"] .club-view-tab.active{
  background:#203027!important;
  color:#96e3a0!important;
}
html[data-theme="dark"] .tactics-player,
html[data-theme="dark"] .tactics-bench-player,
html[data-theme="dark"] .notification-item,
html[data-theme="dark"] .selkent-source-card,
html[data-theme="dark"] .manual-result-fallback,
html[data-theme="dark"] .admin-age-group,
html[data-theme="dark"] .feature-toggle-list .toggle-row{
  background:#151d18!important;
  color:#f2f7f3!important;
  border-color:#344239!important;
}
html[data-theme="dark"] .formation-control select{
  background:#101713!important;
  color:#f2f7f3!important;
  border-color:#35443a!important;
}
html[data-theme="dark"] .division-result-empty,
html[data-theme="dark"] .fixture-source-pill,
html[data-theme="dark"] .competition-mode-pill.no-league{
  background:#202a23!important;
  color:#c5d2c9!important;
  border-color:#35443a!important;
}
html[data-theme="dark"] .squad-format-summary span{
  background:#193322!important;
  color:#98e3a3!important;
  border-color:#2f5038!important;
}
html[data-theme="dark"] .squad-format-summary span:nth-child(3){
  background:#1a2b3b!important;color:#a9cceb!important;border-color:#32485b!important;
}
html[data-theme="dark"] .squad-format-summary span:nth-child(4){
  background:#382e17!important;color:#efd98d!important;border-color:#584923!important;
}
html[data-theme="dark"] .admin-health-group.warn,
html[data-theme="dark"] .match-card.status-postponed,
html[data-theme="dark"] .match-card.status-abandoned,
html[data-theme="dark"] .match-card.status-scheduled{
  color:#f2f7f3!important;
}
html[data-theme="dark"] .admin-health-group.warn{background:#2b2517!important;border-color:#594b28!important}
html[data-theme="dark"] .danger-button{background:#3b1d1b!important;color:#f0b1aa!important;border:1px solid #63302c!important}
html[data-theme="dark"] .goal-check{background:#1a241e!important;color:#d0dcd3!important}
html[data-theme="dark"] .goal-check.good{background:#14301f!important;color:#9fe0b4!important}
html[data-theme="dark"] .goal-check.bad{background:#3a1d1a!important;color:#f0aaa2!important}
html[data-theme="dark"] .pin-error,
html[data-theme="dark"] .inline-action.delete,
html[data-theme="dark"] .squad-capacity.full{color:#f1a59e!important}
html[data-theme="dark"] .squad-capacity.near{color:#f0cf75!important}
html[data-theme="dark"] ::placeholder{color:#839188!important;opacity:1}
html[data-theme="dark"] input:disabled,
html[data-theme="dark"] select:disabled,
html[data-theme="dark"] textarea:disabled{color:#a9b7ad!important;opacity:.9}

/* v2.0.34 season history, audit trail and tournament mode */
.match-section-actions,.tournament-event-actions,.season-management-actions,.season-history-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.tournament-event-list{display:grid;gap:14px}.tournament-event-card{padding:18px}.tournament-event-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.tournament-event-head h3{margin:2px 0 4px}.tournament-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:14px 0}.tournament-summary-grid span,.archive-stat-grid span{background:var(--surface-soft,#eef5ef);border:1px solid var(--line,#d9e4dc);border-radius:12px;padding:10px;text-align:center;font-size:.78rem}.tournament-summary-grid b,.archive-stat-grid b{display:block;font-size:1.12rem;margin-bottom:2px}.tournament-game-list{display:grid;gap:8px}.tournament-game-list .match-card{margin:0}.tournament-delete{margin-top:12px}.season-management-actions label{min-width:170px;flex:1}.season-history-controls select{flex:1;min-width:190px}.archive-summary{margin-top:12px;color:var(--muted,#66736a)}.archive-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:14px}.archive-match-list{display:grid;gap:7px;max-height:48vh;overflow:auto}.archive-match-row{display:grid;grid-template-columns:86px minmax(120px,1fr) minmax(90px,.7fr) 64px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line,#d9e4dc)}.audit-history-list{display:grid;gap:8px;margin-top:12px;max-height:520px;overflow:auto}.audit-row{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line,#d9e4dc)}.audit-row>div:first-child{display:grid;gap:3px}.audit-row span,.audit-row small{color:var(--muted,#66736a);font-size:.82rem}.audit-meta{text-align:right;display:grid;gap:3px}.season-archive-body{min-width:min(720px,82vw)}
[data-theme="dark"] .tournament-summary-grid span,[data-theme="dark"] .archive-stat-grid span{background:#18251d;border-color:#314238;color:#edf7f0}[data-theme="dark"] .archive-summary,[data-theme="dark"] .audit-row span,[data-theme="dark"] .audit-row small{color:#b8c9bd}
@media(max-width:720px){.tournament-event-head{display:grid}.tournament-summary-grid,.archive-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.archive-match-row{grid-template-columns:72px 1fr 58px}.archive-match-row span:nth-child(3){display:none}.season-archive-body{min-width:0}.audit-row{display:grid}.audit-meta{text-align:left}}


/* v2.0.35 — scheduled match controls, Admin Results isolation and dark-mode full contrast pass */
html[data-theme="dark"] .mini-meta,
html[data-theme="dark"] .nav-item,
html[data-theme="dark"] .player-card.vacant .player-name,
html[data-theme="dark"] .admin-attention-row span,
html[data-theme="dark"] .admin-attention-row b,
html[data-theme="dark"] .matchday-player-label small,
html[data-theme="dark"] .matchday-dashboard-kits,
html[data-theme="dark"] .detail-match-summary span,
html[data-theme="dark"] .server-backup-note span,
html[data-theme="dark"] .auto-team-summary span,
html[data-theme="dark"] .league-auto-status span,
html[data-theme="dark"] .admin-team-division,
html[data-theme="dark"] .admin-team-mini,
html[data-theme="dark"] .table-meta,
html[data-theme="dark"] .member-empty,
html[data-theme="dark"] .archive-summary,
html[data-theme="dark"] .audit-row span,
html[data-theme="dark"] .audit-row small{
  color:#b9c7be!important;
}
html[data-theme="dark"] .settings-accordion>summary,
html[data-theme="dark"] .nested-settings>summary,
html[data-theme="dark"] .server-backup-note strong,
html[data-theme="dark"] .admin-team-card-head strong,
html[data-theme="dark"] .detail-player-row span,
html[data-theme="dark"] .detail-booking-row>span,
html[data-theme="dark"] .match-opponent,
html[data-theme="dark"] .match-score,
html[data-theme="dark"] .scoreline,
html[data-theme="dark"] .rank-name,
html[data-theme="dark"] .mini-team,
html[data-theme="dark"] .panel h3,
html[data-theme="dark"] .section-title-row h2{
  color:#f2f7f3!important;
}
html[data-theme="dark"] .admin-team-card,
html[data-theme="dark"] .admin-assignment-panel,
html[data-theme="dark"] .auto-team-summary>div,
html[data-theme="dark"] .league-auto-status>div,
html[data-theme="dark"] .detail-match-summary,
html[data-theme="dark"] .detail-player-row,
html[data-theme="dark"] .detail-booking-row,
html[data-theme="dark"] .server-backup-note,
html[data-theme="dark"] .member-role-pill,
html[data-theme="dark"] .match-detail-badges span,
html[data-theme="dark"] .division-result-add,
html[data-theme="dark"] .empty-detail-options{
  background:#17211b!important;
  border-color:#344239!important;
  color:#e6efe9!important;
}
html[data-theme="dark"] .admin-team-card.active-team{border-color:#4f8f5b!important;box-shadow:0 0 0 2px rgba(79,143,91,.16)!important}
html[data-theme="dark"] .team-member-row.pending{background:#2b2517!important;border-color:#594b28!important}
html[data-theme="dark"] .team-member-row.pending .member-role-pill{background:#382e17!important;color:#efd98d!important;border-color:#584923!important}
html[data-theme="dark"] .empty-detail-options{background:#2b2517!important;color:#f0dc9c!important;border-color:#594b28!important}
html[data-theme="dark"] .match-detail-badges span{background:#1b3022!important;color:#9ee0a8!important;border:1px solid #2f5038!important}
html[data-theme="dark"] .division-result-add{background:#193322!important;color:#98e3a3!important;border-color:#2f5038!important}
html[data-theme="dark"] .matchday-dashboard-status{background:#202a23!important;color:#d5e2d9!important;border:1px solid #35443a!important}
html[data-theme="dark"] .matchday-dashboard-status.confirmed{background:#16351f!important;color:#a7eab2!important;border-color:#2f5038!important}
html[data-theme="dark"] .matchday-dashboard-status.awaiting{background:#372f16!important;color:#f2d780!important;border-color:#584923!important}
html[data-theme="dark"] .matchday-dashboard-status.changed,
html[data-theme="dark"] .matchday-dashboard-status.issue{background:#3a1d1a!important;color:#f0aaa2!important;border-color:#63302c!important}
html[data-theme="dark"] .matchday-dashboard-alert{background:#3a1d1a!important;border-color:#63302c!important;color:#f0aaa2!important}
html[data-theme="dark"] .fixture-ack-pill{background:#202a23!important;color:#d5e2d9!important;border:1px solid #35443a!important}
html[data-theme="dark"] .fixture-ack-pill.awaiting{background:#372f16!important;color:#f2d780!important;border-color:#584923!important}
html[data-theme="dark"] .fixture-ack-pill.issue,
html[data-theme="dark"] .fixture-ack-pill.changed{background:#3a1d1a!important;color:#f0aaa2!important;border-color:#63302c!important}
html[data-theme="dark"] .fixture-ack.awaiting .fixture-ack-copy strong,
html[data-theme="dark"] .weekend-fixture-row.warning small{color:#f0cf75!important}
html[data-theme="dark"] .club-result-row.result-D .club-result-score strong{color:#d4ddd6!important}
html[data-theme="dark"] .rank-no,
html[data-theme="dark"] .shield-mini{background:#193322!important;color:#98e3a3!important}
html[data-theme="dark"] .text-button,
html[data-theme="dark"] .inline-action,
html[data-theme="dark"] .division-team-link{color:#8ee09a!important}
html[data-theme="dark"] .competition-games-table th,
html[data-theme="dark"] .competition-games-table td,
html[data-theme="dark"] .league-table th,
html[data-theme="dark"] .league-table td{color:#e6efe9!important;border-color:#2f3d33!important}
html[data-theme="dark"] .competition-games-table thead,
html[data-theme="dark"] .league-table thead{background:#111914!important}
html[data-theme="dark"] .friendly-section{background:linear-gradient(135deg,#17241b,#121b15)!important;border-color:#344239!important;color:#f2f7f3!important}
html[data-theme="dark"] .competition-games-table th{background:#1e2a22!important;color:#e6efe9!important}
html[data-theme="dark"] .competition-games-table tr.result-W td{background:#16351f!important}
html[data-theme="dark"] .competition-games-table tr.result-D td{background:#26302a!important}
html[data-theme="dark"] .competition-games-table tr.result-L td{background:#3a1d1a!important}
html[data-theme="dark"] .competition-games-table tr.status-postponed td{background:#372f16!important}
html[data-theme="dark"] .competition-games-table tr.status-abandoned td{background:#372319!important}
html[data-theme="dark"] .competition-games-table tr.status-scheduled td{background:#202a23!important}

/* Universal Core v1 */
:root{--club-secondary:#fff}.club-logo-wrap.platform-club-placeholder{background:#fff;border-color:rgba(255,255,255,.82)}.club-logo-wrap.platform-club-placeholder::after,.club-logo-wrap.generic-club-mark::after{content:none!important}.quick-test-club-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}@media(max-width:430px){.quick-test-club-grid{grid-template-columns:1fr}}

.universal-config-brand{display:flex;align-items:center;gap:10px;margin:10px 0}.universal-config-brand>div{display:flex;flex-direction:column}.universal-config-brand small{color:var(--muted);margin-top:2px}.universal-swatch{width:38px;height:38px;border-radius:12px;border:2px solid var(--white);box-shadow:0 0 0 1px #dce5df}.universal-config-chips{display:flex;flex-wrap:wrap;gap:6px}.universal-config-chips span{font-size:10px;font-weight:900;background:var(--green-3);color:var(--green-2);padding:6px 8px;border-radius:999px}.universal-config-rules{margin-top:12px}.universal-rule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.universal-rule-grid span{background:var(--bg);border-radius:12px;padding:9px;text-align:center}.universal-rule-grid b{display:block;font-size:15px}.universal-rule-grid small{font-size:9px;color:var(--muted)}@media(max-width:500px){.universal-rule-grid{grid-template-columns:1fr 1fr}}

/* v2.2.1 compliance UI */
.inbox-thread{display:grid;gap:10px;margin-top:16px}.inbox-message{padding:12px;border:1px solid var(--border,#dbe5de);border-radius:12px}.inbox-message.mine{margin-left:8%;background:rgba(33,138,33,.08)}.inbox-message.theirs{margin-right:8%}.inbox-message-meta{display:flex;justify-content:space-between;gap:12px;font-size:.82rem}.inbox-message p{margin:8px 0}.concern-panel{margin-top:16px}.mini-results-restricted .record-card,.mini-results-restricted .running-count-grid{display:none!important}


/* v2.2.9 — streamlined match reporting */
.match-played-action{min-height:48px!important;padding:8px 14px!important}
.report-wizard-mode{width:min(94vw,560px)}
.report-wizard-mode .detail-feature-section{border-top:0;padding-top:6px}
.match-report-progress{display:flex;gap:6px;overflow-x:auto;padding:4px 0 10px;scrollbar-width:none}
.match-report-progress::-webkit-scrollbar{display:none}
.match-report-progress span{flex:0 0 auto;border:1px solid #dce7df;border-radius:999px;background:#fff;color:var(--muted);font-size:10px;font-weight:850;padding:6px 9px}
.match-report-progress span.active{background:var(--green);border-color:var(--green);color:#fff}
.match-report-progress span.complete{background:#eef5f0;border-color:#cfe0d4;color:var(--green)}
.match-report-score-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:12px}
.match-report-score-grid>span{font-size:28px;font-weight:900;padding-bottom:10px}
.match-report-score-grid input{text-align:center;font-size:28px;font-weight:900}
.attendance-switch{border:0;background:transparent;display:flex;align-items:center;justify-content:flex-end;gap:9px;min-height:44px;padding:2px;color:var(--muted);font-weight:850}
.attendance-switch-track{position:relative;width:52px;height:30px;border-radius:999px;background:#d8e0da;transition:background .18s ease;flex:0 0 auto}
.attendance-switch-thumb{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(8,52,29,.22);transition:transform .18s ease}
.attendance-switch.is-present{color:var(--green)}
.attendance-switch.is-present .attendance-switch-track{background:var(--green)}
.attendance-switch.is-present .attendance-switch-thumb{transform:translateX(22px)}
.attendance-switch-label{min-width:76px;text-align:left;font-size:12px}
.match-report-actions{position:sticky;bottom:0;background:var(--white);padding-top:10px;z-index:2}
.match-report-actions .primary-button,.match-report-actions .secondary-button{min-width:96px}
html[data-theme="dark"] .match-report-progress span{background:#151d18;border-color:#35443a}
html[data-theme="dark"] .match-report-progress span.active{background:var(--green);color:#fff}
html[data-theme="dark"] .match-report-progress span.complete{background:#17311f;color:#f2f7f3}
@media(max-width:560px){
  .match-report-score-grid{grid-template-columns:1fr auto 1fr}
  .attendance-player-row{align-items:center}
  .attendance-switch-label{min-width:72px}
  .match-report-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .match-report-actions>*{width:100%}
}


/* v2.2.11 — full-screen Match played flow */
dialog.report-wizard-mode{
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  max-height:100dvh!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:var(--white)!important;
}
dialog.report-wizard-mode::backdrop{background:var(--white)}
.report-wizard-mode #match-detail-form{
  min-height:100dvh;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  padding:calc(16px + var(--android-inset-top,0px)) 18px calc(16px + var(--android-inset-bottom,0px));
}
.report-wizard-mode .modal-heading{flex:0 0 auto}
.report-wizard-mode .detail-match-summary{flex:0 0 auto}
.report-wizard-mode .match-report-progress{flex:0 0 auto;margin-top:8px}
.report-wizard-mode .detail-feature-section{
  flex:1 0 auto;
  width:100%;
  box-sizing:border-box;
  border-top:0;
  padding:16px 0 24px;
}
.report-wizard-mode .match-report-actions{
  flex:0 0 auto;
  margin-top:auto;
  padding:12px 0 0;
  background:var(--white);
}
@media(min-width:600px){
  .report-wizard-mode #match-detail-form{width:min(100%,720px);margin:0 auto;padding-left:24px;padding-right:24px}
}


/* v2.2.14 — fixture identity, venue and kit corrections */
.match-overview{display:grid;gap:11px;margin-top:11px}
.match-versus{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:8px;align-items:center;padding:13px;border:1px solid #d8e0da;border-radius:16px;background:var(--white)}
.match-team-side{min-width:0;display:grid;justify-items:center;gap:4px;text-align:center}.match-team-side strong{font-size:13px;line-height:1.2;overflow-wrap:anywhere}.match-team-side small{font-size:10.5px;color:var(--muted);line-height:1.25}.match-side-label{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.match-versus-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--green-3);color:var(--green-2);font-size:13px;font-weight:1000}.match-team-kit{width:54px;height:52px;color:#66756d;filter:drop-shadow(0 3px 5px rgba(0,0,0,.10))}
.match-venue-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #d8e0da;border-radius:14px;padding:12px 13px;background:var(--white)}.match-venue-card>div{min-width:0;display:grid;gap:2px}.match-venue-card span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.match-venue-card strong{font-size:13px}.match-venue-card small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.match-kit-correction{border:1px solid #d8e0da;border-radius:14px;background:var(--white);overflow:hidden}.match-kit-correction>summary{cursor:pointer;list-style:none;padding:11px 13px;font-size:12px;font-weight:900;color:var(--green-2)}.match-kit-correction>summary::-webkit-details-marker{display:none}.match-kit-correction[open]{padding-bottom:12px}.match-kit-correction[open]>:not(summary){margin-left:12px;margin-right:12px}.match-kit-correction .helper{margin:7px 12px 0}
html[data-theme="dark"] .match-versus,html[data-theme="dark"] .match-venue-card,html[data-theme="dark"] .match-kit-correction{background:#151d18!important;border-color:#344239!important;color:#f2f7f3!important}html[data-theme="dark"] .match-team-side small,html[data-theme="dark"] .match-side-label,html[data-theme="dark"] .match-venue-card span,html[data-theme="dark"] .match-venue-card small{color:#b9c7be!important}html[data-theme="dark"] .match-versus-mark{background:#193322!important;color:#98e3a3!important}html[data-theme="dark"] .match-kit-correction>summary{color:#98e3a3!important}html[data-theme="dark"] .match-team-kit{color:#b9c7be}
@media(max-width:390px){.match-versus{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);padding:11px 8px}.match-versus-mark{width:28px;height:28px}.match-team-kit{width:47px;height:46px}.match-team-side strong{font-size:12px}.match-venue-card{align-items:flex-start;flex-direction:column}.match-venue-card .map-link{align-self:stretch;text-align:center}}


/* v2.2.15 — visible fixture overview, map preview and match removal */
.next-fixture-versus{margin-top:2px}
.next-fixture-venue{margin-top:0}
.fixture-map-preview{height:184px;border:1px solid #d8e0da;border-radius:16px;overflow:hidden;background:#e8efe9}
.fixture-map-preview iframe{display:block;width:100%;height:100%;border:0;pointer-events:none;background:#e8efe9}
#delete-match-edit{width:100%;margin-top:10px}
html[data-theme="dark"] .next-match-grid>div,
html[data-theme="dark"] .next-match-kits{background:#151d18!important;border-color:#344239!important;color:#f2f7f3!important}
html[data-theme="dark"] .next-match-grid strong,
html[data-theme="dark"] .next-match-kits strong{color:#f2f7f3!important}
html[data-theme="dark"] .next-match-grid span,
html[data-theme="dark"] .next-match-kits span{color:#b9c7be!important}
html[data-theme="dark"] .fixture-map-preview{background:#101713;border-color:#344239}
@media(max-width:390px){.fixture-map-preview{height:152px}.next-fixture-versus{padding-left:7px;padding-right:7px}}


/* v2.2.16 — fixture cards, kit profiles, clash warnings and safe programme */
.club-detail-link{border:0;background:transparent;padding:0;color:var(--green);font:inherit;font-weight:900;text-decoration:underline;text-underline-offset:3px;cursor:pointer;max-width:100%;overflow-wrap:anywhere}
.match-team-side .club-detail-link{font-size:13px;line-height:1.2;text-align:center}
.kit-clash-warning{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #A52626;border-radius:12px;background:#FFF0F0;color:#A52626;font-size:13px;font-weight:800;line-height:1.4}
.kit-clash-warning .text-button{flex:0 0 auto;color:#A52626}
.synced-fixture-list{display:grid;gap:16px}
.further-fixture-card{display:grid;gap:12px;padding:14px;border:1px solid var(--line,#D8E0DA);border-radius:18px;background:var(--white,#FFFFFF)}
.further-fixture-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.further-fixture-head>div{display:grid;gap:3px}.further-fixture-head strong{font-size:14px}.further-fixture-map{height:168px}
.programme-status{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--line,#D8E0DA);border-radius:12px;padding:8px 10px;font-size:12px;font-weight:850;text-align:center}
.programme-status.played{background:#EEF6F1;color:var(--green-2)}.programme-status.not-played{background:var(--white,#FFFFFF);color:var(--muted)}.programme-status.postponed{background:#FFF0F0;color:#A52626}
.club-detail-shell{display:grid;gap:14px}.club-detail-club-name{margin:-8px 0 0;color:var(--muted);font-weight:700}.club-kit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.club-kit-grid article{display:grid;justify-items:center;gap:6px;text-align:center;padding:14px;border:1px solid var(--line,#D8E0DA);border-radius:16px;background:var(--white,#FFFFFF)}.club-kit-grid article>span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.club-kit-grid article strong{font-size:13px}.club-kit-admin{display:grid;gap:12px;padding-top:4px}
html[data-theme="dark"] .further-fixture-card,html[data-theme="dark"] .club-kit-grid article,html[data-theme="dark"] .programme-status.not-played{background:#151d18!important;border-color:#344239!important;color:#f2f7f3!important}
html[data-theme="dark"] .club-detail-link{color:#98e3a3}
@media(max-width:390px){.further-fixture-card{padding:11px}.further-fixture-head{flex-direction:column}.club-kit-grid{grid-template-columns:1fr}.kit-clash-warning{flex-direction:column}.kit-clash-warning .text-button{width:100%;text-align:left}}


/* v2.2.17 — dashboard priority, shirt selection, dark availability and logo */
.record-card.knight-panel.dashboard-record-retired{display:none!important}
.fixture-kit-toggle-host:empty{display:none!important}
.fixture-kit-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #D8E0DA;border-radius:12px;background:var(--white)}
.fixture-kit-toggle>span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900}
.fixture-kit-toggle>div{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-width:190px}
.fixture-kit-toggle button{min-height:42px;border:1px solid #D8E0DA;border-radius:10px;background:var(--white);color:var(--muted);font:inherit;font-size:12px;font-weight:900;padding:7px 10px}
.fixture-kit-toggle button.active{background:var(--green);border-color:var(--green);color:#fff}
.fixture-kit-toggle button:disabled{opacity:.5}
.club-shirt-editor{border:1px solid #D8E0DA;border-radius:14px;padding:0;background:var(--white);overflow:hidden}
.club-shirt-editor>summary{list-style:none;cursor:pointer;padding:12px 14px;color:var(--green);font-weight:900}.club-shirt-editor>summary::-webkit-details-marker{display:none}
.club-shirt-editor[open]{padding-bottom:14px}.club-shirt-editor[open]>*:not(summary){margin-left:14px;margin-right:14px}.club-shirt-editor .form-grid{margin-top:10px}.club-shirt-editor input{width:100%;min-width:0;box-sizing:border-box}.club-shirt-editor .primary-button{margin-top:10px}
.club-detail-modal{width:min(94vw,720px)}.club-detail-shell{box-sizing:border-box;max-height:calc(100dvh - var(--android-inset-bottom,0px) - 20px);overflow-y:auto;padding:19px;overscroll-behavior:contain}.club-detail-shell>.modal-actions{margin-left:-19px;margin-right:-19px;padding-left:19px;padding-right:19px}
.mini-jersey b{position:absolute!important;inset:0!important;display:grid!important;place-items:center!important;margin:0!important;transform:translateY(1px)}
.coach-availability-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.availability-summary-group span{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;min-height:32px}
.availability-summary-group span .mini-jersey{justify-self:center}
html[data-theme="dark"] .match-availability{background:#151d18!important;border-color:#344239!important;color:#f2f7f3!important}
html[data-theme="dark"] .availability-summary-group,html[data-theme="dark"] .availability-count,html[data-theme="dark"] .availability-deadline,html[data-theme="dark"] .parent-availability-controls,html[data-theme="dark"] .fixture-kit-toggle,html[data-theme="dark"] .fixture-kit-toggle button,html[data-theme="dark"] .club-shirt-editor{background:#101713!important;border-color:#344239!important;color:#f2f7f3!important}
html[data-theme="dark"] .availability-summary-group em,html[data-theme="dark"] .match-availability-head span,html[data-theme="dark"] .availability-deadline .helper{color:#b9c7be!important}
html[data-theme="dark"] .fixture-kit-toggle button.active{background:var(--green)!important;color:#fff!important;border-color:var(--green)!important}
html[data-theme="dark"] .modal-actions{background:linear-gradient(to bottom,rgba(21,29,24,.88),#151d18 24%)!important}
@media(max-width:760px){.coach-availability-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.coach-availability-summary{grid-template-columns:1fr}.fixture-kit-toggle{align-items:flex-start;flex-direction:column}.fixture-kit-toggle>div{width:100%;min-width:0}.club-shirt-editor .form-grid.two{grid-template-columns:1fr}}


/* v2.2.18 — explicit squad pages, tactics-first layout and settings cleanup */
.squad-pages{min-width:0}
.tactics-panel{display:flex;flex-direction:column;gap:12px}
.tactics-heading{margin-bottom:0}
.formation-control{order:1;display:grid;gap:6px;font-size:12px;font-weight:900}
.tactics-pitch{order:2;margin-top:0}
.tactics-bench-wrap{order:3;margin-top:0}
.tactics-squad-options{order:0;margin:2px 0 0;padding:0;overflow:hidden}
.tactics-squad-options>summary{list-style:none;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px;cursor:pointer}
.tactics-squad-options>summary::-webkit-details-marker{display:none}
.tactics-squad-options>summary>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.tactics-squad-options>summary strong{font-size:13px}
.tactics-squad-options>summary span,.tactics-squad-options>summary small{font-size:10.5px;color:var(--muted)}
.tactics-squad-options>summary b{white-space:nowrap;font-size:12px;background:var(--white);border:1px solid var(--line,#d8e0da);border-radius:999px;padding:6px 9px}
.tactics-squad-options-body{border-top:1px solid var(--line,#d8e0da);padding:12px 13px 13px}
.tactics-squad-options-body>#matchday-readiness-summary{display:block;margin-bottom:9px;color:var(--muted);font-size:10.5px;font-weight:800}
.tactics-squad-options-body .matchday-squad-head-actions{justify-content:flex-end;margin-bottom:8px}
.tactics-fixture{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--line,#d8e0da);border-radius:14px;background:var(--white)}
.tactics-fixture strong{font-size:15px;line-height:1.25}.tactics-fixture span{font-size:12px;color:var(--muted);font-weight:750}.tactics-fixture small{font-size:11px;color:var(--green);font-weight:900}
.tactics-rotation-help{margin:3px 0 9px;line-height:1.35}.tactics-bench-player small{display:block;padding:3px 6px;border-radius:8px;background:var(--green);color:#fff;font-size:10px;font-weight:900}
.tactics-coach-plan{order:4;display:grid;gap:11px;border-top:1px solid var(--line,#d8e0da);padding-top:15px}.tactics-coach-plan .panel-heading{margin:0}.tactics-coach-plan .helper{margin:0;line-height:1.35}
.tactics-plan-fields{display:grid;gap:10px}.tactics-plan-fields label{display:grid;gap:5px;font-size:12px;font-weight:900}.tactics-plan-fields input{box-sizing:border-box;width:100%;min-height:44px;border:1px solid var(--line,#d8e0da);border-radius:11px;background:var(--white);color:var(--ink);font:inherit;font-size:13px;padding:10px 12px}.tactics-plan-fields input::placeholder{color:var(--muted)}.tactics-plan-fields input[readonly]{opacity:.8}
html[data-theme="dark"] .tactics-fixture,html[data-theme="dark"] .tactics-plan-fields input{background:#101713!important;border-color:#344239!important;color:#f2f7f3!important}
html[data-theme="dark"] .tactics-fixture small{color:#96e3a0}
.settings-group-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:10px 2px 0;padding-top:4px}
.settings-group-heading:first-child{margin-top:0}
.settings-group-heading span{font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;color:var(--green)}
.settings-group-heading small{font-size:10px;color:var(--muted);text-align:right}
html[data-theme="dark"] .settings-group-heading span{color:#8ee09a}
.procedure-list,.rule-summary-list{display:grid;gap:8px;margin-top:12px}
.procedure-list article,.rule-summary-list>span{display:flex;flex-direction:column;gap:3px;padding:11px 12px;border:1px solid var(--line,#d8e0da);border-radius:12px;background:var(--white)}
.procedure-list strong,.rule-summary-list strong{font-size:11px}
.procedure-list span,.rule-summary-list>span{font-size:11px;color:var(--muted);line-height:1.4}
.rule-summary-list>span strong{color:var(--ink)}
html[data-theme="dark"] .tactics-squad-options>summary b,
html[data-theme="dark"] .procedure-list article,
html[data-theme="dark"] .rule-summary-list>span{background:#101713!important;border-color:#344239!important;color:#f2f7f3!important}
html[data-theme="dark"] .tactics-squad-options-body{border-color:#344239!important}
@media(max-width:520px){.settings-group-heading{align-items:flex-start;flex-direction:column;gap:2px}.settings-group-heading small{text-align:left}}

/* v2.2.24 — pending parent review alignment and approval UX */
.team-member-row.pending{grid-template-columns:minmax(0,1fr)!important;align-items:start!important}
.team-member-row.pending .team-member-copy strong{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.team-member-copy span{line-height:1.4;overflow-wrap:anywhere;word-break:break-word}
.team-member-row.pending .team-member-actions{width:100%;justify-content:flex-start;align-items:center}
.pending-parent-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.pending-parent-details span{display:flex;flex-direction:column;gap:2px;min-width:0;padding:8px 10px;border:1px solid var(--border,#d8e0da);border-radius:10px;background:var(--white)}
.pending-parent-details b{font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.parent-approve-action,.notification-review-action{min-height:44px;padding:10px 14px}
.notification-item-head>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.notification-item-head strong,.notification-item p{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.notification-item time{flex:0 0 auto}
.notification-item-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}
@media(max-width:560px){
  .pending-parent-details{grid-template-columns:1fr}
  .team-member-row.pending .team-member-actions>*{flex:0 1 auto}
  .parent-approve-action{flex:1 1 100%!important;width:100%}
  .notification-item-head{display:grid;grid-template-columns:minmax(0,1fr) auto}
}
html[data-theme="dark"] .pending-parent-details span{background:#151d18!important;border-color:#344239!important;color:#f2f7f3!important}


/* v2.2.25 — compact dashboard next match and confirmed fixture details */
.home-next-match{display:grid;gap:8px;margin-bottom:16px}.home-next-match>.kicker{margin:0 0 0 2px}.next-match-summary-card{width:100%;display:grid;gap:13px;cursor:pointer;text-align:inherit;color:inherit;font:inherit;appearance:none;-webkit-appearance:none}.next-match-summary-card:hover,.next-match-summary-card:focus-visible{border-color:var(--green);box-shadow:0 0 0 3px rgba(22,136,72,.15)}.next-match-summary-card:disabled{cursor:default;opacity:.72}.next-match-summary-versus{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);align-items:center;gap:10px}.next-match-summary-team{display:grid;justify-items:center;gap:8px;min-width:0;text-align:center}.next-match-summary-team strong{font-size:clamp(13px,3.3vw,17px);line-height:1.2;overflow-wrap:anywhere}.next-match-summary-visual{display:grid;place-items:center;width:76px;height:76px}.next-match-summary-visual .match-team-kit{width:70px;height:68px}.next-match-team-badge{width:72px;height:72px;object-fit:contain;border-radius:50%}.next-match-summary-v{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--green-3);color:var(--green-2);font-weight:1000}.next-match-summary-date{text-align:center;font-weight:900;font-size:16px;color:var(--green-2)}
.next-fixture-detail-shell{display:grid;gap:14px}.next-fixture-modal{width:min(94vw,720px)}.fixture-confirmation-editor{display:grid;gap:12px;padding:14px;border:1px solid var(--line,#D8E0DA);border-radius:16px;background:var(--soft,#F3F6F4)}.fixture-confirmation-editor label{display:grid;gap:6px;font-size:12px;font-weight:850}.fixture-confirmation-editor input,.fixture-confirmation-editor select{width:100%}.fixture-confirmation-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.next-fixture-modal .fixture-ack{margin-top:0}
html[data-theme="dark"] .next-match-summary-card,html[data-theme="dark"] .fixture-confirmation-editor{background:#151d18!important;border-color:#344239!important;color:#f2f7f3!important}html[data-theme="dark"] .next-match-summary-date,html[data-theme="dark"] .next-match-summary-v{color:#98e3a3!important}html[data-theme="dark"] .next-match-summary-v{background:#193322!important}
@media(max-width:390px){.next-match-summary-visual{width:62px;height:62px}.next-match-team-badge{width:60px;height:60px}.next-match-summary-visual .match-team-kit{width:58px;height:56px}.next-match-summary-versus{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr)}.fixture-confirmation-actions>*{width:100%}}


/* v2.2.26 — badge-first match identity, generic club placeholders and fixture actions */
.match-team-side{grid-template-rows:auto 92px minmax(48px,auto) 42px;align-content:start;justify-items:center;gap:7px}
.match-team-badge-slot{width:92px;height:92px;display:grid;place-items:center}
.club-identity-badge{display:grid;place-items:center;width:86px;height:86px;max-width:86px;max-height:86px}
.verified-club-badge{object-fit:contain}
.club-placeholder-badge{object-fit:contain;box-sizing:border-box;padding:2px;background:#FFFFFF;border:1px solid #D8E0DA;border-radius:12px}
.match-team-side .match-team-name{min-height:48px;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;line-height:1.18;padding:0 2px}
.match-kit-secondary{min-height:42px;display:flex;align-items:center;justify-content:center;gap:7px;max-width:100%}
.match-kit-secondary .match-team-kit{width:38px;height:36px;flex:0 0 auto}
.match-kit-secondary small{font-size:11px;line-height:1.2;color:var(--muted);overflow-wrap:anywhere}
.match-versus-mark{align-self:center}
.next-match-summary-visual .club-identity-badge{width:72px;height:72px;max-width:72px;max-height:72px}
.fixture-confirmation-actions .primary-button{min-height:48px}
.fixture-share-action{width:100%;min-height:48px;margin-top:2px}
.fixture-share-action:disabled{opacity:.48;cursor:not-allowed}
html[data-theme="dark"] .match-kit-secondary small{color:#b9c7be!important}
@media(max-width:390px){
  .match-team-side{grid-template-rows:auto 76px minmax(52px,auto) 38px;gap:6px}
  .match-team-badge-slot{width:76px;height:76px}
  .club-identity-badge{width:72px;height:72px;max-width:72px;max-height:72px}
  .match-kit-secondary .match-team-kit{width:32px;height:31px}
  .match-kit-secondary small{font-size:10px}
  .next-match-summary-visual .club-identity-badge{width:60px;height:60px;max-width:60px;max-height:60px}
}


/* v2.2.28 - reachable next-match workflow and persistent actions */
.next-fixture-modal{
  width:min(94vw,720px);
  max-height:calc(100dvh - var(--android-inset-bottom,0px) - 20px);
  overflow:hidden;
}
.next-fixture-detail-shell{
  box-sizing:border-box;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  max-height:calc(100dvh - var(--android-inset-bottom,0px) - 20px);
  overflow:hidden;
}
.next-fixture-detail-shell>.modal-heading{
  padding:17px 19px 12px;
  border-bottom:1px solid var(--line,#D8E0DA);
  background:var(--white,#FFFFFF);
  z-index:4;
}
.next-fixture-scroll{
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:14px 19px 20px;
  display:grid;
  gap:14px;
  -webkit-overflow-scrolling:touch;
}
.next-fixture-action-bar{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;
  gap:8px;
  padding:12px 19px max(12px,env(safe-area-inset-bottom));
  border-top:1px solid var(--line,#D8E0DA);
  background:var(--white,#FFFFFF);
  z-index:5;
}
.next-fixture-action-bar button{min-height:46px}
.next-fixture-action-bar .text-button{padding-inline:12px}
html[data-theme="dark"] .next-fixture-detail-shell>.modal-heading,
html[data-theme="dark"] .next-fixture-action-bar{
  background:#151d18!important;
  border-color:#344239!important;
}
@media(max-width:440px){
  .next-fixture-action-bar{grid-template-columns:1fr 1fr}
  .next-fixture-action-bar .text-button{grid-column:1/-1;min-height:38px}
}


/* v2.2.30 - verified badge clipping and matchday share diagnostics */
.verified-club-badge{background:transparent!important}

/* v2.2.32 - compact upcoming match details and clear Android navigation */
.next-fixture-modal{
  position:fixed;
  top:calc(var(--android-inset-top,0px) + 12px);
  bottom:calc(var(--android-inset-bottom,0px) + env(safe-area-inset-bottom) + 16px);
  margin:auto;
  max-height:calc(100dvh - var(--android-inset-top,0px) - var(--android-inset-bottom,0px) - env(safe-area-inset-bottom) - 28px);
}
.next-fixture-detail-shell{max-height:inherit}
.next-fixture-action-bar{padding-bottom:18px}
.next-fixture-modal .next-fixture-time-only{display:flex;align-items:center;justify-content:space-between;gap:10px}
.next-fixture-time-only>div{min-width:0;flex:1}
.next-fixture-time-only #next-match-calendar{flex:0 0 auto;white-space:nowrap}
.next-fixture-modal .fixture-map-preview{position:relative}
.next-fixture-modal .fixture-map-preview .map-link{position:absolute;z-index:1;right:12px;bottom:12px;margin:0;background:#e5f3e8;box-shadow:0 2px 9px rgba(0,0,0,.24)}

/* Confirmed answers stay in the compact match overview until staff open the editor. */
.next-match-confirmed-bar{display:flex;align-items:center;gap:8px;min-height:44px}
.fixture-edit-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid #d8e0da;border-radius:12px;background:#e5f3e8;color:#145a31;font-size:23px;cursor:pointer}
.fixture-edit-button:focus-visible{outline:3px solid #98e3a3;outline-offset:2px}
.next-fixture-modal .match-team-side .club-detail-link{color:#fff;text-decoration-color:rgba(255,255,255,.7)}
.next-fixture-modal .next-fixture-versus{background:#173b26;border-color:#315944;color:#fff}
.next-fixture-modal .next-fixture-versus .match-side-label,.next-fixture-modal .next-fixture-versus .match-kit-secondary small{color:#d8e9dd}
html[data-theme="dark"] .next-fixture-modal .match-team-side .club-detail-link{color:#fff!important}
html[data-theme="dark"] .fixture-edit-button{background:#193322;color:#fff;border-color:#344239}
.next-fixture-modal .match-availability-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.next-fixture-modal .match-availability-head #availability-reminder-send{margin-left:auto}

/* v2.2.34 - Matches card follows the confirmed-details layout. */
.fixture-date-with-calendar{display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 14px}
.fixture-date-copy{display:grid;gap:3px;min-width:0;flex:1 1 220px}
.fixture-date-with-calendar .text-button{margin-left:auto;min-height:44px;white-space:nowrap;padding:8px 10px}
.matches-next-fixture .fixture-map-preview{position:relative}
.matches-next-fixture .fixture-map-preview .map-link{position:absolute;z-index:1;right:12px;bottom:12px;margin:0;min-height:44px;display:grid;place-items:center;background:#e5f3e8;box-shadow:0 2px 9px rgba(0,0,0,.24)}
.matches-next-fixture .next-fixture-versus{background:#173b26;border-color:#315944;color:#fff}
.matches-next-fixture .match-team-side .club-detail-link{color:#fff;text-decoration-color:rgba(255,255,255,.7)}
.matches-next-fixture .match-side-label,.matches-next-fixture .match-kit-secondary small{color:#d8e9dd}
html[data-theme="dark"] .matches-next-fixture .match-team-side .club-detail-link{color:#fff!important}
.matches-next-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch;justify-content:start}
.matches-next-actions button{width:100%;min-height:48px;padding:10px 12px;white-space:normal;line-height:1.2}
@media(max-width:560px){.matches-next-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.matches-next-actions button:last-child:not(.hidden){grid-column:1/-1}}
@media(max-width:350px){.matches-next-actions{grid-template-columns:1fr}.matches-next-actions button:last-child:not(.hidden){grid-column:auto}}
.availability-player-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:7px 0;border-top:1px solid #e0e6e2}
.availability-player-row>span{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:800}
.availability-player-row>span>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.availability-player-row small{font-size:10px;font-weight:700;color:#386e46}
.availability-player-row select{width:min(46%,145px);min-width:106px;min-height:38px;padding:6px;color:#10251a;background:#fff;border:1px solid #b9c7bc;border-radius:9px;font-size:11px;font-weight:800}
html[data-theme="dark"] .availability-player-row{border-color:#344239}
html[data-theme="dark"] .availability-player-row select{background:#17241c;color:#f2f7f3;border-color:#4d6653}
html[data-theme="dark"] .availability-player-row small{color:#a5dab2}
.next-fixture-modal .coach-availability-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
.next-fixture-modal .availability-summary-group{padding:0;min-width:0;overflow:hidden}
.next-fixture-modal .availability-summary-group>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;font-size:12px;font-weight:900}
.next-fixture-modal .availability-summary-group>summary::-webkit-details-marker{display:none}
.next-fixture-modal .availability-summary-group>summary::after{content:'⌄';color:var(--green);font-size:17px;line-height:1}
.next-fixture-modal .availability-summary-group[open]>summary::after{transform:rotate(180deg)}
.next-fixture-modal .availability-summary-group>div{padding:0 12px 12px}
.next-fixture-modal .availability-summary-group.awaiting{border-color:#b7c5bc}
@media(max-width:520px){
  .next-fixture-modal .coach-availability-summary{grid-template-columns:1fr}
  .next-fixture-modal .next-fixture-time-only{flex-wrap:wrap}
  .next-fixture-time-only #next-match-calendar{margin-left:auto}
}

/* v2.2.31 — request-level family access and parent team switching */
.parent-family-account{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line,#D8E0DA)}
.parent-home-family{margin-bottom:16px}.parent-home-family-list,.parent-family-linked-list{display:grid;gap:8px}.parent-child-row{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border:1px solid var(--line,#D8E0DA);border-radius:12px;background:var(--white,#fff)}.parent-child-row strong{display:block;overflow-wrap:anywhere}.parent-child-row small{display:block;color:var(--muted);margin-top:2px}.parent-child-initial{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:var(--green-3,#e5f4e8);color:var(--green-2,#146324);font-weight:900}.parent-home-family-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.parent-family-linked-list .parent-child-row{padding:8px 10px}.parent-family-linked-list .parent-child-initial{width:30px;height:30px;flex-basis:30px}.parent-family-message{font-size:12px;line-height:1.45;color:var(--muted);margin:0}.parent-family-match{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;font-size:12px;color:var(--muted)}.parent-family-match button{white-space:nowrap}
.parent-home-match-info{display:grid;gap:11px;padding:14px 16px}.parent-home-match-meta{display:grid;gap:3px}.parent-home-match-meta strong{font-size:15px}.parent-home-match-meta span,.parent-home-reply small{font-size:13px;color:var(--muted)}.parent-home-replies{display:grid;gap:7px}.parent-home-reply{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line,#D8E0DA);padding-top:9px}.parent-home-reply span{display:grid;gap:2px;min-width:0}.parent-home-reply strong{overflow-wrap:anywhere}.parent-home-reply button{min-height:44px;flex:0 0 auto}.parent-home-match-actions{display:flex;flex-wrap:wrap;gap:8px}.parent-home-match-actions button{min-height:44px}
.next-match-summary-versus.cup-group-summary{grid-template-columns:minmax(0,1fr)}
.cup-group-summary .next-match-summary-team,.cup-group-opponents{display:grid;gap:6px;min-width:0;text-align:center;overflow-wrap:anywhere}
.cup-group-summary .next-match-summary-team span,.cup-group-opponents span{font-weight:700}
.cup-group-summary .next-match-summary-team small,.cup-group-opponents small{color:var(--muted);font-size:13px;line-height:1.45}
.cup-group-opponents{width:100%;padding:14px}
html[data-theme="dark"] .parent-child-row{background:#151d18;border-color:#344239}html[data-theme="dark"] .parent-child-initial{background:#23442d;color:#b8edbf}
.parent-family-account label{display:grid;gap:6px;font-size:12px;font-weight:850}.parent-family-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.parent-family-actions button{min-height:48px}
.parent-request-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.parent-request-summary span{display:flex;flex-direction:column;gap:3px;padding:9px 10px;border:1px solid var(--line,#D8E0DA);border-radius:12px;background:var(--gch-white,#fff);min-width:0}.parent-request-summary span:last-child{grid-column:1/-1}.parent-request-summary b{font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.parent-request-summary strong{font-size:12px;overflow-wrap:anywhere}
.parent-request-player-fieldset{border:0;padding:0;margin:4px 0 0;min-width:0}.parent-request-player-fieldset legend{font-size:12px;font-weight:900;color:var(--ink);padding:0;margin-bottom:6px}.parent-request-player{min-height:52px;cursor:pointer}.parent-request-player input[type="radio"]{width:20px;height:20px;flex:0 0 auto}
html[data-theme="dark"] .parent-family-account{border-color:#344239!important}html[data-theme="dark"] .parent-request-summary span,html[data-theme="dark"] .parent-request-player{background:#151d18!important;border-color:#344239!important;color:#f2f7f3!important}
@media(max-width:560px){.parent-family-actions{grid-template-columns:1fr}.parent-request-summary{grid-template-columns:1fr}.parent-request-summary span:last-child{grid-column:auto}}

/* Selkent reference in the staff-only match detail view. */
.selkent-task-guide{border:1px solid #d7e4d9;border-radius:16px;background:var(--white);color:var(--ink);overflow:hidden}
.selkent-task-guide>summary{list-style:none;cursor:pointer;padding:13px 15px;font-size:13px;font-weight:900;display:flex;align-items:center;justify-content:space-between;gap:10px}
.selkent-task-guide>summary::-webkit-details-marker{display:none}
.selkent-task-guide>summary::after{content:'⌄';color:var(--green);font-size:18px;line-height:1}
.selkent-task-guide[open]>summary::after{transform:rotate(180deg)}
.selkent-task-guide>div{padding:0 15px 15px;border-top:1px solid #d7e4d9;font-size:11.5px;line-height:1.5}
.selkent-task-guide p{margin:12px 0 8px;color:var(--muted)}
.selkent-task-guide ol{margin:0 0 10px;padding-left:20px}.selkent-task-guide li+li{margin-top:6px}
.selkent-task-guide a{color:var(--green);font-weight:850}
html[data-theme="dark"] .selkent-task-guide,html[data-theme="dark"] .selkent-task-guide>div{border-color:#344239}
html[data-theme="dark"] .selkent-task-guide a,html[data-theme="dark"] .selkent-task-guide>summary::after{color:#98e3a3}

/* The supplied club badge has opaque black corners outside its circular crest. */
img[src$="shooters-hill-logo.png"]{clip-path:circle(50.5% at 50% 50%)}

/* Keep authenticated match, squad and club surfaces legible in dark mode. */
html[data-theme="dark"] .league-summary-card,
html[data-theme="dark"] .friendly-count-card,
html[data-theme="dark"] .selkent-sync-settings,
html[data-theme="dark"] .admin-dashboard-summary,
html[data-theme="dark"] .admin-dashboard-summary .admin-stat,
html[data-theme="dark"] .admin-fixture-row,
html[data-theme="dark"] .admin-fixture-row.tbc,
html[data-theme="dark"] .inbox-thread,
html[data-theme="dark"] .inbox-message,
html[data-theme="dark"] .award-type-row,
html[data-theme="dark"] .coach-note-readonly,
html[data-theme="dark"] .tournament-summary-grid span,
html[data-theme="dark"] .archive-stat-grid span,
html[data-theme="dark"] .parent-request-summary span{
  background:#151d18!important;
  border-color:#344239!important;
  color:#f2f7f3!important;
}
html[data-theme="dark"] .inbox-message.mine{background:#193322!important;border-color:#2f5038!important}
html[data-theme="dark"] .admin-management-panel[open]>summary{background:#17211b!important;border-color:#344239!important}
html[data-theme="dark"] .league-table tr.our-team-row td{background:#193322!important}
html[data-theme="dark"] .league-table tr.our-team-row .team-cell,
html[data-theme="dark"] .league-table tr.our-team-row .pts,
html[data-theme="dark"] .admin-dashboard-summary .admin-stat strong{color:#a7eab2!important}
html[data-theme="dark"] .league-slot,
html[data-theme="dark"] .synced-fixture-venue,
html[data-theme="dark"] .player-edit,
html[data-theme="dark"] .programme-status.played,
html[data-theme="dark"] .programme-status.not-played{
  background:#203027!important;
  border-color:#344239!important;
  color:#d8e7dc!important;
}
html[data-theme="dark"] .locked-team-note{background:#193322!important;border-color:#2f5038!important;color:#a7eab2!important}
html[data-theme="dark"] .kit-clash-warning,
html[data-theme="dark"] .programme-status.postponed{background:#3a1d1a!important;border-color:#63302c!important;color:#f0aaa2!important}
html[data-theme="dark"] .match-card.result-W,
html[data-theme="dark"] .club-result-row.result-W,
html[data-theme="dark"] .imported-result-row.result-W{background:#16351f!important;border-color:#376249!important}
html[data-theme="dark"] .match-card.result-D,
html[data-theme="dark"] .club-result-row.result-D,
html[data-theme="dark"] .imported-result-row.result-D{background:#26302a!important;border-color:#45534a!important}
html[data-theme="dark"] .match-card.result-L,
html[data-theme="dark"] .club-result-row.result-L,
html[data-theme="dark"] .imported-result-row.result-L{background:#3a1d1a!important;border-color:#70423d!important}
html[data-theme="dark"] .club-result-row.result-W .club-result-score strong{color:#a7eab2!important}
html[data-theme="dark"] .club-result-row.result-L .club-result-score strong{color:#f0aaa2!important}
html[data-theme="dark"] .next-match-status,
html[data-theme="dark"] .default-award-badge,
html[data-theme="dark"] .admin-health-good{background:#193322!important;color:#a7eab2!important;border-color:#2f5038!important}
html[data-theme="dark"] .admin-attention-heading span{background:#372f16!important;color:#f2d780!important}
html[data-theme="dark"] .admin-attention-row,
html[data-theme="dark"] .admin-access-stat,
html[data-theme="dark"] .admin-access-filter select,
html[data-theme="dark"] .matchday-squad-head b,
html[data-theme="dark"] .admin-ui-mode-switch,
html[data-theme="dark"] .squad-view-tabs,
html[data-theme="dark"] .club-view-tabs{
  background:#203027!important;
  border-color:#344239!important;
  color:#d8e7dc!important;
}

/* Screen navigation: keep match sections reachable without scrolling past every list. */
.screen-section-nav{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:2px 0 12px;
  margin:0 0 8px;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}
.screen-section-nav button{
  flex:0 0 auto;
  min-height:44px;
  padding:9px 14px;
  border:1px solid #d0e4d5;
  border-radius:999px;
  background:#e9f5ec;
  color:#115f2b;
  font:inherit;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}
.screen-section-nav button:focus-visible{outline:3px solid #3fae62;outline-offset:2px}
#view-matches [id="matches-next-fixture"],
#view-matches [id="selkent-fixtures-panel"],
#view-matches [id="league-match-section"],
#view-matches [id="friendly-match-section"],
#view-matches [id="competition-games-section"],
#view-matches [id="tournament-events-section"]{
  scroll-margin-top:calc(var(--android-inset-top,0px) + 76px);
}
#view-more .settings-accordion{scroll-margin-top:calc(var(--android-inset-top,0px) + 76px)}
.matches-record-search{display:grid;gap:7px}
.matches-record-search label{color:var(--muted);font-size:11px;font-weight:850}
html[data-theme="dark"] .screen-section-nav button{
  background:#193322;
  color:#a7eab2;
  border-color:#345e40;
}

/* Home keeps fixture actions in view and groups longer season data. */
.home-season-details{padding:0;overflow:hidden}
.home-season-details>summary{
  list-style:none;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:3px 12px;
  padding:15px 17px;
  cursor:pointer;
}
.home-season-details>summary::-webkit-details-marker{display:none}
.home-season-details>summary strong{font-size:15px}
.home-season-details>summary span{grid-column:1;font-size:11px;color:var(--muted);font-weight:750}
.home-season-details>summary::after{content:'⌄';grid-column:2;grid-row:1/3;font-size:20px;color:var(--green);font-weight:900;line-height:1}
.home-season-details[open]>summary::after{transform:rotate(180deg)}
.home-season-details>summary:focus-visible,
.squad-format-details>summary:focus-visible{outline:3px solid #3fae62;outline-offset:-3px}
.home-season-details-body{padding:4px 16px 4px;border-top:1px solid #e2e8e4}
.home-season-details-body>.panel:last-child{margin-bottom:12px}
html[data-theme="dark"] .home-season-details-body{border-color:#344239}

/* The Squad/Tactics choice appears before the optional format breakdown. */
.squad-format-details{margin:0 0 13px;border:1px solid #dce8df;border-radius:13px;overflow:hidden}
.squad-format-details>summary{list-style:none;cursor:pointer;padding:10px 12px;font-size:12px;font-weight:850;color:var(--ink)}
.squad-format-details>summary::-webkit-details-marker{display:none}
.squad-format-details>summary::after{content:'⌄';float:right;color:var(--green);font-size:16px;line-height:1}
.squad-format-details[open]>summary::after{transform:rotate(180deg)}
.squad-format-details .squad-format-summary{margin:0;padding:4px 12px 11px}
html[data-theme="dark"] .squad-format-details{border-color:#344239}
html[data-theme="dark"] .squad-format-details>summary{color:#f2f7f3}

/* Compact mobile cards: prioritise the next action and let detail expand on demand. */
.matchday-dashboard-note{margin-top:10px;padding-top:0;border-top:1px solid #dfe8e1}
.matchday-dashboard-note>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;list-style:none;cursor:pointer;font-size:12px;font-weight:900;color:var(--ink)}
.matchday-dashboard-note>summary::-webkit-details-marker{display:none}
.matchday-dashboard-note>summary::after{content:'⌄';color:var(--green);font-size:18px}
.matchday-dashboard-note[open]>summary::after{transform:rotate(180deg)}
.matchday-dashboard-note textarea{margin-top:6px}
.matchday-dashboard-note .secondary-button{min-height:44px}
.matchday-dashboard-note>summary:focus-visible,.further-fixture-details>summary:focus-visible{outline:3px solid #3fae62;outline-offset:2px}
.further-fixture-card{gap:8px}
.further-fixture-head strong{line-height:1.3;overflow-wrap:anywhere}
.further-fixture-head small{font-size:11px;color:var(--muted);line-height:1.3}
.further-fixture-quick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.further-fixture-details{min-width:120px}
.further-fixture-details>summary{display:flex;align-items:center;gap:8px;min-height:44px;list-style:none;cursor:pointer;color:var(--green);font-size:12px;font-weight:900}
.further-fixture-details>summary::-webkit-details-marker{display:none}
.further-fixture-details>summary::after{content:'⌄';font-size:17px;line-height:1}
.further-fixture-details[open]{flex:1 0 100%;order:2}
.further-fixture-details[open]>summary::after{transform:rotate(180deg)}
.further-fixture-body{display:grid;gap:10px;padding:8px 0 4px}
.further-fixture-quick>.map-link{display:inline-flex;align-items:center;min-height:44px;margin-left:auto}
html[data-theme="dark"] .matchday-dashboard-note{border-color:#344239}
html[data-theme="dark"] .matchday-dashboard-note>summary{color:#f2f7f3}
html[data-theme="dark"] .further-fixture-head small{color:#b9c7be}

@media(max-width:620px){
  .content{padding:12px 12px calc(28px + var(--android-inset-bottom,0px) + env(safe-area-inset-bottom))!important}
  .section-title-row{margin-bottom:10px}
  .section-title-row h2{font-size:25px}
  .view>.panel:not(.home-season-details):not(.league-programme){padding:12px;margin-bottom:10px;border-radius:16px}
  .home-next-match{gap:5px;margin-bottom:10px}
  .home-next-match .next-match-summary-card{padding:11px;gap:8px;border-radius:16px}
  .next-match-summary-team{gap:4px}
  .next-match-summary-visual{width:58px;height:58px}
  .next-match-team-badge,.next-match-summary-visual .club-identity-badge{width:56px;height:56px;max-width:56px;max-height:56px}
  .next-match-summary-visual .match-team-kit{width:53px;height:51px}
  .next-match-summary-date{font-size:14px}
  .home-season-details>summary{padding:11px 13px}
  .matchday-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:9px 0}
  .matchday-dashboard-grid article:nth-child(-n+3){display:none}
  .matchday-dashboard-grid article:nth-child(4){grid-column:1/-1}
  .matchday-dashboard-grid article{padding:8px 9px}
  .matchday-dashboard-actions{margin-top:7px}
  .matches-next-fixture{gap:9px!important}
  .matches-next-fixture .next-fixture-versus{padding:9px;gap:5px}
  .matches-next-fixture .match-team-side{grid-template-rows:auto 62px minmax(36px,auto) 32px;gap:4px}
  .matches-next-fixture .match-team-badge-slot{width:62px;height:62px}
  .matches-next-fixture .club-identity-badge{width:60px;height:60px;max-width:60px;max-height:60px}
  .matches-next-fixture .match-team-name{min-height:36px;font-size:12px}
  .matches-next-fixture .match-kit-secondary{min-height:32px}
  .matches-next-fixture .match-kit-secondary .match-team-kit{width:27px;height:27px}
  .matches-next-fixture .next-match-grid>div{padding:8px 9px}
  .matches-next-fixture .match-venue-card{padding:9px 10px}
  .matches-next-actions{gap:7px}
  .matches-next-actions button{min-height:44px;padding:8px}
  .synced-fixture-list{gap:9px}
  .further-fixture-card{padding:11px;border-radius:15px}
  .match-list{gap:7px}
  .match-card{padding:10px;gap:9px;border-radius:14px}
  .match-actions{gap:10px}
  #view-squad .compact-squad-banner{min-height:0;padding:10px 13px;margin-bottom:9px}
  #view-squad .squad-count strong{font-size:29px}
  #view-squad .squad-format-details{margin-bottom:9px}
  #view-squad .squad-list{gap:6px}
  #view-squad .player-card{grid-template-columns:42px minmax(0,1fr) auto;gap:9px;padding:7px 10px;min-height:58px;border-radius:13px}
  #view-squad .jersey-icon{width:42px;height:40px}
  #view-squad .jersey-icon span{font-size:15px}
  #view-squad .player-edit{min-height:44px;padding:8px 10px}
  .admin-dashboard-summary{padding:12px}
  .admin-dashboard-summary .admin-overview-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:9px 0}
  .admin-dashboard-summary .admin-stat{padding:8px;min-width:0}
  .admin-dashboard-summary .admin-stat span{font-size:10px;overflow-wrap:anywhere}
  .admin-dashboard-summary .admin-stat strong{font-size:21px}
}

/* Club Admin: readable surfaces, compact fixture rows and clear schedule summary. */
.admin-fixture-centre{padding:16px}
.admin-fixture-centre .panel-heading{margin-bottom:4px}
.admin-fixture-centre .panel-heading .muted{margin:5px 0 0}
.admin-fixture-centre .admin-filter-label{max-width:260px;margin:10px 0}
.admin-fixture-summary{margin:6px 0 9px;font-size:12px;font-weight:800;color:#385643;line-height:1.35}
.weekend-share-heading{flex-wrap:wrap;gap:12px}
.weekend-share-trigger{min-height:44px;white-space:nowrap;margin-bottom:9px}
.weekend-share-modal{width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;overflow:hidden}
.weekend-share-shell{display:flex;flex-direction:column;max-height:calc(100dvh - 26px);padding:16px;gap:12px;min-width:0}
.weekend-share-shell .modal-heading{margin:0;gap:10px}
.weekend-share-shell .modal-heading>div{min-width:0}
.weekend-share-shell h3{font-size:20px;margin:0}
.weekend-share-shell>p{margin:0;font-size:13px;line-height:1.5}
.weekend-share-days{display:flex;gap:8px;flex-wrap:wrap}
.weekend-share-team-picker{display:grid;gap:6px;font-size:14px;font-weight:600}
.weekend-share-team-picker select{width:100%;min-height:48px;font:inherit}
.weekend-infographic{display:block;width:100%;height:auto;border-radius:14px}
.weekend-share-accessible{margin-top:12px;font-size:14px}
.weekend-share-accessible pre{white-space:pre-wrap;font:inherit;overflow-wrap:anywhere}
.weekend-share-days button,.weekend-share-actions button{min-height:48px}
.weekend-share-scroll{overflow:auto;overscroll-behavior:contain;min-height:0;flex:1;scroll-behavior:smooth}
.weekend-share-scroll h4{font-size:15px;margin:0 0 10px;scroll-margin-top:8px}
.weekend-share-card{border:1px solid var(--line,#D8E0DA);border-radius:16px;padding:16px;margin:0 0 16px;background:var(--white);color:var(--ink);overflow-wrap:anywhere}
.weekend-share-card h5{font-size:16px;margin:0 0 9px;color:var(--green)}
.weekend-share-card p{font-size:14px;line-height:1.5;margin:8px 0;white-space:pre-line}
.weekend-share-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line,#D8E0DA);padding-top:12px}
.weekend-share-shell .icon-button{min-width:44px;min-height:44px;flex-shrink:0}
#admin-weekend-share-text{width:100%;box-sizing:border-box;white-space:pre-wrap;font:inherit;font-size:14px;resize:vertical;min-height:180px}
html[data-theme="dark"] .weekend-share-card{background:#18271f;color:#e9f1eb;border-color:#344e3d}
html[data-theme="dark"] .weekend-share-card h5{color:#93e0a9}
@media(max-width:420px){.weekend-share-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.weekend-share-actions .text-button{justify-self:start}.weekend-share-actions .primary-button{grid-column:1 / -1}.weekend-share-actions button{font-size:14px;padding:12px}.weekend-share-heading>div{flex-basis:100%}}
@media(max-height:520px){.weekend-share-shell{display:block;overflow:auto}.weekend-share-shell>*{margin-bottom:12px}.weekend-share-scroll{overflow:visible}.weekend-share-actions{position:sticky;bottom:0;background:var(--white);padding-bottom:8px;margin-bottom:0}}
.admin-fixture-row{padding:10px 12px;gap:9px;background:#fff;color:#14271b}
.admin-fixture-row .admin-fixture-main strong{font-size:13px;line-height:1.3}
.admin-fixture-row .admin-fixture-main span{color:#3e5145}
.admin-fixture-row .admin-fixture-main small,.admin-fixture-row .admin-fixture-date span{color:#56685c}
.admin-fixture-row .fixture-ack-pill{align-self:flex-start}
.admin-health-group,.admin-age-group,.admin-dashboard-summary .admin-stat{color:#14271b}
.admin-recent-results-panel{margin-bottom:14px}
.admin-recent-results-list{display:grid;gap:7px}
.admin-recent-result{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:9px 11px;border:1px solid #dce8df;border-radius:12px;background:#fff;color:#14271b}
.admin-recent-result>span{font-size:10px;font-weight:850;color:#385643}
.admin-recent-team{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:750;line-height:1.35}
.admin-recent-team .club-listing{min-width:0}
.admin-recent-team .club-listing-name{overflow-wrap:anywhere}
.admin-recent-score{justify-self:end;min-width:2ch;text-align:right;color:#075d31;white-space:nowrap;font-weight:850}
@media(max-width:560px){
  .admin-fixture-centre{padding:12px}
  .admin-fixture-row{grid-template-columns:74px minmax(0,1fr);gap:8px;padding:9px}
  .admin-fixture-row .fixture-source-pill{grid-column:2;justify-self:start}
  .admin-team-row{grid-template-columns:minmax(0,1fr) auto 12px}
  .admin-team-row-stats{flex-wrap:wrap;justify-content:flex-end;max-width:140px;line-height:1.2}
}
html[data-theme="dark"] .admin-fixture-centre,
html[data-theme="dark"] .admin-recent-result,
html[data-theme="dark"] .admin-health-group,
html[data-theme="dark"] .admin-age-group,
html[data-theme="dark"] .admin-dashboard-summary .admin-stat,
html[data-theme="dark"] .admin-weekend-panel,
html[data-theme="dark"] .weekend-fixture-row{
  background:#151d18!important;border-color:#344239!important;color:#f2f7f3!important;
}
html[data-theme="dark"] .admin-health-group.warn,
html[data-theme="dark"] .weekend-fixture-row.warning{background:#2b2517!important;border-color:#594b28!important}
html[data-theme="dark"] .admin-fixture-summary,
html[data-theme="dark"] .admin-fixture-row .admin-fixture-main span,
html[data-theme="dark"] .admin-fixture-row .admin-fixture-main small,
html[data-theme="dark"] .admin-fixture-row .admin-fixture-date span,
html[data-theme="dark"] .weekend-fixture-row span,
html[data-theme="dark"] .weekend-fixture-row small{color:#c0d0c3!important}
html[data-theme="dark"] .admin-fixture-centre select{background:#101713!important;color:#f2f7f3!important;border-color:#344239!important}
html[data-theme="dark"] .admin-coach-invite,
html[data-theme="dark"] .admin-team-row.active-team{background:#1c2b20!important;border-color:#344239!important;color:#f2f7f3!important}
html[data-theme="dark"] .admin-coach-invite select,
html[data-theme="dark"] .admin-invite-output input,
html[data-theme="dark"] .admin-access-filter select{background:#101713!important;color:#f2f7f3!important;border-color:#344239!important}
html[data-theme="dark"] .admin-team-row-stats b,
html[data-theme="dark"] .admin-team-row-title strong,
html[data-theme="dark"] .admin-age-group>summary strong{color:#f2f7f3!important}
html[data-theme="dark"] .admin-recent-result>span{color:#c0d0c3!important}
html[data-theme="dark"] .admin-recent-score{color:#a7eab2!important}

/* Club Admin browse and communications: short forms remain readable on phones. */
.admin-home-age-label{display:grid;gap:6px;margin:8px 0 12px;max-width:420px}
.admin-home-age-label select{width:100%;min-height:44px}
.admin-team-age-list{display:grid;gap:0;padding:6px 12px;margin:0}
.club-results-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.club-results-filters .club-results-age-label{min-width:0}
.communications-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 12px;margin-bottom:8px}
.communications-tabs button{white-space:nowrap;min-height:40px}
.communications-tabs button.active{background:#185b31;color:#fff;border-color:#185b31}
.communications-notifications-panel .notification-list{max-height:none}
html[data-theme="dark"] .admin-team-age-list{background:#151d18!important;border-color:#344239!important;color:#f2f7f3!important}
html[data-theme="dark"] .communications-tabs button.active{background:#2b8245!important;color:#fff!important;border-color:#78bd88!important}
@media(max-width:560px){.club-results-filters{grid-template-columns:1fr;gap:0}}

/* Club Admin dark mode: cover the nested controls and badges left pale by base styles. */
html[data-theme="dark"] body.admin-club-mode .admin-age-group[open]>summary,
html[data-theme="dark"] body.admin-club-mode .admin-team-row:active,
html[data-theme="dark"] body.admin-club-mode .admin-team-row.active-team,
html[data-theme="dark"] body.admin-club-mode .admin-coach-invite,
html[data-theme="dark"] body.admin-club-mode .admin-attention-row,
html[data-theme="dark"] body.admin-club-mode .admin-access-stat,
html[data-theme="dark"] body.admin-club-mode .fixture-source-pill,
html[data-theme="dark"] body.admin-club-mode .admin-management-panel[open]>summary{
  background:#1c2b20!important;border-color:#344239!important;color:#f2f7f3!important;
}
html[data-theme="dark"] body.admin-club-mode .fixture-source-pill.selkent,
html[data-theme="dark"] body.admin-club-mode .fixture-ack-pill.confirmed,
html[data-theme="dark"] body.admin-club-mode .health-team-link{
  background:#193322!important;border-color:#345e40!important;color:#a7eab2!important;
}
html[data-theme="dark"] body.admin-club-mode .admin-filter-label select,
html[data-theme="dark"] body.admin-club-mode .admin-coach-invite select,
html[data-theme="dark"] body.admin-club-mode .admin-invite-output input,
html[data-theme="dark"] body.admin-club-mode .inbox-contact-bar select,
html[data-theme="dark"] body.admin-club-mode .inbox-compose input,
html[data-theme="dark"] body.admin-club-mode .inbox-compose textarea,
html[data-theme="dark"] body.admin-club-mode .club-results-age-label select{
  background:#101713!important;border-color:#344239!important;color:#f2f7f3!important;
}
html[data-theme="dark"] body.admin-club-mode .admin-attention-row span,
html[data-theme="dark"] body.admin-club-mode .admin-age-group>summary span{color:#c0d0c3!important}

/* Specific map and edit controls otherwise retain their pale light-theme fill. */
html[data-theme="dark"] .next-fixture-modal .fixture-map-preview .map-link,
html[data-theme="dark"] .matches-next-fixture .fixture-map-preview .map-link,
html[data-theme="dark"] .fixture-edit-button{
  background:#193322!important;border-color:#345e40!important;color:#a7eab2!important;
}

/* Result cards: compact badges beside both team names. */
.club-result-score>.club-result-team{display:flex;align-items:center;gap:7px;min-width:0;text-align:left}
.club-result-score>.club-result-team.away{justify-content:flex-end;text-align:right}
.club-result-score .club-result-team-name{min-width:0;overflow-wrap:anywhere;white-space:normal;line-height:1.2;font-size:11px;font-weight:850}
.club-result-score .club-result-team.home .club-result-team-name{text-align:left}
.club-result-score .club-result-team.away .club-result-team-name{text-align:right}
.club-result-score .club-result-team .club-identity-badge{width:28px;height:28px;max-width:28px;max-height:28px;flex:0 0 28px;border-radius:6px}
@media(max-width:430px){.club-result-score{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);gap:4px}.club-result-score strong{padding:7px 3px;font-size:16px}.club-result-score>.club-result-team{gap:4px;overflow:hidden}.club-result-score .club-result-team .club-identity-badge{width:20px;height:20px;max-width:20px;max-height:20px;flex-basis:20px}}

/* Compact club identity in all named result, fixture and table rows. */
.club-listing{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;vertical-align:middle;text-align:left}
.club-listing-name{min-width:0;overflow-wrap:anywhere}
.club-listing .club-identity-badge{width:22px;height:22px;max-width:22px;max-height:22px;flex:0 0 22px;border-radius:5px}
.club-listing .club-placeholder-badge{padding:2px}
.league-table .team-cell .club-listing{min-width:120px}
.admin-fixture-main strong .club-listing,.admin-recent-result strong .club-listing,.weekend-fixture-row .club-listing{vertical-align:middle}
.admin-fixture-main small .club-listing .club-identity-badge{width:18px;height:18px;max-width:18px;max-height:18px;flex-basis:18px}
.club-detail-link .club-listing{color:inherit}
.further-fixture-card:has(.further-fixture-details[open]) .further-fixture-head .club-listing .club-identity-badge{display:none}
@media(max-width:430px){.club-listing{gap:4px}.club-listing .club-identity-badge{width:18px;height:18px;max-width:18px;max-height:18px;flex-basis:18px}}


/* Compact Club Admin fixture cards: one matchup line, details underneath. */
.admin-fixture-row{display:block;padding:9px 11px}
.admin-fixture-date{display:flex;flex-direction:row;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px}
.admin-fixture-date span{text-align:right}
.admin-fixture-main{gap:2px}
.admin-fixture-matchup{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:5px;min-width:0;width:100%;font-size:12px;font-weight:850;line-height:1.3}
.admin-fixture-matchup>.club-result-team{display:flex;align-items:center;gap:5px;min-width:0}
.admin-fixture-matchup>.club-result-team.away{justify-content:flex-end;text-align:right}
.admin-fixture-matchup .club-result-team-name{min-width:0;overflow-wrap:anywhere;line-height:1.2}
.admin-fixture-matchup .club-identity-badge{width:22px;height:22px;max-width:22px;max-height:22px;flex:0 0 22px;border-radius:5px}
.admin-fixture-matchup>b{color:#075d31}
@media(max-width:430px){.admin-fixture-matchup{gap:4px}.admin-fixture-matchup .club-identity-badge{width:18px;height:18px;max-width:18px;max-height:18px;flex-basis:18px}}
.admin-fixture-main .fixture-ack-pill{margin-top:3px}
html[data-theme="dark"] .admin-fixture-matchup>b{color:#a7eab2}

/* The approved 3500px badge has a 340px transparent inset on each side. */
img.club-logo[src="/__pilot_badges/499/66bc3e506f8e5a7e3caf252b50515ad0ef9daf08e8b96ed6b57766acd10ea0a0"],
img.club-identity-badge[src="/__pilot_badges/499/66bc3e506f8e5a7e3caf252b50515ad0ef9daf08e8b96ed6b57766acd10ea0a0"]{transform:scale(1.22);transform-origin:center}

/* Phoenix's approved round crest also sits inside a padded square image. */
img.club-logo[src="/__pilot_badges/318/53facde723259b51ef991c02e37e33b1a475dc21e2e56e489929df2f9410f77c"],
img.club-identity-badge[src="/__pilot_badges/318/53facde723259b51ef991c02e37e33b1a475dc21e2e56e489929df2f9410f77c"]{transform:scale(1.22);transform-origin:center}

/* Give verified badges readable mobile slots without cropping the crest. */
@media(max-width:430px){
  .admin-fixture-matchup .club-identity-badge,
  .club-result-score .club-result-team .club-identity-badge{
    width:26px;height:26px;max-width:26px;max-height:26px;flex:0 0 26px
  }
  .club-listing .club-identity-badge{
    width:24px;height:24px;max-width:24px;max-height:24px;flex:0 0 24px
  }
  .club-result-score>.club-result-team{overflow:visible}
}

.further-fixture-head strong{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.further-fixture-head .club-listing .club-identity-badge{display:inline-block!important;width:24px;height:24px;max-width:24px;max-height:24px;flex:0 0 24px}

.further-fixture-head strong{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.further-fixture-head .club-listing .club-identity-badge{display:inline-block!important;width:24px;height:24px;max-width:24px;max-height:24px;flex:0 0 24px}

.further-fixture-head strong{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.further-fixture-head .club-listing .club-identity-badge{display:inline-block!important;width:24px;height:24px;max-width:24px;max-height:24px;flex:0 0 24px}

.canonical-match-card-active .canonical-match-rows{display:grid;gap:10px;width:100%;text-align:left}.canonical-match-card-active .canonical-match-fixture-row{display:grid;gap:5px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.canonical-match-card-active .canonical-match-fixture-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}.canonical-match-card-active .canonical-match-team-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:9px}.canonical-match-card-active .canonical-match-team{display:flex;align-items:center;gap:8px;min-width:0}.canonical-match-card-active .canonical-match-team strong{overflow-wrap:anywhere}.canonical-match-card-active .canonical-match-team-away{justify-content:flex-end;text-align:right}.canonical-match-card-active .canonical-match-v{color:var(--muted)}.canonical-match-card-active .canonical-match-badge{display:inline-flex;width:34px;height:34px;flex:0 0 34px;align-items:center;justify-content:center}.canonical-match-card-active .canonical-match-badge .club-identity-badge{width:34px;height:34px;max-width:34px;max-height:34px;object-fit:contain}.canonical-match-card-active .next-fixture-versus,.canonical-match-card-active .match-versus{display:block}.canonical-match-card-active .canonical-match-rows + *{margin-top:0}

.canonical-v11-active .canonical-v11-rows{display:grid;gap:12px}.canonical-v11-active .canonical-v11-fixture{display:grid;gap:6px}.canonical-v11-active .canonical-v11-label{text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:var(--muted);font-weight:700}.canonical-v11-active .canonical-v11-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px}.canonical-v11-active .canonical-v11-side{display:flex;align-items:center;gap:8px;min-width:0}.canonical-v11-active .canonical-v11-side strong{overflow-wrap:anywhere}.canonical-v11-active .canonical-v11-away{justify-content:flex-end;text-align:right}.canonical-v11-active .canonical-v11-badge{width:36px;height:36px;flex:0 0 36px;display:inline-flex;align-items:center;justify-content:center}.canonical-v11-active .canonical-v11-badge img,.canonical-v11-active .canonical-v11-badge .club-identity-badge{width:36px;height:36px;max-width:36px;max-height:36px;object-fit:contain}.canonical-v11-active .canonical-v11-v{color:var(--muted)}

.canonical-v12-map-wrap{position:relative;overflow:hidden;border-radius:16px;min-height:180px}.canonical-v12-map-wrap iframe{display:block;width:100%;height:180px;border:0}.canonical-v12-map-button{position:absolute;right:12px;bottom:12px;padding:10px 14px;border-radius:12px;background:#173b25;color:#9ce2a7;font-weight:800;text-decoration:none}.canonical-v12-dashboard-rows{display:grid;gap:12px;text-align:left}

#matches-next-fixture.canonical-v14-cup-group .panel-heading h3{display:none}

/* V13 global contract: never depend on a surface-specific active-card class */
.canonical-v11-rows,.canonical-v12-dashboard-rows,.canonical-v13-rows{display:grid;gap:12px}
.canonical-v11-fixture{display:grid;gap:6px}
.canonical-v11-label{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:var(--muted);font-weight:700}
.canonical-v11-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px}
.canonical-v11-side{display:flex;align-items:center;gap:8px;min-width:0}
.canonical-v11-side strong{overflow-wrap:anywhere}
.canonical-v11-away{justify-content:flex-end;text-align:right}
.canonical-v11-v{color:var(--muted)}
.canonical-v11-badge,.canonical-v13-badge-fallback{width:36px;height:36px;min-width:36px;flex:0 0 36px;display:inline-flex;align-items:center;justify-content:center}
.canonical-v11-badge img,.canonical-v11-badge .club-identity-badge{width:36px;height:36px;max-width:36px;max-height:36px;object-fit:contain}
.canonical-v13-badge-fallback{border:1px dashed currentColor;border-radius:50%;font-size:8px;line-height:1;text-align:center;padding:3px;color:var(--muted);background:transparent}
.canonical-v12-dashboard-rows{text-align:left}


/* V15 cover-screen layout: leave room for full team-name words beside badges. */
@media(max-width:380px){
  .canonical-v11-teams,
  .canonical-v11-active .canonical-v11-teams{gap:6px;}
  .canonical-v11-side,
  .canonical-v11-active .canonical-v11-side{gap:4px;}
  .canonical-v11-side strong,
  .canonical-v11-active .canonical-v11-side strong{
    min-width:0;font-size:clamp(13px,4vw,14px);line-height:1.35;word-break:normal;overflow-wrap:anywhere;
  }
  .canonical-v11-badge,
  .canonical-v13-badge-fallback,
  .canonical-v11-active .canonical-v11-badge{
    width:30px;height:30px;min-width:30px;flex:0 0 30px;
  }
  .canonical-v11-badge img,
  .canonical-v11-badge .club-identity-badge,
  .canonical-v11-active .canonical-v11-badge img,
  .canonical-v11-active .canonical-v11-badge .club-identity-badge{
    width:30px;height:30px;max-width:30px;max-height:30px;object-fit:contain;
  }
  #matches-next-fixture.canonical-v11-active .next-fixture-versus,
  #next-fixture-dialog.canonical-v11-active .next-fixture-versus{padding:4px;}
}

/* V15 Cup result chooser: one compact row and action per game, with reachable scrolling. */
#cup-group-result-dialog .cup-result-shell{display:grid;grid-template-rows:auto minmax(0,1fr);max-height:inherit;overflow:hidden;}
#cup-group-result-dialog .cup-result-heading{padding:16px;border-bottom:1px solid var(--line,#D8E0DA);}
#cup-group-result-dialog .cup-result-heading h3{font-size:17px;min-width:0;flex:1;line-height:1.3;}
#cup-group-result-dialog .cup-result-heading button{width:auto;min-width:0;min-height:44px;flex:0 0 auto;}
#cup-group-result-dialog .cup-result-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px;display:grid;gap:14px;}
#cup-group-result-dialog .cup-result-body p{margin:0;overflow-wrap:anywhere;}
#cup-group-result-dialog .cup-result-games{display:grid;gap:12px;min-width:0;}
@media(max-width:380px){
  #cup-group-result-dialog .cup-result-body{padding:12px;}
  #cup-group-result-dialog .further-fixture-card{padding:8px;}
}
@media(max-width:430px){
  #cup-group-result-dialog .canonical-v11-side{flex-direction:column;align-items:flex-start;}
  #cup-group-result-dialog .canonical-v11-away{flex-direction:column-reverse;align-items:flex-end;}
}

/* V15 parent Cup rows: the Schedule and confirmed Home cards use legacy canonical markup. */
body.role-parent .cup-group-fixture-lines{display:grid;gap:12px;min-width:0;text-align:left;}
body.role-parent .cup-group-fixture-lines .canonical-match-fixture-row{display:grid;gap:6px;min-width:0;}
body.role-parent .cup-group-fixture-lines .canonical-match-fixture-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;}
body.role-parent .cup-group-fixture-lines .canonical-match-team-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;}
body.role-parent .cup-group-fixture-lines .canonical-match-team{display:flex;align-items:center;gap:6px;min-width:0;}
body.role-parent .cup-group-fixture-lines .canonical-match-team strong{min-width:0;font-size:15px;line-height:1.35;word-break:normal;overflow-wrap:anywhere;color:var(--ink);}
body.role-parent .cup-group-fixture-lines .canonical-match-team-away{justify-content:flex-end;text-align:right;}
body.role-parent .cup-group-fixture-lines .canonical-match-v{color:var(--muted);}
body.role-parent .cup-group-fixture-lines .canonical-match-badge{display:inline-flex;width:36px;height:36px;min-width:36px;flex:0 0 36px;align-items:center;justify-content:center;}
body.role-parent .cup-group-fixture-lines .canonical-match-badge img{width:36px;height:36px;max-width:36px;max-height:36px;object-fit:contain;}
@media(max-width:430px){
  body.role-parent .cup-group-fixture-lines .canonical-match-team{flex-direction:column;align-items:flex-start;}
  body.role-parent .cup-group-fixture-lines .canonical-match-team-away{flex-direction:column-reverse;align-items:flex-end;}
}
@media(max-width:380px){
  body.role-parent .cup-group-fixture-lines .canonical-match-team-row{gap:6px;}
  body.role-parent .cup-group-fixture-lines .canonical-match-team strong{font-size:clamp(13px,4vw,14px);}
  body.role-parent .cup-group-fixture-lines .canonical-match-badge{width:30px;height:30px;min-width:30px;flex:0 0 30px;}
  body.role-parent .cup-group-fixture-lines .canonical-match-badge img{width:30px;height:30px;max-width:30px;max-height:30px;}
}

/* V14.1 — canonical Dashboard host uses the same full-width row geometry as other match surfaces */
#next-match-home-teams.canonical-v14-dashboard-host{display:block;width:100%;min-width:0;}
#next-match-home-teams.canonical-v14-dashboard-host .canonical-v13-rows,
#next-match-home-teams.canonical-v14-dashboard-host .canonical-v11-fixture,
#next-match-home-teams.canonical-v14-dashboard-host .canonical-v11-teams{width:100%;min-width:0;}

/* One familiar share control on both staff match surfaces. */
#matches-next-share,#next-match-share{
  display:inline-grid;place-items:center;width:48px;height:48px;min-width:48px;min-height:48px;
  padding:10px;flex:0 0 48px;border-radius:14px;justify-self:end;
}
#matches-next-share svg,#next-match-share svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.matches-next-actions{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr) minmax(0,1fr)}
.next-fixture-action-bar{display:flex;flex-wrap:wrap;align-items:center}
.next-fixture-action-bar #fixture-confirm-details,.next-fixture-action-bar #next-match-copy{flex:1 1 180px}
@media(max-width:560px){.matches-next-actions{grid-template-columns:minmax(0,1fr) 48px}}

/* Monogram artwork includes its own inset and dashed placeholder ring. */
.club-placeholder-badge[data-logo-status="placeholder_monogram"]{padding:0;background:transparent;border:0;border-radius:50%}

/* Condensed cup table (Mike, 10 Oct 2026) */
.competition-games-table{min-width:0}.competition-games-table th,.competition-games-table td{padding:6px 7px;font-size:11px}.competition-games-table .cup-round{display:block;font-size:9.5px;color:var(--muted);font-weight:600}.competition-games-table .competition-result-pill{min-width:44px;padding:3px 7px}.competition-games-panel[hidden]{display:none}
.cup-progress{padding:8px 11px 10px;border-top:1px solid #1e2a22;display:grid;gap:6px}.cup-through{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}.cup-through input{width:18px;height:18px}.cup-progress-note{color:var(--muted);font-size:10px}

.coach-requests .team-member-copy{display:grid;gap:2px;min-width:0}.coach-requests .team-member-copy span{display:block;overflow-wrap:anywhere}.coach-requests{margin:12px 0}

/* Mode distinction: Club Admin (navy) vs Coach (green) */
.mode-pill{display:inline-block;margin:0 0 6px;padding:4px 10px;border-radius:999px;font-size:10.5px;font-weight:900;letter-spacing:.9px;text-transform:uppercase;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);color:#fff}
.mode-pill[data-mode="club"]{background:#145f19;color:#fff;border-color:#145f19}
.mode-pill[data-mode="preview"]{background:rgba(255,255,255,.1);border-style:dashed}
.mode-pill[data-mode="parent"]{background:#7a4a00;color:#fff;border-color:#7a4a00}
.club-matches-switch{display:flex;gap:4px;padding:4px;margin:0 0 14px;background:#eef2ef;border-radius:14px;border:1px solid #d8dfda}
.club-matches-switch button{flex:1;border:0;background:none;border-radius:10px;padding:10px 12px;font-weight:850;font-size:14px;color:#51615a}
.club-matches-switch button.active{background:#fff;color:var(--green-2);box-shadow:0 2px 8px rgba(9,45,27,.12)}
.club-matches-switch.hidden{display:none!important}

/* Club Admin hero: white, fading through green into the pitch photo */
body.admin-club-mode .hero{background:#fff!important;box-shadow:0 6px 22px rgba(10,40,20,.14)}
body.admin-club-mode .hero-art{width:56%!important}
body.admin-club-mode .hero::before{width:56%!important;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.95) 12%,rgba(255,255,255,.6) 40%,rgba(255,255,255,.18) 72%,rgba(255,255,255,0) 100%)!important}
body.admin-club-mode .hero-copy{max-width:50%}
body.admin-club-mode .hero-copy h1{color:#0d2a15}
body.admin-club-mode .hero-copy .eyebrow{color:#2a6b30}
body.admin-club-mode .hero-copy .season-line{color:#33473a}
body.admin-club-mode .club-logo-wrap{border:1px solid #d6e2d8;box-shadow:0 4px 12px rgba(10,40,20,.12)}
@media(max-width:520px){
  body.admin-club-mode .hero-art,body.admin-club-mode .hero::before{width:46%!important}
  body.admin-club-mode .hero-copy{max-width:52%}
  body.admin-club-mode .mode-pill{margin-bottom:3px;padding:3px 9px;font-size:10px}
  body.admin-club-mode .hero-copy h1{font-size:clamp(20px,5.4vw,26px)!important}
  body.admin-club-mode .hero-copy .season-line{font-size:11.5px;white-space:nowrap}
  body.admin-club-mode .hero-copy .eyebrow{font-size:10px}
}

.admin-assign-team{margin:14px 0 18px;padding:14px;border:1px solid #dfe7e1;border-radius:16px;background:#f7faf8}
.admin-assign-team h3{margin:0}.admin-assign-team .muted{margin:6px 0 12px;font-size:13px}
.admin-assign-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
@media(max-width:520px){.admin-assign-row{grid-template-columns:1fr}}
html[data-theme="dark"] .admin-assign-team{background:#18211b;border-color:#2c3a31}
