[hidden]{display:none!important}
:root{
  --bg:#E8E8E3;--surface:#FFFFFF;--sunk:#F1F1EC;--ink:#1A1D21;--muted:#5C6167;--line:#D3D3CC;
  --r3:#2E8B57;--r2:#C98F00;--r1:#1F5FAD;--r0:#C0392B;--dl:#8A9096;--warn:#B4500E;--good:#2E8B57;
  --kcal:#C98F00;--prot:#C0392B;--water:#1F6FB5;--steps:#2E8B57;--sleep:#6B5FA8;--onplate:#fff;
  color-scheme:light;box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#15181B;--surface:#202428;--sunk:#1A1E21;--ink:#ECECE7;--muted:#9AA0A6;--line:#343A40;--warn:#E8894A;
  --water:#4A93D6;--r1:#3D7BCF;--sleep:#8F84CC;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#15181B;--surface:#202428;--sunk:#1A1E21;--ink:#ECECE7;--muted:#9AA0A6;--line:#343A40;--warn:#E8894A;--water:#4A93D6;--r1:#3D7BCF;--sleep:#8F84CC;color-scheme:dark}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 Manrope,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}
h1,h2,h3,.cond,.btn,.tab,.plate,.num,.big{font-family:"Chakra Petch","Arial Narrow",system-ui,sans-serif}
h1{font-size:2rem;line-height:1.05;margin:0;font-weight:700}
h2{font-size:1.4rem;margin:0 0 .5rem;font-weight:600;line-height:1.15}
h3{font-size:1.2rem;margin:0;font-weight:600;line-height:1.2}
p{margin:.25rem 0}
a{color:var(--r1)}
.muted{color:var(--muted)}.small{font-size:.875rem}.tiny{font-size:.78rem}
main{max-width:640px;margin:0 auto;padding:10px 14px 190px}
.top{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px}
.top .date{font-size:.95rem;color:var(--muted)}.top h1{font-size:1.85rem}.top>div:first-child{min-width:0}
.icon-btn{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:1.2rem;display:grid;place-items:center;cursor:pointer}
.sync{font-size:.78rem;color:var(--muted);display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 4px}.sync span{display:none}.sync.off span{display:inline}
.sync i{width:8px;height:8px;border-radius:50%;background:var(--dl);display:inline-block}
.sync.ok i{background:var(--r3)}.sync.busy i{background:var(--r2)}.sync.off i{background:var(--r0)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0}
.card.flat{background:transparent}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.between{display:flex;justify-content:space-between;align-items:center;gap:10px}
.grow{flex:1;min-width:0}
.btn{appearance:none;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font-size:1.1rem;font-weight:600;padding:11px 16px;border-radius:11px;cursor:pointer;min-height:48px;letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.sm{font-size:.95rem;padding:6px 11px;min-height:38px}
.btn.wide{width:100%}
.btn.danger{background:transparent;color:var(--r0);border-color:var(--r0)}
.btn:disabled{opacity:.4}
.link{background:none;border:0;color:var(--r1);font:inherit;padding:4px 0;cursor:pointer;text-decoration:underline}
input[type=number],input[type=text],input[type=password],input[type=url],input[type=search],select,textarea{width:100%;font:500 1.05rem Manrope,sans-serif;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--sunk);color:var(--ink);min-height:44px}
textarea{min-height:80px;resize:vertical}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}
label.f{display:block;margin:10px 0}
label.f>span{display:block;font-weight:600;margin-bottom:4px;font-size:.95rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{flex:1 1 auto;min-height:40px;padding:6px 10px;border-radius:9px;border:1px solid var(--line);background:var(--sunk);color:var(--ink);font:500 .95rem Manrope,sans-serif;cursor:pointer}
.seg button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.seg.tight button{flex:0 0 auto}
.q{margin:10px 0}.q>p{font-weight:600;margin-bottom:6px}

/* plates */
.plate{--c:var(--dl);width:78px;height:78px;flex:none;border-radius:50%;background:var(--c);color:var(--onplate);display:grid;place-items:center;position:relative;box-shadow:inset 0 0 0 6px rgba(0,0,0,.14)}
.plate::after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 2px rgba(0,0,0,.2)}
.plate b{font-size:1.9rem;line-height:1;font-weight:700;transform:translateY(-19px)}
.plate span{position:absolute;bottom:12px;font-size:.72rem;font-weight:600;letter-spacing:.06em}
.plate.sm{width:52px;height:52px;box-shadow:inset 0 0 0 4px rgba(0,0,0,.14)}
.plate.sm b{font-size:1.25rem;transform:translateY(-12px)}.plate.sm span{bottom:5px;font-size:.58rem}.plate.sm::after{width:7px;height:7px}
.p3{--c:var(--r3)}.p2{--c:var(--r2)}.p1{--c:var(--r1)}.p0{--c:var(--r0)}.pd{--c:var(--dl)}
.strip{display:flex;gap:6px;margin:10px 0 2px;flex-wrap:wrap}
.chip{--c:var(--dl);min-width:34px;height:34px;border-radius:50%;background:var(--c);color:var(--onplate);display:grid;place-items:center;font:600 .95rem "Chakra Petch",sans-serif;opacity:.3;border:0}
.chip.on{opacity:1;outline:3px solid var(--ink);outline-offset:2px}.chip.past{opacity:.75}

/* home */
.coach{border-left:4px solid var(--ink)}
.note{display:flex;gap:10px;padding:6px 0;align-items:flex-start}
.note i{flex:none;width:10px;height:10px;border-radius:50%;margin-top:7px;background:var(--muted)}
.note.act i{background:var(--r1)}.note.warn i{background:var(--warn)}.note.good i{background:var(--good)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;min-height:112px;display:flex;flex-direction:column;gap:4px;text-align:left;color:var(--ink);font:inherit}
button.tile{cursor:pointer}
.tile .lbl{font-size:.82rem;color:var(--muted);font-weight:600}
.tile .big{font-size:1.75rem;font-weight:700;line-height:1}
.tile .big small{font-size:.95rem;font-weight:500;color:var(--muted);font-family:Manrope,sans-serif}
.tile .sub{font-size:.8rem;color:var(--muted)}
.bar{height:8px;border-radius:5px;background:var(--sunk);overflow:hidden;border:1px solid var(--line)}
.bar i{display:block;height:100%;background:var(--c,var(--ink));border-radius:5px;max-width:100%}
.tile .acts{display:flex;gap:6px;margin-top:auto}
.tile .acts button{flex:1;min-height:36px;border-radius:9px;border:1px solid var(--line);background:var(--sunk);color:var(--ink);font:600 .9rem Manrope,sans-serif;cursor:pointer}
.next{display:flex;gap:14px;align-items:center}
.quick{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(62px + env(safe-area-inset-bottom,0px));width:min(612px,calc(100% - 24px));display:flex;gap:8px;z-index:6}
.quick button{flex:1;min-height:50px;border-radius:13px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font:600 1.02rem "Chakra Petch",sans-serif;letter-spacing:.02em;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.quick button.alt{background:var(--surface);color:var(--ink);border-color:var(--line)}

/* training */
.hero{display:flex;gap:14px;align-items:center;margin:6px 0 4px}
.ex header{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:6px}
.ex h3 button{all:unset;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.cue{font-size:.88rem;color:var(--muted);margin:2px 0 8px}
.warm{font-size:.85rem;color:var(--muted);margin:0 0 8px}
.sets{display:grid;grid-template-columns:24px 1fr 74px 62px 48px;gap:6px 8px;align-items:center}
.sets .hd{font-size:.75rem;color:var(--muted)}
.k{font:600 1.05rem "Chakra Petch",sans-serif;color:var(--muted);text-align:center}
.tgt{font:600 1.12rem "Chakra Petch",sans-serif;line-height:1.1}
.tgt small{font:400 .76rem Manrope,sans-serif;color:var(--muted)}
.ck{width:48px;height:44px;border-radius:10px;border:2px solid var(--line);background:transparent;color:var(--ink);font-size:1.3rem;cursor:pointer}
.ck.done{background:var(--r3);border-color:var(--r3);color:#fff}
.flag{font-size:.875rem;color:var(--warn);margin:4px 0 8px}
.fb{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.grid{overflow-x:auto}
.grid table{border-collapse:separate;border-spacing:6px}
.grid th{font:600 .82rem Manrope,sans-serif;color:var(--muted);text-align:left;white-space:nowrap}
.cell{width:38px;height:38px;border-radius:50%;border:2px solid var(--line);background:transparent;cursor:pointer;font:600 .9rem "Chakra Petch",sans-serif;color:var(--muted)}
.cell.done{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.cell.next{border-color:var(--ink);color:var(--ink)}
.cell:disabled{cursor:default}
.slot{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.slot:last-child{border-bottom:0}
.slot .nm{flex:1;min-width:0}
.ib{width:38px;height:38px;flex:none;border-radius:9px;border:1px solid var(--line);background:var(--sunk);color:var(--ink);cursor:pointer;font-size:1rem}
.fm{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}
.fm:last-child{border-bottom:0}
.fm .seg button{flex:0 0 auto;padding:5px 8px;font-size:.84rem;min-height:36px}
.subtabs{display:flex;gap:6px;margin:6px 0 4px}
.subtabs button{flex:1;min-height:40px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--muted);font:600 1rem "Chakra Petch",sans-serif;cursor:pointer}
.subtabs button.on{background:var(--surface);color:var(--ink);border-color:var(--ink)}
.frames{position:relative;aspect-ratio:4/3;background:var(--sunk);border-radius:12px;overflow:hidden}
.frames img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.frames img.b{animation:flip 1.6s steps(1) infinite}
@keyframes flip{0%{opacity:0}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.frames img.b{animation:none;opacity:0}}
.video{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#000;margin:10px 0}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
ol.ins{padding-left:1.2rem;margin:8px 0}ol.ins li{margin:4px 0}

/* food */
.daynav{display:flex;align-items:center;justify-content:space-between;gap:8px}
.macros{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}
.macros div{font-size:.8rem;color:var(--muted)}
.macros small{font:400 .8rem Manrope,system-ui,sans-serif;color:var(--muted)}.macros b{display:block;font:700 1.25rem "Chakra Petch",sans-serif;color:var(--ink)}
.macros .bar.vb{position:relative}.macros .bar.vb i{position:relative;z-index:1}
.macros .bar.vb i.ok{background:var(--good)}.macros .bar.vb i.low{background:var(--r1)}.macros .bar.vb i.high{background:var(--r0)}
.meal h3{font-size:1.05rem;color:var(--muted);margin:14px 0 4px}
.fitem{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);width:100%;background:none;border-left:0;border-right:0;border-top:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.fitem .nm{flex:1;min-width:0}
.fitem .nm span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fitem .kc{font:600 1.05rem "Chakra Petch",sans-serif}
.methods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.methods button{min-height:74px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 .95rem Manrope,sans-serif;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.methods button b{font-size:1.4rem;font-weight:400;line-height:1}
.review-item{border:1px solid var(--line);border-radius:12px;padding:10px;margin:8px 0}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.more-nut{margin-top:8px;border-top:1px dashed var(--line);padding-top:8px}
.more-nut *{box-sizing:border-box} /* details content is slotted, so box-sizing:inherit doesn't reach it in Chromium */
.more-nut summary{cursor:pointer;color:var(--ink);font-weight:500}
.more-nut .mgrid{margin-top:8px}
.mgrid .unit{color:var(--muted);font-weight:400}
.mgrid label{font-size:.75rem;color:var(--muted)}
.mgrid input{padding:6px;min-height:38px;font-size:1rem}
.scan video{width:100%;border-radius:12px;background:#000;aspect-ratio:4/3;object-fit:cover}

/* progress */
.lc{position:relative;height:180px;margin:10px 0 0 36px}
.lc-plot{position:absolute;inset:0}
.lc-plot svg{width:100%;height:100%;display:block;overflow:visible}
.lc-grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:3 4}
.lc-y span{position:absolute;left:-36px;width:30px;text-align:right;transform:translateY(-50%);font:500 .75rem Manrope,sans-serif;color:var(--muted)}
.lc-empty{position:absolute;inset:0;display:grid;place-items:center}
.cdot{position:absolute;width:9px;height:9px;padding:0;border:0;border-radius:50%;background:var(--c);opacity:.7;transform:translate(-50%,-50%);cursor:pointer}
.cdot::before{content:"";position:absolute;inset:-8px}
.cdot:hover,.cdot.show,.cdot:focus-visible{opacity:1;outline:2px solid var(--ink);outline-offset:1px;z-index:2}
.cdot:hover::after,.cdot.show::after,.cdot:focus-visible::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);white-space:nowrap;background:var(--ink);color:var(--bg);font:500 .76rem Manrope,sans-serif;padding:5px 8px;border-radius:7px;pointer-events:none}
.cdot.r::after{left:auto;right:-6px;transform:none}.cdot.l::after{left:-6px;transform:none}
.lc-x{position:relative;height:20px;margin:6px 0 0 36px}
.lc-x span{position:absolute;top:0;transform:translateX(-50%);font-size:.75rem;color:var(--muted);white-space:nowrap}
.lc-x span.first{transform:none;left:0!important}.lc-x span.last{transform:none;left:auto!important;right:0;color:var(--ink);font-weight:600}
table.wk{width:100%;border-collapse:collapse;font-size:.88rem}
table.wk th,table.wk td{padding:6px 4px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
table.wk th:first-child,table.wk td:first-child{text-align:left}
table.wk th{color:var(--muted);font-weight:600}
.scroll-x{overflow-x:auto}
.hist{padding:10px 0;border-bottom:1px solid var(--line)}
.hist:last-child{border-bottom:0}
pre.review{white-space:pre-wrap;font:inherit;margin:6px 0}
.copy{display:flex;gap:6px}
.copy input{font-size:.85rem}
.steps{padding-left:1.2rem}.steps li{margin:6px 0}
code{background:var(--sunk);padding:1px 5px;border-radius:5px;font-size:.88em}

/* chrome */
.tabs{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom,0px);z-index:5}
.tabs .tablist{display:flex;max-width:640px;width:100%}
.tab{flex:1;background:none;border:0;color:var(--muted);font-size:1.05rem;font-weight:600;padding:14px 4px;cursor:pointer;letter-spacing:.03em}
.tab.on{color:var(--ink);box-shadow:inset 0 3px 0 var(--ink)}
.rest-timer{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(62px + env(safe-area-inset-bottom,0px));width:min(612px,calc(100% - 24px));background:var(--ink);color:var(--bg);border-radius:14px;padding:10px 12px;display:flex;align-items:center;gap:10px;z-index:7}
.rest-timer .t{font:700 1.9rem "Chakra Petch",sans-serif;flex:1}
.rest-timer button{background:transparent;color:var(--bg);border:1px solid rgba(255,255,255,.35);border-radius:9px;padding:8px 12px;font:600 1rem "Chakra Petch",sans-serif;cursor:pointer}
:root[data-theme="dark"] .rest-timer button,.rest-timer button{border-color:color-mix(in srgb,var(--bg) 40%,transparent)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center;z-index:10}
.sheet{background:var(--surface);width:100%;max-width:640px;max-height:88vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(22px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}
.sheet .grab{width:40px;height:5px;border-radius:3px;background:var(--line);margin:-6px auto 10px}
.pick{display:block;width:100%;text-align:left;padding:12px 4px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:500 1rem Manrope,sans-serif;cursor:pointer}
.pick small{color:var(--muted)}
.toast{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;z-index:30;font-weight:500;max-width:90vw}
.center{text-align:center}
.empty{text-align:center;padding:34px 10px}
.spin{display:inline-block;width:18px;height:18px;border:3px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:sp 0.8s linear infinite;vertical-align:middle}
@keyframes sp{to{transform:rotate(360deg)}}
.brand{font:700 1.3rem "Chakra Petch",sans-serif;letter-spacing:.06em}
:focus-visible{outline:3px solid var(--r1);outline-offset:2px}
@media (prefers-reduced-motion:no-preference){.ck,.seg button,.btn,.tile .acts button{transition:background-color .12s,color .12s,transform .08s}.quick button:active,.tile .acts button:active{transform:scale(.97)}}

/* ===== new dashboard graphs (shared, both breakpoints) ===== */
.donut-wrap{display:flex;align-items:center;gap:18px}
.donut-legend{display:flex;flex-direction:column;gap:7px;font-size:.86rem}
.donut-legend span.sw{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:8px;flex:none}
.macro-foot{display:flex;align-items:center;justify-content:space-between;font-size:.84rem;padding-top:8px;margin-top:8px;border-top:1px solid var(--line)}
.macro-foot.net{font-size:.9rem;font-weight:600}
.barcol-wrap{display:flex;align-items:flex-end;gap:8px;height:130px}
.barcol{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.barcol .v{font-size:.75rem;color:var(--muted)}
.barcol .v.now{font-size:.75rem;color:var(--ink);font-weight:700}
.barcol i{width:100%;border-radius:5px 5px 0 0;background:var(--steps);display:block}
.barcol i.now{background:var(--ink)}
.daylabels{display:flex;gap:8px}
.daylabels span{flex:1;text-align:center;font-size:.75rem;color:var(--muted)}
.daylabels span.now{color:var(--ink);font-weight:600}
.weekdots{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;max-width:420px}
.weekdot-col{display:flex;flex-direction:column;align-items:center;gap:5px}
.weekdot-col .lbl{font-size:.75rem;font-weight:600;color:var(--muted)}
.weekdot-col .lbl.now{color:var(--ink);font-weight:700}
.weekdot{width:36px;height:36px;border-radius:50%;box-sizing:border-box;display:grid;place-items:center;font:700 .8rem "Chakra Petch",sans-serif;background:var(--sunk);border:2px solid var(--line);color:var(--muted)}
.weekdot.done{background:var(--good);border-color:var(--good);color:#fff}
.weekdot.planned{border-color:var(--ink);color:var(--ink);background:transparent}
.weekdot.today{border:3px solid var(--ink);color:var(--ink);background:transparent;box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 18%,transparent)}
.weekdot.today.gym{background:color-mix(in srgb,var(--ink) 12%,transparent)}
.weekdot.miss{border-color:var(--warn);color:var(--warn);background:transparent}
.weekdot.off{border-style:dashed;background:transparent;opacity:.8}
.wd-legend{display:flex;align-items:center;gap:14px;font-size:.75rem;color:var(--muted);flex-wrap:wrap}
.wd-legend span{display:flex;align-items:center;gap:5px}
.wd-legend i{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block;box-sizing:border-box}
.pick-row{display:flex;align-items:center;gap:8px}.pick-row .pick{flex:1}
.selbtn{width:30px;height:30px;flex:none;border-radius:50%;border:2px solid var(--line);background:transparent;color:var(--bg);font-weight:700;cursor:pointer}
.selbtn.on{background:var(--ink);border-color:var(--ink)}
.sheet-foot{position:sticky;bottom:-22px;background:var(--surface);padding:10px 0 4px}
.ci-list{margin:8px 0 0;padding-left:18px}.ci-list li{margin:4px 0}
.pick.on{background:var(--sunk);font-weight:600}
.vol-row .bar.vb{position:relative}
.vb .band{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--good) 22%,transparent)}
.vol-row .bar.vb i{position:relative;z-index:1}.vol-row .bar i.ok{background:var(--good)}.vol-row .bar i.low{background:var(--r1)}.vol-row .bar i.high{background:var(--warn)}
.prb{display:inline-block;margin-left:4px;font:700 .6rem Manrope,sans-serif;font-style:normal;color:#fff;background:var(--good);border-radius:4px;padding:1px 4px;vertical-align:2px}
.slot.ss,.card.ex.ss{border-left:3px solid var(--r1)}
.ss-head{margin:14px 0 -4px;font-size:.85rem;color:var(--r1);font-weight:600}
.ib.on{background:var(--ink);color:var(--bg)}
.macro-foot.tapable{cursor:pointer}
.linkish{all:unset;cursor:pointer}.linkish:hover{text-decoration:underline}
.cands{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}
.cands .pchip{min-height:30px;font-size:.8rem;padding:0 10px}
.cands .grams{display:inline-flex;align-items:center;gap:6px}.cands .grams input{width:80px;min-height:30px;padding:4px 6px}
.snap-prev{display:block;max-width:100%;max-height:40vh;margin:8px auto;border-radius:10px}
.adj{border:1px solid var(--warn);border-radius:10px;padding:8px 10px;margin:8px 0}
.adj.easy{border-color:var(--good)}
.exnote{margin-top:8px;font-size:.9rem!important;min-height:36px!important;background:transparent!important;border-style:dashed!important}
.dose-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.dose-row:last-child{border-bottom:0}.dose-row.taken strong{color:var(--muted)}
.stack-h{font-size:.95rem;color:var(--muted);margin:14px 0 2px}
.calc select{min-height:38px;padding:6px}
.calc-out{margin-top:12px}
.nut-line{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}
.chips-pick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pchip{min-height:38px;padding:0 12px;border-radius:19px;border:1px solid var(--line);background:var(--sunk);color:var(--muted);font:500 .9rem Manrope,sans-serif;cursor:pointer}
.pchip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.keybad{border-color:var(--warn);border-left:4px solid var(--warn)}
.linkbtn{all:unset;cursor:pointer;color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.card.tap{cursor:pointer}
.card.tap:hover{border-color:color-mix(in srgb,var(--ink) 35%,var(--line))}
.next-acts{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.next-acts .btn{flex:1 1 0;min-width:88px}
.vol-row{display:flex;align-items:center;gap:12px}
.vol-row .m{width:80px;flex:none;font-size:.84rem;color:var(--muted)}
.vol-row .bar{flex-grow:1;height:14px;border-radius:7px;background:var(--sunk);overflow:hidden}
.vol-row .bar i{display:block;height:100%;background:var(--r1);border-radius:7px}
.vol-row .n{width:30px;flex:none;text-align:right;font-size:.82rem;color:var(--muted)}
.lift-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0}
.lift-row .n{font-size:.88rem}
.lift-row .val{font:700 .95rem "Chakra Petch",sans-serif}
.lift-row .chg{font-size:.75rem;width:38px;text-align:right}
.lift-row .chg.up{color:var(--good)}
.lift-row .chg.flat{color:var(--muted)}
.seg-sm{display:flex;gap:2px;background:var(--sunk);border-radius:8px;padding:2px}
.seg-sm button{min-height:26px;padding:0 8px;border:0;border-radius:6px;font:600 .75rem Manrope,sans-serif;cursor:pointer;background:transparent;color:var(--muted)}
.seg-sm button.on{background:var(--surface);color:var(--ink)}
.train-split{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap}
.train-split>div{flex:1;min-width:220px}
.train-split .divider{width:1px;align-self:stretch;background:var(--line)}
.drop{color:var(--water);display:inline-flex;vertical-align:-2px}
.water-big{font:700 2.1rem "Chakra Petch",sans-serif;margin-top:8px}
.water-big small{font:500 1rem Manrope,sans-serif;color:var(--muted)}
.water-sub{font-size:.82rem;color:var(--muted)}
.water-acts{display:flex;gap:6px}
.water-acts button{flex:1;min-height:40px;border-radius:10px;border:1px solid var(--line);background:var(--sunk);color:var(--ink);font:600 .92rem Manrope,sans-serif;cursor:pointer}

/* ===== responsive dashboard shell (tablet/desktop, >=768px) ===== */
.tabs .sb-only{display:none}
@media (min-width:768px){
  body{display:flex;padding-left:236px;box-sizing:border-box;transition:padding-left .15s ease}
  body.sb-collapsed{padding-left:72px}
  #app{flex-grow:1;min-width:0;max-width:1100px;margin:0 auto;padding:28px 32px}
  .tabs .sb-only{display:flex}
  .tabs .sb-brand{flex-direction:row}
  .tabs .sb-user{flex-direction:row}
  .sb-acc-head{display:flex;align-items:center;justify-content:space-between}
  .sb-acc-chev{transition:transform .15s ease}
  .tabs .sb-acc-body{display:none;flex-direction:column;padding-left:14px;gap:0}
  body.sb-settings-open .tabs .sb-acc-body{display:flex}
  body.sb-settings-open .sb-acc-chev{transform:rotate(180deg)}
  .sb-sub{display:block;width:100%;text-align:left;min-height:38px;padding:0 10px;border:0;background:transparent;color:var(--muted);font:500 .88rem Manrope,sans-serif;cursor:pointer;border-radius:8px}
  .sb-sub:hover{color:var(--ink)}
  .tabs{position:fixed;left:0;top:0;bottom:0;right:auto;width:236px;flex-direction:column;align-items:stretch;justify-content:flex-start;border-top:0;border-right:1px solid var(--line);padding:18px 14px calc(18px + env(safe-area-inset-bottom,0px));gap:18px;transition:width .15s ease}
  .tabs .tablist{max-width:none;flex-direction:column;gap:2px}
  .tab{flex:none;text-align:left;padding:11px 12px;border-radius:10px;font-size:1rem}
  .tab.on{background:var(--sunk);box-shadow:none}
  .sb-brand{align-items:center;justify-content:flex-start;gap:10px}
  .sb-logo{width:32px;height:32px;flex:none;border-radius:9px;border:0;background:var(--ink);color:var(--bg);display:grid;place-items:center;padding:6px;box-sizing:border-box;cursor:pointer}
  .sb-logo svg{width:100%;height:100%}
  .sb-title{flex:1;min-width:0;font:600 1.2rem "Chakra Petch",sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sb-collapse{width:30px;height:30px;flex:none;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;display:grid;place-items:center}
  .sb-divider{height:1px;background:var(--line);flex:none}
  .sb-settingsbtn{width:100%}
  .sb-spacer{flex-grow:1}
  .sb-user{align-items:center;gap:10px;padding:10px;border-radius:10px;background:var(--sunk);border:1px solid var(--line)}
  .sb-avatar{width:28px;height:28px;flex:none;border-radius:50%;background:var(--line);display:grid;place-items:center;font:600 .78rem "Chakra Petch",sans-serif}
  .sb-user-name{font:600 .85rem Manrope,sans-serif}
  .sb-sync{display:flex;align-items:center;gap:5px;font:500 .75rem Manrope,sans-serif;color:var(--muted)}
  .sb-sync i{width:6px;height:6px;border-radius:50%;background:var(--good);flex:none}
  .quick{left:auto;right:24px;transform:none;bottom:24px;width:auto;max-width:420px}
  .tiles{grid-template-columns:repeat(3,1fr)}
  .graphs2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .graphs3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  body.sb-collapsed .tabs{width:72px}
  body.sb-collapsed .sb-label,body.sb-collapsed .sb-title,body.sb-collapsed .sb-user-name,body.sb-collapsed .sb-sync{display:none}
  body.sb-collapsed .sb-brand{flex-direction:column;gap:8px}
  body.sb-collapsed .tab{text-align:center;padding:11px 0}
  .sb-collapse svg{transition:transform .15s ease}
  body.sb-collapsed .sb-collapse svg{transform:rotate(180deg)}
}

/* ===== Train Now: home card (v33, graphite) ===== */
.tn-card{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;width:100%;margin:4px 0 14px;padding:14px 16px;border-radius:16px;border:1px solid #262C35;text-align:left;cursor:pointer;
  background:#171B21;color:#EEF1F5;font:inherit;box-shadow:0 1px 0 rgba(255,255,255,.04) inset}
.tn-card.on:hover{border-color:#3A424E}
.tn-card.on:active{transform:scale(.99)}
.tn-play{width:52px;height:52px;flex:none;border-radius:50%;display:grid;place-items:center;background:#FF6B1A;color:#111;font-size:1.3rem;padding-left:4px}
.tn-txt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:150px}
.tn-txt b{font:700 1.65rem/1 "Chakra Petch",system-ui,sans-serif;letter-spacing:.02em}
.tn-txt span{font-size:.9rem;color:#8A94A3}
.tn-stats{display:flex;gap:16px;margin-left:auto}
.tn-stats span{display:flex;flex-direction:column;align-items:flex-end;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:#8A94A3}
.tn-stats b{font:700 1.45rem/1 "Chakra Petch",sans-serif;color:#4CC9F0;letter-spacing:0;font-variant-numeric:tabular-nums}
.tn-card.off{background:var(--sunk);color:var(--muted);border-color:var(--line);cursor:default;justify-content:space-between}
.tn-card.off .tn-main{display:flex;align-items:center;gap:14px;opacity:.6}
.tn-card.off .tn-play{background:var(--line);color:var(--muted)}
.tn-card.off .tn-txt span{color:var(--muted)}

/* ===== Train Now: cockpit (v33). Own graphite theme in light and dark. ===== */
body.focus-mode{overflow:hidden}
.fx{--fx-bg:#0F1216;--fx-panel:#171B21;--fx-panel2:#1D2229;--fx-line:#262C35;--fx-ink:#EEF1F5;--fx-mute:#8A94A3;--fx-acc:#FF6B1A;--fx-data:#4CC9F0;
  --g-precise:#3DDC97;--g-strong:#4CC9F0;--g-solid:#C9D1DB;--g-short:#F6C343;--g-missed:#F25F5C;--g-pr:#E8B04B;--g-none:#5B6573;
  position:fixed;inset:0;z-index:5;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  background:var(--fx-bg);color:var(--fx-ink);font:16px/1.4 Manrope,system-ui,sans-serif;
  padding:0 max(14px,env(safe-area-inset-right,0px)) calc(20px + env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px))}
.fx b,.fx h1,.fx h2,.fx-num,.fx-big,.fx-mid{font-variant-numeric:tabular-nums}
.fx h1,.fx h2{font-family:"Chakra Petch",system-ui,sans-serif;color:var(--fx-ink)}
.fx h1{font-size:2.1rem;line-height:1.02;margin:0}
.fx h2{font-size:1.85rem;line-height:1.05;margin:0}
.fx-mute,.fx .muted{color:var(--fx-mute)}
.fx-mute{font-size:.9rem;margin:2px 0}
.fx-lbl{display:block;font:600 .75rem Manrope,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--fx-mute);margin-bottom:6px}
.fx-lbl em{font-style:normal;letter-spacing:.04em;text-transform:none;color:var(--fx-ink);opacity:.6}

/* status bar */
.fx-status{position:sticky;top:0;z-index:3;margin:0 calc(-1 * max(14px,env(safe-area-inset-left,0px))) 14px;padding:calc(8px + env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 0;
  background:rgba(15,18,22,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--fx-line)}
.fx-status > *{max-width:1280px;margin-left:auto;margin-right:auto}
.fx-srow{display:flex;align-items:center;gap:10px;min-height:44px}
.fx-x{width:40px;height:40px;flex:none;border-radius:10px;border:1px solid var(--fx-line);background:transparent;color:var(--fx-ink);font-size:1rem;cursor:pointer}
.fx-title{flex:1;min-width:0;font:600 1.2rem "Chakra Petch",sans-serif;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-modes{display:flex;gap:2px;padding:2px;border-radius:10px;background:var(--fx-panel);border:1px solid var(--fx-line);flex:none}
.fx-modes button{min-height:34px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--fx-mute);font:600 .82rem Manrope,sans-serif;letter-spacing:.04em;cursor:pointer}
.fx-modes button.on{background:var(--fx-ink);color:var(--fx-bg)}
.fx-meters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px 0 10px}
.fx-meters span{display:flex;flex-direction:column;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fx-mute);min-width:0}
.fx-meters b{font:700 1.35rem/1.05 "Chakra Petch",sans-serif;color:var(--fx-ink);letter-spacing:0}
.fx-meters span:nth-child(3) b,.fx-meters span:nth-child(4) b{color:var(--fx-data)}
.fx-prog{height:3px;background:var(--fx-line);margin:0 calc(-1 * max(14px,env(safe-area-inset-left,0px)))!important;max-width:none!important}
.fx-prog i{display:block;height:100%;background:var(--fx-acc);transition:width .4s ease}

/* grade chips */
.fx-gchip{display:inline-flex;align-items:center;flex:none;padding:3px 9px;border-radius:999px;font:700 .82rem "Chakra Petch",sans-serif;letter-spacing:.08em;text-transform:uppercase;
  color:var(--c,var(--fx-ink));border:1px solid currentColor;background:color-mix(in srgb,var(--c,#888) 14%,transparent)}
.fx-srow .fx-gchip{animation:fxchip 2.6s ease forwards}
.fx-gchip.still{animation:none}
.g-precise{--c:var(--g-precise)}.g-strong{--c:var(--g-strong)}.g-solid{--c:var(--g-solid)}.g-short{--c:var(--g-short)}.g-missed{--c:var(--g-missed)}.g-pr{--c:var(--g-pr)}.g-none{--c:var(--g-none)}

/* panels + layout */
.fx-panel{background:var(--fx-panel);border:1px solid var(--fx-line);border-radius:14px;padding:16px;margin-bottom:12px;min-width:0}
.fx-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0 14px;max-width:1280px;margin:0 auto;align-items:start}
.fx-rail{display:none}
.fx-main{min-width:0}
.fx-inst{min-width:0}
.fx-center{max-width:420px;margin:20vh auto 0;text-align:center}

/* controls */
.fx-exhead{margin-bottom:12px}
.fx-exhead .fx-mute{display:block;margin-top:4px}
.fx-tgt{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--fx-line);border-bottom:1px solid var(--fx-line)}
.fx-tgt .fx-lbl{margin:0}
.fx-tgt b{font:700 1.75rem "Chakra Petch",sans-serif}
.fx-tgt small{font-size:.9rem;color:var(--fx-mute)}
.fx-open{font:600 1.05rem Manrope,sans-serif;color:var(--fx-mute)}
.fx-last{margin:10px 0 0;font-size:.92rem;color:var(--fx-mute)}
.fx-last b{color:var(--fx-data);font-weight:600}
.fx-note{margin:8px 0 0;font-size:.88rem;color:var(--fx-mute);padding-left:10px;border-left:2px solid var(--fx-line)}
.fx-ctls{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:14px 0 4px}
.fx-ctl{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:10px;background:var(--fx-bg);border:1px solid var(--fx-line);border-radius:12px;padding:8px 8px 8px 12px}
.fx-ctl .fx-lbl{margin:0;line-height:1.2}
.fx-row{display:flex;align-items:center;gap:6px;min-width:0}
.fx-pm{width:56px;height:56px;flex:none;border-radius:10px;border:1px solid var(--fx-line);background:var(--fx-panel2);color:var(--fx-ink);font:500 1.7rem/1 Manrope,sans-serif;cursor:pointer;touch-action:manipulation}
.fx-pm:active{background:var(--fx-line)}
.fx .fx-row input.fx-num{flex:1;min-width:0;width:100%;height:56px;min-height:0;margin:0;padding:0;text-align:center;background:transparent;border:0;border-radius:10px;box-shadow:none;
  color:var(--fx-ink);font:700 2.5rem "Chakra Petch",sans-serif;-moz-appearance:textfield;appearance:textfield}
.fx .fx-row input.fx-num:focus{outline:2px solid var(--fx-data);outline-offset:-2px;background:rgba(76,201,240,.08)}
.fx .fx-row input.fx-num::-webkit-outer-spin-button,.fx .fx-row input.fx-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.fx-links{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.fx-links button,.fx-link{min-height:38px;padding:0 12px;border-radius:9px;border:1px solid var(--fx-line);background:transparent;color:var(--fx-mute);font:500 .9rem Manrope,sans-serif;cursor:pointer}
.fx-link{align-self:flex-start;margin-top:8px}
.fx-cta{display:block;width:100%;min-height:60px;border:0;border-radius:12px;cursor:pointer;background:var(--fx-acc);color:#140A04;
  font:700 1.5rem "Chakra Petch",sans-serif;letter-spacing:.05em;text-transform:uppercase;touch-action:manipulation;box-shadow:0 8px 24px -14px rgba(255,107,26,.9)}
.fx-cta:active{transform:scale(.985);filter:brightness(1.08)}
.fx-cta:disabled{background:var(--fx-panel2);color:var(--fx-mute);box-shadow:none;cursor:default;text-transform:none;font-size:1.15rem;letter-spacing:.02em}
.fx-panel.ctl .fx-cta{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:2}

/* instruments */
.fx-panel.clock{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px}
.fx-panel.clock .fx-lbl{margin:0}
.fx-big{font:700 2.4rem/1 "Chakra Petch",sans-serif;color:var(--fx-ink)}
.fx-mid{font:700 1.5rem/1 "Chakra Petch",sans-serif;color:var(--fx-data)}
.fx-panel.clock .fx-link{margin:0;align-self:center}
.fx-demo{position:relative;width:100%;max-width:min(420px,52vh);aspect-ratio:4/3;margin:0 auto;border-radius:10px;overflow:hidden;background:#fff}
.fx-demo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.fx-demo img.b{animation:fxflip 2.4s steps(1,end) infinite}
.fx-noimg{display:grid;place-items:center;height:100%;min-height:120px;color:var(--fx-mute);background:var(--fx-panel2);font-size:.9rem}
.fx-tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.fx-tags span:not(:empty){padding:3px 9px;border-radius:999px;border:1px solid var(--fx-line);font-size:.8rem;color:var(--fx-mute)}
.fx-cue{margin:12px 0 0;padding:2px 0 2px 12px;border-left:2px solid var(--fx-data);font-size:.95rem}
.fx-panel.coach{display:flex;flex-direction:column}
.fx-kv{display:flex;flex-wrap:wrap;gap:8px 22px}
.fx-kv span{display:flex;flex-direction:column;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fx-mute)}
.fx-kv b{font:700 1.8rem/1.05 "Chakra Petch",sans-serif;color:var(--fx-ink);letter-spacing:0}
.fx-kv.sm b{font-size:1.3rem}
.fx-kv.sm{margin-top:12px;padding-top:10px;border-top:1px solid var(--fx-line)}
.fx-kv.big b{font-size:2.8rem}
.fx-spark{display:block;width:100%;height:56px;margin-top:10px}
.fx-spark polyline{fill:none;stroke:var(--fx-data);stroke-width:2;vector-effect:non-scaling-stroke}
.fx-spark circle{fill:var(--fx-acc)}
.fx-hist{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}
.fx-hist span{display:flex;flex-direction:column;padding:6px 10px;border-radius:9px;background:var(--fx-bg);border:1px solid var(--fx-line);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fx-mute)}
.fx-hist b{font:600 1.1rem "Chakra Petch",sans-serif;color:var(--fx-ink);letter-spacing:0;text-transform:none}
.fx-hist span.hl{border-color:var(--fx-data)}

/* session rail */
.fx-rex{padding:9px 0;border-bottom:1px solid var(--fx-line)}
.fx-rex:last-child{border-bottom:0}
.fx-rex .nm{display:block;font-size:.88rem;color:var(--fx-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}
.fx-rex.on .nm{color:var(--fx-ink);font-weight:600}
.fx-rex .pips{display:flex;flex-wrap:wrap;gap:6px}
.pip{display:block;width:22px;height:22px;border-radius:6px;border:1px solid var(--fx-line);background:transparent;padding:0;cursor:pointer}
.pip.done{background:var(--c,var(--g-none));border-color:transparent;cursor:default}
.pip.skip{cursor:default;background:repeating-linear-gradient(45deg,transparent 0 4px,var(--fx-line) 4px 6px)}
.pip.cur{border:2px solid var(--fx-acc)}
.pip.open:hover{border-color:var(--fx-mute)}

/* rest */
.fx-panel.rest{display:flex;flex-direction:column;gap:14px}
.fx-result{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.fx-ringwrap{display:flex;align-items:center;justify-content:center;gap:22px}
.fx-ring{width:180px;height:180px;flex:none}
.fx-ring .trk{fill:none;stroke:var(--fx-line);stroke-width:7}
.fx-ring .arc{fill:none;stroke:var(--fx-data);stroke-width:7;stroke-linecap:round;transition:stroke-dashoffset .25s linear}
.fx-ring .t{fill:var(--fx-ink);font:700 30px "Chakra Petch",sans-serif}
.fx-ring.go .arc{stroke:var(--g-precise)}
.fx-ring.go .t{fill:var(--g-precise)}
.fx-restside{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.fx-ex{display:flex;align-items:center;gap:12px;min-width:0}
.fx-ex .t{min-width:0}
.fx-ex b{display:block;font-size:1.02rem;font-weight:600}
.fx-ex small{display:block;color:var(--fx-mute);font-size:.84rem}
.fx-thumb{width:48px;height:48px;flex:none;border-radius:9px;overflow:hidden;background:#fff}
.fx-thumb img{width:100%;height:100%;object-fit:cover}
.fx .btn{background:var(--fx-ink);color:var(--fx-bg);border-color:var(--fx-ink)}
.fx .btn.ghost{background:transparent;color:var(--fx-ink);border-color:var(--fx-line)}
.fx .row{margin-top:8px}

/* feedback + recovery inside the cockpit */
.fx .fb{background:var(--fx-panel);border:1px solid var(--fx-line);border-radius:14px;padding:14px 16px;margin:0 0 12px}
.fx .fb .small.muted{color:var(--fx-mute)}
.fx .q p{margin:10px 0 6px;font-size:.9rem;color:var(--fx-mute)}
.fx .seg button{background:var(--fx-bg);border-color:var(--fx-line);color:var(--fx-ink)}
.fx .seg button.on{background:var(--fx-ink);border-color:var(--fx-ink);color:var(--fx-bg)}

/* briefing */
.fx-brief{display:grid;grid-template-columns:minmax(0,1fr);gap:0 14px;max-width:1100px;margin:0 auto;align-items:start}
.fx-hero{display:flex;gap:16px;align-items:center;margin-bottom:12px}
.fx-hero .plate{box-shadow:inset 0 0 0 6px rgba(0,0,0,.25)}
.fx-hero .plate::after{background:var(--fx-panel)}
.fx-list{display:grid;gap:0;border-top:1px solid var(--fx-line)}
.fx-list .fx-ex{padding:10px 0;border-bottom:1px solid var(--fx-line)}
.fx-list .fx-ex:last-child{border-bottom:0}
.fx-side{display:flex;flex-direction:column}
.fx-side > .fx-cta{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom,0px))}

/* session report */
.fx-report{display:grid;grid-template-columns:minmax(0,1fr);gap:0 14px;max-width:1240px;margin:0 auto;align-items:start}
.fx-report .hero{display:block;border-color:#3A2A20;background:linear-gradient(160deg,#20191A,#171B21 60%)}
.fx-report .hero h1{font-size:2.4rem;margin:2px 0 4px}
.fx-report .hero .fx-kv{margin-top:14px}
.fx .up{color:var(--g-precise)!important}.fx .down{color:var(--g-missed)!important}
.fx-stack{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--fx-line);gap:2px}
.fx-stack i{display:block;height:100%;background:var(--c)}
.fx-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:.85rem;color:var(--fx-mute)}
.fx-legend span{display:inline-flex;align-items:center;gap:6px}
.fx-legend i{width:10px;height:10px;border-radius:3px;background:var(--c)}
.fx-legend b{color:var(--fx-ink)}
.fx-rate{display:flex;align-items:baseline;gap:12px}
.fx-rate b{font:700 2.2rem/1 "Chakra Petch",sans-serif}
.fx-rate b:first-child{color:var(--fx-mute)}
.fx-rate span{color:var(--fx-mute)}
.fx-rbar{position:relative;height:10px;border-radius:5px;background:var(--fx-bg);margin:12px 0 8px;overflow:hidden}
.fx-rbar i{position:absolute;left:0;top:0;bottom:0;border-radius:5px}
.fx-rbar .was{background:#3A424E}
.fx-rbar .now{width:var(--w);background:var(--fx-acc);opacity:.92;animation:fxgrow 1.1s cubic-bezier(.2,.8,.2,1) .2s both}
.fx-ms{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fx-ms li{position:relative;padding-left:20px;font-size:.95rem}
.fx-ms li::before{content:"";position:absolute;left:2px;top:.45em;width:9px;height:9px;transform:rotate(45deg);background:var(--g-pr)}
.fx-lifts{display:grid}
.fx-lifts > div{display:grid;grid-template-columns:minmax(0,1fr) auto 64px;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--fx-line)}
.fx-lifts > div:last-child{border-bottom:0}
.fx-lifts > div span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-lifts > div span:nth-child(2){color:var(--fx-mute);font-variant-numeric:tabular-nums}
.fx-lifts > div span:nth-child(3){text-align:right;font:700 1.1rem "Chakra Petch",sans-serif;color:var(--fx-mute)}
.fx-zones{display:flex;align-items:flex-end;gap:8px;height:84px;margin-top:12px}
.fx-zones span{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%;font-size:.75rem;color:var(--fx-mute)}
.fx-zones i{display:block;width:100%;border-radius:4px 4px 0 0;background:var(--fx-data)}
.fx-zones span:nth-child(3) i{background:var(--g-precise)}.fx-zones span:nth-child(4) i{background:var(--g-short)}.fx-zones span:nth-child(5) i{background:var(--fx-acc)}
.fx-fbwrap{max-width:720px;margin:6px auto 0}
.fx-endbar{position:sticky;bottom:0;z-index:2;max-width:720px;margin:6px auto 0;padding:14px 0 calc(6px + env(safe-area-inset-bottom,0px));background:linear-gradient(to bottom,rgba(15,18,22,0),var(--fx-bg) 30%)}

/* Focus mode on a portrait phone: the set clock is a slim strip, and it steps aside during rest */
.fx.mode-focus.resting .fx-inst{display:none}

/* landscape phone / tablet: instruments | controls */
@media (min-width:760px),(orientation:landscape) and (min-width:600px){
  .fx-grid{grid-template-columns:minmax(0,1fr) minmax(340px,440px)}
  .fx.mode-focus.resting .fx-inst{display:block}
  .fx-panel.clock{flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:260px;gap:6px}
  .fx-panel.clock .fx-lbl{margin-top:6px}
  .fx-big{font-size:5.2rem}
  .fx-mid{font-size:2.2rem}
  .fx-panel.clock .fx-link{margin-top:4px}
  .fx-brief{grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr)}
  .fx-report{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fx-report .hero,.fx-report .wide{grid-column:1/-1}
  .fx-meters{grid-template-columns:repeat(4,auto);justify-content:start;gap:8px 34px}
}
/* tablet landscape: session rail | instruments | controls */
@media (min-width:1100px){
  .fx-grid{grid-template-columns:230px minmax(0,1fr) minmax(360px,440px)}
  .fx-rail{display:block;position:sticky;top:132px;background:var(--fx-panel);border:1px solid var(--fx-line);border-radius:14px;padding:14px;max-height:calc(100vh - 150px);overflow-y:auto}
  .fx-report{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-report .hero{grid-column:1/3}
  .fx-report .wide{grid-column:auto}
}
/* short landscape phones: compact everything */
@media (orientation:landscape) and (max-height:500px){
  .fx-status{display:flex;flex-wrap:wrap;align-items:center;gap:0 18px;padding-top:calc(4px + env(safe-area-inset-top,0px));margin-bottom:8px}
  .fx-status > *{margin:0;max-width:none}
  .fx-srow{min-height:40px;flex:1;min-width:0}
  .fx-meters{order:1;display:flex;gap:16px;padding:0}
  .fx-meters span{font-size:.75rem}
  .fx-prog{order:2;flex-basis:100%}
  .fx-panel.ctl .fx-cta{position:static}
  .fx-exhead .fx-mute{margin-top:0}
  .fx-last{margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fx-links button{min-height:32px;font-size:.84rem}
  .fx-x{width:34px;height:34px}
  .fx-meters b{font-size:1.05rem}
  .fx-panel{padding:12px;margin-bottom:10px}
  .fx h1{font-size:1.7rem}.fx h2{font-size:1.45rem}
  .fx-exhead{margin-bottom:6px}
  .fx-tgt{padding:4px 0}
  .fx-note{margin-top:4px;font-size:.82rem}.fx-tgt b{font-size:1.4rem}
  .fx-ctls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
  .fx-ctl{grid-template-columns:minmax(0,1fr);gap:2px;padding:6px}
  .fx-ctl .fx-lbl{text-align:center}
  .fx-pm{width:44px;height:44px;font-size:1.4rem}
  .fx .fx-row input.fx-num{height:44px;font-size:1.9rem}
  .fx-links{margin:6px 0}
  .fx-cta{min-height:46px;font-size:1.25rem}
  .fx-panel.clock{min-height:0}
  .fx-big{font-size:3.6rem}
  .fx-ring{width:130px;height:130px}
  .fx-hero .plate{display:none}
}
@keyframes fxflip{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
@keyframes fxchip{0%{opacity:0;transform:translateY(-4px)}10%{opacity:1;transform:none}75%{opacity:1}100%{opacity:0}}
@keyframes fxgrow{from{width:0}}
@media (prefers-reduced-motion:reduce){.fx-demo img.b,.fx-srow .fx-gchip,.fx-rbar .now{animation:none}.fx-prog i,.fx-ring .arc{transition:none}}

/* ===== Train Now pass 2: voice, readiness, body map, cardio ===== */
.fx-voice{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:10px;border:1px solid var(--fx-line);background:transparent;color:var(--fx-mute);cursor:pointer}
.fx-voice.on{color:var(--fx-data);border-color:rgba(76,201,240,.5)}
.fx-rhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:2px}
.fx-rhead .fx-lbl{margin:0}
.fx-auto{margin:0;font-size:.95rem;color:var(--fx-mute)}.fx-auto b{color:var(--fx-ink)}
.fx-rex .nm em{font-style:normal;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--g-short);margin-left:4px}
.fx-bodies{display:flex;justify-content:center;gap:10px;margin-top:4px}
.fx-bodies figure{margin:0;flex:1;max-width:150px;text-align:center}
.fx-bodies figcaption{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fx-mute);margin-top:2px}
.fx-body{width:100%;height:auto;display:block}
.fx-body .base{fill:#1D2229}
.fx-body .mu{fill:#2A313B;stroke:var(--fx-bg);stroke-width:.8;transition:fill .3s}
.fx-body .mu.l1,.fx-blegend i.l1{fill:#24485A;background:#24485A}
.fx-body .mu.l2,.fx-blegend i.l2{fill:#2F7E9C;background:#2F7E9C}
.fx-body .mu.l3,.fx-blegend i.l3{fill:#4CC9F0;background:#4CC9F0}
.fx-body .mu.l4,.fx-blegend i.l4{fill:#FF6B1A;background:#FF6B1A}
.fx-body .mu.today{stroke:#EEF1F5;stroke-width:1.6;stroke-dasharray:2.5 1.6}
.fx-blegend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;margin-top:8px;font-size:.78rem;color:var(--fx-mute)}
.fx-blegend span{display:inline-flex;align-items:center;gap:5px}
.fx-blegend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.fx-blegend i.today{background:transparent;border:1.5px dashed #EEF1F5}
.fx-mlist{text-align:center;margin-top:6px}.fx-mlist b{color:var(--fx-ink)}
/* home: cardio row */
.tn-sub{display:flex;align-items:center;gap:12px;width:100%;margin:-6px 0 14px;padding:10px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.tn-sub .ic{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--sunk);font-size:1.1rem}
.tn-sub .tx{display:flex;flex-direction:column;flex:1;min-width:0}.tn-sub .tx b{font-size:1rem}.tn-sub .tx span{font-size:.82rem;color:var(--muted)}
.tn-sub .st{font-size:.8rem;color:var(--muted);text-align:right}.tn-sub .st b{display:block;font:700 1.2rem/1 "Chakra Petch",sans-serif;color:var(--ink)}
/* cardio */
.fx-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.fx-presets button{min-height:52px;padding:8px 10px;border-radius:10px;border:1px solid var(--fx-line);background:var(--fx-bg);color:var(--fx-ink);font:600 .95rem Manrope,sans-serif;cursor:pointer;text-align:left}
.fx-presets button.on{border-color:var(--fx-acc);box-shadow:inset 0 0 0 1px var(--fx-acc)}
.fx-ctls.cd3{grid-template-columns:minmax(0,1fr)}
.fx-numv{flex:1;text-align:center;font:700 2.2rem "Chakra Petch",sans-serif}
.fx-dataval{color:var(--fx-data)}
.fx-cdwrap{display:grid;grid-template-columns:minmax(0,1fr);gap:0 14px;max-width:1100px;margin:0 auto}
.fx-cdmain{text-align:center;padding:22px 16px}
.fx-phase{display:inline-block;padding:4px 14px;border-radius:999px;font:700 1rem "Chakra Petch",sans-serif;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--fx-line);color:var(--fx-mute)}
.ph-work .fx-phase{color:var(--fx-acc);border-color:var(--fx-acc)}
.ph-rest .fx-phase{color:var(--fx-data);border-color:var(--fx-data)}
.fx-cdbig{display:block;font:700 clamp(4.5rem,24vw,9rem)/1 "Chakra Petch",sans-serif;margin:12px 0 8px;font-variant-numeric:tabular-nums}
.ph-work .fx-cdbig{color:var(--fx-acc)}
.paused .fx-cdbig{opacity:.45}
.fx-cdprog{height:6px;border-radius:3px;background:var(--fx-bg);overflow:hidden;margin:6px 0 16px}
.fx-cdprog i{display:block;height:100%;background:var(--fx-data);transition:width .25s linear}
.fx-cdmain .fx-kv{justify-content:center}
.fx-cdctl{display:flex;flex-direction:column;gap:10px}
.fx-cta.ghost{background:var(--fx-panel2);color:var(--fx-ink);box-shadow:none;border:1px solid var(--fx-line)}
.fx-cta2{min-height:48px;border-radius:12px;border:1px solid var(--fx-line);background:transparent;color:var(--fx-mute);font:600 1rem Manrope,sans-serif;cursor:pointer}
.fx-endbar .fx-cta2{width:100%;margin-top:8px}
@media (min-width:760px),(orientation:landscape) and (min-width:600px){
  .fx-cdwrap{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:center}
  .fx-ctls.cd3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-ctls.cd3 .fx-ctl{grid-template-columns:minmax(0,1fr)}
  .fx-ctls.cd3 .fx-ctl .fx-lbl{text-align:center}
  .fx-presets{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (orientation:landscape) and (max-height:500px){
  .fx-cdbig{font-size:5rem;margin:6px 0}
  .fx-cdmain{padding:12px}
  .fx-bodies figure{max-width:110px}
}
.pick:disabled{opacity:.45;cursor:default}

.fx-ready{border-top:1px solid var(--fx-line);padding:12px 0 14px}
.fx-ready .q p{margin-top:8px}
.fx.cardio.run .fx-cdmain{padding:clamp(22px,8vh,64px) 16px}
.fx-cdbig{font-size:clamp(4.5rem,28vw,9.5rem)}
@media (min-width:760px),(orientation:landscape) and (min-width:600px){.fx-cdbig{font-size:clamp(5rem,12vw,9.5rem)}}
@media (orientation:landscape) and (max-height:500px){.fx-cdbig{font-size:5rem}.fx.cardio.run .fx-cdmain{padding:12px}}

/* ===== v35: optional workout check-ins ===== */
.qc-h{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:0 0 8px}
.qc-h span{font-size:.8rem;color:var(--muted)}.fx .qc-h span{color:var(--fx-mute)}
.qc-row{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:8px;margin:6px 0}
.qc-l{font-size:.88rem;color:var(--muted)}.fx .qc-l{color:var(--fx-mute)}
@media (max-width:430px){.qc-row{grid-template-columns:minmax(0,1fr);gap:4px}}
.qc-more summary{cursor:pointer;font-size:.88rem;color:var(--muted);margin-top:10px}.fx .qc-more summary{color:var(--fx-mute)}
.qc-remind{display:flex;align-items:center;gap:10px;padding:10px 6px 10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);margin:4px 0 12px}
.qc-remind span{flex:1;font-size:.95rem}
.qc-x{border:0;background:none;color:var(--muted);font-size:1rem;width:36px;height:36px;cursor:pointer}
.tgl{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;padding:10px 0;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.tgl span{display:flex;flex-direction:column}.tgl small{color:var(--muted);font-size:.8rem}
.tgl i{width:44px;height:26px;border-radius:13px;background:var(--line);position:relative;flex:none;transition:background .15s}
.tgl i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s}
.tgl.on i{background:var(--r3)}.tgl.on i::after{transform:translateX(18px)}

/* ======================================================================
   v36 · D "Signal" theme: carbon dark, glass cards, one signal-yellow
   action color, teal = data/trends, lavender = fuel, coral = gaps.
   Manrope for UI, Chakra Petch for numbers. Dark-only by design.
   ====================================================================== */
:root:root:root{--bg:#0D1114;--surface:#161D21;--sunk:#11171A;--ink:#EEF2F2;--muted:#8E9B9E;--line:#243035;--dl:#5E6A6D;
  --r3:#4FD1C5;--r2:#FFCF3D;--r1:#7FA6FF;--r0:#FF7A6B;--warn:#FFA36B;--good:#4FD1C5;--onplate:#0D1114;
  --kcal:#FFCF3D;--prot:#FF7A6B;--water:#5AB8FF;--steps:#4FD1C5;--sleep:#A99BFF;
  --sig:#FFCF3D;--teal:#4FD1C5;--lav:#A99BFF;--coral:#FF7A6B;--hair:rgba(255,255,255,.075);
  --glass:linear-gradient(180deg,#182024 0%,#12181B 100%);color-scheme:dark}
html{background:var(--bg)}
body{background:var(--bg) radial-gradient(120% 420px at 50% -60px,#1B2925 0%,rgba(13,17,20,0) 100%) no-repeat;font-family:Manrope,system-ui,sans-serif;color:var(--ink)}
h1,h2,h3{font-family:Manrope,system-ui,sans-serif;letter-spacing:-.02em}
h1{font-weight:800;font-size:1.85rem}h2{font-weight:800;font-size:1.3rem}h3{font-weight:700;font-size:1.08rem}
.num,.big,.n{font-family:"Chakra Petch",system-ui,sans-serif;font-variant-numeric:tabular-nums}
main{padding-bottom:130px}
.card{background:var(--glass);border:1px solid var(--hair);border-radius:20px;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.card.flat{background:transparent;box-shadow:none}
.btn{font-family:Manrope,system-ui,sans-serif;font-weight:800;background:var(--sig);border-color:var(--sig);color:#141414;border-radius:14px;letter-spacing:0}
.btn.ghost{background:rgba(255,255,255,.04);color:var(--ink);border-color:var(--hair)}
.btn.danger{background:transparent;color:var(--coral);border-color:var(--coral)}
.btn.sm{border-radius:12px}
.link,a{color:var(--sig)}
input[type=number],input[type=text],input[type=password],input[type=url],input[type=search],select,textarea{background:var(--sunk);border-color:var(--line);border-radius:12px;color:var(--ink);font-family:Manrope,system-ui,sans-serif}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(255,207,61,.55);outline-offset:0;border-color:transparent}
.seg button{background:rgba(255,255,255,.035);border-color:var(--hair);border-radius:11px;font-family:Manrope,system-ui,sans-serif;font-weight:600}
.seg button.on{background:rgba(255,207,61,.14);border-color:rgba(255,207,61,.6);color:var(--sig)}
.seg-sm{background:rgba(255,255,255,.05);border-radius:11px;padding:3px}
.seg-sm button{border-radius:8px}.seg-sm button.on{background:#222B30;color:var(--ink)}
.subtabs button{border-radius:12px;font-family:Manrope,system-ui,sans-serif;font-weight:700;border-color:var(--hair)}
.subtabs button.on{background:#1C2428;border-color:rgba(255,207,61,.5);color:var(--ink)}
.pchip.on{background:rgba(255,207,61,.14);border-color:rgba(255,207,61,.6);color:var(--sig)}
.selbtn.on{background:var(--sig);border-color:var(--sig)}
.ib{background:rgba(255,255,255,.04);border-color:var(--hair);border-radius:12px}
.ib.on{background:var(--sig);color:#141414}
.tile{background:var(--glass);border-color:var(--hair);border-radius:18px}
.tile .big{font-family:"Chakra Petch",sans-serif;font-weight:600}
.bar{background:rgba(255,255,255,.06);border:0;height:6px}
.ck{border-radius:12px;border-color:var(--line)}.ck.done{background:var(--teal);border-color:var(--teal);color:#0D1114}
.cell.done{background:var(--sig);border-color:var(--sig);color:#141414}.cell.next{border-color:var(--sig);color:var(--sig)}
.weekdot.done{color:#0D1114}.prb{color:#0D1114}
.coach{border-left:0}
.note.act i{background:var(--sig)}
.sheet{background:#151B1F;border:1px solid var(--hair);border-bottom:0;border-radius:24px 24px 0 0}
.modal{background:rgba(3,6,8,.6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.pick{font-family:Manrope,system-ui,sans-serif}
.toast{background:#EEF2F2;color:#0D1114;border-radius:14px;font-weight:700}
.quick{display:none!important}
.plate{box-shadow:inset 0 0 0 6px rgba(0,0,0,.22)}
.plate::after{background:#141A1D}
.top h1{font-size:1.75rem}
/* rest timer floats above the nav */
.rest-timer{bottom:calc(86px + env(safe-area-inset-bottom,0px));background:#1A2226;color:var(--ink);border:1px solid rgba(255,207,61,.45);border-radius:18px;box-shadow:0 14px 30px rgba(0,0,0,.45)}
.rest-timer .t{color:var(--sig)}
.rest-timer button{color:var(--ink);border-color:var(--hair)}
/* floating glass tab bar (phone) */
.tabs{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom,0px));padding:0;max-width:520px;margin:0 auto;border:1px solid var(--hair);border-radius:22px;
  background:rgba(22,29,33,.86);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 14px 34px rgba(0,0,0,.5)}
.tabs .tablist{max-width:none}
.tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 2px 9px;font:700 .75rem Manrope,system-ui,sans-serif;letter-spacing:.02em;color:#6F7C80}
.tab svg{width:22px;height:22px}
.tab.on{color:var(--sig);box-shadow:none}
@media (min-width:768px){
  .tabs{left:0;right:auto;top:0;bottom:0;max-width:none;margin:0;border-radius:0;border:0;border-right:1px solid var(--hair);background:#10161A;box-shadow:none;padding:18px 14px calc(18px + env(safe-area-inset-bottom,0px))}
  .tab{flex-direction:row;gap:12px;padding:11px 12px;font-size:.95rem;font-weight:700;color:var(--muted)}
  .tab svg{width:20px;height:20px;flex:none}
  .tab.on{background:rgba(255,207,61,.1);color:var(--sig)}
  .sb-logo{background:linear-gradient(160deg,#1A2328,#0D1114);border:1px solid var(--hair);color:var(--ink);padding:5px}   /* v38: the Earnstone app-icon tile */
  .sb-title{font-family:Manrope,system-ui,sans-serif;font-weight:800;letter-spacing:-.02em;text-transform:lowercase}   /* v38: matches the earnstone wordmark */
  .sb-user{background:rgba(255,255,255,.03);border-color:var(--hair)}
  .rest-timer{bottom:24px}
  main{padding-bottom:60px}
}
@media (prefers-reduced-motion:no-preference){.btn:active,.tab:active{transform:scale(.97)}}

/* ===== v36 Today ===== */
.lbl{font:700 .75rem Manrope,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.av-btn{width:42px;height:42px;flex:none;border-radius:50%;border:1px solid rgba(255,207,61,.55);background:linear-gradient(135deg,#25332F,#161E1C);color:var(--sig);font:800 1rem Manrope,system-ui,sans-serif;display:grid;place-items:center;cursor:pointer;padding:0}
.av-btn.big{width:52px;height:52px;font-size:1.2rem}
.thead{display:flex;align-items:center;gap:12px;margin:6px 0 14px}
.th-t{flex:1;min-width:0;display:flex;flex-direction:column}
.th-t b{font:800 1.2rem Manrope,system-ui,sans-serif;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.th-t span{font-size:.84rem;color:var(--muted);font-weight:600}
/* hero */
.hero-card{position:relative;display:block;width:100%;min-height:212px;margin:0 0 10px;padding:0;border-radius:24px;overflow:hidden;border:1px solid var(--hair);background:var(--glass);color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.hero-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.55) brightness(1.02)}
.hero-card.on::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,17,20,.95) 0%,rgba(13,17,20,.66) 48%,rgba(13,17,20,.05) 88%)}
.hc-in{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;min-height:212px}
.hero-card.off{cursor:default}.hero-card.off .hc-in{min-height:0}
.hc-eyebrow{font:800 .75rem Manrope,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--sig)}
.hc-title{font:800 1.95rem/1.05 Manrope,system-ui,sans-serif;letter-spacing:-.02em;max-width:72%}
.hero-card.off .hc-title{max-width:none;font-size:1.5rem}
.hc-chips{display:flex;flex-wrap:wrap;gap:6px}
.hc-chips span{font:700 .75rem Manrope,system-ui,sans-serif;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid var(--hair);color:#D6DDDD}
.hc-sub{font-size:.86rem;color:#B9C3C4;font-weight:600;max-width:70%}
.hero-card.off .hc-sub{max-width:none;color:var(--muted)}
.hc-go{margin-top:auto;display:inline-flex;align-items:center;gap:10px;background:var(--sig);color:#141414;border-radius:999px;padding:6px 18px 6px 6px;font:800 .98rem Manrope,system-ui,sans-serif}
.hc-go i{width:34px;height:34px;border-radius:50%;background:#141414;color:var(--sig);display:grid;place-items:center;font-style:normal;font-size:.75rem;padding-left:2px}
.hero-card .tn-stats{position:absolute;z-index:2;top:12px;right:12px;display:flex;gap:4px;margin:0;padding:6px 10px;border-radius:14px;background:rgba(13,17,20,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--hair)}
.hero-card .tn-stats span{display:flex;flex-direction:column;align-items:flex-end;font:700 .75rem Manrope,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 4px}
.hero-card .tn-stats b{font:600 1.05rem "Chakra Petch",sans-serif;color:var(--ink);letter-spacing:0}
/* week strip */
.wstrip{display:flex;justify-content:space-between;padding:10px 12px;margin:0 0 10px}
.wd{display:flex;flex-direction:column;align-items:center;gap:5px;font:700 .75rem Manrope,system-ui,sans-serif;color:#5E6A6D}
.wd b{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;font:600 .85rem "Chakra Petch",sans-serif;color:var(--muted);background:rgba(255,255,255,.035)}
.wd.done b{background:rgba(255,207,61,.15);color:var(--sig)}
.wd.today b{background:var(--sig);color:#141414}.wd.now{color:var(--ink)}
.wd.done.now b{background:var(--sig);color:#141414}
.wd.plan b{background:none;border:1.5px solid rgba(255,207,61,.45);color:var(--ink)}
.wd.miss b{background:none;border:1.5px solid rgba(255,122,107,.55);color:var(--coral)}
.wd.rest b{background:none;border:1px dashed rgba(255,255,255,.12)}
/* score + minis */
.tsplit{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:10px;margin-bottom:10px}
.dscore{display:flex;flex-direction:column;align-items:center;margin:0;padding:12px 8px 12px}
.dscore .lbl{align-self:flex-start;margin-left:4px}
.dscore svg{margin-top:4px}
.dscore .dv{font:600 2rem/1 "Chakra Petch",sans-serif;margin-top:-38px}
.dscore small{font-size:.75rem;color:var(--muted);font-weight:700;margin-top:8px;text-align:center}
.tstack{display:flex;flex-direction:column;gap:10px}
.card.mini{margin:0;padding:10px 12px;display:flex;flex-direction:column;gap:7px;text-align:left;color:var(--ink);font:inherit;cursor:pointer;flex:1}
.mt{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.mv{font:600 1.12rem "Chakra Petch",sans-serif;white-space:nowrap}.mv small{font:700 .75rem Manrope,sans-serif;color:var(--muted)}
.thin{display:block;height:5px;border-radius:3px;background:rgba(255,255,255,.07);overflow:hidden}.thin i{display:block;height:100%;border-radius:3px}
/* quick actions */
.qa{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 10px}
.qa button{min-height:46px;border-radius:14px;border:1px solid var(--hair);background:rgba(255,255,255,.04);color:var(--ink);font:700 .86rem Manrope,system-ui,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}
.qa i{width:8px;height:8px;border-radius:50%;flex:none}.qa .drop-i{background:var(--water)}.qa .cam-i{background:var(--lav)}.qa .sc-i{background:var(--teal)}
/* last session */
.lastrow{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;margin:0 0 10px;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.lr-n{position:absolute;left:14px;width:44px;text-align:center;font:600 .75rem "Chakra Petch",sans-serif}
.lr-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lr-t b{font-size:.94rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lr-go{color:var(--muted);font-size:1.3rem}
/* cardio row restyle */
.tn-sub{background:var(--glass);border-color:var(--hair);border-radius:18px;margin:0 0 10px}
.tn-sub .ic{background:rgba(79,209,197,.14);color:var(--teal)}
.qc-remind{background:var(--glass);border-color:rgba(169,155,255,.35);border-radius:18px}
.coach .note p{font-size:.95rem}
/* more */
.more-btn{display:flex;align-items:center;gap:10px;width:100%;margin:4px 0 10px;padding:12px 14px;border-radius:16px;border:1px dashed rgba(255,255,255,.14);background:transparent;color:var(--ink);font:700 .95rem Manrope,system-ui,sans-serif;cursor:pointer;text-align:left}
.more-btn small{flex:1;font-size:.78rem;color:var(--muted);font-weight:600}
.more-btn i{font-style:normal;color:var(--muted);transition:transform .15s}.more-btn.open i{transform:rotate(180deg)}
/* you sheet */
.you-h{display:flex;align-items:center;gap:12px;margin:2px 0 10px}.you-h b{display:block;font-size:1.1rem}.you-h small{color:var(--muted)}
.you-row{display:flex;flex-direction:column;gap:2px}.you-row small{font-size:.82rem}
@media (min-width:768px){
  .tsplit{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .hero-card,.hc-in{min-height:240px}
  .hc-title{font-size:2.3rem}
}
.hero-card.off{color:var(--ink);background:var(--glass);border-color:var(--hair);min-height:0;flex-wrap:nowrap;display:block;box-shadow:none}
.hero-card.off .hc-in{min-height:0;gap:8px}
.hero-card.off .btn{margin-top:4px}

/* ===== v36 cockpit in D colors ===== */
.fx{--fx-bg:#0D1114;--fx-panel:#151C20;--fx-panel2:#1C2428;--fx-line:#243035;--fx-ink:#EEF2F2;--fx-mute:#8E9B9E;--fx-acc:#FFCF3D;--fx-data:#4FD1C5;
  background:#0D1114 radial-gradient(120% 420px at 50% -80px,#1B2925 0%,rgba(13,17,20,0) 100%) no-repeat;font-family:Manrope,system-ui,sans-serif}
.fx h1,.fx h2{font-family:Manrope,system-ui,sans-serif;font-weight:800;letter-spacing:-.02em}
.fx-panel{background:linear-gradient(180deg,#182024,#12181B);border-color:rgba(255,255,255,.075);border-radius:20px;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.fx-status{background:rgba(13,17,20,.88);border-bottom-color:rgba(255,255,255,.06)}
.fx-x{border-radius:50%;background:rgba(255,122,107,.12);border-color:transparent;color:#FF7A6B}
.fx-modes{background:rgba(255,255,255,.05);border-color:transparent;border-radius:12px}
.fx-modes button{font-family:Manrope,system-ui,sans-serif;border-radius:9px}
.fx-modes button.on{background:#222B30;color:var(--fx-ink)}
.fx-meters b,.fx-kv b,.fx-big,.fx-mid,.fx-tgt b,.fx-numv,.fx-cdbig{font-family:"Chakra Petch",sans-serif;font-weight:600}
.fx-cta{color:#141414;border-radius:18px;font-family:Manrope,system-ui,sans-serif;font-weight:800;text-transform:none;letter-spacing:0;font-size:1.2rem;box-shadow:0 12px 26px -12px rgba(255,207,61,.7)}
.fx-cta:disabled{font-family:Manrope,system-ui,sans-serif}
.fx-pm{border-radius:14px;background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.07)}
.fx-ctl{background:rgba(0,0,0,.22);border-color:rgba(255,255,255,.06);border-radius:16px}
.fx .fx-row input.fx-num{font-family:"Chakra Petch",sans-serif;font-weight:600}
.fx-links button,.fx-link,.fx-cta2{border-radius:12px;border-color:rgba(255,255,255,.08);font-family:Manrope,system-ui,sans-serif;font-weight:600}
.fx-ring{width:220px;height:220px}
.fx-ring line{stroke:#2A3236;stroke-linecap:round;transition:stroke .2s}
.fx-ring line.on{stroke:var(--fx-acc)}
.fx-ring.go line{stroke:var(--g-precise)}
.fx-ring .face{fill:#151C20;stroke:rgba(255,255,255,.05)}
.fx-ring .t{fill:var(--fx-ink);font:600 46px "Chakra Petch",sans-serif}
.fx-ring.go .t{fill:var(--g-precise)}
.fx-report .hero{border-color:rgba(255,207,61,.25);background:linear-gradient(160deg,#211F15,#151C20 62%)}
.fx-rail{background:linear-gradient(180deg,#182024,#12181B)}
.pip{border-radius:7px}
@media (orientation:landscape) and (max-height:500px){.fx-ring{width:140px;height:140px}}

/* ===== v36 Progress dashboard ===== */
.pdash{display:grid;grid-template-columns:minmax(0,1fr);gap:0 14px}
.pd-big{display:flex;align-items:baseline;gap:10px;margin:4px 0 2px}
.pd-big b{font:600 2.3rem/1 "Chakra Petch",sans-serif}
.pd-big span{font:800 .8rem Manrope,sans-serif}.pd-big .up{color:var(--teal)}.pd-big .down{color:var(--coral)}
.pd-chart{display:block;width:100%;height:auto;margin-top:8px}
.pd-grid{stroke:rgba(255,255,255,.05)}
.pd-ax{fill:#5E6A6D;font:700 12px Manrope,sans-serif}.pd-ax.now{fill:var(--ink)}
.pd-empty{fill:none;stroke:rgba(255,255,255,.12);stroke-dasharray:3 3}
.pd-leg{display:flex;gap:14px;margin-top:8px;font:700 .75rem Manrope,sans-serif;color:var(--muted)}.pd-leg i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}
.pr-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--hair)}.pr-row:last-child{border-bottom:0}
.pr-ic{width:30px;height:30px;flex:none;border-radius:10px;background:rgba(255,207,61,.12);color:var(--sig);display:grid;place-items:center;font-size:.85rem}
.pr-t{flex:1;min-width:0;display:flex;flex-direction:column}.pr-t b{font-size:.92rem}.pr-t small{font-size:.76rem;color:var(--muted)}
.pr-v{font-size:.95rem;white-space:nowrap}
@media (min-width:760px){.pdash{grid-template-columns:repeat(2,minmax(0,1fr))}.pdash>.card:first-child{grid-column:1/-1}}
@media (min-width:1100px){.pdash{grid-template-columns:repeat(3,minmax(0,1fr))}.pdash>.card:first-child{grid-column:auto}}
.fuelhead .fh-big{display:flex;align-items:baseline;gap:8px;margin:2px 0}
.fuelhead .fh-big b{font:600 2.3rem/1 "Chakra Petch",sans-serif}.fuelhead .fh-big span{font:700 .82rem Manrope,sans-serif;color:var(--muted)}
.fuelhead .macros .bar{height:5px}
.methods button{background:var(--glass);border-color:var(--hair);border-radius:16px;font-family:Manrope,system-ui,sans-serif;font-weight:700}
.methods button b{color:var(--lav)}
.daynav strong{font:800 1rem Manrope,sans-serif}
.icon-btn{border-radius:12px;background:rgba(255,255,255,.04);border-color:var(--hair)}
.top .av-btn{width:40px;height:40px}
.wscore .ws-pts{font:700 .8rem Manrope,sans-serif;color:var(--muted)}.wscore .ws-pts b{font-size:1.4rem;color:var(--sig)}
.wscore .macros b{font-family:"Chakra Petch",sans-serif;font-weight:600}
.badge{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;font:700 .76rem Manrope,sans-serif;color:var(--sig);background:rgba(255,207,61,.1);border:1px solid rgba(255,207,61,.3);white-space:nowrap}
/* short landscape phones: icon-only sidebar so content keeps the width */
@media (min-width:768px) and (max-height:500px){
  body,body.sb-collapsed{padding-left:72px}
  .tabs{width:72px;padding:12px 8px}
  .tab{justify-content:center;padding:10px 0}.tab span,.sb-title,.sb-user-name,.sb-sync,.sb-collapse,.sb-acc-head span,.sb-acc-chev{display:none}
  .sb-brand{justify-content:center}.sb-user{justify-content:center;padding:6px}
  body.sb-settings-open .tabs .sb-acc-body{display:none}
}

/* ===== v37 ranks ===== */
.rankcard{display:flex;align-items:center;gap:14px;width:100%;padding:14px;margin:0 0 10px;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.rk-emb{flex:none;filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}
.rk-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.rk-t b{font:800 1.2rem Manrope,sans-serif;letter-spacing:-.01em}
.rk-t small{font-size:.76rem;color:var(--muted);font-weight:600}
.rk-bar{display:block;height:6px;border-radius:3px;background:rgba(255,255,255,.07);overflow:hidden}.rk-bar i{display:block;height:100%;border-radius:3px}
.rk-bar.big{height:8px;margin:12px 0 6px}
.rk-rp{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.rk-rp b{font:600 1.35rem/1 "Chakra Petch",sans-serif}.rk-rp small{font:700 .75rem Manrope,sans-serif;letter-spacing:.12em;color:var(--muted)}
.rk-rp em{font:700 .75rem Manrope,sans-serif;font-style:normal;margin-top:4px}
.up{color:var(--teal)}.down{color:var(--coral)}
.rk-banner{display:flex;align-items:center;gap:12px;padding:12px 6px 12px 14px;margin:0 0 10px}
.rk-banner.up{border-color:rgba(255,207,61,.45);background:linear-gradient(120deg,rgba(255,207,61,.12),rgba(23,30,34,.9) 60%)}
.rk-banner.down{border-color:rgba(255,122,107,.4)}
.rk-bt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.rk-bt b{font:800 1.1rem Manrope,sans-serif}.rk-bt small{font-size:.8rem;color:var(--muted)}
.rk-hero{display:flex;align-items:center;gap:16px}.rk-hero b{display:block;font:800 1.6rem Manrope,sans-serif;letter-spacing:-.02em}.rk-big{font-size:1.1rem;color:var(--muted)}
.rk-ev{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--hair);font-size:.9rem}.rk-ev:last-child{border-bottom:0}
.rk-ev b{font-size:.95rem}
.rk-ladder{display:flex;flex-direction:column;gap:2px}
.rk-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:14px}
.rk-row.cur{background:rgba(255,255,255,.05);border:1px solid var(--hair)}.rk-row.past{opacity:.6}
.rk-rn{flex:1;display:flex;flex-direction:column}.rk-rn b{font-size:.98rem}.rk-rn small{font-size:.76rem;color:var(--muted)}
.rk-row em{font:800 .75rem Manrope,sans-serif;font-style:normal;color:var(--sig);letter-spacing:.1em;text-transform:uppercase}
.rk-rules{display:grid;grid-template-columns:minmax(0,1fr);gap:0 18px}
@media (min-width:640px){.rk-rules{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fx-rank{display:flex;align-items:center;gap:12px;margin:4px 0 2px}.fx-rank b{display:block;font:800 1.15rem Manrope,sans-serif}
/* ===== v37 getting started + welcome ===== */
.tips{border-color:rgba(255,207,61,.25)}
.tips-n{font:700 .75rem Manrope,sans-serif;color:var(--muted);display:flex;align-items:center;gap:8px}.tips-n b{color:var(--sig);font-size:.95rem}
.tips-bar{height:4px;border-radius:2px;background:rgba(255,255,255,.07);margin:8px 0 4px;overflow:hidden}.tips-bar i{display:block;height:100%;background:var(--sig)}
.tip{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--hair)}.tip:last-child{border-bottom:0;padding-bottom:2px}
.tip-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tip-t b{font-size:.95rem}.tip-t small{font-size:.8rem;color:var(--muted);line-height:1.35}
.tip-a{display:flex;align-items:center;gap:2px;flex:none}
.welcome{min-height:calc(100vh - 40px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:8px 6px 24px;max-width:460px;margin:0 auto}
.wl-top{width:100%;display:flex;justify-content:space-between;align-items:center}
.welcome .brand{font:700 1.2rem "Chakra Petch",sans-serif;letter-spacing:.2em;color:var(--sig)}
.welcome h1{font-size:1.9rem;margin:2px 0}.welcome p{max-width:360px;line-height:1.5}
.wl-art{position:relative;width:100%;min-height:230px;display:grid;place-items:center;margin:14px 0 4px}
.wl-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:2.6rem}.wl-c small{font:800 .75rem Manrope,sans-serif;letter-spacing:.16em;color:var(--muted)}
.wl-fuel{display:flex;flex-direction:column;align-items:stretch;gap:10px;max-width:280px;margin:14px auto 4px;padding:20px;border-radius:22px;background:var(--glass);border:1px solid var(--hair);min-height:0;text-align:left}
.wl-fuel b{font-size:2.8rem;line-height:1}.wl-fuel>small{color:var(--muted);font-weight:700;margin-top:-6px}
.wl-m{display:grid;grid-template-columns:62px 1fr;align-items:center;gap:8px}.wl-m em{font:700 .78rem Manrope,sans-serif;font-style:normal;color:var(--muted)}
.wl-ranks{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:6px;max-width:320px;margin:30px auto 20px;min-height:0}
.wl-dots{display:flex;gap:6px;margin:12px 0}.wl-dots i{width:8px;height:8px;border-radius:4px;background:rgba(255,255,255,.15);transition:width .2s}.wl-dots i.on{width:22px;background:var(--sig)}
.welcome .btn{margin-top:auto;max-width:360px}
/* ===== v37 settings dashboard ===== */
.set-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.set-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:0;padding:14px;min-height:118px;text-align:left;color:var(--ink);font:inherit;cursor:pointer}
.set-tile b{font-size:.98rem}.set-tile small{font-size:.78rem;color:var(--muted);line-height:1.35}
.set-ic{width:38px;height:38px;flex:none;border-radius:12px;background:rgba(255,255,255,.05);display:grid;place-items:center}.set-ic svg{width:21px;height:21px}
.set-head{display:flex;align-items:center;gap:12px;margin:6px 0 12px}.set-head h1{font-size:1.5rem}.set-head .set-ic{width:46px;height:46px}
.set-body h3{font-size:1rem;margin-bottom:6px}
.conn{display:flex;flex-direction:column;gap:2px}
.conn-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--hair)}.conn-row.dim{opacity:.55}
.conn-row div{flex:1;display:flex;flex-direction:column}.conn-row small{font-size:.8rem;color:var(--muted)}
.conn-ic{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.05);flex:none}
.conn-st{font:800 .75rem Manrope,sans-serif;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--muted)}.conn-st.on{background:rgba(79,209,197,.15);color:var(--teal)}
@media (min-width:760px){.set-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pd-empty-t{font:700 1.05rem Manrope,sans-serif;color:var(--muted);margin:10px 0 4px}
/* ===== v38: drinks count toward water ===== */
.fluid-row{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;font-weight:600;color:var(--ink)}
.fluid-row .unit{color:var(--muted);font-weight:500}
.fluid-row input{width:96px;margin-left:auto}

/* v39: Earnstone lockup, favorites editing, toast actions */
.brand-lock{display:inline-flex;align-items:center;gap:10px;color:var(--ink)}
.brand-lock svg{width:32px;height:32px;flex:none}
.brand-lock span{font:800 1.45rem Manrope,sans-serif;letter-spacing:-.02em;line-height:1}
.brand-lock.sm{gap:8px}.brand-lock.sm svg{width:24px;height:24px}.brand-lock.sm span{font-size:1.12rem}
.fav-edit{width:40px;height:40px}
.fav-dupe{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;margin:6px 0 8px;border:1px dashed var(--hair, var(--line));border-radius:12px}
.fav-dupe span{flex:1}
.toast.has-act{display:flex;align-items:center;gap:14px;width:max-content;max-width:min(90vw,440px);box-sizing:border-box}
.toast-act{white-space:nowrap;flex:none}
.toast-act{background:none;border:0;color:inherit;font:800 .9rem Manrope,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px 2px}

/* v40: collapsed sidebar is a clean icon rail (labels, settings list and wrap were leaking into 72px) */
@media (min-width:768px){
  .sb-acc-head{justify-content:flex-start}.sb-acc-head .sb-acc-chev{margin-left:auto}
  .sb-gear{width:20px;height:20px;flex:none}
  .tab span,.sb-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sb-collapse:focus:not(:focus-visible),.sb-logo:focus:not(:focus-visible),.tab:focus:not(:focus-visible){outline:none}
  .sb-collapse:focus-visible,.sb-logo:focus-visible,.tab:focus-visible{outline:2px solid var(--sig);outline-offset:2px}
  body.sb-collapsed .tabs{padding-left:12px;padding-right:12px;overflow:hidden}
  body.sb-collapsed .tab{justify-content:center;padding:11px 0;gap:0}
  body.sb-collapsed .tab span,body.sb-collapsed .sb-acc-chev,body.sb-collapsed .tabs .sb-acc-body{display:none}
  body.sb-collapsed .sb-brand{align-items:center}
  body.sb-collapsed .sb-user{justify-content:center;padding:6px}
  body.sb-collapsed .sb-divider{margin:0 6px}
}

/* v40: Today top row in three columns: score | macros | fuel, water, sleep */
.tsplit.three{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:8px}
.tsplit.three .dscore{padding:10px 6px}
.dscore .dial{position:relative;width:100%;max-width:150px}
.dscore .dial svg{display:block;width:100%;height:auto;margin-top:4px}
.dscore .dial .dv{position:absolute;left:0;right:0;bottom:2px;margin:0;text-align:center}
.tsplit.three .dscore small{margin-top:6px;font-size:.75rem;line-height:1.25}
.macp{margin:0;padding:10px 8px;display:flex;flex-direction:column;gap:8px;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.mp-row{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;align-items:stretch}
.mp{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}
.mp .n{font:600 .95rem/1 "Chakra Petch",sans-serif}
.mp-bar{position:relative;width:12px;flex:1;min-height:60px;border-radius:6px;background:rgba(255,255,255,.07);overflow:hidden}
.mp-bar i{position:absolute;left:0;right:0;bottom:0;border-radius:6px}
.mp.over .mp-bar{box-shadow:inset 0 3px 0 var(--coral)}.mp.over .n{color:var(--coral)}
.mp-l{font:800 .75rem Manrope,sans-serif;color:var(--muted);text-align:center;line-height:1.1}.mp-l small{display:block;font-weight:600;font-size:.75rem;opacity:.85}
.tsplit.three .tstack{gap:8px}
.tsplit.three .card.mini{padding:8px 10px;gap:6px}
.tsplit.three .mt{flex-direction:column;align-items:flex-start;gap:1px}
.tsplit.three .mv{font-size:.98rem}
@media (min-width:768px){
  .tsplit.three{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr);gap:12px}
  .mp-bar{width:16px;min-height:90px}.mp .n{font-size:1.15rem}.mp-l{font-size:.8rem}.mp-l small{font-size:.75rem}
  .tsplit.three .mt{flex-direction:row;align-items:baseline}
  .tsplit.three .mv{font-size:1.12rem}
}

/* v40: Ranks 2.0 */
.rk-today{color:var(--sig);letter-spacing:.04em}
.rk-proving{margin:12px 0 0;padding:12px 14px;display:flex;flex-direction:column;gap:6px;border-color:rgba(255,207,61,.35)}
.rk-proving b{font-size:1rem}.rk-proving small{color:var(--muted);font-size:.8rem;line-height:1.35}
.rk-dots{display:flex;gap:8px}.rk-dots i{width:28px;height:8px;border-radius:4px;background:rgba(255,255,255,.08)}.rk-dots i.on{background:var(--sig)}.rk-dots i.now{background:rgba(255,207,61,.35)}
.rk-pillars,.rk-stds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rk-stds{grid-template-columns:repeat(3,minmax(0,1fr))}
.rk-pl,.rk-std{display:flex;flex-direction:column;gap:5px;padding:9px 10px;border:1px solid var(--hair,var(--line));border-radius:12px;background:rgba(255,255,255,.03)}
.rk-pl span,.rk-std span{font:700 .75rem Manrope,sans-serif;color:var(--muted);letter-spacing:.04em}.rk-pl b small{font-size:.75rem;color:var(--muted)}
.rk-std.ok b{color:var(--teal)}
.rk-ev.col{flex-direction:column;align-items:flex-start;gap:2px}.rk-ev.col small{color:var(--muted);font-size:.78rem}
.rk-mode{margin:12px 0 0;padding:12px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.rk-mode small{color:var(--muted)}
.rk-mode.leave{border-color:rgba(79,209,197,.4)}.rk-mode.sick{border-color:rgba(169,155,255,.4)}
.rk-bank{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:6px}.rk-bank div{padding:10px 12px;border:1px solid var(--hair,var(--line));border-radius:12px;display:flex;flex-direction:column}
.rk-bank b{font-size:1.4rem}.rk-bank small{color:var(--muted);font-size:.76rem}
.rk-form{margin:10px 0 0;padding:12px 14px;display:flex;flex-direction:column;gap:8px}

/* v40: inbox */
.ibx-btn{position:relative;width:42px;height:42px;flex:none;border-radius:50%;border:1px solid var(--hair,var(--line));background:rgba(255,255,255,.04);color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0}
.ibx-btn svg{width:20px;height:20px}
.ibx-n{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:9px;background:var(--sig);color:#141414;font:800 .75rem/18px Manrope,sans-serif;text-align:center}
.thead .sync{margin-left:auto}
.ibx-row{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;margin:6px 0;border-radius:14px;border:1px solid var(--hair,var(--line));background:rgba(255,255,255,.03);color:var(--ink);font:inherit;text-align:left}
button.ibx-row{cursor:pointer}
.ibx-row.award{border-color:rgba(255,207,61,.3)}.ibx-row.award.new{background:linear-gradient(120deg,rgba(255,207,61,.12),rgba(255,255,255,.02) 70%)}
.ibx-row img{width:52px;height:auto;flex:none;filter:drop-shadow(0 4px 8px rgba(0,0,0,.45))}
.ibx-ic{width:32px;height:32px;flex:none;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.06);color:var(--sig);font-size:.9rem}
.ibx-row.down .ibx-ic{color:var(--coral)}.ibx-row.leave .ibx-ic{color:var(--teal)}.ibx-row.weekly .ibx-ic{color:var(--lav)}
.ibx-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ibx-t b{font-size:.94rem}.ibx-t small{color:var(--muted);font-size:.8rem;line-height:1.3}
.ibx-t .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--sig);vertical-align:middle;margin-left:4px}
.ibx-d{font:700 .75rem Manrope,sans-serif;color:var(--muted);align-self:flex-start}
.ibx-set{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--hair,var(--line))}
.ibx-set span{display:flex;flex-direction:column;gap:2px}.ibx-set small{color:var(--muted);font-size:.8rem}.ibx-set input{width:22px;height:22px;accent-color:var(--sig)}
.award-card{display:flex;align-items:center;gap:14px;width:100%;margin:0 0 10px;padding:12px 14px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-color:rgba(255,207,61,.45);background:linear-gradient(120deg,rgba(255,207,61,.14),rgba(23,30,34,.9) 65%)}
.award-card img{width:64px;height:auto;filter:drop-shadow(0 6px 12px rgba(0,0,0,.5))}.award-card span{display:flex;flex-direction:column;gap:3px}.award-card b{font-size:1.05rem}.award-card small{color:var(--sig);font-weight:700}
/* v40: award reveal */
body.rv-open{overflow:hidden}
.reveal{position:fixed;inset:0;z-index:60;background:radial-gradient(90% 60% at 50% 36%,#1d2a24 0%,#0D1114 72%);display:flex;flex-direction:column;align-items:center;opacity:0;transition:opacity .45s;overflow:hidden;color:var(--ink)}
.reveal.in{opacity:1}
.rv-x{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:14px;z-index:3}
.rv-stage{position:relative;margin-top:calc(64px + env(safe-area-inset-top,0px));width:min(94vw,480px);aspect-ratio:640/498;perspective:1200px;display:grid;place-items:center;touch-action:none;cursor:grab}
.rv-ring{position:absolute;width:80%;aspect-ratio:1;border-radius:50%;border:2px solid;opacity:0;pointer-events:none}
.rv-coin{position:relative;width:100%;height:100%;transform-style:preserve-3d;will-change:transform}
.reveal.in:not(.subtle) .rv-coin{animation:rvSpin 1.9s cubic-bezier(.16,.84,.24,1) both}
@keyframes rvSpin{0%{transform:rotateY(-720deg) scale(.25);opacity:0}25%{opacity:1}100%{transform:rotateY(0) scale(1);opacity:1}}
.reveal.in:not(.subtle) .rv-ring{animation:rvRing 1.4s cubic-bezier(.2,.7,.2,1) 1.6s forwards}
@keyframes rvRing{0%{transform:scale(.55);opacity:.85}100%{transform:scale(1.5);opacity:0}}
.rv-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;filter:drop-shadow(0 18px 30px rgba(0,0,0,.55))}
.rv-face img{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.rv-face.back{transform:rotateY(180deg)}
.rv-glint{position:absolute;inset:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;
  background:linear-gradient(105deg,transparent 35%,rgba(255,250,230,.7) 48%,transparent 60%) no-repeat;background-size:300% 100%;background-position:150% 0;mix-blend-mode:screen;pointer-events:none}
.reveal.in:not(.subtle) .rv-glint{animation:rvSweep 1.25s ease-in-out 1.85s forwards}
@keyframes rvSweep{from{background-position:150% 0}to{background-position:-60% 0}}
.rv-eng{position:absolute;left:18%;right:18%;top:50%;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;font:700 clamp(.62rem,2.9vw,.9rem) "Chakra Petch",sans-serif;letter-spacing:.14em;color:rgba(40,28,8,.9);text-shadow:0 1px 0 rgba(255,245,215,.45),0 -1px 0 rgba(0,0,0,.25)}
.rv-eng b{font-size:1.35em;letter-spacing:.12em}
.rv-face.back.obsidian .rv-eng{color:rgba(225,226,235,.82);text-shadow:0 -1px 0 rgba(0,0,0,.6)}
.rv-face.back.tungsten .rv-eng{color:rgba(18,20,24,.92);text-shadow:0 1px 0 rgba(255,255,255,.4),0 -1px 0 rgba(0,0,0,.3)}
.rv-copy{width:min(92vw,440px);margin-top:auto;padding:0 6px calc(26px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.rv-copy>*{opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s}
.reveal.done .rv-copy>*{opacity:1;transform:none}
.reveal.done .rv-copy>*:nth-child(2){transition-delay:.12s}.reveal.done .rv-copy>*:nth-child(3){transition-delay:.24s}.reveal.done .rv-copy>*:nth-child(4){transition-delay:.36s}.reveal.done .rv-copy>*:nth-child(n+5){transition-delay:.5s}
.rv-copy h2{font:800 1.9rem/1.08 Manrope,sans-serif;letter-spacing:-.02em;margin:0;text-wrap:balance}
.rv-copy p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.4}
.rv-meta{font:600 .78rem "Chakra Petch",sans-serif;letter-spacing:.12em;color:var(--muted);margin:2px 0 8px}
.rv-dust i{position:absolute;width:3px;height:3px;border-radius:50%;background:#FFD970;box-shadow:0 0 6px rgba(255,207,61,.8);opacity:0}
.reveal.in:not(.subtle) .rv-dust i{animation:rvDust 4s ease-in-out infinite}
@keyframes rvDust{0%{opacity:0;transform:translateY(10px) scale(.6)}30%{opacity:.9}100%{opacity:0;transform:translateY(-60px) scale(1)}}
@media (prefers-reduced-motion:reduce){.reveal *{animation:none!important;transition:none!important}}

/* v40: achievements */
.rp-tick{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:40;padding:6px 12px;border-radius:999px;background:rgba(255,207,61,.16);border:1px solid rgba(255,207,61,.5);color:var(--sig);font:800 .9rem "Chakra Petch",sans-serif;pointer-events:none;animation:rpTick 1.5s ease-out forwards}
@keyframes rpTick{0%{opacity:0;transform:translate(-50%,10px)}20%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-34px)}}
.nudge{display:block;width:100%;margin:-4px 0 10px;padding:9px 14px;border-radius:14px;border:1px dashed rgba(255,207,61,.3);background:transparent;color:var(--muted);font:600 .86rem Manrope,sans-serif;text-align:left;cursor:pointer}
.nudge b{color:var(--ink)}.nudge span{float:right;color:var(--sig);font-weight:800}
.rk-links{display:flex;gap:8px;margin-top:12px}
.rb-row{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:6px 0;border-radius:12px;border:1px solid var(--hair,var(--line));background:rgba(255,255,255,.02)}
.rb-row.got{background:rgba(255,207,61,.05);border-color:rgba(255,207,61,.22)}.rb-row.honor.got{border-color:rgba(255,207,61,.55);background:linear-gradient(120deg,rgba(255,207,61,.12),rgba(255,255,255,.02) 70%)}
.rb-ic{width:28px;height:28px;flex:none;display:grid;place-items:center;border-radius:50%;background:rgba(255,207,61,.15);color:var(--sig)}.rb-ic.off{background:rgba(255,255,255,.05);color:var(--muted)}
.rb-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.rb-t b{font-size:.92rem}.rb-t small{color:var(--muted);font-size:.78rem;line-height:1.3}
.rb-row:not(.got) .rb-t b{color:var(--muted)}
.rb-rp{font:700 .82rem "Chakra Petch",sans-serif;color:var(--muted)}.rb-rp.up{color:var(--sig)}
.rb-streaks{display:flex;flex-wrap:wrap;gap:6px}
.tr-shelf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}
@media (min-width:768px){.tr-shelf{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tr-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 10px 12px;border-radius:16px;border:1px solid rgba(255,207,61,.22);background:radial-gradient(80% 70% at 50% 30%,rgba(255,207,61,.08),rgba(255,255,255,.02));color:var(--ink);font:inherit;cursor:pointer;text-align:center}
.tr-art{width:100%;aspect-ratio:1;display:grid;place-items:center}.tr-art img{max-width:92%;max-height:100%;filter:drop-shadow(0 10px 16px rgba(0,0,0,.5))}
.tr-card b{font-size:.9rem}.tr-card small{color:var(--muted);font-size:.75rem}
.tr-closed{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:14px 8px;opacity:.85}.tr-closed .rv-plate{width:120px;filter:grayscale(.6) brightness(.7)}
.tr-closed p{margin:6px 0 0;font-weight:700}.tr-closed small{color:var(--muted);line-height:1.4}
.ibx-ic.gold{color:#141414;background:var(--sig)}
/* struck plate for awards without a render yet */
.rv-plate{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6d8 0%,var(--pc) 28%,color-mix(in srgb,var(--pc) 55%,#3a2a08) 70%,#2a1e06 100%);box-shadow:inset 0 0 0 6px color-mix(in srgb,var(--pc) 70%,#000),inset 0 0 0 9px rgba(255,255,255,.25),0 18px 30px rgba(0,0,0,.5)}
.rv-plate-in{display:flex;flex-direction:column;align-items:center;gap:6%;width:70%;color:color-mix(in srgb,var(--pc) 40%,#1a1204)}
.rv-plate-in svg{width:38%}.rv-plate-in b{font:800 clamp(.55rem,2.6vw,.95rem) "Chakra Petch",sans-serif;letter-spacing:.14em;text-align:center}
.rv-stage.round{width:min(70vw,320px);aspect-ratio:1}
.rv-stage.round .rv-eng{left:16%;right:16%;top:36%}
.rv-face.back.award .rv-eng{color:rgba(40,28,8,.9)}
.award-card .rv-plate{width:64px;flex:none}.award-card .rv-plate-in b{display:none}

/* v41: net carbs note under the macro pillars */
.mp-note{display:block;text-align:center;font:600 .75rem Manrope,sans-serif;color:var(--muted);line-height:1.2;margin-top:-2px}
@media (min-width:768px){.mp-note{font-size:.75rem}}

/* v45: intro slides fit the visible screen (Safari toolbars included); Next is always on screen */
.welcome{min-height:calc(100vh - 40px);min-height:calc(100dvh - 40px);gap:8px;padding-bottom:0}
/* v46: only the clock scales with screen height; the rank row and fuel card size to their content
   (v45's '.wl-art svg' rule blew every rank emblem up to the clock's height) */
.wl-art{min-height:0;margin:6px 0 2px}
.wl-clock{height:clamp(150px,30dvh,230px)}
.wl-clock .wl-ring{width:auto;height:100%;max-height:200px}
.wl-ranks .rk-emb{width:auto;height:auto}
.wl-fuel{margin:6px auto 2px;padding:16px}
.wl-ranks{margin:14px auto 10px}
.welcome h1{font-size:clamp(1.5rem,4.2dvh,1.9rem)}
.wl-foot{position:sticky;bottom:0;margin-top:auto;width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;padding:6px 0 calc(14px + env(safe-area-inset-bottom,0px));background:linear-gradient(to top,var(--bg) 70%,transparent)}
.wl-foot .wl-dots{margin:4px 0 10px}
.welcome .wl-foot .btn{margin-top:0;width:100%}
@media (max-height:600px){.welcome p{font-size:.92rem;line-height:1.4}.wl-clock{height:clamp(120px,24dvh,180px)}}
/* v46: intro screens fill exactly one screen - no stray scroll from the tab bar's bottom padding */
main:has(> .welcome){padding-bottom:0}
.welcome{min-height:calc(100vh - 10px);min-height:calc(100dvh - 10px)}
@media (min-width:768px){#app:has(> .welcome){padding-bottom:0}.welcome{min-height:calc(100dvh - 28px)}}
.wl-ranks{margin:26px auto 18px}
/* v46: on tall screens the slide sits centered between the top bar and Next instead of hugging the top */
.welcome > .wl-art{margin-top:auto}
@media (min-height:700px){.wl-ranks{transform:scale(1.1);margin:36px auto 30px}}
.welcome{overflow-x:clip}

/* ===== v47: point notifier ===== */
.pn{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:45;display:flex;align-items:center;gap:12px;
  min-width:220px;max-width:min(92vw,420px);padding:10px 10px 10px 12px;border-radius:18px;color:var(--ink);
  background:linear-gradient(135deg,rgba(255,207,61,.16),rgba(20,28,32,.96) 55%),#11181C;border:1px solid rgba(255,207,61,.45);
  box-shadow:0 14px 34px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.03) inset,0 0 24px rgba(255,207,61,.12);animation:pnIn .26s cubic-bezier(.2,.9,.3,1.2) both;touch-action:pan-x}
.pn.out{animation:pnOut .18s ease-in forwards}
.pn.loss{background:linear-gradient(135deg,rgba(255,122,107,.16),rgba(20,28,32,.96) 55%),#11181C;border-color:rgba(255,122,107,.45);box-shadow:0 14px 34px rgba(0,0,0,.5),0 0 24px rgba(255,122,107,.12)}
.pn.streak{background:linear-gradient(135deg,rgba(79,209,197,.18),rgba(20,28,32,.96) 55%),#11181C;border-color:rgba(79,209,197,.5)}
.pn.award{box-shadow:0 14px 34px rgba(0,0,0,.5),0 0 30px rgba(255,207,61,.25)}
@keyframes pnIn{from{opacity:0;transform:translate(-50%,16px) scale(.96)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes pnOut{to{opacity:0;transform:translate(-50%,10px) scale(.97)}}
.pn-chev{position:relative;width:26px;height:34px;flex:none;color:var(--sig)}
.pn.loss .pn-chev{color:var(--coral)}.pn.streak .pn-chev{color:var(--teal)}
.pn-chev svg{position:absolute;left:1px;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0;animation:pnUp 1.1s ease-in-out infinite}
.pn-chev svg:nth-child(1){top:12px;animation-delay:0s}.pn-chev svg:nth-child(2){top:5px;animation-delay:.14s}.pn-chev svg:nth-child(3){top:-2px;animation-delay:.28s}
.pn-chev.down svg{transform:rotate(180deg);animation-name:pnDown}
.pn-chev.down svg:nth-child(1){top:-2px}.pn-chev.down svg:nth-child(3){top:12px}
@keyframes pnUp{0%{opacity:0;transform:translateY(6px)}35%{opacity:1}70%{opacity:1;transform:translateY(-2px)}100%{opacity:0;transform:translateY(-6px)}}
@keyframes pnDown{0%{opacity:0;transform:rotate(180deg) translateY(6px)}35%{opacity:1}70%{opacity:1}100%{opacity:0;transform:rotate(180deg) translateY(-6px)}}
.pn-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.pn-t b{font:700 1.25rem/1.05 "Chakra Petch",sans-serif;color:var(--sig)}.pn.loss .pn-t b{color:var(--coral)}.pn.streak .pn-t b{color:var(--teal)}
.pn-t b small{font-size:.75rem;letter-spacing:.08em;color:var(--muted)}
.pn-t span{font:700 .82rem Manrope,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pn-t em{font-style:normal;color:var(--muted);font-weight:600}
.pn-act{border:0;background:rgba(255,207,61,.15);color:var(--sig);font:800 .8rem Manrope,sans-serif;padding:7px 10px;border-radius:10px;cursor:pointer}
.pn-x{width:30px;height:30px;flex:none;border:0;border-radius:50%;background:rgba(255,255,255,.06);color:var(--muted);font-size:.8rem;cursor:pointer}
@media (min-width:768px){.pn{bottom:28px}}
@media (prefers-reduced-motion:reduce){.pn,.pn-chev svg{animation:none!important;opacity:1}}
/* ===== v47: activity ===== */
.act-ic{width:22px;height:22px;flex:none}.act-ic.lg{width:26px;height:26px;vertical-align:-5px;color:var(--teal)}
.actcard{position:relative;display:flex;flex-direction:column;gap:10px;margin:0 0 10px;padding:14px}
.ac-head{display:flex;align-items:center;gap:12px;position:relative}
.ac-n{position:absolute;left:0;width:56px;text-align:center;font:700 .82rem "Chakra Petch",sans-serif}
.ac-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ac-t b{font-size:.98rem}.ac-t small{color:var(--muted);font-size:.8rem;line-height:1.3}
.ac-list{display:flex;flex-direction:column;gap:4px}
.ac-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.03);font-size:.86rem}.ac-row span{flex:1}.ac-row .act-ic{width:18px;height:18px;color:var(--teal)}
.ac-acts{gap:8px}
.act-gh{margin:12px 0 6px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.act-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:8px}
.act-pick{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px 10px;border-radius:14px;border:1px solid var(--hair,var(--line));background:rgba(255,255,255,.03);color:var(--ink);font:700 .76rem Manrope,sans-serif;cursor:pointer;text-align:center;line-height:1.2}
.act-pick .act-ic{width:28px;height:28px;color:var(--ac,var(--teal))}
.act-pick:active{transform:scale(.97)}
.act-int{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.act-int button{display:flex;flex-direction:column;gap:2px;padding:10px 6px;border-radius:12px;border:1px solid var(--hair,var(--line));background:rgba(255,255,255,.03);color:var(--ink);cursor:pointer;font:inherit}
.act-int button b{font-size:.9rem}.act-int button small{color:var(--muted);font-size:.75rem}
.act-int button.on{border-color:rgba(79,209,197,.7);background:rgba(79,209,197,.12)}
.act-est{display:flex;flex-direction:column;gap:4px;margin:12px 0;padding:12px;border-radius:14px;background:rgba(79,209,197,.08);border:1px solid rgba(79,209,197,.3)}
.act-est b{font-size:1.5rem;color:var(--teal)}.act-est small{color:var(--muted);font-size:.76rem}
.fx-cardio .fx-thumb.ac{display:grid;place-items:center;background:rgba(79,209,197,.12);color:var(--teal)}
.fx-mini{border:1px solid rgba(79,209,197,.45);background:transparent;color:var(--teal);border-radius:10px;padding:6px 12px;font:800 .78rem Manrope,sans-serif;cursor:pointer}
/* ===== v47: library ===== */
.lib-filt{flex-wrap:wrap}
.lib-group h3{margin:0}
.lib-row{display:flex;align-items:center;gap:12px;width:100%;padding:8px 4px;border:0;border-bottom:1px solid var(--hair,var(--line));background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.lib-row:last-of-type{border-bottom:0}
.lib-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lib-t b{font-size:.92rem}.lib-t small{color:var(--muted);font-size:.76rem}
.lib-ph{display:grid;place-items:center;background:rgba(255,255,255,.05)!important;color:var(--muted)}
/* ===== v47: grow picker ===== */
.grow-area{margin-top:10px}.grow-area .lbl{display:block;margin-bottom:2px;color:var(--sig)}
/* ===== v47: diets ===== */
.risk{flex:none;padding:3px 8px;border-radius:999px;font:800 .75rem Manrope,sans-serif;letter-spacing:.04em;white-space:nowrap}
.risk.caution{background:rgba(255,207,61,.12);color:var(--sig);border:1px solid rgba(255,207,61,.35)}
.risk.high{background:rgba(255,122,107,.12);color:var(--coral);border:1px solid rgba(255,122,107,.45)}
.diet-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.diet-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--hair,var(--line));background:rgba(255,255,255,.03);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.diet-row span:first-child{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.diet-row b{font-size:.94rem}.diet-row small{color:var(--muted);font-size:.78rem;line-height:1.3}
.diet-detail p{margin:8px 0}.diet-ph{margin:6px 0 8px 18px;color:var(--muted)}
.diet-mac{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.diet-mac span{display:flex;flex-direction:column;padding:10px;border-radius:12px;background:rgba(255,255,255,.04);font-size:.76rem;color:var(--muted)}.diet-mac b{font-size:1.25rem;color:var(--ink)}
.diet-risk{margin-top:10px;padding:12px;border-radius:12px;border:1px solid var(--hair,var(--line))}.diet-risk p{margin:4px 0 0;font-size:.86rem;line-height:1.4}
.diet-risk.caution{border-color:rgba(255,207,61,.35);background:rgba(255,207,61,.06)}.diet-risk.high{border-color:rgba(255,122,107,.45);background:rgba(255,122,107,.07)}
.diet-chosen{display:flex;align-items:center;gap:10px}.diet-chosen b{flex:1}
/* ===== v47: onboarding training choice + plan tour ===== */
.ob-choice{display:flex;align-items:center;gap:12px;width:100%;margin:8px 0;padding:14px;border-radius:16px;border:1px solid var(--hair,var(--line));background:rgba(255,255,255,.03);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.ob-choice.on{border-color:rgba(255,207,61,.6);background:rgba(255,207,61,.08)}
.ob-choice b{display:block;font-size:1rem}.ob-choice small{color:var(--muted);font-size:.82rem;line-height:1.35}
.oc-ic{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:12px;background:rgba(255,207,61,.12);color:var(--sig)}
.plan-art{width:100%;max-width:380px;margin:auto 0 4px;display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:20px;background:var(--glass,rgba(255,255,255,.03));border:1px solid var(--hair,var(--line))}
.plan-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.pw{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;border-radius:10px;background:rgba(255,255,255,.03);min-height:62px}
.pw i{font:800 .75rem Manrope,sans-serif;font-style:normal;color:var(--muted)}
.pw b{font:700 .75rem Manrope,sans-serif;color:var(--muted);text-align:center;line-height:1.15;word-break:break-word}
.pw.on{background:color-mix(in srgb,var(--pc) 18%,transparent);border:1px solid color-mix(in srgb,var(--pc) 55%,transparent)}.pw.on b{color:var(--ink)}
.plan-freq{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;text-align:left}
.plan-freq>span{display:grid;grid-template-columns:62px 1fr 22px;align-items:center;gap:6px;font-size:.75rem}.plan-freq em{font-style:normal;color:var(--muted);font-weight:700}.plan-freq b{font:700 .75rem "Chakra Petch",sans-serif}
.plan-tour .wl-foot .btn.ghost{background:transparent}
/* ===== v48: trainer mode, discovery, warm-up sets, stretching ===== */
.pill-new{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:rgba(255,207,61,.16);color:var(--sig);font:800 .75rem Manrope,sans-serif;letter-spacing:.04em;text-transform:uppercase;vertical-align:2px}
.tm-art{display:flex;align-items:flex-end;gap:10px;height:120px;margin:auto 0 6px}
.tm-art i{width:26px;height:calc(var(--h) * 110px);border-radius:8px 8px 4px 4px;background:linear-gradient(180deg,var(--sig),rgba(255,207,61,.25));transform-origin:bottom;animation:tmRise .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}
@keyframes tmRise{from{transform:scaleY(.1);opacity:0}to{transform:none;opacity:1}}
.tm-feats{display:flex;flex-direction:column;gap:6px;width:100%;max-width:420px;margin:10px 0 0;text-align:left}
.tm-f{display:flex;gap:12px;align-items:center;padding:8px 10px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid var(--hair,var(--line))}
.tm-f b{display:block;font-size:.92rem}.tm-f small{color:var(--muted);font-size:.78rem;line-height:1.3}.tm-f .oc-ic{width:36px;height:36px}
.scr{margin-top:12px}.scr-q{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--hair,var(--line))}
.scr-q:last-of-type{border-bottom:0}.scr-q .seg{flex:none;width:auto}.scr-q .seg button{min-width:52px}
.note-warn{margin-top:10px;padding:12px;border-radius:12px;border:1px solid rgba(255,122,107,.45);background:rgba(255,122,107,.07)}.note-warn p{margin:4px 0 8px}
.pg-head{margin:10px 0 6px}
.disc-cta{display:flex;align-items:center;gap:12px;border-color:rgba(255,207,61,.45)}.disc-cta>span:nth-child(2){flex:1;min-width:0}.disc-cta b{display:block}.disc-cta small{color:var(--muted);font-size:.8rem}.disc-cta>i{font-style:normal;font-size:1.4rem;color:var(--sig)}
.disc-how{margin:8px 0 0 18px;color:var(--muted)}.disc-how li{margin:3px 0}
.disc-day{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--hair,var(--line))}.disc-day:last-child{border-bottom:0}
.disc-day .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.disc-day small{font-size:.78rem;color:var(--muted)}
.dd-ic{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:12px;border:1.5px solid rgba(255,207,61,.45);font:700 .9rem "Chakra Petch",sans-serif}
.disc-day.done .dd-ic{background:var(--sig);border-color:var(--sig);color:#141414}
.cap-row{display:grid;grid-template-columns:76px 1fr 96px;align-items:center;gap:10px;margin:8px 0;font-size:.86rem}
.cap-row .thin{position:relative;height:8px;border-radius:4px;background:rgba(255,255,255,.06);overflow:visible}.cap-row .thin i{display:block;height:100%;border-radius:4px;background:var(--teal)}
.cap-row .thin em{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--muted);opacity:.7}.cap-row b{font-size:.8rem;text-align:right}
.cap-lift{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--hair,var(--line));font-size:.88rem}.cap-lift:last-child{border-bottom:0}
.disc-run{display:block;max-width:640px;margin:0 auto}
.disc-tgt{display:flex;flex-direction:column;align-items:center;gap:6px;margin:14px 0 6px;text-align:center}
.disc-load{font:700 2.6rem/1 "Chakra Petch",sans-serif;color:var(--fx-ink);min-width:150px}.disc-load small{font-size:1rem;color:var(--fx-mute)}
.fx-num.ro{display:grid;place-items:center;min-width:80px;font:700 1.8rem "Chakra Petch",sans-serif}
.disc-feel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:8px 0 4px}
.disc-feel button{min-height:62px;padding:6px 4px;border-radius:12px;border:1px solid var(--fx-line);background:var(--fx-panel2);color:var(--fx-ink);font:700 .82rem/1.15 Manrope,sans-serif;cursor:pointer}
.disc-feel .df-right{border-color:rgba(255,207,61,.6);color:var(--sig)}.disc-feel .df-wayEasy,.disc-feel .df-easy{color:var(--teal)}.disc-feel .df-hard,.disc-feel .df-wayHard{color:var(--coral)}
.disc-rest{text-align:center}.disc-rest p{margin:8px 0}
@media (max-width:480px){.disc-feel{grid-template-columns:repeat(3,minmax(0,1fr))}.disc-load{font-size:2.2rem}}
.fx-warm{margin:10px 0 4px;padding:10px;border-radius:12px;background:var(--fx-panel2);border:1px solid var(--fx-line)}
.wu-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.wu{display:flex;align-items:center;gap:6px;min-height:42px;padding:4px 10px;border-radius:10px;border:1px solid var(--fx-line);background:transparent;color:var(--fx-ink);cursor:pointer;font:inherit}
.wu i{font-style:normal;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.06);font:700 .75rem Manrope,sans-serif}
.wu b{font:700 1rem "Chakra Petch",sans-serif}.wu small{color:var(--fx-mute);font-size:.76rem}
.wu.on{border-color:rgba(79,209,197,.5);background:rgba(79,209,197,.08)}.wu.on i{background:var(--teal);color:#0D1114}.wu.add{min-width:42px;justify-content:center;color:var(--fx-mute);font-size:1.2rem}
.fx-wset .fx-row{align-items:center;gap:12px}.fx-wfixed{font:700 2rem "Chakra Petch",sans-serif;color:var(--fx-ink)}.fx-wset .fx-link{margin-top:0}
.drills{list-style:none;margin:8px 0;padding:0}.drills li{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--hair,var(--line))}.drills li span{color:var(--muted);font-size:.86rem;white-space:nowrap}
details.why{margin-top:10px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--hair,var(--line))}details.why summary{cursor:pointer;font-weight:700;font-size:.88rem}details.why p{margin:8px 0 0;line-height:1.45}
.wu-edit{margin-top:8px}.wu-line{display:flex;align-items:center;gap:10px;padding:6px 0}.wu-line>span:first-child{width:44px}.wu-line .fx-row{display:flex;align-items:center;gap:6px}.wu-line b{min-width:44px;text-align:center}
.fx-pm.sm{width:34px;height:34px;font-size:1.1rem;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--ink);border-radius:9px}
.wd.disc b,.weekdot.disc{background:rgba(79,209,197,.16)!important;color:var(--teal)!important;border-color:rgba(79,209,197,.5)!important}
@media (prefers-reduced-motion:reduce){.tm-art i{animation:none}}
/* ===== v49: safety ===== */
.consent p{line-height:1.45}
.agree{display:flex;gap:10px;align-items:flex-start;margin-top:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--hair,var(--line));background:rgba(255,255,255,.03);cursor:pointer;font-size:.9rem;line-height:1.35}
.agree i{flex:none;width:22px;height:22px;border-radius:6px;border:1.5px solid var(--muted);display:grid;place-items:center;font-style:normal;font-weight:800;font-size:.8rem}
.agree.on{border-color:rgba(255,207,61,.6);background:rgba(255,207,61,.07)}.agree.on i{background:var(--sig);border-color:var(--sig);color:#141414}
.agree .linkish{color:var(--sig);text-decoration:underline;cursor:pointer}
.linkish[role=link]{color:var(--sig);cursor:pointer;text-decoration:underline}
.fx-risk{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-top:1px solid var(--fx-line)}.fx-risk:first-of-type{margin-top:8px}.fx-risk small{color:var(--fx-mute);font-size:.82rem;line-height:1.35}.fx-risk .fx-mini{align-self:flex-start}
.fx-safety{margin:6px 0 0;padding:8px 10px;border-radius:10px;background:rgba(255,207,61,.07);border:1px solid rgba(255,207,61,.3);color:var(--fx-ink);font-size:.84rem;line-height:1.35}
.fx-panel.safe{border-color:rgba(255,122,107,.35)}
.safe-notes{margin-top:10px;padding:10px 12px;border-radius:12px;background:rgba(255,207,61,.06);border:1px solid rgba(255,207,61,.3)}.safe-notes p{margin:4px 0}
.stop-list{margin:8px 0 0 18px}.stop-list li{margin:3px 0}
.agree>span{flex:1;min-width:0}
.scr-q.col{flex-direction:column;align-items:stretch}.scr-q.col .seg{width:100%}.scr-q.col .seg button{flex:1;min-width:0;font-size:.82rem}
.fx-safe-chip{margin-left:8px;padding:2px 8px;border-radius:999px;border:1px solid rgba(255,207,61,.5);background:rgba(255,207,61,.1);color:var(--sig);font:800 .75rem Manrope,sans-serif;letter-spacing:.03em;text-transform:none;cursor:pointer;vertical-align:1px}
/* ===== v50: Locked In ===== */
.lock-bar{height:8px;border-radius:4px;background:rgba(255,255,255,.07);overflow:hidden;margin:6px 0 8px}.lock-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--sig),var(--teal))}
.lock-note{padding:8px 10px;border-radius:10px;border:1px solid rgba(255,207,61,.35);background:rgba(255,207,61,.07);margin:0 0 10px}
/* v51: punch-list sprint */
.slot{flex-wrap:wrap}
.slot .nm{overflow-wrap:anywhere}
.slot-menu{flex-basis:100%;display:flex;justify-content:flex-end;gap:6px;padding-top:6px}
table.mg{width:100%;border-collapse:collapse;font-size:.86rem;margin-top:6px}
table.mg th,table.mg td{padding:6px 4px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
table.mg th:first-child,table.mg td:first-child{text-align:left;white-space:normal}
table.mg th{color:var(--muted);font-weight:600}
table.mg tr.on td{font-weight:700}
.dayflag{display:flex;flex-direction:column;gap:6px;margin:4px 0 12px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px}
.dayflag .seg button{min-height:34px}
.lib-scope{margin:6px 2px}
.seg.wrap button{flex:1 1 40%}
.fx-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.15;font-size:1.05rem}
@media (max-width:420px){table.wk th:nth-child(5),table.wk td:nth-child(5),table.wk th:nth-child(6),table.wk td:nth-child(6){display:none}}
/* v52: food system */
.thumb{flex:none;display:block}
.fitem .thumb{margin-right:2px}
.note-soft{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--sunk)}
.plan-sum{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.plan-sum .ok{color:var(--teal);font-weight:600}
.fixday{padding:12px 14px}
.fixday .btn{flex:none}
.srow{display:flex;gap:10px;align-items:center}
.srow > span{min-width:0;flex:1}
.srow .sname{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.srow small{display:block}
.vbadge{font-style:normal;font:700 .75rem Manrope,sans-serif;letter-spacing:.04em;padding:1px 5px;border-radius:5px;background:rgba(79,209,197,.16);color:var(--teal);vertical-align:2px}
.vbadge.you{background:rgba(169,155,255,.16);color:var(--lav)}
.srch-h{font-size:.8rem;color:var(--muted);margin:14px 0 2px;text-transform:uppercase;letter-spacing:.06em}
.shop-store{margin:14px 0 4px}
.shop-aisle h4{margin:12px 0 4px;font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.shop-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}
.shop-row input{width:20px;height:20px;flex:none;accent-color:var(--teal)}
.shop-row .nm{flex:1;min-width:0}
.shop-row .nm small{display:block;color:var(--muted)}
.shop-row .cost{font:600 .95rem "Chakra Petch",sans-serif;color:var(--muted)}
.shop-row.have .nm{text-decoration:line-through;opacity:.55}
.shop-total{display:flex;justify-content:space-between;align-items:baseline;margin:12px 0 4px;font-weight:600}
.shop-total b{font:700 1.3rem "Chakra Petch",sans-serif}
.seg button .seg-sub{display:block;font:500 .75rem Manrope,sans-serif;opacity:.7;margin-top:2px}
.copy .pre{align-self:center;font-weight:600;color:var(--muted)}
.rd-head{display:flex;gap:12px;align-items:center}
.rlist .fitem:last-child{border-bottom:0}
.warn-t{display:block;color:var(--coral)}
/* v52.1: GLP-type medication */
.glp-b{flex:none;padding:3px 8px;border-radius:999px;font:800 .75rem Manrope,sans-serif;letter-spacing:.03em;white-space:nowrap;border:1px solid var(--line)}
.glp-b.good{background:rgba(79,209,197,.12);color:var(--teal);border-color:rgba(79,209,197,.4)}
.glp-b.care{color:var(--muted)}
.glp-b.avoid{background:rgba(255,122,107,.1);color:var(--coral);border-color:rgba(255,122,107,.4)}
.glp-note{margin:10px 0;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--sunk)}
.glp-note.good{border-color:rgba(79,209,197,.45)}
.glp-note.avoid{border-color:rgba(255,122,107,.45)}
.glp-note p{margin:4px 0 0}
/* v52.2 stack log */
.dose-row{gap:8px}.dose-row .btn.sm{white-space:nowrap}.dose-row.skipped strong{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}
textarea[data-sn]{width:100%;background:var(--bg2,#12141A);color:inherit;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit;resize:vertical}
/* v52.3 port-ready */
.rec-code{font:600 22px/1.3 "Chakra Petch",ui-monospace,monospace;letter-spacing:.08em;text-align:center;padding:14px;border-radius:12px;background:rgba(255,207,61,.08);border:1px dashed rgba(255,207,61,.5);color:var(--sig);margin-top:10px;user-select:all}
.pend-card{border-color:rgba(255,207,61,.35)}.pend-card .dose-row .btn.sm{padding-left:10px;padding-right:10px}
.ai-note{margin-top:6px}.diet-disc{margin-top:10px}.credits a{color:inherit}
/* v53 free day / refeed / seasons */
.special-day{border-left:3px solid var(--sig)}.special-day.refeed{border-left-color:var(--teal)}.special-day p{margin:4px 0 0}
.special-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:-4px 0 10px}
ul.rules{margin:6px 0 10px;padding-left:18px}ul.rules li{margin:2px 0}
.chips-pick .pchip[disabled]{opacity:.35}
.card.season .rk-bar{margin:8px 0}.rk-seasons .rk-ev{padding:4px 0}
/* v54 report card / autopilot / re-test */
.report-card .lbl{display:block}.rc-top{display:flex;gap:12px;align-items:stretch;margin:10px 0}
.rc-overall{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:76px;border-radius:14px;background:rgba(255,255,255,.04);padding:8px}
.rc-overall b{font:700 40px/1 "Chakra Petch",sans-serif}.rc-overall span,.rc-g span{font-size:12px;color:var(--muted)}
.rc-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:6px}.rc-g{display:flex;gap:8px;align-items:center;border-radius:10px;background:rgba(255,255,255,.03);padding:6px 10px}
.rc-g b{font:700 20px/1 "Chakra Petch",sans-serif}
.g-A{color:var(--good,#5BD69B)}.g-B{color:var(--teal)}.g-C{color:var(--sig)}.g-D{color:var(--coral)}
.rc-next{margin:4px 0 0;padding-left:18px}.rc-lifts{margin-top:6px}
.grad h2{margin:4px 0 8px}.rt-row{display:grid;grid-template-columns:1fr 70px;gap:6px 10px;align-items:end;padding:10px 0;border-bottom:1px solid var(--line)}
.rt-row small{display:block;color:var(--muted)}.rt-row .seg{grid-column:1/-1}.rt-row input{width:100%}

/* v55 accessibility: 12px floor (above), stronger tab labels, reps-in-reserve chips */
.tab{color:#9AA8AC}
.rir-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:8px 0 2px}.rir-seg button{min-width:40px;min-height:36px}
.fx-rir{display:flex;flex-direction:column;gap:6px;margin:10px 0 4px}
.auto-opts{display:grid;gap:10px;margin:12px 0}.auto-opt{text-align:left;display:flex;flex-direction:column;gap:4px;cursor:pointer}.auto-opt small{color:var(--muted)}

/* ===== v58: global header, nav drawer, Today rework ===== */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:root{--hdr-h:60px}
.hdr{position:fixed;top:0;left:0;right:0;z-index:8;height:calc(var(--hdr-h) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(12px,env(safe-area-inset-right,0px)) 0 max(8px,env(safe-area-inset-left,0px));
  display:flex;align-items:center;gap:4px;box-sizing:border-box;background:rgba(13,17,20,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--hair)}
.hdr[hidden]{display:none}
body.has-hdr{padding-top:calc(var(--hdr-h) + env(safe-area-inset-top,0px))}
.hd-menu{width:40px;height:40px;flex:none;border:0;border-radius:10px;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;padding:0}
.hd-menu svg{width:22px;height:22px}
.hd-menu:hover,.hd-rank:hover,.hd-brand:hover{background:rgba(255,255,255,.05);color:var(--ink)}
.hd-brand{display:flex;align-items:center;gap:9px;border:0;background:transparent;color:var(--ink);cursor:pointer;padding:4px 8px 4px 4px;border-radius:12px;min-height:40px;flex:none}
.hd-logo{width:30px;height:30px;flex:none;border-radius:9px;background:linear-gradient(160deg,#1A2328,#0D1114);border:1px solid var(--hair);display:grid;place-items:center;padding:4px;box-sizing:border-box;color:var(--ink)}
.hd-logo svg{width:100%;height:100%;display:block}
.hd-word{font:800 1.2rem Manrope,system-ui,sans-serif;letter-spacing:-.02em}
.hd-right{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:0}
.hd-who{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;min-width:0}
.hd-who b{font:700 .9rem Manrope,system-ui,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hd-who span{font:600 .75rem Manrope,system-ui,sans-serif;color:var(--muted);white-space:nowrap}
.hd-who i{font-style:normal}
.hd-rank{width:36px;height:36px;flex:none;border:0;background:transparent;padding:0;display:grid;place-items:center;cursor:pointer;border-radius:10px}
.hd-av{position:relative;width:38px;height:38px}
.hd-dot{position:absolute;top:-5px;right:-6px;min-width:19px;height:19px;padding:0 4px;border-radius:10px;background:var(--coral);color:#0D1114;font:800 .7rem/15px Manrope,sans-serif;text-align:center;box-sizing:border-box;border:2px solid #0D1114}
.hdr .sync{min-height:0;padding:0}
.hd-menu:focus-visible,.hd-brand:focus-visible,.hd-rank:focus-visible,.hd-av:focus-visible{outline:2px solid var(--sig);outline-offset:2px}
@media (max-width:767px){
  .hd-who b,.hd-wd{display:none}
  .hd-word{font-size:1.08rem}
  .hdr .sync.ok{display:none}
  .hd-right{gap:6px}
}
@media (max-width:359px){.hd-word{display:none}}
/* sidebar sits under the header; the old brand row and user card moved into the header */
@media (min-width:768px){
  body.has-hdr .tabs{top:calc(var(--hdr-h) + env(safe-area-inset-top,0px))}
}
/* tablet: an icon rail by default; the menu opens it over the content */
@media (min-width:768px) and (max-width:1099px){
  body.sb-open{padding-left:72px}
  body.sb-open .tabs{width:236px;z-index:9;box-shadow:16px 0 40px rgba(0,0,0,.5)}
}
#drawer .dr-scrim{position:fixed;inset:0;background:rgba(3,6,8,.55);z-index:11;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
#drawer .dr-scrim.rail{z-index:7;top:calc(var(--hdr-h) + env(safe-area-inset-top,0px))}
.dr{position:fixed;top:0;bottom:0;left:0;width:min(300px,84vw);z-index:12;background:#10161A;border-right:1px solid var(--hair);box-sizing:border-box;
  padding:calc(12px + env(safe-area-inset-top,0px)) 12px calc(14px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:2px;overflow-y:auto;animation:drIn .18s ease-out}
@keyframes drIn{from{transform:translateX(-100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.dr{animation:none}}
.dr-h{display:flex;align-items:center;gap:10px;padding:4px 4px 12px}
.dr-h b{font:800 1.15rem Manrope,system-ui,sans-serif;letter-spacing:-.02em;flex:1}
.dr-it{display:flex;align-items:center;gap:8px;width:100%;text-align:left;min-height:46px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--ink);font:700 1rem Manrope,system-ui,sans-serif;cursor:pointer}
.dr-it.on{background:rgba(255,207,61,.1);color:var(--sig)}
.dr-n{margin-left:auto;background:var(--coral);color:#0D1114;border-radius:9px;padding:1px 7px;font-size:.75rem}
.dr-div{height:1px;background:var(--hair);margin:8px 4px}
.dr-subs{display:flex;flex-direction:column;padding-left:12px}
.dr-sub{text-align:left;min-height:40px;padding:0 12px;border:0;background:transparent;color:var(--muted);font:600 .9rem Manrope,system-ui,sans-serif;cursor:pointer;border-radius:8px}
.dr-sub:hover,.dr-it:hover{background:rgba(255,255,255,.05)}
.you-n{font-style:normal;margin-left:6px;background:var(--coral);color:#0D1114;border-radius:9px;padding:1px 7px;font-size:.72rem;vertical-align:2px}
/* Train Now: the small logo is the way out (same as the old ✕) */
.fx-x.fx-logo{background:linear-gradient(160deg,#1A2328,#0D1114);border:1px solid var(--hair);padding:6px;color:#EEF2F2;display:grid;place-items:center}
.fx-x.fx-logo svg{width:100%;height:100%;display:block}
/* Today: score | macros + kcal | water */
.mp-head{display:flex;justify-content:space-between;align-items:baseline;gap:4px 8px;flex-wrap:wrap}
.mp-kcal{white-space:nowrap}.mp-kcal b{font:600 1rem "Chakra Petch",sans-serif}.mp-kcal small{color:var(--muted);font-size:.72rem;font-weight:600}.mp-kcal.over b{color:var(--coral)}
.wtile{margin:0;padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.wt-top{display:flex;justify-content:space-between;align-items:baseline;gap:4px 8px;flex-wrap:wrap}
.wt-v{white-space:nowrap}.wt-v b{font:600 1.55rem "Chakra Petch",sans-serif}.wt-v small{color:var(--muted);font-size:.78rem;font-weight:600}
.wt-bar{height:6px}.wt-bar i{background:var(--water)}
.wt-sub{color:var(--muted);font-size:.75rem;line-height:1.3}
.wt-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:auto}
.wt-acts button{min-height:42px;border-radius:12px;border:1px solid rgba(90,184,255,.35);background:rgba(90,184,255,.08);color:var(--ink);font:700 .95rem "Chakra Petch",sans-serif;cursor:pointer;padding:0 2px;white-space:nowrap}
.wt-acts small{font:600 .7rem Manrope,sans-serif;color:var(--muted)}
.wt-acts button:active{transform:scale(.97)}
@media (max-width:759px){
  .tsplit.three.v58{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .tsplit.three.v58 .wtile{grid-column:1/-1}
}
/* rank + coach side by side */
.rc-row{display:grid;gap:10px;margin:0 0 10px}
.rc-row>.card{margin:0}
@media (min-width:760px){.rc-row.rc2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.rc-row .coach{display:flex;flex-direction:column;gap:6px}
/* six quick actions */
.qa.six{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (min-width:1100px){.qa.six{grid-template-columns:repeat(6,minmax(0,1fr))}}
.qa .srch-i{background:var(--sig)}.qa .bar-i{background:var(--ink)}.qa .act-i{background:var(--coral)}.qa .zz-i{background:var(--sleep)}
/* weight: blurred until Show */
.wbanner{display:flex;align-items:center;gap:12px;width:100%;text-align:left;color:var(--ink);font:inherit;margin:0 0 10px}
.wb-ic{width:10px;height:10px;border-radius:50%;background:var(--teal);flex:none}
.wb-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.wb-t small{color:var(--muted);font-size:.78rem}
.wb-v{font:600 1.45rem "Chakra Petch",sans-serif}
.blur{filter:blur(8px);-webkit-user-select:none;user-select:none;pointer-events:none}
.wb-acts{display:flex;gap:6px;flex:none}
.wbanner.empty{cursor:pointer}
.wb-go{color:var(--sig);font-weight:700;font-size:.85rem;flex:none}
.tiles.one{grid-template-columns:minmax(0,1fr)}

/* v58: link-style buttons keep a visible focus ring (all:unset removed it) */
.linkish:focus-visible,.linkbtn:focus-visible{outline:2px solid var(--sig);outline-offset:2px;border-radius:4px}

/* v58: things scrolled into view (focus, anchors) land below the fixed header */
html{scroll-padding-top:calc(var(--hdr-h) + 12px)}
/* v58.1: Fuel stop stacked above Water in the third column */
.tcol{display:flex;flex-direction:column;gap:8px;min-width:0}
.tcol>.card{margin:0}
.fstop{padding:12px;display:flex;flex-direction:column;gap:8px}
.fs-top{display:flex;justify-content:space-between;align-items:baseline;gap:4px 8px;flex-wrap:wrap}
.fs-top small{color:var(--muted);font-size:.75rem;font-weight:600}
.fs-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.fs-acts button{min-height:42px;border-radius:12px;border:1px solid rgba(169,155,255,.35);background:rgba(169,155,255,.08);color:var(--ink);font:700 .86rem Manrope,system-ui,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 4px;white-space:nowrap}
.fs-acts i{width:7px;height:7px;border-radius:50%;flex:none}.fs-acts .cam-i{background:var(--lav)}.fs-acts .srch-i{background:var(--sig)}.fs-acts .dsc-i{background:var(--teal)}
.fs-acts button:active{transform:scale(.97)}
.tcol .wtile{flex:1}
@media (max-width:759px){.tsplit.three.v58 .tcol{grid-column:1/-1}}
/* v58.2: discovery suggestion with a close button; Autopilot switch on Train */
.disc-cta{padding:0;gap:0}
.disc-cta .dc-go{all:unset;box-sizing:border-box;flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:14px;cursor:pointer}
.disc-cta .dc-go>span:nth-child(2){flex:1;min-width:0}.disc-cta .dc-go b{display:block}.disc-cta .dc-go small{color:var(--muted);font-size:.8rem}.disc-cta .dc-go>i{font-style:normal;font-size:1.4rem;color:var(--sig)}
.disc-cta .dc-go:focus-visible{outline:2px solid var(--sig);outline-offset:-2px;border-radius:20px}
.dc-tag{display:block;color:var(--sig);font-size:.68rem;margin-bottom:2px}
.disc-cta .dc-x{flex:none;margin:0 10px 0 0;width:36px;height:36px}
.ap-strip{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;padding:12px 14px}
.ap-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 220px}.ap-t small{color:var(--muted);font-size:.8rem}
.ap-seg{flex:none;margin:0}
.auto-opt.cur{border-color:rgba(255,207,61,.55)}

/* v59: one back button style; titles only where the header and tabs don't already say it */
.pg-head{display:flex;align-items:center;min-height:44px;margin:2px 0 6px}
.pg-back{display:inline-flex;align-items:center;gap:6px;padding:0 14px 0 10px}
.pg-back span{font-size:1.3rem;line-height:1;margin-top:-2px}
.pg-title h1{margin:4px 0 8px}
.rd-title{margin:4px 0 10px}
.subtabs{margin:2px 0 10px}
.subtabs button{white-space:nowrap;padding:0 6px;overflow:hidden;text-overflow:ellipsis}
@media (max-width:520px){
  .subtabs button{font-size:.88rem}
  .ap-strip{flex-wrap:nowrap;padding:10px 12px}
  .ap-t{flex:1 1 auto}.ap-t small{display:none}
  .ap-seg button{min-height:36px;padding:0 10px;font-size:.85rem}
}
/* v59.1: the Today week strip is one big button to the schedule */
button.wstrip{width:100%;color:var(--ink);font:inherit;text-align:center;cursor:pointer}
button.wstrip:hover{border-color:rgba(255,207,61,.35)}
button.wstrip:focus-visible{outline:2px solid var(--sig);outline-offset:2px}
button.wstrip:active{transform:scale(.995)}
/* v60: + Add on every Fuel meal */
.ml-add{margin-left:10px;min-height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(255,207,61,.45);background:rgba(255,207,61,.08);color:var(--sig);font:700 .78rem Manrope,system-ui,sans-serif;cursor:pointer;white-space:nowrap}
.ml-add:hover{background:rgba(255,207,61,.16)}
.ml-add:focus-visible{outline:2px solid var(--sig);outline-offset:2px}

/* ===================== v61: fitness + UX punch list ===================== */
/* line icons */
.ico{display:block;flex:none}
.methods button b .ico{width:24px;height:24px}
.ib.eye{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--muted)}
.ib.eye[aria-pressed="true"]{color:var(--ink)}
.wb-v.masked{letter-spacing:.08em;color:var(--muted)}
.conn-ic .ico{width:22px;height:22px}
.fav-edit .ico{margin:auto}
/* toasts sit above the tab bar, never over the header */
.toast{top:auto;bottom:calc(92px + env(safe-area-inset-bottom,0px));box-shadow:0 14px 40px -12px rgba(0,0,0,.6)}
body:not(.has-hdr) .toast{bottom:calc(24px + env(safe-area-inset-bottom,0px))}
@media (min-width:1100px){.toast{bottom:28px}}
/* amount editor in "Check and log" */
.amt-row{display:flex;align-items:flex-end;gap:10px;margin:2px 0 8px;flex-wrap:wrap}
.amt-row label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--muted)}
.amt-row input{width:120px;min-height:44px}
.amt-row .amt-u{margin:0}
.amt-row .amt-u button{min-width:48px;min-height:44px}
/* meal header: kcal, + Add, ⋯ */
.ml-h{display:inline-flex;align-items:center;gap:2px}
.ml-more{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:4px;border:0;background:none;color:var(--muted)}
.ml-more:hover{color:var(--ink)}
.gap-dot{color:var(--warn);font-size:.6rem;margin-left:6px;vertical-align:middle}
.menu-row{width:100%;text-align:left;min-height:56px;margin-bottom:8px}
/* weekly sets vs landmarks */
.card.lm .lm-row{display:grid;grid-template-columns:92px minmax(0,1fr) 112px;align-items:center;gap:10px;margin-top:10px}
.lm-row .m{font-size:.84rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lm-bar{position:relative;height:12px;border-radius:6px;background:var(--sunk);overflow:visible}
.lm-bar i{position:absolute;left:0;top:3px;height:6px;border-radius:3px;background:var(--muted);z-index:2}
.lm-bar .lm-mav{position:absolute;top:0;bottom:0;border-radius:6px;background:rgba(79,209,197,.22);border:1px solid rgba(79,209,197,.45);box-sizing:border-box}
.lm-bar .lm-mev,.lm-bar .lm-mrv{position:absolute;top:-3px;bottom:-3px;width:2px;border-radius:1px;background:rgba(255,255,255,.35)}
.lm-bar .lm-mrv{background:rgba(255,120,104,.75)}
.lm-row .n{font-size:.82rem;white-space:nowrap;text-align:right}
.lm-row .n b{color:var(--ink);font:600 .98rem "Chakra Petch",sans-serif}
.lm-row small{font-size:.72rem}
i.z-below,i.z-over{background:var(--coral)!important}i.z-mev,i.z-high{background:var(--warn)!important}i.z-mav{background:var(--teal)!important}
small.z-below,small.z-over{color:var(--coral)}small.z-mev,small.z-high{color:var(--warn)}small.z-mav{color:var(--teal)}
.lm-key{margin-top:12px;line-height:1.7}
.lm-key span{display:inline-block;vertical-align:middle;margin:0 4px 0 8px}
.lm-key span:first-child{margin-left:0}
.lm-key .k-mav{width:18px;height:10px;border-radius:3px;background:rgba(79,209,197,.22);border:1px solid rgba(79,209,197,.45)}
.lm-key .k-mev,.lm-key .k-mrv{width:2px;height:12px;background:rgba(255,255,255,.35)}.lm-key .k-mrv{background:rgba(255,120,104,.75)}
@media (max-width:420px){.card.lm .lm-row{grid-template-columns:78px minmax(0,1fr) 98px;gap:8px}}
.grid-key{margin:10px 2px 0}
/* stale session, pregnancy swap, paused lifting */
.stale-card .row,.preg-card .btn{margin-top:8px}
.hero-card.paused .hc-sub{white-space:normal}
/* plan builder: folded grow picker */
.grow-sum{margin:6px 0 10px;line-height:1.6}
/* cockpit on a portrait phone, Coach and Data modes: the set controls come first, the photo / numbers after,
   so the floating Log button never sits on the weight and reps */
@media (max-width:759px){
  .fx.mode-coach .fx-grid,.fx.mode-data .fx-grid{display:flex;flex-direction:column}
  .fx.mode-coach .fx-inst,.fx.mode-data .fx-inst{order:3}
  .fx.mode-coach .fx-main,.fx.mode-data .fx-main{order:2}
}
.fx-meters b{white-space:nowrap}
.fx-rhr{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-width:220px}
.fx-rhr input{min-height:44px}
/* day complete: one toggle */
.dayflag{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
/* workout list: 44px targets, the day title stays on one line, set rows don't stretch on desktop */
.rir-seg button{min-height:44px;min-width:44px}
.sets + .rir-row .seg button,.card .row .btn.sm.ghost{min-height:44px}
.sets .ck{min-height:44px}
.hero h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:900px){.sets{max-width:520px}.exnote{max-width:520px}}
/* tablet Fuel stop: labels never collide with the dots */
@media (min-width:600px) and (max-width:1099px){.fs-acts{grid-template-columns:1fr 1fr}.fs-acts button:nth-child(3){grid-column:1/-1}.fs-acts button{font-size:.82rem;padding:0 6px;gap:5px;white-space:nowrap}}
/* desktop sidebar background runs the full height */
.members-box input[type=search]{width:100%}
/* desktop: rows of label + value don't spread across a 1,000px card */
@media (min-width:900px){.lift-row,.vol-row{max-width:620px}.barcol-wrap{max-width:620px}.barcol i{max-width:44px}}
/* v61.1: Progress weight rate; stack items around the workout */
.w-rate{display:flex;align-items:baseline;gap:8px;margin-top:8px}
.w-rate .n{font:600 1.6rem "Chakra Petch",sans-serif}
.fx-stack .dose-row{margin-top:8px}
/* v62: calm Today card when ranks are off */
.dscore.calm{display:flex;flex-direction:column;gap:6px;justify-content:center}
.dscore.calm .calm-t{font:600 1.35rem Manrope,system-ui,sans-serif;color:var(--ink)}

/* v63 editions */
.ed-tag { display:inline-block; margin-left:6px; padding:1px 6px; border-radius:999px; font-size:11px; font-weight:700; letter-spacing:.02em; line-height:16px; vertical-align:1px; background:color-mix(in srgb, var(--sig, #FFCF3D) 22%, transparent); color:inherit; border:1px solid color-mix(in srgb, var(--sig, #FFCF3D) 55%, transparent); }
.diet-row .ed-tag { align-self:center; flex:none; }
.mem-row .mem-ed { width:100%; display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:2px 0 6px; }
.mem-ed .btn.on { border-color:var(--sig, #FFCF3D); }
.flag-row { gap:8px; padding:6px 0; border-bottom:1px solid var(--line, rgba(127,127,127,.2)); }
.flag-row .seg { flex:none; }
.lock-note { margin-top:12px; padding:10px 12px; border-radius:10px; background:color-mix(in srgb, var(--muted, #888) 10%, transparent); }
.ai-left { margin:6px 0 0; }
.btn .ed-tag { background:rgba(0,0,0,.16); border-color:rgba(0,0,0,.25); }
