/* SLPT-R25R13-SESSION-ACTION-HEADER-INTEGRITY-20260817 */
/* SLPT R23 - Precision Glass production UI
   Overlay only: preserves existing workflows, current owner hero imagery and legacy component semantics. */
:root{
  --r23-burgundy:#8d2931;
  --r23-burgundy-2:#a7444d;
  --r23-green:#2e9569;
  --r23-blue:#477bd3;
  --r23-violet:#7759b8;
  --r23-pink:#c85989;
  --r23-orange:#d78738;
  --r23-cyan:#3a99b3;
  --r23-panel:#ffffff;
  --r23-panel-soft:#fafafd;
  --r23-line:rgba(210,213,222,.82);
  --r23-glass:rgba(255,255,255,.66);
  --r23-glass-strong:rgba(255,255,255,.76);
  --r23-shadow:0 18px 52px rgba(42,36,54,.11);
  --r23-soft-shadow:0 8px 26px rgba(42,36,54,.07);
}

/* Global shell: current structure, upgraded material. */
body:not(.r7-live-body){
  background:
    radial-gradient(circle at 8% 7%,rgba(141,41,49,.12),transparent 25%),
    radial-gradient(circle at 92% 9%,rgba(71,123,211,.13),transparent 28%),
    radial-gradient(circle at 74% 94%,rgba(119,89,184,.08),transparent 28%),
    var(--app-bg,#f4f3f7);
}
#appView.app-shell{
  gap:12px;
  padding:12px;
}
#appView .sidebar{
  border:1px solid rgba(255,255,255,.88);
  border-radius:24px;
  background:var(--r23-glass-strong);
  box-shadow:var(--r23-shadow),inset 0 1px 0 rgba(255,255,255,.9);
  backdrop-filter:blur(26px) saturate(165%);
  -webkit-backdrop-filter:blur(26px) saturate(165%);
}
#appView .sidebar-brand-row{align-items:center;gap:8px}
#appView .brand{letter-spacing:-.04em}
#appView .brand b{color:var(--r23-burgundy)}
#appView .nav{gap:5px}
#appView .nav button{
  min-height:42px;
  gap:9px;
  border-radius:13px;
  color:var(--muted,#72757f);
  transition:background .16s ease,color .16s ease,transform .16s ease;
}
#appView .nav button:hover:not(.hidden){
  background:rgba(255,255,255,.50);
  color:var(--text,#1d1e23);
}
#appView .nav button.active{
  color:var(--r23-burgundy);
  background:rgba(141,41,49,.10);
}
.r23-nav-icon{
  width:30px;
  height:30px;
  flex:0 0 30px;
  display:grid;
  place-items:center;
  border-radius:10px;
  color:currentColor;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(215,218,227,.86);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
}
.r23-nav-icon svg,.r23-inline-icon svg{
  width:16px;height:16px;
  fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;
}
#nav button[data-page="clients"] .r23-nav-icon{color:var(--r23-green);background:rgba(46,149,105,.11)}
#nav button[data-page="calendar"] .r23-nav-icon{color:var(--r23-blue);background:rgba(71,123,211,.11)}
#nav button[data-page="programs"] .r23-nav-icon{color:var(--r23-violet);background:rgba(119,89,184,.11)}
#nav button[data-page="assessments"] .r23-nav-icon,#nav button[data-page="reports"] .r23-nav-icon{color:var(--r23-pink);background:rgba(200,89,137,.11)}
#nav button[data-page="nutrition"] .r23-nav-icon{color:var(--r23-orange);background:rgba(215,135,56,.11)}
#nav button[data-page="messages"] .r23-nav-icon{color:var(--r23-cyan);background:rgba(58,153,179,.11)}
#nav button[data-page="physique"] .r23-nav-icon{color:var(--r23-green);background:rgba(46,149,105,.11)}
#nav button[data-page="business"] .r23-nav-icon{color:#278e87;background:rgba(39,142,135,.11)}
#nav button[data-page="coaches"] .r23-nav-icon{color:var(--r23-violet);background:rgba(119,89,184,.11)}

#appView .topbar{
  min-height:58px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:19px;
  background:var(--r23-glass);
  box-shadow:var(--r23-soft-shadow),inset 0 1px 0 rgba(255,255,255,.92);
  backdrop-filter:blur(24px) saturate(160%);
  -webkit-backdrop-filter:blur(24px) saturate(160%);
}
#appView .search-wrap{
  border:1px solid rgba(214,217,225,.82);
  border-radius:14px;
  background:rgba(255,255,255,.72);
}
#appView .search-wrap .r23-search-icon{display:grid;place-items:center;color:var(--muted,#737681)}
#appView .search-wrap .r23-search-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
#appView .btn-primary{
  background:linear-gradient(180deg,var(--r23-burgundy-2),#7b2229);
  border-color:transparent;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24);
}
#appView .avatar-button,#appView .icon-btn{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.88);
}

/* Content surfaces remain deliberately solid for readability. */
#content .panel,#content .tool-card,#content .stat-card,#content .program-list-card,#content [data-program-card]{
  border-color:var(--r23-line);
  box-shadow:0 5px 18px rgba(45,40,56,.035);
}
#content .panel{background:var(--r23-panel)}
#content .stat-card{
  position:relative;
  overflow:hidden;
  border-radius:16px;
}
#content .stat-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:4px;
  background:var(--r23-page-accent,var(--r23-burgundy));
  opacity:.9;
}
#content .stat-icon{
  border-radius:10px;
  background:color-mix(in srgb,var(--r23-page-accent,var(--r23-burgundy)) 10%,white);
  color:var(--r23-page-accent,var(--r23-burgundy));
}
#content .stat-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#content .page-head h1{letter-spacing:-.03em}
#content .badge{border-radius:999px}
#content .quick-btn,#content .small-btn,#content .btn{border-radius:11px}
#content input,#content select,#content textarea{border-radius:10px}
#content .segmented-tabs{border-radius:12px}

/* Per-page colour identity. */
html[data-r23-page="dashboard"]{--r23-page-accent:var(--r23-burgundy)}
html[data-r23-page="clients"]{--r23-page-accent:var(--r23-green)}
html[data-r23-page="calendar"]{--r23-page-accent:var(--r23-blue)}
html[data-r23-page="programs"]{--r23-page-accent:var(--r23-violet)}
html[data-r23-page="assessments"],html[data-r23-page="reports"]{--r23-page-accent:var(--r23-pink)}
html[data-r23-page="nutrition"]{--r23-page-accent:var(--r23-orange)}
html[data-r23-page="messages"]{--r23-page-accent:var(--r23-cyan)}
html[data-r23-page="business"]{--r23-page-accent:#278e87}

/* Preserve existing Main Coach dashboard hero image: only frame it, never replace its image/background. */
#content .v192-hero.r16-owner-hero{
  border-radius:22px;
  border:1px solid rgba(255,255,255,.86);
  box-shadow:0 12px 36px rgba(41,34,52,.08);
  overflow:hidden;
}
#content .v192-hero.r16-owner-hero img{display:block}

/* Dashboard collapsibility. */
#content .r23-dashboard-controls{
  display:flex;
  align-items:center;
  gap:7px;
  margin-left:auto;
}
#content .r23-collapse-all,#content .r23-panel-toggle{
  border:1px solid rgba(205,208,217,.88);
  background:rgba(255,255,255,.82);
  color:var(--muted,#72757f);
  border-radius:10px;
  font-weight:750;
}
#content .r23-collapse-all{padding:7px 10px;font-size:12px}
#content .r23-panel-toggle{
  width:30px;height:30px;padding:0;
  display:grid;place-items:center;
  flex:0 0 30px;
}
#content .r23-panel-toggle svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
#content .r23-collapsible.r23-collapsed > :not(.panel-head){display:none!important}
#content .r23-collapsible.r23-collapsed .r23-panel-toggle svg{transform:rotate(-90deg)}
#content.r23-dashboard-all-collapsed .stats-grid,
#content.r23-dashboard-all-collapsed .role-stats-grid,
#content.r23-dashboard-all-collapsed .client-stats-grid{display:none!important}
#content.r23-dashboard-all-collapsed .r23-collapsible > :not(.panel-head){display:none!important}
#content.r23-dashboard-all-collapsed .r23-panel-toggle svg{transform:rotate(-90deg)}

/* Client mobile PWA dock: same current pages, Precision Glass navigation. */
.r23-client-dock,.r23-client-more{display:none}
@media(max-width:720px){
  html[data-role="client"] #appView,
  html[data-role="app_only"] #appView{padding-bottom:82px}
  html[data-role="client"] #appView .sidebar,
  html[data-role="app_only"] #appView .sidebar{display:none!important}
  html[data-role="client"] #appView.app-shell,
  html[data-role="app_only"] #appView.app-shell{grid-template-columns:1fr!important}
  html[data-role="client"] #mobileMenu,
  html[data-role="app_only"] #mobileMenu{display:none!important}
  .r23-client-dock{
    position:fixed;
    left:50%;bottom:12px;z-index:1200;
    transform:translateX(-50%);
    width:min(430px,calc(100% - 24px));
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:4px;
    padding:7px;
    border-radius:20px;
    background:rgba(255,255,255,.82);
    border:1px solid rgba(255,255,255,.94);
    box-shadow:0 16px 46px rgba(40,35,52,.14),inset 0 1px 0 rgba(255,255,255,.94);
    backdrop-filter:blur(26px) saturate(165%);
    -webkit-backdrop-filter:blur(26px) saturate(165%);
  }
  .r23-client-dock button{
    border:0;background:transparent;color:var(--muted,#747783);
    min-height:52px;border-radius:13px;
    display:grid;place-items:center;gap:2px;
    font-size:10px;font-weight:750;
  }
  .r23-client-dock button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .r23-client-dock button.active{background:rgba(141,41,49,.10);color:var(--r23-burgundy)}
  .r23-client-more{
    position:fixed;left:12px;right:12px;bottom:78px;z-index:1199;
    padding:10px;border-radius:20px;
    grid-template-columns:1fr 1fr;gap:7px;
    background:rgba(255,255,255,.92);
    border:1px solid rgba(255,255,255,.96);
    box-shadow:0 20px 60px rgba(40,35,52,.16);
    backdrop-filter:blur(28px) saturate(165%);
    -webkit-backdrop-filter:blur(28px) saturate(165%);
  }
  .r23-client-more.open{display:grid}
  .r23-client-more button{
    border:1px solid var(--r23-line);background:#fff;color:var(--text,#1d1e23);
    border-radius:14px;padding:10px;text-align:left;font-size:12px;font-weight:750;
  }
}

/* Existing dark theme remains dark; material and page colours remain readable. */
html[data-theme="mist-graphite"]{
  --r23-panel:#292c34;
  --r23-panel-soft:#23262d;
  --r23-line:rgba(255,255,255,.10);
  --r23-glass:rgba(37,40,48,.68);
  --r23-glass-strong:rgba(37,40,48,.78);
}
html[data-theme="mist-graphite"] #appView .sidebar,
html[data-theme="mist-graphite"] #appView .topbar{border-color:rgba(255,255,255,.12);box-shadow:0 16px 46px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.07)}
html[data-theme="mist-graphite"] #appView .search-wrap,
html[data-theme="mist-graphite"] .r23-nav-icon,
html[data-theme="mist-graphite"] #content .r23-collapse-all,
html[data-theme="mist-graphite"] #content .r23-panel-toggle{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.10)}
html[data-theme="mist-graphite"] #content .panel,
html[data-theme="mist-graphite"] #content .stat-card{background:var(--r23-panel)}
html[data-theme="mist-graphite"] .r23-client-dock,
html[data-theme="mist-graphite"] .r23-client-more{background:rgba(35,38,46,.90);border-color:rgba(255,255,255,.12)}
html[data-theme="mist-graphite"] .r23-client-more button{background:#292c34;border-color:rgba(255,255,255,.10)}

@media(prefers-reduced-motion:reduce){
  #appView .nav button,#content .r23-panel-toggle svg{transition:none!important}
}

/* R25R13: App-only programme rows are real accessible controls without changing card styling. */
.app-only-dashboard-grid button.list-row{width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.app-only-dashboard-grid button.list-row:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:12px}
