/*
 * PitchKind — governing app-wide UI system
 * Revision: approved-app-ui-2026-09-21-v1.4-pitchkind
 * Authority: shared Drive canonical APP-UI-DESIGN-GUIDELINES.md (bundled dated snapshot under design_reference/)
 * No deviations without explicit approval recorded per project protocol.
 */
:root{
  --gch-green-950:#064526;
  --gch-green-900:#0B5D35;
  --gch-green-800:#0D6A3A;
  --gch-green-700:#0F7B42;
  --gch-green-600:#168848;
  --gch-green-500:#29A64D;
  --gch-soft-green:#EEF6F1;
  --gch-info-green:#E8F7ED;
  --gch-canvas:#F3F6F4;
  --gch-white:#FFFFFF;
  --gch-ink:#111715;
  --gch-copy:#4F5F55;
  --gch-muted:#66756D;
  --gch-line:#D8E0DA;
  --gch-error:#A52626;
  --gch-error-bg:#FFF0F0;
  --gch-radius-field:12px;
  --gch-radius-button:12px;
  --gch-radius-card:18px;
  --gch-shadow-card:0 7px 24px rgba(10,75,42,.07);
  --gch-shadow-action:0 8px 18px rgba(11,93,53,.18);
  --gch-content-max:900px;
  --gch-font:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;

  /* Map legacy tokens to the governing system so older screens inherit it. */
  --green:var(--gch-green-600);
  --green-2:var(--gch-green-900);
  --green-3:var(--gch-soft-green);
  --ink:var(--gch-ink);
  --muted:var(--gch-muted);
  --bg:var(--gch-canvas);
  --white:var(--gch-white);
  --radius:var(--gch-radius-card);

  --auth-green-950:var(--gch-green-950);
  --auth-green-900:var(--gch-green-900);
  --auth-green-800:var(--gch-green-800);
  --auth-green-700:var(--gch-green-700);
  --auth-green-600:var(--gch-green-600);
  --auth-green-500:var(--gch-green-500);
  --auth-ink:var(--gch-ink);
  --auth-copy:var(--gch-copy);
  --auth-muted:var(--gch-muted);
  --auth-line:var(--gch-line);
  --auth-soft:var(--gch-soft-green);
  --auth-canvas:var(--gch-canvas);
  --auth-radius-field:var(--gch-radius-field);
  --auth-radius-button:var(--gch-radius-button);
  --auth-font:var(--gch-font);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--gch-canvas)}
html,body{max-width:100%;overflow-x:hidden}
body{background:var(--gch-canvas);color:var(--gch-ink);font-family:var(--gch-font);line-height:1.45}
button,input,select,textarea{font-family:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button,.nav-item,.top-nav-tab,.hero-profile-button{min-height:44px}
img{max-width:100%}

/* ---------- Global authenticated shell ---------- */
.app-shell{width:100%;max-width:960px;min-height:100dvh;margin:0 auto;background:var(--gch-canvas)}
.hero{
  min-height:clamp(150px,24vw,220px);
  padding:calc(18px + var(--android-inset-top,0px)) clamp(16px,4vw,28px) 20px;
  color:#fff;
  background:var(--gch-green-950);
  border-radius:0 0 24px 24px;
  box-shadow:0 10px 28px rgba(7,65,35,.16);
}
/* Show the scene as a real image beneath a contrast fade, beyond the text area. */
.hero-art{
  position:absolute;
  inset:0 0 0 auto;
  display:block;
  width:60%;
  max-width:none;
  height:100%;
  object-fit:cover;
  object-position:center 54%;
  pointer-events:none;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0 0 0 auto;
  width:60%;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,var(--gch-green-950) 0%,rgba(6,69,38,.86) 22%,rgba(6,69,38,.25) 62%,rgba(6,69,38,.08) 100%);
}
.hero-pattern{display:none!important}
.hero-inner{z-index:2;grid-template-columns:clamp(64px,12vw,88px) minmax(0,1fr);gap:14px;align-items:center}
.club-logo-wrap{width:clamp(64px,12vw,88px);height:clamp(64px,12vw,88px);border-radius:18px;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.65);box-shadow:0 8px 20px rgba(0,0,0,.14)}
.club-logo{width:90%;height:90%;border-radius:0;filter:none}
.hero-copy{min-width:0}
.hero-copy h1{font-size:clamp(27px,6vw,38px);line-height:1.02;letter-spacing:-.03em;overflow-wrap:anywhere}
.eyebrow{color:#e6f4eb;font-size:clamp(10px,2.4vw,12px)}
.season-line{font-size:clamp(12px,2.8vw,14px)}
.hero-profile-actions{max-width:52%;flex-wrap:wrap;justify-content:flex-end}
.hero-profile-button,.hero-notification-button{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}

@media(max-width:680px){
  .hero{padding-top:calc(14px + var(--android-inset-top,0px));padding-bottom:104px}
  .hero-art{inset:auto 0 0;width:100%;height:96px;object-position:center 68%}
  .hero::before{
    inset:auto 0 0;
    width:100%;
    height:96px;
    background:linear-gradient(180deg,var(--gch-green-950) 0%,rgba(6,69,38,.7) 24%,rgba(6,69,38,.06) 70%);
  }
}

.top-nav-tabs{
  position:sticky;top:0;z-index:30;
  display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;
  padding:8px max(10px,env(safe-area-inset-left)) 8px max(10px,env(safe-area-inset-right));
  background:rgba(255,255,255,.97);border-bottom:1px solid var(--gch-line);
  box-shadow:0 3px 14px rgba(8,68,37,.05);
}
.top-nav-tabs::-webkit-scrollbar{display:none}
.top-nav-tab{flex:0 0 auto;border-radius:10px;padding:9px 12px;color:var(--gch-muted);font-size:12px;font-weight:800}
.top-nav-tab.active{background:var(--gch-soft-green);color:var(--gch-green-800)}

.content{width:100%;max-width:var(--gch-content-max);margin:0 auto;padding:clamp(16px,3vw,24px) clamp(14px,3.2vw,24px) calc(112px + var(--android-inset-bottom,0px) + env(safe-area-inset-bottom))}
.section-title-row{align-items:center;margin-bottom:16px}
.section-title-row h2{font-size:clamp(24px,5vw,32px);line-height:1.08;letter-spacing:-.025em}
.kicker{color:var(--gch-green-700);font-size:11px;letter-spacing:.08em}

.panel,.match-card,.record-card,.club-result-row,.admin-team-card,.team-member-row,.read-only-card{
  border-radius:var(--gch-radius-card);
  border-color:var(--gch-line);
  box-shadow:var(--gch-shadow-card);
}
.panel{padding:clamp(14px,3vw,18px);background:var(--gch-white)}
.panel h3{font-size:clamp(16px,3.6vw,19px)}

/* Replace the old dark novelty dashboard panel with the common card family. */
.knight-panel{background:linear-gradient(145deg,#f7fbf8,#e9f5ed)!important;color:var(--gch-ink)!important;border-color:#d8e7dc!important}
.knight-panel::after{display:none!important}
.record-label,.record-split span,.record-footer{color:var(--gch-muted)!important}
.record-split div{background:#fff!important;border-color:#dbe6de!important}
.record-footer{border-top-color:#dbe6de!important}
.record-footer b,.record-number,.record-split strong{color:var(--gch-green-900)!important}

.primary-button,.auth-primary,.onboard-next,.badge-picker-button{
  min-height:48px;border-radius:var(--gch-radius-button)!important;
  background:linear-gradient(180deg,#188b49 0%,#0d713a 100%)!important;
  color:#fff!important;box-shadow:var(--gch-shadow-action)!important;font-weight:850!important;
}
.secondary-button,.auth-secondary{
  min-height:46px;border-radius:var(--gch-radius-button)!important;background:#fff!important;
  border:1.5px solid var(--gch-green-700)!important;color:var(--gch-green-900)!important;font-weight:800!important;
}
.danger-button{min-height:44px;border-radius:var(--gch-radius-button)}
.text-button,.inline-action,.map-link{color:var(--gch-green-700)!important}

input:where(:not([type="checkbox"],[type="radio"],[type="hidden"],[type="color"],[type="range"],[type="file"])),select,textarea,.auth-field{
  min-height:48px;border-radius:var(--gch-radius-field)!important;border-color:var(--gch-line)!important;background:#fff!important;color:var(--gch-ink)!important;
}
textarea{min-height:96px}
input:focus,select:focus,textarea:focus,.auth-field:focus-within{border-color:var(--gch-green-600)!important;box-shadow:0 0 0 3px rgba(22,136,72,.12)!important}
label{line-height:1.35}

/* Lists and text must wrap instead of being squeezed/truncated. */
.match-opponent,.mini-team,.rank-name,.team-member-copy strong,.club-result-score span,.panel p,.helper,.muted{overflow-wrap:anywhere}
.team-member-copy strong{white-space:normal}

/* League tables already scroll in .league-table-scroll; keep their table layout. */
.table-wrap,.division-table,.responsive-table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-wrap table,.division-table table,.responsive-table table{min-width:620px}

/* Navigation remains readable; do not shrink to fit excessive destinations. */
.bottom-nav{
  left:50%;transform:translateX(-50%);width:min(960px,100%);
  padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));
  background:rgba(255,255,255,.98);border-top:1px solid var(--gch-line);box-shadow:0 -7px 24px rgba(6,62,34,.08)
}
.bottom-nav .nav-item{min-width:56px;min-height:52px;color:var(--gch-muted);font-size:11px;line-height:1.15}
.bottom-nav .nav-item.active{color:var(--gch-green-800)}

/* ---------- Authentication — v1.1 responsive + imagery correction ---------- */
body.auth-open{
  overflow:auto!important;
  background:var(--gch-canvas)!important;
}
body.auth-open #activation-gate{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  align-items:flex-start!important;
  justify-content:center!important;
  background:var(--gch-canvas)!important;
  -webkit-overflow-scrolling:touch;
  padding:0!important;
}
.auth-showcase{
  width:min(520px,100%)!important;
  min-height:100dvh!important;
  height:auto!important;
  margin:0 auto!important;
  padding-top:0!important;
  overflow:visible!important;
  background:#fff!important;
  box-shadow:0 0 46px rgba(22,64,37,.10)!important;
}
/* Safe-area inset is applied exactly once, here. Native code converts physical px to CSS px. */
.auth-brand{
  min-height:78px!important;
  padding:calc(10px + var(--android-inset-top,0px)) 20px 10px!important;
  background:#fff!important;
}
.auth-brand img{width:50px!important;height:56px!important}
.auth-brand-copy strong{font-size:24px!important;line-height:.98!important}
.auth-brand-copy small{font-size:7px!important;margin-top:6px!important}
.auth-back{
  top:calc(8px + var(--android-inset-top,0px))!important;
  left:10px!important;
}
.auth-scene{
  position:relative!important;
  width:100%!important;
  height:clamp(168px,42vw,220px)!important;
  flex:0 0 auto!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
  background-position:center 50%!important;
  overflow:hidden!important;
}
.auth-adult .auth-scene,
.auth-player .auth-scene,
.auth-club .auth-scene{
  background-image:url('football-login-adult.jpg')!important;
}
.auth-player .auth-scene{background-position:center 48%!important}
.auth-club .auth-scene{background-position:center 46%!important}
.auth-scene:after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:linear-gradient(to bottom,rgba(0,0,0,0) 0%,rgba(0,0,0,.02) 72%,rgba(255,255,255,.10) 100%)!important;
  pointer-events:none!important;
}
/* The approved generated hero already contains the handwritten brand accent. Never duplicate it in DOM/CSS. */
.auth-scene-note{display:none!important}
.auth-main{
  margin-top:0!important;
  padding:18px clamp(18px,5vw,26px) 26px!important;
  background:#fff!important;
}
.auth-main h1,.auth-simple-card h1{
  font-size:clamp(29px,7.2vw,36px)!important;
  line-height:1.04!important;
  margin:0!important;
}
.auth-lead{
  font-size:clamp(14px,3.4vw,16px)!important;
  line-height:1.45!important;
  margin:9px auto 20px!important;
}
.auth-fields{gap:11px!important}
.auth-field{min-height:56px!important;border-radius:12px!important}
.auth-field input,.auth-field select{
  height:54px!important;
  font-size:15px!important;
}
.auth-eye{height:52px!important}
.auth-forgot{font-size:13px!important;margin:9px 0 18px auto!important}
.auth-primary,.auth-secondary{
  min-height:56px!important;
  border-radius:12px!important;
  font-size:16px!important;
}
.auth-caption{font-size:12px!important;line-height:1.5!important}
.auth-divider{margin:20px 4px 14px!important}
/* No second decorative/photographic strip beneath the form. It was visually noisy and could expose low-res imagery. */
.auth-grass-footer{
  margin-top:auto!important;
  min-height:52px!important;
  padding:14px 16px calc(14px + var(--android-inset-bottom,0px) + env(safe-area-inset-bottom))!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:var(--gch-green-900)!important;
  background:linear-gradient(180deg,#f7fbf8 0%,var(--gch-soft-green) 100%)!important;
  border-top:1px solid #dce8df!important;
}
.auth-grass-footer:before,.auth-grass-footer:after{display:none!important}
.auth-grass-footer span{
  color:var(--gch-green-900)!important;
  font-size:9px!important;
  letter-spacing:.18em!important;
  line-height:1.35!important;
}

/* Small/short phones scroll naturally; controls never shrink below the minimum touch size. */
@media(max-width:374px){
  .auth-brand{padding-left:14px!important;padding-right:14px!important}
  .auth-brand img{width:46px!important;height:52px!important}
  .auth-brand-copy strong{font-size:22px!important}
  .auth-brand-copy small{font-size:6.5px!important;white-space:normal!important;line-height:1.25!important}
  .auth-scene{height:164px!important}
  .auth-main{padding:16px 16px 22px!important}
  .auth-main h1{font-size:28px!important}
}
@media(max-height:730px){
  .auth-showcase{min-height:100dvh!important}
  .auth-scene{height:160px!important}
  .auth-main{padding-top:15px!important}
  .auth-field{min-height:54px!important}
  .auth-field input,.auth-field select{height:52px!important}
  .auth-primary,.auth-secondary{min-height:54px!important}
}

/* Foldables / small tablets: keep the stack but allow more breathing room. */
@media(min-width:600px) and (max-width:899px) and (orientation:portrait){
  body.auth-open #activation-gate{padding:16px 0!important}
  .auth-showcase{
    width:min(620px,calc(100% - 32px))!important;
    min-height:calc(100dvh - 32px)!important;
    border-radius:22px!important;
    overflow:hidden!important;
  }
  .auth-scene{height:250px!important}
  .auth-main{padding:24px 34px 30px!important}
}

/* Large tablets / web: use a deliberate two-panel composition rather than stretching a phone layout. */
@media(min-width:900px){
  body.auth-open #activation-gate{padding:20px!important;align-items:center!important}
  .auth-showcase{
    width:min(980px,calc(100vw - 40px))!important;
    min-height:min(760px,calc(100dvh - 40px))!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr)!important;
    grid-template-rows:auto 1fr auto!important;
    border-radius:24px!important;
    overflow:hidden!important;
  }
  .auth-brand{grid-column:1/-1!important;grid-row:1!important}
  .auth-scene{
    grid-column:1!important;
    grid-row:2!important;
    width:100%!important;
    height:100%!important;
    min-height:560px!important;
  }
  .auth-main{
    grid-column:2!important;
    grid-row:2!important;
    margin:0!important;
    padding:36px 40px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }
  .auth-grass-footer{grid-column:1/-1!important;grid-row:3!important}
}

/* Landscape phones: preserve readable controls using the same split strategy when height is scarce. */
@media(orientation:landscape) and (min-width:600px) and (max-height:620px){
  body.auth-open #activation-gate{padding:0!important;display:flex!important}
  .auth-showcase{
    width:100%!important;
    max-width:none!important;
    min-height:100dvh!important;
    display:grid!important;
    grid-template-columns:minmax(280px,.92fr) minmax(360px,1.08fr)!important;
    grid-template-rows:auto 1fr!important;
    border-radius:0!important;
    overflow:visible!important;
  }
  .auth-brand{grid-column:1/-1!important;grid-row:1!important;min-height:68px!important;padding-top:calc(6px + var(--android-inset-top,0px))!important;padding-bottom:6px!important}
  .auth-scene{grid-column:1!important;grid-row:2!important;height:100%!important;min-height:330px!important}
  .auth-main{grid-column:2!important;grid-row:2!important;padding:18px 28px 24px!important;justify-content:flex-start!important}
  .auth-grass-footer{display:none!important}
}

/* ---------- Onboarding ---------- */
.universal-onboarding{background:var(--gch-canvas)!important;color:var(--gch-ink)!important}
.onboard-shell{max-width:960px!important;background:#fff!important;border-color:var(--gch-line)!important;border-radius:22px!important}
.onboard-main{background:#fff!important}
.onboard-card{border-radius:var(--gch-radius-card)!important;background:#fbfdfb!important;border-color:#dce7df!important}
.onboard-heading h1{font-size:clamp(28px,6vw,38px)!important;line-height:1.08!important}
.setup-choice,.provider-option,.provider-route-step,.provider-result,.team-row,.onboard-rule-card{border-radius:14px!important}

/* ---------- Responsive structure ---------- */
@media(max-width:899px){
  .app-shell{max-width:100%}
  .content{max-width:760px}
}

@media(max-width:680px){
  .record-card{grid-template-columns:1fr!important;gap:14px!important}
  .record-footer{grid-column:auto!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .running-count-grid,.form-grid.two,.next-match-grid,.filter-bar,.score-entry,.dashboard-grid{grid-template-columns:1fr!important}
  .match-card{grid-template-columns:auto minmax(0,1fr)!important}
  .match-score{grid-column:2!important;text-align:left!important}
  .match-actions{grid-column:1/-1!important;justify-content:flex-start!important;flex-wrap:wrap!important}
  .scorer-grid{grid-template-columns:1fr!important}
  .hero-profile-actions{position:static!important;max-width:none!important;margin-top:8px!important;justify-content:flex-start!important}
  body.admin-club-mode .hero-copy,body.admin-coach-mode .hero-copy,body.admin-preview-mode .hero-copy{padding-right:0!important}
}

@media(max-width:520px){
  .content{padding-left:14px;padding-right:14px}
  .hero{padding-left:14px;padding-right:14px;padding-top:calc(14px + var(--android-inset-top,0px));border-radius:0 0 20px 20px}
  .hero-inner{grid-template-columns:64px minmax(0,1fr)}
  .club-logo-wrap{width:64px;height:64px;border-radius:14px}
  .top-nav-tab{padding:8px 10px}
  .panel,.match-card,.record-card{border-radius:16px}
  .form-row,.fixture-ack-actions,.next-match-links,.team-member-actions{flex-wrap:wrap}
  .form-row>*{flex:1 1 100%}
}

@media(max-width:374px){
  .content{padding-left:12px;padding-right:12px}
  .auth-main{padding-left:16px!important;padding-right:16px!important}
  .auth-brand-copy strong{font-size:22px!important}
  .auth-brand-copy small{white-space:normal!important;line-height:1.25!important}
  .auth-scene-note{right:16px!important;font-size:17px!important}
  .bottom-nav{overflow-x:auto;justify-content:flex-start}
  .bottom-nav .nav-item{flex:0 0 64px!important}
}

@media(min-width:600px){
  .content{padding-left:24px;padding-right:24px}
  .running-count-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .onboard-grid{gap:16px}
}

@media(min-width:900px){
  .content{padding-left:30px;padding-right:30px}
  .hero{border-radius:0 0 28px 28px}
  .form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Landscape: keep readable sizes and allow scroll rather than squeeze. */
@media(orientation:landscape) and (max-height:560px){
  .hero{min-height:132px}
  .auth-showcase{min-height:auto!important}
  .auth-scene{height:150px!important}
  body.auth-open #activation-gate{display:block!important}
}


/* ---------- v1.1 app-wide responsive integrity ---------- */
.app-shell,.content,.panel,.match-card,.record-card,.admin-team-card,.team-member-row,.onboard-shell,.onboard-card{min-width:0}
.content>*{max-width:100%;min-width:0}
input,select,textarea,button{max-width:100%}
svg,canvas,video{max-width:100%}
.hero-copy,.team-member-copy,.match-main,.panel,.form-grid>*{min-width:0}

/* Independent card grids expand and collapse instead of becoming cramped. */
@media(min-width:681px){
  .dashboard-grid,.running-count-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important}
}
@media(max-width:360px){
  .content{padding-left:12px!important;padding-right:12px!important}
  .hero{padding-left:12px!important;padding-right:12px!important}
  .primary-button,.secondary-button,.danger-button{width:100%}
  .section-title-row{gap:8px;flex-wrap:wrap}
}

/* No content-bearing fixed-height region may hide overflow. */
.panel,.record-card,.match-card,.admin-team-card,.team-member-row{height:auto!important}

/* Android/foldable safe areas: values are already normalized to CSS px by MainActivity. */
:root{
  --gch-safe-top:var(--android-inset-top,0px);
  --gch-safe-bottom:var(--android-inset-bottom,0px);
}


/* v1.4 PitchKind visual-identity integration */
.auth-brand{justify-content:center!important;min-height:96px!important;padding:calc(10px + var(--android-inset-top,0px)) 18px 8px!important}
.auth-brand .auth-brand-lockup,.auth-brand>img{width:min(370px,86vw)!important;height:auto!important;max-height:96px!important;object-fit:contain!important;flex:0 1 auto!important}
.auth-brand-copy{display:none!important}
.club-logo-wrap.platform-club-placeholder .club-logo{width:82%!important;height:82%!important;object-fit:contain!important}
.gch-about-card{overflow:hidden!important;padding:0!important;background:#fff!important}
.gch-about-banner{display:block;width:min(320px,82%);height:auto;max-height:180px;object-fit:contain;background:var(--gch-white);margin:16px auto 0}
.gch-about-copy{display:grid;gap:4px;padding:14px 16px 16px}
.gch-about-copy strong{color:var(--gch-green-900);font-size:17px;font-weight:900}
.gch-about-copy span{color:var(--gch-green-700);font-size:10px;font-weight:900;letter-spacing:.12em}
.gch-about-copy small{color:var(--gch-muted);font-size:12px;font-weight:650}
@media(max-width:374px){.auth-brand{min-height:88px!important}.auth-brand .auth-brand-lockup,.auth-brand>img{width:min(330px,88vw)!important;max-height:84px!important}}
@media(min-width:600px){.auth-brand .auth-brand-lockup,.auth-brand>img{width:min(410px,70vw)!important}}

/* Verified club badges retain their original outline in the hero. The image
   itself fits the slot; no circular frame may cut off a shield or wordmark.
   Keep the neutral tile only for the PitchKind missing-badge placeholder. */
.club-logo-wrap:not(.platform-club-placeholder){
  border-radius:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.club-logo-wrap:not(.platform-club-placeholder) .club-logo{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  border-radius:0!important;
  clip-path:none!important;
  filter:drop-shadow(0 5px 10px rgba(0,0,0,.24))!important;
}
.club-logo-wrap.platform-club-placeholder{
  border-radius:18px!important;
  background:rgba(255,255,255,.96)!important;
  border:1px solid rgba(255,255,255,.65)!important;
  box-shadow:0 8px 20px rgba(0,0,0,.14)!important;
  overflow:hidden!important;
}
.club-logo-wrap.platform-club-placeholder .club-logo{
  width:82%!important;
  height:82%!important;
  object-fit:contain!important;
  border-radius:0!important;
  clip-path:none!important;
  filter:none!important;
}
/* Compact primary navigation on phones, including unfolded foldable displays. */
.mobile-nav-sprite,.mobile-primary-nav,.mobile-more-scrim,.mobile-more-sheet{display:none}
@media(max-width:900px){
  #top-nav-tabs{display:none!important}
  .mobile-nav-sprite{position:absolute;width:0;height:0;overflow:hidden}
  .mobile-primary-nav{
    position:fixed;left:0;bottom:0;z-index:54;display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));width:100%;
    min-height:calc(64px + max(var(--android-inset-bottom,0px),env(safe-area-inset-bottom)));
    padding:4px max(8px,env(safe-area-inset-right)) max(4px,var(--android-inset-bottom,0px),env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
    background:var(--gch-white);border-top:1px solid var(--gch-line);
    box-shadow:0 -4px 16px rgba(6,69,38,.08);
  }
  .mobile-primary-nav.has-table-tab{grid-template-columns:repeat(5,minmax(0,1fr))}
  .mobile-primary-item{
    min-width:0;min-height:56px;border:0;border-radius:12px;background:transparent;
    color:var(--gch-muted);font-size:12px;font-weight:800;line-height:1.2;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  }
  .mobile-primary-item[hidden]{display:none!important}
  .mobile-primary-item[aria-current="page"]{color:var(--gch-green-950);background:var(--gch-soft-green)}
  .mobile-primary-item svg,.mobile-more-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .mobile-primary-item:focus-visible,.mobile-more-link:focus-visible,.mobile-more-close:focus-visible{outline:2px solid var(--gch-green-700);outline-offset:-2px}
  .content{padding-bottom:calc(94px + max(var(--android-inset-bottom,0px),env(safe-area-inset-bottom)))!important}
  .mobile-more-scrim:not([hidden]){display:block;position:fixed;inset:0;z-index:52;width:100%;border:0;background:rgba(17,23,21,.58)}
  .mobile-more-sheet:not([hidden]){
    display:block;position:fixed;left:0;bottom:calc(64px + max(var(--android-inset-bottom,0px),env(safe-area-inset-bottom)));
    z-index:53;width:100%;max-height:calc(100dvh - 100px - max(var(--android-inset-bottom,0px),env(safe-area-inset-bottom)));
    overflow-y:auto;padding:10px 16px 16px;border-radius:18px 18px 0 0;
    background:var(--gch-white);color:var(--gch-ink);box-shadow:0 -8px 24px rgba(17,23,21,.16);
  }
  .mobile-more-heading{display:flex;align-items:center;justify-content:space-between;min-height:48px}
  .mobile-more-heading h2{margin:0;font-size:20px;color:inherit}
  .mobile-more-close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:var(--gch-copy)}
  .mobile-more-link{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:8px 12px;border:0;border-radius:12px;background:transparent;color:var(--gch-ink);font-size:15px;font-weight:750;text-align:left}
  .mobile-more-link[hidden]{display:none!important}
  .mobile-more-link:active,.mobile-more-close:active{background:var(--gch-soft-green)}
  .mobile-more-account{border-top:1px solid var(--gch-line);margin-top:8px;padding-top:8px}
  .mobile-more-account:has(.mobile-more-link:not(.hidden)){display:block}
  .mobile-more-account:not(:has(.mobile-more-link:not(.hidden))){display:none}
  .mobile-more-account .notification-badge{position:static;margin-left:auto;line-height:18px;border:0}
  body .app-utility-bar{display:none!important}
  body.mobile-more-open{overflow:hidden}
  body.splash-active .mobile-primary-nav,body:has(dialog[open]) .mobile-primary-nav{display:none}
}
html[data-theme="dark"] .mobile-primary-nav,html[data-theme="dark"] .mobile-more-sheet{background:#151d18;color:#f2f7f3;border-color:#35443a}
html[data-theme="dark"] .mobile-primary-item,html[data-theme="dark"] .mobile-more-close{color:#c0d0c3}
html[data-theme="dark"] .mobile-primary-item[aria-current="page"]{color:#f2f7f3;background:#203027}
html[data-theme="dark"] .mobile-more-link{color:#f2f7f3}
html[data-theme="dark"] .mobile-more-link:active,html[data-theme="dark"] .mobile-more-close:active{background:#203027}
html[data-theme="dark"] .mobile-more-account{border-top-color:#35443a}

/* Match plan opens on the board; setup controls and coaching detail follow it. */
.tactics-panel .tactics-pitch{order:0;margin-top:0}
.tactics-panel .tactics-board-hint{order:1}
.tactics-panel .tactics-fixture{order:2}
.tactics-panel .tactics-squad-options{order:3}
.tactics-panel .tactics-heading{order:4}
.tactics-panel .formation-control{order:5}
.tactics-panel .tactics-bench-wrap{order:6}
.tactics-panel .tactics-coach-plan{order:7}
.tactics-board-hint .helper,.tactics-board-hint .tactics-availability-hint{margin:0;font-size:11px;line-height:1.35}
.tactics-pitch[data-format="3v3"] .pitch-box{display:none}
.tactics-pitch[data-format="3v3"] .pitch-circle{width:44px;height:44px}
.tactics-empty{position:absolute;inset:38% 12%;display:grid;place-items:center;text-align:center;padding:12px;border-radius:12px;background:rgba(5,39,17,.78);color:#fff;font-size:13px;font-weight:850;z-index:2}
.tactics-empty.hidden{display:none}
.tactics-fixture .tactics-match-guide{color:var(--muted,#68766d);font-weight:750;line-height:1.35}

@media(max-width:680px){
  body.match-plan-active #view-squad>.section-title-row{display:none}
  body.match-plan-active .content{padding-top:8px!important}
}

/* Account actions sit outside the shared hero on every page. */
.app-utility-bar{position:static!important;top:auto!important;right:auto!important;z-index:2;max-width:none!important;min-height:52px;display:flex;justify-content:flex-end!important;align-items:center;gap:8px;margin:0!important;padding:5px clamp(14px,3.2vw,24px);background:var(--bg);border-bottom:1px solid var(--gch-line)}
.app-utility-bar.hidden{display:none!important}
.app-utility-bar .hero-profile-button,.app-utility-bar .hero-notification-button{min-height:44px;max-width:min(72vw,320px);padding:7px 12px;border:1px solid var(--gch-line);background:var(--white);color:var(--ink);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}
.app-utility-bar .hero-notification-button{min-width:44px;padding:0 10px;overflow:visible}
body.admin-club-mode .hero-copy,body.admin-coach-mode .hero-copy,body.admin-preview-mode .hero-copy{padding-right:0!important}
html[data-theme="dark"] .app-utility-bar{border-bottom-color:#35443a}
html[data-theme="dark"] .app-utility-bar .hero-profile-button,html[data-theme="dark"] .app-utility-bar .hero-notification-button{border-color:#35443a}

/* Parent Home keeps one priority activity and gives each child reply its own row. */
#parent-home-match-info .parent-home-reply{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
#parent-home-match-info .parent-home-reply button{width:auto;max-width:100%;justify-self:end}
.parent-home-training{display:grid;gap:0;padding:14px 16px}
.parent-home-training h3{margin:0 0 6px;font-size:17px}
.parent-training-row{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--line,#D8E0DA)}
.parent-training-row:first-child{padding-top:0;border-top:0}
.parent-training-row strong{font-size:16px}.parent-training-row span,.parent-training-row small{color:var(--muted);font-size:13px}
#parent-matches-training{padding:12px 16px}
#parent-matches-training h3{margin:0 0 4px;font-size:16px}
#parent-matches-training .parent-training-row{gap:2px;padding:8px 0}
#parent-matches-training .parent-training-row strong{font-size:14px}
#parent-matches-training .parent-training-row span,#parent-matches-training .parent-training-row small{font-size:12px}
.training-later-dates{border-top:1px solid var(--line,#D8E0DA)}
.training-later-dates summary{cursor:pointer;padding:12px 0;font-weight:700;color:var(--gch-green-700)}
html[data-theme="dark"] .training-later-dates summary{color:#8ee09a}
.training-later-dates summary span{font-weight:400;color:var(--muted)}
.training-later-dates .parent-training-row:first-child{border-top:1px solid var(--line,#D8E0DA)}
.training-session-list{display:grid;gap:7px;margin:10px 0 16px}
.training-session-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line,#D8E0DA)}
.training-session-row>div{display:grid;gap:3px;min-width:0}.training-session-row span{color:var(--muted);overflow-wrap:anywhere;font-size:12px}
.training-session-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.training-session-form label{display:grid;gap:5px;min-width:0;font-size:12px;font-weight:800}.training-session-form input,.training-session-form select{width:100%}
.training-session-note-field,.training-session-form button{grid-column:1/-1}
#training-session-settings h4{margin:20px 0 10px;font-size:15px}
#training-session-settings .training-session-row button{width:auto;flex:0 0 auto}
body.role-parent #view-matches .matches-section-nav,body.role-parent #view-matches #league-programme-panel,
body.role-parent #view-matches .matches-record-search,
body.role-parent #view-matches .match-section,body.role-parent .home-season-details,
body.role-parent #view-league,body.role-parent #view-squad{display:none!important}
@media(max-width:560px){
  #parent-home-match-info .parent-home-reply{grid-template-columns:minmax(0,1fr)}
  #parent-home-match-info .parent-home-reply button{width:100%;justify-self:stretch}
  .training-session-form{grid-template-columns:minmax(0,1fr)}
}

.cup-group-fixture-lines{display:grid;gap:8px;margin-top:10px}.cup-group-fixture-line{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft,#f7faf8)}.cup-group-fixture-line span:last-child{text-align:right}.cup-group-fixture-line strong{color:var(--muted);font-size:12px}

.cup-pair-fixture-card .further-fixture-head strong{display:block;margin-top:6px}.cup-pair-v{color:var(--muted);font-size:.85em}

.cup-next-pair-list{display:grid;gap:8px;width:100%}.cup-next-pair{padding:10px 12px;border-radius:12px;background:var(--surface-2);text-align:center;font-weight:700}.cup-next-pair span{color:var(--muted);padding:0 8px}.cup-pair-fixture-card .further-fixture-head strong{display:block;margin-top:6px}.cup-pair-v{color:var(--muted);font-size:.85em}

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

/* Requested club branding: one cropped, angled crest behind the live page. */
.app-shell{isolation:isolate}
.club-page-watermark{position:fixed;top:0;left:50%;width:min(100%,960px);height:100vh;height:100dvh;transform:translateX(-50%);overflow:hidden;pointer-events:none;user-select:none;z-index:0;opacity:.04}
.club-page-watermark[hidden]{display:none}
.club-page-watermark img{position:absolute;left:8%;top:16%;width:clamp(840px,155vw,1480px);height:auto;max-width:none;transform:rotate(-22deg);transform-origin:50% 50%;pointer-events:none}
.club-page-watermark[data-circular="true"] img{clip-path:circle(49% at 50% 50%)}
.app-shell>.hero,.app-shell>.content{position:relative;z-index:1}
.app-shell>.app-utility-bar{isolation:isolate}
html[data-theme="dark"] .club-page-watermark{opacity:.07}
@supports(background:color-mix(in srgb,white 80%,transparent)){
  body.club-watermark-ready .content .panel:not(.knight-panel):not(.next-action-panel),
  body.club-watermark-ready .content .match-card,
  body.club-watermark-ready .content .club-result-row,
  body.club-watermark-ready .content .admin-age-group,
  body.club-watermark-ready .content .admin-fixture-row{
    background:color-mix(in srgb,var(--white) 82%,transparent);
  }
  html[data-theme="dark"] body.club-watermark-ready .content .panel:not(.knight-panel):not(.next-action-panel),
  html[data-theme="dark"] body.club-watermark-ready .content .match-card,
  html[data-theme="dark"] body.club-watermark-ready .content .club-result-row,
  html[data-theme="dark"] body.club-watermark-ready .content .admin-age-group,
  html[data-theme="dark"] body.club-watermark-ready .content .admin-fixture-row{
    background:color-mix(in srgb,var(--white) 78%,transparent)!important;
  }
}

/* Matchday preparation: full-width team rows, compact details at every width. */
#matchday-dashboard .matchday-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
#matchday-dashboard .matchday-dashboard-grid>article{display:flex;min-width:0;padding:12px;gap:5px}
#matchday-dashboard .matchday-dashboard-grid>article:nth-child(4),
#matchday-dashboard .matchday-dashboard-fixtures{grid-column:1/-1}
#matchday-dashboard .matchday-dashboard-grid>article>span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;line-height:1.4;color:var(--muted)}
#matchday-dashboard .matchday-dashboard-grid>article>strong{font-size:14px;line-height:1.45;overflow-wrap:anywhere}
#matchday-dashboard .matchday-dashboard-grid>article>small{font-size:12px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
#matchday-dashboard .canonical-match-fixture-row{padding:6px 0 10px;gap:7px;min-width:0}
#matchday-dashboard .canonical-match-fixture-row:last-child{padding-bottom:2px;border-bottom:0}
#matchday-dashboard .canonical-match-fixture-label{font-size:10px;line-height:1.4}
#matchday-dashboard .canonical-match-team-row{gap:8px}
#matchday-dashboard .canonical-match-team{gap:7px;text-transform:none;letter-spacing:normal;color:var(--ink)}
#matchday-dashboard .canonical-match-team strong{font-size:14px;line-height:1.4;font-weight:700;min-width:0;word-break:normal;overflow-wrap:anywhere}
#matchday-dashboard .canonical-match-badge,
#matchday-dashboard .canonical-match-badge .club-identity-badge{width:30px;height:30px;max-width:30px;max-height:30px;flex:0 0 30px;object-fit:contain}
#matchday-dashboard .canonical-match-v{font-size:13px;line-height:1.4}
@media(max-width:480px){
  #matchday-dashboard .matchday-dashboard-grid{gap:8px}
  #matchday-dashboard .matchday-dashboard-grid>article{padding:10px}
  #matchday-dashboard .canonical-match-team{flex-direction:column;align-items:flex-start;gap:5px}
  #matchday-dashboard .canonical-match-team-away{flex-direction:column-reverse;align-items:flex-end}
  #matchday-dashboard .canonical-match-team strong{font-size:13px}
}

/* Home dashboard layout refresh (2026-10-10). Uses only the v1.4 tokens above.
 * Order: next match -> matchday prep -> notices -> family -> season (collapsed).
 * The matchday panel continues the next-match card instead of repeating its teams. */
#view-home>.section-title-row{margin-bottom:12px}
#view-home>.section-title-row h2{font-size:clamp(22px,4.6vw,28px)}
#view-home .home-next-match{gap:8px;margin-bottom:0}
#view-home .home-next-match>.kicker{margin:0 0 0 2px}
#view-home .next-match-summary-card{position:relative;padding:16px 16px 14px;border:1px solid var(--gch-line);border-top:4px solid var(--gch-green-600);border-radius:var(--gch-radius-card);box-shadow:var(--gch-shadow-card)}
#view-home .next-match-summary-card:not(:disabled)::after{content:"Details \203A";justify-self:center;font-size:12px;font-weight:800;letter-spacing:.02em;color:var(--gch-green-700)}
#view-home .next-match-summary-date{display:inline-block;justify-self:center;padding:6px 12px;border-radius:999px;background:var(--gch-soft-green);color:var(--gch-green-900);font-size:15px;line-height:1.3}
#view-home .home-next-match:has(+#matchday-dashboard:not(.hidden)){margin-bottom:0!important}
#view-home .home-next-match+#matchday-dashboard{margin-top:0;border-top-left-radius:0;border-top-right-radius:0;border-top:1px dashed var(--gch-line);padding-top:18px}
#view-home .home-next-match:has(+#matchday-dashboard:not(.hidden)) .next-match-summary-card{margin-bottom:0;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;box-shadow:none}
#view-home:has(#next-match-card:not(.hidden):not(.no-fixture)) #matchday-dashboard .matchday-dashboard-fixtures{display:none}
#view-home #matchday-dashboard{margin-bottom:18px}
#view-home #matchday-dashboard .matchday-dashboard-heading{margin-bottom:12px}
#view-home #matchday-dashboard .matchday-dashboard-grid>article{border-radius:var(--gch-radius-field)}
#view-home #matchday-dashboard .matchday-dashboard-actions{margin-top:12px}
#view-home .home-next-match:not(:has(+#matchday-dashboard:not(.hidden))){margin-bottom:18px}
#view-home .club-notices-panel,#view-home .parent-home-family{margin-bottom:18px}
#view-home .home-season-group-label{margin:22px 0 8px 2px}
body.role-parent #view-home .home-season-group-label{display:none}
#view-home .home-season-details{padding:0;margin-bottom:10px;border-radius:var(--gch-radius-card);box-shadow:none}
#view-home .home-season-details>summary{min-height:56px;padding:12px 16px}
#view-home .home-season-details>summary strong{font-size:15px}
#view-home .home-season-details>summary span{font-size:12px;font-weight:600}
/* Parent Home: one clear stack, same card family as the coach view. */
body.role-parent #view-home .home-next-match{gap:10px;margin-bottom:18px}
body.role-parent #view-home .parent-home-training,
body.role-parent #view-home .parent-home-match-info{border:1px solid var(--gch-line);border-radius:var(--gch-radius-card);box-shadow:var(--gch-shadow-card);padding:16px}
body.role-parent #view-home .parent-home-training h3,
body.role-parent #view-home .parent-home-match-info h3{font-size:17px;line-height:1.25}
body.role-parent #view-home .parent-home-family-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
html[data-theme="dark"] #view-home .next-match-summary-card,
html[data-theme="dark"] body.role-parent #view-home .parent-home-training,
html[data-theme="dark"] body.role-parent #view-home .parent-home-match-info{border-color:#344239!important;border-top-color:var(--gch-green-600)!important}
html[data-theme="dark"] body.role-parent #view-home .parent-home-training,
html[data-theme="dark"] body.role-parent #view-home .parent-home-match-info{border-top-color:#344239!important}
html[data-theme="dark"] #view-home .next-match-summary-date{background:#17311f;color:#8ee09a}
html[data-theme="dark"] #view-home .next-match-summary-card:not(:disabled)::after{color:#8ee09a}
@media(max-width:480px){
  #view-home #matchday-dashboard .matchday-dashboard-grid>article:nth-child(2),
  #view-home #matchday-dashboard .matchday-dashboard-grid>article:nth-child(3){grid-column:1/-1}
  #view-home .next-match-summary-card{padding:14px 12px 12px}
}
/* Parent cup-group matchday: the panel lists every group game, so the one-game summary card above it is redundant. */
body.role-parent #view-home .home-next-match:has(#parent-home-match-info:not(.hidden) .cup-group-fixture-lines) #next-match-card{display:none}

/* Matches screen tidy (2026-10-10, v1.4 tokens only). */
/* The card title already names the competition; drop the repeated "Competition" row. */
#matches-next-fixture .matches-fixture-time-row>div:has(>#matches-next-venue){display:none}
/* Empty record sections collapse to one heading line plus a short muted note. */
#view-matches .match-section:has(.match-list>.empty-state:only-child),
#view-matches .match-section:has(.tournament-event-list>.empty-state:only-child){margin:12px 0 14px}
#view-matches .match-list>.empty-state:only-child,
#view-matches .tournament-event-list>.empty-state:only-child{padding:2px 2px 0;text-align:left;font-size:13px;color:var(--muted)}
#view-matches .match-list>.empty-state:only-child strong,
#view-matches .tournament-event-list>.empty-state:only-child strong{display:inline;font-size:13px;font-weight:600;color:var(--muted);margin:0}
#view-matches .tournament-event-list>.empty-state:only-child span{display:none}
#view-matches .match-section:has(.match-list>.empty-state:only-child) .match-section-heading,
#view-matches .match-section:has(.tournament-event-list>.empty-state:only-child) .match-section-heading{margin-bottom:4px}
#view-matches .match-section:has(.match-list>.empty-state:only-child) .match-section-heading h3,
#view-matches .match-section:has(.tournament-event-list>.empty-state:only-child) .match-section-heading h3{font-size:17px}

/* Settings and Squad: undo the doubled .panel padding on collapsible rows. */
#view-more details.panel.settings-accordion{padding:0}
#view-more .settings-accordion>summary{min-height:52px;padding:12px 16px}
#view-squad details.panel{padding:0}
#view-squad details.panel>summary{min-height:48px;padding:12px 16px}

/* Compact hero (Mike, 2026-10-10): one fixed-height band on every tab, role and width.
 * Badge and names on the left; the football photo fades in on the right. */
:root{--hero-band:112px}
@media(min-width:681px){:root{--hero-band:132px}}
.hero{
  height:calc(var(--hero-band) + var(--android-inset-top,0px))!important;
  min-height:0!important;
  padding:var(--android-inset-top,0px) clamp(14px,4vw,28px) 0!important;
  display:flex;align-items:center;overflow:hidden;
  border-radius:0 0 20px 20px!important;
}
.hero-art{inset:0 0 0 auto!important;width:58%!important;height:100%!important;object-position:center 62%!important}
.hero::before{
  inset:0 0 0 auto!important;width:58%!important;height:100%!important;
  background:linear-gradient(90deg,var(--gch-green-950) 0%,rgba(6,69,38,.82) 30%,rgba(6,69,38,.2) 75%,rgba(6,69,38,.05) 100%)!important;
}
.hero-inner{width:100%;grid-template-columns:auto minmax(0,1fr)!important;gap:12px!important}
.club-logo-wrap{width:clamp(52px,12vw,72px)!important;height:clamp(52px,12vw,72px)!important}
.hero-copy .eyebrow{margin:0;font-size:12px;letter-spacing:.12em}
.hero-copy h1{margin:2px 0;font-size:clamp(22px,5.6vw,32px)!important;line-height:1.05!important}
.hero-copy .season-line{margin:0;font-size:13px}
@media(orientation:landscape) and (max-height:560px){.hero{min-height:0!important}}

/* Home card style on every tab (Mike, 2026-10-10). */
.view>.section-title-row{margin-bottom:12px}
.view>.section-title-row h2{font-size:clamp(22px,4.6vw,28px)!important}
/* Each tab's lead card gets the Home next-match treatment: green top accent, card radius and shadow. */
#matches-next-fixture,#view-league .league-table-panel,#view-squad .squad-banner,#view-club .admin-attention-panel,#view-club .club-matches-browser,#view-club .admin-coach-centre{border:1px solid var(--gch-line)!important;border-top:4px solid var(--gch-green-600)!important;border-radius:var(--gch-radius-card)!important;box-shadow:var(--gch-shadow-card)}
/* Same green as the Home next-match card in dark mode too (a dark .panel rule had greyed it). */
html[data-theme="dark"] #matches-next-fixture,html[data-theme="dark"] #view-league .league-table-panel,html[data-theme="dark"] #view-squad .squad-banner,html[data-theme="dark"] #view-club .admin-attention-panel,html[data-theme="dark"] #view-club .club-matches-browser,html[data-theme="dark"] #view-club .admin-coach-centre{border-color:#344239!important;border-top-color:var(--gch-green-600)!important}
/* Collapsible rows everywhere use the compact Home summary. */
.view details.panel:not(.settings-accordion):not(.competition-games-panel){padding:0}
.view details.panel:not(.settings-accordion):not(.competition-games-panel)>summary{min-height:52px;padding:12px 16px}
#view-matches .competition-games-panel>summary{padding:12px 16px}
/* Results tables: rows sit flush, action line reads as part of the row above it. */
.match-results-table{margin:0}
.match-results-table .competition-game-link{display:inline;text-align:left}
.match-results-table tr.match-result-actions td{padding-top:0;border-top:0}
.match-results-table tr.match-result-actions .match-actions{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:flex-end;align-items:center;margin:0}
/* Narrow screens: every results table (Cups, Vases, league, friendlies, tournaments, other) stacks
 * each row as date · competition · H/A over opponent + result pill, so names never break mid-word. */
@media(max-width:560px){
  .competition-games-table{width:100%;min-width:0!important;table-layout:auto}
  .competition-games-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .competition-games-table tbody tr:not(.match-result-actions){display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"date comp venue result" "opp opp opp result";align-items:stretch;gap:0;padding:0}
  .competition-games-table tbody tr:not(.match-result-actions)>td{padding:10px 0 2px 8px!important;border:0!important;font-size:12px!important;min-width:0;display:flex;align-items:center}
  .competition-games-table tbody tr:not(.match-result-actions)>td:nth-child(1){padding-left:12px!important}
  .competition-games-table tbody tr:not(.match-result-actions)>td:nth-child(3){padding:4px 8px 10px 12px!important}
  .competition-games-table tbody tr:not(.match-result-actions)>td:nth-child(5){padding:10px 12px 10px 8px!important}
  .competition-games-table tbody tr>td:nth-child(1){grid-area:date;color:var(--muted)}
  .competition-games-table tbody tr>td:nth-child(2){grid-area:comp;color:var(--muted)}
  .competition-games-table tbody tr>td:nth-child(2) b{font-weight:600}
  .competition-games-table tbody tr>td:nth-child(2) .cup-round{display:inline!important;margin-left:4px;font-size:12px!important}
  .competition-games-table tbody tr>td:nth-child(3){grid-area:opp;font-size:14px!important;font-weight:700;flex-direction:column;align-items:flex-start!important}
  .competition-games-table tbody tr>td:nth-child(4){grid-area:venue;color:var(--muted)}
  .competition-games-table tbody tr>td:nth-child(5){grid-area:result;justify-content:flex-end}
  .competition-games-table .competition-game-link{font-size:14px;overflow-wrap:normal;word-break:normal}
  .competition-games-table .competition-result-pill{white-space:nowrap;font-size:12px}
  .competition-games-table tbody tr.match-result-actions{display:block;padding:0}
  .competition-games-table tbody tr.match-result-actions>td{display:block;padding:0 12px 10px!important;border:0!important}
  .competition-games-table tbody tr+tr:not(.match-result-actions){border-top:1px solid var(--gch-line)}
  html[data-theme="dark"] .competition-games-table tbody tr+tr:not(.match-result-actions){border-top-color:#344239}
  .competition-games-table td.table-empty{display:block;padding:10px 12px!important}
  /* Grouped lists omit the competition cell; keep the Cups row's two-line rhythm. */
  .grouped-results-table .competition-games-table tbody tr:not(.match-result-actions){grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"date venue result" "opp opp result"}
  .grouped-results-table .competition-games-table tbody tr:not(.match-result-actions)>td:nth-child(2){grid-area:opp;padding:4px 8px 10px 12px!important;font-size:14px!important;font-weight:700;flex-direction:column;align-items:flex-start}
  .grouped-results-table .competition-games-table tbody tr:not(.match-result-actions)>td:nth-child(2) .cup-round{display:block!important;margin-left:0}
  .grouped-results-table .competition-games-table tbody tr:not(.match-result-actions)>td:nth-child(3){grid-area:venue;padding:10px 0 2px 8px!important;font-size:12px!important;font-weight:400;flex-direction:row;align-items:center!important;color:var(--muted)}
  .grouped-results-table .competition-games-table tbody tr:not(.match-result-actions)>td:nth-child(4){grid-area:result;padding:10px 12px 10px 8px!important;justify-content:flex-end}
}

/* Club results (admin overview and Club > Results): both teams in the Match cell. */
.club-results-table .club-result-match{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0}
.club-results-table .club-result-team{display:inline-flex;align-items:center;gap:6px;min-width:0}
.club-results-table .club-result-team .club-identity-badge{width:22px;height:22px;max-width:22px;max-height:22px;flex:0 0 22px;object-fit:contain}
.club-results-table .club-result-team-name{font-weight:700;overflow-wrap:normal;word-break:normal}
.club-results-table .club-result-v{color:var(--muted);font-weight:600;font-size:.9em}
#admin-recent-results .club-results-table{margin-top:4px}

/* The mode pill sits inside the fixed hero band without growing it. */
.hero-copy .mode-pill{margin:0 0 2px;padding:2px 8px;font-size:12px;line-height:1.2}

/* Admin lead cards (Mike, 2026-10-10): keep the layout; the first card on each admin tab carries the
 * Home green top border, and its summary line uses the Home date pill. */
#view-club .admin-attention-panel .admin-health-good,#view-club #admin-weekend-meta:not(:empty){display:inline-block;margin:6px 0 0;padding:6px 12px;border-radius:999px;background:var(--gch-soft-green);color:var(--gch-green-900);font-size:14px;font-weight:900;line-height:1.3}
html[data-theme="dark"] #view-club .admin-attention-panel .admin-health-good,html[data-theme="dark"] #view-club #admin-weekend-meta:not(:empty){background:#17311f;color:#8ee09a}
html[data-theme="dark"] .club-matches-switch{background:#17211b;border-color:#344239}
html[data-theme="dark"] .club-matches-switch button{color:#a9b8ae}
html[data-theme="dark"] .club-matches-switch button.active{background:#203027;color:#8ee09a;box-shadow:none}

/* Inbox rework (Mike, 2026-10-10): conversation first, chat bubbles, composer at the bottom.
 * v1.4 tokens only; same lead-card accent, pill and segmented switch as Home and admin Matches. */
#view-inbox .communications-tabs{display:flex;gap:4px;padding:4px;margin:0 0 14px;background:#eef2ef;border:1px solid var(--gch-line);border-radius:14px;overflow-x:auto}
#view-inbox .communications-tabs.hidden{display:none}
#view-inbox .communications-tabs button{flex:1;min-height:40px;border:0!important;background:none!important;box-shadow:none!important;border-radius:10px;font-weight:850;color:#51615a!important;white-space:nowrap}
#view-inbox .communications-tabs button.active{background:var(--gch-white)!important;color:var(--gch-green-900)!important;box-shadow:0 2px 8px rgba(9,45,27,.12)!important}
html[data-theme="dark"] #view-inbox .communications-tabs{background:#17211b;border-color:#344239}
html[data-theme="dark"] #view-inbox .communications-tabs button{color:#a9b8ae!important}
html[data-theme="dark"] #view-inbox .communications-tabs button.active{background:#203027!important;color:#8ee09a!important;box-shadow:none!important}
#view-inbox .inbox-card{border:1px solid var(--gch-line)!important;border-top:4px solid var(--gch-green-600)!important;border-radius:var(--gch-radius-card)!important;box-shadow:var(--gch-shadow-card)}
html[data-theme="dark"] #view-inbox .inbox-card{border-color:#344239!important;border-top-color:var(--gch-green-600)!important}
#view-inbox .inbox-conversation-label{display:grid;gap:6px;margin:4px 0 8px;font-size:12px;font-weight:850}
#view-inbox .inbox-conversation-label select{width:100%}
#view-inbox .inbox-hint-pill:not(:empty){display:inline-block;margin:0 0 6px;padding:6px 12px;border-radius:999px;background:var(--gch-soft-green);color:var(--gch-green-900);font-size:13px;font-weight:850}
html[data-theme="dark"] #view-inbox .inbox-hint-pill:not(:empty){background:#17311f;color:#8ee09a}
/* Thread: a scrolling chat area with bubbles. */
#view-inbox .inbox-thread{display:flex!important;flex-direction:column;gap:10px;margin:8px 0 0!important;padding:12px!important;max-height:min(56vh,520px);overflow-y:auto;background:var(--gch-canvas)!important;border:1px solid var(--gch-line)!important;border-radius:var(--gch-radius-field)}
html[data-theme="dark"] #view-inbox .inbox-thread{background:#0f1612!important;border-color:#2a352e!important}
#view-inbox .inbox-message{display:flex;align-items:flex-end;gap:8px;max-width:86%;margin:0!important;padding:0!important;border:0!important;background:none!important}
#view-inbox .inbox-message.theirs{align-self:flex-start}
#view-inbox .inbox-message.mine{align-self:flex-end;flex-direction:row-reverse}
#view-inbox .inbox-avatar{flex:0 0 32px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--gch-soft-green);color:var(--gch-green-900);font-size:12px;font-weight:900}
html[data-theme="dark"] #view-inbox .inbox-avatar{background:#17311f;color:#8ee09a}
#view-inbox .inbox-bubble{min-width:0;padding:9px 12px;border-radius:16px;border:1px solid var(--gch-line);background:var(--gch-white);box-shadow:0 1px 2px rgba(10,40,20,.06)}
#view-inbox .inbox-message.theirs .inbox-bubble{border-bottom-left-radius:4px}
#view-inbox .inbox-message.mine .inbox-bubble{border-bottom-right-radius:4px;background:var(--gch-green-600);border-color:var(--gch-green-600);color:#fff}
html[data-theme="dark"] #view-inbox .inbox-message.theirs .inbox-bubble{background:#1b2620;border-color:#2f3d34;color:#f2f7f3}
html[data-theme="dark"] #view-inbox .inbox-message.mine .inbox-bubble{background:#1f6b3b!important;border-color:#1f6b3b!important;color:#fff}
#view-inbox .inbox-message-meta{display:flex;justify-content:space-between;gap:10px;margin:0 0 3px;font-size:11px;opacity:.85}
#view-inbox .inbox-message-meta strong{font-size:12px}
#view-inbox .inbox-message-subject{display:block;margin:0 0 2px;font-size:13px}
#view-inbox .inbox-bubble p{margin:0;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
#view-inbox .inbox-message.mine small{display:block;margin-top:3px;text-align:right;font-size:10.5px;opacity:.85}
#view-inbox .inbox-thread .empty-state{margin:auto;text-align:center}
/* Composer pinned under the thread. */
#view-inbox .inbox-composer{display:grid;gap:8px;margin-top:10px}
#view-inbox .inbox-composer input{width:100%;min-height:44px}
#view-inbox .inbox-compose-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
#view-inbox .inbox-compose-row textarea{width:100%;min-height:46px;resize:vertical}
#view-inbox .inbox-compose-row .primary-button{min-height:46px;padding:0 18px;width:auto}
/* Raise an issue stays visible (safeguarding route) but sits as a quieter, compact card. */
#view-inbox .concern-panel{margin-top:16px}
#view-inbox .concern-panel textarea{min-height:88px}
#view-inbox .inbox-message.mine .inbox-bubble,#view-inbox .inbox-message.mine .inbox-bubble *{color:#fff!important}
#view-inbox .inbox-message.mine .inbox-message-meta span,#view-inbox .inbox-message.mine small{opacity:.88}

/* Recent form: five small result squares in one row (a phone rule for form fields, .form-row>*{flex:1 1 100%},
 * was stretching each chip to full width because the container shares the .form-row class). */
#recent-form.form-row{display:flex!important;flex-wrap:nowrap!important;gap:6px;margin:8px 0 12px}
#recent-form.form-row>.form-chip{flex:0 0 34px!important;width:34px!important;height:34px}
#recent-form.form-row>.form-empty{flex:0 1 auto}


/* Keep field names and movement announcements available to assistive technology. */
.a11y-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}

@font-face{
  font-family:Inter;
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url('./inter-variable.woff2') format('woff2');
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Frontend polish: one preparation surface, with values and supporting details. */
#view-home #matchday-dashboard .matchday-dashboard-grid{gap:0 16px}
#view-home #matchday-dashboard .matchday-dashboard-grid>article{
  padding:12px 0;background:transparent;border:0;border-bottom:1px solid var(--gch-line);border-radius:0;
}
#view-home #matchday-dashboard .matchday-dashboard-grid>article>span{
  font-size:12px;font-weight:600;text-transform:none;letter-spacing:normal;
}
#view-home #matchday-dashboard .matchday-dashboard-grid>article>strong{font-size:15px}
#view-home #matchday-dashboard .matchday-dashboard-grid>article>small{font-size:13px;font-weight:400}
#view-home #matchday-dashboard .matchday-dashboard-heading{flex-wrap:wrap;gap:8px}
#view-home #matchday-dashboard .matchday-dashboard-status{font-size:12px;line-height:1.4;font-weight:600;white-space:normal}
#view-home #matchday-dashboard .matchday-dashboard-alert{font-size:14px;font-weight:600}
#view-home #matchday-dashboard .canonical-match-fixture-label{font-size:12px}
#view-home #matchday-dashboard .matchday-dashboard-actions{align-items:stretch}
#view-home #matchday-dashboard #matchday-open-tactics{flex-basis:100%;min-height:48px}
#view-home #matchday-dashboard .matchday-dashboard-actions>.secondary-button{min-height:44px;font-size:14px;flex:1 1 140px}
.competition-games-table .cup-round{font-size:12px;line-height:1.4}
html[data-theme="dark"] #view-home #matchday-dashboard .matchday-dashboard-grid>article{
  background:transparent!important;border-color:#344239!important;
}

/* Second frontend polish pass: quieter branding and a clear fixture action order. */
.matches-next-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.matches-next-actions>button{width:auto;flex:1 1 160px;font-size:14px;line-height:1.4;min-height:48px}
.matches-next-actions>#matches-next-played{flex-basis:100%}
.matches-next-actions>#matches-next-share{flex:0 0 48px}
.next-fixture-action-bar{gap:8px;align-items:stretch}
.next-fixture-action-bar>button{min-height:48px;font-size:14px;line-height:1.4}
.next-fixture-action-bar #fixture-confirm-details{flex:1 0 100%}
.next-fixture-action-bar #next-match-share{flex:0 0 48px}
.next-fixture-action-bar .text-button{min-height:44px}
.next-fixture-modal .map-link,.matches-next-fixture .map-link,
.further-fixture-card .map-link{min-height:44px;font-size:14px;line-height:1.4;padding:8px 12px}
#next-match-calendar{min-height:44px;font-size:14px;line-height:1.4}
.next-fixture-venue>div>span{font-size:12px;line-height:1.4;letter-spacing:normal;text-transform:none;font-weight:600}
.next-fixture-venue>div>strong{font-size:15px;line-height:1.4}
.next-fixture-venue>div>small{font-size:13px;line-height:1.4}

/* Availability polish: readable replies and comfortable controls within match details. */
#match-availability-panel{min-width:0}
#match-availability-panel .match-availability-head{flex-wrap:wrap;align-items:center;gap:8px}
#match-availability-panel .match-availability-head>strong{min-width:0;font-size:16px;line-height:1.4}
#match-availability-panel .availability-count{min-width:0;max-width:100%;white-space:normal;font-size:13px!important;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
#match-availability-panel #availability-reminder-send{min-height:44px;font-size:14px;line-height:1.4;white-space:normal}
#match-availability-panel .parent-availability-controls label{font-size:14px;font-weight:600}
#match-availability-panel #availability-player{font-size:14px;min-height:48px;max-width:100%;min-width:0}
#match-availability-panel .availability-btn{min-height:48px;font-size:14px;line-height:1.4;font-weight:600;white-space:normal}
#match-availability-panel .coach-availability-summary{grid-template-columns:minmax(0,1fr);gap:12px}
#match-availability-panel .availability-summary-group{min-width:0}
#match-availability-panel .availability-summary-group>summary{min-height:44px;padding:10px 0;font-size:14px;line-height:1.4;font-weight:600;overflow-wrap:anywhere}
#match-availability-panel .availability-summary-group em{font-size:13px;line-height:1.4}
#match-availability-panel .availability-player-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(128px,160px);gap:8px;padding:12px 0;align-items:center}
#match-availability-panel .availability-player-row>span,
#match-availability-panel .availability-player-row>span>span:last-child{font-size:14px;line-height:1.4;font-weight:600}
#match-availability-panel .availability-player-row small{font-size:12px;line-height:1.4;font-weight:400}
#match-availability-panel .availability-player-row select{width:100%;min-width:0;min-height:48px;font-size:14px;line-height:1.4;padding:8px}
#match-availability-panel .availability-player-row:not(:has(select)){grid-template-columns:minmax(0,1fr)}
#match-availability-warning{font-size:14px;line-height:1.5}
#match-availability-warning button{min-height:44px;font-size:14px}
@media(max-width:560px){
  #match-availability-panel .availability-player-row{grid-template-columns:minmax(0,1fr)}
  #match-availability-panel #availability-reminder-send{width:100%}
}
@media(min-width:900px){
  #match-availability-panel .coach-availability-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Shared screen presentation: every profile uses the same lead-card and copy system. */
.view .screen-lead-card{
  border:1px solid var(--gch-line)!important;
  border-top:4px solid var(--gch-green-600)!important;
  border-radius:var(--gch-radius-card)!important;
  box-shadow:var(--gch-shadow-card);
}
html[data-theme="dark"] .view .screen-lead-card,
html[data-theme="dark"] body.role-parent #view-home .screen-lead-card{
  border-color:#344239!important;border-top-color:var(--gch-green-600)!important;
}
.view .panel-heading,.view .section-title-row,.modal .modal-heading{min-width:0;flex-wrap:wrap;gap:10px 14px}
.view .panel-heading>div,.view .section-title-row>div,.modal .modal-heading>div{min-width:0;flex:1 1 180px}
.view .panel-heading h3,.view .panel>h3{font-size:18px;line-height:1.3;overflow-wrap:anywhere}
.view .kicker{font-size:12px;line-height:1.4}
.view .panel p,.view .panel label,.view .form-panel label,.modal label{font-size:14px;line-height:1.5}
.view .helper,.view .panel .helper,.view .panel p.muted,.modal .helper,.modal p.muted{font-size:13px;line-height:1.5}
.view .empty-state{font-size:14px;line-height:1.5}
.view .empty-state strong{font-size:16px;line-height:1.4}
.view .panel input,.view .panel select,.view .panel textarea,.modal input,.modal select,.modal textarea{font-size:14px;max-width:100%;min-width:0}
.view .primary-button,.view .secondary-button,.modal .primary-button,.modal .secondary-button{font-size:14px;line-height:1.4;min-height:48px;white-space:normal}
.view .screen-section-nav button,#view-inbox .communications-tabs button{min-height:44px;font-size:13px}
.view .settings-accordion>summary{font-size:16px;line-height:1.4}
.view .settings-accordion-body{font-size:14px;line-height:1.5}
.modal .modal-heading h3{font-size:18px;line-height:1.3;overflow-wrap:anywhere}
.modal .modal-actions{gap:10px}

/* Club Admin Home: matchday preparation, staffing and communications use the app card family. */
#view-club .admin-home{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
#view-club .admin-home>.panel{margin:0;min-width:0}
#view-club .admin-home .helper,#view-club .admin-home p.muted,#view-club .admin-home small{font-size:14px;line-height:1.5}
#view-club .admin-home h4{margin:0 0 8px;font-size:15px;line-height:1.4}
#view-club .admin-home-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:16px 0;border-block:1px solid var(--gch-control-line)}
#view-club .admin-home-metrics>div{display:grid;align-content:start;gap:3px;min-width:0}
#view-club .admin-home-metrics strong{font-size:28px;line-height:1.15;color:var(--gch-control-choice-copy)}
#view-club .admin-home-metrics span{font-size:14px;line-height:1.4;color:var(--gch-control-muted)}
#view-club .admin-home-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
#view-club .admin-home-actions>button{flex:1 1 150px;min-height:48px;font-size:14px}
#view-club .admin-home-fixture{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--gch-control-line)}
#view-club .admin-home-fixture>span{min-width:0;display:grid;gap:3px;overflow-wrap:anywhere}
#view-club .admin-home-fixture strong,#view-club .admin-home-desk-row strong{font-size:15px;line-height:1.4}
#view-club .admin-home-fixture small,#view-club .admin-home-team small{color:var(--gch-control-muted)}
#view-club .admin-home-time{flex:0 0 90px}
#view-club .admin-home-finish{margin-top:14px;padding:14px;border-radius:var(--gch-radius-field);background:var(--gch-control-choice)}
#view-club .admin-home-finish ul{margin:0;padding-left:20px}
#view-club .admin-home-finish li{padding:4px 0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
#view-club .admin-home-finish li span{display:block;color:var(--gch-control-muted)}
#view-club .admin-home-desk-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:14px 0;border-bottom:1px solid var(--gch-control-line)}
#view-club .admin-home-desk-row>div{flex:1 1 170px;min-width:0}
#view-club .admin-home-desk-row p{margin:4px 0 0;color:var(--gch-control-muted)}
#view-club .admin-home-desk-row>button{flex:0 1 auto}
#view-club .admin-home-coverage-list{display:grid;gap:8px;margin-top:12px}
#view-club .admin-home-assign,#view-club .admin-home-team{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;width:100%;min-height:48px;padding:12px;border:1px solid var(--gch-control-line);border-radius:var(--gch-radius-field);background:var(--gch-control-choice);color:var(--gch-control-copy);font:inherit;font-size:14px;line-height:1.5;text-align:left;cursor:pointer;overflow-wrap:anywhere}
#view-club .admin-home-assign>span:first-child,#view-club .admin-home-team>span:first-child{flex:1 1 150px;min-width:0}
#view-club .admin-home-assign>span:last-child{color:var(--gch-control-choice-copy);font-weight:700}
#view-club .admin-home-team{background:var(--gch-control-surface);margin:8px 0 0}
#view-club .admin-home-team strong{display:block;font-size:15px;line-height:1.4}
#view-club .admin-home-team small{display:block;margin-top:4px;font-weight:400}
#view-club .admin-home-team-size{font-size:14px;font-weight:400;color:var(--gch-control-muted)}
#view-club .admin-home-team-size>span{margin-left:8px;color:var(--gch-control-choice-copy);font-size:20px}
#view-club .admin-home-assign:focus-visible,#view-club .admin-home-team:focus-visible{outline:3px solid var(--gch-control-focus);outline-offset:2px}
#view-club .admin-home-directory>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:16px;cursor:pointer}
#view-club .admin-home-directory>summary::after{content:'+';font-size:22px;color:var(--gch-control-choice-copy)}
#view-club .admin-home-directory[open]>summary::after{content:'−'}
#view-club .admin-home-directory>summary .muted{margin-left:auto;font-size:14px;font-weight:400}
#view-club .admin-home-directory-body{padding:0 16px 16px}
#view-club .admin-home-team-filters{display:flex;flex-wrap:wrap;gap:12px}
#view-club .admin-home-team-filters>label{flex:1 1 180px;min-width:0}
#view-club .admin-home-team-filters input,#view-club .admin-home-team-filters select{width:100%;margin-top:6px}
#view-club .admin-home .admin-team-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
#view-club .admin-home-team-group{min-width:0}
@media(min-width:760px){
  #view-club .admin-home{grid-template-columns:repeat(2,minmax(0,1fr))}
  #view-club .admin-home-weekend,#view-club .admin-home-directory{grid-column:1/-1}
}
@media(max-width:440px){
  #view-club .admin-home-desk-row>button{flex:1 1 100%}
  #view-club .admin-home .panel-heading>button{width:auto}
}

/* Staff qualification profiles: same surfaces, typography and touch targets as club cards. */
#coach-profile-self{margin-bottom:16px;min-height:48px}
.coach-qualification-dialog{width:min(94vw,680px);max-height:88dvh;border-radius:var(--gch-radius-card)}
.coach-qualification-dialog .modal-body{min-width:0;max-height:none;padding:18px}
.coach-qualification-dialog p,.coach-qualification-dialog .helper,.coach-qualification-dialog label,.coach-qualification-dialog a{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.coach-qualification-dialog h4{margin:0 0 8px;font-size:16px;line-height:1.4}
.coach-qualification-row{display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px;padding:16px 0;border-bottom:1px solid var(--gch-control-line)}
.coach-qualification-row>div{flex:1 1 240px;min-width:0}
.coach-qualification-row p{margin:6px 0}
.coach-qualification-row>.secondary-button{min-height:48px}
.qualification-state{display:inline-block;padding:4px 10px;border-radius:999px;font-size:14px;line-height:1.5;background:var(--gch-control-choice);color:var(--gch-control-choice-copy)}
.qualification-state.expired{background:var(--gch-error-bg);color:var(--gch-error)}
.qualification-state.due{background:#fff4d4;color:#755300}
.qualification-state.current{background:#e2f4e8;color:#155b32}
.qualification-state.missing{background:transparent;color:var(--muted);box-shadow:inset 0 0 0 1px var(--gch-control-line)}
#coach-document-matrix{grid-column:1/-1;min-width:0}
.coach-document-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:18px 0 10px}
.coach-document-toolbar label{flex:0 1 220px;min-width:0}
.coach-document-toolbar select{width:100%;min-height:48px;font-size:16px}
.coach-document-toolbar p{flex:1 1 220px;margin:0}
.coach-document-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--gch-control-line);border-radius:var(--gch-radius-field)}
.coach-document-grid{width:100%;min-width:680px;border-collapse:separate;border-spacing:0;font-size:14px;line-height:1.5}
.coach-document-grid th,.coach-document-grid td{padding:14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--gch-control-line)}
.coach-document-grid thead th{background:var(--gch-control-choice);color:var(--gch-control-choice-copy)}
.coach-document-grid tbody tr:last-child>*{border-bottom:0}
.coach-document-grid tbody th{width:24%;min-width:160px;position:sticky;left:0;background:var(--white);z-index:1;box-shadow:1px 0 var(--gch-control-line)}
.coach-document-grid thead th:first-child{position:sticky;left:0;z-index:2}
.coach-document-grid th .text-button{display:block;max-width:100%;min-height:48px;text-align:left;padding:0;font-size:16px;overflow-wrap:anywhere}
.coach-document-grid small{display:block;font-size:14px;font-weight:400;margin-top:6px;overflow-wrap:anywhere}
.coach-document-scroll>p{padding:14px}
.coach-document-notice{padding:16px;border-radius:var(--gch-radius-field);margin:16px 0;font-size:14px;line-height:1.6}
.coach-document-notice.due{background:#fff4d4;color:#755300}
.coach-document-notice.expired{background:var(--gch-error-bg);color:var(--gch-error)}
.coach-document-notice p{margin:6px 0}
.coach-document-notice ul{margin:8px 0 0;padding-left:20px}
.coach-document-scroll-hint{display:none}
@media(max-width:700px){.coach-document-scroll-hint{display:block}.coach-document-grid tbody th{min-width:140px;max-width:160px}.coach-document-grid th,.coach-document-grid td{padding:10px}}
.qualification-error{color:var(--gch-error)}
#coach-qualification-editor{margin-top:18px;padding:16px;border-radius:var(--gch-radius-field);background:var(--gch-control-choice)}
#coach-qualification-form{display:grid;gap:14px}
#coach-qualification-form label{margin:0}
#coach-qualification-form input[type=date],#coach-qualification-form select{width:100%;margin-top:6px;min-height:48px;font-size:16px}
.qualification-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#coach-qualification-form .qualification-check{display:flex;align-items:center;gap:12px;min-height:48px}
.qualification-actions{display:flex;flex-wrap:wrap;gap:10px}
.qualification-actions>button{flex:1 1 150px;min-height:48px}
#coach-qualification-source{display:inline-flex;align-items:center;min-height:44px}
.qualification-guidance{margin-top:18px;font-size:14px;line-height:1.5}
.qualification-guidance>summary{min-height:48px;padding:12px 0;cursor:pointer}
html[data-theme="dark"] .qualification-state.expired{background:#3d2225;color:#ffb4b4}
html[data-theme="dark"] .qualification-state.due{background:#3b3116;color:#f0d68a}
html[data-theme="dark"] .qualification-state.current{background:#153827;color:#a6e1bb}
html[data-theme="dark"] .coach-document-notice.due{background:#3b3116;color:#f0d68a}
html[data-theme="dark"] .coach-document-notice.expired{background:#3d2225;color:#ffb4b4}
html[data-theme="dark"] .qualification-error{color:#ffb4b4}
@media(max-width:440px){.qualification-date-fields{grid-template-columns:minmax(0,1fr)}.coach-qualification-dialog .modal-body{padding:14px}}

/* Parent activity cards share the staff Home hierarchy, including the confirmed continuation. */
body.role-parent #view-home .home-next-match{gap:8px;margin-bottom:16px}
body.role-parent .parent-home-training{padding:16px;gap:0;margin-bottom:16px}
body.role-parent .parent-home-training h3{margin:0 0 8px;font-size:18px;line-height:1.3}
body.role-parent #parent-matches-training .parent-training-row,
body.role-parent .parent-training-row{gap:4px;padding:12px 0;min-width:0}
body.role-parent .parent-training-row strong,
body.role-parent #parent-matches-training .parent-training-row strong{font-size:15px;line-height:1.4;overflow-wrap:anywhere}
body.role-parent .parent-training-row span,body.role-parent .parent-training-row small,
body.role-parent #parent-matches-training .parent-training-row span,
body.role-parent #parent-matches-training .parent-training-row small{font-size:13px;line-height:1.5;overflow-wrap:anywhere}
body.role-parent .parent-home-training .parent-training-row:first-of-type{border-top:0;padding-top:4px}
body.role-parent .training-later-dates>summary{min-height:44px;font-size:14px;line-height:1.5}
body.role-parent .parent-home-match-meta>strong{font-size:18px;line-height:1.3}
body.role-parent .parent-home-match-meta>span{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
body.role-parent .parent-home-reply{padding:12px 0 0}
body.role-parent .parent-home-reply strong,.parent-child-row strong{font-size:14px;line-height:1.4}
body.role-parent .parent-home-reply small,.parent-child-row small{font-size:13px;line-height:1.5}
body.role-parent .parent-family-message{font-size:13px;line-height:1.5}
body.role-parent .parent-home-match-actions button{font-size:14px;min-height:44px}
body.role-parent #parent-matches-placeholder{font-size:14px;line-height:1.5;padding:16px;border-radius:var(--gch-radius-card);margin-bottom:16px}
body.role-parent #view-matches:has(#matches-next-fixture:not(.hidden)) #parent-matches-training{border-top-width:1px!important;border-top-color:var(--gch-line)!important}
html[data-theme="dark"] body.role-parent #view-matches:has(#matches-next-fixture:not(.hidden)) #parent-matches-training{border-top-color:#344239!important}
body.role-parent #view-home .home-next-match:has(#parent-home-match-info:not(.hidden)):not(:has(.cup-group-fixture-lines)) #next-match-card{
  margin-bottom:0;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;box-shadow:none;
}
body.role-parent #view-home .home-next-match:has(#parent-home-match-info:not(.hidden)):not(:has(.cup-group-fixture-lines)){gap:0}
body.role-parent #view-home .home-next-match:not(:has(.cup-group-fixture-lines)) #parent-home-match-info:not(.hidden){
  border-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important;
}
body.role-parent #view-home .parent-home-training{margin-bottom:0}

/* The same fixture surface is used on Schedule, staff Matches and the details dialog. */
.matches-next-fixture .next-fixture-versus,.next-fixture-modal .next-fixture-versus{
  background:var(--gch-soft-green);border-color:var(--gch-line);color:var(--gch-ink);
}
.matches-next-fixture .match-team-side .club-detail-link,.next-fixture-modal .match-team-side .club-detail-link{color:var(--gch-green-900);text-decoration-color:currentColor;font-size:14px;line-height:1.4}
.matches-next-fixture .match-side-label,.next-fixture-modal .next-fixture-versus .match-side-label{color:var(--gch-muted);font-size:12px;line-height:1.4;letter-spacing:.04em}
.matches-next-fixture .match-kit-secondary small,.next-fixture-modal .next-fixture-versus .match-kit-secondary small{color:var(--gch-muted);font-size:12px;line-height:1.4}
html[data-theme="dark"] .matches-next-fixture .next-fixture-versus,html[data-theme="dark"] .next-fixture-modal .next-fixture-versus{background:#17311f;border-color:#344239;color:#f2f7f3}
html[data-theme="dark"] .matches-next-fixture .match-team-side .club-detail-link,html[data-theme="dark"] .next-fixture-modal .match-team-side .club-detail-link{color:#98e3a3!important}
html[data-theme="dark"] .matches-next-fixture .match-side-label,html[data-theme="dark"] .next-fixture-modal .next-fixture-versus .match-side-label,
html[data-theme="dark"] .matches-next-fixture .match-kit-secondary small,html[data-theme="dark"] .next-fixture-modal .next-fixture-versus .match-kit-secondary small{color:#b9c7be}
@media(max-width:560px){
  .modal .modal-actions{grid-template-columns:minmax(0,1fr)}
  .view .panel-heading>button{max-width:100%}
  body.role-parent .parent-home-family-actions>button{flex:1 1 140px}
}

/* Login repair: one readable form, natural scrolling, and a coherent light auth surface. */
body.auth-open #activation-gate{width:100%!important;align-items:flex-start!important;scroll-padding-block:20px;padding:0!important}
body.auth-open #activation-gate .auth-showcase,
body.auth-open #activation-gate .auth-simple{color:var(--gch-ink);min-width:0;max-width:100%;flex-shrink:0}
body.auth-open #activation-gate .auth-main,
body.auth-open #activation-gate .auth-simple-card{min-width:0;text-align:left}
body.auth-open #activation-gate .auth-main h1,
body.auth-open #activation-gate .auth-simple-card h1{font-size:28px!important;font-weight:700;line-height:1.2!important;letter-spacing:-.025em;color:var(--gch-ink)}
body.auth-open #activation-gate .auth-lead{max-width:none;margin:6px 0 12px!important;font-size:14px!important;line-height:1.5!important;color:var(--gch-copy)}
body.auth-open #activation-gate .auth-back{position:static!important;align-self:flex-start;width:auto;min-height:44px;padding:8px 0;margin:0 0 8px;line-height:1.4}
.auth-field-group{display:grid;gap:6px;min-width:0;text-align:left}
body.auth-open #activation-gate .auth-field-label{display:block;margin:0;color:var(--gch-ink);font-size:14px;font-weight:600;line-height:1.4;text-align:left}
body.auth-open #activation-gate .auth-fields{gap:12px!important}
body.auth-open #activation-gate .auth-field{min-height:52px!important;height:auto;border-radius:var(--gch-radius-field)!important;background:#fff!important}
body.auth-open #activation-gate .auth-field input,
body.auth-open #activation-gate .auth-field select{height:50px!important;min-height:50px;max-width:100%;border:0!important;background:transparent!important;color:var(--gch-ink)!important;font-size:16px!important;line-height:1.4!important;scroll-margin-block:24px}
body.auth-open #activation-gate .auth-field input::placeholder{color:var(--gch-muted);opacity:1}
body.auth-open #activation-gate .auth-field option{background:#fff;color:var(--gch-ink)}
body.auth-open #activation-gate .auth-password-wrap .auth-field{padding-right:64px}
body.auth-open #activation-gate .auth-eye{top:auto;bottom:1px;right:1px;width:62px;height:50px!important;min-height:44px;color:var(--gch-green-900);font-size:13px;font-weight:600;background:transparent}
body.auth-open #activation-gate .auth-forgot{font-size:14px!important;line-height:1.4;min-height:44px;margin:0 0 0 auto!important;padding:8px 0}
body.auth-open #activation-gate #cloud-signin-form{display:grid;gap:10px;min-width:0}
body.auth-open #activation-gate .auth-primary,
body.auth-open #activation-gate .auth-secondary{min-height:48px!important;height:auto;padding:12px 36px 12px 14px;font-size:14px!important;font-weight:700;line-height:1.4;white-space:normal}
body.auth-open #activation-gate .auth-secondary{padding:12px 10px}
.auth-alternate-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
body.auth-open #activation-gate .auth-alternate-routes .auth-secondary{margin:0;min-width:0}
body.auth-open #activation-gate .auth-notice,
body.auth-open #activation-gate .activation-error{font-size:13px!important;line-height:1.5!important;overflow-wrap:anywhere;margin:0!important}
body.auth-open #activation-gate .auth-link-strong{min-height:44px;font-size:14px;font-weight:600;line-height:1.4;margin-top:4px;padding:8px}
body.auth-open #activation-gate .auth-eye:focus-visible,
body.auth-open #activation-gate .auth-back:focus-visible,
body.auth-open #activation-gate .auth-forgot:focus-visible,
body.auth-open #activation-gate .auth-link-strong:focus-visible{outline:3px solid var(--gch-green-600);outline-offset:2px}
body.auth-open #activation-gate .auth-simple{margin:16px auto;border-radius:var(--gch-radius-card);padding:16px 16px calc(16px + var(--android-inset-bottom,0px) + env(safe-area-inset-bottom))}
body.auth-open #activation-gate .auth-simple-card{display:grid;gap:12px;padding:16px 0 0}
body.auth-open #activation-gate .auth-simple .auth-brand{min-height:72px!important;padding:0!important}
body.auth-open #activation-gate .auth-grass-footer span{font-size:12px!important;letter-spacing:.06em!important}
@media(max-width:899px){
  body.auth-open #activation-gate .auth-showcase{display:flex!important;width:min(560px,100%)!important;max-width:100%!important;min-height:100dvh!important;overflow:visible!important;border-radius:0!important}
  body.auth-open #activation-gate .auth-brand{min-height:64px!important;padding:calc(6px + var(--android-inset-top,0px)) 16px 6px!important}
  body.auth-open #activation-gate .auth-brand .auth-brand-lockup{width:auto!important;height:52px!important;max-width:100%;max-height:52px!important}
  body.auth-open #activation-gate .auth-scene{height:80px!important;min-height:0!important;flex:0 0 80px!important}
  body.auth-open #activation-gate .auth-main{padding:16px clamp(16px,4vw,24px)!important;display:block!important}
  body.auth-open #activation-gate .auth-main h1{font-size:26px!important}
  body.auth-open #activation-gate .auth-grass-footer{display:flex!important}
}
@media(min-width:900px){
  body.auth-open #activation-gate{padding:20px!important}
  body.auth-open #activation-gate .auth-showcase{width:min(980px,100%)!important;min-height:0!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;border-radius:var(--gch-radius-card)!important;margin-block:auto}
  body.auth-open #activation-gate .auth-scene{height:100%!important;min-height:320px!important}
  body.auth-open #activation-gate .auth-main{padding:28px!important}
  body.auth-open #activation-gate .auth-grass-footer{display:flex!important;grid-row:3!important}
}
@media(max-height:620px) and (max-width:899px){body.auth-open #activation-gate .auth-scene{height:64px!important;flex-basis:64px!important}}
@media(max-width:374px){.auth-alternate-routes{grid-template-columns:minmax(0,1fr)}}

/* Shared fields and browser dropdown pickers use the same app palette. */
:root{
  --gch-control-surface:var(--gch-white);
  --gch-control-copy:var(--gch-ink);
  --gch-control-muted:var(--gch-muted);
  --gch-control-line:var(--gch-line);
  --gch-control-choice:var(--gch-soft-green);
  --gch-control-choice-copy:var(--gch-green-950);
  --gch-control-focus:var(--gch-green-600);
}
html[data-theme="dark"]{
  --gch-control-surface:#101713;
  --gch-control-copy:#f2f7f3;
  --gch-control-muted:#a9b8ae;
  --gch-control-line:#35443a;
  --gch-control-choice:#17311f;
  --gch-control-choice-copy:#b6efc0;
  --gch-control-focus:#8ee09a;
}
/* Auth and setup keep their governing white form surfaces in either theme. */
#activation-gate,.universal-onboarding{
  color-scheme:light;
  --gch-control-surface:var(--gch-white);
  --gch-control-copy:var(--gch-ink);
  --gch-control-muted:var(--gch-muted);
  --gch-control-line:var(--gch-line);
  --gch-control-choice:var(--gch-soft-green);
  --gch-control-choice-copy:var(--gch-green-950);
  --gch-control-focus:var(--gch-green-600);
}
input,select,textarea{accent-color:var(--gch-control-focus)}
select{cursor:pointer;min-width:0;min-height:48px!important;font-size:1rem!important;line-height:1.4}
select:disabled{cursor:not-allowed}
input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--gch-control-focus)!important;outline-offset:2px;
}
input[type="checkbox"],input[type="radio"]{
  min-width:20px;min-height:20px;width:20px;height:20px;flex-shrink:0;padding:0;
}
.checkbox-line,.parent-link-player,.rule-toggle{min-height:44px}
input[type="file"]{min-height:48px;font-size:1rem;color:var(--gch-control-copy)}
input::file-selector-button{
  min-height:44px;margin-inline-end:12px;padding:10px 14px;border:1px solid var(--gch-control-line);
  border-radius:var(--gch-radius-button);background:var(--gch-control-choice);color:var(--gch-control-choice-copy);font:inherit;font-weight:700;cursor:pointer;
}
input:-webkit-autofill{
  -webkit-text-fill-color:var(--gch-control-copy);
  box-shadow:0 0 0 1000px var(--gch-control-surface) inset!important;
}
/* Keep native labels, validation, keyboard behavior and change handlers.
   Supporting browsers render this picker in the top layer, including in dialogs.
   Older browsers retain their working native picker. No JS or markup rewrite. */
@supports (appearance:base-select) and selector(select::picker(select)){
  select:not([multiple]):not([size]),select[size="1"]{
    appearance:base-select!important;-webkit-appearance:base-select!important;
    align-items:center;gap:12px;white-space:normal;overflow-wrap:anywhere;
  }
  select:not([multiple]):not([size])::picker(select),select[size="1"]::picker(select){
    appearance:base-select;background:var(--gch-picker-surface);color:var(--gch-control-copy);
    border:1px solid var(--gch-control-line);border-radius:var(--gch-radius-field);
    box-shadow:var(--gch-shadow-card);padding:6px;
    min-width:anchor-size(width);max-width:calc(100vw - 24px);
    max-height:min(360px,60dvh);overflow-y:auto;overscroll-behavior:contain;
    font-family:var(--gch-font);font-size:1rem;line-height:1.4;color-scheme:inherit;
  }
  select::picker-icon{color:var(--gch-control-choice-copy);flex-shrink:0}
  select:open{outline:2px solid var(--gch-control-focus);outline-offset:2px}
  select option{
    min-height:48px;padding:12px;gap:12px;border-radius:8px;
    background:var(--gch-picker-surface)!important;color:var(--gch-control-copy)!important;
    font:inherit;white-space:normal;overflow-wrap:anywhere;
  }
  select option:is(:checked,:hover,:focus){background:var(--gch-control-choice)!important;color:var(--gch-control-choice-copy)!important}
  select option:checked{font-weight:700}
  select option:focus-visible{outline:2px solid var(--gch-control-focus);outline-offset:-2px}
  select option::checkmark{color:var(--gch-control-choice-copy);flex-shrink:0}
  select option:disabled{color:var(--gch-control-muted)!important;cursor:not-allowed}
  select optgroup{color:var(--gch-control-muted);font:inherit;font-weight:700}
}

/* Shared confirmations inherit the app dialog palette, font and theme. */
#app-confirm-dialog{width:min(92vw,460px);border-radius:var(--gch-radius-card)}
#app-confirm-dialog .app-confirm-shell{gap:14px;padding:20px}
#app-confirm-dialog .modal-heading h3{font-size:1.125rem;line-height:1.35}
#app-confirm-dialog p{margin:0;white-space:pre-wrap;overflow-wrap:break-word;font-size:1rem;line-height:1.5}
#app-confirm-dialog #app-confirm-detail{font-size:.875rem}
#app-confirm-dialog .modal-actions button{min-height:48px;font-size:1rem;line-height:1.4}
#app-confirm-dialog[data-tone="danger"] #app-confirm-accept{background:var(--gch-error);color:#fff}

/* Exact supplied Junior Reds roundel: upright presentation, artwork unchanged. */
img.verified-club-badge[src$="/3aa25e5eff778740a2133b8d0e780b5240bf8b5ca61632061238f3257d1a52d0"]{transform:rotate(16deg);transform-origin:50% 50%;clip-path:none}

/* Match-details names use full column width on phones, with intact word breaks. */
#match-detail-versus :is(.canonical-v11-side,.canonical-match-team) strong,
#match-detail-versus .match-team-name,
#match-detail-versus .club-listing-name{
  min-width:0;max-width:100%;white-space:normal;
  word-break:normal;overflow-wrap:break-word;hyphens:none;
}
@media(max-width:560px){
  #match-detail-versus :is(.canonical-v11-teams,.canonical-match-team-row){align-items:start}
  #match-detail-versus :is(.canonical-v11-side,.canonical-match-team){
    flex-direction:column;align-items:center;text-align:center;gap:6px;
  }
  #match-detail-versus :is(.canonical-v11-badge,.canonical-v13-badge-fallback,.canonical-match-badge){order:-1}
  #match-detail-versus :is(.canonical-v11-side,.canonical-match-team) strong{
    width:100%;font-size:14px;line-height:1.4;
  }
}

/* Club Matches: one fixture list and the same compact layout for results. */
#view-club .club-matches-browser{padding:16px}
#view-club .club-matches-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px;margin-bottom:12px}
#view-club .club-matches-filters label{margin:0;min-width:0}
#view-club .club-matches-filters .weekend-share-trigger{justify-self:end;min-height:44px}
#view-club .admin-fixture-list{display:block;margin-top:0}
.club-matches-table .competition-games-table tr.admin-fixture-row{display:table-row;padding:0;border:0;border-radius:0;background:transparent}
.club-matches-table .competition-games-table th:last-child,.club-matches-table .competition-games-table td:last-child{text-align:right}
.club-matches-table .club-result-match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;width:100%;font-size:14px;line-height:1.3}
.club-matches-table .club-result-team{display:grid;grid-template-columns:22px minmax(0,1fr);gap:6px;width:100%;min-width:0;align-items:center}
.club-matches-table .club-result-team.away{grid-template-columns:minmax(0,1fr) 22px;justify-content:normal;text-align:right}
.club-matches-table .club-result-team.away .club-identity-badge{grid-column:2;grid-row:1}
.club-matches-table .club-result-team.away .club-result-team-name{grid-column:1;grid-row:1}
.club-matches-table .club-result-team-name{min-width:0;overflow-wrap:break-word;word-break:normal}
.club-matches-table .club-fixture-time{display:block;font-size:14px;white-space:nowrap}
.club-matches-table .club-fixture-notes,.club-matches-table .club-fixture-confirmation{display:block;margin-top:4px;font-size:12px;line-height:1.35;color:var(--muted)}
.club-matches-table .club-fixture-confirmation.confirmed{color:var(--green-2)}
html[data-theme="dark"] .club-matches-table .club-fixture-confirmation.confirmed{color:#8ee09a}
@media(max-width:560px){
  #view-club .club-matches-browser{padding:12px}
  #view-club .club-matches-filters{gap:10px}
  .club-matches-table .competition-games-table tbody tr:not(.match-result-actions){display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"date comp result" "opp opp opp"}
  .club-matches-table .competition-games-table tbody tr:not(.match-result-actions)>td:nth-child(2){padding:10px 8px 2px!important;flex-direction:column;align-items:flex-start}
  .club-matches-table .competition-games-table tbody tr:not(.match-result-actions)>td:nth-child(2) .cup-round{display:block!important;margin-left:0;font-size:11px!important}
  .club-matches-table .competition-games-table tbody tr:not(.match-result-actions)>td:nth-child(3){grid-area:opp;padding:6px 12px 10px!important}
  .club-matches-table .competition-games-table tbody tr:not(.match-result-actions)>td:nth-child(4){grid-area:result;padding:10px 12px 2px 8px!important;flex-direction:column;align-items:flex-end!important;justify-content:flex-start}
  .club-matches-table .club-fixture-time{font-size:12px;white-space:normal;max-width:100px}
  .club-matches-table .club-fixture-confirmation{max-width:100px;font-size:11px}
  .club-matches-table .club-result-match{gap:6px}
}

/* Club fixtures browse a Saturday/Sunday window without losing unscheduled games. */
#view-club .club-weekend-navigation{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:12px;margin:4px 0 12px;text-align:center}
#view-club .club-weekend-navigation button{min-width:44px;min-height:44px;padding:8px;font-size:20px}
#view-club .club-weekend-navigation strong{font-size:1rem;line-height:1.4}
#view-club .club-weekend-viewport{touch-action:pan-y;min-width:0}
#view-club .club-weekend-viewport:focus-visible{outline:2px solid var(--green-2);outline-offset:4px;border-radius:8px}
#view-club .club-fixture-group{margin:16px 0 0}
#view-club .club-fixture-group h3{margin:0 0 8px;font-size:1rem;line-height:1.4}
#view-club .club-fixture-group summary{cursor:pointer;min-height:44px;padding:12px 0;font-weight:700}
.club-matches-table .competition-result-pill{white-space:nowrap;flex-shrink:0}

/* Fixed column boundaries keep badges and the v aligned across competition lists. */
@media(min-width:561px){
  .club-matches-table .competition-games-table{table-layout:fixed;width:100%}
  .club-matches-table .competition-games-table th:first-child{width:64px}
  .club-matches-table .competition-games-table th:nth-child(2){width:24%}
  .club-matches-table .competition-games-table th:last-child{width:72px}
  .club-fixtures-table .competition-games-table th:nth-child(2){width:16%}
  .club-fixtures-table .competition-games-table th:last-child{width:76px}
  .club-fixtures-table .club-fixture-time{white-space:nowrap;font-variant-numeric:tabular-nums}
}

/* 11 October 2026: Mike's Shooters Hill identity across the club app. */
.app-splash-logo{width:min(220px,60vw)!important;height:auto!important;aspect-ratio:1;object-fit:contain!important;margin:0 auto}
.activation-logo{width:96px!important;height:96px!important;object-fit:contain!important}
.auth-brand .auth-brand-lockup,.auth-brand>img{width:auto!important;height:72px!important;max-height:72px!important;aspect-ratio:1;object-fit:contain!important}
.onboard-product-brand img{width:96px!important;height:96px!important;object-fit:contain!important}
.gch-about-banner{width:96px!important;height:96px!important;max-height:96px;object-fit:contain!important;background:transparent!important}
.gch-about-copy{text-align:center}
.contact-directory-controls {display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:16px}
.contact-directory-controls label {flex:1 1 220px}
.member-contact-list {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;margin-top:16px}
.person-name-button {display:inline-flex;align-items:center;justify-content:flex-start;min-height:44px;max-width:100%;padding:4px 0;border:0;background:transparent;color:var(--gch-green-800);font:inherit;font-weight:750;text-align:left;white-space:normal;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:4px;box-shadow:none}
.person-name-button:hover {background:transparent;color:var(--ink)}
.person-name-button:focus-visible {outline:3px solid var(--gch-green-800);outline-offset:4px;border-radius:4px}
.member-contact-summary .helper {margin-bottom:0}
.person-profile-back {margin-bottom:20px}
.person-profile-body {display:grid;gap:20px;max-width:900px;margin:0 auto}
.person-profile-body .panel {margin:0;min-width:0;overflow-wrap:anywhere}
.person-profile-body .member-contact-card {border:0;padding:0;background:transparent}
.person-profile-teams {margin:12px 0;padding-left:20px;line-height:1.7}
.person-profile-actions {display:flex;flex-wrap:wrap;gap:12px}
.person-profile-actions button {white-space:normal;text-align:left}
#person-profile-name {overflow-wrap:anywhere}
#contact-import-panel>summary {font-weight:750;min-height:44px;cursor:pointer}
html[data-theme="dark"] .person-name-button {color:#8EE09A}
html[data-theme="dark"] .person-name-button:hover {color:#F6FAF7}
html[data-theme="dark"] .person-name-button:focus-visible {outline-color:#8EE09A}
.member-contact-card {min-width:0;padding:16px;border:1px solid var(--gch-line);border-radius:16px;background:var(--gch-white);overflow-wrap:anywhere}
.member-contact-card h4 {margin:0 0 8px;font-size:18px;line-height:1.4}
.member-contact-links {display:flex;flex-direction:column;gap:8px;margin:12px 0;font-size:14px;line-height:1.5}
.member-contact-links a {display:flex;align-items:center;min-height:44px;color:var(--gch-green-800);text-decoration:underline}
.contact-edit summary {min-height:44px;padding:12px 0;cursor:pointer;font-size:14px;font-weight:750}
.contact-details-form {display:grid;gap:12px;margin-top:8px}
.contact-details-form label {display:grid;gap:8px;font-size:14px}
html[data-theme="dark"] .member-contact-card {background:#151D18;border-color:#35443A}
html[data-theme="dark"] .member-contact-links a {color:#8EE09A}

/* Compact and clean presentation — Mike, 12 October 2026.
 * Shared geometry, flat rows and quieter actions replace nested decoration.
 * Decision: LOG-ENTRY_2026-10-12_0200_chatgpt_compact-clean-ui-approval.md.
 * Keep readable copy, 44px touch targets, native controls and role visibility. */
:root{
  --gch-radius-card:12px;
  --gch-radius-field:10px;
  --gch-radius-button:10px;
  --gch-shadow-card:none;
  --gch-shadow-action:none;
  --hero-band:88px;
}
@media(min-width:681px){:root{--hero-band:104px}}
.hero{border-radius:0!important;box-shadow:none}
.hero-inner{gap:12px!important}
.club-logo-wrap{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;overflow:visible}
.hero-copy h1{font-weight:700!important;letter-spacing:-.025em!important}
.hero-copy .eyebrow{font-weight:600;letter-spacing:.06em}
.hero-copy .season-line{font-weight:400}
.app-utility-bar{min-height:48px;padding-block:2px;gap:8px}
.app-utility-bar .hero-profile-button,
.app-utility-bar .hero-notification-button{border-color:transparent!important;background:transparent!important;border-radius:8px;font-weight:600}
.top-nav-tabs{gap:4px;padding-block:0;box-shadow:none;background:var(--white)!important}
.top-nav-tabs .top-nav-tab.nav-item{min-height:48px;border-radius:0;border-bottom:2px solid transparent;padding:10px 12px;font-weight:600}
.top-nav-tabs .top-nav-tab.nav-item.active,
html[data-theme="dark"] .top-nav-tabs .top-nav-tab.nav-item.active{background:transparent!important;color:var(--gch-control-choice-copy)!important;border-bottom-color:var(--gch-control-focus);box-shadow:none!important}
.content{padding-top:16px;padding-inline:16px}
.section-title-row{margin-bottom:16px}
.section-title-row h2{font-size:1.5rem;line-height:1.2;font-weight:700;letter-spacing:-.025em}
.view .kicker{font-weight:600;letter-spacing:.05em}
.view .panel-heading h3,.view .panel>h3{font-size:1.0625rem;font-weight:650;line-height:1.4}
.content .panel{box-shadow:none;padding:16px;margin-bottom:16px}
.content details.panel{padding:0}
.content .panel .panel{padding:12px 0;margin:0;border:0!important;border-radius:0!important;background:transparent!important}
.view .panel-heading{gap:8px 12px;align-items:center}
.view .panel-heading>div{flex-basis:140px}
.view .panel p.muted,.view .panel .helper{margin-block:8px;font-size:0.8125rem;font-weight:400;line-height:1.45}
.view :is(.screen-lead-card,.next-match-summary-card,.squad-banner,.league-table-panel,.inbox-card),
#matches-next-fixture,#view-home #matchday-dashboard,#view-club .club-matches-browser,
#view-club .admin-coach-centre,#view-inbox .inbox-card{
  border-top-width:1px!important;
  border-top-color:var(--gch-control-line)!important;
  box-shadow:none!important;
}
html[data-theme="dark"] body .view :is(.screen-lead-card,.next-match-summary-card,.squad-banner,.league-table-panel,.inbox-card),
html[data-theme="dark"] #matches-next-fixture,
html[data-theme="dark"] #view-home #matchday-dashboard,
html[data-theme="dark"] #view-club .club-matches-browser,
html[data-theme="dark"] #view-club .admin-coach-centre,
html[data-theme="dark"] #view-inbox .inbox-card{border-top-color:var(--gch-control-line)!important}
.content .primary-button,.content .secondary-button{padding:10px 14px;font-size:0.875rem;font-weight:600!important;box-shadow:none!important}
.content .primary-button{background:var(--gch-green-800)!important}
/* Secondary actions read as quiet actions, rather than competing green boxes. */
.content .secondary-button,
html[data-theme="dark"] .content .secondary-button{background:transparent!important;border:1px solid var(--gch-control-line)!important;color:var(--gch-control-choice-copy)!important}
.content .secondary-button:disabled{opacity:.5}
.content :is(.screen-section-nav,.communications-tabs,.club-matches-switch,.squad-view-tabs){background:transparent!important;border:0!important;border-bottom:1px solid var(--gch-control-line)!important;border-radius:0!important;padding:0!important;box-shadow:none!important;gap:4px}
.content :is(.screen-section-nav,.communications-tabs,.club-matches-switch,.squad-view-tabs) button{min-height:44px!important;border:0!important;border-bottom:2px solid transparent!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;font-weight:600!important}
.content :is(.screen-section-nav,.communications-tabs,.club-matches-switch,.squad-view-tabs) button:is(.active,[aria-selected="true"]){border-bottom-color:var(--gch-control-focus)!important;color:var(--gch-control-choice-copy)!important;background:transparent!important}
#view-inbox .communications-tabs button.active,
html[data-theme="dark"] #view-inbox .communications-tabs button.active{background:transparent!important;box-shadow:none!important}
.content .empty-state{padding:12px 0;text-align:left}
.content :is(.team-member-row,.admin-team-card,.member-contact-card){box-shadow:none;border-radius:var(--gch-radius-card);padding:12px}
.content .panel :is(.team-member-row,.admin-team-card,.member-contact-card){border:0!important;border-bottom:1px solid var(--gch-control-line)!important;border-radius:0;background:transparent!important;padding:12px 0}
.content :is(.team-members-list,.member-contact-list){gap:0}
.content .settings-accordion>summary,.content details.panel>summary{min-height:48px;padding:12px 16px;font-weight:600}
#view-more .settings-accordion{border:0!important;border-bottom:1px solid var(--gch-control-line)!important;border-radius:0;background:transparent!important;margin-bottom:0}
#view-more .settings-accordion>summary{padding-inline:0}
#view-more .settings-accordion-body{padding-inline:0}
#view-club .admin-home{gap:16px}
#view-club .admin-home .panel-heading .kicker,
#view-club .section-title-row .kicker{display:none}
#view-club .admin-home>.panel{padding:0 0 16px;border:0!important;border-bottom:1px solid var(--gch-control-line)!important;border-radius:0!important;background:transparent!important}
#view-club .admin-home>.panel:last-child{border-bottom:0!important}
#view-club .admin-home>.panel.admin-home-directory>summary{padding-inline:0}
#view-club .admin-home-directory-body{padding-inline:0}
#view-club .admin-home-metrics{gap:12px;padding:12px 0;border-top:0}
#view-club .admin-home-metrics strong{font-size:1.5rem;font-weight:650}
#view-club .admin-home-metrics span{font-size:0.75rem;line-height:1.4}
#view-club .admin-home .helper,#view-club .admin-home p.muted,#view-club .admin-home small{font-size:0.8125rem;line-height:1.45}
#view-club .admin-home-actions{gap:8px;margin-top:12px}
#view-club .admin-home-fixture{gap:12px;padding:10px 0}
#view-club .admin-home-fixture strong,#view-club .admin-home-desk-row strong{font-size:0.875rem;font-weight:600}
#view-club .admin-home-time{flex-basis:76px}
#view-club .admin-home-finish{padding:12px 0 0;border-top:1px solid var(--gch-control-line);border-radius:0;background:transparent;margin-top:12px}
#view-club .admin-home-finish h4{font-size:0.875rem;font-weight:600}
#view-club .admin-home-finish ul{padding-left:16px}
#view-club .admin-home-desk-row{flex-wrap:nowrap;gap:12px;padding:10px 0}
#view-club .admin-home-desk-row>div{flex:1 1 0}
#view-club .admin-home-desk-row>button{flex:0 0 auto;width:auto;max-width:42%;min-width:44px;padding:8px 0;border:0!important;border-radius:0!important;font-weight:600!important;text-align:right}
#view-club .admin-home-coverage-list{gap:0;margin-top:8px}
#view-club .admin-home-assign,#view-club .admin-home-team{border:0;border-bottom:1px solid var(--gch-control-line);border-radius:0;background:transparent;padding:10px 0;margin-top:0}
#view-club .admin-home-directory-body{padding:0 16px 16px}
#view-home #matchday-dashboard .matchday-dashboard-grid>article{padding:10px 0;border:0!important;border-bottom:1px solid var(--gch-control-line)!important;border-radius:0;background:transparent!important}
#view-home #matchday-dashboard .matchday-dashboard-grid{gap:8px 16px}
#view-home #matchday-dashboard .matchday-dashboard-grid>article>span{font-size:0.75rem;font-weight:500;text-transform:none;letter-spacing:0}
#view-home #matchday-dashboard .matchday-dashboard-grid>article>strong{font-size:0.875rem;font-weight:600}
.content .matchday-dashboard-actions{gap:8px}
.bottom-nav{box-shadow:none}
.bottom-nav .nav-item{font-weight:500}
.bottom-nav .nav-item.active{background:transparent!important;color:var(--gch-control-choice-copy)!important}
.bottom-nav .nav-item.active span:last-child{font-weight:650}
.bottom-nav .nav-item .nav-icon{background:transparent!important;box-shadow:none!important}
.club-page-watermark{opacity:.02}
html[data-theme="dark"] .club-page-watermark{opacity:.018}
.mobile-primary-nav{box-shadow:none}
.mobile-primary-item{font-weight:500;border-radius:0;border-top:2px solid transparent}
.mobile-primary-item[aria-current="page"],
html[data-theme="dark"] .mobile-primary-item[aria-current="page"]{background:transparent;color:var(--gch-control-choice-copy);border-top-color:var(--gch-control-focus);font-weight:650}
.mobile-more-link{font-weight:600;border-radius:8px}
/* Visible keyboard focus and pointer feedback survive the flatter treatment. */
.content button:focus-visible,.top-nav-tab:focus-visible{outline:2px solid var(--gch-control-focus)!important;outline-offset:2px}
@media(hover:hover){
  .content .secondary-button:hover,.app-utility-bar button:hover{background:var(--gch-control-choice)!important}
  .content :is(.admin-home-team,.admin-home-assign):hover{background:var(--gch-control-choice)}
}
@media(max-width:374px){
  #view-club .admin-home-desk-row>button{max-width:40%}
  #view-club .admin-home-metrics{gap:8px}
}

/* Full lists live on their own screens; entry links follow the club theme. */
.page-link{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:16px 18px;margin:8px 0;border:1px solid var(--gch-control-line);border-radius:var(--gch-radius-card);background:var(--gch-control-surface);color:var(--gch-control-copy);text-decoration:none;}
.page-link>span:first-child{display:grid;gap:5px;min-width:0;}
.page-link strong{font-size:1rem;line-height:1.4;}
.page-link small{color:var(--gch-control-muted);line-height:1.5;}
.page-link>span:last-child{font-size:1.6rem;color:var(--gch-control-focus);flex-shrink:0;}
.page-link:hover{border-color:var(--gch-control-focus);}
.page-link:focus-visible,.page-back:focus-visible{outline:3px solid var(--gch-control-focus);outline-offset:3px;}
.page-back{display:inline-flex;align-items:center;min-height:48px;text-decoration:none;margin-bottom:16px;}
.linked-page>details>summary{display:none;}
.linked-page>details>.settings-accordion-body,.linked-page>details>.admin-home-directory-body{padding-top:20px;}
.linked-page .admin-access-management{margin-top:0;}
@media(max-width:600px){.page-link{padding:14px;}.linked-page .section-title-row h2{font-size:1.4rem;}}

.page-link[hidden]{display:none!important;}

/* Figma visual direction approved by Mike, 12 October 2026.
 * Shared surfaces retain the existing routes, controls and role visibility.
 * Source: NY8QhcuOWiEcD0pKDTsbP8 / 6:51 and 50:226. */
:root{
  --gch-radius-card:20px;
  --gch-radius-button:12px;
  --gch-shadow-card:0 8px 18px -6px rgba(6,69,38,.075),0 1px 3px rgba(6,69,38,.045),inset 0 1px 1px rgba(255,255,255,.9);
  --gch-shadow-action:0 4px 10px -3px rgba(17,23,21,.19),inset 0 1px 1px rgba(255,255,255,.2);
  --gch-depth-canvas:linear-gradient(180deg,var(--gch-white),var(--gch-canvas) 52%,var(--gch-soft-green));
  --gch-depth-panel:linear-gradient(145deg,var(--gch-white) 0%,var(--gch-white) 56%,var(--gch-soft-green));
  --gch-depth-feature:linear-gradient(125deg,var(--gch-green-800),var(--gch-green-950) 42%,var(--gch-ink) 81%);
  --gch-depth-navigation:linear-gradient(180deg,var(--gch-white),var(--gch-canvas));
  --gch-depth-line:var(--gch-line);
  --hero-band:136px;
}
html[data-theme="dark"]{
  --gch-shadow-card:0 6px 16px -5px rgba(17,23,21,.32),inset 0 1px 1px rgba(255,255,255,.065);
  --gch-depth-canvas:radial-gradient(ellipse at 43% 38%,rgba(6,69,38,.25),rgba(6,69,38,.03) 44%,transparent),var(--gch-ink);
  --gch-depth-panel:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.055) 39%,rgba(255,255,255,.025) 81%);
  --gch-depth-navigation:linear-gradient(160deg,rgba(6,69,38,.4),var(--gch-ink) 81%);
  --gch-depth-line:rgba(255,255,255,.1);
}
html body,.app-shell{background:var(--gch-depth-canvas)!important}
html body .hero,html body.admin-club-mode .hero{
  background:linear-gradient(144deg,var(--gch-green-950),var(--gch-green-800) 40%,var(--gch-green-950) 81%)!important;
  border-bottom:3px solid var(--gch-green-500);
  border-image:linear-gradient(90deg,rgba(41,166,77,.9),rgba(232,247,237,.75) 36%,rgba(41,166,77,.18)) 1;
  box-shadow:0 5px 16px -5px rgba(17,23,21,.2)!important;
}
html body .hero .hero-art{display:none!important}
html body .hero::before,html body.admin-club-mode .hero::before{
  inset:0!important;width:100%!important;height:100%!important;
  background:linear-gradient(144deg,rgba(255,255,255,.045),transparent 44%,rgba(17,23,21,.18) 81%)!important;
}
html body .hero::after{
  content:"";position:absolute;z-index:1;pointer-events:none;
  top:-34px;right:-58px;width:236px;height:236px;
  background:url("shooters-hill-logo.png") center/contain no-repeat;opacity:.04;
}
html body.admin-club-mode .hero-copy{max-width:none}
html body .hero-copy :is(h1,.eyebrow,.season-line),
html body.admin-club-mode .hero-copy :is(h1,.eyebrow,.season-line){color:var(--gch-white)!important}
.hero-copy h1{font-size:clamp(1.25rem,5vw,1.75rem)!important;line-height:1.2!important}
html body .content .panel,html body .content .page-link,
html body #view-club .admin-home>.panel{
  background:var(--gch-depth-panel)!important;
  border:1px solid var(--gch-depth-line)!important;
  border-radius:var(--gch-radius-card)!important;
  box-shadow:var(--gch-shadow-card)!important;
}
html body #view-club .admin-home>.panel{padding:16px}
html body .content .page-link{border-radius:12px!important}
html body .content .panel .panel{box-shadow:none!important}
html body .content .primary-button{
  background:linear-gradient(145deg,var(--gch-green-800),var(--gch-green-950))!important;
  box-shadow:var(--gch-shadow-action)!important;
}
html body .content .view :is(#view-home #next-match-card,#view-matches #matches-next-fixture,#view-home #matchday-dashboard,#view-club .admin-home-weekend){
  --ink:var(--gch-white);--muted:rgba(255,255,255,.75);
  background:var(--gch-depth-feature)!important;
  color:var(--gch-white)!important;
  border:1px solid rgba(255,255,255,.13)!important;
  border-radius:20px!important;
  box-shadow:0 12px 28px -6px rgba(17,23,21,.3),0 0 20px -4px rgba(41,166,77,.08),inset 0 1px 1px rgba(255,255,255,.14)!important;
}
html body #view-club .admin-home-weekend :is(h3,strong,.kicker),
html body #view-home #next-match-card .next-match-summary-team strong,
html body #matches-next-fixture :is(.canonical-match-team strong,.canonical-v11-side strong),
html body #view-home #matchday-dashboard :is(h3,.kicker,.matchday-dashboard-grid>article>strong){color:var(--gch-white)!important}
html body #view-club .admin-home-weekend :is(.muted,.helper,.admin-home-metrics span),
html body #view-home #matchday-dashboard .matchday-dashboard-grid>article>span{color:rgba(255,255,255,.75)!important}
html body .content .view :is(#view-matches #matches-next-fixture,#view-home #matchday-dashboard,#view-club .admin-home-weekend) .primary-button{
  background:linear-gradient(180deg,var(--gch-white),var(--gch-info-green))!important;
  color:var(--gch-green-950)!important;border:1px solid rgba(255,255,255,.35)!important;
}
html body .content .view :is(#view-matches #matches-next-fixture,#view-home #matchday-dashboard,#view-club .admin-home-weekend) .secondary-button{
  color:var(--gch-info-green)!important;border-color:rgba(255,255,255,.3)!important;
}
html body .content .view :is(#view-home #next-match-card,#view-matches #matches-next-fixture,#view-home #matchday-dashboard,#view-club .admin-home-weekend) :is(.kicker,.muted,.helper,.canonical-match-fixture-label,.canonical-match-v,.canonical-v11-label,.canonical-v11-v,.matchday-dashboard-kits){color:rgba(255,255,255,.75)!important}
html body .content .view :is(#view-matches #matches-next-fixture,#view-home #matchday-dashboard) :is(.next-match-grid>div,.next-match-kits,.match-venue-card,.match-kit-correction){
  background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025))!important;
  border-color:rgba(255,255,255,.16)!important;color:var(--gch-white)!important;
}
html body .content .view :is(#view-matches #matches-next-fixture,#view-home #matchday-dashboard) :is(.next-match-grid strong,.next-match-kits strong,.match-venue-card strong,.match-kit-correction>summary,.canonical-match-team strong,.canonical-v11-side strong){color:var(--gch-white)!important}
html body .content .view :is(#view-matches #matches-next-fixture,#view-home #matchday-dashboard) :is(.next-match-grid span,.next-match-kits span,.match-venue-card span,.match-venue-card small,.match-team-kit){color:rgba(255,255,255,.75)!important}
html body :is(.bottom-nav,.mobile-primary-nav,.top-nav-tabs){
  background:var(--gch-depth-navigation)!important;border-color:var(--gch-depth-line)!important;
  box-shadow:0 -4px 18px -5px rgba(6,69,38,.12),inset 0 1px 1px rgba(255,255,255,.08)!important;
}
html body .club-page-watermark{opacity:.012}
html[data-theme="dark"] body .club-page-watermark{opacity:.015}

/* The splash uses the same supplied badge and one coordinated Figma timeline. */
.app-splash{
  isolation:isolate;display:block;overflow:hidden;
  background:radial-gradient(ellipse at 50% 45%,rgba(13,106,58,.64),transparent 68%),var(--gch-ink);
  color:var(--gch-white);opacity:1;transition:opacity .25s ease-out,visibility 0s .25s;
}
.app-splash.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.app-splash-watermark{position:absolute;z-index:-1;width:700px;max-width:none;height:700px;object-fit:contain;left:calc(50% - 81.5px);top:43%;opacity:.035;pointer-events:none}
.app-splash-inner{
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  width:min(100%,560px);height:100%;min-height:100svh;min-height:100dvh;margin:0 auto;
  padding:max(40px,calc(56px + env(safe-area-inset-top))) 32px max(32px,calc(52px + env(safe-area-inset-bottom)));
  color:inherit;animation:none;
}
.app-splash-context{margin:0;font-size:0.875rem;font-weight:600;line-height:1.43;color:rgba(255,255,255,.7)}
.app-splash-identity{position:relative;display:flex;flex-direction:column;align-items:center;gap:24px;width:100%;padding-block:10px}
.app-splash-identity .app-splash-logo{display:block;width:160px!important;height:160px!important;max-height:none;filter:none;margin:0;animation:kf_50_232_opacity_0 2s linear,kf_50_232_translate_0 2s linear;animation-fill-mode:both}
.app-splash-badge-shadow{position:absolute;top:10px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.04);box-shadow:0 8px 24px -2px rgba(6,69,38,.35);animation:kf_52_226_opacity_0 2s linear;animation-fill-mode:both}
.app-splash-title{margin:0;font-size:2.25rem;font-weight:700;line-height:1.167;letter-spacing:-.02em;animation:kf_50_233_opacity_0 2s linear;animation-fill-mode:both}
.app-splash-description{margin:0;font-size:0.875rem;line-height:1.714;color:rgba(255,255,255,.76);animation:kf_50_234_opacity_0 2s linear;animation-fill-mode:both}
.app-splash-status{display:flex;flex-direction:column;align-items:center;gap:16px;padding-block:12px;animation:kf_50_235_opacity_0 2s linear;animation-fill-mode:both}
.app-splash-status p{margin:0;font-size:0.875rem;line-height:1.43;color:rgba(255,255,255,.68)}
.app-splash-loading{width:120px;height:3px;border-radius:1.5px;overflow:hidden;background:rgba(255,255,255,.12)}
.app-splash-loading span{display:block;width:36px;height:3px;border-radius:1.5px;background:linear-gradient(90deg,rgba(232,247,237,.2),var(--gch-info-green),rgba(232,247,237,.2));animation:kf_50_237_translate_0 3s linear infinite}
html[data-theme="light"] .app-splash{background:radial-gradient(ellipse at 50% 45%,rgba(232,247,237,.8),transparent 68%),var(--gch-depth-canvas);color:var(--gch-ink)}
html[data-theme="light"] .app-splash-context{color:var(--gch-green-950)}
html[data-theme="light"] .app-splash-description,html[data-theme="light"] .app-splash-status p{color:var(--gch-copy)}
html[data-theme="light"] .app-splash-badge-shadow{background:rgba(255,255,255,.7);box-shadow:0 8px 24px -2px rgba(6,69,38,.14)}
html[data-theme="light"] .app-splash-loading{background:rgba(6,69,38,.1)}
html[data-theme="light"] .app-splash-loading span{background:linear-gradient(90deg,rgba(13,106,58,.2),var(--gch-green-800),rgba(13,106,58,.2))}
@keyframes kf_52_226_opacity_0{0%{opacity:0}2%{animation-timing-function:ease-out;opacity:0}21%{opacity:1}100%{opacity:1}}
@keyframes kf_50_232_opacity_0{0%{opacity:0}2%{animation-timing-function:ease-out;opacity:0}21%{opacity:1}100%{opacity:1}}
@keyframes kf_50_232_translate_0{0%{translate:0 8px}2%{animation-timing-function:ease-out;translate:0 8px}21%{translate:0 0}100%{translate:0 0}}
@keyframes kf_50_233_opacity_0{0%{opacity:0}9%{animation-timing-function:ease-out;opacity:0}31%{opacity:1}100%{opacity:1}}
@keyframes kf_50_234_opacity_0{0%{opacity:0}15%{animation-timing-function:ease-out;opacity:0}37.5%{opacity:1}100%{opacity:1}}
@keyframes kf_50_235_opacity_0{0%{opacity:0}22.5%{animation-timing-function:ease-out;opacity:0}40%{opacity:1}100%{opacity:1}}
@keyframes kf_50_237_translate_0{0%{translate:0 0}22.5%{animation-timing-function:ease-in-out;translate:0 0}60%{translate:84px 0}100%{translate:84px 0}}
@media(max-height:600px){
  .app-splash-inner{padding-block:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-bottom));gap:16px;overflow:auto}
  .app-splash-identity{gap:12px}.app-splash-identity .app-splash-logo,.app-splash-badge-shadow{width:96px!important;height:96px!important}
  .app-splash-title{font-size:1.75rem;line-height:1.143}.app-splash-status{gap:10px}
}
@media(prefers-reduced-motion:reduce){
  .app-splash{transition:none}
  .app-splash :is(.app-splash-logo,.app-splash-badge-shadow,.app-splash-title,.app-splash-description,.app-splash-status,.app-splash-loading span){animation:none;opacity:1;translate:none}
}

/* v0 review refinements, 12 October 2026: readable text and consistent navigation. */
:root{--gch-shell-gutter:clamp(16px,4vw,28px)}
html body{font-size:1rem}
html body .hero{height:auto!important;min-height:calc(var(--hero-band) + var(--android-inset-top,0px))!important;padding:calc(16px + var(--android-inset-top,0px)) var(--gch-shell-gutter) 16px!important}
html body .content{max-width:none;padding-inline:var(--gch-shell-gutter)}
html body .top-nav-tabs{padding-inline:var(--gch-shell-gutter)}
html body .top-nav-tabs .top-nav-tab.nav-item{font-size:.875rem;padding-inline:12px}
html body .top-nav-tabs .top-nav-tab.nav-item:first-child{padding-left:0}
html body .view :is(.screen-section-nav,.communications-tabs) button{font-size:.875rem}
html body .view :is(label,.helper,.muted,.small-text){font-size:.875rem}
html body #matches-next-versus:empty{display:none}
html[data-theme="dark"] body .match-section-count{background:var(--gch-green-950);color:var(--gch-info-green)}
.screen-section-nav{scroll-padding-inline:16px;--nav-fade-start:0px;--nav-fade-end:0px}
.screen-section-nav.has-scroll-start{--nav-fade-start:16px}
.screen-section-nav.has-scroll-end{--nav-fade-end:16px}
.screen-section-nav:is(.has-scroll-start,.has-scroll-end){mask-image:linear-gradient(90deg,transparent,#000 var(--nav-fade-start),#000 calc(100% - var(--nav-fade-end)),transparent)}
html body #view-more .settings-accordion{border:1px solid var(--gch-depth-line)!important;border-radius:var(--gch-radius-card);background:var(--gch-depth-panel)!important;box-shadow:var(--gch-shadow-card);margin-bottom:16px}
html body #view-more .settings-accordion>summary{padding:16px;font-size:1rem;line-height:1.4}
html body #view-more .settings-accordion-body{padding:0 16px 16px}
html body #view-club .admin-home-directory-link{grid-column:1/-1;margin:0;padding:16px;border-radius:var(--gch-radius-card)!important}
#admin-team-count:empty{display:none}
#view-club .admin-home-footer{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 24px;border-top:1px solid var(--gch-control-line);padding-top:4px}
html body #view-club .admin-home-footer .text-button{float:none;display:inline-flex;align-items:center;min-height:44px;padding:8px 0;font-size:.875rem;font-weight:600;text-decoration:underline;text-underline-offset:3px;color:var(--gch-control-choice-copy)}

html body .hero-copy .eyebrow{font-size:.75rem}
html body .hero-copy .season-line{font-size:.8125rem}
html body .view>.section-title-row h2{font-size:clamp(1.375rem,4.6vw,1.75rem)!important}

html body .mobile-primary-item{font-size:.75rem;line-height:1.3;min-height:56px;height:auto}
html body .bottom-nav .nav-item{font-size:.6875rem}

/* Approved Figma Matches / Fixture and Result cards, using the shared palette. */
.skip-link{position:fixed;top:8px;left:12px;z-index:10000;padding:12px 16px;background:var(--gch-white);color:var(--gch-green-950);border:2px solid var(--gch-green-950);border-radius:12px;transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
#app:focus{outline:none}
#view-club .club-matches-browser{background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important}
#view-club .club-matches-switch{padding:4px;border-radius:12px;background:var(--gch-soft-green);gap:4px;margin-bottom:20px}
#view-club .club-matches-switch button{min-height:48px;border-radius:12px}
#view-club .club-matches-switch button.active{background:var(--gch-green-950);color:#fff}
.club-weekend-navigation{margin:16px 0;gap:12px}
.club-weekend-navigation strong{font-size:1.25rem;text-align:center;line-height:1.3;overflow-wrap:anywhere}
.club-weekend-navigation button{min-width:48px;min-height:48px}
.club-match-day{display:grid;gap:12px;margin-top:20px}
.club-match-day-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 8px}
.club-match-day-heading h3{margin:0;font-size:1.125rem}
.club-match-day-heading span{color:var(--muted);font-size:.75rem;white-space:nowrap}
.club-match-day .club-fixture-group h3{font-size:.875rem}
.club-match-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px}
.club-match-card{position:relative;min-width:0;display:grid;gap:8px;padding:12px 16px;border:1px solid var(--gch-line);border-radius:20px;background:linear-gradient(140deg,#fff,#f3f6f4);box-shadow:0 6px 16px -5px rgba(17,23,21,.12);color:var(--ink)}
.club-match-card-meta,.club-match-card-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.75rem;color:var(--muted)}
.club-match-card-meta>span:first-child{min-width:0;overflow-wrap:anywhere}
.club-match-card-meta .cup-round{display:inline;font-size:inherit;line-height:inherit;color:inherit}
.club-match-card-meta .cup-round::before{content:' · '}
.club-match-card-meta .club-fixture-time{font-size:.875rem;white-space:nowrap;color:var(--ink)}
.club-match-card-team{display:flex;align-items:center;gap:8px;min-width:0}
.club-match-card-team .club-identity-badge{width:28px;height:28px;flex:0 0 28px;object-fit:contain}
.club-match-card-team strong{font-size:.875rem;line-height:1.45;flex:1;min-width:0;overflow-wrap:anywhere}
.club-card-versus{font-weight:500}
.club-card-score{font-size:2rem;line-height:1.2;min-width:1.5em;text-align:right;font-variant-numeric:tabular-nums}
.club-card-link{border:0;border-radius:8px;background:transparent;color:var(--gch-green-950);font:inherit;font-weight:600;min-height:44px;padding:8px 0 8px 8px;text-align:right}
.club-fixture-category-link{width:100%;min-height:48px;margin-top:12px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.club-fixture-notes{font-size:.75rem;line-height:1.4;margin:0;color:var(--gch-error)}
.club-cup-feature{padding:16px;border-radius:20px;background:linear-gradient(130deg,#0d6a3a,#064526 45%,#111715);color:#fff;box-shadow:0 12px 28px -6px rgba(17,23,21,.35)}
.club-cup-feature p{font-size:.875rem;margin:4px 0}
.club-cup-feature p:first-child{font-size:.75rem}
.club-cup-feature h3{font-size:1.25rem!important;margin:8px 0}
.club-cup-feature .club-fixture-category-link{background:#e8f7ed;color:#064526;border-color:transparent}
.club-match-summary-meta{display:grid;grid-template-columns:auto 1fr;gap:12px;font-size:.875rem}
.club-match-summary-meta dd{margin:0;overflow-wrap:anywhere}
.club-report-section{margin-top:20px}
.club-report-section h4{font-size:1rem;margin:0 0 8px}
.club-report-section p{font-size:.875rem;margin:8px 0}
.club-report-notes{white-space:pre-wrap;overflow-wrap:anywhere}
html[data-theme="dark"] #view-club .club-matches-switch{background:rgba(255,255,255,.05)}
html[data-theme="dark"] .club-match-card,html[data-theme="dark"] body.club-watermark-ready .content .club-match-card{background:linear-gradient(140deg,rgba(255,255,255,.105),rgba(255,255,255,.025))!important;border-color:rgba(255,255,255,.12);box-shadow:0 6px 16px -5px rgba(17,23,21,.32),inset 0 1px 1px rgba(255,255,255,.06)}
html[data-theme="dark"] .club-card-link{color:#e8f7ed}
html[data-theme="dark"] .club-fixture-notes{color:#ffb8b8}
@media(max-width:560px){
  #view-club .club-match-card{padding:12px 16px;border-radius:20px}
  #view-club .club-matches-filters{gap:8px}
  #view-club .club-matches-filters label{min-width:0;flex:1}
  #view-club .club-matches-filters select{min-height:48px}
  #view-club .club-match-card-grid{grid-template-columns:1fr}
}
/* Override the earlier generic tab and fixture rules with the approved screen. */
#view-club .club-matches-switch{background:var(--gch-soft-green)!important;border:0!important;border-radius:12px!important;padding:4px!important}
#view-club .club-matches-switch button{min-height:48px!important;border:1px solid var(--gch-line)!important;border-radius:12px!important;background:transparent!important;color:var(--ink)!important}
#view-club .club-matches-switch button.active{background:var(--gch-green-950)!important;color:#fff!important;border-color:var(--gch-green-950)!important}
#view-club .club-match-card{display:grid;grid-template-columns:minmax(0,1fr)}
.club-results-day-heading{grid-column:1/-1;font-size:1.125rem;margin:8px 0 0}
html[data-theme="dark"] #view-club .club-matches-switch{background:rgba(255,255,255,.05)!important}
html[data-theme="dark"] #view-club .club-matches-switch button{border-color:rgba(255,255,255,.12)!important}

#view-club .club-weekend-navigation{grid-template-columns:48px minmax(0,1fr) 48px;margin:16px 0}
#view-club .club-weekend-navigation button{min-width:48px;min-height:48px}
#view-club .club-weekend-navigation strong{font-size:1.25rem;line-height:1.3}
.club-match-card:is([data-club-fixture-detail],[data-club-result-detail]){cursor:pointer}
.club-match-card:focus-within{outline:2px solid var(--gch-green-600);outline-offset:3px}

/* Complete the approved visual rollout beyond .content: login, dialogs and stats. */
html body.auth-open #activation-gate{
  --gch-control-surface:var(--gch-white);--gch-control-copy:var(--gch-ink);
  --gch-control-muted:var(--gch-muted);--gch-control-line:var(--gch-line);
  --gch-control-choice:var(--gch-soft-green);--gch-control-choice-copy:var(--gch-green-800);
  --auth-login-bg:linear-gradient(108deg,var(--gch-white) 13%,var(--gch-soft-green) 84%);
  --auth-login-panel:linear-gradient(123deg,var(--gch-white) 13%,var(--gch-soft-green) 84%);
  color-scheme:light;background:var(--auth-login-bg)!important;padding:0!important;align-items:stretch!important;
}
html[data-theme="dark"] body.auth-open #activation-gate{
  --gch-control-surface:rgba(255,255,255,.05);--gch-control-copy:var(--gch-white);
  --gch-control-muted:rgba(255,255,255,.75);--gch-control-line:rgba(255,255,255,.12);
  --gch-control-choice:rgba(41,166,77,.12);--gch-control-choice-copy:var(--gch-info-green);
  --auth-login-bg:linear-gradient(108deg,var(--gch-green-950) 13%,var(--gch-ink) 84%);
  --auth-login-panel:linear-gradient(123deg,rgba(255,255,255,.105) 13%,rgba(255,255,255,.035) 84%);
  color-scheme:dark;
}
html body.auth-open #activation-gate .auth-redesign{
  position:relative;isolation:isolate;display:flex!important;flex-direction:column;align-items:center;
  gap:16px;width:min(460px,100%)!important;max-width:100%!important;min-height:100dvh!important;
  height:auto!important;flex-shrink:0;margin:0 auto!important;padding:calc(28px + var(--android-inset-top,0px) + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom))!important;
  border:0!important;border-radius:0!important;overflow:visible!important;background:transparent!important;
  color:var(--gch-control-copy);font-family:var(--gch-font);box-shadow:none!important;
}
html body.auth-open #activation-gate .auth-redesign .auth-welcome{position:relative;min-width:0;width:100%}
html body.auth-open #activation-gate .auth-redesign .auth-brand{
  display:flex!important;flex-direction:column;align-items:center;gap:8px;min-height:0!important;
  padding:0!important;grid-area:auto!important;
}
html body.auth-open #activation-gate .auth-redesign .auth-brand-lockup{
  width:88px!important;height:88px!important;max-width:none!important;max-height:none!important;
  object-fit:contain;filter:drop-shadow(0 4px 5px rgba(17,23,21,.24));
}
html body.auth-open #activation-gate .auth-redesign .auth-club-name{margin:0;font-size:.875rem;line-height:1.45;font-weight:600;letter-spacing:.08em;color:var(--gch-control-choice-copy);text-align:center}
html body.auth-open #activation-gate .auth-redesign :is(.auth-story-heading,.auth-story-copy){display:none}
html body.auth-open #activation-gate .auth-redesign .auth-content{position:relative;display:grid;gap:16px;min-width:0;width:100%;max-width:440px}
html body.auth-open #activation-gate .auth-redesign .auth-main{
  display:grid!important;gap:12px;min-width:0;grid-area:auto!important;margin:0!important;padding:20px!important;
  background:var(--auth-login-panel)!important;color:var(--gch-control-copy);border:1px solid var(--gch-control-line);
  border-radius:20px;box-shadow:var(--gch-shadow-card)!important;text-align:left;
}
html body.auth-open #activation-gate .auth-redesign .auth-heading-copy{display:grid;gap:4px}
html body.auth-open #activation-gate .auth-redesign .auth-main h1{margin:0;font-size:1.875rem!important;line-height:1.15!important;font-weight:700;color:var(--gch-control-copy)!important}
html body.auth-open #activation-gate .auth-redesign .auth-lead{margin:0!important;font-size:.875rem!important;line-height:1.45!important;color:var(--gch-control-copy)!important}
html body.auth-open #activation-gate .auth-redesign #cloud-signin-form{display:grid;gap:12px}
html body.auth-open #activation-gate .auth-redesign .auth-fields{gap:16px!important}
html body.auth-open #activation-gate .auth-redesign .auth-field-group{gap:8px}
html body.auth-open #activation-gate .auth-redesign .auth-field-label{color:var(--gch-control-copy)!important;font-size:.875rem;line-height:1.43;font-weight:600}
html body.auth-open #activation-gate .auth-redesign .auth-field{min-height:52px!important;border-color:var(--gch-control-line)!important;border-radius:12px!important;background:var(--gch-control-surface)!important;box-shadow:none!important}
html body.auth-open #activation-gate .auth-redesign .auth-field-icon{display:none}
html body.auth-open #activation-gate .auth-redesign .auth-field :is(input,select){height:50px!important;min-height:50px;padding:0 16px!important;font-size:1rem!important;line-height:1.5!important;font-weight:400!important;color:var(--gch-control-copy)!important;background:transparent!important}
html body.auth-open #activation-gate .auth-redesign input::placeholder{color:var(--gch-control-muted)!important;opacity:1}
html body.auth-open #activation-gate .auth-redesign .auth-password-wrap .auth-field{padding-right:60px}
html body.auth-open #activation-gate .auth-redesign .auth-password-wrap input{padding-right:0!important}
html body.auth-open #activation-gate .auth-redesign .auth-eye{bottom:4px;right:8px;width:44px;height:44px!important;min-height:44px;color:var(--gch-control-choice-copy)!important;font-size:.875rem;background:transparent!important}
html body.auth-open #activation-gate .auth-redesign :is(.auth-forgot,.auth-back,.auth-link-strong){color:var(--gch-control-choice-copy)!important;font-size:.875rem!important;font-weight:600;min-height:44px;line-height:1.45}
html body.auth-open #activation-gate .auth-redesign .auth-forgot{padding:8px 0!important;justify-self:end}
html body.auth-open #activation-gate .auth-redesign :is(.auth-primary,.auth-secondary){min-height:52px!important;line-height:1.25;padding:12px 16px!important;border-radius:12px!important;font-weight:600!important;font-size:1rem!important}
html body.auth-open #activation-gate .auth-redesign .auth-primary{background:linear-gradient(145deg,var(--gch-green-800),var(--gch-green-950))!important;color:var(--gch-white)!important;box-shadow:var(--gch-shadow-action)!important}
html body.auth-open #activation-gate .auth-redesign .auth-secondary{background:var(--gch-control-choice)!important;color:var(--gch-control-copy)!important;border:1px solid var(--gch-control-line)!important;font-size:.875rem!important;box-shadow:none!important}
html body.auth-open #activation-gate .auth-redesign .auth-primary span:last-child{display:none}
html body.auth-open #activation-gate .auth-redesign .auth-link-strong{margin:0!important;padding:8px;text-decoration:none;font-weight:400!important}
html body.auth-open #activation-gate .auth-redesign .auth-other-options{display:grid;gap:8px}
html body.auth-open #activation-gate .auth-redesign .auth-alternate-routes{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;gap:12px}
html body.auth-open #activation-gate .auth-redesign :is(.auth-player-eligibility,.auth-login-footer){margin:0;color:var(--gch-control-muted);font-size:.75rem;line-height:1.45;text-align:center}
html body.auth-open #activation-gate .auth-redesign :is(button,input,select):focus-visible{outline:2px solid var(--gch-control-focus)!important;outline-offset:3px}
html body.auth-open #activation-gate .auth-redesign input:-webkit-autofill{-webkit-text-fill-color:var(--gch-control-copy)!important;box-shadow:0 0 0 1000px var(--gch-control-choice) inset!important}
@media(min-width:1000px){
  html body.auth-open #activation-gate .auth-redesign{display:grid!important;grid-template-columns:minmax(0,560px) minmax(0,440px);align-items:center;justify-content:center;gap:clamp(40px,8.33vw,120px);width:min(1440px,100%)!important;padding:72px clamp(40px,6.94vw,100px)!important}
  html body.auth-open #activation-gate .auth-redesign::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:70px;top:-130px;width:660px;height:660px;background:url("shooters-hill-logo.png") center/contain no-repeat;opacity:.025}
  html body.auth-open #activation-gate .auth-redesign .auth-welcome{display:grid;gap:24px}
  html body.auth-open #activation-gate .auth-redesign .auth-brand{align-items:flex-start}
  html body.auth-open #activation-gate .auth-redesign .auth-brand-lockup{width:136px!important;height:136px!important}
  html body.auth-open #activation-gate .auth-redesign .auth-club-name{text-align:left}
  html body.auth-open #activation-gate .auth-redesign .auth-story-heading{display:block;margin:0;font-size:clamp(2.5rem,4.45vw,4rem);line-height:1.15;font-weight:700;letter-spacing:-.025em;color:var(--gch-control-copy)}
  html body.auth-open #activation-gate .auth-redesign .auth-story-copy{display:block;margin:0;font-size:1.125rem;line-height:1.45;color:var(--gch-control-copy)}
}

/* Dialogs are outside .content, and therefore need the same shared surfaces. */
html[data-theme] body dialog.modal{background:var(--gch-depth-canvas)!important;color:var(--gch-control-copy)!important;border:1px solid var(--gch-depth-line)!important;border-radius:24px;box-shadow:0 20px 60px -12px rgba(6,69,38,.4);font-size:1rem}
html body dialog.modal :is(.helper,.muted,.kicker){color:var(--gch-control-muted)!important;font-size:.8125rem;line-height:1.5}
html body dialog.modal h3{font-size:1.125rem;line-height:1.3;font-weight:650}
html body dialog.modal :is(.primary-button,.secondary-button,.icon-button){min-height:48px;border-radius:12px;font-size:.875rem;line-height:1.4;font-weight:600!important}
html body dialog.modal .primary-button{background:linear-gradient(145deg,var(--gch-green-800),var(--gch-green-950))!important;box-shadow:var(--gch-shadow-action)!important;color:var(--gch-white)!important}
html body dialog.modal :is(.secondary-button,.icon-button){background:var(--gch-depth-panel)!important;border:1px solid var(--gch-control-line)!important;color:var(--gch-control-copy)!important;box-shadow:none!important}
html body dialog.modal .modal-actions{background:var(--gch-depth-navigation)!important;border-top:1px solid var(--gch-depth-line);gap:10px;padding-block:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
html body #match-detail-dialog{width:min(94vw,680px);max-height:calc(100dvh - 24px)}
html body #match-detail-dialog #match-detail-form{gap:16px;padding:20px}
html body #match-detail-dialog .detail-match-summary{background:var(--gch-control-choice)!important;border:1px solid var(--gch-depth-line);padding:12px 16px;border-radius:12px;flex-wrap:wrap}
html body #match-detail-dialog .detail-match-summary :is(strong,span){font-size:.875rem;line-height:1.5;color:var(--gch-control-copy)!important}
html body #match-detail-dialog #match-detail-versus{padding:20px 16px;background:var(--gch-depth-feature)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:20px;box-shadow:var(--gch-shadow-card)}
html body #match-detail-dialog #match-detail-versus :is(strong,.match-team-name,.club-listing-name){color:var(--gch-white)!important;font-size:1rem!important;font-weight:650}
html body #match-detail-dialog #match-detail-versus :is(.canonical-v11-label,.canonical-v11-v,.canonical-match-v,.match-versus-label){color:var(--gch-info-green)!important}
html body #match-detail-dialog #match-detail-versus :is(.canonical-v11-badge,.canonical-match-badge,.match-team-badge,.club-identity-badge,.club-badge-monogram){width:56px!important;height:56px!important;object-fit:contain;max-height:none!important}
html body #match-detail-dialog :is(.match-venue-card,.fixture-kit-toggle){background:var(--gch-depth-panel)!important;border:1px solid var(--gch-depth-line)!important;border-radius:16px;padding:16px;box-shadow:var(--gch-shadow-card)}
html body #match-detail-dialog .fixture-kit-toggle button{min-height:48px;font-size:.875rem;font-weight:600;background:var(--gch-control-surface)!important;color:var(--gch-control-copy)!important;border-color:var(--gch-control-line)!important}
html body #match-detail-dialog .fixture-kit-toggle button.active{background:linear-gradient(145deg,var(--gch-green-800),var(--gch-green-950))!important;color:var(--gch-white)!important}
html body #match-detail-dialog .detail-feature-section{border:1px solid var(--gch-depth-line)!important;border-radius:16px;background:var(--gch-depth-panel)!important;padding:16px;box-shadow:var(--gch-shadow-card)}
html body #match-detail-dialog .attendance-player-row{background:transparent!important;border:0!important;border-bottom:1px solid var(--gch-depth-line)!important;border-radius:0;padding:10px 0;min-height:56px;box-shadow:none}
html body #match-detail-dialog .attendance-player-row:last-child{border-bottom:0!important}
html body #match-detail-dialog .attendance-switch{font-size:.875rem;font-weight:600;color:var(--gch-control-muted)!important;flex-wrap:wrap;justify-content:flex-start}
html body #match-detail-dialog .attendance-switch.is-present{color:var(--gch-control-choice-copy)!important}
html body #match-detail-dialog .attendance-switch-track{background:var(--gch-control-line)!important}
html body #match-detail-dialog .attendance-switch.is-present .attendance-switch-track{background:linear-gradient(145deg,var(--gch-green-800),var(--gch-green-950))!important}
html body #match-detail-dialog .attendance-switch-label{font-size:.8125rem;min-width:0}
html body #match-detail-dialog :is(textarea,input,select){font-size:1rem!important;line-height:1.5;font-weight:400;border-radius:12px!important}
html body #match-detail-dialog #save-match-details{grid-column:1/-1;min-height:52px}
html body #match-detail-dialog .kit-clash-warning{border-radius:16px;line-height:1.5;font-size:.875rem}
html body #match-detail-dialog .empty-detail-options{font-size:.875rem;line-height:1.5;padding:12px 16px}

/* Keep staff statistics on a dedicated page and make their values readable. */
html body #view-team-stats #home-player-stats{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
#view-team-stats #home-player-stats>summary{display:none}
#view-team-stats .home-season-details-body{padding:0}
#view-team-stats .dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}
html body #view-team-stats .dashboard-grid>.panel{padding:20px!important;margin:0!important;background:var(--gch-depth-panel)!important;border:1px solid var(--gch-depth-line)!important;border-radius:20px!important;box-shadow:var(--gch-shadow-card)!important}
html body #view-team-stats .season-player-stats{margin-top:16px;padding:20px!important;background:var(--gch-depth-panel)!important;border:1px solid var(--gch-depth-line)!important;border-radius:20px!important;box-shadow:var(--gch-shadow-card)!important}
html body #view-team-stats :is(.rank-item,.mini-item,.award-item){padding-block:12px;border-color:var(--gch-depth-line);font-size:.875rem}
html body #view-team-stats :is(.rank-name,.mini-team){font-weight:650;line-height:1.5;min-width:0;overflow-wrap:anywhere}
html body #view-team-stats .rank-value{display:grid;place-items:center;min-width:36px;min-height:36px;padding:4px 10px;border-radius:12px;background:var(--gch-control-choice);color:var(--gch-control-choice-copy);font-weight:700;font-size:1rem}
html body #view-team-stats .scoreline{font-size:1.125rem;font-weight:650}
html body #view-team-stats .season-player-table-wrap{background:transparent!important;border-radius:12px}
html body #view-team-stats .season-player-table :is(th,td){font-size:.875rem;padding:12px;border-color:var(--gch-depth-line)!important}
html body .league-progress-ring{background:var(--gch-info-green)!important;color:var(--gch-green-950)!important}
html body .league-progress-ring :is(strong,span){color:var(--gch-green-950)!important}
html[data-theme="dark"] body :is(.rank-value,.person-name-button,.text-button,.award-history-inline>summary,.readonly-detail-row strong,.detail-player-row b){color:var(--gch-control-choice-copy)!important}
html body :is(.mini-team,.rank-left){min-width:0;overflow-wrap:anywhere}
html[data-theme] body :is(.match-card,.record-card,.read-only-card,.inbox-card,.team-member-row,.admin-team-card){box-shadow:var(--gch-shadow-card)}
@media(max-width:480px){html body #match-detail-dialog #match-detail-form{padding:16px}html body #match-detail-dialog .detail-feature-section{padding:12px}html body #match-detail-dialog #match-detail-versus{padding:16px 12px}}

html body #match-detail-dialog #match-detail-versus :is(.match-side-label,.match-versus-mark,.match-kit-secondary small){color:var(--gch-info-green)!important}
html[data-theme] body :is(.match-card,.record-card,.read-only-card,.inbox-card,.team-member-row,.admin-team-card){background:var(--gch-depth-panel)!important;border-color:var(--gch-depth-line)!important;color:var(--gch-control-copy)!important}
html body dialog.modal label{font-size:.875rem;font-weight:600;line-height:1.5}
html body #match-detail-dialog .kit-clash-warning{background:linear-gradient(140deg,var(--gch-error-bg),var(--gch-white))!important;color:var(--gch-error)!important}
html[data-theme="dark"] body #match-detail-dialog .kit-clash-warning{background:linear-gradient(140deg,rgba(165,38,38,.22),rgba(165,38,38,.08))!important;color:#ffb8b8!important}
html body #match-detail-dialog .empty-detail-options{background:var(--gch-control-choice)!important;color:var(--gch-control-copy)!important;border-color:var(--gch-control-line)!important}
html body.auth-open #activation-gate .auth-redesign{font-weight:400}
html body.auth-open #activation-gate .auth-redesign .auth-brand{background:transparent!important}
html body.auth-open #activation-gate .auth-redesign .auth-lead{font-weight:400!important}
html body.auth-open #activation-gate .auth-redesign input::placeholder{font-weight:400!important}
html body.auth-open #activation-gate .auth-redesign :is(.auth-player-eligibility,.auth-login-footer){font-weight:500}
html body dialog.modal .modal-actions{background-color:var(--gch-white)!important}
html[data-theme="dark"] body dialog.modal .modal-actions{background-color:var(--gch-ink)!important}
html[data-theme] body .club-page-watermark{opacity:.015!important}

/* Player onboarding follows the shared Admin card and control system. */
.onboarding-team-choice{display:block;max-width:36rem;margin-bottom:16px}
#player-onboarding-content{display:grid;gap:20px}
#player-onboarding-content .panel{margin:0;min-width:0}
.onboarding-overview h3,.onboarding-form h3{font-size:1.25rem;margin:8px 0 16px}
.onboarding-overview>.primary-button{width:100%;margin-top:16px;min-height:48px}
.onboarding-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}
.onboarding-metrics div{display:flex;flex-direction:column;gap:4px;min-width:0}
.onboarding-metrics strong{font-size:1.5rem;font-variant-numeric:tabular-nums;color:var(--ink)}
.onboarding-metrics span{font-size:.8125rem;line-height:1.4;color:var(--muted)}
.onboarding-queue{display:grid;gap:12px}
.onboarding-queue article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--gch-line);min-width:0}
.onboarding-queue article:last-child{border-bottom:0}
.onboarding-queue article>div{min-width:0;overflow-wrap:anywhere}
.onboarding-queue p{font-size:.875rem;line-height:1.4;margin:4px 0;color:var(--muted)}
.onboarding-queue button{flex-shrink:0;min-height:44px}
.onboarding-progress{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0;margin:0}
.onboarding-progress li{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-size:.75rem;color:var(--muted);overflow-wrap:anywhere}
.onboarding-progress li>span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--gch-soft-green);color:var(--gch-green-950);border:1px solid var(--gch-line);font-size:.875rem;font-weight:600}
.onboarding-progress li[aria-current="step"]{color:var(--ink);font-weight:600}
.onboarding-progress li[aria-current="step"]>span{background:var(--gch-green-950);color:#fff;border-color:var(--gch-green-950)}
.onboarding-form fieldset{border:0;padding:0;margin:0;min-width:0}
.onboarding-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.onboarding-fields>label:first-child{grid-column:1/-1}
.onboarding-actions{display:flex;gap:12px;margin-top:24px}
.onboarding-actions>.primary-button{flex:1;min-height:48px}
.onboarding-actions>.secondary-button{min-width:88px;min-height:48px}
.onboarding-review{display:grid;grid-template-columns:minmax(6rem,.6fr) minmax(0,1fr);gap:12px;font-size:.875rem}
.onboarding-review dt{color:var(--muted)}
.onboarding-review dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.onboarding-review small{display:block;font-weight:400;font-size:.8125rem;margin-top:4px;color:var(--muted)}
.onboarding-parent-check{padding:16px;margin-top:16px;border:1px solid var(--gch-line);border-radius:var(--gch-radius-card)}
.onboarding-parent-check p{overflow-wrap:anywhere;font-size:.875rem}
.onboarding-parent-check .checkbox-line{display:flex;align-items:flex-start;gap:12px;font-size:.875rem;line-height:1.5;min-height:44px}
.onboarding-parent-check input[type="checkbox"]{width:20px;height:20px;flex:0 0 20px;min-height:20px;margin-top:2px;accent-color:var(--gch-green-800)}
.onboarding-complete ul{padding-left:20px;font-size:.875rem;line-height:1.6}
#player-onboarding-status.is-error{color:var(--gch-error);font-weight:600}
html[data-theme="dark"] .onboarding-progress li>span{background:rgba(41,166,77,.12);color:#e8f7ed;border-color:#344239}
html[data-theme="dark"] .onboarding-progress li[aria-current="step"]>span{background:var(--gch-green-950);color:#fff}
html[data-theme="dark"] :is(.onboarding-queue article,.onboarding-parent-check){border-color:#344239}
html[data-theme="dark"] #player-onboarding-status.is-error{color:#ffb8b8}
@media(max-width:560px){
  .onboarding-fields{grid-template-columns:minmax(0,1fr)}
  .onboarding-queue article{align-items:flex-start}
  .onboarding-actions{flex-wrap:wrap}
  .onboarding-actions>.primary-button{min-width:180px}
  .onboarding-review{grid-template-columns:minmax(5rem,.5fr) minmax(0,1fr)}
}

/* Coach onboarding shares the reviewed Admin onboarding components. */
#coach-onboarding-status.is-error{color:var(--gch-error);font-weight:600}
.coach-onboarding-form{display:grid;gap:20px}
.coach-onboarding-form>.panel{margin:0;min-width:0}
.coach-onboarding-form h3{margin-bottom:12px}
.coach-onboarding-form select{min-height:52px;width:100%}
.coach-onboarding-form .checkbox-line{display:flex;gap:12px;align-items:flex-start;font-weight:500}
.coach-onboarding-form .checkbox-line input{width:22px;height:22px;flex:0 0 22px;margin-top:2px}
#coach-onboarding-content{min-width:0;overflow-wrap:anywhere}
#coach-onboarding-content>.panel{margin-bottom:20px}
html[data-theme="dark"] #coach-onboarding-status.is-error{color:#ffb8b8}
#coach-onboarding-panel{width:100%;max-width:680px;margin-inline:auto}
.coach-onboarding-form .checkbox-line{min-height:44px}
@media(max-width:560px){#coach-onboarding-content .onboarding-queue article{flex-direction:column;align-items:stretch}#coach-onboarding-content .onboarding-queue button{width:100%;white-space:normal}}
#coach-onboarding-content .onboarding-progress{grid-template-columns:repeat(auto-fit,minmax(min(100%,3.5rem),1fr))}
#coach-onboarding-content .onboarding-progress li{overflow-wrap:normal}
@media(max-width:560px){#coach-onboarding-content .onboarding-review{grid-template-columns:minmax(0,1fr);gap:6px}#coach-onboarding-content .onboarding-review dd{margin-bottom:12px}}

/* October 13 Figma Admin directories: 95:921/928/929/930/931 and light equivalents.
   Use existing theme surfaces and original shared header/navigation assets. */
html body .content .admin-people-page{max-width:680px;margin-inline:auto;min-width:0;color:var(--gch-control-copy);overflow-wrap:anywhere}
html body .admin-people-page .section-title-row{margin:16px 0}
html body .admin-people-page .section-title-row h2{font-size:1.875rem!important;line-height:1.2;font-weight:700}
html body .admin-people-page .section-title-row .kicker{font-size:.75rem;line-height:1.4;font-weight:500}
html body .admin-people-page>.muted{font-size:.875rem;line-height:1.45;margin:0 0 20px}
html body .content .admin-people-page .panel{padding:16px!important;margin:0 0 16px!important;border-radius:20px!important}
html body .admin-people-page .panel h3{font-size:1.25rem;line-height:1.3;font-weight:600;margin:0 0 12px}
html body .admin-people-page .panel p{font-size:.875rem;line-height:1.45;margin:0 0 4px}
html body .admin-people-page .panel p:last-child{margin-bottom:0}
html body .admin-people-page :is(.admin-home-team-filters,.admin-assign-row){display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:12px 0 0}
html body .admin-people-page :is(label,.admin-filter-label,.admin-access-filter){display:grid;gap:8px;min-width:0;font-size:.875rem;line-height:1.4;font-weight:600;color:var(--gch-control-copy)}
html body .admin-people-page :is(input,select){width:100%;min-width:0;min-height:52px;padding:12px 16px;border-radius:12px;font-size:1rem;line-height:1.5;font-weight:400}
html body .admin-people-page :is(.admin-directory-refresh,.admin-review-actions>button,#assign-coach-button){display:flex;align-items:center;justify-content:center;min-height:52px;width:100%;margin:16px 0 0;white-space:normal;text-align:center;text-decoration:none;font-size:1rem;line-height:1.5}
html body .admin-people-page :is(.admin-access-management,.admin-home-directory){padding:0;border:0;background:transparent;box-shadow:none}
html body .admin-people-page :is(.admin-coach-list,.admin-access-list,#coach-requests-list,.admin-team-grid){display:grid;gap:16px;margin:0;min-width:0}
html body .admin-people-page .admin-home-team-group{display:grid;gap:16px;min-width:0}
html body .admin-people-page .admin-home-team-group>h4{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
html body .content .admin-people-page :is(.admin-directory-row,.admin-request-row,.admin-home-team,.page-link){position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:0;min-height:88px;margin:0;padding:12px!important;border:0!important;border-radius:8px!important;background:var(--gch-control-surface)!important;box-shadow:none!important;text-align:left;color:var(--gch-control-copy)!important}
html body .admin-people-page :is(.admin-request-row,.admin-home-team)>span:first-child{display:grid;gap:2px;flex:1;min-width:0}
html body .admin-people-page :is(.team-member-copy,.page-link>span:first-child){display:grid;gap:2px;flex:1;min-width:0}
html body .admin-people-page :is(.admin-request-row,.admin-home-team,.page-link) strong{font-size:.875rem;line-height:1.45;font-weight:600}
html body .admin-people-page :is(.team-member-copy>span,.admin-request-row small,.admin-home-team small,.page-link small){font-size:.75rem;line-height:1.4;color:var(--gch-control-muted);overflow-wrap:anywhere}
html body .admin-people-page :is(.admin-directory-arrow,.admin-request-row>span:last-child,.admin-home-team-size,.page-link>span:last-child){flex:0 0 20px;font-size:1.25rem;line-height:1.3;color:var(--gch-control-focus)}
html body .admin-people-page .person-name-button{position:static;min-height:0;margin:0;padding:0;border:0;background:transparent;font-size:.875rem;line-height:1.45;font-weight:600;text-align:left;white-space:normal;color:var(--gch-control-copy)}
html body .admin-people-page .person-name-button::after{content:"";position:absolute;inset:0;border-radius:8px}
html body .admin-people-page :is(.admin-request-row,.admin-home-team,.person-name-button):focus-visible{outline:3px solid var(--gch-control-focus);outline-offset:3px}
html body .admin-people-page .admin-directory-row:focus-within{outline:3px solid var(--gch-control-focus);outline-offset:3px}
html body .admin-coach-centre.admin-people-page>.page-link{margin-top:16px}
html body .admin-people-page>.helper{font-size:.75rem;line-height:1.4;margin:16px 0}
html body #staff-request-review-panel{display:grid;gap:0;min-width:0}
html body .admin-review-actions{display:grid;gap:12px}
html body .admin-review-actions>button{margin:0!important}
html body #staff-request-review-status.is-error{color:var(--gch-error);font-weight:600}
html[data-theme="dark"] body #staff-request-review-status.is-error{color:#ffb8b8}
html body .content .admin-people-page .primary-button{background:linear-gradient(180deg,var(--gch-white),var(--gch-info-green))!important;color:var(--gch-green-950)!important;border:1px solid var(--gch-control-line)!important;font-weight:600}
@media(min-width:900px){html body .admin-people-page .admin-home-team-filters{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}

html body .content .admin-people-page .admin-profile-row{min-height:88px;max-width:none;text-decoration:none;font-weight:600}
html body .admin-people-page .admin-profile-row::after{content:none}
html body .admin-people-page .admin-profile-row>span:first-child{display:grid;gap:2px;min-width:0;flex:1}
html body .admin-people-page .admin-profile-row strong{font-size:.875rem;line-height:1.45;color:var(--gch-control-copy)}
html body .admin-people-page .admin-profile-row small{font-size:.75rem;line-height:1.4;color:var(--gch-control-muted)}
html[data-theme] body #view-club .admin-coach-centre.admin-people-page{padding:0!important;border:0!important;border-top:0!important;box-shadow:none!important;background:transparent!important}
html body .admin-people-page .admin-access-filter select{max-width:none;width:100%}
/* Finish reviewed directory geometry without changing shared routes or controls. */
html body .admin-people-page :is(input,select){inline-size:100%!important;max-width:none!important;min-height:52px!important;background:var(--gch-control-surface)!important;color:var(--gch-control-copy)!important;border-color:var(--gch-control-line)!important}
html body .admin-people-page .admin-access-filter{width:100%;justify-items:stretch}
html body .admin-people-page .admin-filter-label{margin:0}
html body .admin-people-page h2[tabindex="-1"]:focus-visible{outline:none}
html body .admin-people-page .section-title-row .kicker{display:block!important}
html body #view-club:has(#club-coaches-panel:not(.hidden))>.section-title-row{display:none}
@media(max-width:899px){
 html body .content:has(>.admin-people-page.active),
 html body .content:has(>#view-club.active #club-coaches-panel:not(.hidden)){padding-inline:20px!important}
 html body:has(.admin-people-page.active) .mobile-primary-item>span,
 html body:has(#view-club.active #club-coaches-panel:not(.hidden)) .mobile-primary-item>span{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}
}

html body .admin-people-page label{grid-template-columns:minmax(0,1fr);justify-content:stretch}
html[data-theme="dark"] body .admin-people-page{--gch-control-surface:rgba(255,255,255,.05);--gch-control-copy:var(--gch-white);--gch-control-muted:rgba(255,255,255,.67);--gch-control-line:rgba(255,255,255,.12);--gch-control-choice-copy:var(--gch-info-green)}

/* Reviewed Team Workspace: Figma 123:1612, 128:1636 and 129:1724/1947,
   light pairs, 3v3/11v11 and 1024px plan. Keep shared routes and save handlers. */
html body .team-workspace{--workspace-paper:var(--gch-white);--workspace-info:var(--gch-soft-green);--workspace-row:linear-gradient(145deg,var(--gch-white),var(--gch-soft-green));color:var(--gch-control-copy);min-width:0;overflow-wrap:anywhere}
html[data-theme="dark"] body .team-workspace{--workspace-paper:rgba(255,255,255,.06);--workspace-info:#14291c;--workspace-row:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025));--gch-control-surface:rgba(255,255,255,.05);--gch-control-copy:var(--gch-white);--gch-control-muted:rgba(255,255,255,.67);--gch-control-line:rgba(255,255,255,.12)}
html body .content>.team-workspace{max-width:1024px;margin-inline:auto}
html body .team-workspace .section-title-row{display:flex!important;margin:16px 0}
html body .team-workspace .section-title-row h2,html body #parent-request-review-title{font-size:1.875rem!important;line-height:1.2;font-weight:700}
html body .team-workspace .kicker{display:block!important;font-size:.75rem;font-weight:600;line-height:1.4;letter-spacing:.08em}
html body .team-workspace>.muted{font-size:.875rem;line-height:1.45;margin:0 0 20px}
html body .team-workspace :is(p,.helper){font-size:.875rem;line-height:1.45;font-weight:400}
html body .team-workspace .helper{color:var(--gch-control-muted)}
html body .team-workspace .panel{display:block;padding:16px!important;margin:0!important;border:1px solid var(--gch-control-line)!important;border-radius:20px!important;background:var(--workspace-paper)!important;box-shadow:none!important;color:var(--gch-control-copy)!important;min-width:0}
html body .team-workspace .panel h3{font-size:1.25rem!important;line-height:1.3;font-weight:600;margin:0 0 12px}
html body .team-workspace .panel p{margin:0 0 12px;color:inherit}
html body .team-workspace .panel p:last-child{margin-bottom:0}
html body .team-workspace :is(.squad-banner,.parent-self-signup-note,.parent-verification-guidance){background:var(--workspace-info)!important}
html body .team-workspace :is(.squad-list,.squad-view-page,.tactics-plan-controls,.team-members-list,#team-access-settings){display:grid;grid-template-columns:minmax(0,1fr);gap:16px;min-width:0}
html body .team-workspace :is(button,.secondary-button,.primary-button){font-family:inherit;white-space:normal;max-width:none}
html body .team-workspace :is(.page-back,.workspace-refresh,#add-player-btn,#reset-tactics,#select-all-available){display:flex;align-items:center;justify-content:center;min-height:52px;width:100%;margin:0;padding:12px 16px;border-radius:8px;font-size:.875rem;font-weight:600;line-height:1.45;text-decoration:none}
html body #view-team-access>.page-back{margin-bottom:16px}
html body .team-workspace .secondary-button{background:var(--workspace-info)!important;color:var(--gch-control-copy)!important;border:1px solid var(--gch-control-line)!important;box-shadow:none!important}
html body .team-workspace .primary-button{background:linear-gradient(145deg,#0a673b,#111715)!important;color:#fff!important;border:1px solid var(--gch-control-line)!important;font-weight:600}
html body .team-workspace .squad-view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;padding:0!important;margin:0 0 16px;border:0!important;background:transparent!important}
html body .content .team-workspace .squad-view-tabs button{min-height:52px!important;margin:0;border:1px solid var(--gch-control-line)!important;border-radius:8px!important;background:var(--workspace-info)!important;color:var(--gch-control-copy)!important;box-shadow:none!important;font-size:.875rem;line-height:1.45}
html body .content .team-workspace .squad-view-tabs button[aria-selected="true"]{background:linear-gradient(145deg,#0a673b,#111715)!important;color:#fff!important;border-bottom-color:var(--gch-control-line)!important}
html body .team-workspace .squad-count{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;margin:0 0 12px}
html body .team-workspace .squad-count :is(strong,span){display:inline;font-size:1.25rem!important;line-height:1.3;color:inherit!important;font-weight:600}
html body .team-workspace .squad-format-details{margin:0;border:0;border-radius:8px;background:var(--workspace-row);box-shadow:none}
html body .team-workspace .squad-format-details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px;padding:12px;list-style:none;cursor:pointer}
html body .team-workspace .squad-format-details summary::-webkit-details-marker{display:none}
html body .team-workspace .squad-format-details summary>span:first-child{display:grid;gap:2px;min-width:0}
html body .team-workspace .squad-format-details summary strong{font-size:.875rem;font-weight:600;line-height:1.45}
html body .team-workspace .squad-format-details summary small{font-size:.75rem;line-height:1.4;color:var(--gch-control-muted)}
html body .team-workspace .squad-format-details>.helper{padding:0 12px 12px;margin:0}
html body .team-workspace .squad-format-summary{padding:0 12px 12px;gap:8px}
html body .team-workspace .squad-format-summary span{background:var(--workspace-info)!important;color:var(--gch-control-copy)!important;border-color:var(--gch-control-line);font-size:.75rem;font-weight:500}
html body .team-workspace :is(.workspace-directory-row,.admin-profile-row,.tactics-bench-player,.parent-request-player,.matchday-player-option){position:relative;display:flex!important;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:0;min-height:76px;padding:12px!important;margin:0;border:0!important;border-radius:8px!important;background:var(--workspace-row)!important;box-shadow:none;text-align:left;color:var(--gch-control-copy)!important}
html body .team-workspace .admin-profile-row::after{content:none}
html body .team-workspace :is(.workspace-row-copy,.admin-profile-row>span:first-child){display:grid;gap:2px;min-width:0;flex:1}
html body .team-workspace :is(.workspace-row-copy,.admin-profile-row>span:first-child) strong{font-size:.875rem;line-height:1.45;font-weight:600;color:inherit}
html body .team-workspace :is(.workspace-row-copy,.admin-profile-row>span:first-child) small{font-size:.75rem!important;line-height:1.4;font-weight:400;padding:0;background:transparent;color:var(--gch-control-muted)!important}
html body .team-workspace :is(.workspace-directory-row,.admin-profile-row)>span:last-child:not(:first-child){flex:0 0 20px;font-size:1.25rem;line-height:1.3;color:var(--gch-control-focus)}
html body .team-workspace :is(button,label,summary):focus-visible,html body .team-workspace .parent-request-player:focus-within{outline:3px solid var(--gch-control-focus);outline-offset:3px}
html body .team-workspace .member-group-label{font-size:1.25rem;line-height:1.3;font-weight:600;padding:0;margin:0;color:inherit}
html body .team-workspace .tactics-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:0!important;background:transparent!important;box-shadow:none!important;border:0!important}
html body .team-workspace .tactics-board-card{align-self:start;display:flex;flex-direction:column;gap:16px}
html body .team-workspace .tactics-board-card .tactics-fixture{order:0;display:grid;gap:8px;padding:0;border:0;background:transparent}
html body .team-workspace .tactics-fixture strong{font-size:1.25rem;font-weight:600;line-height:1.3}
html body .team-workspace .tactics-fixture :is(span,small){font-size:.875rem;font-weight:400;line-height:1.45;color:var(--gch-control-muted)}
html body .team-workspace .tactics-fixture #tactics-plan-summary{color:var(--gch-control-copy);font-weight:500}
html body .team-workspace .tactics-fixture #tactics-match-guide{font-size:.75rem}
html body .team-workspace .tactics-pitch{order:1;width:100%;aspect-ratio:321/380;margin:0;border:0;border-radius:12px;background:#064526;box-shadow:none;overflow:hidden}
html body .team-workspace .tactics-pitch::before{content:"";position:absolute;inset:12px;border:1px solid #eef6f1;pointer-events:none}
html body .team-workspace .pitch-halfway{left:12px;right:12px;border-width:1px}
html body .team-workspace .pitch-circle{width:24%;height:auto;aspect-ratio:1;border-width:1px}
html body .team-workspace .pitch-box{left:30%;width:40%;height:14%;border-width:1px}
html body .team-workspace .pitch-box-top{top:12px}
html body .team-workspace .pitch-box-bottom{bottom:12px}
html body .team-workspace .tactics-player{width:clamp(52px,20%,64px);min-height:52px;padding:5px 3px;border-radius:8px;background:#eef6f1!important;color:#064526!important;box-shadow:none;font-weight:600;gap:2px}
html body .team-workspace .tactics-player b{font-size:.875rem;line-height:1.3;margin:0}
html body .team-workspace .tactics-player .tactics-player-name{font-size:.875rem;font-weight:600;line-height:1.3;max-width:100%;overflow-wrap:anywhere}
html body .team-workspace .tactics-player.selected,html body .team-workspace .tactics-bench-player.selected{outline:3px solid var(--gch-control-focus);outline-offset:2px}
html body .team-workspace .tactics-player.availability-unavailable{box-shadow:0 0 0 2px #f0aaa2}
html body .team-workspace .tactics-player.availability-unsure{box-shadow:0 0 0 2px #f0cd8c}
html body .team-workspace .tactics-board-hint{order:2;display:grid;gap:8px}
html body .team-workspace .tactics-board-hint :is(.helper,.tactics-availability-hint){font-size:.875rem;line-height:1.45;margin:0}
html body .team-workspace .panel-heading{display:block;margin:0}
html body .team-workspace .tactics-formation-card{display:grid;gap:12px}
html body .team-workspace .tactics-formation-card h3{margin-bottom:0}
html body .team-workspace :is(label,.formation-control){display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:8px;font-size:.875rem;font-weight:600;line-height:1.4;min-width:0}
html body .team-workspace :is(input:not([type="radio"]):not([type="checkbox"]),select){width:100%!important;max-width:none!important;min-width:0;min-height:52px!important;border:1px solid var(--gch-control-line)!important;border-radius:12px;background:var(--gch-control-surface)!important;color:var(--gch-control-copy)!important;padding:12px 16px;font-size:1rem;font-weight:400;line-height:1.5}
html body .team-workspace :is(.formation-control,#reset-tactics){order:0}
html body .team-workspace .tactics-bench{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);margin-top:12px}
html body .team-workspace .tactics-plan-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
html body .team-workspace .tactics-coach-plan>.helper{margin-top:16px;font-size:.75rem}
html body .team-workspace #tactics-matchday-limit{display:block;font-size:.75rem;margin-top:8px}
html body .team-workspace .tactics-squad-options{order:0}
html body .team-workspace .matchday-squad-summary{padding:0;margin:0;gap:12px;color:inherit;font-size:.875rem;min-height:52px}
html body .team-workspace .matchday-squad-summary strong{font-size:1.25rem;line-height:1.3;font-weight:600}
html body .team-workspace .tactics-squad-options-body{padding:12px 0 0;display:grid;gap:12px}
html body .team-workspace .matchday-squad-options{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
html body .team-workspace .matchday-player-label{min-width:0;flex:1;font-size:.875rem;font-weight:600}
html body .team-workspace .matchday-player-label small{font-size:.75rem;line-height:1.4;color:var(--gch-control-muted);font-weight:400}
html body .team-workspace :is(.parent-request-player,.matchday-player-option){justify-content:flex-start}
html body .team-workspace input:is([type="radio"],[type="checkbox"]){width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:0;accent-color:var(--gch-control-focus)}
html body .team-workspace .parent-request-player:has(input:checked){outline:2px solid var(--gch-control-focus);outline-offset:0}
html body #parent-request-review-dialog{width:min(680px,100vw);max-width:100vw;max-height:100dvh;border-radius:20px!important}
html body #parent-request-review-form{padding:20px;gap:16px}
html body #parent-request-review-form>:is(.muted,.helper){margin:0;font-size:.875rem;line-height:1.45}
html body #parent-request-review-form>.secondary-button{min-height:52px;border-radius:8px;font-size:.875rem;font-weight:600}
html body #parent-request-review-dialog .parent-request-summary{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
html body #parent-request-review-dialog .parent-request-summary :is(h3,p){margin:0}
html body #parent-request-review-dialog .parent-request-summary span{display:inline;padding:0;border:0;background:transparent!important;color:inherit!important;font-size:inherit;border-radius:0}
html body #parent-request-review-dialog .parent-link-player-list{display:grid;gap:16px;max-height:none;overflow:visible}
html body #parent-request-review-dialog .parent-request-player-fieldset{width:100%;min-width:0}
html body #parent-request-review-dialog .modal-actions{position:static;grid-template-columns:minmax(0,1fr);gap:16px;padding:0;margin:0;border:0;background:transparent!important;background-color:transparent!important}
html body #parent-request-review-dialog .modal-actions button{min-height:52px;width:100%;border-radius:8px;font-size:.875rem;line-height:1.45}
@media(max-width:899px){html body .content:has(>.team-workspace.active){padding-inline:20px!important}html body.match-plan-active .content:has(>#view-squad.active){padding-top:16px!important}}
@media(min-width:900px){html body .team-workspace .tactics-panel{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}html body .team-workspace #squad-list-page{max-width:680px;margin-inline:auto}html body #view-team-access{max-width:680px}}
@media(prefers-reduced-motion:reduce){html body .team-workspace *{scroll-behavior:auto}}

html body :is(#view-squad,#view-team-access,#parent-request-review-dialog) .hidden,html body :is(#view-squad,#view-team-access,#parent-request-review-dialog) [hidden]{display:none!important}
/* Resolve older shared card/link rules within the reviewed workspace only. */
html[data-theme] body:has(.team-workspace.view.active){--gch-depth-canvas:#F3F6F4}
html[data-theme="dark"] body:has(.team-workspace.view.active){--gch-depth-canvas:#111715}
html body:has(.team-workspace.view.active) .club-page-watermark{display:none!important}
html[data-theme] body :is(#view-squad,#view-team-access,#parent-request-review-dialog){--workspace-paper:#fff}
html[data-theme="dark"] body :is(#view-squad,#view-team-access,#parent-request-review-dialog){--workspace-paper:#1f2623}
html[data-theme] body :is(#view-squad,#view-team-access,#parent-request-review-dialog) .panel{background:var(--workspace-paper)!important;border:1px solid var(--gch-control-line)!important;box-shadow:none!important}
html[data-theme] body :is(#view-squad,#view-team-access,#parent-request-review-dialog) :is(.squad-banner,.parent-self-signup-note,.parent-verification-guidance){background:var(--workspace-info)!important;border-top:1px solid var(--gch-control-line)!important}
html[data-theme] body .team-workspace .person-name-button{color:var(--gch-control-copy)!important;text-decoration:none!important}
html body #view-squad .squad-format-details summary::after{content:none}
html body #view-squad .squad-format-details summary small{font-weight:400}
html body #view-squad .tactics-fixture{background:transparent!important;border:0!important}
html body #view-squad .tactics-formation-card .tactics-heading{order:0}
html body #view-team-access .member-group-label{text-transform:none;letter-spacing:normal}
html body #parent-request-review-dialog .parent-request-player{flex-direction:row;align-items:center;text-align:left}
html[data-theme] body :is(#view-squad,#view-team-access,#parent-request-review-dialog) .secondary-button{background:var(--workspace-info)!important;color:var(--gch-control-copy)!important;border:1px solid var(--gch-control-line)!important}
@media(max-width:899px){html body:has(.team-workspace.view.active) .mobile-primary-item>span{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}}
/* Match entry and post-match report: reviewed Figma batch, 13 October 2026. */
html body #view-add{max-width:720px;margin-inline:auto;padding:20px}
html body #view-add .section-title-row{display:flex;flex-direction:column;align-items:stretch;gap:16px}
html body #view-add .section-title-row h2{font-size:30px;line-height:1.15}
html body #view-add #cancel-edit{display:none}
html body #view-add .form-stack{display:flex;flex-direction:column;gap:16px}
html body #view-add .form-grid{grid-template-columns:minmax(0,1fr)!important;gap:16px}
html body #view-add .panel{padding:16px!important;border-radius:20px!important}
html body #view-add .score-entry{display:flex;flex-direction:column;gap:16px}
html body #view-add .score-entry label{width:100%;text-align:left}
html body #view-add :is(input,select,button){min-height:52px;border-radius:12px}
html body #view-add label{font-size:14px;line-height:1.4;text-align:left}
html body #view-add textarea{min-height:120px}
html body #view-add .score-entry input{font-size:16px;width:100%;text-align:left}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode){width:min(720px,100vw);max-width:100vw;max-height:100dvh;padding:20px;border-radius:20px;overflow-y:auto}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) #match-detail-form{display:flex;flex-direction:column;gap:16px;min-width:0}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) #match-detail-title{font-size:30px;line-height:1.15;overflow-wrap:anywhere}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) #match-overview-section{display:none!important}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) :is(.detail-match-summary,.detail-feature-section,#match-report-hub,#match-report-outcome){margin:0;padding:16px;border-radius:20px;background:var(--gch-depth-panel);border:1px solid var(--gch-control-line)}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) h3{font-size:20px;line-height:1.2}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) :is(p,.helper,label){font-size:14px;line-height:1.4}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) :is(input:not([type=checkbox]),select,button){min-height:52px;border-radius:12px;font-size:16px}
html body #match-detail-dialog .match-report-score-grid{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:16px}
html body #match-detail-dialog .match-report-score-grid label{display:flex;flex-direction:column;align-items:stretch;gap:8px;text-align:left}
html body #match-detail-dialog .match-report-score-grid input{text-align:left;width:100%}
html body #match-detail-dialog .report-club-record{border-radius:12px;background:rgba(68,158,103,.12);padding:12px;margin-top:16px}
html body #match-detail-dialog .report-club-record h4{margin:0;font-size:14px}
html body #match-detail-dialog .match-report-progress{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0;background:none}
html body #match-detail-dialog .match-report-progress span{display:flex;flex-direction:column;text-align:center;gap:4px;padding:10px 4px;border:1px solid var(--gch-control-line);border-radius:10px;min-width:0;font-size:12px;overflow-wrap:anywhere;line-height:1.4;color:var(--gch-control-muted)}
html body #match-detail-dialog .match-report-progress span b{font-size:16px}
html body #match-detail-dialog .match-report-progress .active{background:linear-gradient(135deg,#148249,#00542c);color:#fff}
html body #match-detail-dialog .report-section-link{width:100%;min-height:76px!important;display:flex;justify-content:space-between;align-items:center;text-align:left;margin-top:12px}
html body #match-detail-dialog .report-section-link span:first-child{display:flex;flex-direction:column;gap:4px}
html body #match-detail-dialog .report-section-link small{font-size:14px;font-weight:400;color:var(--gch-control-muted)}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) .match-report-actions{display:flex;flex-direction:column;gap:12px;position:static;padding:0;border:0;background:transparent!important}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) .match-report-actions button{width:100%;margin:0}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) .detail-player-grid{display:flex;flex-direction:column;gap:8px}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) .detail-player-row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-width:0}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) .detail-player-row input{width:68px;flex:none;text-align:center}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) .attendance-player-row{padding:8px 0;gap:8px}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) .attendance-player-row>span{min-width:0;font-size:14px}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) .attendance-switch{flex-shrink:0;padding:8px;min-width:106px}
html body #match-detail-dialog:is(.report-wizard-mode,.report-hub-mode) #coach-match-note{min-height:140px;width:100%}
html body #match-detail-dialog.report-outcome-mode #match-detail-form>:not(.modal-heading):not(#match-detail-summary):not(#match-report-outcome):not(input){display:none!important}
html body #match-detail-dialog #match-report-outcome dl>div{padding:12px 0;border-bottom:1px solid var(--gch-control-line)}
html body #match-detail-dialog #match-report-outcome dd{margin:4px 0;overflow-wrap:anywhere}
html body #match-detail-dialog #match-report-outcome small{display:block;color:var(--gch-control-muted)}
html body #match-detail-dialog #match-report-outcome button{display:block;width:100%;margin-top:12px;min-height:52px}
html body :is(#view-add,#match-detail-dialog) .hidden{display:none!important}
@media(max-width:360px){html body #match-detail-dialog .attendance-player-row{flex-wrap:wrap}html body #match-detail-dialog .attendance-switch{margin-left:auto}html body #match-detail-dialog .match-report-progress{grid-template-columns:repeat(2,minmax(0,1fr))}}
html body #registration-conduct-dialog{width:min(720px,100vw);max-width:100vw;max-height:100dvh;padding:20px;overflow-y:auto;border-radius:20px;background:var(--gch-depth-canvas);color:var(--gch-control-copy)}
html body #registration-conduct-dialog h2{font-size:30px;line-height:1.15;overflow-wrap:anywhere}
html body #registration-conduct-dialog :is(p,label){font-size:14px;line-height:1.4}
html body #registration-conduct-dialog #registration-conduct-body{margin-top:16px}
html body #registration-conduct-dialog .panel{padding:16px;margin:16px 0;border-radius:20px;background:var(--gch-depth-panel);border:1px solid var(--gch-control-line)}
html body #registration-conduct-dialog h3{font-size:20px;line-height:1.2;margin:0 0 16px}
html body #registration-conduct-dialog fieldset{border:0;padding:0;margin:0;min-width:0}
html body #registration-conduct-dialog :is(input,button){min-height:52px;border-radius:12px;width:100%;font-size:16px;margin-top:8px;white-space:normal;overflow-wrap:anywhere}
html body #registration-conduct-dialog input{background:var(--gch-depth-panel);color:var(--gch-control-copy);border:1px solid var(--gch-control-line);padding:12px}
html body :is(#registration-conduct-dialog,.registration-entry) .primary-button{background:linear-gradient(135deg,#fff,#eaf7f0)!important;color:#004a28!important;border:1px solid var(--gch-control-line);box-shadow:none}
html body #registration-conduct-dialog small{overflow-wrap:anywhere}
html body #registration-conduct-status.is-error{color:var(--gch-control-copy);border:1px solid var(--gch-control-line);border-radius:12px;padding:12px}
html body #match-entry-chooser{width:min(720px,100vw);max-width:100vw;padding:20px;max-height:100dvh;overflow-y:auto;border-radius:20px;background:var(--gch-depth-canvas);color:var(--gch-control-copy)}
html body #match-entry-chooser h2{font-size:30px;line-height:1.15}
html body #match-entry-chooser h3{font-size:20px}
html body #match-entry-chooser .panel{padding:16px;border-radius:20px;background:rgba(41,166,77,.12)}
html body #match-entry-chooser .report-section-link{display:flex;gap:12px;text-align:left;align-items:center;justify-content:space-between;width:100%;min-height:76px;margin-top:12px}
html body #match-entry-chooser .report-section-link>span:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}
html body #match-entry-chooser :is(p,small){font-size:14px;line-height:1.4;overflow-wrap:anywhere}
html body #match-entry-chooser #match-entry-manual{width:100%;min-height:52px;margin-top:16px}
html body dialog#match-detail-dialog.report-wizard-mode{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;padding:0!important;background:var(--gch-depth-canvas)!important}
html body dialog#match-detail-dialog.report-wizard-mode #match-detail-form{width:min(720px,100%)!important;margin:0 auto!important;padding:20px!important;min-height:100dvh;overflow-y:visible}
html body dialog#match-detail-dialog.report-wizard-mode .detail-feature-section{flex:none!important;width:100%;box-sizing:border-box}
html body dialog#match-detail-dialog.report-wizard-mode .match-report-actions{margin-top:0!important}
html body #match-detail-dialog.report-wizard-mode::backdrop{background:var(--gch-depth-canvas)}

/* Screenshot corrections, 13 October 2026: floating controls need an opaque
 * surface even when their page's fields use translucent depth tokens. */
:root{--gch-picker-surface:var(--gch-white);--gch-picker-choice:var(--gch-soft-green)}
html[data-theme="dark"]{--gch-picker-surface:var(--gch-ink);--gch-picker-choice:#17311f}
.universal-onboarding{--gch-picker-surface:var(--gch-white);--gch-picker-choice:var(--gch-soft-green)}
@supports (appearance:base-select) and selector(select::picker(select)){
  html body select::picker(select){
    background:var(--gch-picker-surface)!important;
    max-height:min(360px,calc(100dvh - 120px));
    overflow-y:auto;scrollbar-gutter:stable;scroll-padding-block:6px;
  }
  html body select option{background:var(--gch-picker-surface)!important}
  html body select option:is(:checked,:hover,:focus){background:var(--gch-picker-choice)!important}
}
/* This summary has no form wrapper, so the generic form padding/scroll rules
 * never reached it. Match the existing dialog shell without clipping reports. */
html body #club-match-summary-dialog{
  padding:20px;max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;
}
#club-match-summary-dialog .modal-heading{position:sticky;top:-20px;z-index:1;gap:16px;align-items:flex-start;margin:-20px -20px 16px;padding:20px;background:var(--gch-picker-surface)}
#club-match-summary-dialog .modal-heading h3{padding-block:12px;min-width:0}
#club-match-summary-dialog .modal-heading button{flex:0 0 48px;min-width:48px}
#club-match-summary-body{min-width:0;overflow-wrap:anywhere}
#club-match-summary-body>.muted{margin:0 0 16px}
#club-match-summary-body>.club-match-card{margin:0}
#club-match-summary-body>.club-match-card+.muted{margin:16px 0 0}
#club-match-summary-body .club-report-section p{display:flex;align-items:baseline;justify-content:space-between;gap:16px;line-height:1.5}
#club-match-summary-body .club-report-section p b{flex-shrink:0;font-variant-numeric:tabular-nums}
/* Keep the shared rounded cards from colliding with the older joined-card rule. */
html body #view-home .home-next-match:has(+#matchday-dashboard:not(.hidden)){margin-bottom:16px!important}
html body #view-home .home-next-match+#matchday-dashboard{margin-top:0;border-radius:20px!important}
html body #view-home .home-next-match:has(+#matchday-dashboard:not(.hidden)) .next-match-summary-card{border-radius:20px!important}
html body #view-home .matchday-dashboard-heading{gap:12px;flex-wrap:wrap}
html body #view-home .matchday-dashboard-status{max-width:100%;white-space:normal;overflow-wrap:anywhere}

/* More is a role-specific directory. Existing forms open on linked pages. */
.more-hub .more-intro{margin:0 0 24px;max-width:65ch}
.more-tool-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
.more-tool-group{min-width:0}
.more-tool-group[hidden],.more-link-list [hidden]{display:none!important}
.more-tool-group h3{margin:0 0 12px;font-size:20px;line-height:1.4}
.more-link-list{display:grid;gap:8px}
.more-link-list .page-link{width:100%;min-width:0;min-height:64px;margin:0;padding:12px 16px;text-align:left;gap:12px;font-family:inherit}
.more-link-list .page-link>span:first-child{flex:1;min-width:0}
.more-link-list .page-link strong{font-size:16px;line-height:1.4;overflow-wrap:anywhere}
.more-link-list .page-link small{display:block;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.more-link-list .notification-badge{position:static;flex:none;line-height:20px}
.more-footer{margin:24px 0 0;font-size:14px}
.more-settings-page{max-width:960px;margin-inline:auto}
.more-settings-page>.settings-accordion{margin-top:20px}
.more-settings-page>.settings-accordion>summary{display:none}
.more-settings-page>.settings-accordion>.settings-accordion-body{border-top:0;padding-top:20px}
.more-settings-page .page-back{margin-bottom:16px}
@media(min-width:700px){.more-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.more-tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Figma-reviewed compact hero: identity and actions share one aligned row. */
html body .hero{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  height:auto!important;min-height:0!important;align-items:center;gap:12px;
  padding:calc(12px + var(--android-inset-top,0px)) clamp(16px,4vw,28px) 12px!important;
}
.hero-context-actions{grid-column:2;grid-row:1;position:relative;z-index:5;display:flex;justify-content:flex-end;align-items:center;gap:8px;min-width:0}
html body .hero-context-actions .hero-profile-button,
html body .hero-coaching-teams .hero-profile-button{
  min-height:48px;max-width:none;white-space:normal;line-height:1.4;
  font-weight:600;font-family:inherit;font-size:.875rem;
  border:1px solid rgba(255,255,255,.35);border-radius:12px;
  padding:10px 16px;background:var(--gch-green-950)!important;color:var(--gch-white)!important;
  box-shadow:none;backdrop-filter:none;
}
html body .hero-context-actions .hero-profile-button{width:max(96px,4em);padding:8px;min-width:0;overflow-wrap:anywhere}
html body .hero-copy{padding-inline-end:0!important}
html body .hero-inner{grid-column:1;grid-row:1;position:relative;min-width:0;gap:8px!important}
html body .hero .club-logo-wrap{width:44px!important;height:44px!important}
html body .hero .hero-role-label{font:inherit;font-weight:600;letter-spacing:normal;text-transform:none;background:none;border:0;border-radius:0;padding:0;margin:0;color:var(--gch-white)}
html body .hero .hero-metadata{white-space:normal!important;overflow-wrap:anywhere;line-height:1.4}
.hero-role-label:not(.hidden)::after{content:" · ";white-space:pre}
.hero-coaching-teams{grid-column:1/-1;position:relative;z-index:4;display:grid;gap:8px;min-width:0;width:100%;max-width:720px}
.hero-coaching-teams label{font-size:.875rem;font-weight:600;color:var(--gch-white)}
html body .hero-coaching-teams .hero-team-select{
  appearance:auto;-webkit-appearance:auto;text-align:start;
  width:100%;min-width:0;max-width:100%;font-size:1rem;padding:12px;
}
.hero-coaching-teams p{margin:0;font-size:.875rem;line-height:1.5;color:var(--gch-white);overflow-wrap:anywhere}
.hero-coaching-teams p:empty{display:none}
.hero-coaching-teams #hero-team-retry{justify-self:start}
.hero-context-actions button:focus-visible,.hero-coaching-teams :is(button,select):focus-visible{outline:3px solid var(--gch-white);outline-offset:3px}
.hero-context-actions button:disabled,.hero-coaching-teams :is(button,select):disabled{opacity:.65;cursor:wait}
@media(max-width:374px){
  .hero-context-actions{flex-direction:column;align-items:flex-end}
  html body .hero-context-actions .hero-profile-button{width:max(84px,4em)}
}
