/* Shared controls, responsive refinements and application states. */
.client-row { width:100%; color:var(--ink); text-align:left; }
.action-row { display:flex; flex-wrap:wrap; gap:8px; }
.routine-banner { align-items:flex-start; flex-wrap:wrap; }
.routine-banner > div { min-width:0; }
.routine-banner .action-row { flex-shrink:0; }
.internal-note { text-align:left; margin:20px 0; white-space:pre-wrap; }
.form-error { color:#a41e28; line-height:1.5; font-size:14px; overflow-wrap:anywhere; }
.form-error:empty { display:none; }
.field textarea { font:inherit; min-height:88px; resize:vertical; padding:12px; border:1px solid var(--line); border-radius:12px; }
.field input,.field select,.field textarea { min-width:0; width:100%; }
.prescription-editor { border:1px solid var(--line); border-radius:16px; margin:16px 0; padding:14px; }
.prescription-editor legend { font-weight:700; padding:0 6px; }
.modal { width:min(680px,100%); }
.modal-head h2 { font-size:23px; margin:0; }
.modal-head { margin-bottom:20px; gap:15px; }
.modal-head .icon-btn { flex-shrink:0; }
.exercise-art img,.training-art img { display:block; width:100%; height:100%; object-fit:contain; border-radius:inherit; }
.day-link { width:100%; text-align:left; color:var(--ink); }
.day-link > div { flex:1; }
.session-detail { border-top:1px solid var(--line); padding:14px 0; }
.session-detail > summary { cursor:pointer; font-weight:700; line-height:1.5; }
.session-detail > p { margin:14px 0; color:var(--muted); }
.block { display:block; color:var(--muted); text-align:center; margin-top:5px; }
.offline-banner { background:#fff0d3; color:#6d4510; padding:12px; text-align:center; font-size:13px; }
.is-busy button { cursor:wait; opacity:.7; }
button:disabled { opacity:.5; cursor:default; }
:focus-visible { outline:3px solid #b82d38; outline-offset:3px; }
.training-actions { padding-top:16px; position:sticky; bottom:0; background:var(--paper); padding-bottom:12px; }
.training { gap:0; }
.hero-workout .tag { color:#ff9ba3; }
.hero-workout:after { pointer-events:none; }
.bottom-nav button.active { color:#ffb1b6; background:#302326; }
.btn { min-height:44px; }
.toast { max-width:calc(100vw - 44px); overflow-wrap:anywhere; }
.brand-name { font-family:'Bebas Neue',Impact,sans-serif; }
.report-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.report-help { color:var(--muted); font-size:13px; line-height:1.6; margin:12px 0; }
.client-report { margin-top:28px; }
.client-report > .card-head { margin-bottom:16px; }
.session-chart { display:flex; gap:8px; justify-content:space-between; margin:20px 0 12px; }
.session-column { flex:1; min-width:0; text-align:center; display:flex; flex-direction:column; gap:6px; font-size:13px; }
.session-column small { color:var(--muted); font-size:11px; white-space:nowrap; }
.session-track { height:110px; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; border-bottom:1px solid var(--line); }
.session-bar { flex:none; width:70%; max-width:40px; }
.finished { background:#a32934; }
.unfinished { background:#ddd0d1; }
.chart-legend { display:flex; flex-wrap:wrap; justify-content:center; gap:16px; font-size:12px; color:var(--muted); }
.chart-legend span { display:flex; align-items:center; gap:6px; }
.chart-legend i { display:inline-block; width:12px; height:12px; border-radius:3px; }
.session-meta { display:block; margin-top:6px; font-weight:400; color:var(--muted); }
.session-detail summary { overflow-wrap:anywhere; }
@media(max-width:700px) {
  .report-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .session-chart { gap:4px; }
}
.routine-editor { width:min(880px,100%); }
.editor-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0 0 22px; }
.editor-steps button { background:white; border:1px solid var(--line); border-radius:12px; padding:12px 8px; text-align:left; color:var(--muted); font:inherit; font-size:13px; cursor:pointer; display:flex; align-items:center; gap:8px; }
.editor-steps button span { display:grid; place-items:center; flex-shrink:0; width:25px; height:25px; border-radius:50%; background:var(--paper); font-weight:700; }
.editor-steps [aria-current="step"] { border-color:#a32934; background:#fff6f6; color:#85222b; }
.editor-steps [aria-current="step"] span { background:#85222b; color:white; }
.editor-help { color:var(--muted); font-size:14px; line-height:1.6; margin:12px 0 20px; }
.editor-extra { margin:12px 0; font-size:14px; }
.editor-extra summary { cursor:pointer; color:var(--muted); padding:8px 0; }
.editor-day-heading,.exercise-order { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.editor-day-heading h3 { margin:12px 0; font-size:18px; overflow-wrap:anywhere; }
.prescription-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.prescription-editor { background:white; }
.exercise-order > span { color:var(--muted); font-size:12px; }
.exercise-order .btn { min-width:44px; }
.exercise-picker { border:1px solid var(--line); border-radius:16px; padding:18px; background:white; margin-top:16px; }
.picker-results { max-height:310px; overflow:auto; }
.picker-item { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:12px 0; border-bottom:1px solid var(--line); }
.picker-item > div { min-width:0; overflow-wrap:anywhere; }
.picker-item small { display:block; margin-top:5px; color:var(--muted); }
.picker-item button { flex-shrink:0; }
.editor-review { border-left:3px solid #a32934; background:white; border-radius:12px; padding:18px; margin-bottom:18px; overflow-wrap:anywhere; }
.editor-review h3 { margin:10px 0; font-size:22px; }
.editor-review p { color:var(--muted); line-height:1.6; }
.review-day { border-bottom:1px solid var(--line); padding:8px 0 16px; }
.review-day ul { list-style:none; padding:0; margin:0; }
.review-day li { padding:10px 0; display:grid; gap:5px; }
.review-day li span,.review-day li small { color:var(--muted); }
.assignment-impact { padding:16px; border-radius:12px; background:#f7e9e9; font-size:14px; line-height:1.6; }
.assignment-impact p { margin:6px 0 0; }
.routine-editor footer { position:sticky; bottom:-26px; padding:16px 0; background:var(--paper); border-top:1px solid var(--line); z-index:1; }
@media(max-width:700px) {
  .editor-steps button { flex-direction:column; align-items:flex-start; font-size:12px; }
  .prescription-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .routine-editor footer { bottom:-20px; }
  .routine-editor footer .btn { flex:1; font-size:13px; padding:10px; }
  .exercise-picker { padding:12px; }
}
@media(max-width:700px) {
  .sidebar { display:block; padding:10px 12px; border:0; border-bottom:1px solid var(--line); }
  .nav { display:flex; overflow-x:auto; gap:4px; }
  .nav button { flex:1; flex-shrink:0; font-size:12px; padding:10px 8px; justify-content:center; white-space:nowrap; }
  .page-head { flex-wrap:wrap; gap:15px; }
  .client-profile { grid-template-columns:minmax(0,1fr); }
  .main { min-width:0; }
  .card-head { flex-wrap:wrap; }
  .routine-banner .action-row { flex-shrink:1; }
  .training-art { height:190px; }
  .modal { padding:20px; }
  .modal footer { flex-wrap:wrap; }
  .form-grid { grid-template-columns:minmax(0,1fr); }
  .topbar { gap:12px; }
}
