:root{
  color-scheme:dark;
  --bg:#11140f;
  --bg-2:#0c0f0b;
  --surface:#171b15;
  --surface-2:#1c2119;
  --surface-3:#23291f;
  --paper:#f1f0e9;
  --text:#f4f5ef;
  --text-soft:#d1d5cd;
  --muted:#969e91;
  --dim:#6e776a;
  --line:rgba(241,244,235,.10);
  --line-strong:rgba(241,244,235,.19);
  --accent:#b7f23a;
  --accent-strong:#98cf19;
  --accent-soft:rgba(183,242,58,.12);
  --accent-ink:#151a0c;
  --good:#75d7a7;
  --warn:#e1b669;
  --danger:#f28c84;
  --blue:#85b7ff;
  --purple:#b9a2ff;
  --orange:#f1a56c;
  --pink:#ef93b4;
  --gold:#d8c37a;
  --shadow:0 24px 60px rgba(0,0,0,.22);
  --sidebar-w:258px;
  --content-max:1320px;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --ease:cubic-bezier(.2,.75,.2,1);
}
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#f3f1e9;
  --bg-2:#ebe9df;
  --surface:#faf9f3;
  --surface-2:#efeee6;
  --surface-3:#e7e5db;
  --paper:#141713;
  --text:#151813;
  --text-soft:#343b32;
  --muted:#697164;
  --dim:#8b9385;
  --line:rgba(20,28,19,.10);
  --line-strong:rgba(20,28,19,.18);
  --accent:#87bb00;
  --accent-strong:#709c00;
  --accent-soft:rgba(135,187,0,.11);
  --accent-ink:#111609;
  --shadow:0 22px 52px rgba(32,38,29,.10);
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text);font-family:"Segoe UI Variable Text","Segoe UI",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;font-size:17px;line-height:1.58;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit;color:inherit}
button{border:0;cursor:pointer}
button,input,select,textarea{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
svg{display:block}
[hidden]{display:none!important}
::selection{background:var(--accent);color:var(--accent-ink)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

/* shell */
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr)}
.desktop-sidebar{height:100vh;position:sticky;top:0;border-right:1px solid var(--line);padding:31px 24px 22px;display:flex;flex-direction:column;background:var(--bg-2);z-index:30}
.brand-lockup{display:flex;align-items:center;gap:13px;padding:0 7px 30px}
.brand-mark{width:42px;height:42px;flex:none}
.brand-word{font-family:"Plus Jakarta Sans","Segoe UI Variable Display","Segoe UI",sans-serif;font-size:29px;line-height:1;font-weight:850;letter-spacing:-.065em;text-transform:lowercase}
.brand-caption{margin-top:5px;color:var(--muted);font-size:14px;font-weight:650}
.nav-group-label{margin:12px 9px 8px;color:var(--dim);font-size:14px;font-weight:780;letter-spacing:.085em;text-transform:uppercase}
.primary-nav{display:flex;flex-direction:column;gap:3px}
.nav-button{position:relative;width:100%;min-height:54px;padding:0 12px;background:transparent;color:var(--muted);display:flex;align-items:center;gap:13px;text-align:left;border-radius:10px;font-size:17px;font-weight:730;transition:background .16s var(--ease),color .16s var(--ease),transform .16s var(--ease)}
.nav-button:hover{background:var(--surface);color:var(--text)}
.nav-button.active{color:var(--text);background:var(--surface)}
.nav-button.active::before{content:"";position:absolute;left:-24px;top:13px;bottom:13px;width:3px;background:var(--accent);border-radius:0 4px 4px 0}
.nav-icon{width:27px;height:27px;display:grid;place-items:center;flex:none}
.nav-button.active .nav-icon{color:var(--accent)}
.nav-icon svg{width:100%;height:100%}
.nav-badge{margin-left:auto;color:var(--dim);font-size:14px;font-weight:800}
.sidebar-spacer{flex:1}
.sidebar-pulse{margin:22px 4px 18px;padding:18px 10px 0;border-top:1px solid var(--line)}
.sidebar-pulse-label{color:var(--dim);font-size:14px;font-weight:750;text-transform:uppercase;letter-spacing:.07em}
.sidebar-pulse strong{display:block;font-size:19px;letter-spacing:-.025em;margin-top:5px}
.sidebar-pulse p{margin:4px 0 0;color:var(--muted);font-size:14.5px;line-height:1.5}
.eden-signature{display:flex;align-items:center;gap:8px;color:var(--dim);font-size:15px;font-weight:820;letter-spacing:-.025em;text-transform:lowercase;padding:7px}
.eden-signature img{width:23px;height:23px;opacity:.76}

.main-shell{min-width:0;position:relative}
.desktop-topbar{height:72px;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;justify-content:space-between;gap:18px;position:sticky;top:0;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(18px);z-index:25}
.topbar-context{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:15px;font-weight:700}
.status-dot{width:9px;height:9px;border-radius:50%;background:var(--good);box-shadow:0 0 0 4px color-mix(in srgb,var(--good) 14%,transparent)}
.topbar-actions{display:flex;align-items:center;gap:9px}
.icon-button,.avatar-button,.menu-button{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:transparent;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);transition:.16s var(--ease)}
.icon-button:hover,.menu-button:hover{background:var(--surface);color:var(--text)}
.icon-button svg,.menu-button svg{width:25px;height:25px}
.avatar-button{background:var(--surface);color:var(--text);font-weight:850;font-size:16px}
.avatar-button:hover{box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}
.mobile-topbar{display:none}

/* page rhythm */
.page{width:min(100%,var(--content-max));margin:0 auto;padding:52px 48px 88px}
.page-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;margin-bottom:46px}
.page-kicker{font-size:14px;line-height:1.2;font-weight:820;letter-spacing:.105em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.page-title{margin:0;font-family:"Segoe UI Variable Display","Segoe UI",sans-serif;font-size:clamp(42px,4.7vw,68px);line-height:.98;letter-spacing:-.058em;font-weight:770;max-width:920px}
.page-lead{max-width:750px;margin:17px 0 0;color:var(--muted);font-size:19px;line-height:1.62}
.page-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;padding-top:4px}
.section{margin-top:48px}
.section+.section{margin-top:64px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:20px}
.section-heading h2{margin:0;font-size:27px;line-height:1.1;letter-spacing:-.04em;font-weight:790}
.section-heading p{margin:7px 0 0;color:var(--muted);font-size:16px}
.section-label{font-size:14px;font-weight:820;text-transform:uppercase;letter-spacing:.095em;color:var(--muted);margin-bottom:9px}
.section-link,.text-link{background:transparent;color:var(--muted);font-weight:780;font-size:16px;padding:8px 0}
.section-link:hover,.text-link:hover{color:var(--text)}
.divider{height:1px;background:var(--line);margin:34px 0}

.btn{min-height:54px;padding:0 20px;border-radius:12px;font-size:17px;font-weight:820;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .16s var(--ease),background .16s var(--ease),color .16s var(--ease)}
.btn:active{transform:scale(.985)}
.btn svg{width:23px;height:23px}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{background:color-mix(in srgb,var(--accent) 86%,white)}
.btn-secondary{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}
.btn-secondary:hover{background:var(--surface-2)}
.btn-ghost{background:transparent;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.btn-danger{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--danger) 24%,transparent)}
.btn-square{width:54px;padding:0}
.chip{min-height:36px;padding:0 12px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:14.5px;font-weight:780}
.chip.active{background:var(--accent-soft);color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent)}

/* home */
.home-intro{margin-bottom:36px}
.home-greeting{margin:0;font-size:clamp(48px,5.8vw,78px);line-height:.94;letter-spacing:-.065em;font-weight:760;max-width:940px}
.home-greeting span{color:var(--muted)}
.home-sub{max-width:700px;margin:18px 0 0;color:var(--muted);font-size:19px;line-height:1.6}
.today-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:42px;align-items:stretch;padding:34px 0 40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.focus-block{min-width:0}
.focus-eyebrow{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:14px;font-weight:820;letter-spacing:.08em;text-transform:uppercase}
.focus-eyebrow .focus-dot{width:10px;height:10px;border-radius:50%;background:var(--accent)}
.focus-title{margin:18px 0 10px;font-size:clamp(38px,4.3vw,62px);line-height:.98;letter-spacing:-.055em;font-weight:780;max-width:760px}
.focus-meta{display:flex;gap:19px;flex-wrap:wrap;color:var(--muted);font-size:16px;font-weight:700}
.focus-meta span{display:flex;align-items:center;gap:8px}
.focus-meta svg{width:22px;height:22px}
.focus-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:31px}
.focus-actions .btn-primary{min-height:60px;padding:0 25px;font-size:18px}
.focus-note{color:var(--dim);font-size:15px;max-width:390px}
.pulse-block{padding-left:32px;border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.pulse-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.pulse-label{font-size:14px;font-weight:820;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pulse-state{font-size:39px;line-height:1;letter-spacing:-.055em;font-weight:780;margin:18px 0 8px}
.pulse-copy{margin:0;color:var(--muted);font-size:16px;line-height:1.55;max-width:360px}
.pulse-signal{display:flex;gap:7px;margin-top:30px}
.pulse-signal i{height:7px;flex:1;border-radius:999px;background:var(--surface-3)}
.pulse-signal i.on{background:var(--accent)}
.pulse-mini{margin-top:18px;display:flex;gap:20px;color:var(--muted);font-size:14.5px;flex-wrap:wrap}
.pulse-mini strong{display:block;color:var(--text);font-size:17px;margin-top:2px}
.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-top:34px;border-bottom:1px solid var(--line)}
.week-day{position:relative;padding:0 0 21px;min-width:0;text-align:center;color:var(--muted)}
.week-day strong{display:block;font-size:15px;text-transform:uppercase;letter-spacing:.04em}
.week-day span{display:grid;place-items:center;width:38px;height:38px;margin:8px auto 0;border-radius:50%;font-size:16px;font-weight:800}
.week-day.today span{background:var(--text);color:var(--bg)}
.week-day.done::after{content:"";position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);width:46%;height:3px;background:var(--accent);border-radius:4px 4px 0 0}
.week-day.recovery::after{background:var(--good)}
.metrics-open{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.metric-open{padding:22px 26px 22px 0;min-width:0}
.metric-open+.metric-open{padding-left:26px;border-left:1px solid var(--line)}
.metric-open span{display:block;color:var(--muted);font-size:14.5px;font-weight:720}
.metric-open strong{display:block;margin-top:7px;font-size:34px;line-height:1;letter-spacing:-.05em;font-weight:760}
.metric-open small{display:block;margin-top:7px;color:var(--dim);font-size:14px;line-height:1.4}
.home-columns{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:42px}
.clean-list{border-top:1px solid var(--line)}
.clean-row{width:100%;padding:19px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:15px;align-items:center;background:transparent;text-align:left;color:var(--text)}
.clean-row-icon{width:42px;height:42px;border-radius:50%;background:var(--surface);display:grid;place-items:center;color:var(--muted)}
.clean-row-icon svg{width:24px;height:24px}
.clean-row.done .clean-row-icon{background:var(--accent);color:var(--accent-ink)}
.clean-row strong{display:block;font-size:18px;letter-spacing:-.015em}
.clean-row small{display:block;margin-top:3px;color:var(--muted);font-size:14.5px}
.clean-row-side{color:var(--dim);font-size:14.5px;font-weight:780}
.clean-row.done .clean-row-side{color:var(--accent)}
.editorial-note{padding:23px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.editorial-note .note-label{font-size:14px;font-weight:820;color:var(--accent);letter-spacing:.08em;text-transform:uppercase}
.editorial-note p{margin:10px 0 0;font-size:24px;line-height:1.42;letter-spacing:-.03em;max-width:650px}
.editorial-note footer{margin-top:13px;color:var(--muted);font-size:14.5px}

/* workout */
.featured-routine{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:36px;padding:28px 0 32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.featured-routine h2{margin:10px 0 12px;font-size:44px;line-height:1;letter-spacing:-.052em}
.featured-routine p{margin:0;color:var(--muted);font-size:16.5px;max-width:620px}
.routine-meta{display:flex;gap:16px;flex-wrap:wrap;margin:20px 0 26px;color:var(--muted);font-size:15px;font-weight:720}
.routine-meta span{display:flex;align-items:center;gap:7px}
.routine-meta svg{width:21px;height:21px}
.routine-visual{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,112px);gap:8px;align-self:stretch}
.exercise-tile{position:relative;background:var(--surface);border:1px solid var(--line);overflow:hidden;min-height:0}
.exercise-tile img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center;padding:8px;background:#eceeea}
.exercise-tile .media-fallback{position:absolute;inset:0;display:grid;place-items:center;color:var(--dim)}
.exercise-tile .media-fallback svg{width:42px;height:42px}
.routine-list{border-top:1px solid var(--line)}
.routine-row{padding:22px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center}
.routine-row h3{margin:0;font-size:24px;letter-spacing:-.035em}
.routine-row p{margin:5px 0 0;color:var(--muted);font-size:15px}
.routine-row-actions{display:flex;align-items:center;gap:9px}
.quick-builder{padding:28px;border:1px solid var(--line);background:var(--surface);border-radius:16px}
.builder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.builder-step label{display:block;color:var(--muted);font-size:14px;text-transform:uppercase;letter-spacing:.075em;font-weight:820;margin-bottom:10px}
.segmented{display:flex;flex-wrap:wrap;gap:7px}
.segmented button{min-height:46px;padding:0 13px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:14.5px;font-weight:780;border:1px solid transparent}
.segmented button.active{background:var(--accent-soft);color:var(--text);border-color:color-mix(in srgb,var(--accent) 34%,transparent)}
.builder-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
.builder-summary{color:var(--muted);font-size:15px}
.library-tools{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.search-field{position:relative;flex:1;min-width:0}
.search-field svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:23px;height:23px;color:var(--muted);pointer-events:none}
.search-field input{width:100%;height:54px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:0 16px 0 49px;outline:0;font-size:16.5px}
.search-field input:focus{border-color:color-mix(in srgb,var(--accent) 48%,transparent)}
.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.exercise-card{display:grid;grid-template-columns:175px minmax(0,1fr);min-height:175px;border:1px solid var(--line);background:var(--surface);overflow:hidden;border-radius:14px}
.exercise-media{position:relative;background:#eceeea;min-width:0}
.exercise-media img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center;padding:10px;background:#eceeea}
.exercise-media .media-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#6c746c}
.exercise-media .media-fallback svg{width:46px;height:46px}
.exercise-info{padding:21px 20px;display:flex;flex-direction:column;min-width:0}
.exercise-info h3{margin:0;font-size:21px;line-height:1.15;letter-spacing:-.03em}
.exercise-info p{margin:6px 0 0;color:var(--muted);font-size:14.5px}
.exercise-info .exercise-cue{margin-top:14px;color:var(--text-soft);line-height:1.48;font-size:14.5px}
.exercise-actions{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:15px}
.mini-button{min-height:42px;padding:0 12px;border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:14px;font-weight:780;display:inline-flex;align-items:center;gap:7px}
.mini-button:hover{color:var(--text)}
.mini-icon-button{width:42px;height:42px;border-radius:50%;background:var(--surface-2);color:var(--muted);display:grid;place-items:center}
.mini-icon-button.active{background:var(--accent-soft);color:var(--accent)}
.mini-icon-button svg{width:22px;height:22px}

/* running */
.run-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:42px;padding:32px 0 38px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.run-today h2{font-size:49px;line-height:.98;letter-spacing:-.055em;margin:14px 0 13px}
.run-today p{margin:0;color:var(--muted);font-size:16.5px;max-width:620px}
.run-plan-box{border-left:1px solid var(--line);padding-left:32px}
.run-plan-box strong{display:block;font-size:24px;letter-spacing:-.035em;margin-top:9px}
.run-plan-box p{color:var(--muted);font-size:15px;margin:7px 0 18px}
.run-week{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:17px}
.run-week div{padding:12px 10px;background:var(--surface);border:1px solid var(--line);border-radius:10px}
.run-week span{display:block;color:var(--dim);font-size:13.5px;text-transform:uppercase;font-weight:800}
.run-week strong{font-size:15px;margin-top:4px}
.run-history{border-top:1px solid var(--line)}
.run-row{padding:18px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:14px;align-items:center}
.run-row-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--muted)}
.run-row-icon svg{width:24px;height:24px}
.run-row strong{display:block;font-size:18px}
.run-row small{display:block;color:var(--muted);font-size:14px;margin-top:2px}
.run-row-value{font-size:16px;font-weight:800;color:var(--text-soft)}

/* nutrition */
.food-summary{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:42px;padding:28px 0 34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.food-summary h2{font-size:39px;line-height:1.02;letter-spacing:-.05em;margin:10px 0 12px}
.food-summary p{margin:0;color:var(--muted);font-size:16px;max-width:600px}
.group-dots{display:flex;gap:10px;flex-wrap:wrap;margin-top:23px}
.group-pill{min-height:42px;padding:0 13px;border-radius:999px;border:1px solid var(--line);display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:14.5px;font-weight:760}
.group-pill i{width:10px;height:10px;border-radius:50%;background:var(--group)}
.group-pill.used{color:var(--text);border-color:color-mix(in srgb,var(--group) 48%,var(--line))}
.food-note{border-left:1px solid var(--line);padding-left:32px}
.food-note strong{font-size:25px;letter-spacing:-.035em}
.food-note p{margin-top:8px}
.meals-list{border-top:1px solid var(--line)}
.meal-block{padding:24px 0;border-bottom:1px solid var(--line)}
.meal-head{display:flex;align-items:center;justify-content:space-between;gap:20px}
.meal-head h3{margin:0;font-size:22px;letter-spacing:-.035em}
.meal-add{width:46px;height:46px;border-radius:50%;background:var(--surface);color:var(--text);display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--line)}
.meal-add svg{width:24px;height:24px}
.meal-items{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.food-token{min-height:40px;padding:0 12px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);display:inline-flex;align-items:center;gap:7px;font-size:14.5px}
.food-token button{background:transparent;color:var(--dim);padding:2px;display:grid;place-items:center}
.food-token button svg{width:17px;height:17px}
.empty-line{color:var(--dim);font-size:15px;margin-top:12px}
.saved-meals-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.saved-meal{padding:19px;border:1px solid var(--line);background:var(--surface);border-radius:12px;text-align:left}
.saved-meal strong{font-size:18px;display:block}
.saved-meal span{display:block;color:var(--muted);font-size:14px;margin-top:5px}

/* recovery */
.recovery-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);gap:48px;padding-top:8px}
.recovery-state{padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.recovery-state strong{display:block;font-size:58px;line-height:.95;letter-spacing:-.06em}
.recovery-state p{margin:14px 0 0;color:var(--muted);font-size:17px;max-width:620px}
.rating-stack{border-top:1px solid var(--line)}
.rating-row{padding:22px 0;border-bottom:1px solid var(--line)}
.rating-row-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:13px}
.rating-row-head strong{font-size:18px}
.rating-row-head span{color:var(--muted);font-size:14px}
.rating-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.rating-buttons button{height:52px;border-radius:10px;background:var(--surface);color:var(--muted);border:1px solid var(--line);font-size:16px;font-weight:820}
.rating-buttons button.active{background:var(--accent);color:var(--accent-ink);border-color:transparent}
.recovery-tips{border-top:1px solid var(--line)}
.recovery-tip{padding:18px 0;border-bottom:1px solid var(--line);display:flex;gap:14px}
.recovery-tip-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--muted);flex:none}
.recovery-tip-icon svg{width:23px;height:23px}
.recovery-tip strong{display:block;font-size:17px}
.recovery-tip p{margin:3px 0 0;color:var(--muted);font-size:14.5px}

/* progress */
.progress-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.progress-stat{padding:24px 26px 24px 0}
.progress-stat+.progress-stat{padding-left:26px;border-left:1px solid var(--line)}
.progress-stat span{display:block;color:var(--muted);font-size:14.5px}
.progress-stat strong{display:block;font-size:36px;line-height:1;margin-top:8px;letter-spacing:-.05em}
.progress-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:42px}
.heatmap{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:6px;margin-top:17px}
.heat-cell{aspect-ratio:1;border-radius:4px;background:var(--surface-2);border:1px solid var(--line)}
.heat-cell.l1{background:color-mix(in srgb,var(--accent) 24%,var(--surface))}
.heat-cell.l2{background:color-mix(in srgb,var(--accent) 48%,var(--surface))}
.heat-cell.l3{background:var(--accent)}
.chart-lines{height:220px;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));align-items:end;gap:9px;border-bottom:1px solid var(--line);padding-top:16px}
.chart-line{height:var(--h);min-height:6px;background:var(--accent);border-radius:4px 4px 0 0;opacity:.88}
.chart-labels{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px;color:var(--dim);font-size:13.5px;text-align:center;margin-top:8px}
.pr-list{border-top:1px solid var(--line)}
.pr-row{padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;align-items:center}
.pr-row strong{font-size:17px}
.pr-row span{color:var(--muted);font-size:15px;font-weight:750}
.progress-story{padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.progress-story strong{display:block;color:var(--accent);font-size:14px;text-transform:uppercase;letter-spacing:.08em}
.progress-story p{margin:10px 0 0;font-size:24px;line-height:1.45;letter-spacing:-.025em}

/* journey */
.rank-hero{display:grid;grid-template-columns:290px minmax(0,1fr);gap:46px;align-items:center;padding:34px 0 42px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rank-emblem{width:260px;height:260px;display:grid;place-items:center;position:relative;color:var(--rank-color)}
.rank-emblem::before{content:"";position:absolute;inset:18px;border:2px solid currentColor;transform:rotate(45deg);border-radius:34px;opacity:.72}
.rank-emblem::after{content:"";position:absolute;inset:44px;border:1px solid currentColor;border-radius:50%;opacity:.32}
.rank-symbol{width:116px;height:116px;position:relative;z-index:2}
.rank-symbol svg{width:100%;height:100%}
.rank-copy .section-label{color:var(--rank-color)}
.rank-copy h2{font-size:60px;line-height:.95;letter-spacing:-.06em;margin:9px 0 12px}
.rank-copy p{margin:0;color:var(--muted);font-size:17px;max-width:650px}
.rank-levels{display:flex;gap:8px;margin-top:26px}
.rank-levels i{width:54px;height:7px;border-radius:999px;background:var(--surface-3)}
.rank-levels i.on{background:var(--rank-color)}
.rank-progress-text{margin-top:13px;color:var(--muted);font-size:14.5px}
.rank-path{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));gap:10px;overflow-x:auto;padding:4px 0 10px}
.rank-mini{min-width:140px;padding:18px 16px;border:1px solid var(--line);background:var(--surface);border-radius:12px;color:var(--rank-color)}
.rank-mini.locked{opacity:.48}
.rank-mini.current{border-color:color-mix(in srgb,var(--rank-color) 60%,var(--line))}
.rank-mini-symbol{width:48px;height:48px;margin-bottom:14px}
.rank-mini-symbol svg{width:100%;height:100%}
.rank-mini strong{display:block;color:var(--text);font-size:18px}
.rank-mini span{display:block;color:var(--muted);font-size:13.5px;margin-top:4px}
.achievements-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.achievement{padding:21px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-height:150px}
.achievement.locked{opacity:.46}
.achievement-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--muted);margin-bottom:15px}
.achievement.unlocked .achievement-icon{background:var(--accent);color:var(--accent-ink)}
.achievement-icon svg{width:25px;height:25px}
.achievement strong{display:block;font-size:18px}
.achievement p{margin:5px 0 0;color:var(--muted);font-size:14px;line-height:1.45}

/* profile/settings */
.profile-identity{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center;padding:24px 0 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.profile-avatar{width:78px;height:78px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:24px;font-weight:900}
.profile-identity h2{margin:0;font-size:30px;letter-spacing:-.04em}
.profile-identity p{margin:5px 0 0;color:var(--muted);font-size:15px}
.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:46px}
.settings-list{border-top:1px solid var(--line)}
.setting-row{min-height:82px;padding:17px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;align-items:center}
.setting-icon{width:42px;height:42px;border-radius:50%;background:var(--surface);display:grid;place-items:center;color:var(--muted)}
.setting-icon svg{width:23px;height:23px}
.setting-row strong{display:block;font-size:17px}
.setting-row small{display:block;margin-top:3px;color:var(--muted);font-size:14px}
.setting-control{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.setting-control button{min-height:42px;padding:0 12px;border-radius:9px;background:var(--surface);color:var(--muted);border:1px solid var(--line);font-size:14px;font-weight:780}
.setting-control button.active{background:var(--accent-soft);color:var(--text);border-color:color-mix(in srgb,var(--accent) 32%,transparent)}
.data-actions{display:grid;gap:9px}
.data-action{min-height:58px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text);display:flex;align-items:center;gap:12px;text-align:left;font-size:15px;font-weight:760}
.data-action svg{width:24px;height:24px;color:var(--muted)}
.data-action.danger{color:var(--danger)}

/* drawer */
.drawer-backdrop{position:fixed;inset:0;background:rgba(4,6,4,.56);z-index:110;animation:fadeIn .18s ease}
.mobile-drawer{position:fixed;inset:0 auto 0 0;width:min(88vw,420px);background:var(--bg-2);border-right:1px solid var(--line);z-index:120;padding:calc(22px + var(--safe-top)) 22px calc(22px + var(--safe-bottom));display:flex;flex-direction:column;animation:drawerIn .26s var(--ease)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:26px}
.drawer-brand{display:flex;align-items:center;gap:11px}
.drawer-brand img{width:40px;height:40px}
.drawer-brand strong{font-size:30px;letter-spacing:-.06em;font-weight:850;text-transform:lowercase}
.drawer-close{width:48px;height:48px;border-radius:50%;background:var(--surface);color:var(--text);display:grid;place-items:center}
.drawer-close svg{width:25px;height:25px}
.drawer-nav{display:flex;flex-direction:column}
.drawer-nav button{width:100%;min-height:63px;padding:0;background:transparent;color:var(--muted);display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--line);text-align:left;font-size:27px;font-weight:740;letter-spacing:-.035em}
.drawer-nav button.active{color:var(--text)}
.drawer-nav button.active .nav-icon{color:var(--accent)}
.drawer-spacer{flex:1}
.drawer-profile{padding:17px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:13px}
.drawer-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--surface);font-weight:850}
.drawer-profile strong{display:block;font-size:17px}
.drawer-profile span{display:block;color:var(--muted);font-size:14px}
.drawer-eden{padding-top:17px}

/* modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(4,6,4,.62);z-index:150;display:grid;place-items:center;padding:24px;animation:fadeIn .18s ease}
.modal{width:min(100%,620px);max-height:min(88vh,820px);overflow:auto;background:var(--bg);border:1px solid var(--line-strong);border-radius:18px;box-shadow:var(--shadow);padding:24px}
.modal.large{width:min(100%,900px)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}
.modal-head h2{font-size:30px;line-height:1.05;letter-spacing:-.045em;margin:0}
.modal-head p{margin:7px 0 0;color:var(--muted);font-size:15px}
.modal-close{width:46px;height:46px;border-radius:50%;background:var(--surface);display:grid;place-items:center;color:var(--text);flex:none}
.modal-close svg{width:24px;height:24px}
.modal-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.modal-search-results{border-top:1px solid var(--line);margin-top:16px}
.result-row{width:100%;padding:16px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px;background:transparent;color:var(--text);text-align:left}
.result-row strong{display:block;font-size:16px}
.result-row small{display:block;margin-top:2px;color:var(--muted);font-size:13.5px}
.result-add{width:40px;height:40px;border-radius:50%;background:var(--surface);display:grid;place-items:center;color:var(--text);flex:none}
.result-add svg{width:21px;height:21px}
.form-field{margin-top:17px}
.form-field label{display:block;font-size:14px;color:var(--muted);font-weight:780;margin-bottom:8px}
.text-input,.select-input{width:100%;height:54px;border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:0 15px;outline:0;font-size:16px}
.text-input:focus,.select-input:focus{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}

/* live workout */
.workout-live{min-height:100vh;background:var(--bg)}
.live-header{height:82px;padding:0 28px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:52px minmax(0,1fr) 52px;align-items:center;gap:16px;position:sticky;top:0;background:var(--bg);z-index:20}
.live-title{text-align:center;min-width:0}
.live-title strong{display:block;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-title span{display:block;color:var(--muted);font-size:14px;margin-top:2px}
.live-layout{min-height:calc(100vh - 82px);display:grid;grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr)}
.live-visual{position:relative;background:#eceeea;display:grid;place-items:center;min-height:580px;overflow:hidden}
.live-visual img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center;padding:34px;background:#eceeea}
.live-visual .media-fallback{color:#657064}
.live-visual .media-fallback svg{width:82px;height:82px}
.live-panel{padding:46px 42px 50px;overflow:auto}
.live-index{font-size:14px;font-weight:820;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.live-panel h1{font-size:49px;line-height:.96;letter-spacing:-.06em;margin:13px 0 9px}
.live-sub{color:var(--muted);font-size:16px}
.live-cue{margin:18px 0 26px;color:var(--text-soft);font-size:16px;line-height:1.55;padding-bottom:24px;border-bottom:1px solid var(--line)}
.previous-line{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px;color:var(--muted);font-size:14.5px}
.previous-line strong{color:var(--text)}
.sets-table{border-top:1px solid var(--line)}
.set-head,.set-row{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) 52px;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.set-head{color:var(--muted);font-size:13.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.set-num{font-size:15px;color:var(--muted);font-weight:780}
.set-row input{width:100%;height:50px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-align:center;font-size:18px;font-weight:800;outline:0}
.set-row input:focus{border-color:var(--accent)}
.set-done{width:48px;height:48px;border-radius:50%;background:var(--surface);color:var(--muted);display:grid;place-items:center;border:1px solid var(--line)}
.set-done svg{width:25px;height:25px}
.set-done.done{background:var(--accent);color:var(--accent-ink);border-color:transparent}
.live-controls{display:flex;gap:9px;margin-top:18px}
.live-controls .btn{flex:1}
.rest-strip{margin-top:15px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px}
.rest-strip span{color:var(--muted);font-size:15px}
.rest-strip strong{font-size:24px;color:var(--accent)}
.live-next{width:100%;min-height:62px;border-radius:12px;background:var(--accent);color:var(--accent-ink);font-size:18px;font-weight:880;margin-top:17px}
.live-safe{margin:14px 8px 0;color:var(--dim);font-size:14px;line-height:1.5;text-align:center}

/* live run */
.run-live{min-height:100vh;background:var(--bg);display:flex;flex-direction:column}
.run-live-header{height:78px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.run-live-brand{font-size:27px;font-weight:850;letter-spacing:-.055em;text-transform:lowercase}
.run-live-body{flex:1;display:grid;place-items:center;padding:40px 20px}
.run-timer{text-align:center}
.run-timer .label{font-size:14px;color:var(--accent);font-weight:820;text-transform:uppercase;letter-spacing:.09em}
.run-timer h1{font-size:clamp(72px,14vw,150px);line-height:.9;letter-spacing:-.075em;margin:20px 0 12px;font-variant-numeric:tabular-nums}
.run-timer p{margin:0;color:var(--muted);font-size:18px}
.run-live-controls{display:flex;justify-content:center;gap:12px;margin-top:38px;flex-wrap:wrap}
.run-circle{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--text);border:1px solid var(--line)}
.run-circle.primary{width:86px;height:86px;background:var(--accent);color:var(--accent-ink);border:0}
.run-circle svg{width:30px;height:30px}
.run-circle.primary svg{width:34px;height:34px}

/* onboarding */
.onboarding{min-height:100vh;display:grid;grid-template-columns:minmax(300px,.7fr) minmax(0,1.3fr);background:var(--bg)}
.onboard-brand{background:var(--bg-2);border-right:1px solid var(--line);padding:42px;display:flex;flex-direction:column}
.onboard-brand .brand-lockup{padding:0}
.onboard-brand-copy{margin:auto 0 0;max-width:430px}
.onboard-brand-copy p{font-size:27px;line-height:1.38;letter-spacing:-.035em;margin:0}
.onboard-brand-copy small{display:block;color:var(--muted);font-size:15px;margin-top:14px}
.onboard-main{display:grid;place-items:center;padding:54px}
.onboard-card{width:min(100%,680px)}
.onboard-progress{display:flex;gap:7px;margin-bottom:42px}
.onboard-progress i{height:5px;flex:1;border-radius:999px;background:var(--surface-3)}
.onboard-progress i.on{background:var(--accent)}
.onboard-kicker{color:var(--accent);font-size:14px;font-weight:820;text-transform:uppercase;letter-spacing:.09em}
.onboard-card h1{font-size:55px;line-height:.98;letter-spacing:-.06em;margin:13px 0 14px}
.onboard-card>p{margin:0;color:var(--muted);font-size:18px;line-height:1.6;max-width:610px}
.onboard-card .text-input{height:62px;font-size:18px;margin-top:28px;background:var(--surface)}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:28px}
.choice{min-height:112px;padding:18px;border-radius:13px;background:var(--surface);border:1px solid var(--line);text-align:left}
.choice.active{border-color:var(--accent);background:var(--accent-soft)}
.choice strong{display:block;font-size:19px}
.choice span{display:block;color:var(--muted);font-size:14.5px;margin-top:5px;line-height:1.45}
.onboard-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:30px}
.onboard-actions .btn-primary{min-width:160px}

/* toast */
.toast{position:fixed;right:24px;bottom:24px;z-index:220;max-width:360px;background:var(--text);color:var(--bg);padding:14px 17px;border-radius:10px;font-size:15px;font-weight:800;box-shadow:var(--shadow);animation:toastIn .2s var(--ease)}

/* responsive */
@media(max-width:1180px){
  :root{--sidebar-w:232px}
  .desktop-sidebar{padding-left:18px;padding-right:18px}
  .nav-button.active::before{left:-18px}
  .page{padding-left:36px;padding-right:36px}
  .today-layout,.food-summary,.run-hero,.recovery-layout,.progress-layout{gap:32px}
  .home-columns{gap:32px}
  .library-grid{grid-template-columns:1fr}
}
@media(max-width:1023px){
  .app-shell{display:block}
  .desktop-sidebar,.desktop-topbar{display:none}
  .mobile-topbar{height:calc(72px + var(--safe-top));padding:var(--safe-top) 16px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);z-index:45}
  .mobile-brand{display:flex;align-items:center;gap:10px;min-width:0}
  .mobile-brand img{width:40px;height:40px}
  .mobile-brand strong{font-size:30px;line-height:1;font-weight:850;letter-spacing:-.065em;text-transform:lowercase}
  .mobile-actions{display:flex;align-items:center;gap:8px}
  .page{padding:38px 24px calc(72px + var(--safe-bottom))}
  .page-intro{margin-bottom:38px}
  .page-title{font-size:50px}
  .page-lead{font-size:18px}
  .today-layout{grid-template-columns:1fr;gap:0}
  .pulse-block{padding:28px 0 0;margin-top:30px;border-left:0;border-top:1px solid var(--line)}
  .featured-routine,.run-hero,.food-summary,.recovery-layout,.progress-layout,.settings-layout{grid-template-columns:1fr}
  .routine-visual{grid-template-rows:repeat(2,140px)}
  .run-plan-box,.food-note{border-left:0;border-top:1px solid var(--line);padding:26px 0 0;margin-top:10px}
  .home-columns{grid-template-columns:1fr;gap:48px}
  .builder-grid{grid-template-columns:1fr}
  .progress-summary,.metrics-open{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metric-open:nth-child(3),.metric-open:nth-child(4),.progress-stat:nth-child(3),.progress-stat:nth-child(4){border-top:1px solid var(--line)}
  .metric-open:nth-child(3),.progress-stat:nth-child(3){padding-left:0;border-left:0}
  .rank-hero{grid-template-columns:230px minmax(0,1fr);gap:32px}
  .rank-emblem{width:220px;height:220px}
  .achievements-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .live-layout{grid-template-columns:1fr}
  .live-visual{min-height:380px;max-height:44vh}
}
@media(max-width:700px){
  body{font-size:17px}
  .mobile-topbar{height:calc(74px + var(--safe-top))}
  .mobile-brand img{width:42px;height:42px}
  .mobile-brand strong{font-size:31px}
  .menu-button,.avatar-button,.icon-button{width:48px;height:48px}
  .page{padding:31px 18px calc(62px + var(--safe-bottom))}
  .page-intro{display:block;margin-bottom:32px}
  .page-kicker{font-size:14px;margin-bottom:10px}
  .page-title{font-size:42px;line-height:.98}
  .page-lead{font-size:17px;line-height:1.58;margin-top:14px}
  .page-actions{justify-content:flex-start;margin-top:19px}
  .section{margin-top:42px}
  .section+.section{margin-top:52px}
  .section-heading{align-items:flex-start;margin-bottom:16px}
  .section-heading h2{font-size:25px}
  .section-heading p{font-size:15px}
  .section-link{font-size:15px}
  .btn{min-height:55px;font-size:17px}
  .home-intro{margin-bottom:30px}
  .home-greeting{font-size:43px;line-height:.96}
  .home-sub{font-size:17px;margin-top:14px}
  .today-layout{padding:28px 0 31px}
  .focus-title{font-size:39px;margin-top:15px}
  .focus-meta{font-size:15px;gap:13px}
  .focus-actions{align-items:stretch;margin-top:27px}
  .focus-actions .btn-primary{width:100%;min-height:61px;font-size:18px}
  .focus-note{font-size:14.5px}
  .pulse-block{padding-top:25px;margin-top:26px}
  .pulse-state{font-size:36px}
  .week-strip{margin-top:26px;overflow-x:auto;grid-template-columns:repeat(7,minmax(54px,1fr))}
  .week-day{padding-bottom:18px}
  .week-day span{width:36px;height:36px;font-size:15px}
  .metrics-open,.progress-summary{grid-template-columns:1fr 1fr}
  .metric-open,.progress-stat{padding:18px 12px 18px 0}
  .metric-open+.metric-open,.progress-stat+.progress-stat{padding-left:14px}
  .metric-open strong,.progress-stat strong{font-size:30px}
  .metric-open small{font-size:13.5px}
  .clean-row{grid-template-columns:46px minmax(0,1fr) auto;padding:17px 0;gap:12px}
  .clean-row strong{font-size:17px}
  .editorial-note p,.progress-story p{font-size:21px}
  .featured-routine{gap:25px;padding-top:24px}
  .featured-routine h2{font-size:38px}
  .routine-visual{grid-template-rows:repeat(2,112px)}
  .routine-row{grid-template-columns:1fr;gap:13px}
  .routine-row h3{font-size:22px}
  .routine-row-actions{justify-content:flex-start}
  .quick-builder{padding:21px 17px;border-radius:13px}
  .builder-footer{display:block}
  .builder-footer .btn{width:100%;margin-top:15px}
  .library-tools{display:block}
  .library-tools .chip{margin-top:9px}
  .exercise-card{grid-template-columns:128px minmax(0,1fr);min-height:168px}
  .exercise-info{padding:17px 15px}
  .exercise-info h3{font-size:19px}
  .exercise-info .exercise-cue{display:none}
  .run-today h2{font-size:39px}
  .run-week{grid-template-columns:1fr}
  .food-summary h2{font-size:34px}
  .food-note strong{font-size:22px}
  .saved-meals-grid{grid-template-columns:1fr}
  .recovery-state strong{font-size:49px}
  .rating-buttons button{height:54px}
  .heatmap{grid-template-columns:repeat(8,minmax(0,1fr))}
  .rank-hero{grid-template-columns:1fr;text-align:center;padding-top:28px}
  .rank-emblem{width:220px;height:220px;margin:0 auto}
  .rank-copy p{margin-left:auto;margin-right:auto}
  .rank-copy h2{font-size:50px}
  .rank-levels{justify-content:center}
  .achievements-grid{grid-template-columns:1fr}
  .profile-identity{grid-template-columns:auto minmax(0,1fr)}
  .profile-identity .btn{grid-column:1/-1;width:100%}
  .profile-avatar{width:68px;height:68px}
  .setting-row{grid-template-columns:46px minmax(0,1fr);align-items:start}
  .setting-control{grid-column:1/-1;justify-content:flex-start;padding-left:60px}
  .drawer-nav button{font-size:25px}
  .modal-backdrop{align-items:flex-end;padding:0}
  .modal{width:100%;max-height:88vh;border-radius:22px 22px 0 0;padding:22px 18px calc(23px + var(--safe-bottom))}
  .modal.large{width:100%}
  .live-header{height:74px;padding:0 14px}
  .live-layout{display:block}
  .live-visual{min-height:300px;height:35vh;max-height:none}
  .live-visual img{padding:18px}
  .live-panel{padding:29px 18px calc(36px + var(--safe-bottom))}
  .live-panel h1{font-size:39px}
  .set-head,.set-row{grid-template-columns:36px minmax(0,1fr) minmax(0,1fr) 48px;gap:7px}
  .set-row input{height:52px;font-size:17px}
  .live-controls{flex-wrap:wrap}
  .live-controls .btn{min-width:calc(50% - 6px)}
  .run-timer h1{font-size:78px}
  .onboarding{display:block}
  .onboard-brand{display:none}
  .onboard-main{min-height:100vh;padding:calc(32px + var(--safe-top)) 18px calc(32px + var(--safe-bottom));align-items:start}
  .onboard-card{margin:auto 0}
  .onboard-progress{margin-bottom:34px}
  .onboard-card h1{font-size:43px}
  .onboard-card>p{font-size:17px}
  .choice-grid{grid-template-columns:1fr}
  .choice{min-height:96px}
  .onboard-actions{align-items:stretch;flex-direction:column-reverse}
  .onboard-actions .btn{width:100%}
  .toast{left:18px;right:18px;bottom:calc(18px + var(--safe-bottom));max-width:none;text-align:center}
}
@media(max-width:390px){
  .page{padding-left:15px;padding-right:15px}
  .page-title{font-size:42px}
  .home-greeting{font-size:44px}
  .focus-title{font-size:38px}
  .exercise-card{grid-template-columns:112px minmax(0,1fr)}
  .exercise-info{padding:15px 13px}
  .drawer-nav button{font-size:25px}
  .mobile-drawer{width:92vw;padding-left:18px;padding-right:18px}
  .metric-open strong,.progress-stat strong{font-size:28px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
}
@keyframes drawerIn{from{transform:translateX(-22px);opacity:.3}to{transform:none;opacity:1}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes toastIn{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}

/* V5.1 — Personal planning */
.personal-context-note{margin:16px 0 0;color:var(--muted);font-size:15px;line-height:1.55;max-width:680px}
.personal-plan-strip{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0 28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:32px}
.personal-plan-strip h2{margin:8px 0 6px;font-size:32px;line-height:1.04;letter-spacing:-.045em}
.personal-plan-strip p{margin:0;color:var(--muted);font-size:15.5px}
.routine-slot{display:block;margin-bottom:7px;color:var(--accent);font-size:12px;font-weight:820;letter-spacing:.08em}
.nutrition-direction{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:48px;padding:30px 0 34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:34px}
.nutrition-direction h2{font-size:38px;line-height:1.03;letter-spacing:-.05em;margin:10px 0 12px;max-width:680px}
.nutrition-direction p{margin:0;color:var(--muted);font-size:16.5px;line-height:1.6;max-width:690px}
.nutrition-direction ul{list-style:none;padding:0;margin:24px 0 0;border-top:1px solid var(--line)}
.nutrition-direction li{position:relative;padding:15px 0 15px 28px;border-bottom:1px solid var(--line);font-size:15.5px;line-height:1.5}
.nutrition-direction li:before{content:'✓';position:absolute;left:0;top:15px;color:var(--accent);font-weight:900}
.nutrition-direction aside{align-self:start;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.nutrition-direction aside>span{display:block;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em}
.nutrition-direction aside strong{display:block;margin-top:8px;font-size:25px;letter-spacing:-.035em}
.nutrition-direction aside small{display:block;margin:9px 0 18px;color:var(--muted);font-size:13.5px;line-height:1.5}
.plan-caution{display:flex;gap:12px;align-items:flex-start;margin-top:20px;padding:16px;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-size:14.5px;line-height:1.5}
.plan-caution svg{width:21px;height:21px;flex:0 0 21px;color:var(--accent)}
.profile-plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.profile-plan-item{padding:21px 18px 21px 0;min-width:0}
.profile-plan-item+.profile-plan-item{border-left:1px solid var(--line);padding-left:18px}
.profile-plan-item span{display:block;color:var(--muted);font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.profile-plan-item strong{display:block;margin-top:8px;font-size:20px;line-height:1.2;letter-spacing:-.025em}
.profile-plan-item small{display:block;color:var(--muted);margin-top:5px;font-size:13px}
.plan-modal-stack{display:grid;gap:24px;margin-top:8px}
.plan-choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:9px}
.plan-choice{padding:15px;border:1px solid var(--line);border-radius:12px;text-align:left;background:var(--surface);color:var(--text)}
.plan-choice.active{border-color:var(--accent);background:var(--accent-soft)}
.plan-choice strong{display:block;font-size:16px}
.plan-choice span{display:block;color:var(--muted);font-size:13.5px;line-height:1.4;margin-top:4px}
.body-input-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.body-input-grid .text-input{margin-top:7px}
.bmi-preview{display:grid;grid-template-columns:auto auto 1fr;gap:10px;align-items:baseline;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.bmi-preview span{font-size:13px;color:var(--muted);font-weight:800;letter-spacing:.06em}
.bmi-preview strong{font-size:27px;letter-spacing:-.04em}
.bmi-preview small{color:var(--muted);font-size:13px}
.goal-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.onboard-days{margin-top:22px}
.onboard-days>label{display:block;margin-bottom:8px;color:var(--muted);font-size:14px;font-weight:700}
.onboard-body{margin-top:26px}
.plan-preview-list{margin-top:27px;border-top:1px solid var(--line)}
.plan-preview-list>div{display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.plan-preview-list>div>span{grid-row:1/3;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:850;font-size:13px}
.plan-preview-list strong{font-size:17px}
.plan-preview-list small{color:var(--muted);font-size:13.5px;margin-top:3px}
@media(max-width:900px){
 .nutrition-direction{grid-template-columns:1fr;gap:24px}
 .profile-plan-grid{grid-template-columns:1fr 1fr}
 .profile-plan-item:nth-child(3){border-left:0;border-top:1px solid var(--line);padding-left:0}
 .profile-plan-item:nth-child(4){border-top:1px solid var(--line)}
}
@media(max-width:700px){
 .personal-plan-strip{align-items:flex-start;flex-direction:column;margin-bottom:27px}
 .personal-plan-strip .btn{width:100%}
 .personal-plan-strip h2{font-size:30px}
 .nutrition-direction{padding-top:24px}
 .nutrition-direction h2{font-size:32px}
 .nutrition-direction aside{padding:18px}
 .profile-plan-grid{grid-template-columns:1fr 1fr}
 .profile-plan-item strong{font-size:18px}
 .plan-choice-list,.goal-choice-grid{grid-template-columns:1fr}
 .body-input-grid{grid-template-columns:1fr 1fr}
 .bmi-preview{grid-template-columns:auto auto;align-items:center}
 .bmi-preview small{grid-column:1/-1}
}
@media(max-width:390px){
 .profile-plan-grid{grid-template-columns:1fr}
 .profile-plan-item+.profile-plan-item{border-left:0;border-top:1px solid var(--line);padding-left:0}
 .body-input-grid{grid-template-columns:1fr}
}
.live-next{display:flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px}
.live-next svg{width:21px;height:21px;flex:0 0 21px}


/* V6 — Adaptive Core */
.adaptive-pill{display:inline-flex;align-items:center;margin-top:15px;min-height:32px;padding:0 11px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:12.5px;font-weight:820;color:var(--muted)}
.adaptive-pill.ready,.adaptive-pill.steady{color:var(--accent)}
.adaptive-pill.light,.adaptive-pill.recover{color:var(--text)}
.adaptive-status{display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;align-items:center;padding:20px 0 24px;border-bottom:1px solid var(--line);margin-top:-10px}
.adaptive-status-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.adaptive-status-icon svg{width:24px;height:24px}
.adaptive-status strong{display:block;margin-top:5px;font-size:20px;letter-spacing:-.025em}
.adaptive-status p{margin:4px 0 0;color:var(--muted);font-size:14.5px}
.progression-preview{border-top:1px solid var(--line)}
.progression-preview>div{display:grid;grid-template-columns:minmax(160px,.55fr) minmax(0,1.45fr);gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}
.progression-preview span{font-size:15px;font-weight:800}
.progression-preview strong{font-size:14.5px;line-height:1.5;color:var(--muted);font-weight:650}
.progression-hint{display:flex;gap:10px;align-items:flex-start;margin:15px 0 0;padding:13px 14px;border:1px solid var(--line);background:var(--surface);border-radius:11px;color:var(--text-soft);font-size:14px;line-height:1.45}
.progression-hint svg{width:20px;height:20px;flex:0 0 20px;color:var(--accent)}
.nutrition-signals{margin-top:38px}
.signal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.signal-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;padding:17px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.signal-card>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--muted)}
.signal-card>span svg{width:20px;height:20px}
.signal-card.done>span{background:var(--accent-soft);color:var(--accent)}
.signal-card strong{font-size:16px}
.signal-card p{margin:4px 0 0;color:var(--muted);font-size:13.5px;line-height:1.4}
.recovery-adaptive{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:40px;padding:27px 0 31px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:38px}
.recovery-adaptive h2{font-size:38px;line-height:1;letter-spacing:-.05em;margin:9px 0 10px}
.recovery-adaptive p{margin:0;color:var(--muted);font-size:16px;line-height:1.55}
.recovery-adaptive aside{border-left:1px solid var(--line);padding-left:30px}
.recovery-adaptive aside>span{font-size:12px;font-weight:820;letter-spacing:.08em;color:var(--muted)}
.recovery-adaptive aside strong{display:block;font-size:22px;margin-top:8px}
.recovery-adaptive aside small{display:block;color:var(--muted);font-size:13.5px;margin:6px 0 13px}
.intelligence-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.intelligence-strip>div{padding:20px 18px 20px 0;min-width:0}
.intelligence-strip>div+div{border-left:1px solid var(--line);padding-left:18px}
.intelligence-strip span{display:block;color:var(--muted);font-size:13px;font-weight:730}
.intelligence-strip strong{display:block;font-size:28px;letter-spacing:-.045em;margin-top:7px}
.intelligence-strip small{display:block;color:var(--dim);font-size:12.5px;line-height:1.35;margin-top:5px}
.run-plan-switch{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:30px}
.run-plan-switch strong{display:block;font-size:20px;margin-top:5px}
.run-plan-switch p{margin:4px 0 0;color:var(--muted);font-size:14px}
.plan-inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.onboard-equipment{margin-top:24px}
.profile-plan-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.profile-plan-item:nth-child(4){border-left:0;border-top:1px solid var(--line);padding-left:0}
.profile-plan-item:nth-child(5),.profile-plan-item:nth-child(6){border-top:1px solid var(--line)}
@media(max-width:900px){
 .signal-grid{grid-template-columns:1fr}
 .recovery-adaptive{grid-template-columns:1fr;gap:22px}
 .recovery-adaptive aside{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}
 .intelligence-strip{grid-template-columns:1fr 1fr}
 .intelligence-strip>div:nth-child(3){border-left:0;border-top:1px solid var(--line);padding-left:0}
 .intelligence-strip>div:nth-child(4){border-top:1px solid var(--line)}
 .profile-plan-grid{grid-template-columns:1fr 1fr}
 .profile-plan-item:nth-child(3){border-left:0;border-top:1px solid var(--line);padding-left:0}
 .profile-plan-item:nth-child(4){border-left:1px solid var(--line);padding-left:18px}
 .profile-plan-item:nth-child(5){border-left:0;padding-left:0}
}
@media(max-width:700px){
 .adaptive-status{grid-template-columns:46px minmax(0,1fr);margin-top:0}
 .adaptive-status-icon{width:44px;height:44px}
 .progression-preview>div{grid-template-columns:1fr;gap:5px}
 .signal-grid{grid-template-columns:1fr}
 .recovery-adaptive h2{font-size:32px}
 .intelligence-strip{grid-template-columns:1fr 1fr}
 .intelligence-strip strong{font-size:25px}
 .run-plan-switch{align-items:flex-start;flex-direction:column}
 .run-plan-switch .setting-control{padding-left:0;grid-column:auto}
 .plan-inline-fields{grid-template-columns:1fr}
 .profile-plan-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:390px){
 .intelligence-strip,.profile-plan-grid{grid-template-columns:1fr}
 .intelligence-strip>div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}
 .profile-plan-item+.profile-plan-item{border-left:0;border-top:1px solid var(--line);padding-left:0}
}

/* V6 polish: stable action links and transparent replacement memory */
.section-link{white-space:nowrap;flex:0 0 auto}
.remembered-swaps{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid var(--line)}
.remembered-swaps>div{display:grid;gap:4px}
.remembered-swaps strong{font-size:16px}
.remembered-swaps small{color:var(--muted);font-size:14px;line-height:1.45}
@media(max-width:700px){
 .section-heading .section-link{font-size:14px}
 .remembered-swaps{align-items:flex-start;gap:12px}
 .remembered-swaps .section-link{font-size:14px}
}
