@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/inter-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/inter-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/inter-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/inter-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/inter-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/inter-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* =====================================================================
   Teste Receitas · v6 · reset completo no Design System Dietmove
   Tudo aqui sai dos tokens e componentes do DS (tokens.json + bundle.css).
   Nenhuma regra do kit antigo foi mantida. Só a dinâmica da navbar
   (pílula flutuante + "+" que vira "×") e a da trilha foram preservadas.
   ===================================================================== */
:root{
/* cor · bg */
--bg-canvas:#fbfbfb;--bg-surface:#f2f2f2;--bg-surface-hover:#e4e4e4;--bg-surface-raised:#fff;--bg-inverse:#161616;
--bg-brand:#862bba;--bg-brand-hover:#6e2299;--bg-brand-subtle:#f5ecfb;--bg-tag:#3555d6;--bg-tag-hover:#6383ff;--bg-disabled:#1616160d;--bg-overlay:#00000099;
/* cor · texto e ícone */
--text-primary:#161616;--text-secondary:#5e5e5e;--text-disabled:#9a9a9a;--text-inverse:#fbfbfb;--text-on-brand:#fbfbfb;--text-brand:#862bba;--text-brand-on-inverse:#b57be0;
--text-success:#1f7f5c;--text-warning:#9e5a1f;--text-danger:#c13a3a;
--icon-default:#28303f;--icon-secondary:#5e5e5e;--icon-brand:#862bba;--icon-disabled:#9a9a9a;
--macro-calories:#1f7f5c;--macro-protein:#3555d6;--macro-carbs:#862bba;--macro-fat:#c13a3a;--status-success:#37cc98;--status-warning:#e9a264;--status-danger:#db4949;--status-alert:#ffcc00;
/* borda */
--border-default:#1616161a;--border-input:#161616;--border-brand:#862bba;--border-focus:#b57be0;--bw:1px;--bw-strong:1.5px;
/* tipo · espaço · raio · sombra · controle */
--font-sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--space-30:30px;--space-40:40px;--space-60:60px;
--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:30px;--radius-full:999px;
--shadow-card:0 10px 10px 2px #0000000d;--shadow-floating:0 8px 40px 8px #00000008;
--control-sm:40px;--control-lg:60px;--blur-glass:15px;
/* movimento */
--e-std:cubic-bezier(.2,0,0,1);--e-dec:cubic-bezier(.05,.7,.1,1);--e-acc:cubic-bezier(.3,0,.8,.15);
/* superfície "de dentro": controles sobre um Card surface ficam brancos */
--fill:var(--bg-surface);--fill-2:var(--bg-surface-raised);color-scheme:light}

*{box-sizing:border-box}html,body{margin:0;height:100%}
body{background:var(--bg-surface-hover);color:var(--text-primary);font:400 14px/20px var(--font-sans);-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:left}
input,textarea{font:inherit;color:inherit}
p{margin:0}h1,h2,h3{margin:0}
svg.i{stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}svg.i.sol path{fill:currentColor}
.num{font-variant-numeric:tabular-nums}
[hidden]{display:none!important}
:is(button,input,textarea):focus-visible{outline:var(--bw-strong) solid var(--border-focus);outline-offset:2px}

/* ---------- moldura do protótipo ---------- */
.shell{min-height:100%;display:grid;grid-template-columns:1fr}
.rail{display:none}
main{display:grid;place-items:center;padding:24px 12px}
.phone{width:400px;max-width:100%;height:min(860px,calc(100vh - 48px));background:var(--bg-canvas);border-radius:46px;position:relative;overflow:hidden;box-shadow:0 30px 80px #16161640}
@media(min-width:960px){.shell{grid-template-columns:280px 1fr}
 .rail{display:flex;flex-direction:column;gap:2px;padding:28px 16px;background:var(--bg-surface-raised);position:sticky;top:0;height:100vh;overflow:auto;box-shadow:inset -1px 0 0 var(--border-default)}
 .rail-h{padding:0 10px 18px}.rail-h b{display:block;font:600 16px/24px var(--font-sans)}.rail-h span{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
 .rail .cap{font:500 10px/14px var(--font-sans);letter-spacing:.5px;text-transform:uppercase;color:var(--text-secondary);padding:16px 10px 6px}
 .rail button{padding:8px 10px;border-radius:var(--radius-md);font:400 14px/20px var(--font-sans);color:var(--text-primary);width:100%}.rail button.on{background:var(--bg-brand-subtle);color:var(--text-brand);font-weight:500}}
@media(max-width:480px){main{padding:0}.phone{width:100%;height:100vh;border-radius:0}}
.screen{position:absolute;inset:0;display:none;overflow:auto;overflow-x:hidden;scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.screen.on{display:block}
.body{padding:calc(16px + env(safe-area-inset-top,0px)) var(--space-20) calc(40px + env(safe-area-inset-bottom,0px))}
.body.tab{padding-bottom:120px}
.body.full{min-height:100%;display:flex;flex-direction:column}
.grow{flex:1}

/* ---------- tipografia (escala do DS) ---------- */
.h-d{font:600 40px/48px var(--font-sans);letter-spacing:-.4px}
.h1{font:600 32px/40px var(--font-sans);letter-spacing:-.3px}
.h2{font:600 24px/32px var(--font-sans)}
.h3{font:600 20px/28px var(--font-sans)}
.t-lg{font:400 16px/24px var(--font-sans)}
.t-b{font:400 14px/20px var(--font-sans)}
.t-c{font:400 12px/16px var(--font-sans)}
.t-o{font:500 10px/14px var(--font-sans);letter-spacing:.5px;text-transform:uppercase}
.w5{font-weight:500}.w6{font-weight:600}
.c2{color:var(--text-secondary)}.cbr{color:var(--text-brand)}.cd{color:var(--text-disabled)}
.ell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc{text-align:center}

/* ---------- layout ---------- */
.row{display:flex;align-items:center;gap:var(--space-12)}.row.top{align-items:flex-start}.row.wrap{flex-wrap:wrap}
.col{display:flex;flex-direction:column;gap:var(--space-12)}
.sb{justify-content:space-between}.ctr{justify-content:center}
.f1{flex:1;min-width:0}.g8{gap:8px}.g10{gap:10px}.g12{gap:12px}.g16{gap:16px}.g20{gap:20px}
.mt4{margin-top:4px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt20{margin-top:20px}.mt24{margin-top:24px}.mt30{margin-top:30px}.mt40{margin-top:40px}
.g2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-12)}
.hs{display:flex;gap:var(--space-12);overflow-x:auto;margin:0 calc(-1 * var(--space-20));padding:4px var(--space-20) 12px;scrollbar-width:none}.hs::-webkit-scrollbar{display:none}.hs>*{flex:none;width:200px}

/* ---------- barra de topo ---------- */
.tb{display:flex;align-items:center;gap:var(--space-12);min-height:var(--control-sm)}
.tb h1{flex:1;min-width:0}
.tb .tb-a{display:flex;gap:var(--space-8);margin-left:auto}

/* ---------- Button ---------- */
.btn{position:relative;display:flex;align-items:center;justify-content:center;gap:var(--space-8);height:var(--control-lg);padding:0 var(--space-30);border-radius:var(--radius-full);font:700 16px/20px var(--font-sans);width:100%;white-space:nowrap;transition:background .15s var(--e-std);min-width:0}
.btn svg.i{width:20px;height:20px}
.btn.p{background:var(--bg-brand);color:var(--text-on-brand)}
.btn.o{background:var(--fill);color:var(--text-primary)}
.btn.gh{background:transparent;color:var(--text-primary);box-shadow:inset 0 0 0 var(--bw) var(--border-default)}
.btn.g{background:transparent;color:var(--text-brand);height:var(--control-sm);font:500 14px/20px var(--font-sans)}
.btn.dk{background:var(--bg-inverse);color:var(--text-inverse)}
.btn.sm{height:var(--control-sm);font:700 14px/18px var(--font-sans);padding:0 var(--space-20);width:auto}
.btn:disabled{background:var(--bg-disabled);color:var(--text-disabled)}
.btns{display:flex;gap:var(--space-12)}.btns>.btn{flex:1}.btns>.btn.x2{flex:2}
.link{display:inline-flex;align-items:center;gap:var(--space-4);font:500 14px/20px var(--font-sans);color:var(--text-brand);white-space:nowrap}

/* ---------- IconButton ---------- */
.ib{position:relative;width:var(--control-sm);height:var(--control-sm);border-radius:var(--radius-full);background:var(--fill);display:inline-grid;place-items:center;flex:none;color:var(--icon-default)}
.ib.br{background:var(--bg-brand);color:var(--text-on-brand)}
.ib.ol{background:var(--bg-surface-raised);box-shadow:inset 0 0 0 var(--bw) var(--border-default)}
.ib.gl{background:#ffffffd9;backdrop-filter:blur(var(--blur-glass))}
.ib.sm{width:32px;height:32px}
.ib.on{background:var(--bg-brand);color:var(--text-on-brand)}

/* ---------- ícone em círculo (cabeçalho do Card) ---------- */
.icc{width:44px;height:44px;border-radius:var(--radius-full);display:grid;place-items:center;flex:none;background:var(--bg-brand-subtle);color:var(--icon-brand)}
.icc.surf{background:var(--fill);color:var(--icon-default)}
.icc.ok{background:#37cc981f;color:var(--text-success)}
.icc.off{background:var(--fill);color:var(--icon-disabled)}
.icc.solid{background:var(--bg-brand);color:var(--text-on-brand)}

/* ---------- Card ---------- */
.card{position:relative;display:block;border-radius:var(--radius-2xl);padding:var(--space-24);background:var(--bg-surface);box-shadow:var(--shadow-card);--fill:var(--bg-surface-raised);width:100%;text-align:left}
.card.ol{background:var(--bg-surface-raised);box-shadow:inset 0 0 0 var(--bw) var(--border-default);--fill:var(--bg-surface)}
.card.flat{box-shadow:none}
.card.brand{background:var(--bg-brand);box-shadow:none;color:var(--text-on-brand);--fill:#fbfbfb29}
.card.brand :is(.c2,.t-c,.t-b){color:#fbfbfbcc}
.card.brand .icc{color:var(--text-on-brand)}
.card.brand .btn.p{background:var(--bg-surface-raised);color:var(--text-primary)}
.card.brand .btn.o{background:#fbfbfb29;color:var(--text-on-brand)}
.card.brand .ib{color:var(--text-on-brand)}
.card.brand .prog{background:#fbfbfb33}.card.brand .prog i{background:var(--bg-surface-raised)}
.card.sub{background:var(--bg-brand-subtle);box-shadow:none;--fill:var(--bg-surface-raised)}
.card.p16{padding:var(--space-16)}.card.p20{padding:var(--space-20)}.card.p30{padding:var(--space-30)}.card.p0{padding:0}
.card .ct{margin-top:var(--space-16)}
button.card:active{transform:scale(.99)}

/* ---------- MetricCard ---------- */
.metrics{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:var(--space-10)}
.metric{min-width:0;padding:var(--space-12);border-radius:var(--radius-lg);background:var(--fill);display:flex;flex-direction:column;gap:var(--space-8);color:var(--icon-brand)}
.metric strong{display:block;font:600 20px/28px var(--font-sans);color:var(--text-primary);white-space:nowrap}
.metric span{display:block;font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.metric .prog{background:var(--bg-surface-hover)}
.card .metric{background:var(--bg-surface-raised)}

/* ---------- linhas (ClientRow / Menu) ---------- */
.rows{display:flex;flex-direction:column;gap:var(--space-8)}
.lrow{position:relative;display:flex;align-items:center;gap:var(--space-12);width:100%;min-height:var(--control-lg);padding:var(--space-10) var(--space-10) var(--space-10) var(--space-10);border-radius:var(--radius-full);background:var(--fill);text-align:left}
.lrow .lt{font:500 16px/24px var(--font-sans)}
.lrow>.av,.lrow>.icc{box-shadow:inset 0 0 0 var(--bw) var(--border-default)}
.lrow>.icc{background:var(--bg-surface-raised);color:var(--icon-default)}
.lrow>.icc.on{background:var(--bg-brand-subtle);color:var(--icon-brand);box-shadow:none}
.lrow>.chv{width:var(--control-sm);height:var(--control-sm);border-radius:var(--radius-full);display:grid;place-items:center;flex:none;background:var(--bg-surface-raised);box-shadow:inset 0 0 0 var(--bw) var(--border-default);color:var(--icon-default)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--bg-brand);flex:none}
/* linha simples dentro de Card */
.li{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-12) 0;text-align:left}
.li+.li{box-shadow:inset 0 1px 0 var(--border-default)}
.li .lt{font:500 16px/24px var(--font-sans)}
.list>.li:first-child{padding-top:0}.list>.li:last-child{padding-bottom:0}

/* ---------- FilterChip ---------- */
.chips{display:flex;gap:var(--space-8);overflow-x:auto;margin:0 calc(-1 * var(--space-20));padding:0 var(--space-20);scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.chip{position:relative;display:inline-flex;align-items:center;gap:var(--space-6);height:36px;padding:0 var(--space-16);border-radius:var(--radius-full);background:var(--fill);font:400 12px/16px var(--font-sans);color:var(--text-secondary);white-space:nowrap;flex:none}
.chip svg.i{width:16px;height:16px}
.chip.on{background:var(--bg-brand-subtle);color:var(--text-brand);font-weight:500;box-shadow:inset 0 0 0 var(--bw) var(--border-brand)}
.chip.st{background:var(--fill);color:var(--text-primary);font-weight:500}

/* ---------- abas (FilterChip em grupo) ---------- */
.seg button{text-align:center;position:relative}

/* ---------- Tag (seleção múltipla) ---------- */
.tags{display:flex;flex-wrap:wrap;gap:var(--space-8)}
.tagx{display:inline-flex;align-items:center;gap:var(--space-8);height:36px;padding:0 var(--space-10) 0 var(--space-16);border-radius:var(--radius-full);background:var(--fill);color:var(--text-secondary);font:400 14px/20px var(--font-sans)}
.tagx svg:last-child{display:none}.tagx.on{background:var(--bg-tag);color:var(--text-on-brand)}.tagx.on svg:first-of-type{display:none}.tagx.on svg:last-child{display:block}
.tag{display:inline-flex;align-items:center;height:24px;padding:0 var(--space-10);border-radius:var(--radius-full);background:var(--fill);font:400 12px/16px var(--font-sans);color:var(--text-secondary);white-space:nowrap}

/* ---------- StatusBadge ---------- */
.sbadge{display:inline-flex;align-items:center;gap:var(--space-6);height:28px;padding:0 var(--space-10) 0 var(--space-8);border-radius:var(--radius-full);background:var(--fill);font:500 12px/16px var(--font-sans);white-space:nowrap;color:var(--text-primary)}
.sbadge svg.i{width:14px;height:14px}
.sbadge.ok{color:var(--text-success)}.sbadge.ok svg{color:var(--status-success)}
.sbadge.info{color:var(--text-info)}.sbadge.info svg{color:var(--status-info)}
.sbadge.warn{color:var(--text-warning)}.sbadge.warn svg{color:var(--status-warning)}
.sbadge.bad{color:var(--text-danger)}.sbadge.bad svg{color:var(--status-danger)}
.sbadge.brand{background:var(--bg-brand-subtle);color:var(--text-brand)}
.card.brand .sbadge{background:#fbfbfb29;color:var(--text-on-brand)}.card.brand .sbadge svg{color:currentColor}

/* ---------- AlertBanner ---------- */
.alert{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-16);border-radius:var(--radius-lg);text-align:left}
.alert>span{flex:1;font:400 14px/20px var(--font-sans)}
.alert>.link{flex:none}
.alert.warn{box-shadow:inset 0 0 0 var(--bw) var(--status-alert);color:#c79f00}
.alert.ok{box-shadow:inset 0 0 0 var(--bw) var(--status-success);color:var(--status-success)}
.alert.bad{box-shadow:inset 0 0 0 var(--bw) var(--status-danger);color:var(--status-danger)}
.alert.brand{box-shadow:inset 0 0 0 var(--bw) var(--border-brand);color:var(--icon-brand)}

/* ---------- TextField (rótulo no contorno) e SearchInput ---------- */
.tf{position:relative;display:flex;align-items:center;gap:var(--space-10);min-height:var(--control-lg);padding:0 var(--space-24);border-radius:var(--radius-full);color:var(--icon-secondary);width:100%}
.tf fieldset{position:absolute;inset:-8px 0 0;margin:0;padding:0 var(--space-16);border:var(--bw) solid var(--border-input);border-radius:inherit;pointer-events:none;min-width:0}
.tf legend{padding:0 var(--space-4);font:400 14px/16px var(--font-sans);color:var(--text-primary);max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tf:focus-within fieldset{border:var(--bw-strong) solid var(--border-focus)}.tf:focus-within legend{color:var(--text-brand)}
.tf input,.tf textarea{flex:1;min-width:0;border:0;background:transparent;font:400 16px/24px var(--font-sans);color:var(--text-primary);outline:0;resize:none}
.tf input::placeholder,.tf textarea::placeholder{color:var(--text-secondary)}
.tf.area{border-radius:var(--radius-2xl);align-items:flex-start;padding:var(--space-16) var(--space-24)}
.tf.box{border-radius:var(--radius-2xl);display:block;padding:var(--space-20) var(--space-16) var(--space-16)}
.tf.fill{background:var(--fill)}.tf.fill fieldset{border-color:transparent}
.srch{display:flex;align-items:center;gap:var(--space-8);height:var(--control-sm);padding:0 var(--space-16);border-radius:var(--radius-full);background:var(--fill);color:var(--icon-default);width:100%;text-align:left}
.srch input{flex:1;min-width:0;border:0;background:transparent;font:400 14px/20px var(--font-sans);color:var(--text-primary);outline:0}
.srch input::placeholder,.srch>span{color:var(--text-secondary);font:400 14px/20px var(--font-sans)}
.srch:focus-within{box-shadow:inset 0 0 0 var(--bw-strong) var(--border-focus)}
.srch.on{box-shadow:inset 0 0 0 var(--bw-strong) var(--border-focus)}

/* ---------- seleção (opções em card) ---------- */
.choice{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-16) var(--space-20);border-radius:var(--radius-2xl);background:var(--bg-surface-raised);box-shadow:inset 0 0 0 var(--bw) var(--border-default);text-align:left;position:relative}
.choice .rd{width:20px;height:20px;border-radius:50%;flex:none;margin-left:auto}
.choice.on{background:var(--bg-brand-subtle)}
.choice.v{flex-direction:column;align-items:center;text-align:center;padding:var(--space-16) var(--space-8);gap:var(--space-8)}
.choice .icc{background:var(--bg-surface);color:var(--icon-default)}.choice.on .icc{background:var(--bg-surface-raised);color:var(--icon-brand)}

/* ---------- controles pequenos ---------- */
.prog{height:6px;border-radius:var(--radius-full);background:var(--bg-surface-hover);overflow:hidden;flex:1}.prog i{display:block;height:100%;background:var(--bg-brand);border-radius:var(--radius-full)}
.prog.ok i{background:var(--status-success)}
.ring{position:relative;display:inline-grid;place-items:center;flex:none}.ring svg{display:block}.ring .in{position:absolute;display:grid;place-items:center}
.stp{display:inline-flex;align-items:center;gap:0;height:var(--control-sm);padding:0 4px;border-radius:var(--radius-full);background:var(--fill)}
.stp button{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--icon-default)}
.stp b{min-width:56px;text-align:center;font:600 14px/20px var(--font-sans)}
.cb{position:relative;flex:none;display:grid;place-items:center;color:transparent;transition:background .15s var(--e-std),box-shadow .15s var(--e-std)}
.cb svg.i{width:14px;height:14px;stroke-width:2.5}
.ing{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12) 0;width:100%;text-align:left}
.ing+.ing{box-shadow:inset 0 1px 0 var(--border-default)}
.ing.on .cb,.cb.on,.choice.on .cb{background:var(--bg-brand);box-shadow:none;color:var(--text-on-brand)}
.ing.on .it-t{text-decoration:line-through;color:var(--text-secondary)}
.cart{position:relative;width:var(--control-sm);height:var(--control-sm);border-radius:50%;background:var(--fill);display:grid;place-items:center;flex:none;margin-left:auto;color:var(--icon-default)}
.cb::before,.cart::before{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}
.tog{border-radius:var(--radius-full);position:relative;flex:none;transition:background .15s var(--e-std)}
.tog::after{content:"";position:absolute;border-radius:50%;background:#fff;translate:0 0;transition:translate .2s var(--e-std)}
.tog.on{background:var(--bg-brand)}
.av{border-radius:50%;background:var(--bg-surface-hover);flex:none;display:inline-block}
.ph{background:var(--bg-surface-hover)}
.thumb{border-radius:var(--radius-lg);overflow:hidden;flex:none;position:relative}
.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--bg-brand);color:var(--text-on-brand);font:600 12px/16px var(--font-sans)}
.stepn{width:32px;height:32px;border-radius:50%;background:var(--bg-brand-subtle);color:var(--text-brand);display:grid;place-items:center;font:600 14px/20px var(--font-sans);flex:none}
.bars{display:flex;gap:4px}.bars i{width:18px;height:4px;border-radius:2px;background:var(--bg-surface-hover)}.bars i.d{background:var(--text-brand);opacity:.35}.bars i.c{background:var(--bg-brand)}

/* ---------- acordeão ---------- */
.acc .acc-b{display:grid;grid-template-rows:0fr;transition:grid-template-rows 220ms var(--e-std)}.acc.open .acc-b{grid-template-rows:1fr;transition:grid-template-rows 300ms var(--e-dec)}
.acc .acc-b>div{overflow:hidden;min-height:0}
.acc .chev{transition:transform 250ms var(--e-std)}.acc.open .chev{transform:scaleY(-1)}

/* ---------- receita (card) ---------- */
.rc{position:relative;width:100%;text-align:left;border-radius:var(--radius-2xl);background:var(--bg-surface);box-shadow:var(--shadow-card);overflow:hidden;color:var(--text-primary)}
.rc-img{position:relative;margin:var(--space-10) var(--space-10) 0;border-radius:var(--radius-xl);overflow:hidden}
.rc .ph{aspect-ratio:16/10}.rc.sq .ph{aspect-ratio:1}
.rc .kcal{position:absolute;left:10px;top:10px;height:28px;display:inline-flex;align-items:center;padding:0 var(--space-10);border-radius:var(--radius-full);background:var(--bg-surface-raised);font:600 12px/16px var(--font-sans)}
.rc-b{padding:var(--space-12) var(--space-16) var(--space-16);display:flex;flex-direction:column;gap:var(--space-6)}
.rc .tags{gap:var(--space-4)}.rc .tags span{display:inline-flex;align-items:center;height:22px;padding:0 var(--space-8);border-radius:var(--radius-full);background:var(--bg-surface-raised);font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.rc b{display:block;font:600 16px/24px var(--font-sans);text-wrap:balance}
.rc.sq b{font:600 14px/20px var(--font-sans)}
.rc .meta{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-12);font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.rc .meta i{font-style:normal;display:inline-flex;align-items:center;gap:4px}.rc .meta svg{color:var(--icon-brand)}
.rc.sq .rc-img{margin:var(--space-8) var(--space-8) 0;border-radius:var(--radius-lg)}.rc.sq .rc-b{padding:var(--space-10) var(--space-12) var(--space-12)}
.rc.sq .kcal{left:8px;top:8px;height:24px;padding:0 var(--space-8)}

/* ---------- calendário do Diário ---------- */
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.dy{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);font:500 10px/14px var(--font-sans);letter-spacing:.5px;color:var(--text-secondary)}
.dy .c{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font:500 14px/20px var(--font-sans);color:var(--text-primary);background:var(--bg-surface)}
.dy.ok .c{background:var(--bg-brand-subtle);color:var(--text-brand)}
.dy.miss .c{background:var(--bg-surface);color:var(--text-disabled);box-shadow:inset 0 0 0 var(--bw) var(--status-danger)}
.dy.fut .c{background:transparent;box-shadow:inset 0 0 0 var(--bw) var(--border-default);color:var(--text-disabled)}
.dy.t{color:var(--text-brand)}.dy.t .c{background:var(--bg-brand);color:var(--text-on-brand)}
.dy .c span{display:contents}

/* ---------- trilha (dinâmica preservada; visual do DS) ---------- */
.path{position:relative;padding:var(--space-30) 0 var(--space-20);display:flex;flex-direction:column;align-items:center}
.node{position:relative;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--bg-surface);color:var(--icon-disabled);flex:none}
.node svg.i{width:28px;height:28px}
.node.d{background:var(--bg-brand);color:var(--text-on-brand)}
.node.c{background:var(--bg-surface-raised);color:var(--icon-brand)}
.node.o{background:var(--bg-surface-raised);color:var(--icon-default);box-shadow:inset 0 0 0 var(--bw) var(--border-default)}
.node.l{background:var(--bg-surface);color:var(--icon-disabled)}
.node.gift.l{background:var(--bg-surface)}
.node .nring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}
.sec-mark{width:100%;height:1px;margin:-1px 0 0}
.finish{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);margin-top:var(--space-10);width:100%}
/* cabeçalho da Jornada (recolhe ao rolar) */
.jhead{position:sticky;top:0;z-index:4;isolation:isolate;margin:calc(-16px - env(safe-area-inset-top,0px)) calc(-1 * var(--space-20)) 0;padding:calc(16px + env(safe-area-inset-top,0px)) var(--space-20) 0;transition:padding-top 250ms var(--e-std)}
.jhead::before{content:"";position:absolute;left:0;right:0;top:0;bottom:-24px;z-index:-1;background:linear-gradient(180deg,var(--bg-canvas) 0,var(--bg-canvas) calc(100% - 40px),#fbfbfb00 100%);pointer-events:none}
.jhead.compact{padding-top:calc(8px + env(safe-area-inset-top,0px))}
.jhead .logo{position:relative;display:inline-block;transition:width 250ms var(--e-std)}.jhead .logo img{position:absolute;left:0;top:0;transition:opacity 200ms var(--e-std),transform 250ms var(--e-std)}.jhead .logo .mark{opacity:0;transform:scale(.8)}
.jhead.compact .logo{width:28px}.jhead.compact .logo .lock{opacity:0;transform:scale(.9)}.jhead.compact .logo .mark{opacity:1;transform:none}
.pill{display:inline-flex;align-items:center;gap:var(--space-6);height:var(--control-sm);padding:0 var(--space-12) 0 var(--space-6);border-radius:var(--radius-full);background:var(--bg-surface);font:600 14px/20px var(--font-sans);white-space:nowrap;transition:padding 250ms var(--e-std),width 250ms var(--e-std)}
.pill.brand{background:var(--bg-brand-subtle);color:var(--text-brand);padding-left:var(--space-10)}
.pill .pv{display:inline-block;max-width:60px;overflow:hidden;transition:max-width 250ms var(--e-std),opacity 200ms var(--e-std)}
.jhead.compact .pill{padding:0;width:40px;justify-content:center}.jhead.compact .pill .pv{max-width:0;opacity:0;display:none}
.unit-w{margin:var(--space-12) 0 0;padding:0 0 var(--space-16)}
.unit-c{padding:0;overflow:hidden}
.unit{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-12) var(--space-16) var(--space-12) var(--space-12);text-align:left}
.u-t{font:600 16px/24px var(--font-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--bg-surface-raised);color:var(--icon-disabled)}
.u-ic.cur{background:var(--bg-brand);color:var(--text-on-brand)}.u-ic.done{background:var(--bg-brand-subtle);color:var(--icon-brand)}
.unit .chev{transition:transform 250ms var(--e-std)}.unit-c.open .unit .chev{transform:scaleY(-1)}
.u-list{display:grid;grid-template-rows:0fr;transition:grid-template-rows 220ms var(--e-std)}.unit-c.open .u-list{grid-template-rows:1fr;transition:grid-template-rows 300ms var(--e-dec)}
.u-list>div{min-height:0;overflow:hidden;padding:0 var(--space-8)}
.u-row{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-6) var(--space-12) var(--space-6) var(--space-6);border-radius:var(--radius-full);font:400 14px/20px var(--font-sans);color:var(--text-primary)}
.u-row .u-ic{width:32px;height:32px}.u-row.locked{color:var(--text-secondary)}.u-row.cur{background:var(--bg-brand-subtle);color:var(--text-brand);font-weight:500}
.u-row:last-child{margin-bottom:var(--space-8)}

/* ---------- tab bar flutuante (dinâmica preservada) ---------- */
.tabs{position:absolute;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:var(--space-12);z-index:5}
.tabs .bar{position:relative;flex:1;height:64px;border-radius:var(--radius-full);background:#ffffffeb;backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-floating),0 4px 16px #16161612,inset 0 0 0 var(--bw) var(--border-default);display:grid;grid-template-columns:repeat(var(--n,4),1fr);padding:6px}
.tabs .bar button{position:relative;z-index:1;display:grid;place-items:center;color:var(--icon-secondary);height:52px;border-radius:var(--radius-full)}
.tabs .bar button.on{color:var(--icon-brand)}
.tabs .bar .slide{position:absolute;top:6px;height:52px;border-radius:var(--radius-full);transition:transform 250ms cubic-bezier(.22,1,.36,1),width 250ms cubic-bezier(.22,1,.36,1);z-index:0}
.tabs .fab{position:relative;width:64px;height:64px;border-radius:var(--radius-full);background:var(--bg-brand);color:var(--text-on-brand);display:grid;place-items:center;box-shadow:0 8px 24px #862bba47;flex:none}
.tabs .fab svg{transition:transform 300ms cubic-bezier(.34,1.35,.64,1)}.tabs .fab.open svg{transform:rotate(45deg)}
.tabs .bar .act{display:none;flex-direction:column;color:var(--text-on-brand)}
.tabs .act small{font:500 10px/14px var(--font-sans);letter-spacing:.2px}
.tabs,.tabs .bar,.tabs .fab{transition:gap 250ms var(--e-std),border-radius 250ms var(--e-std),background 250ms var(--e-std)}
.tabs.add{gap:0}.tabs.add .bar{border-radius:999px 0 0 999px;background:var(--bg-brand);box-shadow:0 8px 24px #862bba47}
.tabs.add .bar [data-tab],.tabs.add .bar .slide{display:none}.tabs.add .bar .act{display:flex;align-items:center;justify-content:center}
.tabs.add .fab{border-radius:0 999px 999px 0;box-shadow:none}

/* ---------- sheet, toast, diálogo ---------- */
.sheet-bg{position:absolute;inset:0;background:var(--bg-overlay);display:none;align-items:flex-end;z-index:20}.sheet-bg.on{display:flex}
.sheet{width:100%;background:var(--bg-surface-raised);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;padding:var(--space-10) var(--space-24) calc(var(--space-24) + env(safe-area-inset-bottom,0px));max-height:90%;overflow:auto;--fill:var(--bg-surface)}
.handle{width:40px;height:4px;border-radius:var(--radius-full);background:var(--bg-surface-hover);margin:0 auto var(--space-20)}
.sheet .sh-h{display:flex;align-items:center;gap:var(--space-12)}
.toast{position:absolute;left:var(--space-20);right:var(--space-20);bottom:100px;background:var(--bg-inverse);color:var(--text-inverse);padding:var(--space-16) var(--space-20);border-radius:var(--radius-lg);font:500 14px/20px var(--font-sans);display:none;align-items:center;gap:var(--space-16);z-index:30;box-shadow:var(--shadow-floating)}
.toast.on{display:flex}.toast button{color:var(--text-brand-on-inverse);font:700 14px/18px var(--font-sans);margin-left:auto;white-space:nowrap}
.dlg-bg{position:absolute;inset:0;background:var(--bg-overlay);display:none;align-items:center;justify-content:center;z-index:25;padding:var(--space-24)}.dlg-bg.on{display:flex}
.dlg{background:var(--bg-surface-raised);border-radius:var(--radius-2xl);padding:var(--space-30) var(--space-24) var(--space-24);width:100%;max-width:340px;box-shadow:var(--shadow-floating);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-16);--fill:var(--bg-surface)}
.dlg-ic{width:56px;height:56px;border-radius:50%;background:var(--bg-brand-subtle);color:var(--icon-brand);display:grid;place-items:center}
.dlg-ic.bad{background:var(--bg-surface);color:var(--status-danger)}
.dlg h2{font:600 24px/32px var(--font-sans)}.dlg p{font:400 14px/20px var(--font-sans);color:var(--text-secondary)}
.dlg .btn.p.bad{background:var(--status-danger)}

/* ---------- régua de peso ---------- */
.ruler{position:relative;height:84px;overflow:hidden;margin:0 calc(-1 * var(--space-20))}
.ruler .ticks{position:absolute;left:50%;top:14px;display:flex;gap:11px;transform:translateX(-50%)}
.ruler .ticks i{display:block;width:1.5px;height:24px;background:var(--border-default)}.ruler .ticks i.big{height:44px;background:var(--text-secondary)}
.ruler .cur{position:absolute;left:50%;top:4px;width:3px;height:64px;background:var(--bg-brand);transform:translateX(-50%);border-radius:2px}

/* ---------- lista de tarefas (sheet) ---------- */
.tl .it{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-8) var(--space-10) var(--space-8) var(--space-8);border-radius:var(--radius-full)}
.tl .it+.it{margin-top:var(--space-6)}
.tl .ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--bg-surface);color:var(--icon-default)}
.tl .it.now{background:var(--bg-brand-subtle)}.tl .it.now .ic{background:var(--bg-brand);color:var(--text-on-brand)}
.tl .it.done .ic{background:var(--bg-brand-subtle);color:var(--icon-brand)}.tl .it.done .tt{color:var(--text-secondary);text-decoration:line-through}
.tl .ck{position:relative;width:28px;height:28px;border-radius:50%;box-shadow:inset 0 0 0 var(--bw-strong) var(--border-input);display:grid;place-items:center;flex:none;color:transparent}
.tl .ck svg.i{stroke-width:2.5}
.tl .it.done .ck{background:var(--bg-brand);box-shadow:none;color:var(--text-on-brand)}
.ck::before{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}

/* ---------- interações (transitions.dev) ---------- */

.t-success-check{display:inline-block;transform-origin:center;opacity:0}.t-success-check svg{display:block;overflow:visible}.t-success-check svg path{stroke-dasharray:60;stroke-dashoffset:60}
.t-success-check[data-state="in"]{animation:t-check-fade 500ms var(--e-std) forwards,t-check-bob 500ms cubic-bezier(.34,1.45,.64,1) forwards}
.t-success-check[data-state="in"] svg path{animation:t-check-draw 450ms var(--e-std) 120ms forwards}
@keyframes t-check-fade{to{opacity:1}}@keyframes t-check-bob{from{translate:0 24px}to{translate:0 0}}@keyframes t-check-draw{to{stroke-dashoffset:0}}
.t-like{position:relative;display:inline-flex;align-items:center;gap:6px}.t-like .t-like-icon{display:inline-flex}.t-like svg path{fill:transparent;transition:fill 200ms var(--e-std)}
.t-like[data-liked="true"]{color:var(--text-brand)}.t-like[data-liked="true"] svg path{fill:currentColor}.t-like[data-liked="true"] .t-like-icon{animation:t-like-pop 400ms cubic-bezier(.34,1.45,.64,1)}
@keyframes t-like-pop{30%{transform:scale(.82)}}
.t-like-particles{position:absolute;left:10px;top:10px;width:0;height:0;pointer-events:none}.t-like-particles i{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:0}
@keyframes t-like-burst{20%{opacity:1;transform:translate(calc(var(--px)*.25),calc(var(--py)*.25))}100%{opacity:0;transform:translate(var(--px),var(--py)) scale(.5)}}
.t-like.is-bursting .t-like-particles i{animation:t-like-burst 600ms ease-out forwards}
@keyframes t-digit-in{from{opacity:0;transform:translateY(8px)}}
.swap{position:relative;display:grid;place-items:center;width:56px;height:56px}.swap>span{position:absolute;display:grid;place-items:center;animation:swapA 5s ease-in-out infinite}.swap>span:last-child{animation-name:swapB}
@keyframes swapA{0%,50%{opacity:1;transform:scale(1)}56%,94%{opacity:0;transform:scale(.6)}100%{opacity:1;transform:scale(1)}}
@keyframes swapB{0%,56%{opacity:0;transform:scale(.6)}62%,88%{opacity:1;transform:scale(1)}94%,100%{opacity:0;transform:scale(.6)}}
.tog.is-init.on::after,.tog.is-init:not(.on)::after{transition:translate 350ms cubic-bezier(.34,1.35,.64,1)}

/* camadas de estado (pressionado) */
:is(.btn,.ib,.chip,.lrow,.seg button,.cart,.pill)::after{content:"";position:absolute;inset:0;border-radius:inherit;background:currentColor;opacity:0;pointer-events:none;transition:opacity 150ms var(--e-std)}
:is(.btn,.ib,.chip,.lrow,.seg button,.cart,.pill):active::after{opacity:.08}
:is(.btn,.ib,.chip,.pill,.seg button){position:relative}
.rc:active{transform:scale(.985)}
:is(.btn,.ib,.chip,.card):disabled{opacity:.38;pointer-events:none}

/* movimento: sem Motion, CSS assume */
@keyframes up{from{transform:translateY(30px);opacity:0}}@keyframes down{to{transform:translateY(40px);opacity:0}}@keyframes fade{from{opacity:0}}@keyframes pop{from{transform:scale(.94);opacity:0}}
.sheet{animation:up 300ms var(--e-dec)}.sheet-bg.closing .sheet{animation:down 200ms var(--e-acc) forwards}.toast.on{animation:up 300ms var(--e-dec)}.screen.on{animation:fade 300ms var(--e-std)}.dlg{animation:pop 300ms var(--e-dec)}
.motion .sheet,.motion .toast.on,.motion .screen.on,.motion .dlg,.motion .sheet-bg.closing .sheet{animation:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.swap>span:last-child{display:none}.t-success-check{opacity:1}.t-success-check svg path{stroke-dashoffset:0!important}}
.metric .prog{flex:none}
.card.tc,.tc .card.tc{text-align:center}

/* v6.2 · caixa de seleção: círculo com o ícone check da biblioteca (vazio: só o contorno; marcado: brand com o check) */
.cb svg.i,.tl .ck svg.i{opacity:0;transition:opacity 150ms var(--e-std)}
:is(.ing.on,.choice.on) .cb svg.i,.cb.on svg.i,.tl .it.done .ck svg.i{opacity:1}
.cart.on{background:var(--bg-brand-subtle);color:var(--icon-brand)}

/* pílulas de informação da receita: três do mesmo tamanho ocupando a largura toda */
.pills3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-10)}
.pill3{display:flex;align-items:center;justify-content:center;height:var(--control-sm);border-radius:var(--radius-full);background:var(--bg-surface);font:500 14px/20px var(--font-sans);color:var(--text-primary);min-width:0}
.pill3 svg.i{color:var(--icon-brand)}
.pills3{container-type:inline-size}
@container (max-width:330px){.pill3{gap:var(--space-6)}.pill3 svg.i{display:none}}

.pill3{padding:0 var(--space-8);gap:var(--space-6)}
/* seletor vertical de porções */
.stp.v{flex-direction:column;height:auto;width:64px;padding:var(--space-6) 0;gap:0;border-radius:var(--radius-full);background:var(--bg-surface-raised);color:var(--text-primary)}
.stp.v button{width:44px;height:44px;color:var(--icon-brand)}
.stp.v b{min-width:0;font:600 24px/32px var(--font-sans)}
.stp.v small{font:400 12px/16px var(--font-sans);color:var(--text-secondary);margin-bottom:var(--space-4)}

/* SegmentedControl do DS (variante brand, estilo switch): trilho bg-surface, item ativo bg-brand */
.seg{display:flex;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-full);background:var(--bg-surface)}
.seg button{flex:1;height:var(--control-sm);padding:0 var(--space-16);border-radius:var(--radius-full);background:none;color:var(--text-primary);font:500 14px/20px var(--font-sans);box-shadow:none!important;transition:background 200ms var(--e-std),color 200ms var(--e-std)}
.seg button.on{background:var(--bg-brand);color:var(--text-on-brand);box-shadow:none}
.sheet .seg,.card .seg{background:var(--bg-surface)}
.seg.fit{display:inline-flex}.seg.fit button{flex:none;padding:0 var(--space-24)}

/* calorias da receita: mesmo estilo dos MetricCards de macros, em largura total */
.kcal-tile{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-12) var(--space-12) var(--space-16);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--icon-brand)}
.kcal-tile strong{display:block;color:var(--text-primary)}
.kcal-tile span{display:block;font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.kcal-tile .stp.v{width:60px;padding:var(--space-4) 0}
.kcal-tile .stp.v button{width:40px;height:40px}
/* filtros em faixa: respiro abaixo do seletor (a margem lateral negativa da faixa zerava o mt) */
.chips.mt16{margin-top:var(--space-24)}

/* seletor de porções horizontal */
.stp.h{height:56px;padding:0 var(--space-6);gap:var(--space-4);background:var(--bg-surface-raised)}
.stp.h button{width:44px;height:44px;color:var(--icon-brand)}
.stp.h .sv{display:flex;flex-direction:column;align-items:center;min-width:52px}
.stp.h .sv b{min-width:0;font:600 20px/24px var(--font-sans);color:var(--text-primary)}
.stp.h .sv small{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}

/* v6.31 · sem sombra nos cards (Card surface chapado) */
.card,.rc,.card.ol,.choice{box-shadow:none}
.card.ol,.choice{box-shadow:inset 0 0 0 var(--bw) var(--border-default)}
.choice.on{box-shadow:inset 0 0 0 var(--bw-strong) var(--border-brand)}
.node.c{box-shadow:inset 0 0 0 var(--bw-strong) var(--border-brand)}

/* ---------- Feed · FeedPost e PostComposer do DS: conteúdo solto, foto em destaque, divisor entre posts ---------- */
.pcomp{display:flex;align-items:center;gap:var(--space-10);width:100%;padding:var(--space-8);border-radius:var(--radius-full);background:var(--bg-surface);text-align:left}
.pcomp span.f1{font:400 14px/20px var(--font-sans);color:var(--text-secondary)}
.pcomp .ib{background:var(--bg-surface-raised)}
.feed{display:flex;flex-direction:column}
.post{display:flex;flex-direction:column;gap:var(--space-12);padding:var(--space-16) 0;box-shadow:inset 0 -1px 0 var(--border-default)}
.post:last-child{box-shadow:none}
.post-h{display:flex;align-items:center;gap:var(--space-10)}
.post-h strong{display:block;font:500 14px/20px var(--font-sans);color:var(--text-primary)}
.post-h time{display:block;font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.post>p{font:400 14px/20px var(--font-sans);color:var(--text-primary)}
.post-media{position:relative;aspect-ratio:4/5;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-surface)}
.post-media .kcal{position:absolute;left:12px;top:12px;height:28px;display:inline-flex;align-items:center;padding:0 var(--space-10);border-radius:var(--radius-full);background:var(--bg-surface-raised);font:600 12px/16px var(--font-sans)}
.post-rc{display:flex;align-items:center;gap:var(--space-12);width:100%;text-align:left}
.post-f{display:flex;align-items:center;gap:var(--space-16)}
.post-act{position:relative;display:inline-flex;align-items:center;gap:var(--space-6);font:500 12px/16px var(--font-sans);color:var(--text-secondary);min-height:32px}
.post-act.t-like[data-liked="true"],.t-like[data-liked="true"]{color:var(--text-danger)}
.t-like-particles{color:var(--text-danger)}
.post-act[aria-pressed="true"]{color:var(--text-brand)}

/* respostas a comentários: recuadas sob o comentário, com fio à esquerda */
.replies{display:flex;flex-direction:column;gap:var(--space-12);margin:var(--space-12) 0 0 18px;padding-left:28px;box-shadow:inset 1.5px 0 0 var(--border-default)}

/* nota da receita sobre a foto, no grupo de ações (pílula de vidro, 40px) */
.rate-gl{display:inline-flex;align-items:center;gap:var(--space-4);height:var(--control-sm);padding:0 var(--space-12) 0 var(--space-10);border-radius:var(--radius-full);background:#ffffffd9;backdrop-filter:blur(var(--blur-glass));font:600 14px/20px var(--font-sans);color:var(--text-primary)}
/* mesmo ritmo dos MetricCards: ícone, 8px, valor (linha 28px), legenda */
.kcal-tile>.f1>svg.i{display:block}
.kcal-tile strong{margin-top:var(--space-8);font:600 24px/28px var(--font-sans)}
.kcal-tile{padding-top:var(--space-12);padding-bottom:var(--space-12)}

/* macros com cor própria (tokens macro-* do DS) */
.metric[style*="--mc"],.kcal-tile[style*="--mc"]{color:var(--mc)}
.metric[style*="--mc"] .prog i{background:var(--mc)}

.hero{display:inline-flex;align-items:baseline;gap:var(--space-4);white-space:nowrap}

.hs.wide>*{width:280px}

.col-empty{aspect-ratio:1;border-radius:var(--radius-lg);background:var(--bg-surface-raised);box-shadow:inset 0 0 0 1.5px var(--border-default);display:grid;place-items:center}

/* um azul só no sistema (#3555d6: tag, proteína, água, informação). O azul claro do status-info fica fora do app */
:root{--blue:#3555d6;--blue-subtle:#3555d61a;--status-info:#3555d6;--text-info:#3555d6}

/* um verde só para atividade física (#1f7f5c, o mesmo de text-success e macro-calories) */
:root{--green:#1f7f5c;--green-subtle:#1f7f5c1a}
/* tema de cor por assunto dentro de uma sheet: seleção, ícones e progresso na cor do assunto; o botão principal segue roxo */
.tint .icc{background:var(--tcs);color:var(--tc)}
.tint .choice.on{background:var(--tcs);box-shadow:inset 0 0 0 var(--bw-strong) var(--tc)}
.tint .choice.on .icc{background:var(--bg-surface-raised);color:var(--tc)}
.tint .stp button{color:var(--tc)}

/* ---------- cores por assunto no app inteiro (trilha, tarefas, sheets, listas) ----------
   água e proteína: azul do sistema · atividade e treino: verde · o resto segue o roxo da marca.
   Calorias, carbo e gordura ganham cor nos cards de macro (MetricCard). */
svg.i.k-meat{color:var(--blue)}
svg.i.k-drop{color:var(--water)}
svg.i.k-walk,svg.i.k-dumb{color:var(--green)}
:is(.icc,.tl .ic):has(>svg.k-meat){background:var(--blue-subtle)}
:is(.icc,.tl .ic):has(>svg.k-drop){background:var(--water-subtle)}
:is(.icc,.tl .ic):has(>svg.k-walk,>svg.k-dumb){background:var(--green-subtle)}
/* trilha: nó feito pintado na cor do assunto; atual e aberto com contorno e ícone na cor; bloqueado continua cinza */
.node.d:has(>svg.k-meat),.tl .it.now .ic:has(>svg.k-meat){background:var(--blue)}
.node.d:has(>svg.k-drop),.tl .it.now .ic:has(>svg.k-drop){background:var(--water)}
.node.d:has(>svg.k-walk,>svg.k-dumb),.tl .it.now .ic:has(>svg.k-walk,>svg.k-dumb){background:var(--green)}
.node.c:has(>svg.k-meat){box-shadow:inset 0 0 0 var(--bw-strong) var(--blue)}
.node.c:has(>svg.k-drop){box-shadow:inset 0 0 0 var(--bw-strong) var(--water)}
.node.c:has(>svg.k-walk,>svg.k-dumb){box-shadow:inset 0 0 0 var(--bw-strong) var(--green)}
.node.c:has(>svg.k-meat) .nring path{stroke:var(--blue)}.node.c:has(>svg.k-meat) .nring circle{stroke:var(--blue-subtle)}
.node.c:has(>svg.k-drop) .nring path{stroke:var(--water)}.node.c:has(>svg.k-drop) .nring circle{stroke:var(--water-subtle)}
.node.c:has(>svg.k-walk,>svg.k-dumb) .nring path{stroke:var(--green)}.node.c:has(>svg.k-walk,>svg.k-dumb) .nring circle{stroke:var(--green-subtle)}
.tl .it.now:has(.ic>svg.k-meat){background:var(--blue-subtle)}
.tl .it.now:has(.ic>svg.k-drop){background:var(--water-subtle)}
.tl .it.now:has(.ic>svg.k-walk,.ic>svg.k-dumb){background:var(--green-subtle)}
/* onde o fundo já é colorido ou o elemento está bloqueado, o ícone segue o texto */
:is(.card.brand,.tabs,.btn,.node.d,.node.l,.node.gift,.icc.solid,.tl .it.now .ic,.pill,.ib.br,.u-ic.cur,.dlg-ic) svg.i:is(.k-drop,.k-meat,.k-walk,.k-dumb){color:inherit}
.card.brand .icc{background:#fbfbfb29}
.node.l:has(>svg){background:var(--bg-surface)}

/* menu do + aberto: só os ícones */
.tabs .act small{display:none}

/* água ganha tom próprio para não confundir com proteína: o azul claro do DS (status-info / bg-tag-hover #6383ff) */
:root{--water:#6383ff;--water-subtle:#6383ff1f}

/* ---------- desafios ---------- */
.chc{display:block;width:100%;text-align:left;border-radius:var(--radius-2xl);background:var(--bg-surface);overflow:hidden}
.lvl{display:flex;gap:3px}.lvl i{flex:1;height:6px;border-radius:999px;background:var(--bg-surface-hover)}.lvl i.on{background:var(--icon-brand)}
.lrow.me{background:var(--bg-brand-subtle);box-shadow:inset 0 0 0 var(--bw-strong) var(--border-brand)}
.pill.rank{background:var(--bg-brand);color:var(--text-on-brand);padding-left:var(--space-10)}
.jhead .pill .pv{max-width:60px}

.jhead.lv .logo{width:28px}.jhead.lv .logo .lock{opacity:0}.jhead.lv .logo .mark{opacity:1;transform:none}
@container (max-width:330px){.pill3{padding:0 var(--space-4)}}
.chc.card{padding:var(--space-20)}

/* =====================================================================
   Desafios · componentes do DS Dietmove (grupo "Desafios"), adaptados à largura do celular
   ===================================================================== */
.hl{font-weight:500;color:var(--text-info)}.cw{color:var(--text-warning)}.cs{color:var(--text-success)}
.tone-danger{color:var(--text-danger)!important}.tone-warning{color:var(--text-warning)!important}.tone-success{color:var(--text-success)!important}
/* ChallengeRow (acordeão bg-surface, raio 30) */
.chrow{border-radius:var(--radius-2xl);background:var(--bg-surface);--fill:var(--bg-surface-raised)}
.chic{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--bg-surface);color:var(--icon-default);box-shadow:inset 0 0 0 var(--bw) var(--border-default)}
.chrow .chic{background:var(--bg-surface)}
.chic.hi{background:var(--bg-tag)!important;color:var(--text-on-brand);box-shadow:none}
.statc{display:flex;flex-direction:column;gap:2px;min-width:0}
.statc span{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.statc strong{font:500 14px/20px var(--font-sans);color:var(--text-primary);white-space:nowrap}
.rankbtn{display:inline-flex;align-items:center;gap:var(--space-8);height:32px;padding:var(--space-4) var(--space-12) var(--space-4) var(--space-4);border-radius:var(--radius-full);background:var(--bg-surface);box-shadow:inset 0 0 0 var(--bw) var(--border-default);font:500 12px/16px var(--font-sans);color:var(--text-primary);white-space:nowrap;flex:none}
.rankbtn>span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--bg-tag);color:var(--text-on-brand)}
.rankbtn>span.br{background:var(--bg-brand)}
.chrow-b{padding:0 var(--space-12) var(--space-12)}
/* ChallengeTask */
.ctask{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-8) var(--space-12);border-radius:var(--radius-full);background:var(--bg-surface-raised);font:400 14px/20px var(--font-sans);color:var(--text-primary)}
.ctask+.ctask{margin-top:var(--space-6)}
.chrow-b[style*="padding:0"] .ctask{background:var(--bg-surface)}
.ctask-ic{width:28px;height:28px;flex:none;display:grid;place-items:center;border-radius:50%;box-shadow:inset 0 0 0 var(--bw) var(--border-default);color:var(--icon-default)}
.ctask-t{flex:1;min-width:0}
.ctask.done .ctask-t{color:var(--text-secondary)}.ctask.done .hl{color:inherit}
.streak{display:inline-flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-8);border-radius:var(--radius-full);background:color-mix(in srgb,var(--status-warning) 12%,transparent);font:500 11px/14px var(--font-sans);color:var(--text-warning);white-space:nowrap;flex:none;max-width:120px;overflow:hidden;text-overflow:ellipsis}
.ctask-end{display:inline-flex;align-items:center;gap:var(--space-10);flex:none}
.dots{display:inline-flex;gap:4px}.dots i{width:6px;height:6px;border-radius:50%;background:var(--bg-surface-hover)}.dots i.on{background:var(--status-success)}
.ctask-ck{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1.5px var(--icon-secondary);color:transparent}
.ctask.done .ctask-ck{box-shadow:inset 0 0 0 1.5px var(--text-success);color:var(--text-success)}
.chrow .ctask .ctask-ck{display:none}.chrow.live .ctask .ctask-ck,.chrow-b[style*="padding:0"] .ctask-ck{display:grid}
/* ChallengeSummary */
.chsum{display:grid;grid-template-columns:1fr;gap:var(--space-20);padding:var(--space-24);border-radius:var(--radius-2xl);background:var(--bg-surface)}
.chsum span{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.chsum strong{display:block;margin:var(--space-4) 0;font:400 40px/48px var(--font-sans);letter-spacing:-.5px;color:var(--text-primary)}
.chsum p{font:400 11px/15px var(--font-sans);color:var(--text-secondary)}
/* GoalList + GoalItem + LevelTag */
.goals{padding:var(--space-16);border-radius:var(--radius-2xl);background:var(--bg-surface)}
.goals h3{margin:0 0 var(--space-12);font:500 14px/20px var(--font-sans);color:var(--text-primary)}
.goals-l{display:flex;flex-direction:column;gap:var(--space-8)}
.goal{display:flex;align-items:center;gap:var(--space-12);background:var(--bg-surface-raised)}
.goal-ic{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--bg-surface-raised);box-shadow:inset 0 0 0 var(--bw) var(--border-default);color:var(--icon-default)}
.goal-t{font:400 14px/20px var(--font-sans);color:var(--text-primary)}
.lvtag{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 var(--space-10);border-radius:var(--radius-full);font:500 11px/1 var(--font-sans);white-space:nowrap;color:var(--text-on-brand)}
.lvtag.danger{background:var(--text-danger)}.lvtag.warning{background:#9e5a1f}.lvtag.success{background:var(--macro-calories)}.lvtag.main{background:var(--bg-tag)}
.podn{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:50%;font:500 14px/1 var(--font-sans);background:#f2f2f2;color:#161616;box-shadow:inset 0 0 0 var(--bw) var(--border-default)}
.podn.p1{background:#ffcc00;box-shadow:none}.podn.p3{background:#ac7f5e;box-shadow:none}
/* Card do DS */
.dscard{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-16);padding:var(--space-30);border-radius:var(--radius-2xl);background:var(--bg-surface)}
.dscard.ol{background:transparent;box-shadow:inset 0 0 0 var(--bw) var(--border-default)}
.dscard h3{margin:0 0 6px;font:600 20px/28px var(--font-sans)}.dscard p{font:400 14px/20px var(--font-sans);color:var(--text-secondary)}
/* Leaderboard */
.lb{min-height:100%;background:var(--bg-canvas);display:flex;flex-direction:column}
.lb-top{padding:calc(16px + env(safe-area-inset-top,0px)) 20px 0;background:#161616;color:#fbfbfb}
.lb-top header{display:flex;align-items:center;gap:14px}
.lb-top header strong{display:block;font:500 16px/20px var(--font-sans)}.lb-top header span{display:block;font:500 10px/14px var(--font-sans);color:#c3c3c3}
.lb-ic{width:48px;height:48px;flex:none;display:grid;place-items:center;border-radius:50%;background:#ffffff14;color:#fbfbfb}
.lb-f{display:flex;gap:5px;margin:20px auto 0;padding:6px;border-radius:40px;background:#ffffff0d}
.lb-f button{flex:1;height:44px;border-radius:999px;background:#ffffff08;color:#fbfbfb;font:400 12px/16px var(--font-sans);text-align:center}
.lb-f button.on{background:var(--water);font-weight:700}
.lb-prize{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 16px 0 8px;border-radius:999px;box-shadow:inset 0 0 0 1px #ffffff40;color:#fbfbfb;font:400 12px/16px var(--font-sans)}
.lb-prize>span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:var(--bg-tag)}
.lb-pod{list-style:none;margin:72px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:6px}
.lb-pod li{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;padding:0 6px 14px;border-radius:24px 24px 0 0;background:#ffffff0f;text-align:center}
.lb-pod li.p1{height:136px}.lb-pod li.p2{height:118px}.lb-pod li.p3{height:104px}
.lb-av{position:absolute;top:-40px;left:50%;transform:translateX(-50%)}
.lb-av .av{box-shadow:0 0 0 2px #f2f2f2}.lb-pod li.p1 .lb-av .av{box-shadow:0 0 0 2px #ffcc00}.lb-pod li.p3 .lb-av .av{box-shadow:0 0 0 2px #ac7f5e}
.lb-crown{position:absolute;top:-28px;left:50%;transform:translateX(-50%);color:#ffcc00}
.lb-rank{position:absolute;left:50%;bottom:-14px;transform:translateX(-50%);width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#f2f2f2;color:#161616;font:500 13px/1 var(--font-sans)}
.lb-pod li.p1 .lb-rank{background:#ffcc00}.lb-pod li.p3 .lb-rank{background:#ac7f5e}
.lb-pod strong{font:500 13px/16px var(--font-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.lb-pod li>span:last-child{font:500 11px/15px var(--font-sans);color:#c3c3c3}
.lbtr{display:inline-flex;align-items:center;gap:1px;font:400 12px/15px var(--font-sans);color:var(--text-secondary)}
.lbtr.up svg{color:var(--status-success)}.lbtr.down svg{color:var(--status-danger)}
.lb-top .lbtr{color:#c3c3c3}
.lb-list{list-style:none;margin:0;padding:10px 20px 4px;display:flex;flex-direction:column;gap:5px;flex:1}
.lb-list li{display:flex;align-items:center;gap:8px}
.lb-pos{width:14px;flex:none;font:400 14px/17px var(--font-sans);color:var(--text-secondary);text-align:center}
.lb-row{flex:1;min-width:0;display:flex;align-items:center;gap:10px;height:58px;padding:5px 18px 5px 5px;border-radius:999px;background:var(--bg-surface-raised);box-shadow:inset 0 0 0 1px var(--border-default)}
.lb-name{flex:1;min-width:0;font:400 13px/16px var(--font-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-pts{font:500 13px/16px var(--font-sans);color:var(--text-info)}
.lb-me{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:10px;height:58px;margin:6px 20px 12px;padding:5px 18px 5px 5px;border-radius:999px;background:var(--bg-tag);color:var(--text-on-brand)}
.lb-me strong{flex:1;font:500 13px/16px var(--font-sans)}.lb-me .lb-pts,.lb-me .lbtr,.lb-me .lbtr svg{color:var(--text-on-brand)}
.statc span{white-space:normal;overflow-wrap:anywhere}
/* ===== v6.80: componentes do DS no app inteiro ===== */
:root{--chart-bar:#e6e6e6}
.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-12)}.g6{gap:var(--space-6)}
/* AppBar: símbolo + título 20/600 + ações */
.tb.ab{gap:var(--space-8)}.tb .abm{width:22px;height:22px;flex:none}.tb .abt{flex:1;min-width:0;margin:0;font:600 20px/28px var(--font-sans);color:var(--text-primary)}
.ib.dotb{position:relative}.ib.dotb::before{content:"";position:absolute;top:8px;right:9px;width:8px;height:8px;border-radius:50%;background:var(--bg-brand);box-shadow:0 0 0 2px var(--bg-surface)}
/* ProgressRing / MacroRing */
.ring .in .pr-c{display:flex;flex-direction:column;align-items:center;text-align:center}
.pr-c strong{font:600 24px/28px var(--font-sans);color:var(--text-primary)}.pr-c span{font:400 11px/14px var(--font-sans);color:var(--text-secondary);max-width:80px}
.mring{display:flex;flex-direction:column;gap:var(--space-10);padding:var(--space-12);border-radius:var(--radius-xl);background:var(--bg-surface);min-width:0}
.mring .ring{align-self:center}.mr-t{min-width:0}.mr-t strong{display:block;font:600 16px/20px var(--font-sans);color:var(--text-primary)}.mr-t span{display:block;font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.mring .ib.sm{width:32px;height:32px;background:var(--bg-surface-raised)}
.kl{display:flex;flex-direction:column;gap:var(--space-12)}.kl>div{display:flex;flex-direction:column}.kl span{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}.kl strong{font:600 16px/20px var(--font-sans);color:var(--text-primary)}.kl .cgr{color:var(--green)}
/* MacroChip / MacroTile */
.mchip{display:inline-flex;align-items:center;gap:var(--space-4);font:400 12px/16px var(--font-sans);color:var(--text-secondary);white-space:nowrap}
.mtiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-8)}
.mtile{height:96px;padding:var(--space-10);border-radius:var(--radius-lg);display:flex;flex-direction:column;justify-content:space-between;color:var(--text-on-brand);min-width:0}
.mtile svg.i{color:#fff!important}.mtile strong{display:block;font:600 18px/22px var(--font-sans);white-space:nowrap}.mtile span{font:400 12px/16px var(--font-sans);opacity:.9}
/* MonthTracker (semana) */
.mtrack{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-4)}
.mtrack li{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);font:500 12px/16px var(--font-sans);color:var(--text-success)}
.mt-d{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--macro-calories);color:#fff;font:500 14px/1 var(--font-sans)}.mtrack .cur .mt-d{outline-offset:-1.5px}
.mtrack .fut{color:var(--text-secondary)}.mtrack .fut .mt-d{background:none;color:var(--text-secondary);outline:1.5px dashed var(--border-default);outline-offset:-1.5px}
/* MealAccordion */
.macc{border-radius:var(--radius-xl);background:var(--bg-surface);padding:var(--space-12) var(--space-12) var(--space-12) var(--space-16)}
.macc-h{display:flex;align-items:center;gap:var(--space-12);width:100%;text-align:left;min-height:36px}
.tpill{display:inline-flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-10);border-radius:var(--radius-full);background:var(--bg-surface-raised);box-shadow:inset 0 0 0 1px var(--border-default);font:500 12px/16px var(--font-sans);color:var(--text-primary);flex:none}
.macc-t{font:500 16px/24px var(--font-sans);color:var(--text-primary)}
.macc-chev{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:50%;box-shadow:inset 0 0 0 1px var(--border-default);color:var(--icon-default);transition:transform .2s var(--e-std)}
.macc.open .macc-chev{transform:rotate(180deg)}
.macc-b{display:none;padding-right:var(--space-4)}.macc.open .macc-b{display:block}
.macc-m{display:flex;flex-wrap:wrap;gap:var(--space-8) var(--space-14,14px);margin-top:var(--space-12)}
.obs{display:inline-flex;align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-12);border-radius:var(--radius-full);background:var(--bg-surface-raised);box-shadow:inset 0 0 0 1px var(--border-default);font:500 12px/16px var(--font-sans);color:var(--text-primary)}
/* FoodItem */
.fitem{display:flex;align-items:center;gap:var(--space-10);width:100%;padding:var(--space-10) var(--space-8) var(--space-10) var(--space-12);border-radius:var(--radius-lg);background:var(--bg-surface-raised);text-align:left;cursor:pointer}
.fchk{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--border-input);color:transparent;transition:background .15s}
.fchk svg.i{stroke-width:2.5}
.fitem.on .fchk{background:var(--macro-calories);box-shadow:none;color:#fff}
.fitem.pend .fchk{box-shadow:none;background:var(--bg-brand-subtle);color:var(--icon-brand)}
.fmain{display:flex;flex-direction:column;min-width:0}.fmain strong{font:500 14px/20px var(--font-sans);color:var(--text-primary)}
.fitem.on .fmain strong{color:var(--text-success)}
.flbl{font:400 10px/14px var(--font-sans);color:var(--text-secondary)}.fmain>span:last-child{font:400 13px/18px var(--font-sans);color:var(--text-primary)}
.for{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}.fqty{font:400 14px/20px var(--font-sans);color:var(--text-primary);white-space:nowrap}
.fitem .ib.sm{width:36px;height:36px;flex:none;background:none}
/* NutritionistCard */
.ncard{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-16);border-radius:var(--radius-lg);background:var(--bg-inverse);color:var(--text-inverse);text-align:left}
.ncard-i{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px currentColor;opacity:.9}
.ncard .f1{display:flex;flex-direction:column;min-width:0}.ncard span{font:400 12px/16px var(--font-sans);opacity:.7}.ncard strong{font:500 14px/20px var(--font-sans)}
/* WeightCard / Measure / Trend / LabelTag / KpiTile */
.wcard{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);padding:var(--space-16) var(--space-20);border-radius:var(--radius-2xl);background:var(--bg-surface)}
.wtxt{display:flex;flex-direction:column;gap:var(--space-6)}
.meas{display:flex;flex-direction:column;gap:var(--space-4)}.meas strong{font:400 44px/48px var(--font-sans);letter-spacing:-1px;color:var(--text-primary)}.meas small{font-size:18px;margin-left:2px;color:var(--text-primary)}
.meas.sm strong{font-size:36px;line-height:40px}
.dtrend{display:inline-flex;align-items:center;gap:2px;font:500 12px/16px var(--font-sans);white-space:nowrap}.dtrend.ok{color:var(--text-success)}.dtrend.bad{color:var(--text-danger)}
.ltag{display:inline-flex;align-items:center;padding:2px var(--space-8);border-radius:var(--radius-full);font:500 10px/14px var(--font-sans);white-space:nowrap}
.ltag.brand{background:var(--bg-brand-subtle);color:var(--text-brand)}.ltag.info{background:color-mix(in srgb,var(--status-info) 10%,transparent);color:var(--text-info)}.ltag.ok{background:color-mix(in srgb,var(--status-success) 8%,transparent);color:var(--text-success)}
.kpi{display:flex;flex-direction:column;gap:var(--space-10);padding:var(--space-16);border-radius:var(--radius-xl);background:var(--bg-surface);text-align:center;min-width:0}
.kpi-l{font:500 14px/20px var(--font-sans);color:var(--text-primary)}
.kpi-b{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);min-height:96px;border-radius:var(--radius-lg);box-shadow:inset 0 0 0 1px var(--border-default)}
.kpi-b strong{font:400 28px/36px var(--font-sans);color:var(--text-info)}.kpi-b>span{display:inline-flex;gap:var(--space-4);align-items:center;font:400 12px/16px var(--font-sans);color:var(--text-secondary);white-space:nowrap}
.lchart{width:100%;display:block;font:400 10px var(--font-sans)}
/* StatCard / QuickActions / ListRow */
.statgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8)}
.scard{display:flex;flex-direction:column;gap:var(--space-8);padding:var(--space-12) var(--space-14,14px);border-radius:var(--radius-xl);background:var(--bg-surface-raised);box-shadow:inset 0 0 0 1px var(--border-default);text-align:left;min-width:0}
.scard span{font:400 12px/16px var(--font-sans);color:var(--text-primary)}.scard strong{font:400 32px/36px var(--font-sans);color:var(--text-primary)}
.dlrow{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-16);border-radius:var(--radius-lg);background:var(--bg-surface);font:400 14px/20px var(--font-sans);color:var(--text-primary);text-align:left}
.dlrow>svg.i{color:var(--icon-secondary);flex:none}.dlrow.danger,.dlrow.danger>svg.i:first-child{color:var(--text-danger)}
div.dlrow{padding:var(--space-12) var(--space-16)}
/* Switch do DS (40×22) */
.tog{width:40px;height:22px;background:var(--bg-surface-hover);box-shadow:inset 0 0 0 1px var(--border-default)}
.tog::after{top:3px;left:3px;width:16px;height:16px;box-shadow:0 1px 2px #00000033}
.tog.on{box-shadow:none}.tog.on::after{translate:18px 0}
/* Checkbox e Radio do DS */
.cb{width:20px;height:20px;border-radius:var(--radius-sm,4px);box-shadow:inset 0 0 0 1.5px var(--border-input)}
.choice .rd{box-shadow:inset 0 0 0 1.5px var(--border-input)}
.choice.on .rd{background:var(--bg-brand);box-shadow:inset 0 0 0 1.5px var(--bg-brand),inset 0 0 0 5px var(--bg-surface-raised)}
.tint .choice.on .rd{background:var(--tc);box-shadow:inset 0 0 0 1.5px var(--tc),inset 0 0 0 5px var(--bg-surface-raised)}
/* AlertBanner do DS: contorno e texto no tom, fundo 6% */
.alert{--al:var(--text-info);background:color-mix(in srgb,var(--al) 6%,var(--bg-canvas,#fff));box-shadow:inset 0 0 0 1px var(--al);color:var(--al)}
.alert>span{color:var(--al)}.alert .link{color:var(--al);text-decoration:underline;text-underline-offset:3px}
.alert.brand{--al:var(--text-brand)}.alert.ok{--al:var(--text-success)}.alert.warn{--al:var(--text-warning)}.alert.bad{--al:var(--text-danger)}
.alert.warn,.alert.ok,.alert.bad,.alert.brand{box-shadow:inset 0 0 0 1px var(--al);color:var(--al)}
/* NotificationPanel */
.npanel{display:flex;flex-direction:column;gap:var(--space-16);margin-top:var(--space-20)}
.ngroup{display:flex;flex-direction:column;gap:var(--space-12)}.ngroup h3{margin:0;font:500 16px/24px var(--font-sans);color:var(--text-primary)}
.nitem{display:flex;align-items:center;gap:var(--space-12);width:100%;text-align:left}
.nav{position:relative;flex:none}.nav-e{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--bg-surface);color:var(--text-secondary)}
.nbadge{position:absolute;right:-2px;bottom:-2px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--bg-brand);color:var(--text-on-brand);box-shadow:0 0 0 2px var(--bg-canvas,#fff)}
.nbadge.inv{background:var(--bg-inverse);color:var(--text-inverse)}
.ntx{display:flex;flex-direction:column;min-width:0}.ntx strong{font:400 14px/20px var(--font-sans);color:var(--text-primary)}.ntx time{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.ndot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--bg-brand)}
.npanel.only-un .nitem:not(.un){display:none}
/* BottomSheet + SheetOption */
.dsheet-h{text-align:center}.dsheet-h h2{margin:0;font:600 16px/24px var(--font-sans);color:var(--text-primary)}.dsheet-h p{margin:var(--space-4) 0 0;font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.sopt{display:flex;gap:var(--space-12);width:100%;padding:var(--space-12);border-radius:var(--radius-lg);background:var(--bg-surface);text-align:left}
.sopt.on{box-shadow:inset 0 0 0 1.5px var(--border-brand)}
.sopt-i{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:50%;box-shadow:inset 0 0 0 1px var(--border-default);color:var(--icon-secondary)}
.sopt.on .sopt-i{background:var(--bg-brand);box-shadow:none;color:var(--text-on-brand)}
.sopt .si-on,.sopt.on .si-off{display:none}.sopt.on .si-on,.sopt .si-off{display:grid}
.sopt-m{display:flex;flex-direction:column;gap:var(--space-8);min-width:0}.sopt-m strong{font:500 14px/20px var(--font-sans);color:var(--text-primary)}
.sopt .ltag{display:none}.sopt.on .ltag{display:inline-flex}
.sopt-g{display:flex;justify-content:space-between;gap:var(--space-12)}.sopt-g>span{display:flex;flex-direction:column;font:400 14px/20px var(--font-sans);color:var(--text-primary)}.sopt-g small{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.fitem.ro{cursor:default}.fitem.ro .fchk{display:none}
.wcard .ring{flex:none}
.hs.chs>*{width:236px}
.chmini{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-16);border-radius:var(--radius-2xl);background:var(--bg-surface);text-align:left}
.chmini .chic{margin-bottom:var(--space-8);background:var(--bg-surface-raised)}
.chmini strong{font:500 16px/22px var(--font-sans);color:var(--text-primary)}.chmini>span:not(.chic):not(.ltag){font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.chmini .ltag{margin-top:var(--space-8)}
.recrow{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-8) var(--space-12) var(--space-8) var(--space-8);border-radius:var(--radius-xl);background:var(--bg-surface);text-align:left}
.recrow-ph{width:84px;height:84px;flex:none;border-radius:var(--radius-lg);overflow:hidden}
.recrow-m{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}.recrow-m strong{font:500 14px/20px var(--font-sans);color:var(--text-primary)}
.ell2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.recrow-i{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-12)}.recrow-i i{font-style:normal;display:inline-flex;align-items:center;gap:var(--space-4);font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.recrow-s{color:var(--icon-brand);flex:none;align-self:flex-start;padding-top:var(--space-4)}
.btn.gh.bad{color:var(--text-danger);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--status-danger) 40%,transparent);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8)}
/* v6.85: ao abrir o +, as ações ficam exatamente no lugar dos ícones das abas (mesma área útil da barra: 6px + 12px do gap que some) */
.tabs.add .bar{padding-right:calc(6px + var(--space-12))}
.tabs .bar .act svg.i{width:24px;height:24px}
.tabs .bar .act{gap:0}.tabs .bar .act svg.i{display:block}
/* v6.87: linhas altas também com cantos totalmente arredondados (pílula), conteúdo centralizado na vertical */
.lrow.tall{border-radius:var(--radius-full);align-items:center;padding:var(--space-10) var(--space-12) var(--space-10) var(--space-10)}
/* v6.87: etiqueta Estimado (LabelTag warning) no tile de calorias */
.ltag.warn{background:color-mix(in srgb,var(--status-warning) 12%,transparent);color:var(--text-warning)}
.kcal-tile span.ltag{display:inline-flex;align-self:flex-start;padding:var(--space-4) var(--space-10);font:500 12px/16px var(--font-sans);color:var(--text-warning)}
/* v6.87: '+ 1 colher' com a mesma largura do seletor de quantidade (128px) */
.li .iaw{width:128px;flex:none;justify-content:center;padding:0}.li .btn.iaw{display:inline-flex;align-items:center;gap:var(--space-4)}
/* v6.87: adicionar no acordeon = FoodItem com borda tracejada */
.fitem.fadd{background:none;box-shadow:none;outline:1.5px dashed var(--border-default);outline-offset:-1.5px}
.fitem.fadd .fchk{box-shadow:none;background:var(--bg-brand-subtle);color:var(--icon-brand)}
.fitem.fadd .fmain strong{color:var(--text-brand)}.fitem.fadd .fmain>span:last-child{color:var(--text-secondary)}
.mt6{margin-top:var(--space-6)}
.fitem.fadd{min-height:72px}
/* v6.88: metas do desafio mais simples, pílulas */
.goal{border-radius:var(--radius-full);min-height:56px;padding:var(--space-8) var(--space-20) var(--space-8) var(--space-8)}
.goal .f1{display:flex;flex-direction:column;gap:2px;min-width:0}
.goal-s{display:inline-flex;align-items:center;flex-wrap:wrap;gap:0 var(--space-4);font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.goal-s b{font-weight:500;color:var(--text-brand)}
.lvdot{width:7px;height:7px;border-radius:50%;flex:none;margin-right:2px}.lvdot.danger{background:var(--status-danger)}.lvdot.warning{background:var(--status-warning)}.lvdot.success{background:var(--status-success)}
.goal.main{box-shadow:inset 0 0 0 1.5px var(--border-brand)}.goal.main .goal-ic{background:var(--bg-brand);color:var(--text-on-brand);box-shadow:none}
/* v6.89: lista de desafios limpa */
.chclean{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-16);border-radius:var(--radius-2xl);background:var(--bg-surface);text-align:left}
.chclean .chic{background:var(--bg-surface-raised)}.chclean .chic.hi{background:var(--bg-tag)}
.chclean-m{display:flex;flex-direction:column;gap:2px;min-width:0}.chclean-m strong{font:500 16px/22px var(--font-sans);color:var(--text-primary)}
.chclean-m>span{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.chclean-f{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);margin-top:var(--space-6);min-width:0}
.chclean-c{color:var(--icon-secondary);flex:none;display:grid}.chclean.live .prog{flex:1}
/* v6.90: sem sobra no topo da trilha em etapas: a primeira etapa encosta no card de cima (12px) */
.path:has(>.sec-mark:first-child){padding-top:var(--space-12)}
.path>.sec-mark:first-child{margin-bottom:calc(-1 * var(--space-20))}
/* v6.90: card do desafio em andamento em pílula, conteúdo encaixado (ícone concêntrico à curva) */
.chclean.live{border-radius:var(--radius-full);padding:var(--space-8) var(--space-16) var(--space-8) var(--space-8);gap:var(--space-10)}
.chclean.live .chic{width:44px;height:44px}
.chclean.live .chclean-f{margin-top:var(--space-4);font:400 12px/16px var(--font-sans);color:var(--text-secondary);gap:var(--space-8)}
.chclean.live .chclean-m strong{font-size:15px;line-height:20px}
/* v6.91: marcadores de seção da trilha não ocupam espaço (eram 1px + um vão extra entre etapas) */
.path>.sec-mark{height:0;margin:0 0 calc(-1 * var(--space-20))}
/* v6.92: anel em todos os nós da trilha + bolinha de check nos concluídos */
.path{gap:var(--space-30)}
.node .nring.off{opacity:.45}
.node.l .nring circle,.node.gift .nring circle{stroke:var(--border-default)}
.node:has(>svg.k-meat) .nring path{stroke:var(--blue)}.node:has(>svg.k-meat) .nring circle{stroke:var(--blue-subtle)}
.node:has(>svg.k-drop) .nring path{stroke:var(--water)}.node:has(>svg.k-drop) .nring circle{stroke:var(--water-subtle)}
.node:has(>svg.k-walk,>svg.k-dumb) .nring path{stroke:var(--green)}.node:has(>svg.k-walk,>svg.k-dumb) .nring circle{stroke:var(--green-subtle)}
.nchk{position:absolute;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:0 0 0 2.5px var(--bg-canvas,#fafafa);z-index:2}
.nchk svg.i{width:12px!important;height:12px!important;stroke-width:3;color:#fff!important}
/* v6.93: anel num tom mais claro que a bolinha; check na cor do nó, embaixo à direita */
.node{--nc:var(--bg-brand)}
.node:has(>svg.k-meat){--nc:var(--blue)}.node:has(>svg.k-drop){--nc:var(--water)}.node:has(>svg.k-walk,>svg.k-dumb){--nc:var(--green)}
.node .nring path,.node:has(>svg) .nring path{stroke:color-mix(in srgb,var(--nc) 42%,#fff)!important}
.node .nring circle,.node:has(>svg) .nring circle{stroke:color-mix(in srgb,var(--nc) 12%,#fff)!important}
.node.l .nring circle{stroke:var(--border-default)!important}
.nchk{top:auto;bottom:-6px;right:-6px;background:var(--nc)}
.node.cont{pointer-events:none}.node.cont.c1{opacity:.45}.node.cont.c2{opacity:.18}
/* v6.95: ingrediente que falta = pílula com ícone de adicionar à lista */
.mpill{display:inline-flex;align-items:center;gap:var(--space-4);height:28px;padding:0 var(--space-12) 0 var(--space-8);border-radius:var(--radius-full);background:color-mix(in srgb,var(--status-warning) 12%,transparent);color:var(--text-warning);font:500 12px/16px var(--font-sans);white-space:nowrap}
.mpill .mp-d{display:none}.mpill.on{background:color-mix(in srgb,var(--status-success) 12%,transparent);color:var(--text-success)}.mpill.on .mp-a{display:none}.mpill.on .mp-d{display:grid}.mpill>span{display:grid}
.wrap{flex-wrap:wrap}.mt8{margin-top:var(--space-8)}
/* v6.96: ingredientes de casa agrupados num card */
.ingbox{padding:var(--space-16);border-radius:var(--radius-2xl);background:var(--bg-surface)}.ingbox .chip{background:var(--bg-surface-raised)}
.ingbox .chip.edit{background:var(--bg-brand-subtle);color:var(--text-brand);box-shadow:none}.ingbox .chip.edit svg.i{color:var(--icon-brand)}
.rc .kcal,.post-media .kcal{gap:var(--space-4);padding-left:var(--space-8)}
/* v7.01: cabeçalhos de etapa/semana na trilha discretos, em pílula */
.path>.sec-mark,.path>.sec-mark:first-child{margin-bottom:calc(-1 * var(--space-30))}
/* v7.02: etapa/semana concluída em roxo; a atual em cinza */
.chic.hi,.chclean .chic.hi{background:var(--bg-brand)!important;color:var(--text-on-brand)}
.phd .h2{line-height:26px;margin:0}.phd .t-b{margin-top:0;line-height:18px}
/* v7.11: sheet Salvar em */
.cthumb{width:44px;height:44px;flex:none;border-radius:var(--radius-md);overflow:hidden;display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--bg-surface-raised)}
.cthumb.empty{display:grid;place-items:center;grid-template-columns:1fr;color:var(--icon-brand);background:var(--bg-brand-subtle)}
.ib.gl.saved{color:var(--text-brand)}.ib.gl.saved svg path{fill:currentColor}
#sheet .fitem.fadd{min-height:56px}
/* ===== v7.20: produto de profissional (Padaria Fit) ===== */
.pf-logo{display:grid;place-items:center;flex:none;border-radius:50%;background:var(--pf-d,#6B1E23);color:#fff}.pf-logo svg.i{color:#fff!important}
.prodcard{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-10) var(--space-10) var(--space-10) var(--space-10);border-radius:var(--radius-full);background:#161616;color:#fff;text-align:left}
.prodcard .f1{display:flex;flex-direction:column;min-width:0}.prodcard strong{font:600 16px/22px var(--font-sans)}.prodcard .f1>span{font:400 12px/16px var(--font-sans);color:#ffffffb3}
.prodcard-a{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:50%;background:#ffffff1f}.prodcard-a svg.i{color:#fff}
.pph{display:grid!important;place-items:center;background:linear-gradient(140deg,color-mix(in srgb,var(--pf-a,#D7BC82) 60%,#fff),var(--pf-a,#D7BC82))!important;color:color-mix(in srgb,var(--pf-d,#6B1E23) 75%,#000)}.pph svg.i{color:color-mix(in srgb,var(--pf-d,#6B1E23) 75%,#000)!important;opacity:.85}
.body.pf{padding-top:0}
.pf-cover{position:relative;margin:0 calc(-1 * var(--space-20));padding:calc(12px + env(safe-area-inset-top,0px)) var(--space-20) var(--space-20);background:linear-gradient(160deg,color-mix(in srgb,var(--pf-d,#6B1E23) 75%,#000) 0%,color-mix(in srgb,var(--pf-d,#6B1E23) 55%,#000) 70%);color:#fff;overflow:hidden}
.pf-pat{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr);gap:18px;padding:10px;opacity:.07;transform:rotate(-12deg) scale(1.3);pointer-events:none}.pf-pat svg.i{color:#fff!important}
.pf-top{position:relative}.pf-brand{display:inline-flex;align-items:center;gap:var(--space-8);font:700 18px/24px var(--font-sans)}
.pf-cover .ib.gl{background:#ffffff1f;color:#fff}.pf-cover .ib.gl svg.i{color:#fff}
.pf-hi{position:relative;margin-top:var(--space-24)}.pf-hi>span{font:400 14px/20px var(--font-sans);color:#ffffffb3}
.pf-hi h1{margin:var(--space-4) 0 0;font:600 26px/32px var(--font-sans);color:#fff}
.pf-by{display:inline-flex;align-items:center;gap:var(--space-8);margin-top:var(--space-10);font:500 13px/18px var(--font-sans);color:color-mix(in srgb,var(--pf-a,#D7BC82) 28%,#fff)}
.pf-srch{position:relative;display:flex;align-items:center;gap:var(--space-10);height:48px;margin-top:var(--space-20);padding:0 var(--space-16);border-radius:var(--radius-full);background:#fff;color:var(--icon-secondary)}
.pf-srch input{flex:1;border:0;outline:0;background:none;font:400 14px/20px var(--font-sans);color:var(--text-primary);min-width:0}
.pf-cats{display:grid;gap:var(--space-8)}
.pf-cats button{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);padding:var(--space-12) 0;border-radius:var(--radius-xl);background:var(--bg-surface);color:var(--icon-default);font:500 12px/16px var(--font-sans)}
.pf-cats button.on{background:color-mix(in srgb,var(--pf-a,#D7BC82) 28%,#fff);color:color-mix(in srgb,var(--pf-d,#6B1E23) 75%,#000)}.pf-cats button.on svg.i{color:color-mix(in srgb,var(--pf-d,#6B1E23) 75%,#000)}
.pf-cols>*{width:150px}
.pf-col{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--space-14,14px);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--pf-d,#6B1E23) 55%,#000);color:#fff;text-align:left;min-height:140px}
.pf-col-i{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#ffffff1f;margin-bottom:auto}.pf-col-i svg.i{color:color-mix(in srgb,var(--pf-a,#D7BC82) 28%,#fff)!important}
.pf-col strong{margin-top:var(--space-16);font:600 14px/18px var(--font-sans)}.pf-col>span:last-child{font:400 12px/16px var(--font-sans);color:#ffffffb3}
.pf-new{position:absolute;top:12px;right:12px;padding:2px var(--space-8);border-radius:var(--radius-full);background:var(--pf-d,#6B1E23);font:500 10px/14px var(--font-sans)}
.pf-stats{display:grid;grid-template-columns:repeat(3,1fr);padding:var(--space-16) 0;border-radius:var(--radius-2xl);background:color-mix(in srgb,var(--pf-d,#6B1E23) 55%,#000);color:#fff}
.pf-stats>div{display:flex;flex-direction:column;align-items:center;gap:2px}.pf-stats>div+div{box-shadow:inset 1px 0 0 #ffffff26}
.pf-stats svg.i{color:color-mix(in srgb,var(--pf-a,#D7BC82) 28%,#fff)!important;margin-bottom:var(--space-4)}.pf-stats strong{font:600 20px/26px var(--font-sans)}.pf-stats span{font:400 12px/16px var(--font-sans);color:#ffffffb3}

/* v7.23: sombras que eram roxas fixas seguem a cor do produto */
.phone.pf-on .tabs .fab,.phone.pf-on .tabs.add .bar{box-shadow:0 8px 24px var(--pf-shadow)}
.phone.pf-on .tabs.add .fab{box-shadow:none}
/* v7.26: banners do produto = carrossel de imagens do profissional, bolinhas embaixo à direita, seta só com link */
.pf-bans{position:relative}
.pf-ban-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:var(--radius-2xl);scrollbar-width:none}.pf-ban-track::-webkit-scrollbar{display:none}
.pf-ban{position:relative;flex:0 0 100%;scroll-snap-align:start;border-radius:var(--radius-2xl);overflow:hidden}
.ban-art{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 var(--space-20);overflow:hidden;font-family:Georgia,'Times New Roman',serif}
.ban-art .ba-i{position:absolute}.ban-art .ba-i svg.i{color:currentColor!important}
.ban-art.a1{background:radial-gradient(circle at 85% 20%,var(--pf-a,#D7BC82) 0,var(--pf-d,#6B1E23) 45%,color-mix(in srgb,var(--pf-d,#6B1E23) 75%,#000) 100%);color:color-mix(in srgb,var(--pf-a,#D7BC82) 12%,#fff)}
.ban-art.a2{background:linear-gradient(120deg,color-mix(in srgb,var(--pf-a,#D7BC82) 28%,#fff),var(--pf-a,#D7BC82));color:color-mix(in srgb,var(--pf-d,#6B1E23) 75%,#000)}
.ban-art.a3{background:linear-gradient(135deg,color-mix(in srgb,var(--pf-d,#6B1E23) 75%,#000),color-mix(in srgb,var(--pf-d,#6B1E23) 55%,#000));color:color-mix(in srgb,var(--pf-a,#D7BC82) 28%,#fff)}
.pf-dots{position:absolute;display:flex;gap:5px}
.pf-dots i{width:6px;height:6px;border-radius:50%;background:#ffffff80;box-shadow:0 0 0 1px #00000014;transition:width .2s}
.pf-dots i.on{width:16px;border-radius:3px;background:#fff}
/* v7.27: a capa termina no meio do banner (banner sobreposto) */
.pf-cover{padding-bottom:calc(90px + var(--space-20))}
.pf-bans{margin-top:-90px;z-index:1}
.pf-ban{aspect-ratio:auto;height:180px}
.pf-cover{border-radius:0}
/* v7.29: banner só imagem (sem texto); bolinhas à esquerda, seta embaixo à direita */
.ban-art .ba-i{right:auto;bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-10deg);opacity:.35}
.pf-dots{bottom:14px}
.phone.pf-on .tabs{display:none}
/* v7.32: post com receita de produto no feed */
.pf-post{display:flex;align-items:center;gap:var(--space-10);width:100%;margin-top:var(--space-12);padding:var(--space-8) var(--space-14,14px) var(--space-8) var(--space-8);border-radius:var(--radius-full);background:color-mix(in srgb,var(--pf-d,#6B1E23) 55%,#000);color:#fff;text-align:left}
.pf-post .f1{display:flex;flex-direction:column;min-width:0}.pf-post strong{font:600 14px/18px var(--font-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-post .f1>span{font:400 12px/16px var(--font-sans);color:color-mix(in srgb,var(--pf-a,#D7BC82) 28%,#fff)}
.pf-post-a{display:inline-flex;align-items:center;gap:2px;flex:none;font:600 12px/16px var(--font-sans);color:color-mix(in srgb,var(--pf-a,#D7BC82) 28%,#fff)}.pf-post-a svg.i{color:color-mix(in srgb,var(--pf-a,#D7BC82) 28%,#fff)}
.post-media .pph svg.i{width:64px!important;height:64px!important}
/* v7.33: medalhas possíveis */
.medals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-16) var(--space-8)}
.medal{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);text-align:center;min-width:0}
.medal-i{width:60px;height:60px;display:grid;place-items:center;border-radius:50%;background:var(--bg-brand);color:var(--text-on-brand)}.medal-i svg.i{color:var(--text-on-brand)!important}
.medal-i.off{width:48px;height:48px;background:var(--bg-surface);color:var(--icon-disabled)}.medal-i.off svg.i{color:var(--icon-disabled)!important}
.medal strong{margin-top:var(--space-4);font:500 13px/17px var(--font-sans);color:var(--text-primary)}.medal>span:last-child{font:400 11px/14px var(--font-sans);color:var(--text-secondary)}
.medal:not(.on) strong{color:var(--text-secondary)}
/* v7.40: estrelas em arco à esquerda do nó (150°, 180°, 210°, raio 54) */
.nstars{position:absolute;inset:0;pointer-events:none;z-index:2}
.nstars i{position:absolute;width:18px;height:18px;display:grid;place-items:center;border-radius:50%}
.nstars svg.i{color:var(--border-default)!important}.nstars svg.i path{fill:#d9d9d9;stroke:#d9d9d9}
.nstars i.on svg.i path{fill:#ffb800;stroke:#e6a400}
.medals.f-on .medal:not(.on),.medals.f-off .medal.on{display:none}
[data-mfseg]{display:flex}[data-mfseg] button{flex:1;padding:0 var(--space-8);font-size:13px}
.seg.fit[data-mfseg]{display:flex;width:100%}.seg.fit[data-mfseg] button{flex:1 1 0;min-width:0;padding:0 var(--space-6);white-space:nowrap}
/* v7.41: estrelas mais juntas, mais afastadas do nó, entre 7 e 8 horas (153°, 135°, 117°; raio 60) */
/* v7.42: estrelas mais para cima (centro às 8h), coladas ao contorno do anel (raio 56) */
.nstars .ns0{left:-28.1px;top:36.7px;transform:rotate(80deg)}
.nstars .ns1{left:-22.4px;top:53.3px;transform:rotate(62deg)}
.nstars .ns2{left:-11.9px;top:67.3px;transform:rotate(44deg)}
.nstars i{background:none}
.chby{display:inline-flex;align-items:center;gap:var(--space-6);min-width:0}.chby .av{flex:none}
/* v7.45: participantes no carrossel de desafios */
.chmini-top{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:var(--space-8)}.chmini-top .chic{margin-bottom:0}
.avstack{display:inline-flex;align-items:center}.avstack>*{box-shadow:0 0 0 2px var(--bg-surface)!important}.avstack>*+*{margin-left:-8px}
.avmore{height:28px;min-width:28px;padding:0 6px;display:inline-grid;place-items:center;border-radius:var(--radius-full);background:var(--bg-brand-subtle);color:var(--text-brand);font:600 11px/1 var(--font-sans)}
/* v7.46: medalha desbloqueada, estilo celebração */
.medal-up{align-items:center}
.mu-hero{position:relative;width:200px;height:200px;margin:var(--space-24) auto 0;display:grid;place-items:center}
.mu-icon{position:relative;z-index:1;width:156px;height:156px;border-radius:50%;display:grid;place-items:center;background:var(--mc);color:#fff;animation:mu-pop .6s cubic-bezier(.34,1.56,.64,1) both}
.mu-icon svg.i{color:#fff!important;stroke-width:1.6}
.mu-shadow{position:absolute;bottom:6px;left:50%;width:130px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--mc) 22%,transparent);transform:translateX(-50%)}
.mu-spark{position:absolute;width:10px;height:22px;border-radius:6px;background:color-mix(in srgb,var(--mc) 55%,#fff);animation:mu-spark 1.2s ease-out .3s both}
.mu-spark.s1{top:-6px;left:96px;transform:rotate(14deg)}.mu-spark.s2{top:34px;right:2px;transform:rotate(58deg);width:8px;height:16px}.mu-spark.s3{top:40px;left:4px;transform:rotate(-52deg);width:8px;height:16px}
.mu-num{margin-top:var(--space-12);font:800 96px/96px var(--font-sans);color:var(--mc);letter-spacing:-2px}
.mu-title{font:800 28px/34px var(--font-sans);color:var(--mc)}
.mu-card{width:100%;border-radius:var(--radius-2xl);box-shadow:inset 0 0 0 2px var(--border-default);overflow:hidden}
.mu-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:var(--space-16) var(--space-12)}
.mu-week>div{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);font:700 13px/16px var(--font-sans);color:var(--text-secondary)}
.mu-week i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--bg-surface-hover)}
.mu-week .on i{background:var(--mc);color:#fff}.mu-week .on i svg.i{color:#fff!important;stroke-width:3}
.mu-week .today span{color:var(--mc)}
.mu-card p{margin:0;padding:var(--space-16) var(--space-20);box-shadow:inset 0 2px 0 var(--border-default);font:400 15px/22px var(--font-sans);color:var(--text-secondary)}.mu-card p b{color:var(--text-primary);font-weight:600}
.mu-cta{width:100%}
@keyframes mu-pop{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes mu-spark{0%{opacity:0;translate:0 10px}60%{opacity:1}100%{opacity:1;translate:0 0}}
.btn.mu-cta{width:100%;display:flex;justify-content:center}
/* v7.47: ClientRow, chat */
.crow{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-10) var(--space-10) var(--space-10) var(--space-10);border-radius:var(--radius-full);background:var(--bg-surface);text-align:left}
.crow-m{display:flex;flex-direction:column;gap:2px;min-width:0}.crow-m strong{font:500 15px/20px var(--font-sans);color:var(--text-primary)}.crow-m>span{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.crow-m .crow-st{display:inline-flex;align-items:center;gap:var(--space-4);font:500 12px/16px var(--font-sans)}.crow-st svg.i{color:currentColor!important}
.crow-a{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:50%;box-shadow:inset 0 0 0 1px var(--border-default);color:var(--icon-default)}
.chat-body{display:flex;flex-direction:column;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.cgr2{color:var(--text-success)}
.chat-day{align-self:center;margin:var(--space-16) 0 var(--space-8);padding:2px var(--space-10);border-radius:var(--radius-full);background:var(--bg-surface);font:500 11px/16px var(--font-sans);color:var(--text-secondary)}
.chat-list{flex:1;display:flex;flex-direction:column;gap:var(--space-12)}
.cb-row{display:flex;align-items:flex-end;gap:var(--space-8)}.cb-row.out{justify-content:flex-end}
.cb-col{display:flex;flex-direction:column;gap:4px;max-width:76%}.cb-row.out .cb-col{align-items:flex-end}
.cbub{padding:var(--space-10) var(--space-14,14px);border-radius:20px;background:var(--bg-surface);font:400 14px/20px var(--font-sans);color:var(--text-primary)}
.cb-row.out .cbub{background:var(--bg-brand);color:var(--text-on-brand)}
.cb-t{display:inline-flex;align-items:center;gap:4px;font:400 11px/14px var(--font-sans);color:var(--text-secondary)}.cb-t svg.i{color:var(--text-info)!important}
.cb-row .av{margin-bottom:18px}
.composer{display:flex;align-items:center;gap:var(--space-4);height:52px;margin-top:var(--space-16);padding:0 var(--space-6) 0 var(--space-16);border-radius:var(--radius-full);background:var(--bg-surface-raised);box-shadow:inset 0 0 0 1px var(--border-default)}
.composer input{flex:1;min-width:0;border:0;outline:0;background:none;font:400 14px/20px var(--font-sans)}
.composer button{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;color:var(--icon-default)}
.composer .send{width:40px;height:40px;background:var(--bg-brand);color:var(--text-on-brand)}.composer .send svg.i{color:#fff!important}
.medal-up>.mt24{width:100%}
.body.chat-body{min-height:100%}
/* v7.48: classificação */
.lb-top header .lb-ic{display:grid}
.lb-list li.me .lb-row{background:var(--bg-tag);box-shadow:none;color:#fff}.lb-list li.me .lb-name{color:#fff;font-weight:600}.lb-list li.me .lb-pts{color:#fff}.lb-list li.me .lbtr{color:#ffffffcc}.lb-list li.me .lb-pos{color:var(--text-primary);font-weight:600}
.lb-me{transition:opacity .2s,transform .2s}.lb-me.off{opacity:0;transform:translateY(12px);pointer-events:none}
.pro-link{display:block;width:100%;text-align:left}.pro-link .chv{color:var(--icon-secondary);display:grid}
.tc .g2s{justify-content:center}
.pf-cats{grid-template-columns:repeat(4,minmax(0,1fr))}
/* v7.49: busca no produto */
.pf-clr{display:none;width:28px;height:28px;place-items:center;border-radius:50%;background:var(--bg-surface);color:var(--icon-secondary)}
.body.pf.searching .pf-clr{display:grid}
.body.pf .pf-sug{display:none}.body.pf.searching .pf-sug{display:block}.body.pf.searching .pf-main{display:none}
.body.pf.searching .pf-cover{padding-bottom:var(--space-20)}
.pf-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);padding:var(--space-40,40px) 0;text-align:center;color:var(--icon-disabled)}.pf-empty strong{font:500 15px/20px var(--font-sans);color:var(--text-primary)}.pf-empty span{font:400 13px/18px var(--font-sans);color:var(--text-secondary)}
.rc-img .rate{position:absolute;right:10px;top:10px;height:28px;display:inline-flex;align-items:center;gap:4px;padding:0 var(--space-10) 0 var(--space-8);border-radius:var(--radius-full);background:var(--bg-surface-raised);font:600 12px/16px var(--font-sans)}
.rc-img .rate svg.i{color:var(--icon-brand)}
.rc.sq .rate{right:8px;top:8px;height:24px;padding:0 var(--space-8) 0 var(--space-6)}
.rc.notags .tags{display:none}
/* v7.50: menu do + com 3 ações (Peso sai: peso só nas avaliações). Ações e o X com o mesmo espaço entre si */
.tabs.add .bar .act:last-of-type{display:none}
.tabs.add .bar{padding:6px 0}
.tabs.add .bar{grid-template-columns:repeat(3,minmax(0,1fr));justify-items:start}
.tabs.add .bar .act{width:52px;margin-left:6px}
/* v7.51: assinaturas e compras */
.crow.cp{border-radius:var(--radius-2xl);padding:var(--space-12) var(--space-16) var(--space-12) var(--space-12);align-items:center}
.cp-v{flex:none;font:600 13px/18px var(--font-sans);color:var(--text-primary);text-align:right}
.cp-list.only-ass .k-des,.cp-list.only-des .k-ass{display:none}
/* v7.51: semana — falha em vermelho, hoje em roxo */
.mtrack .miss{color:var(--text-danger)}.mtrack .miss .mt-d{background:var(--status-danger);color:#fff}.mtrack .miss .mt-d svg.i{color:#fff!important;stroke-width:2.5}
.mtrack .cur{color:var(--text-brand);font-weight:600}.mtrack .cur .mt-d{background:var(--bg-brand-subtle);color:var(--text-brand);outline:1.5px dashed var(--border-brand);font-weight:600}
.cp-top{display:flex;align-items:baseline;gap:var(--space-8);min-width:0}.cp-top strong{flex:1;min-width:0}.cp-v{max-width:none;white-space:nowrap}.crow-st.ell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex}
.prodcard.mt16{margin-top:0}
.kpi-l{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);text-align:left}.kpi-l svg.i{color:var(--icon-brand);flex:none}
.wper{gap:2px;height:24px;padding:0 var(--space-8) 0 var(--space-10);font-size:11px}.wper svg.i{color:currentColor!important}
.cempty{display:flex;flex-direction:column;align-items:center}.cempty .btn{width:auto}
.btn.mrg{background:var(--bg-brand-subtle)!important;color:var(--text-brand)!important;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-6)}.btn.mrg svg.i{color:var(--icon-brand)!important}
/* v7.52 fez: foto do prato com check */
.fez-ph{position:relative;margin:0 auto}
.fez-ph>:first-child{width:100%;height:100%;overflow:hidden;display:block}
.fez-ok{position:absolute;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--bg-canvas);color:var(--icon-brand)}
/* v7.52 lista: campo que abre a folha de adicionar */
.srch.addit .ib{pointer-events:none}
.ai-sug{width:100%;text-align:left}
.icc.sm{width:36px;height:36px;flex:none}
.ai-un{flex-wrap:wrap}
.ai-qt .stp b{min-width:96px;text-align:center}
/* v7.52 vídeo da receita: janelinha flutuante (PiP) e tela cheia */
.vpip{position:absolute;z-index:60;right:16px;bottom:112px;width:184px;aspect-ratio:16/9;border-radius:var(--radius-md,14px);overflow:hidden;background:#000;box-shadow:0 10px 28px #16161659}
.vpip.br{right:16px;bottom:112px}.vpip.bl{left:16px;bottom:112px}.vpip.tr{right:16px;top:116px}.vpip.tl{left:16px;top:116px}
.vpip>:first-child,.vscreen>:first-child{position:absolute;inset:0;width:100%;height:100%;display:block}
.vpip::after{content:"";position:absolute;inset:0;background:linear-gradient(#0000 45%,#00000080);pointer-events:none}
.vpip .vx,.vpip .vfs{position:absolute;z-index:2;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#0000008c}
.vpip .vx{right:6px;top:6px}.vpip .vfs{right:6px;bottom:10px}
.vplay{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#0000008c}
.vplay.big{width:64px;height:64px}
.vbar{position:absolute;z-index:2;left:0;right:0;bottom:0;height:4px;background:#ffffff4d}
.vbar i{display:block;height:100%;width:0;background:var(--bg-brand)}
.vfull{position:absolute;inset:0;z-index:70;background:#0e0e10;color:#fff;padding:56px 20px 24px;display:flex;flex-direction:column;overflow:auto}
.vfull .ib.vdark{background:#ffffff1f;color:#fff;box-shadow:none}
.vscreen{position:relative;margin-top:20px;aspect-ratio:16/9;border-radius:var(--radius-md,14px);overflow:hidden;background:#000;flex:none}
.vctl{position:relative;margin-top:14px}
.vctl .vbar{position:relative;height:6px;border-radius:3px;cursor:pointer}
.vctl .vbar i{border-radius:3px}
.vtime{color:#ffffffbf}
/* v7.52 logo da trilha no mesmo tamanho do símbolo das outras telas do menu (22px) */
.jhead .logo{height:22px;width:115px}.jhead .logo img{height:22px}
.jhead.compact .logo,.jhead.lv .logo{width:22px}
.dcover .vplay.big{color:#fff}
.fez-ph{width:100%;height:auto;aspect-ratio:4/3}
.fez-ph>:first-child{border-radius:calc(var(--radius-2xl,28px) - 12px)}
.fez-ok{right:12px;bottom:12px;box-shadow:none}
.fez-hero .t-b.mt20{margin-top:20px}
/* v7.54 segurança e logo no entrar */
.seccodes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seccodes span{padding:12px;border-radius:var(--radius-md,14px);background:var(--fill);text-align:center;font:600 15px/20px var(--font-sans);letter-spacing:1px}
.tb.lgn{justify-content:space-between}
.tb.lgn .lgn-logo{height:22px}
.tb.lgn .lgn-sp{width:40px;flex:none}
/* v7.55 card de receita é botão: conteúdo sempre a partir do topo, mesmo esticado pela grade */
.rc{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}
/* v7.57 marcos da trilha: mesmo nó das tarefas (cores, anel, check), só que em hexágono e seguindo o zigue-zague */
.node.mile{background:transparent!important;box-shadow:none!important;border-radius:0}
.node.mile .mh-b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}
.node.mile .mh-b polygon{fill:var(--bg-surface);stroke:var(--bg-surface)}
.node.mile.d .mh-b polygon{fill:var(--nc);stroke:var(--nc)}
.node.mile.c .mh-b polygon{fill:var(--bg-surface-raised);stroke:var(--bg-surface-raised)}
.node.mile .mh-b .mh-bd{fill:none;stroke:none}
.node.mile.c .mh-b .mh-bd{stroke:var(--nc)}
.node.mile .mh-t{stroke:color-mix(in srgb,var(--nc) 12%,#fff)}
.node.mile .mh-p{stroke:color-mix(in srgb,var(--nc) 42%,#fff)}
.node.mile.l .mh-t{stroke:var(--border-default)}
.node.mile .mh-in{position:relative;display:flex;flex-direction:column;align-items:center;line-height:1;color:var(--icon-disabled)}
.node.mile .mh-in small{font:600 9px/12px var(--font-sans);letter-spacing:.5px;text-transform:uppercase}
.node.mile .mh-in b{font:600 22px/26px var(--font-sans)}
.node.mile.d .mh-in{color:var(--text-on-brand,#fff)}
.node.mile.c .mh-in{color:var(--text-brand)}
/* v7.57 navbar com cor fixa em todas as telas: fundo sólido (sem transparência/desfoque, que tingia a barra com o conteúdo de cada página) */
.tabs:not(.add) .bar{background:var(--bg-surface-raised,#fff);backdrop-filter:none;-webkit-backdrop-filter:none}
.tabs .bar .slide{background:var(--bg-brand-subtle)}
/* hexágono: conteúdo centralizado */
.node.mile .mh-in{padding-top:0}
/* v7.60 trilha: 32 px entre o bloco de cima (card do desafio, carrossel) e o anel do primeiro nó, em todas as trilhas (o anel passa 12 px do nó) */
.path,.path:has(>.sec-mark:first-child){padding-top:28px} /* v7.65: 16 px até o anel, a régua bloco → bloco */
/* v7.61 trilha semana → dia: a bolinha do dia mostra o dia do mês; o anel é o progresso das tarefas daquele dia */
.node.day .dn{position:relative;display:flex;flex-direction:column;align-items:center;line-height:1}
.node.day .dn small{font:600 10px/14px var(--font-sans);letter-spacing:.4px;text-transform:uppercase;opacity:.8}
.node.day .dn b{font:600 22px/26px var(--font-sans)}
.node.day.c .dn{color:var(--text-brand)}
.node.day.o .dn{color:var(--text-primary)}
.tl.fut .it{opacity:.6}
.ck.lk{display:grid;place-items:center;color:var(--icon-disabled);box-shadow:none;background:var(--bg-surface)}
.wkdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.wkd{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--text-secondary)}
.wkd>span:first-child{font:500 11px/14px var(--font-sans);text-transform:uppercase}
.wkc{position:relative;width:48px;height:48px;display:grid;place-items:center}
.wkc svg{position:absolute;inset:0;transform:rotate(-90deg)}
.wkc circle{fill:none;stroke-width:3}
.wkc .tr{stroke:var(--border-default)}
.wkc .pr{stroke:var(--bg-brand);stroke-linecap:round}
.wkc b{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--bg-surface);font:600 15px/20px var(--font-sans);color:var(--text-primary)}
.wkd.d .wkc b{background:var(--bg-brand);color:#fff}
.wkd.c .wkc b{background:var(--bg-brand-subtle);color:var(--text-brand)}
.wkd.l{opacity:.5}
/* v7.63 calendário do mês, versão limpa: números + linhas finas da trilha e do desafio */
.trail-tools{position:sticky;top:76px;z-index:6;align-self:stretch;height:0;margin-bottom:calc(-1 * var(--space-30))}
.trail-tools .cal-btn{position:absolute;left:0;top:0;width:48px;height:48px;background:var(--bg-surface-raised);box-shadow:var(--shadow-floating),inset 0 0 0 var(--bw) var(--border-default);color:var(--icon-brand)}
.cal-nav{display:flex;align-items:center;justify-content:space-between}
.cal-nav .h2{margin:0}
.cal-nav .ib[disabled]{opacity:.3}
.cal{display:flex;flex-direction:column}
.cal-h{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font:500 12px/16px var(--font-sans);color:var(--text-secondary)}
.cal-wk{grid-auto-rows:4px;padding-bottom:4px}
.cal-key{display:flex;flex-direction:column}
.cal-k{display:flex;align-items:center;gap:12px;text-align:left;font:400 14px/20px var(--font-sans);color:var(--text-primary);min-width:0}
.cal-k i{flex:none}
.cal-k .c2{font-size:13px;white-space:nowrap}
/* v7.63 classificação em modal */
#sheet[data-kind="ranking"]{padding:0;background:var(--bg-canvas);max-height:92%}
#sheet[data-kind="ranking"] .handle{position:absolute;left:50%;transform:translateX(-50%);top:10px;z-index:3;background:#ffffff59;margin:0}
#sheet[data-kind="ranking"] .lb{min-height:0}
#sheet[data-kind="ranking"] .lb-top{padding-top:28px}
#sheet[data-kind="ranking"] .lb-me{bottom:12px}
/* v7.67 calendário no estilo da faixa de dias: círculo com anel */
.cal-wk{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:auto;min-height:0;padding:0;row-gap:0}
.cal{gap:8px}
.cal-c{position:relative;width:44px;height:44px;margin:0 auto;display:grid;place-items:center}
.cal-c svg{position:absolute;inset:0;transform:rotate(-90deg)}
.cal-c circle{fill:none;stroke-width:3;stroke-linecap:round}
.cal-c b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--bg-surface);font:600 14px/20px var(--font-sans);color:var(--text-secondary)}
.cal-c.in b{color:var(--text-primary)}
.cal-c.hj b{background:var(--bg-brand);color:#fff}
.cal-c.x{visibility:hidden}
.cal-k i{width:14px;height:14px;border-radius:50%;background:none;box-shadow:inset 0 0 0 3px var(--c)}
.cal-key{gap:0}.cal-k{padding:6px 0}
/* v7.70 botão no fim do campo: mesma folga na direita que em cima e embaixo (10 px), encaixado na curva */
.tf:has(>.ib:last-child){padding-right:10px}
/* v7.72 classificação: destaque em roxo (cor do app) no lugar do azul */
.lb{--bg-tag:var(--bg-brand);--bg-tag-hover:var(--bg-brand-hover);--text-info:var(--text-brand)}
.lb .lb-f button.on{background:var(--bg-brand)}
/* v7.75 pódio: pontos e tendência na mesma linha de centro */
.lb-pod li>span:last-child{display:inline-flex;align-items:center;justify-content:center;gap:3px}
.lb-pod .lbtr{line-height:15px}.lb-pod .lbtr svg{display:block}
/* v7.76 menu: o ícone de perfil tem desenho menor (14x18 contra 18x20 dos outros); em 26 px ele fica com a mesma altura visual (~20 px) */
#tabs .bar [data-tab="perfil"] svg.i{width:26px!important;height:26px!important}
/* v7.77 não perturbe */
.dlrow.dnd-off{opacity:.45}
.tog[disabled]{pointer-events:none}
button.pf-ban{display:block;padding:0;text-align:left}
/* v7.80 bolinhas do banner centralizadas */
.pf-dots{left:50%;right:auto;transform:translateX(-50%)}
/* v7.81 receita em partes */
.part-h{display:flex;align-items:center;gap:8px;margin:4px 0 8px;font:600 15px/20px var(--font-sans);color:var(--text-primary)}
.part-n{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;flex:none;background:var(--bg-brand-subtle);color:var(--text-brand);font:600 12px/16px var(--font-sans)}
.part-tag{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px 0 5px;border-radius:999px;background:var(--bg-brand-subtle);color:var(--text-brand);font:600 13px/16px var(--font-sans)}
.part-tag .part-n{background:var(--bg-brand);color:#fff}
.part-tag .c2{font-weight:400}
.bars.parts{gap:8px}.bars .bgrp{display:inline-flex;gap:inherit}.bars:not(.parts) .bgrp{display:contents}
.bars.parts .bgrp{gap:3px}
.col.g12[data-norhythm]{gap:20px}
/* v7.82 info de quem pode avaliar: só o ícone no card de avaliação */
.rate-card{position:relative}
.rate-info{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--icon-secondary)}
/* v7.82 nome da parte dentro do card */
.pcard .part-h{margin:0 0 4px;padding-bottom:4px}
.part-tag{align-self:flex-start;width:max-content}
/* v7.85 conquista em estrela */
.node.gift{background:transparent!important;box-shadow:none!important;border-radius:0;color:#fff}
.node.gift .st-b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}
.node.gift .st-b polygon{fill:var(--bg-brand);stroke:var(--bg-brand)}
.node.gift.l .st-b polygon{fill:var(--bg-surface);stroke:var(--bg-surface)}
.node.gift svg.i{position:relative;width:24px!important;height:24px!important;margin-top:4px}
.node.gift.l{color:var(--icon-disabled)}
.node.gift:not(.l) svg.i{color:#fff!important}.node.gift:not(.l) svg.i *{stroke:#fff}
/* v7.86 teste: checks de concluído da trilha em verde (cor de sucesso) */
.path .nchk{background:var(--green)!important;color:#fff}
/* v7.88 dias um pouco menores que semana e conquista (64 contra 72) */
.node.day{width:64px;height:64px}
.node.day .nring{width:80px;height:80px}
.node.day .dn b{font-size:20px;line-height:24px}
.node.day .dn small{font-size:9px;line-height:12px}
.node.day .nchk{width:20px;height:20px}
/* v7.89 estrelinhas entre 8h e 9h do relógio, coladas no anel */
.node .nstars .ns0{left:-25.2px;top:17.8px;transform:rotate(10deg)}
.node .nstars .ns1{left:-25.2px;top:36.2px;transform:rotate(-10deg)}
.node .nstars .ns2{left:-18.9px;top:53.5px;transform:rotate(-30deg)}
.node.day .nstars .ns0{left:-24.3px;top:14.7px;transform:rotate(10deg)}
.node.day .nstars .ns1{left:-24.3px;top:31.3px;transform:rotate(-10deg)}
.node.day .nstars .ns2{left:-18.6px;top:47.0px;transform:rotate(-30deg)}
/* v7.91 com desafio ativo o logo completo também aparece (sobrou espaço depois que as calorias foram para Receitas) */
.jhead.lv:not(.compact) .logo{width:115px}.jhead.lv:not(.compact) .logo .lock{opacity:1;transform:none}.jhead.lv:not(.compact) .logo .mark{opacity:0}
/* v7.92 chave Todos / Seguindo do Feed */
.fsw{display:inline-flex;padding:3px;border-radius:999px;background:var(--bg-surface);gap:2px}
.fsw button{height:32px;padding:0 14px;border-radius:999px;font:500 13px/16px var(--font-sans);color:var(--text-secondary)}
.fsw button.on{background:var(--bg-brand);color:#fff}
.post[hidden]{display:none!important}
/* v7.93 seguir / seguindo */
.fbtn{height:32px;padding:0 14px;border-radius:999px;background:var(--bg-brand);color:#fff;font:600 13px/16px var(--font-sans);flex:none;white-space:nowrap}
.fbtn.on{background:var(--bg-surface);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border-default)}
.fbtn.lg{height:var(--control-sm,40px);padding:0 22px;font-size:14px}
.post-h .fbtn{margin-right:4px}
.fcount{display:flex;justify-content:center;gap:14px;font:400 14px/20px var(--font-sans);color:var(--text-secondary)}
.fcount b{color:var(--text-primary);font-weight:600}
[data-screen="perfil-u"] .post-h .fbtn{display:none}
/* v7.94 card da receita colado na foto do post (8 px) */
.post .pf-post{margin-top:-4px}
/* v7.94 cartão de conquista no feed */
.ach{position:relative;overflow:hidden;border-radius:var(--radius-2xl,28px);padding:20px;color:#fff;background:radial-gradient(circle at 90% 0%,color-mix(in srgb,var(--bg-brand) 55%,#fff) 0,var(--bg-brand) 45%,color-mix(in srgb,var(--bg-brand) 70%,#000) 100%)}
.ach-top{display:flex;align-items:center;gap:14px}
.ach-star{position:relative;width:72px;height:72px;display:grid;place-items:center;flex:none;color:var(--bg-brand)}
.ach-star .st-b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.8)}
.ach-star .st-b polygon{fill:#fff;stroke:#fff}
.ach-star svg.i{position:relative;margin-top:4px}
.ach-k{font:600 10px/14px var(--font-sans);letter-spacing:.6px;text-transform:uppercase;opacity:.75}
.ach-t{font:600 20px/26px var(--font-sans)}
.ach-s{font:400 13px/18px var(--font-sans);opacity:.85}
.ach-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:18px;text-align:center;font:500 10px/14px var(--font-sans);text-transform:uppercase}
.ach-days span{display:flex;flex-direction:column;align-items:center;gap:4px;opacity:.9}
.ach-days i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#ffffff2e;box-shadow:inset 0 0 0 1.5px #ffffff73}
.ach-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:16px;padding-top:14px;border-top:1px solid #ffffff33}
.ach-stats div{display:flex;flex-direction:column;align-items:center}
.ach-stats b{font:600 20px/26px var(--font-sans)}
.ach-stats span{font:400 11px/14px var(--font-sans);opacity:.8}
/* v7.94 seguir com menos destaque no feed: só contorno */
.fbtn.sm{background:transparent;color:var(--text-brand);box-shadow:inset 0 0 0 1px var(--border-brand)}
.fbtn.sm.on{background:transparent;color:var(--text-secondary);box-shadow:inset 0 0 0 1px var(--border-default)}
/* v7.95 receita do post do app num box cinza claro, colado na foto como o do Padaria Fit */
.post .post-rc{background:var(--bg-surface);border-radius:var(--radius-xl,20px);padding:12px 16px;margin-top:-4px;align-items:center}

.shell{grid-template-columns:1fr!important}.rail{display:none!important}
