:root{
  color-scheme:dark;
  --bg:#07101a;
  --bg-soft:#0a1420;
  --panel:#101b29;
  --panel2:#152335;
  --panel3:#1a2a3d;
  --text:#f4f8fb;
  --muted:#93a5b8;
  --line:#26384b;
  --accent:#59e0a9;
  --accent-soft:color-mix(in srgb,var(--accent) 16%,transparent);
  --accent-strong:color-mix(in srgb,var(--accent) 76%,white 24%);
  --danger:#ff8c8c;
  --warning:#f8c86a;
  --shadow:0 22px 65px rgba(0,0,0,.22);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
html[data-theme=light]{
  color-scheme:light;
  --bg:#f2f6f8;
  --bg-soft:#e9f0f4;
  --panel:#fff;
  --panel2:#edf3f7;
  --panel3:#e5eef3;
  --text:#0a1724;
  --muted:#5d6f7e;
  --line:#d6e0e7;
  --accent:#147d5d;
  --shadow:0 22px 65px rgba(30,57,75,.10);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:
  radial-gradient(circle at 16% 0%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 32%),
  var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}
button{border:0;cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:3px}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}
.auth-card{width:min(430px,100%)}
.brand{display:flex;align-items:center;gap:12px}
.brand h1,.brand p{margin:0}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--accent);color:#062018;font-weight:900;box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 24%,transparent)}
.brand-mark.has-logo{background-size:cover;background-position:center;background-repeat:no-repeat;color:transparent}
.card,.metric-card{background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 94%,white 6%),var(--panel));border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 1px 0 rgba(255,255,255,.025)}
.auth-card label,.form-grid label,form label{display:grid;gap:7px;color:var(--muted);margin-top:16px}
input,select,textarea{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:12px 13px;color:var(--text);transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb,var(--accent) 62%,var(--line));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 10%,transparent)}
textarea{resize:vertical}
.primary,.secondary,.ghost,.icon-button{border-radius:13px;padding:11px 16px;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s}
.primary{background:var(--accent);color:#062018;font-weight:850;box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 18%,transparent)}
.primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px color-mix(in srgb,var(--accent) 25%,transparent)}
.secondary{background:var(--accent-soft);color:var(--accent-strong);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));font-weight:750}
.secondary:hover,.ghost:hover,.icon-button:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--panel2) 76%,var(--accent) 24%)}
.ghost{background:var(--panel2);color:var(--text);border:1px solid var(--line)}
.icon-button{width:42px;height:42px;padding:0;display:grid;place-items:center;background:var(--panel2);color:var(--text);border:1px solid var(--line)}
.compact{padding:9px 13px}
.full-width{width:100%}
.error{color:var(--danger)}
.status{position:fixed;z-index:50;top:18px;left:50%;transform:translateX(-50%);background:var(--panel);border:1px solid var(--line);padding:11px 18px;border-radius:999px;box-shadow:var(--shadow)}
.topbar{height:76px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;padding:0 clamp(18px,3vw,42px);border-bottom:1px solid var(--line);position:sticky;top:0;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(18px);z-index:20}
.topbar small{display:block;color:var(--muted)}
.topbar-brand{min-width:210px}
.top-actions{display:flex;gap:9px;justify-self:end}
.desktop-nav{display:flex;justify-content:center;gap:6px}
.desktop-nav button{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;background:transparent;color:var(--muted);font-weight:700;transition:background .18s,color .18s,transform .18s}
.desktop-nav button span{font-size:16px}
.desktop-nav button:hover{background:var(--panel2);color:var(--text);transform:translateY(-1px)}
.desktop-nav button.active{background:var(--accent-soft);color:var(--accent-strong)}
main{max-width:1380px;margin:0 auto;padding:38px clamp(18px,3vw,42px) 72px}
.route{display:none;animation:routeIn .28s ease both}
.route.active{display:block}
@keyframes routeIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.eyebrow{margin:0;color:var(--accent);font-weight:850;letter-spacing:.15em;font-size:11px;text-transform:uppercase}
.welcome-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:44px;align-items:center;min-height:285px;padding:clamp(28px,4vw,54px);border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));border-radius:30px;background:
  radial-gradient(circle at 80% 18%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 30%),
  linear-gradient(125deg,color-mix(in srgb,var(--panel) 90%,var(--accent) 10%),var(--panel));box-shadow:var(--shadow)}
.welcome-hero:after{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:-130px;bottom:-230px;border:70px solid color-mix(in srgb,var(--accent) 7%,transparent)}
.welcome-copy{position:relative;z-index:1}
.welcome-copy h1{font-size:clamp(34px,5vw,62px);line-height:1.02;letter-spacing:-.04em;margin:10px 0 12px;max-width:780px}
.welcome-copy>p:not(.eyebrow){font-size:17px;color:var(--muted);max-width:680px;margin:0}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}
.day-score{position:relative;z-index:1;display:grid;justify-items:center;gap:12px;min-width:190px}
.day-score p{margin:0;color:var(--muted);font-size:13px;text-align:center;max-width:180px}
.progress-ring{--progress:0%;width:150px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) var(--progress),color-mix(in srgb,var(--line) 70%,transparent) 0);position:relative;box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 4%,transparent),0 24px 55px rgba(0,0,0,.18);transition:background .45s ease}
.progress-ring:before{content:"";position:absolute;inset:12px;border-radius:50%;background:var(--panel);border:1px solid var(--line)}
.progress-ring>div{position:relative;display:grid;text-align:center}
.progress-ring strong{font-size:34px;letter-spacing:-.04em}
.progress-ring span{font-size:12px;color:var(--muted)}
.today-layout{display:grid;grid-template-columns:minmax(0,2.25fr) minmax(280px,.85fr);gap:22px;margin-top:28px;align-items:start}
.today-main,.today-aside,.stack{display:grid;gap:18px}
.today-aside{position:sticky;top:98px}
.section-heading,.card-heading,.metric-top,.coach-profile-head,.weight-summary{display:flex;align-items:center;justify-content:space-between;gap:16px}
.section-heading{margin-bottom:15px}
.section-heading h2,.card-heading h2{margin:5px 0 0}
.status-pill,.soft-pill{display:inline-flex;align-items:center;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));padding:7px 11px;font-size:12px;font-weight:750;white-space:nowrap}
.grid{display:grid;gap:16px}
.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
.two{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}
.metric-card{min-height:190px;display:flex;flex-direction:column;justify-content:space-between}
.interactive-card{cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s}
.interactive-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 38%,var(--line));box-shadow:0 18px 44px rgba(0,0,0,.16)}
.metric-top{justify-content:flex-start}
.metric-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--accent-soft);color:var(--accent-strong);font-size:13px;font-weight:900}
.metric-label{font-size:13px;color:var(--muted);font-weight:750}
.metric-link{margin-left:auto;color:var(--accent-strong);font-size:12px;font-weight:800;opacity:.9}
.metric-card>strong{font-size:clamp(24px,3vw,34px);line-height:1.08;letter-spacing:-.035em;margin:16px 0 10px}
.metric-card>strong small{font-size:14px;color:var(--muted);font-weight:650;letter-spacing:0}
.metric-card>p{margin:9px 0 0;color:var(--muted);font-size:13px}
progress{width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;background:var(--panel3);accent-color:var(--accent)}
progress::-webkit-progress-bar{background:var(--panel3);border-radius:999px}
progress::-webkit-progress-value{background:linear-gradient(90deg,var(--accent),var(--accent-strong));border-radius:999px;transition:width .45s ease}
.card h2{margin-top:0}
.card p,.empty{color:var(--muted)}
.meal-card{padding-bottom:14px}
.meal-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}
.meal-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;text-align:left;padding:14px;border-radius:16px;background:var(--panel2);border:1px solid var(--line);color:var(--text);transition:transform .18s,border-color .18s,background .18s}
.meal-item:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--panel2) 88%,var(--accent) 12%)}
.meal-item>span:nth-child(2){display:grid;gap:3px}
.meal-item small{color:var(--muted);font-size:11px}
.meal-status{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--panel3);color:var(--muted);font-weight:900}
.meal-item.complete .meal-status{background:var(--accent);color:#062018}
.meal-item.complete{border-color:color-mix(in srgb,var(--accent) 28%,var(--line))}
.focus-grid{align-items:stretch}
.coach-instructions-card,.habits-card{min-height:190px}
.instruction-copy{font-size:16px;line-height:1.65;margin-bottom:0}
.habit-empty{border:1px dashed var(--line);border-radius:15px;padding:20px;margin-top:18px}
.coach-profile-card{background:linear-gradient(155deg,color-mix(in srgb,var(--panel) 84%,var(--accent) 16%),var(--panel))}
.coach-profile-head{justify-content:flex-start}
.coach-profile-head h2{margin:3px 0 0}
.coach-avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--accent);color:#062018;font-size:22px;font-weight:900;box-shadow:0 14px 30px color-mix(in srgb,var(--accent) 18%,transparent)}
.coach-profile-card p{line-height:1.55}
.weight-summary{margin-top:22px}
.weight-summary>strong{font-size:34px;letter-spacing:-.04em}
.trend{border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800}
.trend.down,.trend.up{background:var(--accent-soft);color:var(--accent-strong)}
.trend.neutral{background:var(--panel2);color:var(--muted)}
.sparkline{width:100%;height:94px;margin-top:14px;overflow:visible}
.sparkline-line{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 5px 8px color-mix(in srgb,var(--accent) 25%,transparent))}
.sparkline-area{fill:color-mix(in srgb,var(--accent) 10%,transparent);stroke:none}
.momentum-card{background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--panel) 86%,var(--accent) 14%))}
.momentum-card h2{font-size:24px;line-height:1.15;margin:8px 0}
.momentum-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}
.momentum-actions button{padding:9px 6px;border-radius:11px;background:var(--panel2);border:1px solid var(--line);color:var(--text);font-size:12px;font-weight:750}
.momentum-actions button:hover{background:var(--accent-soft);color:var(--accent-strong)}
.page-head{display:flex;justify-content:space-between;gap:22px;align-items:end;margin-bottom:24px}
.page-head h1{font-size:clamp(34px,5vw,58px);letter-spacing:-.04em;margin:6px 0}
.page-head p:not(.eyebrow){color:var(--muted);margin:0}
.page-head input{width:auto;min-width:170px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.form-grid label{margin:0}
.form-grid .wide{grid-column:1/-1}
.guidance-card{background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 90%,var(--accent) 10%),var(--panel))}
.list-card{margin-top:18px}
.list{display:grid;gap:9px}
.list-row{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--panel2);border:1px solid transparent;padding:13px 14px;border-radius:14px;transition:border-color .18s,transform .18s}
.list-row:hover{border-color:var(--line);transform:translateX(2px)}
.list-row span{display:grid;gap:3px}
.list-row small{color:var(--muted)}
.list-row strong{white-space:nowrap}
.large{font-size:48px!important;letter-spacing:-.04em}
.latest-weight-card{display:grid;align-content:center;min-height:210px}
.empty-state{text-align:center;padding:48px 24px}
.coach-grid{align-items:start}
.message-list{max-height:430px;overflow:auto;padding-right:4px}
.message-row{display:grid;gap:4px}
.message-row.client{text-align:right}
.message-row p{margin:0;background:var(--panel2);padding:11px 13px;border-radius:15px;display:inline-block}
.checkin-submit{margin-top:8px}
.bottom-nav{display:none}
@media(max-width:1100px){
  .today-layout{grid-template-columns:1fr}
  .today-aside{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}
  .meal-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  .topbar-brand{min-width:auto}
}
@media(max-width:850px){
  .topbar{grid-template-columns:1fr auto}
  .desktop-nav{display:none}
  main{padding-bottom:105px}
  .welcome-hero{grid-template-columns:1fr;gap:26px}
  .day-score{grid-template-columns:auto 1fr;justify-items:start;min-width:0}
  .progress-ring{width:112px}
  .today-aside{grid-template-columns:1fr}
  .two{grid-template-columns:minmax(0,1fr)}
  .bottom-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:8px max(8px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));z-index:30}
  .bottom-nav button{display:grid;justify-items:center;gap:3px;background:transparent;color:var(--muted);padding:7px 4px;border-radius:12px}
  .bottom-nav button span{font-size:17px}
  .bottom-nav button small{font-size:10px}
  .bottom-nav button.active{background:var(--accent-soft);color:var(--accent-strong)}
}
@media(max-width:620px){
  .topbar{height:68px;padding:0 14px}
  .topbar-brand small{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  main{padding:20px 14px 100px}
  .welcome-hero{padding:25px 20px;border-radius:24px}
  .welcome-copy h1{font-size:38px}
  .hero-actions{display:grid;grid-template-columns:1fr 1fr}
  .hero-actions .primary{grid-column:1/-1}
  .day-score{grid-template-columns:1fr;text-align:center;justify-items:center}
  .metrics{grid-template-columns:1fr}
  .meal-timeline{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .form-grid .wide{grid-column:auto}
  .page-head{align-items:start;flex-direction:column}
  .page-head input{width:100%}
  .section-heading{align-items:flex-start}
  .status-pill{display:none}
  .top-actions #themeButton{display:none}
}

/* Functional communication and form states */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.nav-unread{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:2px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:900;line-height:1}
.desktop-nav .nav-unread{margin-left:-3px}.bottom-nav .nav-unread{position:absolute;top:3px;right:calc(50% - 22px)}.bottom-nav button{position:relative}
.conversation-card{display:grid;gap:16px;min-height:560px}
.message-list{display:flex;flex-direction:column;gap:10px;min-height:260px;max-height:520px;overflow:auto;padding:4px 6px 4px 2px;scrollbar-gutter:stable}
.message-bubble{align-self:flex-start;max-width:min(78%,560px);display:grid;gap:5px;padding:12px 14px;border-radius:17px 17px 17px 5px;background:var(--panel2);border:1px solid var(--line);box-shadow:0 4px 14px rgba(0,0,0,.06)}
.message-bubble.mine{align-self:flex-end;border-radius:17px 17px 5px 17px;background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.message-bubble.unread{box-shadow:inset 3px 0 0 var(--accent),0 4px 14px rgba(0,0,0,.06)}
.message-bubble.pending{opacity:.7}.message-bubble.failed{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 7%,var(--panel))}
.message-bubble p{margin:0;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
.message-meta{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.mine .message-meta{justify-content:flex-end}
.message-composer{display:grid;gap:10px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.message-composer textarea{min-height:92px}.composer-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.composer-actions small{color:var(--muted)}
button:disabled{cursor:not-allowed;opacity:.55;transform:none!important;box-shadow:none!important}
.entry-actions{display:flex!important;grid-auto-flow:column;align-items:center;justify-content:end;gap:7px}.entry-actions strong{margin-right:4px}.entry-actions .icon-button{width:34px;height:34px;border-radius:10px}
.icon-button.danger{color:var(--danger)}.icon-button.danger:hover{background:color-mix(in srgb,var(--danger) 12%,var(--panel2));border-color:color-mix(in srgb,var(--danger) 32%,var(--line))}
.food-entry-row{align-items:center}.food-entry-row.pending{opacity:.65}
.catalog-search{display:grid;gap:9px;margin:18px 0 20px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.catalog-search>label{color:var(--muted);font-size:13px;font-weight:750}
.catalog-status{min-height:18px;color:var(--muted);font-size:12px}
.catalog-results{display:grid;max-height:330px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.catalog-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;width:100%;padding:13px 14px;text-align:left;color:var(--text);background:transparent;border-bottom:1px solid var(--line)}
.catalog-result:last-child{border-bottom:0}.catalog-result:hover,.catalog-result:focus-visible{background:color-mix(in srgb,var(--panel2) 82%,var(--accent) 18%)}
.catalog-result>span{display:grid;gap:4px;min-width:0}.catalog-result strong,.catalog-result small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.catalog-result small,.catalog-result-nutrition{color:var(--muted);font-size:12px}.catalog-result-nutrition{text-align:right;white-space:nowrap}
.catalog-selection{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:12px;background:var(--accent-soft)}
.catalog-selection>span{display:grid;gap:3px;min-width:0}.catalog-selection strong,.catalog-selection small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-selection small{color:var(--muted)}
@media(max-width:620px){.catalog-result{grid-template-columns:1fr}.catalog-result-nutrition{text-align:left}.catalog-selection{align-items:stretch;flex-direction:column}.catalog-selection button{width:100%}}
.review-feedback{margin-top:9px;padding:10px 12px;border-radius:12px;background:var(--accent-soft);color:var(--text);border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line))}
.checkin-dialog{width:min(660px,calc(100vw - 28px));max-height:min(760px,calc(100vh - 28px));overflow:auto;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:0;box-shadow:0 30px 90px rgba(0,0,0,.45)}
.checkin-dialog::backdrop{background:rgba(2,10,18,.72);backdrop-filter:blur(5px)}
.checkin-dialog form{padding:24px}.checkin-dialog h2{margin:5px 0}.checkin-questions{display:grid;gap:15px;margin:20px 0}.checkin-questions label{display:grid;gap:7px;color:var(--muted)}
.checkin-checkbox{grid-template-columns:auto 1fr!important;align-items:center}.checkin-checkbox input{width:auto}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:15px;border-top:1px solid var(--line)}
.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent);margin-right:5px}
@media(max-width:620px){.message-bubble{max-width:90%}.composer-actions{align-items:stretch;flex-direction:column}.composer-actions button{width:100%}.conversation-card{min-height:calc(100vh - 190px)}.dialog-actions{display:grid;grid-template-columns:1fr 1fr}}

/* Workout logging */
.program-overview{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 88%,var(--accent) 12%),var(--panel))}.program-overview h2{margin:5px 0}.training-session-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.training-session-card{display:flex;flex-direction:column;gap:16px}.exercise-preview{display:grid;gap:8px;flex:1}.workout-dialog{width:min(980px,calc(100vw - 28px))}.workout-exercises{display:grid;gap:18px;margin:22px 0}.workout-exercise{border:1px solid var(--line);background:var(--panel2);border-radius:18px;padding:18px}.workout-exercise-head{display:flex;justify-content:space-between;gap:18px;align-items:start;margin-bottom:15px}.workout-exercise-head h3{margin:0 0 5px;font-size:20px}.workout-exercise-head p{margin:0;color:var(--muted)}.set-table{display:grid;gap:7px}.set-row{display:grid;grid-template-columns:48px minmax(100px,1fr) 90px minmax(130px,1fr) 80px 54px;gap:8px;align-items:center}.set-header{padding:0 8px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.workout-set{padding:8px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}.workout-set input{padding:9px 8px;border-radius:10px}.workout-set>.set-completed{width:20px;height:20px;justify-self:center;accent-color:var(--accent)}.load-field{display:grid;grid-template-columns:minmax(70px,1fr) 50px;gap:5px}.exercise-feedback{margin-top:14px}.workout-summary-fields{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
@media(max-width:900px){.training-session-grid{grid-template-columns:1fr}.set-row{grid-template-columns:38px minmax(75px,1fr) 72px minmax(100px,1fr) 68px 44px}.set-header{font-size:9px}.workout-dialog form{padding:18px}}
@media(max-width:620px){.program-overview{align-items:flex-start;flex-direction:column}.workout-exercise{padding:13px}.workout-exercise-head{flex-direction:column}.set-table{overflow-x:auto;padding-bottom:4px}.set-row{min-width:610px}.workout-dialog .dialog-actions{grid-template-columns:1fr}.workout-dialog .dialog-actions button{width:100%}}

/* Account and privacy */
.privacy-grid{align-items:start}.privacy-grid .card{height:100%}.privacy-grid p{color:var(--muted);line-height:1.6}.danger-button{background:color-mix(in srgb,var(--danger) 18%,var(--panel));border:1px solid color-mix(in srgb,var(--danger) 48%,var(--line));color:var(--danger);font-weight:850}.danger-button:hover{background:var(--danger);color:#fff}.soft-pill.warning{color:#c78b1b;background:color-mix(in srgb,#c78b1b 12%,var(--panel2))}.privacy-request-row .soft-pill.completed{color:var(--accent-strong);background:var(--accent-soft)}.privacy-request-row .soft-pill.cancelled,.privacy-request-row .soft-pill.rejected{color:var(--muted)}

/* Commercial product foundation */
:root{--bg:#0d1211;--bg-soft:#121916;--panel:#181f1c;--panel2:#222a26;--panel3:#2a332e;--text:#f4f7f5;--muted:#a0aca6;--line:#344039;--accent:#61d6a4;--accent-strong:#8ce5be;--danger:#ff8f8f;--warning:#f3bd68;--shadow:0 10px 30px rgba(0,0,0,.18)}
html[data-theme=light]{--bg:#f3f6f4;--bg-soft:#e9efec;--panel:#fff;--panel2:#edf2ef;--panel3:#e2e9e5;--text:#17211d;--muted:#637069;--line:#d3ddd7;--accent:#16765b;--accent-strong:#115d49}
*{letter-spacing:0!important}
body{background:var(--bg)}
.card,.metric-card{border-radius:8px;background:var(--panel);box-shadow:none}
.brand-mark,input,select,textarea,.primary,.secondary,.ghost,.icon-button,.desktop-nav button,.metric-icon,.status-pill,.soft-pill,.meal-item,.list-row,.habit-empty{border-radius:7px}
.topbar{height:72px;background:color-mix(in srgb,var(--bg) 94%,transparent)}
main{max-width:1180px;padding-top:30px}
.welcome-hero{min-height:228px;padding:34px 38px;border-radius:8px;background:var(--panel);box-shadow:none}.welcome-hero:after{display:none}.welcome-copy h1{font-size:clamp(38px,4vw,52px)}
.progress-ring{width:124px;box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 5%,transparent)}
.today-layout{grid-template-columns:minmax(0,2fr) minmax(280px,.8fr)}.metric-card{min-height:158px}
.metrics .metric-card:nth-child(2) .metric-icon,.metrics .metric-card:nth-child(2) .metric-link{color:var(--warning)}.metrics .metric-card:nth-child(2) .metric-icon{background:color-mix(in srgb,var(--warning) 13%,var(--panel2))}
.metrics .metric-card:nth-child(3) .metric-icon,.metrics .metric-card:nth-child(3) .metric-link{color:#78aee6}.metrics .metric-card:nth-child(3) .metric-icon{background:color-mix(in srgb,#78aee6 13%,var(--panel2))}
.metrics .metric-card:nth-child(4) .metric-icon,.metrics .metric-card:nth-child(4) .metric-link{color:#e6937e}.metrics .metric-card:nth-child(4) .metric-icon{background:color-mix(in srgb,#e6937e 13%,var(--panel2))}
.interactive-card:hover,.meal-item:hover,.list-row:hover,.primary:hover,.secondary:hover,.ghost:hover,.icon-button:hover{transform:none}
progress::-webkit-progress-value{background:var(--accent)}
.coach-profile-card,.momentum-card,.guidance-card,.program-overview{background:var(--panel)}
.page-head h1{font-size:clamp(36px,4vw,48px)}
.empty-state{min-height:150px;padding:28px 24px;border:1px dashed var(--line)}
.progress-summary-grid{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(220px,.65fr) minmax(360px,1.4fr);gap:16px}.progress-trend-card{min-height:210px}
.chart-empty{display:grid;place-items:center;min-height:94px;margin:14px 0 0;border:1px dashed var(--line);border-radius:7px;color:var(--muted);text-align:center}
.route-state{display:grid;justify-items:center;gap:12px}.route-state p{max-width:480px;margin:0;color:var(--muted)}
.language-settings-card{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:18px}.language-settings-card h2{margin:5px 0}.language-settings-card p{margin-bottom:0}.language-settings-card label{width:min(260px,100%);margin:0}
@media(max-width:1000px){.progress-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-trend-card{grid-column:1/-1}}
@media(max-width:1100px){.today-layout{grid-template-columns:1fr}.today-aside{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.today-aside{grid-template-columns:1fr}}
@media(max-width:620px){.welcome-hero{padding:24px 20px}.progress-summary-grid{grid-template-columns:1fr}.progress-trend-card{grid-column:auto}.language-settings-card{align-items:stretch;flex-direction:column}#route-settings .card-heading{align-items:flex-start;flex-wrap:wrap}#route-settings .card-heading button{margin-left:auto}}

/* Client daily workflow */
.daily-plan-card{padding:0;overflow:hidden}.daily-plan-card .card-heading{padding:18px 20px;margin:0;border-bottom:1px solid var(--line)}.daily-plan{display:grid}.daily-plan-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:68px;padding:12px 18px;border:0;border-bottom:1px solid var(--line);background:var(--panel);color:var(--text);text-align:left}.daily-plan-row:last-child{border-bottom:0}.daily-plan-row:hover{background:var(--panel2)}.daily-plan-row>span:nth-child(2){display:grid;gap:4px;min-width:0}.daily-plan-row small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-plan-order{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:var(--panel2);color:var(--muted);font-size:12px;font-weight:900}.daily-plan-row.now .daily-plan-order{background:color-mix(in srgb,var(--danger) 18%,var(--panel2));color:var(--danger)}.daily-plan-row.planned .daily-plan-order{background:var(--accent-soft);color:var(--accent-strong)}.daily-plan-action{color:var(--accent-strong);font-size:12px;font-weight:800;white-space:nowrap}.daily-plan-clear{display:grid;gap:4px;padding:22px;text-align:center}.daily-plan-clear span{color:var(--muted)}
@media(max-width:620px){.daily-plan-row{grid-template-columns:32px minmax(0,1fr);padding:12px}.daily-plan-action{grid-column:2}.daily-plan-row small{white-space:normal}.daily-plan-card .card-heading{padding:16px}}
