:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--gym-font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--gym-color-canvas:#f7f6f2;--gym-color-surface:#fff;--gym-color-surface-subtle:#efeee9;--gym-color-text:#1f1f21;--gym-color-text-muted:#655f54;--gym-color-accent:#d9a400;--gym-color-accent-rgb:217, 164, 0;--gym-color-accent-strong:#765700;--gym-color-accent-soft:#fff0ad;--gym-color-on-accent:#201800;--gym-color-border:#deddd8;--gym-color-danger:#b42318;--gym-color-danger-soft:#fee4e2;--gym-color-danger-text:#912018;--gym-color-warning:#b54708;--gym-color-warning-soft:#feecd6;--gym-color-warning-text:#8a2f0a;--gym-color-success:#067647;--gym-color-success-soft:#dcfae6;--gym-color-success-text:#05603a;--gym-radius-sm:10px;--gym-radius-md:16px;--gym-radius-lg:24px;--gym-shadow-card:0 12px 32px #1f1f2114;--gym-space-1:4px;--gym-space-2:8px;--gym-space-3:12px;--gym-space-4:16px;--gym-space-5:20px;--gym-space-6:24px;--gym-space-8:32px;--gym-text-sm:.875rem;--gym-text-lg:1.125rem;--gym-text-xl:1.375rem;--gym-motion-standard:.24s;--font-sans:var(--gym-font-sans);--color-canvas:var(--gym-color-canvas);--color-surface:var(--gym-color-surface);--color-surface-subtle:var(--gym-color-surface-subtle);--color-text:var(--gym-color-text);--color-text-muted:var(--gym-color-text-muted);--color-accent:var(--gym-color-accent);--color-accent-rgb:var(--gym-color-accent-rgb);--color-accent-strong:var(--gym-color-accent-strong);--color-accent-soft:var(--gym-color-accent-soft);--color-on-accent:var(--gym-color-on-accent);--color-border:var(--gym-color-border);--color-danger:var(--gym-color-danger);--color-danger-soft:var(--gym-color-danger-soft);--color-danger-text:var(--gym-color-danger-text);--color-warning:var(--gym-color-warning);--color-warning-soft:var(--gym-color-warning-soft);--color-warning-text:var(--gym-color-warning-text);--color-success:var(--gym-color-success);--color-success-soft:var(--gym-color-success-soft);--color-success-text:var(--gym-color-success-text);--radius-sm:var(--gym-radius-sm);--radius-md:var(--gym-radius-md);--radius-lg:var(--gym-radius-lg);--shadow-sm:var(--gym-shadow-card);--space-1:var(--gym-space-1);--space-2:var(--gym-space-2);--space-3:var(--gym-space-3);--space-4:var(--gym-space-4);--space-5:var(--gym-space-5);--space-6:var(--gym-space-6);--space-8:var(--gym-space-8);--text-sm:var(--gym-text-sm);--text-lg:var(--gym-text-lg);--text-xl:var(--gym-text-xl);--motion-standard:var(--gym-motion-standard);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--gym-color-canvas:#000;--gym-color-surface:#18181a;--gym-color-surface-subtle:#29292c;--gym-color-text:#f7f7f8;--gym-color-text-muted:#a5a5aa;--gym-color-accent:#fc0;--gym-color-accent-rgb:255, 204, 0;--gym-color-accent-strong:#ffd633;--gym-color-accent-soft:#3b3100;--gym-color-on-accent:#181400;--gym-color-border:#2c2c2e;--gym-color-danger:#ffb4ab;--gym-color-danger-soft:#4a1f1c;--gym-color-danger-text:#ffd2cc;--gym-color-warning:#ffb16b;--gym-color-warning-soft:#402311;--gym-color-warning-text:#ffd0a6;--gym-color-success:#75e0ad;--gym-color-success-soft:#123d2a;--gym-color-success-text:#9aebc2;--gym-shadow-card:none}@media (prefers-color-scheme:dark){:root[data-theme=system]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--gym-color-canvas:#000;--gym-color-surface:#18181a;--gym-color-surface-subtle:#29292c;--gym-color-text:#f7f7f8;--gym-color-text-muted:#a5a5aa;--gym-color-accent:#fc0;--gym-color-accent-rgb:255, 204, 0;--gym-color-accent-strong:#ffd633;--gym-color-accent-soft:#3b3100;--gym-color-on-accent:#181400;--gym-color-border:#2c2c2e;--gym-color-danger:#ffb4ab;--gym-color-danger-soft:#4a1f1c;--gym-color-danger-text:#ffd2cc;--gym-color-warning:#ffb16b;--gym-color-warning-soft:#402311;--gym-color-warning-text:#ffd0a6;--gym-color-success:#75e0ad;--gym-color-success-soft:#123d2a;--gym-color-success-text:#9aebc2;--gym-shadow-card:none}}*{box-sizing:border-box}html{background:var(--gym-color-canvas);color:var(--gym-color-text)}body{background:var(--gym-color-canvas);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}:focus-visible{outline:3px solid var(--gym-color-accent);outline-offset:3px}body{background:var(--color-canvas)}button{min-height:2.75rem;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font:inherit;background:var(--color-surface);cursor:pointer;font-weight:700}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.portal-layout{grid-template-columns:16rem minmax(0,1fr);min-height:100vh;display:grid}.portal-sidebar{gap:var(--space-6);height:100vh;padding:var(--space-6);border-right:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;display:flex;position:sticky;top:0}.brand{min-height:auto;color:var(--color-accent-strong);text-align:left;background:0 0;border:0;padding:0;font-size:1.5rem;font-weight:900}.portal-sidebar nav{gap:var(--space-2);display:grid}.portal-sidebar nav button{width:100%;padding:var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);text-align:left;background:0 0;border:0;font-weight:700}.portal-sidebar nav button:hover{color:var(--color-text);background:var(--color-surface-subtle)}.portal-sidebar nav button.active{color:var(--color-text);background:var(--color-accent-soft)}.portal-space-switch{min-height:2.75rem;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-surface);place-items:center;margin-top:auto;font-weight:700;text-decoration:none;display:grid}.portal-main{align-content:start;gap:var(--space-6);width:min(100%,80rem);padding:var(--space-8);display:grid}.portal-header{justify-content:space-between;align-items:center;gap:var(--space-5);display:flex}.portal-main h1{margin:var(--space-1) 0 0;letter-spacing:-.04em;font-size:clamp(2rem,5vw,3.5rem)}.theme-picker{gap:var(--space-1);color:var(--color-text-muted);font-size:.8rem;font-weight:700;display:grid}.theme-picker select{min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface);font:inherit}@media (width<=56rem){.portal-layout{grid-template-columns:1fr}.portal-sidebar{border-right:0;border-bottom:1px solid var(--color-border);height:auto;position:static}.portal-sidebar nav{grid-template-columns:repeat(3,1fr)}.portal-main{padding:var(--space-5)}}@media (width<=38rem){.portal-header{flex-direction:column;align-items:stretch}.portal-sidebar{gap:var(--space-3);padding:var(--space-4)}.portal-sidebar nav{grid-template-columns:repeat(3,minmax(6.5rem,1fr))}.portal-sidebar nav button{text-align:center}}.web-session-bar{z-index:20;top:var(--space-4);right:var(--space-4);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);background:color-mix(in srgb, var(--color-surface) 92%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);display:flex;position:fixed}.web-session-bar button{min-height:2.25rem}.web-login{gap:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);width:min(100% - 2rem,30rem);margin:8svh auto;padding:clamp(1.5rem,5vw,3rem);display:grid;box-shadow:0 1.5rem 5rem #0000003d}.web-login h1,.web-login p{margin:0}.web-login>p{color:var(--color-text-muted)}.web-login nav{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.web-login nav button[aria-pressed=true]{border-color:var(--color-accent-strong);color:var(--color-accent-strong);background:var(--color-accent-soft)}.web-login form,.web-login label{gap:var(--space-3);display:grid}.web-login label{gap:var(--space-2);color:var(--color-text-muted);font-weight:700}.web-login input{min-height:3rem;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-canvas);font:inherit}@media (width<=38rem){.web-login nav{grid-template-columns:1fr}}.portal-state,.roster-summary,.client-list-panel,.client-detail,.client-tool-intro,.client-tool-list-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.client-tool-intro{gap:var(--space-5);padding:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(16rem,28rem);align-items:center;display:grid}.client-tool-intro h2,.client-tool-intro p{margin:0}.client-tool-intro p{margin-top:var(--space-2);color:var(--color-text-muted)}.client-tool-intro input{width:100%;min-height:3rem;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font:inherit;background:var(--color-surface-subtle)}.client-tool-list-panel{overflow:hidden}.client-tool-list-panel>header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.client-tool-list-panel>header span{color:var(--color-text-muted)}.portal-state{justify-items:start;gap:var(--space-3);padding:var(--space-5);display:grid}.portal-state h2,.portal-state p{margin:0}.portal-state p{color:var(--color-text-muted)}.roster-summary{gap:var(--space-4);padding:var(--space-5);grid-template-columns:auto auto minmax(16rem,1fr);align-items:center;display:grid}.roster-summary>div{min-width:9rem;display:grid}.roster-summary strong{font-size:var(--text-xl)}.roster-summary span,.client-row__content>span,.client-detail header p,.assignment-grid span{color:var(--color-text-muted);font-size:var(--text-sm)}.roster-summary label{justify-self:end;width:min(100%,28rem)}.roster-summary input{width:100%;min-height:3rem;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font:inherit;background:var(--color-surface-subtle)}.clients-workspace{gap:var(--space-4);grid-template-columns:minmax(20rem,.9fr) minmax(24rem,1.1fr);align-items:start;display:grid}.client-list-panel{overflow:hidden}.client-list-panel>h2{padding:var(--space-5);border-bottom:1px solid var(--color-border);margin:0}.client-list{margin:0;padding:0;list-style:none;display:grid}.client-row{gap:var(--space-3);width:100%;min-height:6rem;padding:var(--space-4);border:0;border-bottom:1px solid var(--color-border);text-align:left;border-radius:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.client-list li:last-child .client-row{border-bottom:0}.client-row:hover,.client-row--selected{background:var(--color-surface-subtle)}.client-row--selected{box-shadow:inset 3px 0 var(--color-accent)}.client-avatar{width:2.75rem;height:2.75rem;color:var(--color-on-accent);background:var(--color-accent);border-radius:50%;place-items:center;font-weight:900;display:grid}.client-avatar--large{width:4rem;height:4rem;font-size:var(--text-xl)}.client-row__content{gap:var(--space-1);min-width:0;display:grid}.client-row__content strong,.client-row__content>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.client-row__content .attention-label{color:var(--color-accent-strong);font-weight:700}.status{padding:var(--space-1) var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);background:var(--color-surface-subtle);border-radius:999px}.status--active{color:var(--color-success);background:var(--color-success-soft)}.client-detail{gap:var(--space-5);padding:var(--space-5);display:grid}.client-detail header{gap:var(--space-4);align-items:center;display:flex}.client-detail h2,.client-detail header p{margin:0}.client-facts{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.client-facts div,.assignment-grid article{gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-subtle);display:grid}.client-facts dt{color:var(--color-text-muted);font-size:var(--text-sm)}.client-facts dd{margin:0;font-weight:700}.assignment-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.detail-attention{padding:var(--space-4);border:1px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-accent-soft)}.detail-attention ul{padding-left:var(--space-5);margin:var(--space-2) 0 0}.inline-empty{padding:var(--space-5);color:var(--color-text-muted)}@media (width<=56rem){.clients-workspace{grid-template-columns:1fr}}@media (width<=38rem){.client-tool-intro{grid-template-columns:1fr}.roster-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-summary label{grid-column:1/-1;justify-self:stretch}.client-facts,.assignment-grid{grid-template-columns:1fr}}.requests-workspace{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);overflow:hidden}.requests-workspace>header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.requests-workspace h2,.requests-workspace h3,.requests-workspace p{margin:0}.requests-workspace header p,.request-grid p,.request-grid small,.request-empty p{color:var(--color-text-muted)}.requests-workspace header strong{width:2.75rem;height:2.75rem;color:var(--color-on-accent);background:var(--color-accent);border-radius:50%;place-items:center;display:grid}.request-grid{gap:var(--space-4);padding:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));display:grid}.request-grid article{gap:var(--space-3);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);grid-template-columns:auto minmax(0,1fr);display:grid}.request-grid small{margin-top:var(--space-2);display:block}.request-grid footer{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3);grid-column:1/-1;display:flex}.accept-request{border-color:var(--color-accent);color:var(--color-on-accent);background:var(--color-accent)}.request-empty,.request-error{justify-items:start;gap:var(--space-2);padding:var(--space-6);display:grid}@media (width<=38rem){.request-grid{padding:var(--space-4);grid-template-columns:1fr}.request-grid footer{grid-template-columns:1fr;display:grid}}.portal-routine-editor{gap:var(--space-4);display:grid}.portal-routine-editor>header,.portal-routine-templates,.portal-routine-settings,.portal-routine-tabs,.portal-routine-day,.portal-routine-actions{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.portal-routine-templates{gap:var(--space-3);padding:var(--space-4);display:grid}.portal-routine-templates h3,.portal-routine-templates p{margin:0}.portal-routine-templates>p{color:var(--color-text-muted)}.portal-routine-template-picker,.portal-routine-template-save{gap:var(--space-3);grid-template-columns:minmax(14rem,1fr) auto auto;align-items:end;display:grid}.portal-routine-template-save{grid-template-columns:minmax(14rem,1fr) auto}.portal-routine-template-picker .archive-template{color:var(--color-danger-text)}.portal-routine-editor>header{justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-5);display:flex}.portal-routine-editor h2,.portal-routine-editor p{margin:0}.portal-routine-editor header p:last-child,.portal-routine-actions p{color:var(--color-text-muted)}.portal-routine-settings{gap:var(--space-4);padding:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.portal-routine-editor label{gap:var(--space-2);min-width:0;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:800;display:grid}.portal-routine-editor input,.portal-routine-editor select{width:100%;min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface-subtle);font:inherit}.portal-routine-tabs{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);display:flex}.portal-routine-tabs>div,.portal-routine-tabs>span{gap:var(--space-2);display:flex}.portal-routine-tabs>div{overflow-x:auto}.portal-routine-tabs button{min-width:max-content}.portal-routine-tabs button.active{border-color:var(--color-accent);background:var(--color-accent-soft)}.portal-routine-tabs .remove-day,.portal-exercise-table .remove-row{color:var(--color-danger-text)}.portal-routine-day{gap:var(--space-4);padding:var(--space-5);display:grid}.portal-routine-day__fields{gap:var(--space-3);grid-template-columns:minmax(8rem,.6fr) minmax(12rem,1fr) minmax(12rem,1fr);display:grid}.portal-exercise-table{gap:var(--space-2);display:grid;overflow-x:auto}.portal-exercise-table article{gap:var(--space-2);min-width:52rem;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);grid-template-columns:minmax(12rem,1.7fr) repeat(5,minmax(3.75rem,.55fr)) minmax(7rem,.9fr) 2.75rem;align-items:end;display:grid}.portal-exercise-table .remove-row{width:2.75rem;font-size:var(--text-xl);padding:0}.portal-routine-actions{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);display:flex}.portal-routine-actions .publish-routine{border-color:var(--color-accent);color:var(--color-on-accent);background:var(--color-accent)}@media (width<=56rem){.portal-routine-editor>header,.portal-routine-tabs,.portal-routine-actions{flex-direction:column;align-items:stretch}.portal-routine-tabs>span,.portal-routine-actions .publish-routine{width:100%}}@media (width<=38rem){.portal-routine-template-picker,.portal-routine-template-save,.portal-routine-settings,.portal-routine-day__fields{grid-template-columns:1fr}}.portal-nutrition-editor{gap:var(--space-4);display:grid}.portal-nutrition-editor>header,.portal-nutrition-settings,.portal-nutrition-tabs,.portal-nutrition-day,.portal-nutrition-actions{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.portal-nutrition-editor>header{justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-5);display:flex}.portal-nutrition-editor h2,.portal-nutrition-editor h3,.portal-nutrition-editor p{margin:0}.portal-nutrition-editor>header p:last-child,.portal-nutrition-settings span,.portal-nutrition-settings small,.portal-meal-row span,.portal-meal-row small,.portal-nutrition-actions p{color:var(--color-text-muted)}.portal-nutrition-settings{gap:var(--space-4);padding:var(--space-4);grid-template-columns:minmax(12rem,1fr) minmax(14rem,1fr) minmax(12rem,1fr);display:grid}.portal-nutrition-settings>div{align-content:center;gap:var(--space-1);display:grid}.portal-nutrition-settings>p{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-accent-soft);grid-column:1/-1}.portal-nutrition-editor label{gap:var(--space-2);min-width:0;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:800;display:grid}.portal-nutrition-editor input,.portal-nutrition-editor select{width:100%;min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface-subtle);font:inherit}.portal-nutrition-tabs{gap:var(--space-3);padding:var(--space-3);display:grid}.portal-nutrition-tabs>div{gap:var(--space-2);display:flex;overflow-x:auto}.portal-nutrition-tabs button{min-width:max-content}.portal-nutrition-tabs button.active{border-color:var(--color-accent);background:var(--color-accent-soft)}.portal-nutrition-day{gap:var(--space-4);padding:var(--space-5);display:grid}.portal-nutrition-day>header,.portal-meal-row>header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.portal-nutrition-day>header>strong{padding:var(--space-2) var(--space-3);border-radius:999px}.portal-nutrition-day>header>strong.valid{color:var(--color-success);background:var(--color-success-soft)}.portal-nutrition-day>header>strong.invalid,.portal-nutrition-day>p{color:var(--color-danger)}.portal-meal-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.portal-meal-row{gap:var(--space-3);min-width:0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);display:grid}.portal-meal-row>div{gap:var(--space-3);grid-template-columns:minmax(8rem,1fr) minmax(6rem,.6fr);display:grid}.portal-nutrition-actions{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);display:flex}.portal-nutrition-actions .publish-nutrition{border-color:var(--color-accent);color:var(--color-on-accent);background:var(--color-accent)}.portal-nutrition-templates{gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);display:grid}.portal-nutrition-templates header h3,.portal-nutrition-templates header p,.portal-nutrition-templates>p{margin:0}.portal-template-picker,.portal-template-save{align-items:end;gap:var(--space-3);grid-template-columns:minmax(14rem,1fr) auto auto;display:grid}.portal-template-save{padding-top:var(--space-4);border-top:1px solid var(--color-border);grid-template-columns:minmax(14rem,1fr) auto}.portal-template-picker label,.portal-template-save label{gap:var(--space-2);color:var(--color-text-muted);font-weight:700;display:grid}.portal-template-picker .archive-template{color:var(--color-danger)}@media (width<=56rem){.portal-nutrition-editor>header,.portal-nutrition-actions{flex-direction:column;align-items:stretch}.portal-nutrition-settings,.portal-meal-grid,.portal-template-picker,.portal-template-save{grid-template-columns:1fr}.portal-nutrition-actions .publish-nutrition{width:100%}}@media (width<=38rem){.portal-meal-row>div{grid-template-columns:1fr}}.client-progress-action{border-color:var(--color-accent);min-height:3rem;color:var(--color-on-accent);background:var(--color-accent)}.portal-client-progress{gap:var(--space-4);display:grid}.portal-client-progress>header,.portal-progress-summary,.portal-progress-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.portal-client-progress>header{justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-5);display:flex}.portal-client-progress>header h2,.portal-client-progress>header p,.portal-client-progress>header span{margin:0}.portal-client-progress>header span,.portal-progress-panel>p,.portal-progress-panel header span,.portal-progress-summary span,.portal-progress-summary small{color:var(--color-text-muted)}.portal-progress-state__actions{gap:var(--space-2);display:flex}.portal-progress-summary{grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.portal-progress-summary article{gap:var(--space-1);min-width:0;padding:var(--space-5);border-right:1px solid var(--color-border);display:grid}.portal-progress-summary article:last-child{border-right:0}.portal-progress-summary strong{font-size:var(--text-2xl)}.portal-progress-summary span,.portal-progress-summary small{font-size:var(--text-sm)}.portal-progress-signal-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.portal-progress-panel{gap:var(--space-4);min-width:0;padding:var(--space-5);display:grid}.portal-progress-panel header{justify-content:space-between;align-items:start;gap:var(--space-4);display:flex}.portal-progress-panel h3,.portal-progress-panel header h3,.portal-progress-panel header span,.portal-progress-panel>p{margin:0}.portal-progress-panel>p{line-height:1.5}.portal-progress-panel>em{color:var(--color-danger-text);font-style:normal;font-weight:800}.portal-progress-panel dl{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.portal-progress-panel dl div{gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-subtle);display:grid}.portal-progress-panel dt{color:var(--color-text-muted);font-size:var(--text-sm)}.portal-progress-panel dd{margin:0;font-weight:900}.portal-signal{padding:var(--space-1) var(--space-2);color:var(--color-text-muted);background:var(--color-surface-subtle);font-size:var(--text-sm);white-space:nowrap;border-radius:999px}.portal-signal--continue,.portal-signal--on_track{color:var(--color-success-text);background:var(--color-success-soft)}.portal-signal--monitor,.portal-signal--consider_deload,.portal-signal--adjust_up,.portal-signal--adjust_down,.portal-signal--low_adherence{color:var(--color-warning-text);background:var(--color-warning-soft)}.portal-signal--professional_review{color:var(--color-danger-text);background:var(--color-danger-soft)}.portal-progress-panel--missing{align-content:center;min-height:13rem}.portal-weight-chart{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-subtle);margin:0;display:grid}.portal-weight-chart svg{width:100%;height:12rem}.portal-weight-chart polyline{stroke:var(--color-accent);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.portal-weight-chart figcaption{color:var(--color-text-muted);justify-content:space-between;display:flex}.portal-progression-alerts,.portal-exercise-history ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.portal-progression-alerts{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-progression-alerts li{padding:var(--space-3);border:1px solid color-mix(in srgb, var(--color-accent) 35%, var(--color-border));border-radius:var(--radius-md);background:var(--color-accent-soft)}.portal-exercise-history{gap:var(--space-2);display:grid}.portal-exercise-history details{border-bottom:1px solid var(--color-border)}.portal-exercise-history summary{justify-content:space-between;align-items:center;gap:var(--space-3);cursor:pointer;min-height:3.25rem;font-weight:800;display:flex}.portal-exercise-history summary small{color:var(--color-text-muted);font-weight:500}.portal-exercise-history ul{padding-bottom:var(--space-3)}.portal-exercise-history li{gap:var(--space-4);padding:var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);background:var(--color-surface-subtle);grid-template-columns:7rem 1fr auto;display:grid}.portal-exercise-history li strong{color:var(--color-text)}.portal-inline-empty{padding:var(--space-4);border-radius:var(--radius-md);color:var(--color-text-muted);background:var(--color-surface-subtle);margin:0}.portal-training-history{align-items:start;gap:var(--space-4);grid-template-columns:minmax(18rem,.4fr) minmax(30rem,1fr);display:grid}.portal-personal-records>div,.portal-history-sessions,.portal-history-sessions ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.portal-personal-records article{gap:var(--space-1) var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-subtle);grid-template-columns:minmax(0,1fr) auto;display:grid}.portal-personal-records article small{color:var(--color-text-muted);grid-column:1/-1}.portal-personal-records article strong{color:var(--color-accent-strong);white-space:nowrap}.portal-personal-records__more{margin-top:var(--space-3)}.portal-personal-records__more>summary{min-height:2.75rem;color:var(--color-accent-strong);cursor:pointer;font-weight:800}.portal-personal-records__more>div{gap:var(--space-2);display:grid}.portal-history-sessions>h4{margin:var(--space-3) 0 0;color:var(--color-text-muted)}.portal-history-sessions>details{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle)}.portal-history-sessions summary{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:4rem;padding:var(--space-3) var(--space-4);cursor:pointer;font-weight:850;display:flex}.portal-history-sessions summary small{color:var(--color-text-muted);font-weight:500}.portal-history-sessions ul{padding:0 var(--space-4) var(--space-4)}.portal-history-sessions li{gap:var(--space-3);padding-block:var(--space-2);border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.portal-history-sessions li span,.portal-history-sessions li small{color:var(--color-text-muted)}.portal-training-history>.portal-progress-panel>button{min-height:3rem}@media (width<=62rem){.portal-progress-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-progress-summary article:nth-child(2){border-right:0}.portal-progress-summary article:nth-child(-n+2){border-bottom:1px solid var(--color-border)}.portal-progress-signal-grid,.portal-training-history{grid-template-columns:1fr}}@media (width<=42rem){.portal-client-progress>header,.portal-progress-panel header{flex-direction:column;align-items:stretch}.portal-progress-summary{grid-template-columns:1fr}.portal-progress-summary article,.portal-progress-summary article:nth-child(2){border-right:0;border-bottom:1px solid var(--color-border)}.portal-progress-summary article:last-child{border-bottom:0}.portal-progression-alerts{grid-template-columns:1fr}.portal-exercise-history li{grid-template-columns:1fr auto}.portal-exercise-history li span{grid-area:2/1/auto/-1}.portal-history-sessions summary,.portal-history-sessions li{flex-direction:column;grid-template-columns:1fr;align-items:stretch}}.portal-agenda{gap:var(--space-5);display:grid}.portal-agenda-summary{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.portal-agenda-summary div{gap:var(--space-1);min-width:0;padding:var(--space-5);display:grid}.portal-agenda-summary div+div{border-left:1px solid var(--color-border)}.portal-agenda-summary strong{overflow-wrap:anywhere;font-size:var(--text-xl)}.portal-agenda-summary span,.portal-agenda-panel>p,.portal-appointment-list p,.portal-appointment-list small{color:var(--color-text-muted)}.portal-agenda-panel,.portal-appointment-list{gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);display:grid}.portal-agenda-panel h2,.portal-agenda-panel p,.portal-appointment-list h2,.portal-appointment-list h3,.portal-appointment-list p{margin:0}.portal-agenda-panel header,.portal-agenda-panel footer,.portal-appointment-list>header{justify-content:space-between;align-items:end;gap:var(--space-4);display:flex}.portal-agenda-form{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.portal-agenda-panel label,.portal-appointment-edit label{gap:var(--space-2);color:var(--color-text-muted);font-weight:700;display:grid}.portal-agenda-panel input,.portal-agenda-panel select,.portal-agenda-panel textarea,.portal-appointment-edit input{width:100%;min-height:2.75rem;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface-subtle);font:inherit}.portal-wide-field,.portal-reminders{grid-column:span 2}.portal-reminders{gap:var(--space-3);border:0;flex-wrap:wrap;padding:0;display:flex}.portal-reminders legend{width:100%;font-weight:800}.portal-reminders label,.portal-day-toggle{align-items:center;gap:var(--space-2);min-height:2.75rem;color:var(--color-text);display:flex}.portal-reminders input,.portal-day-toggle input{width:1.2rem;min-height:1.2rem;accent-color:var(--color-accent)}.portal-primary{border-color:var(--color-accent);color:var(--color-on-accent);background:var(--color-accent)}.portal-availability-days{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.portal-availability-day{align-content:start;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);display:grid}.portal-availability-window,.portal-appointment-edit{align-items:end;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr)) auto;display:grid}.portal-blocks ul{gap:10px;padding:0;list-style:none;display:grid}.portal-blocks li{border-top:1px solid var(--portal-border);justify-content:space-between;align-items:center;gap:16px;padding-top:12px;display:flex}.portal-appointment-list>article{gap:var(--space-4);padding-block:var(--space-4);border-top:1px solid var(--color-border);grid-template-columns:minmax(12rem,1fr) minmax(18rem,.8fr);display:grid}.portal-appointment-list>article.cancelled{opacity:.65}.portal-appointment-list article span{color:var(--color-accent-strong);font-size:var(--text-sm);font-weight:800}.portal-appointment-list summary{min-height:2.75rem;color:var(--color-accent-strong);cursor:pointer;font-weight:800}.portal-danger{color:var(--color-danger)}@media (width<=64rem){.portal-agenda-form,.portal-availability-days{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-appointment-list>article{grid-template-columns:1fr}}@media (width<=42rem){.portal-agenda-summary,.portal-agenda-form,.portal-availability-days,.portal-availability-window,.portal-appointment-edit{grid-template-columns:1fr}.portal-agenda-summary div+div{border-top:1px solid var(--color-border);border-left:0}.portal-wide-field,.portal-reminders{grid-column:auto}.portal-agenda-panel header,.portal-agenda-panel footer{flex-direction:column;align-items:stretch}}.portal-messaging{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-columns:minmax(17rem,.38fr) minmax(25rem,1fr);min-height:min(44rem,100vh - 10rem);display:grid;overflow:hidden}.portal-conversations{border-right:1px solid var(--color-border);background:var(--color-surface-subtle);overflow-y:auto}.portal-conversations header,.portal-thread>header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.portal-conversations header p,.portal-thread header p,.portal-conversations header h2,.portal-thread header h2,.portal-thread-state p{margin:0}.portal-conversations header p,.portal-thread header p,.portal-conversations header strong,.portal-thread header span{color:var(--color-text-muted);font-size:var(--text-sm)}.portal-realtime-state,.portal-typing{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm);display:block}.portal-realtime-state:before{width:.5rem;height:.5rem;margin-right:var(--space-2);background:var(--color-text-muted);content:"";border-radius:50%;display:inline-block}.portal-realtime-state[data-status=online]:before{background:var(--color-success)}.portal-typing{color:var(--color-accent-strong);font-weight:750}.portal-conversations>button{align-items:center;gap:var(--space-3);width:100%;min-height:5rem;padding:var(--space-3) var(--space-4);border:0;border-bottom:1px solid var(--color-border);color:var(--color-text);text-align:left;cursor:pointer;background:0 0;grid-template-columns:auto minmax(0,1fr);display:grid}.portal-conversations>button.active{background:var(--color-accent-soft)}.portal-conversations>button:focus-visible,.portal-thread button:focus-visible,.portal-thread textarea:focus-visible{outline:3px solid var(--color-accent-strong);outline-offset:-3px}.portal-message-avatar{width:2.75rem;height:2.75rem;color:var(--color-on-accent);background:var(--color-accent);border-radius:50%;place-items:center;font-weight:900;display:grid}.portal-conversations>button>span:last-child,.portal-conversations>button>span:last-child>span{justify-content:space-between;gap:var(--space-3);min-width:0;display:flex}.portal-conversations>button>span:last-child{flex-direction:column}.portal-conversations small,.portal-conversations time{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-conversations b{min-width:1.5rem;height:1.5rem;color:var(--color-on-accent);background:var(--color-accent);border-radius:999px;place-items:center;font-size:.75rem;display:inline-grid}.portal-thread{grid-template-rows:auto minmax(18rem,1fr) auto;min-width:0;display:grid}.portal-message-shell{min-width:0;min-height:0;position:relative}.portal-message-log{gap:var(--space-2);padding:var(--space-5);overflow-anchor:none;overscroll-behavior:contain;flex-direction:column;height:100%;display:flex;position:relative;overflow-y:auto}.portal-message-spacer{margin-top:auto}.portal-message-history{top:var(--space-2);z-index:2;place-items:center;height:0;display:grid;position:sticky;overflow:visible}.portal-message-history span,.portal-message-history button{min-height:2.25rem;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);color:var(--color-text);font:inherit;font-size:var(--text-sm);background:var(--color-surface);box-shadow:var(--shadow-sm);border-radius:999px;font-weight:750}.portal-message-day{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-sm);background:var(--color-surface);box-shadow:var(--shadow-sm);border-radius:999px;align-self:center;font-weight:750}.portal-message-jump{right:var(--space-5);bottom:var(--space-4);z-index:3;border:1px solid var(--color-border);width:2.75rem;height:2.75rem;color:var(--color-accent-strong);background:var(--color-surface);box-shadow:var(--shadow-sm);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.portal-message-jump svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.25px;width:1.35rem}.portal-message-jump[data-has-new]:after{border:2px solid var(--color-surface);background:var(--color-accent);content:"";border-radius:50%;width:.55rem;height:.55rem;position:absolute;top:.15rem;right:.15rem}.portal-message-history button{color:var(--color-accent-strong);cursor:pointer}.portal-message-log article{max-width:min(75%,38rem);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md) var(--radius-md) var(--radius-md) var(--radius-sm);background:var(--color-surface-subtle);align-self:flex-start}.portal-message-log article.outgoing{border-radius:var(--radius-md) var(--radius-md) var(--radius-sm) var(--radius-md);color:var(--color-on-accent);background:var(--color-accent);align-self:flex-end}.portal-message-log article.portal-message-pending{opacity:.68}.portal-message-log article p,.portal-message-log article small{overflow-wrap:anywhere;margin:0}.portal-message-log article small{margin-top:var(--space-1);color:inherit;text-align:right;opacity:.72;display:block}.portal-thread>footer{align-items:end;gap:var(--space-3);padding:var(--space-4);border-top:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;display:grid}.portal-thread textarea{resize:none;width:100%;min-height:3.25rem;max-height:9rem;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-surface-subtle);font:inherit}.portal-thread>footer>button{min-height:3.25rem}.portal-thread>footer>p{color:var(--color-danger);grid-column:1/-1;margin:0}.portal-thread>footer>.portal-outbox-retry{border-color:var(--color-warning);background:var(--color-warning-soft);grid-column:1/-1}.portal-thread-state{place-content:center;justify-items:center;gap:var(--space-3);padding:var(--space-6);color:var(--color-text-muted);text-align:center;display:grid}@media (width<=58rem){.portal-messaging{grid-template-columns:1fr}.portal-conversations{border-right:0;border-bottom:1px solid var(--color-border);max-height:18rem}}@media (width<=36rem){.portal-thread>footer{grid-template-columns:minmax(0,1fr) auto}.portal-thread>footer>button{width:44px}.portal-message-log article{max-width:88%}}.portal-thread>header{background:var(--color-surface);gap:.8rem;padding:1rem}.portal-messaging{grid-template-columns:minmax(14rem,.36fr) minmax(0,1fr);min-width:0}.portal-thread{grid-template-rows:auto minmax(0,1fr) auto;min-height:0;overflow:hidden}@media (width>=59rem){.portal-main:has(>.portal-messaging){grid-template-rows:auto minmax(0,1fr);align-content:normal;gap:1rem;height:100dvh;padding:1.5rem}.portal-main>.portal-messaging{height:100%;min-height:0}}@media (width<=58.999rem){.portal-messaging{grid-template-columns:minmax(0,1fr)}.portal-thread{height:min(44rem,75dvh);min-height:20rem}.portal-conversations{max-height:12rem}}.portal-thread>header>div{flex:1;min-width:0}.portal-thread>header h2{overflow-wrap:anywhere;font-size:1.1rem;font-weight:600}.portal-thread>header>.portal-message-avatar{color:var(--color-accent-strong);background:var(--color-accent-soft);flex-shrink:0}.portal-thread>header>span:last-child{font-size:.7rem}.portal-message-log{background:var(--color-canvas);padding:1rem}.portal-message-log article{border:1px solid var(--color-border);border-radius:19px 19px 19px 6px;flex-shrink:0;padding:.65rem .9rem .45rem}.portal-message-log article p{white-space:pre-wrap;line-height:1.5}.portal-message-log article.outgoing{color:var(--color-text);background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface));border-color:color-mix(in srgb, var(--color-accent) 20%, var(--color-border));border-radius:19px 19px 6px}.portal-message-log article small{color:var(--color-text-muted);opacity:1;font-size:.65rem}.portal-message-day{box-shadow:none;border:0;margin-block:.5rem;font-size:.75rem;font-weight:500}.portal-thread>footer{gap:.65rem;padding:.75rem}.portal-thread textarea{border-radius:22px;min-height:44px;max-height:8rem;padding:.7rem 1rem;font-size:1rem;line-height:1.4;display:block}.portal-thread>footer>.portal-message-send{border-radius:50%;place-items:center;width:44px;height:44px;min-height:44px;padding:0;display:grid}.portal-message-send svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1.45rem}.portal-activity{gap:22px;display:grid}.portal-activity>header{justify-content:space-between;align-items:end;gap:18px;display:flex}.portal-activity h2{margin:4px 0 0}.portal-activity-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.portal-activity-list button{text-align:left;border:1px solid var(--portal-border);background:var(--portal-surface);color:var(--portal-text);border-radius:18px;gap:7px;padding:20px;display:grid}.portal-activity-list button:not(.read){border-color:var(--portal-accent)}.portal-activity-list p{color:var(--portal-muted);margin:0}.portal-activity-list span,.portal-activity-list small{color:var(--portal-muted)}.portal-load-more{justify-self:center}@media (width<=760px){.portal-activity-list{grid-template-columns:1fr}}.profile-workspace{gap:var(--space-6);grid-template-columns:minmax(16rem,24rem) minmax(20rem,36rem);align-items:start;display:grid}.profile-preview,.profile-form{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.profile-preview{gap:var(--space-4);display:grid}.profile-preview>img,.profile-preview>span{object-fit:cover;background:var(--color-accent-soft);border-radius:50%;width:8rem;height:8rem}.profile-preview>span{color:var(--color-accent-strong);place-items:center;font-size:3rem;font-weight:900;display:grid}.profile-preview h2{margin:var(--space-1) 0}.profile-form{gap:var(--space-5);display:grid}.profile-form label{gap:var(--space-2);font-weight:800;display:grid}.profile-form input,.profile-form textarea{width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface-subtle);font:inherit}.profile-form small,.profile-form p,.profile-preview p{color:var(--color-text-muted)}@media (width<=48rem){.profile-workspace{grid-template-columns:1fr}}
