/* Vista para tu coach (2026-10-10): read-only charts (Perfil preview and /fitness/coach/). Forest/mint/lime like Progreso. */
.coach-charts { display:grid; gap:10px; min-width:0; }
.coach-chart { margin:0; min-width:0; padding:12px 12px 8px; border:1px solid #375649; border-radius:14px; color:#f1f8e9; background:radial-gradient(ellipse at 100% 0,#39634a55,transparent 65%),linear-gradient(135deg,#142c26,#1b3830); }
.coach-chart-head { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:8px; }
.coach-chart-head strong { font-size:14px; font-weight:700; color:#f1f8e9; }
.coach-chart-value { display:flex; align-items:baseline; gap:4px; white-space:nowrap; }
.coach-chart-value b { font-size:20px; color:#dcf3ac; font-variant-numeric:tabular-nums; }
.coach-chart-value small, .coach-chart-value em { font-size:11.5px; font-style:normal; color:#bfd2c3; }
.coach-chart-value em { margin-left:4px; padding:1px 6px; border-radius:999px; background:#ffffff12; }
.coach-chart.is-protein .coach-chart-value b { color:#9ed9c5; }
.coach-chart.is-weight .coach-chart-value b { color:#b3c9ff; }
.coach-chart-empty { color:#bfd2c3; }
.coach-plot { display:block; width:100%; height:84px; overflow:visible; }
.coach-base { stroke:#c3d8c522; stroke-width:1; vector-effect:non-scaling-stroke; }
.coach-line { fill:none; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; stroke-dasharray:1; stroke-dashoffset:0; }
.coach-plot-protein .coach-line, .coach-plot-protein .coach-dot { stroke:#9ed9c5; }
.coach-plot-carbs .coach-line, .coach-plot-carbs .coach-dot { stroke:#ffd28a; }
.coach-plot-fat .coach-line, .coach-plot-fat .coach-dot { stroke:#d9b8f4; }
.coach-plot-weight .coach-line, .coach-plot-weight .coach-dot { stroke:#b3c9ff; }
.coach-dot { fill:#19362e; stroke-width:2; vector-effect:non-scaling-stroke; }
.coach-bar { fill:#dcf3ac; transform-box:fill-box; transform-origin:bottom; }
.coach-bar.coach-gym { fill:#9ed9c5; }
.coach-bar.coach-cardio { fill:#b3c9ff; }
.coach-heat { display:grid; grid-template-rows:repeat(7,1fr); grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:3px; max-width:340px; }
.coach-heat[data-rows="1"] { grid-template-rows:1fr; max-width:240px; }
.coach-heat[data-rows="3"] { grid-template-rows:repeat(3,1fr); max-width:none; }
.coach-heat i { display:block; aspect-ratio:1; border-radius:3px; background:#ffffff14; }
.coach-heat i.band-1 { background:#2f6b45 !important; } .coach-heat i.band-2 { background:#6cb555 !important; } .coach-heat i.band-3 { background:#b6ef65 !important; } .coach-heat i.band-0 { background:#ffffff14 !important; }
.coach-chart-key { display:flex; flex-wrap:wrap; align-items:center; gap:5px; margin-top:6px; font-size:11.5px; color:#bfd2c3; }
.coach-chart-key i { width:9px; height:9px; border-radius:3px; margin-left:6px; }
.coach-chart-key i:first-child { margin-left:0; }
.coach-chart-key i.coach-gym { background:#9ed9c5; } .coach-chart-key i.coach-cardio { background:#b3c9ff; }
.coach-chart-axis { display:flex; justify-content:space-between; margin-top:4px; font-size:11px; color:#9fb6a6; }
.coach-charts.is-playing .coach-line { animation:coach-draw 1.1s ease-out both; }
.coach-charts.is-playing .coach-bar { animation:coach-grow .55s calc(var(--i) * 18ms) cubic-bezier(.2,.8,.2,1) both; }
.coach-charts.is-playing .coach-heat i { animation:coach-cell .35s calc(var(--i) * 9ms) ease-out both; }
@keyframes coach-draw { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@keyframes coach-grow { from { transform:scaleY(0); } to { transform:scaleY(1); } }
@keyframes coach-cell { from { opacity:0; transform:scale(.3); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .coach-charts.is-playing * { animation:none !important; } }
/* Compact preview inside Perfil: two columns of small charts. */
.coach-charts.is-compact { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.coach-charts.is-compact .coach-chart { padding:9px 9px 6px; border-radius:12px; }
.coach-charts.is-compact .coach-chart-head { flex-direction:column; align-items:flex-start; gap:0; margin-bottom:4px; }
.coach-charts.is-compact .coach-chart-head strong { font-size:12px; }
.coach-charts.is-compact .coach-chart-value b { font-size:16px; }
.coach-charts.is-compact .coach-plot { height:44px; }
.coach-charts.is-compact :is(.coach-chart-axis, .coach-chart-key) { display:none; }
.coach-frame:not(.is-example) .coach-chart-key { display:flex; }
.coach-charts.is-compact .coach-heat { gap:2px; }

/* Perfil › Vista para tu coach */
.coach-share { margin-top:18px; padding:14px; border:1px solid #dfe8e2; border-radius:16px; background:#fbfcf8; display:grid; gap:12px; min-width:0; }
.coach-share[hidden] { display:none; }
.coach-share h3 { margin:0; font-size:15px; color:#1d4532; }
.coach-share h3:focus { outline:none; }
.coach-frame { position:relative; min-width:0; padding:10px; border-radius:16px; background:#0f231c; box-shadow:0 10px 26px #16432c26; }
.coach-frame .account-story-chip { left:auto; right:12px; }
.coach-frame-top { display:flex; align-items:center; gap:8px; margin:0 2px 10px; color:#f1f8e9; }
.coach-frame-top b { font-size:14px; }
.coach-frame-top small { margin-left:auto; font-size:11.5px; color:#bfd2c3; }
.coach-frame-avatar { width:26px; height:26px; display:grid; place-items:center; border-radius:9px; background:#dcf3ac; color:#163f30; font-size:12px; font-weight:800; }
.coach-pick { display:flex; flex-wrap:wrap; gap:8px; }
.coach-pick-label { margin:0 0 -6px; font-size:13px; font-weight:650; color:#46624f; }
.coach-chip { min-height:44px; padding:0 14px; border:1px solid #cfdcd2; border-radius:999px; background:#fff; color:#28463a; font:inherit; font-size:14px; font-weight:700; cursor:pointer; }
.coach-chip[aria-pressed="true"] { border-color:#163f30; background:#163f30; color:#dcf3ac; }
.coach-chip[aria-pressed="true"]::before { content:'✓ '; }
.coach-create { min-height:48px; border:0; border-radius:13px; background:#28784f; color:#fff; font:inherit; font-size:15px; font-weight:750; cursor:pointer; }
.coach-create:disabled { opacity:.45; cursor:not-allowed; }
.coach-link { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:6px; align-items:center; padding:10px; border:1px dashed #9bbfa8; border-radius:13px; background:#fff; }
.coach-link[hidden] { display:none; }
.coach-link-url { min-width:0; min-height:44px; padding:0 10px; border:1px solid #dfe8e2; border-radius:10px; background:#f6f8ed; color:#1d4532; font:inherit; font-size:13px !important; }
.coach-link button { min-height:44px; padding:0 12px; border:1px solid #cfe0d2; border-radius:10px; background:#fff; color:#1f5a3c; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.coach-link button[hidden] { display:none; }
.coach-link-note { grid-column:1 / -1; font-size:12px; color:#526750; }
.coach-access { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.coach-access[hidden] { display:none; }
.coach-access-row { display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:10px; align-items:center; padding:8px 10px; border:1px solid #e1eadf; border-radius:13px; background:#fff; }
.coach-access-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:#eef4ef; }
.coach-access-copy { display:grid; min-width:0; }
.coach-access-copy strong { font-size:14px; color:#1c4232; overflow-wrap:anywhere; }
.coach-access-copy small { font-size:12px; color:#5b6f61; }
.coach-remove { min-height:44px; min-width:44px; padding:0 12px; border:1px solid #e3d3d1; border-radius:10px; background:#fff; color:#8a3b37; font:inherit; font-size:12.5px; font-weight:700; cursor:pointer; }
.coach-remove.is-armed { border-color:#b34442; background:#b34442; color:#fff; }
.coach-incoming h4 { margin:2px 0 8px; font-size:13px; color:#46624f; }
.coach-incoming-row { display:flex; align-items:center; justify-content:space-between; min-height:48px; padding:0 12px; border:1px solid #e1eadf; border-radius:13px; background:#fff; color:#1c4232; text-decoration:none; }
.coach-incoming-row + .coach-incoming-row { margin-top:6px; }
.coach-incoming-row span { font-size:13px; font-weight:750; color:#28784f; }
.coach-status { margin:0; font-size:12.5px; color:#46624f; }
.coach-status:empty { display:none; }
:is(.coach-chip, .coach-create, .coach-link button, .coach-remove, .coach-incoming-row):focus-visible { outline:3px solid #298355; outline-offset:2px; }

/* /fitness/coach/: the coach's page. */
.coach-page { margin:0; min-height:100vh; background:#f3f7f2; color:#12231b; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.coach-nav { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; }
.coach-nav-link { min-height:44px; display:inline-flex; align-items:center; padding:0 14px; border:1px solid #d9e5d5; border-radius:12px; background:#fff; color:#1d4532; font-weight:700; font-size:14px; text-decoration:none; }
.coach-main { max-width:760px; margin:0 auto; padding:4px 16px 40px; display:grid; gap:14px; }
.coach-main h1 { margin:0; font-size:26px; line-height:1.15; color:#12231b; }
.coach-sub { margin:0; font-size:15px; color:#46624f; }
.coach-actions { display:grid; gap:8px; }
.coach-button { min-height:50px; display:flex; align-items:center; justify-content:center; padding:0 18px; border-radius:14px; background:#28784f; color:#fff; font-size:16px; font-weight:750; text-decoration:none; }
.coach-button.is-quiet { background:#fff; color:#1d4532; border:1px solid #cfdcd2; }
.coach-head { display:flex; align-items:center; gap:12px; }
.coach-head .coach-frame-avatar { width:44px; height:44px; border-radius:14px; font-size:18px; }
.coach-head small { display:block; margin-top:2px; font-size:13px; color:#5b6f61; }
.coach-periods { display:inline-grid; grid-auto-flow:column; gap:4px; padding:4px; border-radius:12px; background:#e7efe8; justify-self:start; }
.coach-periods button { min-height:40px; padding:0 14px; border:0; border-radius:9px; background:transparent; color:#46644e; font:inherit; font-size:14px; font-weight:650; cursor:pointer; }
.coach-periods button[aria-pressed="true"] { background:#fff; color:#185936; box-shadow:0 2px 6px #16432c14; }
.coach-page .coach-frame { padding:12px; }
.coach-loading { color:#5b6f61; }
@media (min-width:760px) { .coach-page .coach-charts:not(.is-compact) { grid-template-columns:repeat(2,minmax(0,1fr)); } .coach-actions { grid-template-columns:repeat(2,max-content); } .coach-main { padding-top:20px; } }
