@import url('https://fonts.googleapis.com/css2?family=Exo+2:wght@400;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@400;500;600;700&family=Noto+Sans:wght@400;500;700;900&display=swap');

:root{
  --c-deep:#1B3C53;    /* dark blue */
  --c-blue:#456882;    /* steel blue */
  --c-sand:#D2C1B6;    /* sand */
  --c-cream:#F9F3EF;   /* cream */
  --c-accent:#0586c7;  /* primary accent */
  --c-green:#4ade80;   /* progress green */
  --c-bg:var(--c-cream);
  --c-surface:#fff;
  --c-text:#0f1a20;
  --c-border:#ececec;
  --radius:16px;
  --speed:220ms;
  --topbar-height:56px;
  --tabbar-height:96px;
}
[data-theme="dark"]{
  --c-bg:#0f1a20;
  --c-surface:#1e293b;
  --c-text:#f3f4f6;
  --c-border:#374151;
  --c-cream:#1e293b;
  --c-deep:#60a5fa;
  --c-blue:#93c5fd;
}

*,*::before,*::after{box-sizing:border-box}

html,body{margin:0;padding:0;background:var(--c-bg);color:var(--c-text);font-family:'Exo 2', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;}
a{color:var(--c-blue);text-decoration:none;transition:opacity var(--speed) ease;}
a:hover{opacity:.85}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
button,.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.8rem 1.1rem;border-radius:var(--radius);border:0;cursor:pointer;
  background:var(--c-accent);color:#fff;transition:transform var(--speed),opacity var(--speed),box-shadow var(--speed);
}
button:hover,.btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.12)}
button:active,.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--c-accent);color:#fff}
.btn--ghost{background:transparent;color:var(--c-accent);border:1px solid currentColor;box-shadow:none}
.btn--ghost:hover{box-shadow:0 6px 16px rgba(5,134,199,.18)}
.btn-secondary{background:var(--c-deep);color:#fff}
.card{background:var(--c-surface);border-radius:var(--radius);padding:1rem;box-shadow:0 6px 18px rgba(0,0,0,.06)}
.input{
  width:100%;max-width:100%;padding:.9rem 1rem;border-radius:14px;border:1px solid var(--c-border);background:var(--c-surface);outline:none;
  color:var(--c-text);text-decoration:none;box-shadow:none;
  transition:box-shadow var(--speed),border-color var(--speed);
}
.input::placeholder{color:var(--c-text);opacity:.6}
.input:focus{border-color:var(--c-blue);box-shadow:0 0 0 4px rgba(69,104,130,.15)}
/* Узкий фронт для пользователя */
.app-user .container{max-width:600px;margin: 0px auto 70px;padding:16px;}
body.app-user{--c-bg:#f4f7fc;background:#f4f7fc;}
html[data-theme="dark"] body.app-user{--c-bg:#0f1a20;background:#0f1a20;}
body.app-coach{
  --c-bg:#f2f6fc;
  --c-cream:#e7f1fb;
  --c-border:#d6e4f2;
  background:#f2f6fc;
}
html[data-theme="dark"] body.app-coach{
  --c-bg:#0f1a20;
  --c-cream:#1e293b;
  --c-border:#24384a;
  background:#0f1a20;
}
body.app-content-manager{
  --c-bg:#eef4fb;
  --c-cream:#f7fbff;
  --c-border:#d7e4f3;
  background:linear-gradient(135deg, #f7fbff 0%, #ecf2fb 100%);
  font-family:'Lexend','Noto Sans',sans-serif;
}
body.app-content-manager .topbar,
body.app-content-manager .tabbar{display:none;}

/* Широкий для тренера */
.app-coach .container{max-width:1200px;margin:0 auto;padding: 80px 24px 100px;}
/* Общий контейнер по умолчанию */
.container{max-width:1200px;margin:0 auto;padding:24px}
.nav{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.nav a{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:.6rem .9rem}
.badge{display:inline-block;background:var(--c-sand);color:#3a2e27;padding:.25rem .6rem;border-radius:999px}
.badge-plan{
  display:inline-flex;align-items:center;gap:.75rem;
  padding:.6rem 1.2rem;border-radius:999px;background:linear-gradient(135deg,var(--c-blue),var(--c-deep));
  color:#fff;font:600 14px/1.2 "Segoe UI",sans-serif;
  box-shadow:0 4px 12px rgba(0,0,0,.15)
}
.badge-plan .label{font-weight:700}
.badge-plan .macro{padding:.25rem .6rem;border-radius:.5rem;background:rgba(255,255,255,.15);backdrop-filter:blur(2px)}
.badge-plan .protein{color:#fff}
.badge-plan .fat{color:#fff}
.badge-plan .carb{color:#fff}

/* Переключатель темы */
.theme-toggle{display:flex;align-items:center;gap:8px}
.switch{position:relative;display:inline-block;width:44px;height:24px}
.switch input{opacity:0;width:0;height:0}
.switch .slider{position:absolute;cursor:pointer;inset:0;background:var(--c-border);border-radius:999px;transition:background var(--speed)}
.switch .slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform var(--speed)}
.switch input:checked + .slider{background:var(--c-accent)}
.switch input:checked + .slider:before{transform:translateX(20px)}

/* Аккордеоны в профиле */
.accordion{border:1px solid var(--c-border);border-radius:12px;padding:.5rem 1rem;margin:1rem 0;background:var(--c-surface)}
.accordion[open]{background:var(--c-cream)}
.accordion summary{cursor:pointer;list-style:none;font-weight:600;display:flex;align-items:center;gap:.5rem;margin:0}
.accordion summary::-webkit-details-marker{display:none}
.accordion-body{overflow:hidden;max-height:0;transition:max-height .3s ease}
.accordion[open] .accordion-body{max-height:1000px}

/* Toast уведомления */
.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%,20px);background:var(--c-deep);color:#fff;padding:.75rem 1.25rem;border-radius:var(--radius);box-shadow:0 6px 18px rgba(0,0,0,.15);opacity:0;pointer-events:none;transition:opacity var(--speed),transform var(--speed);z-index:2000}
.toast.is-visible{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.toast.success{background:var(--c-green)}
.toast.error{background:#e74c3c}


/* импортируем базовые стили из style.css по умолчанию ничего не нужно */
.leaving{opacity:.85;transition:opacity .18s ease}

/* Каркас форм */
.form{display:grid;gap:.8rem;padding: 16px 0;}
.form .row{display:grid;gap:.5rem}
.form .two{grid-template-columns:1fr 1fr}
.form .four{grid-template-columns:repeat(4,1fr)}

/* Страница входа */
body.page-template-templatespage-login-php{background:#f8fbfc;}
body.page-template-templatespage-login-php .topbar,
body.page-template-templatespage-login-php .tabbar{display:none;}

.app-login{
  --auth-bg:#f8fbfc;
  --auth-surface:#ffffff;
  --auth-input:#e6eff4;
  --auth-text:#0d171c;
  --auth-muted:#47819e;
  --auth-primary:#0586c7;
  --auth-error:#ef4444;
  font-family:'Lexend','Noto Sans',sans-serif;
  min-height:100vh;
  padding:32px 16px 40px;
  background:var(--auth-bg);
}

body.page-template-templatespage-coach-apply-php{
  --coach-primary:#0586c7;
  --coach-text:#0d171c;
  --coach-muted:#4a7894;
  --coach-border:#d7e3eb;
  --coach-surface:#ffffff;
  --coach-bg:#f4f7fb;
  --coach-shadow:0 18px 40px rgba(5,134,199,.12);
  background:var(--coach-bg);
  font-family:'Lexend','Noto Sans',sans-serif;
}
body.page-template-templatespage-coach-apply-php .topbar,
body.page-template-templatespage-coach-apply-php .tabbar{display:none;}

.app-coach-apply{
  min-height:100vh;
  padding:32px 16px 48px;
  background:var(--coach-bg);
  display:flex;
  justify-content:center;
  align-items:flex-start;
}
.app-coach-apply__shell{
  width:100%;
  max-width:520px;
  margin:0 auto;
}
.app-coach-apply__card{
  display:flex;
  flex-direction:column;
  gap:24px;
  background:var(--coach-surface);
  padding:28px 24px 32px;
  border-radius:28px;
  box-shadow:var(--coach-shadow);
}
.app-coach-apply__header{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.app-coach-apply__back{
  position:absolute;
  left:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:16px;
  border:0;
  background:transparent;
  color:var(--coach-text);
  cursor:pointer;
  transition:background-color var(--speed),color var(--speed);
}
.app-coach-apply__back svg{width:20px;height:20px;}
.app-coach-apply__back:hover{background:rgba(5,134,199,.08);color:var(--coach-primary);}
.app-coach-apply__title{
  margin:0;
  font-size:22px;
  line-height:1.25;
  font-weight:700;
  color:var(--coach-text);
}
.coach-apply__steps{
  display:flex;
  flex-direction:column;
  gap:32px;
}
.coach-apply__step{
  display:none;
}
.coach-apply__step.is-active{
  display:block;
}

.coach-form{
  display:flex;
  flex-direction:column;
}
.coach-form--verify{gap:20px;}
.coach-field{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.coach-field__label{
  font-size:14px;
  font-weight:600;
  color:var(--coach-muted);
}
.coach-input{
  width:100%;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid var(--coach-border);
  background:var(--coach-surface);
  font-size:16px;
  line-height:1.4;
  color:var(--coach-text);
  transition:border-color var(--speed),box-shadow var(--speed),background-color var(--speed);
}
.coach-input::placeholder{color:rgba(13,23,28,.45);}
.coach-input:focus{border-color:var(--coach-primary);box-shadow:0 0 0 4px rgba(5,134,199,.12);outline:none;background:#fff;}
.coach-input--textarea{min-height:140px;resize:vertical;padding:16px 18px;}
.coach-input.is-error{border-color:#ef4444;}

.coach-field__error{
  min-height:18px;
  font-size:12px;
  font-weight:600;
  color:#b91c1c;
  margin-top:2px;
}

.coach-submit{
  width:100%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:0;
  background:var(--coach-primary);
  color:#fff;
  font-size:16px;
  font-weight:700;
  padding:16px 20px;
  cursor:pointer;
  transition:background-color var(--speed),box-shadow var(--speed),transform var(--speed);
  text-decoration:none;
}
.coach-submit.is-loading{
  opacity:.7;
  pointer-events:none;
  cursor:wait;
}
.coach-submit:hover{background:#0794d6;box-shadow:0 12px 28px rgba(5,134,199,.22);transform:translateY(-1px);}
.coach-submit:active{transform:translateY(0);}

.coach-alert{
  padding:12px 16px;
  border-radius:18px;
  font-size:14px;
  font-weight:600;
}
.coach-alert--error{background:rgba(239,68,68,.12);color:#b91c1c;}
.coach-alert--info{background:rgba(5,134,199,.12);color:var(--coach-primary);}
.coach-alert--inline{display:none;font-size:13px;padding:10px 14px;margin:0;}
.coach-alert--inline:not([hidden]){display:block;margin-bottom:4px;}
.coach-form__hint{
  margin:0;
  font-size:14px;
  color:var(--coach-muted);
}
.coach-form__hint strong{color:var(--coach-text);}
.coach-form__link{
  margin:0;
  text-align:center;
  font-size:14px;
}
.coach-form__link a{color:var(--coach-primary);font-weight:600;}
.coach-form__link a:hover{text-decoration:underline;}

.coach-apply-success{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(17,24,39,.45);
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease;
  z-index:3000;
}
.coach-apply-success.is-visible{opacity:1;pointer-events:auto;}
.coach-apply-success__card{
  background:#fff;
  border-radius:28px;
  padding:32px;
  box-shadow:0 24px 50px rgba(15,23,42,.18);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  text-align:center;
  max-width:340px;
  width:100%;
}
.coach-apply-success__icon svg{width:72px;height:72px;}
.coach-apply-success__title{
  margin:0;
  font-size:24px;
  font-weight:700;
  color:var(--coach-text);
}
.coach-apply-success__text{
  margin:0;
  font-size:16px;
  color:var(--coach-muted);
}

@media (max-width:600px){
  .app-coach-apply{padding:24px 16px 32px;}
  .app-coach-apply__card{padding:24px 20px 28px;border-radius:24px;}
  .coach-submit{padding:15px 18px;}
  .coach-input{border-radius:16px;}
}

.app-login__shell{
  max-width:480px;
  margin:0 auto 32px;
  padding:32px 24px 40px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:32px;
}

.app-login__body{display:flex;flex-direction:column;gap:24px;}

.app-login__header{display:flex;align-items:center;justify-content:center;position:relative;}

.app-login__title{margin:0;font-size:24px;line-height:1.2;font-weight:700;color:var(--auth-text);}

.app-login__back{position:absolute;left:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;border:0;background:transparent;color:var(--auth-text);cursor:pointer;transition:background-color var(--speed),color var(--speed);}
.app-login__back:hover{background:rgba(13,23,28,.06);}
.app-login__back svg{width:20px;height:20px;}

.auth-form{display:flex;flex-direction:column;gap:16px;}
.auth-form .field{display:flex;flex-direction:column;gap:8px;}
.auth-input{width:100%;padding:16px;border-radius:16px;border:2px solid var(--auth-input);background:var(--auth-input);color:var(--auth-text);font-size:16px;line-height:1.2;transition:border-color var(--speed),box-shadow var(--speed);}
.auth-input::placeholder{color:var(--auth-muted);opacity:1;}
.auth-input:focus{outline:none;border-color:var(--auth-primary);box-shadow:0 0 0 3px rgba(5,134,199,.18);background:#fff;}

.auth-remember{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;color:var(--auth-text);}
.auth-remember input[type=checkbox]{width:20px;height:20px;border-radius:6px;border:2px solid #c7d6e0;cursor:pointer;appearance:none;-webkit-appearance:none;background:#fff;display:grid;place-items:center;transition:border-color var(--speed),background-color var(--speed);} 
.auth-remember input[type=checkbox]::before{content:"";width:12px;height:8px;border-left:2px solid transparent;border-bottom:2px solid transparent;transform:rotate(-45deg) scale(0);transition:transform var(--speed),border-color var(--speed);}
.auth-remember input[type=checkbox]:checked{background:var(--auth-primary);border-color:var(--auth-primary);}
.auth-remember input[type=checkbox]:checked::before{border-color:#fff;transform:rotate(-45deg) scale(1);}

.app-login__error{font-size:14px;text-align:center;color:var(--auth-error);font-weight:600;}

.auth-submit{display:inline-flex;align-items:center;justify-content:center;width:100%;height:56px;border-radius:999px;border:0;background:var(--auth-primary);color:#f8fbfc;font-size:16px;font-weight:700;cursor:pointer;transition:background-color var(--speed),transform var(--speed),box-shadow var(--speed);}
.auth-submit:hover{background:#0475ad;box-shadow:0 10px 24px rgba(5,134,199,.28);}
.auth-submit:active{transform:translateY(1px);}

.app-login__footer{display:flex;flex-direction:column;gap:12px;align-items:center;}
.app-login__link{font-size:14px;font-weight:600;color:var(--auth-primary);text-decoration:underline;text-align:center;}
.app-login__link:hover{opacity:.85;}

@media (min-width:640px){
  .app-login__shell{padding:48px 32px 56px;}
  .app-login__title{font-size:26px;}
}

.box{background:var(--c-surface);border-radius:16px;padding:16px;box-shadow:0 10px 24px rgba(0,0,0,.06)}
h1,h2,h3{color:var(--c-deep)}
/* Страница упражнения */
.exercise-page{
  --exercise-bg:#f4f7fc;
  --exercise-surface:#ffffff;
  --exercise-border:#d7e3eb;
  --exercise-text:#0d171c;
  --exercise-muted:#4a7894;
  --exercise-primary:#0586c7;
  --exercise-accent:#0ea5e9;
  --exercise-green:#22c55e;
  --exercise-shadow:0 24px 50px rgba(5,134,199,.12);
  color:var(--exercise-text);
  font-family:'Lexend','Noto Sans',sans-serif;
}

.exercise-page--standalone{
  min-height:100vh;
  background:var(--exercise-bg);
  padding:24px 16px 72px;
}

.exercise-page--standalone .exercise-page__shell{
  max-width:520px;
  margin:0 auto;
}

.exercise-page--embedded{
  padding:24px 0 64px;
}

.exercise-page__shell{display:flex;flex-direction:column;gap:24px;}

.exercise-header{display:flex;align-items:center;justify-content:center;gap:16px;}

.exercise-page--standalone .exercise-header{
  position:sticky;
  top:16px;
  z-index:5;
  padding:12px 18px;
  border-radius:24px;
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(14px);
  box-shadow:var(--exercise-shadow);
}

.exercise-header__back{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:16px;
  border:1px solid rgba(69,104,130,.16);
  background:rgba(69,104,130,.08);
  color:var(--exercise-text);
  transition:background var(--speed),color var(--speed),transform var(--speed),border-color var(--speed);
}

.exercise-header__back:hover{
  transform:translateY(-1px);
  background:rgba(5,134,199,.15);
  border-color:rgba(5,134,199,.25);
  color:var(--exercise-primary);
}

.exercise-header__back svg{width:20px;height:20px;}

.exercise-header__title{margin:0;flex:1;text-align:center;font-size:22px;font-weight:700;color:var(--exercise-text);}

.exercise-header__spacer{width:44px;height:44px;display:block;}

.exercise-hero{background:var(--exercise-surface);border-radius:32px;box-shadow:var(--exercise-shadow);overflow:hidden;}
.exercise-hero__media{display:flex;flex-direction:column;gap:16px;padding:16px;}
.exercise-hero__video{position:relative;border-radius:24px;overflow:hidden;background:#000;aspect-ratio:16/9;}
.exercise-hero__video iframe,.exercise-hero__video video{position:absolute;inset:0;width:100%;height:100%;border:0;}
.exercise-gallery{position:relative;border-radius:24px;overflow:hidden;min-height:220px;background:#0d1729;}
@media (min-width:600px){
  .exercise-gallery{min-height:280px;}
}
.exercise-gallery::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,17,25,.65) 0%,rgba(11,17,25,0) 45%);pointer-events:none;z-index:1;}
.ex-slider{position:relative;height:100%;}
.ex-slide{position:absolute;inset:0;opacity:0;transition:opacity .6s ease;}
.ex-slide.is-active{opacity:1;}
.ex-slider img{width:100%;height:100%;object-fit:cover;display:block;}
.ex-dots{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:8px;z-index:2;}
.ex-dot{width:12px;height:12px;border-radius:999px;border:0;padding:0;background:rgba(255,255,255,.5);cursor:pointer;transition:opacity var(--speed),transform var(--speed),background var(--speed),width var(--speed);}
.ex-dot.is-active{width:28px;background:#fff;opacity:1;}

.exercise-content{display:flex;flex-direction:column;gap:20px;}
.exercise-tags{display:flex;flex-wrap:wrap;gap:10px;}
.exercise-tag{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:999px;background:rgba(5,134,199,.12);color:var(--exercise-primary);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;}
.exercise-section{background:var(--exercise-surface);border-radius:28px;padding:22px 24px;box-shadow:var(--exercise-shadow);display:flex;flex-direction:column;gap:16px;}
.exercise-section__title{margin:0;font-size:16px;font-weight:700;color:var(--exercise-text);}
.exercise-section--text .exercise-description{color:var(--exercise-text);font-size:15px;line-height:1.7;}
.exercise-description p{margin:0 0 12px;}
.exercise-description p:last-child{margin-bottom:0;}
.exercise-pills{display:flex;flex-wrap:wrap;gap:10px;}
.exercise-pill{display:inline-flex;align-items:center;padding:8px 14px;border-radius:18px;background:rgba(5,134,199,.1);color:var(--exercise-text);font-size:14px;font-weight:600;}
.exercise-pill--muted{background:rgba(210,225,236,.65);color:var(--exercise-muted);}
.exercise-stats{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));}
.exercise-stat{background:rgba(5,134,199,.08);border-radius:20px;padding:18px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;}
.exercise-stat__label{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--exercise-muted);}
.exercise-stat__value{margin:0;font-size:26px;font-weight:700;color:var(--exercise-text);}
.exercise-stat__hint{font-size:12px;color:var(--exercise-muted);}
.exercise-section--timer{align-items:center;}
.exercise-timer{width:100%;display:flex;justify-content:center;}
.exercise-timer__display{display:flex;align-items:flex-end;gap:12px;}
.exercise-timer__block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:78px;height:96px;border-radius:24px;background:rgba(5,134,199,.08);box-shadow:inset 0 0 0 1px rgba(5,134,199,.12);}
.exercise-timer__value{font-size:30px;font-weight:700;color:var(--exercise-text);}
.exercise-timer__unit{font-size:12px;font-weight:600;color:var(--exercise-muted);text-transform:uppercase;letter-spacing:.1em;}
.exercise-timer__separator{font-size:28px;font-weight:700;color:var(--exercise-muted);padding-bottom:32px;}
.exercise-actions{display:flex;flex-direction:column;gap:14px;}
.exercise-actions__primary{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:18px;border-radius:22px;border:0;background:linear-gradient(135deg,var(--exercise-accent),var(--exercise-primary));color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:transform var(--speed),box-shadow var(--speed),filter var(--speed);}
.exercise-actions__primary:hover{transform:translateY(-1px);box-shadow:0 20px 40px rgba(5,134,199,.28);}
.exercise-actions__primary:active{transform:translateY(1px);}
.exercise-actions__primary.is-running{background:linear-gradient(135deg,#f87171,#ef4444);}
.exercise-actions__primary.is-complete{background:linear-gradient(135deg,#34d399,#22c55e);}
.exercise-actions__secondary{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:16px;border-radius:20px;border:1px solid var(--exercise-border);background:transparent;font-size:15px;font-weight:600;color:var(--exercise-primary);transition:background var(--speed),color var(--speed),border-color var(--speed),box-shadow var(--speed);}
.exercise-actions__secondary:hover{background:rgba(5,134,199,.08);border-color:rgba(5,134,199,.28);}
.exercise-note{margin:0;padding:14px 18px;border-radius:20px;background:rgba(5,134,199,.08);color:var(--exercise-muted);font-size:14px;line-height:1.6;}
.exercise-note--success{background:rgba(34,197,94,.18);color:#166534;}
.exercise-note--comment{background:var(--exercise-surface);border:1px dashed var(--exercise-border);color:var(--exercise-text);display:flex;flex-direction:column;gap:6px;}
.exercise-note__label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--exercise-primary);}
.exercise-note__text{margin:0;font-size:14px;line-height:1.6;}
.exercise-empty{padding:32px 28px;background:var(--exercise-surface);border-radius:28px;box-shadow:var(--exercise-shadow);display:flex;flex-direction:column;gap:16px;align-items:flex-start;font-family:'Lexend','Noto Sans',sans-serif;}
.exercise-empty__text{margin:0;font-size:16px;color:var(--exercise-muted);}
@media (min-width:768px){
  .exercise-page--standalone{padding:32px 24px 96px;}
  .exercise-page--standalone .exercise-page__shell{max-width:640px;}
  .exercise-hero__media{padding:24px;}
  .exercise-section{padding:26px 28px;}
  .exercise-actions__primary{font-size:17px;}
}
[data-theme="dark"] .exercise-page{--exercise-bg:#0a101d;--exercise-surface:#0f1a2e;--exercise-border:#1f2a3d;--exercise-text:#e2e8f0;--exercise-muted:#94a3b8;--exercise-primary:#38bdf8;--exercise-accent:#0ea5e9;--exercise-shadow:0 28px 60px rgba(8,47,73,.55);}
[data-theme="dark"] .exercise-page--standalone .exercise-header{background:rgba(15,23,42,.85);}
[data-theme="dark"] .exercise-header__back{border-color:rgba(148,163,184,.2);background:rgba(148,163,184,.08);color:var(--exercise-text);}
[data-theme="dark"] .exercise-header__back:hover{background:rgba(56,189,248,.18);color:#38bdf8;}
[data-theme="dark"] .exercise-gallery{background:#020617;}
[data-theme="dark"] .exercise-gallery::after{background:linear-gradient(0deg,rgba(2,8,23,.7) 0%,rgba(2,8,23,0) 50%);}
[data-theme="dark"] .exercise-tag{background:rgba(56,189,248,.14);color:#bae6fd;}
[data-theme="dark"] .exercise-pill{background:rgba(56,189,248,.12);color:var(--exercise-text);}
[data-theme="dark"] .exercise-pill--muted{background:rgba(148,163,184,.16);color:var(--exercise-muted);}
[data-theme="dark"] .exercise-stat{background:rgba(56,189,248,.1);}
[data-theme="dark"] .exercise-timer__block{background:rgba(56,189,248,.12);box-shadow:inset 0 0 0 1px rgba(56,189,248,.18);}
[data-theme="dark"] .exercise-actions__secondary{border-color:rgba(148,163,184,.25);color:#38bdf8;background:rgba(56,189,248,.08);}
[data-theme="dark"] .exercise-actions__secondary:hover{background:rgba(56,189,248,.12);border-color:rgba(56,189,248,.35);}
[data-theme="dark"] .exercise-note{background:rgba(56,189,248,.1);color:var(--exercise-muted);}
[data-theme="dark"] .exercise-note--comment{border-color:rgba(148,163,184,.28);}
[data-theme="dark"] .ex-dot{background:rgba(226,232,240,.4);}
[data-theme="dark"] .ex-dot.is-active{background:#fff;}

/* Карточка упражнения в списке */
.workout-card{display:flex;flex-direction:column;background:var(--c-surface);border-radius:12px;box-shadow:0 2px 6px rgba(0,0,0,.05);overflow:hidden;margin-bottom:12px}
.workout-card-media{width:100%;overflow:hidden}
.workout-card .ex-slider{height:180px}
.workout-card-body{padding:12px;display:flex;flex-direction:column;gap:8px}
.workout-card-title{font-weight:600;font-size:16px}
.workout-card-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:14px}
.workout-card-meta .meta-item{background:#f5f5f5;border-radius:6px;padding:6px 12px;display:flex;align-items:center;gap:4px}
.workout-card-meta .meta-item i{opacity:.6}
.workout-card-meta .meta-item span{opacity:.6}
[data-theme="dark"] .workout-card-meta .meta-item,
[data-theme="dark"] .workout-card-meta .meta-item.weight,
[data-theme="dark"] .workout-card-meta .meta-item.reps,
[data-theme="dark"] .workout-card-meta .meta-item.sets,
[data-theme="dark"] .workout-card-meta .meta-item.mode{
  background:var(--c-border);
}
.workout-card-comment{font-size:13px;opacity:.8}
.workout-card-tax{margin-top:4px;font-size:13px}
.tax-label{font-weight:600;margin-right:4px}
.tax-term{display:inline-block;background:#eef2f5;border-radius:4px;padding:2px 6px;margin:2px 4px 2px 0}
.tax-term-mt{background:var(--c-blue);color:#fff}
.tax-term-mi{background:var(--c-green);color:#fff}
.tax-term-inv{background:var(--c-sand)}
.workout-card-action{padding:12px;border-top:1px solid var(--c-border)}
.workout-card-action .btn{width:100%}

.workout-card.is-finished{opacity:.5;pointer-events:none}

.progress{background:var(--c-border);border-radius:4px;height:8px;overflow:hidden;width:100%}
.progress-bar{background:var(--c-green);height:100%}

/* Заголовки секций на дашборде */
.dash-h4{margin:12px 0 6px}
.dash-h4.mt-16{margin-top:16px}
.dash-h4.mb-8{margin-bottom:8px}
.dash-h5{margin:12px 0 6px;font-size:15px}
.meal-plan{display:grid;gap:12px}
.food-recommendations-page{
  min-height:100vh;
  background:var(--today-bg);
  display:flex;
  justify-content:center;
  padding:32px 12px 96px;
}
.food-recommendations-page__inner{
  width:100%;
  max-width:720px;
  display:flex;
  flex-direction:column;
  gap:24px;
  font-family:'Lexend','Noto Sans',sans-serif;
  color:var(--today-text);
}
.food-recommendations__head{
  display:flex;
  align-items:center;
  gap:16px;
}
.food-recommendations__back,
.food-recommendations__spacer{
  width:44px;
  height:44px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--today-text);
  text-decoration:none;
  transition:background-color .2s,color .2s,transform .2s;
}
.food-recommendations__back:hover{
  background:rgba(6,182,212,.12);
  color:var(--today-primary);
  transform:translateX(-2px);
}
.food-recommendations__spacer{opacity:0;pointer-events:none;}
.food-recommendations__title-group{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.food-recommendations__title{
  margin:0;
  font-size:26px;
  font-weight:700;
  color:var(--today-text);
}
.food-recommendations__meta{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  font-size:14px;
  color:var(--today-muted);
}
.food-recommendations{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.food-recommendations__note{
  background:rgba(6,182,212,.12);
  border-radius:18px;
  padding:18px 20px;
  line-height:1.5;
  font-size:15px;
  color:var(--today-text);
}
.food-recommendations__note strong{
  display:block;
  margin-bottom:6px;
  font-weight:700;
  color:var(--today-text);
}
.food-recommendations__sections{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.food-recommendations__section{
  background:var(--today-card);
  border-radius:22px;
  padding:22px 24px;
  box-shadow:0 12px 28px rgba(15,23,42,.08);
}
.food-recommendations__section-title{
  margin:0;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:20px;
  font-weight:700;
  color:var(--today-text);
}
.food-recommendations__section-icon{font-size:22px;line-height:1;}
.food-recommendations__list{
  list-style:none;
  margin:20px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.food-recommendations__item{
  display:flex;
  flex-direction:column;
  gap:12px;
  border-bottom:1px solid rgba(148,163,184,.25);
  padding-bottom:18px;
}
.food-recommendations__item:last-child{border-bottom:none;padding-bottom:0;}
.food-recommendations__item-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.food-recommendations__item-name{font-weight:600;font-size:17px;}
.food-recommendations__item-grams{font-size:15px;font-weight:500;color:var(--today-muted);}
.food-recommendations__macros{display:flex;flex-wrap:wrap;gap:12px;margin:0;}
.food-recommendations__macro{display:flex;flex-direction:column;min-width:110px;font-size:14px;color:var(--today-muted);}
.food-recommendations__macro dt{font-weight:600;margin:0 0 4px;}
.food-recommendations__macro dd{margin:0;font-size:15px;font-weight:600;color:var(--today-text);}
.food-recommendations__item-note{margin:0;font-size:14px;color:var(--today-muted);line-height:1.45;}
.food-recommendations__empty{
  background:rgba(148,163,184,.18);
  border-radius:18px;
  padding:24px 20px;
  font-size:16px;
  line-height:1.5;
  color:var(--today-text);
  text-align:center;
}
@media (max-width:640px){
  .food-recommendations-page{padding:24px 12px 88px;}
  .food-recommendations__head{flex-wrap:wrap;}
  .food-recommendations__back{order:-1;}
  .food-recommendations__title{font-size:24px;}
  .food-recommendations__sections{gap:18px;}
  .food-recommendations__section{padding:20px 18px;border-radius:18px;}
  .food-recommendations__item{gap:10px;}
  .food-recommendations__macro{min-width:96px;}
}
.dash-box-overflow{overflow-x:auto;max-width:100%}
.mb-8{margin-bottom:8px}
.mt-12{margin-top:12px}
.mb-6{margin-bottom:6px}
.mt-0{margin-top:0}
.grid-gap{display:grid;gap:8px}
.muted{opacity:.7;font-size:13px}
.mb-12{margin-bottom:12px}

/* Рипл-эффект для кнопок */
.btn{position:relative;overflow:hidden}
.btn .ripple{
  position:absolute;border-radius:999px;pointer-events:none;transform:translate(-50%,-50%) scale(0);
  animation:ripple .6s ease-out;opacity:.25;background:#fff;width:10px;height:10px;left:0;top:0;
}
@keyframes ripple{to{transform:translate(-50%,-50%) scale(25);opacity:0}}

/* Табличные списки истории */
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:.55rem;border-bottom:1px solid var(--c-border);text-align:left;font-size:14px}
.table th{font-weight:600}

/* Вьюхи (экраны) */
.view{display:none;opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease}
.view.is-active{display:block;opacity:1;transform:none}

/* Общий контейнер и шапка внутренних экранов */
.dashboard-view{min-height:100vh;display:flex;flex-direction:column;}
.dashboard-view__header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;justify-content:space-between;padding:24px 24px 12px;background:var(--dashboard-view-bg, var(--c-bg, #f4f7fc));}
.dashboard-view__title{margin:0;font-size:22px;font-weight:700;color:var(--dashboard-view-text, var(--c-text, #0d171c));text-align:center;flex:1;}
.dashboard-view__title-group{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;}
.dashboard-view__subtitle{margin:0;font-size:14px;font-weight:600;color:var(--dashboard-view-muted, rgba(15,23,42,.55));}
.dashboard-view__stub,
.dashboard-view__back{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:16px;flex-shrink:0;}
.dashboard-view__stub{opacity:0;pointer-events:none;}
.dashboard-view__back{background:#e2e8f0;color:var(--dashboard-view-text, #0d171c);text-decoration:none;transition:background-color .2s ease,color .2s ease,transform .2s ease;}
.dashboard-view__back:hover{background:#cbd5f5;color:#0586c7;transform:translateX(-2px);}
.dashboard-view__back i,
.dashboard-view__back svg{width:20px;height:20px;}
.dashboard-view__actions{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.dashboard-view__content{flex:1;display:flex;flex-direction:column;gap:24px;padding:0 24px 120px;}
@media (max-width:640px){
  .dashboard-view__header{padding:20px 20px 12px;}
  .dashboard-view__content{padding:0 20px 100px;}
}

.dashboard-view--workouts .dashboard-view__header{flex-wrap:wrap;row-gap:12px;}
.dashboard-view--workouts .dashboard-view__actions{margin-left:auto;}
@media (max-width:640px){
  .dashboard-view--workouts .dashboard-view__header{justify-content:center;}
  .dashboard-view--workouts .dashboard-view__actions{width:100%;justify-content:center;margin-left:0;}
}

/* Контент с верхним и нижним таб-баром */
.page-content{padding-top:calc(24px + var(--topbar-height));padding-bottom:calc(24px + var(--tabbar-height));padding-top:calc(24px + var(--topbar-height) + env(safe-area-inset-top));padding-bottom:calc(24px + var(--tabbar-height) + env(safe-area-inset-bottom))} /* чтобы шапка и таб-бар не перекрывали контент */

/* Верхняя панель */
.topbar{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--c-surface);border-bottom:1px solid var(--c-border);padding-top:0;padding-top:env(safe-area-inset-top);padding-left:0;padding-left:env(safe-area-inset-left);padding-right:0;padding-right:env(safe-area-inset-right)}
.topbar .inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:8px 24px;height:var(--topbar-height)}
.topbar .logo{font-weight:700;color:var(--c-deep);font-size:1.1rem;letter-spacing:.02em}
.topbar__nav{margin-left:auto;display:flex;align-items:center;gap:16px}
.topbar__link{color:var(--c-blue);font-weight:600;padding:8px 14px;border-radius:999px;transition:background-color var(--speed),color var(--speed)}
.topbar__link:hover{background:var(--c-cream);opacity:1}
.topbar__link:focus-visible{outline:2px solid var(--c-blue);outline-offset:4px}
.topbar__nav .topbar__link:last-child{background:var(--c-accent);color:#fff;box-shadow:0 12px 28px rgba(5,134,199,.25)}
.topbar__nav .topbar__link:last-child:hover{background:#0a9ce3;}
@media (max-width:720px){
  .topbar .inner{padding:8px 16px;gap:16px}
  .topbar__nav{gap:12px}
  .topbar__link{padding:6px 12px;font-size:.9rem}
}

/* Нижний таб-бар */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:1000;background:var(--c-surface);border-top:1px solid var(--c-border);padding-bottom:0;padding-bottom:env(safe-area-inset-bottom);padding-left:0;padding-left:env(safe-area-inset-left);padding-right:0;padding-right:env(safe-area-inset-right)}
.tabbar .inner{max-width:600px;margin:0 auto;padding:8px 10px;display:flex;gap:8px;justify-content:space-between;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:rgba(5,134,199,.45) transparent;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.tabbar .inner::-webkit-scrollbar{height:6px}
.tabbar .inner::-webkit-scrollbar-thumb{background:rgba(5,134,199,.45);border-radius:999px}
.tabbar .inner::-webkit-scrollbar-track{background:transparent}
.tabbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 6px;border-radius:12px;color:var(--c-blue);font-size:12px;scroll-snap-align:center}
.tabbar a.is-active{background:var(--c-cream);color:var(--c-deep)}
.tabbar svg{width:22px;height:22px;display:block}

.tabbar--user .inner,
.tabbar--coach .inner{padding:6px 12px;gap:12px;}
.tabbar--user a,
.tabbar--coach a{flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;padding:12px 8px 18px;border-radius:16px;background:none;color:#6f7f94;font-size:12px;font-weight:500;position:relative;transition:color var(--speed);text-align:center;}
.tabbar--user a::after,
.tabbar--coach a::after{content:"";position:absolute;left:50%;bottom:6px;transform:translateX(-50%);width:28px;height:3px;border-radius:999px;background:transparent;transition:background-color var(--speed);}
.tabbar--user a:hover,
.tabbar--coach a:hover{color:#0586c7;}
.tabbar--user a.is-active,
.tabbar--coach a.is-active{background:none;color:#0586c7;}
.tabbar--user a.is-active::after,
.tabbar--coach a.is-active::after{background-color:#0586c7;}
.tabbar--user svg,
.tabbar--coach svg{width:24px;height:24px;display:block;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none;}

@media (max-width:600px){
  .tabbar .inner{gap:10px;justify-content:flex-start;scroll-padding:0 16px;}
  .tabbar a{flex:0 0 auto;min-width:88px;}
  .tabbar--user a,
  .tabbar--coach a{min-width:96px;}
}

/* Главная страница */
.home{display:flex;flex-direction:column;gap:0;background:var(--c-bg);}
.home-hero{position:relative;overflow:hidden;margin-top:0;padding:calc(var(--topbar-height) + 88px) 0 120px;background:linear-gradient(145deg,#f3f7ff 0%,#e3efff 48%,#f9fbff 100%);color:var(--c-text);font-family:'Lexend','Noto Sans',sans-serif;}
.home-hero::before,.home-hero::after{content:"";position:absolute;inset:auto;pointer-events:none;border-radius:40px;opacity:.4;filter:blur(0)}
.home-hero::before{top:12%;right:-6%;width:420px;height:420px;background:radial-gradient(circle at 50% 50%,rgba(5,134,199,.4) 0%,rgba(5,134,199,0) 70%);filter:blur(6px);}
.home-hero::after{bottom:-18%;left:-12%;width:520px;height:520px;background:radial-gradient(circle at 50% 50%,rgba(74,137,189,.28) 0%,rgba(74,137,189,0) 70%);filter:blur(8px);}
.home-hero__layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:72px;align-items:center;}
.home-hero__copy{display:flex;flex-direction:column;gap:28px;max-width:600px}
.home-hero__badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 18px;
  border-radius:999px;
  background:rgba(5,134,199,.12);
  color:#036098;
  font-size:.95rem;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  max-width:100%;
  min-width:0;
  white-space:normal;
  text-align:left;
  line-height:1.35;
}
.home-hero__badge::before{content:"";width:8px;height:8px;border-radius:50%;background:#0586c7;box-shadow:0 0 0 6px rgba(5,134,199,.25);}
.home-hero__title{margin:0;font-size:clamp(2.6rem,5vw,3.9rem);line-height:1.05;font-weight:800;color:#0d171c;}
.home-hero__subtitle{margin:0;max-width:540px;font-size:1.15rem;line-height:1.7;color:#4a7894;font-weight:500;}
.home-hero__highlights{margin:0;padding:0;list-style:none;display:grid;gap:14px;max-width:520px;}
.home-hero__highlights li{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:20px;background:rgba(255,255,255,.78);backdrop-filter:blur(12px);box-shadow:0 12px 32px rgba(13,23,28,.08);font-size:1rem;color:#0f1a20;font-weight:500;}
.home-hero__dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,#0586c7 0%,#0a5ea8 100%);box-shadow:0 0 0 4px rgba(5,134,199,.16);flex-shrink:0;}
.home-hero__actions{display:flex;flex-wrap:wrap;gap:16px}
.home-hero .btn--ghost{color:#0586c7;border-color:rgba(5,134,199,.4)}
.home-hero__visual{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:20px}
.home-hero__glow{position:absolute;inset:auto -30% -22% -10%;height:360px;background:radial-gradient(circle at 60% 40%,rgba(5,134,199,.55) 0%,rgba(5,134,199,0) 70%);filter:blur(30px);opacity:.7;}
.home-hero-card{position:relative;display:flex;flex-direction:column;gap:20px;width:100%;padding:26px 28px;border-radius:28px;background:var(--c-surface);box-shadow:0 24px 48px rgba(13,23,28,.16);overflow:hidden;}
.home-hero-card::after{content:"";position:absolute;top:0;right:0;width:160px;height:160px;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.45) 0%,rgba(255,255,255,0) 70%);opacity:.35;}
.home-hero-card--coach{background:linear-gradient(155deg,#0586c7 0%,#0a5ea8 100%);color:#f8fbfc;box-shadow:0 26px 52px rgba(5,134,199,.32);}
.home-hero-card--client{align-self:flex-start;max-width:320px;margin-right:18%;background:#ffffff;color:#0d171c;box-shadow:0 22px 48px rgba(13,23,28,.12);border:1px solid rgba(5,134,199,.12);}
.home-hero-card__head{display:flex;flex-direction:column;gap:8px;font-size:.95rem;font-weight:500}
.home-hero-card__role{font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.8;}
.home-hero-card__status{font-size:.95rem;font-weight:600}
.home-hero-card--client .home-hero-card__status{color:#4a7894;font-weight:500}
.home-hero-card__body{display:flex;flex-direction:column;gap:16px}
.home-hero-card__row{display:flex;align-items:center;justify-content:space-between;font-size:.95rem}
.home-hero-card__label{opacity:.75}
.home-hero-card__value{font-size:1.05rem}
.home-hero-card__progress{display:flex;flex-direction:column;gap:8px}
.home-hero-card__progress-label{font-size:.85rem;opacity:.75}
.home-hero-card__progress-bar{position:relative;display:block;width:100%;height:10px;border-radius:999px;background:rgba(255,255,255,.25);overflow:hidden}
.home-hero-card__progress-bar span{position:absolute;inset:0;border-radius:999px;background:linear-gradient(90deg,#4ade80 0%,#22c55e 100%);}
.home-hero-card--client .home-hero-card__progress-bar{background:rgba(5,134,199,.08)}
.home-hero-card__metric{display:flex;flex-direction:column;gap:4px;font-size:.95rem;color:#4a7894}
.home-hero-card__metric strong{font-size:1.05rem;color:#0d171c}
.home-hero-card--client .home-hero-card__metric strong{color:#036098}

.home-section-title{margin:0 0 24px;font-size:clamp(1.9rem,4vw,2.6rem);font-weight:700;color:var(--c-deep);text-align:center}
.home-features{padding:110px 0;background:var(--c-cream);}
.home-features__grid{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.home-feature{background:var(--c-surface);border-radius:24px;padding:32px 28px;box-shadow:0 18px 48px rgba(15,26,32,.08);display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;min-height:240px}
.home-feature__icon{font-size:2rem;background:rgba(69,104,130,.1);color:var(--c-deep);width:64px;height:64px;border-radius:20px;display:flex;align-items:center;justify-content:center}
.home-feature__title{margin:0;font-size:1.3rem;font-weight:700;color:var(--c-deep)}
.home-feature__text{margin:0;font-size:1rem;color:rgba(15,26,32,.72);line-height:1.6}

.home-showcase{padding:96px 0;background:var(--c-surface);}
.home-showcase__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:36px}
.home-showcase__link{font-weight:600;color:var(--c-blue)}
.home-showcase__grid{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}

.coach-card{background:var(--c-cream);border-radius:28px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 44px rgba(15,26,32,.08);transition:transform var(--speed),box-shadow var(--speed)}
.coach-card__media{position:relative;overflow:hidden;}
.coach-card__media img{width:100%;height:220px;object-fit:cover;display:block}
.coach-card__body{padding:26px;display:flex;flex-direction:column;gap:10px}
.coach-card__name{margin:0;font-size:1.35rem;font-weight:700;color:var(--c-deep)}
.coach-card__meta{margin:0;color:rgba(15,26,32,.6);font-weight:600}
.coach-card__excerpt{margin:0;color:rgba(15,26,32,.72);line-height:1.5}
.coach-card__cta{margin-top:auto;font-weight:600;color:var(--c-accent)}
.coach-card:hover{transform:translateY(-6px);box-shadow:0 26px 58px rgba(15,26,32,.12)}
.coach-card--showcase{background:var(--c-surface)}

.home-cta{padding:110px 0 140px}
.home-cta__content{background:linear-gradient(135deg,#1b3c53 0%,#456882 100%);border-radius:32px;padding:56px 48px;text-align:center;color:#fff;box-shadow:0 26px 60px rgba(15,26,32,.15);max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.home-cta__content p{margin:0 auto;max-width:520px;color:rgba(255,255,255,.82);font-size:1.05rem}
.home-cta__content .home-section-title{color:#fff;margin-bottom:12px}
.home-cta__content .home-hero__actions{justify-content:center}
.home-cta__content .btn--ghost{color:#fff;border-color:rgba(255,255,255,.7)}

@media (max-width:1024px){
  .home-hero{padding:calc(var(--topbar-height) + 72px) 0 104px}
  .home-hero__layout{grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:56px}
  .home-hero-card{padding:24px 26px}
}
@media (max-width:900px){
  .home-hero{padding:calc(var(--topbar-height) + 60px) 0 96px}
  .home-hero__layout{grid-template-columns:1fr;gap:48px}
  .home-hero__copy{max-width:unset;align-items:center;text-align:center}
  .home-hero__visual{align-items:center;margin-top:12px;width:100%}
  .home-hero-card{max-width:420px}
  .home-hero-card--client{margin-right:0;align-self:center;margin-top:-18px}
}
@media (max-width:640px){
  .home-hero{padding:calc(var(--topbar-height) + 48px) 0 74px}
  .home-hero__layout{gap:36px}
  .home-hero__copy{gap:22px;text-align:left;align-items:flex-start}
  .home-hero__subtitle{font-size:1.02rem}
  .home-hero__highlights{width:100%}
  .home-hero__highlights li{font-size:.95rem;padding:12px 16px}
  .home-hero__actions{width:100%;flex-direction:column;align-items:stretch}
  .home-hero__visual{margin-top:0}
  .home-hero-card{padding:22px 24px;width:100%;max-width:360px;margin:0 auto}
  .home-hero-card--client{margin-top:-12px}
  .home-features{padding:80px 0}
  .home-showcase{padding:80px 0}
  .home-cta{padding:80px 0 110px}
  .home-cta__content{padding:44px 28px}
}
@media (max-width:480px){
  .container{padding:0 16px}
  .topbar .inner{padding:8px 16px}
  .home-hero__layout{gap:28px}
  .home-hero__copy{align-items:stretch;text-align:left}
  .home-hero__badge{align-self:flex-start}
  .home-hero__actions{gap:12px}
  .home-hero-card{max-width:100%}
  .home-hero-card--client{margin-top:0}
  .home-showcase__grid{grid-template-columns:minmax(0,1fr)}
  .home-features__grid{grid-template-columns:minmax(0,1fr)}
}

/* Витрина тренеров */
.page-content.page-showcase{background:var(--c-cream);min-height:100vh;padding-bottom:120px}
.page-showcase .container{max-width:1100px}
.page-head{text-align:center;margin-bottom:56px;display:flex;flex-direction:column;gap:12px}
.page-kicker{margin:0;font-size:.85rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-blue)}
.page-title{margin:0;font-size:clamp(2.4rem,5vw,3.2rem);font-weight:800;color:var(--c-deep)}
.page-subtitle{margin:0 auto;max-width:580px;color:rgba(15,26,32,.68);font-size:1.05rem;line-height:1.6}
.coach-grid{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.coach-empty{text-align:center;color:rgba(15,26,32,.6);font-size:1.05rem}

/* Карточка тренера */
.page-coach-profile{background:var(--c-cream);min-height:100vh;padding-bottom:140px}
.page-coach-profile .container{max-width:900px}
.coach-profile{background:var(--c-surface);border-radius:32px;padding:48px;box-shadow:0 26px 60px rgba(15,26,32,.12);display:flex;flex-direction:column;gap:32px}
.coach-profile__intro{display:flex;align-items:center;gap:32px;flex-wrap:wrap}
.coach-profile__media img{width:190px;height:190px;border-radius:32px;object-fit:cover;box-shadow:0 18px 40px rgba(15,26,32,.15)}
.coach-profile__main{display:flex;flex-direction:column;gap:8px;min-width:240px}
.coach-profile__kicker{margin:0;font-size:.85rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-blue)}
.coach-profile__title{margin:4px 0;font-size:clamp(2.4rem,4.5vw,3rem);font-weight:800;color:var(--c-deep)}
.coach-profile__meta{margin:0;display:flex;align-items:center;gap:8px;font-weight:600;color:rgba(15,26,32,.68)}
.coach-profile__meta a{color:inherit}
.coach-profile__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.coach-profile__actions .btn--ghost{color:var(--c-blue);border-color:rgba(69,104,130,.4)}
.coach-profile__section{padding-top:16px;border-top:1px solid var(--c-border)}
.coach-profile__section h2{margin:0 0 12px;font-size:1.35rem;font-weight:700;color:var(--c-deep)}
.coach-profile__section p{margin:0;color:rgba(15,26,32,.78);line-height:1.7;font-size:1.02rem}
.coach-profile__section ul{margin:0;padding-left:20px;display:grid;gap:8px;color:rgba(15,26,32,.78);line-height:1.6}
.coach-profile--empty{text-align:center;padding:72px;border-radius:28px;background:var(--c-surface);box-shadow:0 20px 44px rgba(15,26,32,.1);display:flex;flex-direction:column;gap:18px;align-items:center}
.coach-profile--empty .btn{margin-top:12px}

@media (max-width:680px){
  .coach-profile{padding:36px 28px}
  .coach-profile__media img{width:160px;height:160px;border-radius:26px}
}
@media (max-width:520px){
  .coach-profile{padding:32px 24px}
  .coach-profile__media img{width:140px;height:140px;border-radius:22px}
  .coach-profile__actions{flex-direction:column;align-items:stretch}
}

/* Верхнее меню в кабинете тренера */
.dashboard-menu{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.dashboard-menu a{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;padding:.6rem .9rem}
.dashboard-menu a.is-active{background:var(--c-cream);color:var(--c-deep)}
.dashboard-menu.bottom{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;border-top:1px solid var(--c-border);background:var(--c-surface)}
.dashboard-menu.bottom a{flex:1;text-align:center;padding:.75rem 0}
@media(max-width:600px){.dashboard-menu{display:none  .form .four{grid-template-columns:repeat(2,1fr);} }}

/* Карточки подопечных */
.pupils-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.pupil-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;background:var(--c-surface);border-radius:16px;padding:16px;box-shadow:0 2px 6px rgba(0,0,0,.05)}
.pupil-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover}
.pupil-main{display:flex;flex-direction:column;gap:4px}
.pupil-name{font-weight:600}
.pupil-phone,.pupil-meta{font-size:14px;opacity:.75}
.pupil-card .btn{margin-top:8px}

/* Chat */
.dashboard-chat{
  --dashboard-view-bg:#f4f7fc;
  --dashboard-view-text:#0d171c;
  --dashboard-view-muted:#47819e;
}
.chat-shell{display:flex;justify-content:center;padding:12px 0}
.chat-card{
  --chat-bg:#f8fbfc;
  --chat-border:#e6eff4;
  --chat-primary:#0586c7;
  --chat-muted:#47819e;
  --chat-text:#0d171c;
  --chat-bubble-other:#e6eff4;
  --chat-bubble-me:#0586c7;
  font-family:'Lexend','Noto Sans',sans-serif;
  width:100%;
  max-width:720px;
  min-height:520px;
  display:flex;
  flex-direction:column;
  background:var(--chat-bg);
  border-radius:28px;
  border:1px solid var(--chat-border);
  box-shadow:0 20px 44px rgba(13,23,28,.08);
  overflow:hidden;
}
.chat-card__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;background:var(--chat-bg);border-bottom:1px solid var(--chat-border)}
.chat-card__profile{display:flex;align-items:center;gap:12px}
.chat-card__profile-info{display:flex;flex-direction:column;gap:2px}
.chat-card__profile-avatar{width:44px;height:44px;border-radius:50%;background:#d7e3eb;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;color:var(--chat-text);text-transform:uppercase;overflow:hidden}
.chat-card__profile-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.chat-card__profile-name{margin:0;font-size:1.125rem;font-weight:600;color:var(--chat-text)}
.chat-card__profile-status{margin:0;font-size:.75rem;font-weight:500;color:var(--chat-muted)}
.chat-card__controls{display:flex;align-items:center;gap:12px}
.chat-card__select{display:flex;flex-direction:column;gap:6px;font-size:.75rem;color:var(--chat-muted)}
.chat-card__select-label{font-weight:500}
.chat-card__select-input{appearance:none;font:500 .95rem/1 'Lexend','Noto Sans',sans-serif;color:var(--chat-text);background:#fff;border:1px solid var(--chat-border);border-radius:999px;padding:.55rem 2.5rem .55rem 1rem;min-width:220px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2347819e'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:16px}
.chat-card__body{flex:1;padding:24px;background:var(--chat-bg)}
.chat-card__messages{display:flex;flex-direction:column;gap:16px;max-height:65vh;overflow-y:auto;padding-right:4px}
.chat-card__messages::-webkit-scrollbar{width:6px}
.chat-card__messages::-webkit-scrollbar-thumb{background:rgba(71,129,158,.3);border-radius:999px}
.chat-empty{margin:0 auto;text-align:center;color:var(--chat-muted);font-size:.9rem;padding:40px 16px;max-width:360px}
.chat-message{display:flex;gap:12px;align-items:flex-end;width:100%}
.chat-message--me{flex-direction:row-reverse}
.chat-message__avatar{width:36px;height:36px;border-radius:50%;background:#d7e3eb;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;color:var(--chat-text);font-weight:600;font-size:.8rem;text-transform:uppercase}
.chat-message__avatar img{width:100%;height:100%;object-fit:cover;display:block}
.chat-message__avatar--placeholder{background:#d7e3eb}
.chat-message__avatar--placeholder span{display:block}
.chat-message__content{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:min(520px,80vw)}
.chat-message--me .chat-message__content{align-items:flex-end}
.chat-message__bubble{padding:12px 16px;border-radius:20px 20px 20px 6px;background:var(--chat-bubble-other);color:var(--chat-text);font-size:1rem;line-height:1.45;box-shadow:0 10px 24px rgba(13,23,28,.08)}
.chat-message--me .chat-message__bubble{background:var(--chat-bubble-me);color:#fff;border-radius:20px 20px 6px 20px}
.chat-message__meta{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:500;color:var(--chat-muted)}
.chat-message--me .chat-message__meta{color:rgba(255,255,255,.8)}
.chat-message__status{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:var(--chat-muted)}
.chat-message__status svg{width:100%;height:100%}
.chat-message__status.is-read{color:var(--chat-primary)}
.chat-card__footer{padding:0 24px 24px;background:var(--chat-bg)}
.chat-card__composer{display:flex;align-items:center;gap:12px;background:#fff;border-radius:999px;padding:6px;border:1px solid var(--chat-border);box-shadow:0 10px 26px rgba(13,23,28,.06)}
.chat-card__text{flex:1;border:0;background:transparent;padding:0 16px;height:44px;font:500 1rem 'Lexend','Noto Sans',sans-serif;color:var(--chat-text);outline:none}
.chat-card__text::placeholder{color:var(--chat-muted)}
.chat-card__send{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:0;padding:0;gap:0;background:var(--chat-primary);color:#fff;cursor:pointer;transition:transform var(--speed),box-shadow var(--speed)}
.chat-card__send:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(5,134,199,.32)}
.chat-card__send:active{transform:translateY(1px)}
.chat-card__send svg{width:22px;height:22px}

@media(max-width:768px){
  .chat-shell{padding:0}
  .chat-card{border-radius:20px;max-width:100%;min-height:calc(100vh - 120px)}
  .chat-card__header{flex-direction:column;align-items:flex-start;gap:12px;padding:18px}
  .chat-card__controls{width:100%}
  .chat-card__select{width:100%}
  .chat-card__select-input{width:100%}
  .chat-card__body{padding:18px}
  .chat-card__messages{max-height:60vh}
  .chat-card__footer{padding:0 18px 18px}
}

@media(max-width:540px){
  .dashboard-view__header{padding:8px 12px 4px;gap:6px;display:grid;grid-template-columns:auto 1fr auto;align-items:center}
  .dashboard-view__title-group{gap:2px;justify-self:center}
  .dashboard-view__title{font-size:18px;line-height:1.25}
  .dashboard-view__subtitle{font-size:12px}
  .dashboard-view__back,
  .dashboard-view__stub{width:36px;height:36px;border-radius:12px}
  .dashboard-view__actions{gap:6px;justify-self:end}
  .dashboard-view__content{padding:0 12px 72px;gap:14px}
  .dashboard-menu.bottom a{padding:.45rem 0;font-size:12px}
  .dashboard-today__header{padding:10px 12px 4px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px}
  .dashboard-today__title{text-align:center;font-size:18px}
  .dashboard-today__settings{justify-self:end}
  .dashboard-today__content{padding:0 12px 72px;gap:14px}
  .today-card{padding:12px;border-radius:16px}
  .today-card__head{gap:10px;margin-bottom:10px}
  .today-card__head h2{font-size:16px}
  .today-card__plan{font-size:12px}
  .today-card__actions{gap:8px}
  .today-card__actions .btn{padding:.5rem .8rem;font-size:14px}
  .today-macros{gap:12px}
  .today-macro__title{font-size:13px}
  .today-workout__meta,
  .today-workout__body,
  .today-workout--empty{padding:12px;gap:10px}
  .today-workout__title{font-size:18px}
  .today-workout__count{font-size:14px}
  .today-workout__exercise{font-size:12px}
  .today-progress__track{margin-top:8px}
  .dashboard-progress__header{padding:10px 12px 4px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px}
  .dashboard-progress__back{width:36px;height:36px;border-radius:12px}
  .dashboard-progress__title{text-align:center;font-size:18px}
  .dashboard-progress__spacer{width:36px;height:36px}
  .dashboard-progress__content{padding:0 12px 64px;gap:14px}
  .dashboard-progress__cta{padding:12px;border-radius:14px;font-size:14px;gap:8px}
  .dashboard-progress__cta-icon{width:18px;height:18px}
  .coach-pupils.card{padding:18px;border-radius:24px}
  .coach-pupil-card{padding:16px;border-radius:20px}
  .coach-pupil-card__header{flex-direction:column;align-items:flex-start;gap:14px}
  .coach-pupil-card__person{gap:12px}
  .coach-pupil-card__avatar{width:56px;height:56px;border-radius:18px}
  .coach-pupil-card__button{width:100%;justify-content:center}
  .coach-pupil-card__footer{gap:10px}
  .coach-pupil-page__header{padding:20px;border-radius:26px;gap:16px}
  .coach-pupil-page__profile{flex-direction:column;align-items:flex-start;gap:14px}
  .coach-pupil-page__avatar{width:68px;height:68px;border-radius:22px}
  .coach-pupil-page__actions{width:100%;justify-content:flex-start}
  .coach-pupil-page__chat{width:100%;justify-content:center}
  .coach-pupil-page__tabs{gap:10px}
  .coach-pupil-page__tabs button{padding:10px 14px}
  .chat-card{border-radius:18px;min-height:auto}
  .chat-card__header{padding:14px 16px;gap:10px}
  .chat-card__profile{gap:10px}
  .chat-card__profile-avatar{width:40px;height:40px}
  .chat-card__profile-name{font-size:1rem}
  .chat-card__body{padding:16px}
  .chat-card__messages{gap:12px}
  .chat-card__footer{padding:0 16px 16px}
  .chat-card__composer{gap:8px;padding:4px 6px}
  .chat-card__text{height:40px;padding:0 12px;font-size:.95rem}
  .chat-card__send{width:40px;height:40px}
  .chat-card__send svg{width:18px;height:18px}
}

@media(max-width:420px){
  .dashboard-view__header{padding:6px 10px 2px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px}
  .dashboard-view__title{font-size:16px}
  .dashboard-view__subtitle{font-size:11px}
  .dashboard-view__back,
  .dashboard-view__stub{width:32px;height:32px;border-radius:10px}
  .dashboard-view__content{padding:0 10px 56px;gap:12px}
  .dashboard-today__header{padding:8px 10px 2px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px}
  .dashboard-today__title{text-align:center;font-size:16px}
  .dashboard-today__settings{justify-self:end}
  .dashboard-today__content{padding:0 10px 56px;gap:12px}
  .today-card{padding:10px;border-radius:14px}
  .today-card__head{gap:8px;margin-bottom:8px}
  .today-card__head h2{font-size:15px}
  .today-card__plan{font-size:11px}
  .today-card__actions{gap:6px}
  .today-card__actions .btn{padding:.45rem .7rem;font-size:13px}
  .today-workout__meta,
  .today-workout__body,
  .today-workout--empty{padding:10px;gap:8px}
  .today-workout__title{font-size:16px}
  .today-workout__count{font-size:13px}
  .today-workout__exercise{font-size:11px}
  .dashboard-progress__header{padding:8px 10px 2px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px}
  .dashboard-progress__back{width:32px;height:32px;border-radius:10px}
  .dashboard-progress__title{text-align:center;font-size:16px}
  .dashboard-progress__spacer{width:32px;height:32px}
  .dashboard-progress__content{padding:0 10px 50px;gap:12px}
  .dashboard-progress__cta{padding:10px;border-radius:12px;font-size:13px;gap:6px}
  .dashboard-progress__cta-icon{width:16px;height:16px}
  .dashboard-menu.bottom a{padding:.4rem 0;font-size:11px}
  .coach-pupils.card{padding:12px}
  .coach-pupil-card{padding:12px}
  .coach-pupil-card__avatar{width:48px;height:48px}
  .coach-pupil-page__header{padding:14px}
  .coach-pupil-page__tabs button{font-size:11px}
  .chat-card__header{padding:10px}
  .chat-card__body{padding:10px}
  .chat-card__footer{padding:0 10px 10px}
  .chat-card__composer{gap:4px;padding:4px}
  .chat-card__text{padding:0 8px;font-size:.85rem}
  .chat-card__send{width:34px;height:34px}
  .chat-card__send svg{width:14px;height:14px}
}

/* Загрузка аватара в профиле */
.avatar-upload{position:relative;display:inline-block;width:96px;height:96px;border-radius:50%;overflow:hidden;cursor:pointer;background:var(--c-border)}
.avatar-upload img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.avatar-upload .avatar-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);color:#fff;font-size:24px;opacity:0;transition:opacity var(--speed)}
.avatar-upload:hover .avatar-overlay{opacity:1}
/* Список продуктов и анимации */
.food-table{width:100%;border-collapse:collapse}
.food-table th,.food-table td{padding:.55rem;border-bottom:1px solid var(--c-border);text-align:left;font-size:14px}
.food-row{opacity:0;transform:translateY(6px);animation:fadeUp .4s forwards}
@keyframes fadeUp{to{opacity:1;transform:none}}
.food-grams{width:80px}
.food-thumb{width:50px;height:50px;object-fit:cover;border-radius:8px;cursor:pointer}
.img-modal{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:2000}
.img-modal img{max-width:90%;max-height:90%;border-radius:8px}
.ex-search-results,.food-search-results{position:absolute;top:100%;left:0;right:0;background:var(--c-surface);border:1px solid var(--c-border);max-height:200px;overflow:auto;z-index:1000;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1)}
.ex-search-results div{padding:8px;cursor:pointer;border-bottom:1px solid var(--c-border)}
.ex-search-results div:last-child{border-bottom:none}
.ex-search-results div:hover{background:var(--c-cream)}

/* Прогресс питания и карточки продуктов */
.meal-progress{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.meal-progress .summary-title{display:flex;justify-content:space-between;font-size:14px}
.meal-progress .progress{height:8px;background:var(--c-border);border-radius:8px;overflow:hidden}
.meal-progress .progress-bar{height:100%}
.progress-bar.kcal{background:var(--c-deep)}
.progress-bar.protein{background:#16a34a}
.progress-bar.fat{background:#e67e22}
.progress-bar.carb{background:#f1c40f}
.meal-section{margin-bottom:16px}
.meal-section h3{display:flex;align-items:center;gap:6px;margin:0 0 8px}
.meal-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.food-card{display:flex;gap:8px;align-items:flex-start;padding:8px 12px;background:var(--c-surface);border-radius:12px;box-shadow:0 2px 4px rgba(0,0,0,.05)}
.food-info{flex:1}
.food-title{font-weight:600}
.food-grams{margin-left:4px;font-weight:400;font-size:14px;opacity:.8}
.food-macros{font-size:13px;opacity:.8;display:flex;gap:8px;margin-top:4px}
.food-card .btn{padding:4px 8px;font-size:12px}

#w-form .row-line{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr auto;
  gap:6px;
  align-items:end;
}

#m-form .row-line{
  display:grid;
  grid-template-columns:1.2fr 1.8fr 1fr auto;
  gap:6px;
  align-items:end;
}

#w-form .row-line label,
#m-form .row-line label{
  width:100%;
  position:relative;
}

@media (max-width:480px){
  .container{padding:16px}
}

@media(max-width:600px){
  #w-form .row-line,
  #m-form .row-line{display:flex;flex-direction:column}
  .form .four{grid-template-columns:repeat(2,1fr);}
  .invites-table{overflow-x:auto}
}

@media(max-width:420px){
  .form .four{grid-template-columns:1fr;}
}

/* Страница регистрации */
body.page-template-templatespage-register-php{background:#f4f7fb;}
body.page-template-templatespage-register-php .topbar,
body.page-template-templatespage-register-php .tabbar{display:none;}

.app-register{
  --reg-bg:#f4f7fb;
  --reg-surface:#ffffff;
  --reg-text:#0d171c;
  --reg-muted:#6b7a90;
  --reg-input:#e6eff4;
  --reg-primary:#1b84d4;
  --reg-primary-dark:#1669b7;
  --reg-shadow:0 18px 38px rgba(17,24,39,.08);
  --reg-error:#ef4444;
  font-family:'Lexend','Noto Sans',sans-serif;
  min-height:100vh;
  background:var(--reg-bg);
}

.app-register__shell{
  max-width:520px;
  margin:0 auto;
  min-height:100vh;
  padding:32px 24px 40px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:32px;
}

.app-register__body{display:flex;flex-direction:column;gap:24px;}

.app-register__header{display:flex;align-items:center;justify-content:center;position:relative;}

.app-register__title{margin:0;font-size:24px;line-height:1.2;font-weight:700;color:var(--reg-text);}

.app-register__back{position:absolute;left:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;border:0;background:transparent;color:var(--reg-text);cursor:pointer;transition:background-color var(--speed),color var(--speed);}
.app-register__back:hover{background:rgba(13,23,28,.06);}
.app-register__back svg{width:20px;height:20px;}

.app-register__error{padding:12px 16px;border-radius:16px;background:rgba(239,68,68,.12);color:var(--reg-error);font-size:14px;font-weight:600;text-align:center;}

.register-form{display:flex;flex-direction:column;gap:18px;padding:24px;border-radius:24px;background:var(--reg-surface);box-shadow:var(--reg-shadow);}

.register-form__grid{display:grid;gap:16px;}
.register-form__grid--two{grid-template-columns:repeat(2,minmax(0,1fr));}

.register-field{display:flex;flex-direction:column;gap:10px;position:relative;}
.register-field__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

.register-input{width:100%;padding:16px 18px;border-radius:16px;border:2px solid var(--reg-input);background:var(--reg-surface);color:var(--reg-text);font-size:16px;line-height:1.2;transition:border-color var(--speed),box-shadow var(--speed),background-color var(--speed);}
.register-input::placeholder{color:var(--reg-muted);opacity:1;}
.register-input:focus{outline:none;border-color:var(--reg-primary);box-shadow:0 0 0 3px rgba(27,132,212,.18);background:#fff;}
.register-field.has-error .register-input,
.register-input.is-error{border-color:var(--reg-error);box-shadow:0 0 0 3px rgba(239,68,68,.12);}

.register-field__error{font-size:13px;color:var(--reg-error);font-weight:500;}

.register-password{position:relative;}
.register-password .register-input{padding-right:52px;}
.register-password__toggle{position:absolute;top:0;right:0;height:100%;width:48px;border:0;background:transparent;display:flex;align-items:center;justify-content:center;color:var(--reg-muted);cursor:pointer;transition:color var(--speed);}
.register-password__toggle:hover{color:var(--reg-primary);}
.register-password__icon{width:24px;height:24px;display:block;}
.register-password__icon--hidden{display:none;}
.register-password__toggle.is-active .register-password__icon{display:none;}
.register-password__toggle.is-active .register-password__icon--hidden{display:block;}

.app-register__footer{display:flex;flex-direction:column;gap:16px;margin-top:auto;}

.register-submit{display:inline-flex;align-items:center;justify-content:center;width:100%;height:56px;border-radius:18px;border:0;background:var(--reg-primary);color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:background-color var(--speed),transform var(--speed),box-shadow var(--speed);box-shadow:0 14px 30px rgba(27,132,212,.22);}
.register-submit:hover{background:var(--reg-primary-dark);box-shadow:0 16px 36px rgba(27,132,212,.28);}
.register-submit:active{transform:translateY(1px);}

.app-register__note{margin:0;text-align:center;font-size:14px;color:var(--reg-muted);}
.app-register__note a{color:var(--reg-primary);font-weight:600;text-decoration:underline;}
.app-register__note a:hover{opacity:.85;}
.app-register__legal{margin-top:12px;padding:18px;border-radius:18px;background:rgba(13,23,28,.05);color:var(--reg-text);font-size:13px;text-align:center;display:flex;flex-direction:column;gap:10px;}
.app-register__legal-text{margin:0;font-size:13px;line-height:1.5;color:var(--reg-text);font-weight:600;}
.app-register__legal-link{align-self:center;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:linear-gradient(135deg,#0f7ae5,#1b3c53);color:#fff;font-weight:600;text-decoration:none;box-shadow:0 14px 32px rgba(15,74,129,.28);transition:transform var(--speed),box-shadow var(--speed);}
.app-register__legal-link:hover{transform:translateY(-1px);box-shadow:0 18px 36px rgba(15,74,129,.34);}
.app-register__legal-link:focus-visible{outline:3px solid rgba(255,255,255,.6);outline-offset:3px;}
.app-register__legal-link-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.22);}

@media (max-width:640px){
  .app-register__shell{padding:28px 20px 32px;}
  .register-form__grid--two{grid-template-columns:1fr;}
}

.legal-hub{margin-top:24px;padding:22px 24px;border-radius:22px;background:var(--c-surface,#fff);border:1px solid rgba(15,26,32,.08);box-shadow:0 18px 40px rgba(15,23,42,.08);display:flex;flex-wrap:wrap;align-items:center;gap:18px;}
.legal-hub__info{flex:1 1 240px;display:flex;flex-direction:column;gap:6px;min-width:220px;}
.legal-hub__title{margin:0;font-size:18px;line-height:1.35;font-weight:700;color:var(--c-text,#0f1a20);}
.legal-hub__description{margin:0;color:rgba(15,26,32,.72);font-size:14px;line-height:1.55;}
.legal-hub__action{flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;background:linear-gradient(135deg,#0f7ae5,#1b3c53);color:#fff;font-weight:600;text-decoration:none;cursor:pointer;border:0;box-shadow:0 16px 36px rgba(15,74,129,.3);transition:transform var(--speed),box-shadow var(--speed);}
.legal-hub__action:hover{transform:translateY(-1px);box-shadow:0 20px 40px rgba(15,74,129,.34);}
.legal-hub__action:focus-visible{outline:3px solid rgba(15,122,229,.4);outline-offset:3px;}
.legal-hub__action-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,.2);}
.legal-hub__action-icon svg{width:16px;height:16px;display:block;}
.legal-hub__action-label{white-space:nowrap;}
.legal-hub--compact{padding:18px 20px;}
.site-legal{margin-top:40px;padding:24px 16px calc(env(safe-area-inset-bottom,0px) + 28px);background:var(--c-surface,#f6f8fa);border-top:1px solid rgba(15,26,32,.08);}
.site-legal__inner{max-width:960px;margin:0 auto;display:flex;flex-direction:column;gap:8px;text-align:center;color:rgba(15,26,32,.68);font-size:13px;line-height:1.5;}
.site-legal__text{margin:0;}
.site-legal__link{align-self:center;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:#0f7ae5;font-weight:600;text-decoration:none;}
.site-legal__link:hover{color:#0d64c0;}
.site-legal__link:focus-visible{outline:3px solid rgba(15,122,229,.35);outline-offset:3px;border-radius:999px;}
.site-legal__icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:10px;background:rgba(15,122,229,.14);color:#0f7ae5;}

.legal-modal{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:24px clamp(16px,5vw,40px) calc(env(safe-area-inset-bottom,0px) + 24px);background:rgba(13,23,28,.55);opacity:0;pointer-events:none;transition:opacity var(--speed) ease;z-index:1500;}
.legal-modal.is-visible{opacity:1;pointer-events:auto;}
.legal-modal__backdrop{position:absolute;inset:0;}
.legal-modal__dialog{position:relative;z-index:1;width:min(520px,100%);max-height:calc(100vh - 48px);background:var(--c-surface,#fff);border-radius:28px;padding:26px 26px 30px;box-shadow:0 26px 80px rgba(15,23,42,.28);display:flex;flex-direction:column;gap:20px;transform:translateY(24px);transition:transform var(--speed) ease;overflow:hidden;}
.legal-modal.is-visible .legal-modal__dialog{transform:translateY(0);}
.legal-modal__header{display:flex;align-items:flex-start;gap:16px;}
.legal-modal__badge{flex:0 0 auto;width:48px;height:48px;border-radius:18px;background:linear-gradient(135deg,rgba(15,122,229,.15),rgba(15,60,83,.35));color:#0f7ae5;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.legal-modal__badge svg{width:26px;height:26px;}
.legal-modal__titles{display:flex;flex-direction:column;gap:6px;min-width:0;}
.legal-modal__title{margin:0;font-size:22px;line-height:1.25;font-weight:700;color:var(--c-text,#0f1a20);}
.legal-modal__subtitle{margin:0;color:rgba(15,26,32,.7);font-size:14px;line-height:1.5;}
.legal-modal__close{margin-left:auto;flex:0 0 auto;width:40px;height:40px;border-radius:12px;border:0;background:rgba(15,26,32,.08);color:rgba(15,26,32,.65);font-size:24px;font-weight:600;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--speed),color var(--speed);}
.legal-modal__close:hover{background:rgba(15,26,32,.12);color:rgba(15,26,32,.85);}
.legal-modal__body{overflow:auto;padding-right:6px;margin-right:-6px;}
.legal-modal__list{margin:0;padding:0;list-style:none;display:grid;gap:10px;}
.legal-modal__item{margin:0;}
.legal-modal__link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:18px;border:1px solid rgba(15,26,32,.08);background:rgba(15,26,32,.02);font-weight:600;color:#0f7ae5;text-decoration:none;transition:background var(--speed),transform var(--speed),border-color var(--speed),box-shadow var(--speed);}
.legal-modal__link:hover{transform:translateY(-1px);background:rgba(15,122,229,.08);border-color:rgba(15,122,229,.25);box-shadow:0 10px 24px rgba(15,122,229,.18);}
.legal-modal__link-text{flex:1;min-width:0;line-height:1.4;}
.legal-modal__link-icon{flex:0 0 auto;width:32px;height:32px;border-radius:12px;background:rgba(15,122,229,.16);display:flex;align-items:center;justify-content:center;color:#0f7ae5;}
.legal-modal__link-icon svg{display:block;}

body.legal-modal-open{overflow:hidden;}

@media (min-width:600px){
  .legal-hub{flex-wrap:nowrap;}
  .legal-modal__dialog{padding:30px 32px 36px;}
}

@media (min-width:1024px){
  .legal-hub{padding:26px 28px;}
  .site-legal{padding:32px 24px calc(env(safe-area-inset-bottom,0px) + 36px);}
  .legal-modal{align-items:center;padding:48px clamp(32px,8vw,96px);}
  .legal-modal__dialog{border-radius:32px;padding:36px 40px 42px;}
  .legal-modal__title{font-size:26px;}
  .legal-modal__subtitle{font-size:15px;}
}
.legal-page{padding:48px 0 72px;background:var(--c-bg,#f6f8fa);}
.legal-page__shell{max-width:840px;margin:0 auto;padding:0 24px;display:flex;flex-direction:column;gap:24px;}
.legal-page__header{display:flex;flex-direction:column;gap:16px;}
.legal-page__title{margin:0;font-size:32px;line-height:1.2;font-weight:700;color:var(--c-text,#0f1a20);}
.legal-page__nav{display:flex;flex-direction:column;gap:8px;padding:16px 20px;border-radius:16px;background:rgba(15,26,32,0.05);}
.legal-page__nav-label{font-weight:600;color:rgba(15,26,32,0.8);font-size:15px;}
.legal-page__nav-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;}
.legal-page__nav-item{list-style:disc;}
.legal-page__nav-link{color:#0f7ae5;font-weight:600;text-decoration:underline;}
.legal-page__nav-link[aria-current="page"]{text-decoration:none;color:rgba(15,26,32,0.9);}
.legal-page__content{padding:24px 28px;border-radius:20px;background:#fff;box-shadow:0 12px 32px rgba(15,23,42,0.08);}
.legal-page__content :where(h2,h3,h4){color:var(--c-text,#0f1a20);margin-top:1.8em;font-weight:700;}
.legal-page__content :where(p,ul,ol){line-height:1.7;color:rgba(15,26,32,0.85);}
.legal-page__content ul{padding-left:20px;}
.legal-page__content ol{padding-left:22px;}
.legal-page__content a{color:#0f7ae5;text-decoration:underline;font-weight:600;}
.legal-page__content a:hover{opacity:.85;}
.legal-page__content table{width:100%;border-collapse:collapse;margin:24px 0;}
.legal-page__content table th,.legal-page__content table td{border:1px solid rgba(15,26,32,0.12);padding:10px 12px;text-align:left;}
.legal-page__content table th{background:rgba(15,26,32,0.05);font-weight:600;}
.legal-page__content blockquote{margin:16px 0;padding:16px 20px;border-left:4px solid #0f7ae5;background:rgba(15,26,32,0.05);color:rgba(15,26,32,0.8);}

  @media (max-width: 1024px){
    .legal-page{padding:40px 0 64px;}
    .legal-page__shell{padding:0 18px;}
    .legal-page__content{padding:22px;}
  }
  @media (max-width: 768px){
    .legal-page{padding:32px 0 56px;}
    .legal-page__title{font-size:26px;}
    .legal-page__content{padding:20px;}
    .legal-page__nav{padding:14px 16px;}
  }

/* ------------------------ User dashboard — Today ------------------------ */
body.page-template-templatespage-dashboard-user-php,
body.page-template-templatespage-food-log-php{
  background:#f4f7fc;
  font-family:'Lexend','Noto Sans',sans-serif;
}
body.page-template-templatespage-dashboard-user-php .topbar,
body.page-template-templatespage-food-log-php .topbar{
  display:none;
}

.dashboard-today{
  --today-bg:#f4f7fc;
  --today-card:#ffffff;
  --today-text:#0d171c;
  --today-muted:#6b7280;
  --today-primary:#06b6d4;
  --today-green:#22c55e;
  --today-border:rgba(15,23,42,.08);
  color:var(--today-text);
  min-height:100vh;
  background:var(--today-bg);
}
.dashboard-today__inner{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
.dashboard-today__header{
  position:sticky;
  top:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:24px 24px 12px;
  background:var(--today-bg);
  z-index:20;
}
.dashboard-today__title{
  margin:0;
  font-size:22px;
  font-weight:700;
}
.dashboard-today__settings,
.dashboard-today__stub{
  width:44px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  color:var(--today-text);
}
.dashboard-today__settings{
  transition:background-color .2s,color .2s;
}
.dashboard-today__settings:hover{
  background:rgba(6,182,212,.12);
  color:var(--today-primary);
}

.dashboard-today__content{
  display:flex;
  flex-direction:column;
  gap:24px;
  padding:0 6px 120px;
}

.today-card{
  background:var(--today-card);
  border-radius:24px;
  box-shadow:0 12px 30px rgba(15,23,42,.06);
  padding:24px;
}
.today-card--workout{padding:0;overflow:hidden;}
.today-workout{display:flex;flex-direction:column;gap:0;}
.today-workout__media{
  position:relative;
  min-height:200px;
  background:#0f172a;
  background-size:cover;
  background-position:center;
}
.today-workout__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(15,23,42,.25) 0%,rgba(15,23,42,.7) 100%);
}
.today-workout__meta{
  position:relative;
  z-index:1;
  color:#fff;
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:24px;
}
.today-workout__date{font-size:14px;opacity:.8;}
.today-workout__title{margin:0;font-size:24px;font-weight:700;color:#fff;}
.today-workout__count{margin:0;font-size:16px;font-weight:600;}
.today-workout__exercise{margin:0;font-size:14px;opacity:.85;}
.today-workout__body{
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:24px;
}
.today-progress__row{display:flex;justify-content:space-between;align-items:center;font-weight:600;}
.today-progress__track{
  position:relative;
  width:100%;
  height:8px;
  background:rgba(148,163,184,.35);
  border-radius:999px;
  overflow:hidden;
  margin-top:12px;
}
.today-progress__bar{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,var(--today-primary),#22d3ee);
  border-radius:999px;
}
.today-workout__note{margin:0;color:var(--today-muted);font-size:14px;}
.today-workout--empty{display:flex;flex-direction:column;gap:20px;padding:24px;}
.today-workout__empty{margin:0;color:var(--today-muted);}

.today-card__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;}
.today-card__head h2{margin:0;font-size:20px;font-weight:700;color:var(--today-text);}
.today-card__plan{font-size:14px;color:var(--today-muted);}
.today-card__empty{margin:0 0 12px;color:var(--today-muted);}

.today-macros{display:flex;flex-direction:column;gap:16px;}
.today-macro__title{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:14px;color:var(--today-text);}
.today-macro__value{font-size:13px;color:var(--today-muted);}
.today-macro__progress{height:6px;border-radius:999px;background:rgba(148,163,184,.3);overflow:hidden;margin-top:8px;}
.today-macro__bar{height:100%;border-radius:999px;background:var(--today-primary);transition:width .25s ease;}
.today-macro__bar.protein{background:#38bdf8;}
.today-macro__bar.fat{background:#f97316;}
.today-macro__bar.carb{background:#8b5cf6;}
.today-macro__bar.kcal{background:#22c55e;}

.today-card__actions{display:flex;flex-direction:column;gap:12px;margin-top:24px;}
.today-card__actions--timer{flex-direction:row;flex-wrap:wrap;gap:12px;}

.dashboard-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:16px;
  border:0;
  padding:14px 18px;
  font-family:'Lexend','Noto Sans',sans-serif;
  font-size:15px;
  font-weight:600;
  text-decoration:none;
  cursor:pointer;
  transition:transform .2s,box-shadow .2s,background-color .2s,color .2s;
}
.dashboard-button:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(6,182,212,.18);}
.dashboard-button:active{transform:translateY(0);}
.dashboard-button span{display:flex;align-items:center;}
.dashboard-button--primary{
  background:linear-gradient(135deg,#0ea5e9,#0369a1);
  color:#fff;
  box-shadow:0 16px 30px rgba(3,105,161,.25);
}
.dashboard-button--primary:hover{
  box-shadow:0 20px 36px rgba(3,105,161,.28);
}
.dashboard-button--outline{
  background:#eef2ff;
  color:var(--today-primary);
}
.dashboard-button--green{background:#22c55e;color:#fff;}
.dashboard-button--muted{
  background:#f1f5f9;
  color:#1f2937;
  border:1px solid rgba(15,23,42,.08);
}
.dashboard-button--muted:hover{
  box-shadow:0 10px 22px rgba(15,23,42,.12);
}

.today-achievements{display:flex;gap:16px;overflow-x:auto;padding-bottom:4px;}
.today-achievement{
  flex:0 0 auto;
  width:92px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:10px;
  color:var(--today-muted);
}
.today-achievement__icon{
  width:72px;
  height:72px;
  border-radius:999px;
  background:#e2e8f0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:28px;
  color:inherit;
}
.today-achievement.is-earned{color:var(--today-text);}
.today-achievement.is-earned .today-achievement__icon{background:rgba(6,182,212,.18);color:var(--today-primary);}
.today-achievement--ten_workouts .today-achievement__icon{background:rgba(59,130,246,.18);color:#2563eb;}
.today-achievement--five_streak .today-achievement__icon{background:rgba(134,239,172,.18);color:#16a34a;}

.today-timer{
  font-size:32px;
  font-weight:700;
  text-align:center;
  padding:12px 16px;
  border-radius:16px;
  background:#0f172a;
  color:#fff;
}

@media (min-width:768px){
  .dashboard-today__content{padding:0 48px 120px;}
  .today-card__actions{flex-direction:row;}
  .today-card--workout .today-workout{flex-direction:row;}
  .today-workout__media{flex:1;min-height:280px;}
  .today-workout__body{flex:0 0 320px;}
}

/* ------------------------ User dashboard — Progress ------------------------ */
.dashboard-progress{
  --progress-bg:#f4f7fc;
  --progress-card:#ffffff;
  --progress-text:#0d171c;
  --progress-muted:#6b7280;
  --progress-primary:#06b6d4;
  min-height:100vh;
  background:var(--progress-bg);
  color:var(--progress-text);
  font-family:'Lexend','Noto Sans',sans-serif;
}
.dashboard-progress__inner{min-height:100vh;display:flex;flex-direction:column;}
.dashboard-progress__header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:24px 24px 12px;background:var(--progress-bg);z-index:20;}
.dashboard-progress__back{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:16px;color:var(--progress-text);transition:background-color .2s,color .2s;}
.dashboard-progress__back:hover{background:rgba(6,182,212,.12);color:var(--progress-primary);}
.dashboard-progress__title{margin:0;font-size:22px;font-weight:700;}
.dashboard-progress__spacer{width:44px;height:44px;display:block;}
.dashboard-progress__content{display:flex;flex-direction:column;gap:24px;padding:0 24px 96px;}
.dashboard-progress__content--form{padding-bottom:48px;}
.dashboard-progress__cta{display:flex;align-items:center;justify-content:center;gap:12px;background:var(--progress-primary);color:#fff;padding:18px;border-radius:20px;font-weight:600;text-decoration:none;box-shadow:0 12px 30px rgba(6,182,212,.25);transition:transform .2s ease,box-shadow .2s ease;}
.dashboard-progress__cta:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(6,182,212,.3);}
.dashboard-progress__cta-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;}
.progress-card{background:var(--progress-card);border-radius:24px;box-shadow:0 12px 30px rgba(15,23,42,.06);padding:24px;display:flex;flex-direction:column;gap:18px;}
.progress-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.progress-card__head h2{margin:0;font-size:20px;font-weight:700;color:var(--progress-text);}
.progress-card__head p{margin:4px 0 0;font-size:14px;color:var(--progress-muted);}
.progress-card__badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:rgba(6,182,212,.12);color:var(--progress-primary);font-weight:600;}
.progress-card__metric{display:flex;align-items:baseline;gap:8px;}
.progress-card__metric-value{font-size:40px;font-weight:700;line-height:1;color:var(--progress-text);}
.progress-card__metric-unit{font-size:18px;color:var(--progress-muted);}
.progress-card__controls{display:flex;flex-direction:column;gap:12px;margin-bottom:8px;}
.progress-periods{display:flex;flex-wrap:wrap;gap:10px;}
.progress-period{padding:8px 18px;border-radius:18px;border:1px solid rgba(6,182,212,.18);background:#fff;color:var(--progress-primary);font:600 13px/1 'Lexend',sans-serif;cursor:pointer;transition:background-color var(--speed),color var(--speed),box-shadow var(--speed);}
.progress-period:hover{background:rgba(6,182,212,.12);}
.progress-period.is-active{background:linear-gradient(135deg,#0586c7,#46a9e6);color:#fff;border-color:transparent;box-shadow:0 12px 28px rgba(6,182,212,.25);}
.progress-period--custom{background:rgba(6,182,212,.12);border-color:transparent;}
.progress-period--custom.is-active{background:linear-gradient(135deg,#0586c7,#46a9e6);color:#fff;box-shadow:0 12px 28px rgba(6,182,212,.25);}
.progress-period__range{margin:0;font-size:13px;color:var(--progress-muted);}
.progress-period__range[hidden]{display:none!important;}
.progress-card__chart{position:relative;width:100%;min-height:240px;border-radius:22px;border:1px solid rgba(6,182,212,.18);background:linear-gradient(180deg,rgba(6,182,212,.08),rgba(255,255,255,0.2));padding:12px;overflow:hidden;}
.progress-card__chart canvas{position:absolute!important;inset:12px;}
.progress-card__axis{display:flex;justify-content:space-between;font-size:12px;color:var(--progress-muted);}
.progress-card__empty{margin:0;font-size:14px;color:var(--progress-muted);}
.progress-trend{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;padding:8px 12px;border-radius:999px;background:rgba(15,23,42,.05);color:var(--progress-text);}
.progress-trend.is-down{color:#22c55e;background:rgba(34,197,94,.12);}
.progress-trend.is-up{color:#ef4444;background:rgba(239,68,68,.12);}
.progress-trend__icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;}
.progress-workouts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.progress-workouts__col{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:12px;color:var(--progress-muted);}
.progress-workouts__bar{width:100%;height:140px;border-radius:18px;background:rgba(15,23,42,.08);display:flex;align-items:flex-end;overflow:hidden;}
.progress-workouts__bar span{display:block;width:100%;background:linear-gradient(180deg,#06b6d4,#0ea5e9);border-radius:18px;}
.progress-workouts__bar.is-current span{background:linear-gradient(180deg,#22c55e,#16a34a);}
.progress-nutrition__value{display:flex;align-items:baseline;gap:8px;font-size:32px;font-weight:700;color:var(--progress-text);}
.progress-nutrition__value span{font-size:16px;color:var(--progress-muted);font-weight:500;}
.progress-nutrition__rows{display:flex;flex-direction:column;gap:12px;}
.progress-nutrition__row{display:flex;align-items:center;gap:16px;font-size:14px;color:var(--progress-muted);}
.progress-nutrition__track{flex:1;height:10px;border-radius:999px;background:rgba(15,23,42,.08);overflow:hidden;}
.progress-nutrition__track span{display:block;height:100%;border-radius:999px;}
.progress-nutrition__track .is-plan{background:rgba(6,182,212,.6);}
.progress-nutrition__track .is-fact{background:#facc15;}
.progress-achievements{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px;}
.progress-achievement{background:#f8fafc;border-radius:20px;padding:18px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--progress-muted);box-shadow:inset 0 0 0 1px rgba(15,23,42,.06);}
.progress-achievement.is-earned{background:linear-gradient(135deg,rgba(34,197,94,.16),rgba(34,197,94,.05));color:var(--progress-text);box-shadow:0 12px 24px rgba(34,197,94,.18);}
.progress-achievement__icon{width:56px;height:56px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--progress-primary);box-shadow:0 8px 20px rgba(15,23,42,.08);}
.progress-achievement.is-earned .progress-achievement__icon{background:#dcfce7;color:#16a34a;}
.progress-achievement__title{margin:0;font-size:15px;font-weight:600;color:inherit;}
.progress-achievement__status{margin:0;font-size:13px;color:inherit;}
.progress-alert{padding:16px;border-radius:18px;background:rgba(6,182,212,.12);color:var(--progress-primary);font-size:14px;}
.progress-form{display:flex;flex-direction:column;gap:24px;}
.progress-form__fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;}
.progress-form__field{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--progress-muted);}
.progress-form__field span{font-weight:600;color:var(--progress-text);}
.progress-form__field input{padding:14px;border-radius:16px;border:1px solid rgba(15,23,42,.12);font-size:16px;color:var(--progress-text);background:#fff;transition:border-color .2s,box-shadow .2s;}
.progress-form__field input:focus{outline:none;border-color:var(--progress-primary);box-shadow:0 0 0 4px rgba(6,182,212,.18);}
.progress-form__actions{display:flex;justify-content:flex-end;}
.dashboard-progress__submit{background:var(--progress-primary);color:#fff;padding:16px 28px;border-radius:18px;border:none;font-size:16px;font-weight:600;cursor:pointer;box-shadow:0 12px 30px rgba(6,182,212,.25);transition:transform .2s ease,box-shadow .2s ease;}
.dashboard-progress__submit:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(6,182,212,.3);}
.progress-confirm{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:center;justify-content:center;padding:24px;z-index:2000;}
.progress-confirm.is-visible{display:flex;}
.progress-confirm__dialog{background:#fff;border-radius:24px;max-width:360px;width:100%;padding:28px;display:flex;flex-direction:column;gap:16px;text-align:center;box-shadow:0 24px 48px rgba(15,23,42,.18);}
.progress-confirm__dialog h2{margin:0;font-size:20px;font-weight:700;color:var(--progress-text);}
.progress-confirm__dialog p{margin:0;font-size:14px;color:var(--progress-muted);}
.progress-confirm__actions{display:flex;gap:12px;justify-content:center;}
.progress-confirm__btn{flex:1;padding:12px 18px;border-radius:16px;border:1px solid rgba(15,23,42,.12);background:#fff;color:var(--progress-text);font-weight:600;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s;}
.progress-confirm__btn--primary{background:var(--progress-primary);border-color:var(--progress-primary);color:#fff;}
.progress-confirm__btn:hover{background:rgba(15,23,42,.05);}
.progress-confirm__btn--primary:hover{background:#0891b2;border-color:#0891b2;}
@media (max-width:640px){
  .dashboard-progress__header{padding:20px 20px 12px;}
  .dashboard-progress__content{padding:0 6px 80px;}
  .progress-card{padding:20px;border-radius:20px;}
  .progress-workouts{gap:12px;}
  .progress-card__metric-value{font-size:34px;}
}

/* ------------------------ User dashboard — Workouts list ------------------------ */
.dashboard-workouts{
  --workouts-bg:#f4f7fc;
  --workouts-surface:#ffffff;
  --workouts-text:#0d171c;
  --workouts-muted:#4a7894;
  --workouts-border:#d7e3eb;
  --workouts-primary:#0586c7;
  --workouts-green:#22c55e;
  --workouts-shadow:0 18px 40px rgba(5,134,199,.12);
  --dashboard-view-bg:var(--workouts-bg);
  --dashboard-view-text:var(--workouts-text);
  --dashboard-view-muted:var(--workouts-muted);
  color:var(--workouts-text);
  font-family:'Lexend','Noto Sans',sans-serif;
}
.dashboard-workouts__inner{
  width:100%;
  max-width:620px;
  margin:0 auto;
  padding:24px 0 0;
  display:flex;
  flex-direction:column;
  gap:24px;
}
.dashboard-workouts__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:0 8px;
}
.dashboard-workouts__titles{display:flex;flex-direction:column;gap:6px;}
.dashboard-workouts__date{margin:0;font-size:14px;color:var(--workouts-muted);}
.dashboard-workouts__title{margin:0;font-size:22px;font-weight:700;color:var(--workouts-text);}
.dashboard-workouts__list{display:flex;flex-direction:column;gap:16px;}
.dashboard-workouts__empty{
  padding:28px 20px;
  border-radius:24px;
  border:1px dashed var(--workouts-border);
  background:var(--workouts-surface);
  color:var(--workouts-muted);
  text-align:center;
  box-shadow:var(--workouts-shadow);
}
.dashboard-workouts__empty p{margin:0;}

.workout-date-picker{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:10px 16px;
  border-radius:18px;
  border:1px solid var(--workouts-border);
  background:var(--workouts-surface);
  box-shadow:0 14px 32px rgba(5,134,199,.12);
  color:var(--workouts-primary);
  transition:border-color .2s ease,box-shadow .2s ease;
  flex-shrink:0;
}
.workout-date-picker:focus-within{border-color:var(--workouts-primary);box-shadow:0 16px 36px rgba(5,134,199,.18);}
.workout-date-picker__icon svg{width:20px;height:20px;display:block;}
.workout-date-picker__input{
  border:0;
  background:transparent;
  color:var(--workouts-text);
  font-size:14px;
  font-weight:600;
  padding:0;
  min-width:0;
  appearance:none;
}
.workout-date-picker__input:focus{outline:none;}
.workout-date-picker__input::-webkit-calendar-picker-indicator{opacity:.65;cursor:pointer;filter:invert(.35) sepia(.2) saturate(4) hue-rotate(160deg);}
.workout-date-picker__input::-moz-focus-inner{border:0;}

.workout-list{display:flex;flex-direction:column;gap:16px;}
.workout-list-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 22px;
  border-radius:24px;
  background:var(--workouts-surface);
  box-shadow:var(--workouts-shadow);
  border:1px solid transparent;
  color:inherit;
  text-decoration:none;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.workout-list-item:hover{transform:translateY(-2px);box-shadow:0 22px 50px rgba(5,134,199,.16);border-color:rgba(5,134,199,.28);}
.workout-list-item__info{display:flex;flex-direction:column;gap:4px;}
.workout-list-item__title{margin:0;font-size:16px;font-weight:700;color:var(--workouts-text);}
.workout-list-item__type{margin:0;font-size:13px;font-weight:600;color:var(--workouts-muted);}
.workout-list-item__stats{display:flex;align-items:center;gap:12px;}
.workout-list-item__percent{font-size:16px;font-weight:700;color:var(--workouts-primary);min-width:3ch;text-align:right;}
.workout-list-item.is-finished .workout-list-item__percent{color:var(--workouts-green);}

.workout-progress{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;}
.workout-progress svg{width:48px;height:48px;transform:rotate(-90deg);}
.workout-progress__bg{fill:none;stroke:rgba(5,134,199,.12);stroke-width:4;}
.workout-progress__value{fill:none;stroke:var(--workouts-primary);stroke-width:4;stroke-linecap:round;transition:stroke .2s ease;}
.workout-progress.is-complete .workout-progress__value{stroke:var(--workouts-green);}
.workout-progress.is-empty .workout-progress__value{stroke:rgba(5,134,199,.28);}

@media (max-width:640px){
  .dashboard-workouts__inner{padding:16px 0 96px;}
  .dashboard-workouts__header{flex-direction:column;align-items:stretch;gap:16px;}
  .workout-date-picker{width:100%;justify-content:space-between;}
}

/* ------------------------ Meal log page ------------------------ */
.meal-log{
  min-height:100vh;
  background:var(--today-bg);
  display:flex;
  justify-content:center;
  padding:32px 6px 96px;
}
.meal-log__inner{
  width:100%;
  max-width:720px;
  display:flex;
  flex-direction:column;
  gap:24px;
}
.meal-log__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.meal-log__title{margin:0;font-size:22px;font-weight:700;color:var(--today-text);}
.meal-log__back,
.meal-log__stub{
  width:44px;
  height:44px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--today-text);
  transition:background-color .2s,color .2s;
}
.meal-log__back:hover{background:rgba(6,182,212,.12);color:var(--today-primary);}

.meal-log__toolbar{
  padding:16px;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:flex-start;
  gap:20px;
}
.meal-log__date{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:14px;
  color:var(--today-muted);
  align-items:flex-start;
  justify-content:flex-start;
}
.meal-log__date input{
  min-width:200px;
  max-width:max-content;
}
.meal-log__recommendations{
  white-space:nowrap;
  gap:10px;
  flex-shrink:0;
}
.meal-log__recommendations .fa-solid{
  font-size:16px;
}
@media (max-width:640px){
  .meal-log__toolbar{
    flex-direction:column;
    align-items:stretch;
  }
  .meal-log__date{
    width:100%;
  }
  .meal-log__recommendations{
    width:100%;
    justify-content:center;
  }
}
.meal-log__date label{
  font-weight: 600;
  font-size: 16px;
}
.meal-card{
  background:var(--today-card);
  border-radius:24px;
  box-shadow:0 12px 30px rgba(15,23,42,.06);
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:20px;
}
.meal-card__header{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.meal-card__title{margin:0;font-size:20px;font-weight:700;color:var(--today-text);}
.meal-card__subtitle{margin:0;font-size:14px;color:var(--today-muted);}

.meal-goals__grid{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}
.meal-goal{
  border-radius:20px;
  padding:18px;
  color:var(--today-text);
  background:#f8fafc;
  position:relative;
  overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.04);
}
.meal-goal--kcal{background:linear-gradient(135deg,rgba(34,197,94,.18),rgba(16,185,129,.08));}
.meal-goal--protein{background:linear-gradient(135deg,rgba(59,130,246,.16),rgba(6,182,212,.08));}
.meal-goal--fat{background:linear-gradient(135deg,rgba(249,115,22,.16),rgba(234,179,8,.1));}
.meal-goal--carb{background:linear-gradient(135deg,rgba(139,92,246,.16),rgba(236,72,153,.1));}
.meal-goal__label{font-size:14px;font-weight:600;opacity:.85;}
.meal-goal__value{font-size:28px;font-weight:700;line-height:1.1;color:var(--today-text);}
.meal-goal__target{font-size:13px;color:var(--today-muted);}
.meal-goal__progress{
  height:6px;
  border-radius:999px;
  background:rgba(255,255,255,.4);
  overflow:hidden;
  margin-top:12px;
}
.meal-goal__bar{
  height:100%;
  border-radius:999px;
  background:var(--today-primary);
  transition:width .25s ease;
}
.meal-goal__bar.kcal{background:#22c55e;}
.meal-goal__bar.protein{background:#38bdf8;}
.meal-goal__bar.fat{background:#f97316;}
.meal-goal__bar.carb{background:#8b5cf6;}

.meal-form{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.meal-form__grid{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
}
.meal-log__field{display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--today-text);}
.meal-log__field span{font-weight:600;}
.meal-log__field--search{position:relative;}
.meal-form__actions{display:flex;justify-content:flex-end;}

.meal-list{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.meal-list__empty{margin:0;color:var(--today-muted);}

.meal-group{
  background:#f8fafc;
  border-radius:20px;
  padding:0;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.04);
}
.meal-group + .meal-group{margin-top:4px;}
.meal-group[open]{box-shadow:inset 0 0 0 1px rgba(15,23,42,.06);}
.meal-group__summary{
  list-style:none;
  margin:0;
  padding:18px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  font-weight:600;
  color:var(--today-text);
  cursor:pointer;
}
.meal-group__left{display:flex;align-items:center;gap:12px;}
.meal-group__icon{font-size:20px;}
.meal-group__title{font-size:16px;}
.meal-group__meta{font-size:14px;color:var(--today-muted);display:flex;gap:12px;align-items:center;}
.meal-group__list{margin:0;padding:0 22px 20px;display:flex;flex-direction:column;gap:12px;list-style:none;}

.meal-entry{
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:16px;
  border-radius:18px;
  background:#fff;
  box-shadow:0 6px 16px rgba(15,23,42,.06);
}
.meal-entry__content{flex:1;display:flex;flex-direction:column;gap:8px;}
.meal-entry__title{margin:0;font-size:15px;font-weight:600;color:var(--today-text);}
.meal-entry__grams{font-size:13px;color:var(--today-muted);margin-left:8px;}
.meal-entry__note{margin:0;font-size:13px;color:var(--today-muted);}
.meal-entry__macros{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;color:var(--today-muted);}
.meal-entry .dashboard-button{padding:10px 14px;box-shadow:none;}
.meal-entry .dashboard-button:hover{transform:none;box-shadow:none;}

.meal-stats__macro-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.meal-stats__macro{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  border-radius:18px;
  border:1px solid rgba(15,23,42,.08);
  background:#f8fafc;
  color:var(--today-muted);
  font-size:14px;
  font-weight:600;
  cursor:pointer;
  transition:all .2s ease;
}
.meal-stats__macro-icon{font-size:16px;}
.meal-stats__macro.is-active,
.meal-stats__macro:hover{
  background:#ecfeff;
  color:var(--today-primary);
  border-color:rgba(6,182,212,.3);
  box-shadow:0 10px 24px rgba(6,182,212,.14);
}

.meal-stats__legend{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  font-size:13px;
  color:var(--today-muted);
}
.meal-stats__legend span{display:inline-flex;align-items:center;gap:6px;}
.meal-stats__dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:rgba(148,163,184,.4);}

.meal-stats__tabs{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.meal-stats__tab{
  border:1px solid rgba(6,182,212,.18);
  padding:8px 14px;
  border-radius:999px;
  font-size:14px;
  font-weight:600;
  color:var(--today-muted);
  background:#fff;
  cursor:pointer;
  transition:all .2s ease;
}
.meal-stats__tab.is-active,
.meal-stats__tab:hover{
  background:rgba(6,182,212,.12);
  color:var(--today-primary);
  border-color:rgba(6,182,212,.28);
}
.meal-stats__chart{position:relative;width:100%;min-height:260px;}

details.meal-group>summary::-webkit-details-marker{display:none;}
details.meal-group>summary::marker{display:none;}

@media (min-width:768px){
  .meal-log__header{padding:0 8px;}
  .meal-card__header{flex-direction:row;align-items:flex-end;justify-content:space-between;}
  .meal-goals__grid{grid-template-columns:repeat(4,1fr);}
  .meal-form__grid{grid-template-columns:repeat(2,minmax(240px,1fr));}
}

#profile{
  --dashboard-view-bg:#f4f7fc;
  --dashboard-view-text:#0f172a;
  --dashboard-view-muted:#64748b;
  background:var(--dashboard-view-bg);
}
.profile-screen{max-width:520px;display:flex;flex-direction:column;gap:24px;}
.profile-screen__card{background:#fff;border-radius:28px;padding:28px 24px 32px;box-shadow:0 24px 48px rgba(15,23,42,.12);display:flex;flex-direction:column;gap:24px;}
.profile-screen__header{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.profile-screen__back{width:40px;height:40px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;color:#0f172a;text-decoration:none;transition:background-color .2s ease,color .2s ease,transform .2s ease;}
.profile-screen__back:hover{background:#cbd5f5;transform:translateX(-2px);}
.profile-screen__title{flex:1;text-align:center;font-size:20px;font-weight:700;color:#0f172a;margin:0;}
.profile-screen__header-spacer{width:40px;height:40px;}
.profile-screen__notice{padding:14px 16px;border-radius:18px;font-size:14px;font-weight:600;}
.profile-screen__notice--success{background:rgba(34,197,94,.14);color:#15803d;}
.profile-screen__notice--error{background:rgba(248,113,113,.16);color:#b91c1c;}
.profile-form{display:flex;flex-direction:column;gap:20px;}
.profile-form__avatar{display:flex;justify-content:center;}
.profile-avatar{position:relative;width:120px;height:120px;}
.profile-avatar__image{width:100%;height:100%;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:32px;color:#0f172a;overflow:hidden;box-shadow:0 12px 28px rgba(15,23,42,.12);transition:box-shadow .2s ease;}
.profile-avatar__image.has-photo{background-size:cover;background-position:center;color:transparent;}
.profile-avatar__edit{position:absolute;bottom:0;right:0;width:44px;height:44px;border-radius:50%;border:none;background:#0284c7;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 12px 24px rgba(2,132,199,.35);transition:background-color .2s ease,transform .2s ease;}
.profile-avatar__edit:hover{background:#0369a1;transform:translateY(-1px);}
.profile-avatar__input{display:none;}
.profile-form__fields{display:flex;flex-direction:column;gap:16px;}
.profile-field{display:flex;flex-direction:column;gap:6px;}
.profile-field label{font-size:14px;font-weight:600;color:#1e293b;}
.profile-field input,.profile-field textarea{border-radius:18px;border:1px solid rgba(15,23,42,.12);padding:14px 16px;font-size:15px;color:#0f172a;background:#fff;transition:border-color .2s ease,box-shadow .2s ease;}
.profile-field textarea{min-height:110px;resize:vertical;}
.profile-field input:focus,.profile-field textarea:focus{outline:none;border-color:#0284c7;box-shadow:0 0 0 4px rgba(2,132,199,.2);}
.profile-field.has-error input,.profile-field.has-error textarea{border-color:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.15);}
.profile-field__error{font-size:13px;color:#ef4444;margin:0;}
.profile-form__actions{margin-top:8px;}
.profile-form__submit{width:100%;background:#0284c7;color:#fff;border:none;border-radius:18px;padding:16px;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 20px 40px rgba(2,132,199,.25);transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;}
.profile-form__submit:hover{background:#0369a1;box-shadow:0 24px 44px rgba(3,105,161,.3);transform:translateY(-1px);}
.profile-form__submit:focus{outline:none;box-shadow:0 0 0 4px rgba(2,132,199,.3);}
.profile-actions{display:flex;flex-direction:column;gap:12px;}
.profile-actions__btn{display:flex;align-items:center;justify-content:center;width:100%;border-radius:18px;border:none;padding:14px 16px;font-size:15px;font-weight:600;cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease,color .2s ease;text-decoration:none;}
.profile-actions__btn--muted{background:#e2e8f0;color:#0f172a;}
.profile-actions__btn--muted:hover{background:#cbd5f5;}
.profile-actions__btn--danger{background:#fee2e2;color:#b91c1c;box-shadow:0 10px 20px rgba(248,113,113,.2);}
.profile-actions__btn--danger:hover{background:#fecaca;}
.profile-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:center;justify-content:center;padding:24px;z-index:3000;}
.profile-modal.is-visible{display:flex;}
.profile-modal__dialog{background:#fff;border-radius:28px;padding:28px 24px 32px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:16px;box-shadow:0 28px 56px rgba(15,23,42,.2);}
.profile-modal__title{margin:0;font-size:20px;font-weight:700;color:#0f172a;text-align:center;}
.profile-modal__description{margin:0;font-size:14px;color:#475569;text-align:center;}
.profile-modal__alert{padding:12px 14px;border-radius:16px;font-size:14px;font-weight:600;text-align:center;}
.profile-modal__alert--error{background:rgba(248,113,113,.16);color:#b91c1c;}
.profile-modal__form{display:flex;flex-direction:column;gap:16px;}
.profile-modal__field{display:flex;flex-direction:column;gap:6px;font-size:14px;color:#1e293b;}
.profile-modal__field input{padding:14px 16px;border-radius:16px;border:1px solid rgba(15,23,42,.12);font-size:15px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease;}
.profile-modal__field input:focus{outline:none;border-color:#0284c7;box-shadow:0 0 0 4px rgba(2,132,199,.2);}
.profile-modal__actions{display:flex;gap:12px;}
.profile-modal__btn{flex:1;border:none;border-radius:16px;padding:14px 16px;font-size:15px;font-weight:600;cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease,color .2s ease;}
.profile-modal__btn--primary{background:#0284c7;color:#fff;box-shadow:0 16px 32px rgba(2,132,199,.25);}
.profile-modal__btn--primary:hover{background:#0369a1;}
.profile-modal__btn--secondary{background:#e2e8f0;color:#0f172a;}
.profile-modal__btn--secondary:hover{background:#cbd5f5;}
.profile-modal__btn--danger{background:#ef4444;color:#fff;box-shadow:0 16px 32px rgba(239,68,68,.25);}
.profile-modal__btn--danger:hover{background:#dc2626;}
.profile-modal__btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;}

@media (max-width:640px){
  .profile-screen__card{border-radius:24px;padding:24px 20px 28px;}
  .profile-avatar{width:104px;height:104px;}
  .profile-modal__dialog{padding:24px 20px 28px;}
}


/* Кабинет тренера — подопечные и статистика */
.coach-pupils.card { padding:28px; border-radius:30px; box-shadow:0 24px 48px rgba(15,26,32,.08); display:flex; flex-direction:column; gap:24px; }
.coach-pupils__head { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.coach-pupils__title { margin:0; font:700 28px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-pupils__count { margin:4px 0 0; font:500 14px/1.3 'Lexend',sans-serif; color:var(--c-blue); }
.coach-pupils__search { display:flex; align-items:center; gap:12px; padding:0 16px; border:1px solid var(--c-border); border-radius:20px; background:var(--c-cream); color:var(--c-blue); min-height:48px; }
.coach-pupils__search-icon svg { width:18px; height:18px; opacity:.6; }
.coach-pupils__search-input { width:100%; border:0; outline:none; background:transparent; font:500 15px/1 'Lexend',sans-serif; color:var(--c-text); }
.coach-pupils__search-input::placeholder { color:rgba(15,26,32,.45); }
.coach-pupils__list { display:grid; gap:20px; }
.coach-pupils__empty { margin:0; padding:32px; text-align:center; border-radius:20px; background:var(--c-cream); color:rgba(15,26,32,.6); font:600 15px/1.4 'Lexend',sans-serif; }
.coach-status-dot { position:absolute; bottom:4px; right:4px; width:14px; height:14px; border-radius:50%; border:2px solid var(--c-surface); background:var(--c-border); box-shadow:0 0 0 2px rgba(255,255,255,.45); }
.coach-status-dot.is-online { background:var(--c-green); }
.coach-status-dot.is-recent { background:rgba(255,107,53,.75); }
.coach-status-dot.is-offline { background:rgba(15,26,32,.25); }

.coach-pupil-card { position:relative; border:1px solid rgba(15,26,32,.06); border-radius:24px; padding:20px; background:linear-gradient(135deg,#ffffff 0%,#f6f8fb 100%); box-shadow:0 14px 28px rgba(15,26,32,.08); display:flex; flex-direction:column; gap:16px; }
.coach-pupil-card__header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.coach-pupil-card__person { display:flex; align-items:center; gap:16px; }
.coach-pupil-card__avatar { position:relative; width:64px; height:64px; border-radius:22px; background:var(--c-cream); display:flex; align-items:center; justify-content:center; overflow:hidden; box-shadow:0 10px 24px rgba(15,26,32,.12); }
.coach-pupil-card__avatar img { width:100%; height:100%; object-fit:cover; }
.coach-pupil-card__identity { display:flex; flex-direction:column; gap:4px; }
.coach-pupil-card__name { font:600 18px/1.3 'Lexend',sans-serif; color:var(--c-text); }
.coach-pupil-card__status { font:500 13px/1.3 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-pupil-card__status.is-online { color:var(--c-green); }
.coach-pupil-card__status.is-recent { color:rgba(255,107,53,.85); }
.coach-pupil-card__status.is-offline { color:rgba(15,26,32,.4); }
.coach-pupil-card__chat { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:16px; background:rgba(5,134,199,.08); color:var(--c-blue); transition:background-color var(--speed), transform var(--speed); }
.coach-pupil-card__chat:hover { background:rgba(5,134,199,.18); transform:translateY(-1px); }
.coach-pupil-card__meta { display:flex; flex-wrap:wrap; gap:12px; font:500 13px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-pupil-card__metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:12px; }
.coach-pupil-card__metric { display:flex; flex-direction:column; gap:4px; padding:12px 14px; border-radius:18px; background:rgba(5,134,199,.08); }
.coach-pupil-card__metric-label { font:600 12px/1 'Lexend',sans-serif; text-transform:uppercase; color:rgba(15,26,32,.55); letter-spacing:.04em; }
.coach-pupil-card__metric-value { font:600 16px/1.2 'Lexend',sans-serif; color:var(--c-deep); }
.coach-pupil-card__contacts { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; }
.coach-pupil-card__label { font:600 12px/1 'Lexend',sans-serif; color:rgba(15,26,32,.5); text-transform:uppercase; letter-spacing:.05em; }
.coach-pupil-card__text { font:500 15px/1.4 'Lexend',sans-serif; color:var(--c-text); }
.coach-pupil-card__footer { display:flex; flex-wrap:wrap; gap:12px; }
.coach-pupil-card__button { padding:12px 20px; border-radius:18px; font:600 14px/1 'Lexend',sans-serif; text-decoration:none; background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; box-shadow:0 12px 28px rgba(5,134,199,.18); transition:transform var(--speed), box-shadow var(--speed); }
.coach-pupil-card__button:hover { transform:translateY(-1px); box-shadow:0 16px 32px rgba(5,134,199,.22); }
.coach-pupil-card__button--ghost { background:rgba(5,134,199,.08); color:var(--c-blue); box-shadow:none; }
.coach-pupil-card__button--ghost:hover { background:rgba(5,134,199,.15); }

.coach-empty { margin:0; padding:32px; text-align:center; font:600 15px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.5); background:rgba(15,26,32,.04); border-radius:20px; }

.coach-pupil-page { display:flex; flex-direction:column; gap:32px; }
.coach-pupil-page__header { display:flex; align-items:center; gap:24px; padding:28px 32px; background:var(--c-surface); border-radius:32px; box-shadow:0 24px 48px rgba(15,26,32,.08); }
.coach-pupil-page__back { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:18px; background:rgba(5,134,199,.08); color:var(--c-blue); transition:background-color var(--speed), transform var(--speed); }
.coach-pupil-page__back:hover { background:rgba(5,134,199,.18); transform:translateY(-1px); }
.coach-pupil-page__profile { flex:1; display:flex; align-items:center; gap:20px; }
.coach-pupil-page__avatar { position:relative; width:88px; height:88px; border-radius:28px; overflow:hidden; box-shadow:0 16px 36px rgba(15,26,32,.12); background:var(--c-cream); display:flex; align-items:center; justify-content:center; }
.coach-pupil-page__avatar img { width:100%; height:100%; object-fit:cover; }
.coach-pupil-page__info { display:flex; flex-direction:column; gap:6px; }
.coach-pupil-page__name { margin:0; font:700 28px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-pupil-page__meta, .coach-pupil-page__submeta { margin:0; font:500 14px/1.5 'Lexend',sans-serif; color:rgba(15,26,32,.6); }
.coach-pupil-page__actions { display:flex; align-items:center; }
.coach-pupil-page__chat { display:inline-flex; align-items:center; gap:10px; padding:12px 18px; border-radius:18px; background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; font:600 14px/1 'Lexend',sans-serif; text-decoration:none; box-shadow:0 16px 32px rgba(5,134,199,.25); transition:transform var(--speed), box-shadow var(--speed); }
.coach-pupil-page__chat svg { width:20px; height:20px; }
.coach-pupil-page__chat:hover { transform:translateY(-1px); box-shadow:0 20px 40px rgba(5,134,199,.32); }

.coach-pupil-page__tabs { display:flex; gap:12px; flex-wrap:wrap; padding:0 8px; }
.coach-pupil-page__tabs button { padding:10px 18px; border-radius:16px; border:0; background:rgba(5,134,199,.08); color:var(--c-blue); font:600 13px/1 'Lexend',sans-serif; cursor:pointer; transition:background-color var(--speed), color var(--speed), transform var(--speed); }
.coach-pupil-page__tabs button.is-active { background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; box-shadow:0 12px 24px rgba(5,134,199,.2); transform:translateY(-1px); }
.coach-pupil-page__tabs button:hover { background:rgba(5,134,199,.18); }

.coach-period { display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; padding:18px 24px; border-radius:24px; background:rgba(5,134,199,.05); border:1px solid rgba(5,134,199,.12); }
.coach-period__tabs { display:flex; gap:12px; flex-wrap:wrap; }
.coach-period__btn { padding:10px 18px; border-radius:18px; border:1px solid rgba(5,134,199,.18); background:#fff; color:var(--c-blue); font:600 13px/1 'Lexend',sans-serif; cursor:pointer; transition:background-color var(--speed), color var(--speed), box-shadow var(--speed); }
.coach-period__btn.is-active { background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; border-color:transparent; box-shadow:0 14px 28px rgba(5,134,199,.22); }
.coach-period__btn:hover { background:rgba(5,134,199,.12); }
.coach-period__actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin-left:auto; }
.coach-period__custom { padding:10px 18px; border-radius:18px; border:0; background:rgba(5,134,199,.12); color:var(--c-blue); font:600 13px/1 'Lexend',sans-serif; cursor:pointer; transition:background-color var(--speed), transform var(--speed); }
.coach-period__custom.is-active { background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; box-shadow:0 12px 24px rgba(5,134,199,.18); transform:translateY(-1px); }
.coach-period__custom:hover { background:rgba(5,134,199,.2); }
.coach-period__label { font:500 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.6); }

.coach-section { padding:28px 32px; background:var(--c-surface); border-radius:32px; box-shadow:0 24px 48px rgba(15,26,32,.08); display:flex; flex-direction:column; gap:24px; }
.coach-section[data-tab-panel] { display:none; }
.coach-section.is-active { display:flex; }
.coach-section__header { display:flex; flex-direction:column; gap:6px; }
.coach-section__title { margin:0; font:700 24px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-section__subtitle { margin:0; font:500 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.55); }

.coach-overview { display:grid; gap:24px; }
.coach-overview__macros { display:grid; gap:18px; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
.coach-metric-card { padding:18px 20px; border-radius:20px; background:linear-gradient(140deg, rgba(5,134,199,.08) 0%, rgba(70,169,230,.12) 100%); display:flex; flex-direction:column; gap:12px; min-height:150px; }
.coach-metric-card__title { font:600 14px/1 'Lexend',sans-serif; text-transform:uppercase; color:rgba(15,26,32,.6); letter-spacing:.04em; }
.coach-metric-card__value { font:700 26px/1.1 'Lexend',sans-serif; color:var(--c-deep); display:flex; align-items:baseline; gap:6px; }
.coach-metric-card__value span { font-size:14px; font-weight:500; color:rgba(15,26,32,.55); }
.coach-metric-card__meta { font:500 13px/1.3 'Lexend',sans-serif; color:rgba(15,26,32,.6); display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.coach-metric-card__delta { font-weight:600; }
.coach-metric-card__delta.is-up { color:var(--c-green); }
.coach-metric-card__delta.is-down { color:rgba(255,107,53,.9); }
.coach-metric-card__delta.is-neutral { color:rgba(15,26,32,.45); }

.coach-overview__details { display:grid; gap:24px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.coach-info-card { padding:20px 22px; border-radius:22px; background:rgba(15,26,32,.03); border:1px solid rgba(15,26,32,.05); display:flex; flex-direction:column; gap:16px; }
.coach-info-card__title { margin:0; font:700 16px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-info-card__list { margin:0; display:grid; gap:12px; }
.coach-info-card__list div { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; font:500 14px/1.4 'Lexend',sans-serif; color:var(--c-text); }
.coach-info-card__list dt { color:rgba(15,26,32,.55); }
.coach-info-card__list dd { margin:0; text-align:right; }
.coach-info-card__status.is-online { color:var(--c-green); }
.coach-info-card__status.is-recent { color:rgba(255,107,53,.9); }
.coach-info-card__status.is-offline { color:rgba(15,26,32,.45); }

.coach-chart-card { position:relative; min-height:260px; padding:12px; border-radius:22px; background:rgba(5,134,199,.05); border:1px solid rgba(5,134,199,.12); }
.coach-chart-card canvas { position:absolute !important; inset:12px; }

.coach-nutrition { display:flex; flex-direction:column; gap:20px; }
.coach-nutrition__tabs { display:flex; gap:12px; flex-wrap:wrap; }
.coach-nutrition__tab { padding:10px 18px; border-radius:18px; border:1px solid rgba(5,134,199,.18); background:#fff; color:var(--c-blue); font:600 13px/1 'Lexend',sans-serif; cursor:pointer; transition:background-color var(--speed), color var(--speed), box-shadow var(--speed); }
.coach-nutrition__tab.is-active { background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; border-color:transparent; box-shadow:0 12px 24px rgba(5,134,199,.2); }
.coach-nutrition__tab:hover { background:rgba(5,134,199,.12); }
.coach-nutrition__stats { display:flex; flex-wrap:wrap; gap:18px; padding:16px 20px; border-radius:20px; background:rgba(5,134,199,.06); border:1px solid rgba(5,134,199,.1); }
.coach-nutrition__stat { display:flex; flex-direction:column; gap:6px; min-width:140px; }
.coach-nutrition__stat-label { font:600 12px/1 'Lexend',sans-serif; color:rgba(15,26,32,.5); text-transform:uppercase; letter-spacing:.05em; }
.coach-nutrition__stat-value { font:700 22px/1.2 'Lexend',sans-serif; color:var(--c-deep); }
.coach-nutrition__stat-diff { font:600 16px/1.2 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-nutrition__stat-diff.is-up { color:var(--c-green); }
.coach-nutrition__stat-diff.is-down { color:rgba(255,107,53,.9); }

.coach-field { display:flex; flex-direction:column; gap:10px; }
.coach-field__label { font:600 14px/1 'Lexend',sans-serif; color:rgba(15,26,32,.55); text-transform:uppercase; letter-spacing:.05em; }
.coach-field__control { width:100%; padding:16px 18px; border-radius:18px; border:1px solid rgba(69,104,130,.18); background:#fff; font:600 16px/1.4 'Lexend',sans-serif; color:var(--c-text); transition:border-color var(--speed), box-shadow var(--speed), background-color var(--speed); }
.coach-field__control:focus { border-color:#0586c7; box-shadow:0 0 0 4px rgba(5,134,199,.18); outline:none; background:rgba(255,255,255,.95); }
.coach-field__control--textarea { min-height:128px; resize:vertical; font-weight:500; line-height:1.5; }
.coach-field__control--date { padding-right:18px; }
.coach-field--select { position:relative; }

.coach-workout.card { padding:32px; border-radius:30px; box-shadow:0 24px 48px rgba(15,26,32,.08); display:flex; flex-direction:column; gap:28px; }
.coach-workout__header { display:flex; flex-direction:column; gap:8px; }
.coach-workout__title { margin:0; font:700 26px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-workout__subtitle { margin:0; font:500 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-workout__empty { margin:0; padding:28px; border-radius:26px; background:rgba(5,134,199,.08); border:1px solid rgba(5,134,199,.12); font:600 15px/1.4 'Lexend',sans-serif; color:var(--c-blue); text-align:center; }
.coach-workout__body { display:flex; flex-direction:column; gap:28px; }
.coach-workout__grid { display:grid; gap:18px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }

.coach-select__toggle { width:100%; display:flex; align-items:center; gap:14px; padding:16px 18px; border-radius:18px; border:1px solid rgba(69,104,130,.18); background:#fff; cursor:pointer; transition:box-shadow var(--speed), border-color var(--speed), background-color var(--speed); }
.coach-select__toggle:hover { border-color:rgba(5,134,199,.35); }
.coach-select__toggle[aria-expanded="true"] { border-color:#0586c7; box-shadow:0 0 0 4px rgba(5,134,199,.18); background:rgba(255,255,255,.96); }
.coach-select__avatar { width:48px; height:48px; border-radius:16px; overflow:hidden; background:rgba(5,134,199,.12); display:flex; align-items:center; justify-content:center; font:700 18px/1 'Lexend',sans-serif; color:var(--c-blue); }
.coach-select__avatar img { width:100%; height:100%; object-fit:cover; }
.coach-select__initials { display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.coach-select__text { flex:1; display:flex; flex-direction:column; gap:4px; text-align:left; }
.coach-select__name { font:600 16px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-select__meta { font:500 13px/1.3 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-select__icon { display:flex; align-items:center; justify-content:center; color:rgba(15,26,32,.45); }
.coach-select__dropdown { position:absolute; top:calc(100% + 8px); left:0; right:0; z-index:200; padding:8px 0; background:#fff; border-radius:20px; border:1px solid rgba(69,104,130,.16); box-shadow:0 18px 36px rgba(15,26,32,.12); max-height:260px; overflow:auto; }
.coach-select__dropdown[hidden] { display:none !important; }
.coach-select__option { width:100%; display:flex; align-items:center; gap:12px; padding:12px 18px; border:0; background:transparent; cursor:pointer; text-align:left; transition:background-color var(--speed); }
.coach-select__option:hover { background:rgba(5,134,199,.08); }
.coach-select__option.is-active { background:rgba(5,134,199,.12); }
.coach-select__option-avatar { width:44px; height:44px; border-radius:15px; overflow:hidden; background:rgba(5,134,199,.12); display:flex; align-items:center; justify-content:center; font:700 16px/1 'Lexend',sans-serif; color:var(--c-blue); }
.coach-select__option-avatar img { width:100%; height:100%; object-fit:cover; }
.coach-select__option-text { display:flex; flex-direction:column; gap:3px; }
.coach-select__option-name { font:600 15px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-select__option-meta { font:500 12px/1.2 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-select__native { position:absolute; opacity:0; pointer-events:none; width:0; height:0; }

.coach-workout__section { display:flex; flex-direction:column; gap:18px; }
.coach-workout__section-head { display:flex; flex-direction:column; gap:6px; }
.coach-workout__section-title { margin:0; font:600 18px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-workout__section-note { margin:0; font:500 13px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-workout__rows { display:flex; flex-direction:column; gap:16px; }
.coach-workout-row { position:relative; display:flex; flex-direction:column; gap:16px; padding:20px; border-radius:26px; background:rgba(5,134,199,.05); border:1px solid rgba(5,134,199,.12); }
.coach-workout-row__top { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px 24px; align-items:start; }
.coach-workout-row__top > *:first-child { min-width:0; }
.coach-workout-row__field { display:flex; flex-direction:column; gap:8px; flex:1; height:100%; }
.coach-workout-row__field--exercise { min-width:220px; }
.coach-workout-row__label { font:600 13px/1 'Lexend',sans-serif; color:rgba(15,26,32,.55); text-transform:uppercase; letter-spacing:.05em; }
.coach-workout-row__input { padding:14px 16px; border-radius:16px; border:1px solid rgba(69,104,130,.18); background:#fff; font:600 15px/1.4 'Lexend',sans-serif; color:var(--c-text); transition:border-color var(--speed), box-shadow var(--speed); }
.coach-workout-row__input:focus { border-color:#0586c7; outline:none; box-shadow:0 0 0 3px rgba(5,134,199,.18); }
.coach-workout-row__grid { display:grid; gap:18px 24px; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); align-items:stretch; }
.coach-workout-row__field--mode { min-width:160px; }
.coach-workout-row__field--comment { grid-column:1 / -1; }
.coach-workout-row__field--compact .coach-workout-row__input { text-align:center; }
.coach-workout-row__search { position:relative; display:flex; align-items:stretch; gap:14px; flex-wrap:wrap; }
.coach-workout-row__search-input { position:relative; flex:1 1 260px; min-width:220px; }
.coach-workout-row__search .ex-search-results { position:absolute; top:100%; left:0; right:0; margin-top:8px; background:#fff; border:1px solid rgba(69,104,130,.16); border-radius:18px; box-shadow:0 16px 32px rgba(15,26,32,.12); padding:6px 0; max-height:260px; overflow:auto; z-index:120; }
.coach-ex-result { display:flex; align-items:center; gap:14px; padding:10px 16px; cursor:pointer; transition:background-color var(--speed); }
.coach-workout-row__search .ex-search-results .coach-ex-result { border-bottom:1px solid rgba(5,134,199,.12); }
.coach-workout-row__search .ex-search-results .coach-ex-result:last-child { border-bottom:none; }
.coach-ex-result:hover { background:rgba(5,134,199,.08); }
.coach-ex-result__thumb { width:44px; height:44px; border-radius:16px; background:rgba(5,134,199,.12); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.coach-ex-result__thumb img { width:100%; height:100%; object-fit:cover; }
.coach-ex-result__initials { font:700 16px/1 'Lexend',sans-serif; color:var(--c-blue); }
.coach-ex-result__text { flex:1; font:600 15px/1.3 'Lexend',sans-serif; color:var(--c-text); }
.food-search-results { padding:6px 0; }
.coach-food-result { display:flex; align-items:center; gap:12px; padding:10px 16px; cursor:pointer; border-bottom:1px solid rgba(5,134,199,.12); transition:background-color var(--speed); }
.coach-food-result:last-child { border-bottom:none; }
.coach-food-result:hover { background:rgba(5,134,199,.08); }
.coach-food-result__thumb { width:40px; height:40px; border-radius:14px; background:rgba(5,134,199,.12); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.coach-food-result__thumb img { width:100%; height:100%; object-fit:cover; }
.coach-food-result__initials { font:700 15px/1 'Lexend',sans-serif; color:var(--c-blue); }
.coach-food-result__text { flex:1; font:600 15px/1.3 'Lexend',sans-serif; color:var(--c-text); }
.coach-workout-row__preview { display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:18px; background:rgba(5,134,199,.08); border:1px solid rgba(5,134,199,.18); flex:0 0 auto; min-height:64px; max-width:320px; }
.coach-workout-row__preview[hidden] { display:none !important; }
.coach-workout-row__thumb { width:48px; height:48px; border-radius:16px; overflow:hidden; background:rgba(5,134,199,.12); display:flex; align-items:center; justify-content:center; font:700 18px/1 'Lexend',sans-serif; color:var(--c-blue); }
.coach-workout-row__thumb img { width:100%; height:100%; object-fit:cover; }
.coach-workout-row__thumb-fallback { display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.coach-workout-row__preview-text { flex:1; display:flex; flex-direction:column; min-width:0; }
.coach-workout-row__preview-title { font:600 15px/1.2 'Lexend',sans-serif; color:var(--c-text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.coach-workout-row__clear { border:0; background:rgba(5,134,199,.12); color:var(--c-blue); border-radius:14px; width:40px; height:40px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background-color var(--speed); flex-shrink:0; }
.coach-workout-row__clear:hover { background:rgba(5,134,199,.2); }
.coach-workout-row__remove { display:flex; align-items:center; gap:8px; border:0; background:rgba(255,107,53,.12); color:rgba(160,58,24,.9); border-radius:16px; padding:10px 14px; cursor:pointer; font:600 13px/1 'Lexend',sans-serif; transition:background-color var(--speed), transform var(--speed); align-self:start; }
.coach-workout-row__remove:hover { background:rgba(255,107,53,.18); transform:translateY(-1px); }
.coach-workout-row__remove-icon svg { width:18px; height:18px; }
.coach-workout__add { width:100%; border-radius:18px; border:1px dashed rgba(5,134,199,.4); background:rgba(5,134,199,.1); color:var(--c-blue); font:600 15px/1.2 'Lexend',sans-serif; padding:14px 18px; display:flex; align-items:center; justify-content:center; gap:10px; transition:border-color var(--speed), background-color var(--speed), transform var(--speed); }
.coach-workout__add:hover { border-color:rgba(5,134,199,.6); background:rgba(5,134,199,.18); transform:translateY(-1px); }
.coach-workout-row.row-line { grid-template-columns:none; }
#w-form .coach-workout-row { display:flex; flex-direction:column; gap:18px; align-items:stretch; }
#w-form .coach-workout-row > * { width:100%; }

@media (min-width: 1280px){
  .coach-workout-row__grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .coach-workout-row__field--mode { min-width:0; }
}
.coach-workout__add-icon { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; font:600 16px/1 'Lexend',sans-serif; }
.coach-workout__footer { display:flex; justify-content:flex-end; }
.coach-workout__submit { min-width:220px; border:0; border-radius:20px; background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; font:700 16px/1 'Lexend',sans-serif; padding:16px 28px; box-shadow:0 22px 44px rgba(5,134,199,.25); transition:transform var(--speed), box-shadow var(--speed); }
.coach-workout__submit:hover { transform:translateY(-1px); box-shadow:0 26px 52px rgba(5,134,199,.3); }
.coach-workout__submit:active { transform:translateY(1px); }
.coach-workout-existing { display:flex; gap:16px; padding:18px 20px; border-radius:22px; background:rgba(5,134,199,.1); border:1px solid rgba(5,134,199,.18); }
.coach-workout-existing__icon { width:40px; height:40px; border-radius:14px; background:#fff; display:flex; align-items:center; justify-content:center; font-size:20px; }
.coach-workout-existing__content { flex:1; display:flex; flex-direction:column; gap:12px; }
.coach-workout-existing__title { margin:0; font:600 15px/1.4 'Lexend',sans-serif; color:var(--c-text); }
.coach-workout-existing__title span { color:var(--c-blue); }
.coach-workout-existing__note { margin:0; font:500 14px/1.5 'Lexend',sans-serif; color:rgba(15,26,32,.65); }
.coach-workout-existing__list { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.coach-workout-existing__item { display:flex; justify-content:space-between; gap:12px; font:500 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.75); }
.coach-workout-existing__item span:last-child { font-weight:600; color:var(--c-deep); }
.coach-workout-existing__actions { display:flex; justify-content:flex-end; }
.coach-workout-existing__delete { border:0; border-radius:16px; padding:10px 18px; background:rgba(255,107,53,.16); color:rgba(160,58,24,.95); font:600 14px/1 'Lexend',sans-serif; cursor:pointer; transition:background-color var(--speed), transform var(--speed); }
.coach-workout-existing__delete:hover { background:rgba(255,107,53,.22); transform:translateY(-1px); }
.coach-workout__existing[hidden] { display:none !important; }

.coach-workout-row__input::-webkit-outer-spin-button,
.coach-workout-row__input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.coach-workout-row__input[type=number] { -moz-appearance:textfield; }

.coach-plan { margin:0 0 32px; display:flex; flex-direction:column; gap:18px; }
.coach-plan__card { padding:28px 32px; border-radius:32px; box-shadow:0 24px 48px rgba(15,26,32,.08); background:linear-gradient(140deg, rgba(5,134,199,.08) 0%, rgba(70,169,230,.12) 100%); display:flex; flex-direction:column; gap:20px; }
.coach-plan__row { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.coach-plan__row--main { align-items:flex-start; }
.coach-plan__info { display:flex; flex-direction:column; gap:6px; }
.coach-plan__label { font:600 12px/1 'Lexend',sans-serif; text-transform:uppercase; letter-spacing:.08em; color:rgba(15,26,32,.55); }
.coach-plan__name { font:700 26px/1.2 'Lexend',sans-serif; color:var(--c-deep); }
.coach-plan__status { display:inline-flex; align-items:center; gap:10px; padding:10px 18px; border-radius:999px; font:600 13px/1 'Lexend',sans-serif; text-transform:uppercase; letter-spacing:.08em; background:rgba(15,26,32,.08); color:rgba(15,26,32,.65); box-shadow:0 12px 24px rgba(15,26,32,.08); }
.coach-plan__status::before { content:""; width:10px; height:10px; border-radius:50%; background:currentColor; box-shadow:0 0 0 3px rgba(255,255,255,.45); }
.coach-plan__status.is-active { background:rgba(74,222,128,.18); color:#15803d; box-shadow:0 12px 24px rgba(74,222,128,.2); }
.coach-plan__status.is-trial { background:rgba(255,159,67,.18); color:#b45309; box-shadow:0 12px 24px rgba(255,159,67,.22); }
.coach-plan__status.is-expired { background:rgba(15,26,32,.08); color:rgba(15,26,32,.45); box-shadow:none; }
.coach-plan__item { display:flex; flex-direction:column; gap:6px; min-width:160px; }
.coach-plan__item-label { font:600 12px/1 'Lexend',sans-serif; text-transform:uppercase; letter-spacing:.06em; color:rgba(15,26,32,.55); }
.coach-plan__item-value { font:600 16px/1.3 'Lexend',sans-serif; color:var(--c-text); }
.coach-plan__item--action { margin-left:auto; }
.coach-plan__action { min-width:200px; border:0; border-radius:20px; padding:13px 24px; font:600 14px/1 'Lexend',sans-serif; background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; box-shadow:0 20px 40px rgba(5,134,199,.24); cursor:pointer; transition:transform var(--speed), box-shadow var(--speed), opacity var(--speed); }
.coach-plan__action:not(:disabled):hover { transform:translateY(-1px); box-shadow:0 24px 48px rgba(5,134,199,.3); }
.coach-plan__action:disabled { opacity:.65; cursor:default; box-shadow:none; }
.coach-plan__notice { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; border-radius:24px; background:rgba(5,134,199,.08); border:1px dashed rgba(5,134,199,.28); }
.coach-plan__notice-text { font:600 14px/1.5 'Lexend',sans-serif; color:var(--c-blue); }
.coach-plan__cta { border:0; border-radius:18px; padding:12px 20px; font:600 14px/1 'Lexend',sans-serif; background:rgba(5,134,199,.14); color:var(--c-blue); cursor:pointer; transition:background-color var(--speed), transform var(--speed); }
.coach-plan__cta:disabled { cursor:default; opacity:.7; }
.coach-plan__cta:not(:disabled):hover { background:rgba(5,134,199,.22); transform:translateY(-1px); }

.coach-invites__alert { display:flex; align-items:flex-start; gap:12px; padding:14px 18px; border-radius:20px; background:rgba(5,134,199,.12); color:var(--c-blue); font:600 14px/1.4 'Lexend',sans-serif; }
.coach-invites__alert-icon { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.6); color:inherit; font-weight:700; box-shadow:0 6px 18px rgba(5,134,199,.18); }
.coach-invites__alert-text { flex:1; }
.coach-invites__alert.is-error { background:rgba(239,68,68,.12); color:#b91c1c; box-shadow:0 12px 28px rgba(239,68,68,.16); }
.coach-invites__alert.is-warning { background:rgba(251,191,36,.16); color:#92400e; box-shadow:0 12px 28px rgba(251,191,36,.18); }

@media (max-width: 1024px){
  .coach-plan__card { padding:24px 26px; }
  .coach-plan__name { font-size:24px; }
  .coach-plan__action { min-width:0; }
}

@media (max-width: 768px){
  .coach-plan { gap:14px; margin-bottom:24px; }
  .coach-plan__card { padding:22px 20px; gap:16px; }
  .coach-plan__row { flex-direction:column; align-items:flex-start; gap:14px; }
  .coach-plan__item { width:100%; }
  .coach-plan__item--action { width:100%; margin-left:0; }
  .coach-plan__action { width:100%; justify-content:center; }
  .coach-plan__notice { flex-direction:column; align-items:flex-start; }
  .coach-plan__cta { width:100%; }
}

.coach-meals.card { padding:32px; border-radius:30px; box-shadow:0 24px 48px rgba(15,26,32,.08); display:flex; flex-direction:column; gap:28px; }
.coach-settings.card { padding:32px; border-radius:30px; box-shadow:0 24px 48px rgba(15,26,32,.08); display:flex; flex-direction:column; gap:28px; }
.coach-settings__header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.coach-settings__title { margin:0; font:700 28px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-settings__subtitle { margin:6px 0 0; font:500 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.6); }
.coach-settings__notice { padding:14px 18px; border-radius:20px; font:600 14px/1.4 'Lexend',sans-serif; }
.coach-settings__notice--success { background:rgba(5,134,199,.12); color:var(--c-blue); }
.coach-settings__notice--error { background:rgba(239,68,68,.12); color:#b91c1c; }
.coach-settings__form { display:flex; flex-direction:column; gap:24px; }
.coach-settings__avatar { display:flex; justify-content:center; }
.coach-avatar { display:flex; flex-direction:column; align-items:center; gap:14px; }
.coach-avatar__preview { width:132px; height:132px; border-radius:50%; background:rgba(5,134,199,.08); color:var(--c-blue); display:flex; align-items:center; justify-content:center; font:700 36px/1 'Lexend',sans-serif; overflow:hidden; background-size:cover; background-position:center; transition:box-shadow var(--speed), transform var(--speed); }
.coach-avatar__preview.has-photo { box-shadow:0 18px 38px rgba(15,26,32,.16); color:transparent; }
.coach-avatar__preview span { pointer-events:none; }
.coach-avatar__edit { padding:10px 20px; border-radius:999px; border:0; background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; font:600 14px/1 'Lexend',sans-serif; cursor:pointer; transition:transform var(--speed), box-shadow var(--speed); }
.coach-avatar__edit:hover { transform:translateY(-1px); box-shadow:0 12px 24px rgba(5,134,199,.24); }
.coach-avatar__input { display:none; }
.coach-settings__body { display:flex; flex-direction:column; gap:24px; }
.coach-settings__section { display:flex; flex-direction:column; gap:16px; padding:20px; border-radius:24px; background:var(--c-cream); }
.coach-settings__section-title { margin:0; font:700 18px/1.3 'Lexend',sans-serif; color:var(--c-blue); }
.coach-settings__grid { display:grid; gap:18px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.coach-settings__actions { display:flex; flex-wrap:wrap; gap:16px; justify-content:flex-end; }
.coach-settings__submit { padding:14px 28px; border-radius:999px; border:0; background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; font:700 15px/1 'Lexend',sans-serif; cursor:pointer; transition:transform var(--speed), box-shadow var(--speed); }
.coach-settings__submit:hover { transform:translateY(-1px); box-shadow:0 12px 28px rgba(5,134,199,.24); }
.coach-settings__password { padding:14px 24px; border-radius:999px; border:0; background:rgba(5,134,199,.12); color:var(--c-blue); font:600 15px/1 'Lexend',sans-serif; cursor:pointer; transition:background-color var(--speed); }
.coach-settings__password:hover { background:rgba(5,134,199,.2); }
.coach-settings__logout { display:inline-flex; align-items:center; justify-content:center; padding:14px 24px; border-radius:999px; border:0; background:rgba(15,26,32,.08); color:rgba(15,26,32,.72); font:600 15px/1 'Lexend',sans-serif; cursor:pointer; transition:background-color var(--speed); text-decoration:none; }
.coach-settings__logout:hover { background:rgba(15,26,32,.12); }
.coach-toggle { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 20px; border-radius:20px; background:#fff; border:1px solid rgba(5,134,199,.18); flex-wrap:wrap; }
.coach-toggle__text { display:flex; flex-direction:column; gap:6px; flex:1 1 200px; min-width:0; }
.coach-toggle__label { font:700 15px/1.3 'Lexend',sans-serif; color:var(--c-blue); }
.coach-toggle__hint { font:500 13px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.6); }
.coach-toggle__control { position:relative; width:52px; height:28px; flex:0 0 auto; }
.coach-toggle__control input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.coach-toggle__switch { position:absolute; inset:0; border-radius:999px; background:rgba(5,134,199,.18); transition:background-color var(--speed); }
.coach-toggle__switch::after { content:""; position:absolute; width:22px; height:22px; left:3px; top:3px; border-radius:50%; background:#fff; box-shadow:0 4px 10px rgba(15,26,32,.15); transition:transform var(--speed); }
.coach-toggle__control input:checked + .coach-toggle__switch { background:linear-gradient(135deg,#0586c7,#46a9e6); }
.coach-toggle__control input:checked + .coach-toggle__switch::after { transform:translateX(24px); }
.coach-invites.card { padding:32px; border-radius:30px; box-shadow:0 24px 48px rgba(15,26,32,.08); display:flex; flex-direction:column; gap:28px; }
.coach-invites__header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap; }
.coach-invites__intro { display:flex; flex-direction:column; gap:6px; max-width:520px; }
.coach-invites__title { margin:0; font:700 28px/1.2 'Lexend',sans-serif; color:var(--c-deep); }
.coach-invites__subtitle { margin:0; font:500 14px/1.5 'Lexend',sans-serif; color:rgba(15,26,32,.6); }
.coach-invites__create { gap:10px; font:600 15px/1 'Lexend',sans-serif; padding:14px 20px; border-radius:18px; box-shadow:0 18px 36px rgba(255,107,53,.18); transition:transform var(--speed), box-shadow var(--speed), opacity var(--speed); }
.coach-invites__create.is-loading { opacity:.7; pointer-events:none; }
.coach-invites__create-icon { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:rgba(255,255,255,.2); font:600 16px/1 'Lexend',sans-serif; }
.coach-invites__body { display:flex; flex-direction:column; gap:24px; }
.coach-invites__table { border-radius:26px; border:1px solid rgba(69,104,130,.16); background:#fff; overflow:hidden; box-shadow:0 18px 36px rgba(15,26,32,.08); }
.coach-invites-table { width:100%; border-collapse:separate; border-spacing:0; min-width:560px; }
.coach-invites-table thead th { padding:18px 22px; text-align:left; font:600 12px/1 'Lexend',sans-serif; text-transform:uppercase; letter-spacing:.08em; color:rgba(5,134,199,.9); background:linear-gradient(135deg,rgba(231,241,251,.9),rgba(255,255,255,.95)); border-bottom:1px solid rgba(69,104,130,.12); }
.coach-invites-table__row:nth-child(even) .coach-invites-table__cell { background:rgba(246,250,255,.65); }
.coach-invites-table__cell { padding:18px 22px; font:500 14px/1.5 'Lexend',sans-serif; color:rgba(15,26,32,.8); border-bottom:1px solid rgba(69,104,130,.12); background:#fff; transition:background-color var(--speed); }
.coach-invites-table__row:last-child .coach-invites-table__cell { border-bottom:0; }
.coach-invites-table__cell--code { font-family:'Fira Code','Roboto Mono',monospace; font-size:16px; letter-spacing:.06em; color:var(--c-deep); }
.coach-invites-table__cell--user { min-width:200px; }
.coach-invites-table__cell--date time { font-weight:600; color:var(--c-blue); }
.coach-invites-table__row.is-just-created .coach-invites-table__cell { background:rgba(74,222,128,.15); }
.coach-invites-status { display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:999px; font:600 13px/1 'Lexend',sans-serif; text-transform:uppercase; letter-spacing:.06em; }
.coach-invites-status__dot { width:10px; height:10px; border-radius:50%; background:currentColor; box-shadow:0 0 0 4px rgba(0,0,0,.08) inset; }
.coach-invites-status.is-free { background:rgba(74,222,128,.18); color:#15803d; }
.coach-invites-status.is-used { background:rgba(248,113,113,.18); color:#b91c1c; }
.coach-invites-user { display:flex; flex-direction:column; gap:4px; }
.coach-invites-user__name { font:600 15px/1.3 'Lexend',sans-serif; color:var(--c-deep); }
.coach-invites-user__meta { font:500 13px/1.3 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-invites-user.is-empty { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:14px; border:1px dashed rgba(69,104,130,.35); background:rgba(231,241,251,.4); font:600 13px/1 'Lexend',sans-serif; color:rgba(15,26,32,.55); text-transform:uppercase; letter-spacing:.06em; }
.coach-invites__empty { display:flex; flex-direction:column; gap:10px; align-items:flex-start; padding:28px; border-radius:24px; background:linear-gradient(135deg,rgba(231,241,251,.75),rgba(255,255,255,.95)); border:1px dashed rgba(69,104,130,.25); box-shadow:0 12px 28px rgba(15,26,32,.08); }
.coach-invites__empty-icon { width:48px; height:48px; border-radius:16px; display:flex; align-items:center; justify-content:center; background:rgba(5,134,199,.12); font-size:24px; }
.coach-invites__empty-title { margin:0; font:700 20px/1.3 'Lexend',sans-serif; color:var(--c-deep); }
.coach-invites__empty-text { margin:0; font:500 14px/1.5 'Lexend',sans-serif; color:rgba(15,26,32,.6); max-width:420px; }
.coach-meals__header { display:flex; flex-direction:column; gap:8px; }
.coach-meals__title { margin:0; font:700 28px/1.2 'Lexend',sans-serif; color:var(--c-deep); }
.coach-meals__subtitle { margin:0; font:500 14px/1.5 'Lexend',sans-serif; color:rgba(15,26,32,.6); }
.coach-meals__empty { margin:0; padding:24px; border-radius:24px; background:rgba(15,26,32,.04); font:600 15px/1.5 'Lexend',sans-serif; color:rgba(15,26,32,.6); }
.coach-meals__body { display:flex; flex-direction:column; gap:28px; }
.coach-meals__group { display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.coach-meals-field { display:flex; flex-direction:column; gap:10px; }
.coach-meals-field__label { font:600 14px/1 'Lexend',sans-serif; color:rgba(15,26,32,.55); text-transform:uppercase; letter-spacing:.05em; }
.coach-meals-field__control { width:100%; padding:16px 18px; border-radius:18px; border:1px solid rgba(69,104,130,.18); background:#fff; font:600 16px/1.4 'Lexend',sans-serif; color:var(--c-text); transition:border-color var(--speed), box-shadow var(--speed), background-color var(--speed); }
.coach-meals-field__control:focus { border-color:#0586c7; box-shadow:0 0 0 4px rgba(5,134,199,.18); outline:none; background:rgba(255,255,255,.95); }
.coach-meals-field__control--textarea { min-height:128px; resize:vertical; font-weight:500; line-height:1.5; }
.coach-meals-field--select { position:relative; }
.coach-meals__section { display:flex; flex-direction:column; gap:20px; padding:24px; border-radius:26px; background:linear-gradient(140deg, rgba(231,241,251,.85) 0%, rgba(255,255,255,.95) 100%); border:1px solid rgba(5,134,199,.14); box-shadow:0 18px 36px rgba(15,26,32,.08); }
.coach-meals__section-head { display:flex; flex-direction:column; gap:6px; }
.coach-meals__section-title { margin:0; font:700 20px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-meals__section-note { margin:0; font:500 13px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-meals__macro-grid { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); }
.coach-macro { display:flex; flex-direction:column; gap:10px; padding:18px 20px; border-radius:20px; background:rgba(5,134,199,.08); border:1px solid rgba(5,134,199,.18); box-shadow:0 14px 28px rgba(5,134,199,.18); }
.coach-macro__label { font:600 12px/1 'Lexend',sans-serif; color:rgba(15,26,32,.55); text-transform:uppercase; letter-spacing:.05em; }
.coach-macro__control { display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:16px; background:#fff; border:1px solid rgba(5,134,199,.12); flex-wrap:wrap; }
.coach-macro__input { flex:1 1 auto; min-width:0; border:0; background:transparent; font:700 26px/1 'Lexend',sans-serif; color:var(--c-deep); outline:none; }
.coach-macro__input:focus { outline:none; }
.coach-macro__unit { font:600 14px/1 'Lexend',sans-serif; color:rgba(15,26,32,.45); flex:0 0 auto; }
.coach-meals__rows { display:flex; flex-direction:column; gap:16px; }
.coach-meals-row { display:grid; grid-template-columns:1.1fr 1.8fr 0.8fr auto; gap:16px; padding:20px 22px; border-radius:22px; background:#fff; border:1px solid rgba(5,134,199,.12); box-shadow:0 18px 36px rgba(15,26,32,.1); align-items:flex-start; position:relative; }
.coach-meals-row__field { display:flex; flex-direction:column; gap:8px; position:relative; }
.coach-meals-row__label { font:600 12px/1 'Lexend',sans-serif; color:rgba(15,26,32,.55); text-transform:uppercase; letter-spacing:.05em; }
.coach-meals-row__input { width:100%; padding:14px 16px; border-radius:16px; border:1px solid rgba(69,104,130,.22); background:rgba(231,241,251,.5); font:600 15px/1.3 'Lexend',sans-serif; color:var(--c-text); transition:border-color var(--speed), box-shadow var(--speed), background-color var(--speed); }
.coach-meals-row__input:focus { border-color:#0586c7; box-shadow:0 0 0 3px rgba(5,134,199,.18); outline:none; background:#fff; }
.coach-meals-row__search { position:relative; }
.coach-meals-row__field--search .food-search-results { top:calc(100% + 6px); border-radius:16px; box-shadow:0 18px 36px rgba(15,26,32,.15); }
.coach-meals-row__field--short .coach-meals-row__input { text-align:center; }
.coach-meals-row__remove { align-self:flex-start; margin-top:28px; display:inline-flex; align-items:center; gap:10px; padding:12px 18px; border-radius:16px; border:0; background:rgba(255,107,53,.12); color:#ff6b35; font:600 14px/1 'Lexend',sans-serif; box-shadow:0 12px 24px rgba(255,107,53,.18); transition:background-color var(--speed), transform var(--speed), box-shadow var(--speed); cursor:pointer; }
.coach-meals-row__remove:hover { background:rgba(255,107,53,.2); transform:translateY(-1px); box-shadow:0 16px 28px rgba(255,107,53,.24); }
.coach-meals-row__remove:active { transform:translateY(1px); }
.coach-meals-row__remove-icon { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; }
.coach-meals-row__remove svg { width:18px; height:18px; }
.coach-meals-row__macros { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; padding:14px 16px; border-radius:18px; border:1px solid rgba(5,134,199,.16); background:rgba(5,134,199,.08); box-shadow:0 16px 32px rgba(5,134,199,.15); transition:background-color var(--speed), border-color var(--speed), box-shadow var(--speed); }
.coach-meals-row__macros.is-empty { background:rgba(5,134,199,.04); border-style:dashed; border-color:rgba(5,134,199,.2); box-shadow:none; }
.coach-meals-row__macros-empty { display:none; width:100%; font:500 13px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.45); }
.coach-meals-row__macros.is-empty .coach-meals-row__macros-empty { display:block; }
.coach-meals-row__macros.is-empty .coach-meals-macro { opacity:.35; }
.coach-meals-macro { display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border-radius:14px; font:600 14px/1 'Lexend',sans-serif; }
.coach-meals-macro__icon { font-size:18px; line-height:1; }
.coach-meals-macro__value { font-size:18px; }
.coach-meals-macro__label { font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.coach-meals-macro--kcal { background:rgba(255,107,53,.16); color:#c2410c; }
.coach-meals-macro--protein { background:rgba(34,197,94,.18); color:#15803d; }
.coach-meals-macro--fat { background:rgba(250,204,21,.22); color:#b45309; }
.coach-meals-macro--carb { background:rgba(59,130,246,.18); color:#1d4ed8; }
.coach-meals__add { width:100%; margin-top:4px; border-radius:18px; border:1px dashed rgba(5,134,199,.35); background:rgba(5,134,199,.12); color:var(--c-blue); font:600 15px/1.2 'Lexend',sans-serif; gap:10px; padding:14px 18px; transition:background-color var(--speed), border-color var(--speed), transform var(--speed); }
.coach-meals__add:hover { background:rgba(5,134,199,.22); border-color:rgba(5,134,199,.55); transform:translateY(-1px); }
.coach-meals__add-icon { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; font:600 16px/1 'Lexend',sans-serif; }
.coach-meals__footer { display:flex; justify-content:flex-end; }
.coach-meals__submit { min-width:220px; border-radius:20px; border:0; background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; font:700 16px/1 'Lexend',sans-serif; padding:16px 28px; box-shadow:0 22px 44px rgba(5,134,199,.25); transition:transform var(--speed), box-shadow var(--speed); }
.coach-meals__submit:hover { transform:translateY(-1px); box-shadow:0 26px 52px rgba(5,134,199,.3); }
.coach-meals__submit:active { transform:translateY(1px); }

.coach-macro__input::-webkit-outer-spin-button,
.coach-macro__input::-webkit-inner-spin-button,
.coach-meals-row__input::-webkit-outer-spin-button,
.coach-meals-row__input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.coach-macro__input[type=number],
.coach-meals-row__input[type=number] { -moz-appearance:textfield; }

@media (max-width: 900px){
  .coach-meals.card { padding:28px 24px; }
  .coach-meals__group { grid-template-columns:1fr; }
  .coach-workout.card { padding:28px 24px; }
  .coach-workout-row__top { grid-template-columns:1fr; }
  .coach-workout-row__remove { justify-self:flex-end; }
  .coach-workout-row__search { flex-direction:column; align-items:stretch; }
  .coach-workout-row__search-input { flex-basis:auto; min-width:0; }
  .coach-workout-row__preview { width:100%; }
  .coach-workout-row__preview-title { white-space:normal; }
  .coach-workout-row__grid { grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); }
  .coach-invites.card { padding:28px 24px; }
  .coach-invites__table { overflow-x:auto; }
  .coach-settings.card { padding:28px 24px; }
  .coach-settings__actions { justify-content:center; }
}

@media (max-width: 680px){
  .coach-meals__section { padding:20px; border-radius:24px; }
  .coach-meals-row { grid-template-columns:1fr; }
  .coach-meals-row__remove { width:100%; margin:12px 0 0; justify-content:center; }
  .coach-meals-row__macros { margin-top:12px; }
  .coach-meals__footer { justify-content:stretch; }
  .coach-meals__submit { width:100%; }
  .coach-workout__grid { grid-template-columns:1fr; }
  .coach-workout-row { padding:18px; }
  .coach-workout-row__grid { grid-template-columns:1fr; }
  .coach-workout-row__field--exercise { min-width:0; }
  .coach-workout-row__field--mode { min-width:0; }
  .coach-workout-row__search-input { min-width:0; }
  .coach-workout-row__remove { align-self:flex-end; }
  .coach-workout__footer { justify-content:stretch; }
  .coach-workout__submit { width:100%; }
  .coach-invites.card { padding:24px 18px; }
  .coach-invites__header { flex-direction:column; align-items:stretch; }
  .coach-invites__create { width:100%; justify-content:center; }
  .coach-invites-table { min-width:480px; }
  .coach-settings.card { padding:24px 20px; }
  .coach-settings__section { padding:18px; }
  .coach-settings__avatar { justify-content:center; }
  .coach-settings__actions { flex-direction:column; align-items:stretch; }
  .coach-settings__password, .coach-settings__submit, .coach-settings__logout { width:100%; text-align:center; }
  .coach-toggle { gap:14px; }
  .coach-toggle__text { flex-basis:100%; }
  .coach-toggle__control { margin-left:0; }
}

@media (max-width: 520px){
  .coach-macro__control { padding:10px 12px; gap:8px; }
  .coach-macro__input { font-size:22px; }
  .coach-macro__unit { font-size:13px; }
  .coach-toggle { padding:16px 18px; flex-direction:column; align-items:flex-start; }
  .coach-toggle__control { align-self:flex-start; }
}

@media (max-width: 480px){
  .coach-meals.card { padding:22px 18px; gap:18px; border-radius:24px; }
  .coach-meals__header { gap:6px; }
  .coach-meals__title { font-size:22px; }
  .coach-meals__subtitle { font-size:13px; }
  .coach-meals__section { padding:16px; border-radius:22px; gap:16px; }
  .coach-meals__section-head { gap:4px; }
  .coach-meals__section-title { font-size:18px; }
  .coach-meals__section-note { font-size:12px; }
  .coach-meals__macro-grid { gap:12px; }
  .coach-macro { padding:14px 16px; gap:8px; border-radius:18px; }
  .coach-macro__label { font-size:11px; }
  .coach-macro__control { padding:9px 12px; gap:6px; border-radius:14px; }
  .coach-macro__input { font-size:20px; }
  .coach-macro__unit { font-size:12px; }
  .coach-meals-field { gap:8px; }
  .coach-meals-field__label { font-size:12px; }
  .coach-meals-field__control { padding:13px 14px; font-size:15px; border-radius:16px; }
  .coach-meals__group { gap:14px; }
  .coach-meals__rows { gap:12px; }
  .coach-meals-row { padding:16px; gap:12px; border-radius:18px; }
  .coach-meals-row__label { font-size:11px; }
  .coach-meals-row__input { padding:12px; font-size:14px; border-radius:14px; }
  .coach-meals-row__macros { padding:12px; gap:10px; border-radius:16px; }
  .coach-meals-macro { padding:8px 12px; gap:6px; font-size:13px; border-radius:12px; }
  .coach-meals-macro__value { font-size:16px; }
  .coach-meals__add { padding:12px 14px; font-size:14px; border-radius:16px; }
  .coach-meals__submit { padding:14px 20px; font-size:15px; border-radius:18px; }
  .coach-meals__footer { margin-top:4px; }
}

.coach-workouts { display:flex; flex-direction:column; gap:18px; }
.coach-workouts__summary { font:600 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-workouts-list { list-style:none; margin:0; padding:0; display:flex; gap:16px; overflow-x:auto; padding-bottom:4px; }
.coach-workouts-list::-webkit-scrollbar { height:6px; }
.coach-workouts-list::-webkit-scrollbar-thumb { background:rgba(5,134,199,.25); border-radius:999px; }
.coach-workouts-item { flex:0 0 168px; padding:16px 18px; border-radius:18px; background:rgba(5,134,199,.05); border:1px solid rgba(5,134,199,.1); display:flex; flex-direction:column; gap:12px; }
.coach-workouts-item__label { font:600 14px/1 'Lexend',sans-serif; color:var(--c-blue); }
.coach-workouts-item__bar { position:relative; height:10px; border-radius:999px; background:rgba(5,134,199,.12); overflow:hidden; }
.coach-workouts-item__progress { position:absolute; inset:0; border-radius:999px; background:linear-gradient(90deg,#0586c7,#46a9e6); transition:width .3s ease; min-width:4px; }
.coach-workouts-item__value { font:600 13px/1 'Lexend',sans-serif; color:rgba(15,26,32,.65); align-self:flex-end; }
.coach-workouts-item__details { margin-top:4px; padding:8px 14px; border-radius:14px; border:0; background:rgba(5,134,199,.12); color:var(--c-blue); font:600 13px/1 'Lexend',sans-serif; cursor:pointer; transition:background-color var(--speed), transform var(--speed); align-self:flex-start; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.coach-workouts-item__details:hover { background:rgba(5,134,199,.18); transform:translateY(-1px); }
.coach-workouts-item__details:focus-visible { outline:2px solid rgba(5,134,199,.45); outline-offset:2px; }
.coach-workout-detail { display:flex; flex-direction:column; gap:24px; padding:32px; border-radius:28px; background:var(--c-surface); box-shadow:0 22px 48px rgba(15,26,32,.08); }
.coach-workout-detail__head { display:flex; flex-direction:column; gap:12px; }
.coach-workout-detail__back { align-self:flex-start; display:inline-flex; align-items:center; gap:10px; padding:10px 16px; border-radius:16px; background:rgba(5,134,199,.1); color:var(--c-blue); font:600 13px/1 'Lexend',sans-serif; text-decoration:none; transition:background-color var(--speed), transform var(--speed); }
.coach-workout-detail__back svg { width:18px; height:18px; }
.coach-workout-detail__back:hover { background:rgba(5,134,199,.18); transform:translateY(-1px); }
.coach-workout-detail__title { margin:0; font:700 26px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-workout-detail__meta { margin:0; font:600 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-workout-detail__summary { margin:0; font:600 14px/1.4 'Lexend',sans-serif; color:rgba(5,134,199,.95); }
.coach-workout-detail__note { margin:0; padding:14px 16px; border-radius:16px; background:rgba(5,134,199,.08); font:500 13px/1.5 'Lexend',sans-serif; color:rgba(15,26,32,.72); }
.coach-workout-detail__loading { margin:0; font:500 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.6); }
.coach-workout-detail__error { margin:0; font:600 14px/1.4 'Lexend',sans-serif; color:rgba(255,107,53,.9); }
.coach-workout-detail__empty { margin:0; font:500 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-modal__dialog--wide { max-width:680px; padding:32px 28px; }
.coach-workout-modal__header { display:flex; flex-direction:column; gap:6px; }
.coach-workout-modal__subtitle { margin:0; font:600 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.6); }
.coach-workout-modal__summary { margin:0; font:600 13px/1.4 'Lexend',sans-serif; color:rgba(5,134,199,.95); }
.coach-workout-modal__body { display:flex; flex-direction:column; gap:18px; }
.coach-workout-modal__note { margin:0; padding:14px 16px; border-radius:14px; background:rgba(5,134,199,.08); font:500 13px/1.5 'Lexend',sans-serif; color:rgba(15,26,32,.72); }
.coach-workout-modal__loading { margin:0; font:500 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.6); }
.coach-workout-modal__error { margin:0; font:600 14px/1.4 'Lexend',sans-serif; color:rgba(255,107,53,.9); }
.coach-workout-modal__empty { margin:0; font:500 14px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-workout-exercises { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px; }
.coach-workout-exercise { padding:18px 20px; border-radius:18px; background:rgba(5,134,199,.05); border:1px solid rgba(5,134,199,.1); display:flex; flex-direction:column; gap:10px; }
.coach-workout-exercise__title { font:600 16px/1.25 'Lexend',sans-serif; color:var(--c-text); }
.coach-workout-exercise__meta { font:500 13px/1.5 'Lexend',sans-serif; color:rgba(15,26,32,.6); }
.coach-workout-exercise__status { font:600 13px/1.5 'Lexend',sans-serif; color:rgba(5,134,199,.95); }
.coach-workout-exercise__empty { margin:0; font:500 13px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.55); font-style:italic; }
.coach-workout-exercise__comment { margin:0; padding:12px 14px; border-radius:14px; background:rgba(5,134,199,.1); font:500 13px/1.5 'Lexend',sans-serif; color:rgba(15,26,32,.72); }
.coach-workout-logs { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.coach-workout-log { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 12px; border-radius:12px; background:rgba(5,134,199,.1); color:rgba(15,26,32,.75); }
.coach-workout-log__index { font:600 12px/1 'Lexend',sans-serif; color:var(--c-blue); text-transform:uppercase; letter-spacing:.04em; }
.coach-workout-log__details { font:500 13px/1.4 'Lexend',sans-serif; color:inherit; }
.coach-workout-modal__body > [hidden] { display:none !important; }
[data-workout-empty][hidden] { display:none !important; }

.coach-measure { display:flex; flex-direction:column; gap:20px; }
.coach-measure__tabs { display:flex; gap:12px; flex-wrap:wrap; }
.coach-measure__tab { padding:10px 18px; border-radius:18px; border:1px solid rgba(5,134,199,.18); background:#fff; color:var(--c-blue); font:600 13px/1 'Lexend',sans-serif; cursor:pointer; transition:background-color var(--speed), color var(--speed), box-shadow var(--speed); }
.coach-measure__tab.is-active { background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; border-color:transparent; box-shadow:0 14px 28px rgba(5,134,199,.22); }
.coach-measure__tab:hover { background:rgba(5,134,199,.12); }
.coach-measure__chart { position:relative; min-height:260px; border-radius:22px; background:#fff; border:1px solid rgba(5,134,199,.12); padding:12px; }
.coach-measure__chart canvas { position:absolute !important; inset:12px; }
.coach-measure__summary { display:flex; flex-wrap:wrap; gap:24px; padding:18px 20px; border-radius:20px; background:rgba(5,134,199,.06); border:1px solid rgba(5,134,199,.1); }
.coach-measure__value, .coach-measure__delta { display:flex; flex-direction:column; gap:6px; min-width:160px; }
.coach-measure__value-label { font:600 12px/1 'Lexend',sans-serif; color:rgba(15,26,32,.5); text-transform:uppercase; letter-spacing:.05em; }
.coach-measure__value-number { font:700 26px/1.1 'Lexend',sans-serif; color:var(--c-deep); }
.coach-measure__delta-number { font:600 18px/1.2 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-measure__delta-number.is-up { color:var(--c-green); }
.coach-measure__delta-number.is-down { color:rgba(255,107,53,.9); }
.coach-measure__delta-number.is-neutral { color:rgba(15,26,32,.45); }
.coach-measure__note { margin:0; font:500 13px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.45); }

.coach-modal { position:fixed; inset:0; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(15,26,32,.35); z-index:400; }
.coach-modal[hidden] { display:none !important; }
.coach-modal__backdrop { position:absolute; inset:0; }
.coach-modal__dialog { position:relative; width:100%; max-width:420px; background:var(--c-surface); border-radius:24px; padding:28px 24px; box-shadow:0 28px 56px rgba(15,26,32,.24); display:flex; flex-direction:column; gap:20px; }
.coach-modal__close { position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:12px; border:0; background:rgba(5,134,199,.12); color:var(--c-blue); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background-color var(--speed), transform var(--speed); }
.coach-modal__close:hover { background:rgba(5,134,199,.2); transform:translateY(-1px); }
.coach-modal__title { margin:0; font:700 20px/1.2 'Lexend',sans-serif; color:var(--c-text); }
.coach-modal__form { display:flex; flex-direction:column; gap:18px; }
.coach-modal__fields { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); }
.coach-modal__fields label { display:flex; flex-direction:column; gap:6px; font:600 13px/1 'Lexend',sans-serif; color:rgba(15,26,32,.6); }
.coach-modal__fields input { padding:12px 14px; border-radius:14px; border:1px solid rgba(5,134,199,.24); background:#fff; font:500 15px/1.4 'Lexend',sans-serif; color:var(--c-text); transition:border-color var(--speed), box-shadow var(--speed); }
.coach-modal__fields input:focus { border-color:#0586c7; outline:none; box-shadow:0 0 0 4px rgba(5,134,199,.12); }
.coach-modal__hint { margin:0; font:500 13px/1.4 'Lexend',sans-serif; color:rgba(15,26,32,.55); }
.coach-modal__error { margin:0; font:600 13px/1.4 'Lexend',sans-serif; color:rgba(255,107,53,.9); }
.coach-modal__error[hidden] { display:none !important; }
.coach-modal__actions { display:flex; justify-content:flex-end; gap:12px; }
.coach-modal__submit { padding:10px 20px; border-radius:18px; border:0; background:linear-gradient(135deg,#0586c7,#46a9e6); color:#fff; font:600 14px/1 'Lexend',sans-serif; cursor:pointer; transition:transform var(--speed), box-shadow var(--speed); }
.coach-modal__submit:hover { transform:translateY(-1px); box-shadow:0 14px 28px rgba(5,134,199,.22); }
.coach-modal__cancel { padding:10px 20px; border-radius:18px; border:0; background:rgba(5,134,199,.12); color:var(--c-blue); font:600 14px/1 'Lexend',sans-serif; cursor:pointer; transition:background-color var(--speed); }
.coach-modal__cancel:hover { background:rgba(5,134,199,.2); }

@media (max-width: 1024px){
  .coach-workout-detail { padding:28px; }
  .coach-pupil-page__header { flex-direction:column; align-items:flex-start; }
  .coach-pupil-page__actions { width:100%; justify-content:flex-start; }
}
@media (max-width: 768px){
  .coach-workout-detail { padding:24px 20px; border-radius:24px; }
  .coach-workout-detail__title { font-size:22px; }
  .coach-workout-detail__back { width:100%; justify-content:center; }
  .coach-pupils.card { padding:20px; }
  .coach-pupil-card { padding:18px; }
  .coach-pupil-page__header { padding:24px; }
  .coach-pupil-page__profile { flex-direction:column; align-items:flex-start; }
  .coach-pupil-page__avatar { width:72px; height:72px; }
  .coach-section { padding:24px; border-radius:28px; }
  .coach-overview__macros { grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); }
  .coach-chart-card, .coach-measure__chart { min-height:220px; }
}
@media (max-width: 560px){
  .coach-pupil-card__footer { flex-direction:column; }
  .coach-workouts-item { grid-template-columns:40px 1fr 48px; }
  .coach-pupil-page__tabs { padding:0; }
}

.coach-measure__note:empty { display:none; }
.content-manager{padding:48px 0 72px;}
.content-manager__shell{display:grid;grid-template-columns:minmax(260px,320px) 1fr;gap:32px;align-items:flex-start;}
.content-manager__sidebar{background:rgba(255,255,255,0.92);border-radius:28px;padding:32px 28px;box-shadow:0 30px 60px rgba(69,104,130,0.16);border:1px solid rgba(69,104,130,0.08);display:flex;flex-direction:column;gap:28px;position:sticky;top:32px;}
.content-manager__user{display:flex;align-items:center;gap:16px;}
.content-manager__avatar-wrap{width:72px;height:72px;border-radius:24px;overflow:hidden;box-shadow:0 12px 24px rgba(5,134,199,0.18);border:3px solid rgba(5,134,199,0.15);}
.content-manager__avatar{width:100%;height:100%;object-fit:cover;display:block;}
.content-manager__user-meta{display:flex;flex-direction:column;gap:4px;}
.content-manager__role{font-size:0.8rem;text-transform:uppercase;letter-spacing:0.08em;color:rgba(5,134,199,0.85);font-weight:600;}
.content-manager__name{font-size:1.15rem;font-weight:700;color:var(--c-text);}
.content-manager__nav{display:flex;flex-direction:column;gap:14px;}
.content-manager__nav-btn{appearance:none;border:0;border-radius:18px;padding:16px 18px;text-align:left;background:rgba(5,134,199,0.08);color:var(--c-text);display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:transform var(--speed) ease,box-shadow var(--speed) ease,background var(--speed) ease,color var(--speed) ease;}
.content-manager__nav-btn:focus-visible{outline:2px solid rgba(14,165,233,0.65);outline-offset:3px;}
.content-manager__nav-btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(5,134,199,0.18);}
.content-manager__nav-btn.is-active{background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;box-shadow:0 22px 45px rgba(14,165,233,0.35);}
.content-manager__nav-title{font-size:1rem;font-weight:600;}
.content-manager__nav-desc{font-size:0.85rem;opacity:0.75;}
.content-manager__logout{margin-top:auto;display:inline-flex;align-items:center;gap:10px;font-weight:600;color:#dc2626;text-decoration:none;padding:12px 0 0;border-top:1px solid rgba(5,134,199,0.12);}
.content-manager__logout::before{content:'\2716';display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;font-size:0.85rem;}
.content-manager__logout:focus-visible{outline:2px solid rgba(220,38,38,0.45);outline-offset:4px;border-radius:10px;}
.content-manager__logout:hover{color:#b91c1c;}
.content-manager__main{background:rgba(255,255,255,0.96);border-radius:36px;padding:40px 44px;box-shadow:0 26px 60px rgba(15,26,32,0.14);border:1px solid rgba(69,104,130,0.08);display:flex;flex-direction:column;gap:32px;}
.content-manager__header{margin:0;display:flex;flex-direction:column;gap:12px;}
.content-manager__title{margin:0;font-size:2.1rem;font-weight:700;}
.content-manager__subtitle{margin:0;color:rgba(15,26,32,0.7);max-width:680px;font-size:1rem;line-height:1.5;}
.content-manager__panel{margin:0;display:none;}
.content-manager__panel.is-active{display:block;}
.cm-form{background:var(--c-surface);border-radius:var(--radius);padding:24px;box-shadow:0 10px 24px rgba(17,24,39,0.08);border:1px solid rgba(15,26,32,0.05);}
.cm-form.is-loading{opacity:0.7;pointer-events:none;}
.cm-form__mode{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;align-items:center;}
.cm-form__mode-btn{appearance:none;border:1px solid rgba(5,134,199,0.25);background:rgba(5,134,199,0.08);color:var(--c-text);border-radius:999px;padding:0.45rem 1rem;font-weight:600;font-size:0.9rem;cursor:pointer;transition:background var(--speed) ease,color var(--speed) ease,border-color var(--speed) ease,box-shadow var(--speed) ease;}
.cm-form__mode-btn.is-active{background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;border-color:transparent;box-shadow:0 12px 24px rgba(14,165,233,0.26);}
.cm-form__mode-btn:focus-visible{outline:2px solid rgba(14,165,233,0.6);outline-offset:3px;}
.cm-form__mode-btn:hover{box-shadow:0 10px 20px rgba(5,134,199,0.18);}
.cm-form__edit{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;padding:16px;border:1px dashed rgba(5,134,199,0.2);border-radius:16px;background:rgba(5,134,199,0.04);}
.cm-grid{display:flex;flex-wrap:wrap;gap:24px;}
.cm-column{flex:1 1 320px;min-width:0;}

.cm-field{display:flex;flex-direction:column;margin-bottom:16px;gap:6px;}
.cm-field--inline{max-width:none;margin-bottom:0;}
.cm-field--compact{max-width:160px;}
.cm-field__label{font-weight:600;font-size:0.9rem;}
.cm-field__input{width:100%;border:1px solid rgba(5,134,199,0.18);border-radius:12px;padding:0.7rem 0.9rem;font-size:0.95rem;background:rgba(255,255,255,0.98);transition:border-color var(--speed) ease,box-shadow var(--speed) ease;}
.cm-field__input::placeholder{color:rgba(15,26,32,0.55);}
.cm-field__input:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px rgba(5,134,199,0.12);}
.cm-field__input--textarea{min-height:160px;resize:vertical;}
.cm-field__hint{font-size:0.85rem;color:rgba(5,134,199,0.9);min-height:1.2em;}
.cm-field__hint.is-error{color:#dc2626;}

.cm-fieldset{border:1px dashed rgba(5,134,199,0.25);border-radius:12px;padding:16px;margin:0 0 24px;}
.cm-fieldset__legend{font-weight:600;font-size:0.95rem;margin-bottom:12px;}
.cm-macros{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;}

.cm-media{margin-bottom:20px;border:1px solid rgba(15,26,32,0.08);border-radius:14px;padding:16px;}
.cm-media__header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;}
.cm-media__label{font-weight:600;}
.cm-media__actions{display:flex;gap:10px;flex-wrap:wrap;}
.cm-media__preview{min-height:80px;border-radius:12px;background:rgba(15,26,32,0.04);display:flex;justify-content:center;align-items:center;padding:12px;}
.cm-media__list{display:flex;flex-wrap:wrap;gap:12px;min-height:80px;padding:8px;border-radius:12px;background:rgba(15,26,32,0.04);}
.cm-media__empty{margin:0;color:rgba(15,26,32,0.6);font-size:0.9rem;text-align:center;}
.cm-media__thumb{position:relative;width:96px;height:96px;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 6px 18px rgba(15,26,32,0.12);}
.cm-media__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.cm-media__thumb--grid{width:88px;height:88px;}
.cm-media__remove{position:absolute;top:6px;right:6px;border:none;background:rgba(15,26,32,0.75);color:#fff;width:24px;height:24px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer;}
.cm-media__remove:hover{background:rgba(5,134,199,0.85);}

.cm-button{display:inline-flex;align-items:center;justify-content:center;gap:0.4rem;padding:0.55rem 1.1rem;border-radius:999px;font-weight:600;font-size:0.95rem;border:1px solid transparent;background:rgba(5,134,199,0.12);color:var(--c-accent);cursor:pointer;transition:transform var(--speed) ease,box-shadow var(--speed) ease,background var(--speed) ease;}
.cm-button:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(5,134,199,0.18);} 
.cm-button--primary{background:var(--c-accent);color:#fff;border-color:var(--c-accent);}
.cm-button--primary:hover{box-shadow:0 10px 22px rgba(5,134,199,0.28);}
.cm-button--ghost{background:transparent;color:rgba(15,26,32,0.7);border-color:rgba(15,26,32,0.1);}
.cm-button--link{background:transparent;border:none;color:var(--c-accent);padding:0;min-height:0;}
.cm-button--link:hover{box-shadow:none;text-decoration:underline;transform:none;}

.cm-taxonomy{position:relative;border:1px solid rgba(15,26,32,0.08);border-radius:14px;padding:16px;margin-bottom:18px;background:rgba(255,255,255,0.9);overflow:visible;}
.cm-taxonomy__head{margin-bottom:12px;}
.cm-taxonomy__label{font-weight:600;display:block;margin-bottom:4px;}
.cm-taxonomy__hint{font-size:0.85rem;color:rgba(15,26,32,0.65);}
.cm-taxonomy__input{width:100%;border:1px dashed rgba(5,134,199,0.35);border-radius:10px;padding:0.6rem 0.75rem;font-size:0.9rem;background:#fff;color:var(--c-text);transition:border-color var(--speed) ease,box-shadow var(--speed) ease;}
.cm-taxonomy__input:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px rgba(5,134,199,0.12);}

.cm-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;min-height:32px;}
.cm-tags__empty{font-size:0.85rem;color:rgba(15,26,32,0.68);}
.cm-tag{background:rgba(5,134,199,0.12);color:var(--c-accent);border:none;border-radius:999px;padding:0.35rem 0.9rem;font-size:0.85rem;font-weight:600;cursor:pointer;transition:background var(--speed) ease,color var(--speed) ease;}
.cm-tag:hover{background:var(--c-accent);color:#fff;}

.cm-suggestions{position:absolute;top:100%;left:0;margin-top:10px;border:1px solid rgba(15,26,32,0.12);border-radius:12px;background:#fff;box-shadow:0 20px 40px rgba(15,26,32,0.14);padding:12px;width:100%;max-height:220px;overflow-y:auto;z-index:20;}
.cm-suggestions--list{position:relative;margin-top:0;box-shadow:none;max-height:260px;top:auto;left:auto;}
.cm-suggestions--list[hidden]{display:none;}
.cm-suggestions[hidden]{display:none;}
.cm-suggestions__item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:0.45rem 0.4rem;border-radius:8px;font-size:0.9rem;color:var(--c-text);cursor:pointer;transition:background var(--speed) ease,color var(--speed) ease;}
.cm-suggestions__item:hover{background:rgba(5,134,199,0.12);color:var(--c-accent);}
.cm-suggestions__empty{margin:0;font-size:0.9rem;color:rgba(15,26,32,0.68);}
.cm-suggestions__title{margin:0 0 6px;font-weight:600;font-size:0.9rem;color:rgba(15,26,32,0.7);}
.cm-suggestions__link{display:block;margin-bottom:4px;font-size:0.9rem;word-break:break-word;}

.home-support{padding:48px 0 72px;}
.support-note{margin-top:24px;padding:16px 20px;border-radius:16px;background:rgba(5,134,199,0.08);display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;}
.support-note__text{margin:0;font-weight:600;color:var(--c-text);}
.support-note__link{font-weight:600;color:var(--c-accent);text-decoration:none;}
.support-note__link:hover,.support-note__link:focus{text-decoration:underline;}

.cm-form__current{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;background:rgba(14,165,233,0.1);color:var(--c-text);}
.cm-form__current-label{font-weight:600;}
.cm-form__current-title{font-weight:600;}

.cm-form__footer{display:flex;flex-direction:column;gap:16px;margin-top:16px;}
.cm-form__actions{display:flex;flex-wrap:wrap;gap:12px;}
.cm-form__status{min-height:1.2em;font-size:0.95rem;font-weight:600;}
.cm-form__status.is-error{color:#dc2626;}
.cm-form__status.is-success{color:#15803d;}
.cm-form__status.is-info{color:rgba(15,26,32,0.7);}

@media (max-width: 1024px){
  .content-manager{padding:36px 0 64px;}
  .content-manager__shell{grid-template-columns:1fr;gap:24px;}
  .content-manager__sidebar{position:relative;top:auto;flex-direction:row;align-items:flex-start;flex-wrap:wrap;gap:20px;padding:28px;}
  .content-manager__nav{flex-direction:row;flex-wrap:wrap;gap:12px;}
  .content-manager__nav-btn{flex:1 1 220px;}
  .content-manager__logout{width:100%;justify-content:flex-start;padding-top:16px;}
  .content-manager__main{padding:32px 34px;}
}

@media (max-width: 768px){
  .content-manager{padding:24px 0 56px;}
  .content-manager__sidebar{flex-direction:column;padding:24px;}
  .content-manager__main{padding:24px;}
  .cm-form{padding:20px;}
  .cm-grid{flex-direction:column;}
  .cm-column{min-width:100%;}
  .cm-media__thumb{width:84px;height:84px;}
}

@media (max-width: 540px){
  :root{
    --radius:14px;
    --topbar-height:48px;
    --tabbar-height:68px;
  }

  button,
  .btn{
    padding:.65rem .9rem;
    border-radius:var(--radius);
    font-size:.95rem;
  }

  .card{
    padding:.85rem;
    border-radius:var(--radius);
  }

  .input{
    padding:.75rem .9rem;
    border-radius:12px;
    font-size:.95rem;
  }

  .container{
    padding:16px 14px;
  }

  body.app-user .container,
  body.app-coach .container{
    padding:24px 6px 64px;
  }

  .dashboard-view__header{
    padding:16px 6px 8px;
    gap:10px;
  }

  .dashboard-view__title{
    font-size:18px;
  }

  .dashboard-view__subtitle{
    font-size:12px;
  }

  .dashboard-view__stub,
  .dashboard-view__back{
    width:34px;
    height:34px;
    border-radius:12px;
  }

  .dashboard-view__actions{
    gap:8px;
  }

  .dashboard-view__content{
    gap:16px;
    padding:0 0px 72px;
  }

  .page-content{
    padding-top:calc(12px + var(--topbar-height) + env(safe-area-inset-top));
    padding-bottom:calc(12px + var(--tabbar-height) + env(safe-area-inset-bottom));
  }

  .dashboard-menu.bottom a{
    padding:.45rem 0;
    font-size:12px;
  }

  .topbar .inner{
    padding:6px 12px;
    gap:12px;
    height:var(--topbar-height);
  }

  .topbar__link{
    padding:5px 10px;
    font-size:.85rem;
  }

  .tabbar .inner{
    padding:4px 8px;
    gap:6px;
  }

  .tabbar a{
    padding:6px 4px;
    border-radius:10px;
    font-size:11px;
    gap:4px;
  }

  .tabbar svg{
    width:18px;
    height:18px;
    stroke-width:1.5;
  }

  .tabbar--user .inner,
  .tabbar--coach .inner{
    padding:6px 10px;
    gap:8px;
  }

  .tabbar--user a,
  .tabbar--coach a{
    min-width:72px;
    padding:8px 6px 12px;
    gap:4px;
    border-radius:14px;
    font-size:11px;
  }

  .tabbar--user a::after,
  .tabbar--coach a::after{
    bottom:4px;
    width:24px;
    height:2px;
  }

  .profile-screen{
    gap:18px;
  }

  .profile-screen__card{
    padding:20px 16px 24px;
    gap:18px;
    border-radius:22px;
  }

  .profile-screen__title{
    font-size:18px;
  }

  .profile-screen__notice{
    padding:12px 14px;
    border-radius:16px;
    font-size:13px;
  }

  .profile-form{
    gap:16px;
  }

  .profile-avatar{
    width:96px;
    height:96px;
  }

  .profile-avatar__image{
    font-size:24px;
  }

  .profile-avatar__edit{
    width:34px;
    height:34px;
  }

  .profile-form__fields{
    gap:12px;
  }

  .profile-field label{
    font-size:13px;
  }

  .profile-field input,
  .profile-field textarea{
    padding:12px 14px;
    font-size:14px;
    border-radius:14px;
  }

  .profile-field textarea{
    min-height:90px;
  }

  .profile-form__submit{
    padding:14px;
    font-size:15px;
    border-radius:16px;
  }

  .profile-actions{
    gap:10px;
  }

  .profile-actions__btn{
    padding:12px 14px;
    font-size:14px;
    border-radius:16px;
  }

  .profile-modal{
    padding:16px;
  }

  .profile-modal__dialog{
    padding:20px 16px 24px;
    border-radius:22px;
    gap:14px;
  }

  .profile-modal__btn{
    padding:12px 14px;
    font-size:14px;
    border-radius:14px;
  }
}
