/* ============ TRACKING v1 — real macros + real lifts ============
   Monochrome only. Every colour is a token, a gray, or black/white, so this
   block reads correctly in both the dark palette and the pm-premium light skin. *//* --- macro bars (protein / carbs / fat under the rings) --- */



.mbars{width:100%;margin-top:15px;padding-top:15px;border-top:1px solid var(--hair-2);display:flex;flex-direction:column;gap:11px}
.mbar{display:flex;align-items:center;gap:11px}
.mbar .k{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);width:54px;flex:none}
.mbar .tr{flex:1;height:7px;border-radius:100px;background:rgba(128,128,128,.2);overflow:hidden}
.mbar .fl{display:block;height:100%;border-radius:100px;background:var(--metal);width:0;transition:width .9s var(--ease)}
.mbar.over .fl{opacity:.45}
.mbar .n{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);width:96px;text-align:right;flex:none;white-space:nowrap}
.mbar.over .n{color:var(--ink)}
.estnote{font-family:var(--mono);font-size:var(--ui-meta,14px);letter-spacing:.06em;color:var(--ink-4);margin-top:11px;line-height:1.5}/* --- anything-you-ate rows --- */


.xhead{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-4);margin:18px 0 2px;padding-top:14px;border-top:1px solid var(--hair-2)}
.xfood{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--hair-2);cursor:pointer;transition:.18s}
.xfood:last-child{border-bottom:none}
.xfood:hover{opacity:.72}
.xfood .xb{flex:1;min-width:0}
.xfood .xn{font-size:14px;font-weight:600;line-height:1.35}
.xfood .xm{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:4px}
.xfood .xk{font-family:var(--mono);font-size:14px;font-weight:700;flex:none}
.addfood{display:block;width:100%;text-align:center;margin-top:16px;background:none;border:1px dashed var(--hair);border-radius:14px;color:var(--ink-2);font-family:inherit;font-size:var(--ui-meta,14px);font-weight:600;padding:15px;cursor:pointer;transition:.2s var(--ease)}
.addfood:hover{color:var(--ink);border-color:var(--ink-3)}/* --- bottom sheets (food search, lift history) --- */


.sheet-wrap{position:fixed;inset:0;z-index:140;display:none;align-items:flex-end;justify-content:center}
.sheet-wrap.on{display:flex}
.sheet-bg{position:absolute;inset:0;background:rgba(0,0,0,.66);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.sheet{position:relative;width:100%;max-width:600px;max-height:92vh;overflow-y:auto;-webkit-overflow-scrolling:touch;
  background:#0A0B0C;border:1px solid var(--hair);border-bottom:none;border-radius:26px 26px 0 0;
  padding:20px 20px calc(26px + env(safe-area-inset-bottom));animation:sheetIn .34s var(--ease) both}
@keyframes sheetIn{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
body.pm-premium .sheet{background:var(--surface);border:none;box-shadow:0 -10px 44px -12px rgba(30,31,33,.34)}
.sheet-h{display:flex;align-items:center;gap:12px;margin-bottom:15px}
.sheet-h h3{flex:1;font-family:var(--serif);font-size:25px;font-weight:600;letter-spacing:-.02em;line-height:1.1}
.sheet-x{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--hair);background:none;color:var(--ink);font-size:20px;line-height:1;cursor:pointer;transition:.2s}
.sheet-x:hover{color:var(--ink)}
.sheet .btn{margin-top:14px}/* --- food search --- */


.fsrow{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.fsnote{font-size:var(--ui-meta,14px);color:var(--ink-3);line-height:1.5;margin-top:10px;min-height:0}
.fres{max-height:44vh;overflow-y:auto;-webkit-overflow-scrolling:touch;margin-top:12px}
.fr{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--hair-2);
  padding:13px 2px;cursor:pointer;color:inherit;font-family:inherit;transition:.15s}
.fr:hover{opacity:.68}
.fr .frb{flex:1;min-width:0}
.fr .frn{font-size:14px;font-weight:600;line-height:1.3}
.fr .frm{font-family:var(--mono);font-size:var(--ui-meta,14px);color:var(--ink-3);margin-top:3px}
.fr .frk{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;flex:none}
.frtag{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);border:1px solid var(--hair);border-radius:100px;padding:3px 7px;flex:none}
.fempty{padding:22px 2px;font-size:var(--ui-meta,14px);color:var(--ink-3);line-height:1.6}/* --- serving stepper + macro grid --- */


.qrow{display:flex;align-items:center;gap:11px;margin:15px 0 4px}
.qrow .ql{flex:1;font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.qrow .ql b{color:var(--ink-2);font-weight:700}
.qstep{width:44px;height:44px;flex:none;border-radius:13px;border:1px solid var(--hair);background:var(--surf);color:var(--ink);font-size:20px;font-weight:600;cursor:pointer;transition:.2s}
.qstep:hover{border-color:var(--ink-3)}
input.qv{width:76px!important;flex:none!important;min-width:0!important;text-align:center;font-family:var(--mono);font-size:16px;font-weight:700;padding:12px 4px}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.mgrid label{display:block;font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;text-align:center}
.mgrid input{width:100%;text-align:center;padding:13px 4px;font-family:var(--mono);font-size:16px}
.fstot{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);text-align:center;margin-top:15px;line-height:1.7}
.fstot b{color:var(--ink);font-weight:700}/* --- lifts: PR, history, volume, add-a-lift --- */


.prbadge{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  padding:4px 9px;border-radius:100px;background:var(--metal);color:var(--t-ink,#0a0a0a);margin-left:8px;vertical-align:middle}
body.pm-premium .prbadge{color:var(--ink-invert)}
.lhist{flex:none;background:none;border:1px solid var(--hair);color:var(--ink-3);font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:7px 9px;border-radius:9px;cursor:pointer;transition:.2s}
.lhist:hover{color:var(--ink);border-color:var(--ink-3)}
.lacts{display:flex;gap:6px;flex:none;align-items:center}
.e1line{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:3px}
.volline{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);text-align:center;margin-top:14px;padding-top:14px;border-top:1px solid var(--hair-2);letter-spacing:.04em}
.addlift{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;position:relative;z-index:60}
.addlift input{flex:1;min-width:120px;font-size:16px;padding:12px}
.addlift input.small{flex:0 0 96px;min-width:0;text-align:center;font-family:var(--mono)}
.xtag{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);margin-left:7px}
.qtag{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-left:6px}/* --- lift history sheet --- */


.hrow{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid var(--hair-2)}
.hrow:last-child{border-bottom:none}
.hrow .hd{font-family:var(--mono);font-size:var(--ui-meta,14px);color:var(--ink-3);width:58px;flex:none}
.hrow .hs{flex:1;font-size:var(--ui-meta,14px);font-weight:600}
.hrow .hs small{display:block;font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:500;color:var(--ink-3);margin-top:3px}
.hrow .he{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);flex:none;text-align:right}
.hrow .he small{display:block;font-size:var(--ui-meta,14px);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);margin-top:2px}
.bignum{display:flex;align-items:baseline;gap:9px;margin-bottom:14px}
.bignum b{font-family:var(--mono);font-size:36px;font-weight:700;letter-spacing:-.02em}
.bignum span{font-family:var(--mono);font-size:var(--ui-meta,14px);color:var(--ink-3)}
.bignum i{margin-left:auto;font-style:normal;font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2)}/* --- macro history rows (Progress) --- */


.dayrow{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--hair-2)}
.dayrow:last-child{border-bottom:none}
.dayrow .dd{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);width:42px;flex:none}
.dayrow .dbar{flex:1;height:7px;border-radius:100px;background:rgba(128,128,128,.2);overflow:hidden;min-width:30px}
.dayrow .dbar i{display:block;height:100%;background:var(--metal);border-radius:100px}
.dayrow .dv{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);width:112px;text-align:right;flex:none;white-space:nowrap}
.dayrow .dv small{color:var(--ink-4);font-weight:500}/* --- rest timer + toast --- */


.floatbar{position:fixed;left:50%;transform:translateX(-50%);z-index:130;display:none;align-items:center;gap:11px;
  padding:11px 13px;border-radius:100px;background:rgba(9,10,11,.93);border:1px solid var(--hair);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 14px 36px rgba(0,0,0,.55);max-width:calc(100vw - 28px)}
.floatbar.on{display:flex}
body.pm-premium .floatbar{background:var(--frost-2);border:1px solid var(--hairline);box-shadow:0 12px 36px -10px rgba(30,31,33,.32)}
#restTimer{bottom:152px}
#lmToast{bottom:152px;font-size:var(--ui-meta,14px);font-weight:600;padding:13px 17px}
@media(max-width:760px){#restTimer,#lmToast{bottom:146px}}
.floatbar .rt-l{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.floatbar .rt-v{font-family:var(--mono);font-size:19px;font-weight:700;min-width:54px;text-align:center;font-variant-numeric:tabular-nums}
.floatbar button{flex:none;background:none;border:1px solid var(--hair);border-radius:100px;color:var(--ink-2);font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:7px 11px;cursor:pointer;transition:.2s}
.floatbar button:hover{color:var(--ink);border-color:var(--ink-3)}/* --- targets editor (Settings) --- */


.tgt{margin-top:6px}
.tgt .tgtline{font-size:var(--ui-meta,14px);color:var(--ink-3);line-height:1.6;margin-bottom:12px}/* --- weekly volume per muscle --- */


.mrow{display:flex;align-items:center;gap:10px;padding:9px 0}
.mrow .mn{font-size:var(--ui-meta,14px);font-weight:600;width:88px;flex:none}
.mrow .mt{flex:1;height:7px;border-radius:100px;background:rgba(128,128,128,.2);overflow:hidden;position:relative}
.mrow .mt i{display:block;height:100%;background:var(--metal);border-radius:100px}
.mrow .mt u{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--ink-3);opacity:.5}
.mrow .mv{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;width:56px;text-align:right;flex:none}
.mrow.gap .mn,.mrow.gap .mv{color:var(--ink)}
.mrow.fine .mn,.mrow.fine .mv{color:var(--ink-3)}
.verdict{font-size:14.5px;line-height:1.6;margin-bottom:18px}
.verdict b{font-weight:700}
.fixrow{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--hair-2)}
.fixrow:last-child{border-bottom:none}
.fixrow .fx{flex:1;min-width:0}
.fixrow .fxm{font-size:var(--ui-meta,14px);font-weight:700}
.fixrow .fxs{font-size:var(--ui-meta,14px);color:var(--ink-3);margin-top:3px;line-height:1.45}/* --- charts. One series each, so no legend: the card heading names it. --- */


:root{--chart-surface:#0A0B0C}
body.pm-premium{--chart-surface:#fff}
.chartbox{position:relative;margin-top:10px}
.lchart{width:100%;height:auto;display:block}
.lchart .grid{stroke:var(--hair);stroke-width:1;fill:none}
.lchart .ar{fill:var(--ink);opacity:.09;stroke:none}
.lchart .ln{fill:none;stroke:var(--ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.lchart .rawdot{fill:var(--ink);opacity:.2}
.lchart .enddot{fill:var(--ink);stroke:var(--chart-surface);stroke-width:2}
.lchart .axl{fill:var(--ink-4);font-family:var(--mono);font-size:var(--ui-meta,14px);font-variant-numeric:tabular-nums}
.lchart .vlbl{fill:var(--ink);font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;font-variant-numeric:tabular-nums}
.lchart .cross{stroke:var(--ink-3);stroke-width:1;opacity:0}
.lchart .hit{fill:transparent}
.ctip{position:absolute;pointer-events:none;opacity:0;transition:opacity .12s;transform:translate(-50%,-100%);
  background:rgba(9,10,11,.95);border:1px solid var(--hair);border-radius:11px;padding:7px 10px;white-space:nowrap;z-index:5}
body.pm-premium .ctip{background:var(--surface);border:none;box-shadow:0 6px 22px -6px rgba(30,31,33,.34),0 0 0 1px var(--hair-2)}
.ctip b{display:block;font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink)}
.ctip span{display:block;font-family:var(--mono);font-size:var(--ui-meta,14px);color:var(--ink-3);margin-top:2px}
.chartread{font-size:var(--ui-meta,14px);line-height:1.65;color:var(--ink-2);margin-top:14px}
.chartread b{color:var(--ink);font-weight:700}
.chartnote{font-family:var(--mono);font-size:var(--ui-meta,14px);color:var(--ink-4);line-height:1.6;margin-top:10px}/* --- what to eat next: the gap turned into one-tap answers --- */


.coach{margin-top:16px;padding-top:15px;border-top:1px solid var(--hair-2)}
.coach .cl{font-size:var(--ui-meta,14px);line-height:1.6;color:var(--ink-2)}
.coach .cl b{color:var(--ink);font-weight:700}
.chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.chipbtn{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;background:var(--surf);border:1px solid var(--hair);
  border-radius:12px;padding:9px 12px;cursor:pointer;font-family:inherit;color:var(--ink);text-align:left;transition:.18s var(--ease)}
.chipbtn:hover{border-color:var(--ink-3)}
.chipbtn b{font-size:var(--ui-meta,14px);font-weight:600;line-height:1.25}
.chipbtn span{font-family:var(--mono);font-size:var(--ui-meta,14px);color:var(--ink-3)}
body.pm-premium .chipbtn{background:var(--surface);border:none;box-shadow:inset 0 0 0 1px var(--hairline)}
.quickhead{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-4);margin-bottom:9px}
.quickbar{padding-bottom:16px;margin-bottom:4px;border-bottom:1px solid var(--hair-2)}/* --- after-photo questions: big, tappable, one glance each --- */


.askhead{font-size:var(--ui-meta,14px);line-height:1.6;color:var(--ink-2);margin-bottom:18px}
.askhead b{color:var(--ink);font-weight:700}
.askq{margin-bottom:20px}
.askq .ql2{font-family:var(--mono);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px}
.askopts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.askopt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:92px;
  padding:12px 8px;border-radius:14px;border:1px solid var(--hair);background:var(--surf);cursor:pointer;
  font-family:inherit;color:var(--ink);transition:.18s var(--ease);text-align:center}
body.pm-premium .askopt{background:var(--surface);border:none;box-shadow:inset 0 0 0 1px var(--hairline)}
.askopt:hover{border-color:var(--ink-3)}
.askopt.sel{background:var(--metal);color:var(--t-ink,#0a0a0a);border-color:transparent}
body.pm-premium .askopt.sel{background:#141516;color:var(--ink-invert);box-shadow:none}
.askopt .ic{width:34px;height:34px;flex:none}
.askopt .ic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.askopt b{font-size:var(--ui-meta,14px);font-weight:600;line-height:1.25}/* --- macro history bar gets a target mark --- */


.dayrow .dbar{position:relative}
.dayrow .dbar u{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--ink-3);opacity:.65;border-radius:2px}/* ============================================================
   FORGE v2 — the final skin. One family, sentence case, cobalt
   accent for action and progress, systematic radii and layers.
   Reads only :root tokens. Later in the cascade on purpose: it
   is the last word over every older rule above it.
   ============================================================ *//* -- typography: the caps era ends. Small labels become plain words. -- */




.bgrp,.hrow .m,.rept .m,.bex .m,.setlab,.replab,.lmore,.xhead,.quickhead,.mbar .k,
.photoslot .lbl,.floatbar .rt-l,.meal .when,.meal .status,.setrow .sl,.st-ix,
.sess-in label,.wt label,.field>label,.msf label,.mgrid label,.dayrow .dd,
.sess-eyebrow,.sess-set,.sess-ix,.wbig small,.ring-c small,.obday-h span,
.hrow .he small,.frtag,.lhist,.ledit,.tstep,.daybtn-sub,.estnote,.chartnote,
.mgnote,.volline,.note,.setfoot button,.e1line,.bcnt,.bday .dd,.floatbar button{
  font-family:var(--sans);letter-spacing:0;text-transform:none}
.bgrp{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.hrow .m,.rept .m,.bex .m{font-size:var(--ui-meta,14px);font-weight:500;color:var(--ink-3)}
.setlab{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2)}
.lift .lsub{font-family:var(--sans);font-size:var(--ui-meta,14px);font-weight:500;color:var(--ink-3);letter-spacing:0}
.meal .when{font-size:var(--ui-meta,14px);font-weight:600}
.sess-ix{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2)}
.sess-eyebrow{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.sess-set{font-size:14.5px;font-weight:600;color:var(--ink-2)}
.wbig small{font-size:15px;font-weight:600;color:var(--ink-3);margin-top:6px}
.ring-c small{font-size:var(--ui-meta,14px);font-weight:600}
.dayrow .dd{font-size:var(--ui-meta,14px);font-weight:600}
h1{font-family:var(--sans);font-weight:700;font-size:clamp(34px,9vw,42px);letter-spacing:-.03em;line-height:1.04}
.kicker{font-size:var(--ui-meta,14px)}/* numbers read as instruments */

.held .hw,.wbig b,.sess-clock,.ring-c b,.stat .big,.bignum b,.floatbar .rt-v,
.hrow .he,.fr .frk,.xfood .xk,.reprow .rep,.ltarget,.mbar .n,.dayrow .dv{font-variant-numeric:tabular-nums}
.held .hw,.stat .big,.bignum b,.hrow .he,.fr .frk,.xfood .xk{font-family:var(--sans)}/* -- navigation: five quiet destinations, frosted, accent for where you are -- *//* THE DOCK. Five destinations on their own reserved ground at the true
   bottom: full width, opaque, safe-area aware. Content ends above it and
   nothing ever sits behind it. It steps aside while someone is typing. */



.tabs{left:0;right:0;transform:none;bottom:0;z-index:var(--z-nav);
  display:flex;gap:0;justify-content:space-around;align-items:stretch;
  padding:8px 10px calc(10px + env(safe-area-inset-bottom));
  border:none;border-top:1px solid var(--hairline);border-radius:0;
  background:var(--surface);box-shadow:0 -8px 30px -18px rgba(12,13,16,.25);
  transition:transform .22s var(--ease)}
.tabs.kb{transform:translateY(110%)}
.tabs button{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:60px;
  background:none;border:none;border-radius:18px;color:var(--ink-3);font-family:var(--sans);
  font-size:var(--ui-meta,14px);font-weight:600;letter-spacing:0;text-transform:none;padding:7px 4px 6px;cursor:pointer;
  transition:color var(--t-norm) var(--ease),background var(--t-norm) var(--ease)}
.tabs button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tabs button.on{background:var(--accent-soft);color:var(--accent);box-shadow:none}
.tabs button:active{transform:scale(.95)}
@media (max-width:374px){.tabs button{min-width:52px;font-size:var(--ui-meta,14px)}.tabs button svg{width:20px;height:20px}}/* -- floating layers: one stacking system, nothing covers an action -- */


.undobar{bottom:calc(148px + env(safe-area-inset-bottom));z-index:var(--z-float)}
#restTimer{bottom:calc(92px + env(safe-area-inset-bottom));z-index:var(--z-float)}
#lmToast{bottom:calc(150px + env(safe-area-inset-bottom));z-index:var(--z-float)}
@media(max-width:760px){#restTimer{bottom:calc(92px + env(safe-area-inset-bottom))}#lmToast{bottom:calc(150px + env(safe-area-inset-bottom))}}
.sess{z-index:var(--z-sess)}
.sheet-wrap{z-index:var(--z-sheet)}
.tut{z-index:var(--z-tut)}/* -- cards and sheets on the radius scale -- */


.sheet{border-radius:var(--r-sheet) var(--r-sheet) 0 0}
.adaptcard{flex-wrap:wrap;align-items:center;gap:12px 12px;border:none;border-radius:var(--r-lg);
  background:var(--surface);box-shadow:var(--shadow-1);padding:18px}
.adaptcard .ac-body{flex:1 1 100%}
.adaptcard .ac-h{color:var(--ink);font-size:15px}
.adaptcard .ac-sub{font-size:var(--ui-meta,14px);color:var(--ink-2)}
.adaptcard .btn{flex:0 0 auto;width:auto;margin:0}
.changed{border:none;border-left:3px solid var(--accent);background:var(--surface);box-shadow:var(--shadow-1);border-radius:var(--r-sm)}
.changed b{color:var(--ink)}/* -- progress is the accent's job -- */


.ldots i.on{background:var(--accent)}
.mgbar i.enough{background:var(--accent)}
.mrow .mt i{background:var(--accent)}
.dayrow .dbar i{background:var(--accent)}
.mbar .fl{background:var(--accent)}
.lchart .ln{stroke:var(--accent)}
.lchart .ar{fill:var(--accent);opacity:.07}
.lchart .enddot{fill:var(--accent)}
.lchart .rawdot{fill:var(--ink-3);opacity:.35}
body.pm-premium .reprow .rep.aim{background:var(--accent);color:var(--accent-ink);box-shadow:none}
.sess-bar{background:var(--surface-strong)}
.sess-bar i{background:var(--accent)}
.prbadge{font-family:var(--sans);letter-spacing:.08em;background:var(--accent)}
body.pm-premium .prbadge{color:var(--ink-invert)}
.lift.done .lglyph{background:var(--accent)}
.setrow.warm .wu{background:var(--ink-2);border-color:var(--ink-2)}
.lsmodes button.on{background:#141516;border-color:var(--ink)}
.held.ask{box-shadow:inset 0 0 0 1.5px var(--accent)}
.warn{color:var(--warn)}/* -- the auxe number moment: a room of its own, with its own keypad -- */


.asknum{position:fixed;inset:0;z-index:var(--z-ask);display:flex;flex-direction:column;background:var(--bg)}
.asknum.top{z-index:calc(var(--z-tut) + 5)}
.asknum{
  padding:calc(18px + env(safe-area-inset-top)) 22px calc(18px + env(safe-area-inset-bottom))}
.asknum.hide{display:none}
.asknum .an-mid{flex:1;display:flex;flex-direction:column;justify-content:center;gap:12px;min-height:0}
.asknum .an-l{font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.25;max-width:26ch}
.asknum .an-val{display:flex;align-items:baseline;gap:10px}
.asknum input{flex:1;min-width:0;font-size:52px;font-weight:700;text-align:center;padding:12px 8px;border-radius:var(--r-lg);
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline)}
.asknum .an-unit{font-size:17px;font-weight:600;color:var(--ink-3);flex:none}
.asknum input::-webkit-inner-spin-button,.asknum input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.asknum input[type=number]{-moz-appearance:textfield;appearance:textfield}
.asknum .an-steps{display:flex;gap:8px}
.asknum .an-steps button{flex:1;background:var(--surface);border:none;border-radius:var(--r-sm);
  font-family:var(--sans);font-size:14.5px;font-weight:700;color:var(--ink);padding:12px 4px;cursor:pointer;
  box-shadow:0 1px 2px rgba(30,31,33,.05);font-variant-numeric:tabular-nums}
.asknum .an-steps button:active{transform:scale(.96)}
.asknum .an-hint{font-size:var(--ui-meta,14px);color:var(--ink-3);line-height:1.5}
.an-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 12px}
.an-pad button{background:var(--surface);border:none;border-radius:var(--r-md);font-family:var(--sans);
  font-size:24px;font-weight:600;color:var(--ink);padding:15px 0;cursor:pointer;
  box-shadow:0 1px 2px rgba(30,31,33,.05);font-variant-numeric:tabular-nums;
  transition:transform var(--t-micro) var(--ease)}
.an-pad button:active{transform:scale(.94);background:var(--surface-subtle)}
@media (max-height:700px){.an-pad button{padding:11px 0;font-size:21px}.asknum input{font-size:42px}}/* -- the auxe dialog: confirmations and short choices -- */


.fdlg{position:fixed;inset:0;z-index:calc(var(--z-tut) + 5);display:flex;align-items:center;justify-content:center;padding:24px}
.fdlg.hide{display:none}
.fdlg-bg{position:absolute;inset:0;background:rgba(7,8,9,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.fdlg-card{position:relative;width:100%;max-width:360px;background:var(--surface);border-radius:var(--r-xl);
  box-shadow:var(--shadow-2);padding:24px 22px 18px;animation:dlgIn var(--t-norm) var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.fdlg-t{font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.25}
.fdlg-p{font-size:14px;color:var(--ink-2);line-height:1.55;margin-top:8px}
.fdlg-b{display:flex;flex-direction:column;gap:9px;margin-top:20px}
.fdlg-b .btn{margin:0;padding:15px;font-size:15.5px}
.fdlg .btn.bad{background:var(--error);color:#fff}
.fdlg-opts{display:flex;flex-direction:column;gap:8px;margin-top:16px;max-height:46vh;overflow-y:auto}
.fdlg-opts button{width:100%;text-align:left;background:var(--surface-subtle);border:none;border-radius:var(--r-md);
  font-family:var(--sans);font-size:15px;font-weight:600;color:var(--ink);padding:14px 15px;cursor:pointer}
.fdlg-opts button small{display:block;font-size:var(--ui-meta,14px);font-weight:500;color:var(--ink-3);margin-top:2px}
.fdlg-opts button:active{transform:scale(.98)}
#fdlgIn{margin-top:14px}/* -- session: quiet room, giant instruments -- */


body.pm-premium .sess{background:var(--bg)}
.sess-lift{font-family:var(--sans);font-weight:700}
.unkrow{border:none;background:none;border-radius:0;color:var(--ink-3);font-size:var(--ui-meta,14px);font-weight:600;
  text-decoration:underline;text-underline-offset:3px;padding:9px 4px;margin-top:2px}
#sessFoot .btn.ghost{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(30,31,33,.05);
  font-family:var(--sans);font-size:14.5px;letter-spacing:0;text-transform:none;font-weight:600;padding:15px}/* -- chat: the coach reads as the coach -- */


.cmsg.coach{background:var(--surface);box-shadow:var(--shadow-1);border-radius:4px 16px 16px 16px}
.cmsg.did{font-family:var(--sans);font-size:var(--ui-meta,14px);font-weight:600;letter-spacing:0;text-transform:none;
  color:var(--accent);background:var(--accent-soft);border-radius:var(--r-pill);padding:7px 13px;box-shadow:none}
.coachwho{display:flex;align-items:center;gap:7px;align-self:flex-start;margin:2px 0 -4px 4px;
  font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.coachwho i{width:8px;height:8px;border-radius:3px;background:var(--accent);display:block}/* -- focus states carry the accent -- */


:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}/* -- rest is a moment: the countdown owns the whole session screen -- */


#sessRest .rf-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-top:8vh}
#sessRest .rf-word{font-size:15px;font-weight:600;color:var(--accent)}
#sessRest .sess-clock{font-size:clamp(92px,28vw,148px);margin-top:4px;letter-spacing:-.04em}
#sessRest .rf-ring{margin-top:16px;width:min(58vw,240px);height:6px;border-radius:100px;background:var(--surface-strong);overflow:hidden}
#sessRest .rf-ring i{display:block;height:100%;width:100%;background:var(--accent);border-radius:100px;transition:width 1s linear}
.sess.over #sessRest .rf-ring i{background:var(--error)}
#sessRest .sess-why{margin:22px auto 0;max-width:40ch}
#sessRest .sess-next{margin-top:16px}/* -- workout complete: the finish the log earns -- */


#sessDone .df-word{font-size:14px;font-weight:600;color:var(--accent)}
#sessDone .df-h{font-size:clamp(30px,8.6vw,38px);font-weight:700;letter-spacing:-.03em;line-height:1.05;margin-top:6px}
#sessDone .df-stats{display:flex;gap:10px;margin-top:26px}
#sessDone .df-stat{flex:1;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-1);
  padding:16px 12px;text-align:center;min-width:0}
#sessDone .df-stat b{display:block;font-size:22px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
#sessDone .df-stat span{display:block;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:4px}
#sessDone .df-pr{margin-top:14px;background:var(--accent-soft);border-radius:var(--r-lg);padding:17px 18px}
#sessDone .df-pr .pw{font-size:var(--ui-meta,14px);font-weight:700;color:var(--accent)}
#sessDone .df-pr b{display:block;font-size:17px;font-weight:700;margin-top:3px}
#sessDone .df-pr span{display:block;font-size:var(--ui-meta,14px);color:var(--ink-2);margin-top:2px;font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion: no-preference){
  #sessDone .df-word,#sessDone .df-h{animation:rise .45s var(--ease) both}
  #sessDone .df-stat{animation:rise .5s var(--ease) both}
  #sessDone .df-stat:nth-child(2){animation-delay:.07s}
  #sessDone .df-stat:nth-child(3){animation-delay:.14s}
  #sessDone .df-pr{animation:rise .55s var(--ease) .2s both}
  @keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
}/* -- the week strip on the Workout hub -- */


.wkstrip{display:flex;gap:6px;margin:4px 0 6px}
.wkday{flex:1;min-width:0;background:var(--surface);border:none;border-radius:var(--r-sm);
  box-shadow:inset 0 0 0 1px var(--hairline);padding:9px 2px 8px;text-align:center;font-family:var(--sans);
  color:var(--ink-2);cursor:pointer}
.wkday em{display:block;font-style:normal;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.wkday b{display:block;font-size:var(--ui-meta,14px);font-weight:700;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}
.wkday.rest b{color:var(--ink-4);font-weight:600}
.wkday.now{box-shadow:inset 0 0 0 1.5px var(--accent)}
.wkday.now em{color:var(--accent)}/* -- home: coach line + one metric -- */


.homeline{display:flex;align-items:flex-start;gap:11px;background:var(--surface);border-radius:var(--r-lg);
  box-shadow:var(--shadow-1);padding:15px 16px;margin-bottom:16px}
.homeline .hl-mark{flex:none;width:10px;height:10px;border-radius:3.5px;background:var(--accent);margin-top:5px}
.homeline .hl-t{flex:1;font-size:var(--ui-meta,14px);line-height:1.55;color:var(--ink-2)}
.homeline .hl-t b{color:var(--ink);font-weight:600}
.homesub{font-size:14px;color:var(--ink-2);margin:6px 0 0}/* ============================================================
   READABILITY FLOOR + LIVE WORKOUT CLARITY (v2.1)
   Nothing important below ~13px, tappable things look tappable,
   and the session answers "what now" in one glance.
   ============================================================ *//* -- the clock's weight chip: obviously a control -- */




.runrow{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:20px}
.runw{display:inline-flex;align-items:baseline;gap:8px;background:var(--surface);border:none;
  border-radius:var(--r-pill);box-shadow:0 1px 2px rgba(30,31,33,.06),inset 0 0 0 1px var(--hairline);
  padding:11px 18px;cursor:pointer;font-family:var(--sans);color:var(--ink);letter-spacing:0;text-transform:none}
.runw b{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.runw i{font-style:normal;font-size:var(--ui-meta,14px);font-weight:600;color:var(--accent)}
.runw:active{transform:scale(.97)}
.runaim{font-size:14px;font-weight:600;color:var(--ink-2)}/* -- rest: the next set reads as a block, not a sentence -- */


.rf-nx{display:flex;flex-direction:column;gap:2px;align-items:center}
.rf-nx em{font-style:normal;font-size:var(--ui-meta,14px);font-weight:700;color:var(--accent)}
.rf-nx b{font-size:19px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.rf-nx span{font-size:14px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}
.rf-nx .rf-tgt{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.rf-done{font-size:14px;font-weight:700;color:var(--ok);margin-bottom:12px}/* ACTION then FEEDBACK: the set you just logged, said back for a beat while
   the screen already moves on. Never a tap target, never in the way. */

.sess-flash{position:absolute;left:0;right:0;top:21%;display:flex;justify-content:center;pointer-events:none;z-index:6}
.sess-flash b{display:inline-flex;align-items:center;background:#141516;color:var(--bg);font-size:16.5px;font-weight:700;padding:12px 22px;border-radius:var(--r-pill);box-shadow:var(--shadow-2);font-variant-numeric:tabular-nums}
.sess-flash b.pr{background:var(--accent);color:var(--accent-ink)}
@media (prefers-reduced-motion: no-preference){
  .sess-flash b{animation:flashIn 1.1s var(--ease) both}
}
@keyframes flashIn{0%{opacity:0;transform:translateY(10px) scale(.9)}14%{opacity:1;transform:none}80%{opacity:1}100%{opacity:0;transform:translateY(-8px)}}
.sess-ix.ixtick{animation:ixTick .4s var(--ease)}
@keyframes ixTick{45%{transform:scale(1.1)}}
.df-check{width:58px;height:58px;margin:0 auto 14px;display:block}
.df-check circle{fill:none;stroke:var(--accent-soft);stroke-width:3}
.df-check path{fill:none;stroke:var(--accent);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:0}
@media (prefers-reduced-motion: no-preference){
  .df-check path{animation:drawCheck .55s var(--ease) .1s both}
}
@keyframes drawCheck{from{stroke-dashoffset:40}to{stroke-dashoffset:0}}/* ============================================================
   THE LIVE WORKOUT SHELL (v3)
   One room that morphs instead of four screens that replace each other.
   Three levels: what is happening now is huge, useful context is plainly
   readable, rare doors are quiet. Controls keep their places.
   ============================================================ */


.sess-main{display:contents}
.sess-side{display:none}
.sess-head{display:flex;align-items:flex-start;gap:14px}
.sess-headtxt{flex:1;min-width:0}
.sess-lift{font-size:clamp(28px,7.4vw,40px)}
.sess-set{margin-top:8px}
.sess-mini{flex:none;width:44px;margin-top:6px;opacity:.95}
.sess-mini svg{width:100%;display:block}
.sess-mini .sil circle,.sess-mini .sil rect{fill:var(--surface-subtle)}/* STABLE ZONES. The head is pinned to the top of the room and the context
   strip sits just above the primary action, whatever the middle is doing.
   Only the workspace centres itself in the space between, and when a state
   is taller than the room the room scrolls instead of clipping. */

.sess-body{justify-content:flex-start;padding:12px 0 0}
#sessWork:not(.hide){display:flex;flex-direction:column;flex:1 0 auto}
#sessDone{margin:auto 0}
.sess-ws{flex:1 0 auto;display:flex;flex-direction:column;margin-top:6px;min-height:120px}
.sess-ws>div:not(.hide){margin:auto 0;width:100%}
@media (prefers-reduced-motion: no-preference){
  .sess-ws.morph{animation:wsIn .28s var(--ease)}
}/* TWO FIXED SLOTS at the bottom: the primary action always in the upper
   one, the quiet secondary always in the lower one. A state with no
   secondary leaves the slot empty rather than sliding the primary down. */

.sess-foot{min-height:121px;justify-content:flex-start}
.sess-foot .btn{min-height:56px}
.sess-foot .foot-gap{height:56px;flex:none}
@media (max-height:640px){.sess-foot{min-height:0}.sess-foot .foot-gap{display:none}}
.rf-links{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 22px;margin-top:8px}
.rf-links .repmore{width:auto;display:inline-block;padding-top:6px}
@keyframes wsIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
#sessWStep .sess-eyebrow{margin-top:14px}
#sessWStep .wsrow{margin-top:8px}
#sessWStep .sess-instr{margin-top:16px;font-size:14.5px}
.sess-clock.runclock{margin-top:18px;font-size:clamp(96px,30vw,164px)}
.runrow{margin-top:14px}
#sessRepsBox .sess-eyebrow{margin-top:18px;font-size:15.5px;color:var(--ink)}
#sessRepsBox .reprow{margin-top:12px}
#sessRepsBox .repbig{margin-top:10px}
#sessRepsBox #sessMoreT{margin-top:6px;color:var(--ink-3)}
.trio{display:flex;gap:8px;margin-top:14px}
.trio button{flex:1;min-width:0;background:var(--surface);border:none;border-radius:var(--r-md);
  box-shadow:inset 0 0 0 1px var(--hairline);font-family:var(--sans);font-size:14px;font-weight:700;
  color:var(--ink);padding:13px 4px;cursor:pointer;line-height:1.2}
.trio button.on{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}
.trio button:active{transform:scale(.97)}/* One row, always the same height: extra context scrolls sideways rather
   than pushing the room around. */

.sess-ctx{display:flex;flex-wrap:nowrap;gap:0 18px;margin-top:16px;padding:14px 0 6px;border-top:1px solid var(--hairline);
  min-height:44px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sess-ctx::-webkit-scrollbar{display:none}
.sess-ctx .cx{flex:none}
.sess-ctx .cx{font-size:14.5px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums;line-height:1.4}
.sess-ctx .cx em{font-style:normal;font-weight:700;color:var(--ink-3)}
.sess-ctx .cx b{font-weight:700;color:var(--ink)}
.sess-ctx:empty{display:none}
#sessRest .rf-mid{padding-top:4px}
#sessRest .sess-clock{font-size:clamp(76px,22vw,124px)}
.rf-chips{display:flex;justify-content:center;gap:8px;margin-top:14px}
.rf-chips button{border:none;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline);border-radius:var(--r-pill);
  padding:10px 18px;font:inherit;font-size:14px;font-weight:700;color:var(--ink);cursor:pointer}
.rf-chips button:active{transform:scale(.96)}
#sessRest .sess-next{margin-top:18px;width:100%}
#sessRest .sess-why{margin:12px auto 0;font-size:var(--ui-meta,14px);color:var(--ink-3)}
.rf-nx{gap:3px}
.rf-nx b{font-size:20px}
.rf-nx .rf-chg{background:none;border:none;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--accent);
  text-decoration:underline;text-underline-offset:3px;padding:3px 0;cursor:pointer}
.rf-nx .rf-last{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
#sessRest .repmore{font-size:14px}
#sessRest #sessFix{color:var(--ink-3);font-size:var(--ui-meta,14px)}
@media (max-height:720px){
  .sess-clock.runclock{font-size:clamp(84px,24vw,120px);margin-top:10px}
  #sessRest .sess-clock{font-size:clamp(72px,20vw,104px)}
  .sess-ctx{margin-top:14px;padding-top:10px}
}
/* WIDE: the overview on the left, the lift's story on the right, the task
   in the middle where the eyes already are. Never three things to scan. */
@media (min-width:900px){
  .sess.on{display:grid;grid-template-columns:260px minmax(0,620px) 300px;column-gap:56px;
    justify-content:center;align-items:stretch;padding:calc(22px + env(safe-area-inset-top)) 40px 26px}
  .sess-main{display:flex;flex-direction:column;min-height:0}
  .sess-side{display:block;overflow-y:auto;min-height:0;padding-top:60px}
  .sess-mini{display:none}
  .sess-lift{font-size:40px}
  .sl-h{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);margin-bottom:10px}
  .sl-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--hairline);cursor:pointer}
  .sl-row:last-of-type{border-bottom:none}
  .sl-row .n{flex:1;min-width:0;font-size:14.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sl-row.now .n{color:var(--ink);font-weight:700}
  .sl-row .m{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);font-variant-numeric:tabular-nums}
  .sl-row .ovm{width:18px;height:18px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:var(--ui-meta,14px)}
  .sl-row .ovm.done{background:var(--accent);color:var(--accent-ink)}
  .sl-row .ovm.now{background:var(--accent-soft);color:var(--accent)}
  .sl-row .ovm.todo{box-shadow:inset 0 0 0 1.5px var(--hairline);color:transparent}
  .sl-add{margin-top:14px;background:none;border:none;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--accent);
    text-decoration:underline;text-underline-offset:3px;padding:0;cursor:pointer}
  .sr-fig{width:190px;margin:0 auto 14px}
  .sr-fig svg{width:100%;display:block}
  .sr-fig .sil circle,.sr-fig .sil rect{fill:var(--surface-subtle)}
  .sr-mus{text-align:center;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-bottom:18px}
  .sr-mus b{color:var(--ink)}
  .sr-h{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);margin-top:16px}
  .sr-line{font-size:14.5px;font-weight:600;color:var(--ink-2);margin-top:5px;font-variant-numeric:tabular-nums;line-height:1.45}
  .sr-line b{color:var(--ink);font-weight:700}
  .sr-pr{margin-top:14px;background:var(--accent-soft);border-radius:var(--r-md);padding:12px 14px;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2)}
  .sr-pr b{display:block;font-size:15px;color:var(--ink)}
}
.vpulse{animation:vpulse .45s var(--ease)}
.runlast{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);text-align:center;margin-top:12px}
.aifrow{display:flex;gap:8px;align-items:center}
.aifrow input{flex:1;min-width:0;border:1px solid var(--hair);background:var(--surface);border-radius:12px;padding:12px 14px;font:inherit;font-size:16px;color:var(--ink)}
.aifrow input:focus{outline:none;border-color:var(--accent)}
.aifnote{font-size:var(--ui-meta,14px);color:var(--ink-3);margin-top:8px;line-height:1.5}
.aifitem{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--hair-2)}
.aifitem .exline{display:flex;flex-direction:column;flex:1;gap:3px;min-width:0}
.aifitem .exline .n{font-size:14.5px;font-weight:700}
.aiftag{font-style:normal;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);background:var(--surface-subtle);border-radius:999px;padding:2px 7px;margin-left:6px;text-transform:uppercase;letter-spacing:.04em}
.aifnum{all:unset;cursor:pointer;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--hair);padding:2px 0}
.aifitem .nope{all:unset;cursor:pointer;color:var(--ink-3);font-size:18px;padding:4px 8px}
.aiftotal{display:flex;flex-direction:column;gap:2px;padding-top:12px}
.aiftotal b{font-size:15.5px}
.aiftotal span{font-size:var(--ui-meta,14px);color:var(--ink-3)}
.flextip{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);background:var(--accent-soft);border-radius:var(--r-md);padding:12px 14px;margin-top:12px;line-height:1.5}
.fhub{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:12px}
.fh{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--surface-subtle);border:1px solid var(--hair);border-radius:var(--r-md);padding:13px 6px 11px;font:inherit;cursor:pointer}
.fh svg{width:22px;height:22px;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-bottom:2px}
.fh b{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink)}
.fh span{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.fh:active{transform:scale(.96)}
.aifsrc{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:4px}/* WATER. A calm dimensional vessel that visibly fills as the day goes. */

.wrow2{display:flex;gap:20px;align-items:center}
.vessel{position:relative;flex:none;width:56px;height:104px;border:1.5px solid var(--hair);border-radius:14px 14px 18px 18px;background:var(--surface-subtle);overflow:hidden}
.vessel i{position:absolute;left:0;right:0;bottom:0;height:4%;background:linear-gradient(180deg,var(--accent-soft),var(--accent));opacity:.85;border-radius:0 0 16px 16px;transition:height .7s var(--ease)}
.vessel i.full{opacity:1}
.wmain{flex:1;min-width:0}
.wnum{all:unset;cursor:pointer;font-size:24px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink)}
.wnum b{font-size:30px}
.wtag{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:3px}
.wbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.wbtns button{border:1px solid var(--hair);background:var(--surface);border-radius:var(--r-pill);padding:10px 14px;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums}
.wbtns button:active{transform:scale(.95)}
.homewater{all:unset;cursor:pointer;display:block;margin:12px auto 0;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);background:var(--accent-soft);border-radius:var(--r-pill);padding:8px 16px}/* SEARCH. One door to everything auxe knows, yours first. */

.srpill{display:flex;align-items:center;gap:10px;width:100%;margin-top:16px;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-pill);padding:13px 16px;font:inherit;font-size:14.5px;font-weight:600;color:var(--ink-3);cursor:pointer;box-shadow:var(--shadow-1)}
.srpill svg{width:18px;height:18px;fill:none;stroke:var(--ink-3);stroke-width:2;stroke-linecap:round}
.srch{position:fixed;inset:0;z-index:var(--z-sheet);background:var(--bg);display:none;flex-direction:column;overscroll-behavior:contain}
.srch.on{display:flex}
.sr-top{display:flex;align-items:center;gap:12px;padding:calc(14px + env(safe-area-inset-top)) 18px 12px;border-bottom:1px solid var(--hair-2)}
.sr-top svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round}
.sr-top input{flex:1;min-width:0;border:none;background:none;font:inherit;font-size:17px;font-weight:600;color:var(--ink);outline:none}
.sr-out{flex:1;overflow-y:auto;padding:16px 18px calc(28px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}
.srcard{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:16px;margin-bottom:14px}
.srcard .sh{font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.srcard h3{font-size:18px;font-weight:800;letter-spacing:-.01em;margin:0 0 4px}
.srcard .sm{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);line-height:1.55}
.srcard .you{font-size:14px;font-weight:700;color:var(--ink);margin-top:8px}
.srcard .foot{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.srrow{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--hair-2)}
.srrow:last-child{border-bottom:none}
.srrow .exline{flex:1;min-width:0}
.srrow .n{font-size:14.5px;font-weight:700}
.srrow .m{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:2px}
.srrow .fit{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ok);background:rgba(22,155,98,.1);border-radius:999px;padding:3px 8px;flex:none}
.srrow .fit.no{color:var(--ink-3);background:var(--surface-strong)}
.srrow button.go{flex:none;border:1px solid var(--hair);background:var(--surface);border-radius:var(--r-pill);padding:8px 13px;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--accent)}
.srchips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}
.srchips button{border:1px solid var(--hair);background:var(--surface);border-radius:var(--r-pill);padding:9px 14px;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2)}/* DESKTOP IS NOT A STRETCHED PHONE. Same auxe, wider shell: the dock gives
   way to a top navigation, content keeps honest measure, and Home and
   Nutrition earn a second column that the phone reveals progressively. */

.topnav{display:none}
@media (min-width:900px){
  .topnav{position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);display:flex;align-items:center;gap:26px;
    padding:0 28px;height:60px;background:var(--surface);border-bottom:1px solid var(--hairline)}
  .tn-mark{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:800;letter-spacing:-.01em}
  .tn-mark i{width:12px;height:12px;border-radius:4px;background:var(--accent)}
  .tn-tabs{display:flex;gap:4px;flex:1}
  .tn-tabs button{border:none;background:none;font:inherit;font-size:14px;font-weight:700;color:var(--ink-3);
    padding:9px 15px;border-radius:var(--r-pill);cursor:pointer;transition:color var(--t-norm) var(--ease),background var(--t-norm) var(--ease)}
  .tn-tabs button.on{background:var(--accent-soft);color:var(--accent)}
  .tn-tabs button:hover{color:var(--ink)}
  .tn-search{display:flex;align-items:center;gap:8px;border:1px solid var(--hair);background:var(--surface-subtle);
    border-radius:var(--r-pill);padding:9px 16px;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);cursor:pointer}
  .tn-search svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
  body.pm-premium .tabs{display:none!important}
  body.pm-premium .col{padding-top:104px!important;padding-bottom:64px!important}
  .balwrap{justify-content:center;gap:44px}
  .balwrap figure svg{width:230px}
  #searchPill{display:none}
}
@media (min-width:1140px){
  body.pm-premium .col{max-width:1200px}
  #today{display:grid;grid-template-columns:minmax(0,680px) minmax(320px,1fr);column-gap:60px;align-items:start}
  #today>*{grid-column:1;max-width:680px}
  #today #todayRail{grid-column:2;grid-row:1/span 30;max-width:none;display:flex;flex-direction:column;gap:20px;position:sticky;top:96px}
  #today #homeWater{margin:0 auto}
  #eat{display:grid;grid-template-columns:minmax(0,660px) minmax(340px,1fr);column-gap:60px;align-items:start}
  #eat>*{grid-column:1;max-width:660px}
  #eat #eatRail{grid-column:2;grid-row:1/span 30;max-width:none;display:flex;flex-direction:column;gap:0;position:sticky;top:96px}
  #ask .chatbox{min-height:340px}
}/* THE BODY, SMALL. One quiet anatomical mark: what this week trained, what
   today will hit, what a finished workout just lit up. */

#today{position:relative}
.tsumbody{display:flex;justify-content:center;margin:4px 0 12px}
.tsumbody svg{width:92px}
@media (prefers-reduced-motion: no-preference){
  .tsumbody .bm{opacity:0;animation:bodyIn .5s var(--ease) forwards}
  .tsumbody .bm:nth-of-type(2){animation-delay:.08s}
  .tsumbody .bm:nth-of-type(3){animation-delay:.16s}
  .tsumbody .bm:nth-of-type(4){animation-delay:.24s}
  .tsumbody .bm:nth-of-type(5){animation-delay:.32s}
  .tsumbody .bm:nth-of-type(6){animation-delay:.4s}
  .tsumbody .bm:nth-of-type(7){animation-delay:.48s}
  .tsumbody .bm:nth-of-type(8){animation-delay:.56s}
  .tsumbody .bm:nth-of-type(9){animation-delay:.64s}
}
@keyframes bodyIn{to{opacity:1}}
.bquick{flex-wrap:wrap}/* SECONDARY ACTIONS LOOK TAPPABLE. A control that changes the workout is a
   surface with a shape, never a grey footnote. Truly rare doors stay quiet. */

.repbig{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);padding:13px;font-size:14.5px;font-weight:700;color:var(--ink);box-shadow:var(--shadow-1);text-decoration:none!important}
.repup{color:var(--accent);font-weight:700;font-size:14px}
.sess-foot .unkrow{border:1px solid var(--hair);border-radius:var(--r-md);color:var(--ink-2);font-weight:700;font-size:14px;padding:12px}
.wsmall{display:flex;justify-content:center;gap:8px;margin-top:14px}
.wsmall button{border:1px solid var(--hair);background:var(--surface);border-radius:var(--r-pill);padding:9px 14px;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums}
.wsmall button:active{transform:scale(.95)}
/* MOTION, TWO SPEEDS. Screens and messages arrive with a fast functional
   slide; the workout takes the stage with slightly more presence. Nothing
   ever waits on an animation, and reduced motion gets none of it. */
@media (prefers-reduced-motion: no-preference){
  .sess.on{animation:sessIn .32s var(--ease)}
  section:not(.hide){animation:tabIn .2s var(--ease)}
  .cmsg{animation:tabIn .24s var(--ease)}
}
@keyframes sessIn{from{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:none}}
@keyframes tabIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.bcopy{all:unset;cursor:pointer;color:var(--accent);font-weight:700}
.rings.four{gap:4px}
.rings.four .ring{max-width:88px}
.rings.four .ring-c b{font-size:15px}
.rings.four .ring-c small{font-size:var(--ui-meta,14px);letter-spacing:.12em}
.ring-c .tg{font-size:var(--ui-meta,14px);letter-spacing:.02em;text-transform:none;color:var(--ink-4);font-variant-numeric:tabular-nums}
.whyrow{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.whyrow .wr-l{font-size:var(--ui-meta,14px);font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:5px 11px}
.whyrow .wr-l.est{color:var(--ink-2);background:var(--surface-strong)}
.whyrow .wr-b{all:unset;cursor:pointer;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--hair);padding:4px}
.whyrow .wr-b.acc{color:var(--accent);text-decoration:none;border:1px solid var(--accent-soft);border-radius:999px;padding:5px 12px}
#fdlgP{white-space:pre-line}
.es-rings{display:flex;justify-content:center;gap:8px}
.es-rings i{width:34px;height:34px;border-radius:50%;border:3px solid var(--accent-soft)}
.es-rings i:nth-child(1){border-top-color:var(--accent)}
.es-rings i:nth-child(2){border-top-color:var(--accent);border-right-color:var(--accent)}
.es-rings i:nth-child(3){border-color:var(--accent);border-bottom-color:var(--accent-soft)}
.es-rings i:nth-child(4){border-color:var(--accent)}
@media (max-width:359px){.rings.four .ring-c b{font-size:var(--ui-meta,14px)}}/* THE AI CORE. auxe is a small dimensional object, not a chat bubble with a
   name: layered rings that idle calmly, spin up while thinking, and settle
   when the answer lands. Pure CSS, nothing to load, honest about its states. */

.acore{position:relative;width:58px;height:58px;margin:8px auto 4px}
.acore span{position:absolute;inset:0;border-radius:18px;border:1.5px solid var(--accent);opacity:.3}
.acore .ac-r2{inset:8px;border-radius:14px;opacity:.5}
.acore .ac-r3{inset:16px;border-radius:10px;opacity:.75}
.acore .ac-dot{inset:25px;border-radius:50%;background:var(--accent);border:none;opacity:1}
@media (prefers-reduced-motion: no-preference){
  .acore .ac-r1{animation:acSpin 16s linear infinite}
  .acore .ac-r2{animation:acSpin 11s linear infinite reverse}
  .acore .ac-r3{animation:acSpin 7s linear infinite}
  .acore .ac-dot{animation:acBreathe 3.4s var(--ease) infinite}
  .acore.think .ac-r1{animation-duration:2.6s}
  .acore.think .ac-r2{animation-duration:1.9s}
  .acore.think .ac-r3{animation-duration:1.2s}
  .acore.think .ac-dot{animation-duration:.9s}
  .acore.settle .ac-dot{animation:acSettle .6s var(--ease)}
}
@keyframes acSpin{to{transform:rotate(360deg)}}
@keyframes acBreathe{50%{transform:scale(.8);opacity:.75}}
@keyframes acSettle{40%{transform:scale(1.4)}}/* thinking is a live signal, not three dots */

.wave{display:inline-flex;align-items:center;gap:3px;height:16px;padding:0 4px}
.wave i{width:3px;height:6px;border-radius:2px;background:var(--accent)}
@media (prefers-reduced-motion: no-preference){
  .wave i{animation:wv 1s var(--ease) infinite}
  .wave i:nth-child(2){animation-delay:.12s}
  .wave i:nth-child(3){animation-delay:.24s}
  .wave i:nth-child(4){animation-delay:.36s}
  .wave i:nth-child(5){animation-delay:.48s}
}
@keyframes wv{50%{height:15px}}/* a proposal from auxe is a card with an Apply, never buried prose */

.cact{align-self:stretch;background:var(--surface);border:1px solid var(--accent-soft);border-left:3px solid var(--accent);border-radius:var(--r-md);padding:14px 15px;box-shadow:var(--shadow-1)}
.cact .ca-h{font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.cact .ca-line{font-size:14px;font-weight:600;padding:3px 0}
.cact .ca-foot{display:flex;gap:10px;margin-top:12px}
.cact.done{border-left-color:var(--ok)}
.cact.done .ca-h{color:var(--ok)}
.cact.done .ca-line{color:var(--ink-2)}
@media (prefers-reduced-motion: no-preference){ .cact{animation:tabIn .24s var(--ease)} }
.df-pr.imp .pw{color:var(--ok)}
#homeDone .hd-check{width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;margin-bottom:10px}
#homeDone .hd-t{font-size:17px;font-weight:800;letter-spacing:-.01em}
#homeDone .hd-m{font-size:var(--ui-meta,14px);color:var(--ink-2);font-weight:600;margin-top:4px}
#homeDone .hd-line{font-size:var(--ui-meta,14px);color:var(--ok);font-weight:600;margin-top:8px}
@keyframes vpulse{40%{transform:scale(1.16)}}/* -- overview marks -- */


.ovm{flex:none;width:26px;text-align:center;font-size:15px;font-weight:700}
.ovm.done{color:var(--accent)}
.ovm.now{color:var(--accent)}
.ovm.todo{color:var(--ink-4)}/* -- the type floor rises: quiet is fine, illegible is not -- */


.bex .m,.rept .m,.hrow .m{font-size:var(--ui-meta,14px)}
.lift .lsub{font-size:var(--ui-meta,14px)}
.bgrp{font-size:var(--ui-meta,14px)}
.ltarget{font-size:var(--ui-meta,14px);padding:6px 12px}
.tgt .tgtline{font-size:var(--ui-meta,14px)}
.chartnote{font-size:var(--ui-meta,14px)}
.note{font-size:var(--ui-meta,14px)}
.estnote{font-size:var(--ui-meta,14px);letter-spacing:0}
.meal .mac{font-size:var(--ui-meta,14px)}
.xfood .xm{font-size:var(--ui-meta,14px)}
.fr .frm{font-size:var(--ui-meta,14px)}
.ldots i{width:8px;height:8px}
.ldots b{font-size:var(--ui-meta,14px)}
.lift .nm{font-size:16px}
.bex .n{font-size:15.5px}
.schip b{font-size:var(--ui-meta,14px)}
.schip i{font-size:var(--ui-meta,14px)}
.hrow .hd{font-size:var(--ui-meta,14px)}
.hrow .he small{font-size:var(--ui-meta,14px)}
.e1line,.volline{font-size:var(--ui-meta,14px)}
.mgtop span{font-size:var(--ui-meta,14px)}
.mgnote{font-size:var(--ui-meta,14px)}
.daybtn-sub{font-size:var(--ui-meta,14px)}
.bday .dd{font-size:var(--ui-meta,14px)}
.bcnt{font-size:var(--ui-meta,14px)}
.homeline .hl-t{font-size:14px}
.floatbar .rt-l{font-size:var(--ui-meta,14px)}
.cmsg.did{font-size:var(--ui-meta,14px)}
.tabs button{font-size:var(--ui-meta,14px)}
.wkday em{font-size:var(--ui-meta,14px)}
.wkday b{font-size:var(--ui-meta,14px)}
.startnote{font-size:var(--ui-meta,14px)}
.fsnote{font-size:var(--ui-meta,14px)}
.lhint{font-size:var(--ui-meta,14px)}
.setfoot .hint{font-size:var(--ui-meta,14px)}
.padnote{font-size:var(--ui-meta,14px)}
@media (max-width:374px){#sessRepRow .rep{font-size:21px;padding:17px 0}}/* -- Training balance: the body, in training language -- */


.balwrap{display:flex;justify-content:center;gap:18px}
.balwrap figure{margin:0;flex:1;max-width:170px;text-align:center}
.balwrap svg{width:100%;height:auto;display:block}
.balwrap figcaption{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:4px}
.balwrap .sil circle,.balwrap .sil rect{fill:var(--surface-subtle)}
.bm{transition:fill var(--t-norm) var(--ease)}
.bm,.bm-ok{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.2}
.bm-up{fill:var(--accent);stroke:none}
.bm-low{fill:rgba(196,134,24,.28);stroke:var(--warn);stroke-width:1.2}
.bm-none{fill:var(--surface-strong);stroke:none}
.ballegend{display:flex;flex-wrap:wrap;gap:7px 16px;justify-content:center;margin-top:14px}
.ballegend span{display:inline-flex;align-items:center;gap:6px;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2)}
.ballegend i{width:11px;height:11px;border-radius:4px;display:block}
.ballegend i.bm-up{background:var(--accent)}
.ballegend i.bm-ok{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.ballegend i.bm-low{background:rgba(196,134,24,.28);box-shadow:inset 0 0 0 1px var(--warn)}
.ballegend i.bm-none{background:var(--surface-strong)}
.ballist{margin-top:16px;padding-top:14px;border-top:1px solid var(--hair-2)}
.ballist em{display:block;font-style:normal;font-size:var(--ui-meta,14px);font-weight:700;color:var(--accent);margin-bottom:6px}
.ballist.warn2 em{color:var(--warn)}
.ballist button{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;
  background:none;border:none;font-family:var(--sans);padding:8px 2px;cursor:pointer;color:var(--ink);
  border-bottom:1px solid var(--hair-2)}
.ballist button:last-child{border-bottom:none}
.ballist button b{font-size:14.5px;font-weight:700}
.ballist button span{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}/* ============================================================
   CERAMIC FROST. The environment: a bright, cool light with icy glows,
   frosted translucent surfaces with a white edge light, ceramic-blue
   actions, and the body, the load and the food as objects with real
   material. Light theme only; dark keeps its own room.
   ============================================================ */


:root:not([data-theme="dark"]){
  --bg:#F8F7F4; --surface:#FFFFFF; --surface-subtle:#F4F3F0; --surface-strong:#EAE9E6;
  --ink:#0E1522; --ink-2:#3E4859; --ink-3:#5A6577; --ink-4:#6E7A8C;
  --hairline:rgba(86,87,88,.10); --hair:rgba(86,87,88,.15); --hair-2:rgba(86,87,88,.07);
  --accent:#8792A2; --accent-hover:#8792A2; --accent-soft:#E9ECF1; --accent-ink:#FFFFFF;
  --shadow-1:0 1px 2px rgba(66,67,68,.05),0 14px 34px -18px rgba(66,67,68,.30);
  --shadow-2:0 18px 44px -14px rgba(66,67,68,.38);
  --obj-grad:linear-gradient(180deg,#FFFFFF 0%,#F4F3F0 100%);
  --obj-shadow:0 1px 0 rgba(255,255,255,1) inset,0 -1px 0 rgba(86,87,88,.08) inset,0 1px 2px rgba(66,67,68,.06),0 8px 18px -10px rgba(66,67,68,.28);
  --obj-hi:#FBFAF7; --obj-lo:#D0D1D2; --obj-edge:rgba(86,87,88,.32);
  --frost:rgba(255,255,255,.80); --frost-edge:rgba(255,255,255,.95)}
.s-shi{stop-color:#FFFFFF}.s-slo{stop-color:#E2E3E4}.s-sfhi{stop-color:#F0F6FD}.s-sflo{stop-color:#DDDEDF}
:root[data-theme="dark"] .s-shi{stop-color:#2D2E2F}:root[data-theme="dark"] .s-slo{stop-color:#1C1D1E}
:root[data-theme="dark"] .s-sfhi{stop-color:#444546}:root[data-theme="dark"] .s-sflo{stop-color:#323334}
:root:not([data-theme="dark"]) body.pm-premium{
  background:
    radial-gradient(900px 560px at 50% -12%, #FFFFFF 0%, rgba(255,255,255,0) 62%),
    radial-gradient(720px 520px at 105% 18%, #E7E8E9 0%, rgba(231,232,233,0) 62%),
    radial-gradient(640px 480px at -8% 70%, #E7F0FB 0%, rgba(231,240,251,0) 60%),
    linear-gradient(180deg,#FBFAF7 0%,#F4F3F0 100%);
  background-attachment:fixed}/* -- frosted surfaces: translucent, edge-lit, cool shadow -- */

:root:not([data-theme="dark"]) body.pm-premium .card,:root:not([data-theme="dark"]) body.pm-premium .srcard,
:root:not([data-theme="dark"]) body.pm-premium .cact,:root:not([data-theme="dark"]) body.pm-premium .homeline,
:root:not([data-theme="dark"]) body.pm-premium .adaptcard,:root:not([data-theme="dark"]) body.pm-premium .sheet,
:root:not([data-theme="dark"]) body.pm-premium .fdlg-card,:root:not([data-theme="dark"]) body.pm-premium .tbub,
:root:not([data-theme="dark"]) body.pm-premium .thello,:root:not([data-theme="dark"]) body.pm-premium .cmsg.coach,
:root:not([data-theme="dark"]) body.pm-premium .rept,:root:not([data-theme="dark"]) body.pm-premium .stopt{
  background:var(--frost);-webkit-backdrop-filter:blur(18px) saturate(1.25);backdrop-filter:blur(18px) saturate(1.25);
  border:1px solid var(--frost-edge);box-shadow:0 1px 0 #fff inset,var(--shadow-1)}
:root:not([data-theme="dark"]) body.pm-premium .rept{border-radius:16px;margin-bottom:8px;padding:14px 14px;border-bottom:1px solid var(--frost-edge)}
:root:not([data-theme="dark"]) body.pm-premium #repeatList,:root:not([data-theme="dark"]) body.pm-premium #starterList{background:none;box-shadow:none;border:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0}/* -- the dock and the desktop bar are frosted glass -- */

:root:not([data-theme="dark"]) body.pm-premium .tabs{background:rgba(255,255,255,.99);-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3);
  border-top:1px solid rgba(255,255,255,.95);box-shadow:0 -12px 30px -20px rgba(66,67,68,.35)}
:root:not([data-theme="dark"]) body.pm-premium .topnav{background:rgba(255,255,255,.74);-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3);border-bottom:1px solid rgba(255,255,255,.95)}/* -- actions are ceramic blue -- */

:root:not([data-theme="dark"]) body.pm-premium .btn.acc{background:linear-gradient(180deg,rgba(255,255,255,0.20) 0%,rgba(255,255,255,0.00) 100%),linear-gradient(#A7CFF2,#A7CFF2);
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 -2px 0 rgba(46,47,48,.28) inset,0 12px 26px -10px rgba(135,146,162,.7)}
:root:not([data-theme="dark"]) body.pm-premium .btn.acc:active{box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 3px 8px -4px rgba(135,146,162,.5)}
:root:not([data-theme="dark"]) body.pm-premium .btn:not(.acc):not(.ghost){background:linear-gradient(180deg,#323334,#131415)}/* -- less air, more substance -- */

body.pm-premium .col{padding-top:44px}
body.pm-premium .sec{margin-top:22px}/* ============================================================
   HOME: the body is the hero
   ============================================================ */

.hero{position:relative;display:flex;align-items:flex-end;gap:12px;margin:0 0 16px;padding:18px 16px 14px 18px;border-radius:28px;overflow:hidden;
  background:linear-gradient(150deg,rgba(255,255,255,.92) 0%,rgba(239,238,235,.88) 100%);
  border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 20px 44px -20px rgba(66,67,68,.38)}
.hero::before{content:none}
.hero-t{flex:1;min-width:0;position:relative}
.hero h1{margin-top:6px}
.hero .homesub{margin-top:4px}
.hero-prog{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.hero-prog.hide{display:none}
.hp{display:inline-flex;align-items:center;gap:5px;background:var(--ceramic);box-shadow:var(--cer-shadow);border-radius:999px;padding:7px 12px;
  font-size:var(--ui-meta,14px);font-weight:700;color:var(--cer-ink);white-space:nowrap}
.hp b{font-size:14px}
:root[data-theme="dark"] .hero{background:linear-gradient(150deg,rgba(43,44,45,.9),rgba(31,32,33,.9));border-color:rgba(255,255,255,.08)}
@media (min-width:1140px){
  .hero{padding:28px 28px 22px;min-height:300px;align-items:center}
  .hero h1{font-size:54px}
  .hero-prog{margin-top:16px}
  .hp{font-size:14px;padding:9px 15px}
}/* the figure, everywhere: a frosted white body, ceramic where it is lit */

body.pm-premium .sil circle,body.pm-premium .sil rect{fill:url(#silG);stroke:rgba(135,146,162,.28);stroke-width:1}
body.pm-premium .bm-none{fill:url(#silG);stroke:rgba(135,146,162,.2);stroke-width:.8}
body.pm-premium .bm-ok{fill:url(#cerSoft);stroke:var(--cer-edge);stroke-width:1}
body.pm-premium .bm-up{fill:url(#cerG);stroke:var(--cer-edge);stroke-width:1.2}
body.pm-premium .balwrap figure svg{width:100%;max-width:170px}
body.pm-premium .srfig{width:56px}
body.pm-premium .sr-fig{filter:none}
body.pm-premium .sess-mini{width:52px}/* lift rows carry a ceramic glyph tile */

body.pm-premium .lglyph{width:46px;height:46px;border-radius:14px;background:var(--ceramic);box-shadow:var(--cer-shadow)}
body.pm-premium .lglyph svg{stroke:var(--cer-ink)}
body.pm-premium .lift.done .lglyph{background:linear-gradient(180deg,#323334,#131415)}
body.pm-premium .lift.done .lglyph svg{stroke:#fff}/* ============================================================
   WORKOUT: the cockpit is a frosted slab with the load on it
   ============================================================ */

:root:not([data-theme="dark"]) body.pm-premium .sess{background:
    radial-gradient(800px 500px at 50% -10%, #FFFFFF 0%, rgba(255,255,255,0) 60%),
    radial-gradient(600px 480px at 105% 30%, #E7E8E9 0%, rgba(231,232,233,0) 60%),
    linear-gradient(180deg,#FBFAF7,#F4F3F0)}
body.pm-premium .sess-ws{border-radius:26px;padding:14px 16px;background:var(--frost);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--frost-edge);
  box-shadow:0 1px 0 #fff inset,0 18px 40px -22px rgba(66,67,68,.35)}
:root[data-theme="dark"] body.pm-premium .sess-ws{background:rgba(32,33,34,.8);border-color:rgba(255,255,255,.06)}
.runload{height:54px;margin:12px auto 0;max-width:300px}
.runload.hide{display:none}
body.pm-premium .sess-clock.runclock{margin-top:6px}
body.pm-premium .runw{background:var(--ceramic);box-shadow:var(--cer-shadow);color:var(--cer-ink)}
body.pm-premium .runw i{color:var(--cer-ink);opacity:.8}
body.pm-premium .trio button{background:linear-gradient(180deg,#FFFFFF,#F4F3F0)}
body.pm-premium .wbig-step{background:var(--ceramic);box-shadow:var(--cer-shadow);color:var(--cer-ink)}
body.pm-premium .sess-ctx{border-top-color:rgba(86,87,88,.12)}
body.pm-premium #sessRest .rf-word{color:var(--cer-ink)}
body.pm-premium #sessRest .rf-ring i{background:linear-gradient(90deg,#D3D4D5,#8792A2)}
body.pm-premium .sess-bar i{background:linear-gradient(90deg,#AEAFB0,#8792A2)}/* ============================================================
   NUTRITION: fuel as an object, food as tiles, water as glass
   ============================================================ */

:root:not([data-theme="dark"]) body.pm-premium .rings-card{background:linear-gradient(160deg,rgba(255,255,255,.95) 0%,rgba(238,237,234,.9) 100%)}
.fuelobj{width:96px;height:96px;margin:-2px auto 4px;filter:drop-shadow(0 12px 16px rgba(95,96,97,.28))}
.fuelobj .fi{width:96px;height:96px;vertical-align:0}
body.pm-premium .ring .ra{stroke:var(--accent)}
body.pm-premium .ring .rt{stroke:rgba(86,87,88,.12)}
body.pm-premium .ring-c b{font-size:20px}
body.pm-premium .quickbar .chips{display:grid;grid-template-columns:1fr 1fr;gap:10px}
body.pm-premium .quickbar .chipbtn{min-height:66px;padding:10px 12px 10px 10px;background:linear-gradient(180deg,#FFFFFF,#F4F3F0)}
body.pm-premium .quickbar .chipbtn .fi{width:48px;height:48px}
body.pm-premium .fh{background:var(--ceramic);box-shadow:var(--cer-shadow);color:var(--cer-ink);min-height:92px;justify-content:center}
body.pm-premium .fh svg{width:30px;height:30px;stroke:var(--cer-ink)}
body.pm-premium .fh b{color:var(--cer-ink)}
body.pm-premium .fh span{color:var(--cer-ink);opacity:.75}
body.pm-premium .fr .fi,body.pm-premium .srrow .fi,body.pm-premium .xfood .fi{width:44px;height:44px}
body.pm-premium .vessel{width:66px;height:120px;border:1.5px solid rgba(255,255,255,.98);border-radius:16px 16px 22px 22px;
  background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(238,237,234,.8));
  box-shadow:inset 0 0 0 1px rgba(116,117,118,.16),inset 0 -6px 12px rgba(146,147,148,.15),0 12px 22px -12px rgba(66,67,68,.4)}
body.pm-premium .vessel i{background:linear-gradient(180deg,#D7D8D9 0%,#A4A5A6 100%);opacity:.95;border-radius:0 0 20px 20px}
body.pm-premium .vessel i::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:rgba(255,255,255,.7);border-radius:2px}
body.pm-premium .wnum b{font-size:32px}/* ============================================================
   PROFILE: tiles, not an accordion
   ============================================================ */

:root:not([data-theme="dark"]) body.pm-premium #profStats{background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(238,237,234,.9))}
body.pm-premium .reveal-h{background:var(--frost);border:1px solid var(--frost-edge);border-radius:20px;padding:15px 16px;
  box-shadow:0 1px 0 #fff inset,var(--shadow-1);margin-bottom:12px;transition:transform var(--t-micro) var(--ease)}
body.pm-premium .reveal-h:active{transform:scale(.99)}
body.pm-premium .reveal-h h2 .fi{width:40px;height:40px;vertical-align:-12px;margin-right:12px}
body.pm-premium .reveal-body{padding:0 4px 8px}
body.pm-premium .reveal.open .reveal-h{margin-bottom:14px}/* the coach's core is a bigger ceramic object */

body.pm-premium .acore{width:76px;height:76px;margin:10px auto 6px}
body.pm-premium .acore .ac-dot{inset:30px}/* search pill and the emblem row */

body.pm-premium .srpill{background:var(--frost);border:1px solid var(--frost-edge)}/* ============================================================
   TOWARD THE BOARDS. Charcoal controls, one icy-blue highlight, the
   body as a stage with the day's module on it, a weekly ring with day
   bars, stat tiles, a set strip in the cockpit, and a meal hero.
   ============================================================ */


:root:not([data-theme="dark"]){--charcoal:linear-gradient(180deg,#333435 0%,#1A1B1C 100%);--sky:#A7CFF2;--sky-lo:#8EBFE8;--sky-soft:#EEEDEA}
:root:not([data-theme="dark"]) .s-chi{stop-color:#E3EAF1}:root:not([data-theme="dark"]) .s-cmid{stop-color:#8792A2}:root:not([data-theme="dark"]) .s-clo{stop-color:#8792A2}
:root:not([data-theme="dark"]) body.pm-premium .btn.acc,:root:not([data-theme="dark"]) body.pm-premium .btn:not(.ghost){
  background:var(--charcoal);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 -2px 0 rgba(0,0,0,.35) inset,0 14px 26px -12px rgba(30,31,33,.6)}/* glow dot on primary buttons removed: decoration, not function */

:root:not([data-theme="dark"]) body.pm-premium .wbig-step,:root:not([data-theme="dark"]) body.pm-premium .wt .wstep{
  background:var(--charcoal);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.16) inset,0 -2px 0 rgba(0,0,0,.35) inset,0 10px 20px -10px rgba(30,31,33,.6)}
body.pm-premium .wbig-step{width:64px;height:64px;font-size:32px}
:root:not([data-theme="dark"]) body.pm-premium .runw{background:var(--charcoal);color:#fff}
:root:not([data-theme="dark"]) body.pm-premium .runw i{color:var(--sky);opacity:1}
:root:not([data-theme="dark"]) body.pm-premium .reprow .rep.aim{background:var(--charcoal);color:#fff}
:root:not([data-theme="dark"]) body.pm-premium .sess-bar i,:root:not([data-theme="dark"]) body.pm-premium #sessRest .rf-ring i{background:linear-gradient(90deg,var(--sky),var(--sky-lo))}
:root:not([data-theme="dark"]) body.pm-premium .ring .ra{stroke:var(--sky-lo)}
:root:not([data-theme="dark"]) body.pm-premium .tabs button.on,:root:not([data-theme="dark"]) body.pm-premium .tn-tabs button.on{color:var(--sky-lo)}/* -- home hero: the stage -- */

.hero{display:block;padding:16px 18px 16px}
.hero-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.hero h1{margin-top:12px;font-size:clamp(30px,8vw,38px)}
.hero .homesub{margin-top:4px;font-size:14.5px}
.hero-week{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:0;padding:12px 14px;border-radius:18px;background:var(--frost);border:1px solid var(--frost-edge);box-shadow:0 1px 0 #fff inset,var(--shadow-1)}
.hw-days{width:100%;justify-content:space-between}
.hero-week.hide{display:none}
.hw-ring{position:relative;width:60px;height:60px;flex:none}
.hw-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.hw-ring .t{fill:none;stroke:rgba(86,87,88,.12);stroke-width:6}
.hw-ring .a{fill:none;stroke:var(--sky-lo);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .8s var(--ease)}
.hw-c{position:absolute;inset:0;display:flex;align-items:baseline;justify-content:center;gap:2px}
.hw-c b{font-size:17px;font-weight:800}.hw-c span{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3)}
.hw-t{flex:1;min-width:0}
.hw-t b{display:block;font-size:14.5px;font-weight:800}.hw-t span{display:block;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:2px}
.hw-days{display:flex;gap:5px;flex:none}
.hw-days i{display:flex;flex-direction:column;align-items:center;gap:4px;font-style:normal;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-4);width:14px}
.hw-days i b{display:block;width:6px;height:22px;border-radius:3px;background:rgba(86,87,88,.14)}
.hw-days i.on b{background:linear-gradient(180deg,var(--sky),var(--sky-lo));height:30px}
.hw-days i.today{color:var(--ink)}
.stattiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 0}
.stattiles.hide{display:none}
.st{background:var(--frost);border:1px solid var(--frost-edge);border-radius:18px;padding:12px 12px 11px;box-shadow:0 1px 0 #fff inset,var(--shadow-1);min-width:0}
.st span{display:block;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3)}
.st b{display:block;font-size:22px;font-weight:800;letter-spacing:-.02em;margin-top:3px;font-variant-numeric:tabular-nums;white-space:nowrap}
.st b i{font-style:normal;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);margin-left:3px}
.st em{display:block;font-style:normal;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);margin-top:2px}
.st em.dn{color:var(--sky-lo)}.st em.up{color:var(--ink-2)}
@media (max-width:359px){.stattiles{grid-template-columns:1fr 1fr}}
@media (min-width:1140px){
  .hero{padding:26px 28px 22px;min-height:0}
  .hw-days{width:auto;margin-left:auto}
  .hero-week{padding:16px 18px}.hw-ring{width:72px;height:72px}
  .stattiles{gap:14px}.st b{font-size:28px}
}/* -- the workout tab's face -- */

.wkhero{display:flex;align-items:center;gap:14px;margin:12px 0 18px;padding:18px 18px 16px;border-radius:24px;position:relative;overflow:hidden;
  background:linear-gradient(150deg,rgba(255,255,255,.94) 0%,rgba(238,237,234,.9) 100%);border:1px solid var(--frost-edge);box-shadow:0 1px 0 #fff inset,0 18px 40px -20px rgba(66,67,68,.4)}
.wkhero.hide{display:none}
.wkhero::before{content:none}
.wh-t{flex:1;min-width:0;position:relative}
.wh-k{display:block;font-size:24px;font-weight:800;letter-spacing:-.02em}
.wh-n{display:flex;align-items:baseline;gap:4px 5px;flex-wrap:nowrap;white-space:nowrap;margin-top:8px;font-variant-numeric:tabular-nums}
.wh-n b{font-size:19px;font-weight:800}.wh-n span{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);margin-right:6px}
.wh-m{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.wh-m i{font-style:normal;font-size:var(--ui-meta,14px);font-weight:700;color:var(--cer-ink);background:var(--ceramic);box-shadow:var(--cer-shadow);border-radius:999px;padding:6px 11px}
.wh-v{flex:none;width:132px;position:relative;display:flex;flex-direction:column;align-items:center;gap:8px}
.wh-body{width:104px}
.wh-body svg{width:100%;display:block}
.wh-load{width:132px;height:40px}.wh-load svg{width:100%;height:100%;overflow:visible}
.wh-ex{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.wh-ex span{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);background:var(--frost);border:1px solid var(--frost-edge);box-shadow:var(--obj-shadow);border-radius:999px;padding:6px 11px}
.wh-ex span.done{color:var(--cer-ink);background:var(--ceramic);box-shadow:var(--cer-shadow)}
@media (min-width:900px){.wh-n span{font-size:14px}.wh-m i{font-size:var(--ui-meta,14px);padding:7px 13px}}/* -- cockpit set strip -- */

.setstrip{display:flex;gap:8px;margin-top:12px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.setstrip::-webkit-scrollbar{display:none}
.setstrip i{flex:1 0 auto;min-width:62px;display:flex;flex-direction:column;align-items:center;gap:2px;font-style:normal;border-radius:14px;padding:8px 8px 7px;
  background:var(--frost);border:1px solid var(--frost-edge);box-shadow:0 1px 0 #fff inset,var(--obj-shadow);font-variant-numeric:tabular-nums}
.setstrip i b{font-size:15px;font-weight:800}
.setstrip i span{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);white-space:nowrap}
.setstrip i.done{background:var(--ceramic);box-shadow:var(--cer-shadow)}
.setstrip i.done b,.setstrip i.done span{color:var(--cer-ink)}
:root:not([data-theme="dark"]) .setstrip i.now{background:var(--charcoal);border-color:transparent}
.setstrip i.now b,.setstrip i.now span{color:#fff}
.setstrip i.now span{color:var(--sky)}
.setstrip i.todo{opacity:.7}
/* On a phone the rest state is the tallest; the head already says which
   set just landed, so the strip steps aside there and returns for the set. */
@media (max-height:900px){#sess.resting .setstrip{display:none}}/* -- nutrition meal hero -- */

.mealhero{display:flex;align-items:center;gap:14px;margin:0 0 18px;padding:14px 16px;border-radius:22px;cursor:pointer;
  background:linear-gradient(150deg,rgba(255,255,255,.94),rgba(238,237,234,.9));border:1px solid var(--frost-edge);box-shadow:0 1px 0 #fff inset,0 18px 40px -20px rgba(66,67,68,.4)}
.mealhero.hide{display:none}
.mh-obj{flex:none;width:104px;height:104px;filter:drop-shadow(0 12px 16px rgba(95,96,97,.3))}
.mh-obj .fi{width:104px;height:104px;vertical-align:0}
.mh-t{flex:1;min-width:0}
.mh-k{display:block;font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.mh-t b{display:block;font-size:19px;font-weight:800;letter-spacing:-.02em;margin-top:3px;line-height:1.2}
.mh-m{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2)}
.mh-m i{font-style:normal;display:inline-block;background:var(--ceramic);box-shadow:var(--cer-shadow);color:var(--cer-ink);border-radius:999px;padding:4px 10px;margin-right:8px}
body.pm-premium .kicker.wm .em,body.pm-premium .tn-mark .em{width:26px;height:26px;object-fit:contain}
body.pm-premium .tmark{background:var(--frost);box-shadow:var(--obj-shadow)}
body.pm-premium .tmark .em{width:42px;height:42px;object-fit:contain}/* ============================================================
   FINETUNE. Phase 1 composition pass: the objects are the interface.
   Typography first, then Home, Workout, Live, Nutrition, Balance.
   ============================================================ *//* -- type: confident, readable, fewer tiny tracked labels -- */




body.pm-premium h1{font-size:40px;font-weight:800;letter-spacing:-.03em;line-height:1}
body.pm-premium #todayTitle{font-size:36px}
body.pm-premium .sec-head{margin-bottom:12px}
body.pm-premium .sec-head h2{font-family:var(--sans);font-size:17px;font-weight:800;letter-spacing:-.01em;text-transform:none;color:var(--ink)}
body.pm-premium .sec-head .ix{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);letter-spacing:0;text-transform:none}
body.pm-premium .sub,body.pm-premium .homesub{font-size:16px;font-weight:500;color:var(--ink-2)}
body.pm-premium .quickhead{font-family:var(--sans);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink-2)}
body.pm-premium .sess-ix{font-size:14px;font-weight:700;color:var(--ink-2);letter-spacing:0;text-transform:none}
body.pm-premium .sess-eyebrow{font-size:14px;font-weight:700;color:var(--ink-2);letter-spacing:0;text-transform:none}
body.pm-premium .hb-k{font-size:var(--ui-meta,14px);letter-spacing:.1em;color:var(--ink-3)}/* -- HOME: one stage. The body stands at the left edge, the day floats
   beside it on frosted glass, the week and the numbers sit in the open. -- */


body.pm-premium .hero{padding:18px 16px 14px}
body.pm-premium .hero-week{background:none;border:none;box-shadow:none;padding:6px 2px 0;gap:8px 12px}
body.pm-premium .hw-t b{font-size:15px}
body.pm-premium .hw-t span{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2)}
body.pm-premium .hw-days i{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3)}
body.pm-premium .stattiles{grid-template-columns:repeat(3,1fr);gap:0;margin:2px 0 0;padding-top:12px;border-top:1px solid rgba(86,87,88,.12)}
body.pm-premium .st{background:none;border:none;box-shadow:none;padding:4px 6px 0;text-align:left}
body.pm-premium .st+.st{border-left:1px solid rgba(86,87,88,.12);padding-left:14px}
body.pm-premium .st span{font-size:var(--ui-meta,14px);color:var(--ink-3)}
body.pm-premium .st b{font-size:26px;margin-top:2px}
@media (max-width:359px){}
body.pm-premium .homebanner{min-height:132px;margin-top:12px}
body.pm-premium .srpill{margin-top:12px}

/* -- HOME DESKTOP: a wide stage, then the day beside a real side column -- */
@media (min-width:1140px){
  body.pm-premium #today{grid-template-columns:minmax(0,1fr) 380px;column-gap:48px}
  body.pm-premium #today>.hero{grid-column:1/-1;max-width:none;padding:30px 40px 18px;border-radius:32px;min-height:0}
  body.pm-premium #today .homesub{margin-bottom:6px}
  body.pm-premium #today .hero h1{font-size:54px}
  body.pm-premium #todayTitle{font-size:54px;max-width:14ch}
  body.pm-premium .hero-week{padding:14px 4px 0;gap:12px 18px}
  body.pm-premium .hw-ring{width:80px;height:80px}
  body.pm-premium .hw-t b{font-size:18px}body.pm-premium .hw-t span{font-size:14px}
  body.pm-premium .stattiles{grid-column:3;grid-row:1;grid-template-columns:1fr;gap:0;margin:0;padding:34px 0 0 0;border-top:none;align-self:start}
  body.pm-premium .st{padding:14px 0 16px;border-bottom:1px solid rgba(86,87,88,.14)}
  body.pm-premium .st+.st{border-left:none;padding-left:0}
  body.pm-premium .st span{font-size:14px}
  body.pm-premium .st b{font-size:38px}
  body.pm-premium .st b i{font-size:15px}
  body.pm-premium .st em{font-size:var(--ui-meta,14px)}
  body.pm-premium #todayRail .homebanner{min-height:190px;padding:24px 26px;margin-top:0;max-width:none;border-radius:24px}
  body.pm-premium .hb-h{font-size:28px}
  body.pm-premium #today .srpill{grid-column:1}
  body.pm-premium #today #todayRail{grid-row:2/span 30;top:100px;gap:14px}
  body.pm-premium #todayRail .homeline{padding:18px 20px;font-size:15.5px;line-height:1.5;border-radius:20px;background:var(--frost);border:1px solid var(--frost-edge)}
  body.pm-premium #todayRail .homeline .hl-t{font-size:15.5px}
  body.pm-premium #todayRail .homewater{display:flex;justify-content:space-between;width:100%;box-sizing:border-box;margin:0;padding:16px 20px;font-size:15.5px;font-weight:700;color:var(--ink);background:var(--frost);border:1px solid var(--frost-edge);border-radius:20px}
  body.pm-premium #todayRail #homeMetric{margin:0;padding:16px 20px;text-align:left;font-size:15px;font-weight:600;color:var(--ink-2);background:var(--frost);border:1px solid var(--frost-edge);border-radius:20px}
  body.pm-premium #todayRail #homeDone{margin:0}
}/* -- WORKOUT: the day first, as one composition; analytics fold away -- */



body.pm-premium .wkhero{display:grid;grid-template-columns:minmax(0,1fr) 128px;grid-template-areas:"t v" "s s";gap:0 10px;padding:20px 18px 18px;border-radius:28px;margin:6px 0 18px;overflow:hidden}
body.pm-premium .wkhero::before{display:none}
body.pm-premium .wkhero .wh-t{grid-area:t;display:flex;flex-direction:column;align-items:flex-start}
body.pm-premium .wkhero .wh-v{grid-area:v;width:128px;align-self:start;margin-top:-6px;display:flex;flex-direction:column;align-items:center;gap:6px}
body.pm-premium .wkhero .wh-body{width:120px}
body.pm-premium .wkhero .wh-load{width:120px;height:34px;margin-top:-4px}
body.pm-premium .wh-k{font-size:30px;letter-spacing:-.03em}
body.pm-premium .wh-n{margin-top:6px;flex-wrap:wrap;white-space:normal;row-gap:2px}
body.pm-premium .wh-n b{font-size:22px}body.pm-premium .wh-n span{font-size:var(--ui-meta,14px);color:var(--ink-2)}
body.pm-premium .wh-m{margin-top:12px}
body.pm-premium .wh-m i{font-size:var(--ui-meta,14px)}
body.pm-premium .wkhero .wh-start{margin-top:16px;width:auto;padding-inline:26px}
body.pm-premium .wh-seq{grid-area:s;display:flex;gap:10px;margin:18px -18px 0;padding:14px 18px 0;overflow-x:auto;scrollbar-width:none;border-top:1px solid rgba(86,87,88,.12)}
body.pm-premium .wh-seq::-webkit-scrollbar{display:none}
body.pm-premium .sq{flex:none;width:118px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:none;border:none;padding:0;font:inherit;color:var(--ink);text-align:left;cursor:pointer;position:relative}
body.pm-premium .sq i{font-style:normal;font-size:var(--ui-meta,14px);font-weight:800;color:var(--ink-3);letter-spacing:.06em}
body.pm-premium .sq .sq-obj{display:block;width:100%;height:64px;object-fit:contain;object-position:left center;margin:2px 0 4px}
body.pm-premium .sq .sq-body{display:flex;align-items:center}body.pm-premium .sq .sq-body .body-r,body.pm-premium .sq .sq-body svg{width:38px;height:auto}
body.pm-premium .sq b{font-size:14px;font-weight:700;line-height:1.2}
body.pm-premium .sq span{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
body.pm-premium .sq.done b{color:var(--cer-ink)}body.pm-premium .sq.done i::after{content:" ✓";color:var(--sky-lo)}
body.pm-premium .sq:active{transform:scale(.97)}
body.pm-premium .wk-week{margin-bottom:22px}
body.pm-premium .wk-weekbtns{display:flex;gap:10px;margin-top:12px}
body.pm-premium .wk-weekbtns .btn{margin:0;flex:1}
body.pm-premium .wk-weekbtns .btn.sm{padding:12px 16px}
body.pm-premium .reveal .reveal-h{margin-bottom:0}
body.pm-premium .reveal.open .reveal-h{margin-bottom:12px}
body.pm-premium .reveal-h h2{font-size:17px}
body.pm-premium .reveal-h .chev{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .24s var(--ease)}
body.pm-premium .reveal.open .reveal-h .chev{transform:rotate(180deg)}
body.pm-premium #wkRail .sec{margin-bottom:12px}
body.pm-premium #wkRail #secBalance{margin-bottom:22px}
@media (min-width:1100px){
  body.pm-premium #progress{display:grid;grid-template-columns:minmax(0,1fr) 380px;column-gap:48px;align-items:start}
  body.pm-premium #progress>*{grid-column:1;max-width:none}
  body.pm-premium #progress>.kicker,body.pm-premium #progress>h1{grid-column:1/-1}
  body.pm-premium #progress #wkRail{grid-column:2;grid-row:3/span 30;position:sticky;top:96px}
  body.pm-premium .wkhero{grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"t v" "s s";gap:0 28px;padding:30px 34px 26px;min-height:0}
  body.pm-premium .wkhero .wh-v{grid-area:v;width:320px;display:flex;flex-direction:column;align-items:center;margin-top:-10px;gap:6px}
  body.pm-premium .wkhero .wh-body{width:220px}
  body.pm-premium .wkhero .wh-load{width:280px;height:80px;margin:0}
  body.pm-premium .wh-k{font-size:44px;white-space:nowrap}
  body.pm-premium .wh-n b{font-size:26px}
  body.pm-premium .wh-seq{margin:22px -34px 0;padding:18px 34px 0;gap:14px}
  body.pm-premium .sq{width:150px}body.pm-premium .sq .sq-obj{height:80px}
}/* -- LIVE WORKOUT: the same cockpit, a clearer order -- */



body.pm-premium .sess-mini{width:72px;margin-top:-4px}
body.pm-premium .sess-lift{font-size:clamp(30px,8vw,42px)}
body.pm-premium .sess-ctx{flex-wrap:wrap;white-space:normal;overflow:visible;gap:4px 16px;padding:12px 0 4px}
body.pm-premium .sess-ctx .cx{font-size:14px;line-height:1.35}/* one room, one height: the workspace is as tall as its tallest state so the context strip and the door never move */

body.pm-premium .wsrow{margin-top:14px;align-items:center}
body.pm-premium .wbig b{font-size:clamp(58px,18vw,84px)}
body.pm-premium .wload{display:block;width:100%;margin:2px 0 0}
body.pm-premium .wload .loadvis{max-width:none;width:100%;height:92px;margin:0}
body.pm-premium .wload .lr-bar .lr-barimg{width:100%}
body.pm-premium .wload.hide{display:none}
body.pm-premium .wbig small{display:none}
body.pm-premium .wsmall{margin-top:10px}
body.pm-premium .sess-instr{font-size:14.5px;margin-top:10px}
body.pm-premium #sessWStep.has-hero::before{height:52%;opacity:.5}/* reps: numbers first, the trio quiet until it is chosen */

body.pm-premium .sess-eyebrow#sessRepsEyebrow{font-size:16px;font-weight:800;color:var(--ink)}
body.pm-premium .reprow{gap:8px;margin-top:10px}
body.pm-premium .reprow .rep{font-size:26px;padding:20px 0;border-radius:16px}
body.pm-premium .repmore.repbig{margin-top:10px;padding:10px 14px;font-size:14.5px;font-weight:700;text-decoration:none;background:none;box-shadow:none}
body.pm-premium .trio{gap:8px;margin-top:8px;padding-top:12px;border-top:1px solid rgba(86,87,88,.12)}
body.pm-premium .trio button{background:none;box-shadow:none;padding:6px 2px 4px;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);gap:2px}
body.pm-premium .trio button .fi{width:38px;height:38px}
body.pm-premium .trio button.on{background:var(--sky-soft);color:var(--sky-lo);box-shadow:none;border-radius:14px}
body.pm-premium .repmore#sessMoreT{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);text-decoration:none;padding-top:8px}/* rest: the timer, the next set, one door; the choices under it are quiet rows */

body.pm-premium #sessRest .rf-word{font-size:15px;font-weight:700;color:var(--ink-2)}
body.pm-premium #sessRest .sess-clock{font-size:clamp(84px,24vw,132px)}
body.pm-premium .rf-chips{margin-top:10px}
body.pm-premium .rf-chips button{padding:9px 14px;font-size:var(--ui-meta,14px);background:none;box-shadow:inset 0 0 0 1px rgba(86,87,88,.16)}
body.pm-premium .sess-next{margin-top:12px}
body.pm-premium .rf-nx b{font-size:21px}
body.pm-premium .rf-nx .rf-chg{font-size:var(--ui-meta,14px);color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;padding:6px 0 0;background:none;box-shadow:none;border-radius:0}
body.pm-premium .rf-nx .rf-chg .fi{display:none}
body.pm-premium .door.acc{background:var(--sky-soft);box-shadow:none;border-radius:18px;padding:12px 14px;margin-top:12px}
body.pm-premium .door.acc b{font-size:16px;color:var(--sky-lo)}
body.pm-premium #sessRest .doors{grid-template-columns:1fr 1fr;gap:0 18px;margin-top:6px;padding-top:6px}
body.pm-premium #sessRest .doors .door{background:none;box-shadow:none;padding:8px 0;gap:10px;border-radius:0}
body.pm-premium #sessRest .doors .door .fi{width:30px;height:30px}
body.pm-premium #sessRest .doors .door b{font-size:14px;font-weight:700;color:var(--ink-2)}
body.pm-premium #sessRest .doors .door small{display:none}
body.pm-premium .rf-done{font-size:14px;font-weight:700;color:var(--ok);margin-top:10px}
@media (min-width:900px){
  body.pm-premium .sess.on{grid-template-columns:260px minmax(0,680px) 340px;column-gap:56px}
  body.pm-premium .sr-fig{width:260px}
  body.pm-premium .wload .loadvis{height:110px}
}

@media (max-width:899px){body.pm-premium .sess-ws{min-height:337px}body.pm-premium .sess.resting .sess-ws{min-height:416px}body.pm-premium .wbig b{font-size:clamp(52px,16vw,72px)}body.pm-premium .wload .loadvis{height:60px}body.pm-premium .wsmall{margin-top:6px}body.pm-premium .sess-instr{margin-top:6px;font-size:var(--ui-meta,14px)}body.pm-premium #sessWStep .sess-eyebrow{margin-top:4px}body.pm-premium .wsrow{margin-top:6px}body.pm-premium #sessRest .sess-clock{font-size:clamp(72px,21vw,104px);margin-top:2px}body.pm-premium #sessRest .rf-mid{padding-top:0}body.pm-premium .rf-ring{margin-top:8px}body.pm-premium .rf-chips{margin-top:6px}body.pm-premium .sess-next{margin-top:8px}body.pm-premium .door.acc{margin-top:8px;padding:9px 12px}body.pm-premium #sessRest .doors .door{padding:5px 0}body.pm-premium #sessRest .rf-word{font-size:var(--ui-meta,14px)}body.pm-premium #sessRest .sess-next{margin-top:6px}body.pm-premium #sessRest .rf-ring{margin-top:8px}body.pm-premium #sessRest .sess-over{margin-top:0}body.pm-premium #sessRest .sess-why{margin-top:6px}body.pm-premium #sessWStep .wbig{padding:4px 0}body.pm-premium #sessWStep .sess-instr{margin-top:8px}}/* -- NUTRITION: one instrument, readable words, water with one job -- */



body.pm-premium .rings-card{gap:0;padding:18px 16px 14px}
body.pm-premium .fuelobj{width:120px;height:120px;margin:-4px auto 0}
body.pm-premium .instrument{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:100%;margin-top:6px;padding:12px 6px 10px;max-width:none}
body.pm-premium .instrument .rail{position:absolute;left:8%;right:8%;bottom:34px;height:2px;background:rgba(86,87,88,.16);border-radius:2px}
body.pm-premium .gauge{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;max-width:none;width:auto;height:auto}
body.pm-premium .gauge b{font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}
body.pm-premium .gauge svg{width:44px;height:140px;transform:none;overflow:visible}
body.pm-premium .gauge .rt{stroke:rgba(255,255,255,.95);stroke-width:26;stroke-linecap:round;filter:drop-shadow(0 1px 0 rgba(255,255,255,1)) drop-shadow(0 10px 18px rgba(101,102,103,.28))}
body.pm-premium .gauge .ra{stroke:var(--sky-lo);stroke-width:18;stroke-linecap:round;filter:none;transition:stroke-dashoffset 1.1s var(--ease)}
body.pm-premium .gauge .ra.over{stroke:var(--warn)}
body.pm-premium .gauge span{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink);margin-top:2px}
body.pm-premium .gauge .tg{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);letter-spacing:0;text-transform:none}
body.pm-premium .ring-cap{font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:0;color:var(--ink-2);margin-top:12px;text-align:center;max-width:32ch}
body.pm-premium .whyrow{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:10px}
body.pm-premium .whyrow .wr-l{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink);background:var(--frost);border:1px solid var(--frost-edge);border-radius:999px;padding:8px 14px}
body.pm-premium .whyrow .wr-l.est{color:var(--warn)}
body.pm-premium .whyrow .wr-b.acc{font-size:var(--ui-meta,14px);font-weight:700;padding:8px 14px;border-radius:999px;background:var(--sky-soft);color:var(--sky-lo);border:none}
body.pm-premium .estnote{margin-top:8px}body.pm-premium .estnote.hide{display:none}
body.pm-premium .rings-card .wt{margin-top:14px;padding-top:14px}
body.pm-premium .rings-card .wt label{font-family:var(--sans);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink-2)}
body.pm-premium #eatSub.hide{display:none}
body.pm-premium .mealhero{padding:12px 16px}
body.pm-premium .mh-k{font-size:var(--ui-meta,14px);letter-spacing:.08em}
body.pm-premium .mh-t b{font-size:20px}/* water */

body.pm-premium .wrow2{gap:16px;align-items:center}
body.pm-premium .vessel.vr{width:96px;height:192px}
body.pm-premium .wnum{font-size:26px}body.pm-premium .wnum b{font-size:36px}
body.pm-premium .wtag{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);margin-top:4px}
body.pm-premium .wbtns{margin-top:12px;gap:8px}
body.pm-premium .wbtns button{padding:11px 16px;font-size:14px;color:var(--ink)}
body.pm-premium .wmore{margin-top:10px;background:none;border:none;padding:0;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
body.pm-premium .wopts.hide{display:none}
body.pm-premium .wopts .repmore{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2)}/* suggestions */

body.pm-premium .quickbar .chipbtn{min-height:60px;padding:8px 12px 8px 8px}
body.pm-premium .quickbar .chipbtn .fi{width:44px;height:44px}
body.pm-premium .quickbar .chipbtn b{font-size:14px;line-height:1.2}
body.pm-premium .quickbar .chipbtn .ct>span{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2)}
body.pm-premium .aifnote{display:none}
body.pm-premium .fh{min-height:96px}/* remaining panel, desktop rail only */

body.pm-premium .eatremain{display:none}
@media (min-width:1140px){
  body.pm-premium #eat{grid-template-columns:minmax(0,1fr) 420px;column-gap:48px}
  body.pm-premium #eat>*{max-width:none}
  body.pm-premium #eat #eatRail{gap:18px;top:100px}
  body.pm-premium #eatRail .eatremain{display:block;padding:18px 20px;border-radius:22px;background:var(--frost);border:1px solid var(--frost-edge)}
  body.pm-premium .eatremain .er-h{font-size:15px;font-weight:800;margin-bottom:8px}
  body.pm-premium .eatremain .er-r{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-top:1px solid rgba(86,87,88,.12);font-size:14.5px;font-weight:600;color:var(--ink-2)}
  body.pm-premium .eatremain .er-r b{font-size:22px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
  body.pm-premium .eatremain .er-r b i{font-style:normal;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);margin-left:2px}
  body.pm-premium #eatRail .sec{margin-bottom:0}
  body.pm-premium .rings-card{padding:26px 28px 20px}
  body.pm-premium .fuelobj{width:150px;height:150px}
  body.pm-premium .instrument{padding:16px 24px 12px;gap:18px}
  body.pm-premium .gauge svg{width:56px;height:170px}
  body.pm-premium .gauge b{font-size:28px}
  body.pm-premium .gauge span{font-size:14px}body.pm-premium .gauge .tg{font-size:var(--ui-meta,14px)}
  body.pm-premium .instrument .rail{bottom:40px}
  body.pm-premium .vessel.vr{width:120px;height:240px}
}/* -- nutrition, second look -- */



body.pm-premium .instrument{margin-top:-6px;padding-top:4px}
body.pm-premium .fuelobj{margin-bottom:-6px}
body.pm-premium .quickbar .quickhead,body.pm-premium .xhead{font-family:var(--sans);font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink-2);margin:6px 0 10px}
body.pm-premium .quickbar .cl{font-size:15px}
@media (max-width:640px){body.pm-premium .quickbar .chips{grid-template-columns:1fr}body.pm-premium .quickbar .chipbtn{min-height:64px}body.pm-premium .quickbar .chipbtn .fi{width:48px;height:48px}}/* -- TRAINING BALANCE: the bodies are the component -- */

body.pm-premium .balstage{padding:6px 0 0}
body.pm-premium .balwrap{gap:6px;justify-content:space-between}
body.pm-premium .balwrap figure{max-width:none;flex:1}
body.pm-premium .balwrap.rendered figure .body-r{max-width:none;width:100%}
body.pm-premium .balwrap figcaption{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);margin-top:2px}
body.pm-premium .ballegend{gap:5px 12px;margin-top:10px}
body.pm-premium .ballegend span{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
body.pm-premium .ballegend i{width:9px;height:9px}
body.pm-premium #balNote{display:none}
body.pm-premium #secBalance .ibtn{margin-top:6px}
body.pm-premium .ballist{margin-top:10px;padding-top:10px}
@media (min-width:1100px){
  body.pm-premium .balwrap{gap:10px}
  body.pm-premium .balwrap.rendered figure .body-r{max-width:none}
}/* ============================================================
   BOARD PASS. The concept board is the visual blueprint: editorial type
   for the big moments, deeper ink, the body embedded in the environment,
   the day floating beside it, very few cards. Function untouched.
   ============================================================ *//* -- type: an editorial face for the greeting and the headline moments,
   Sora for every number, control and label -- */




body.pm-premium #todayTitle,body.pm-premium .hb-h,body.pm-premium .wh-k{font-family:var(--display);font-weight:600;letter-spacing:-.012em}
body.pm-premium #todayTitle{font-size:42px;line-height:1.02;margin-top:14px}
body.pm-premium .homesub{font-size:15.5px;font-weight:500;color:var(--ink-2);margin-top:6px}
body.pm-premium .hb-h{font-size:26px;line-height:1.08}/* -- ink: deeper, so white reads as white -- */

:root:not([data-theme="dark"]){--ink:#0A1020;--ink-2:#2E3A4E;--ink-3:#4E5A6E;--ink-4:#66728A;--frost:rgba(255,255,255,.66);--frost-edge:rgba(255,255,255,.92)}
:root:not([data-theme="dark"]) body.pm-premium .card,:root:not([data-theme="dark"]) body.pm-premium .srcard{box-shadow:0 1px 0 #fff inset,0 2px 4px rgba(37,38,39,.04),0 22px 44px -22px rgba(37,38,39,.35)}

/* -- HOME, phone: the stage is the screen. No card around it; the body
   stands in the environment, the day floats beside it, the week and the
   numbers sit below in the open. -- */
@media (max-width:1139px){
  body.pm-premium .hero{margin:-64px -22px 16px;padding:58px 20px 16px;border:none;border-radius:0 0 36px 36px;box-shadow:0 24px 40px -30px rgba(37,38,39,.35)}
  body.pm-premium .hero.has-stage{background:var(--stage) 62% 38%/cover no-repeat,linear-gradient(150deg,#FFFFFF 0%,#EFEEEB 100%)}
  body.pm-premium .hero.has-stage::before{background:linear-gradient(180deg,rgba(255,255,255,.72) 0%,rgba(255,255,255,.34) 32%,rgba(255,255,255,.18) 62%,rgba(251,250,247,.9) 100%)}
  body.pm-premium .hero-week{display:flex;padding:14px 0 0;margin-top:0;gap:8px 14px;border-top:1px solid rgba(86,87,88,.14)}
  body.pm-premium .hw-ring{width:64px;height:64px}
  body.pm-premium .hw-days{width:auto;margin-left:auto;gap:6px}
  body.pm-premium .stattiles{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;padding-top:0;border-top:none}
  body.pm-premium .st{background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.95);border-radius:18px;padding:11px 12px 10px;box-shadow:0 1px 0 #fff inset,0 14px 28px -18px rgba(37,38,39,.4)}
  body.pm-premium .st+.st{border-left:1px solid rgba(255,255,255,.95);padding-left:12px}
  body.pm-premium .st span{font-size:var(--ui-meta,14px)}
  body.pm-premium .st b{font-size:24px}
  body.pm-premium .homebanner{min-height:150px;margin-top:4px;padding:18px 20px}
  body.pm-premium .hb-l{max-width:74%}
}
@media (max-width:359px){}

/* -- HOME, desktop: one stage with anchored regions. The body holds the
   left, the greeting and the day the centre, the numbers and what is next
   the right. -- */
@media (min-width:1140px){
  body.pm-premium #today>.hero{display:grid;grid-template-columns:360px minmax(0,1fr) 284px;grid-template-areas:"top top top" "body h1 h1" "body sub sub" "body card stats";grid-template-rows:auto auto auto 1fr;column-gap:44px;row-gap:0;padding:26px 40px 26px 34px;align-items:start}
  body.pm-premium #today>.hero .hero-top{grid-area:top;margin-bottom:6px}
  body.pm-premium #today>.hero h1{grid-area:h1;margin-top:10px;font-size:62px;max-width:none}
  body.pm-premium #today>.hero .homesub{grid-area:sub;margin:8px 0 0;font-size:17px}
  body.pm-premium .stattiles{grid-area:stats;grid-column:auto;grid-row:auto;grid-template-columns:1fr;gap:10px;margin:0;padding:24px 0 0;border-top:none;align-self:start}
  body.pm-premium .st{background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.95);border-radius:20px;padding:14px 18px 13px;box-shadow:0 1px 0 #fff inset,0 16px 30px -20px rgba(37,38,39,.4);border-bottom:1px solid rgba(255,255,255,.95)}
  body.pm-premium .st b{font-size:34px}
  body.pm-premium #today #todayRail{grid-row:2/span 30}
}/* -- WORKOUT: the training environment, not a card. The day and the
   body stand on the gym floor, the loaded bar spans the stage, the
   sequence is a row of real objects. -- */


body.pm-premium .wkhero{background:none;border:none;box-shadow:none;padding:4px 0 0;margin:2px 0 18px;overflow:visible;border-radius:0;
  grid-template-columns:minmax(0,1fr) 176px;grid-template-areas:"t v" "l l" "s s";gap:0 8px}
body.pm-premium .wkhero .wh-v{width:176px;margin-top:-30px;align-self:start;gap:0}
body.pm-premium .wkhero .wh-body{width:176px;filter:drop-shadow(0 22px 20px rgba(66,67,68,.24))}
body.pm-premium .wkhero .wh-load{grid-area:l;width:100%;height:72px;margin:6px 0 0;position:relative;z-index:1}
body.pm-premium .wkhero .wh-load svg{width:100%;height:100%}
body.pm-premium .wh-k{font-size:38px;line-height:1.02;margin-top:6px}
body.pm-premium .wh-n{margin-top:10px}
body.pm-premium .wh-n b{font-size:20px}body.pm-premium .wh-n span{font-size:var(--ui-meta,14px)}
body.pm-premium .wh-m{margin-top:10px}
body.pm-premium .wh-m i{background:rgba(255,255,255,.7);box-shadow:0 1px 0 #fff inset,0 8px 18px -12px rgba(37,38,39,.4);color:var(--ink);border:1px solid rgba(255,255,255,.95)}
body.pm-premium .wh-m i .mp{color:var(--sky-lo)}
body.pm-premium .wkhero .wh-start{margin-top:16px;padding:15px 22px;font-size:15px;white-space:nowrap}
body.pm-premium .wh-seq{margin:18px -22px 0;padding:0 22px 6px;gap:10px;border-top:none}
body.pm-premium .sq{width:132px;padding:12px 12px 12px;border-radius:22px;background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 18px 34px -20px rgba(37,38,39,.45);gap:2px;transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
body.pm-premium .sq:active{transform:translateY(2px) scale(.98);box-shadow:0 1px 0 #fff inset,0 8px 16px -12px rgba(37,38,39,.45)}
body.pm-premium .sq i{font-size:var(--ui-meta,14px);color:var(--ink-3)}
body.pm-premium .sq .sq-obj{height:84px;object-position:center;margin:4px 0 8px;filter:drop-shadow(0 10px 12px rgba(66,67,68,.22))}
body.pm-premium .sq .sq-bar{display:flex;align-items:center;justify-content:center;width:100%}body.pm-premium .sq .sq-bar svg{width:100%;height:56px;overflow:visible}
body.pm-premium .sq .sq-body .body-r,body.pm-premium .sq .sq-body svg{width:44px}
body.pm-premium .sq b{font-size:14.5px;line-height:1.15}
body.pm-premium .sq span{font-size:var(--ui-meta,14px);color:var(--ink-3)}
body.pm-premium .sq.done{background:var(--sky-soft)}
body.pm-premium .sq.done b{color:var(--ink)}
body.pm-premium .wk-week .sec-head h2{font-size:17px}
@media (max-width:359px){body.pm-premium .wkhero{grid-template-columns:minmax(0,1fr) 140px}body.pm-premium .wkhero .wh-v,body.pm-premium .wkhero .wh-body{width:140px}body.pm-premium .wh-k{font-size:32px}}
@media (min-width:1100px){
  body.pm-premium .wkhero{grid-template-columns:minmax(0,1fr) 300px;gap:0 24px;padding:0;margin:8px 0 22px}
  body.pm-premium .wkhero .wh-v{width:300px;margin-top:-56px}
  body.pm-premium .wkhero .wh-body{width:300px}
  body.pm-premium .wkhero .wh-load{height:96px;margin:-30px 0 0}
  body.pm-premium .wkhero .wh-t{align-self:center;padding-bottom:30px}
  body.pm-premium .wh-k{font-size:60px;margin-top:0}
  body.pm-premium .wh-n{margin-top:14px}body.pm-premium .wh-n b{font-size:26px}body.pm-premium .wh-n span{font-size:15px}
  body.pm-premium .wkhero .wh-start{margin-top:22px;padding:18px 34px;font-size:16px}
  body.pm-premium .wh-seq{margin:20px 0 0;padding:0 0 6px;gap:14px}
  body.pm-premium .sq{width:calc(25% - 11px);min-width:150px;padding:16px 16px 16px}
  body.pm-premium .sq .sq-obj{height:110px}
  body.pm-premium .sq .sq-bar svg{height:70px}
  body.pm-premium .sq b{font-size:16px}body.pm-premium .sq span{font-size:var(--ui-meta,14px)}
  body.pm-premium #progress #wkRail{top:88px}
}/* -- LIVE WORKOUT: the bright instrument. A white Ceramic Frost studio,
   the bar over the bench as the object, deep soft shadows, frosted
   layers, icy blue for the one live thing, charcoal only for the dials,
   the primary action and the chosen number. Flows untouched. -- */


body.pm-premium .sess .sess-ws{background:rgba(255,255,255,.74);-webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2);border:1px solid rgba(255,255,255,.98);
  box-shadow:0 1px 0 #fff inset,0 2px 6px rgba(37,38,39,.05),0 36px 70px -36px rgba(37,38,39,.5)}
body.pm-premium .sess .setstrip i{background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.98);box-shadow:0 1px 0 #fff inset,0 10px 22px -14px rgba(37,38,39,.4)}
:root:not([data-theme="dark"]) body.pm-premium .sess .setstrip i.now{background:linear-gradient(180deg,#BEDCF3 0%,#A7CFF2 100%);border-color:transparent;box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 14px 28px -12px rgba(135,146,162,.75);animation:sqPop .38s var(--ease)}
body.pm-premium .sess .setstrip i.now b,body.pm-premium .sess .setstrip i.now span{color:var(--t-ink,#0A1020)}
@keyframes sqPop{0%{transform:scale(.92)}60%{transform:scale(1.04)}100%{transform:scale(1)}}/* the weight instrument: a big number between two charcoal dials, the load on the bench under it */

body.pm-premium .sess .wbig b{white-space:nowrap;font-size:clamp(56px,16vw,80px)}
:root:not([data-theme="dark"]) body.pm-premium .sess .wbig-step{width:66px;height:66px;font-size:34px;
  box-shadow:0 1px 0 rgba(255,255,255,.22) inset,0 -3px 0 rgba(0,0,0,.42) inset,0 18px 32px -12px rgba(30,31,33,.7);transition:transform .12s var(--ease),box-shadow .12s var(--ease)}
:root:not([data-theme="dark"]) body.pm-premium .sess .wbig-step:active{transform:translateY(3px) scale(.97);box-shadow:0 1px 0 rgba(255,255,255,.16) inset,0 -1px 0 rgba(0,0,0,.4) inset,0 6px 12px -6px rgba(30,31,33,.7)}
body.pm-premium .sess .wsmall button{background:linear-gradient(180deg,#FFFFFF,#F4F3F0);border:1px solid rgba(255,255,255,.98);box-shadow:0 1px 0 #fff inset,0 -1px 0 rgba(86,87,88,.08) inset,0 10px 22px -12px rgba(37,38,39,.45);color:var(--ink);transition:transform .12s var(--ease)}
body.pm-premium .sess .wsmall button:active{transform:translateY(2px) scale(.97)}
body.pm-premium .sess .wload{position:relative}
body.pm-premium .sess .wload.benched,body.pm-premium .sess .runload.benched{padding-top:36px}
body.pm-premium .sess .wl-bench{position:absolute;left:50%;bottom:-8px;width:46%;transform:translateX(-50%);z-index:0;filter:drop-shadow(0 22px 22px rgba(66,67,68,.36));pointer-events:none}
body.pm-premium .sess .wload .loadvis,body.pm-premium .sess .runload svg,body.pm-premium .sess .runload{position:relative;z-index:1}
body.pm-premium .sess .wload .loadvis{filter:drop-shadow(0 18px 20px rgba(66,67,68,.4))}
body.pm-premium .sess .runload{position:relative;height:72px;max-width:none}
body.pm-premium #sessWStep.has-hero::before{display:none}/* the reps: ceramic tiles that press, the aim in charcoal */

body.pm-premium .sess .reprow .rep{background:linear-gradient(180deg,#FFFFFF,#F4F3F0);box-shadow:0 1px 0 #fff inset,0 -1px 0 rgba(86,87,88,.08) inset,0 12px 24px -14px rgba(37,38,39,.45);transition:transform .12s var(--ease)}
body.pm-premium .sess .reprow .rep:active{transform:translateY(2px) scale(.96)}
:root:not([data-theme="dark"]) body.pm-premium .sess .reprow .rep.aim{box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 -2px 0 rgba(0,0,0,.35) inset,0 16px 30px -12px rgba(30,31,33,.7)}/* the one action stays charcoal; the quiet one is frosted glass */

:root:not([data-theme="dark"]) body.pm-premium .sess .btn.acc:active{transform:translateY(2px)}
:root:not([data-theme="dark"]) body.pm-premium .sess .btn.ghost{background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.98);box-shadow:0 1px 0 #fff inset,0 10px 22px -14px rgba(37,38,39,.4)}/* the finish: the editorial moment */

body.pm-premium .sess .df-h{font-family:var(--display);font-weight:600;letter-spacing:-.012em;font-size:38px;line-height:1.05}/* VIDEO. A small ceramic media object under the set line: the lift's
   object as a thumbnail, a charcoal play badge, one word. Secondary to
   the action, intentional, part of the future media system. */

.sess-video{display:inline-flex;align-items:center;gap:9px;margin-top:10px;padding:4px 13px 4px 4px;border-radius:999px;border:1px solid rgba(255,255,255,.98);
  background:linear-gradient(180deg,#FFFFFF,#F4F3F0);box-shadow:0 1px 0 #fff inset,0 -1px 0 rgba(86,87,88,.08) inset,0 10px 22px -12px rgba(37,38,39,.45);
  font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink);cursor:pointer;transition:transform .12s var(--ease),box-shadow .12s var(--ease)}
.sess-video:active{transform:translateY(1px) scale(.97);box-shadow:0 1px 0 #fff inset,0 4px 10px -8px rgba(37,38,39,.45)}
.sess-video.hide{display:none}
.sess-video .sv-th{position:relative;flex:none;width:36px;height:36px;border-radius:50%;background:var(--ceramic);box-shadow:var(--cer-shadow);display:flex;align-items:center;justify-content:center}
.sess-video .sv-th img{width:76%;height:76%;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(66,67,68,.3))}
.sess-video .sv-th svg{width:60%;height:60%}
.sess-video .sv-play{position:absolute;right:-3px;bottom:-3px;width:17px;height:17px;border-radius:50%;background:var(--charcoal,#151617);box-shadow:0 3px 8px rgba(30,31,33,.45),0 0 0 2px #fff}
.sess-video .sv-play::after{content:"";position:absolute;left:6.5px;top:4.5px;border-left:6px solid #fff;border-top:4px solid transparent;border-bottom:4px solid transparent}
.sess-video span{letter-spacing:.01em}
@media (min-width:900px){
  body.pm-premium .sess .sr-fig{filter:drop-shadow(0 30px 28px rgba(66,67,68,.32))}
  body.pm-premium .sess .wbig b{font-size:96px}
  body.pm-premium .sess .wload .loadvis{height:120px}
  body.pm-premium .sess .wl-bench{width:40%;bottom:-6px}
  .sess-video{margin-top:14px}
}
@media (max-width:899px){body.pm-premium .sess-ws{min-height:336px}body.pm-premium .sess.resting .sess-ws{min-height:402px}body.pm-premium .sess .wload .loadvis{height:62px}body.pm-premium .sess .wload.benched{padding-top:24px}body.pm-premium .sess .wl-bench{bottom:-4px;width:42%}body.pm-premium .sess-mini{width:60px;margin-top:0}body.pm-premium .sess .wbig b{font-size:clamp(52px,15vw,72px)}body.pm-premium .sess .wsrow{margin-top:2px}
  body.pm-premium #sessRest .sess-clock{font-size:clamp(64px,18vw,92px);margin-top:0}body.pm-premium #sessRest .rf-ring{margin-top:4px}body.pm-premium #sessRest .rf-chips{margin-top:2px}body.pm-premium #sessRest .sess-next{margin-top:4px}body.pm-premium #sessRest .door.acc{margin-top:4px;padding:7px 12px}body.pm-premium #sessRest .doors .door{padding:3px 0}body.pm-premium #sessRest .doors{margin-top:2px;padding-top:2px}
  body.pm-premium .sess-ctx{min-height:74px;box-sizing:border-box;align-content:flex-start}}/* -- NUTRITION: tracking first, on a more physical instrument. Bigger food
   where food helps, the glass and the tubes with real material, the
   desktop as one workspace with the quick actions and the water beside
   the log. -- */


:root:not([data-theme="dark"]) body.pm-premium .rings-card{background:rgba(255,255,255,.66);-webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 24px 48px -26px rgba(37,38,39,.4)}
body.pm-premium .fuelobj{width:148px;height:148px;margin:-10px auto -2px;filter:drop-shadow(0 18px 20px rgba(66,67,68,.3))}
body.pm-premium .fuelobj .fi{width:148px;height:148px}
body.pm-premium .instrument{margin-top:0;padding-top:8px}
body.pm-premium .gauge svg{width:48px;height:150px}
body.pm-premium .gauge .rt{stroke:rgba(255,255,255,.98);stroke-width:30;filter:drop-shadow(0 1px 0 rgba(255,255,255,1)) drop-shadow(0 12px 22px rgba(91,92,93,.34))}
body.pm-premium .gauge .ra{stroke-width:20;stroke:url(#gaugeIce)}
body.pm-premium .gauge b{font-size:24px}
body.pm-premium .gauge span{font-size:var(--ui-meta,14px)}
body.pm-premium .instrument .rail{display:none}
body.pm-premium .rings-card .wt .wstep{width:40px;height:40px}/* the last meal: the food is the object */

body.pm-premium .mealhero{padding:14px 16px;gap:16px;background:rgba(255,255,255,.66);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.95);border-radius:26px;box-shadow:0 1px 0 #fff inset,0 24px 48px -26px rgba(37,38,39,.4)}
body.pm-premium .mh-obj{width:128px;height:128px;margin:-6px 0 -6px -4px;filter:drop-shadow(0 16px 18px rgba(66,67,68,.3))}
body.pm-premium .mh-obj .fi{width:128px;height:128px}
body.pm-premium .mh-t b{font-size:22px}
body.pm-premium .mh-m{font-size:14px}/* the suggestions and the rows: bigger food, still rows */

body.pm-premium .quickbar .chipbtn{min-height:68px;padding:8px 12px 8px 8px;background:rgba(255,255,255,.7);box-shadow:0 1px 0 #fff inset,0 12px 26px -18px rgba(37,38,39,.4);border:1px solid rgba(255,255,255,.95)}
body.pm-premium .quickbar .chipbtn .fi{width:56px;height:56px}
@media (max-width:640px){body.pm-premium .quickbar .chipbtn{min-height:72px}body.pm-premium .quickbar .chipbtn .fi{width:60px;height:60px}}
body.pm-premium .fr .fi,body.pm-premium .srrow .fi,body.pm-premium .xfood .fi{width:52px;height:52px}
body.pm-premium .fr .frn{font-size:15px}
body.pm-premium .fh{background:rgba(255,255,255,.7);box-shadow:0 1px 0 #fff inset,0 12px 26px -18px rgba(37,38,39,.4);border:1px solid rgba(255,255,255,.95);color:var(--ink)}
body.pm-premium .fh b,body.pm-premium .fh span{color:var(--ink)}body.pm-premium .fh span{opacity:.6}body.pm-premium .fh svg{stroke:var(--ink)}/* water: a bigger glass */

body.pm-premium .vessel.vr{width:112px;height:224px;filter:drop-shadow(0 18px 22px rgba(66,67,68,.3))}
body.pm-premium .wnum b{font-size:40px}
body.pm-premium .wbtns button{background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 10px 22px -14px rgba(37,38,39,.4)}
@media (min-width:1140px){
  body.pm-premium #eat{grid-template-columns:minmax(0,1fr) 440px}
  body.pm-premium .rings-card{padding:24px 28px 20px}
  body.pm-premium .fuelobj{width:180px;height:180px;margin:-14px auto 0}
  body.pm-premium .fuelobj .fi{width:180px;height:180px}
  body.pm-premium .instrument{padding:10px 24px 12px;gap:18px}
  body.pm-premium .gauge svg{width:60px;height:180px}
  body.pm-premium .gauge .rt{stroke-width:34}body.pm-premium .gauge .ra{stroke-width:24}
  body.pm-premium .gauge b{font-size:30px}
  body.pm-premium .mealhero{padding:18px 22px}
  body.pm-premium .mh-obj{width:150px;height:150px}body.pm-premium .mh-obj .fi{width:150px;height:150px}
  body.pm-premium .mh-t b{font-size:26px}
  body.pm-premium #eatRail .vessel.vr{width:120px;height:240px}
  body.pm-premium #eatRail #waterSec .card{padding:22px 24px}
}/* -- FINAL PASS. The lift's object everywhere it stands in, the Home
   rows and the meal rows as open sequences, the phone body a step larger,
   the bench and the bar as one thing. -- *//* composed objects: a bench with the bar racked behind it, a bench with a pair of dumbbells, a pair, the EZ bar */



.ob-set{position:relative;display:block;overflow:visible}
.ob-set img,.ob-set svg{position:absolute;display:block;max-width:none;max-height:none}
.ob-bb .ob-bench{left:22%;top:8%;width:56%;height:92%;object-fit:contain;z-index:2;filter:drop-shadow(0 8px 10px rgba(66,67,68,.24))}
.ob-bb .ob-bar{left:0;top:26%;width:100%;height:22%;object-fit:contain;z-index:1;filter:drop-shadow(0 8px 10px rgba(66,67,68,.24))}
.ob-bd .ob-bench{left:18%;top:2%;width:64%;height:96%;object-fit:contain;z-index:1;filter:drop-shadow(0 8px 10px rgba(66,67,68,.24))}
.ob-bd .ob-db{width:36%;height:34%;object-fit:contain;z-index:2;bottom:0;filter:drop-shadow(0 6px 8px rgba(66,67,68,.28))}
.ob-bd .ob-db1{left:-2%;top:auto;bottom:2%}.ob-bd .ob-db2{right:-4%;left:auto;top:auto;bottom:8%;transform:scaleX(-1)}
.ob-pair .ob-db{width:66%;height:70%;object-fit:contain;top:15%}
.ob-pair .ob-db1{left:-4%}.ob-pair .ob-db2{left:38%;transform:scaleX(-1)}
.ob-ez .ez{left:0;top:32%;width:100%;height:36%}
.lr-ez .ez{width:100%;height:auto;aspect-ratio:8/1;position:relative;z-index:1;display:block;overflow:visible}
.lr-ez .lr-side{top:50%}
.lr-pair{position:relative;height:100%;display:flex;align-items:flex-end;justify-content:center;gap:0}
.lr-pair .lr-obj{height:88%;width:auto;margin:0 -10%}
.lr-pair .lr-db2{transform:scaleX(-1)}
body.pm-premium .sq .sq-obj.ob-set{height:84px}
@media (min-width:1100px){body.pm-premium .sq .sq-obj.ob-set{height:110px}}
.sess-video .sv-th .sv-obj{position:absolute;left:12%;top:12%;width:76%;height:76%}
.sess-video .sv-th .ob-set img,.sess-video .sv-th .ob-set svg{filter:none}/* Home: the training rows are one open sequence, the object first, the name strong, one chevron */

body.pm-premium #lifts{background:none;border:none;box-shadow:none;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none}
body.pm-premium .lift{padding:4px 0;border-bottom:1px solid rgba(86,87,88,.12)}
body.pm-premium .lift:last-child{border-bottom:none}
body.pm-premium .lift-top{gap:14px;padding:12px 0}
body.pm-premium .lglyph{width:72px;height:56px;border-radius:0;background:none;box-shadow:none;display:flex;align-items:center;justify-content:center;overflow:visible}
body.pm-premium .lglyph.has-obj svg,body.pm-premium .lglyph .lg-obj{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 12px rgba(66,67,68,.24))}
body.pm-premium .lglyph:not(.has-obj){background:var(--ceramic);box-shadow:var(--cer-shadow);border-radius:16px;width:56px}
body.pm-premium .lift.done .lglyph{background:none}
body.pm-premium .lift.done .lglyph:not(.has-obj){background:linear-gradient(180deg,#323334,#131415)}
body.pm-premium .lift .nm{font-size:17px;font-weight:800;letter-spacing:-.01em}
body.pm-premium .lift .lsub{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);margin-top:2px}
body.pm-premium .ldots{margin-top:6px}
body.pm-premium .ltarget{margin-top:8px;font-family:var(--sans);font-size:var(--ui-meta,14px);font-weight:700;padding:6px 12px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 8px 16px -12px rgba(37,38,39,.4)}
body.pm-premium .ltarget.up{background:var(--charcoal);color:#fff;border-color:transparent}
body.pm-premium .lchev{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 8px 16px -10px rgba(37,38,39,.45);color:var(--ink);font-size:20px}
body.pm-premium .volline{font-family:var(--sans);font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);letter-spacing:0;margin-top:8px;padding-top:12px;border-top:1px solid rgba(86,87,88,.12)}
/* Workout: the phone body a step larger */
@media (max-width:1099px){body.pm-premium .wkhero{grid-template-columns:minmax(0,1fr) 192px}body.pm-premium .wkhero .wh-v,body.pm-premium .wkhero .wh-body{width:192px}body.pm-premium .wkhero .wh-v{margin-top:-34px}body.pm-premium .wh-k{font-size:34px}}
@media (max-width:359px){body.pm-premium .wkhero{grid-template-columns:minmax(0,1fr) 150px}body.pm-premium .wkhero .wh-v,body.pm-premium .wkhero .wh-body{width:150px}}/* Live: the bar racked behind the bench, one object, one shadow */

body.pm-premium .sess .wload.benched,body.pm-premium .sess .runload.benched{padding-top:20px}
body.pm-premium .sess .wl-bench{z-index:2;bottom:-14px;width:46%;left:52%;filter:drop-shadow(0 20px 20px rgba(66,67,68,.34))}
body.pm-premium .sess .wload .loadvis,body.pm-premium .sess .runload svg,body.pm-premium .sess .runload{z-index:1}
body.pm-premium .sess .wload.benched .loadvis{transform:translateY(-16%)}
body.pm-premium .sess .runload.benched .lr-bar{transform:translateY(-16%)}
body.pm-premium .sess .lr-pair{height:100%}
body.pm-premium .sess .wload .lr-pair .lr-obj{height:100%;margin:0 -8%}
@media (max-width:899px){body.pm-premium .sess .wload.benched{padding-top:18px}body.pm-premium .sess .wl-bench{bottom:-8px;width:44%;left:52%}}
@media (min-width:900px){body.pm-premium .sess .wl-bench{width:40%;bottom:-12px;left:52%}}/* Nutrition: meal rows as an open list, the food larger, the name strong */

body.pm-premium .xfood{padding:12px 0;gap:14px;border-bottom:1px solid rgba(86,87,88,.12);border-radius:0}
body.pm-premium .xfood:last-of-type{border-bottom:none}
body.pm-premium .xfood .fi{width:58px;height:58px;filter:drop-shadow(0 8px 10px rgba(66,67,68,.22))}
body.pm-premium .xfood .xn{font-size:16px;font-weight:800;letter-spacing:-.01em}
body.pm-premium .xfood .xm{font-family:var(--sans);font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);margin-top:3px}
body.pm-premium .xfood .xk{font-family:var(--sans);font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.95);border-radius:999px;padding:6px 11px;box-shadow:0 1px 0 #fff inset,0 8px 16px -12px rgba(37,38,39,.4)}
body.pm-premium .xhead{margin:14px 0 4px;padding-top:14px;border-top:1px solid rgba(86,87,88,.12);font-size:15px;font-weight:800;color:var(--ink)}
body.pm-premium .fr{background:none;box-shadow:none;border-radius:0;padding:10px 0;margin:0;border-bottom:1px solid rgba(86,87,88,.12)}
body.pm-premium .fr .frn{font-size:15.5px;font-weight:700}
body.pm-premium .fr .frm{font-family:var(--sans);font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2)}
body.pm-premium .fr .frk{font-family:var(--sans);font-size:14px;font-weight:800}/* ============================================================
   ONBOARDING (Phase 2A). Its own room: the Ceramic Frost stage, one
   question at a time, tiles that light and answer, an inline number,
   a build moment, the summary. More motion than the product, never slow.
   ============================================================ */


.onb{position:fixed;inset:0;z-index:var(--z-tut);display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;
  background:linear-gradient(180deg,#FBFAF7 0%,#F4F3F0 100%);color:var(--ink)}
.onb.hide{display:none}
.onb-env{position:fixed;inset:0;background:var(--stage,none) 60% 40%/cover no-repeat;opacity:.9;pointer-events:none}
.onb-env::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.28) 40%,rgba(251,250,247,.94) 100%)}
.onb-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:14px;padding:calc(14px + env(safe-area-inset-top)) 18px 6px}
.onb-back{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  box-shadow:0 1px 0 #fff inset,0 10px 22px -12px rgba(37,38,39,.45);font:inherit;font-size:26px;line-height:1;color:var(--ink);cursor:pointer;flex:none;transition:transform .12s var(--ease)}
.onb-back:active{transform:scale(.94)}
.onb-back.hide{display:none}
.onb-prog{flex:1;height:4px;border-radius:99px;background:rgba(86,87,88,.14);overflow:hidden;max-width:220px;margin-left:auto}
.onb-prog.hide{visibility:hidden}
.onb-prog i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--sky),var(--sky-lo));transition:width .4s var(--ease)}
.onb-step{position:relative;z-index:1;width:100%;max-width:520px;margin:0 auto;padding:10px 22px calc(40px + env(safe-area-inset-bottom));animation:onbIn .22s var(--ease) both;flex:1;display:flex;flex-direction:column}
@keyframes onbIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.onb-head{margin:18px 0 18px}
.onb-q{font-family:var(--display);font-weight:600;font-size:34px;line-height:1.06;letter-spacing:-.012em}
.onb-sub{font-size:15px;font-weight:500;color:var(--ink-2);margin-top:10px;line-height:1.5}
.onb-h{font-family:var(--display);font-weight:600;font-size:44px;line-height:1.02;letter-spacing:-.012em}
.onb-k{display:block;font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}/* the open */

.onb-open{flex:1;display:flex;flex-direction:column;justify-content:center;text-align:center;padding-bottom:40px}
.onb-em{width:96px;height:96px;margin:0 auto 14px;animation:onbFloat 4s ease-in-out infinite}
.onb-em img{width:100%;height:100%;object-fit:contain;filter:none}
@keyframes onbFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.onb-word{font-size:17px;font-weight:800;letter-spacing:-.03em;color:var(--ink);margin-bottom:26px;animation:onbIn .5s .1s var(--ease) both}
.onb-open .onb-h{animation:onbIn .5s .22s var(--ease) both}
.onb-open .onb-sub{animation:onbIn .5s .34s var(--ease) both;margin:12px auto 0;max-width:30ch}
.onb-open .onb-go{animation:onbIn .5s .5s var(--ease) both;max-width:280px;margin:34px auto 0}
.onb-go{margin-top:22px}/* the tiles */

.onb-opts{display:flex;flex-direction:column;gap:10px}
.onb-opt{display:flex;align-items:center;gap:14px;width:100%;text-align:left;min-height:62px;padding:14px 18px;border-radius:20px;border:1px solid rgba(255,255,255,.95);
  background:linear-gradient(180deg,#FFFFFF,#F4F3F0);box-shadow:0 1px 0 #fff inset,0 -1px 0 rgba(86,87,88,.08) inset,0 14px 28px -16px rgba(37,38,39,.45);
  font:inherit;color:var(--ink);cursor:pointer;transition:transform .14s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease)}
.onb-opt:active{transform:translateY(2px) scale(.985)}
.onb-opt .oo-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.onb-opt b{font-size:17px;font-weight:800;letter-spacing:-.01em}
.onb-opt small{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.onb-opt.on{background:linear-gradient(180deg,#BEDCF3 0%,#A7CFF2 100%);border-color:transparent;box-shadow:0 1px 0 rgba(255,255,255,.55) inset,0 16px 30px -12px rgba(135,146,162,.75)}
.onb-opt.on b,.onb-opt.on small{color:var(--t-ink,#0A1020)}
.onb-opt.on small{opacity:.75}
.onb-opt.pop{animation:sqPop .38s var(--ease)}
.onb-opt.big{min-height:84px}
.oo-obj{flex:none;width:84px;height:60px;position:relative;display:block}
.oo-obj .ob-set{width:100%;height:100%}
.oo-obj .ob-set img,.oo-obj .ob-set svg{filter:drop-shadow(0 8px 10px rgba(66,67,68,.24))}
.oo-body{position:absolute;left:50%;top:0;height:100%;transform:translateX(-50%);display:block}
.oo-body .body-r,.oo-body svg{height:100%;width:auto}
.onb-fig{width:120px;margin:-6px auto 14px;filter:drop-shadow(0 18px 20px rgba(66,67,68,.28))}
.onb-fig .body-r,.onb-fig svg{width:100%;display:block}/* the days */

.onb-dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.onb-opt.day{justify-content:center;min-height:84px;padding:0;border-radius:22px}
.onb-opt.day b{font-size:36px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}/* the inline number */

.numctl{display:flex;align-items:center;gap:12px}
.nc-b{flex:none;width:58px;height:58px;border-radius:50%;border:none;font:inherit;font-size:30px;font-weight:600;color:#fff;background:var(--charcoal);cursor:pointer;
  box-shadow:0 1px 0 rgba(255,255,255,.22) inset,0 -3px 0 rgba(0,0,0,.42) inset,0 16px 30px -12px rgba(30,31,33,.7);transition:transform .12s var(--ease),box-shadow .12s var(--ease)}
.nc-b:active{transform:translateY(3px) scale(.97);box-shadow:0 1px 0 rgba(255,255,255,.16) inset,0 -1px 0 rgba(0,0,0,.4) inset,0 6px 12px -6px rgba(30,31,33,.7)}
.nc-v{flex:1;min-width:0;display:flex;align-items:baseline;justify-content:center;gap:8px;padding:10px 14px;border-radius:22px;background:rgba(255,255,255,.74);border:1px solid rgba(255,255,255,.98);
  box-shadow:0 1px 0 #fff inset,0 2px 6px rgba(37,38,39,.05),0 24px 44px -26px rgba(37,38,39,.45)}
.nc-in{width:100%;min-width:0;border:none;background:none;padding:0;font:inherit;font-size:44px;font-weight:800;letter-spacing:-.03em;text-align:right;color:var(--ink);font-variant-numeric:tabular-nums;outline:none;-moz-appearance:textfield}
.nc-in::-webkit-outer-spin-button,.nc-in::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.nc-u{font-size:15px;font-weight:700;color:var(--ink-3);flex:none}
.nc-in.shake{animation:ncShake .4s}
@keyframes ncShake{0%,100%{transform:none}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.onb-num{margin:10px 0 6px}
.onb-later{display:block;margin:14px auto 0;background:none;border:none;font:inherit;font-size:14px;font-weight:700;color:var(--ink-3);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.onb-fields{display:flex;flex-direction:column;gap:16px}
.onb-f label{display:block;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);margin-bottom:8px}
.onb-two{display:flex;gap:10px}
.onb-two>div{flex:1;min-width:0}
.onb-two .nc-b{width:48px;height:48px;font-size:24px}
.onb-two .nc-in{font-size:32px}/* ---- touch controls: wheel, scale, age row ---- */

.whl{position:relative;height:calc(var(--h)*5);outline:none;user-select:none;-webkit-user-select:none}
.whl-band{position:absolute;z-index:0;left:0;right:0;top:calc(var(--h)*2);height:var(--h);border-radius:18px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.98);
  box-shadow:0 1px 0 #fff inset,0 14px 28px -18px rgba(66,67,68,.45);pointer-events:none}
.whl-sc{position:relative;height:100%;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior:contain;
  -webkit-mask-image:linear-gradient(transparent,#000 28%,#000 72%,transparent);mask-image:linear-gradient(transparent,#000 28%,#000 72%,transparent)}
.whl-sc::-webkit-scrollbar{display:none}
.whl-pad{height:calc(var(--h)*2)}
.whl-i{height:var(--h);scroll-snap-align:center;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;color:var(--ink-2);will-change:transform}
.whl-i b{font-size:30px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.whl-i i{font-style:normal;font-size:15px;font-weight:700;color:var(--ink-3)}
.whl-i.on{color:var(--ink)}
.whl-i.on b{font-weight:800}
.rul{display:flex;flex-direction:column;align-items:center;gap:14px;user-select:none;-webkit-user-select:none}
.rul-v{display:flex;align-items:baseline;justify-content:center;gap:8px;min-width:0;max-width:100%;background:none;border:none;font:inherit;color:var(--ink);cursor:pointer;padding:4px 10px}
.rul-n{font-size:clamp(56px,19vw,84px);font-weight:800;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}
.rul-u{font-size:20px;font-weight:700;color:var(--ink-3)}
.rul-track{position:relative;width:100%;height:92px;border-radius:24px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.98);
  box-shadow:0 1px 0 #fff inset,0 18px 34px -22px rgba(66,67,68,.5);overflow:hidden}
.rul-sc{height:100%;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;overscroll-behavior:contain;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.rul-sc::-webkit-scrollbar{display:none}
.rul-in{display:inline-block;padding:0 50%;height:100%;white-space:nowrap}
.rul-t{position:relative;height:100%;
  background-image:linear-gradient(90deg,var(--ink) 2px,transparent 2px),linear-gradient(90deg,rgba(12,13,14,.28) 1px,transparent 1px);
  background-size:var(--M) 44%,var(--t) 26%;background-repeat:repeat-x;background-position:-1px 0,0 0}
.rul-t span{position:absolute;bottom:12px;transform:translateX(-50%);font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);font-variant-numeric:tabular-nums}
.rul-needle{pointer-events:none;position:absolute;left:50%;top:0;width:3px;height:60%;margin-left:-1.5px;border-radius:0 0 3px 3px;background:var(--charcoal,#151617)}
.agr{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px}
.agr-sc{width:100%;display:flex;align-items:center;height:132px;overflow-x:scroll;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior:contain;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(90deg,transparent,#000 22%,#000 78%,transparent)}
.agr-sc::-webkit-scrollbar{display:none}
.agr-pad{flex:none;width:calc(50% - var(--w)/2)}
.agr-i{flex:none;width:var(--w);height:110px;scroll-snap-align:center;border:none;background:none;font:inherit;font-size:44px;font-weight:700;letter-spacing:-.03em;
  color:var(--ink-2);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:26px;transition:background .2s,color .2s}
.agr-i.on{color:var(--ink);font-weight:800;background:rgba(255,255,255,.86);box-shadow:0 1px 0 #fff inset,0 16px 30px -18px rgba(66,67,68,.5)}
.agr-cap{font-size:14px;font-weight:700;color:var(--ink-3)}
.onb-age{margin:26px 0 6px}
.onb{overflow-x:hidden}
.onb-hu{display:inline-flex;align-self:flex-start;gap:4px;padding:4px;border-radius:14px;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.95);margin-bottom:10px}
.onb-hu button{border:none;background:none;font:inherit;font-size:14px;font-weight:700;color:var(--ink-3);padding:8px 14px;border-radius:10px;cursor:pointer}
.onb-hu button.on{background:#fff;color:var(--ink);box-shadow:0 6px 14px -10px rgba(66,67,68,.5)}
.onb-hrow{display:flex;align-items:center;gap:8px}
.onb-hfig{flex:none;width:96px;height:190px}
.onb-hfig .hfig{width:100%;height:100%}
.hf-ref{stroke:rgba(12,13,14,.14);stroke-width:1;stroke-dasharray:3 4}
.hf-sh{fill:rgba(66,67,68,.18)}
.hf-g{transition:transform .25s var(--ease)}
.onb-wheel{flex:1;min-width:0}/* ---- where do you train: objects on a stage, one light, one floor ---- */

.onb-where{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.onb-opt.ow-tile{flex-direction:column;align-items:stretch;gap:10px;min-height:0;padding:12px 12px 16px;text-align:left}
.ow-stage{position:relative;display:block;height:118px;border-radius:16px;background:linear-gradient(180deg,rgba(243,242,239,.9),rgba(255,255,255,.4));overflow:hidden}
.ow-floor{position:absolute;left:14%;right:14%;bottom:16px;height:14px;border-radius:50%;background:rgba(135,146,162,.22);filter:blur(6px)}
.ow-obj{position:absolute;inset:8px 8px 18px;display:block;z-index:1}
.ow-obj img{position:absolute;object-fit:contain;filter:drop-shadow(0 10px 10px rgba(66,67,68,.22))}
.ow-gym .ow-bench{left:14%;right:14%;bottom:0;width:72%;height:78%}
.ow-gym .ow-bar{left:0;right:0;top:6%;width:100%;height:24%}
.ow-home .ow-db{width:62%;height:70%;bottom:2px}
.ow-home .ow-db1{left:2%;transform:rotate(-8deg)}
.ow-home .ow-db2{right:2%;bottom:14px;transform:rotate(10deg)}
.ow-var .ow-kb{left:10%;bottom:0;width:48%;height:92%}
.ow-var .ow-band{right:4%;bottom:6px;width:46%;height:62%}
.ow-body .pushup{position:absolute;left:2%;right:2%;bottom:2px;width:96%;height:88%;filter:drop-shadow(0 10px 8px rgba(66,67,68,.26))}
.ow-tile .oo-t b{font-size:16px}
.ow-tile .oo-t small{font-size:var(--ui-meta,14px);line-height:1.35}
.onb-in{width:100%;margin-top:6px;border-radius:18px;padding:16px 18px;font-size:17px}
.onb-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.onb-chip{border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.72);border-radius:999px;padding:11px 15px;font:inherit;font-size:14px;font-weight:700;color:var(--ink-2);cursor:pointer}
.onb-chip.on{background:linear-gradient(180deg,#BEDCF3 0%,#A7CFF2 100%);color:var(--t-ink,#0A1020);border-color:transparent}/* ---- exercise selection: best for you ---- */

.bfy{display:flex;flex-direction:column;gap:12px;margin-bottom:6px}
.bfy-k{font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.bfy-main{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:12px;width:100%;padding:14px 14px 18px;border-radius:24px;cursor:pointer;text-align:left;font:inherit;color:var(--ink);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(244,243,240,.92));border:1px solid rgba(255,255,255,.98);box-shadow:0 1px 0 #fff inset,0 22px 40px -24px rgba(66,67,68,.55);transition:transform .15s var(--ease)}
.bfy-main:active,.bfy-alt:active{transform:scale(.985)}
.bfy-main .bfy-vis{position:relative;display:flex;align-items:center;justify-content:center;height:150px;border-radius:18px;background:linear-gradient(180deg,rgba(237,236,233,.9),rgba(255,255,255,.4));overflow:hidden}
.bfy-main .bfy-vis::after{content:"";position:absolute;left:18%;right:18%;bottom:14px;height:14px;border-radius:50%;background:rgba(135,146,162,.2);filter:blur(7px)}
.bfy-vis .bfy-obj{position:relative;z-index:1;width:78%;height:82%;display:flex;align-items:center;justify-content:center}
.bfy-vis .bfy-obj img{max-width:100%;max-height:100%;object-fit:contain}
.bfy-glyph{position:relative;z-index:1;width:84px;height:84px;display:flex;align-items:center;justify-content:center}
.bfy-glyph svg{width:100%;height:100%}
.bfy-t{display:flex;flex-direction:column;gap:3px;padding:0 4px;min-width:0}
.bfy-t b{font-size:21px;font-weight:800;letter-spacing:-.015em}
.bfy-t small{font-size:14px;font-weight:600;color:var(--ink-2)}
.bfy-add{position:absolute;right:16px;bottom:18px;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;color:#fff;background:var(--charcoal,#151617)}
.bfy-main.added .bfy-add{background:var(--ok)}
.bfy-alts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bfy-alt{display:flex;flex-direction:column;gap:8px;align-items:stretch;padding:10px 10px 12px;border-radius:18px;cursor:pointer;text-align:left;font:inherit;color:var(--ink);
  background:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.98);box-shadow:0 12px 24px -20px rgba(66,67,68,.5)}
.bfy-alt .bfy-vis.sm{display:flex;align-items:center;justify-content:center;height:78px;border-radius:13px;background:linear-gradient(180deg,rgba(230,239,250,.9),rgba(255,255,255,.4))}
.bfy-alt .bfy-glyph{width:52px;height:52px}
.bfy-alt b{font-size:14.5px;font-weight:800;line-height:1.25;padding:0 2px}
.bfy-all{display:flex;align-items:center;justify-content:space-between;width:100%;padding:15px 16px;border-radius:16px;border:1px solid var(--hairline);background:transparent;font:inherit;font-size:15px;font-weight:700;color:var(--ink);cursor:pointer}
.bfy-all span{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3)}
.bfy-all.open{background:rgba(255,255,255,.6)}
.bfy-list{margin-top:6px}/* ---- rest: the timer leads, everything else waits its turn ---- */

#sessRest .rf-mid{gap:0}
#sessRest .rf-timer{position:relative;display:flex;flex-direction:column;align-items:center;touch-action:none;user-select:none;-webkit-user-select:none;padding:6px 20px 10px;cursor:grab}
#sessRest .rf-timer .sess-clock,body.pm-premium #sessRest .rf-timer .sess-clock{font-size:clamp(104px,33vw,168px);line-height:.95;margin-top:0}
.rf-fx{position:absolute;right:4px;top:10px;font-size:22px;font-weight:800;color:var(--accent);opacity:0;pointer-events:none}
.rf-fx.go{animation:rfFx .8s var(--ease) both}
@keyframes rfFx{0%{opacity:0;transform:translateY(8px)}25%{opacity:1}100%{opacity:0;transform:translateY(-18px)}}
.rf-hint{margin-top:6px;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-4)}
.rf-why{margin-top:6px;background:none;border:none;padding:4px 8px;font:inherit;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-4);cursor:pointer;text-decoration:none}
#sessRest .sess-next{margin-top:22px;display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}
.rf-nx{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;font:inherit;color:var(--ink);cursor:pointer;padding:6px 16px;border-radius:16px}
.rf-nx em{font-style:normal;font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.rf-nx b{font-size:30px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.rf-nx .rf-nm{font-size:15px;font-weight:700;color:var(--ink-2)}
.rf-nx.last{font-size:16px;font-weight:700;color:var(--ink-2)}
.rf-more{display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:-6px}
.rf-more.hide{display:none}
.rf-more span{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.rf-rec{display:flex;flex-direction:column;align-items:center;gap:4px;width:min(100%,420px);padding:18px 18px;border-radius:22px;border:1px solid rgba(255,255,255,.98);cursor:pointer;font:inherit;color:var(--ink);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(243,242,239,.92));box-shadow:0 1px 0 #fff inset,0 18px 34px -22px rgba(66,67,68,.55)}
.rf-rec b{font-size:19px;font-weight:800;letter-spacing:-.01em}
.rf-rec small{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2)}
.rf-rec.done{background:rgba(255,255,255,.6);box-shadow:none}
.rf-rec.done b{color:var(--ok)}
.rf-moreb{margin-top:18px;display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:none;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);cursor:pointer;padding:6px 18px}
.rf-moreb i{display:block;width:34px;height:4px;border-radius:4px;background:var(--hairline)}
@media (max-height:780px) and (max-width:899px){
  #sessRest .rf-timer .sess-clock,body.pm-premium #sessRest .rf-timer .sess-clock{font-size:clamp(96px,29vw,132px)}
  #sessRest .sess-next{margin-top:12px;gap:10px}
  .rf-rec{padding:14px 18px}
  .rf-moreb{margin-top:6px;padding-top:4px}
  .rf-hint{margin-top:2px}
  .rf-why{margin-top:0}
}
.rf-sheet{position:fixed;inset:0;z-index:calc(var(--z-sess) + 2)}
.rf-sheet.hide{display:none}
.rf-sheet-bg{position:absolute;inset:0;background:rgba(19,20,21,.28);opacity:0;transition:opacity .2s}
.rf-sheet-card{position:absolute;left:0;right:0;bottom:0;max-width:600px;margin:0 auto;padding:10px 16px calc(18px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;
  background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 -20px 50px -20px rgba(37,38,39,.45);transform:translateY(100%);transition:transform .24s var(--ease)}
.rf-sheet.on .rf-sheet-bg{opacity:1}
.rf-sheet.on .rf-sheet-card{transform:none}
.rf-grab{width:40px;height:5px;border-radius:5px;background:var(--hairline);margin:0 auto 12px}
.rf-sheet-t{font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 4px 10px}
.rf-tools{display:grid;grid-template-columns:1fr;gap:8px}
.rf-tools .door{margin:0}/* ---- photo meal review: the plate is the editing surface ---- */

.phr{position:fixed;inset:0;z-index:var(--z-sheet);display:flex;flex-direction:column;background:var(--bg);overscroll-behavior:contain}
.phr.hide{display:none}
.phr-top{display:flex;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 8px}
.phr-x{width:40px;height:40px;border-radius:50%;border:none;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline);font-size:24px;line-height:1;color:var(--ink);cursor:pointer;flex:none}
.phr-step{font-size:17px;font-weight:800;letter-spacing:-.01em}
.phr-body{flex:1;overflow-y:auto;padding:6px 16px 12px;-webkit-overflow-scrolling:touch}
.phr-foot{padding:12px 16px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,rgba(246,246,243,0),var(--bg) 26%)}
.phr-foot .btn{margin:0}
.phr-plate{position:relative;border-radius:22px;overflow:hidden;background:#0C0D0E;box-shadow:0 20px 40px -24px rgba(37,38,39,.6)}
.phr-plate img{display:block;width:100%;max-height:58vh;object-fit:contain}
.phr-plate.focus img{filter:brightness(.55) saturate(.8)}
.phr-box{position:absolute;border-radius:14px;border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 1px rgba(12,13,16,.25)}
.phr-plate.focus .phr-box.lit{border-color:#fff;box-shadow:0 0 0 9999px rgba(0,0,0,0),0 0 0 3px rgba(255,255,255,.35)}
.phr-plate.focus .phr-box.lit{background:rgba(255,255,255,.08);backdrop-filter:brightness(1.8);-webkit-backdrop-filter:brightness(1.8)}
.phr-tag{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1px;max-width:46%;padding:7px 11px;border-radius:14px;border:none;cursor:pointer;font:inherit;
  background:rgba(255,255,255,.94);box-shadow:0 10px 22px -10px rgba(0,0,0,.6);color:var(--ink)}
.phr-tag b{font-size:var(--ui-meta,14px);font-weight:800;line-height:1.2;text-align:center}
.phr-tag span{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);white-space:nowrap}
.phr-seen{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.phr-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline);font:inherit;font-size:15px;font-weight:700;color:var(--ink);border:none}
.phr-chip i{font-style:normal;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3)}
.phr-chip.unsure{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink-4)}
.phr-note{margin-top:14px;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.phr-q{margin-top:18px}
.phr-q h2{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.15}
.phr-q p{margin-top:6px;font-size:14.5px;font-weight:600;color:var(--ink-3)}
.phr-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.phr-opts.many{grid-template-columns:1fr 1fr}
.phr-opt{min-height:58px;padding:12px;border-radius:18px;border:1px solid rgba(255,255,255,.98);font:inherit;font-size:16px;font-weight:800;color:var(--ink);cursor:pointer;
  background:linear-gradient(180deg,#fff,rgba(244,243,240,.95));box-shadow:0 1px 0 #fff inset,0 12px 24px -18px rgba(66,67,68,.55)}
.phr-opt:active{transform:scale(.98)}
.phr-extra{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.phr-add{margin-top:12px;background:none;border:none;font:inherit;font-size:14.5px;font-weight:700;color:var(--ink-2);cursor:pointer;padding:8px 2px}
.phr-total{display:flex;align-items:baseline;justify-content:center;gap:12px}
.phr-total b{font-size:26px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.phr-total span{font-size:15px;font-weight:700;color:var(--ink-2)}
.phr-sheet{position:fixed;inset:0;z-index:calc(var(--z-sheet) + 1)}
.phr-sheet.hide{display:none}
.phr-sheet-bg{position:absolute;inset:0;background:rgba(19,20,21,.35)}
.phr-sheet-card{position:absolute;left:0;right:0;bottom:0;max-width:600px;margin:0 auto;padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;background:var(--surface);box-shadow:0 -20px 50px -20px rgba(37,38,39,.45);display:flex;flex-direction:column;gap:12px}
.phr-sheet-card .btn{margin:0}
.phr-sh-h b{display:block;font-size:21px;font-weight:800;letter-spacing:-.015em}
.phr-sh-h span{font-size:14px;font-weight:600;color:var(--ink-2)}
.phr-sh-k{font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.phr-kinds{display:flex;flex-wrap:wrap;gap:8px}
.phr-kind{padding:11px 15px;border-radius:999px;border:none;background:var(--surface-subtle);font:inherit;font-size:15px;font-weight:700;color:var(--ink);cursor:pointer}
.phr-kind.on,.phr-size.on{background:linear-gradient(180deg,#BEDCF3 0%,#A7CFF2 100%);color:var(--t-ink,#0A1020)}
.phr-sizes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.phr-size{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 6px;border-radius:18px;border:none;background:var(--surface-subtle);font:inherit;cursor:pointer;color:var(--ink)}
.phr-size b{font-size:16px;font-weight:800}
.phr-size span{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3)}
.phr-size.on span{color:var(--t-ink,#0A1020)}
.phr-sh-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.phr-link,.phr-no{background:none;border:none;font:inherit;font-size:14.5px;font-weight:700;cursor:pointer;padding:8px 2px}
.phr-link{color:var(--ink-2)}
.phr-no{color:var(--error)}/* ---- Nutrition: one fuel instrument, calories on the dial, macros as carved channels ---- */

.fuel-card{padding:18px 18px 16px;border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(243,242,239,.9));border:1px solid rgba(255,255,255,.98);
  box-shadow:0 1px 0 #fff inset,0 28px 50px -30px rgba(66,67,68,.55)}
.fuel-dial{position:relative;width:min(100%,300px);margin:0 auto}
.fuel-dial svg{display:block;width:100%;height:auto;overflow:visible}
.fuel-dial .rt{fill:none;stroke:rgba(66,67,68,.10);stroke-width:18;stroke-linecap:round}
.fuel-dial .ra{fill:none;stroke:url(#fuelGrad);stroke:var(--accent);stroke-width:18;stroke-linecap:round;transition:stroke-dashoffset .8s var(--ease)}
.fuel-dial .ra.over{stroke:var(--warn)}
.fuel-c{position:absolute;left:0;right:0;top:34%;display:flex;flex-direction:column;align-items:center;gap:2px}
.fuel-c b{font-size:clamp(46px,14vw,60px);font-weight:800;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.fuel-c .tg{font-size:14px;font-weight:700;color:var(--ink-3)}
.fuel-left{text-align:center;margin-top:-18px;font-size:15px;font-weight:700;color:var(--ink-2)}
.fuel-left.over{color:var(--warn)}
.fuel-ch{display:flex;flex-direction:column;gap:12px;margin-top:18px;padding:14px 14px;border-radius:20px;background:rgba(66,67,68,.045);box-shadow:inset 0 2px 6px rgba(66,67,68,.08)}
.fch{display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:10px}
.fch-n{font-size:var(--ui-meta,14px);font-weight:800;color:var(--ink-2)}
.fch-bar{width:100%;height:14px;display:block}
.fch-bar .rt{stroke:rgba(66,67,68,.12);stroke-width:12;stroke-linecap:round}
.fch-bar .ra{stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset .8s var(--ease)}
#proArc{stroke:var(--accent)}
#carbArc{stroke:#8792A2}
#fatArc{stroke:#8792A2}
.fch-bar .ra.over{stroke:var(--warn)}
.fch-v{display:flex;align-items:baseline;gap:4px;justify-content:flex-end;min-width:86px}
.fch-v b{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}
.fch-v small{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);white-space:nowrap}
.fuel-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.fuel-w{display:inline-flex;align-items:baseline;gap:2px;padding:9px 14px;border-radius:999px;border:none;background:rgba(255,255,255,.9);box-shadow:inset 0 0 0 1px var(--hairline);font:inherit;color:var(--ink);cursor:pointer}
.fuel-w b{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.fuel-w span{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3)}
.fuel-w em{font-style:normal;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);margin-left:6px}
#fuelCard .whyrow{display:flex;align-items:center;gap:8px;margin:0;justify-content:flex-end}
#fuelCard .whyrow.hide{display:none}
#fuelCard .whyrow .wr-l{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);background:none;border:none;padding:0}
.wr-i{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--ink-4);background:none;font:inherit;font-size:var(--ui-meta,14px);font-weight:800;font-style:italic;color:var(--ink-3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1}
.wr-imp{background:none;border:none;font:inherit;font-size:var(--ui-meta,14px);font-weight:800;color:var(--accent);cursor:pointer;padding:4px 2px}
.fuel-card.nofood .fuel-ch,.fuel-card.nofood .fuel-dial{opacity:.35}
.mealhero .mh-photo{flex:none;width:76px;height:76px;border-radius:20px;overflow:hidden;box-shadow:0 12px 24px -14px rgba(37,38,39,.55)}
.mealhero .mh-photo img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:360px){.fch{grid-template-columns:54px minmax(0,1fr) auto;gap:8px}.fch-v{min-width:74px}.fch-v b{font-size:15.5px}}

@media (max-width:360px){.onb-where{gap:10px}.ow-stage{height:100px}.agr-i{font-size:38px}.onb-hfig{width:80px}}
.onb-why{margin:16px auto 0}/* the build and the summary */

.onb-build{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.onb-build .ln2{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:700;color:var(--ink-3);opacity:.45;transition:opacity .3s,color .3s}
.onb-build .ln2 i{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:14px;background:rgba(86,87,88,.12);color:transparent;transition:background .3s,color .3s}
.onb-build .ln2.on{opacity:1;color:var(--ink)}
.onb-build .ln2.done i{background:linear-gradient(180deg,#BEDCF3,#A7CFF2);color:var(--t-ink,#0A1020)}
.onb-sum{text-align:center;padding-top:10px}
.onb-sum .onb-h{font-size:40px}
.onb-sumfig{width:150px;margin:8px auto 4px;filter:drop-shadow(0 22px 24px rgba(66,67,68,.3))}
.onb-sumfig .body-r,.onb-sumfig svg{width:100%;display:block}
.onb-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px}
.onb-chips b{font-size:var(--ui-meta,14px);font-weight:700;padding:8px 13px;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 10px 22px -14px rgba(37,38,39,.4)}
.onb-tg{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(86,87,88,.14)}
.onb-tgr b{display:block;font-size:22px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.onb-tgr span{display:block;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);margin-top:2px}
.onb-est{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:12px}
@media (min-width:900px){
  .onb-step{max-width:560px;padding-top:40px}
  .onb-q{font-size:44px}
  .onb-h{font-size:56px}
  .onb-dgrid{grid-template-columns:repeat(7,1fr)}
  .onb-opt.day{min-height:76px}
  .onb-opt.day b{font-size:30px}
  .onb-fig{width:150px}
}/* ============================================================
   PROFILE, Phase 2A. Identity stage, four sections of one profile as
   rows, a focused sheet per control, the body region behind its row,
   a real desktop composition.
   ============================================================ */


body.pm-premium #setup>h1{display:none}
.pf-stage{position:relative;display:flex;align-items:flex-start;gap:12px;margin:8px 0 22px;padding:22px 20px 18px;border-radius:28px;overflow:hidden;
  background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 24px 48px -26px rgba(37,38,39,.4)}
.pf-idt{flex:1;min-width:0}
.pf-k{display:block;font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.pf-h{font-family:var(--display);font-weight:600;font-size:34px;line-height:1.04;letter-spacing:-.012em;margin-top:6px}
.pf-line{font-size:14.5px;font-weight:600;color:var(--ink-2);margin-top:8px}
.pf-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pf-tags b{font-size:var(--ui-meta,14px);font-weight:700;padding:6px 11px;border-radius:999px;background:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 8px 18px -12px rgba(37,38,39,.4)}
.pf-stats{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(86,87,88,.14)}
.pf-stats.hide{display:none}
.pf-stats>div{display:flex;gap:8px;flex:1}
.pf-stats>div>div{min-width:0}
.pf-stats>div>div>div:first-child{font-size:20px!important;white-space:nowrap}
.pf-stats>div>div>div:last-child{font-size:var(--ui-meta,14px)!important}
.pf-fig{flex:none;width:96px;margin:-8px -6px -14px 0;filter:drop-shadow(0 16px 18px rgba(66,67,68,.26))}
.pf-fig .body-r,.pf-fig svg{width:100%;display:block}
.pf-sec{margin-top:18px}
.pf-sec .sec-head{margin-bottom:8px}
body.pm-premium .pf-sec .reveal-h{background:none;border:none;box-shadow:none;padding:0 2px;border-radius:0;cursor:default;margin-bottom:6px}
body.pm-premium .pf-sec .reveal-h:active{transform:none}
.pf-rows{display:flex;flex-direction:column}
.pfrow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px 2px;background:none;border:none;border-bottom:1px solid rgba(86,87,88,.12);font:inherit;color:var(--ink);cursor:pointer;transition:background .15s var(--ease)}
.pfrow:last-child{border-bottom:none}
.pfrow:active{background:rgba(255,255,255,.55)}
.pfr-l{flex:1;min-width:0;font-size:15.5px;font-weight:700}
.pfr-v{flex:none;max-width:56%;text-align:right;font-size:14px;font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pfr-c{flex:none;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 8px 16px -10px rgba(37,38,39,.45);position:relative}
.pfr-c::after{content:"";position:absolute;left:9px;top:9px;width:7px;height:7px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(-45deg)}
.pfrow.act .pfr-l{color:var(--ink)}
.pf-data{display:flex;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(86,87,88,.12)}
.pf-data .btn{margin:0;flex:1}
body.pm-premium .pf-bad{color:var(--error)}/* the store keeps every control out of sight; the sheet shows one */

.pf-store[hidden]{display:none}
.pfs{position:fixed;inset:0;z-index:var(--z-sheet);display:flex;align-items:flex-end;justify-content:center}
.pfs.hide{display:none}
.pfs-bg{position:absolute;inset:0;background:rgba(19,20,21,.42);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.pfs-card{position:relative;width:100%;max-width:600px;max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:18px 18px calc(18px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;
  background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2);border:1px solid rgba(255,255,255,.98);box-shadow:0 -24px 60px -20px rgba(37,38,39,.5);animation:pfsIn .28s var(--ease) both}
@keyframes pfsIn{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.pfs-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.pfs-h h3{font-size:20px;font-weight:800;letter-spacing:-.01em}
.pfs-body .tgtline{font-size:var(--ui-meta,14px);color:var(--ink-2);line-height:1.5;margin:4px 0 12px}
.pfs-body .grp-title{margin:18px 0 8px}
.pfs-body .opts{gap:8px}
.pfs-body .opt{padding:14px 12px;font-size:15px}
.pfs-done{margin-top:18px}
.pg-why{display:block;margin-top:6px;font-size:var(--ui-meta,14px);font-weight:500;color:var(--ink-3);line-height:1.4}
.lreason{font-size:var(--ui-meta,14px);color:var(--ink-3);margin-top:7px;line-height:1.45}
.lreason b{color:var(--ink-2);font-weight:700}
.lplat{margin-top:6px;padding:0;border:none;background:none;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.lplat-o{margin:6px 0 0 18px;font-size:var(--ui-meta,14px);color:var(--ink-2);line-height:1.55}
.lplat-o.hide{display:none}
.lflag{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 2px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface-subtle);font-size:var(--ui-meta,14px);line-height:1.4;color:var(--ink-2)}
.lflag span{flex:1 1 100%;font-weight:600}
.lflag button{border:none;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline);border-radius:var(--r-pill);padding:8px 13px;font:inherit;font-weight:700;color:var(--ink);cursor:pointer}
.miss-t{font-size:15px;font-weight:700;margin-bottom:12px;line-height:1.35}
.miss-b{display:flex;flex-wrap:wrap;gap:8px}
.miss-b .btn{flex:1 1 auto;margin:0}
.pfs-body .opts.multi .opt,.pfs-body #ctl-equip .opt{flex:0 1 auto;padding:11px 13px;font-size:14px}
.eq-q{width:100%;margin:14px 0 2px;background:var(--surface);border:none;border-radius:var(--r-md);box-shadow:inset 0 0 0 1px var(--hairline);color:var(--ink);font:inherit;font-size:16px;padding:13px 15px}
.eq-foot{display:flex;gap:8px;margin-top:18px}
.eq-foot .btn{flex:1;margin:0}
.lim-in{margin:0}/* selected chips in the new panels use the onboarding's selected look, so a choice is always readable */

#ctl-equip .opt.sel,#ctl-limits .opt.sel,#ctl-customex .opt.sel{background:linear-gradient(180deg,#BEDCF3 0%,#A7CFF2 100%);color:var(--t-ink,#0A1020);border-color:transparent;box-shadow:0 1px 0 rgba(255,255,255,.55) inset,0 10px 22px -12px rgba(135,146,162,.75)}
.lim-row{display:flex;gap:12px;align-items:flex-start;padding:14px 2px;border-bottom:1px solid rgba(86,87,88,.12)}
.lim-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.lim-t b{font-size:15.5px}
.lim-t span{font-size:var(--ui-meta,14px);color:var(--ink-2);line-height:1.4}
.lim-t .lim-s{color:var(--ink-3);font-size:var(--ui-meta,14px)}
.lim-a{display:flex;flex-direction:column;gap:6px;flex:none}
.lim-a .btn{margin:0}
#ctl-limits>#limAdd{margin-top:14px}
.pf-num{margin-top:4px}
.pf-bodyreg .sec{margin-top:18px}
.pf-bodyreg .sec:first-of-type{margin-top:4px}
.photo-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:10px 6px 4px}
.photo-empty.hide{display:none}
.photo-empty .pe-fig{width:64px;opacity:.7}
.photo-empty .pe-fig .body-r,.photo-empty .pe-fig svg{width:100%;display:block}
.photo-empty b{font-size:15px;font-weight:700;max-width:26ch}
.photo-empty span{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.photos.hide{display:none}
@media (min-width:1140px){
  body.pm-premium #setup{display:grid;grid-template-columns:minmax(0,1fr) 600px;column-gap:56px;align-items:start}
  body.pm-premium #setup>.kicker{grid-column:1/-1}
  body.pm-premium #setup>#profSub{grid-column:1/-1}
  .pf-stage{grid-column:1;position:sticky;top:96px;flex-direction:column;padding:30px 32px 26px;margin:0}
  .pf-h{font-size:52px}
  .pf-line{font-size:16px}
  .pf-fig{width:240px;margin:6px auto -10px;order:2}
  .pf-stats{order:3}
  .pf-cols{grid-column:2}
  .pf-sec:first-child{margin-top:0}
  .pfr-l{font-size:16px}
  .pfs{align-items:center}
  .pfs-card{max-width:640px;border-radius:28px;max-height:84vh;animation:pfsPop .24s var(--ease) both}
  @keyframes pfsPop{from{transform:scale(.97);opacity:0}to{transform:none;opacity:1}}
  .pfs-card:has(#pfBodyReg){max-width:820px}
}/* ============================================================
   ADAM, Phase 2B. The quietest screen: a name, a small mark, the words
   on the canvas, the person in a dark bubble, proposals as the objects
   they change, one composer that grows. And one object on Home, rarely.
   ============================================================ */


body.pm-premium #ask>h1{display:none}
.adam-head{display:flex;align-items:center;gap:12px;margin:6px 0 4px}
.adam-head h1{font-family:var(--display);font-weight:600;font-size:38px;letter-spacing:-.012em;line-height:1}
body.pm-premium .adam-head .acore{width:30px;height:30px;margin:0;flex:none}
body.pm-premium .adam-head .acore span{border-radius:10px;border-width:1.2px}
body.pm-premium .adam-head .acore .ac-r2{inset:5px;border-radius:7px}
body.pm-premium .adam-head .acore .ac-r3{inset:9px;border-radius:5px}
body.pm-premium .adam-head .acore .ac-dot{inset:11px;background:linear-gradient(180deg,#BEDCF3,#A7CFF2);box-shadow:0 2px 6px -1px rgba(135,146,162,.7)}
.adam-head .acore.think .ac-dot{animation:adamPulse .9s ease-in-out infinite}
.adam-head .acore.settle .ac-dot{animation:sqPop .38s var(--ease)}
@keyframes adamPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.7);opacity:.6}}
.adam-pres{margin-left:auto;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3)}
body.pm-premium #ask .chatbox{margin:14px 0 10px;gap:12px;min-height:200px}
:root:not([data-theme="dark"]) body.pm-premium .cmsg.coach.canvas,body.pm-premium .cmsg.coach.canvas{background:none;box-shadow:none;border:none;padding:2px 2px 6px;max-width:100%;font-size:16px;line-height:1.55;color:var(--ink);backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0}
body.pm-premium #ask .chatbox{padding-bottom:12px}
body.pm-premium .cmsg.me{max-width:80%;background:var(--charcoal);color:#fff;border-radius:18px 18px 4px 18px;padding:11px 15px;font-size:15px;box-shadow:0 10px 22px -12px rgba(30,31,33,.6)}
body.pm-premium .coachwho{margin:6px 0 -6px 2px;font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
body.pm-premium .coachwho i{background:linear-gradient(180deg,#BEDCF3,#A7CFF2);border-radius:50%;width:7px;height:7px}
.csep{display:flex;align-items:center;gap:12px;margin:8px 0 2px;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3)}
.csep::before,.csep::after{content:"";flex:1;height:1px;background:rgba(86,87,88,.14)}
.cmsg.thinking{display:flex;align-items:center;gap:10px}
.cstat{font-size:14px;font-weight:600;color:var(--ink-3)}
body.pm-premium .wave i{background:var(--sky-lo)}
.cerr{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 12px 26px -18px rgba(37,38,39,.4);font-size:14px;font-weight:700;color:var(--ink-2)}
.cerr .btn{margin:0;width:auto;padding:9px 14px}
body.pm-premium .cmsg.did{font-size:var(--ui-meta,14px);color:var(--ink-3);padding:0 2px}/* proposals as objects */

body.pm-premium .cact{border:1px solid rgba(255,255,255,.95);border-left:1px solid rgba(255,255,255,.95);border-radius:22px;padding:16px 16px 14px;background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 1px 0 #fff inset,0 20px 40px -22px rgba(37,38,39,.45);transition:transform .3s var(--ease),opacity .3s var(--ease)}
body.pm-premium .cact .ca-h{font-size:var(--ui-meta,14px);letter-spacing:.08em;color:var(--sky-lo)}
body.pm-premium .cact.done .ca-h{color:var(--ink-2)}
body.pm-premium .cact.done.left{opacity:.6}
body.pm-premium .cact.applying{transform:scale(.985);opacity:.7}
body.pm-premium .cact.leaving{opacity:.4}
body.pm-premium .cact .ca-foot .btn{margin:0;width:auto;padding:11px 18px}
.ap{margin-top:4px}
.ap-k{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);margin-bottom:6px}
.ap-ba{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ap-b{font-size:17px;font-weight:700;color:var(--ink-3);text-decoration:line-through;text-decoration-color:rgba(60,90,130,.35)}
.ap-a{font-size:22px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.cact.done .ap-a{color:var(--sky-lo)}
.ap-arrow{display:inline-block;width:18px;height:18px;position:relative;flex:none}
.ap-arrow::after{content:"";position:absolute;left:3px;top:5px;width:8px;height:8px;border-right:2px solid var(--ink-3);border-top:2px solid var(--ink-3);transform:rotate(45deg)}
.ap-arrow.down{display:block;margin:4px 0 4px 22px;transform:rotate(90deg)}
.ap-row{display:flex;align-items:center;gap:12px;padding:4px 0}
.ap-row>span:first-child{width:64px;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);text-transform:capitalize}
.ap-note{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:6px}
.ap-ex{display:flex;align-items:center;gap:12px}
.ap-ex b{font-size:18px;font-weight:800}
.ap-obj{flex:none;width:72px;height:48px;position:relative;display:block}
.ap-obj img,.ap-obj svg{filter:drop-shadow(0 6px 8px rgba(66,67,68,.22))}
.ap-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.ap-week span{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px;border-radius:12px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.95);font-size:var(--ui-meta,14px);font-weight:700;text-align:center;line-height:1.1;overflow:hidden}
.ap-week span i{font-style:normal;font-size:var(--ui-meta,14px);color:var(--ink-3)}
.ap-week span.r{opacity:.5}
.ap-week.after span:not(.r){background:linear-gradient(180deg,#BEDCF3,#A7CFF2);border-color:transparent;color:var(--t-ink,#0A1020)}
.ap-week.after span:not(.r) i{color:var(--t-ink,#0A1020);opacity:.7}
.ap-why{margin-top:10px;font-size:14px;line-height:1.5;color:var(--ink-2)}
.ap-why b{color:var(--ink);margin-right:4px}/* starter prompts, only before the day's first word */

body.pm-premium #coachChips{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}
body.pm-premium #coachChips.hide{display:none}
body.pm-premium #coachChips .chipbtn{width:100%;align-items:center;flex-direction:row;justify-content:space-between;gap:10px;min-height:52px;padding:12px 16px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 12px 26px -18px rgba(37,38,39,.4);border-radius:18px}
body.pm-premium #coachChips .chipbtn b{font-size:14.5px}
body.pm-premium #coachChips .chipbtn span{font-size:var(--ui-meta,14px);color:var(--ink-3);white-space:nowrap}/* the composer stays put and grows */

.chatdock{position:sticky;bottom:calc(84px + env(safe-area-inset-bottom));z-index:3;padding:10px 0 4px;background:linear-gradient(180deg,rgba(251,250,247,0),rgba(251,250,247,.96) 30%)}
body.pm-premium .chatrow{align-items:flex-end;gap:8px}
body.pm-premium .chatrow textarea{min-height:50px;max-height:168px;padding:14px 16px;border-radius:22px;font-size:16px;line-height:1.35;background:rgba(255,255,255,.82);box-shadow:0 1px 0 #fff inset,0 12px 26px -18px rgba(37,38,39,.45);border:1px solid rgba(255,255,255,.98);overflow-y:auto}
body.pm-premium .chatrow .mini{flex:none;width:50px;height:50px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;background:var(--charcoal);color:#fff;border:none;box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 -2px 0 rgba(0,0,0,.35) inset,0 12px 24px -10px rgba(30,31,33,.6)}
body.pm-premium .chatrow .mini svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
body.pm-premium .chatrow .mini:active{transform:translateY(2px)}
body.pm-premium #chatNote{margin-top:6px;text-align:center;font-size:var(--ui-meta,14px)}
@media (min-width:900px){
  .chatdock{bottom:0}
  body.pm-premium #ask{max-width:760px;margin:0 auto}
  body.pm-premium #ask .chatbox{min-height:360px}
  .adam-head h1{font-size:44px}
}/* the Home object */

.ainsight{display:flex;flex-direction:column;gap:6px;margin-top:12px;padding:16px 18px 14px;border-radius:22px;background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.95);box-shadow:0 1px 0 #fff inset,0 20px 40px -22px rgba(37,38,39,.45);cursor:pointer;transition:transform .2s var(--ease),opacity .2s var(--ease)}
.ainsight.hide{display:none}
.ainsight.leaving{opacity:0;transform:scale(.98)}
.ainsight:active{transform:scale(.99)}
.ai-k{display:flex;align-items:center;gap:7px;font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.ai-k i{display:none}
.ai-t{font-size:16px;font-weight:700;line-height:1.4;color:var(--ink)}
.ai-foot{display:flex;align-items:center;justify-content:space-between;margin-top:4px}
.ai-go{font-size:14px;font-weight:800;color:var(--sky-lo)}
.ai-x{width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.8);font:inherit;font-size:18px;color:var(--ink-3);cursor:pointer;box-shadow:0 1px 0 #fff inset,0 6px 14px -10px rgba(37,38,39,.45)}
@media (min-width:1140px){}/* UNIVERSAL SEARCH. The field is the hero; results are open sections where
   type does the work, and a surface appears only where a hand needs to land. */

.sr-top{border-bottom:none;padding:calc(12px + env(safe-area-inset-top)) 18px 6px;background:var(--bg)}
.sr-field{display:flex;align-items:center;gap:12px;flex:1;min-width:0;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-pill);padding:12px 16px;box-shadow:var(--shadow-1)}
.sr-field svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--ink-3);stroke-width:2;stroke-linecap:round}
.sr-field input{flex:1;min-width:0;border:none;background:none;font:inherit;font-size:17px;font-weight:600;color:var(--ink);outline:none}
.sr-field input::-webkit-search-cancel-button{-webkit-appearance:none}
.sr-out{padding:10px 18px calc(40px + env(safe-area-inset-bottom))}
.sr-wrap{max-width:720px;margin:0 auto}
.sr-hd{display:flex;align-items:center;justify-content:space-between;font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:18px 0 8px}
.sr-hd .sr-clear{border:none;background:none;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--sky-lo,var(--accent));letter-spacing:0;text-transform:none;padding:4px 0;cursor:pointer}
.sr-sec{padding-bottom:6px;border-bottom:1px solid var(--hair-2)}
.sr-hero{padding:4px 0 14px;border-bottom:1px solid var(--hair-2);position:relative}
.sr-hero .sr-hd{margin-top:14px}
.sr-title{font-family:var(--display),Georgia,serif;font-weight:500;font-size:30px;letter-spacing:-.02em;line-height:1.08;margin:0 0 6px;color:var(--ink)}
.sr-title small{font-family:inherit;font-size:15px;color:var(--ink-3);font-weight:500;letter-spacing:0}
.sr-status{font-size:14px;font-weight:800;margin-bottom:2px}
.sr-status.s-up{color:var(--ok)} .sr-status.s-low{color:var(--warn)} .sr-status.s-ok,.sr-status.s-none{color:var(--ink-2)}
.sr-meta{font-size:14px;font-weight:600;color:var(--ink-2);line-height:1.5}
.sr-meta b{color:var(--ink)}
.sr-note{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:8px;line-height:1.45}
.sr-none{font-size:14px;font-weight:600;color:var(--ink-3);padding:8px 0;line-height:1.5}
.sr-facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin:12px 0 2px}
.sr-fact{display:flex;flex-direction:column;gap:1px}
.sr-fact b{font-size:20px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.sr-fact span{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.sr-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.sr-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 0;border:none;border-bottom:1px solid var(--hair-2);background:none;font:inherit;color:var(--ink);cursor:pointer;border-radius:0}
.sr-row:last-child{border-bottom:none}
.sr-row.plain{cursor:default}
.sr-rt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sr-row .n{font-size:15px;font-weight:700}
.sr-row .n em{font-style:normal;font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--sky-lo,var(--accent));margin-left:6px}
.sr-row .m{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-row.food .m{white-space:normal}
.sr-row>b{font-size:20px;color:var(--ink-3);font-weight:500}
.sr-row .sr-num{font-size:17px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.sr-thumb{width:44px;height:34px;flex:none;display:flex;align-items:center;justify-content:center}
.sr-thumb img,.sr-thumb svg{max-width:44px;max-height:34px;display:block}
.sr-thumb.ob-set{width:44px;height:34px} .sr-thumb .ob-set{width:44px;height:34px}
.sr-row .fi{width:34px;height:34px;flex:none}
.sr-thumb.gear{width:34px;height:34px;border-radius:10px;background:var(--surface-subtle);border:1px solid var(--hair-2)}
.sr-fit{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ok);background:rgba(22,155,98,.1);border-radius:999px;padding:4px 9px;flex:none;white-space:nowrap}
.sr-fit.no{color:var(--ink-3);background:var(--surface-strong)}
.sr-go{flex:none;border:1px solid var(--hair);background:var(--surface);border-radius:var(--r-pill);padding:8px 14px;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-1)}
.sr-go:disabled{color:var(--ink-3);box-shadow:none}
.sr-side{display:none}
.sr-hero.rich{display:grid;grid-template-columns:minmax(0,1fr) 84px;column-gap:14px;align-items:start}
.sr-hero.rich .sr-side{display:flex;flex-direction:column;align-items:center;gap:8px;padding-top:36px}
.sr-side .sr-anat{width:64px;flex:none} .sr-anat svg{width:100%;display:block} .sr-side .sr-anat.big{width:76px}
.sr-anat .sil circle,.sr-anat .sil rect{fill:var(--surface-subtle)}
.sr-objwrap{width:84px;height:54px;display:flex;align-items:center;justify-content:center}
.sr-objwrap .ob-set{width:84px;height:54px} .sr-objwrap>img{max-width:84px;max-height:54px}
.sr-also{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);align-items:center}
.sr-also button{border:1px solid var(--hair);background:var(--surface);border-radius:var(--r-pill);padding:6px 12px;font:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-2);cursor:pointer}
.sr-askline{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:none;background:none;padding:16px 0;font:inherit;font-size:14.5px;font-weight:700;color:var(--ink);cursor:pointer}
.sr-askline i{display:none}
.sr-askline span{flex:1} .sr-askline b{font-size:20px;color:var(--ink-3);font-weight:500}
.sr-hero.adam .sr-q{font-family:var(--display),Georgia,serif;font-size:22px;line-height:1.25;letter-spacing:-.01em;margin:2px 0 4px;color:var(--ink)}
.sr-reply{font-size:16px;line-height:1.55;font-weight:500;color:var(--ink);margin-top:4px}
.sr-think{display:flex;align-items:center;gap:10px;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);padding:6px 0}
.sr-starts{display:flex;flex-direction:column}
.sr-start{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 0;border:none;border-bottom:1px solid var(--hair-2);background:none;font:inherit;font-size:16px;font-weight:700;color:var(--ink);cursor:pointer;border-radius:0}
.sr-start:last-child{border-bottom:none}
.sr-start::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink-3);flex:none;opacity:.6}
.sr-preview{margin:10px 0 2px;display:flex;flex-direction:column;gap:8px}
.sr-preview.hide{display:none}
.sr-pvday{display:flex;flex-direction:column;gap:2px;font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);line-height:1.4}
.sr-pvday b{color:var(--ink);font-weight:800}
.sr-hero.split .ap-week{margin-top:10px}
.sr-hero .cact{margin-top:12px}
@media (min-width:900px){
  .sr-top{padding:36px 28px 8px;justify-content:center}
  .sr-field{max-width:760px;width:100%;padding:16px 22px;border-radius:22px}
  .sr-field input{font-size:26px;font-weight:600}
  .sr-field svg{width:24px;height:24px}
  .sr-out{padding:16px 28px 64px}
  .sr-wrap,.sr-empty{max-width:760px;margin:0 auto}
  .sr-title{font-size:38px}
}
@media (min-width:1140px){
  .sr-hero.rich{grid-template-columns:minmax(0,1fr) 220px;column-gap:40px}
  .sr-hero.rich .sr-side{padding-top:44px;gap:18px}
  .sr-side .sr-anat{width:130px} .sr-side .sr-anat.big{width:160px}
  .sr-objwrap{width:200px;height:110px} .sr-objwrap .ob-set{width:200px;height:110px} .sr-objwrap>img{max-width:200px;max-height:110px}
}/* THE HANDS-ON TUTORIAL. Ceramic Frost over the real app: the surroundings go
   soft and pale, the target stays crisp inside an icy edge, a ghost tap shows
   the move once, and the caption is a small object parked beside the control,
   never on it. */

.tut{position:fixed;inset:0;z-index:var(--z-tut);pointer-events:none;opacity:1;transition:opacity .25s var(--ease)}
.tut.hide{display:none}
.tut.leaving{opacity:0}
.tsh,.tbub,.thello{pointer-events:auto}
.tsh{position:fixed;background:rgba(244,243,240,.6);-webkit-backdrop-filter:blur(3px) saturate(.55);backdrop-filter:blur(3px) saturate(.55);transition:left .28s var(--ease),top .28s var(--ease),width .28s var(--ease),height .28s var(--ease),opacity .28s var(--ease),background-color .28s var(--ease)}
:root[data-theme="dark"] .tsh{background:rgba(9,10,11,.62)}
.tut.soft .tsh{background:rgba(244,243,240,.28);-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none}
.tring{position:fixed;border-radius:18px;pointer-events:none;transition:left .28s var(--ease),top .28s var(--ease),width .28s var(--ease),height .28s var(--ease),opacity .28s var(--ease);
  box-shadow:0 0 0 2px var(--sky-lo,#8792A2),0 0 0 9px rgba(164,173,187,.16),0 22px 44px -20px rgba(37,38,39,.35)}
.tut.soft .tring{box-shadow:0 0 0 2px rgba(135,146,162,.55),0 0 0 8px rgba(164,173,187,.1)}
.tghost{position:fixed;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;pointer-events:none;z-index:2;
  background:rgba(135,146,162,.28);border:2px solid var(--sky-lo,#8792A2);box-shadow:0 6px 16px -6px rgba(37,38,39,.5);opacity:0}
.tghost.hide{display:none}
.tghost.go{animation:tghost .9s var(--ease) both}
@keyframes tghost{0%{opacity:0;transform:scale(1.7)}28%{opacity:1;transform:scale(1)}42%{transform:scale(.72)}62%{transform:scale(1)}100%{opacity:0;transform:scale(1)}}
.tut-press{transform:scale(.95)!important;transition:transform .12s var(--ease)!important}
.tbub{position:fixed;left:16px;top:0;width:calc(100% - 32px);max-width:380px;color:var(--ink);border-radius:20px;padding:13px 16px 11px;
  background:var(--frost,rgba(255,255,255,.88));-webkit-backdrop-filter:blur(18px) saturate(1.25);backdrop-filter:blur(18px) saturate(1.25);
  border:1px solid var(--frost-edge,rgba(255,255,255,.95));box-shadow:0 1px 0 #fff inset,0 24px 50px -22px rgba(37,38,39,.45);transition:top .28s var(--ease),left .28s var(--ease)}
:root[data-theme="dark"] .tbub{box-shadow:0 24px 50px -22px rgba(0,0,0,.7)}
.tstep{display:flex;gap:4px;align-items:center;min-height:4px;margin-bottom:8px}
.tstep i{width:14px;height:3px;border-radius:3px;background:rgba(135,146,162,.18);display:block;transition:background var(--t-norm) var(--ease)}
.tstep i.on{background:var(--sky-lo,#8792A2)}
.tturn{font-size:var(--ui-meta,14px);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--sky-lo,#8792A2);margin-bottom:2px;animation:tutIn .25s var(--ease) both}
.tturn.hide{display:none}
.th{font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.tp{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);line-height:1.5;margin-top:4px}
.tp:empty{display:none}
.tfoot{display:flex;align-items:center;gap:12px;margin-top:10px;min-height:22px}
.tnext{border:none;border-radius:999px;background:#141516;color:var(--ink-invert);font-family:inherit;font-size:var(--ui-meta,14px);font-weight:700;padding:9px 14px;cursor:pointer}
.tnext.hide{display:none}
.tskip{background:none;border:none;font-family:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);cursor:pointer;padding:6px 0;margin-left:auto}
.thello{position:fixed;left:20px;right:20px;top:50%;transform:translateY(-50%);max-width:360px;margin:0 auto;text-align:center;color:var(--ink);border-radius:26px;padding:30px 24px 18px;
  background:var(--frost,rgba(255,255,255,.9));-webkit-backdrop-filter:blur(20px) saturate(1.25);backdrop-filter:blur(20px) saturate(1.25);
  border:1px solid var(--frost-edge,rgba(255,255,255,.95));box-shadow:0 1px 0 #fff inset,0 30px 70px -26px rgba(37,38,39,.5);animation:tutIn .35s var(--ease) both}
.thello.done{animation:tutDone .55s var(--ease) both}
.tmark{width:54px;height:54px;border-radius:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;background:#fff;border:1px solid var(--frost-edge,#fff);box-shadow:0 12px 26px -14px rgba(30,31,33,.45)}
.tmark img{width:32px;height:32px;display:block;border-radius:9px}
.thh{font-family:var(--display),Georgia,serif;font-weight:500;font-size:30px;letter-spacing:-.02em;line-height:1.1}
.thp{font-size:15px;font-weight:600;color:var(--ink-2);line-height:1.5;margin-top:10px}
.thello.done .thp{font-family:var(--display),Georgia,serif;font-weight:500;font-size:19px;color:var(--ink);letter-spacing:-.01em;margin-top:8px}
.tgo{width:100%;border:none;border-radius:16px;background:var(--accent);color:var(--accent-ink);font-family:inherit;font-size:15.5px;font-weight:700;padding:16px;margin-top:22px;cursor:pointer;
  box-shadow:0 12px 26px -14px rgba(135,146,162,.7)}
:root:not([data-theme="dark"]) body.pm-premium .tgo{background:linear-gradient(180deg,rgba(255,255,255,0.20) 0%,rgba(255,255,255,0.00) 100%),linear-gradient(#A7CFF2,#A7CFF2);color:#fff}
.tgo.hide{display:none}
.tgo:active{transform:scale(.98)}
.tno{width:100%;background:none;border:none;font-family:inherit;font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);padding:13px;cursor:pointer}
.tno.hide{display:none}
@keyframes tutIn{from{opacity:0;transform:translateY(-50%) scale(.97)}to{opacity:1;transform:translateY(-50%)}}
@keyframes tutDone{0%{opacity:0;transform:translateY(-50%) scale(.94)}60%{transform:translateY(-50%) scale(1.01)}100%{opacity:1;transform:translateY(-50%)}}
.tturn{animation-name:tutTurn}
@keyframes tutTurn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
@media (min-width:900px){
  .tbub{max-width:340px;padding:14px 18px 12px}
  .thello{max-width:380px;padding:34px 30px 20px}
  .thh{font-size:34px}
}
@media (prefers-reduced-motion: reduce){
  .tsh,.tring,.tbub,.tut{transition:none}
  .tghost.go,.thello,.thello.done,.tturn{animation:none}
  .tut-press{transform:none!important}
  .tring{box-shadow:0 0 0 3px var(--sky-lo,#8792A2),0 0 0 10px rgba(164,173,187,.22)}
}/* the balance sheet's rows (once shared with the old tour's summary card) */

.tsum{margin-top:20px;text-align:left;display:flex;flex-direction:column;gap:1px}
.tsum .row{display:flex;justify-content:space-between;gap:12px;padding:10px 2px;border-bottom:1px solid var(--hair-2)}
.tsum .row:last-child{border-bottom:none}
.tsum .k{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3)}
.tsum .v{font-size:14px;font-weight:700;color:var(--ink);text-align:right}/* FOOD DATA. The review keeps one line per food: name and where it came from,
   amount and numbers, a stepper for the amount. The source sits in the editor. */

.aifitem{align-items:center}
.aiftag.est{opacity:.8}
.aifwarn{display:block;font-size:var(--ui-meta,14px);font-weight:700;color:var(--warn);margin-top:3px}
.aifq{display:flex;gap:4px;flex:none}
.aifq button{width:30px;height:30px;border-radius:50%;border:1px solid var(--hair);background:var(--surface);font:inherit;font-size:16px;font-weight:700;color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.aifq button:active{transform:scale(.94)}
.fsserv{display:flex;align-items:center;gap:10px;margin:10px 0 2px}
.fsserv label{font-size:var(--ui-meta,14px);font-weight:700;color:var(--ink-3);flex:none}
.fsserv input{flex:1;min-width:0}
.fssrc{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-3);margin-top:8px;line-height:1.45}
.fssrc.hide{display:none}
.fskeep{display:flex;align-items:center;gap:10px;margin:12px 0 2px;font-size:14px;font-weight:700;color:var(--ink-2);cursor:pointer}
.fskeep.hide{display:none}
.fskeep input{width:20px;height:20px;accent-color:var(--sky-lo,var(--accent));flex:none}/* ASSET PACK objects. These rules only ever match markup the pack produced. */

.body-r{position:relative;width:100%;display:block}
.body-r img{display:block;width:100%;height:auto}
.body-r .br-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;transition:opacity .4s ease}
.body-r .br-layer{filter:saturate(.42) brightness(1.02)}.body-r .bm-up{opacity:1}.body-r .bm-ok{opacity:.35}.body-r .bm-low{opacity:.5;filter:hue-rotate(188deg) saturate(.75) brightness(1.06)}
.body-r .br-tap{position:absolute;display:block;border-radius:50%;cursor:pointer}
.body-r .br-tap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wh-body .body-r,.srfig .body-r,.sess-mini .body-r,.sr-fig .body-r{width:100%}
.tsumbody .body-r{width:92px}
.balwrap.rendered figure .body-r{width:100%;max-width:170px;margin:0 auto}
@media (min-width:1100px){.balwrap.rendered figure .body-r{max-width:230px}}
.lr{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:visible}
.lr img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.lr-obj{height:100%;width:auto}
.loadvis:has(.lr-obj){height:118px}.runload:has(.lr-obj){height:84px}.runload:has(.lr-bar){height:76px}/* The bar file is seen from the side, collars at 24.2 and 75.8 percent of its width, shaft centre at 44.7 percent of its
   height. Every plate file is a 600 square on one scale, a 45 fills 94.5 percent of it, so one width for all and a
   negative margin per plate equal to its own transparent edge keeps them touching. A 45 is a fifth of the bar. */

.lr-bar{position:relative;width:100%;height:auto;display:block;overflow:visible}
.lr-bar .lr-barimg{width:100%;height:auto;max-height:none;position:relative;z-index:1}
.lr-side{position:absolute;top:44.7%;transform:translateY(-50%);display:flex;align-items:center;z-index:2;width:24.2%}
.lr-side.lr-l{right:75.8%;flex-direction:row-reverse}.lr-side.lr-r{left:75.8%}
.lr-plate{width:86.8%;height:auto;max-width:none;max-height:none;flex:none;position:relative;margin-inline:var(--edge)}
.lr-plate.lr-plate-1-25kg{--edge:-20.61%}.lr-plate.lr-plate-10kg{--edge:-8.90%}.lr-plate.lr-plate-10lb{--edge:-13.09%}.lr-plate.lr-plate-15kg{--edge:-5.71%}.lr-plate.lr-plate-2-5kg{--edge:-16.78%}.lr-plate.lr-plate-2-5lb{--edge:-20.69%}.lr-plate.lr-plate-20kg{--edge:-2.82%}.lr-plate.lr-plate-25lb{--edge:-8.46%}.lr-plate.lr-plate-35lb{--edge:-5.71%}.lr-plate.lr-plate-45lb{--edge:-2.39%}.lr-plate.lr-plate-5kg{--edge:-13.16%}.lr-plate.lr-plate-5lb{--edge:-16.56%}
.lr-side.lr-r .lr-plate+.lr-plate{margin-left:calc(var(--edge) - 64%)}
.lr-side.lr-l .lr-plate+.lr-plate{margin-right:calc(var(--edge) - 64%)}
.fi-r{object-fit:contain}
.mp{width:18px;height:18px;flex:none;display:inline-block;vertical-align:-4px;margin-right:6px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.wh-m i{display:inline-flex;align-items:center}.wh-m i .mp{width:16px;height:16px;margin-right:5px;color:var(--sky)}
.homebanner{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-height:126px;margin-top:14px;padding:16px 18px;border:1px solid var(--frost-edge);border-radius:24px;
  font:inherit;color:var(--ink);text-align:left;cursor:pointer;position:relative;overflow:hidden;
  background:linear-gradient(90deg,rgba(255,255,255,.86) 0%,rgba(255,255,255,.55) 55%,rgba(255,255,255,.1) 100%),var(--bimg) right center/cover no-repeat;
  box-shadow:0 1px 0 #fff inset,0 18px 40px -22px rgba(66,67,68,.4)}
.homebanner.hide{display:none}
.homebanner:active{transform:scale(.99)}
.hb-k{font-size:var(--ui-meta,14px);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.hb-h{font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.hb-l{font-size:var(--ui-meta,14px);font-weight:600;color:var(--ink-2);max-width:68%}
.hb-go{position:absolute;right:16px;bottom:16px;width:34px;height:34px;border-radius:50%;background:var(--charcoal,#151617);box-shadow:0 8px 18px -8px rgba(30,31,33,.6)}
.hb-go::after{content:"";position:absolute;left:12px;top:11px;width:8px;height:8px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}
@media (min-width:1100px){.homebanner{min-height:150px;padding:22px 24px}.hb-h{font-size:26px}}
.wkhero .wh-start{margin-top:16px;width:100%;display:block}
@media (min-width:900px){.wkhero .wh-start{width:auto;padding-inline:28px;margin-top:22px}}
.fi-ic{position:relative;display:inline-block}
.fi-ic img{position:absolute;left:-10%;top:-10%;width:120%;height:120%;object-fit:contain;transition:opacity .18s ease}
.fi-ic .ic-a{opacity:0}
button:active .fi-ic .ic-a,button.on .fi-ic .ic-a,.on>.fi-ic .ic-a,button[aria-pressed=true] .fi-ic .ic-a{opacity:1}
button:active .fi-ic .ic-d,button.on .fi-ic .ic-d,.on>.fi-ic .ic-d,button[aria-pressed=true] .fi-ic .ic-d{opacity:0}
button:disabled .fi-ic{opacity:.45;filter:saturate(.3)}
.vessel.vr .vr-men{position:absolute;left:0;width:100%;height:auto;transform:translateY(-50%);transition:top .6s ease,opacity .4s ease;pointer-events:none}
#sessWStep{position:relative}
#sessWStep.has-hero::before{content:"";position:absolute;left:-16px;right:-16px;top:-14px;height:46%;border-radius:22px 22px 0 0;
  background:var(--wm-hero) center 38%/cover no-repeat;opacity:.42;pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 40%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 40%,transparent 100%)}
#sessWStep.has-hero>*{position:relative}
.hero.has-stage{background:var(--stage) right center/cover no-repeat,linear-gradient(150deg,rgba(255,255,255,.92) 0%,rgba(239,238,235,.88) 100%)}
.hero.has-stage::before{content:"";position:absolute;inset:0;left:0;top:0;right:0;width:auto;height:auto;border-radius:0;background:linear-gradient(90deg,rgba(255,255,255,.5) 0%,rgba(255,255,255,.28) 45%,rgba(255,255,255,.5) 100%);pointer-events:none}
.hero.has-stage>*{position:relative}
.vessel.vr,body.pm-premium .vessel.vr{border:0;background:none;box-shadow:none;width:88px;height:176px;border-radius:0;overflow:visible}
.vessel.vr .vr-fill{mix-blend-mode:multiply;opacity:.9}
.vessel.vr img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.vessel.vr .vr-fill{transition:clip-path .6s ease;transform:translateX(2.5%) scaleX(1.038)}/* the fill art sits left of and narrower than the shell: centre it inside the walls */ 
.tabs button .dk img{width:22px;height:22px;display:block}
.tabs button .dk-on,.tabs button.on .dk-off{display:none}.tabs button.on .dk-on{display:block}
:root:not([data-theme="dark"]) body.pm-premium.has-env{
  background:
    radial-gradient(900px 560px at 50% -12%, rgba(255,255,255,.9) 0%, rgba(255,255,255,0) 62%),
    linear-gradient(180deg,rgba(251,250,247,.62) 0%,rgba(244,243,240,.72) 100%),
    var(--env-p) center top/cover no-repeat;
  background-attachment:fixed}
@media (min-width:1100px){:root:not([data-theme="dark"]) body.pm-premium.has-env{
  background:
    radial-gradient(900px 560px at 50% -12%, rgba(255,255,255,.9) 0%, rgba(255,255,255,0) 62%),
    linear-gradient(180deg,rgba(251,250,247,.66) 0%,rgba(244,243,240,.76) 100%),
    var(--env-d) center center/cover no-repeat;
  background-attachment:fixed}}
body.has-grain .card{background-image:var(--grain);background-size:256px 256px;background-blend-mode:soft-light}
body.has-grain .card.pad{background-image:none}
