    :root {
      --font-display: "Archivo", ui-sans-serif, system-ui, sans-serif;
      --font-body: "Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, sans-serif;
      --font-num: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;
      --red: #df5047;
      --cta: #edeef1;
      --cta-ink: #121317;
      --cta-press: #d3d6db;
      --protocol-accent: #14d8b4;
      --protocol-accent-ink: #121317;
      --accent: #eceef2;
      --log: #16a34a;
      --gold: var(--neutral-fill);
      --gold-soft: var(--neutral-soft);
      --surface-2: #1f1f24;
      --m-chest: #ec4f8c; --m-triceps: #ec4f8c; --m-shoulders: #a06bff;
      --m-back: #22b8d6; --m-biceps: #22b8d6; --m-forearms: #22b8d6;
      --m-quads: #46c36a; --m-hamstrings: #2fa85a; --m-glutes: #74c043; --m-calves: #1f9d57;
      --m-abs: #e0a53b; --m-traps: #8e7bff; --m-cardio: #8a8f98; --m-other: #9aa0aa;
      --bg: #0a0a0c;
      --surface: #16161a;
      --surface-soft: #24252a;
      --ink: #f3f4f6;
      --muted: #9aa0aa;
      --faint: #26272d;
      --green: var(--accent);
      --green-pressed: #c9ccd2;
      --green-soft: #24252a;
      --blue: var(--neutral-fill);
      --blue-soft: var(--neutral-soft);
      --amber: var(--neutral-fill);
      --amber-soft: var(--neutral-soft);
      --violet: var(--neutral-fill);
      --violet-soft: var(--neutral-soft);
      --coral: var(--neutral-fill);
      --coral-soft: var(--neutral-soft);
      --shadow: 0 16px 36px rgba(0, 0, 0, 0.5);
      --radius: 8px;
      --r-sm: 8px;
      --r-md: 12px;
      --r-lg: 16px;
      --r-pill: 999px;
      --elev-1: 0 16px 36px rgba(0, 0, 0, 0.5);
      --elev-2: 0 24px 70px rgba(0, 0, 0, 0.22);
      --elev-3: 0 8px 24px rgba(0, 0, 0, 0.2);
      --type-display: 22px;
      --type-heading: 17px;
      --type-item: 16px;
      --type-meta: 13px;
      --type-label: 11px;
      --lh-head: 1.2;
      --lh-body: 1.45;
      --pad-card: 16px;
      --gap-section: 16px;
      --nav-h: 88px;
      --action-primary-bg: var(--protocol-accent);
      --action-primary-ink: var(--protocol-accent-ink);
      --action-secondary-bg: #1f1f24;
      --action-secondary-ink: #f3f4f6;
      --action-secondary-border: #34353c;
      --action-tertiary-ink: #d3d6db;
      --selection-bg: var(--protocol-accent);
      --selection-border: var(--protocol-accent);
      --selection-ink: var(--protocol-accent-ink);
      --selection-accent: var(--protocol-accent);
      --data: var(--protocol-accent);
      --neutral-fill: #b9bdc5;
      --neutral-soft: #24252a;
      --positive: #16a34a;
      --negative: #df5047;
    }
    /* GIRL POWER edition — "Lover" pastel light theme (first pass; fine color polish via ChatGPT). */
    body.theme-girlpower{
      --red:#e8617a; --cta:#ff5ea8; --cta-ink:#ffffff; --cta-press:#ec4f97;
      --accent:#ff5ea8; --log:#3fc79a; --gold:#cf9b3c; --surface-2:#fbe6f3;
      --bg:#fdeef7; --surface:#ffffff; --surface-soft:#ffe6f3;
      --ink:#4a2f52; --muted:#9a7fa8; --faint:#f3d4e8;
      --green:#ff5ea8; --green-pressed:#ec4f97; --green-soft:#ffe1f0;
      --blue:#8aa6ff; --blue-soft:#eaf0ff; --amber:#cf9b3c; --amber-soft:#fbeede;
      --violet:#b48cff; --violet-soft:#f1e9ff; --coral:#ff8fb3; --coral-soft:#ffe6ee;
      --shadow:0 14px 32px rgba(214,140,196,0.22);
      --r-sm:8px; --r-md:12px; --r-lg:16px; --r-pill:999px;
      --elev-1:0 14px 32px rgba(214,140,196,0.22);
      --elev-2:0 24px 70px rgba(172,104,166,0.24);
      --elev-3:0 8px 24px rgba(172,104,166,0.2);
      --type-display:22px; --type-heading:17px; --type-item:16px; --type-meta:13px; --type-label:11px;
      --lh-head:1.2; --lh-body:1.45; --pad-card:16px; --gap-section:16px;
      --action-primary-bg:#ff5ea8; --action-primary-ink:#ffffff;
      --action-secondary-bg:#fff8fd; --action-secondary-ink:#4a2f52; --action-secondary-border:#efcfe4;
      --action-tertiary-ink:#7a546f; --selection-bg:#ffe4f1; --selection-border:#ffb4d7;
      --neutral-fill:#a98bb5; --neutral-soft:#f8e8f4; --positive:#2f9a76; --negative:#c95c75;
      background:var(--bg); color:var(--ink);
    }
    body.theme-girlpower .app-shell{ background:linear-gradient(180deg,#ffd9ec,#e8ddff 180px,rgba(253,238,247,0) 360px),var(--bg); }
    body.theme-girlpower .panel{ background:#ffffff; border-color:var(--faint); }
    body.theme-girlpower .bottom-nav{ background:rgba(255,255,255,0.94); border-top:1px solid var(--faint); }
    body.theme-girlpower .brand h1{ color:var(--accent); font-family:var(--font-display); font-weight:800; text-transform:none; letter-spacing:.02em; }
    body.theme-girlpower .water-row{ background:#fff6fc; border-color:var(--faint); }
    body.theme-girlpower .cal-bar{ background:#f6dcec; }
    body.theme-girlpower .ghost-wide{ background:#fde6f2; color:var(--accent); }
    body.theme-girlpower .secondary-wide{ background:#ffffff; }
    body.theme-girlpower .fi-step, body.theme-girlpower .fi-del{ background:#fde7f3; border-color:#f3cfe6; color:#b85a8e; }
    body.theme-girlpower .meal-block, body.theme-girlpower .ex-row, body.theme-girlpower .history-row, body.theme-girlpower .str-row{ border-color:var(--faint); }
    /* hardcoded near-white text → readable plum on the pastel bg */
    body.theme-girlpower .ex-row-name, body.theme-girlpower .row-title, body.theme-girlpower .fi-name, body.theme-girlpower h2, body.theme-girlpower h3, body.theme-girlpower .view-title h2, body.theme-girlpower .stat-value{ color:var(--ink); }
    body.theme-girlpower .icon-button,
    body.theme-girlpower .prototype-banner,
    body.theme-girlpower .time-option,
    body.theme-girlpower .pill-button,
    body.theme-girlpower .quick-chip,
    body.theme-girlpower .mini-stat,
    body.theme-girlpower .stat-card,
    body.theme-girlpower .secondary-wide,
    body.theme-girlpower .segment,
    body.theme-girlpower .goal-readout,
    body.theme-girlpower .program-picker,
    body.theme-girlpower .day-tab,
    body.theme-girlpower .small-button,
    body.theme-girlpower .food-result,
    body.theme-girlpower .manual-toggle,
    body.theme-girlpower .danger-wide,
    body.theme-girlpower .day-pill,
    body.theme-girlpower .preview-card,
    body.theme-girlpower .rp-target,
    body.theme-girlpower .rec-card,
    body.theme-girlpower .hist-card,
    body.theme-girlpower .react-chip,
    body.theme-girlpower .chat-card,
    body.theme-girlpower .nudge-chip,
    body.theme-girlpower .cg-input,
    body.theme-girlpower .status-chip,
    body.theme-girlpower .pe-day,
    body.theme-girlpower .mini-btn,
    body.theme-girlpower .pe-moveto,
    body.theme-girlpower .ci-cell{
      background:#fff8fd;
      border-color:#efcfe4;
      color:var(--ink);
    }
    body.theme-girlpower .coach-note{
      background:linear-gradient(180deg,#fff9fd,#eef3ff);
      border-color:#d8ddff;
    }
    body.theme-girlpower .coach-note span,
    body.theme-girlpower .rp-target,
    body.theme-girlpower .rp-target .ex-sug,
    body.theme-girlpower .macro-v,
    body.theme-girlpower .tp-name,
    body.theme-girlpower .preview-day .pd-l,
    body.theme-girlpower .wk-ttl,
    body.theme-girlpower .ex-name,
    body.theme-girlpower .wk-addex,
    body.theme-girlpower .hist-day,
    body.theme-girlpower .hist-lift span:first-child,
    body.theme-girlpower .crew-name,
    body.theme-girlpower .cp-ttl,
    body.theme-girlpower .chat-ttl,
    body.theme-girlpower .chat-bubble,
    body.theme-girlpower .cc-ttl,
    body.theme-girlpower .cg-title,
    body.theme-girlpower .pe-day-name,
    body.theme-girlpower .pe-lift-name,
    body.theme-girlpower .sg-in{
      color:var(--ink);
    }
    body.theme-girlpower .prototype-banner,
    body.theme-girlpower .nav-item,
    body.theme-girlpower .food-result span,
    body.theme-girlpower .food-hint,
    body.theme-girlpower .food-sub,
    body.theme-girlpower .macro-l,
    body.theme-girlpower .fi-serv,
    body.theme-girlpower .fi-macros,
    body.theme-girlpower .fi-qtytag,
    body.theme-girlpower .terms-gate p,
    body.theme-girlpower .terms-gate .terms-fine,
    body.theme-girlpower .legal-body p,
    body.theme-girlpower .legal-updated,
    body.theme-girlpower .legal-fine,
    body.theme-girlpower .kb-rank,
    body.theme-girlpower .kb-hint,
    body.theme-girlpower .chev,
    body.theme-girlpower .tp-sub,
    body.theme-girlpower .list-label,
    body.theme-girlpower .ex-row-meta,
    body.theme-girlpower .empty-line,
    body.theme-girlpower .preview-day .pd-r,
    body.theme-girlpower .ex-menu,
    body.theme-girlpower .ex-hint,
    body.theme-girlpower .set-grid-h,
    body.theme-girlpower .sg-prev,
    body.theme-girlpower .rec-card span,
    body.theme-girlpower .rec-last,
    body.theme-girlpower .hist-date,
    body.theme-girlpower .hist-sub,
    body.theme-girlpower .hist-lift span:last-child,
    body.theme-girlpower .crew-chev,
    body.theme-girlpower .crew-when,
    body.theme-girlpower .react-chip .rc-n,
    body.theme-girlpower .crew-sub,
    body.theme-girlpower .cp-meta,
    body.theme-girlpower .cp-last,
    body.theme-girlpower .crew-wk-count,
    body.theme-girlpower .chat-sub,
    body.theme-girlpower .chat-strip,
    body.theme-girlpower .chat-sys,
    body.theme-girlpower .chat-who,
    body.theme-girlpower .cc-tag,
    body.theme-girlpower .cc-sub,
    body.theme-girlpower .cg-sub,
    body.theme-girlpower .cg-or,
    body.theme-girlpower .pe-hint,
    body.theme-girlpower .pe-lift-meta,
    body.theme-girlpower .wk-dow,
    body.theme-girlpower .chart-axis{
      color:var(--muted);
    }
    body.theme-girlpower .legal-body h3{
      color:var(--ink);
    }
    body.theme-girlpower .time-option.active,
    body.theme-girlpower .quick-chip.green,
    body.theme-girlpower .quick-chip.blue,
    body.theme-girlpower .day-tab.active,
    body.theme-girlpower .day-pill.active{
      background:#ffe4f1;
      border-color:#ff9bca;
      color:#b92778;
    }
    body.theme-girlpower .pill-button,
    body.theme-girlpower .small-button.green,
    body.theme-girlpower .secondary-wide{
      border-color:#ff8bc2;
      color:#bf2f82;
    }
    body.theme-girlpower .bar,
    body.theme-girlpower .macro-bar,
    body.theme-girlpower .cal-bar,
    body.theme-girlpower .wk-bar-wrap{
      background:#f5d8ea;
    }
    body.theme-girlpower .meal-row,
    body.theme-girlpower .meal-block,
    body.theme-girlpower .recap-line,
    body.theme-girlpower .ex-row,
    body.theme-girlpower .preview-day,
    body.theme-girlpower .pchoice,
    body.theme-girlpower .crew-row,
    body.theme-girlpower .crew-wk,
    body.theme-girlpower .chat-head,
    body.theme-girlpower .chat-strip,
    body.theme-girlpower .chat-nudges,
    body.theme-girlpower .chat-composer,
    body.theme-girlpower .pe-lift{
      border-color:#efd3e7;
    }
    body.theme-girlpower .radio{
      border-color:#c9a9d5;
    }
    body.theme-girlpower .radio.on{
      border-color:var(--accent);
      background:radial-gradient(var(--accent) 45%,#fff8fd 50%);
    }
    body.theme-girlpower .wk-screen,
    body.theme-girlpower .ovl-screen,
    body.theme-girlpower .chat-screen{
      background:var(--bg);
      color:var(--ink);
    }
    body.theme-girlpower .wk-head,
    body.theme-girlpower .wk-foot,
    body.theme-girlpower .ovl-head,
    body.theme-girlpower .chat-composer{
      background:rgba(255,255,255,.96);
      border-color:#efd3e7;
    }
    body.theme-girlpower .wk-tmr{
      background:#f0e8ff;
      color:#7a54d8;
    }
    body.theme-girlpower .ex-card,
    body.theme-girlpower .sg-in,
    body.theme-girlpower .sg-chk{
      background:#fff8fd;
      border-color:#efcfe4;
      color:var(--ink);
    }
    body.theme-girlpower .sg-n{
      background:#f2e8ff;
      color:#7a54d8;
    }
    body.theme-girlpower .set-grid.done{
      background:rgba(63,199,154,.14);
    }
    body.theme-girlpower .set-grid.done .sg-n,
    body.theme-girlpower .sg-chk.on{
      background:var(--log);
      border-color:var(--log);
      color:#ffffff;
    }
    body.theme-girlpower .sg-add{
      background:#ffe4f1;
      color:#bf2f82;
    }
    body.theme-girlpower .wk-addex{
      background:#fff8fd;
      border-color:#efcfe4;
    }
    body.theme-girlpower .rest-pill,
    body.theme-girlpower .toast{
      background:#fff0f8;
      color:var(--ink);
      border:1px solid #efcfe4;
    }
    body.theme-girlpower .rp-skip{
      background:#ff5ea8;
      color:#ffffff;
    }
    body.theme-girlpower .rp-l{
      color:#9a7fa8;
      opacity:1;
    }
    body.theme-girlpower .rec-card{
      background:#ffe8ef;
    }
    body.theme-girlpower .rec-card strong,
    body.theme-girlpower .rec-pill{
      color:#b4376e;
    }
    body.theme-girlpower .rec-pill{
      background:#ffe8ef;
    }
    body.theme-girlpower .fi-step,
    body.theme-girlpower .fi-del{
      background:#fde7f3;
      border-color:#f3cfe6;
      color:#a94382;
    }
    body.theme-girlpower .fi-step:active,
    body.theme-girlpower .fi-del:active{
      background:#f9d7ea;
      border-color:#efb7d8;
      color:#8f2f68;
    }
    body.theme-girlpower .fi-qn{
      color:var(--ink);
    }
    body.theme-girlpower .danger-wide,
    body.theme-girlpower .mini-btn.danger{
      border-color:#f0b3bd;
      color:#c24d67;
    }
    body.theme-girlpower .manual-toggle{
      border-color:#cdb8ec;
      color:#7a54d8;
      background:#f6f0ff;
    }
    body.theme-girlpower .modal-backdrop{
      background:rgba(74,47,82,.30);
    }
    body.theme-girlpower .modal-sheet{
      background:#ffffff;
      color:var(--ink);
      box-shadow:var(--elev-2);
    }
    body.theme-girlpower input,
    body.theme-girlpower select,
    body.theme-girlpower textarea,
    body.theme-girlpower .meal-edit-name,
    body.theme-girlpower .chat-composer input,
    body.theme-girlpower .cg-input,
    body.theme-girlpower .pe-day-name,
    body.theme-girlpower .pe-moveto{
      background:#fff8fd;
      border-color:#efcfe4;
      color:var(--ink);
    }
    body.theme-girlpower input::placeholder,
    body.theme-girlpower textarea::placeholder{
      color:#b99fc4;
    }
    body.theme-girlpower .chat-bubble,
    body.theme-girlpower .nudge-chip,
    body.theme-girlpower .status-chip{
      background:#f7efff;
      border-color:#d8c7f4;
      color:var(--ink);
    }
    body.theme-girlpower .chat-msg.mine .chat-bubble{
      background:var(--cta);
      color:#ffffff;
    }
    body.theme-girlpower .chat-card{
      background:#fff8fd;
      border-color:#efcfe4;
    }
    body.theme-girlpower .chat-strip{
      background:#f8e8f4;
    }
    body.theme-girlpower .react-chip{
      background:#fff0f8;
      border-color:#f0cbe3;
    }
    body.theme-girlpower .react-chip.on{
      background:#ffe0ef;
      border-color:#ff9bca;
    }
    body.theme-girlpower .react-chip.on .rc-n,
    body.theme-girlpower .k-points{
      color:#2f9a76;
    }
    body.theme-girlpower .k-points.neg{
      color:#c95c75;
    }
    body.theme-girlpower .k-roast{
      color:#b5652c;
    }
    body.theme-girlpower .kb-row.is-you{
      background:#fff0f8;
    }
    body.theme-girlpower .wk-tgt{
      border-color:#c9a9d5;
    }
    body.theme-girlpower .ci-cell,
    body.theme-girlpower .wk-bar-wrap{
      background:#f8e8f4;
    }
