:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #18201d;
  background: #f2f0ea;
  line-height: 1.45;
  font-synthesis: none;
  --surface: #fffdf8;
  --surface-2: #ece9df;
  --ink: #18201d;
  --muted: #69726d;
  --border: rgba(24, 32, 29, .11);
  --shadow: 0 16px 45px rgba(32, 37, 33, .07);
  --accent: #315c4d;
  --accent-dark: #244639;
  --warning: #7d5b16;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 0 0, #f7f5ee 0, #f2f0ea 42%, #ebe9e1 100%); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.topbar { padding: 30px clamp(20px, 4vw, 56px); display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; border-bottom: 1px solid var(--border); background: rgba(255,253,248,.76); backdrop-filter: blur(12px); position: sticky; top: 0; z-index: 5; }
.topbar h1, h2 { margin: 4px 0 0; letter-spacing: -.02em; }
h1 { font-size: clamp(1.65rem, 2vw, 2.2rem); }
h2 { font-size: 1.15rem; }
.eyebrow { margin: 0; font-size: .72rem; letter-spacing: .16em; font-weight: 800; color: var(--accent); text-transform: uppercase; }
.container { width: min(1320px, calc(100% - 32px)); margin: 30px auto 70px; display: grid; gap: 20px; }
.hero-grid, .metrics-grid, .dashboard-grid { display: grid; gap: 20px; }
.hero-grid { grid-template-columns: 1.7fr 1fr 1fr; }
.dashboard-grid { grid-template-columns: 1fr 1fr; }
.metrics-grid { grid-template-columns: repeat(4, 1fr); }
.card { background: rgba(255,253,248,.9); border: 1px solid var(--border); border-radius: 20px; box-shadow: var(--shadow); }
.hero-card, .quick-card, .section-card, .metric { padding: 24px; }
.hero-card { display:flex; align-items:center; justify-content:space-between; min-height: 170px; }
.quick-card { display:flex; flex-direction:column; justify-content:center; min-height: 170px; }
.quick-label { color: var(--muted); font-size: .8rem; margin-bottom: 8px; text-transform: uppercase; letter-spacing: .08em; }
.hero-metric { font-size: 3rem; font-weight: 800; white-space: nowrap; }
.hero-metric small { font-size: 1rem; color: var(--muted); }
.muted { color: var(--muted); }
.status-pill { display:inline-flex; padding: 7px 11px; border-radius: 999px; font-size:.78rem; font-weight:700; align-items:center; }
.status-pill.pending { background:#eee9dc; color:#6d6556; }
.status-pill.ok { background:#dfece4; color:#315c4d; }
.status-pill.bad { background:#f0dddd; color:#7a3d3d; }
.topbar-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.button { border: 1px solid transparent; border-radius: 12px; padding: 11px 15px; font-weight: 750; transition: transform .12s ease, opacity .12s ease; }
.button:hover { transform: translateY(-1px); }
.button.primary { background: var(--accent); color: white; }
.button.primary:hover { background: var(--accent-dark); }
.button.secondary { background: var(--surface-2); color: var(--ink); border-color: var(--border); }
.button.ghost { background: transparent; border-color: var(--border); color: var(--ink); }
.section-heading { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom: 20px; }
.form-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
label { display:grid; gap:7px; font-size:.84rem; font-weight:700; color:#3a4540; }
input, select, textarea { width:100%; border:1px solid rgba(24,32,29,.14); background:#fbfaf6; color:var(--ink); padding:11px 12px; border-radius:11px; outline:none; }
input:focus, select:focus, textarea:focus { border-color: rgba(49,92,77,.52); box-shadow: 0 0 0 3px rgba(49,92,77,.10); }
.full-width { grid-column:1/-1; }
.form-actions { display:flex; justify-content:flex-end; }
.metrics-grid .metric { display:grid; gap:6px; }
.metric > span { color:var(--muted); font-size:.8rem; text-transform:uppercase; letter-spacing:.07em; }
.metric strong { font-size:2rem; letter-spacing:-.03em; }
.metric small, .macro small { color:var(--muted); }
.macro-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.macro { background:#f0eee7; border:1px solid var(--border); border-radius:15px; padding:17px; display:grid; gap:5px; }
.macro span { color:var(--muted); font-size:.84rem; }
.macro strong { font-size:1.45rem; }
.warnings { margin-top:16px; display:grid; gap:8px; }
.warning { padding:11px 13px; border-radius:12px; background:#f6eedc; color:var(--warning); font-size:.84rem; }
.data-list { margin:0; display:grid; gap:12px; }
.data-list div { display:flex; justify-content:space-between; gap:18px; padding-bottom:10px; border-bottom:1px dashed var(--border); }
.data-list div:last-child { border-bottom:none; }
dt { color:var(--muted); }
dd { margin:0; font-weight:700; text-align:right; }
.note { margin-top:17px; font-size:.8rem; }
.user-id-row { display:flex; gap:10px; align-items:end; flex-wrap:wrap; }
.user-id-row label { flex:1 1 190px; }
.message { min-height:22px; margin:12px 0 0; font-size:.9rem; }
.message.error { color:#8a4242; }
.message.success { color:#315c4d; }
.compact { padding-bottom:20px; }
.footer { padding:0 20px 40px; text-align:center; color:var(--muted); font-size:.8rem; }
@media (max-width: 980px) { .hero-grid, .dashboard-grid { grid-template-columns: 1fr; } .metrics-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width: 640px) { .topbar { position:static; flex-direction:column; } .topbar-actions { width:100%; justify-content:space-between; } .container { width:min(100% - 20px, 1320px); margin-top:15px; } .form-grid, .macro-grid, .metrics-grid { grid-template-columns:1fr; } .hero-card { align-items:flex-start; flex-direction:column; gap:20px; } .hero-metric { font-size:2.4rem; } }

.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%);background:var(--card,#fff);border:1px solid #ddd;border-radius:20px;padding:32px;box-shadow:0 16px 50px rgba(0,0,0,.08)}.admin-list,.audit-list{display:grid;gap:10px;margin-top:18px}.admin-row,.audit-row{display:grid;grid-template-columns:1.4fr 1fr .7fr auto;gap:12px;align-items:center;padding:12px;border:1px solid #e5e5e5;border-radius:12px}.audit-row{grid-template-columns:1fr 1fr 1fr 1fr;font-size:.9rem}

.client-list{display:grid;gap:8px}.client-row{display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;border:1px solid var(--line,#ddd);background:transparent;padding:12px 14px;border-radius:12px;cursor:pointer;color:inherit}.client-row:hover{transform:translateY(-1px)}.client-row>div{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.client-row span{font-size:.86rem;opacity:.72}.assignment-row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}.assignment-row input{max-width:180px;padding:9px;border-radius:8px;border:1px solid var(--line,#ddd);background:inherit;color:inherit}

.stage-editor{display:flex;gap:10px;align-items:end;margin:14px 0;flex-wrap:wrap}.stage-editor label{display:grid;gap:6px}.stage-editor select{min-width:220px;padding:9px;border-radius:8px;border:1px solid var(--line,#ddd);background:inherit;color:inherit}
.portfolio-grid { align-items: stretch; }
.client-list { max-height: 360px; overflow:auto; }
.followup-timeline { display:grid; gap:9px; }
.followup-row { display:grid; grid-template-columns: 1fr 1.4fr; gap:18px; width:100%; text-align:left; border:1px solid var(--border); background:#fbfaf6; padding:13px 15px; border-radius:13px; color:var(--ink); }
.followup-row:hover { border-color:rgba(49,92,77,.35); background:#f5f3ec; }
.followup-row>div { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.followup-row span { color:var(--muted); font-size:.82rem; }
.followup-detail { margin-top:16px; padding:16px; border-top:1px solid var(--border); }
.followup-detail-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.followup-detail-grid>div { display:grid; gap:5px; }
.followup-detail-grid span { color:var(--muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; }
.followup-detail-grid p { margin:0; white-space:pre-wrap; }
@media (max-width:640px){.followup-row,.followup-detail-grid{grid-template-columns:1fr}.followup-detail-grid .full-width{grid-column:auto}}

.catalog-toolbar{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:14px}.exercise-catalog{display:grid;gap:8px;max-height:620px;overflow:auto}.exercise-row{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--border);background:#fbfaf6;padding:12px 14px;border-radius:12px}.exercise-row>div:first-child{display:grid;gap:4px}.exercise-row span{font-size:.82rem;color:var(--muted)}.exercise-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.exercise-actions a{text-decoration:none}.owner-tools{margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}
@media(max-width:640px){.catalog-toolbar{grid-template-columns:1fr}.exercise-row{align-items:flex-start;flex-direction:column}.exercise-actions{width:100%}}


.dashboard-caption{margin:6px 0 0}.chart-selector{min-width:210px}.chart-selector select{margin-top:6px}.evolution-dashboard-card{overflow:hidden}.evolution-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:4px 0 18px}.dashboard-kpi{padding:16px;border:1px solid var(--border);border-radius:15px;background:#000000;display:grid;gap:5px}.dashboard-kpi span{font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.dashboard-kpi strong{font-size:1.5rem;letter-spacing:-.03em}.dashboard-kpi small{color:var(--muted)}.chart-wrap{border:1px solid var(--border);border-radius:17px;background:#211b09c7;padding:12px;overflow:auto}.evolution-chart{display:block;width:100%;min-width:700px;height:auto}.chart-grid-line{stroke:rgba(24,32,29,.09);stroke-width:1}.chart-axis-line{stroke:rgba(24,32,29,.18);stroke-width:1}.chart-axis-text{fill:var(--muted);font-size:12px}.chart-line{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.chart-point{fill:var(--surface);stroke:var(--accent);stroke-width:3}.chart-meta{padding:11px 4px 0;font-size:.82rem}.dashboard-empty{padding:22px;border:1px dashed var(--border);border-radius:14px;color:var(--muted)}
@media (max-width:980px){.evolution-kpis{grid-template-columns:repeat(2,1fr)}.section-heading .chart-selector{min-width:180px}}
@media (max-width:640px){.evolution-kpis{grid-template-columns:1fr}.section-heading .chart-selector{width:100%}}

.training-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:24px}.routine-list,.routine-exercises{display:grid;gap:9px;margin-top:18px}.routine-row,.routine-exercise-row{border:1px solid var(--border);background:#000000;border-radius:13px;padding:13px 15px}.routine-row{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;cursor:pointer}.routine-row.active{border-color:rgba(49,92,77,.5);box-shadow:0 0 0 2px rgba(49,92,77,.08)}.routine-row>div,.routine-exercise-main{display:grid;gap:4px}.routine-row span,.routine-exercise-meta{font-size:.82rem;color:var(--muted)}.routine-exercise-row{display:grid;grid-template-columns:1fr auto;gap:14px}.routine-exercise-main strong{font-size:1rem}.routine-exercise-meta{display:flex;gap:10px;flex-wrap:wrap}.routine-exercise-actions{display:flex;align-items:center;gap:8px}.routine-empty{padding:18px;border:1px dashed var(--border);border-radius:13px;color:var(--muted)}
@media(max-width:980px){.training-grid{grid-template-columns:1fr}}@media(max-width:640px){.routine-exercise-row{grid-template-columns:1fr}.routine-exercise-actions{justify-content:flex-start}}

.macro-reference{font-size:.82rem;opacity:.82;margin-top:.45rem}

.nutrition-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 18px;border-bottom:1px solid var(--border);padding-bottom:10px}.nutrition-tab{border:1px solid var(--border);background:transparent;color:var(--ink);padding:9px 13px;border-radius:10px;font-weight:750;cursor:pointer}.nutrition-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.nutrition-panel[hidden]{display:none}.nutrition-toolbar{grid-template-columns:2fr 1fr auto;align-items:end}.nutrition-catalog{display:grid;gap:8px;max-height:560px;overflow:auto}.nutrition-food-row,.nutrition-supplement-row{display:grid;grid-template-columns:1.2fr 1.8fr;gap:18px;border:1px solid var(--border);background:#494317;padding:13px 15px;border-radius:13px}.nutrition-food-row>div:first-child,.nutrition-supplement-row>div:first-child{display:grid;gap:5px}.nutrition-food-row span,.nutrition-supplement-row span{font-size:.82rem;color:var(--muted)}.nutrition-food-macros{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}.nutrition-food-macros b{font-size:1rem}.nutrition-reference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nutrition-reference-card{border:1px solid var(--border);background:#fbfaf6;padding:14px;border-radius:13px;display:grid;gap:7px}.nutrition-ref-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.nutrition-ref-head span{font-size:.82rem;color:var(--muted)}.nutrition-reference-card p{margin:0;font-size:.86rem;line-height:1.45}.nutrition-reference-card small{color:var(--muted);line-height:1.45}.supplement-detail{display:grid;gap:5px;font-size:.84rem}@media(max-width:760px){.nutrition-toolbar,.nutrition-reference-grid{grid-template-columns:1fr}.nutrition-food-row,.nutrition-supplement-row{grid-template-columns:1fr}.nutrition-food-macros{justify-content:flex-start}.nutrition-ref-head{align-items:flex-start;flex-direction:column}}
.recommended-block{margin-top:24px;padding-top:22px;border-top:1px solid var(--border)}.compact-heading{margin-bottom:14px}.recommendation-summary{padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:#000000;margin-bottom:14px}.recommendation-context{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.recommendation-context span{color:var(--muted);font-size:.84rem}.recommendation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.recommendation-column{display:grid;gap:8px;align-content:start}.recommendation-column h4{margin:4px 0}.recommendation-card{border:1px solid var(--border);background:#fbfaf6;border-radius:13px;padding:13px 14px;display:grid;gap:7px}.recommendation-card>div{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.recommendation-card span{font-size:.8rem;color:var(--muted)}.recommendation-card p{margin:0;font-size:.84rem;line-height:1.4}.recommendation-card small{color:var(--muted);line-height:1.4}.routine-recommendation-card{grid-column:span 1}.nutrition-smart-block{margin-top:24px}.nutrition-smart-block .recommendation-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:980px){.recommendation-grid,.nutrition-smart-block .recommendation-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.recommendation-grid,.nutrition-smart-block .recommendation-grid{grid-template-columns:1fr}.compact-heading{align-items:flex-start}}

.science-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.science-card{padding:16px;border:1px solid var(--border,#2b3440);border-radius:14px;background:var(--panel,#111820)}.science-card span,.science-card small{display:block;color:var(--muted,#94a3b8)}.science-card strong{display:block;font-size:1.7rem;margin:6px 0}.science-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}.science-zones{display:grid;gap:8px}.science-zone{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border,#2b3440);border-radius:10px}.science-note{margin-top:14px;padding:12px 14px;border-radius:10px;background:rgba(127,127,127,.08)}
@media(max-width:900px){.science-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.science-grid{grid-template-columns:1fr}}

.execution-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:24px}.execution-exercises{display:grid;gap:12px;margin:18px 0}.execution-exercise{border:1px solid var(--border);background:#fbfaf6;border-radius:14px;padding:14px}.execution-exercise-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.execution-exercise-head>div{display:grid;gap:4px}.execution-exercise-head span{font-size:.82rem;color:var(--muted)}.execution-set-grid{overflow:auto}.execution-set-header,.execution-set-row{display:grid;grid-template-columns:55px 60px repeat(4,minmax(70px,1fr));gap:8px;align-items:center;min-width:500px}.execution-set-header{padding:0 4px 6px;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}.execution-set-row{padding:6px 4px;border-top:1px solid var(--border)}.execution-set-row input[type=number]{width:100%;box-sizing:border-box}.execution-set-row input[type=checkbox]{justify-self:center;width:18px;height:18px}.execution-history{display:grid;gap:9px;max-height:620px;overflow:auto}.execution-history-row{border:1px solid var(--border);background:#fbfaf6;border-radius:13px;padding:13px 14px;display:grid;gap:7px}.execution-history-row>div{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.execution-history-row span,.execution-history-row small{color:var(--muted);font-size:.82rem}.execution-history-row strong{font-size:1rem}@media(max-width:980px){.execution-grid{grid-template-columns:1fr}}@media(max-width:640px){.execution-exercise-head{flex-direction:column}.execution-history-row>div{display:grid;gap:4px}}

.photo-progress-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.photo-upload-note{padding:10px 12px;border:1px dashed var(--border);border-radius:12px;color:var(--muted);font-size:.82rem}.photo-compare-controls{margin-bottom:12px}.photo-compare-empty{border:1px dashed var(--border);border-radius:14px;padding:22px}.photo-compare-header{display:flex;justify-content:center;gap:12px;align-items:center;color:var(--muted);margin-bottom:12px}.photo-compare-grid{display:grid;grid-template-columns:1fr;gap:12px}.photo-compare-card{border:1px solid var(--border);background:#fbfaf6;border-radius:14px;padding:12px}.photo-compare-card h4{margin:0 0 10px}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.photo-pair>div{min-height:180px;border:1px solid var(--border);border-radius:10px;background:#f0eee7;display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:.8rem}.photo-pair img{display:block;width:100%;height:260px;object-fit:cover}.photo-history{display:grid;gap:12px}.photo-history-row{border:1px solid var(--border);background:#fbfaf6;border-radius:14px;padding:14px}.photo-history-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.photo-history-head>div{display:grid;gap:4px}.photo-history-head span,.photo-history-head small{font-size:.82rem;color:var(--muted)}.photo-history-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.photo-history-thumbs img,.photo-thumb-empty{width:100%;height:180px;object-fit:cover;border-radius:10px;border:1px solid var(--border);background:#f0eee7}.photo-thumb-empty{display:grid;place-items:center;text-align:center;color:var(--muted);font-size:.78rem}@media(max-width:900px){.photo-progress-grid{grid-template-columns:1fr}}@media(max-width:640px){.photo-pair{grid-template-columns:1fr}.photo-pair img,.photo-history-thumbs img,.photo-thumb-empty{height:220px}.photo-history-thumbs{grid-template-columns:1fr}.photo-history-head{display:grid}}

.integrated-dashboard{margin-top:18px}.integrated-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:8px 0 18px}.integrated-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dashboard-panel{border:1px solid var(--border);border-radius:16px;padding:16px;background:var(--surface)}.dashboard-wide{grid-column:1/-1}.panel-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-heading h3{margin:0 0 3px}.mini-charts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-chart-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.mini-chart-title span{font-size:.82rem;color:var(--muted)}.mini-charts svg{display:block;width:100%;height:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px}.dashboard-chart-empty{fill:var(--muted);font-size:14px}.dashboard-detail{display:grid;gap:12px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.detail-grid>div{padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.detail-grid span{display:block;color:var(--muted);font-size:.78rem}.detail-grid strong{display:block;margin-top:4px}.dashboard-list{display:grid;gap:7px;margin-top:12px}.dashboard-list>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--border)}.dashboard-list span{color:var(--muted);font-size:.82rem;text-align:right}.status-readout{display:grid;gap:8px}.status-line{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.status-line>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--border);font-weight:700;font-size:.78rem}.status-line p{margin:2px 0;font-size:.88rem;line-height:1.45}.integrated-dashboard .dashboard-kpi{background:var(--surface)}
@media(max-width:980px){.integrated-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.mini-charts{grid-template-columns:1fr}.integrated-grid{grid-template-columns:1fr}.dashboard-wide{grid-column:auto}}
@media(max-width:640px){.integrated-kpis{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.dashboard-list>div{display:grid}.dashboard-list span{text-align:left}}

.recommendation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:14px}.recommendation-card{border:1px solid var(--border,#ddd);border-radius:14px;padding:16px;background:var(--card,#fff)}.metric-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.metric-row span{font-size:.85rem;padding:7px 9px;border-radius:9px;background:var(--surface,#f5f5f5)}

/* Workflow navigation and phased information architecture */
.workflow-nav {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 0 24px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  backdrop-filter: blur(12px);
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.workflow-nav-title {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-right: 4px;
}
.workflow-nav-link {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--text);
  text-decoration: none;
  font-size: .84rem;
  font-weight: 700;
  background: var(--surface-2, var(--surface));
}
.workflow-nav-link:hover { transform: translateY(-1px); }
.workflow-section {
  margin: 0 0 28px;
  scroll-margin-top: 84px;
}
.workflow-phase-heading {
  margin: 6px 4px 14px;
}
.workflow-phase-heading h2 {
  margin: 2px 0 5px;
  font-size: 1.45rem;
}
.workflow-phase-heading p.muted {
  margin: 0;
  max-width: 900px;
}
.workflow-section > .workflow-anchor,
.workflow-section > .section-card,
.workflow-section > .dashboard-grid,
.workflow-section > .metrics-grid {
  scroll-margin-top: 88px;
}
.workflow-anchor { margin-bottom: 18px; }
.workflow-anchor:last-child { margin-bottom: 0; }
.progression-card { margin-top: 0; }
@media (max-width: 760px) {
  .workflow-nav { position: static; overflow-x: auto; flex-wrap: nowrap; }
  .workflow-nav-title { flex: 0 0 auto; }
  .workflow-nav-link { flex: 0 0 auto; }
  .workflow-section { margin-bottom: 22px; }
}

/* =========================================================
   ALVIS BROTHERS SKIN — conserva la geometría de la versión
   ordenada: mismas cajas, márgenes, grids y espaciados.
   Solo transforma identidad, contraste y superficies.
   ========================================================= */
:root{
  --ab-black:#070909;
  --ab-deep:#0b0f10;
  --ab-panel:#101617;
  --ab-panel-2:#151b1c;
  --ab-gold:#d4af37;
  --ab-gold-light:#efd28a;
  --ab-text:#f2f0e9;
  --ab-muted:#a9aaa4;
  --ab-green:#53d28a;
  --ab-red:#e47b7b;
  --ab-line:rgba(212,175,55,.24);
  --ab-line-soft:rgba(255,255,255,.09);
  --surface:var(--ab-panel);
  --surface-2:var(--ab-panel-2);
  --ink:var(--ab-text);
  --muted:var(--ab-muted);
  --border:var(--ab-line-soft);
  --accent:var(--ab-gold);
  --accent-dark:#b89324;
  --warning:var(--ab-gold-light);
  --shadow:0 16px 45px rgba(0,0,0,.28);
}

body{
  color:var(--ab-text);
  background:
    radial-gradient(circle at 85% 0%,rgba(212,175,55,.055),transparent 30%),
    linear-gradient(180deg,#070909 0%,#0b0f10 48%,#080b0c 100%);
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background:linear-gradient(90deg,rgba(212,175,55,.018),transparent 18%,transparent 82%,rgba(212,175,55,.018));
}

.topbar{
  background:rgba(7,9,9,.90);
  border-bottom-color:var(--ab-line);
}
.topbar h1,h2{color:var(--ab-text)}
.eyebrow{color:var(--ab-gold)}
.muted{color:var(--ab-muted)!important}

a{color:var(--ab-gold-light)}

.card{
  background:rgba(16,22,23,.94);
  border-color:var(--ab-line-soft);
  box-shadow:var(--shadow);
}
.hero-card,.quick-card,.section-card,.metric{background:rgba(16,22,23,.94)}
.quick-label{color:var(--ab-muted)}
.hero-metric{color:var(--ab-gold-light)}
.hero-metric small{color:var(--ab-muted)}

.status-pill.pending{background:rgba(212,175,55,.12);color:var(--ab-gold-light)}
.status-pill.ok{background:rgba(83,210,138,.12);color:var(--ab-green)}
.status-pill.bad{background:rgba(228,123,123,.12);color:var(--ab-red)}

.button.primary{
  background:linear-gradient(135deg,#d4af37,#b89324);
  color:#10100c;
  border-color:rgba(239,210,138,.45);
}
.button.primary:hover{background:linear-gradient(135deg,#efd28a,#d4af37)}
.button.secondary{
  background:var(--ab-panel-2);
  color:var(--ab-text);
  border-color:var(--ab-line-soft);
}
.button.ghost{
  background:transparent;
  color:var(--ab-text);
  border-color:var(--ab-line-soft);
}

label{color:#d6d4cc}
input,select,textarea{
  background:#0b1011;
  color:var(--ab-text);
  border-color:rgba(255,255,255,.12);
}
input::placeholder,textarea::placeholder{color:#70746f}
input:focus,select:focus,textarea:focus{
  border-color:rgba(212,175,55,.60);
  box-shadow:0 0 0 3px rgba(212,175,55,.10);
}

.metric > span,.metric small,.macro small,dt{color:var(--ab-muted)}
.metric strong{color:var(--ab-text)}
.macro{
  background:rgba(21,27,28,.95);
  border-color:var(--ab-line-soft);
}
.macro span{color:var(--ab-muted)}
.macro strong{color:var(--ab-gold-light)}
.warning{background:rgba(212,175,55,.10);color:var(--ab-gold-light)}
.data-list div{border-bottom-color:rgba(255,255,255,.10)}
dd{color:var(--ab-text)}
.note{background:rgba(212,175,55,.06);border-color:var(--ab-line-soft)!important}

.message.error{background:rgba(228,123,123,.10);color:#f0aaaa}
.message.success{background:rgba(83,210,138,.10);color:var(--ab-green)}

.client-list,.catalog-toolbar,.dashboard-caption,.training-grid,.macro-reference,.nutrition-tabs,
.recommended-block,.science-summary-grid,.execution-grid,.photo-progress-grid,.integrated-dashboard,
.recommendation-grid{color:var(--ab-text)}

.client-list > *,
.followup-row,
.catalog-toolbar,
.recommendation-card,
.execution-exercise,
.execution-history-row,
.photo-history-row,
.photo-compare-card,
.dashboard-panel,
.detail-grid>div,
.status-line,
.science-card,
.science-zone,
.routine-recommendation-card{
  background:rgba(15,21,22,.92)!important;
  border-color:var(--ab-line-soft)!important;
}

.followup-row:hover{background:rgba(212,175,55,.055)!important}
.followup-row span,.followup-detail-grid span,.execution-history-row span,.execution-history-row small,
.photo-history-head span,.photo-history-head small,.science-card span,.science-card small,
.recommendation-card span,.recommendation-card small,.metric-row span{color:var(--ab-muted)}
.followup-detail-grid>div,.detail-grid>div{background:rgba(21,27,28,.72)!important}

.catalog-toolbar input,.catalog-toolbar select{background:#0b1011}
.dashboard-caption{color:var(--ab-muted)}

.workflow-nav{
  background:rgba(11,15,16,.94);
  border-color:var(--ab-line-soft);
  box-shadow:0 8px 24px rgba(0,0,0,.22);
}
.workflow-nav-link{
  background:rgba(21,27,28,.92);
  color:var(--ab-text);
  border-color:var(--ab-line-soft);
}
.workflow-nav-link:hover{
  color:var(--ab-gold-light);
  border-color:var(--ab-line);
}
.workflow-nav-title{color:var(--ab-muted)}
.workflow-phase-heading{border-left:2px solid rgba(212,175,55,.45);padding-left:14px}

/* Login — misma tarjeta/medidas, nueva identidad */
.login-screen{
  background:
    linear-gradient(180deg,rgba(5,7,7,.70),rgba(5,7,7,.94)),
    url('assets/fondo-gym.png') center/cover fixed;
}
.login-card{
  background:rgba(9,12,12,.93);
  border-color:var(--ab-line);
  box-shadow:var(--shadow);
}
.brand-mark img,.brand-header-logo img{
  filter:drop-shadow(0 7px 16px rgba(212,175,55,.16));
}
.brand-divider{color:#777a75}
.brand-divider span{background:linear-gradient(90deg,transparent,var(--ab-line))}
.brand-divider span:last-child{background:linear-gradient(90deg,var(--ab-line),transparent)}
.brand-divider b{color:#a7a59b}
.brand-motto{color:#8f928d}

/* Tables */
.table-wrap{border-color:var(--ab-line-soft)!important}
table{color:var(--ab-text)}
thead{background:rgba(21,27,28,.95)!important}
th{color:var(--ab-gold-light)!important}
td{border-color:rgba(255,255,255,.07)!important}
tr:nth-child(even){background:rgba(255,255,255,.018)}

/* Small visual accents without altering geometry */
.progression-card{border-top-color:rgba(212,175,55,.35)!important}
.metric-row span{background:rgba(21,27,28,.90)!important;border:1px solid var(--ab-line-soft)}

@media(max-width:760px){
  .workflow-nav{background:rgba(11,15,16,.97)}
}

/* Fix de marca: el logo AB es un lienzo cuadrado grande; nunca debe crecer al tamaño natural. */
.brand-mark{
  width:120px;
  height:120px;
  margin:0 auto 14px;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.brand-mark img{
  display:block;
  width:100%;
  height:100%;
  max-width:120px;
  max-height:120px;
  object-fit:contain;
}
.brand-header-logo{
  width:58px;
  height:58px;
  flex:0 0 58px;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.brand-header-logo img{
  display:block;
  width:100%;
  height:100%;
  max-width:58px;
  max-height:58px;
  object-fit:contain;
}
.brand-header{display:flex;align-items:center;gap:14px;min-width:0}
@media(max-width:640px){
  .brand-mark{width:100px;height:100px}
  .brand-mark img{max-width:100px;max-height:100px}
  .brand-header-logo{width:48px;height:48px;flex-basis:48px}
  .brand-header-logo img{max-width:48px;max-height:48px}
}

/* Catálogos sobre fondo oscuro: mejora de contraste en la interfaz Alvis Brothers. */
.exercise-row{background:#050708!important;color:var(--ab-text);border-color:var(--ab-line-soft)!important}
.exercise-row strong,.nutrition-reference-card strong{color:var(--ab-text)}
.exercise-row span,.nutrition-reference-card span,.nutrition-reference-card small{color:var(--ab-muted)}
.nutrition-reference-card{background:#050708!important;color:var(--ab-text);border-color:var(--ab-line-soft)!important}
.exercise-catalog,.nutrition-reference-grid{background:#000;border:1px solid var(--ab-line-soft);border-radius:14px;padding:10px}
.exercise-row.has-video{border-left:4px solid #b58a2b}.exercise-row.needs-video{border-left:4px solid #b85b5b}.exercise-main{min-width:0;display:grid;gap:4px}.video-status-btn{text-decoration:none!important;font-weight:800}.video-status-btn.has-video{background:#c8a24a;color:#161616;border-color:#b18c3c}.video-status-btn.has-video:hover{background:#d5b35f}.video-status-btn.missing{background:#f8e9e9;color:#8d4242;border-color:#e2c4c4}.video-status-btn.missing:hover{background:#f3dddd}.video-edit-btn{background:transparent;border-color:#d7c79f;color:#765c20}.exercise-video-editor{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding-top:10px;border-top:1px dashed var(--border)}.exercise-video-editor[hidden]{display:none}.exercise-video-editor-actions{display:flex;gap:8px;flex-wrap:wrap}.exercise-video-editor label{min-width:0}@media(max-width:640px){.exercise-video-editor{grid-template-columns:1fr}.exercise-video-editor-actions{width:100%}}
.exercise-video-legend{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:2px 0 10px;color:var(--muted);font-size:.78rem;font-weight:700}.exercise-video-legend span{display:inline-flex;align-items:center;gap:7px}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.legend-dot.available{background:#b58a2b}.legend-dot.pending{background:#b85b5b}

.nutrition-food-row small,.recommendation-card small{line-height:1.45}.nutrition-data-fidelity-note{margin-top:14px;padding:11px 13px;border:1px solid var(--ab-line-soft,#333);border-radius:12px;background:#050505;color:var(--ab-muted,#b9b9b9);font-size:.78rem}.nutrition-data-fidelity-note strong{color:#d7b35a}.menu-recommendation-card p{font-size:.9rem}.nutrition-preference-note{margin-top:8px;padding:9px 11px;border-radius:10px;background:#160d0d;border:1px solid #4b2525;color:#f0c8c8;font-size:.8rem}

.client-search-bar { display:flex; gap:12px; align-items:center; margin:0 0 16px; }
.client-search-bar input { flex:1; min-width:220px; }
.client-list { max-height:520px; overflow:auto; display:grid; gap:8px; }
.meal-food-items { display:grid; gap:8px; margin-top:12px; }
.meal-food-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--border); border-radius:12px; background:rgba(255,255,255,.55); }
.meal-food-item > div:first-child { display:grid; gap:2px; }
.meal-food-item > div:first-child span { color:var(--muted); font-size:.78rem; }
.meal-substitute-options { grid-column:1/-1; display:grid; gap:8px; padding-top:2px; }
.meal-options-head { display:flex; justify-content:space-between; gap:10px; padding:8px 0; font-size:.82rem; }
.meal-options-head span { color:var(--muted); }
.meal-option { display:grid; gap:6px; padding:10px 12px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.meal-option > div:first-child { display:flex; justify-content:space-between; gap:12px; }
.meal-option > div:first-child span, .meal-option small { color:var(--muted); font-size:.77rem; }
.meal-option-macros { display:flex; gap:8px; flex-wrap:wrap; font-size:.76rem; }
.meal-option-macros span { padding:4px 7px; background:var(--surface-2); border-radius:999px; }
.meal-option-macros .similarity { font-weight:800; }
.meal-option .delta { font-variant-numeric:tabular-nums; }
@media (max-width: 720px) { .client-search-bar, .meal-option > div:first-child { flex-direction:column; align-items:stretch; } .meal-food-item { grid-template-columns:1fr; } }


/* 028 · Nutrición inteligente: distribución sin solapamientos */
.nutrition-smart-block .recommendation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:start; }
.nutrition-smart-block .menu-recommendation-column { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; min-width:0; }
.nutrition-smart-block .menu-recommendation-column > h4 { grid-column:1/-1; margin:0; }
.nutrition-smart-block .menu-recommendation-column > .nutrition-preference-note { grid-column:1/-1; }
.nutrition-smart-block .menu-recommendation-card, .nutrition-smart-block .nutrition-side-column .recommendation-card { min-width:0; overflow:hidden; }
.nutrition-smart-block .meal-food-item, .nutrition-smart-block .meal-food-item > div:first-child { min-width:0; }
.nutrition-smart-block .meal-food-item > div:first-child strong, .nutrition-smart-block .meal-food-item > div:first-child span { overflow-wrap:anywhere; }
.nutrition-smart-block .meal-food-item .meal-substitute-btn { flex:0 0 auto; white-space:nowrap; }
@media (max-width:980px) { .nutrition-smart-block .recommendation-grid { grid-template-columns:1fr 1fr; } .nutrition-smart-block .menu-recommendation-column { grid-column:1/-1; } }
@media (max-width:680px) { .nutrition-smart-block .recommendation-grid { grid-template-columns:1fr; } .nutrition-smart-block .menu-recommendation-column { grid-template-columns:1fr; } .nutrition-smart-block .menu-recommendation-column > h4, .nutrition-smart-block .menu-recommendation-column > .nutrition-preference-note { grid-column:1; } .nutrition-smart-block .meal-food-item { grid-template-columns:1fr; } .nutrition-smart-block .meal-substitute-btn { width:100%; } }

/* 029 · Centro administrativo ALVIS BROTHERS */
.admin-console{overflow:hidden}.admin-heading{align-items:flex-start}.admin-badge{display:inline-flex;align-items:center;padding:7px 12px;border:1px solid rgba(212,175,55,.45);border-radius:999px;color:#d4af37;font-size:.72rem;font-weight:800;letter-spacing:.14em}.admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.admin-kpi{padding:18px;border:1px solid rgba(212,175,55,.2);border-radius:16px;background:rgba(255,255,255,.035)}.admin-kpi strong{display:block;font-size:1.55rem;margin-top:5px}.admin-kpi small{color:#999}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.1);margin:8px 0 18px;padding-bottom:8px}.admin-tab{border:1px solid transparent;background:transparent;color:#aaa;padding:10px 14px;border-radius:10px;cursor:pointer}.admin-tab:hover,.admin-tab.active{border-color:rgba(212,175,55,.35);color:#d4af37;background:rgba(212,175,55,.07)}.admin-tab-panel{display:none}.admin-tab-panel.active{display:block}.admin-overview-grid,.admin-create-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.admin-summary-card{border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:20px;background:rgba(255,255,255,.025)}.admin-summary-card h3{margin:.25rem 0 .65rem}.global-roster,.admin-mini-list{display:grid;gap:8px;margin-top:14px}.global-person,.admin-mini-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px}.global-person .status-dot{width:8px;height:8px;border-radius:50%;background:#777;display:inline-block;margin-right:7px}.global-person.active .status-dot{background:#d4af37}.admin-coaches-list .admin-row{grid-template-columns:1.3fr 1fr 1.2fr auto}.admin-membership-history{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.membership-chip{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.76rem;border:1px solid rgba(255,255,255,.12)}.membership-chip.current{color:#d4af37;border-color:rgba(212,175,55,.35)}.membership-chip.expired,.membership-chip.blocked{color:#e68a8a}.admin-empty{padding:18px;border:1px dashed rgba(255,255,255,.12);border-radius:12px;color:#999}@media(max-width:900px){.admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-overview-grid,.admin-create-grid{grid-template-columns:1fr}.admin-coaches-list .admin-row{grid-template-columns:1fr}.admin-coaches-list .form-actions{justify-content:flex-start}}@media(max-width:560px){.admin-kpis{grid-template-columns:1fr}.admin-tabs{overflow-x:auto;flex-wrap:nowrap}.admin-tab{white-space:nowrap}}

/* 030 · Informe del cliente: documento imprimible y compartible */
.report-modal[hidden]{display:none}.report-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}.report-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(3px)}.report-modal-card{position:relative;z-index:1;width:min(1080px,96vw);max-height:92vh;overflow:auto;background:#0a0b0c;color:var(--ab-text,#eee);border:1px solid rgba(212,175,55,.28);border-radius:20px;padding:22px;box-shadow:0 25px 80px rgba(0,0,0,.5)}.report-options{display:flex;gap:10px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--ab-line-soft,#292929);border-bottom:1px solid var(--ab-line-soft,#292929);margin:14px 0}.report-options label{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(255,255,255,.08);border-radius:999px;font-size:.8rem}.report-preview{background:#f6f6f3;color:#171717;border-radius:14px;padding:22px;max-height:55vh;overflow:auto}.report-document{max-width:960px;margin:0 auto}.report-document header{border-bottom:2px solid #222;padding-bottom:16px;margin-bottom:18px}.report-document h2,.report-document h3{color:#151515}.report-section{margin:0 0 22px;break-inside:avoid}.report-section h3{font-size:1rem;margin:0 0 10px}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.report-grid>div{border:1px solid #ddd;border-radius:9px;padding:10px;background:#fff}.report-grid span{display:block;color:#666;font-size:.72rem}.report-grid strong{display:block;margin-top:4px}.report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.report-metrics span{display:block;padding:10px;background:#e9e9e6;border-radius:9px;font-size:.75rem}.report-metrics strong{display:block;font-size:1rem}.report-menu>div,.report-followups article{border:1px solid #ddd;padding:10px;margin:7px 0;border-radius:9px;background:#fff}.report-menu span,.report-menu small{display:block}.report-followups p{margin:5px 0 0}.report-table-wrap{overflow:auto;margin-top:12px} .report-table-wrap table{width:100%;border-collapse:collapse}.report-table-wrap th,.report-table-wrap td{border-bottom:1px solid #ddd;padding:7px;text-align:left;font-size:.75rem}.report-document footer{border-top:1px solid #ddd;padding-top:10px;color:#666}.report-actions{display:flex;gap:9px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}.report-footnote{margin:10px 0 0;font-size:.75rem}@media(max-width:720px){.report-grid{grid-template-columns:1fr 1fr}.report-metrics{grid-template-columns:1fr 1fr}.report-modal{padding:8px}.report-modal-card{padding:15px}.report-actions .button{width:100%}}
@media print{body>*:not(#clientReportModal){display:none!important}.report-modal{position:static;display:block;padding:0}.report-modal-backdrop,.report-options,.report-actions,.report-footnote,.report-modal-card>.section-heading{display:none!important}.report-modal-card{display:block;width:auto;max-height:none;overflow:visible;background:#fff;color:#111;border:0;box-shadow:none;padding:0}.report-preview{max-height:none;overflow:visible;padding:0;border-radius:0}.report-document{max-width:none}.report-document h2,.report-document h3{color:#111}.report-section{break-inside:avoid}}

/* 037 · Pulido visual del menú + experiencia móvil ALVIS BROTHERS */
/* El contenido de una comida siempre queda anclado arriba aunque la sustitución
   de la columna vecina se expanda. */
.nutrition-smart-block .meal-food-item {
  align-items: start;
  background: rgba(255,255,255,.035);
  border-color: rgba(212,175,55,.16);
}
.nutrition-smart-block .meal-food-item > div:first-child {
  align-self: start;
  padding-top: 2px;
}
.nutrition-smart-block .meal-food-item > div:first-child strong {
  color: var(--ab-text, #eee);
  line-height: 1.25;
}
.nutrition-smart-block .meal-food-item > div:first-child span {
  color: var(--ab-muted, #b9b9b9);
  line-height: 1.35;
}
.nutrition-smart-block .meal-substitute-btn {
  align-self: start;
  min-height: 38px;
  padding: 8px 12px;
  border-color: rgba(212,175,55,.48) !important;
  background: rgba(212,175,55,.10) !important;
  color: #e4c66f !important;
  font-weight: 800;
  text-shadow: none;
  box-shadow: inset 0 0 0 1px rgba(212,175,55,.05);
}
.nutrition-smart-block .meal-substitute-btn:hover,
.nutrition-smart-block .meal-substitute-btn:focus-visible {
  background: rgba(212,175,55,.20) !important;
  color: #f5d98b !important;
  border-color: rgba(212,175,55,.72) !important;
}
.nutrition-smart-block .meal-substitute-options {
  align-self: start;
  min-width: 0;
  margin-top: 2px;
  padding: 10px;
  border: 1px solid rgba(212,175,55,.16);
  border-radius: 12px;
  background: rgba(0,0,0,.24);
}
.nutrition-smart-block .meal-options-head {
  color: var(--ab-text, #eee);
  border-bottom: 1px solid rgba(255,255,255,.07);
  margin-bottom: 2px;
}
.nutrition-smart-block .meal-option {
  background: #0b0d0e;
  border-color: rgba(255,255,255,.09);
  color: var(--ab-text, #eee);
}
.nutrition-smart-block .meal-option > div:first-child strong {
  color: #eee;
}
.nutrition-smart-block .meal-option > div:first-child span,
.nutrition-smart-block .meal-option small {
  color: #aaa;
}
.nutrition-smart-block .meal-option-macros span {
  background: rgba(212,175,55,.08);
  color: #d9c58d;
}

/* Mobile-first refinamiento global: no es un simple escalado de escritorio. */
@media (max-width: 760px) {
  body {
    overflow-x: hidden;
  }
  .topbar {
    padding: 14px 14px 12px;
    gap: 12px;
    position: sticky;
    top: 0;
    z-index: 20;
  }
  .topbar h1 { font-size: 1.35rem; }
  .topbar-actions {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .topbar-actions .button { width: 100%; min-height: 42px; }
  .container {
    width: min(100% - 18px, 1320px);
    margin: 12px auto 44px;
    gap: 12px;
  }
  .card { border-radius: 16px; }
  .hero-card, .quick-card, .section-card, .metric { padding: 16px; }
  .section-heading {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 14px;
  }
  .section-heading > * { min-width: 0; }
  .section-heading .button,
  .section-heading select { width: 100%; }
  .form-grid,
  .dashboard-grid,
  .training-grid,
  .science-grid,
  .photo-progress-grid,
  .execution-grid,
  .admin-overview-grid,
  .admin-create-grid,
  .integrated-grid {
    grid-template-columns: 1fr !important;
    gap: 12px;
  }
  .metrics-grid,
  .integrated-kpis,
  .evolution-kpis,
  .science-summary-grid,
  .admin-kpis {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 9px;
  }
  .metric { min-width: 0; }
  .metric strong { font-size: 1.55rem; }
  .hero-metric { font-size: 2.25rem; }
  .quick-card { min-height: 125px; }
  .user-id-row,
  .stage-editor,
  .assignment-row,
  .client-search-bar {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .user-id-row label,
  .client-search-bar input { min-width: 0; width: 100%; }
  .button { min-height: 42px; }
  .form-actions { justify-content: stretch; }
  .form-actions .button { width: 100%; }
  .workflow-nav {
    margin: 0 -2px;
    padding: 7px;
    gap: 7px;
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: thin;
  }
  .workflow-nav-link {
    flex: 0 0 auto;
    min-height: 40px;
    padding: 9px 12px;
  }
  .workflow-section { margin-bottom: 16px; }
  .workflow-section > .section-card { padding: 15px; }
  .catalog-toolbar,
  .nutrition-toolbar { grid-template-columns: 1fr !important; }
  .nutrition-reference-grid { grid-template-columns: 1fr; }
  .nutrition-food-row,
  .nutrition-supplement-row { grid-template-columns: 1fr; }
  .nutrition-food-macros { justify-content: flex-start; }
  .recommendation-grid,
  .nutrition-smart-block .recommendation-grid {
    grid-template-columns: 1fr !important;
    gap: 10px;
  }
  .nutrition-smart-block .menu-recommendation-column {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .nutrition-smart-block .menu-recommendation-card {
    padding: 12px;
  }
  .nutrition-smart-block .meal-food-item {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .nutrition-smart-block .meal-substitute-btn {
    width: 100%;
    justify-self: stretch;
  }
  .nutrition-smart-block .meal-substitute-options {
    grid-column: 1;
  }
  .meal-option > div:first-child {
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
  }
  .routine-exercise-row,
  .execution-exercise-head {
    grid-template-columns: 1fr;
  }
  .routine-exercise-actions,
  .exercise-actions {
    width: 100%;
    justify-content: stretch;
  }
  .routine-exercise-actions .button,
  .exercise-actions .button,
  .exercise-actions a { flex: 1 1 100%; text-align: center; }
  .followup-row { grid-template-columns: 1fr; }
  .followup-detail-grid { grid-template-columns: 1fr; }
  .photo-pair { grid-template-columns: 1fr; }
  .photo-history-thumbs { grid-template-columns: 1fr; }
  .photo-history-head { display: grid; gap: 8px; }
  .mini-charts { grid-template-columns: 1fr; }
  .dashboard-wide { grid-column: auto; }
  .dashboard-list > div { display: grid; gap: 4px; }
  .dashboard-list span { text-align: left; }
  .report-modal { padding: 6px; }
  .report-modal-card { width: 100%; max-height: 95vh; border-radius: 16px; padding: 13px; }
  .report-grid,
  .report-metrics { grid-template-columns: 1fr 1fr; }
  .report-actions { display: grid; grid-template-columns: 1fr; }
  .report-actions .button { width: 100%; }
  .admin-tabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: thin; }
  .admin-tab { flex: 0 0 auto; white-space: nowrap; }
  .admin-coaches-list .admin-row { grid-template-columns: 1fr; }
  .admin-coaches-list .form-actions { justify-content: flex-start; }
  .report-table-wrap,
  .execution-set-grid { max-width: 100%; overflow-x: auto; }
}

@media (max-width: 480px) {
  .topbar-actions { grid-template-columns: 1fr; }
  .topbar-actions .button { min-height: 40px; }
  .metrics-grid,
  .integrated-kpis,
  .evolution-kpis,
  .science-summary-grid,
  .admin-kpis,
  .report-grid,
  .report-metrics { grid-template-columns: 1fr; }
  .hero-card, .quick-card, .section-card, .metric { padding: 13px; }
  .hero-metric { font-size: 2rem; }
  .nutrition-smart-block .meal-food-item,
  .nutrition-smart-block .meal-substitute-options { padding-left: 9px; padding-right: 9px; }
  .nutrition-smart-block .meal-food-item > div:first-child span { font-size: .74rem; }
  .workflow-nav-link { font-size: .78rem; }
  .report-preview { padding: 12px; }
}

/* 038 · Menú expandible y responsive de precisión
   El panel de sustituciones acompaña al alimento y, al abrirse, ocupa
   el ancho útil del menú; en móvil se apila debajo sin solapamientos. */
.nutrition-smart-block .menu-recommendation-card {
  min-width: 0;
  box-sizing: border-box;
}

.nutrition-smart-block .menu-recommendation-card:has(.meal-substitute-options:not([hidden])) {
  grid-column: 1 / -1;
}

.nutrition-smart-block .meal-food-item:has(.meal-substitute-options:not([hidden])) {
  grid-template-columns: minmax(0, 1fr) minmax(260px, .92fr);
  align-items: start;
}

.nutrition-smart-block .meal-food-item:has(.meal-substitute-options:not([hidden])) > div:first-child {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  min-width: 0;
}

.nutrition-smart-block .meal-food-item:has(.meal-substitute-options:not([hidden])) > .meal-substitute-btn {
  grid-column: 1;
  grid-row: 2;
  justify-self: start;
  align-self: start;
  width: auto;
}

.nutrition-smart-block .meal-food-item:has(.meal-substitute-options:not([hidden])) > .meal-substitute-options {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: start;
  min-width: 0;
  margin-top: 0;
}

.nutrition-smart-block .meal-substitute-options,
.nutrition-smart-block .meal-option,
.nutrition-smart-block .meal-option > div,
.nutrition-smart-block .meal-option small {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  box-sizing: border-box;
}

.nutrition-smart-block .meal-option > div:first-child {
  display: flex;
  align-items: flex-start;
}

.nutrition-smart-block .meal-option .button,
.nutrition-smart-block .meal-option button {
  flex: 0 0 auto;
}

/* Evita que cualquier hijo rígido provoque desbordamiento horizontal. */
.container,
.card,
.section-card,
.workflow-card,
.recommendation-grid,
.recommendation-column,
.dashboard-grid,
.dashboard-card,
.training-grid,
.execution-grid,
.photo-progress-grid,
.integrated-grid,
.admin-overview-grid,
.admin-create-grid {
  min-width: 0;
}

img,
svg,
video,
canvas {
  max-width: 100%;
}

button,
.button,
input,
select,
textarea {
  box-sizing: border-box;
  max-width: 100%;
}

/* Tablet: reduce densidad antes de llegar al teléfono. */
@media (max-width: 900px) {
  .container {
    width: min(100% - 24px, 1320px);
  }

  .nutrition-smart-block .menu-recommendation-column {
    grid-template-columns: 1fr;
  }

  .nutrition-smart-block .menu-recommendation-card:has(.meal-substitute-options:not([hidden])) {
    grid-column: 1;
  }

  .nutrition-smart-block .meal-food-item:has(.meal-substitute-options:not([hidden])) {
    grid-template-columns: minmax(0, 1fr) minmax(220px, .9fr);
  }

  .admin-row,
  .audit-row {
    min-width: 0;
  }
}

/* Teléfono: una sola columna real; nunca se superponen alimento y alternativas. */
@media (max-width: 680px) {
  .nutrition-smart-block .meal-food-item,
  .nutrition-smart-block .meal-food-item:has(.meal-substitute-options:not([hidden])) {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .nutrition-smart-block .meal-food-item:has(.meal-substitute-options:not([hidden])) > div:first-child,
  .nutrition-smart-block .meal-food-item:has(.meal-substitute-options:not([hidden])) > .meal-substitute-btn,
  .nutrition-smart-block .meal-food-item:has(.meal-substitute-options:not([hidden])) > .meal-substitute-options {
    grid-column: 1;
    grid-row: auto;
  }

  .nutrition-smart-block .meal-food-item:has(.meal-substitute-options:not([hidden])) > .meal-substitute-btn {
    width: 100%;
    justify-self: stretch;
  }

  .nutrition-smart-block .meal-food-item:has(.meal-substitute-options:not([hidden])) > .meal-substitute-options {
    margin-top: 2px;
  }

  .nutrition-smart-block .meal-option > div:first-child {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }

  .nutrition-smart-block .meal-option-macros {
    gap: 5px;
  }

  .nutrition-smart-block .meal-option-macros span {
    max-width: 100%;
  }

  .topbar,
  .container {
    max-width: 100%;
  }

  .card,
  .section-card,
  .hero-card,
  .quick-card,
  .metric {
    overflow: hidden;
  }

  .section-heading h2,
  .section-heading h3,
  .section-heading p {
    overflow-wrap: anywhere;
  }

  .client-row,
  .global-person,
  .admin-mini-row,
  .admin-row,
  .audit-row,
  .routine-row,
  .routine-exercise-row,
  .execution-exercise-head,
  .photo-history-head {
    min-width: 0;
    max-width: 100%;
  }

  .client-row > div,
  .global-person > div,
  .admin-mini-row > div,
  .admin-row > div,
  .audit-row > div {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .client-row,
  .routine-row {
    align-items: flex-start;
  }

  .client-row > div:last-child,
  .routine-row > div:last-child {
    max-width: 100%;
  }

  .exercise-actions,
  .routine-exercise-actions,
  .form-actions,
  .report-actions {
    min-width: 0;
    max-width: 100%;
  }

  .exercise-actions .button,
  .routine-exercise-actions .button,
  .form-actions .button,
  .report-actions .button {
    min-width: 0;
  }
}

/* Teléfonos muy estrechos: conserva legibilidad y evita textos que empujen la tarjeta. */
@media (max-width: 420px) {
  .container {
    width: calc(100% - 14px);
    margin-left: auto;
    margin-right: auto;
  }

  .topbar {
    padding-left: 10px;
    padding-right: 10px;
  }

  .workflow-nav {
    max-width: 100%;
  }

  .workflow-nav-link {
    max-width: 82vw;
  }

  .nutrition-smart-block .meal-food-item,
  .nutrition-smart-block .meal-substitute-options,
  .nutrition-smart-block .meal-option {
    padding-left: 8px;
    padding-right: 8px;
  }

  .nutrition-smart-block .meal-substitute-btn {
    min-height: 40px;
    font-size: .82rem;
  }

  .metric strong,
  .dashboard-kpi strong,
  .admin-kpi strong {
    overflow-wrap: anywhere;
  }
}


/* Seguridad de cuenta */
.security-card{margin:18px auto;max-width:1200px;}
.security-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;}
.security-form .form-actions{align-self:end;}
@media (max-width:900px){.security-form{grid-template-columns:1fr 1fr;}.security-form .form-actions{grid-column:1/-1;}}
@media (max-width:600px){.security-card{margin:12px 10px;}.security-form{grid-template-columns:1fr;}.security-form .form-actions{grid-column:auto;width:100%;}.security-form .button{width:100%;}.admin-row .form-actions{flex-wrap:wrap;}}
