@font-face{font-family:Archivo;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/archivo/v25/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxK-vA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/archivo/v25/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxK-vA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/archivo/v25/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/archivo/v25/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxK-vA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/archivo/v25/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxK-vA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/archivo/v25/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/archivo/v25/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLySOxK-vA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/archivo/v25/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLyTOxK-vA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/archivo/v25/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxI.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.user-shell{--color-bg: #f3f2f2;--color-surface: #eae9e9;--color-text: #201e1d;--color-text-muted: color-mix(in srgb, #201e1d 55%, transparent);--color-text-faint: color-mix(in srgb, #201e1d 45%, transparent);--color-border: color-mix(in srgb, #201e1d 40%, transparent);--color-border-strong: #201e1d;--color-primary: #ec3013;--color-primary-contrast: #f3f2f2;--color-danger: #ae1800;--color-danger-bg: #fff2ef;--color-danger-border: #ffc4b8;--color-success: #201e1d;--color-success-bg: #eae9e9;--color-success-border: color-mix(in srgb, #201e1d 40%, transparent);--color-warning-bg: #fff2ef;--color-warning-border: #ff563c;--focus-ring: #ec3013;--radius-sm: 0px;--radius-md: 0px;--color-accent: #ec3013;--color-accent-100: #fff2ef;--color-accent-600: #dd2b0f;--color-accent-700: #ae1800;--color-neutral-200: #eae7e7;--color-neutral-300: #d7d3d3;--color-neutral-500: #9b9797;--color-neutral-800: #444141;--font-heading: "Archivo", system-ui, sans-serif;--font-body: "Archivo", system-ui, sans-serif;display:block;min-height:100vh;min-height:100dvh;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body)}.user-shell h1,.user-shell h2,.user-shell h3,.user-shell h4{font-family:var(--font-heading);font-weight:800;letter-spacing:-.02em;line-height:1.02}.user-shell a{color:var(--color-accent)}.user-shell hr,.user-shell .divider{height:2px;border:0;background:var(--color-border);margin:1rem 0}.user-shell button{font-family:var(--font-heading);font-weight:800;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase}.user-shell .panel,.user-shell .user-list__item{border-width:2px}.user-shell .field input,.user-shell .field select,.user-shell .field textarea,.user-shell .input{background:var(--color-surface);border-width:1px}.user-shell .status-badge{border-radius:0;font-family:var(--font-heading);letter-spacing:.08em}.user-shell .tag{display:inline-flex;align-items:center;font-family:var(--font-heading);font-weight:800;font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .5rem}.user-shell .tag--accent{background:var(--color-accent);color:var(--color-bg)}.user-shell .tag--neutral{background:var(--color-neutral-300);color:var(--color-text)}.user-shell .tag--outline{border:1px solid var(--color-border);color:var(--color-text-muted)}.user-shell .media-placeholder{position:relative;background:repeating-linear-gradient(115deg,#c9c6c6 0 10px,#e2dfdf 10px 20px);display:flex;align-items:flex-end}.user-shell .media-placeholder__label{font-family:ui-monospace,Menlo,monospace;font-size:10px;color:#413f3f;padding:.5rem}.user-shell .kicker{font-family:var(--font-heading);font-weight:800;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent)}.user-shell .stat-row{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--color-border);border-bottom:2px solid var(--color-border)}.user-shell .stat-row__cell{padding:.75rem 0}.user-shell .stat-row__value{font-family:var(--font-heading);font-weight:800;font-size:1.375rem;line-height:1}.user-shell .stat-row__label{font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin-top:.2rem}.user-shell .auth-page{max-width:400px;margin:0 auto;padding:2.75rem 1.5rem 3rem}.user-shell .auth-page h1{font-size:2.375rem;margin:2rem 0 .25rem}.user-shell .auth-page__subtitle{margin:0 0 1.5rem;font-size:.875rem;color:var(--color-text-muted)}.user-shell .brand{display:flex;align-items:center;gap:.625rem}.user-shell .brand__mark{width:26px;height:26px;background:var(--color-accent);display:block;flex:none}.user-shell .brand__name{font-family:var(--font-heading);font-weight:800;font-size:.9375rem;letter-spacing:.12em;text-transform:uppercase}.user-shell .auth-switch{margin-top:1.5rem;padding-top:1.5rem;border-top:2px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;color:var(--color-text-muted)}.user-shell .auth-switch__cta{display:inline-flex;align-items:center;min-height:40px;padding:0 1rem;border:1px solid var(--color-border-strong);color:var(--color-text);text-decoration:none;font-family:var(--font-heading);font-weight:800;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.user-shell .auth-switch__cta:hover{background:color-mix(in srgb,var(--color-text) 7%,transparent)}:root{--color-text: #1a1a1a;--color-text-muted: #666666;--color-text-faint: #888888;--color-border: #e5e5e5;--color-border-strong: #cccccc;--color-surface: #ffffff;--color-bg: #fafafa;--color-primary: #1a1a1a;--color-primary-contrast: #ffffff;--color-danger: #b3261e;--color-danger-bg: #fdecea;--color-danger-border: #f5c2c0;--color-success: #1e7e34;--color-success-bg: #e9f7ef;--color-success-border: #b7e4c7;--color-warning-bg: #fff8e1;--color-warning-border: #ffe082;--focus-ring: #1a1a1a;--radius-sm: 6px;--radius-md: 8px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--color-text);background:var(--color-bg);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{line-height:1.25;font-weight:600}p{margin:0 0 1rem}p:last-child{margin-bottom:0}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.field label{font-size:.875rem;font-weight:600}.field input,.field select,.field textarea{min-height:44px;padding:.5rem .75rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:1rem;font-family:inherit;color:var(--color-text);background:var(--color-surface);width:100%}.field textarea{resize:vertical}.field input:disabled,.field select:disabled,.field textarea:disabled{background:#f2f2f2;color:var(--color-text-muted);cursor:not-allowed}.field input.ng-invalid.ng-touched,.field select.ng-invalid.ng-touched,.field textarea.ng-invalid.ng-touched{border-color:var(--color-danger)}.field-row{display:flex;flex-direction:column;gap:1rem}@media(min-width:768px){.field-row{flex-direction:row}}.field-row .field{flex:1;margin-bottom:0}.field-error{display:block;color:var(--color-danger);font-size:.8125rem;margin-top:.125rem}.form-error{color:var(--color-danger);background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius-sm);padding:.625rem .75rem;font-size:.875rem;margin:0 0 1rem}.auth-switch{margin-top:1.5rem;font-size:.875rem}button{min-height:44px;padding:0 1.125rem;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-primary-contrast);font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .15s ease,background-color .15s ease}button:hover:not(:disabled){opacity:.85}button:active:not(:disabled){opacity:.7}button.secondary{background:transparent;color:var(--color-text);border:1px solid var(--color-border-strong)}button.secondary:hover:not(:disabled){background:#f5f5f5;opacity:1}button:disabled{background:#b3b3b3;color:#fff;cursor:not-allowed;border-color:transparent;opacity:1}.auth-page button[type=submit]{width:100%}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem 1rem;margin-bottom:1.5rem}@media(min-width:768px){.panel{padding:1.5rem}}.panel h2{font-size:1.125rem;margin:0 0 1rem}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.panel-header h2{margin:0}.form-actions{display:flex;flex-wrap:wrap;gap:.75rem}.data-list{display:grid;grid-template-columns:max-content 1fr;gap:.625rem 1rem;margin:0}.data-list dt{color:var(--color-text-muted);font-size:.875rem}.data-list dd{margin:0;font-weight:500;word-break:break-word}.status-text{color:var(--color-text-muted);animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.success-text{color:var(--color-success);background:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:var(--radius-sm);padding:.625rem .75rem;font-size:.875rem;margin:0 0 1rem}.banner{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.875rem;margin:0 0 1.5rem}.status-badge{display:inline-block;padding:.1875rem .625rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--color-success-bg);color:var(--color-success)}.status-badge--inactive{background:var(--color-danger-bg);color:var(--color-danger)}.admin-page{max-width:800px;margin:0 auto;padding:1.25rem 1rem 2.5rem}@media(min-width:768px){.admin-page{padding:1.5rem 1.5rem 2.5rem}}.admin-page--wide{max-width:1100px}.admin-page h1{font-size:1.375rem;margin:0 0 1rem}@media(min-width:768px){.admin-page h1{font-size:1.5rem}}.admin-page__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:1.5rem}.admin-page__header h1{margin:0}.admin-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}.admin-filters input[type=search],.admin-filters input[type=date]{flex:1;min-width:160px;min-height:44px;padding:0 .75rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:1rem;background:var(--color-surface);color:var(--color-text)}.admin-filters select{min-height:44px;padding:0 .75rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:1rem;background:var(--color-surface);color:var(--color-text)}.user-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.user-list__item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color .15s ease}.user-list__item:has(.user-list__link:hover){border-color:var(--color-border-strong)}.user-list__link{display:flex;flex-direction:column;gap:.25rem;padding:1rem;text-decoration:none;color:inherit;border-radius:var(--radius-md)}.user-list__link:hover{background:#f5f5f5}.user-list__name{font-weight:600}.user-list__contact{font-size:.875rem;color:var(--color-text-muted)}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.5rem;font-size:.875rem}.pagination button{min-width:96px}.exercise-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}@media(min-width:480px){.exercise-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}.exercise-grid__link{display:block;text-decoration:none;color:inherit;border-radius:var(--radius-md)}.exercise-grid__link:focus-visible{outline-offset:4px}
