/* HealthHIT 1.3.0 online coaching (coaching.html) - builds on hh-pt.css. No overlays, nothing pinned to the bottom. */
.cm-free { all:unset; cursor:pointer; font-size:.74rem; font-weight:800; color:#c8c8d0; padding:7px 10px; border-radius:10px; border:1px solid var(--pt-line); background:var(--pt-card); }
.cm-coach { display:flex; align-items:center; gap:10px; }
.cm-avatar { width:40px; height:40px; border-radius:50%; object-fit:cover; background:#222; border:2px solid var(--pt-red); flex:none; display:flex; align-items:center; justify-content:center; font-weight:800; }
.cm-status { min-height:0; font-size:.82rem; font-weight:700; color:#9be7b5; margin:0 0 8px; }
.cm-status.err { color:#ff8a94; }
.cm-status:empty { margin:0; }
.cm-in { width:100%; box-sizing:border-box; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); color:#fff; border-radius:12px; padding:11px 12px; font:inherit; font-size:1rem; margin:4px 0 10px; }
textarea.cm-in { min-height:72px; resize:vertical; }
.cm-lbl { display:block; font-size:.8rem; font-weight:700; color:#c8c8d0; }
.cm-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:0 10px; }
.cm-grid3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:0 8px; }
.cm-scale { display:flex; gap:6px; margin:4px 0 12px; }
.cm-scale button { all:unset; cursor:pointer; flex:1; text-align:center; padding:9px 0; border-radius:10px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); font-weight:800; }
.cm-scale button.on { background:var(--pt-red); border-color:var(--pt-red); }
.cm-scale-h { display:flex; justify-content:space-between; font-size:.8rem; font-weight:700; color:#c8c8d0; }
.cm-scale-h i { font-style:normal; color:var(--pt-dim); font-weight:600; }
.cm-yn { display:flex; gap:6px; margin:4px 0 10px; }
.cm-yn button { all:unset; cursor:pointer; padding:7px 16px; border-radius:10px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); font-weight:800; }
.cm-yn button.on { background:var(--pt-red); border-color:var(--pt-red); }
.cm-q { font-size:.88rem; margin:8px 0 2px; }
.cm-badge { display:inline-block; font-size:.7rem; font-weight:800; padding:3px 8px; border-radius:20px; background:rgba(51,209,118,.16); color:#7ff0a8; }
.cm-badge.wait { background:rgba(255,190,36,.15); color:#ffd36b; }
.cm-msgs { display:flex; flex-direction:column; gap:6px; margin:0 0 10px; }
.cm-msg { max-width:82%; padding:8px 11px; border-radius:14px; font-size:.92rem; line-height:1.35; white-space:pre-wrap; word-wrap:break-word; }
.cm-msg.me { align-self:flex-end; background:var(--pt-red); color:#fff; border-bottom-right-radius:4px; }
.cm-msg.them { align-self:flex-start; background:rgba(255,255,255,.08); border-bottom-left-radius:4px; }
.cm-msg small { display:block; font-size:.66rem; opacity:.7; margin-top:2px; }
.cm-send { display:flex; gap:8px; align-items:flex-end; }
.cm-send textarea { flex:1; margin:0; min-height:44px; }
.cm-steps { display:flex; gap:4px; margin:0 0 10px; }
.cm-steps span { flex:1; height:4px; border-radius:4px; background:rgba(255,255,255,.12); }
.cm-steps span.on { background:var(--pt-red); }
.cm-week { border-left:3px solid rgba(255,255,255,.12); padding-left:10px; margin:0 0 12px; }
.cm-week.now { border-left-color:var(--pt-red); }
.cm-day { display:flex; gap:8px; font-size:.86rem; padding:3px 0; }
.cm-day b { width:34px; flex:none; color:#c8c8d0; }
.cm-day.today b { color:#ff8a94; }
.cm-day .done { color:#7ff0a8; }
.cm-photos { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin:4px 0 10px; }
.cm-photo { position:relative; border-radius:12px; border:1px dashed rgba(255,255,255,.25); aspect-ratio:3/4; display:flex; align-items:center; justify-content:center; font-size:.76rem; color:#c8c8d0; overflow:hidden; cursor:pointer; text-align:center; }
.cm-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cm-photo input { display:none; }
.cm-terms { font-size:.8rem; color:#c8c8d0; max-height:220px; overflow:auto; background:rgba(0,0,0,.25); border-radius:10px; padding:8px 10px; margin:0 0 10px; }
.cm-chk { display:flex; gap:10px; align-items:flex-start; font-size:.88rem; margin:0 0 10px; }
.cm-chk input { width:22px; height:22px; flex:none; accent-color:var(--pt-red); }
.cm-link { all:unset; cursor:pointer; color:#ff8a94; font-weight:700; font-size:.86rem; }
.cm-dot[hidden]{display:none!important}
.cm-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#ffbe24; margin-left:4px; vertical-align:middle; }
.cm-target { display:flex; gap:6px; flex-wrap:wrap; }
.cm-target span { background:rgba(255,255,255,.06); border:1px solid var(--pt-line); padding:6px 9px; border-radius:10px; font-size:.82rem; font-weight:700; }
#cTabs[hidden],#cFree[hidden],.cm-free[hidden]{display:none!important}
/* 1.3.1: tier picker (only shown when more than one tier is active) + per-tier hidden tabs */
#cTabs button[hidden]{display:none!important}
.cm-tiers{display:flex;flex-direction:column;gap:8px;margin:8px 0 12px}
.cm-tier{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid rgba(127,127,127,.35);border-radius:12px;cursor:pointer}
.cm-tier.on{border-color:var(--accent,#e53935);box-shadow:0 0 0 1px var(--accent,#e53935) inset}
.cm-tier input{margin-top:3px}
.cm-tier b{display:block}
.cm-tier small{display:block;opacity:.75;margin-top:2px}

/* 1.3.4 Today: meals (tick / Swap inline) + Next line */
.cm-next { margin:10px 0 0; font-size:.86rem; color:#c8c8d0; }
.cm-count { float:right; font-size:.8rem; font-weight:800; color:#7ff0a8; }
.cm-ml { display:flex; align-items:center; gap:8px; padding:9px 0; border-top:1px solid var(--pt-line); }
.cm-ml:first-of-type { border-top:none; }
.cm-mt { width:44px; flex:none; font-size:.8rem; font-weight:700; color:#9aa0ab; }
.cm-mn { flex:1; min-width:0; } .cm-mn b { display:block; font-size:.92rem; } .cm-mn small { color:#9aa0ab; font-size:.78rem; }
.cm-ml.on .cm-mn b { color:#7ff0a8; }
.cm-sw { all:unset; cursor:pointer; font-size:.78rem; font-weight:800; padding:7px 11px; border-radius:99px; background:rgba(255,255,255,.08); }
.cm-tk { all:unset; cursor:pointer; width:30px; height:30px; flex:none; border-radius:50%; border:2px solid rgba(255,255,255,.3); display:flex; align-items:center; justify-content:center; font-weight:900; color:#06210f; }
.cm-tk.on { background:#33d176; border-color:#33d176; }
.cm-swap { background:rgba(255,255,255,.04); border:1px solid var(--pt-line); border-radius:12px; padding:10px; margin:0 0 8px; }
.cm-fform { display:grid; gap:6px; margin:8px 0; }
.cm-glance { display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; font-size:.82rem; color:#c8c8d0; }

/* 1.3.5 Today: checklist, foods under meals, Next meal, meals open in place, filling bars, reminders switch */
.cm-today { padding:10px 12px; }
.cm-th { display:flex; justify-content:space-between; align-items:baseline; font-size:.9rem; }
.cm-th span { font-size:.8rem; font-weight:800; color:#c8c8d0; }
.cm-tbar { height:4px; border-radius:99px; background:rgba(255,255,255,.08); margin:6px 0 8px; overflow:hidden; }
.cm-tbar > i { display:block; height:100%; background:var(--pt-green); border-radius:99px; transition:width .25s; }
.cm-chk2 { display:flex; flex-wrap:wrap; gap:6px; }
.cm-ci { all:unset; cursor:pointer; display:inline-flex; align-items:center; gap:5px; font-size:.76rem; font-weight:700; padding:5px 9px 5px 5px; border-radius:99px; background:rgba(255,255,255,.05); border:1px solid var(--pt-line); color:#e4e4ea; }
.cm-ci i { font-style:normal; width:16px; height:16px; border-radius:50%; border:1.5px solid rgba(255,255,255,.35); display:flex; align-items:center; justify-content:center; font-size:.62rem; font-weight:900; color:#06210f; }
.cm-ci.on { color:#9aa0ab; }
.cm-ci.on i { background:var(--pt-green); border-color:var(--pt-green); }
.cm-mn { all:unset; cursor:pointer; display:block; flex:1; min-width:0; -webkit-tap-highlight-color:transparent; }
.cm-fl { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis; color:#9aa0ab; font-size:.76rem; line-height:1.3; margin:1px 0 2px; }
.cm-car { font-style:normal; opacity:.7; margin-left:2px; }
.cm-nx { font-style:normal; display:inline-block; vertical-align:2px; margin-left:4px; font-size:.62rem; font-weight:900; letter-spacing:.03em; text-transform:uppercase; padding:2px 6px; border-radius:99px; background:var(--pt-red); color:#fff; }
.cm-ml.next { border:1.5px solid var(--pt-red); border-radius:12px; padding:9px 8px; margin:2px -4px; background:rgba(255,71,87,.07); box-shadow:0 0 0 3px rgba(255,71,87,.08); }
.cm-ml.next + .cm-ml, .cm-ml.next + .cm-mx + .cm-ml { border-top:none; }
.cm-ml.next .cm-mt { color:#ff8a94; }
.cm-ml.on .cm-mt, .cm-ml.on .cm-mn, .cm-ml.on .cm-sw { opacity:.5; }
.cm-ml.on .cm-mn b { color:#c8c8d0; text-decoration:none; }
.cm-mx { background:rgba(255,255,255,.035); border:1px solid var(--pt-line); border-radius:12px; padding:6px 10px 8px; margin:0 0 8px 52px; }
.cm-fd { display:flex; justify-content:space-between; gap:10px; padding:5px 0; border-top:1px solid var(--pt-line); font-size:.82rem; }
.cm-fd:first-child { border-top:none; }
.cm-fd small { display:block; color:#9aa0ab; font-size:.72rem; font-weight:600; }
.cm-fd .k { text-align:right; font-weight:700; white-space:nowrap; }
.cm-fd.tot { font-weight:800; }
.cm-cn { margin:6px 0 0; font-size:.8rem; color:#e4e4ea; background:rgba(255,190,36,.08); border-left:3px solid var(--pt-amber); padding:6px 8px; border-radius:6px; }
.cm-bars { margin:10px 0 0; padding-top:10px; border-top:1px solid var(--pt-line); }
.cm-bar { margin:0 0 8px; }
.cm-bh { display:flex; justify-content:space-between; font-size:.78rem; color:#c8c8d0; font-weight:700; margin-bottom:4px; }
.cm-bh b { color:#fff; }
.cm-bt { height:7px; border-radius:99px; background:rgba(255,255,255,.08); overflow:hidden; }
.cm-bt > i { display:block; height:100%; border-radius:99px; background:var(--pt-red); transition:width .3s; }
.cm-bar.p .cm-bt > i { background:#5c9dff; }
.cm-bar.over .cm-bt > i { background:var(--pt-amber); }
.cm-tsub { font-size:.74rem; color:#9aa0ab; margin-top:2px; line-height:1.4; }
.cm-rem { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:10px 0 0; padding-top:8px; border-top:1px solid var(--pt-line); font-size:.8rem; color:#c8c8d0; font-weight:700; }
.cm-lead { all:unset; cursor:pointer; color:#ff8a94; font-weight:700; margin-left:4px; }
.pt-sw.cm-swi { width:40px; height:24px; }
.pt-sw.cm-swi span::after { width:18px; height:18px; }
.pt-sw.cm-swi input:checked + span::after { transform:translateX(16px); }
@keyframes cmFlash { 0%,40% { box-shadow:0 0 0 3px rgba(255,71,87,.55); background:rgba(255,71,87,.16); } 100% { box-shadow:0 0 0 0 rgba(255,71,87,0); } }
.cm-flash { animation:cmFlash 2s ease-out; border-radius:12px; }
/* 1.4.1 Plan tab: Week | Month, day cards that open in place, compact weeks below. Dark / red, no overlays. */
.pl-tog { display:flex; gap:4px; padding:4px; margin:0 0 12px; border-radius:14px; background:var(--pt-card); border:1px solid var(--pt-line); }
.pl-tog button { all:unset; cursor:pointer; flex:1; text-align:center; padding:9px 0; border-radius:10px; font-weight:800; font-size:.92rem; color:#c8c8d0; }
.pl-tog button.on { background:var(--pt-red); color:#fff; }
.pl-wh { display:flex; align-items:baseline; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.pl-wh h2 { margin:0; }
.pl-cnt { font-size:.8rem; color:var(--pt-dim); margin:2px 0 10px; }
.pl-sec { margin:16px 4px 8px; font-size:.78rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--pt-dim); }
.pl-day { border:1px solid rgba(255,71,87,.28); background:linear-gradient(90deg, rgba(255,71,87,.10), rgba(255,255,255,.03) 55%); border-radius:14px; margin:0 0 8px; overflow:hidden; }
.pl-day.today { border-color:var(--pt-red); box-shadow:0 0 0 1px var(--pt-red) inset; }
.pl-day.done { border-color:rgba(51,209,118,.45); background:linear-gradient(90deg, rgba(51,209,118,.10), rgba(255,255,255,.03) 55%); }
.pl-day.past:not(.done) { opacity:.72; }
.pl-hd, .pl-wkh { all:unset; cursor:pointer; box-sizing:border-box; display:flex; align-items:center; gap:10px; width:100%; padding:11px 12px; }
.pl-wd { width:42px; flex:none; display:flex; flex-direction:column; line-height:1.15; }
.pl-wd b { font-size:1rem; }
.pl-wd small { font-size:.7rem; color:var(--pt-dim); font-weight:700; }
.pl-day.today .pl-wd b { color:#ff8a94; }
.pl-mid { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.pl-t { font-weight:800; font-size:1rem; color:#fff; }
.pl-sub { font-size:.78rem; color:var(--pt-dim); font-weight:600; overflow:hidden; text-overflow:ellipsis; }
.pl-chev { flex:none; color:#ff8a94; font-size:.9rem; }
.pl-tick { flex:none; display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:rgba(51,209,118,.2); color:#7ff0a8; font-weight:900; font-size:.85rem; }
.pl-now { flex:none; font-size:.68rem; font-weight:900; padding:3px 8px; border-radius:20px; background:var(--pt-red); color:#fff; text-transform:uppercase; letter-spacing:.04em; }
.pl-miss { flex:none; font-size:.66rem; font-weight:800; color:var(--pt-dim); }
.pl-start { margin:0 12px 12px !important; width:auto !important; }
.pl-exs { list-style:none; margin:0; padding:0 12px 10px; counter-reset:ple; border-top:1px solid var(--pt-line); }
.pl-ex { counter-increment:ple; display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid var(--pt-line); }
.pl-ex:last-child { border-bottom:none; }
.pl-ex::before { content:counter(ple); flex:none; width:22px; height:22px; border-radius:50%; background:rgba(255,71,87,.16); color:#ff8a94; font-size:.72rem; font-weight:900; display:flex; align-items:center; justify-content:center; }
.pl-ex.mob::before { background:rgba(255,255,255,.08); color:#c8c8d0; }
.pl-exl { flex:1; min-width:0; display:flex; flex-direction:column; }
.pl-exn { font-weight:700; font-size:.92rem; }
.pl-exs1 { font-size:.8rem; color:#ffb3ba; font-weight:700; }
.pl-ex.mob .pl-exs1 { color:var(--pt-dim); }
.pl-ss { font-style:normal; font-size:.66rem; font-weight:900; background:#ffbe24; color:#111; border-radius:6px; padding:1px 5px; margin-right:6px; }
.pl-ex .pt-howbox { flex-basis:100%; }
.pl-rest { display:flex; align-items:center; gap:10px; padding:6px 12px; margin:0 0 6px; font-size:.82rem; color:var(--pt-dim); border-radius:10px; background:rgba(255,255,255,.025); }
.pl-rest b { width:42px; flex:none; color:#8a8f9a; font-weight:800; }
.pl-rest .pl-dt { width:46px; flex:none; font-size:.72rem; }
.pl-rest.today { border:1px dashed rgba(255,71,87,.6); color:#c8c8d0; }
.pl-wk { padding:0 !important; overflow:hidden; }
.pl-wk.open { padding-bottom:4px !important; }
.pl-wk .pl-day, .pl-wk .pl-rest { margin-left:10px; margin-right:10px; }
.pl-wk .pl-sub { white-space:normal; }
/* Month */
.pl-grid { display:grid; grid-template-columns:repeat(7, 1fr); gap:4px; margin-top:4px; }
.pl-gh { margin-top:10px; }
.pl-gh span { text-align:center; font-size:.7rem; font-weight:800; color:var(--pt-dim); }
.pl-cell { all:unset; cursor:pointer; position:relative; box-sizing:border-box; min-height:54px; padding:4px 2px 3px; border-radius:10px; background:rgba(255,255,255,.03); border:1px solid transparent; display:flex; flex-direction:column; align-items:center; gap:2px; }
.pl-cell .pl-n { font-size:.84rem; font-weight:800; color:#8a8f9a; }
.pl-cell.tr { background:rgba(255,71,87,.10); }
.pl-cell.tr .pl-n { color:#fff; }
.pl-cell.past { opacity:.6; }
.pl-cell.today { border-color:var(--pt-red); opacity:1; }
.pl-cell.sel { background:rgba(255,71,87,.32); border-color:#ff8a94; opacity:1; }
.pl-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--pt-red); }
.pl-bp { font-size:.6rem; font-weight:800; color:#ffb3ba; max-width:100%; overflow:hidden; white-space:nowrap; }
.pl-cell .pl-ok { position:absolute; top:2px; right:4px; font-size:.7rem; font-weight:900; color:#7ff0a8; }
.pl-key { display:flex; gap:14px; margin-top:10px; font-size:.72rem; color:var(--pt-dim); font-weight:700; }
.pl-key span { display:flex; align-items:center; gap:5px; }
.pl-key .pl-ok { color:#7ff0a8; }
.pl-kt { display:inline-block; width:12px; height:12px; border-radius:4px; border:1px solid var(--pt-red); }
.pl-seld { padding:0 !important; overflow:hidden; }
.pl-seld > .pl-t, .pl-seld > p { padding:0 14px; }
.pl-seld > .pl-t { padding-top:12px; }
.pl-seld > p { padding-bottom:12px; }
.pl-seld .pl-day { margin:0; border:none; border-radius:0; background:none; box-shadow:none; }
.pl-dtl { padding:12px 12px 10px; }
/* 1.4.6 daily check: the Save button shows what happened (red = to save, green = saved, amber line = unsaved / not sent yet) */
.pt-btn.cm-dsave { transition: background .25s, color .25s; }
.pt-btn.cm-dsave.ok { background:#1f9d55; color:#fff; }
.pt-btn.cm-dsave.wait { background:#3a2a0a; color:#ffd25e; box-shadow:inset 0 0 0 1.5px #ffbe24; }
.pt-btn.cm-dsave[disabled] { opacity:.75; }
.cm-dline { font-size:.85rem; font-weight:700; margin:8px 2px 0; line-height:1.35; }
.cm-dline.ok { color:#7cf0ad; } .cm-dline.warn { color:#ffd25e; } .cm-dline.err { color:#ff8a94; } .cm-dline.mut { color:#9a9aa6; font-weight:500; }
/* 1.4.8: three options (what's included), purchases, chat "not sent" warning */
.cm-opt em.cm-price{display:block;font-style:normal;font-weight:700;color:var(--accent,#e53935);margin-top:2px}
.cm-opt small.cm-kind{opacity:.85}
.cm-inc{margin:6px 0 0;padding-left:18px;font-size:.92em;line-height:1.35}
.cm-inc li{margin:2px 0}
.cm-purs{display:flex;flex-direction:column;gap:8px}
.cm-pur{padding:8px 10px;border:1px solid rgba(127,127,127,.35);border-radius:10px}
.cm-pur b,.cm-pur small{display:block}.cm-pur small{opacity:.8;margin-top:2px}
.cm-extra{padding:8px 0;border-bottom:1px solid rgba(127,127,127,.25)}.cm-extra:last-of-type{border-bottom:0}
.cm-extra .pt-btn{margin-top:8px}
.cm-msg.unsent{border:1px solid var(--accent,#e53935)}
.cm-unsent{margin-top:6px;padding:6px 8px;border-radius:8px;background:rgba(229,57,53,.14);color:inherit;font-size:.9em;text-align:left}
.cm-unsent b{display:block;color:#ff6b66}.cm-unsent span{display:block}
.cm-unsent-btns{display:flex!important;gap:8px;margin-top:6px;flex-wrap:wrap}.cm-unsent-btns .pt-btn{padding:6px 12px;min-height:36px}
.cm-sending{display:block;opacity:.6}
/* 1.4.8: an unsent message of mine = dark bubble with a red edge, so the warning reads clearly (not red on red) */
.cm-msg.me.unsent{background:#1c1c20;color:#fff;border:1.5px solid #ff4d4f}
.cm-msg.me.unsent .cm-unsent{background:rgba(255,77,79,.16)}
.cm-msg.me.unsent .cm-unsent b{color:#ff8a80}
/* 1.4.22: large font / display size (130 %): tab labels may wrap instead of being clipped; "Coached by George" stays on one line or two */
#cTabs button { white-space:normal; overflow-wrap:break-word; line-height:1.15; padding:9px 2px; min-width:0; }
.cm-coach > span:last-child { min-width:0; overflow-wrap:break-word; }
@media (max-width:330px) {
  #cTabs button { font-size:.78rem; padding:8px 1px; }
  .pt-head { gap:8px; }
  #cTitle { font-size:1.05rem; }
  .cm-coach { gap:7px; }
  .cm-avatar { width:30px; height:30px; font-size:.8rem; }
  .cm-free { padding:6px 7px; font-size:.7rem; }
}

/* 1.4.28: Plan opened from the bottom-bar Train - Today on top (+ Free training) */
.pl-todaytop { padding:12px 0 6px; border:1px solid rgba(255,71,87,.45); }
.pl-todaytop .pl-wh { padding:0 12px; }
.pl-todaytop .pl-tt { display:flex; flex-direction:column; gap:2px; padding:4px 12px 10px; }
.pl-todaytop.done { border-color:rgba(62,224,138,.5); }
.pl-todaytop .pl-free { margin:0 12px 8px !important; width:auto !important; min-height:48px; }
html.hh-ct .pl-todaytop { border-color:rgba(142,240,180,.55); }

/* week meals (unbuilt): Plan › Meals - the meal plan day by day (js/hh-weekmeals.js). Same look as the week list; taps >= 44 px. */
.wm-card { padding-left:12px !important; padding-right:12px !important; }
.wm-note { font-size:.86rem; line-height:1.35; margin:6px 0 4px; color:#e6e8ee; }
.wm-tg { font-size:.8rem; font-weight:700; color:var(--pt-dim); margin:0 0 10px; }
.wm-prepbtn { min-height:48px; margin:0 0 10px !important; display:flex !important; align-items:center; justify-content:center; gap:8px; flex-wrap:wrap; }
.wm-cnt { font-size:.8rem; font-weight:700; opacity:.85; }
.wm-day { border:1px solid var(--pt-line); background:rgba(255,255,255,.03); border-radius:14px; margin:0 0 8px; overflow:hidden; }
.wm-day.today { border-color:var(--pt-red); }
.wm-hd { min-height:56px; }
.wm-hd .pl-sub { white-space:normal; }
.wm-mls { border-top:1px solid var(--pt-line); padding:2px 10px 6px; }
.wm-ml { padding:8px 0; border-bottom:1px solid var(--pt-line); }
.wm-ml:last-child { border-bottom:none; }
.wm-mh { display:flex; align-items:center; gap:6px 8px; flex-wrap:wrap; }
.wm-mt { font-weight:900; color:#fff; }
.wm-mn { flex:1 1 8.5em; min-width:0; display:flex; flex-direction:column; }
.wm-mn b { font-size:.98rem; overflow-wrap:break-word; }
.wm-mn small { font-size:.76rem; color:var(--pt-dim); font-weight:700; }
.wm-pp { all:unset; cursor:pointer; box-sizing:border-box; flex:none; display:inline-flex; align-items:center; gap:6px; min-height:44px; min-width:44px; padding:6px 12px 6px 8px; border-radius:999px;
  background:rgba(255,255,255,.08); border:1.5px solid rgba(255,255,255,.22); font-size:.82rem; font-weight:800; color:#e6e8ee; }
.wm-pp i, .wm-pr i { flex:none; width:22px; height:22px; border-radius:50%; border:2px solid rgba(255,255,255,.5); box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; font-style:normal; font-weight:900; font-size:.8rem; }
.wm-pp.on, .wm-pr.on { border-color:rgba(51,209,118,.7); background:rgba(51,209,118,.16); color:#bff5d4; }
.wm-pp.on i, .wm-pr.on i { background:#33d176; border-color:#33d176; color:#06210f; }
.wm-fds { list-style:none; margin:4px 0 0; padding:0; }
.wm-fds li { display:flex; gap:8px; align-items:center; font-size:.84rem; padding:3px 0; }
.wm-fds .n { flex:1; min-width:0; overflow-wrap:break-word; }
.wm-fds .a { flex:none; max-width:45%; display:flex; flex-direction:column; align-items:flex-end; text-align:right; line-height:1.2; }
.wm-fds .a small { font-size:.74rem; color:var(--pt-dim); font-weight:600; }
.wm-none { margin:4px 0 0; font-size:.82rem; }
.wm-wk .wm-day { margin-left:10px; margin-right:10px; }
/* Meal prep page */
.wm-back { min-height:44px; margin:0 0 10px !important; }
.wm-sum { font-size:.95rem; margin:8px 0 0; }
.wm-bar { height:8px !important; }
.wm-hint { font-size:.8rem; margin:0 0 6px; }
.wm-pd { margin:10px 0 0; }
.wm-pdh { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:4px 2px; }
.wm-pdh b { flex:1; min-width:0; font-size:.95rem; }
.wm-pdh span { font-size:.8rem; font-weight:800; color:var(--pt-dim); }
.wm-pd.done .wm-pdh span { color:#7ff0a8; }
.wm-all { all:unset; cursor:pointer; box-sizing:border-box; min-height:44px; padding:0 12px; display:inline-flex; align-items:center; border-radius:999px; font-size:.8rem; font-weight:800; color:#ff8a94; border:1px solid rgba(255,255,255,.18); }
.wm-pr { all:unset; cursor:pointer; box-sizing:border-box; width:100%; display:flex; align-items:center; gap:10px; min-height:52px; padding:8px 12px; margin:0 0 6px; border-radius:12px; background:rgba(255,255,255,.04); border:1.5px solid rgba(255,255,255,.14); }
.wm-prn { flex:1; min-width:0; display:flex; flex-direction:column; }
.wm-prn b { font-size:.95rem; overflow-wrap:anywhere; }
.wm-prn small { font-size:.76rem; color:var(--pt-dim); font-weight:700; }
.wm-prs { flex:none; font-size:.78rem; font-weight:800; color:#ffd25e; }
.wm-pr.on .wm-prs { color:#7ff0a8; }
.wm-bt { margin:14px 0 0; border-top:1px solid var(--pt-line); }
.wm-bth { all:unset; cursor:pointer; box-sizing:border-box; width:100%; min-height:52px; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 2px; }
.wm-bth span:first-child { display:flex; flex-direction:column; }
.wm-bth small { font-size:.76rem; color:var(--pt-dim); font-weight:600; }
.wm-btl { list-style:none; margin:0; padding:0 2px; }
.wm-btl li { display:flex; gap:10px; align-items:baseline; padding:6px 0; border-bottom:1px solid var(--pt-line); font-size:.86rem; }
.wm-btl li:last-child { border-bottom:none; }
.wm-btl .n { flex:1; min-width:0; display:flex; flex-direction:column; overflow-wrap:anywhere; }
.wm-btl .n small { font-size:.74rem; color:var(--pt-dim); font-weight:600; }
.wm-btl .a { flex:none; max-width:48%; text-align:right; font-weight:800; }
/* Month: the selected day's meals in one line */
.wm-mline { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 12px 12px; padding:10px 0 0; border-top:1px solid var(--pt-line); font-size:.86rem; }
.wm-mline > span { flex:1; min-width:150px; }
.wm-mline small { display:block; font-size:.74rem; color:var(--pt-dim); }
.wm-mline .wm-mgo { min-height:44px; padding:8px 16px; }
