/* Coach Premium V1: role composition on the shared Premium foundation.
   All presentation is opt-in; other Coach page bodies keep their legacy styles. */
#assessmentCenter.pid-coach-premium { --pid-app-sidebar-width: 224px; --pid-app-header-height: 76px; --pid-radius-card: 20px; --pid-radius-control: 12px; font-family: 'Plus Jakarta Sans', sans-serif; }
#assessmentCenter.pid-coach-premium * { box-sizing: border-box; }
/* Narrow bridges for the legacy #assessmentCenter padding and global type
   declarations marked !important. No other page or component is overridden. */
body:has(#appContent:not(.hidden) > #assessmentCenter.pid-coach-premium:not(.hidden)) #assessmentCenter.pid-coach-premium { padding: 0 !important; margin: 0 !important; }
body:has(#assessmentCenter.pid-coach-premium:not(.hidden)) > .app { border: 0; border-radius: 0; backdrop-filter: none; }
#coachDashboardView :is(h1,h3,h4),
#coachAssessmentSelector :is(h1,h2),
#coachReportsPage :is(h1,h3),
#coachDevelopmentPage :is(h1,h2,h3),
#coachTournamentsPage :is(h1,h2,h3,h4),
#assessmentCenter .pid-premium-topbar-title { color: var(--pid-theme-text-primary) !important; }
#coachDashboardView :is(p,small),
#coachAssessmentSelector :is(p,small),
#coachReportsPage :is(p,small),
#coachDevelopmentPage :is(p,small),
#coachTournamentsPage :is(p,small),
#assessmentCenter .pid-premium-context-item small, #assessmentCenter .pid-premium-identity small { color: var(--pid-theme-text-secondary) !important; }
#assessmentCenter .pid-premium-mobile-brand small, #assessmentCenter .pid-premium-drawer-head small { color: #c1cfd8 !important; }
/* The generic .pid-premium-control contract (touch target, cursor,
   font-family, focus ring) now lives in the canonical
   playerid-premium-components.css and is reused as-is; only the
   <summary> focus bridge below is genuinely Coach-specific. */
#coachDashboardView summary:focus-visible { outline: 3px solid var(--pid-theme-teal); outline-offset: 3px; }
#assessmentCenter .pid-premium-sidebar { background: #102b3c; padding: 24px 16px; height: 100dvh; overflow-y: auto; border-right: 1px solid #ffffff0b; }
#assessmentCenter .pid-premium-coach-brand { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 17px; min-height: 96px; padding: 0 8px; border: 0; background: transparent; box-shadow: none; color: #c0cdd6; font-size: 12px; }
#assessmentCenter .pid-premium-coach-brand img { width: 174px; height: auto; object-fit: contain; border: 0; border-radius: 0; background: transparent; }
#assessmentCenter .pid-premium-nav-label { margin: 36px 12px 12px; color: #aabfcd; font-size: 10px; font-weight: 700; letter-spacing: .16em; }
#assessmentCenter .pid-premium-nav { gap: 8px; }
#assessmentCenter .pid-premium-nav-item { min-height: 50px; gap: 10px; padding: 8px 12px; font-size: 12px; color: #c1cfd8; border-radius: 12px; }
#assessmentCenter .pid-premium-nav-item.is-active { background: #1b4050; color: #fff; box-shadow: inset 3px 0 0 #22c7bb, 4px 4px 10px #071a2670, -2px -2px 8px #ffffff05; }
#assessmentCenter .pid-premium-nav-item.is-active > span { color: #42d2c5; }
#assessmentCenter .pid-coach-return { margin-top: auto; padding: 16px 10px 0; border: 0; border-top: 1px solid #ffffff20; border-radius: 0; background: transparent; box-shadow: none; color: #c1cfd8; font-size: 11px; justify-content: flex-start; }
/* Topbar carries the workspace identity (eyebrow/title/subtitle) on its
   left side -- this used to be a separate .pid-premium-workspace-intro
   card rendered below the context panel, which duplicated it; that card
   is gone (single source of identity now). The bar grows to fit three
   stacked lines but stays a utility header, not a hero -- compact type
   scale, no extra shadow/border added here beyond what the topbar
   already had. Mobile still hides this whole div (see the ~768px block
   below, which hides every topbar child except .pid-premium-mobile-brand)
   so the approved compact navy header is unaffected. */
#assessmentCenter .pid-premium-coach-topbar { min-height: 104px; padding: 14px 32px; gap: 22px; }
#assessmentCenter .pid-premium-topbar-intro { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
#assessmentCenter .pid-premium-topbar-eyebrow { display: block; color: var(--pid-theme-teal); font-size: 10.5px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
#assessmentCenter .pid-premium-topbar-title { margin: 6px 0 0; font-size: 18px; font-weight: 750; letter-spacing: -.02em; }
#assessmentCenter .pid-premium-topbar-subtitle { display: block; margin-top: 4px; font-size: 12px; max-width: 56ch; }
#assessmentCenter .pid-premium-identity { margin-left: auto; font-size: 12.5px; text-align: right; }
#assessmentCenter .pid-premium-identity strong { font-weight: 700; }
/* "Verified Coach" recomposed as an eyebrow-style micro-label (uppercase,
   letter-spaced) to match the same secondary-label convention already
   used for the context panel's ACADEMY/COACH labels, instead of reading
   as a second line of plain body text competing with the coach name. */
#assessmentCenter .pid-premium-identity small { display: block; margin-top: 4px; color: var(--pid-theme-text-secondary); font-size: 9.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
/* The shared shell contract (playerid-premium-shell.css) already gives
   .pid-premium-contextbar a raised neumorphic surface + flex layout; this
   coach-specific rule used to strip that down to a flat border-bottom
   divider (nothing behind it but the page background -- the reported
   "floats on the page" bug). Recomposed as one recessed (inset, not
   raised) surface instead: quiet enough to read as supporting chrome
   rather than competing with the raised content cards below it. `display`
   is left to the shell rule (still flex/space-between here). */
#assessmentCenter .pid-premium-coach-context { margin: 20px 32px 0; padding: 14px 24px; min-height: 60px; border-radius: 16px; background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset); }
#assessmentCenter .pid-premium-context-primary { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 16px 32px; min-width: 0; }
#assessmentCenter .pid-premium-context-item { min-width: 0; }
#assessmentCenter .pid-premium-context-item small { display: block; font-size: 9px; letter-spacing: .14em; color: var(--pid-theme-text-secondary); margin-bottom: 5px; }
#assessmentCenter .pid-premium-context-item strong { color: var(--pid-theme-text-primary); font-size: 13px; overflow-wrap: anywhere; }
#assessmentCenter .pid-coach-context-squads { display: inline-flex; flex-wrap: wrap; gap: 5px; margin-left: 8px; }
/* Raised (not inset) so the chip still reads against the now-recessed
   context panel background, which is also surface-inset. */
#assessmentCenter .pid-coach-context-squads span { padding: 3px 7px; border-radius: 6px; background: var(--pid-theme-surface-raised); box-shadow: var(--pid-theme-shadow-raised); color: var(--pid-theme-text-secondary); font-size: 10px; }
/* "Current academy" context selector -- same pattern as the Parent "Current
   player" toolbar: one raised surface, compact label, one selector-style
   control, CTA on the right. Read-only (no academy switching here), so no
   chevron. Squad chips render as inline text: "U10 · coach name". */
#assessmentCenter .pid-premium-coach-context.pid-coach-current-academy { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 78px; padding: 12px 24px; background: var(--pid-theme-surface-raised, #fff); box-shadow: 0 3px 10px rgba(11,38,56,.045); }
#assessmentCenter .pid-coach-current-academy .pid-coach-current-primary { display: grid; grid-template-columns: auto minmax(240px,380px); align-items: center; gap: 14px; min-width: 0; }
#assessmentCenter .pid-coach-current-academy .pid-coach-current-label { color: var(--pid-theme-text-secondary, #607582); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
#assessmentCenter .pid-coach-current-academy .pid-coach-current-select { display: grid; grid-template-columns: 36px minmax(0,1fr); align-items: center; gap: 11px; min-width: 0; min-height: 54px; padding: 8px 14px 8px 9px; border: 1px solid var(--pid-theme-border, #d7e0e4); border-radius: 12px; background: var(--pid-theme-surface-raised, #fff); box-shadow: 0 1px 2px rgba(7,28,43,.05); }
#assessmentCenter .pid-coach-current-academy .pid-coach-current-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #e6f7f5; box-shadow: 0 0 0 1px #cfe3e6; color: #078c88; }
#assessmentCenter .pid-coach-current-academy .pid-coach-current-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }
#assessmentCenter .pid-coach-current-academy .pid-coach-current-icon.has-logo { overflow: hidden; padding: 3px; background: #fff; }
#assessmentCenter .pid-coach-current-academy .pid-coach-current-icon.has-logo img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }
#assessmentCenter .pid-coach-current-academy .pid-coach-current-text { display: grid; gap: 2px; min-width: 0; }
#assessmentCenter .pid-coach-current-academy .pid-coach-current-text strong { overflow: hidden; color: var(--pid-theme-text-primary, #0b2638); font-size: 14px; font-weight: 800; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
#assessmentCenter .pid-coach-current-academy .pid-coach-current-meta { display: flex; align-items: baseline; gap: 6px; min-width: 0; overflow: hidden; color: var(--pid-theme-text-secondary, #52627a); font-size: 12px; font-weight: 600; line-height: 1.3; white-space: nowrap; }
#assessmentCenter .pid-coach-current-academy .pid-coach-current-meta > span:last-child { overflow: hidden; text-overflow: ellipsis; }
#assessmentCenter .pid-coach-current-academy .pid-coach-context-squads { display: inline; flex: 0 0 auto; margin: 0; }
#assessmentCenter .pid-coach-current-academy .pid-coach-context-squads span { padding: 0; border-radius: 0; background: none; box-shadow: none; color: inherit; font-size: inherit; }
#assessmentCenter .pid-coach-current-academy .pid-coach-context-squads span + span::before { content: " / "; }
#assessmentCenter .pid-coach-current-academy .pid-coach-context-squads:empty + .pid-coach-current-sep { display: none; }
#assessmentCenter .pid-btn--primary { background: var(--pid-theme-teal); color: #082c32; font-weight: 800; box-shadow: 0 4px 10px #087f7920; }
#assessmentCenter .pid-premium-mobile-brand, #assessmentCenter .pid-premium-drawer-head { display: none; }
#coachDashboardView.pid-premium-dashboard { display: grid; gap: 24px; max-width: 1400px; padding: 24px 32px 40px; overflow: visible; }
#coachDashboardView .pid-page-header { display: block; border: 0; padding: 0; }
#coachDashboardView .pid-page-header-eyebrow { color: var(--pid-theme-text-secondary); font-size: 10px; font-weight: 700; letter-spacing: .13em; }
#coachDashboardView h1 { margin: 8px 0; font-size: clamp(23px,2.1vw,30px); line-height: 1.25; font-weight: 750; letter-spacing: -.045em; color: var(--pid-theme-text-primary); }
#coachDashboardView .pid-page-header p { margin: 0; font-size: 13px; line-height: 1.6; color: var(--pid-theme-text-secondary); }
#coachDashboardView .pid-premium-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
/* Surface (background/box-shadow) is inherited from the shared
   .pid-kpi--premium base (playerid-premium-components.css); only size,
   radius and the hover-lift transition are Coach's dashboard-specific
   composition. */
#coachDashboardView .pid-kpi--premium { position: relative; padding: 20px; min-height: 140px; border-radius: 18px; transition: transform 170ms ease, box-shadow 170ms ease; }
#coachDashboardView .pid-kpi--premium .pid-icon-well { position: absolute; right: 16px; top: 16px; width: 38px; height: 38px; color: var(--pid-theme-text-primary); border-radius: 12px; background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset), inset 0 0 0 1px rgba(19,170,166,.16); transition: transform 170ms ease; }
#coachDashboardView .pid-kpi-value { margin: 0 46px 12px 0; padding: 0; color: var(--pid-theme-text-primary); font-size: 32px; font-weight: 750; line-height: 1.1; letter-spacing: -.05em; }
#coachDashboardView .pid-kpi-label { color: var(--pid-theme-text-primary); font-size: 12px; font-weight: 700; text-transform: none; letter-spacing: 0; }
#coachDashboardView .pid-kpi-note { color: var(--pid-theme-text-secondary); font-size: 10px; line-height: 1.6; margin-top: 6px; }
#coachDashboardView .pid-premium-dashboard-grid { display: grid; grid-template-columns: minmax(0,1.9fr) minmax(260px,1fr); align-items: start; gap: 24px; }
#coachDashboardView .pid-premium-section { min-width: 0; padding: 24px; }
#coachDashboardView .pid-premium-development { border-top: 3px solid var(--pid-theme-teal); }
#coachDashboardView .pid-section-header--premium { flex-direction: row; align-items: center; gap: 12px; margin-bottom: 20px; }
#coachDashboardView .pid-section-header--premium h3 { margin: 6px 0 0; color: var(--pid-theme-text-primary); font-size: 18px; font-weight: 750; line-height: 1.3; letter-spacing: -.035em; }
#coachDashboardView .pid-section-header--premium p { margin: 8px 0 0; color: var(--pid-theme-text-secondary); font-size: 12px; line-height: 1.5; }
#coachDashboardView .pid-premium-small { padding-inline: 12px; font-size: 11px; }
#coachDashboardView .pid-premium-quick-grid { display: grid; gap: 14px; }
/* This <button> was never getting its native browser border reset (the
   global button reset in index.html explicitly excludes .pid-premium-
   control), which is what actually produced the "hard dark outline" --
   the flat drop-shadow alone was a red herring. */
#coachDashboardView .pid-premium-action-row { display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 6px 12px; width: 100%; padding: 16px 18px; border: 0; border-radius: 14px; background: var(--pid-theme-surface-raised); color: var(--pid-theme-text-primary); text-align: left; box-shadow: var(--pid-theme-shadow-soft); transition: transform 170ms ease, box-shadow 170ms ease; }
#coachDashboardView .pid-premium-action-row .pid-icon-well { grid-row: 1 / 4; color: var(--pid-theme-text-primary); background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset), inset 0 0 0 1px rgba(19,170,166,.16); transition: transform 170ms ease, color 170ms ease; }
#coachDashboardView .pid-premium-action-row strong { font-size: 13px; line-height: 1.5; }
#coachDashboardView .pid-premium-action-row small { font-size: 11px; color: var(--pid-theme-text-secondary); line-height: 1.6; }
#coachDashboardView .pid-premium-action-row b { font-size: 11px; color: var(--pid-theme-text-primary); margin-top: 7px; transition: color 170ms ease; }
#coachDashboardView .pid-premium-recent { grid-column: 1 / -1; }
#coachDashboardView .pid-premium-recent-list { display: grid; }
#coachDashboardView .pid-premium-report-row { display: grid; grid-template-columns: minmax(100px,1.1fr) minmax(110px,1fr) minmax(100px,1fr) 52px 90px 64px; align-items: center; gap: 16px; padding: 16px 0; border-top: 1px solid var(--pid-theme-border-soft); font-size: 12px; }
#coachDashboardView .pid-premium-report-row > div { min-width: 0; }
#coachDashboardView .pid-premium-report-row strong { color: var(--pid-theme-text-primary); }
#coachDashboardView .pid-premium-report-row small { display: block; font-size: 10px; margin-top: 5px; color: var(--pid-theme-text-secondary); }
#coachDashboardView .pid-premium-report-tournament, #coachDashboardView .pid-premium-report-date { color: var(--pid-theme-text-secondary); font-size: 11px; overflow-wrap: anywhere; }
#coachDashboardView .pid-premium-report-score { font-size: 21px; }
#coachDashboardView .pid-premium-report-row button { font-size: 11px; padding: 0 12px; }
#coachDashboardView .pid-premium-practice { grid-column: 2; grid-row: 2; }
#coachDashboardView .pid-premium-recent { grid-column: 1; grid-row: 2; }
#coachDashboardView .pid-premium-report-row { grid-template-columns: minmax(100px,1fr) 48px 78px 58px; gap: 10px; }
#coachDashboardView .pid-premium-report-tournament { grid-column: 1; grid-row: auto; }
#coachDashboardView .pid-premium-report-date { grid-column: 1; }
#coachDashboardView .pid-premium-report-row > div { grid-column: 1; }
#coachDashboardView .pid-premium-report-row { position: relative; }
#coachDashboardView .pid-premium-report-row > div { grid-row: 1; }
#coachDashboardView .pid-premium-report-tournament { grid-row: 2; }
#coachDashboardView .pid-premium-report-date { grid-row: 3; }
#coachDashboardView .pid-premium-report-score { grid-column: 2; grid-row: 1 / 4; }
#coachDashboardView .pid-premium-report-row > .pid-badge--premium { grid-column: 3; grid-row: 1 / 4; }
#coachDashboardView .pid-premium-report-row > button { grid-column: 4; grid-row: 1 / 4; }
#coachDashboardView .pid-premium-review { display: grid; gap: 16px; color: var(--pid-theme-text-secondary); font-size: 12px; line-height: 1.7; }
#coachDashboardView .pid-premium-review p { margin: 0; }
#coachDashboardView .pid-premium-review-waiting { padding: 18px; background: var(--pid-theme-surface-inset); border-radius: 12px; box-shadow: var(--pid-theme-shadow-inset); }
#coachDashboardView .pid-premium-review-waiting strong { display: block; margin-bottom: 8px; color: var(--pid-theme-text-primary); }
#coachDashboardView .pid-premium-review-summary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
#coachDashboardView .pid-premium-review-summary-grid > div { padding: 12px; background: var(--pid-theme-surface-inset); border-radius: 10px; }
#coachDashboardView .pid-premium-review-summary-grid small { display: block; font-size: 9px; }
#coachDashboardView .pid-premium-review-summary-grid strong { display: block; margin-top: 4px; color: var(--pid-theme-text-primary); font-size: 15px; }
#coachDashboardView .pid-premium-review-stage { font-size: 11px; font-weight: 700; color: var(--pid-theme-text-primary); }
#coachDashboardView .pid-premium-review-disclaimer { padding-top: 12px; border-top: 1px solid var(--pid-theme-border-soft); font-size: 10px; }
#coachDevelopmentAttention { background: transparent; border: 0; padding: 0; text-align: left; color: var(--pid-theme-text-secondary); font-size: 12px; line-height: 1.65; }
#coachDevelopmentAttention .pid-premium-attention-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 18px; padding: 14px; background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset); border-radius: 16px; }
#coachDevelopmentAttention .pid-premium-attention-summary > div { padding: 14px 12px; border-radius: 12px; background: var(--pid-theme-surface-raised); box-shadow: var(--pid-theme-shadow-raised); }
#coachDevelopmentAttention .pid-premium-attention-summary strong { display: block; color: var(--pid-theme-text-primary); font-size: 26px; line-height: 1.2; }
#coachDevelopmentAttention .pid-premium-attention-summary small { display: block; margin-top: 6px; font-size: 10px; line-height: 1.4; }
#coachDevelopmentAttention .pid-premium-attention-summary > div:first-child { box-shadow: var(--pid-theme-shadow-raised), inset 0 -3px 0 var(--pid-theme-teal); }
#coachDevelopmentAttention .pid-premium-attention-summary > div:first-child strong { color: var(--pid-theme-teal); }
#coachDevelopmentAttention .pid-premium-player-attention { padding: 16px 0; border-top: 1px solid var(--pid-theme-border-soft); }
#coachDevelopmentAttention h4 { margin: 0 0 8px; font-size: 14px; color: var(--pid-theme-text-primary); }
#coachDevelopmentAttention .pid-premium-player-attention p { margin: 8px 0; }
#coachDevelopmentAttention .development-flag-badge { display: inline-block; padding: 3px 8px; border: 1px solid var(--pid-theme-border-soft); border-radius: 6px; background: var(--pid-theme-surface-inset); color: var(--pid-theme-text-primary); font-size: 10px; }
#coachDevelopmentAttention .pid-premium-player-evidence { margin-top: 12px; }
#coachDevelopmentAttention summary { cursor: pointer; min-height: 44px; padding: 12px 0; font-size: 11px; font-weight: 700; color: var(--pid-theme-text-primary); }
#coachDevelopmentAttention .development-library-reference { border-top: 1px solid var(--pid-theme-border-soft); color: var(--pid-theme-text-secondary); }
#coachDevelopmentAttention .development-library-reference div { margin: 10px 0; }
#coachDevelopmentAttention .development-library-reference strong, #coachDevelopmentAttention .development-library-reference span { display: block; color: inherit; }
@media (hover:hover) and (pointer:fine) {
  #coachDashboardView .pid-kpi--premium:hover { transform: translateY(-3px); }
  #coachDashboardView .pid-kpi--premium:hover .pid-icon-well { transform: translateY(-2px); }
  #coachDashboardView .pid-premium-action-row:hover { transform: translateY(-2px); box-shadow: var(--pid-theme-shadow-raised); }
  #coachDashboardView .pid-premium-action-row:hover .pid-icon-well { transform: translateY(-2px); color: var(--pid-theme-teal); }
  #coachDashboardView .pid-premium-action-row:hover b { color: var(--pid-theme-teal); }
}
#assessmentCenter .pid-premium-action-row:active { transform: translateY(1px); box-shadow: var(--pid-theme-shadow-inset); }
@media (max-width: 1100px) {
  #coachDashboardView .pid-premium-dashboard-grid { grid-template-columns: minmax(0,1fr); }
  #coachDashboardView .pid-premium-recent, #coachDashboardView .pid-premium-practice { grid-column: auto; grid-row: auto; }
  #coachDashboardView .pid-premium-quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 768px) {
  #assessmentCenter .pid-premium-sidebar { height: 100dvh; min-height: 0; width: min(86vw,310px); visibility: hidden; transition: transform 160ms ease, visibility 160ms; }
  #assessmentCenter.is-pid-drawer-open .pid-premium-sidebar { visibility: visible; }
  #assessmentCenter .pid-premium-drawer-head { display: flex; align-items: center; justify-content: space-between; color: #fff; font-size: 12px; }
  #assessmentCenter .pid-premium-drawer-head small { display: block; color: #c1cfd8; font-size: 10px; }
  #assessmentCenter .pid-premium-drawer-close { width: 44px; border: 1px solid #ffffff25; border-radius: 12px; background: #1b4050; color: #fff; padding: 12px; }
  #assessmentCenter .pid-premium-drawer-close svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.8; }
  #assessmentCenter .pid-premium-coach-topbar { padding: 12px 16px; min-height: 72px; gap: 12px; background: #102b3c; }
  #assessmentCenter .pid-premium-coach-topbar > div:not(.pid-premium-mobile-brand) { display: none; }
  #assessmentCenter .pid-premium-mobile-brand { display: grid; gap: 5px; margin-right: auto; }
  #assessmentCenter .pid-premium-mobile-brand img { width: 135px; height: auto; }
  #assessmentCenter .pid-premium-mobile-brand small { font-size: 10px; color: #c1cfd8; }
  #assessmentCenter .pid-premium-topbar-menu { order: -1; color: #fff; background: #1b4050; border-color: #ffffff20; border-radius: 12px; }
  #assessmentCenter .pid-theme-toggle { background: #1b4050; color: #42d2c5; box-shadow: 3px 3px 8px #06192580, -2px -2px 6px #ffffff05; }
  /* Shell's own contextbar rule switches to flex-direction:column here;
     giving the (now recessed) card full padding on every side -- not
     just padding-bottom for a divider -- is what makes the identity row
     and the full-width CTA beneath it read as one grouped surface. */
  #assessmentCenter .pid-premium-coach-context { margin: 18px 16px 0; padding: 16px; border-radius: 16px; gap: 14px; }
  #assessmentCenter .pid-premium-context-primary { gap: 12px; justify-content: space-between; }
  #assessmentCenter .pid-premium-context-item strong { font-size: 12px; }
  #assessmentCenter .pid-premium-context-actions button { width: 100%; }
  #assessmentCenter .pid-premium-coach-context.pid-coach-current-academy { flex-direction: column; align-items: stretch; gap: 12px; padding: 14px 16px 16px; }
  #assessmentCenter .pid-coach-current-academy .pid-coach-current-primary { grid-template-columns: minmax(0,1fr); gap: 8px; }
  #assessmentCenter .pid-coach-current-academy .pid-premium-context-actions { width: 100%; }
  #coachDashboardView.pid-premium-dashboard { padding: 20px 16px 28px; gap: 20px; }
  #coachDashboardView .pid-premium-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  #coachDashboardView .pid-kpi--premium { min-height: 110px; padding: 15px; border-radius: 14px; }
  #coachDashboardView .pid-kpi-value { font-size: 27px; margin-bottom: 10px; }
  #coachDashboardView .pid-kpi-label { font-size: 11px; }
  #coachDashboardView .pid-kpi-note { display: none; }
  #coachDashboardView .pid-premium-section { padding: 18px; border-radius: 16px; }
  #coachDashboardView .pid-premium-dashboard-grid { gap: 20px; }
  #coachDashboardView .pid-section-header--premium h3 { font-size: 17px; }
  #coachDashboardView .pid-premium-quick-grid { grid-template-columns: 1fr; }
  #coachDashboardView .pid-premium-action-row { padding: 12px; }
  #coachDashboardView .pid-premium-action-row small { display: none; }
  #coachDashboardView .pid-premium-action-row b { margin-top: 0; }
  #coachDashboardView .pid-premium-report-row { grid-template-columns: minmax(0,1fr) auto auto; gap: 7px 10px; }
  #coachDashboardView .pid-premium-report-row > div { grid-column: 1; grid-row: 1; }
  #coachDashboardView .pid-premium-report-tournament { grid-column: 1; grid-row: 2; }
  #coachDashboardView .pid-premium-report-date { grid-column: 1; grid-row: 3; }
  #coachDashboardView .pid-premium-report-score { grid-column: 2; grid-row: 1; justify-self: end; }
  #coachDashboardView .pid-premium-report-row .pid-badge--premium { grid-column: 2; grid-row: 2 / 4; font-size: 9px; }
  #coachDashboardView .pid-premium-report-row button { grid-column: 3; grid-row: 1 / 4; }
  #coachDevelopmentAttention .pid-premium-attention-summary { gap: 8px; padding: 12px; }
  #coachDevelopmentAttention .pid-premium-attention-summary strong { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  #assessmentCenter .pid-premium-control, #assessmentCenter .pid-premium-sidebar, #coachDashboardView .pid-kpi--premium, #coachDashboardView .pid-icon-well { transition: none; transform: none; }
  #coachDashboardView .pid-kpi--premium:hover, #coachDashboardView .pid-premium-action-row:hover, #coachDashboardView .pid-premium-action-row:hover .pid-icon-well, #assessmentCenter .pid-premium-control:active { transform: none; }
}

/* ===================================================================
   Coach Premium — Inner Pages
   New Assessment / My Reports / My Tournaments / Development Review

   Presentation only. Dynamic rows/cards still render through the
   existing JS functions in development-intelligence.js and
   coach-tournament-workspace.cloud.js -- only their class names/visual
   tokens changed there. IDs, data attributes, onclick/addEventListener
   hooks, Supabase calls and scoring logic are untouched.
   =================================================================== */

#assessmentCenter .pid-premium-inner { max-width: 1400px; padding: 24px 32px 40px; display: grid; gap: 22px; align-content: start; }
#assessmentCenter .pid-premium-inner-header { border: 0; padding: 0; align-items: center; }
#assessmentCenter .pid-premium-inner-header .pid-page-header-title { margin: 8px 0; font-size: clamp(20px,1.9vw,26px); font-weight: 750; letter-spacing: -.04em; color: var(--pid-theme-text-primary); }
#assessmentCenter .pid-premium-inner-header .pid-page-header-description { margin: 0; font-size: 13px; line-height: 1.6; color: var(--pid-theme-text-secondary); max-width: 62ch; }
#assessmentCenter .pid-premium-inner-header .pid-page-header-eyebrow { color: var(--pid-theme-teal); font-size: 10px; font-weight: 700; letter-spacing: .13em; }

/* --- New Assessment: type selector --- */
#coachAssessmentSelector .pid-premium-assessment-types { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; align-items: stretch; }
#coachAssessmentSelector .pid-premium-assessment-type { display: grid; align-content: start; gap: 10px; padding: 24px; border-radius: 18px; background: var(--pid-theme-surface-raised); box-shadow: var(--pid-theme-shadow-raised); transition: transform 170ms ease; }
#coachAssessmentSelector .pid-premium-assessment-type.is-available { border-top: 3px solid var(--pid-theme-teal); }
#coachAssessmentSelector .pid-premium-assessment-type.is-disabled { background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset); opacity: .86; }
#coachAssessmentSelector .pid-premium-assessment-type-head { display: flex; align-items: center; justify-content: space-between; }
#coachAssessmentSelector .pid-premium-assessment-type h2 { margin: 4px 0 0; font-size: 16px; font-weight: 750; color: var(--pid-theme-text-primary); }
#coachAssessmentSelector .pid-premium-assessment-type p { margin: 0; font-size: 12.5px; line-height: 1.55; color: var(--pid-theme-text-secondary); }
#coachAssessmentSelector .pid-premium-assessment-type-features { display: grid; gap: 6px; margin: 4px 0 8px; padding: 0; list-style: none; }
#coachAssessmentSelector .pid-premium-assessment-type-features li { position: relative; padding-left: 16px; font-size: 11.5px; color: var(--pid-theme-text-secondary); }
#coachAssessmentSelector .pid-premium-assessment-type-features li::before { content: ""; position: absolute; left: 0; top: 7px; width: 6px; height: 6px; border-radius: 50%; background: var(--pid-theme-teal); }
#coachAssessmentSelector .pid-premium-assessment-type.is-available .pid-btn--primary { margin-top: auto; align-self: start; }
#coachAssessmentSelector .pid-premium-assessment-unavailable { margin-top: auto; font-size: 11px; font-weight: 700; color: var(--pid-theme-text-secondary); }
@media (hover:hover) and (pointer:fine) {
  #coachAssessmentSelector .pid-premium-assessment-type.is-available:hover { transform: translateY(-3px); }
}
@media (prefers-reduced-motion: reduce) {
  #coachAssessmentSelector .pid-premium-assessment-type.is-available:hover { transform: none; }
}
@media (max-width: 1100px) {
  #coachAssessmentSelector .pid-premium-assessment-types { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #coachAssessmentSelector .pid-premium-assessment-type.is-available { grid-column: 1 / -1; }
}
@media (max-width: 768px) {
  #coachAssessmentSelector .pid-premium-assessment-types { grid-template-columns: 1fr; gap: 12px; }
  #coachAssessmentSelector .pid-premium-assessment-type { padding: 18px; border-radius: 16px; }
}
@media (max-width: 480px) {
  #coachAssessmentSelector .pid-premium-assessment-type-features { display: none; }
  #coachAssessmentSelector .pid-premium-assessment-type { padding: 16px; gap: 8px; }
  #coachAssessmentSelector .pid-premium-assessment-type h2 { font-size: 15px; }
}

/* --- My Reports --- */
#coachReportsPage .pid-premium-report-context { margin-top: -6px; font-size: 12px; color: var(--pid-theme-text-secondary); }
#coachReportsPage .pid-premium-report-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
#coachReportsPage .pid-premium-report-summary .pid-kpi--premium { padding: 16px 18px; min-height: 92px; border-radius: 16px; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
/* color/text-transform/letter-spacing already match the shared
   .pid-kpi--premium internal-element defaults; only the smaller size
   scale for this compact summary variant is Coach-specific. */
#coachReportsPage .pid-premium-report-summary .pid-kpi-value { font-size: 26px; font-weight: 750; letter-spacing: -.03em; }
#coachReportsPage .pid-premium-report-summary .pid-kpi-label { font-size: 10.5px; font-weight: 700; }
/* Filter tabs + search unify into one recessed toolbar surface (was two
   separate inset pills sitting side by side); the active tab and the
   search field's caret/divider now read as the only "raised" contrast
   inside a single trough instead of competing containers. */
#coachReportsPage .pid-premium-report-controls { display: flex; align-items: center; gap: 4px; padding: 6px; border-radius: 16px; background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset); flex-wrap: wrap; }
#coachReportsPage .pid-premium-filter-tabs { display: inline-flex; gap: 4px; }
#coachReportsPage .pid-premium-filter-tabs button { min-height: 36px; padding: 0 16px; border: 0; border-radius: 10px; background: transparent; color: var(--pid-theme-text-secondary); font-size: 12px; font-weight: 700; cursor: pointer; transition: background-color 160ms ease, color 160ms ease, box-shadow 160ms ease; }
#coachReportsPage .pid-premium-filter-tabs button.is-active { background: var(--pid-theme-surface-raised); color: var(--pid-theme-text-primary); box-shadow: var(--pid-theme-shadow-raised); }
#coachReportsPage .pid-premium-report-search { display: flex; align-items: center; gap: 8px; flex: 1 1 200px; max-width: 300px; margin-left: auto; padding-left: 12px; border-left: 1px solid var(--pid-theme-border-soft); }
#coachReportsPage .pid-premium-report-search span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
/* A global "input,select,textarea{background:#fff!important}" reset
   elsewhere in index.html out-prioritizes any non-important override.
   The field now sits flush inside the shared recessed toolbar (no
   separate inset pill of its own) with only the divider above marking
   it off from the filter tabs. */
#assessmentCenter.pid-coach-premium #coachReportsSearch { background: transparent !important; box-shadow: none !important; border: 0 !important; border-radius: 8px !important; color: var(--pid-theme-text-primary) !important; min-height: 36px !important; padding: 0 !important; }
#assessmentCenter.pid-coach-premium #coachReportsSearch:focus-visible { box-shadow: var(--pid-theme-focus-ring) !important; }
@media (max-width: 768px) {
  /* .pid-premium-report-controls switches to a column flex layout below;
     without resetting flex-grow here the search field's "1 1 200px"
     (sized for a row layout) instead expands to fill the column's
     leftover vertical space. */
  #coachReportsPage .pid-premium-report-search { flex: none; margin-left: 0; padding-left: 0; border-left: 0; padding-top: 10px; border-top: 1px solid var(--pid-theme-border-soft); max-width: none; }
}
#coachReportsPage .pid-premium-report-list-head { display: grid; grid-template-columns: minmax(120px,1.2fr) minmax(120px,1fr) 96px 68px 96px 210px; gap: 12px; padding: 0 20px 8px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--pid-theme-text-secondary); }
#coachReportsPage .pid-premium-report-list { display: grid; gap: 10px; }
/* .pid-coach-report-row and its descendants reuse the render function's
   existing class names (JS untouched) but playerid-coach-workspace.css
   ships an already-styled "v2" card for these same classes at
   .pid-coach-workspace #coachReportsPage .X (1 ID + 2 classes, or +tag),
   which out-specifies a plain #coachReportsPage .X rule. The double-ID
   prefix below (#assessmentCenter#coachReportsPage's ancestor chain)
   guarantees these premium, theme-aware declarations win instead. */
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-row { display: grid; grid-template-columns: minmax(120px,1.2fr) minmax(120px,1fr) 96px 68px 96px 210px; align-items: center; gap: 12px; padding: 16px 20px; border: 0; border-radius: 16px; background: var(--pid-theme-surface-raised); box-shadow: var(--pid-theme-shadow-raised); transition: transform 170ms ease; }
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-player,
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-tournament { min-width: 0; display: grid; gap: 3px; }
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-player strong,
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-tournament strong { font-size: 13px; color: var(--pid-theme-text-primary); overflow-wrap: anywhere; }
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-player small,
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-tournament small { margin-top: 0; font-size: 10.5px; color: var(--pid-theme-text-secondary); }
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-date { font-size: 11.5px; color: var(--pid-theme-text-secondary); }
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-score { font-size: 20px; font-weight: 750; color: var(--pid-theme-text-primary); }
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-score small { font-size: 10px; font-weight: 600; color: var(--pid-theme-text-secondary); }
#assessmentCenter.pid-coach-premium #coachReportsPage .coach-report-badge-v2 { border-radius: 999px; font-size: 9px; background: var(--pid-theme-surface-inset); color: var(--pid-theme-text-secondary); border-color: transparent; }
#assessmentCenter.pid-coach-premium #coachReportsPage .coach-report-badge-v2--published,
#assessmentCenter.pid-coach-premium #coachReportsPage .coach-report-badge-v2--submitted { background: color-mix(in srgb, var(--pid-theme-teal) 16%, transparent); color: var(--pid-theme-teal); }
#assessmentCenter.pid-coach-premium #coachReportsPage .coach-report-badge-v2--draft { background: var(--pid-theme-surface-inset); color: var(--pid-theme-text-primary); box-shadow: inset 0 0 0 1px var(--pid-theme-border-soft); }
#coachReportsPage .pid-premium-report-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
#coachReportsPage .pid-premium-report-actions .pid-report-action { min-height: 34px; padding: 0 12px; font-size: 10.5px; }
/* Legacy playerid-coach-workspace.css ships ID-scoped !important rules on
   these exact classes using light-only --pid-color-* tokens (no dark
   variant). Re-assert them here with theme-aware tokens so Reports/
   Development/Tournaments controls stay correct in dark mode; the
   double-ID selector plus !important both out-specifies and out-orders
   the legacy declarations. */
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-report-action {
  min-height: 34px !important; padding: 0 12px !important; border: 0 !important; border-radius: 10px !important;
  background: var(--pid-theme-surface-raised) !important; color: var(--pid-theme-text-primary) !important;
  box-shadow: var(--pid-theme-shadow-raised) !important; font-size: 10.5px !important; font-weight: 700 !important;
}
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-report-action-edit {
  background: var(--pid-theme-teal) !important; color: #fff !important; box-shadow: none !important;
}
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-report-action-publish {
  background: var(--pid-theme-surface-inset) !important; color: var(--pid-theme-text-primary) !important; box-shadow: var(--pid-theme-shadow-inset) !important; font-weight: 800 !important;
}
#assessmentCenter.pid-coach-premium #coachReportsPage .pid-report-action-pdf { color: var(--pid-theme-text-secondary) !important; }
#assessmentCenter.pid-coach-premium #coachDevelopmentPage .pid-development-review-action {
  min-height: 36px !important; padding: 0 14px !important; border: 0 !important; border-radius: 10px !important;
  background: var(--pid-theme-surface-inset) !important; background-image: none !important; box-shadow: var(--pid-theme-shadow-inset) !important;
  color: var(--pid-theme-text-primary) !important; font-size: 11px !important; font-weight: 700 !important;
}
#assessmentCenter.pid-coach-premium #coachDevelopmentPage .pid-development-back {
  min-height: 40px !important; padding: 8px 14px !important; border: 0 !important; border-radius: 10px !important;
  background: transparent !important; background-image: none !important; box-shadow: none !important;
  color: var(--pid-theme-teal) !important; font-weight: 700 !important;
}
#assessmentCenter.pid-coach-premium #coachDevelopmentPage .pid-development-pillar-tab {
  border: 1px solid var(--pid-theme-border-soft) !important; background: var(--pid-theme-surface-raised) !important; background-image: none !important;
  color: var(--pid-theme-text-primary) !important; box-shadow: var(--pid-theme-shadow-raised) !important;
}
#assessmentCenter.pid-coach-premium #coachDevelopmentPage .pid-development-pillar-tab.is-active {
  border-color: transparent !important; background: var(--pid-theme-teal) !important; background-image: none !important; color: #fff !important; box-shadow: none !important;
}
#assessmentCenter.pid-coach-premium #coachTournamentsPage .coach-tournament-badge {
  border-color: transparent; background: color-mix(in srgb, var(--pid-theme-teal) 14%, transparent); color: var(--pid-theme-teal);
}
@media (hover:hover) and (pointer:fine) {
  #assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-row:hover { transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) {
  #assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-row:hover { transform: none; }
}
#coachReportsPage .coach-report-empty-v2 { border-radius: 18px; background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset); border: 0; color: var(--pid-theme-text-secondary); }
#coachReportsPage .coach-report-empty-v2 strong { color: var(--pid-theme-text-primary); }
@media (max-width: 1050px) {
  #coachReportsPage .pid-premium-report-list-head { display: none; }
  #assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-row { grid-template-columns: minmax(0,1fr) auto; grid-template-areas: "player score" "tournament tournament" "date status" "actions actions"; row-gap: 8px; }
  #assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-player { grid-area: player; }
  #assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-tournament { grid-area: tournament; }
  #assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-date { grid-area: date; }
  #assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-score { grid-area: score; justify-self: end; }
  #assessmentCenter.pid-coach-premium #coachReportsPage .coach-report-badge-v2 { grid-area: status; justify-self: start; }
  #assessmentCenter.pid-coach-premium #coachReportsPage .pid-premium-report-actions { grid-area: actions; justify-content: flex-start; }
}
@media (max-width: 768px) {
  #coachReportsPage .pid-premium-report-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #coachReportsPage .pid-premium-report-controls { flex-direction: column; align-items: stretch; }
  #coachReportsPage .pid-premium-report-search { max-width: none; }
  #assessmentCenter.pid-coach-premium #coachReportsPage .pid-coach-report-row { padding: 14px 16px; border-radius: 14px; }
}
@media (max-width: 480px) {
  #coachReportsPage .pid-premium-report-actions .pid-report-action { flex: 1 1 auto; min-width: 44px; min-height: 40px; }
}

/* --- My Tournaments --- */
#coachTournamentsPage .pid-premium-tournament-list { display: grid; gap: 14px; }
#coachTournamentsPage .pid-premium-tournament-card { padding: 20px 22px; border-radius: 18px; }
#coachTournamentsPage .pid-premium-tournament-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
#coachTournamentsPage .pid-premium-tournament-card-head h4 { margin: 0 0 4px; font-size: 15px; font-weight: 750; color: var(--pid-theme-text-primary); }
#coachTournamentsPage .pid-premium-tournament-card-head small { font-size: 11.5px; color: var(--pid-theme-text-secondary); }
#coachTournamentsPage .pid-premium-tournament-squad { display: grid; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--pid-theme-border-soft); }
#coachTournamentsPage .pid-premium-tournament-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset); }
#coachTournamentsPage .pid-premium-tournament-row strong { display: block; font-size: 13px; color: var(--pid-theme-text-primary); }
#coachTournamentsPage .pid-premium-tournament-row small { font-size: 10.5px; color: var(--pid-theme-text-secondary); }
#coachTournamentsPage .pid-premium-empty-state { display: grid; justify-items: start; gap: 8px; padding: 28px 24px; border-radius: 18px; background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset); color: var(--pid-theme-text-secondary); }
#coachTournamentsPage .pid-premium-empty-state strong { color: var(--pid-theme-text-primary); font-size: 14px; }
#coachTournamentsPage .pid-premium-empty-state p { margin: 0; max-width: 56ch; font-size: 12.5px; line-height: 1.6; }
/* Error state recomposed as a compact, self-contained card (was the same
   full-width empty-state trough as "no assignments yet", which read as an
   oversized container for one line of copy and a retry button). */
#coachTournamentsPage .pid-premium-empty-state.is-error { gap: 10px; max-width: 420px; padding: 22px 24px; border-radius: 16px; box-shadow: var(--pid-theme-shadow-inset), inset 0 -3px 0 var(--pid-theme-teal); }
#coachTournamentsPage .pid-premium-empty-state.is-error strong { font-size: 13px; }
#coachTournamentsPage .pid-premium-empty-state.is-error p { font-size: 11.5px; }
#coachTournamentsPage .pid-premium-empty-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--pid-theme-surface-raised); box-shadow: var(--pid-theme-shadow-raised); color: var(--pid-theme-teal); }
#coachTournamentsPage .pid-premium-empty-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
#coachTournamentsPage .pid-premium-empty-state.is-error button { margin-top: 2px; }
#coachTournamentsPage .pid-premium-empty-state.is-nested { padding: 16px; }
@media (max-width: 480px) {
  #coachTournamentsPage .pid-premium-empty-state.is-error { max-width: none; }
}
@media (max-width: 480px) {
  #coachTournamentsPage .pid-premium-tournament-card { padding: 16px; }
  #coachTournamentsPage .pid-premium-tournament-row { flex-direction: column; align-items: stretch; gap: 10px; }
  #coachTournamentsPage .pid-premium-tournament-row .pid-premium-control { width: 100%; }
}

/* --- Development Review --- */
#coachDevelopmentPage .pid-development-workspace { display: grid; gap: 20px; }
#coachDevelopmentPage .pid-premium-development-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
#coachDevelopmentPage .pid-premium-development-kpi { padding: 16px 18px; min-height: 96px; border-radius: 16px; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
/* The shared .pid-kpi--premium base rule (playerid-premium-components.css)
   carries no ID, so playerid-coach-workspace.css's tag-qualified
   "#coachDevelopmentPage .pid-development-kpis article" /
   ".pid-development-detail-summary article" legacy rules (1 ID + 1 tag)
   out-specify it and leave the card on a hardcoded light background.
   Re-assert the premium surface at double-ID specificity. */
#assessmentCenter.pid-coach-premium #coachDevelopmentPage .pid-premium-development-kpi { border: 0; background: var(--pid-theme-surface-raised); box-shadow: var(--pid-theme-shadow-raised); }
#coachDevelopmentPage .pid-premium-development-kpi strong { font-size: 24px; font-weight: 750; color: var(--pid-theme-text-primary); }
#coachDevelopmentPage .pid-premium-development-kpi small:first-of-type { font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--pid-theme-text-secondary); order: -1; }
#coachDevelopmentPage .pid-premium-development-kpi span { font-size: 10.5px; color: var(--pid-theme-text-secondary); }
#coachDevelopmentPage .pid-premium-development-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 14px 18px; border-radius: 16px; background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset); }
#coachDevelopmentPage .pid-premium-filter-tabs { display: inline-flex; gap: 4px; }
#coachDevelopmentPage .pid-development-filters button { min-height: 36px; padding: 0 14px; border: 0; border-radius: 10px; background: transparent; color: var(--pid-theme-text-secondary); font-size: 11.5px; font-weight: 700; cursor: pointer; transition: background-color 160ms ease, color 160ms ease, box-shadow 160ms ease; }
#coachDevelopmentPage .pid-development-filters button.is-active { background: var(--pid-theme-surface-raised); color: var(--pid-theme-text-primary); box-shadow: var(--pid-theme-shadow-raised); }
#coachDevelopmentPage .pid-premium-development-search { display: flex; align-items: center; gap: 8px; flex: 1 1 220px; max-width: 280px; }
#coachDevelopmentPage .pid-premium-development-search span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
/* Legacy "#coachDevelopmentPage .pid-development-search input" (1 ID + 1
   class + tag) out-specifies the shared .pid-input--premium rule (no ID). */
#assessmentCenter.pid-coach-premium #coachDevelopmentSearch { width: 100% !important; background: var(--pid-theme-surface-inset) !important; box-shadow: var(--pid-theme-shadow-inset) !important; border-color: transparent !important; color: var(--pid-theme-text-primary) !important; }
#coachDevelopmentPage .pid-premium-development-list-head { display: grid; grid-template-columns: minmax(140px,1.3fr) minmax(120px,1fr) minmax(120px,1fr) 130px 130px; gap: 12px; padding: 0 18px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--pid-theme-text-secondary); }
#coachDevelopmentPage .pid-premium-development-list { display: grid; gap: 10px; }
#coachDevelopmentPage .pid-premium-development-row { display: grid; grid-template-columns: minmax(150px,1.5fr) minmax(110px,1fr) minmax(110px,1fr) 120px 130px; align-items: center; gap: 12px; padding: 16px 18px; border-radius: 16px; background: var(--pid-theme-surface-raised); box-shadow: var(--pid-theme-shadow-raised); transition: transform 170ms ease; }
/* Hierarchy pass: player identity is the strongest element in the row;
   Focus/Strongest stay clearly secondary; Status/Review read as
   supporting metadata rather than competing for the same weight. */
#coachDevelopmentPage .pid-premium-development-player strong { display: block; font-size: 14px; font-weight: 750; letter-spacing: -.01em; color: var(--pid-theme-text-primary); }
#coachDevelopmentPage .pid-premium-development-player small { font-size: 10.5px; color: var(--pid-theme-text-secondary); }
#coachDevelopmentPage .pid-premium-development-cell { font-size: 11px; font-weight: 500; color: var(--pid-theme-text-secondary); opacity: .92; }
#coachDevelopmentPage .pid-premium-development-status { justify-self: start; padding: 4px 10px; border-radius: 999px; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; background: var(--pid-theme-surface-inset); color: var(--pid-theme-text-secondary); }
/* Legacy .pid-development-status.is-attention/.is-progress (playerid-coach-workspace.css)
   pair a hardcoded light background with a hardcoded light-mode text
   color at the same specificity as ours; without also re-asserting
   background here our color-only override could land on their
   uncontested light background and turn unreadable in dark mode. */
#assessmentCenter.pid-coach-premium #coachDevelopmentPage .pid-premium-development-status.is-attention { background: var(--pid-theme-surface-inset); color: var(--pid-theme-text-primary); box-shadow: inset 0 0 0 1px var(--pid-theme-border-soft); }
#assessmentCenter.pid-coach-premium #coachDevelopmentPage .pid-premium-development-status.is-progress { color: var(--pid-theme-teal); background: color-mix(in srgb, var(--pid-theme-teal) 14%, transparent); }
#coachDevelopmentPage .pid-premium-development-action { justify-self: end; min-height: 36px; padding: 0 14px; border-radius: 10px; background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset); color: var(--pid-theme-text-primary); font-size: 11px; font-weight: 700; }
@media (hover:hover) and (pointer:fine) {
  #coachDevelopmentPage .pid-premium-development-row:hover { transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) {
  #coachDevelopmentPage .pid-premium-development-row:hover { transform: none; }
}
#coachDevelopmentPage .pid-development-empty,
#coachDevelopmentPage .pid-development-page-state { padding: 24px; border-radius: 16px; background: var(--pid-theme-surface-inset); box-shadow: var(--pid-theme-shadow-inset); color: var(--pid-theme-text-secondary); }
#coachDevelopmentPage .pid-development-page-state.is-error { box-shadow: var(--pid-theme-shadow-inset), inset 0 -3px 0 var(--pid-theme-teal); }

/* Development detail view: one shared card treatment for every
   sub-section (pillar grid, trend chart, radar, evidence, recent) via
   their existing common .pid-development-section class -- internal
   chart/radar/explorer rendering is untouched. */
#coachDevelopmentPage .pid-development-section { padding: 22px; border-radius: 18px; background: var(--pid-theme-surface-raised); box-shadow: var(--pid-theme-shadow-raised); }
#coachDevelopmentPage .pid-development-section-heading h2 { color: var(--pid-theme-text-primary); }
#coachDevelopmentPage .pid-development-section-heading small { color: var(--pid-theme-teal); }
#coachDevelopmentPage .pid-development-section-heading p { color: var(--pid-theme-text-secondary); }
#coachDevelopmentPage .pid-development-detail-identity { display: flex; align-items: center; gap: 16px; padding: 18px 22px; border-radius: 18px; background: var(--pid-theme-surface-raised); box-shadow: var(--pid-theme-shadow-raised); }
/* summaryCard() prepends a small line-icon absolutely positioned by the
   legacy stylesheet (left:17px/top:17px) -- reserve the matching gutter
   so it doesn't overlap the label text. */
#coachDevelopmentPage .pid-development-detail-summary .pid-premium-development-kpi { position: relative; padding-left: 52px; }
#coachDevelopmentPage .pid-development-detail-copy h2 { margin: 0; color: var(--pid-theme-text-primary); }
#coachDevelopmentPage .pid-development-detail-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
#coachDevelopmentPage .pid-development-back { color: var(--pid-theme-teal); font-weight: 700; font-size: 12px; background: transparent; }
@media (max-width: 1100px) {
  #coachDevelopmentPage .pid-premium-development-kpis,
  #coachDevelopmentPage .pid-development-detail-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  #coachDevelopmentPage .pid-premium-development-list-head { display: none; }
  #coachDevelopmentPage .pid-premium-development-row { grid-template-columns: minmax(0,1fr) auto; grid-template-areas: "player status" "focus focus" "strongest strongest" "action action"; row-gap: 6px; }
  #coachDevelopmentPage .pid-premium-development-player { grid-area: player; }
  #coachDevelopmentPage .pid-premium-development-status { grid-area: status; }
  #coachDevelopmentPage .pid-premium-development-cell:nth-of-type(1) { grid-area: focus; }
  #coachDevelopmentPage .pid-premium-development-cell:nth-of-type(2) { grid-area: strongest; }
  #coachDevelopmentPage .pid-premium-development-action { grid-area: action; justify-self: stretch; }
}
@media (max-width: 768px) {
  #coachDevelopmentPage .pid-premium-development-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  #coachDevelopmentPage .pid-premium-development-controls { flex-direction: column; align-items: stretch; }
  #coachDevelopmentPage .pid-premium-development-search { max-width: none; }
  #coachDevelopmentPage .pid-development-section { padding: 18px; border-radius: 16px; }
  #coachDevelopmentPage .pid-development-detail-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 480px) {
  #coachDevelopmentPage .pid-development-detail-identity { flex-direction: column; align-items: flex-start; text-align: left; }
}
/* Coach profile identity card (canonical coach photo, profiles.avatar_url).
   Same composition as the Parent Player Overview profile module: circular photo
   on the left with Edit Coach Info + Change Photo beneath it, identity on the
   right. Surfaces/text use the shared theme tokens so the dark toggle applies. */
#coachProfileIdentity.pid-coach-profile { display: grid; grid-template-columns: 168px minmax(0,1fr); gap: 26px; align-items: start; padding: 22px 24px; border-radius: 20px; }
#coachProfileIdentity[hidden] { display: none; }
#coachProfileIdentity .pid-coach-profile-media { display: grid; gap: 12px; min-width: 0; }
#coachProfileIdentity .pid-coach-profile-photo { justify-self: center; width: 164px; height: 164px; aspect-ratio: 1/1; display: grid; place-items: center; overflow: hidden; border: 3px solid #fff; border-radius: 50%; background: #e6f7f5 none center/cover no-repeat; box-shadow: 0 0 0 1px #cfe3e6, 0 0 0 6px rgba(19,170,166,.08), 0 4px 14px rgba(7,28,43,.08); color: #078c88; font-size: 40px; font-weight: 850; letter-spacing: .02em; user-select: none; }
#coachProfileIdentity .pid-coach-profile-photo.has-photo { background-color: #eef3f5; }
#coachProfileIdentity .pid-coach-profile-actions { display: grid; gap: 7px; }
#coachProfileIdentity .pid-coach-profile-actions button { width: 100%; min-height: 36px; padding: 8px 12px; border-radius: 9px; font-family: inherit; font-size: .72rem; font-weight: 800; box-shadow: none; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s; }
#coachProfileIdentity .pid-coach-profile-edit { border: 1px solid #0b2638; background: #0b2638; color: #fff; }
#coachProfileIdentity .pid-coach-profile-edit:hover, #coachProfileIdentity .pid-coach-profile-edit:focus-visible { border-color: #078c88; background: #078c88; }
#coachProfileIdentity .pid-coach-profile-photo-button { border: 1px solid #c3d3d7; background: #fff; color: #0b2638; }
#coachProfileIdentity .pid-coach-profile-photo-button:hover, #coachProfileIdentity .pid-coach-profile-photo-button:focus-visible { border-color: #13aaa6; background: #f3fbfa; color: #078c88; }
#coachProfileIdentity .pid-coach-profile-actions button:disabled { opacity: .6; cursor: progress; }
#coachProfileIdentity .pid-coach-profile-actions button:focus-visible { outline: 2px solid #13aaa6; outline-offset: 2px; }
#coachProfileIdentity .pid-coach-profile-status { min-height: 0; font-size: 11px; line-height: 1.4; text-align: center; color: var(--pid-theme-text-secondary); }
#coachProfileIdentity .pid-coach-profile-status[data-tone="success"] { color: #078c88; }
#coachProfileIdentity .pid-coach-profile-status[data-tone="error"] { color: #b42318; }
#coachProfileIdentity .pid-coach-profile-main { min-width: 0; }
#coachProfileIdentity .pid-coach-profile-eyebrow { display: block; color: var(--pid-theme-teal, #078c88) !important; font-size: 10px; font-weight: 800; letter-spacing: .1em; }
#coachProfileIdentity .pid-coach-profile-main h3 { margin: 5px 0 0; font-size: 26px; font-weight: 800; line-height: 1.15; letter-spacing: -.02em; overflow-wrap: anywhere; }
#coachProfileIdentity .pid-coach-profile-role { margin: 4px 0 0; font-size: 13px; font-weight: 600; }
#coachProfileIdentity .pid-coach-profile-context { display: flex; flex-wrap: wrap; gap: 10px 0; margin: 16px 0 0; padding: 12px 0; border-top: 1px solid var(--pid-theme-border-soft, #edf1f1); border-bottom: 1px solid var(--pid-theme-border-soft, #edf1f1); }
#coachProfileIdentity .pid-coach-profile-context div { min-width: 0; padding: 0 16px; border-left: 1px solid var(--pid-theme-border-soft, #e1e8e9); }
#coachProfileIdentity .pid-coach-profile-context div:first-child { padding-left: 0; border-left: 0; }
#coachProfileIdentity .pid-coach-profile-context div[hidden] { display: none; }
#coachProfileIdentity .pid-coach-profile-context dt { color: var(--pid-theme-text-secondary); font-size: 9.5px; font-weight: 800; letter-spacing: .08em; }
#coachProfileIdentity .pid-coach-profile-context dd { margin: 3px 0 0; color: var(--pid-theme-text-primary); font-size: 13.5px; font-weight: 700; overflow-wrap: anywhere; }
/* Topbar identity chip avatar (same canonical photo). */
#assessmentCenter .pid-premium-identity:has(.pid-coach-identity-avatar) { display: flex; align-items: center; gap: 10px; }
#assessmentCenter .pid-coach-identity-avatar { flex: 0 0 auto; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #e6f7f5 none center/cover no-repeat; box-shadow: 0 0 0 1px #cfe3e6; color: #078c88; font-size: 12px; font-weight: 800; user-select: none; }
/* Edit Coach Info dialog. */
/* Same visual language as the Parent Player Information / Parent Account editors. */
.pid-coach-info-dialog { position: fixed; inset: 0; z-index: 10040; display: grid; place-items: center; padding: 16px; font-family: 'Plus Jakarta Sans', sans-serif; }
.pid-coach-info-backdrop { position: absolute; inset: 0; background: rgba(7,20,31,.55); }
.pid-coach-info-panel { position: relative; box-sizing: border-box; display: grid; gap: 0; width: min(560px,100%); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 22px 26px 20px; border: 1px solid #e3e8ec; border-radius: 20px; background: #fff; color: #0b2638; box-shadow: 0 24px 70px rgba(6,24,38,.28); }
.pid-coach-info-panel .pid-coach-info-close { position: absolute; top: 18px; right: 16px; display: grid; place-items: center; width: 38px; height: 38px; min-height: 0; margin: 0; padding: 0 0 2px; border: 1px solid #d7e0e4; border-radius: 50%; background: #fff; color: #0b2638; font: 400 22px/1 system-ui,sans-serif; box-shadow: 0 1px 4px rgba(11,38,56,.06); cursor: pointer; transition: border-color .15s,color .15s,background-color .15s; }
.pid-coach-info-panel .pid-coach-info-close:hover, .pid-coach-info-panel .pid-coach-info-close:focus-visible { border-color: #13aaa6; background: #f1f9f8; color: #0d7f7c; outline: 0; }
.pid-coach-info-panel .pid-coach-info-header { position: static; min-height: 0; margin: 0; padding: 0 48px 16px 0; border: 0; border-bottom: 1px solid #e8edf0; border-radius: 0; background: #fff; box-shadow: none; color: #0b2638; text-align: left; }
.pid-coach-info-panel .pid-coach-info-header h2 { margin: 0; color: #0b2638; font-size: 15px; font-weight: 800; letter-spacing: .12em; word-spacing: .15em; line-height: 1.3; text-transform: uppercase; }
.pid-coach-info-panel .pid-coach-info-header p { margin: 5px 0 0; color: #52627a; font-size: 13.5px; line-height: 1.45; opacity: 1; }
.pid-coach-info-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 16px; padding: 18px 0 0; }
.pid-coach-info-field { display: grid; gap: 6px; min-width: 0; margin: 0; color: #4d5f74; font-size: 12px; font-weight: 600; letter-spacing: .01em; }
.pid-coach-info-field input { box-sizing: border-box; width: 100%; min-height: 44px; margin: 0; padding: 0 14px; border: 1px solid #d7e0e4 !important; border-radius: 12px !important; background: #fff !important; box-shadow: none !important; color: #0b2638 !important; font-family: inherit; font-size: 14.5px; font-weight: 600; line-height: 1.2; outline: 0; -webkit-appearance: none; appearance: none; transition: border-color .15s,box-shadow .15s; }
.pid-coach-info-field input:hover { border-color: #b8c7cf !important; }
.pid-coach-info-field input:focus, .pid-coach-info-field input:focus-visible { border-color: #13aaa6 !important; box-shadow: 0 0 0 3px rgba(19,170,166,.13) !important; outline: 0; }
.pid-coach-info-note { display: flex; align-items: flex-start; gap: 7px; margin: 12px 0 0; color: #55667b; font-size: 12px; line-height: 1.45; }
.pid-coach-info-note::before { content: "i"; flex: 0 0 auto; display: grid; place-items: center; width: 15px; height: 15px; margin-top: 1px; border: 1px solid #a7b5c2; border-radius: 50%; color: #55667b; font: 700 9.5px/1 Georgia,serif; }
/* Inline status: only errors render here (success is shown after close). */
.pid-coach-info-status { margin: 14px 0 0; padding: 8px 11px; border: 1px solid #f3d6da; border-radius: 10px; background: #fdf2f3; color: #9b2c3a; font-size: 12.5px; font-weight: 600; line-height: 1.45; }
.pid-coach-info-status.is-success { border-color: #cdebe6; background: #ecf8f5; color: #0b6f6a; }
.pid-coach-info-status:empty { display: none; }
.pid-coach-info-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #e8edf0; }
.pid-coach-info-actions button { min-width: 112px; min-height: 40px; padding: 0 18px !important; border-radius: 11px !important; font-family: inherit; font-size: 13px; font-weight: 800; box-shadow: none !important; cursor: pointer; transition: background-color .15s,border-color .15s,color .15s; }
.pid-coach-info-actions .pid-btn--secondary { border: 1px solid #cfd8e0 !important; background: #fff !important; color: #0b2638 !important; }
.pid-coach-info-actions .pid-btn--secondary:hover, .pid-coach-info-actions .pid-btn--secondary:focus-visible { border-color: #13aaa6 !important; background: #f1f9f8 !important; color: #0d7f7c !important; }
.pid-coach-info-actions .pid-btn--primary { border: 1px solid #0b2638 !important; background: #0b2638 !important; color: #fff !important; }
.pid-coach-info-actions .pid-btn--primary:hover, .pid-coach-info-actions .pid-btn--primary:focus-visible { border-color: #0d7f7c !important; background: #0d7f7c !important; }
.pid-coach-info-actions button:disabled { opacity: .55; cursor: progress; }
.pid-coach-info-actions button:focus-visible { outline: 2px solid #13aaa6; outline-offset: 2px; }
@media (max-width: 1100px) {
  #coachProfileIdentity.pid-coach-profile { grid-template-columns: 150px minmax(0,1fr); gap: 22px; }
  #coachProfileIdentity .pid-coach-profile-photo { width: 148px; height: 148px; font-size: 36px; }
}
@media (max-width: 600px) {
  #coachProfileIdentity.pid-coach-profile { grid-template-columns: 76px minmax(0,1fr); column-gap: 14px; row-gap: 0; padding: 16px 14px; border-radius: 16px; }
  #coachProfileIdentity .pid-coach-profile-media, #coachProfileIdentity .pid-coach-profile-main { display: contents; }
  #coachProfileIdentity .pid-coach-profile-photo { grid-column: 1; grid-row: 1/span 3; align-self: center; justify-self: start; width: 76px; height: 76px; border-width: 2px; box-shadow: 0 0 0 1px #cfe3e6, 0 0 0 4px rgba(19,170,166,.08), 0 3px 10px rgba(7,28,43,.07); font-size: 21px; }
  #coachProfileIdentity .pid-coach-profile-eyebrow { grid-column: 2; grid-row: 1; align-self: end; }
  #coachProfileIdentity .pid-coach-profile-main h3 { grid-column: 2; grid-row: 2; font-size: 19px; }
  #coachProfileIdentity .pid-coach-profile-role { grid-column: 2; grid-row: 3; align-self: start; font-size: 12.5px; }
  #coachProfileIdentity .pid-coach-profile-context { grid-column: 1/-1; order: 5; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; margin-top: 14px; }
  #coachProfileIdentity .pid-coach-profile-context div { padding: 0; border-left: 0; }
  #coachProfileIdentity .pid-coach-profile-actions { grid-column: 1/-1; order: 6; margin-top: 14px; }
  #coachProfileIdentity .pid-coach-profile-actions button { min-height: 44px; font-size: .8rem; }
  .pid-coach-info-dialog { padding: max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); }
  .pid-coach-info-panel { padding: 16px; border-radius: 18px; }
  .pid-coach-info-panel .pid-coach-info-close { top: 12px; right: 10px; width: 40px; height: 40px; }
  .pid-coach-info-panel .pid-coach-info-header { padding-bottom: 14px; }
  .pid-coach-info-grid { grid-template-columns: 1fr; gap: 12px; padding-top: 16px; }
  .pid-coach-info-field { font-size: 12.5px; }
  .pid-coach-info-field input { min-height: 46px; font-size: 16px; }
  .pid-coach-info-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .pid-coach-info-actions button { min-width: 0; min-height: 46px; font-size: 14px; }
}
