/* Trainer OS only. Keep the public site and account screens independent. */
.dashboard-page {
  --black: #191a18;
  --muted: #68655f;
  font-family: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-variant-numeric: tabular-nums;
  min-height: 100dvh;
}

/* A trainer reviewing nutrition between sessions needs targets and dated
   evidence at a glance. Retain the warm, restrained coaching workspace. */
#panel-meals { --meal-line: oklch(0.86 0.012 78); --meal-paper: oklch(0.985 0.008 80); }
#panel-meals .panel-title-row { gap: 12px 20px; }
#panel-meals .panel-title-row h2 { font-size: 25px; font-weight: 600; }
#panel-meals .dashboard-link-button { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--meal-line); border-radius: 8px; color: var(--black); font-size: 12px; font-weight: 500; }
#panel-meals .dashboard-link-button:hover:not(:disabled) { background: oklch(0.95 0.012 78); }
#panel-meals .dashboard-link-button:disabled { opacity: .5; cursor: default; }
#panel-meals .editor-client-context { position: sticky; top: 12px; margin-bottom: 20px; padding: 12px 16px; border: 1px solid var(--meal-line); border-radius: 8px; background: var(--meal-paper); color: var(--black); box-shadow: none; backdrop-filter: none; }
#panel-meals .editor-client-context span { color: var(--muted); font-weight: 500; letter-spacing: .07em; }
#panel-meals .editor-client-context strong { font-size: 18px; font-weight: 600; }
#panel-meals .editor-client-context small { color: var(--muted); font-weight: 400; white-space: normal; }
#panel-meals .editor-client-context .dashboard-link-button { min-height: 44px; color: var(--black); border-color: var(--meal-line); }
#panel-meals .meal-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 20px; }
#panel-meals .coach-card { min-width: 0; padding: 22px; background: var(--meal-paper); }
#panel-meals .card-head { margin-bottom: 8px; gap: 12px; align-items: center; }
#panel-meals .card-head h3 { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -.025em; line-height: 1.3; }
#panel-meals .card-head > strong { color: var(--muted); font-weight: 500; letter-spacing: 0; text-transform: none; }
#panel-meals .meal-section-note { max-width: 72ch; margin: 0 0 16px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.55; }
#panel-meals .meal-target-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 16px; margin: 16px 0 0; padding: 0; border: 0; }
#panel-meals .meal-target-form label { display: grid; grid-template-columns: 1fr auto; gap: 6px 8px; min-width: 0; color: var(--black); font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; }
#panel-meals .meal-target-form label > span { color: var(--muted); font-size: 11px; font-weight: 400; }
#panel-meals .meal-target-form input { grid-column: 1 / -1; min-height: 48px; padding: 10px 12px; border: 1px solid var(--meal-line); border-radius: 8px; background: var(--meal-paper); font-size: 18px; font-weight: 500; }
#panel-meals .meal-target-form .meal-calorie-field { grid-column: 1 / -1; color: #b63b30; }
#panel-meals .meal-target-form .meal-protein-field { color: #32699a; }
#panel-meals .meal-target-form .meal-carbs-field { color: #976810; }
#panel-meals .meal-target-form .meal-fat-field { color: #79528f; }
#panel-meals .meal-target-form .mini-action { justify-self: end; min-height: 44px; padding: 10px 18px; background: var(--black); color: var(--meal-paper); border-radius: 8px; font-size: 12px; font-weight: 600; }
#panel-meals .form-status { min-height: 0; margin-top: 12px; font-size: 12px; line-height: 1.5; font-weight: 400; }
#panel-meals .meal-recorded-date { margin-bottom: 6px; font-size: 14px; font-weight: 500; }
#panel-meals .target-bars { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 16px; }
#panel-meals .target-bars > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 12px; min-width: 0; padding: 11px 0; border-radius: 0; background: transparent; border-top: 1px solid var(--meal-line); }
#panel-meals .target-bars > div > span { align-self: center; font-size: 12px; font-weight: 400; text-transform: none; letter-spacing: 0; }
#panel-meals .target-bars strong { margin: 0; text-align: right; font-size: 14px; line-height: 1.4; font-weight: 550; overflow-wrap: anywhere; }
#panel-meals .target-bars i { grid-column: 1 / -1; height: 4px; margin: 0; }
#panel-meals .target-bars i[data-available="false"] { visibility: hidden; }
#panel-meals .planner-card, #panel-meals .meal-library-card { grid-column: 1 / -1; }
#panel-meals .week-strip { gap: 6px; margin: 18px 0 14px; }
#panel-meals .week-strip button { min-height: 44px; padding: 6px 0; border-radius: 7px; background: oklch(0.95 0.01 78); font-size: 12px; font-weight: 500; }
#panel-meals .week-strip button.is-active { background: var(--black); color: var(--meal-paper); }
#panel-meals .meal-slots { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
#panel-meals .meal-slot { min-width: 0; padding: 14px; border-radius: 8px; border: 1px solid var(--meal-line); background: transparent; }
#panel-meals .meal-slot > span { font-size: 10px; font-weight: 500; letter-spacing: .06em; }
#panel-meals .meal-slot strong { font-size: 15px; font-weight: 550; line-height: 1.35; }
#panel-meals :is(.meal-slot strong, .library-row strong, .meal-option-chip > span, .card-head > strong) { min-width: 0; overflow-wrap: anywhere; }
#panel-meals .meal-slot small { font-size: 11px; font-weight: 400; line-height: 1.5; }
#panel-meals .meal-slot.is-selected { border-color: var(--black); background: var(--black); color: var(--meal-paper); }
#panel-meals .meal-slot.is-selected :is(span, small) { color: oklch(0.85 0.012 78); }
#panel-meals .meal-selection-context { flex-wrap: wrap; gap: 4px 12px; }
#panel-meals .meal-selection-context :is(span, strong) { font-size: 11px; font-weight: 500; }
#panel-meals .meal-clear-button { min-height: 44px; padding: 8px 0 8px 8px; font-weight: 500; }
#panel-meals .meal-option-chip { min-width: 0; gap: 10px; padding: 0 0 0 12px; border-radius: 8px; font-weight: 400; }
#panel-meals .meal-option-chip button { min-height: 44px; padding: 8px; background: transparent; font-size: 11px; font-weight: 500; }
#panel-meals .meal-options-empty { font-weight: 400; }
#panel-meals .meal-library-create { margin: 10px 0 20px; }
#panel-meals .meal-library-create > summary { display: flex; align-items: center; width: fit-content; min-height: 44px; padding: 8px 12px; border: 1px solid var(--meal-line); border-radius: 8px; font-size: 12px; font-weight: 500; cursor: pointer; list-style: none; }
#panel-meals .meal-library-create > summary::-webkit-details-marker { display: none; }
#panel-meals .meal-library-create > summary::after { content: "+"; margin-left: 18px; }
#panel-meals .meal-library-create[open] > summary::after { content: "−"; }
#panel-meals .meal-library-form { margin-top: 16px; padding: 0; border: 0; background: transparent; gap: 12px; }
#panel-meals .meal-library-form label { font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
#panel-meals .meal-library-form :is(input, select) { min-height: 44px; border: 1px solid var(--meal-line); border-radius: 8px; background: var(--meal-paper); font-size: 14px; font-weight: 400; }
#panel-meals .library-row { padding: 15px 0; border: 0; border-top: 1px solid var(--meal-line); border-radius: 0; background: transparent; gap: 12px; }
#panel-meals .library-row strong { font-size: 14px; font-weight: 550; }
#panel-meals .library-row :is(span, small) { font-weight: 400; line-height: 1.5; }
#panel-meals .library-actions button { min-height: 44px; padding: 8px 12px; border-radius: 8px; font-size: 11px; font-weight: 500; }
#panel-meals .library-actions .library-remove-button { background: transparent; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1100px) {
  #panel-meals .meal-layout { grid-template-columns: minmax(0, 1fr); }
  #panel-meals .meal-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  #panel-meals .panel-title-row { align-items: flex-start; }
  #panel-meals .panel-title-row h2 { font-size: 22px; }
  #panel-meals .coach-card { padding: 18px 16px; }
  #panel-meals .card-head { flex-wrap: wrap; }
  #panel-meals .meal-target-form { gap: 14px 12px; }
  #panel-meals .target-bars strong { max-width: 180px; }
  #panel-meals .library-actions { width: 100%; flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 359px) {
  #panel-meals .meal-target-form { grid-template-columns: minmax(0, 1fr); }
  #panel-meals .meal-slots { grid-template-columns: minmax(0, 1fr); }
  #panel-meals .week-strip { gap: 3px; }
  #panel-meals .week-strip button { font-size: 11px; }
}

/* Programme editing stays beside reusable references, with one deliberate
   review step between a browser draft and the client's published plan. */
:is(#panel-workouts, #panel-programmes) { --workout-line: oklch(0.86 0.012 78); --workout-paper: oklch(0.985 0.008 80); }
:is(#panel-workouts, #panel-programmes) [hidden] { display: none !important; }
:is(#panel-workouts, #panel-programmes) .panel-title-row { align-items: flex-start; gap: 16px; }
:is(#panel-workouts, #panel-programmes) .panel-title-row h2 { max-width: 760px; font-size: 25px; font-weight: 600; letter-spacing: -.03em; }
:is(#panel-workouts, #panel-programmes) .workout-page-actions { display: flex; flex-wrap: wrap; gap: 8px; }
:is(#panel-workouts, #panel-programmes) .dashboard-link-button.workout-mobile-return { display: none; }
:is(#panel-workouts, #panel-programmes) .panel-title-row .mini-action { min-height: 44px; padding: 10px 14px; border-radius: 8px; background: var(--black); color: var(--workout-paper); font-size: 12px; font-weight: 500; }
:is(#panel-workouts, #panel-programmes) :is(button, summary, input, select, textarea):focus-visible { outline: 2px solid var(--black); outline-offset: 3px; }
:is(#panel-workouts, #panel-programmes) button:disabled { opacity: .5; cursor: default; }
:is(#panel-workouts, #panel-programmes) .editor-client-context { position: static; top: auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; margin-bottom: 20px; padding: 14px 16px; border: 1px solid var(--workout-line); border-radius: 8px; background: var(--workout-paper); color: var(--black); box-shadow: none; backdrop-filter: none; }
:is(#panel-workouts, #panel-programmes) .editor-client-context > div { min-width: 0; gap: 4px; }
:is(#panel-workouts, #panel-programmes) .editor-client-context span { color: var(--muted); font-size: 10px; font-weight: 500; letter-spacing: .06em; }
:is(#panel-workouts, #panel-programmes) .editor-client-context strong { color: var(--black); font-size: 18px; font-weight: 600; }
:is(#panel-workouts, #panel-programmes) .editor-client-context small { max-width: none; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; }
:is(#panel-workouts, #panel-programmes) .editor-client-context .workout-current-plan { color: var(--black); }
:is(#panel-workouts, #panel-programmes) .dashboard-link-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--workout-line); border-radius: 8px; color: var(--black); font-size: 12px; font-weight: 500; }
:is(#panel-workouts, #panel-programmes) .workout-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }
:is(#panel-workouts, #panel-programmes) .coach-card { min-width: 0; padding: 22px; border: 1px solid var(--workout-line); border-radius: 10px; background: var(--workout-paper); box-shadow: none; }
:is(#panel-workouts, #panel-programmes) .workout-editor-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 20px; }
:is(#panel-workouts, #panel-programmes) .workout-editor-head h3 { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -.025em; }
:is(#panel-workouts, #panel-programmes) .workout-draft-state { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 8px; border: 1px solid var(--workout-line); border-radius: 6px; color: var(--muted); font-size: 11px; font-weight: 500; line-height: 1.4; }
:is(#panel-workouts, #panel-programmes) .workout-hidden-context { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; pointer-events: none; }
:is(#panel-workouts, #panel-programmes) .plan-settings { display: grid; grid-template-columns: minmax(0, 1fr) 130px; gap: 14px 16px; margin: 0 0 24px; padding: 0; }
:is(#panel-workouts, #panel-programmes) .plan-client-picker { grid-column: 1 / -1; }
:is(#panel-workouts, #panel-programmes) :is(.plan-field-label, .plan-settings label, .plan-session-fields label, .plan-exercise-fields label, .plan-exercise-footer label, .programme-form label) { display: grid; min-width: 0; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
:is(#panel-workouts, #panel-programmes) :is(input, select, textarea) { min-width: 0; width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--workout-line); border-radius: 8px; background: var(--workout-paper); color: var(--black); font: inherit; font-size: 15px; font-weight: 400; box-shadow: none; }
:is(#panel-workouts, #panel-programmes) :is(input, select, textarea):focus { border-color: var(--black); box-shadow: none; }
:is(#panel-workouts, #panel-programmes) :is(label > small, .plan-field-help) { color: var(--muted); font-size: 10px; font-weight: 400; line-height: 1.45; }
:is(#panel-workouts, #panel-programmes) .plan-picker-trigger { min-height: 44px; padding: 10px 12px; border: 1px solid var(--workout-line); border-radius: 8px; background: transparent; color: var(--black); font-size: 14px; font-weight: 500; box-shadow: none; }
:is(#panel-workouts, #panel-programmes) .plan-picker-trigger.is-selected { border-color: var(--workout-line); background: transparent; color: var(--black); }
:is(#panel-workouts, #panel-programmes) .plan-picker-trigger.is-selected > span:first-child { color: var(--black); }
:is(#panel-workouts, #panel-programmes) .plan-picker-menu { max-height: 280px; overflow-y: auto; padding: 6px; border: 1px solid var(--workout-line); border-radius: 8px; background: var(--workout-paper); box-shadow: 0 8px 18px #191a1810; }
:is(#panel-workouts, #panel-programmes) .plan-picker-option { min-height: 44px; padding: 10px; border-radius: 5px; font-size: 13px; font-weight: 500; }
:is(#panel-workouts, #panel-programmes) .plan-section-head { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px 16px; margin: 20px 0 12px; }
:is(#panel-workouts, #panel-programmes) .plan-section-head > div { display: grid; gap: 4px; min-width: 0; }
:is(#panel-workouts, #panel-programmes) .plan-section-head span { color: var(--black); font-size: 13px; font-weight: 550; letter-spacing: 0; text-transform: none; }
:is(#panel-workouts, #panel-programmes) .plan-section-head strong { color: var(--muted); font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none; overflow-wrap: anywhere; }
:is(#panel-workouts, #panel-programmes) .plan-session-tabs { display: flex; min-width: 0; overflow-x: auto; gap: 8px; margin-bottom: 14px; padding: 0 0 4px; overscroll-behavior-x: contain; }
:is(#panel-workouts, #panel-programmes) .plan-session-tab { flex: 0 0 154px; min-width: 0; min-height: 68px; padding: 11px 12px; border: 1px solid var(--workout-line); border-radius: 8px; background: transparent; color: var(--black); }
:is(#panel-workouts, #panel-programmes) .plan-session-tab strong { color: inherit; font-size: 13px; font-weight: 550; }
:is(#panel-workouts, #panel-programmes) .plan-session-tab small { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.4; }
:is(#panel-workouts, #panel-programmes) .plan-session-tab.is-active { border-color: var(--black); background: oklch(0.95 0.01 78); color: var(--black); }
:is(#panel-workouts, #panel-programmes) .plan-session-tab.is-active small { color: var(--muted); }
:is(#panel-workouts, #panel-programmes) .plan-session-editor { gap: 12px; margin-bottom: 24px; padding: 14px; border: 1px solid var(--workout-line); border-radius: 8px; background: transparent; }
:is(#panel-workouts, #panel-programmes) .plan-session-heading { align-items: flex-start; flex-wrap: wrap; gap: 8px 12px; }
:is(#panel-workouts, #panel-programmes) .plan-session-heading strong { color: var(--black); font-size: 16px; font-weight: 550; overflow-wrap: anywhere; }
:is(#panel-workouts, #panel-programmes) .plan-session-fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
:is(#panel-workouts, #panel-programmes) :is(.plan-session-actions, .plan-exercise-controls, .plan-exercise-actions, .programme-actions) { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
:is(#panel-workouts, #panel-programmes) :is(.plan-session-actions, .plan-exercise-controls) button { min-height: 44px; padding: 8px 10px; border: 1px solid var(--workout-line); border-radius: 7px; background: transparent; color: var(--black); font-size: 11px; font-weight: 500; }
:is(#panel-workouts, #panel-programmes) .plan-exercises { display: block; }
:is(#panel-workouts, #panel-programmes) .plan-exercise-row { gap: 12px; padding: 16px 0; border-top: 1px solid var(--workout-line); border-radius: 0; background: transparent; }
:is(#panel-workouts, #panel-programmes) .plan-exercise-name { grid-template-columns: 22px minmax(0, 1fr); gap: 9px; }
:is(#panel-workouts, #panel-programmes) .plan-exercise-name > span { width: 22px; height: 22px; border-radius: 0; background: transparent; color: var(--muted); font-size: 11px; font-weight: 500; }
:is(#panel-workouts, #panel-programmes) .plan-exercise-name input { font-size: 16px; font-weight: 500; }
:is(#panel-workouts, #panel-programmes) .plan-exercise-fields { grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: end; gap: 10px; }
:is(#panel-workouts, #panel-programmes) .plan-exercise-footer { grid-template-columns: minmax(0, 1fr); gap: 10px; }
:is(#panel-workouts, #panel-programmes) .plan-exercise-controls { justify-content: flex-end; }
:is(#panel-workouts, #panel-programmes) .plan-exercise-actions { padding: 4px 0 18px; border-bottom: 1px solid var(--workout-line); }
:is(#panel-workouts, #panel-programmes) :is(.plan-add-action, .plan-publish-action, .plan-remove-button, .programme-actions button) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 13px; border: 1px solid var(--workout-line); border-radius: 8px; background: transparent; color: var(--black); font-size: 12px; font-weight: 500; line-height: 1.4; }
:is(#panel-workouts, #panel-programmes) :is(.plan-add-action, .plan-remove-button, .dashboard-link-button, .programme-actions button):hover:not(:disabled) { background: oklch(0.95 0.01 78); }
:is(#panel-workouts, #panel-programmes) .plan-builder-actions { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
:is(#panel-workouts, #panel-programmes) button[data-plan-review] { border-color: var(--black); background: var(--black); color: var(--workout-paper); }
:is(#panel-workouts, #panel-programmes) button[data-save-plan] { border-color: #b63b30; background: #b63b30; color: var(--workout-paper); }
:is(#panel-workouts, #panel-programmes) :is([data-plan-review], [data-save-plan]):hover:not(:disabled) { filter: brightness(.92); }
:is(#panel-workouts, #panel-programmes) :is(.form-status, .plan-validation, .workout-section-note, .plan-history-note) { margin: 12px 0 0; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.55; }
:is(#panel-workouts, #panel-programmes) :is(.form-status, .plan-validation):empty { display: none; }
:is(#panel-workouts, #panel-programmes) .plan-validation { color: #a3342a; }
:is(#panel-workouts, #panel-programmes) .workout-section-note { margin: 8px 0 16px; }
:is(#panel-workouts, #panel-programmes) .workout-library-card { position: static; display: grid; gap: 0; padding: 6px 18px; }
:is(#panel-workouts, #panel-programmes) :is(.programme-disclosure, .workout-support-disclosure) { min-width: 0; padding: 12px 0; border-bottom: 1px solid var(--workout-line); }
:is(#panel-workouts, #panel-programmes) .workout-support-disclosure:last-child { border-bottom: 0; }
:is(#panel-workouts, #panel-programmes) :is(.programme-disclosure, .workout-support-disclosure) > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; cursor: pointer; list-style: none; color: var(--black); font-size: 15px; font-weight: 550; }
:is(#panel-workouts, #panel-programmes) :is(.programme-disclosure, .workout-support-disclosure) > summary::-webkit-details-marker { display: none; }
:is(#panel-workouts, #panel-programmes) :is(.programme-disclosure, .workout-support-disclosure) > summary::after { content: "+"; color: var(--muted); font-size: 20px; font-weight: 400; }
:is(#panel-workouts, #panel-programmes) :is(.programme-disclosure, .workout-support-disclosure)[open] > summary::after { content: "−"; }
:is(#panel-workouts, #panel-programmes) .programme-form { display: grid; gap: 10px; margin: 16px 0; }
:is(#panel-workouts, #panel-programmes) .programme-form button { justify-self: start; }
:is(#panel-workouts, #panel-programmes) .programme-list { display: grid; gap: 0; }
:is(#panel-workouts, #panel-programmes) .programme-item { min-width: 0; padding: 14px 0; border-top: 1px solid var(--workout-line); }
:is(#panel-workouts, #panel-programmes) .programme-row { min-width: 0; }
:is(#panel-workouts, #panel-programmes) :is(.programme-item, .programme-row) strong { display: block; color: var(--black); font-size: 13px; font-weight: 550; overflow-wrap: anywhere; }
:is(#panel-workouts, #panel-programmes) :is(.programme-item, .programme-row) small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
:is(#panel-workouts, #panel-programmes) .programme-actions { margin-top: 10px; }
:is(#panel-workouts, #panel-programmes) .programme-actions button { padding: 8px 10px; font-size: 11px; }
:is(#panel-workouts, #panel-programmes) .template-list { grid-template-columns: minmax(0, 1fr); gap: 0; }
:is(#panel-workouts, #panel-programmes) .template-option { gap: 5px; padding: 14px 0; border: 0; border-top: 1px solid var(--workout-line); border-radius: 0; background: transparent; text-align: left; }
:is(#panel-workouts, #panel-programmes) .template-option strong { color: var(--black); font-size: 13px; font-weight: 550; }
:is(#panel-workouts, #panel-programmes) .template-option :is(span, small) { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.5; }
:is(#panel-workouts, #panel-programmes) .plan-history-list { gap: 0; }
:is(#panel-workouts, #panel-programmes) .plan-history-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; min-height: 44px; padding: 14px 0; border: 0; border-top: 1px solid var(--workout-line); border-radius: 0; background: transparent; }
:is(#panel-workouts, #panel-programmes) .plan-history-row strong { color: var(--black); font-size: 13px; font-weight: 550; }
:is(#panel-workouts, #panel-programmes) .plan-history-row small { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
:is(#panel-workouts, #panel-programmes) .plan-history-row em { align-self: start; padding: 4px 6px; border-radius: 5px; font-size: 10px; font-weight: 400; }
:is(#panel-workouts, #panel-programmes) .plan-history-row.is-active { background: transparent; }
:is(#panel-workouts, #panel-programmes) .plan-history-row.is-active strong { color: var(--black); }
:is(#panel-workouts, #panel-programmes) .workout-review { scroll-margin-top: 20px; }
:is(#panel-workouts, #panel-programmes) .workout-review:focus { outline: none; }
:is(#panel-workouts, #panel-programmes) .workout-review:focus-visible { outline: 2px solid var(--black); outline-offset: 8px; }
:is(#panel-workouts, #panel-programmes) .workout-review > h3 { margin: 0 0 8px; color: var(--black); font-size: 19px; font-weight: 600; letter-spacing: -.025em; }
:is(#panel-workouts, #panel-programmes) [data-workout-review-content] { display: grid; gap: 16px; min-width: 0; }
:is(#panel-workouts, #panel-programmes) [data-workout-review-content] :is(h4, h5) { margin: 0 0 8px; color: var(--black); font-size: 14px; font-weight: 550; }
:is(#panel-workouts, #panel-programmes) [data-workout-review-content] :is(p, li, small) { color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.6; overflow-wrap: anywhere; }
:is(#panel-workouts, #panel-programmes) [data-workout-review-content] :is(ul, ol) { display: grid; gap: 8px; margin: 10px 0 0; padding-left: 18px; }
:is(#panel-workouts, #panel-programmes) [data-workout-review-content] :is(section, .plan-review-session, .workout-review-session) { padding-top: 14px; border-top: 1px solid var(--workout-line); }
:is(#panel-workouts, #panel-programmes) .plan-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
:is(#panel-workouts, #panel-programmes) .plan-review-exercise { padding: 8px 0; border-bottom: 1px solid var(--workout-line); font-size: 12px; line-height: 1.6; }
@media (max-width: 1100px) {
  :is(#panel-workouts, #panel-programmes) .workout-layout { grid-template-columns: minmax(0, 1fr); }
  :is(#panel-workouts, #panel-programmes) .dashboard-link-button.workout-mobile-return { display: inline-flex; justify-self: start; margin: 12px 0 0; }
}
@media (max-width: 680px) {
  :is(#panel-workouts, #panel-programmes) .panel-title-row { flex-direction: column; gap: 14px; }
  :is(#panel-workouts, #panel-programmes) .panel-title-row h2 { font-size: 22px; }
  :is(#panel-workouts, #panel-programmes) .coach-card { padding: 18px 16px; }
  :is(#panel-workouts, #panel-programmes) .workout-library-card { padding: 6px 16px; }
  :is(#panel-workouts, #panel-programmes) .editor-client-context { grid-template-columns: minmax(0, 1fr); padding: 14px 16px; }
  :is(#panel-workouts, #panel-programmes) .editor-client-context .dashboard-link-button { justify-self: start; }
  :is(#panel-workouts, #panel-programmes) .plan-settings { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  :is(#panel-workouts, #panel-programmes) :is(input, select, textarea) { font-size: 16px; }
  :is(#panel-workouts, #panel-programmes) .plan-section-head { align-items: flex-start; }
  :is(#panel-workouts, #panel-programmes) .plan-session-fields { grid-template-columns: minmax(0, 1fr); }
  :is(#panel-workouts, #panel-programmes) .plan-session-heading { flex-direction: column; }
  :is(#panel-workouts, #panel-programmes) .plan-exercise-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  :is(#panel-workouts, #panel-programmes) .plan-exercise-controls { justify-content: flex-start; }
  :is(#panel-workouts, #panel-programmes) .plan-builder-actions { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  :is(#panel-workouts, #panel-programmes) .plan-builder-actions button { width: 100%; }
}
@media (max-width: 359px) {
  :is(#panel-workouts, #panel-programmes) .plan-session-editor { padding: 12px; }
  :is(#panel-workouts, #panel-programmes) .plan-session-tab { flex-basis: 142px; }
  :is(#panel-workouts, #panel-programmes) .plan-exercise-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  :is(#panel-workouts, #panel-programmes) .plan-review-grid { grid-template-columns: minmax(0, 1fr); }
}

/* A trainer choosing a movement between sessions needs a readable reference
   and an explicit draft destination under ordinary gym lighting. */
#panel-exercises { --exercise-line: oklch(0.86 0.012 78); --exercise-paper: oklch(0.985 0.008 80); }
#panel-exercises .panel-title-row { align-items: flex-start; gap: 16px; }
#panel-exercises .panel-title-row h2 { font-size: 25px; font-weight: 600; }
#panel-exercises .exercise-page-note { max-width: 70ch; margin: 7px 0 0; color: var(--muted); font-size: 13px; font-weight: 400; line-height: 1.5; }
#panel-exercises .dashboard-link-button { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--exercise-line); border-radius: 8px; color: var(--black); font-size: 12px; font-weight: 500; }
#panel-exercises :is(button, summary, input, select, textarea):focus-visible { outline: 2px solid var(--black); outline-offset: 3px; }
#panel-exercises button:disabled { opacity: .5; cursor: default; }
#panel-exercises .dashboard-link-button:hover:not(:disabled) { background: oklch(0.95 0.012 78); }
#panel-exercises .exercise-destination { position: sticky; top: 12px; z-index: 3; display: grid; grid-template-columns: minmax(100px, .65fr) minmax(180px, 1fr) auto; gap: 8px 20px; align-items: center; margin-bottom: 20px; padding: 13px 16px; border: 1px solid var(--exercise-line); border-radius: 8px; background: var(--exercise-paper); }
#panel-exercises .exercise-destination > div { display: grid; gap: 4px; min-width: 0; }
#panel-exercises .exercise-destination > div > span { color: var(--muted); font-size: 10px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
#panel-exercises .exercise-destination strong { font-size: 17px; font-weight: 600; overflow-wrap: anywhere; }
#panel-exercises .exercise-destination > p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.5; }
#panel-exercises :is(.exercise-destination label, .library-toolbar label, .exercise-filters label, .compact-form label) { display: grid; min-width: 0; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 500; text-transform: none; letter-spacing: 0; }
#panel-exercises :is(input, select, textarea) { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--exercise-line); border-radius: 8px; background: var(--exercise-paper); color: var(--black); font: inherit; font-size: 14px; font-weight: 400; }
#panel-exercises .exercise-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }
#panel-exercises .exercise-browse-card { grid-column: 1; grid-row: 1; }
#panel-exercises .exercise-draft-card { grid-column: 2; grid-row: 1; position: sticky; top: 144px; }
#panel-exercises .coach-card { min-width: 0; padding: 22px; background: var(--exercise-paper); }
#panel-exercises .card-head { gap: 12px; margin-bottom: 18px; align-items: center; }
#panel-exercises .card-head h3 { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -.025em; }
#panel-exercises .card-head > strong { color: var(--muted); font-size: 12px; font-weight: 500; text-transform: none; letter-spacing: 0; }
#panel-exercises .library-toolbar { grid-template-columns: minmax(0, 1fr) 150px; gap: 12px; margin: 0 0 12px; }
#panel-exercises .exercise-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 12px; }
#panel-exercises .exercise-filters button { min-height: 44px; }
#panel-exercises .exercise-results { min-height: 18px; margin: 16px 0 8px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
#panel-exercises .exercise-table { display: block; }
#panel-exercises .exercise-library-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px 24px; padding: 17px 0; border-top: 1px solid var(--exercise-line); }
#panel-exercises .exercise-guide { min-width: 0; }
#panel-exercises .exercise-guide > summary { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; }
#panel-exercises .exercise-guide > summary::-webkit-details-marker { display: none; }
#panel-exercises .exercise-guide-heading { display: grid; gap: 4px; min-width: 0; }
#panel-exercises .exercise-guide-heading strong { font-size: 15px; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
#panel-exercises :is(.exercise-row-meta, .exercise-row-defaults) { display: block; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
#panel-exercises .exercise-guide-toggle { display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; color: var(--muted); font-size: 11px; font-weight: 500; }
#panel-exercises .exercise-guide-toggle::after { content: "+"; font-size: 17px; font-weight: 400; }
#panel-exercises .exercise-guide[open] .exercise-guide-toggle::after { content: "−"; }
#panel-exercises .exercise-add-button { min-height: 44px; padding: 8px 14px; border-radius: 8px; background: var(--black); color: var(--exercise-paper); font-size: 12px; font-weight: 500; }
#panel-exercises .exercise-add-button:hover:not(:disabled) { background: oklch(0.3 0.008 80); }
#panel-exercises .exercise-library-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
#panel-exercises .exercise-drag-handle { display: none; align-items: center; justify-content: center; width: 44px; min-width: 44px; min-height: 44px; padding: 8px; border: 1px solid var(--exercise-line); border-radius: 7px; background: transparent; color: var(--muted); font-size: 19px; font-weight: 400; cursor: grab; }
#panel-exercises .exercise-drag-handle:active { cursor: grabbing; }
#panel-exercises .exercise-drag-handle:disabled { cursor: default; }
#panel-exercises .is-exercise-dragging { opacity: .5; }
#panel-exercises .exercise-guide-content { margin-top: 20px; }
#panel-exercises .exercise-guide-setup { max-width: 70ch; margin: 0 0 14px; color: var(--black); font-size: 13px; font-weight: 400; line-height: 1.6; }
#panel-exercises .exercise-guide-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
#panel-exercises .exercise-guide-steps :is(li, figure) { min-width: 0; margin: 0; }
#panel-exercises .exercise-guide-steps img { display: block; width: 100%; aspect-ratio: 1; height: auto; object-fit: contain; border-radius: 8px; background: #08090a; }
#panel-exercises .exercise-guide-steps figcaption { margin-top: 8px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
#panel-exercises .exercise-guide-steps figcaption strong { display: block; margin-bottom: 4px; color: var(--black); font-size: 12px; font-weight: 600; }
#panel-exercises .exercise-guide-steps figcaption p { margin: 0; }
#panel-exercises .exercise-guide-cues { display: grid; gap: 6px; max-width: 70ch; margin: 16px 0 10px; padding-left: 18px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.55; }
#panel-exercises .exercise-guide-source { display: block; color: var(--muted); font-size: 10px; font-weight: 400; }
#panel-exercises .exercise-empty-state { padding: 28px 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
#panel-exercises .exercise-empty-state strong { display: block; margin-bottom: 6px; color: var(--black); font-weight: 600; }
#panel-exercises .exercise-create-disclosure { margin: 0 0 16px; padding-bottom: 14px; border-bottom: 1px solid var(--exercise-line); }
#panel-exercises .exercise-create-disclosure > summary { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; font-size: 15px; font-weight: 550; }
#panel-exercises .exercise-create-disclosure > summary::-webkit-details-marker { display: none; }
#panel-exercises .exercise-create-disclosure > summary::after { content: "+"; font-size: 20px; font-weight: 400; }
#panel-exercises .exercise-create-disclosure[open] > summary::after { content: "−"; }
#panel-exercises .compact-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; max-width: 720px; margin-top: 20px; scroll-margin-top: 160px; }
#panel-exercises .compact-form :is(label:first-child, .exercise-cue-field, .mini-action) { grid-column: 1 / -1; }
#panel-exercises .exercise-cue-field { grid-template-columns: 1fr auto; }
#panel-exercises .exercise-cue-field textarea { grid-column: 1 / -1; resize: vertical; }
#panel-exercises .exercise-cue-field span { font-weight: 400; }
#panel-exercises .compact-form .mini-action { justify-self: start; min-height: 44px; padding: 10px 18px; border-radius: 8px; background: var(--black); color: var(--exercise-paper); font-size: 12px; font-weight: 500; }
#panel-exercises .form-status { margin: 12px 0 0; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
#panel-exercises .exercise-draft-card { padding: 18px 16px; }
#panel-exercises .exercise-draft-summary { display: flex; min-height: 44px; gap: 12px; justify-content: space-between; align-items: center; cursor: pointer; list-style: none; }
#panel-exercises .exercise-draft-summary::-webkit-details-marker { display: none; }
#panel-exercises .exercise-draft-summary > span { font-size: 17px; font-weight: 600; }
#panel-exercises .exercise-draft-summary strong { color: var(--muted); font-size: 11px; font-weight: 400; }
#panel-exercises :is(.exercise-drag-hint, .exercise-tap-hint) { margin: 10px 0 14px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
#panel-exercises .exercise-drag-hint { display: none; }
#panel-exercises .exercise-draft-drop-list { min-height: 100px; border: 1px dashed var(--exercise-line); border-radius: 8px; }
#panel-exercises .exercise-draft-drop-list.is-drag-over { background: oklch(0.95 0.02 45); border-color: oklch(0.55 0.15 30); }
#panel-exercises .exercise-draft-items { display: block; max-height: calc(100dvh - 340px); overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 0 12px; list-style: none; }
#panel-exercises .exercise-draft-item { position: relative; display: grid; gap: 8px; min-width: 0; padding: 12px 0; border-bottom: 1px solid var(--exercise-line); }
#panel-exercises .exercise-draft-item:last-child { border-bottom: 0; }
#panel-exercises .exercise-draft-item-main { display: grid; min-width: 0; gap: 4px; }
#panel-exercises .exercise-draft-item-main strong { font-size: 13px; font-weight: 550; overflow-wrap: anywhere; }
#panel-exercises .exercise-draft-item-main small { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.5; }
#panel-exercises .exercise-draft-item-actions { display: flex; flex-wrap: wrap; gap: 4px; }
#panel-exercises .exercise-draft-item-actions button { min-height: 44px; padding: 8px 10px; border: 1px solid var(--exercise-line); border-radius: 7px; background: transparent; color: var(--black); font-size: 11px; font-weight: 500; }
#panel-exercises .exercise-draft-item-actions .exercise-drag-handle { padding: 8px; font-size: 19px; }
#panel-exercises .exercise-draft-empty { margin: 0; padding: 20px 14px; color: var(--muted); font-size: 12px; line-height: 1.6; }
#panel-exercises .exercise-draft-status { min-height: 18px; margin: 12px 0 0; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
#panel-exercises .exercise-draft-item[data-drop-position]::before,
#panel-exercises .exercise-draft-item[data-drop-position="after"]::after { content: ""; position: absolute; z-index: 1; right: 0; left: 0; top: -1px; height: 2px; background: oklch(0.55 0.15 30); pointer-events: none; }
#panel-exercises .exercise-draft-item[data-drop-position="after"]::before { content: none; }
#panel-exercises .exercise-draft-item[data-drop-position="after"]::after { top: auto; bottom: -1px; }
@media (hover: hover) and (pointer: fine) and (min-width: 1101px) {
  #panel-exercises .exercise-drag-handle { display: inline-flex; }
  #panel-exercises .exercise-drag-hint { display: block; }
  #panel-exercises .exercise-tap-hint { display: none; }
}
@media (max-width: 1100px) {
  #panel-exercises .exercise-layout { grid-template-columns: minmax(0, 1fr); }
  #panel-exercises :is(.exercise-draft-card, .exercise-browse-card, .exercise-create-card) { grid-column: auto; grid-row: auto; }
  #panel-exercises .exercise-draft-card { position: static; }
  #panel-exercises .exercise-draft-items { max-height: 320px; }
  #panel-exercises .exercise-draft-summary::after { content: "+"; color: var(--muted); font-size: 20px; }
  #panel-exercises [data-exercise-draft-disclosure][open] > summary::after { content: "−"; }
}
@media (max-width: 1050px) {
  #panel-exercises .exercise-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #panel-exercises .exercise-filters button { justify-self: start; }
  #panel-exercises .exercise-guide-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  #panel-exercises .compact-form { scroll-margin-top: 0; }
  #panel-exercises .panel-title-row { flex-direction: column; }
  #panel-exercises .panel-title-row h2 { font-size: 22px; }
  #panel-exercises .coach-card { padding: 18px 16px; }
  #panel-exercises .exercise-destination { position: relative; top: 0; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  #panel-exercises .exercise-destination > label { grid-column: 1 / -1; grid-row: 2; }
  #panel-exercises .exercise-destination > button { grid-column: 2; grid-row: 1; justify-self: end; }
  #panel-exercises .library-toolbar { grid-template-columns: minmax(0, 1fr); }
  #panel-exercises .exercise-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #panel-exercises .exercise-filters button { align-self: end; }
  #panel-exercises .exercise-library-row { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  #panel-exercises .exercise-library-actions { justify-content: flex-start; }
  #panel-exercises .exercise-add-button { justify-self: start; }
}
@media (max-width: 359px) {
  #panel-exercises :is(.exercise-filters, .exercise-guide-steps, .compact-form) { grid-template-columns: minmax(0, 1fr); }
  #panel-exercises .exercise-guide-toggle { font-size: 0; gap: 0; }
  #panel-exercises .card-head { align-items: flex-start; flex-direction: column; gap: 6px; }
}

.dashboard-page .dashboard-shell {
  min-height: 100dvh;
  grid-template-columns: 212px minmax(0, 1fr);
}

.dashboard-page .dashboard-sidebar {
  height: 100dvh;
  padding: 16px 12px;
  gap: 14px;
}

.dashboard-page .dashboard-brand {
  flex-direction: row;
  align-items: center;
  flex-shrink: 0;
  gap: 10px;
  padding: 4px 10px 14px;
  border-bottom: 1px solid #41413b;
}

.dashboard-page .dashboard-brand .trainer-brand-label,
.dashboard-page .dashboard-nav-label {
  color: #aaa8a1;
  font-weight: 500;
  letter-spacing: 0.12em;
}

/* Fit the approved artwork to its visible bounds without changing the asset.
   Source canvas 1086 × 362; visible mark x=113, y=75, w=852, h=205. */
.dashboard-page .trainer-brand-mark {
  position: relative;
  display: block;
  width: 112px;
  aspect-ratio: 852 / 205;
  flex-shrink: 0;
  overflow: hidden;
}

.dashboard-page .trainer-brand-mark > img {
  position: absolute;
  left: -13.26291%;
  top: -36.58537%;
  width: 127.46479%;
  max-width: none;
  height: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
}

.dashboard-page .dashboard-brand .trainer-brand-mark {
  width: 88px;
  margin: 0;
}

.dashboard-page .dashboard-brand .trainer-brand-label {
  margin: 0;
  font-size: 8px;
  white-space: nowrap;
}

.dashboard-page .dashboard-brand .trainer-brand-mark > img,
.dashboard-page .trainer-entry-brand > img {
  filter: invert(1);
}

.dashboard-page .trainer-entry-brand {
  width: 132px;
  margin-bottom: 16px;
}

.dashboard-page .dashboard-heading-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 7px;
}

.dashboard-page .dashboard-topbar .dashboard-heading-brand .dashboard-kicker {
  margin: 0;
}

.dashboard-page .trainer-mobile-mark {
  display: none;
}

.dashboard-page .dashboard-title-row {
  display: flex;
  align-items: center;
  gap: 9px;
}

.dashboard-page .fitness-lab-mark {
  display: block;
  flex-shrink: 0;
}

.dashboard-page .fitness-lab-trajectory {
  stroke: #b63b30;
}

.dashboard-page .dashboard-lab-icon {
  display: none;
  width: 30px;
  height: 30px;
  color: var(--black);
}

.dashboard-page[data-active-panel="simulator"] .dashboard-lab-icon {
  display: block;
}

.dashboard-page .dash-nav-lab {
  display: flex;
  align-items: center;
  gap: 9px;
}

.dashboard-page .dash-nav-lab .fitness-lab-trajectory {
  stroke: currentColor;
}

.dashboard-page .dashboard-nav {
  gap: 14px;
}

.dashboard-page .dashboard-nav-group {
  gap: 1px;
}

.dashboard-page .dashboard-nav-label {
  padding: 0 10px 4px;
  line-height: 1.4;
}

.dashboard-page .dashboard-sidebar-footer {
  padding-top: 8px;
}

.dashboard-page .dashboard-sidebar-footer .dashboard-account-link {
  min-height: 34px;
}

.dashboard-page .dashboard-session {
  min-width: 0;
  max-width: 100%;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  padding: 10px;
  border-radius: 8px;
}

.dashboard-page .dashboard-session strong {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.45;
}

.dashboard-page .dash-nav-button {
  min-height: 34px;
  padding: 0 10px;
  border-radius: 7px;
  color: #c3c1bb;
  font-size: 13px;
  font-weight: 500;
  transition: background 160ms ease, color 160ms ease;
}

.dashboard-page .dash-nav-button.is-active {
  background: #30312e;
  color: #fffdf7;
  box-shadow: inset 3px 0 #dc3d30;
  font-weight: 700;
}

.dashboard-page .dashboard-main {
  padding: 28px 32px 48px;
}

.dashboard-page .dashboard-topbar,
.dashboard-page[data-active-panel]:not([data-active-panel="overview"]) .dashboard-topbar {
  align-items: center;
  justify-content: flex-start;
  min-height: 68px;
  padding-bottom: 22px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--line);
}

body.dashboard-page[data-active-panel] .dashboard-topbar-copy,
body.dashboard-page[data-active-panel]:not([data-active-panel="overview"]) .dashboard-topbar-copy {
  display: block;
}

.dashboard-page .dashboard-topbar .dashboard-kicker {
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.13em;
}

.dashboard-page .dashboard-topbar h1 {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.1;
}

.dashboard-page .panel-title-row {
  align-items: center;
  margin-bottom: 20px;
}

.dashboard-page .panel-title-row h2 {
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.16;
  letter-spacing: -0.035em;
  font-weight: 700;
  text-wrap: balance;
}

.dashboard-page .panel-title-row .dashboard-kicker {
  display: none;
}

.dashboard-page .panel-title-row > .mini-action {
  flex-shrink: 0;
  white-space: nowrap;
}

.dashboard-page .coach-card {
  box-shadow: none;
  border-color: var(--line);
  border-radius: 12px;
  min-width: 0;
}

.dashboard-page .coach-card h3 {
  font-size: 23px;
  font-weight: 700;
  letter-spacing: -0.025em;
}

.dashboard-page .coach-card p {
  font-weight: 400;
  line-height: 1.55;
}

.dashboard-page .card-head > span,
.dashboard-page .card-head > strong,
.dashboard-page .dashboard-kicker {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.09em;
}

.dashboard-page .mini-action,
.dashboard-page .dashboard-link-button,
.dashboard-page .status-chip,
.dashboard-page .client-workspace-nav button {
  font-weight: 700;
}

.dashboard-page .mini-action {
  min-height: 40px;
}

.dashboard-page :is(button, a, input, select, textarea):focus-visible {
  outline: 2px solid #ad2c23;
  outline-offset: 3px;
}

.dashboard-page .dashboard-sidebar :is(button, a):focus-visible,
.dashboard-page .overview-priority button:focus-visible {
  outline-color: #f5c8a9;
}

/* Overview: client review leads; roster and admin work stay secondary. */
.overview-intro {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 26px;
}

.dashboard-page .overview-calendar {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 12px;
}

.overview-intro h2 {
  margin: 0;
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 700;
  letter-spacing: -0.045em;
  line-height: 1.12;
}

.overview-intro > div > p:last-child {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.overview-source {
  flex-shrink: 0;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--muted);
  font-size: 10px;
}

.overview-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(270px, 0.52fr);
  align-items: start;
  gap: 20px;
}

.overview-sidebar {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.dashboard-page .overview-summary,
.dashboard-page .overview-priority,
.dashboard-page .overview-admin {
  padding: 24px;
}

.overview-queue-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
}

.dashboard-page .overview-queue-head .dashboard-kicker {
  margin: 0 0 10px;
  color: #bdbab3;
  font-size: 10px;
  line-height: 1.2;
}

.dashboard-page .overview-queue-head h3 {
  color: #fffdf7;
  font-size: 26px;
}

.overview-queue-head > strong {
  flex-shrink: 0;
  padding: 6px 8px;
  border: 1px solid #53534b;
  border-radius: 5px;
  color: #d6d3ca;
  font-size: 11px;
  font-weight: 400;
}

.dashboard-page .overview-priority .overview-queue-intro {
  max-width: none;
  margin-top: 12px;
  color: #bdbab3;
  font-size: 12px;
}

.dashboard-page .overview-queue {
  gap: 0;
  margin-top: 24px;
  border-top: 1px solid #41413b;
}

.dashboard-page .overview-queue-row {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 18px;
  min-height: 92px;
  padding: 18px 0;
  border: 0;
  border-bottom: 1px solid #41413b;
  border-radius: 0;
  background: transparent;
}

.dashboard-page .overview-queue-row.urgent {
  padding-left: 12px;
  border-left: 2px solid #ed7669;
}

.dashboard-page .overview-queue-copy {
  grid-column: 1;
}

.dashboard-page .overview-queue-copy strong {
  color: #fffdf7;
  font-size: 16px;
  font-weight: 700;
}

.dashboard-page .overview-queue-copy span {
  margin-top: 5px;
  color: #c2bfb8;
  font-size: 12px;
  line-height: 1.5;
  font-weight: 400;
  white-space: normal;
  overflow-wrap: anywhere;
}

.dashboard-page .overview-queue-row > small {
  grid-column: 1;
  grid-row: 2;
  color: #bdbab3;
  font-size: 9px;
  font-weight: 500;
}

.dashboard-page .overview-queue-row > .mini-action {
  grid-column: 2;
  grid-row: 1 / 3;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid #53534b;
  border-radius: 7px;
  background: transparent;
  color: #fffdf7;
}

.dashboard-page .overview-queue-row > .mini-action:hover {
  background: #363730;
  border-color: #848477;
}

.dashboard-page .overview-queue-row.urgent > small {
  color: #ffb0a5;
}

.dashboard-page .overview-queue-more {
  padding: 16px 0 0;
  color: #bdbab3;
  font-weight: 400;
}

.dashboard-page .overview-queue-empty {
  display: grid;
  gap: 12px;
  padding: 28px 0;
  background: transparent;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
}

.dashboard-page .overview-queue-empty strong {
  color: #fffdf7;
  font-size: 18px;
  font-weight: 700;
}

.dashboard-page .overview-queue-empty .mini-action {
  justify-self: start;
  margin-top: 4px;
}

.dashboard-page .overview-priority .overview-queue-actions {
  margin-top: 22px;
}

.dashboard-page .overview-priority .overview-queue-actions > button {
  min-height: 44px;
}

.dashboard-page .overview-priority .overview-queue-actions .mini-action {
  min-height: 44px;
  border-radius: 7px;
}

.dashboard-page .overview-summary h3,
.dashboard-page .overview-admin h3 {
  font-size: 21px;
}

.dashboard-page .overview-metrics {
  grid-template-columns: 1fr;
  gap: 0;
  margin-top: 20px;
  border-top: 1px solid var(--line);
}

.dashboard-page .overview-metrics > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 0;
  border-radius: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
}

.dashboard-page .overview-metrics span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

.dashboard-page .overview-metrics strong {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
}

.overview-workspace-link,
.overview-invite-link,
.overview-admin-actions > button {
  appearance: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.overview-workspace-link {
  width: 100%;
  margin-top: 12px;
  padding: 8px 0;
}

.overview-invite-link {
  min-height: 32px;
  padding: 0;
  color: var(--red-dark);
  font-size: 11px;
}

.overview-workspace-link:hover,
.overview-invite-link:hover,
.overview-admin-actions > button:hover {
  color: var(--red-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.dashboard-page .overview-summary > .card-head {
  margin-bottom: 10px;
}

.dashboard-page .overview-admin {
  background: transparent;
}

.dashboard-page .overview-admin .overview-metrics {
  margin-top: 16px;
}

.dashboard-page .overview-admin .overview-metrics > div {
  padding: 10px 0;
}

.dashboard-page .overview-admin .overview-metrics strong {
  font-size: 17px;
}

.dashboard-page .overview-admin .overview-admin-status {
  margin-top: 12px;
  font-size: 10px;
  line-height: 1.5;
}

.dashboard-page .overview-admin-status:empty {
  display: none;
}

.overview-admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  margin-top: 8px;
}

.overview-admin-actions > button {
  padding: 0;
  font-size: 11px;
}

/* Client reviews is the complete review queue, with evidence on demand. */
#panel-review .panel-title-row {
  align-items: flex-start;
}

.signals-intro {
  max-width: 65ch;
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.signals-total {
  flex-shrink: 0;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--muted);
  font-size: 11px;
}

.dashboard-page .signals-card {
  padding: 24px;
}

.signals-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(200px, 260px);
  align-items: end;
  gap: 20px;
}

.signals-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.signals-filters > button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease;
}

.signals-filters > button:hover:not(:disabled):not([aria-pressed="true"]) {
  background: #eeebe5;
  color: var(--ink);
}

.signals-filters > button[aria-pressed="true"] {
  border-color: var(--black);
  background: var(--black);
  color: #fffdf7;
}

.signals-filters > button > span {
  min-width: 18px;
  padding: 1px 4px;
  border-radius: 4px;
  background: rgb(104 101 95 / 0.12);
  font-size: 10px;
  text-align: center;
}

.signals-filters > button[aria-pressed="true"] > span {
  background: rgb(255 255 255 / 0.15);
}

.signals-filters > button:disabled,
.signals-search input:disabled {
  opacity: 0.55;
  cursor: wait;
}

.signals-search > label {
  display: block;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 11px;
}

.signals-list-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}

.dashboard-page .signals-list-heading > p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}

.signals-list-heading > span {
  flex-shrink: 0;
  color: var(--muted);
  font-size: 10px;
}

#panel-review .review-list {
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

#panel-review .review-row {
  align-items: center;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

#panel-review .review-row:last-child {
  border-bottom: 0;
  padding-bottom: 4px;
}

#panel-review .review-row.is-safety {
  padding-left: 16px;
  border-left: 2px solid #b6463c;
}

#panel-review .review-row-copy {
  flex: 1;
  min-width: 0;
}

#panel-review .review-client-name {
  color: var(--ink);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.02em;
  overflow-wrap: anywhere;
}

#panel-review .review-primary-reason {
  max-width: 65ch;
  margin-top: 7px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

.review-signal-details {
  margin-top: 6px;
  font-size: 12px;
}

.review-signal-details > summary {
  width: fit-content;
  min-height: 36px;
  padding: 9px 0;
  color: var(--red-dark);
  cursor: pointer;
}

.review-signal-details > summary:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.review-signal-details > summary:focus-visible {
  outline: 2px solid #ad2c23;
  outline-offset: 3px;
}

.review-signal-details > ul {
  margin: 4px 0 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
  list-style: disc;
}

.review-signal-details li + li {
  margin-top: 5px;
}

#panel-review .review-row-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}

#panel-review .review-row-actions > .signal-status {
  padding: 5px 7px;
  border-radius: 4px;
  background: #eeebe5;
  color: var(--muted);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.04em;
}

#panel-review .review-row-actions > .signal-status.urgent {
  background: #f7e1dc;
  color: #9d3028;
}

#panel-review .review-row-actions > .signal-status.watch {
  background: #f2ebda;
  color: #796125;
}

#panel-review .review-row-actions > .mini-action {
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid #b8b3aa;
  border-radius: 7px;
  background: transparent;
  color: var(--ink);
  font-size: 12px;
}

#panel-review .review-row-actions > .mini-action:hover {
  border-color: var(--black);
  background: var(--black);
  color: #fffdf7;
}

.signals-empty {
  display: grid;
  justify-items: start;
  gap: 10px;
  padding: 32px 0 10px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.signals-empty > strong {
  color: var(--ink);
  font-size: 19px;
  font-weight: 700;
}

.signals-empty > .mini-action {
  margin-top: 8px;
  min-height: 44px;
}

.dashboard-page .clients-layout {
  grid-template-columns: minmax(250px, 0.44fr) minmax(0, 1fr);
  align-items: start;
  gap: 18px;
}

.dashboard-page .clients-layout > .client-roster-card {
  grid-column: 1;
}

.dashboard-page .clients-layout > .client-detail-card {
  grid-column: 2;
}

.dashboard-page .client-list-head {
  align-items: flex-start;
  gap: 8px;
}

.dashboard-page .client-list-head h3 {
  margin-top: 8px;
  font-size: 22px;
}

.dashboard-page .client-list-head > strong {
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
}

/* A native status picker keeps roster controls compact at every width. */
.dashboard-page .client-roster-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
  min-width: 0;
  margin-bottom: 12px;
}
.dashboard-page .client-roster-tools[hidden] { display: none; }
.dashboard-page .client-roster-tools .client-search-field {
  flex: 1 1 160px;
  min-width: 0;
  margin-bottom: 0;
}
.dashboard-page .client-status-field { flex: 1 1 130px; min-width: 0; }
.dashboard-page .client-status-field > label {
  display: block;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 11px;
}
.dashboard-page .client-status-field > select {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: oklch(0.994 0.006 84);
  color: var(--black);
  font: inherit;
  font-size: 13px;
}
@media (max-width: 980px) {
  .dashboard-page .client-roster-tools > :is(.client-search-field, .client-status-field) { flex-basis: 100%; }
}

.client-search-field {
  margin-bottom: 16px;
}

.client-search-field > label {
  display: block;
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 11px;
}

.client-search-input {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-left: 12px;
  border: 1px solid #b8b3aa;
  border-radius: 7px;
  background: #fffdf9;
  color: var(--muted);
}

.client-search-input > svg {
  flex-shrink: 0;
}

.client-search-input > input {
  min-width: 0;
  width: 100%;
  min-height: 44px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--ink);
  padding: 8px 4px;
  font: inherit;
  font-size: 13px;
}

.client-search-input > input::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

.client-search-input:focus-within {
  outline: 2px solid #ad2c23;
  outline-offset: 3px;
}

.dashboard-page .client-search-input > input:focus-visible {
  outline: none;
}

.client-search-input > button {
  min-width: 40px;
  min-height: 44px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--muted);
  font-size: 22px;
  cursor: pointer;
}

.dashboard-page .client-filter-row {
  gap: 5px;
  margin-bottom: 10px;
}

.dashboard-page .client-filter {
  min-height: 36px;
  padding: 6px 9px;
  border-radius: 6px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
}

.dashboard-page .client-filter.is-active {
  border-color: var(--ink);
  background: var(--ink);
  color: #fffdf7;
}

.dashboard-page .client-search-results {
  min-height: 18px;
  margin: 0 0 10px;
  font-size: 11px;
}

.dashboard-page .client-list-table {
  grid-template-columns: 1fr;
  gap: 6px;
}

.dashboard-page .client-list-table > .empty-state {
  display: grid;
  gap: 9px;
  padding: 16px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
}

.dashboard-page .client-list-table > .empty-state strong {
  color: var(--ink);
  font-weight: 700;
}

.dashboard-page .client-list-table > .empty-state .mini-action {
  justify-self: start;
  margin-top: 5px;
}

.dashboard-page .client-row {
  min-height: 86px;
  gap: 5px 8px;
  padding: 13px 12px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: #eeebe5;
  box-shadow: none;
  transform: none;
}

.dashboard-page .client-row.is-active {
  border-color: #b6463c;
  background: #f7e9e4;
  box-shadow: inset 2px 0 #b6463c;
}

.dashboard-page .client-row span {
  min-width: 0;
  font-size: 14px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.dashboard-page .client-row strong {
  align-self: center;
  font-size: 10px;
  color: var(--muted);
  font-weight: 400;
}

.dashboard-page .client-row small {
  font-size: 11px;
  font-weight: 400;
  line-height: 1.5;
}

.dashboard-page .client-row:hover {
  border-color: #b8b3aa;
}

.dashboard-page .condition-grid {
  margin-top: 18px;
}

.dashboard-page .condition-grid > div {
  min-height: 76px;
  padding: 12px;
  border-radius: 7px;
}

.dashboard-page .condition-grid span,
.dashboard-page .record-strip span {
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.04em;
}

.dashboard-page .condition-grid strong,
.dashboard-page .record-strip strong {
  font-size: 16px;
  font-weight: 700;
}

.dashboard-page .client-detail-card > h3 {
  font-size: 28px;
}

.dashboard-page .client-detail-card > p {
  font-size: 12px;
}

.dashboard-page .client-detail-card .assignment-box {
  align-items: flex-start;
  flex-direction: column;
}

.dashboard-page .client-detail-card .assignment-box .quick-action-row {
  justify-content: flex-start;
}

@media (max-width: 1150px) {
  .dashboard-page .clients-layout {
    grid-template-columns: 1fr;
  }

  .dashboard-page .clients-layout > .client-roster-card,
  .dashboard-page .clients-layout > .client-detail-card {
    grid-column: 1 / -1;
  }

  .dashboard-page .client-list-table {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }
}

@media (max-width: 980px) {
  .dashboard-page .dashboard-shell {
    grid-template-columns: 1fr;
  }

  .dashboard-page .dashboard-main {
    padding: 24px;
  }

  .dashboard-page .trainer-mobile-mark {
    display: block;
    width: 54px;
  }

  .dashboard-page .dashboard-sidebar,
  .dashboard-page .dashboard-scrim {
    visibility: hidden;
    box-shadow: none;
  }

  .dashboard-page.sidebar-open .dashboard-sidebar,
  .dashboard-page.sidebar-open .dashboard-scrim {
    visibility: visible;
  }

  .dashboard-page.sidebar-open .dashboard-sidebar {
    box-shadow: 20px 0 48px rgb(25 26 24 / 0.22);
  }

  .dashboard-page .dashboard-topbar {
    gap: 14px;
  }

  .overview-layout {
    grid-template-columns: minmax(0, 1fr) minmax(250px, 0.6fr);
  }
}

@media (max-width: 700px) {
  .dashboard-page .dashboard-main {
    padding: 20px 16px 32px;
  }

  .dashboard-page .dashboard-topbar,
  .dashboard-page[data-active-panel]:not([data-active-panel="overview"]) .dashboard-topbar {
    margin-bottom: 20px;
    padding-bottom: 18px;
  }

  .dashboard-page .dashboard-topbar h1 {
    font-size: 24px;
  }

  .overview-intro {
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 22px;
  }

  .overview-intro h2 {
    font-size: 30px;
  }

  .overview-source {
    padding: 5px 7px;
  }

  .overview-layout {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .dashboard-page .overview-summary,
  .dashboard-page .overview-priority,
  .dashboard-page .overview-admin {
    padding: 20px;
  }

  .dashboard-page .overview-queue-head h3 {
    font-size: 23px;
  }

  .overview-queue-head {
    gap: 10px;
  }

  .overview-queue-head > strong {
    font-size: 10px;
  }

  .overview-invite-link {
    min-height: 44px;
  }

  #panel-review .panel-title-row {
    flex-wrap: wrap;
  }

  .dashboard-page .signals-card {
    padding: 20px;
  }

  .signals-toolbar {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .signals-filters > button {
    gap: 6px;
    padding-inline: 10px;
    font-size: 11px;
  }

  #panel-review .review-row {
    display: block;
    padding: 22px 0;
  }

  #panel-review .review-row.is-safety {
    padding-left: 14px;
  }

  #panel-review .review-row-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 16px;
  }

  .review-signal-details > summary {
    min-height: 44px;
    padding-block: 12px;
  }

  .dashboard-page .overview-queue-row {
    gap: 5px 12px;
  }

  .dashboard-page .overview-queue-row > .mini-action {
    padding: 0 11px;
    font-size: 11px;
  }

  .dashboard-page .panel-title-row {
    gap: 14px;
  }

  .dashboard-page .panel-title-row h2 {
    font-size: 23px;
  }

  .dashboard-page .condition-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-page .client-filter {
    min-height: 40px;
    font-size: 11px;
  }
}

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

/* Keep the four coaching trends together, ahead of detailed history. */
.dashboard-page .clients-layout > .client-analytics-card {
  grid-row: auto;
  background: #faf7f1;
  color: var(--ink);
  scroll-margin-top: 20px;
}

.dashboard-page .client-analytics-card > .card-head strong,
.dashboard-page .client-analytics-card .dashboard-kicker,
.dashboard-page .client-analytics-card .analytics-intro {
  color: var(--muted);
}

.dashboard-page .client-analytics-card > h3 {
  margin-top: 10px;
  color: var(--ink);
  font-size: 27px;
}

.dashboard-page .client-review-summary .dashboard-link-button {
  color: var(--ink);
}

.dashboard-page .client-analytics-card .analytics-intro {
  margin-top: 7px;
  font-size: 14px;
}

.dashboard-page .analytics-toolbar {
  gap: 16px;
  padding: 18px 0;
  margin-top: 18px;
  border: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

.dashboard-page .analytics-window-copy .dashboard-kicker {
  margin-bottom: 5px;
  font-weight: 500;
}

.dashboard-page .analytics-window-copy strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
}

.dashboard-page .analytics-window-copy small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
}

.dashboard-page .analytics-toolbar-actions {
  gap: 6px;
}

.dashboard-page .analytics-toolbar-actions .log-date-step {
  width: 44px;
  min-height: 44px;
  border-color: var(--line);
  background: #fffdf8;
  color: var(--ink);
}

.dashboard-page .analytics-toolbar-actions .log-date-step:disabled {
  opacity: 0.3;
}

.dashboard-page .analytics-toolbar-actions .dashboard-link-button {
  min-height: 44px;
  padding: 0 9px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
}

.dashboard-page .analytics-range-select select,
.dashboard-page .analytics-card-select select {
  min-height: 44px;
  border: 1px solid var(--line);
  background: #fffdf8;
  color: var(--ink);
  font-size: 12px;
  font-weight: 500;
}

.dashboard-page .analytics-card-select select {
  width: auto;
  max-width: 180px;
}

.dashboard-page .analytics-grid {
  gap: 14px;
  margin-top: 20px;
}

.dashboard-page .analytics-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 20px;
  border-color: var(--line);
  border-radius: 8px;
  background: #fffdf9;
}

.dashboard-page .analytics-card-head {
  min-height: 49px;
  align-items: flex-start;
  gap: 12px;
}

.dashboard-page .analytics-card h4 {
  margin: 6px 0 0;
  color: var(--ink);
  font-size: 19px;
  line-height: 1.2;
  font-weight: 650;
  letter-spacing: -0.025em;
  overflow-wrap: anywhere;
}

.dashboard-page .analytics-card-controls {
  min-width: 0;
  max-width: 52%;
}

.dashboard-page .analytics-card .analytics-headline {
  display: block;
  margin: 14px 0 2px;
  color: var(--ink);
  font-size: clamp(24px, 2.2vw, 31px);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.dashboard-page .analytics-card .analytics-insight {
  margin: 16px 0 0;
  padding-top: 13px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.dashboard-page .analytics-metric-label {
  display: block;
  margin: 4px 0 7px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
}

.dashboard-page .analytics-line-wrap {
  margin-top: 10px;
}

.dashboard-page .analytics-chart-meta {
  gap: 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
}

.dashboard-page .analytics-chart-meta strong {
  color: var(--muted);
  font-size: 11px;
  font-weight: 500;
}

.dashboard-page .analytics-y-label {
  color: var(--muted);
  font-size: 10px;
  font-weight: 400;
  transform: translateY(-50%);
}

.dashboard-page .analytics-y-top { top: 20%; }
.dashboard-page .analytics-y-middle { top: 52%; }
.dashboard-page .analytics-y-bottom { top: 84%; bottom: auto; }

.dashboard-page .analytics-line-chart .analytics-grid-line {
  stroke: var(--line);
  stroke-width: 0.5;
}

.dashboard-page .analytics-line-chart .analytics-area {
  fill: rgba(190, 55, 42, 0.045);
}

.dashboard-page .analytics-line-chart .analytics-line {
  stroke: #b93f32;
  stroke-width: 2.4;
}

.dashboard-page .analytics-chart-point {
  width: 24px;
  height: 24px;
  border: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
}

.dashboard-page .analytics-chart-point::before {
  content: '';
  position: absolute;
  inset: 8px;
  border: 1.5px solid #fffdf9;
  border-radius: 50%;
  background: #b93f32;
}

.dashboard-page .analytics-chart-point:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 1px;
  border-radius: 50%;
}

.dashboard-page .analytics-point-tooltip,
.dashboard-page .analytics-nutrition-tooltip {
  max-width: min(240px, 72vw);
  border-color: var(--line);
  background: #fffdf8;
  color: var(--ink);
  box-shadow: 0 6px 18px #312b201a;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.45;
  white-space: normal;
}

.dashboard-page .analytics-nutrition-tooltip { width: 220px; }
.dashboard-page .analytics-nutrition-tooltip > b { font-size: 11px; }
.dashboard-page .analytics-nutrition-tooltip > span { font-size: 11px; font-weight: 500; }
.dashboard-page .analytics-nutrition-tooltip > span small { font-size: 10px; }

.dashboard-page .analytics-axis {
  color: var(--muted);
  font-size: 10px;
  font-weight: 400;
}

.dashboard-page .analytics-axis .is-current { color: var(--ink); }

.dashboard-page .analytics-nutrition-bars {
  height: auto;
  margin-top: 20px;
  gap: 7px;
}

.dashboard-page .analytics-nutrition-column {
  grid-template-rows: 16px 130px 18px;
  height: auto;
  color: var(--ink);
  min-width: 0;
}

.dashboard-page .analytics-nutrition-column > strong {
  color: #b43b30;
  font-size: 11px;
  font-weight: 500;
}

.dashboard-page .analytics-nutrition-track {
  height: 130px;
  background: #eeebe5;
  border-radius: 3px;
}

.dashboard-page .analytics-nutrition-stack {
  border-radius: 3px 3px 0 0;
  border-top: 2px solid #c63f35;
}

.dashboard-page .analytics-nutrition-column.is-missing .analytics-nutrition-track {
  background: transparent;
  border: 1px dashed #d5d0c7;
}

.dashboard-page .analytics-nutrition-column.is-missing .analytics-nutrition-stack {
  display: none;
}

.dashboard-page .analytics-nutrition-bars.is-dense {
  gap: 4px;
}

.dashboard-page .analytics-nutrition-bars.is-dense .analytics-nutrition-column > strong {
  visibility: hidden;
}

.dashboard-page .analytics-nutrition-column > small.is-suppressed {
  visibility: hidden;
}

.dashboard-page .analytics-nutrition-bars.is-dense .analytics-nutrition-column > small:not(.is-suppressed) {
  justify-self: start;
  width: 48px;
  max-width: none;
  overflow: visible;
  white-space: nowrap;
  text-align: left;
}

.dashboard-page .analytics-nutrition-bars.is-dense .analytics-nutrition-column:last-child > small {
  justify-self: end;
  text-align: right;
}

.dashboard-page .analytics-missing {
  color: var(--muted);
  font-size: 10px;
  font-weight: 400;
}

.dashboard-page .recovery-sparkline circle {
  fill: var(--red);
  stroke: #fffdf9;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.dashboard-page .recovery-sparkline.is-sleep circle { fill: var(--blue); }
.dashboard-page .recovery-sparkline.is-soreness circle { fill: var(--amber); }

.dashboard-page .analytics-nutrition-column small,
.dashboard-page .analytics-nutrition-legend,
.dashboard-page .analytics-nutrition-legend em {
  color: var(--muted);
  font-size: 10px;
  font-weight: 400;
}

.dashboard-page .analytics-nutrition-legend { gap: 10px; }
.dashboard-page .analytics-nutrition-legend .is-calories { background: #c63f35; }
.dashboard-page .analytics-nutrition-legend em { flex-basis: 100%; }

.dashboard-page .recovery-history {
  gap: 14px;
  margin: 22px 0 4px;
}

.dashboard-page .recovery-history-row {
  grid-template-columns: 56px minmax(0, 1fr) 60px;
}

.dashboard-page .recovery-history-row > span,
.dashboard-page .recovery-history-row > strong {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
}

.dashboard-page .recovery-history-row > strong {
  color: var(--ink);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.dashboard-page .analytics-note,
.dashboard-page .analytics-footnote,
.dashboard-page .analytics-empty span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
}

.dashboard-page .analytics-empty {
  min-height: 150px;
  background: #f3f0e9;
  color: var(--ink);
  border-color: var(--line);
}

.dashboard-page .analytics-empty strong { font-size: 14px; font-weight: 600; }

.dashboard-page .analytics-report-actions {
  gap: 14px;
  padding-top: 20px;
  margin-top: 24px;
  border-color: var(--line);
}

.dashboard-page .analytics-report-actions strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 500;
}

.dashboard-page .analytics-report-builder {
  border-color: var(--line);
  background: #fffdf8;
}

.dashboard-page .analytics-report-builder h4,
.dashboard-page .analytics-report-note,
.dashboard-page .analytics-report-note textarea {
  color: var(--ink);
}

.dashboard-page .analytics-report-note textarea {
  border-color: var(--line);
  background: #fffdf8;
  font-size: 14px;
  font-weight: 400;
}

.dashboard-page .analytics-report-builder-head > span,
.dashboard-page .analytics-report-note small,
.dashboard-page .analytics-report-status {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
}

@media (max-width: 1150px) {
  .dashboard-page .analytics-card { padding: 16px; }
}

@media (max-width: 700px) {
  .dashboard-page .client-analytics-card { padding: 18px; }
  .dashboard-page .analytics-toolbar { align-items: stretch; gap: 14px; }
  .dashboard-page .analytics-toolbar-actions { justify-content: flex-start; flex-wrap: wrap; }
  .dashboard-page .analytics-range-select { flex: 0 0 auto; }
  .dashboard-page .analytics-range-select select { width: auto; min-width: 88px; }
  .dashboard-page .analytics-card-head { flex-direction: row; }
  .dashboard-page .analytics-card-controls { width: auto; align-items: flex-end; }
  .dashboard-page .analytics-card-select select { width: 100%; max-width: 150px; }
  .dashboard-page .analytics-card .analytics-headline { font-size: 28px; }
  .dashboard-page .analytics-card .analytics-insight { font-size: 12px; }
  .dashboard-page .analytics-nutrition-bars { gap: 5px; }
  .dashboard-page .analytics-nutrition-bars { position: relative; }
  .dashboard-page .analytics-nutrition-column {
    position: static;
    grid-template-rows: 16px 130px 24px;
  }
  .dashboard-page .analytics-nutrition-column .analytics-nutrition-tooltip {
    left: 0;
    right: 0;
    bottom: 30px;
    width: 100%;
    max-width: 100%;
    transform: translateY(5px);
  }
  .dashboard-page .analytics-nutrition-column:is(:hover, :focus, :active) .analytics-nutrition-tooltip {
    transform: translateY(0);
  }
  .dashboard-page .analytics-nutrition-column > strong { font-size: 10px; }
  .dashboard-page .analytics-nutrition-column > small {
    font-size: 9px;
    line-height: 1.15;
    white-space: normal;
    text-overflow: clip;
    overflow: visible;
  }
}

/* Saved client meals share the daily-record date picker. */
.dashboard-page .meal-diary-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 16px;
}

.dashboard-page .meal-diary-title-row > span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 500;
}

.dashboard-page [data-client-history] {
  scroll-margin-top: 20px;
}

.dashboard-page .meal-diary-heading h4 {
  margin: 0;
  color: var(--ink);
  font-size: 23px;
  font-weight: 650;
  letter-spacing: -0.025em;
}

.dashboard-page .meal-diary-heading p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.dashboard-page .meal-diary-totals {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 20px 0 0;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.dashboard-page .meal-diary-totals:empty {
  display: none;
}

.dashboard-page .meal-diary-total {
  min-width: 0;
  padding: 0 18px;
  border-left: 1px solid var(--line);
}

.dashboard-page .meal-diary-total:first-child {
  padding-left: 0;
  border-left: 0;
}

.dashboard-page .meal-diary-total > span,
.dashboard-page .meal-diary-total > small {
  display: block;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.dashboard-page .meal-diary-total > strong {
  display: block;
  margin: 5px 0 2px;
  color: var(--ink);
  font-size: 23px;
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.dashboard-page .meal-diary-total.is-calories > strong,
.dashboard-page .meal-diary-macros .is-calories {
  color: #b43b30;
}

.dashboard-page .meal-diary-total.is-protein > strong,
.dashboard-page .meal-diary-macros .is-protein {
  color: #2863a1;
}

.dashboard-page .meal-diary-total.is-carbs > strong,
.dashboard-page .meal-diary-macros .is-carbs {
  color: #8a5a0b;
}

.dashboard-page .meal-diary-total.is-fat > strong,
.dashboard-page .meal-diary-macros .is-fat {
  color: #79549a;
}

.dashboard-page .meal-diary-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.dashboard-page .meal-diary-row {
  padding: 23px 0;
  border-bottom: 1px solid var(--line);
}

.dashboard-page .meal-diary-row:last-child {
  border-bottom: 0;
}

.dashboard-page .meal-diary-row-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 20px;
}

.dashboard-page .meal-diary-food-name {
  min-width: 0;
  color: var(--ink);
  font-size: 17px;
  line-height: 1.35;
  font-weight: 600;
  letter-spacing: -0.015em;
  overflow-wrap: anywhere;
}

.dashboard-page .meal-diary-category,
.dashboard-page .meal-diary-source {
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.dashboard-page .meal-diary-source.is-estimate {
  color: #875d24;
}

.dashboard-page .meal-diary-portion {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.dashboard-page .meal-diary-macros {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-top: 13px;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}

.dashboard-page .meal-diary-macros strong {
  font-weight: 550;
}

.dashboard-page .meal-diary-ingredients {
  margin-top: 8px;
  color: var(--muted);
}

.dashboard-page .meal-diary-ingredients > summary {
  display: list-item;
  width: fit-content;
  min-height: 44px;
  padding: 11px 2px;
  color: var(--ink);
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
}

.dashboard-page .meal-diary-ingredients > summary:focus-visible,
.dashboard-page .daily-other-records > summary:focus-visible {
  outline: 2px solid #ad2c23;
  outline-offset: 3px;
  border-radius: 3px;
}

.dashboard-page .meal-diary-ingredients ul {
  display: grid;
  gap: 13px;
  margin: 0 0 0 15px;
  padding: 5px 0 0 16px;
  border-left: 1px solid var(--line);
  list-style: none;
}

.dashboard-page .meal-diary-ingredients li {
  color: var(--ink);
  font-size: 13px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.dashboard-page .meal-diary-ingredients li > strong {
  font-weight: 500;
}

.dashboard-page .meal-diary-ingredients li > span,
.dashboard-page .meal-diary-ingredients li > small {
  display: block;
  color: var(--muted);
  font-size: 12px;
}

.dashboard-page .meal-diary-empty {
  display: grid;
  justify-items: start;
  gap: 8px;
  padding: 28px 0 18px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.dashboard-page .meal-diary-empty > strong {
  color: var(--ink);
  font-size: 16px;
  font-weight: 600;
}

.dashboard-page .daily-other-records {
  padding-top: 12px;
  margin-top: 16px;
  border-top: 1px solid var(--line);
}

.dashboard-page .daily-other-records > summary {
  min-height: 44px;
  padding: 12px 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
}

@media (max-width: 700px) {
  .dashboard-page .meal-diary-totals {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 0;
  }
  .dashboard-page .meal-diary-total:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }
  .dashboard-page .meal-diary-total > strong { font-size: 23px; }
  .dashboard-page .meal-diary-row-head { gap: 6px; }
  .dashboard-page .meal-diary-macros { gap: 7px 14px; font-size: 12px; }
}

/* Safety records lead with the selected client's reports. New reporting and
   follow-up are explicit actions, separate from the immutable original. */
#panel-safety { --safety-line: oklch(0.86 0.012 78); --safety-paper: oklch(0.985 0.008 80); }
#panel-safety [hidden] { display: none !important; }
#panel-safety .panel-title-row { align-items: flex-start; gap: 16px; }
#panel-safety .panel-title-row h2 { max-width: 760px; font-size: 25px; font-weight: 600; letter-spacing: -.03em; }
#panel-safety .panel-title-row .mini-action { min-height: 44px; padding: 10px 14px; border-radius: 8px; background: var(--black); color: var(--safety-paper); font-size: 12px; font-weight: 500; }
#panel-safety .safety-summary { margin: 8px 0 0; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
#panel-safety :is(button, summary, input, select, textarea):focus-visible { outline: 2px solid var(--black); outline-offset: 3px; }
#panel-safety button:disabled { opacity: .5; cursor: default; }
#panel-safety .safety-client-context { display: grid; grid-template-columns: minmax(120px, .65fr) minmax(180px, 1fr) auto; align-items: center; gap: 14px 20px; margin-bottom: 20px; padding: 14px 16px; border: 1px solid var(--safety-line); border-radius: 8px; background: var(--safety-paper); }
#panel-safety .safety-client-heading { display: grid; min-width: 0; gap: 4px; }
#panel-safety .safety-client-heading > span:first-child { color: var(--muted); font-size: 10px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
#panel-safety [data-client-safety-name] { color: var(--black); font-size: 17px; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
#panel-safety .safety-context-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
#panel-safety :is(.dashboard-link-button, .safety-action-row button, [data-safety-followup] button, .client-safety-form button) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 12px; border: 1px solid var(--safety-line); border-radius: 8px; background: transparent; color: var(--black); font-size: 12px; font-weight: 500; line-height: 1.4; }
#panel-safety .dashboard-link-button:hover:not(:disabled) { background: oklch(0.95 0.01 78); }
#panel-safety :is(.safety-client-context label, .client-safety-form label, [data-safety-followup] label) { display: grid; min-width: 0; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
#panel-safety :is(input, select, textarea) { min-width: 0; width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--safety-line); border-radius: 8px; background: var(--safety-paper); color: var(--black); font: inherit; font-size: 15px; font-weight: 400; box-shadow: none; }
#panel-safety :is(input, select, textarea):focus { border-color: var(--black); box-shadow: none; }
#panel-safety textarea { min-height: 112px; resize: vertical; line-height: 1.55; }
#panel-safety .safety-report-disclosure { margin: 0 0 20px; padding: 6px 16px; border: 1px solid var(--safety-line); border-radius: 8px; background: var(--safety-paper); }
#panel-safety .safety-report-disclosure > summary { display: flex; align-items: center; justify-content: space-between; min-height: 44px; gap: 12px; color: var(--black); font-size: 14px; font-weight: 550; cursor: pointer; list-style: none; }
#panel-safety .safety-report-disclosure > summary::-webkit-details-marker { display: none; }
#panel-safety .safety-report-disclosure > summary::after { content: "+"; color: var(--muted); font-size: 20px; font-weight: 400; }
#panel-safety .safety-report-disclosure[open] > summary::after { content: "−"; }
#panel-safety .safety-section-note { max-width: 72ch; margin: 10px 0 16px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.55; }
#panel-safety .client-safety-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 14px 16px; max-width: 720px; margin: 16px 0; }
#panel-safety .client-safety-form :is(.span-all, .form-status) { grid-column: 1 / -1; }
#panel-safety .client-safety-form button { justify-self: start; border-color: var(--black); background: var(--black); color: var(--safety-paper); }
#panel-safety .safety-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
#panel-safety .safety-filters button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 10px 13px; border: 1px solid var(--safety-line); border-radius: 8px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 500; line-height: 1.4; }
#panel-safety .safety-filters button[aria-pressed="true"] { border-color: var(--black); background: var(--black); color: var(--safety-paper); }
#panel-safety .safety-filters button > span { min-width: 16px; font-size: 11px; font-weight: 400; text-align: center; }
#panel-safety :is(.safety-feedback, .form-status) { margin: 12px 0 18px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
#panel-safety :is(.safety-feedback, .form-status):empty { display: none; }
#panel-safety :is(.safety-feedback, .form-status).is-error, #panel-safety [data-state="error"] { color: oklch(0.44 0.14 28); }
#panel-safety .safety-workspace { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; gap: 20px; }
#panel-safety .safety-report-list { display: grid; min-width: 0; gap: 6px; }
#panel-safety .safety-report-row { display: grid; min-width: 0; width: 100%; gap: 8px; min-height: 44px; padding: 16px; border: 1px solid transparent; border-bottom-color: var(--safety-line); border-radius: 8px; background: transparent; color: var(--black); font: inherit; text-align: left; cursor: pointer; }
#panel-safety .safety-report-row > span { min-width: 0; overflow-wrap: anywhere; }
#panel-safety .safety-report-row:hover:not(:disabled) { background: oklch(0.96 0.01 78); }
#panel-safety .safety-report-row:is(.is-selected, [aria-pressed="true"], [data-selected="true"]) { border-color: var(--black); background: var(--safety-paper); }
#panel-safety .safety-report-header { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; min-width: 0; gap: 6px 10px; }
#panel-safety .safety-report-header strong { color: var(--black); font-size: 14px; font-weight: 550; line-height: 1.4; overflow-wrap: anywhere; }
#panel-safety .safety-report-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 12px; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.5; }
#panel-safety .safety-report-row :is(p, small) { margin: 0; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
#panel-safety .safety-status { display: inline-flex; align-items: center; width: fit-content; max-width: 100%; padding: 4px 7px; border: 1px solid var(--safety-line); border-radius: 5px; background: oklch(0.96 0.01 78); color: var(--muted); font-size: 10px; font-weight: 500; line-height: 1.4; }
#panel-safety .safety-status[data-state="open"] { background: oklch(0.97 0.025 75); color: oklch(0.45 0.085 65); }
#panel-safety .safety-status[data-state="reviewing"] { color: var(--black); }
#panel-safety .safety-status:is([data-severity="high"], [data-severity="critical"]) { border-color: oklch(0.83 0.045 28); background: oklch(0.97 0.015 28); color: oklch(0.44 0.14 28); }
#panel-safety .safety-detail { min-width: 0; padding: 22px; border: 1px solid var(--safety-line); border-radius: 8px; background: var(--safety-paper); scroll-margin-top: 20px; }
#panel-safety .safety-detail:focus { outline: none; }
#panel-safety .safety-detail:focus-visible { outline: 2px solid var(--black); outline-offset: 4px; }
#panel-safety .safety-detail h3 { margin: 0 0 10px; color: var(--black); font-size: 18px; font-weight: 600; letter-spacing: -.025em; line-height: 1.35; overflow-wrap: anywhere; }
#panel-safety .safety-detail h4 { margin: 22px 0 10px; color: var(--black); font-size: 13px; font-weight: 550; }
#panel-safety .safety-detail :is(p, li) { max-width: 72ch; color: var(--muted); font-size: 13px; font-weight: 400; line-height: 1.6; overflow-wrap: anywhere; }
#panel-safety .safety-detail .safety-original { margin: 14px 0; padding: 14px; border: 1px solid var(--safety-line); border-radius: 6px; background: oklch(0.97 0.01 78); color: var(--black); white-space: pre-wrap; }
#panel-safety .safety-followup-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
#panel-safety .safety-followup-list > li { padding: 14px 0; border-top: 1px solid var(--safety-line); }
#panel-safety .safety-followup-list .safety-note { margin: 8px 0 0; color: var(--black); white-space: pre-wrap; }
#panel-safety .safety-followup-list small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.5; }
#panel-safety [data-safety-followup] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 16px; }
#panel-safety .safety-action-row { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; }
#panel-safety .safety-action-row > label { flex: 1 1 160px; }
#panel-safety [data-safety-followup] button { border-color: var(--black); background: var(--black); color: var(--safety-paper); }
#panel-safety .safety-empty { margin: 0; padding: 22px 16px; color: var(--muted); font-size: 13px; font-weight: 400; line-height: 1.6; }
#panel-safety .safety-detail > .safety-empty { padding: 0; }
@media (max-width: 1000px) {
  #panel-safety .safety-workspace { grid-template-columns: minmax(0, 1fr); }
  #panel-safety .safety-client-context { grid-template-columns: minmax(100px, .65fr) minmax(0, 1fr); }
  #panel-safety .safety-context-actions { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  #panel-safety .panel-title-row { flex-direction: column; gap: 14px; }
  #panel-safety .panel-title-row h2 { font-size: 22px; }
  #panel-safety .safety-client-context { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  #panel-safety :is(input, select, textarea) { font-size: 16px; }
  #panel-safety .safety-report-row { padding: 14px 12px; }
  #panel-safety .safety-detail { padding: 18px 16px; }
  #panel-safety .safety-action-row { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  #panel-safety .safety-action-row button { width: 100%; }
}
@media (max-width: 359px) {
  #panel-safety .client-safety-form { grid-template-columns: minmax(0, 1fr); }
  #panel-safety .safety-context-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  #panel-safety .safety-filters { gap: 6px; }
  #panel-safety .safety-filters button { padding: 10px 11px; }
}


/* The client timeline keeps saved coaching events in one private, dated feed. */
#panel-clients [data-client-timeline] {
  --timeline-line: oklch(0.86 0.012 78);
  --timeline-paper: oklch(0.985 0.008 80);
  grid-column: 1 / -1;
  min-width: 0;
  padding: 22px;
  background: var(--timeline-paper);
  scroll-margin-top: 20px;
}
#panel-clients [data-client-timeline] [hidden] { display: none !important; }
#panel-clients [data-client-timeline]:focus { outline: none; }
#panel-clients [data-client-timeline]:focus-visible,
#panel-clients [data-client-timeline] :is(button, summary, input, select, textarea):focus-visible { outline: 2px solid var(--black); outline-offset: 3px; }
#panel-clients .client-timeline-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px 20px; }
#panel-clients .client-timeline-heading > div { min-width: 0; }
#panel-clients [data-client-timeline] .card-head { justify-content: flex-start; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 8px; }
#panel-clients [data-client-timeline] .card-head > span { display: none; }
#panel-clients [data-client-timeline] .card-head > strong { color: var(--muted); font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; overflow-wrap: anywhere; }
#panel-clients [data-client-timeline] h3 { margin: 0; color: var(--black); font-size: 23px; font-weight: 600; letter-spacing: -.025em; line-height: 1.3; }
#panel-clients .client-timeline-heading p { max-width: 70ch; margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
#panel-clients [data-client-timeline] .timeline-privacy { margin: 14px 0 18px; color: var(--muted); font-size: 12px; line-height: 1.5; }
#panel-clients [data-client-timeline] :is(.dashboard-link-button, .mini-action, .timeline-filters button, .timeline-entry-action) { display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 44px; padding: 10px 13px; border: 1px solid var(--timeline-line); border-radius: 8px; background: transparent; color: var(--black); font-size: 12px; font-weight: 500; line-height: 1.4; text-align: center; text-decoration: none; }
#panel-clients [data-client-timeline] button:disabled { opacity: .5; cursor: default; }
#panel-clients [data-client-timeline] :is(.dashboard-link-button, .timeline-entry-action):hover:not(:disabled) { background: oklch(0.95 0.01 78); }
#panel-clients .timeline-entry-disclosure { margin: 0 0 20px; padding: 0; border-top: 1px solid var(--timeline-line); border-bottom: 1px solid var(--timeline-line); }
#panel-clients .timeline-entry-disclosure > summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; gap: 12px; padding: 10px 0; color: var(--black); font-size: 14px; font-weight: 550; line-height: 1.45; cursor: pointer; list-style: none; }
#panel-clients .timeline-entry-disclosure > summary::-webkit-details-marker { display: none; }
#panel-clients .timeline-entry-disclosure > summary::after { content: "+"; color: var(--muted); font-size: 20px; font-weight: 400; }
#panel-clients .timeline-entry-disclosure[open] > summary::after { content: "−"; }
#panel-clients .timeline-entry-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 14px 16px; max-width: 760px; margin: 10px 0 20px; }
#panel-clients .timeline-entry-form label { display: grid; min-width: 0; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; }
#panel-clients .timeline-entry-form :is(input, select, textarea) { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--timeline-line); border-radius: 8px; background: var(--timeline-paper); color: var(--black); font: inherit; font-size: 15px; font-weight: 400; box-shadow: none; }
#panel-clients .timeline-entry-form :is(input, select, textarea):focus { border-color: var(--black); box-shadow: none; }
#panel-clients .timeline-entry-form textarea { min-height: 104px; resize: vertical; line-height: 1.55; }
#panel-clients .timeline-entry-form :is(.timeline-form-detail, .timeline-entry-hint, .form-status) { grid-column: 1 / -1; }
#panel-clients .timeline-entry-form .mini-action { justify-self: start; border-color: var(--black); background: var(--black); color: var(--timeline-paper); }
#panel-clients [data-client-timeline] :is(.timeline-entry-hint, .timeline-feedback, .form-status) { max-width: 72ch; margin: 0; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.55; overflow-wrap: anywhere; }
#panel-clients [data-client-timeline] :is(.timeline-feedback, .form-status):empty { display: none; }
#panel-clients [data-client-timeline] :is(.timeline-feedback, .form-status).is-error,
#panel-clients [data-client-timeline] [data-state="error"] { color: oklch(0.44 0.14 28); }
#panel-clients .timeline-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }
#panel-clients .timeline-filters button { color: var(--muted); }
#panel-clients [data-client-timeline] .timeline-filters button { min-width: 44px; }
#panel-clients .timeline-filters button:hover:not(:disabled) { border-color: var(--black); }
#panel-clients .timeline-filters button[aria-pressed="true"] { border-color: var(--black); background: var(--black); color: var(--timeline-paper); }
#panel-clients .client-timeline-list { display: grid; gap: 0; min-width: 0; margin: 8px 0 0; padding: 0; list-style: none; }
#panel-clients .timeline-day { min-width: 0; margin: 12px 0 0; padding: 10px 0; border-top: 1px solid var(--timeline-line); color: var(--muted); font-size: 12px; font-weight: 500; line-height: 1.5; }
#panel-clients .timeline-day:first-child { margin-top: 0; }
#panel-clients .timeline-day :is(h4, time) { display: block; margin: 0; color: var(--muted); font: inherit; }
#panel-clients .timeline-day > ol { margin: 0; padding: 0; list-style: none; }
#panel-clients .timeline-entry { min-width: 0; padding: 15px 0 17px; border-bottom: 1px solid var(--timeline-line); }
#panel-clients .timeline-entry:last-child { border-bottom: 0; }
#panel-clients .timeline-entry-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 12px; margin: 0 0 6px; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
#panel-clients .timeline-entry-title { display: block; margin: 0; color: var(--black); font-size: 15px; font-weight: 550; line-height: 1.45; overflow-wrap: anywhere; }
#panel-clients [data-client-timeline] .timeline-entry-detail { max-width: 72ch; margin: 7px 0 0; color: var(--black); font-size: 13px; font-weight: 400; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
#panel-clients [data-client-timeline] .timeline-entry-action { margin-top: 10px; }
#panel-clients [data-client-timeline] .timeline-more { margin-top: 20px; }
#panel-clients .timeline-empty { padding: 22px 0 8px; color: var(--muted); font-size: 13px; font-weight: 400; line-height: 1.6; overflow-wrap: anywhere; }
#panel-clients .client-workspace-nav :is([data-client-open-timeline], [data-client-open-concerns]) { min-height: 44px; }
@media (max-width: 700px) {
  #panel-clients [data-client-timeline] { padding: 18px 16px; }
  #panel-clients .client-timeline-heading { flex-direction: column; gap: 14px; }
  #panel-clients .timeline-entry-form { grid-template-columns: minmax(0, 1fr); }
  #panel-clients .timeline-entry-form :is(input, select, textarea) { font-size: 16px; }
  #panel-clients .timeline-entry-form .mini-action { width: 100%; }
  #panel-clients .timeline-filters { gap: 6px; }
  #panel-clients .timeline-filters button { padding: 10px 11px; }
}

/* Package terms and confirmed session uses stay together in a private ledger. */
#panel-payments { --package-line: oklch(0.86 0.012 78); --package-paper: oklch(0.985 0.008 80); }
#panel-payments [hidden] { display: none !important; }
#panel-payments .panel-title-row { align-items: flex-start; gap: 16px; }
#panel-payments .panel-title-row h2 { max-width: 760px; font-size: 25px; font-weight: 600; letter-spacing: -.03em; }
#panel-payments :is(.package-page-note, .package-section-note, .package-records-note, .package-credit-copy, .form-status) { max-width: 72ch; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.55; overflow-wrap: anywhere; }
#panel-payments .package-page-note { margin: 8px 0 0; }
#panel-payments .package-section-note { margin: 8px 0 16px; }
#panel-payments .package-records-note { margin: 18px 0 0; }
#panel-payments :is(button, summary, input, select, textarea):focus-visible { outline: 2px solid var(--black); outline-offset: 3px; }
#panel-payments button:disabled { opacity: .5; cursor: default; }
#panel-payments :is(.dashboard-link-button, .mini-action, [data-package-restore-form] button) { display: inline-flex; justify-content: center; align-items: center; min-width: 0; min-height: 44px; padding: 10px 13px; border: 1px solid var(--package-line); border-radius: 8px; background: transparent; color: var(--black); font: inherit; font-size: 12px; font-weight: 500; line-height: 1.4; text-align: center; text-decoration: none; }
#panel-payments .mini-action { border-color: var(--black); background: var(--black); color: var(--package-paper); }
#panel-payments .dashboard-link-button:hover:not(:disabled) { background: oklch(0.95 0.01 78); }
#panel-payments .package-client-context { display: grid; grid-template-columns: minmax(120px, .65fr) minmax(180px, 1fr) auto; align-items: center; gap: 14px 20px; margin: 0 0 26px; padding: 14px 16px; border: 1px solid var(--package-line); border-radius: 8px; background: var(--package-paper); }
#panel-payments .package-client-heading { display: grid; min-width: 0; gap: 4px; }
#panel-payments .package-client-heading > span { color: var(--muted); font-size: 10px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
#panel-payments [data-client-payment-name] { color: var(--black); font-size: 17px; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
#panel-payments :is(.package-context-actions, .package-actions) { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
#panel-payments .package-workspace { display: grid; grid-template-columns: minmax(200px, .6fr) minmax(0, 1.4fr); align-items: start; gap: 28px; }
#panel-payments :is(.package-history, .package-detail, .package-overview, .package-ledger) { min-width: 0; }
#panel-payments :is(.package-history, .package-ledger) > h3 { margin: 0; color: var(--black); font-size: 16px; font-weight: 550; line-height: 1.4; }
#panel-payments [data-package-list] { display: grid; min-width: 0; gap: 7px; }
#panel-payments :is(.package-row, [data-package-list] > button) { display: grid; gap: 7px; width: 100%; min-width: 0; min-height: 44px; padding: 15px 14px; border: 1px solid transparent; border-bottom-color: var(--package-line); border-radius: 8px; background: transparent; color: var(--black); font: inherit; text-align: left; cursor: pointer; }
#panel-payments :is(.package-row, [data-package-list] > button) > * { min-width: 0; overflow-wrap: anywhere; }
#panel-payments :is(.package-row, [data-package-list] > button) strong { font-size: 14px; font-weight: 550; line-height: 1.45; }
#panel-payments :is(.package-row, [data-package-list] > button) :is(p, small) { margin: 0; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
#panel-payments :is(.package-row, [data-package-list] > button):hover:not(:disabled) { background: oklch(0.96 0.01 78); }
#panel-payments :is(.package-row, [data-package-list] > button):is(.is-selected, [aria-pressed="true"], [data-selected="true"]) { border-color: var(--black); background: var(--package-paper); }
#panel-payments .package-summary-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 10px 16px; margin-bottom: 12px; }
#panel-payments .package-overview h3 { margin: 0; color: var(--black); font-size: 22px; font-weight: 600; letter-spacing: -.025em; line-height: 1.35; overflow-wrap: anywhere; }
#panel-payments .package-overview :is(p, .package-note) { max-width: 72ch; color: var(--muted); font-size: 13px; font-weight: 400; line-height: 1.6; overflow-wrap: anywhere; }
#panel-payments .package-overview .package-note { white-space: pre-wrap; }
#panel-payments .package-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 0; margin: 18px 0; padding: 18px 0; border-top: 1px solid var(--package-line); border-bottom: 1px solid var(--package-line); }
#panel-payments .package-metric { display: grid; align-content: start; min-width: 0; gap: 6px; padding: 0 16px; border-left: 1px solid var(--package-line); }
#panel-payments .package-metric:nth-child(3n + 1) { padding-left: 0; border-left: 0; }
#panel-payments .package-metric :is(span, small) { color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.45; overflow-wrap: anywhere; }
#panel-payments .package-metric strong { color: var(--black); font-size: 23px; font-weight: 550; letter-spacing: -.025em; line-height: 1.2; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
#panel-payments .package-meta-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 16px 0; }
#panel-payments .package-meta-grid > div { display: grid; min-width: 0; gap: 4px; }
#panel-payments .package-meta-grid :is(dt, span, small) { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
#panel-payments .package-meta-grid :is(dd, strong) { margin: 0; color: var(--black); font-size: 13px; font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
#panel-payments .package-state { display: inline-flex; align-items: center; width: fit-content; max-width: 100%; padding: 4px 7px; border: 1px solid var(--package-line); border-radius: 5px; background: oklch(0.96 0.01 78); color: var(--muted); font-size: 10px; font-weight: 500; line-height: 1.4; }
#panel-payments .package-state:is([data-state="active"], [data-state="paid"]) { border-color: oklch(0.83 0.025 145); background: oklch(0.96 0.015 145); color: oklch(0.4 0.045 145); }
#panel-payments .package-state:is([data-state="overdue"], [data-state="expired"], [data-state="error"]) { border-color: oklch(0.83 0.045 28); background: oklch(0.97 0.015 28); color: oklch(0.44 0.14 28); }
#panel-payments .package-actions { margin: 16px 0 22px; }
#panel-payments .package-disclosure { padding: 0; border-top: 1px solid var(--package-line); }
#panel-payments .package-disclosure > summary { display: flex; justify-content: space-between; align-items: center; min-height: 50px; gap: 12px; padding: 12px 0; color: var(--black); font-size: 14px; font-weight: 550; line-height: 1.45; cursor: pointer; list-style: none; }
#panel-payments .package-disclosure > summary::-webkit-details-marker { display: none; }
#panel-payments .package-disclosure > summary::after { content: "+"; color: var(--muted); font-size: 20px; font-weight: 400; }
#panel-payments .package-disclosure[open] > summary::after { content: "−"; }
#panel-payments :is(.package-form, .client-payment-form) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 14px 16px; max-width: 760px; margin: 10px 0 22px; }
#panel-payments :is(label, [data-package-restore-form] label) { display: grid; min-width: 0; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; }
#panel-payments .package-optional { display: inline; margin-top: -4px; font-size: 11px; font-weight: 400; }
#panel-payments :is(input, select, textarea) { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--package-line); border-radius: 8px; background: var(--package-paper); color: var(--black); font: inherit; font-size: 15px; font-weight: 400; box-shadow: none; }
#panel-payments :is(input, select, textarea):focus { border-color: var(--black); box-shadow: none; }
#panel-payments textarea { min-height: 104px; resize: vertical; line-height: 1.55; }
#panel-payments :is(.package-form, .client-payment-form) :is(.span-all, .form-status) { grid-column: 1 / -1; }
#panel-payments :is(.package-form, .client-payment-form) .mini-action { justify-self: start; }
#panel-payments .package-confirm { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; padding: 8px 0; color: var(--black); font-size: 13px; font-weight: 400; line-height: 1.6; cursor: pointer; }
#panel-payments .package-confirm input { flex: 0 0 20px; width: 20px; height: 20px; min-height: 20px; margin: 1px 0 0; padding: 0; accent-color: var(--black); }
#panel-payments .package-credit-copy { margin: -4px 0 0; }
#panel-payments .form-status { margin: 0; }
#panel-payments .form-status:empty { display: none; }
#panel-payments :is(.form-status.is-error, [data-state="error"]) { color: oklch(0.44 0.14 28); }
#panel-payments .package-ledger { padding-top: 20px; border-top: 1px solid var(--package-line); }
#panel-payments [data-package-uses] { display: grid; gap: 0; min-width: 0; }
#panel-payments .package-use-row { min-width: 0; padding: 16px 0; border-top: 1px solid var(--package-line); }
#panel-payments .package-use-row :is(h4, strong) { margin: 0; color: var(--black); font-size: 14px; font-weight: 550; line-height: 1.45; overflow-wrap: anywhere; }
#panel-payments .package-use-row p { max-width: 72ch; margin: 7px 0; color: var(--black); font-size: 13px; font-weight: 400; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
#panel-payments .package-ledger-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 12px; margin: 6px 0; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
#panel-payments [data-package-restore-form] { display: grid; gap: 12px; max-width: 620px; margin: 16px 0 0; }
#panel-payments [data-package-restore-form] button { justify-self: start; }
#panel-payments .package-empty { margin: 0; padding: 22px 0; color: var(--muted); font-size: 13px; font-weight: 400; line-height: 1.6; overflow-wrap: anywhere; }
#panel-payments .package-legacy-disclosure { margin-top: 30px; border-bottom: 1px solid var(--package-line); }
#panel-clients .client-workspace-nav [data-client-open-packages] { min-height: 44px; }
@media (max-width: 1100px) {
  #panel-payments .package-client-context { grid-template-columns: minmax(100px, .65fr) minmax(0, 1fr); }
  #panel-payments .package-context-actions { grid-column: 1 / -1; }
  #panel-payments .package-workspace { grid-template-columns: minmax(180px, .6fr) minmax(0, 1.4fr); gap: 22px; }
}
@media (max-width: 900px) {
  #panel-payments .package-workspace { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  #panel-payments [data-package-list] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  #panel-payments .panel-title-row { flex-direction: column; gap: 14px; }
  #panel-payments .panel-title-row h2 { font-size: 22px; }
  #panel-payments .package-client-context { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-bottom: 24px; }
  #panel-payments :is(.package-form, .client-payment-form) { grid-template-columns: minmax(0, 1fr); }
  #panel-payments :is(input, select, textarea) { font-size: 16px; }
  #panel-payments :is(.package-form, .client-payment-form) .mini-action { width: 100%; }
  #panel-payments .package-overview h3 { font-size: 20px; }
  #panel-payments .package-metric { padding: 0 10px; }
  #panel-payments .package-metric strong { font-size: 21px; }
}
@media (max-width: 359px) {
  #panel-payments [data-package-list] { grid-template-columns: minmax(0, 1fr); }
  #panel-payments .package-context-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  #panel-payments .package-meta-grid { grid-template-columns: minmax(0, 1fr); }
  #panel-payments .package-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #panel-payments .package-metric { padding-left: 12px; border-left: 1px solid var(--package-line); }
  #panel-payments .package-metric:nth-child(3n + 1) { padding-left: 12px; border-left: 1px solid var(--package-line); }
  #panel-payments .package-metric:nth-child(2n + 1) { padding-left: 0; border-left: 0; }
}

/* Selected-client workspace: one roster, one consistent right-hand view. */
#panel-clients .clients-layout { grid-template-columns: 250px minmax(0, 1fr); gap: 20px; align-items: start; }
#panel-clients .client-workspace-main { grid-column: 2; display: grid; gap: 16px; min-width: 0; container: client-workspace / inline-size; }
#panel-clients .client-workspace-content { display: grid; gap: 16px; min-width: 0; }
#panel-clients .client-workspace-content > [hidden],
#panel-clients [data-client-workspace-slot][hidden] { display: none !important; }
#panel-clients .client-roster-card { position: sticky; top: 20px; padding: 18px; }
#panel-clients .client-detail-card { padding: 20px 22px 0; }
#panel-clients .client-detail-card > h3 { font-size: 28px; margin: 8px 0; }
#panel-clients .client-detail-card > p { margin-bottom: 12px; font-size: 13px; }
#panel-clients .client-workspace-nav { display: flex; flex-wrap: wrap; gap: 0 14px; margin: 12px 0 0; padding: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; overflow: visible; }
#panel-clients .client-workspace-nav button { min-height: 44px; padding: 10px 0; border: 0; border-radius: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); font-size: 12px; font-weight: 500; white-space: normal; }
#panel-clients .client-workspace-nav button[aria-selected="true"] { color: var(--black); border-bottom-color: var(--black); font-weight: 650; }
#panel-clients .client-workspace-nav button:disabled { opacity: .5; cursor: not-allowed; }
#panel-clients .client-workspace-content > .coach-card { margin: 0; grid-column: auto; }
#panel-clients .client-condition-pane .assignment-box { margin-top: 18px; }
#panel-clients .client-condition-pane .client-release-link { margin-top: 18px; }
#panel-clients .client-embedded-panel { min-width: 0; display: block; }
#panel-clients .client-embedded-panel > .panel-title-row,
#panel-clients .client-embedded-panel > .editor-client-context,
#panel-clients .client-embedded-panel .package-client-context > label,
#panel-clients .client-embedded-panel [data-return-client],
#panel-clients .client-embedded-panel [data-plan-client-picker] { display: none; }
#panel-clients .client-embedded-panel .workout-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
#panel-clients .client-embedded-panel .workout-layout > * { grid-column: auto; min-width: 0; }
#panel-clients .client-embedded-panel .plan-settings { grid-template-columns: minmax(0, 1fr) 120px; }
#panel-clients .client-embedded-panel .meal-target-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#panel-clients .client-embedded-panel .meals-layout { grid-template-columns: minmax(0, 1fr); }
#panel-clients .client-embedded-panel .meals-layout > * { grid-column: auto; }
#panel-clients .client-embedded-panel .plan-session-actions { flex-wrap: wrap; }
#panel-clients .client-embedded-panel .workout-library-card { position: static; }
#panel-clients .client-embedded-panel .plan-exercise-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#panel-clients .client-workspace-content .analytics-grid { grid-template-columns: minmax(0, 1fr); }
#panel-clients .client-workspace-content .analytics-card { grid-column: auto; }
#panel-clients [data-client-history] .daily-other-records[open] { margin-top: 16px; }
#panel-requests .coach-card { max-width: 1000px; }
@media (max-width: 1050px) {
  #panel-clients .clients-layout { grid-template-columns: minmax(0, 1fr); }
  #panel-clients .client-workspace-main { grid-column: 1; }
  #panel-clients .client-roster-card { position: static; }
}
@container client-workspace (max-width: 520px) {
  #panel-clients .client-embedded-panel .plan-settings,
  #panel-clients .client-embedded-panel .plan-session-fields,
  #panel-clients .client-embedded-panel .safety-workspace,
  #panel-clients .client-embedded-panel .package-workspace { grid-template-columns: minmax(0, 1fr); }
  #panel-clients .client-embedded-panel .plan-exercise-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

#panel-clients .client-workspace-nav { justify-content: flex-start; }
#panel-clients .client-workspace-nav button { flex: 0 0 auto; }
#panel-clients .client-embedded-panel > .panel-title-row { display: flex; justify-content: flex-end; margin: 0 0 12px; }
#panel-clients .client-embedded-panel > .panel-title-row > div:first-child { display: none; }
#panel-clients .client-embedded-panel > .panel-title-row:not(:has(button, a)) { display: none; }
#panel-clients .client-embedded-panel .safety-client-context > label { display: none; }
#panel-clients .workspace-roster-toggle { display: none; }
#panel-clients [data-workspace-selected-client] { font-size: 12px; margin-top: 6px; }
@media (max-width: 1050px) {
  #panel-clients .client-roster-card .client-list-head { display: flex; align-items: center; }
  #panel-clients .client-roster-card .workspace-roster-toggle { display: inline-flex; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; background: transparent; color: var(--black); font-size: 12px; }
  #panel-clients .client-roster-card:not([data-roster-expanded="true"]) > :not(.client-list-head) { display: none; }
  #panel-clients .client-roster-card .client-list-head > strong { display: none; }
}

/* Condition leads with the next review, keeping reference records optional. */
#panel-clients .client-condition-pane .client-review-summary { gap: 10px; margin: 0 0 20px; padding: 0 0 20px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
#panel-clients .client-condition-pane .client-review-summary-head { flex-wrap: wrap; gap: 6px 14px; }
#panel-clients .client-condition-pane .client-review-summary-head .dashboard-kicker { font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; }
#panel-clients .client-condition-pane .client-review-summary-head > strong { font-size: 12px; font-weight: 600; letter-spacing: 0; text-transform: none; }
#panel-clients .client-condition-pane .client-review-summary.on-track .client-review-summary-head > strong { color: var(--muted); }
#panel-clients .client-condition-pane .client-review-summary.watch .client-review-summary-head > strong { color: #875911; }
#panel-clients .client-condition-pane .client-review-summary p { max-width: 65ch; font-size: 15px; font-weight: 500; line-height: 1.6; overflow-wrap: anywhere; }
#panel-clients .client-condition-pane .quick-action-row { justify-content: flex-start; margin-top: 2px; gap: 8px 18px; }
#panel-clients .client-condition-pane :is(.mini-action, .dashboard-link-button) { min-height: 44px; }
#panel-clients .client-condition-pane .condition-grid { margin: 0; gap: 0; }
#panel-clients .client-condition-pane .condition-grid > div { min-height: 78px; padding: 12px; border-radius: 0; border-bottom: 1px solid var(--line); background: transparent; }
#panel-clients .client-condition-pane .condition-grid span { font-size: 10px; font-weight: 500; letter-spacing: 0; text-transform: none; }
#panel-clients .client-condition-pane .condition-grid strong { font-size: 15px; font-weight: 600; line-height: 1.45; text-wrap: pretty; }
#panel-clients .client-condition-pane .condition-training { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; margin: 0; padding: 18px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
#panel-clients .client-condition-pane .condition-training > div { min-width: 0; }
#panel-clients .client-condition-pane .condition-training .sidebar-label { font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
#panel-clients .client-condition-pane .condition-training strong { font-size: 15px; font-weight: 600; overflow-wrap: anywhere; }
#panel-clients .client-condition-pane :is(.condition-reference, .condition-options) { margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
#panel-clients .client-condition-pane :is(.condition-reference, .condition-options, .condition-reasons) > summary { min-height: 44px; padding: 14px 0; color: var(--muted); font-size: 12px; font-weight: 500; line-height: 1.5; cursor: pointer; }
#panel-clients .client-condition-pane .condition-reasons > summary { padding-block: 10px; }
#panel-clients .client-condition-pane .condition-reasons ul { gap: 8px; padding-bottom: 10px; font-weight: 400; line-height: 1.6; overflow-wrap: anywhere; }
#panel-clients .client-condition-pane .condition-reference .record-strip { margin: 0 0 6px; }
#panel-clients .client-condition-pane .condition-reference .record-strip > div { padding: 8px 0; }
#panel-clients .client-condition-pane .condition-reference .record-strip strong { font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
#panel-clients .client-condition-pane .client-release-link { min-height: 44px; margin: 0 0 8px; }
#panel-clients .client-condition-pane summary:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; border-radius: 3px; }
@container client-workspace (max-width: 520px) {
  #panel-clients .client-condition-pane .condition-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #panel-clients .client-condition-pane .condition-grid > div { padding-inline: 0 12px; }
  #panel-clients .client-condition-pane .condition-training { align-items: flex-start; }
}

/* Reusable programmes are independent of the selected client's training draft. */
#panel-programmes { --workout-line: #ded9ce; --workout-paper: #fffdf7; }
#panel-programmes .programme-intro { margin: 10px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
#panel-programmes .programme-library-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); align-items: start; gap: 20px; }
#panel-programmes .programme-library-main { display: grid; gap: 16px; min-width: 0; }
#panel-programmes .programme-collection { padding: 18px; }
#panel-programmes .programme-collection .workout-editor-head { margin-bottom: 4px; }
#panel-programmes [data-library-collection] { margin: 16px 0; }
#panel-programmes .library-programme { padding: 16px 0; border-top: 1px solid var(--workout-line); }
#panel-programmes .library-programme strong { display: block; color: var(--black); font-size: 15px; font-weight: 550; line-height: 1.5; overflow-wrap: anywhere; }
#panel-programmes .library-programme small { display: block; margin: 5px 0 10px; color: var(--muted); font-size: 12px; line-height: 1.5; }
#panel-programmes .library-programme.is-editing { border-top-color: var(--black); }
#panel-programmes .programme-actions { gap: 5px; }
#panel-programmes .programme-actions button { padding: 8px 10px; }
#panel-programmes .programme-actions [data-library-action="assign"] { color: #a3342a; }
#panel-programmes .programme-assignment { border-color: #b63b30; }
#panel-programmes [data-library-assign-form] { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; }
#panel-programmes [data-library-assign-form] label { flex: 1 1 180px; display: grid; gap: 6px; font-size: 12px; color: var(--muted); }
#panel-programmes :is([data-library-save], [data-library-assign-form] button[type="submit"]) { background: var(--black); color: var(--workout-paper); }
#panel-programmes .library-exercise-picker { padding: 12px; margin: 12px 0; border: 1px solid var(--workout-line); border-radius: 8px; }
#panel-programmes .library-exercise-picker summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-size: 13px; }
#panel-programmes .library-exercise-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 8px 0; }
#panel-programmes .library-exercise-results button { min-height: 44px; padding: 10px; border: 1px solid var(--workout-line); border-radius: 6px; background: transparent; color: var(--black); text-align: left; font-size: 12px; overflow-wrap: anywhere; }
#panel-programmes [data-library-exercise] { touch-action: pan-y; user-select: none; cursor: grab; }
#panel-programmes .library-exercise-results small { display: block; color: var(--muted); margin-top: 3px; }
#panel-programmes .library-drop-active { outline: 2px dashed #b63b30; outline-offset: 3px; }
#panel-programmes .plan-session-tab strong { white-space: normal; overflow-wrap: anywhere; }
#panel-programmes .template-option { width: 100%; }
@media (max-width: 1100px) { #panel-programmes .programme-library-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
  #panel-programmes .library-exercise-results { grid-template-columns: minmax(0, 1fr); }
  #panel-programmes [data-library-assign-form] { display: grid; grid-template-columns: minmax(0, 1fr); }
  #panel-programmes .programme-actions button { flex: 1 1 auto; }
}

@media (max-width: 980px), (pointer: coarse) {
  .dashboard-page .dashboard-sidebar .dash-nav-button,
  .dashboard-page .dashboard-sidebar-footer .dashboard-account-link { min-height: 44px; }
}

/* Programme builder: one session, compact exercise rows, details on demand. */
#panel-programmes .library-editor-toolbar { align-items: center; margin-bottom: 24px; gap: 12px; }
#panel-programmes .library-editor-toolbar > div:first-child { display: grid; gap: 5px; }
#panel-programmes [data-library-draft-state] { color: var(--muted); font-size: 11px; line-height: 1.4; }
#panel-programmes .library-editor-toolbar .programme-actions { margin: 0; }
#panel-programmes .programme-collection .workout-editor-head > div { display: grid; gap: 5px; }
#panel-programmes [data-library-count] { color: var(--muted); font-size: 12px; }
#panel-programmes button.library-collection-toggle { display: none; }
#panel-programmes .template-option { min-height: 0; align-content: start; }
#panel-programmes .template-option small { margin-top: 0; }
#panel-programmes .plan-session-tab { flex-basis: 144px; min-height: 54px; padding: 9px 12px; }
:is(#panel-workouts, #panel-programmes) .library-session-identity { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; margin: 10px 0 12px; }
:is(#panel-workouts, #panel-programmes) .library-session-context { display: grid; gap: 4px; min-width: 0; }
:is(#panel-workouts, #panel-programmes) .library-session-context strong { color: var(--black); font-size: 15px; font-weight: 500; overflow-wrap: anywhere; }
:is(#panel-workouts, #panel-programmes) .library-session-context small { color: var(--muted); font-size: 11px; }
:is(#panel-workouts, #panel-programmes) .library-session-options[open] { flex-basis: 100%; }
:is(#panel-workouts, #panel-programmes) .library-session-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
:is(#panel-workouts, #panel-programmes) .library-session-fields label { display: grid; gap: 6px; }
#panel-programmes .plan-settings { margin-bottom: 16px; }
#panel-programmes .plan-section-head { margin-top: 12px; }
#panel-programmes .library-editor-toolbar button[data-library-save]:hover:not(:disabled) { background: var(--black); color: var(--workout-paper); filter: brightness(.92); }
:is(#panel-workouts, #panel-programmes) .library-session-identity > label { display: grid; gap: 6px; }
:is(#panel-workouts, #panel-programmes) :is(.library-session-identity label, .library-exercise-edit-body label) { color: var(--muted); font-size: 12px; font-weight: 400; }
:is(#panel-workouts, #panel-programmes) .library-session-identity > label input { font-size: 17px; font-weight: 500; }
:is(#panel-workouts, #panel-programmes) :is(.library-session-options, .library-effort-details) > summary { display: flex; align-items: center; gap: 8px; min-height: 44px; width: fit-content; cursor: pointer; color: var(--muted); font-size: 12px; list-style: none; }
:is(#panel-workouts, #panel-programmes) :is(.library-session-options, .library-effort-details) > summary::before { content: "+"; width: 12px; color: var(--black); }
:is(#panel-workouts, #panel-programmes) :is(.library-session-options, .library-effort-details)[open] > summary::before { content: "−"; }
:is(#panel-workouts, #panel-programmes) :is(.library-session-options, .library-effort-details) > summary::-webkit-details-marker { display: none; }
:is(#panel-workouts, #panel-programmes) .library-session-options > label { display: grid; gap: 6px; }
:is(#panel-workouts, #panel-programmes) .library-session-options .plan-session-actions { margin-top: 10px; }
#panel-programmes .library-exercise-section-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 8px; }
#panel-programmes .library-exercise-section-head h4 { display: flex; gap: 8px; margin: 0; font-size: 15px; font-weight: 550; }
#panel-programmes .library-exercise-section-head h4 span { color: var(--muted); font-weight: 400; }
#panel-programmes .library-exercise-picker { margin: 0 0 16px; }
#panel-programmes .library-exercise-picker:not([open]) { display: none; }
#panel-programmes .library-picker-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
#panel-programmes .library-picker-footer > small { color: var(--muted); font-size: 11px; }
:is(#panel-workouts, #panel-programmes) .library-exercise-row { border-top: 1px solid var(--workout-line); min-width: 0; }
:is(#panel-workouts, #panel-programmes) .library-exercise-row:last-child { border-bottom: 1px solid var(--workout-line); }
:is(#panel-workouts, #panel-programmes) .library-exercise-row > summary { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 0; cursor: pointer; list-style: none; }
:is(#panel-workouts, #panel-programmes) .library-exercise-row > summary::-webkit-details-marker { display: none; }
:is(#panel-workouts, #panel-programmes) .library-exercise-number { flex: 0 0 20px; color: var(--muted); font-size: 11px; text-align: center; }
:is(#panel-workouts, #panel-programmes) .library-exercise-description { flex: 1; min-width: 0; display: grid; gap: 4px; }
:is(#panel-workouts, #panel-programmes) .library-exercise-description strong { color: var(--black); font-size: 14px; font-weight: 500; overflow-wrap: anywhere; }
:is(#panel-workouts, #panel-programmes) .library-exercise-description small { color: var(--muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
:is(#panel-workouts, #panel-programmes) .library-exercise-edit { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; }
:is(#panel-workouts, #panel-programmes) .library-exercise-edit > span { display: inline-block; font-size: 16px; }
:is(#panel-workouts, #panel-programmes) .library-exercise-row[open] .library-exercise-edit > span { transform: rotate(180deg); }
:is(#panel-workouts, #panel-programmes) .library-exercise-edit-body { display: grid; gap: 12px; padding: 0 0 18px 32px; }
:is(#panel-workouts, #panel-programmes) .library-exercise-edit-body label { display: grid; gap: 6px; min-width: 0; }
:is(#panel-workouts, #panel-programmes) .library-prescription-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
:is(#panel-workouts, #panel-programmes) .library-effort-fields { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(0, 2fr); gap: 12px; }
:is(#panel-workouts, #panel-programmes) .library-effort-fields small { font-size: 11px; line-height: 1.5; }
:is(#panel-workouts, #panel-programmes) .library-exercise-edit-body .plan-exercise-controls { justify-content: flex-end; }
#panel-programmes :is([data-library-action="remove-session"], [data-library-action="remove-exercise"]) { color: #a3342a; }
@media (max-width: 1100px) {
  #panel-programmes button.library-collection-toggle { display: inline-flex; }
  #panel-programmes [data-library-collection-collapsed="true"] .library-collection-body { display: none; }
  #panel-programmes .programme-collection .workout-editor-head { margin: 0; }
}
@media (max-width: 680px) {
  #panel-programmes .plan-settings { grid-template-columns: minmax(0, 1fr) 80px; align-items: end; gap: 12px; }
  #panel-programmes .library-editor-toolbar { align-items: flex-start; }
  #panel-programmes .library-editor-toolbar .programme-actions { width: 100%; justify-content: flex-end; }
  #panel-programmes .library-prescription-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  #panel-programmes .library-effort-fields,
  #panel-programmes .library-session-fields { grid-template-columns: minmax(0, 1fr); }
  #panel-programmes .library-exercise-edit-body { padding-left: 0; }
  #panel-programmes .library-exercise-row > summary { gap: 8px; }
}

/* Client training keeps the published plan separate from the editing copy. */
#panel-workouts .workout-publish-steps { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 18px; padding: 0; list-style: none; color: var(--muted); font-size: 11px; }
#panel-workouts .plan-session-editor { display: block; padding: 0; margin-bottom: 16px; border: 0; }
#panel-workouts .plan-session-tab { flex-basis: 144px; min-height: 54px; padding: 9px 12px; }
#panel-workouts .workout-draft-options { border-bottom: 0; padding: 0; }
#panel-workouts .workout-draft-options > summary { justify-content: flex-start; gap: 10px; font-size: 12px; color: var(--muted); }
#panel-workouts .workout-draft-options > button { margin: 8px 0; }
#panel-workouts .library-exercise-edit-body .plan-field-help { margin: 0; }
#panel-workouts .library-session-identity { align-items: flex-start; }
#panel-workouts :is([data-remove-plan-exercise], [data-remove-plan-session]) { color: #a3342a; }
#panel-workouts .library-exercise-edit-body label { color: var(--muted); font-size: 12px; font-weight: 400; }
@media (max-width: 680px) {
  #panel-workouts .plan-settings { grid-template-columns: minmax(0, 1fr) 80px; align-items: end; gap: 12px; }
  #panel-workouts .library-prescription-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  #panel-workouts :is(.library-effort-fields, .library-session-fields) { grid-template-columns: minmax(0, 1fr); }
  #panel-workouts .library-exercise-edit-body { padding-left: 0; }
  #panel-workouts .library-exercise-row > summary { gap: 8px; }
}

#panel-workouts .workout-current-plan { margin: -8px 0 18px; color: var(--muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
@container client-workspace (max-width: 520px) {
  #panel-clients #panel-workouts .plan-settings { grid-template-columns: minmax(0, 1fr) 80px; }
  #panel-clients #panel-workouts .library-prescription-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #panel-clients #panel-workouts :is(.library-effort-fields, .library-session-fields) { grid-template-columns: minmax(0, 1fr); }
  #panel-clients #panel-workouts .library-exercise-edit-body { padding-left: 0; }
}

/* Mobile working surfaces: wrap tools rather than squeezing their labels. */
@media (max-width: 980px), (pointer: coarse) {
  /* A shared mobile size wins the older panel-specific 12–15px input rules. */
  .dashboard-page :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]), select, textarea) {
    min-width: 0;
    max-width: 100%;
    min-height: 44px;
    font-size: max(16px, 1em) !important;
  }
  .dashboard-page :is(button, .mini-action, .dashboard-link-button, .dashboard-account-link) { min-height: 44px; }
  .dashboard-page :is(.sidebar-close, .dashboard-modal-close) { width: 44px; height: 44px; }
}
@media (max-width: 980px) {
  .dashboard-page.sidebar-open { overflow: hidden; }
  .dashboard-page .dashboard-sidebar { overscroll-behavior-y: contain; padding-bottom: max(20px, env(safe-area-inset-bottom)); }
}
/* Also covers phones in landscape with the software keyboard visible. */
@media (max-width: 980px), (max-height: 600px) {
  .dashboard-page .dashboard-modal { padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom)); }
  .dashboard-page .dashboard-modal-dialog { max-height: calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; }
}
@media (max-width: 700px) {
  .dashboard-page :is(.dashboard-main, .dash-panel, .compact-form, .library-toolbar) { min-width: 0; }
  .dashboard-page :is(.dashboard-topbar, .dashboard-actions, .panel-title-row, .card-head, .analytics-card-head) { flex-wrap: wrap; }
  .dashboard-page :is(.dashboard-topbar, .panel-title-row, .card-head) > div { min-width: 0; }
  .dashboard-page .panel-title-row > .mini-action { flex-shrink: 1; white-space: normal; }
  .dashboard-page :is(.mini-action, .dashboard-link-button, .dashboard-account-link) { white-space: normal; line-height: 1.4; }
  .dashboard-page :is(.client-lead-assignment, .analytics-card-controls) { min-width: 0; max-width: 100%; }
  .dashboard-page :is(.client-lead-name-row, .client-lead-status-row, .assigned-lead-actions, .quick-action-row) { flex-wrap: wrap; }
  .dashboard-page :is(.client-lead-assignment, .dashboard-notice span, [data-workspace-selected-client], .account-email) { overflow-wrap: anywhere; }
  .dashboard-page .dashboard-notice { width: auto; }
  .dashboard-page :is(.library-toolbar, .compact-form.meal-library-form, .admin-assignment-form) { grid-template-columns: minmax(0, 1fr); }
  #panel-exercises .exercise-destination, #panel-meals .editor-client-context { position: static; }
  #panel-meals .week-strip { display: flex; overflow-x: auto; gap: 4px; padding-bottom: 4px; }
  #panel-meals .week-strip button { flex: 1 0 44px; }
  #panel-clients .client-workspace-nav { overflow-x: auto; overscroll-behavior-x: contain; padding-bottom: 4px; }
  #panel-clients .client-workspace-nav button { min-height: 44px; }
  #panel-programmes .library-editor-toolbar { flex-wrap: wrap; }
}
@media (max-width: 380px) {
  .dashboard-page .client-list-table { grid-template-columns: minmax(0, 1fr); }
  #panel-programmes .plan-settings,
  #panel-workouts .plan-settings,
  #panel-clients #panel-workouts .plan-settings { grid-template-columns: minmax(0, 1fr); }
  .dashboard-page .analytics-card-controls { width: 100%; align-items: flex-start; }
  .dashboard-page .analytics-card-select select { max-width: 100%; }
}
@media (max-height: 600px) and (max-width: 980px) {
  #panel-exercises .exercise-draft-items { max-height: none; }
}
