/* Coach workspace rhythm. Task-focused layouts, using the shared brand and
   native font contract. Component behaviour stays in its feature module. */
@media screen {
  body { line-height:1.5; }
  .main h2 { font-size:1.25rem;line-height:1.35; }
  .main h3 { font-size:1.0625rem;line-height:1.4; }
  .main .grid { gap:16px; }
  .main label.f { margin-bottom:16px; }
  .main .row,.main .spread { gap:8px 12px; }
  .main .btn { min-height:44px;padding:10px 14px; }
  .main .btn.sm { min-height:44px;padding:8px 12px; }
  .main .note,.main .alert { padding:12px 16px;line-height:1.6; }
  .main th,.main td { padding:12px 14px; }
  .main table td > small { display:block;margin-top:4px;font-size:.8125rem;line-height:1.5; }
  .main :is(.cms-section,.ledger-workspace,.calendar-agenda,.calendar-availability) > :is(h2,h3):first-child { margin:0 0 16px; }
  .main .sub { margin-block:4px 10px; }
  .section-heading { gap:16px;margin-bottom:20px; }
  .section-heading p { margin-top:4px; }
  .workspace-toolbar { padding:12px 0 16px;gap:12px; }
  .workspace-heading > .row { margin-top:0; }
  .workspace-empty { padding:32px 20px; }
  .workspace-empty p { margin-bottom:20px; }
  .rail #nav button { margin-block:3px;padding-block:10px; }
  .rail .brandmark.has-logo { padding-bottom:12px; }
  .rail .brandmark.has-logo .logo { max-height:64px; }
  .rail .rail-foot { margin-top:12px;padding-top:12px; }
  .rail .nav-extras > summary .pip { margin-left:auto;padding:0 7px;border-radius:9px;background:var(--gold);color:var(--on-gold,#17201d);font-size:.75rem; }

  /* A client has one section navigation, not a dropdown plus the same tabs. */
  .dossier-header { display:flex;align-items:start;gap:10px;padding-bottom:8px; }
  .dossier-back { flex:0 0 auto; }
  .dossier-header > .dossier-identity { flex:1;min-width:0; }
  .dossier-actions { flex:0 0 auto;margin-left:0; }
  .dossier-code { display:block;padding:6px 10px;color:var(--ink-2);font-size:.8125rem; }
  .dossier-breadcrumb { gap:8px;margin-bottom:4px; }
  .dossier-breadcrumb .btn { min-height:40px; }
  .dossier-actions > summary { min-height:40px;padding:8px; }
  .dossier-identity { gap:10px;align-items:center;padding-block:0; }
  .dossier-identity > .avatar { width:40px!important;height:40px!important;font-size:1rem!important;flex-shrink:0; }
  .dossier-identity h1 { font-size:1.375rem;line-height:1.25; }
  .dossier-context > summary { display:flex;align-items:center;min-height:32px;gap:6px;font-size:.8125rem;line-height:1.35; }
  .dossier-context > summary::after { flex:0 0 auto;margin-left:0; }
  .dossier-context > p { margin:4px 0; }
  .dossier-context:not([open]) > p,.dossier-context:not([open]) > .row { display:none; }
  .dossier-context[open] { padding-bottom:4px; }
  .dossier-workspace > label.dossier-section-select { display:none; }
  .dossier-index { gap:4px;margin-bottom:12px; }
  .dossier-index button { min-height:44px;padding:8px 12px; }
  .dossier-identity > .btn { width:auto;flex:none; }

  .profile-toolbar { display:flex;justify-content:flex-end;margin-bottom:8px; }
  .profile-toolbar .btn { display:inline-flex;gap:8px;align-items:center; }
  .profile-toolbar svg { width:16px;height:16px; }
  .client-brief { gap:20px;padding:16px 20px;margin-bottom:16px;grid-template-columns:1fr minmax(160px,.4fr); }
  .client-brief > div { min-width:0;overflow-wrap:anywhere; }
  .client-brief h2 { margin:4px 0; }
  .client-brief p { margin-top:4px; }
  .client-brief strong { font-size:1.35rem;margin-top:4px; }
  .profile-sections { gap:20px; }
  .profile-section > .spread { margin-bottom:16px; }
  .profile-facts > div { grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);gap:16px;padding:10px 0;line-height:1.55; }
  .profile-metrics,.account-support { margin-block:12px; }
  .profile-edit .grid { gap:16px 20px;margin-block:16px 24px; }
  .profile-edit .f { margin-bottom:0; }
  .profile-edit .grid.g4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .legacy-onboarding.card { padding:12px 16px; }
  .onboarding-summary { gap:8px; }
  .onboarding-summary .sub { margin-bottom:0; }
  .editor-actions { margin-top:20px;padding:12px 16px;gap:12px; }
  .editor-actions > span { font-size:.8125rem;line-height:1.5; }
  .medical-screening { margin-block:4px 8px; }
  .medical-screening > summary { min-height:44px;align-content:center; }
  .report-scroll-hint { display:none; }
  [data-progress-report] .kpi { padding:16px; }
  [data-progress-report] .kpi .v { font-size:1.5rem;line-height:1.25; }
  [data-progress-report] h2 { margin-block:16px 8px; }
  [data-progress-report] .card.flat { padding:20px; }
  .medical-history-entry { padding:14px 0; }
  .medical-changes { margin:16px 0; }
  .medical-changes > div { padding:12px 0; }
  .medical-changes dt { margin-bottom:4px; }
  .medical-history .sub { max-width:80ch; }

  /* Keep the values in view; graphs and dated logs expand in their own row. */
  .progress-controls > label.progress-view-select { display:none; }
  .client-calculations:not([open]) { display:none; }
  .client-calculations > summary[hidden] { display:none; }
  .daily-nutrition-goals:has(.client-calculations[open]) [data-act="nutrition:edit"] { display:none; }
  .progress-controls { display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin-bottom:12px; }
  .progress-workspace-heading { margin:0;order:2;flex:0 0 auto; }
  .progress-record-actions { display:flex;gap:8px; }
  .progress-controls > .tabs { margin:0;flex:1;min-width:0; }
  .progress-controls .tabs button { padding:8px 10px;min-height:44px; }
  .assessment-workspace > .spread > div > .sub,.measurement-workspace > .sub,.progress-photo-workspace > .spread .sub { margin:4px 0 8px;font-size:.8125rem; }
  .progress-baseline { padding:6px 0;margin:4px 0 12px;gap:12px;align-items:center; }
  .progress-baseline > div { display:flex;align-items:center;gap:6px; }
  .progress-baseline .btn { padding:4px 8px;font-size:.875rem; }
  .progress-baseline p { font-size:.8125rem;line-height:1.5; }
  .progress-metric-group { margin-top:20px; }
  .progress-metric-group h3 { margin-bottom:12px; }
  .progress-metric-list { display:grid;grid-template-columns:repeat(var(--metric-columns,3),minmax(0,1fr));gap:12px;border-radius:12px;background:none;align-items:start; }
  .progress-metric { border:1px solid var(--rule);border-radius:10px;background:var(--card);min-width:0;height:100%;overflow:hidden; }
  .progress-metric[open] { grid-column:1/-1; }
  .progress-metric > summary { grid-template-columns:minmax(0,1fr) auto 24px;gap:12px;padding:16px;min-height:84px;align-items:center; }
  .progress-metric > summary::after { width:24px;height:24px;font-size:1.1rem; }
  .progress-metric-label { font-size:.875rem;line-height:1.35; }
  .progress-metric-latest { font-size:.8125rem;line-height:1.5; }
  .progress-metric-latest b { font-size:1.125rem; }
  .progress-metric-latest small { margin-top:4px;font-size:.8125rem; }
  .progress-metric-content { padding:0 16px 16px; }
  .progress-metric-comparison { gap:16px;margin:16px 0; }
  .progress-metric-comparison dd { margin-top:4px; }
  .progress-graph-scroll { max-width:820px;margin-inline:auto; }
  .progress-metric-records { margin-top:8px;gap:2px 12px; }
  .progress-record-archive { margin:12px 0; }
  .progress-record-archive > summary { min-height:44px; }
  .assessment-date-field { margin:8px 0; }
  .assessment-fieldset { padding:20px;margin:20px 0; }
  .assessment-fieldset .grid { gap:16px; }
  .assessment-fieldset .f { margin-bottom:0; }
  .assessment-entry-footer { margin-top:12px;padding-top:8px;gap:8px; }
  .progress-photo-workspace { margin-top:16px; }
  .progress-photo-upload { margin:8px 0; }
  .progress-photo-upload > .row { margin-top:8px; }
  .progress-photo-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;background:none;align-items:start; }
  .progress-photo-pose { border:1px solid var(--rule);border-radius:10px;background:var(--card);height:100%;min-width:0;overflow:hidden; }
  .progress-photo-pose[open] { grid-column:1/-1; }
  .progress-photo-pose > summary { gap:12px;padding:16px; }
  .progress-photo-preview { width:44px;height:58px; }
  .progress-photo-preview .photo { object-fit:contain; }
  .progress-photo-label { gap:2px; }
  .progress-photo-label b { font-size:.875rem; }
  .progress-photo-label span,.progress-photo-label small { font-size:.8125rem;line-height:1.5; }
  .progress-photo-content { padding:0 16px 16px; }
  .progress-photo-content .photos { grid-template-columns:repeat(auto-fill,minmax(130px,180px));gap:8px; }
  .progress-photo-content .photo { object-fit:contain; }
  .photocard .pick { min-width:44px;min-height:44px;font-size:1rem; }
  .progress-photo-workspace .compare { grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:720px;margin-inline:auto; }
  .progress-photo-workspace .compare .photo { object-fit:contain;max-height:360px;background:var(--band-2); }
  .progress-photo-workspace .compare figcaption { font-size:.8125rem;line-height:1.5; }

  .training-editor-toolbar { margin-bottom:8px; }
  .programme-overview-calendar .programme-weekbar { padding:8px 12px;gap:8px; }
  .programme-overview-calendar .programme-weekbar > div:first-child { display:none; }
  .programme-weekbar .week-selector { flex:1;gap:6px;max-height:none;overflow:visible; }
  .programme-weekbar .week-selector label.f { margin:0;flex:0 1 235px;min-width:0; }
  .programme-weekbar .week-selector select { min-width:0;width:100%; }
  .programme-day-slots { gap:8px;padding:10px 12px; }
  .programme-day-entry { flex:1 1 120px;max-width:none; }
  .programme-day-entry .programme-day-slot { padding:8px 10px 2px;max-width:none; }
  .programme-day-slot small { margin:2px 0; }
  .programme-day-slot span { font-size:.75rem; }
  .programme-day-entry .programme-day-clear { min-height:40px;padding:4px 8px;margin:0 4px 4px; }
  .programme-add-day { padding:8px;min-height:44px; }
  .selected-workout { margin:12px 0;padding:12px; }
  .selected-workout-heading { margin-bottom:8px;gap:8px; }
  .selected-workout-heading p { margin-top:2px; }
  .training-overview-table td,.training-overview-table th { padding:8px 10px; }
  .training-phase-label th { padding-block:6px; }
  .training-log-disclosure { margin-top:12px; }
  .daily-nutrition-goals { margin-bottom:12px; }
  .daily-nutrition-goals-heading { margin-bottom:10px;gap:8px; }
  .nutrition-goal-grid { gap:12px; }
  .nutrition-goal-grid > div { padding-left:10px; }
  .nutrition-goal-grid dt { margin-bottom:3px; }
  .nutrition-goal-grid strong { display:inline;font-size:1.25rem; }
  .nutrition-goal-grid span { display:inline;margin-left:4px;font-size:.75rem; }
  .nutrition-goal-grid small { margin-top:2px; }
  .nutrition-goal-status { margin:10px 0 0; }
  .daily-nutrition-goals .client-calculations { margin-top:10px;padding-top:6px; }
  .meal-options-editor { margin:16px 0; }
  .meal-plan-library-heading { gap:8px;margin-bottom:12px; }
  .meal-plan-library-heading h3 { margin-bottom:4px; }
  .meal-set-card .meal-plan-card-meals { grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px; }
  .meal-set-card .meal-plan-card-meal { padding:8px 0; }
  .meal-set-card .meal-plan-card-meal h4 { margin-bottom:4px; }
  .meal-set-card .meal-plan-card-meal ul { gap:2px; }
  .meal-set-card .meal-plan-card-total { margin:6px 0; }
  .meal-set-card .meal-set-summary > h4 { margin:8px 0; }
  .meal-set-card .meal-plan-card-footer { margin-top:8px; }
  .meal-plan-editor { margin-top:12px;padding-top:12px; }
  .meal-plan-editor-heading { margin-bottom:12px; }
  .meal-option-settings { gap:12px; }
  .daily-target-progress { margin-top:12px; }
  .daily-target-progress #nutritotals { gap:12px; }
}
@media screen and (max-width:1100px) {
  .progress-metric-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .progress-controls > .tabs { flex-basis:100%;order:3; }
  .progress-workspace-heading { flex:1;justify-content:flex-start; }
}
@media screen and (max-width:700px) {
  .workspace-heading > .row { margin-top:8px; }
  .report-scroll-hint { display:block;font-size:.8125rem;margin-block:8px 12px; }
  .dossier-header { gap:6px; }
  .dossier-back { width:44px;min-width:44px;padding-inline:0!important; }
  .dossier-back > span { display:none; }
  .dossier-header > .dossier-actions > summary { font-size:0;width:44px;min-height:44px;padding-inline:0;justify-content:center; }
  .dossier-header > .dossier-actions > summary::before { content:"•••";font-size:1rem; }
  .dossier-header > .dossier-actions > summary::after { display:none; }
  .dossier-identity { flex-wrap:wrap;gap:4px 8px;align-items:flex-start; }
  .dossier-identity > .avatar { display:none; }
  .dossier-identity > div { min-width:0;flex:1 1 100%;overflow-wrap:anywhere; }
  .dossier-identity h1 { font-size:1.125rem; }
  .dossier-identity > button { max-width:none;font-size:.8125rem;padding:6px 8px;white-space:normal;min-height:44px; }
  .dossier-context > summary { font-size:.8125rem;min-height:44px; }
  .dossier-workspace > label.dossier-section-select { display:block;position:sticky;top:calc(var(--demo-h,0px) + 56px);z-index:9;padding:4px 0;margin:0 0 8px;background:var(--paper); }
  .dossier-section-select::before { content:none; }
  .dossier-index { display:none; }
  .dossier-section-select select { min-height:44px; }
  .client-brief { gap:16px;padding:16px;grid-template-columns:1fr minmax(95px,.5fr); }
  .client-brief > div + div { display:block;padding-top:0;border-top:0; }
  .client-brief h2 { font-size:1rem; }
  .client-brief strong { font-size:1.125rem; }
  .client-brief p { font-size:.8125rem; }
  .profile-facts > div { grid-template-columns:minmax(100px,.65fr) minmax(0,1.35fr);gap:12px; }
  .profile-edit .grid,.profile-edit .grid.g4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .profile-edit .grid > .f:has(textarea) { grid-column:1/-1; }
  .progress-controls { gap:6px;margin-bottom:10px; }
  .progress-record-actions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%; }
  .progress-record-actions .btn { padding:8px;font-size:.8125rem;width:auto;white-space:normal; }
  .progress-workspace-heading { display:block; }
  .progress-controls > .tabs { display:none; }
  .progress-controls > label.progress-view-select { display:block;order:3;flex-basis:100%;margin:0; }
  .progress-view-select select { min-height:44px;width:100%; }
  .progress-controls .tabs button { font-size:.8125rem;padding-inline:10px;flex-shrink:0; }
  .progress-baseline { flex-direction:row;flex-wrap:wrap;gap:0 10px; }
  .progress-baseline p { flex:1;min-width:160px; }
  .progress-metric > summary { grid-template-columns:minmax(0,1fr) 24px;grid-template-rows:auto auto;gap:5px 8px;padding:12px;min-height:104px; }
  .progress-metric-label { grid-column:1;grid-row:1;font-size:.8125rem; }
  .progress-metric-latest { grid-column:1;grid-row:2;text-align:left; }
  .progress-metric > summary::after { grid-column:2;grid-row:1/3; }
  .progress-metric[open] > summary { min-height:64px; }
  .progress-metric-comparison { grid-template-columns:1fr;gap:6px; }
  .progress-photo-pose > summary { gap:10px;padding:12px;flex-wrap:wrap; }
  .progress-photo-label { flex:1;min-width:80px; }
  .progress-photo-preview { width:38px;height:50px; }
  .progress-photo-label small { display:none; }
  .progress-photo-content > .spread { flex-direction:row;align-items:center;gap:6px;margin-block:8px; }
  .progress-photo-workspace .compare .photo { max-height:240px; }
  .programme-overview-calendar .programme-weekbar { padding:8px; }
  .programme-weekbar > .week-selector { flex:1 0 100%; }
  .programme-weekbar .week-selector label.f { flex:1; }
  .programme-day-slots { gap:6px;padding:8px; }
  .programme-day-entry { flex:1 1 105px; }
  .programme-day-entry .programme-day-clear { min-height:44px; }
  .selected-workout { padding:10px; }
  .nutrition-goal-grid { gap:10px;grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nutrition-goal-grid strong { font-size:1.125rem; }
  .daily-nutrition-goals-heading h2 { font-size:1rem; }
  .nutrition-goal-grid span { margin-left:3px; }
  .meal-set-card .meal-plan-card-meals { grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px; }
  .meal-set-card .meal-plan-card-meal li { display:block;line-height:1.5; }
  .meal-set-card .meal-plan-card-meal li > span:last-child { margin-left:4px; }
  .meal-set-card .coach-plan-card-actions > .btn { min-width:44px;min-height:44px; }
  .assessment-fieldset .grid.g4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .main .btn.sm { min-height:44px; }
}
@media screen and (max-width:359px) {
  .profile-edit .grid,.profile-edit .grid.g4 { grid-template-columns:1fr; }
  .progress-photo-list { grid-template-columns:1fr; }
}

/* Training uses the same compact cards and action row as Nutrition. */
.programme-overview-calendar .training-week-cards,
.programme-overview-calendar .training-day-cards { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(155px,100%),1fr));gap:10px;padding:12px; }
.programme-overview-calendar .training-week-cards .meal-plan-card,
.programme-overview-calendar .training-day-cards .meal-plan-card { padding:12px;max-width:none;min-width:0;border-radius:12px; }
.training-week-cards .meal-plan-card-header h3 { font-size:.9375rem;margin-bottom:4px; }
.programme-overview-calendar .training-day-cards .programme-day-slot { padding:0;background:transparent;border:0;box-shadow:none;text-align:left; }
.programme-overview-calendar .training-day-cards .meal-plan-card-footer { margin-top:10px;padding-top:8px; }
.programme-overview-calendar .training-day-cards .programme-day-clear { margin:0;padding:6px; }
.programme-overview-calendar .training-day-cards .programme-add-day { align-self:start;min-height:40px; }
