/* ======================================================================
   BioLinked site theme — the mpauldino palette, applied site-wide.

   /mpauldino/ is the reference standard, so this sheet normalises every other
   page onto its exact tokens and typography: #7A6530 gold, #f5f5f5 ground,
   #000 text, Montserrat body with Cormorant Garamond display headings.

   Most client pages already ship these values in their own :root — this layer
   exists so the handful that drifted (protocols/index.html was on #7A6530) and
   any page built from an older template land on the same look, and so a future
   restyle is one file rather than 100.

   Written at html[data-theme] specificity so it wins over each page's own CSS
   even when that CSS sits in the body, which it does on client pages.
   Light only — there is no dark palette and no theme toggle.
   ====================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400&family=Montserrat:wght@300;400;500;600;700&display=swap');

html,
html[data-theme]{
  --bl-body:'Montserrat',system-ui,-apple-system,sans-serif;
  --bl-display:'Cormorant Garamond',Georgia,serif;

  /* --- mpauldino's palette, verbatim --- */
  --bg:#f5f5f5;
  --bg-alt:#f5f5f5;
  --head:#fafafa;
  --surface:#ffffff;
  --line:rgba(0,0,0,0.14);
  --line-soft:#f0f0f0;
  --zebra:#fafafa;
  --hover:rgba(122,101,48,0.04);
  --text:#000000;
  --muted:#4a4a44;
  --accent:#7A6530;
  --accent-2:#8F7940;
  --accent-hover:#5f4f26;
  --accent-dim:rgba(122,101,48,0.10);
  --accent-line:rgba(122,101,48,0.35);
  --on-accent:#ffffff;
  --shadow:0 1px 2px rgba(0,0,0,0.04),0 2px 10px rgba(0,0,0,0.05);

  /* tooltips */
  --tip-bg:#1a1a1a;
  --tip-border:transparent;
  --tip-text:#ffffff;
  --tip-strong:#e9c66c;

  /* status colours */
  --green:#3a7a5a;--green-soft:rgba(90,138,90,0.12);--green-border:transparent;--green-text:#3a6b3a;
  --amber:#b97a1f;--amber-soft:rgba(185,122,31,0.12);--amber-border:rgba(185,122,31,0.40);
  --red:#b85555;--red-soft:rgba(194,85,85,0.14);--red-border:transparent;--red-text:#8a3c3c;
  --info:#3a6b8e;--info-soft:rgba(66,120,168,0.14);--info-border:transparent;--info-text:#2a5780;

  /* older token generations still in circulation, pointed at the same values */
  --gold:#7A6530;
  --gold-light:#8F7940;
  --gold-dim:rgba(122,101,48,0.10);
  --gold-border:rgba(122,101,48,0.35);
  --border:rgba(0,0,0,0.14);
  --c-head:#fafafa;
  --c-line:rgba(0,0,0,0.14);
  --c-well:#fafafa;
  --c-shadow:0 1px 2px rgba(0,0,0,0.04),0 2px 10px rgba(0,0,0,0.05);
  color-scheme:light;
}

/* ---- typography: Montserrat body, Cormorant for the display headings ---- */
html[data-theme] body{font-family:var(--bl-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;}
/* Only the masthead wordmark and the nav logo are serif. mpauldino renders
   .inv-number in Montserrat 21/700, so it is deliberately not listed here. */
html[data-theme] .inv-brand-name,
html[data-theme] .bl-nav-logo-main{font-family:var(--bl-display);}

/* ---- the shared site nav ---- */
html[data-theme] .bl-nav{background:#fff;border-bottom:1px solid #eaeaea;}
html[data-theme] .bl-nav-logo-sub{color:var(--accent);}
html[data-theme] .bl-nav-link,
html[data-theme] .bl-nav-mobile-link{color:#333;}
html[data-theme] .bl-nav-link:hover,
html[data-theme] .bl-nav-mobile-link:hover,
html[data-theme] .bl-nav-link.active{color:var(--accent);}

/* ---- tabs ---- */
html[data-theme] .tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);}

/* ======================================================================
   Mobile: the tab bar was pinned at a fixed 56px offset beneath the sticky
   site nav. When the nav is not exactly that tall on a phone the two overlap,
   which is what made the header look broken. Pin it to 0 on phones and keep
   the 56px offset only where the desktop nav actually is that height. Tab
   labels also shrink so five or six tabs fit without blowing out the row.
   ====================================================================== */
/* The tab bar sits directly beneath the 56px sticky site nav. Pinning it to 0
   put it *under* the nav, which is what stacked them on top of each other.
   Tabs get mpauldino's treatment: they keep their natural width and the row
   scrolls sideways instead of squeezing labels into each other. */
html[data-theme] .tab-bar{
  background:#fafafa;border-bottom:1px solid var(--line);
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
}
html[data-theme] .tab-bar::-webkit-scrollbar{display:none;}
html[data-theme] .tab-btn{
  flex:1 0 auto;white-space:nowrap;background:transparent;border:none;
  padding:13px 16px;font-family:var(--bl-body);font-size:10.5px;font-weight:700;
  letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);
  border-bottom:2px solid transparent;transition:all .18s;min-width:0;
}
html[data-theme] .tab-btn:hover{color:var(--text);background:var(--hover);}
html[data-theme] .tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--surface);}
@media(max-width:640px){
  html[data-theme] .tab-btn{padding:12px 13px;font-size:10px;letter-spacing:0.10em;}
}
@media print{
  html[data-theme] .bl-theme-toggle{display:none !important;}
}

/* ======================================================================
   HOUSE STANDARD — /mpauldino/ chrome, cards and blocks, applied site-wide.

   Everything below is lifted verbatim from mpauldino/index.html's <style>
   block and re-published at html[data-theme] specificity so it wins over each
   client page's own inline CSS. Client pages had drifted across several
   template generations (serif 40px program titles, 3px radii, no card
   shadows, older header/tab/footer type scales); this layer lands all of them
   on mpauldino's exact geometry and typography without touching a single
   page's content.

   Deliberately NOT ported from mpauldino:
     - .tab-bar position/top — client pages sit under the 56px sticky .bl-nav
       and keep their own sticky offset. mpauldino has no nav.
     - .cc-* (Command Center banner), the .bc- prefixed rules and
       details.bodycomp-card (body composition card), .prog (body-metric
       rows) — mpauldino-only features.
       NOTE: do not write a "dot bc star slash" pattern here. The star-slash
       closed this comment early and silently killed the very next rule
       (html[data-theme] body), which is why client pages kept their own
       body padding instead of mpauldino's 34px 20px.
   ====================================================================== */
html[data-theme] body{font-family:'Montserrat',sans-serif;background:var(--bg);color:var(--text);font-size:16px;padding:34px 20px;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-weight:400;-webkit-text-size-adjust:100%}

/* ---- family reset inside the card ----------------------------------------
   mpauldino sets Montserrat on <body> and overrides to Cormorant Garamond in
   exactly one place: .inv-brand-name. Client pages from the older template
   generations set Cormorant on .program-title, .program-tag,
   .sec-divider-title, .sched-card-title, .tip-title, .li-summary-price and a
   long tail of one-off classes, so their headings rendered as a light serif —
   the "smaller, thinner" look, since Cormorant has a much smaller x-height and
   lighter stroke than Montserrat 700 at the same px size. bl-theme only ported
   mpauldino's font-size/weight, never its font-family, so the pages' own
   declarations kept winning.

   Reset the family for the whole card, then hand the serif back to the four
   places the house standard genuinely wants it, at higher specificity.
   code/pre/kbd/samp keep their monospace stack. -------------------------- */
html[data-theme] .invoice-wrap,
html[data-theme] .invoice-wrap *:not(code):not(pre):not(kbd):not(samp){font-family:'Montserrat',sans-serif;}
html[data-theme] .invoice-wrap .inv-brand-name,
html[data-theme] .invoice-wrap .total-row.grand .val,
html[data-theme] .invoice-wrap .tier-name,
html[data-theme] .invoice-wrap .tier-tagline,
html[data-theme] .invoice-wrap .tier-pricetag-amount{font-family:'Cormorant Garamond',Georgia,serif;}

html[data-theme] .invoice-wrap{position:relative;z-index:1;width:75%;max-width:1200px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.05),0 6px 22px rgba(0,0,0,0.06);overflow:hidden}
html[data-theme] .inv-header{background:#e8e8e8;border-bottom:2px solid var(--accent-line);padding:26px 34px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
html[data-theme] .inv-brand-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:30px;font-weight:600;letter-spacing:0.04em;color:var(--text);line-height:1}
html[data-theme] .inv-brand-sub{font-size:9.5px;font-weight:700;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);margin-top:5px}
html[data-theme] .inv-meta{text-align:right}
html[data-theme] .inv-label{font-size:9.5px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted)}
html[data-theme] .inv-number{font-size:21px;font-weight:700;color:var(--text);margin-top:3px;letter-spacing:0.01em}
html[data-theme] .inv-date{font-size:12px;color:var(--muted);font-weight:500;margin-top:5px;line-height:1.5}
html[data-theme] .tab-bar{display:flex;background:#fafafa;border-bottom:1px solid var(--line);padding:0;z-index:50;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
html[data-theme] .tab-bar::-webkit-scrollbar{display:none}
html[data-theme] .tab-btn{flex:1 0 auto;white-space:nowrap;background:transparent;border:none;padding:13px 16px;font-family:'Montserrat',sans-serif;font-size:10.5px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all 0.18s}
html[data-theme] .tab-btn:hover{color:var(--text);background:var(--hover)}
html[data-theme] .tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--surface)}
html[data-theme] .tab-content{display:none;padding:30px 34px 38px;background:var(--bg-alt)}
html[data-theme] .tab-content.active{display:block}
html[data-theme] .program-intro{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:20px 22px;margin-bottom:18px}
html[data-theme] .program-eyebrow{font-size:9.5px;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent)}
html[data-theme] .program-title{font-size:27px;font-weight:700;color:var(--text);line-height:1.15;margin-top:6px;letter-spacing:-0.01em}
html[data-theme] .program-title em{font-style:normal;color:var(--accent);font-weight:700}
html[data-theme] .program-tag{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.5}
html[data-theme] .program-context{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
html[data-theme] .sec-divider{margin:0 0 14px;padding-bottom:9px;border-bottom:2px solid var(--accent-line)}
html[data-theme] .sec-divider.mt{margin-top:30px}
html[data-theme] .sec-divider-eyebrow{font-size:9.5px;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent)}
html[data-theme] .sec-divider-title{font-size:19px;font-weight:700;color:var(--text);margin-top:3px;line-height:1.25;letter-spacing:-0.01em}
html[data-theme] .note-list{display:flex;flex-direction:column}
html[data-theme] .nr{display:grid;grid-template-columns:126px 1fr;gap:3px 18px;padding:10px 0;border-bottom:1px solid var(--line-soft);align-items:baseline}
html[data-theme] .nr:first-child{padding-top:2px}
html[data-theme] .nr:last-child{border-bottom:none;padding-bottom:2px}
html[data-theme] .nr-l{font-size:9px;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:var(--accent);line-height:1.7}
html[data-theme] .nr-v{font-size:13.5px;line-height:1.65;color:var(--text);min-width:0}
html[data-theme] .nr-v strong{font-weight:700}
html[data-theme] .nr.full{grid-template-columns:1fr}
html[data-theme] .nr.fine .nr-v{font-size:12px;color:var(--muted);line-height:1.7}
@media(max-width:640px){
  html[data-theme] .nr{grid-template-columns:1fr;gap:2px}
  html[data-theme] .nr-l{line-height:1.5}
}
html[data-theme] .info-tip{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--accent-dim);border:1px solid var(--accent-line);color:var(--accent);font-size:9px;font-weight:700;cursor:help;position:relative;margin-left:6px;font-family:'Montserrat',sans-serif;letter-spacing:0;line-height:1;outline:none;flex-shrink:0;vertical-align:middle}
html[data-theme] .info-tip:hover, html[data-theme] .info-tip:focus, html[data-theme] .info-tip.is-open{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
html[data-theme] .info-tip-text{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--tip-bg);color:var(--tip-text);border:1px solid var(--tip-border);padding:10px 13px;border-radius:4px;font-size:11.5px;font-weight:400;line-height:1.55;letter-spacing:0.01em;text-transform:none;width:260px;text-align:left;opacity:0;pointer-events:none;transition:opacity 0.18s;z-index:200;box-shadow:0 4px 18px rgba(0,0,0,0.25)}
html[data-theme] .info-tip-text strong{color:var(--tip-strong);font-weight:600}
html[data-theme] .info-tip-text::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--tip-bg)}
html[data-theme] .info-tip:hover .info-tip-text, html[data-theme] .info-tip:focus .info-tip-text, html[data-theme] .info-tip.is-open .info-tip-text{opacity:1;pointer-events:auto}
@media(max-width:640px){
  html[data-theme] .info-tip-text{width:230px;font-size:11px}
}
html[data-theme] .cmp-group{font-size:9px;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;display:flex;align-items:center;gap:12px}
html[data-theme] .cmp-group::after{content:'';flex:1;height:1px;background:var(--line)}
html[data-theme] .cmp-group.mt{margin-top:18px}
html[data-theme] .cmp-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin-bottom:6px}
html[data-theme] .cmp-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:flex;flex-direction:column;padding:0;overflow:visible}
html[data-theme] .cmp-row-name{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:14px;font-weight:700;color:var(--text);padding:12px 16px;border-bottom:1px solid var(--line);background:var(--head);border-radius:8px 8px 0 0;line-height:1.3;letter-spacing:0.005em}
html[data-theme] .cmp-badge{display:inline-block;background:var(--accent);color:var(--on-accent);font-size:8px;font-weight:700;letter-spacing:0.10em;padding:2px 7px;border-radius:99px;text-transform:uppercase;vertical-align:middle;white-space:nowrap}
html[data-theme] .cmp-badge.grey{background:var(--muted);color:var(--on-accent)}
html[data-theme] .cmp-row.archived{opacity:0.62;background:var(--head)}
html[data-theme] .cmp-row.archived .cmp-row-name{color:var(--muted)}
html[data-theme] .cmp-row.archived .fld.dose .fld-v{color:var(--muted)}
html[data-theme] .cmp-fields{display:flex;flex-direction:column;padding:2px 16px 10px}
html[data-theme] .fld{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-soft)}
html[data-theme] .fld:last-child{border-bottom:none}
html[data-theme] .fld-l{font-size:9px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
html[data-theme] .fld-v{font-size:13px;font-weight:600;color:var(--text);text-align:right;font-variant-numeric:tabular-nums}
html[data-theme] .fld.dose{border-top:1px solid var(--line-soft)}
html[data-theme] .fld.dose .fld-v{font-size:17px;font-weight:700;color:var(--accent);white-space:nowrap}
html[data-theme] .data-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden}
html[data-theme] .data-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
html[data-theme] .data-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:560px}
html[data-theme] .data-table thead th{font-size:9px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);padding:12px 14px 9px;text-align:left;background:var(--head);border-bottom:1px solid var(--line);white-space:nowrap}
html[data-theme] .data-table thead th.right{text-align:right}
html[data-theme] .data-table tbody td{padding:11px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle;color:var(--text)}
html[data-theme] .data-table tbody tr:last-child td{border-bottom:none}
html[data-theme] .data-table tbody tr:nth-child(even) td{background:var(--zebra)}
html[data-theme] .data-table td.cmp{font-weight:700;white-space:nowrap}
html[data-theme] .data-table td.cmp .sub{color:var(--muted);font-weight:400;font-size:11px}
html[data-theme] .data-table td.num{text-align:right;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}
html[data-theme] .chart-note{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;box-shadow:var(--shadow);padding:13px 16px;font-size:12.5px;line-height:1.7;color:var(--muted);margin-bottom:22px}
html[data-theme] .chart-note p{margin:0}
html[data-theme] .chart-note strong{color:var(--text);font-weight:700}
html[data-theme] .chart-note .nl{display:block;font-size:9px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent);margin-bottom:5px}
html[data-theme] .tb-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}
html[data-theme] .tb-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:0;overflow:hidden}
html[data-theme] .tb-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 18px 11px;background:var(--head);border-bottom:1px solid var(--line)}
html[data-theme] .tb-card-title{font-size:15px;font-weight:700;color:var(--text);letter-spacing:0.005em}
html[data-theme] .tb-card-pill{font-size:9px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent-line);padding:3px 9px;border-radius:99px;white-space:nowrap}
html[data-theme] .tb-card-sub{font-size:10.5px;color:var(--muted);font-weight:500;letter-spacing:0.04em;padding:9px 18px 0;line-height:1.5}
html[data-theme] .tb-list{display:flex;flex-direction:column;padding:4px 18px 14px}
html[data-theme] .tb-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px}
html[data-theme] .tb-row:last-child{border-bottom:none}
html[data-theme] .tb-row .tb-name{color:var(--text);font-weight:500;min-width:0}
html[data-theme] .tb-row .tb-dose{font-size:14px;font-weight:700;color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums}
html[data-theme] .tb-mini{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin:0 18px 14px;padding-top:10px;border-top:1px solid var(--line)}
html[data-theme] .tb-mini-item{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text);padding:6px 0}
html[data-theme] .tb-mini-item::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--accent);flex:none}
html[data-theme] .tb-drink{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;padding:4px 18px 14px}
html[data-theme] .dk{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);padding:7px 0;border-bottom:1px solid var(--line-soft);min-width:0}
html[data-theme] .dk::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--accent-line);flex:none}
html[data-theme] .dk.hl{font-weight:700;color:var(--accent)}
html[data-theme] .dk.hl::before{background:var(--accent)}
html[data-theme] .sched-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:0;margin-bottom:14px;overflow:hidden}
html[data-theme] .sched-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;background:var(--head);border-bottom:1px solid var(--line);flex-wrap:wrap}
html[data-theme] .sched-card-title{font-size:16px;font-weight:700;color:var(--text);line-height:1.2;letter-spacing:0.005em}
html[data-theme] .sched-card-sub{padding:6px 18px 12px;border-bottom:1px solid var(--line)}
html[data-theme] .sched-phase-pill{background:var(--accent);color:var(--on-accent);font-size:9px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;padding:4px 10px;border-radius:99px;white-space:nowrap;flex-shrink:0}
html[data-theme] .sched-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
html[data-theme] .sched-table{width:100%;border-collapse:collapse;min-width:520px;font-size:12px}
html[data-theme] .sched-table th{text-align:left;font-size:9px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent);padding:11px 12px;border-bottom:1px solid var(--line);background:var(--zebra);white-space:nowrap}
html[data-theme] .sched-table th.right{text-align:right}
html[data-theme] .sched-table td{padding:10px 12px;vertical-align:top;border-bottom:1px solid var(--line-soft)}
html[data-theme] .sched-table tr:last-child td{border-bottom:none}
html[data-theme] .sched-table td.right{text-align:right}
html[data-theme] .sched-day{font-weight:700;white-space:nowrap;color:var(--text);font-size:12.5px}
html[data-theme] .sched-pill{display:inline-block;font-size:10px;font-weight:600;padding:3px 9px;border-radius:99px;margin:1px 3px 2px 0;border:1px solid var(--accent-line);background:var(--accent-dim);color:var(--accent);white-space:nowrap}
html[data-theme] .sched-pill strong{font-weight:800;font-size:11px;letter-spacing:-0.1px;margin-right:2px}
html[data-theme] .sched-pill.am{background:rgba(185,122,31,0.14);border-color:rgba(185,122,31,0.36);color:#b97a1f}
html[data-theme] .sched-pill.am-mwf{background:rgba(58,107,142,0.14);border-color:rgba(58,107,142,0.34);color:#3a6b8e}
html[data-theme] .sched-pill.am-mth{background:rgba(184,85,116,0.14);border-color:rgba(184,85,116,0.36);color:#b85574}
html[data-theme] .sched-pill.pm{background:rgba(110,77,146,0.14);border-color:rgba(110,77,146,0.36);color:#6e4d92}
html[data-theme] .sched-pill.off{background:rgba(0,0,0,0.03);border-color:var(--line);color:#999;font-weight:400}
html[data-theme] .sched-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;border-radius:99px;background:var(--accent-dim);border:1px solid var(--accent-line);font-size:13px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
html[data-theme] .sched-count.off{color:#bbb;background:rgba(0,0,0,0.03);border-color:var(--line)}
html[data-theme] .cal-banner{background:linear-gradient(135deg,rgba(99,179,237,0.08),rgba(99,179,237,0.03)),#ffffff;border:1px solid rgba(99,179,237,0.35);border-left:3px solid #4278a8;border-radius:8px;box-shadow:var(--shadow);padding:15px 18px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
html[data-theme] .cal-left{flex:1;min-width:240px}
html[data-theme] .cal-banner h4{font-size:10px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:#4278a8;margin-bottom:5px}
html[data-theme] .cal-banner p{font-size:12px;color:#4a6b85;line-height:1.6;font-weight:400}
html[data-theme] .cal-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html[data-theme] .cal-banner input[type=date]{background:#fafafa;border:1px solid rgba(99,179,237,0.35);border-radius:5px;padding:8px 10px;font-size:13px;color:var(--text);outline:none;font-family:'Montserrat',sans-serif;color-scheme:light}
html[data-theme] .cal-dl-btn{background:#4278a8;color:#fff;font-size:10px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;padding:10px 16px;border-radius:5px;border:none;cursor:pointer;white-space:nowrap;font-family:'Montserrat',sans-serif}
html[data-theme] .cal-dl-btn:hover{background:#345d85}
html[data-theme] .tip-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:0;margin-bottom:12px;overflow:hidden}
html[data-theme] .tip-head{padding:13px 18px;background:var(--head);border-bottom:1px solid var(--line)}
html[data-theme] .tip-card.warn .tip-head{border-bottom-color:var(--red-border)}
html[data-theme] .tip-card.heal .tip-head{border-bottom-color:var(--green-border)}
html[data-theme] .tip-eyebrow{font-size:9.5px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent)}
html[data-theme] .tip-card.warn .tip-eyebrow{color:var(--red)}
html[data-theme] .tip-card.heal .tip-eyebrow{color:var(--green)}
html[data-theme] .tip-title{font-size:16px;font-weight:700;color:var(--text);margin-top:3px;line-height:1.25;letter-spacing:0.005em}
html[data-theme] .tip-body{padding:6px 18px 14px;font-size:13.5px;line-height:1.7;color:var(--text);font-weight:400}
html[data-theme] .tip-body strong{font-weight:700}
html[data-theme] .lab-header{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);border-top:3px solid var(--accent);padding:16px 20px;margin-bottom:14px}
html[data-theme] .lab-header-title{font-size:20px;font-weight:700;color:var(--text);line-height:1.15;letter-spacing:-0.01em}
html[data-theme] .lab-header-meta{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.55}
html[data-theme] .lab-score{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:0;margin-bottom:16px;overflow:hidden}
html[data-theme] .lab-score-eyebrow{font-size:9.5px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent);padding:12px 20px;background:var(--head);border-bottom:1px solid var(--line)}
html[data-theme] .lab-score-main{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:18px 20px;border-bottom:1px solid var(--line)}
html[data-theme] .lab-score-number{font-size:54px;font-weight:700;color:var(--accent);line-height:0.95;font-variant-numeric:tabular-nums;letter-spacing:-0.02em}
html[data-theme] .lab-score-denom{font-size:20px;color:var(--muted);font-weight:600;margin-left:2px}
html[data-theme] .lab-score-meta{flex:1;min-width:200px}
html[data-theme] .lab-score-grade{font-size:17px;font-weight:700;color:var(--text);line-height:1.2;margin-bottom:4px;letter-spacing:0.02em}
html[data-theme] .lab-score-context{font-size:12px;color:var(--muted);line-height:1.55}
html[data-theme] .lab-score-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 24px;padding:6px 20px 4px}
html[data-theme] .lab-score-item{font-size:12.5px;color:var(--text);display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft);font-weight:500}
html[data-theme] .lab-score-num{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:21px;border-radius:99px;background:var(--accent-dim);border:1px solid var(--accent-line);font-size:11px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;flex:none}
html[data-theme] .lab-score-item .info-tip{margin-left:auto}
html[data-theme] .lab-score-foot{font-size:10.5px;color:var(--muted);padding:10px 20px 14px;line-height:1.6}
@media(max-width:640px){
  html[data-theme] .lab-score-main{gap:14px;padding:14px 16px}
  html[data-theme] .lab-score-number{font-size:42px}
  html[data-theme] .lab-score-denom{font-size:17px}
  html[data-theme] .lab-score-grade{font-size:15px}
  html[data-theme] .lab-score-context{font-size:11.5px}
  html[data-theme] .lab-score-breakdown{grid-template-columns:1fr;padding:4px 16px 2px}
  html[data-theme] .lab-score-item{font-size:11.5px;padding:8px 0}
  html[data-theme] .lab-score-eyebrow{padding:11px 16px}
  html[data-theme] .lab-score-foot{padding:10px 16px 12px}
}
html[data-theme] .lab-section{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden}
html[data-theme] .lab-section-head{padding:12px 18px;background:var(--head);border-bottom:1px solid var(--line)}
html[data-theme] .lab-section-title{font-size:12px;font-weight:700;color:var(--accent);letter-spacing:0.14em;text-transform:uppercase}
html[data-theme] .lab-section-sub{font-size:10px;font-weight:500;color:var(--muted);margin-top:3px;letter-spacing:0.03em;line-height:1.5}
html[data-theme] .lab-row{position:relative;display:grid;grid-template-columns:1.7fr 1fr auto auto;gap:8px 14px;align-items:center;padding:10px 18px;border-bottom:1px solid var(--line-soft);font-size:13px}
html[data-theme] .lab-row:nth-child(even){background:var(--zebra)}
html[data-theme] .lab-row:last-child{border-bottom:none}
html[data-theme] .lab-name{font-weight:500;color:var(--text);min-width:0}
html[data-theme] .lab-val{font-size:16px;font-weight:700;color:var(--text);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
html[data-theme] .lab-val.hi{color:#c25555}
html[data-theme] .lab-val.lo{color:#4278a8}
html[data-theme] .lab-val.ok{color:#5a8a5a}
html[data-theme] .lab-val em{font-style:normal;font-size:10px;color:var(--muted);margin-left:4px;font-weight:500;letter-spacing:0.02em}
html[data-theme] .lab-ref{font-size:11px;color:var(--muted);white-space:nowrap;letter-spacing:0.02em;text-align:right;font-variant-numeric:tabular-nums}
html[data-theme] .lab-status{font-size:8.5px;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;padding:3px 9px;border-radius:99px;white-space:nowrap;text-align:center;min-width:64px;border:1px solid transparent}
html[data-theme] .lab-status.ok{background:var(--green-soft);color:var(--green-text);border-color:var(--green-border)}
html[data-theme] .lab-status.hi{background:var(--red-soft);color:var(--red-text);border-color:var(--red-border)}
html[data-theme] .lab-status.lo{background:var(--info-soft);color:var(--info-text);border-color:var(--info-border)}
html[data-theme] .lab-status.normal{background:rgba(120,120,120,0.08);color:var(--muted);border-color:transparent}
html[data-theme] .lab-index{padding:4px 18px 14px}
html[data-theme] .lab-index p{font-size:12px;line-height:1.6;color:var(--muted);margin:0;padding:8px 0;border-bottom:1px solid var(--line-soft)}
html[data-theme] .lab-index p:last-child{border-bottom:none}
html[data-theme] .lab-index p strong{color:var(--text);font-weight:700;font-size:12px;letter-spacing:0.02em;font-variant-numeric:tabular-nums}
html[data-theme] .lab-index p.lab-index-next{margin-top:4px;color:var(--muted)}
html[data-theme] .lab-row .info-tip-text{width:240px}
@media(max-width:640px){
  html[data-theme] .lab-row{grid-template-columns:1fr auto;grid-template-areas:'name val' 'ref status';gap:3px 10px;padding:10px 14px}
  html[data-theme] .lab-name{grid-area:name;font-size:12.5px}
  html[data-theme] .lab-val{grid-area:val;font-size:15px}
  html[data-theme] .lab-ref{grid-area:ref;font-size:10.5px;text-align:left}
  html[data-theme] .lab-status{grid-area:status;font-size:8px;padding:2px 7px;min-width:auto}
  html[data-theme] .lab-header-title{font-size:18px}
  html[data-theme] .lab-section-title{font-size:11px}
  html[data-theme] .lab-section-head{padding:11px 14px}
  html[data-theme] .lab-index{padding:4px 14px 12px}
  html[data-theme] .lab-row .info-tip{position:static}
  html[data-theme] .lab-row .info-tip-text{position:absolute; bottom:auto; top:calc(100% - 4px); left:10px; right:10px; width:auto; max-width:none; transform:none; margin:0}
  html[data-theme] .lab-row .info-tip-text::after{top:-9px; bottom:auto; left:14px; transform:none; border-bottom-color:var(--tip-bg); border-top-color:transparent}
  html[data-theme] .tb-row, html[data-theme] .cmp-row, html[data-theme] .cmp-row-name, html[data-theme] .tb-mini, html[data-theme] .tb-drink, html[data-theme] .lab-score-breakdown{position:relative}
  html[data-theme] .tb-row .info-tip, html[data-theme] .cmp-row .info-tip, html[data-theme] .tb-mini .info-tip, html[data-theme] .tb-drink .info-tip, html[data-theme] .lab-score-breakdown .info-tip{position:static}
  html[data-theme] .tb-row .info-tip-text, html[data-theme] .cmp-row .info-tip-text, html[data-theme] .tb-mini .info-tip-text, html[data-theme] .tb-drink .info-tip-text, html[data-theme] .lab-score-breakdown .info-tip-text{position:absolute; bottom:auto; top:calc(100% + 2px); left:8px; right:8px; width:auto; max-width:none; transform:none; margin:0}
  html[data-theme] .cmp-row-name .info-tip-text{top:calc(100% - 2px);left:6px;right:6px}
  html[data-theme] .tb-row .info-tip-text::after, html[data-theme] .cmp-row .info-tip-text::after, html[data-theme] .tb-mini .info-tip-text::after, html[data-theme] .tb-drink .info-tip-text::after, html[data-theme] .lab-score-breakdown .info-tip-text::after{top:-9px; bottom:auto; left:14px; transform:none; border-bottom-color:var(--tip-bg); border-top-color:transparent}
}
html[data-theme] .inv-footer{background:var(--head);border-top:1px solid var(--line);padding:16px 34px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
html[data-theme] .footer-disc{font-size:10px;color:var(--muted);font-weight:500;line-height:1.55;flex:1;min-width:240px}
html[data-theme] .footer-brand{font-size:9.5px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent)}
html[data-theme] .print-btn{position:relative;z-index:1;display:block;width:75%;max-width:1200px;margin:18px auto 56px;padding:15px;background:var(--accent);color:var(--on-accent);border:none;border-radius:6px;font-family:'Montserrat',sans-serif;font-size:10.5px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;box-shadow:var(--shadow)}
html[data-theme] .print-btn:hover{background:var(--accent-hover)}
@media print{
  html[data-theme] body{background:#fff;padding:0}
  html[data-theme] .invoice-wrap{border:none;width:100%;max-width:100%;box-shadow:none}
  html[data-theme] .print-btn, html[data-theme] .tab-bar{display:none}
  html[data-theme] .tab-content{display:block !important;background:#fff}
  html[data-theme] details > summary{list-style:none}
  html[data-theme] .cmp-row, html[data-theme] .tb-card, html[data-theme] .lab-section, html[data-theme] .sched-card, html[data-theme] .data-card, html[data-theme] .tip-card{box-shadow:none;break-inside:avoid}
}
@media(max-width:1100px){
  html[data-theme] .invoice-wrap, html[data-theme] .print-btn{width:92%}
}
@media(max-width:820px){
  html[data-theme] .invoice-wrap, html[data-theme] .print-btn{width:96%}
  html[data-theme] body{padding:20px 8px}
  html[data-theme] .inv-header{padding:20px 20px}
  html[data-theme] .tab-content{padding:22px 18px}
  html[data-theme] .inv-footer{padding:14px 20px}
  html[data-theme] .tb-grid{grid-template-columns:1fr}
  html[data-theme] .lab-score-breakdown{grid-template-columns:1fr}
}
@media(max-width:640px){
  html[data-theme] .invoice-wrap, html[data-theme] .print-btn{width:100%;border-left:none;border-right:none;border-radius:0}
  html[data-theme] .print-btn{border-radius:6px;width:calc(100% - 24px)}
  html[data-theme] body{padding:0 0 8px;font-size:15px}
  html[data-theme] .inv-header{flex-direction:column;gap:12px;padding:18px 16px}
  html[data-theme] .inv-meta{text-align:left}
  html[data-theme] .inv-brand-name{font-size:25px}
  html[data-theme] .tab-content{padding:16px 12px 26px}
  html[data-theme] .inv-footer{flex-direction:column;align-items:flex-start;padding:14px 16px}
  html[data-theme] .program-title{font-size:22px}
  html[data-theme] .program-intro{padding:16px 15px}
  html[data-theme] .sec-divider-title{font-size:17px}
  html[data-theme] .cmp-list{grid-template-columns:1fr}
  html[data-theme] .tb-drink{grid-template-columns:1fr}
  html[data-theme] .tb-mini{grid-template-columns:1fr}
  html[data-theme] .tb-card-head, html[data-theme] .sched-card-head{padding:12px 15px}
  html[data-theme] .tb-list, html[data-theme] .tb-drink{padding-left:15px;padding-right:15px}
  html[data-theme] .tb-card-sub{padding-left:15px;padding-right:15px}
  html[data-theme] .tb-mini{margin-left:15px;margin-right:15px}
  html[data-theme] .sched-card-sub{padding-left:15px;padding-right:15px}
  html[data-theme] .tip-head, html[data-theme] .tip-body{padding-left:15px;padding-right:15px}
  html[data-theme] .chart-note{padding:12px 14px}
}
html[data-theme] .bl-pwa-banner{position:fixed;left:0;right:0;bottom:0;background:linear-gradient(135deg,#f8f5ee,#f2ede0);border-top:2px solid #7A6530;padding:14px 18px;display:none;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;font-family:'Montserrat',sans-serif;z-index:9000;box-shadow:0 -4px 20px rgba(0,0,0,0.08)}
html[data-theme] .bl-pwa-banner.show{display:flex}
html[data-theme] .bl-pwa-banner-text{flex:1;min-width:200px;font-size:13px;color:#3d2f10;line-height:1.5}
html[data-theme] .bl-pwa-banner-text strong{color:#7A6530;font-weight:700}
html[data-theme] .bl-pwa-banner-actions{display:flex;gap:8px;align-items:center}
html[data-theme] .bl-pwa-banner-btn{padding:8px 14px;font-size:11px;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;border-radius:4px;border:none;cursor:pointer;font-family:inherit}
html[data-theme] .bl-pwa-install{background:#7A6530;color:#fff}
html[data-theme] .bl-pwa-install:hover{background:#5f4f26}
html[data-theme] .bl-pwa-dismiss{background:transparent;color:#6b6b65}
html[data-theme] .bl-pwa-dismiss:hover{color:#1a1a1a}
@media print{
  html[data-theme] .bl-pwa-banner{display:none !important}
}
html[data-theme] .tb-card, html[data-theme] .lab-section, html[data-theme] .lab-score{overflow:visible}
html[data-theme] .tb-card-head{border-radius:8px 8px 0 0}
html[data-theme] .lab-section-head{border-radius:8px 8px 0 0}
html[data-theme] .lab-score-eyebrow{border-radius:8px 8px 0 0}
html[data-theme] .lab-section .lab-row:last-child{border-radius:0 0 8px 8px}
html[data-theme] .info-tip:hover .info-tip-text, html[data-theme] .info-tip:focus .info-tip-text, html[data-theme] .info-tip.is-open .info-tip-text{z-index:400}

/* ----------------------------------------------------------------------
   Collapsible compound rows (.li-row). mpauldino uses flat .cmp-row cards;
   most client pages use the expanding variant so the "why this peptide",
   titration and bottle-math bodies stay on the page. Same card shell, same
   header type, same field rows — canonical form taken from /cpauldino/.
   ---------------------------------------------------------------------- */
html[data-theme] .li-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:visible;}
html[data-theme] details.li-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:visible}
html[data-theme] details.li-row > summary{cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent;display:block;padding:0;position:relative}
html[data-theme] details.li-row > summary::-webkit-details-marker{display:none}
html[data-theme] details.li-row > summary::after{content:'+';position:absolute;right:14px;top:12px;width:24px;height:24px;border:1px solid var(--accent-line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:16px;font-weight:300;line-height:1;background:var(--surface);transition:all 0.18s}
html[data-theme] details[open].li-row > summary::after{content:'\2212';background:var(--accent-dim)}
html[data-theme] details.li-row > summary:hover::after{border-color:var(--accent)}
html[data-theme] .li-summary-name{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:14px;font-weight:700;color:var(--text);padding:12px 48px 12px 16px;border-bottom:1px solid var(--line);background:var(--head);border-radius:8px 8px 0 0;line-height:1.35;letter-spacing:0.005em}
html[data-theme] .li-body{padding:4px 16px 14px;background:transparent;border-top:1px solid var(--line-soft)}
html[data-theme] .phase-pill-inline{display:inline-block;font-size:8px;font-weight:700;letter-spacing:0.10em;text-transform:uppercase;color:var(--on-accent);padding:2px 7px;border-radius:99px;vertical-align:middle;white-space:nowrap}
html[data-theme] .cmp-quick{list-style:none;display:flex;flex-direction:column;padding:0;margin:0}
html[data-theme] .cmp-quick li{display:grid;grid-template-columns:78px 1fr;gap:3px 14px;align-items:baseline;font-size:13px;color:var(--text);line-height:1.6;font-weight:400;padding:9px 0;border-bottom:1px solid var(--line-soft)}
html[data-theme] .cmp-quick li:last-child{border-bottom:none}
html[data-theme] .cmp-quick .ql{font-size:9px;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:var(--accent);min-width:0}
html[data-theme] .cmp-quick .qv{min-width:0}
html[data-theme] .units{display:inline-block;font-weight:700;color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent-line);padding:1px 9px;border-radius:99px;font-size:12.5px;white-space:nowrap}
html[data-theme] .fld-v .units{font-size:12.5px}
html[data-theme] .li-callout{background:rgba(122,101,48,0.07);border:1px solid var(--accent-line);border-left:3px solid var(--accent);border-radius:6px;padding:11px 13px;margin-top:12px;font-size:12.5px;color:#3d2f10;line-height:1.7}
html[data-theme] .li-callout strong{color:var(--accent);font-weight:700}
html[data-theme] .li-callout.why{background:rgba(58,107,142,0.07);border-color:rgba(58,107,142,0.35);border-left-color:#3a6b8e;color:#1f3f5a}
html[data-theme] .li-callout.why strong{color:#3a6b8e}

@media(max-width:640px){
  html[data-theme] .li-summary-name{padding:12px 46px 12px 15px;}
  html[data-theme] .li-body{padding-left:15px;padding-right:15px;}
  html[data-theme] .cmp-quick li{grid-template-columns:1fr;gap:2px;}
}
@media print{
  html[data-theme] .li-row{display:block;box-shadow:none;break-inside:avoid;}
  html[data-theme] details.li-row > summary::after{display:none;}
}

/* Re-stated last so it survives the house-standard .tab-btn rule above:
   on phones the tab labels shrink so five or six tabs still fit the row. */
@media(max-width:640px){
  html[data-theme] .tab-btn{padding:12px 13px;font-size:10px;letter-spacing:0.10em;}
}

/* ======================================================================
   Site nav — canonical layout, published here so every page's header is
   identical. Client pages each carry a <style id="bl-nav-styles"> copy of
   these rules and a few had drifted (cpauldino was missing the 820px
   breakpoint entirely, so its nav links never collapsed to the ☰ menu;
   sstarr had lost the link hover). Re-stating them at html[data-theme]
   specificity fixes all of them at once and keeps future navs in step.
   Colours for these selectors are set further up in this file.
   ====================================================================== */
html[data-theme] .bl-nav{background:#fff;border-bottom:1px solid #eaeaea;position:sticky;top:0;z-index:600;font-family:'Montserrat',sans-serif;}
html[data-theme] .bl-nav-inner{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:56px;}
html[data-theme] .bl-nav-logo{text-decoration:none;display:flex;flex-direction:column;line-height:1;}
html[data-theme] .bl-nav-logo-main{font-family:'Cormorant Garamond',Georgia,serif;font-size:18px;font-weight:600;color:#1a1a1a;letter-spacing:0.08em;}
html[data-theme] .bl-nav-logo-sub{font-size:9px;color:#7A6530;letter-spacing:0.2em;text-transform:uppercase;margin-top:3px;font-weight:700;}
html[data-theme] .bl-nav-links{display:flex;align-items:center;gap:2px;}
html[data-theme] .bl-nav-link{font-size:12px;color:#333;text-decoration:none;padding:8px 12px;border-radius:3px;transition:all .18s;white-space:nowrap;font-weight:500;}
html[data-theme] .bl-nav-link:hover{color:#7A6530;background:rgba(122,101,48,0.08);}
html[data-theme] .bl-nav-mobile-btn{display:none;background:none;border:none;font-size:22px;color:#333;cursor:pointer;padding:4px 8px;}
html[data-theme] .bl-nav-mobile-menu{display:none;background:#fff;border-bottom:1px solid #eaeaea;padding:8px 0;}
html[data-theme] .bl-nav-mobile-menu.open,
html[data-theme] .bl-nav-mobile-menu.show{display:block;}
html[data-theme] .bl-nav-mobile-link{display:block;padding:12px 24px;font-size:14px;color:#333;text-decoration:none;border-bottom:1px solid #f5f5f5;font-weight:500;}
html[data-theme] .bl-nav-mobile-link:last-child{border-bottom:none;}
html[data-theme] .bl-nav-mobile-link:hover{background:#f8f8f8;color:#7A6530;}
@media (max-width:820px){
  html[data-theme] .bl-nav-links{display:none;}
  html[data-theme] .bl-nav-mobile-btn{display:block;}
}
@media print{
  html[data-theme] .bl-nav,
  html[data-theme] .bl-nav-mobile-menu{display:none !important;}
}

/* ======================================================================
   Invoice folds + account totals — canonical form from /akelley/.
   mpauldino has no Invoice tab, so akelley is the reference for these, per
   the house convention (new order as an open-balance .order-fold on top,
   the prior cycle as a green "✓ Paid" .paid-archive underneath, both
   collapsed). Pages built before that pattern settled carried the older
   tinted 3px-radius folds (dholm, mjirikils and the rest of that
   generation); these rules land them all on the same white 8px card with
   the accent left rule and the +/− disc.
   ====================================================================== */
/* .inv-body is a wrapper client pages have and mpauldino does not: there,
   .tab-content sits directly inside .invoice-wrap. Giving .inv-body its own
   padding double-padded every client page — 26px here plus .tab-content's
   34px = 60px a side against mpauldino's 34px, i.e. 52px less content width
   at desktop. Zero it and let .tab-content carry mpauldino's exact padding
   at every breakpoint. */
html[data-theme] .inv-body{background:var(--bg-alt);padding:0;}
html[data-theme] .totals-block,
html[data-theme] .payment-block{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:16px 20px;margin-bottom:16px;}
html[data-theme] .total-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;font-size:13.5px;padding:10px 0;border-bottom:1px solid var(--line-soft);}
html[data-theme] .total-row:last-child{border-bottom:none;}
html[data-theme] .total-row .tr-name strong{font-weight:700;}
html[data-theme] .total-row .tr-name .sub{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;}
html[data-theme] .total-row .tr-val{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;}
html[data-theme] .total-row.free .tr-name,
html[data-theme] .total-row.free .tr-val{color:var(--green-text);}
html[data-theme] .total-row.grand{border-top:2px solid var(--accent-line);border-bottom:none;margin-top:6px;padding-top:14px;font-size:16px;font-weight:700;}
html[data-theme] .total-row.grand .tr-val,
html[data-theme] .total-row.grand .val{font-family:'Cormorant Garamond',Georgia,serif;font-size:30px;color:var(--accent);line-height:1;}

html[data-theme] details.order-fold{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;box-shadow:var(--shadow);padding:16px 20px;margin-bottom:16px;}
html[data-theme] details.order-fold[open]{background:var(--surface);}
html[data-theme] details.order-fold > summary,
html[data-theme] details.paid-archive > summary{cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent;position:relative;padding-right:40px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
html[data-theme] details.order-fold > summary::-webkit-details-marker,
html[data-theme] details.paid-archive > summary::-webkit-details-marker{display:none;}
html[data-theme] details.order-fold > summary::after{content:'+';position:absolute;right:0;top:50%;transform:translateY(-50%);width:26px;height:26px;border:1px solid var(--accent-line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:18px;font-weight:300;line-height:1;background:var(--surface);transition:all 0.18s;}
html[data-theme] details[open].order-fold > summary::after{content:'\2212';background:var(--accent-dim);}
html[data-theme] details.order-fold > summary:hover::after{border-color:var(--accent);}
html[data-theme] details[open].order-fold > summary{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--accent-line);}
html[data-theme] .of-head{flex:1;min-width:0;}
html[data-theme] .of-title{font-size:14px;font-weight:700;color:var(--text);line-height:1.3;}
html[data-theme] .of-sub{display:block;font-size:11.5px;font-weight:500;color:var(--muted);margin-top:3px;line-height:1.5;}
html[data-theme] .of-status{font-size:8.5px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;padding:3px 10px;border-radius:99px;background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber-border);white-space:nowrap;flex-shrink:0;}
html[data-theme] .of-status.quoted{background:rgba(0,0,0,0.04);color:var(--muted);border-color:rgba(0,0,0,0.18);}
html[data-theme] details.order-fold .totals-block,
html[data-theme] details.paid-archive .totals-block{border:none;box-shadow:none;padding:0;margin-bottom:0;background:transparent;}

html[data-theme] details.paid-archive{background:rgba(58,122,90,0.05);border:1px solid rgba(58,122,90,0.32);border-left:3px solid var(--green-text);border-radius:8px;box-shadow:var(--shadow);padding:16px 20px;margin-bottom:16px;}
html[data-theme] details.paid-archive[open]{background:#fbfcfb;}
html[data-theme] details.paid-archive > summary::after{content:'+';position:absolute;right:0;top:50%;transform:translateY(-50%);width:26px;height:26px;border:1px solid rgba(58,122,90,0.40);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--green-text);font-size:18px;font-weight:300;line-height:1;background:var(--surface);transition:all 0.18s;}
html[data-theme] details[open].paid-archive > summary::after{content:'\2212';background:rgba(58,122,90,0.10);}
html[data-theme] details.paid-archive > summary:hover::after{border-color:var(--green-text);}
html[data-theme] details[open].paid-archive > summary{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid rgba(58,122,90,0.32);}
html[data-theme] details.paid-archive .of-title{color:#0e3a1e;}
html[data-theme] details.paid-archive .of-sub{color:#3a6b52;}

/* .pa-pill / .pa-title / .pa-sub are the .paid-archive summary's own trio,
   used instead of the .of-* set on 32 pages (chartman, dbarron, jckelley,
   scoffe, jmaclean and the rest). bl-theme styled the fold chrome but never
   these three, so on any page that did not also carry an inline copy the
   green "Paid" badge rendered as bare inline text and the title/sub fell back
   to body copy. Values are akelley's and mjirikils' verbatim, so the pages
   that DO define them inline compute identically and are unchanged.

   The green is the literal #2f7a4a rather than var(--green-text): akelley
   redefines that token locally to #2f7a4a, while bl-theme's own value is the
   duller #3a6b3a, so var() here would render those 32 pages a different green
   from the reference pages. */
html[data-theme] .pa-pill{font-size:9.5px;font-weight:800;letter-spacing:0.13em;text-transform:uppercase;color:#fff;background:#2f7a4a;padding:4px 10px;border-radius:99px;flex-shrink:0;white-space:nowrap;}
/* .pa-title / .pa-sub go through :where(), which contributes zero specificity,
   so these are a true fallback: the 18 pages carrying the older inline
   14.5px/12px pair (ejirikils, mjirikils, dholm, cmyers and the rest) keep
   their own values untouched, and only pages with no rule at all pick these
   up. .pa-pill above is at full html[data-theme] specificity because every
   inline copy of it already computes to exactly these values. */
:where(html[data-theme]) :where(.pa-title){font-size:14px;font-weight:700;color:#0e3a1e;line-height:1.3;}
:where(html[data-theme]) :where(.pa-sub){display:block;font-size:11.5px;font-weight:500;color:#3a6b52;margin-top:3px;line-height:1.5;}

/* ======================================================================
   Supplies tab rows — canonical form from /akelley/.
   ====================================================================== */
html[data-theme] .supply-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:stretch;padding:0;}
html[data-theme] .supply-info-name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13.5px;font-weight:700;color:var(--text);padding:12px 16px;background:var(--head);border-bottom:1px solid var(--line);border-radius:8px 8px 0 0;line-height:1.3;}
html[data-theme] .supply-free{display:inline-block;background:var(--green);color:#fff;font-size:8px;font-weight:700;letter-spacing:0.10em;padding:2px 7px;border-radius:99px;text-transform:uppercase;white-space:nowrap;}
html[data-theme] .supply-info-desc{font-size:12.5px;color:var(--muted);line-height:1.7;padding:12px 16px 13px;}
html[data-theme] .supply-info-desc strong{color:var(--text);font-weight:700;}
html[data-theme] .supply-link{align-self:flex-start;margin:0 16px 14px;background:var(--accent);color:var(--on-accent);font-size:9px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;padding:9px 15px;border-radius:5px;text-decoration:none;white-space:nowrap;}
html[data-theme] .supply-link:hover{background:var(--accent-hover);}

/* ======================================================================
   Multi-cycle tier cards — canonical form from /jckelley/, the sanctioned
   card-in-card: one details.tier per cycle with its compounds inside.
   ====================================================================== */
html[data-theme] .tier-grid{display:flex;flex-direction:column;gap:14px;margin-bottom:24px;}
html[data-theme] details.tier{background:var(--surface);border:1px solid var(--line);border-radius:6px;display:block;padding:0;transition:all 0.2s;}
html[data-theme] details.tier:hover{border-color:var(--accent-line);}
html[data-theme] details[open].tier{box-shadow:0 4px 18px rgba(0,0,0,0.06);}
html[data-theme] details.tier > summary{cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent;padding:18px 56px 18px 22px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;position:relative;}
html[data-theme] details.tier > summary::-webkit-details-marker{display:none;}
html[data-theme] details.tier > summary::after{content:'+';position:absolute;right:18px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:1px solid var(--accent-line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:18px;font-weight:300;line-height:1;background:var(--surface);transition:all 0.18s;}
html[data-theme] details[open].tier > summary::after{content:'\2212';background:var(--accent-dim);}
html[data-theme] details.tier > summary:hover::after{border-color:var(--accent);}
html[data-theme] .tier-summary-main{flex:1;min-width:220px;}
html[data-theme] .tier-summary-price{flex:0 0 auto;text-align:right;min-width:90px;}
html[data-theme] .tier-eyebrow{font-size:10px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;margin-bottom:6px;}
html[data-theme] .tier-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;font-weight:600;color:var(--text);line-height:1.1;margin-bottom:4px;}
html[data-theme] .tier-tagline{font-family:'Cormorant Garamond',Georgia,serif;font-size:17px;font-weight:600;line-height:1.2;margin:6px 0 4px;}
html[data-theme] .tier-cadence{font-size:11px;color:var(--muted);margin-top:2px;}
html[data-theme] .tier-body{padding:4px 22px 22px;border-top:1px solid var(--line);background:var(--zebra);}
html[data-theme] .tier-body > *:first-child{margin-top:14px;}
html[data-theme] .tier-includes{font-size:11px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
html[data-theme] .tier-compounds{list-style:none;padding:0;margin-bottom:14px;}
html[data-theme] .tier-compounds li{font-size:12.5px;color:var(--text);padding:3px 0;display:flex;align-items:flex-start;gap:6px;line-height:1.4;}
html[data-theme] .tier-compounds li::before{content:'\2022';color:var(--accent);font-weight:700;flex-shrink:0;}
html[data-theme] .tier-desc{font-size:13px;color:var(--text);line-height:1.55;margin-bottom:14px;}
html[data-theme] .tier-desc strong{color:var(--accent);font-weight:700;}
html[data-theme] .tier-pricetag-label{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;}
html[data-theme] .tier-pricetag-amount{font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;font-weight:700;line-height:1;}
html[data-theme] .tier-pricetag-sub{font-size:10px;color:var(--muted);margin-top:4px;font-style:italic;letter-spacing:0.04em;}

@media(max-width:640px){
  html[data-theme] details.order-fold,
  html[data-theme] details.paid-archive{padding:14px 15px;}
  html[data-theme] .inv-body{padding:0;}
  html[data-theme] .totals-block,
  html[data-theme] .payment-block{padding:14px 15px;}
  html[data-theme] .total-row.grand .tr-val,
  html[data-theme] .total-row.grand .val{font-size:25px;}
  html[data-theme] .supply-info-name{padding:12px 15px;}
  html[data-theme] .supply-info-desc{padding-left:15px;padding-right:15px;}
  html[data-theme] .supply-link{margin-left:15px;margin-right:15px;}
  html[data-theme] details.tier > summary{padding:14px 46px 14px 16px;}
  html[data-theme] details.tier > summary::after{right:12px;width:24px;height:24px;font-size:16px;}
  html[data-theme] .tier-name{font-size:19px;}
  html[data-theme] .tier-tagline{font-size:15px;}
  html[data-theme] .tier-pricetag-amount{font-size:26px;}
  html[data-theme] .tier-body{padding:4px 16px 18px;}
}
@media(max-width:820px){
  html[data-theme] .inv-body{padding:0;}
}
@media print{
  html[data-theme] details.order-fold,
  html[data-theme] details.paid-archive,
  html[data-theme] .supply-row,
  html[data-theme] .totals-block,
  html[data-theme] .payment-block{box-shadow:none;break-inside:avoid;}
  html[data-theme] details.order-fold > summary::after,
  html[data-theme] details.paid-archive > summary::after,
  html[data-theme] details.tier > summary::after{display:none;}
  html[data-theme] .inv-body{background:#fff;padding:0;}
  html[data-theme] .tier-body{background:#fff;}
}
