/* =====================================================================================================
   R2 DESIGN (18 Oct 2026) - matches the owner's design concepts: serif display headings, pastel tracker
   cards, green gradient hero / banners, photo cards, orange "most chosen", sidebar promo with mascot,
   phone bar with an orange + (quick log). Light + dark. Brand colours (theme.css) still load after this.
   ===================================================================================================== */
:root{
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --t-blue:#E3EFFF; --t-blue-2:#C9DEFF; --t-blue-i:#2F7BEA; --t-blue-ink:#123A73;
  --t-orange:#FFEBD6; --t-orange-2:#FFD7AD; --t-orange-i:#EE7F12; --t-orange-ink:#6B3305;
  --t-purple:#EEE8FF; --t-purple-2:#DCD0FF; --t-purple-i:#7A5AF0; --t-purple-ink:#33236E;
  --t-pink:#FFE6EE; --t-pink-2:#FFCEDD; --t-pink-i:#E5457A; --t-pink-ink:#6E1634;
  --t-green:#E3F5E8; --t-green-2:#C8EBD3; --t-green-i:#1E8A4F; --t-green-ink:#0B3D26;
  --t-teal:#DDF4F1; --t-teal-2:#BFE9E3; --t-teal-i:#13887A; --t-teal-ink:#0B4741;
  --t-rose:#FDE7E9; --t-rose-2:#F9CDD2; --t-rose-i:#D2465A; --t-rose-ink:#6A1823;
  --t-red:#FDE8E4; --t-red-2:#F8CCC3; --t-red-i:#C9402B; --t-red-ink:#661C10;
  --t-lilac:#F2E9FB; --t-lilac-2:#E2D2F5; --t-lilac-i:#9150C9; --t-lilac-ink:#3F1D61;
  --t-amber:#FFF2D1; --t-amber-2:#FFE3A1; --t-amber-i:#C98A00; --t-amber-ink:#5A3D00;
  --hero:linear-gradient(135deg,#1C7A47 0%,#145E37 55%,#0E4A2B 100%);
  --banner:linear-gradient(100deg,#166B3F 0%,#2E8E46 55%,#9ACD32 100%);
}
html[data-theme=dark]{
  --t-blue:#14233A; --t-blue-2:#1C3354; --t-blue-i:#6FA8FF; --t-blue-ink:#D6E6FF;
  --t-orange:#2D1D0D; --t-orange-2:#46290C; --t-orange-i:#FFA24A; --t-orange-ink:#FFE2C4;
  --t-purple:#1F1838; --t-purple-2:#2E2456; --t-purple-i:#A58CFF; --t-purple-ink:#E6DEFF;
  --t-pink:#341622; --t-pink-2:#4C1F31; --t-pink-i:#FF7AA6; --t-pink-ink:#FFDDE8;
  --t-green:#13261B; --t-green-2:#1C3A28; --t-green-i:#6FD39A; --t-green-ink:#DDF5E5;
  --t-teal:#10272A; --t-teal-2:#163B3E; --t-teal-i:#5CD3C2; --t-teal-ink:#D5F5F0;
  --t-rose:#33171C; --t-rose-2:#4A2028; --t-rose-i:#FF8A99; --t-rose-ink:#FFDDE2;
  --t-red:#331812; --t-red-2:#4A231A; --t-red-i:#FF8C75; --t-red-ink:#FFDCD3;
  --t-lilac:#251933; --t-lilac-2:#36244B; --t-lilac-i:#C79BF2; --t-lilac-ink:#F0E3FF;
  --t-amber:#2D2410; --t-amber-2:#433414; --t-amber-i:#FFC94D; --t-amber-ink:#FFF0C9;
  --hero:linear-gradient(135deg,#145C37 0%,#0F4529 60%,#0B3420 100%);
  --banner:linear-gradient(100deg,#0F4A2C 0%,#1D6A36 60%,#5D8A1F 100%);
}
/* serif display headings (page titles, hero, names, prices) */
h1,.serif{font-family:var(--serif);font-weight:700;letter-spacing:-.015em;font-variation-settings:"opsz" 72}
.pagehead h1{font-size:clamp(1.65rem,1.3rem + 1.4vw,2.25rem);line-height:1.12}
.eyebrow{letter-spacing:.12em;font-weight:900;font-size:.72rem}

/* ---------- tone helpers (used by glance cards, quick log, kpis) ---------- */
.t-blue{--tc:var(--t-blue);--tc2:var(--t-blue-2);--ti:var(--t-blue-i);--tk:var(--t-blue-ink)}
.t-orange{--tc:var(--t-orange);--tc2:var(--t-orange-2);--ti:var(--t-orange-i);--tk:var(--t-orange-ink)}
.t-purple{--tc:var(--t-purple);--tc2:var(--t-purple-2);--ti:var(--t-purple-i);--tk:var(--t-purple-ink)}
.t-pink{--tc:var(--t-pink);--tc2:var(--t-pink-2);--ti:var(--t-pink-i);--tk:var(--t-pink-ink)}
.t-green{--tc:var(--t-green);--tc2:var(--t-green-2);--ti:var(--t-green-i);--tk:var(--t-green-ink)}
.t-teal{--tc:var(--t-teal);--tc2:var(--t-teal-2);--ti:var(--t-teal-i);--tk:var(--t-teal-ink)}
.t-rose{--tc:var(--t-rose);--tc2:var(--t-rose-2);--ti:var(--t-rose-i);--tk:var(--t-rose-ink)}
.t-red{--tc:var(--t-red);--tc2:var(--t-red-2);--ti:var(--t-red-i);--tk:var(--t-red-ink)}
.t-lilac{--tc:var(--t-lilac);--tc2:var(--t-lilac-2);--ti:var(--t-lilac-i);--tk:var(--t-lilac-ink)}
.t-amber{--tc:var(--t-amber);--tc2:var(--t-amber-2);--ti:var(--t-amber-i);--tk:var(--t-amber-ink)}

/* ---------- Track: Today at a glance ---------- */
.glance .pagehead{margin-bottom:.8rem;align-items:flex-end}
.weekstrip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem;margin:0 0 1rem}
.wday{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.55rem 0 .5rem;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-s)}
.wday small{font-size:.66rem;font-weight:900;letter-spacing:.06em;color:var(--muted)}
.wday b{font-size:1.12rem;font-weight:900;color:var(--head)}
.wday i{width:6px;height:6px;border-radius:50%;background:transparent;margin-top:.15rem}
.wday i.lg{background:var(--g600)}
.wday.on{background:var(--g700);border-color:var(--g700)} .wday.on small{color:rgba(255,255,255,.8)} .wday.on b{color:#fff} .wday.on i.lg{background:var(--lime)}
.gcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:.9rem}
@media(min-width:900px){.gcards{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}}
.gcard{position:relative;border-radius:24px;padding:1rem 1rem .9rem;background:linear-gradient(160deg,var(--tc2) 0%,var(--tc) 65%);color:var(--tk);border:1px solid color-mix(in srgb,var(--ti) 18%,transparent);box-shadow:0 10px 26px -18px color-mix(in srgb,var(--ti) 70%,transparent);display:flex;flex-direction:column;gap:.15rem;min-height:178px;overflow:hidden}
.gc-h{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-bottom:.35rem}
.gc-t{display:flex;align-items:center;gap:.5rem;color:var(--tk)!important;text-decoration:none;min-width:0}
.gc-t b{font-size:.98rem;font-weight:900;line-height:1.15}
.gc-t small{display:block;font-size:.76rem;color:color-mix(in srgb,var(--tk) 70%,transparent);font-weight:700}
.gc-i{flex:none;width:36px;height:36px;border-radius:12px;background:var(--ti);color:#fff;display:grid;place-items:center}
.gc-i svg{width:20px;height:20px}
.gc-add{flex:none;width:40px;height:40px;border-radius:13px;border:0;background:var(--ti);color:#fff!important;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 14px -6px var(--ti)}
.gc-add svg{width:22px;height:22px;stroke-width:2.4}
.gc-add:disabled{opacity:.6}
.gc-v{font-size:1.85rem;font-weight:900;line-height:1.05;letter-spacing:-.02em;color:var(--tk)}
.gc-v small{font-size:.95rem;font-weight:800}
.gc-v.sm{font-size:1.45rem}
.gc-s{font-size:.78rem;font-weight:700;color:color-mix(in srgb,var(--tk) 72%,transparent);line-height:1.3}
.cups{display:flex;gap:4px;margin-top:auto;padding-top:.6rem;flex-wrap:wrap}
.cups i{flex:1 1 0;min-width:12px;max-width:22px;height:28px;border-radius:5px 5px 7px 7px;border:2px solid color-mix(in srgb,var(--ti) 45%,transparent);background:color-mix(in srgb,#fff 55%,transparent)}
html[data-theme=dark] .cups i{background:rgba(255,255,255,.04)}
.cups i.full{background:linear-gradient(180deg,color-mix(in srgb,var(--ti) 55%,#fff) 0%,var(--ti) 100%);border-color:var(--ti)}
.minibars{width:100%;height:64px;margin-top:auto;padding-top:.5rem;overflow:visible}
.minibars .mb{fill:var(--ti,var(--g600));opacity:.9} .minibars .mb.none{opacity:.22} .minibars .mb.now{opacity:1}
.minibars .mb-target{stroke:var(--tk,var(--ink));stroke-width:.6;stroke-dasharray:2 2;opacity:.45;vector-effect:non-scaling-stroke}
.minibars .mb-x{font-size:5px;fill:var(--muted);font-weight:700}
.moods{display:flex;gap:.25rem;margin-top:auto;padding-top:.5rem;justify-content:space-between}
.mood{flex:1;max-width:44px;aspect-ratio:1;border-radius:50%;border:2px solid transparent;background:color-mix(in srgb,#fff 70%,transparent);font-size:1.25rem;display:grid;place-items:center;cursor:pointer;padding:0;line-height:1}
html[data-theme=dark] .mood{background:rgba(255,255,255,.07)}
.mood.on{border-color:var(--ti);background:#fff;transform:scale(1.08)}
html[data-theme=dark] .mood.on{background:rgba(255,255,255,.18)}
.slotdots{display:flex;gap:.3rem;margin-top:auto;padding-top:.6rem}
.slotdots span{flex:1;height:28px;border-radius:9px;display:grid;place-items:center;font-size:.72rem;font-weight:900;background:color-mix(in srgb,#fff 60%,transparent);color:color-mix(in srgb,var(--tk) 60%,transparent)}
html[data-theme=dark] .slotdots span{background:rgba(255,255,255,.06)}
.slotdots span.on{background:var(--ti);color:#fff}
.dots7{display:flex;gap:5px;margin-top:auto;padding-top:.7rem}
.dots7 i{width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--ti) 22%,transparent)} .dots7 i.on{background:var(--ti)}
@media(max-width:380px){.gcard{padding:.85rem .8rem .8rem;min-height:166px}.gc-v{font-size:1.55rem}.gc-i{width:32px;height:32px}.gc-add{width:36px;height:36px}}
/* weight trend card */
.wcard{padding:1.1rem 1.1rem .9rem}
.wc-h{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.wcard .gc-t{--tk:var(--head);--ti:var(--g600)} .wcard .gc-i{background:var(--g100);color:var(--g700)}
html[data-theme=dark] .wcard .gc-i{color:#8FD6A8}
.wc-v{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.7rem 0 .2rem;flex-wrap:wrap}
.wc-v .big{font-size:2.1rem;font-weight:900;color:var(--head);letter-spacing:-.02em;line-height:1}
.wc-v .big small{font-size:1rem;color:var(--muted)}
.wc-empty{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-top:.6rem}
.rtabs{display:inline-flex;gap:.25rem;background:var(--surface-2);border:1px solid var(--line);padding:3px;border-radius:12px}
.rtabs button{border:0;background:none;font:inherit;font-weight:800;font-size:.82rem;color:var(--muted);padding:.38rem .75rem;border-radius:9px;cursor:pointer;min-height:34px}
.rtabs button.on{background:var(--g700);color:#fff}
.dchip0{display:inline-flex;align-items:center;gap:.25rem;font-size:.8rem;font-weight:900;padding:.3rem .65rem;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.dchip0.good{background:var(--t-green);color:var(--t-green-i)} .dchip0.bad{background:var(--t-rose);color:var(--t-rose-i)}
/* area chart */
.areachart{width:100%;height:150px;display:block;overflow:visible}
.wcard.compact .areachart{height:110px}
.ac-s0{stop-color:var(--g600);stop-opacity:.28} .ac-s1{stop-color:var(--g600);stop-opacity:0}
.ac-line{stroke:var(--g600);stroke-width:2.4;vector-effect:non-scaling-stroke;stroke-linecap:round}
.ac-goal{stroke:var(--muted);stroke-width:1;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;opacity:.7}
.ac-grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.ac-dot{fill:var(--g600);stroke:var(--surface);stroke-width:2;vector-effect:non-scaling-stroke}
.ac-x{font-size:11px;fill:var(--muted);font-weight:700}
html[data-theme=dark] .ac-s0{stop-color:#6FD39A} html[data-theme=dark] .ac-line,html[data-theme=dark] .ac-dot{stroke:#6FD39A} html[data-theme=dark] .ac-dot{fill:#6FD39A;stroke:var(--surface)}

/* ---------- phone bar: Home / Diet plan / + / Track / Chat ---------- */
.tabs .fab{flex:none;width:58px;height:58px;margin:-26px .2rem 0;border-radius:50%;border:4px solid var(--bg);background:linear-gradient(180deg,#F7A13A 0%,var(--o600) 100%);color:#fff;display:grid;place-items:center;box-shadow:0 10px 22px -8px rgba(224,122,10,.75);cursor:pointer;align-self:flex-start}
.tabs .fab svg{width:28px;height:28px;stroke-width:2.6}
@media(min-width:900px){.tabs .fab{display:none}}
.qlgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.ql{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;text-align:left;border:1px solid color-mix(in srgb,var(--ti) 20%,transparent);border-radius:18px;background:var(--tc);color:var(--tk);padding:.8rem;font:inherit;cursor:pointer;min-height:104px}
.ql b{font-size:.98rem;font-weight:900;margin-top:.3rem} .ql small{font-size:.76rem;font-weight:700;opacity:.8}
/* sidebar promo with mascot */
.tabs .navfoot .navpromo{display:flex;align-items:flex-end;justify-content:space-between;gap:.4rem;padding:.9rem .9rem 0 .95rem;border-radius:18px;background:var(--hero);color:#fff;text-decoration:none;min-height:96px;overflow:hidden;box-shadow:0 14px 28px -18px rgba(11,61,38,.8)}
.tabs .navfoot .navpromo div{padding-bottom:.9rem;align-self:center}
.tabs .navfoot .navpromo b{display:block;font-family:var(--serif);font-size:1.02rem;line-height:1.2;color:#fff}
.tabs .navfoot .navpromo span{display:block;font-size:.76rem;color:rgba(255,255,255,.8);margin-top:.2rem;line-height:1.3}
.tabs .navfoot .navpromo .promo-m{width:58px;height:auto;flex:none;margin-bottom:-6px}
.tabs .navfoot .navpromo:hover{filter:brightness(1.06)}
@media(min-width:900px){.tabs{background:var(--surface)}}
/* the old tracker tile rules (v3) must not leak into the pastel cards */
.gcard.tile,.gcard.tile.done{background:linear-gradient(160deg,var(--tc2) 0%,var(--tc) 65%);border:1px solid color-mix(in srgb,var(--ti) 18%,transparent)}
.gcard .tile-add{position:static;inset:auto;margin:0;min-height:0;padding:0}
.gc-t{flex:1;min-width:0} .gc-t b{overflow-wrap:anywhere;hyphens:auto}
@media(max-width:400px){.gc-t b{font-size:.9rem}}
.achart{position:relative}
.ac-xs{display:flex;justify-content:space-between;font-size:.72rem;font-weight:700;color:var(--muted);margin-top:.25rem}
.ac-xs .ac-gl{order:-1;position:absolute;right:0;top:-1.1rem;font-size:.7rem;background:var(--surface);padding:0 .3rem;border-radius:6px}
.gc-t b{hyphens:manual}

/* ---------- Client home ---------- */
.home2{display:flex;flex-direction:column;gap:0}
.home2 .h2-main,.home2 .h2-side,.home2 .h2-rest{display:flex;flex-direction:column;gap:0;min-width:0}
@media(max-width:1099px){.home2{display:flex}.home2 .h2-main{display:contents}.home2 .h2-side{display:contents}
  .home2 .hero2{order:1}.home2 .next-card,.home2 .h2-side>.card:first-child{order:2}.home2 .qlogcard{order:3}.home2 .mealstoday{order:4}.home2 .h2-main>*{order:5}.home2 .h2-side>*{order:6}.home2 .h2-rest{order:9}
  .home2 .hero2{order:1}.home2 .qlogcard{order:3}.home2 .mealstoday{order:4}}
@media(min-width:1100px){main:has(.home2){max-width:1240px}
  .home2{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:0 1.25rem;align-items:start}
  .home2 .h2-main{grid-column:1}.home2 .h2-side{grid-column:2;grid-row:1 / span 2}.home2 .h2-rest{grid-column:1}}
.hero2{position:relative;display:flex;gap:1rem;align-items:flex-end;background:var(--hero);color:#fff;border-radius:28px;padding:1.4rem 1.3rem 1.3rem;margin-bottom:1rem;overflow:hidden;box-shadow:0 22px 44px -26px rgba(11,61,38,.85)}
.hero2::after{content:"";position:absolute;right:-60px;top:-80px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(166,214,58,.35),transparent 65%);pointer-events:none}
.hero2-main{flex:1;min-width:0;position:relative;z-index:1}
.hero2 .eyebrow{color:#C8F07A;margin:0 0 .25rem}
.hero2 h1{color:#fff;margin:0 0 .3rem;font-size:clamp(1.7rem,1.3rem + 1.6vw,2.4rem)}
.hero2 .hero-chip{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.25)}
.hero2-line{color:rgba(255,255,255,.88);margin:.35rem 0 .9rem;font-size:.95rem}
.hero2-panel{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:.9rem .8rem .8rem}
.hero2-rings{display:grid;gap:.5rem;justify-items:center}
.hero2-rings.n1{grid-template-columns:1fr}.hero2-rings.n2{grid-template-columns:1fr 1fr}.hero2-rings.n3{grid-template-columns:repeat(3,1fr)}
.hero2-m{position:relative;z-index:1;width:132px;height:auto;flex:none;margin:0 -.3rem -1.3rem 0;filter:drop-shadow(0 12px 18px rgba(0,0,0,.25))}
@media(max-width:699px){.hero2{flex-direction:column;align-items:stretch;padding:1.2rem 1rem 1rem}.hero2-m{position:absolute;right:.4rem;top:.6rem;width:70px;margin:0;opacity:.95}.hero2 h1{padding-right:64px}}
.rstat{display:flex;flex-direction:column;align-items:center;gap:.3rem;min-width:0}
.rstat-ring{position:relative;width:96px;height:96px}
.rstat.sm .rstat-ring{width:70px;height:70px}
.rstat-ring svg{width:100%;height:100%}
.rs-bg{stroke:rgba(255,255,255,.18)} .rs-fg{stroke:var(--lime);transition:stroke-dasharray .6s var(--ease)}
.r-blue .rs-fg{stroke:#7CC0FF}.r-orange .rs-fg{stroke:#FFAE4D}.r-lime .rs-fg{stroke:#B7E35A}
.rstat-t{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.05}
.rstat-t b{font-size:1.25rem;font-weight:900} .rstat-t span{font-size:.62rem;opacity:.8;font-weight:700;margin-top:2px}
.rstat-l{display:flex;align-items:center;gap:.25rem;font-size:.78rem;font-weight:800}
.rstat-l svg{width:14px;height:14px}
.card .rs-bg{stroke:var(--line)}
@media(max-width:400px){.rstat-ring{width:82px;height:82px}.rstat-t b{font-size:1.05rem}}
.hero2-macros{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-top:.8rem}
.mbar-t{display:flex;justify-content:space-between;font-size:.72rem;font-weight:800;color:rgba(255,255,255,.85);gap:.3rem}
.mbar-b{height:6px;border-radius:9px;background:rgba(255,255,255,.18);margin-top:.3rem;overflow:hidden}
.mbar-b i{display:block;height:100%;border-radius:9px;background:#7CC0FF}
.mbar.c .mbar-b i{background:#FFAE4D}.mbar.f .mbar-b i{background:#FF8FB1}
@media(max-width:400px){.mbar-t{flex-direction:column;gap:0}}
.qlogcard .qlogrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:.4rem}
.qlog{display:flex;flex-direction:column;align-items:center;gap:.4rem;border:0;background:none;font:inherit;font-weight:800;font-size:.84rem;color:var(--ink);text-decoration:none;cursor:pointer;padding:.2rem 0}
.qlog-i{position:relative;width:56px;height:56px;border-radius:18px;background:var(--tc);color:var(--ti);display:grid;place-items:center}
.qlog-i>svg{width:26px;height:26px}
.qlog-p{position:absolute;right:-4px;bottom:-4px;width:22px;height:22px;border-radius:50%;background:var(--head);color:var(--surface);display:grid;place-items:center;border:2px solid var(--surface)}
.qlog-p svg{width:12px;height:12px;stroke-width:3}
.mealstoday{margin-bottom:1rem}
.mealstoday .sechead a{display:inline-flex;align-items:center;gap:.15rem;font-weight:800;text-decoration:none}
.mealstoday .sechead a svg{width:16px;height:16px}
.mtgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
@media(min-width:700px){.mtgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}}
.mtcard{background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--sh-s);display:flex;flex-direction:column}
.mtcard.up{border:2px solid var(--o500);box-shadow:0 14px 30px -18px rgba(224,122,10,.7)}
.mt-ph{position:relative;aspect-ratio:16/10;background:var(--surface-2)}
.mt-ph img{width:100%;height:100%;object-fit:cover;display:block}
.mt-time{position:absolute;left:.5rem;top:.5rem;display:inline-flex;align-items:center;gap:.25rem;background:rgba(255,255,255,.94);color:#1B2A21;font-size:.7rem;font-weight:900;padding:.22rem .5rem;border-radius:999px}
.mt-time svg{width:13px;height:13px}
.mt-ok{position:absolute;right:.5rem;top:.5rem;width:26px;height:26px;border-radius:50%;background:var(--g600);color:#fff;display:grid;place-items:center;border:2px solid #fff}
.mt-ok svg{width:14px;height:14px;stroke-width:3}
.mt-b{padding:.7rem .75rem .75rem;display:flex;flex-direction:column;gap:.15rem;flex:1}
.mt-s{font-size:.66rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)} .mt-s.up{color:var(--o600)}
.mt-b b{font-size:.92rem;line-height:1.25;color:var(--head)}
.mt-f{display:flex;align-items:center;justify-content:space-between;gap:.3rem;margin-top:auto;padding-top:.45rem;flex-wrap:wrap}
.mt-f .btn{min-height:34px;padding:0 .7rem}
.pill{display:inline-flex;align-items:center;gap:.25rem;font-size:.74rem;font-weight:800;padding:.22rem .6rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}
.pill.ok{background:var(--t-green);color:var(--t-green-i);border-color:transparent}
.pill.o{background:var(--o50);color:var(--o700);border-color:transparent}
.pill svg{width:13px;height:13px}
.nc2 h2{margin:0}
.nc-who{display:flex;gap:.75rem;align-items:center;margin:.8rem 0}
.nc-who b{display:block;color:var(--head)} .nc-who small{color:var(--muted);font-size:.8rem}
.nc-when{font-weight:800;font-size:.86rem;margin-top:.15rem;color:var(--ink)}
.nc-count{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin-bottom:.8rem}
.nc-count div{border:1px solid var(--line);border-radius:14px;padding:.45rem 0;text-align:center;background:var(--surface-2)}
.nc-count b{display:block;font-size:1.3rem;font-weight:900;color:var(--head);line-height:1.1}
.nc-count small{font-size:.64rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.nc-act{display:grid;grid-template-columns:1.4fr 1fr;gap:.5rem}
.nc-act .btn{width:100%}
.linkbtn{border:0;background:none;color:var(--g700);font:inherit;font-weight:800;display:inline-flex;align-items:center;gap:.3rem;margin-top:.6rem;cursor:pointer;padding:.2rem 0}
.linkbtn svg{width:15px;height:15px}
html[data-theme=dark] .linkbtn{color:#8FD6A8}
.home2 .next-card.nc2{background:var(--surface);color:var(--ink)}
.streak2{background:linear-gradient(160deg,var(--t-orange-2),var(--t-orange));border-color:transparent;color:var(--t-orange-ink)}
.streak2 .eyebrow{color:var(--t-orange-i);margin:0}
.st-n{font-size:2.1rem;font-weight:800;color:var(--t-orange-ink);line-height:1.1}
.st-n small{font-family:var(--font);font-size:.95rem;font-weight:800}
.streak2 .rs-bg{stroke:color-mix(in srgb,var(--t-orange-i) 22%,transparent)} .streak2 .rs-fg{stroke:var(--t-orange-i)} .streak2 .rstat-t b{font-size:.85rem;color:var(--t-orange-ink)} .streak2 .rstat-l{display:none}
.st-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem;margin-top:.6rem}
.st-d{display:flex;flex-direction:column;align-items:center;gap:.2rem}
.st-d span{width:100%;aspect-ratio:1.2;max-width:40px;border-radius:10px;border:2px dashed color-mix(in srgb,var(--t-orange-i) 45%,transparent);display:grid;place-items:center;color:#fff}
.st-d.on span{background:var(--t-orange-i);border:2px solid var(--t-orange-i)}
.st-d span svg{width:16px;height:16px;stroke-width:3}
.st-d small{font-size:.66rem;font-weight:900;color:var(--t-orange-ink);opacity:.8}
.streak2 .small.muted{color:color-mix(in srgb,var(--t-orange-ink) 75%,transparent)}
.tip2{display:flex;gap:.75rem;align-items:flex-start;background:var(--g50);border-color:transparent}
.tip2 b{color:var(--head)}
.tip2 .gc-i{background:var(--g100);color:var(--g700)}
.h2-side .pkg-progress h2{margin-bottom:.2rem}
/* next consult: white card like the concept (the older green .next-card rules use !important) */
.next-card.nc2,html[data-theme=dark] .next-card.nc2{background:var(--surface)!important;color:var(--ink);border:1px solid var(--line);box-shadow:var(--sh)}
.next-card.nc2::after{display:none}
.next-card.nc2 h2,html[data-theme=dark] .next-card.nc2 h2{color:var(--head)}
.next-card.nc2 .nc-who b,html[data-theme=dark] .next-card.nc2 .nc-who b{color:var(--head)}
.next-card.nc2 .nc-count b,html[data-theme=dark] .next-card.nc2 .nc-count b{color:var(--head)}
.next-card.nc2 .small,html[data-theme=dark] .next-card.nc2 .small{color:var(--g700)}
html[data-theme=dark] .next-card.nc2 .small{color:#8FD6A8}
.next-card.nc2 .btn:not(.accent):not(.ghost),html[data-theme=dark] .next-card.nc2 .btn:not(.accent):not(.ghost){background:var(--g700);border-color:var(--g700);color:#fff}
.next-card.nc2 .btn.ghost,html[data-theme=dark] .next-card.nc2 .btn.ghost{background:var(--surface);color:var(--head);border-color:var(--line)}
.next-card.nc2 .btn.accent{color:#1b1206}

/* ---------- Packages + Services (R2) ---------- */
.pagehead .eyebrow{margin:0 0 .2rem;color:var(--g700)}
html[data-theme=dark] .pagehead .eyebrow{color:#8FD6A8}
.goalchips{display:flex;gap:.5rem;flex-wrap:wrap;margin:.2rem 0 1rem}
.gchip{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:800;font-size:.9rem;border-radius:999px;padding:.28rem .85rem .28rem .3rem;min-height:40px;cursor:pointer}
.gchip-i{width:30px;height:30px;border-radius:50%;object-fit:cover}
.gchip.on{background:var(--g700);border-color:var(--g700);color:#fff}
.pkgnote{display:flex;gap:.7rem;align-items:flex-start;background:var(--g50);border:1px dashed color-mix(in srgb,var(--g600) 45%,transparent);box-shadow:none}
.pkgnote>svg{flex:none;width:20px;height:20px;color:var(--g700);margin-top:.15rem}
.pkgnote p{margin:0;font-size:.9rem}
html[data-theme=dark] .pkgnote{background:color-mix(in srgb,var(--g700) 18%,var(--surface))}
.pkgpage .pkgs{gap:1rem}
@media(min-width:900px){.pkgpage .pkgs{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}}
.pkg2{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.15rem 1.15rem 1.15rem;border-radius:24px}
.pkg2 .pkg-head{display:flex;gap:.75rem;align-items:flex-start;margin:0}
.pkg2 .pkg-head h2{margin:0;font-size:1.15rem}
.pkg2 .pkg-sub{margin:.1rem 0 0;font-size:.85rem}
.pkg2 .price{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap;margin:.3rem 0 0}
.pkg2 .price .now{font-family:var(--serif);font-weight:800;font-size:2.3rem;letter-spacing:-.02em;color:var(--head);line-height:1}
.pkg2 .price .was{color:var(--muted);font-weight:700}
.pkg2 .price .per{color:var(--muted);font-weight:700;font-size:.9rem}
.pkg-cons{margin:0;color:var(--g700);font-weight:800;font-size:.84rem}
html[data-theme=dark] .pkg-cons{color:#8FD6A8}
.pkg2 .incl{margin:.2rem 0 .4rem;flex:1}
.pkg2 .btn.soft{background:var(--g50);color:var(--g800);border-color:transparent}
html[data-theme=dark] .pkg2 .btn.soft{background:color-mix(in srgb,var(--g600) 25%,var(--surface));color:#D7F3E1}
.pkg2.rec{border:2px solid var(--o500);background:linear-gradient(180deg,color-mix(in srgb,var(--o50) 75%,var(--surface)),var(--surface) 55%);box-shadow:0 22px 44px -28px rgba(224,122,10,.8);margin-top:.7rem}
.pkg2.rec .ribbon{position:absolute;top:-14px;left:50%;transform:translateX(-50%);right:auto;margin:0;letter-spacing:.03em;font-size:.76rem;font-weight:900;white-space:nowrap;padding:.32rem .75rem;border-radius:999px;background:var(--o500);color:#1b1206}
.pkg2.rec .pkg-cons{color:var(--o700)}
html[data-theme=dark] .pkg2.rec{background:linear-gradient(180deg,color-mix(in srgb,var(--o500) 14%,var(--surface)),var(--surface) 55%)}
html[data-theme=dark] .pkg2.rec .pkg-cons{color:#FFB869}
.pkg2.rec .incl li::before{color:var(--o600)}
.pkg2 .forgoal{align-self:flex-start}
.pfeats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:1rem 0}
@media(min-width:900px){.pfeats{grid-template-columns:repeat(4,1fr)}}
.pfeat{display:flex;align-items:center;gap:.6rem;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:.7rem;font-size:.85rem}
.pfeat .gc-i{background:var(--tc);color:var(--ti)}
.notsure{display:flex;gap:.8rem;align-items:flex-start}
.notsure-m{flex:none;width:56px;height:56px;border-radius:50%;background:var(--g50);padding:4px}
.notsure p{margin:.15rem 0 .5rem}
.svclist{display:grid;gap:1rem;margin-bottom:1rem}
@media(min-width:700px){.svclist{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){main:has(.svcpage){max-width:1240px}.svclist{grid-template-columns:repeat(3,1fr)}}
.svccard{display:block;background:var(--surface);border:1px solid var(--line);border-radius:24px;overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:var(--sh-s);transition:transform .2s var(--ease),box-shadow .2s}
.svccard:hover{transform:translateY(-2px);box-shadow:var(--sh)}
.svc-ph{position:relative;aspect-ratio:16/8.5;background:var(--surface-2)}
.svc-ph img{width:100%;height:100%;object-fit:cover;display:block}
.svc-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.6))}
.svc-t{position:absolute;left:1rem;bottom:.75rem;z-index:1;color:#fff;font-family:var(--serif);font-size:1.45rem;font-weight:800;letter-spacing:-.01em}
.svc-tag{position:absolute;left:.75rem;top:.75rem;z-index:1;background:#fff;color:#1B2A21;font-size:.72rem;font-weight:900;padding:.22rem .6rem;border-radius:999px}
.svc-b{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem}
.svc-b .small{font-weight:700;color:var(--muted)}
.svc-from{display:flex;flex-direction:column;align-items:flex-end;flex:none}
.svc-from small{font-size:.62rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.svc-from b{font-size:1.35rem;color:var(--head)}

/* ---------- Staff: client header + overview (R2) ---------- */
main:has(.client-page){max-width:1280px}
.client-head.v7{padding:0;overflow:visible;position:relative;border-radius:24px}
.client-head.v7 .ch-banner{height:86px;border-radius:24px 24px 0 0;background:var(--banner)}
.client-head.v7 .ch-top{align-items:flex-end;padding:0 1.25rem 1.1rem;margin-top:-44px;gap:1rem;flex-wrap:wrap}
.client-head.v7 .ch-av{flex:none;border-radius:26px;padding:4px;background:var(--surface);box-shadow:var(--sh)}
.client-head.v7 .ch-av .avatar,.client-head.v7 .ch-av img{border-radius:22px!important;width:96px;height:96px;display:block}
.client-head.v7 .ch-id{padding-top:48px;min-width:220px}
.client-head.v7 .ch-id h1{font-family:var(--serif);font-size:clamp(1.6rem,1.2rem + 1.2vw,2.2rem);font-weight:800;letter-spacing:-.02em;white-space:normal}
.ch-meta{margin:.15rem 0 .1rem;color:var(--muted);font-weight:700;font-size:.88rem}
.client-head.v7 .ch-goals{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.5rem}
.chip-s.c-goal{background:var(--t-pink);color:var(--t-pink-i);border-color:transparent}
.chip-s.c-good{background:var(--t-green);color:var(--t-green-i);border-color:transparent}
.chip-s.c-warn{background:var(--t-orange);color:var(--t-orange-i);border-color:transparent}
.chip-s.c-amber{background:var(--t-amber);color:var(--t-amber-i);border-color:transparent}
.chip-s.c-plain{background:var(--surface-2);color:var(--ink);border-color:var(--line)}
.client-head.v7 .ch-actions{margin-left:auto;gap:.5rem;flex-wrap:wrap}
.client-head.v7 .ch-actions .btn{min-height:42px}
.ch-edit{background:var(--g700);border-color:var(--g700);color:#fff}
@media(max-width:700px){.client-head.v7 .ch-top{margin-top:-40px;padding:0 1rem 1rem}.client-head.v7 .ch-av .avatar,.client-head.v7 .ch-av img{width:76px;height:76px}
  .client-head.v7 .ch-id{padding-top:0;flex-basis:100%}.client-head.v7 .ch-actions{margin-left:0;width:100%;display:grid;grid-template-columns:1fr 1fr 1fr auto}
  .client-head.v7 .ch-actions .btn,.client-head.v7 .ch-actions #call-btn{width:100%;justify-content:center;padding:0 .4rem}.client-head.v7 .ch-actions .popwrap:has(#call-btn){min-width:0}}
@media(max-width:380px){.client-head.v7 .ch-bl{font-size:.8rem}}
.ovdash{margin-bottom:1rem}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-bottom:.9rem}
@media(min-width:700px){.kpis{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.kpis{grid-template-columns:repeat(6,1fr)}}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:.75rem .85rem;box-shadow:var(--sh-s);min-width:0}
.kpi-l{display:flex;align-items:center;gap:.3rem;font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.kpi-l svg{width:14px;height:14px}
.kpi-v{font-size:1.55rem;font-weight:900;color:var(--head);margin:.2rem 0 .05rem;letter-spacing:-.01em;white-space:nowrap}
.kpi-v small{font-size:.9rem;font-weight:800}
.kpi-h{font-size:.74rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-h.good{color:var(--g600)}.kpi-h.bad{color:#C2410C}.kpi-h.warn{color:#B45309}.kpi-h.muted{color:var(--muted)}
html[data-theme=dark] .kpi-h.good{color:#8FD6A8}html[data-theme=dark] .kpi-h.bad{color:#FF9A6B}html[data-theme=dark] .kpi-h.warn{color:#FFC46B}
.ovgrid{display:grid;gap:.9rem;grid-template-columns:minmax(0,1fr)}
.ovgrid>.card{margin:0}
@media(min-width:1000px){.ovgrid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .ov-weight,.ov-cal{grid-column:span 4}.ov-alerts,.ov-macro{grid-column:span 2}.ov-photos,.ov-steps,.ov-notes{grid-column:span 2}}
.ov{border-radius:22px;padding:1.05rem 1.15rem}
.ov-h{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem;margin-bottom:.6rem}
.ov-h h2{margin:0;font-size:1.05rem}
.ov-h a.b{font-weight:800;text-decoration:none;color:var(--g700)}
html[data-theme=dark] .ov-h a.b{color:#8FD6A8}
.ov-sub{margin:.15rem 0 0;font-size:.78rem;color:var(--muted);font-weight:700}
.ov-empty{margin:.6rem 0}
.ov-count{min-width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--t-orange);color:var(--t-orange-i);font-weight:900;font-size:.8rem}
.dchip0.info{background:var(--t-blue);color:var(--t-blue-i)}
.alerts{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.al{display:flex;gap:.55rem;align-items:center;border-radius:14px;padding:.6rem .75rem;font-weight:800;font-size:.84rem}
.al svg{width:16px;height:16px;flex:none}
.al.warn{background:var(--t-orange);color:var(--t-orange-ink)}.al.warn svg{color:var(--t-orange-i)}
.al.info{background:var(--t-blue);color:var(--t-blue-ink)}.al.info svg{color:var(--t-blue-i)}
.al.good{background:var(--t-green);color:var(--t-green-ink)}.al.good svg{color:var(--t-green-i)}
.cbars{position:relative}
.cbars svg{width:100%;height:190px;display:block}
.cb{fill:#5B9BF5}.cb.over{fill:#F5A04A}.cb.now{opacity:.55}.cb.none{fill:var(--line)}
.cb-target{stroke:var(--g600);stroke-width:2;stroke-dasharray:6 6;vector-effect:non-scaling-stroke}
.cb-tl{position:absolute;right:0;transform:translateY(-120%);font-size:.7rem;font-weight:900;color:var(--g700)}
html[data-theme=dark] .cb-tl{color:#8FD6A8}
.cb-xs{display:flex;justify-content:space-around;font-size:.72rem;font-weight:800;color:var(--muted);margin-top:.2rem}
.cb-xs span{flex:1;text-align:center}
.macro{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.donut{position:relative;flex:none}
.donut svg{display:block}
.dn-bg{stroke:var(--surface-2)}.dn.p{stroke:#5B9BF5}.dn.c{stroke:#F5A04A}.dn.f{stroke:#E8578A}
.donut-t{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}
.donut-t b{font-size:1.15rem;font-weight:900;color:var(--head)}.donut-t span{font-size:.66rem;color:var(--muted);font-weight:800}
.macro-l{flex:1;min-width:160px;display:grid;gap:.4rem}
.ml{display:flex;align-items:center;gap:.45rem;font-size:.84rem;font-weight:800}
.ml i{width:10px;height:10px;border-radius:3px;background:#5B9BF5}.ml.c i{background:#F5A04A}.ml.f i{background:#E8578A}
.ml span{flex:1}.ml b{font-weight:800;color:var(--muted)}
.macro-l p{margin:.2rem 0 0}
.phgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}
.phgrid figure{margin:0;position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden;background:var(--surface-2)}
.phgrid img{width:100%;height:100%;object-fit:cover}
.phgrid figcaption{position:absolute;left:.35rem;top:.35rem;background:rgba(255,255,255,.94);color:#1B2A21;font-size:.64rem;font-weight:900;padding:.12rem .4rem;border-radius:99px}
.ov-l{margin:.3rem 0 .25rem;font-weight:900;font-size:.84rem}
.ov-steps .minibars{width:100%;height:64px;display:block}
.minibars.t-orange .mb{fill:#F5A04A}.minibars.t-purple .mb{fill:#8E7CF0}
.minibars .mb.none{fill:var(--line)}
.snotes{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.snotes li{display:grid;grid-template-columns:52px 1fr;gap:.5rem;font-size:.84rem;line-height:1.35}
.sn-d{color:var(--muted);font-weight:800;font-size:.76rem}
.snotes b{color:var(--head)}
.client-head.v7 .ch-av>*{width:96px!important;height:96px!important;border-radius:22px!important;overflow:hidden}
.client-head.v7 .ch-av img{object-fit:cover}
@media(max-width:700px){.client-head.v7 .ch-av>*{width:76px!important;height:76px!important}
  .client-head.v7 .ch-actions{grid-template-columns:1fr 1fr auto}.client-head.v7 .ch-actions .ch-edit{grid-column:1 / -1;grid-row:2}
  .client-head.v7 .ch-actions .btn{white-space:nowrap}}

/* ---------- Diet chart builder (R2) ---------- */
.tplstart{margin-bottom:1rem}
.tplstart .sechead{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.tplstart h2{margin:0}
.tplrow{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);gap:.6rem;overflow-x:auto;padding:.3rem .1rem .5rem;scrollbar-width:thin}
.tplcard{display:flex;flex-direction:column;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;padding:0;font:inherit;color:var(--ink);cursor:pointer;box-shadow:var(--sh-s);min-width:150px}
.tplcard img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.tplcard b{padding:.5rem .65rem 0;font-size:.86rem;line-height:1.25;color:var(--head)}
.tplcard small{padding:.1rem .65rem .6rem;color:var(--muted);font-size:.74rem;font-weight:700}
.tplcard:hover{border-color:var(--g600)}
.tplcard.blank{border-style:dashed;align-items:center;justify-content:center;text-align:center;background:var(--surface-2);min-height:150px}
.tplcard.blank b,.tplcard.blank small{padding-left:0;padding-right:0}
.tpl-plus{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line)}
.builder2{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
@media(min-width:1200px){.builder2{grid-template-columns:minmax(0,1fr) 340px;align-items:start}
  .b2-side{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto;scrollbar-width:thin}
  .builder2 .mp-board,.builder2 .mp-detail-h{display:none}}
.b2-main,.b2-side{min-width:0;display:flex;flex-direction:column;gap:.9rem}
.b2-main>.card,.b2-side>.card{margin:0}
.b2-head .eyebrow{margin:.4rem 0 .2rem}
.b2-head .backlink{margin:0}
.b2-days .daystrip{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:5px}
.b2-days .dchip{border:0;border-radius:12px;background:transparent;min-height:46px}
.b2-days .dchip.on{background:var(--g700);color:#fff}
.b2-days .dchip.on small,.b2-days .dchip.on b{color:#fff}
.builder2 .daytotal{border-radius:20px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-s)}
.builder2 .daytotal>b{font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.builder2 .daytotal .nutri .kcal{font-size:1.6rem;font-weight:900;color:var(--head)}
.mr2{border-radius:20px;padding:.9rem 1rem;background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-s)}
.mr-h{display:flex;align-items:center;gap:.65rem;margin-bottom:.55rem}
.mr-i{flex:none;width:40px;height:40px;border-radius:12px;overflow:hidden;background:var(--surface-2)}
.mr-i img{width:100%;height:100%;object-fit:cover}
.mr-t{flex:1;min-width:0;display:flex;flex-direction:column}
.mr-t select{border:0;background:transparent;font:inherit;font-weight:900;font-size:1rem;color:var(--head);padding:0 1.4rem 0 0;min-height:30px;width:auto;max-width:100%}
.mr-n{font-size:.74rem;color:var(--muted);font-weight:700}
.mr-kcal{font-weight:900;color:var(--head);white-space:nowrap}
.mr-act{display:flex;gap:.2rem}
.mr-act .btn{min-height:34px;padding:0 .5rem}
@media(max-width:520px){.mr-h{flex-wrap:wrap}.mr-act{width:100%;justify-content:flex-end}}
.foodchips:has(.frow){display:flex;flex-direction:column;gap:.4rem}
.chip.frow{display:flex;align-items:center;gap:.55rem;width:100%;border-radius:14px;padding:.45rem .5rem;background:var(--surface-2);border:1px solid var(--line);flex-wrap:wrap;white-space:normal}
.chip.frow.check{border-color:var(--o500);background:color-mix(in srgb,var(--o50) 70%,var(--surface))}
.fr-th{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:900;background:var(--t-green);color:var(--t-green-i)}
.fr-n{flex:1;min-width:120px;font-weight:800;font-size:.88rem;color:var(--head)}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:2px}
.stepper input{width:58px!important;border:0!important;background:transparent!important;text-align:center;font-weight:800;min-height:30px!important;padding:0!important;-moz-appearance:textfield}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.st-b{width:30px;height:30px;border-radius:50%;border:0;background:var(--surface-2);font:inherit;font-weight:900;color:var(--head);cursor:pointer}
.st-u{font-size:.76rem;color:var(--muted);font-weight:800;padding-right:.3rem}
.frow .src{font-size:.62rem;font-weight:900;padding:.1rem .4rem;border-radius:6px;background:var(--t-blue);color:var(--t-blue-i)}
.frow .src.usda{background:var(--t-purple);color:var(--t-purple-i)}.frow .src.custom{background:var(--t-amber);color:var(--t-amber-i)}
.frow .swaps{flex-basis:100%;display:flex;gap:.3rem;flex-wrap:wrap;align-items:center;padding-left:42px}
.addfood{margin-top:.55rem;border-top:1px dashed var(--line);padding-top:.55rem}
.af-l{display:inline-flex;align-items:center;gap:.3rem;font-weight:900;color:var(--g700);font-size:.86rem;margin-bottom:.35rem}
.af-l svg{width:15px;height:15px}
html[data-theme=dark] .af-l{color:#8FD6A8}
.srctabs{display:flex;gap:.3rem;flex-wrap:wrap;margin:.4rem 0}
.srctabs button{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:800;font-size:.76rem;border-radius:999px;padding:.2rem .65rem;min-height:30px;cursor:pointer}
.srctabs button.on{background:var(--head);border-color:var(--head);color:var(--surface)}
.b2-side h3{margin:0 0 .5rem;font-size:1rem}
.b2-tools .planner-tools{margin:0!important}
.tgrid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}
.tgrid div{background:var(--surface-2);border-radius:12px;padding:.5rem .6rem;display:flex;flex-direction:column}
.tgrid b{font-size:1.1rem;font-weight:900;color:var(--head)}.tgrid small{font-size:.7rem;color:var(--muted);font-weight:700}
.tgrid .hl{background:var(--t-green)}.tgrid .hl b{color:var(--t-green-ink)}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.checks li{display:flex;gap:.5rem;align-items:flex-start;font-size:.84rem;font-weight:700}
.ck{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:.75rem;color:#fff;background:var(--g600)}
.ck svg{width:12px;height:12px;stroke-width:3}
.checks li.warn .ck{background:var(--o500);color:#1b1206}
.pdfmini{margin-top:.5rem;background:#fff;color:#1B2A21;border:1px solid var(--line);border-radius:12px;padding:.7rem;box-shadow:var(--sh-s);font-size:.72rem}
.pm-h{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid #1F7A45;padding-bottom:.3rem;margin-bottom:.4rem}
.pm-h b{font-size:.82rem;color:#0F3F27}.pm-h small{color:#5B6B61}
.pm-k{display:grid;grid-template-columns:repeat(4,1fr);gap:.25rem;margin-bottom:.4rem}
.pm-k span{background:#F1F7F2;border-radius:6px;padding:.2rem;text-align:center;display:flex;flex-direction:column}
.pm-k b{font-size:.78rem}.pm-k small{font-size:.6rem;color:#5B6B61}
.pm-r{display:grid;grid-template-columns:64px 1fr auto;gap:.3rem;padding:.18rem 0;border-bottom:1px solid #EEF2EF}
.pm-r small{color:#1F7A45;font-weight:800}.pm-r em{font-style:normal;color:#5B6B61}
.b2-send{display:flex;flex-direction:column;gap:.5rem}
.b2-send .row{gap:.5rem}.b2-send .row .btn{flex:1}
.b2-send #publish-plan{background:linear-gradient(180deg,#F59A2B,#E07A0A);border-color:#E07A0A;color:#1b1206;box-shadow:0 14px 28px -16px rgba(224,122,10,.9)}
.b2-days .daystrip{display:grid!important;grid-auto-flow:column;grid-auto-columns:minmax(50px,1fr);grid-template-columns:none!important;overflow-x:auto;gap:3px}
.pdfmini{max-height:260px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 80%,transparent);mask-image:linear-gradient(#000 80%,transparent)}
@media(min-width:1200px){.b2-send{position:sticky;bottom:0;z-index:2;background:linear-gradient(transparent,var(--bg) 18%);padding:.9rem 0 .2rem}}
@media(max-width:1199px){.builder2{display:flex;flex-direction:column}.builder2 .b2-main,.builder2 .b2-side{display:contents}
  .b2-head{order:1}.b2-tools{order:2}.b2-days{order:3}.builder2 .b2-main>.stack{order:4}.b2-target{order:5}.b2-check{order:6}.b2-pdf{order:7}.b2-send{order:8}.builder2 .b2-main>p{order:9}}
/* the raised + button overhangs the bar: keep the chat composer clear of it */
@media(max-width:899px){body:has(.tabs .fab) .composer{bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px)}}
.b2-meta>summary{cursor:pointer;list-style:none;padding:.3rem 0;font-size:.95rem}
.b2-meta>summary::-webkit-details-marker{display:none}
.b2-meta>summary::after{content:"▾";margin-left:.4rem;color:var(--muted)}
.b2-meta[open]>summary{margin-bottom:.5rem}
/* contrast + narrow-phone fixes from the UI sweep */
.streak2 .eyebrow{color:var(--t-orange-ink)}
.chip-s.c-amber{color:var(--t-amber-ink)}
@media(max-width:400px){.segnav.tabs6>a,.segnav.tabs6 .seg-more{font-size:.8rem;padding:0 .15rem}.segnav.tabs6 .seg-more{overflow:hidden;white-space:nowrap}.segnav.tabs6 .seg-more svg{width:12px;flex:none}}
@media(max-width:400px){.segnav.tabs6 .popwrap{flex:1.35 1 0}}

/* ---------- Client diet plan page (R2 photo cards) ---------- */
.daysum .dp-bars{flex-basis:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin-top:.4rem}
.daysum .mbar-t{color:var(--muted)}
.daysum .mbar-b{background:var(--surface-2)}
.daysum .mbar:not(.p):not(.c):not(.f) .mbar-b i{background:var(--g600)}
@media(max-width:520px){.daysum .dp-bars{grid-template-columns:1fr 1fr}}
.meals.mgrid2{display:grid;gap:.9rem;grid-template-columns:minmax(0,1fr)}
@media(min-width:1000px){.meals.mgrid2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
.meals.mgrid2 .meal.rich{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden;border-radius:22px;margin:0;background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-s)}
.meals.mgrid2 .meal.rich.up{border:2px solid var(--o500);box-shadow:0 16px 32px -20px rgba(224,122,10,.75)}
.meal-ph{position:relative;aspect-ratio:16/7;background:var(--surface-2)}
.meals.mgrid2 .meal.rich .meal-photo{width:100%!important;height:100%!important;border-radius:0;object-fit:cover}
.meals.mgrid2 .meal.rich .meal-head{padding:.8rem 1rem 0}
.meals.mgrid2 .meal.rich .meal-body{padding:.4rem 1rem 1rem}
.meals.mgrid2 .meal.rich .meal-head .badge{display:none}
.slot-label.up{color:var(--o600)!important}
.meals.mgrid2 .meal.rich.ate{background:var(--surface)}
.meals.mgrid2 .meal.rich.ate .meal-ph img{filter:saturate(.85)}
.meals.mgrid2 .meal.rich.skipped{opacity:.75}
.meals.mgrid2 .meal.rich{align-items:stretch}
.meals.mgrid2 .meal-ph{width:100%;align-self:stretch;grid-area:auto}
.meals.mgrid2 .meal-ph .mt-time,.meals.mgrid2 .meal-ph .mt-ok{z-index:1}

/* ---------- Sign in (R2): green hero beside the form on desktop ---------- */
.auth-m{display:none}
@media(min-width:1000px){body.anon main{max-width:1120px}
  .auth:has(>.auth-hero .auth-m){max-width:1080px;display:grid;grid-template-columns:minmax(0,1fr) 440px;column-gap:2rem;align-items:start;padding-top:1.5rem}
  .auth:has(>.auth-hero .auth-m)>*{grid-column:2}
  .auth:has(>.auth-hero .auth-m)>.auth-hero{grid-column:1;grid-row:1 / span 8;position:sticky;top:1.5rem;text-align:left;background:var(--hero);color:#fff;border-radius:32px;padding:2.5rem 2.2rem 0;min-height:560px;overflow:hidden;display:flex;flex-direction:column}
  .auth-hero .art{display:none}
  .auth>.auth-hero h1{color:#fff;font-size:3rem;margin:0 0 .5rem}
  .auth>.auth-hero p{color:rgba(255,255,255,.88);margin:0;max-width:30ch;font-size:1.15rem}
  .auth>.auth-hero .trust{justify-content:flex-start;margin-top:1.2rem;flex-direction:column;align-items:flex-start;gap:.5rem}
  .auth>.auth-hero .trust span{color:#fff;background:rgba(255,255,255,.12);border-radius:999px;padding:.35rem .8rem}
  .auth-m{display:block;width:240px;height:auto;margin:auto 0 0 auto;filter:drop-shadow(0 16px 24px rgba(0,0,0,.3))}}
@media(min-width:1000px){.auth>.auth-hero .trust svg{color:#C8F07A;stroke:#C8F07A}}

/* ---------- Install the app (one "Install" button: Android prompt / iPhone 3 steps / in-app browser) ---------- */
.inst-card{display:flex;align-items:center;gap:.7rem;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:.55rem .55rem .55rem .7rem;margin:0 0 .9rem;box-shadow:0 6px 18px -12px rgba(10,40,25,.35);animation:rise .3s var(--ease)}
.inst-card.hidden{display:none}
.inst-card img{border-radius:10px;flex:none}
.inst-card b{color:var(--head)}
.inst-card .iconbtn{min-width:40px;min-height:40px}
.inst-sheet{text-align:center}
.inst-sheet h2{font-family:var(--serif)}
.inst-steps{display:flex;align-items:flex-start;justify-content:center;gap:.4rem;padding:.6rem 0 .4rem}
.inst-step{display:flex;flex-direction:column;align-items:center;gap:.45rem;width:6.4rem;font-weight:800;font-size:.92rem;color:var(--head)}
.inst-ico{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:var(--g50,#EAF5EE);color:var(--g700)}
.inst-ico .ico{width:28px;height:28px}
.inst-step:last-child .inst-ico{background:var(--o700);color:#fff}
.inst-arrow{font-size:1.6rem;line-height:58px;color:var(--muted)}
.inst-one{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:.4rem 0}
.inst-one img{border-radius:14px}
.inst-line{margin:.2rem 0 .3rem;font-weight:700}
#menu-install.hidden{display:none}
html[data-theme=dark] .inst-ico{background:#1C3A28;color:#8FD6A8}
