/* ===== DietSetu v6: quality pass + premium polish (loaded last, overrides older layers) ===== */
/* --- package card: one tick per line, badge never clipped, uncrowded header, no duplicate info --- */
.pkg{overflow:visible}
.pkg::before{border-radius:var(--r-l) var(--r-l) 0 0}
.pkg .incl li::marker{content:none}
.pkg .ribbon{position:static;align-self:flex-start;margin:0 0 .6rem;box-shadow:none;display:inline-flex;gap:.3rem;align-items:center}
.pkg-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.35rem .6rem}
.pkg-head h2{margin:0;min-width:0}
.badge.soft{background:var(--g50);color:var(--g700);border:1px solid var(--g100);font-weight:700}
html[data-theme=dark] .badge.soft{background:transparent;color:#8FD6A8;border-color:#2c4a3a}
.pkg-meta{display:flex;flex-wrap:wrap;gap:.4rem 1rem;color:var(--muted);font-size:.88rem;font-weight:700;margin:.2rem 0 .1rem}
.pkg-meta span{display:inline-flex;align-items:center;gap:.35rem}.pkg-meta svg{width:16px;height:16px}
/* info icon hint (long help hidden behind ⓘ) */
.infowrap{position:relative;display:inline-flex;vertical-align:middle;margin-left:.25rem}
.info-i{width:28px;height:28px;min-height:0;padding:0;color:var(--muted)}.info-i svg{width:17px;height:17px}
.infotip{position:absolute;z-index:30;top:100%;left:0;width:min(280px,80vw);background:var(--ink);color:var(--surface);font-size:.83rem;line-height:1.4;padding:.6rem .75rem;border-radius:10px;box-shadow:var(--sh-l)}
/* goal editor */
.goalrow{display:grid;grid-template-columns:1fr 1.4fr auto auto;gap:.5rem;align-items:center}
@media (max-width:640px){.goalrow{grid-template-columns:1fr auto auto}.goalrow input:nth-child(2){grid-column:1/-1;grid-row:2}}
/* --- dietitian client page (v6) --- */
.backlink{display:inline-flex;align-items:center;gap:.2rem;font-weight:700;color:var(--muted);text-decoration:none;margin:.2rem 0 .6rem;font-size:.92rem}
.backlink svg{width:18px;height:18px}
.client-head.v6{padding:1rem 1.1rem}
.ch-top{display:flex;gap:.9rem;align-items:center}
.ch-id{flex:1;min-width:0}
.ch-id h1{margin:0;font-size:1.35rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-sub{display:flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.86rem;font-weight:600;margin-top:.15rem;flex-wrap:wrap}
.ch-sub .dot{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.5}
.ch-credits{font-weight:800}.ch-credits.ok{color:var(--g700)}html[data-theme=dark] .ch-credits.ok{color:#8FD6A8}
.ch-goals{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.45rem}
.chip-s{font-size:.74rem;font-weight:800;padding:.18rem .55rem;border-radius:99px;background:var(--g50);color:var(--g700);border:1px solid var(--g100)}
html[data-theme=dark] .chip-s{background:transparent;color:#8FD6A8;border-color:#2c4a3a}
.ch-actions{display:flex;gap:.45rem;align-items:center;flex-shrink:0}
.ch-admin{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--line)}
.ch-assign{display:flex;align-items:center;gap:.5rem}
.popwrap{position:relative;display:inline-flex}
.popmenu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:200px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-l);padding:.35rem;display:flex;flex-direction:column;animation:ds-pop .16s cubic-bezier(.2,.8,.2,1)}
.popmenu button{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;background:none;border:0;padding:.65rem .75rem;border-radius:10px;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;min-height:44px}
.popmenu button:hover,.popmenu button:focus-visible{background:var(--g50);outline:none}
html[data-theme=dark] .popmenu button:hover{background:rgba(255,255,255,.06)}
.popmenu button.danger{color:var(--red,#C0392B)}.popmenu svg{width:18px;height:18px}
.tabs6 .popwrap .popmenu{left:auto;right:0}
@keyframes ds-pop{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
.segnav.tabs6{display:flex;gap:.25rem;overflow:visible;flex-wrap:nowrap}
.segnav.tabs6>a{flex:1 1 0;justify-content:center;white-space:nowrap;padding:0 .6rem}.segnav.tabs6 .popwrap{flex:1 1 0}
.segnav button{flex:none;min-height:44px;display:flex;align-items:center;justify-content:center;gap:.3rem;padding:0 1.1rem;border-radius:999px;border:2px solid var(--line);background:var(--surface);font:inherit;font-weight:800;color:var(--g800);cursor:pointer;transition:all .18s}
.segnav.tabs6 .seg-more{width:100%;padding:0 .6rem}
.segnav button[aria-current=page]{background:var(--g700);color:#fff;border-color:var(--g700)}
html[data-theme=dark] .segnav button{color:#cfe9da}
.seg-more svg{width:16px;height:16px}
@media (max-width:420px){.ch-top{flex-wrap:wrap}.ch-actions{width:100%;justify-content:flex-start}.ch-actions .popwrap:first-child{flex:1}.ch-actions #call-btn{width:100%;justify-content:center}}
/* segmented control tabs (client page) */
.segnav.tabs6{background:var(--g50);border:1px solid var(--g100);border-radius:14px;padding:4px;gap:2px;margin-bottom:1rem}
html[data-theme=dark] .segnav.tabs6{background:rgba(255,255,255,.04);border-color:var(--line)}
.segnav.tabs6>a,.segnav.tabs6 .seg-more{flex:1 1 0;min-width:0;min-height:40px;padding:0 .25rem;border:0;border-radius:10px;background:transparent;font-size:.9rem;color:var(--muted);box-shadow:none}
.segnav.tabs6 .popwrap{min-width:0}
.segnav.tabs6>a[aria-current=page],.segnav.tabs6 .seg-more[aria-current=page]{background:var(--surface);color:var(--ink);box-shadow:var(--sh-s)}
html[data-theme=dark] .segnav.tabs6>a[aria-current=page],html[data-theme=dark] .segnav.tabs6 .seg-more[aria-current=page]{background:var(--g700);color:#fff}
/* measurements: one form, compact 2-column grid; steps quick chips; tool switches */
.entryform.k-measurements{display:grid;grid-template-columns:1fr 1fr;gap:.2rem .8rem}
.entryform.k-measurements>.btn{grid-column:1/-1}
.quickchips{display:flex;flex-wrap:wrap;gap:.4rem;margin:-.2rem 0 .8rem}
.toolgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.1rem 1rem}
.toolrow{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line)}
.ticon.sm{width:32px;height:32px}.ticon.sm svg{width:17px;height:17px}
.lockbtn{opacity:.45}.lockbtn.on{opacity:1;color:var(--o700)}
/* pinned primary themes */
.pinned-themes{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.pinned-theme{position:relative;display:flex;flex-direction:column;gap:.55rem;padding:.8rem;border-radius:16px;border:2px solid var(--line);background:#fff;color:#14261C;font:inherit;font-weight:800;text-align:left;cursor:pointer;transition:transform .15s,border-color .15s}
.pinned-theme.dark{background:#0E1713;color:#E8F2EC;border-color:#2b3b33}
.pinned-theme[aria-pressed=true]{border-color:var(--g600);box-shadow:0 0 0 3px color-mix(in srgb,var(--g600) 25%,transparent)}
.pinned-theme:active{transform:scale(.98)}
.pt-prev{display:flex;gap:4px;height:34px}.pt-prev i{flex:1;border-radius:8px;background:#F1F8F3}.pt-prev i:first-child{background:#166B3F}.pt-prev i:nth-child(2){background:#F28C1B}
.pinned-theme.dark .pt-prev i{background:#1B2B23}.pinned-theme.dark .pt-prev i:first-child{background:#1E8A4F}.pinned-theme.dark .pt-prev i:nth-child(2){background:#F28C1B}
.pt-name{display:flex;align-items:center;gap:.4rem}.pt-name svg{width:17px;height:17px}
.pt-lock{position:absolute;top:.55rem;right:.55rem;opacity:.6}.pt-lock svg{width:14px;height:14px}

/* =====================================================================================================
   v6 DESIGN SYSTEM: clean sans headings, calm neutral canvas, soft elevated cards, consistent spacing,
   refined nav (mobile bottom bar + desktop sidebar), inputs, buttons, chips, skeletons and empty states.
   Brand colours (theme.css, per clinic) still win because they load after this file.
   ===================================================================================================== */
:root{
  --display:'Nunito',ui-rounded,'Segoe UI',system-ui,-apple-system,sans-serif;
  --bg:#F5F7F6; --surface-2:#F8FAF9; --line:#E3EAE6; --muted:#55665C;
  --r-s:12px; --r:20px; --r-l:24px;
  --sh-s:0 1px 2px rgba(16,40,28,.04),0 4px 14px -6px rgba(16,40,28,.08);
  --sh:0 2px 6px rgba(16,40,28,.05),0 18px 40px -16px rgba(16,40,28,.18);
  --sp:1rem;
}
html[data-theme=dark]{--bg:#0C1411;--surface:#141F1A;--surface-2:#192620;--line:#24342C;--muted:#9DB2A6;
  --sh-s:0 1px 2px rgba(0,0,0,.45),0 6px 18px -8px rgba(0,0,0,.5);--sh:0 18px 40px -16px rgba(0,0,0,.7)}
body{font-size:15.5px;letter-spacing:.005em}
h1{font-family:var(--display);font-weight:900;letter-spacing:-.02em;font-size:clamp(1.45rem,1.15rem + 1.2vw,1.95rem)}
h2{font-size:1.08rem;font-weight:800;letter-spacing:-.01em}
h3{font-size:.98rem}
.eyebrow{font-size:.72rem;letter-spacing:.09em;font-weight:800}
.card{border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--sh-s);padding:1.05rem 1.1rem}
.card.tint{background:linear-gradient(180deg,var(--g50),var(--surface))}
html[data-theme=dark] .card.tint{background:linear-gradient(180deg,#16271E,var(--surface))}
.card.flat{box-shadow:none;background:var(--surface-2)}
/* buttons */
.btn{border-radius:14px;font-weight:800;letter-spacing:.01em;box-shadow:0 1px 0 rgba(255,255,255,.15) inset,0 6px 16px -10px rgba(16,40,28,.5)}
.btn.ghost{box-shadow:none}
.btn.sm{border-radius:11px}
.iconbtn{border-radius:12px}
/* inputs */
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=search],input[type=url],input[type=date],input[type=time],select,textarea{border-radius:12px;border:1.5px solid var(--line);background:var(--surface);transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--g600);box-shadow:0 0 0 4px color-mix(in srgb,var(--g600) 16%,transparent);outline:none}
/* mobile bottom bar: floating glass pill */
@media (max-width:899px){
  .tabs{left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:22px;padding:.2rem .25rem;box-shadow:0 12px 34px -12px rgba(16,40,28,.35)}
  html[data-theme=dark] .tabs{box-shadow:0 12px 34px -12px rgba(0,0,0,.8)}
  .tabs a{min-height:54px;font-size:.68rem}
  .tabs a[aria-current="page"]::before{width:52px;height:32px;top:3px}
  main{padding-bottom:calc(var(--nav-h) + 28px + env(safe-area-inset-bottom))}
}
/* desktop sidebar */
@media (min-width:900px){
  .tabs a{border-radius:12px;font-size:.92rem}
  .tabs a[aria-current="page"]{background:var(--g50);color:var(--g700);font-weight:800;box-shadow:inset 3px 0 0 var(--g600)}
  html[data-theme=dark] .tabs a[aria-current="page"]{background:#17291F;color:#8FD6A8}
  .tabs a:hover{background:var(--surface-2)}
  #view{max-width:1120px}
}
/* welcome / hero */
.welcome{align-items:center;margin-bottom:.9rem}
.welcome h1{margin-bottom:.35rem}
.welcome .art{max-width:84px}
.next-card{border:0;color:#fff;background:radial-gradient(120% 140% at 100% 0%,var(--g600) 0%,var(--g800) 60%,var(--g900) 100%)!important}
html[data-theme=dark] .next-card{background:radial-gradient(120% 140% at 100% 0%,#1E8A4F 0%,#0F3F27 70%)!important}
.next-card .when{font-family:var(--display);font-weight:900;letter-spacing:-.02em}
/* tiles & minitiles */
.minitiles{gap:.6rem}
.minitile,.tile{border-radius:18px;border:1px solid var(--line);background:var(--surface);transition:transform .15s var(--ease),box-shadow .15s}
.minitile:active,.tile:active{transform:scale(.97)}
@media (hover:hover){.minitile:hover,.tile:hover{box-shadow:var(--sh);transform:translateY(-2px)}}
.minitile.done,.tile.done{background:linear-gradient(180deg,var(--g50),var(--surface));border-color:var(--g100)}
.ticon{border-radius:14px}
.qa-grid .qa{border-radius:18px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--sh-s)}
.qa .qi{border-radius:14px}
/* tables */
.tbl th{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.tbl td,.tbl th{border-color:var(--line)}
/* page head */
.pagehead{margin-bottom:1rem}.pagehead p{margin-bottom:0}
/* stat cards (staff dashboards) */
.stat,.statcard{border-radius:18px}
.stat-v{font-family:var(--display);font-weight:900;letter-spacing:-.02em}
/* skeleton shimmer + empty states */
.skel,.skel-line{background:linear-gradient(90deg,var(--surface-2) 25%,color-mix(in srgb,var(--line) 70%,transparent) 37%,var(--surface-2) 63%)!important;background-size:400% 100%!important;animation:ds-shimmer 1.3s ease infinite}
@keyframes ds-shimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}
.empty{padding:1.4rem .8rem}.empty .art{max-width:110px;margin-inline:auto}
.empty h3{font-size:1.02rem}.empty p{font-size:.9rem;color:var(--muted)}
/* toasts */
.toast{border-radius:14px;box-shadow:var(--sh)}
/* micro-interactions */
@media (prefers-reduced-motion:no-preference){
  .card{animation:ds-rise6 .34s var(--ease) both}
  @keyframes ds-rise6{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  #view>*>.card:nth-child(2){animation-delay:.03s}#view>*>.card:nth-child(3){animation-delay:.06s}#view>*>.card:nth-child(4){animation-delay:.09s}
  .switch span{transition:background .2s}
}
/* desktop: dashboards in a 2-column rhythm where it helps */
@media (min-width:1200px){
  .qa-grid{grid-template-columns:repeat(6,1fr)}
}
/* calmer alert cards: neutral surface + accent edge instead of a full orange wash */
.card.warn{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--o500);box-shadow:var(--sh-s)}
html[data-theme=dark] .card.warn{background:var(--surface);border-color:var(--line);border-left-color:var(--o700)}
/* client list: single clean row (no double border), hover lift, compact meta */
.card.client-row{padding:.75rem .9rem;margin-bottom:.55rem}
.card.client-row .rowlink{border:0!important;box-shadow:none!important;background:none!important;padding:0!important;border-radius:0}
@media (hover:hover){.card.client-row:hover{box-shadow:var(--sh);transform:translateY(-1px)}}
.card.client-row .assignrow{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--line)}
/* package card polish */
.pkg h2{font-family:var(--display);font-weight:900;font-size:1.3rem;letter-spacing:-.02em}
.pkg .forgoal{align-self:flex-start;margin-bottom:.5rem}
.pkg .ribbon+.pkg-head,.pkg .forgoal+.ribbon{margin-top:0}
.pkg .forgoal+.ribbon{margin-left:.35rem}
.pkg{display:flex;flex-direction:column}
.pkg>.badge{display:inline-flex;width:auto}
.card.client-row .rowlink{margin:0!important}
/* health calculators */
.hc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.6rem}
.bmi-spark svg{display:block}
.hc-item{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:.75rem .85rem}
.hc-top{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap}
.hc-l{font-size:.78rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;width:100%}
.hc-v{font-size:1.6rem;font-weight:900;letter-spacing:-.02em;color:var(--head);font-variant-numeric:tabular-nums}
.hc-u{font-weight:700;color:var(--muted)}
.hc-tag{font-weight:800;font-size:.86rem}
.bmi-spark{margin-left:auto;width:90px;height:28px;display:inline-block}.bmi-spark polyline{stroke:var(--g600)}
.bmi-scale{position:relative;display:grid;grid-template-columns:20.6fr 26.5fr 11.8fr 41.1fr;gap:3px;height:9px;margin:.55rem 0 .2rem}
.bmi-scale .z{border-radius:6px;opacity:.85}.z.u{background:#F0B04B}.z.n{background:var(--g600)}.z.o{background:#F28C1B}.z.ob{background:#D9534F}
.bmi-scale .mk{position:absolute;top:-4px;width:4px;height:17px;border-radius:3px;background:var(--ink);transform:translateX(-50%);box-shadow:0 0 0 2px var(--surface);transition:left .6s var(--ease)}
.bmi-ticks{position:relative;height:1em}.bmi-ticks span{position:absolute;transform:translateX(-50%)}
.bmi-ticks span:nth-child(1){left:20.6%}.bmi-ticks span:nth-child(2){left:47.6%}.bmi-ticks span:nth-child(3){left:59.4%}
.hc-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end;margin-top:.8rem}
.hc-form label{display:flex;flex-direction:column;gap:.15rem}.hc-form input{width:84px}.hc-form .grow{flex:1;min-width:170px}
.hidden{display:none!important}

/* ===== R1: rich meal cards (photo, Choose one options, "or" food swaps) ===== */
.meal.rich{display:grid;grid-template-columns:64px 1fr;grid-template-areas:"photo head" "body body";column-gap:.75rem;row-gap:.5rem;align-items:center;padding:.85rem}
.meal.rich .meal-photo{grid-area:photo;width:64px;height:64px;object-fit:cover;border-radius:14px;background:var(--g50);display:block}
.meal.rich .meal-head{grid-area:head;min-width:0}
.meal.rich .meal-body{grid-area:body;min-width:0}
.meal.rich h3{margin:.1rem 0 0;line-height:1.25}
@media(min-width:700px){.meal.rich{grid-template-columns:132px 1fr;grid-template-areas:"photo head" "photo body";column-gap:1.1rem;row-gap:.35rem;align-items:start;padding:1rem}.meal.rich .meal-photo{width:132px;height:132px;grid-row:1 / span 2}}
.optpick{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin:.1rem 0 .45rem}
.optpick>.tiny{margin-right:.15rem;font-weight:700}
.optchip{display:inline-flex;align-items:center;gap:.35rem;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:.28rem .7rem;font:inherit;font-size:.82rem;cursor:pointer;min-height:34px;transition:all .18s var(--ease,ease)}
.optchip b{display:inline-grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--g50);color:var(--g700);font-size:.75rem}
.optchip.on{border-color:var(--g600);background:var(--g50);box-shadow:0 0 0 2px color-mix(in srgb,var(--g600) 18%,transparent)}
.optchip.on b{background:var(--g600);color:#fff}
.ingr-chips{list-style:none;margin:.15rem 0 .4rem;padding:0;display:flex;flex-wrap:wrap;gap:.3rem}
.ingr-chips>li{font-size:.8rem;color:var(--muted);background:var(--g50);border-radius:8px;padding:.18rem .5rem}
.ingr-chips>li.orpick{background:none;padding:0;display:inline-flex;flex-wrap:wrap;align-items:center;gap:.25rem}
.orchip{border:1px dashed var(--line);background:var(--surface);color:var(--muted);border-radius:8px;padding:.18rem .5rem;font:inherit;font-size:.8rem;cursor:pointer;min-height:30px}
.orchip.on{border-style:solid;border-color:var(--g600);color:var(--ink);background:var(--g50);font-weight:600}
.orpick .or{font-size:.72rem;color:var(--muted);font-style:italic}
html[data-theme=dark] .optchip b{color:var(--lime)}
html[data-theme=dark] .optchip.on b{background:var(--lime);color:#0B1A12}

/* ===== R1: diet chart builder ===== */
.mealrow .opttabs{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0}
.mealrow .opttabs .optchip{min-height:32px}
.mealrow .opt-panel{border:1px solid var(--line);border-radius:12px;padding:.6rem;margin:.35rem 0;background:color-mix(in srgb,var(--g50) 45%,var(--surface))}
.foodchip .src{font-size:.68rem;font-weight:700;letter-spacing:.03em;border-radius:6px;padding:.05rem .3rem;margin-left:.3rem;background:var(--g100);color:var(--g800)}
.foodchip .src.custom{background:var(--o50);color:var(--o700)}
.foodchip .swaps{display:inline-flex;flex-wrap:wrap;gap:.2rem;margin-left:.3rem}
.foodchip .swaps .chip{font-size:.75rem;padding:.05rem .4rem}
.foodchip.check{outline:2px dashed var(--o500);outline-offset:1px}
.quickfoods{display:flex;flex-wrap:wrap;gap:.3rem;margin:.35rem 0}
.quickfoods .qf{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.2rem .6rem;font:inherit;font-size:.78rem;cursor:pointer;min-height:30px}
.quickfoods .qf .star{color:var(--o600);margin-right:.2rem}
.quickfoods .lbl{font-size:.72rem;color:var(--muted);align-self:center;margin-right:.1rem}
.fooditem .fav{margin-left:auto;border:0;background:none;font-size:1.05rem;color:var(--muted);cursor:pointer;padding:.2rem .4rem}
.fooditem .fav.on{color:var(--o600)}
.paste-prev{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:.5rem;margin:.5rem 0}
.paste-prev .pm{padding:.4rem .2rem;border-bottom:1px solid var(--line)}
.paste-prev .pm:last-child{border-bottom:0}
.paste-prev .pm .f{font-size:.78rem;color:var(--muted)}
.paste-prev .pm .f .gwarn{display:inline;color:var(--o700);font-weight:700}
.paste-unmatched{font-size:.8rem;background:var(--o50);border-radius:10px;padding:.5rem .7rem}
.help-i{display:inline-grid;place-items:center;width:1.2rem;height:1.2rem;border-radius:50%;border:1px solid var(--line);font-size:.7rem;font-weight:800;color:var(--muted);cursor:help;background:var(--surface);margin-left:.3rem;vertical-align:middle}
.foodpick .fooditem{flex-direction:row;align-items:center;gap:.4rem}
.foodchips .chip.foodchip{flex-direction:row;flex-wrap:wrap;min-height:0;min-width:0;border:0;scroll-snap-align:none;padding:.22rem .35rem .22rem .65rem;gap:.25rem;border-radius:14px;font-size:.84rem;color:var(--ink)}
.foodchips .chip.foodchip:hover{border-color:transparent}
.foodchips .chip.foodchip .iconbtn{min-width:28px;min-height:28px;width:28px;height:28px;font-size:.75rem;font-weight:800}
.foodchip .swaps .chip{display:inline-flex;flex-direction:row;align-items:center;min-height:0;min-width:0;border:1px dashed var(--g600);border-radius:10px;padding:.05rem .2rem .05rem .45rem;font-size:.76rem;font-weight:600;background:var(--surface)}
.quickfoods .qf{display:inline-flex;flex-direction:row;align-items:center;min-height:30px;min-width:0;height:auto;width:auto;border-radius:999px;color:var(--ink);font-weight:600}
.mealrow>.row.between{flex-wrap:nowrap;gap:.5rem}
.mealrow>.row.between>select{flex:1;min-width:0;max-width:260px}
.foodchips .chip.foodchip{max-width:100%;box-sizing:border-box}
.foodchip .swaps{max-width:100%;flex-wrap:wrap}
.foodchip .swaps .chip{max-width:100%;white-space:normal}
.quickfoods .qf{height:32px!important;min-height:32px!important;max-height:32px;line-height:1;padding:0 .65rem!important;white-space:nowrap}
.stickyact{flex-wrap:nowrap;align-items:center}
.moreact{position:relative;margin-left:auto}
.moreact>summary{list-style:none;cursor:pointer;letter-spacing:.1em}
.moreact>summary::-webkit-details-marker{display:none}
.moreact-menu{position:absolute;right:0;bottom:calc(100% + .4rem);display:flex;flex-direction:column;gap:.35rem;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.5rem;box-shadow:var(--sh,0 10px 30px rgba(0,0,0,.15));min-width:200px;z-index:30}
.moreact-menu .btn{justify-content:flex-start;width:100%}
@media(max-width:480px){.stickyact .btn{padding-left:.8rem;padding-right:.8rem}}
.paste-prev .pm .f>span{display:inline}
@media(max-width:480px){
  .foodpick .grams{width:62px}
  .foodchips .chip.foodchip{gap:.15rem;padding:.2rem .25rem .2rem .55rem;font-size:.8rem}
  .foodchips .chip.foodchip input{width:46px;padding:.1rem .2rem}
  .foodchips .chip.foodchip .iconbtn{min-width:26px;min-height:26px;width:26px;height:26px}
  .foodchip .src{margin-left:.1rem;padding:.02rem .25rem}
  .stickyact .btn{white-space:nowrap;font-size:.92rem}
  .mealrow .opttabs .optchip{padding:.25rem .55rem}
}
@media(max-width:480px){.foodpick .grams{width:68px;padding-left:.45rem;padding-right:.3rem}.foodchips .chip.foodchip [data-add-or]{width:auto;padding:0 .2rem}}

/* ===== R1 optimisation pass (only screens that were cramped / awkward) ===== */
/* client meals: day total on its own row; 7 days in one row on phones (no 2-line wrap) */
.daysum{flex-wrap:wrap}
.daysum .daysum-n{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:-.2rem}
.daysum .daysum-n .nutri{margin:0}
.daystrip[aria-label="Choose a day"]:has(>.dchip){display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;flex-wrap:nowrap}
.daystrip[aria-label="Choose a day"] .dchip{min-width:0;min-height:62px;border-radius:14px}
@media(min-width:700px){.daystrip[aria-label="Choose a day"]:has(>.dchip){grid-template-columns:repeat(7,minmax(0,76px))}}
@media(max-width:400px){.daysum .ring,.daysum svg:first-child{max-width:68px;max-height:68px}}
/* booking: date chips fill the row on phones instead of 3 chips + empty space */
@media(max-width:600px){.chips[aria-label="Choose a date"]{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;gap:.45rem;padding-bottom:.5rem;scrollbar-width:thin}.chips[aria-label="Choose a date"] .chip{flex:0 0 calc((100% - 4*.45rem)/4.5);min-width:0;scroll-snap-align:start}}
/* chat composer: the text box keeps its width next to 2 icons on small phones */
.composer textarea{min-width:0}
.composer textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:400px){.composer{gap:.3rem;padding:.45rem}.composer .attach{min-width:38px;width:38px}}
/* staff client header: no dangling "•" when the line wraps on phones */
@media(max-width:480px){.ch-sub .dot{display:none}.ch-sub{column-gap:.6rem}}
.daysum .daysum-n{flex-direction:column;align-items:flex-start;text-align:left}.daysum .daysum-n>.small{flex-basis:100%}
/* R1: new-version bar (main.js watchForUpdates) */
.update-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav-h,64px) + env(safe-area-inset-bottom) + 14px);z-index:1000;border:0;border-radius:999px;padding:.75rem 1.2rem;background:var(--g800,#14532d);color:#fff;font:inherit;font-weight:800;box-shadow:0 10px 30px -10px rgba(0,0,0,.45);cursor:pointer;max-width:calc(100vw - 2rem)}
@media(min-width:900px){.update-bar{bottom:24px}}
/* R1: board "Edit" jumps to the meal's options; the row flashes so the eye finds it */
.mp-item [data-edit-meal]{margin-right:.3rem}
.mp-opts{color:var(--o600,#c2410c);font-weight:800;font-size:.85em}
.mealrow{scroll-margin-top:84px}
.mealrow.flash{animation:mrflash 1.4s ease}
@keyframes mrflash{0%,40%{box-shadow:0 0 0 3px var(--o500,#f97316)}100%{box-shadow:0 0 0 0 transparent}}
@media(prefers-reduced-motion:reduce){.mealrow.flash{animation:none;outline:3px solid var(--o500,#f97316)}}
