/* Patriot Peptides USA · Old Glory Realism theme (v1). Loads after pst-bl.css and re-points its tokens.
   Palette from the brand standard: Night #0A1020, Shield Navy #0E1838, Patriot Navy #12266E, Old Glory Red #B22234,
   Signal Red #C8102E, Chrome #C7CCD4, Cloud #F3F1EC. Headlines Archivo Black, body Inter. */
:root{
  --bg:#0A1020;--bg2:#0D1527;--card:#111A30;--card2:#141F38;--line:#243050;--line2:#2E3A58;
  --ink:#F3F1EC;--muted:#C9CFDC;--dim:#98A2B8;
  --gold:#E8475F;--gold2:#F3F1EC;--goldg:linear-gradient(180deg,#E0203E,#A80C26);
  --navy:#12266E;--red:#C8102E;--chrome:#C7CCD4;--chromeg:linear-gradient(180deg,#F6F6F4,#C9CFDC);
  --ok:#7FCF9F;--warn:#E3C766;--bad:#F08A8A;
  --fh:"Archivo Black","Arial Black",Impact,sans-serif;--fb:Inter,system-ui,-apple-system,sans-serif;--r:6px;
  --flagbar:linear-gradient(90deg,#C8102E 0 33.3%,#F3F1EC 33.3% 66.6%,#12266E 66.6%);
}
/* headline face is heavy: pull sizes in a notch and drop the serif tracking */
.serif,h1.serif,h2.serif,.wm,.brand{font-weight:400;letter-spacing:0}
h1.serif{font-size:clamp(1.9rem,6vw,3.2rem);line-height:1.05}h2.serif{font-size:clamp(1.5rem,4.2vw,2.3rem)}
.brand{font-family:var(--fb);font-weight:800;letter-spacing:.06em;font-size:17px}.brand em{color:var(--ink)}
.brand img{border-radius:0!important;object-fit:contain}
.wm{font-family:var(--fh);font-size:22px;letter-spacing:.04em}.wm small{font-family:var(--fb);font-weight:700;letter-spacing:.3em;color:var(--gold)}
.fmark img{border-radius:0!important}
/* flag bar under the header, above the footer */
.hd::after{content:"";display:block;height:5px;background:var(--flagbar)}
.ft{border-top:0;position:relative}.ft::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--flagbar)}
/* kickers get a star; buttons go red gradient; ghost buttons chrome */
.kick::before{content:"★ ";letter-spacing:0}.kick{color:var(--gold)}
.btn.primary{background:var(--goldg);color:#fff;border-color:#8A0A1F;box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
.btn.ghost{border-color:var(--chrome);color:var(--ink)}.btn.ghost:hover{border-color:#fff;background:rgba(255,255,255,.04)}
.btn.venmo{background:#008CFF}
.skip{background:var(--red);color:#fff}
.lnk,.linkish{color:var(--gold)}
.tabbar{background:rgba(10,16,32,.97);border-top:1px solid var(--line)}.tabbar a.on{color:#fff}.tabbar i{background:var(--red);color:#fff}
.rule{background:var(--chrome)}
.annc{background:var(--red);color:#fff;border-bottom:0}.annc i,.annc b,.annc a{color:#FFE2B0}
/* hero on the home page: flag texture behind, product shot */
.hero,.home-hero,#hero{background:var(--bg) url("../img/flag-texture.jpg") center/cover no-repeat;position:relative}
.hero::before,.home-hero::before,#hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,16,32,.94) 0 36%,rgba(10,16,32,.35) 72%,rgba(10,16,32,.7));pointer-events:none}
.hero>*,.home-hero>*,#hero>*{position:relative}
/* (faint shield/star background pattern removed: it read as drifting icons on phones) */
/* owner app accents */
.owner .tab.on,.otabs a.on{color:#fff;border-color:var(--red)}
.pill.on,.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
/* vial label defaults: navy label, white type (used by the drawn bottle when no photo) */
:root{--label:#12266E;--label-ink:#fff}

.vial.photo{object-fit:cover;border-radius:10px;background:#0D1527}
.fimg .vial.photo,.edimg .vial.photo{width:100%;height:auto;aspect-ratio:1/1}
/* v1.1 · owner form toggles: iOS-size switches, whole row is the tap target (Mike: "sliders are horrible for fingers") */
.toggle{min-height:48px;padding:6px 0;gap:14px;font-size:15px;-webkit-tap-highlight-color:transparent;user-select:none}
.toggle input,.pmform .toggle input,.osheet .toggle input{width:58px;height:34px;border-radius:17px;flex:none;background:#2E3A58;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.toggle input::after{width:30px;height:30px;top:2px;left:2px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.45)}
.toggle input:checked{background:#2EA043}.toggle input:checked::after{left:26px;background:#fff}
.pmform .toggle,.osheet .toggle{align-items:center}.pmform .toggle small,.osheet .toggle small{display:block;color:var(--dim);font-size:12px;margin-top:2px}
/* bigger selects and number fields in owner forms too */
.pmform select,.osheet select,.pmform input:not([type=checkbox]):not([type=radio]),.osheet input:not([type=checkbox]):not([type=radio]){min-height:48px;font-size:16px}
.toggle input,.pmform .toggle input,.osheet .toggle input{min-height:0;height:34px}

/* checkout: friendly "add your address" prompt */
.addrneed{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:start;text-align:left;background:var(--card);border:1px solid var(--line2);border-left:3px solid var(--gold);padding:12px 14px;border-radius:8px;color:var(--ink);font-size:14px;line-height:1.45}
.addrneed .btn{grid-column:1 / -1;justify-self:center;margin-top:6px;min-width:220px}
/* 2-letter state picker, styled like the text inputs */
select.stsel{width:100%;min-height:48px;font-size:16px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:0 12px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23C9CFDC' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}

/* v5.11 (from PST): tab bar steps aside while typing on a phone, so iOS cannot strand it mid-screen */
html.okb .otabbar{display:none}

/* pull-to-refresh, iOS style (owner app): page slides down, 12-spoke activity indicator in the gap */
body.oapp #main{will-change:transform}
.iosptr{--p:0;position:fixed;top:calc(env(safe-area-inset-top) + 14px);left:50%;transform:translateX(-50%) scale(calc(.6 + .4 * var(--p)));opacity:0;transition:opacity .12s;z-index:9998;pointer-events:none;color:var(--muted)}
.iosptr svg rect{fill:currentColor;opacity:calc(.15 + .85 * clamp(0, (var(--p) * 12 - var(--i)), 1))}
.iosptr.armed{color:var(--ink)}
.iosptr.busy svg{animation:iosspin 1s steps(12) infinite}.iosptr.busy svg rect{opacity:calc(.15 + .85 * ((12 - var(--i)) / 12))}
@keyframes iosspin{to{transform:rotate(360deg)}}

/* owner ↔ shop toggle */
.ohr .shopsw{display:inline-flex;align-items:center;gap:6px;padding:0 10px}.ohr .shopsw span{font:700 12px Inter,sans-serif;letter-spacing:.06em}
.ownerchip{position:fixed;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:9000;display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:9px 14px;font:700 12px Inter,sans-serif;letter-spacing:.06em;text-decoration:none;box-shadow:0 8px 22px rgba(0,0,0,.4)}
.ownerchip svg{color:#fff}
body.has-appbar .ownerchip{bottom:calc(150px + env(safe-area-inset-bottom))}

/* home: Jeff's vial shot, blended into the chrome */
.vialshot{position:relative;background:var(--bg);overflow:hidden;margin-top:-1px}
.vialshot img{display:block;width:100%;max-width:980px;margin:0 auto;height:auto}
.vialshot::before,.vialshot::after{content:"";position:absolute;left:0;right:0;height:22%;pointer-events:none}
.vialshot::before{top:0;background:linear-gradient(180deg,var(--bg),rgba(10,16,32,0))}.vialshot::after{bottom:0;background:linear-gradient(0deg,var(--bg) 30%,rgba(10,16,32,0))}
.vialshot .kick{position:absolute;left:0;right:0;bottom:14px;text-align:center;margin:0;z-index:1}.vialshot .kick::before{content:""}
/* faint "USA" watermark behind the benefits band and the catalog/pages body: huge, cropped at the edge, barely there */
.band{position:relative;overflow:hidden}
.band::before{content:"USA";position:absolute;right:-6vw;top:50%;transform:translateY(-50%);font:400 clamp(220px,62vw,520px)/1 "Archivo Black","Arial Black",Impact,sans-serif;letter-spacing:-.02em;color:#fff;opacity:.035;pointer-events:none;user-select:none;z-index:0}
.band>*{position:relative;z-index:1}
body[data-page=catalog] main,body[data-page=product] main,body[data-page=account] main,body[data-page=cart] main{position:relative;isolation:isolate}
body[data-page=catalog] main::before,body[data-page=product] main::before,body[data-page=cart] main::before,body[data-page=account] main::before{content:"USA";position:absolute;left:-8vw;top:38vh;font:400 clamp(260px,80vw,700px)/1 "Archivo Black","Arial Black",Impact,sans-serif;letter-spacing:-.02em;color:#fff;opacity:.028;pointer-events:none;user-select:none;z-index:-1;writing-mode:vertical-rl;transform:rotate(180deg)}
/* benefits tiles: lighter, smaller headings with breathing room */
.bgrid{gap:28px 18px}.bgrid div{gap:6px;padding:4px 2px}
.bgrid b{font-family:var(--fb);font-weight:600;font-size:1.05rem;letter-spacing:.01em;line-height:1.25;color:var(--ink)}
.bgrid span{font-size:.86rem;line-height:1.4;color:var(--muted);max-width:18ch}
.bgrid svg{width:24px;height:24px;margin-bottom:2px}
/* research-focus cards: lighter, tighter headings (Archivo Black read too heavy at this size) */
.focus b{font-family:var(--fb);font-weight:700;font-size:1.65rem;line-height:1.05;letter-spacing:-.01em}
.focus span{margin-top:6px;display:block}
h2.serif{line-height:1.08}
.lcard h3,.cline h3{font-family:var(--fb);font-weight:700;font-size:1.25rem;line-height:1.12;letter-spacing:-.005em}

/* owner app tour */
.otour{position:fixed;inset:0;z-index:10050}
.otour-spot{position:fixed;border-radius:14px;box-shadow:0 0 0 9999px rgba(4,8,18,.74),0 0 0 2px var(--gold);transition:all .28s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.otour-card{position:fixed;left:14px;right:14px;max-width:440px;margin:0 auto;background:var(--card);border:1px solid var(--line2);border-top:3px solid var(--red);border-radius:14px;padding:16px 16px 12px;box-shadow:0 18px 40px rgba(0,0,0,.5);transition:top .28s cubic-bezier(.2,.8,.2,1)}
.otour-card small{display:block;color:var(--gold);font:700 11px Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}
.otour-card h3{font:700 1.2rem/1.2 Inter,sans-serif;margin:0 0 6px;color:var(--ink)}
.otour-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.5}
.otour-btns{display:flex;align-items:center;gap:8px;margin-top:14px}.otour-btns span{flex:1}.otour-btns .btn{min-height:44px;padding:0 16px}
/* ===== Build-A-Kit ===== */
.kitwrap{max-width:760px}
.kitsize{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 14px}
.kitsize button{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:64px;border:1px solid var(--line2);background:var(--card);color:var(--ink);border-radius:12px;cursor:pointer;font:inherit}
.kitsize button b{font:700 1.05rem Inter,sans-serif}.kitsize button span{color:var(--gold);font:700 12px Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.kitsize button.on{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red);background:linear-gradient(180deg,rgba(200,16,46,.14),rgba(200,16,46,.04))}
.kitbox{position:sticky;top:calc(env(safe-area-inset-top) + 66px);padding:10px!important;z-index:5;background:rgba(13,21,39,.97);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line2);border-radius:14px;padding:12px;margin:0 0 14px;box-shadow:0 12px 30px rgba(0,0,0,.35);transition:border-color .15s,box-shadow .15s}
.kitbox.target{border-color:var(--gold);box-shadow:0 0 0 2px rgba(232,71,95,.45),0 12px 30px rgba(0,0,0,.35)}
.kitbox.shake{animation:kshake .4s}@keyframes kshake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.kitslots{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:6px}
.kslot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:86px;padding:6px 4px;border:1.5px dashed var(--line2);border-radius:10px;color:var(--dim);background:rgba(255,255,255,.015);font:inherit;text-align:left;touch-action:none;user-select:none;-webkit-user-select:none}
.kslot-n{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--line2);font:700 12px Inter,sans-serif;flex:none}
.kslot small{font-size:12px}
.kslot.full{border-style:solid;border-color:var(--line2);background:var(--card2);color:var(--ink);cursor:grab}
.kslot.full .vial{width:24px;height:auto;flex:none;pointer-events:none}.kslot.full small{color:var(--ink);font:600 10.5px/1.2 Inter,sans-serif;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;word-break:break-word}
.kslot.full i{position:absolute;top:3px;right:6px;font-style:normal;color:var(--dim);font-size:15px;line-height:1}
.kslot.hover{border-color:var(--gold);border-style:solid;background:rgba(232,71,95,.08)}
.kslot.pop{animation:kpop .38s}@keyframes kpop{0%{transform:scale(.92)}60%{transform:scale(1.04)}100%{transform:scale(1)}}
.kitsum{margin-top:8px}.kline{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px;color:var(--muted);padding:0 2px}.kline b{color:var(--ok);font-weight:700}.kbtns{display:flex;gap:8px;margin-top:8px}.kbtns [data-add]{flex:1;min-height:48px;margin:0}.kbtns .kitclear{min-height:48px;margin:0;padding:0 14px}.kitsum .r{display:flex;justify-content:space-between;font-size:14px;padding:3px 0;color:var(--muted)}.kitsum .r b{color:var(--ink)}.kitsum .r.disc b{color:var(--ok)}.kitsum .r.tot{font-size:16px;color:var(--ink);border-top:1px solid var(--line);margin-top:4px;padding-top:8px}
.kitsum .btn{margin-top:10px;min-height:50px}.kitsum .btn[disabled]{opacity:.55}.kitclear{display:block;margin:8px auto 0;font-size:13px}
.kitfind .schips{margin:10px 0 4px}.kithint{margin:6px 0 10px}
.kitlist{display:grid;gap:8px}
.krow{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.krow.out{opacity:.5}
.kdrag{flex:none;width:44px;display:grid;place-items:center;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.kdrag .vial{width:30px;height:auto;pointer-events:none}
.kinfo{flex:1;min-width:0}.kinfo b{display:block;font:700 15px Inter,sans-serif;color:var(--ink)}.kinfo small{color:var(--muted);font-size:13px}
.kadd{flex:none;width:46px;height:46px;border-radius:50%;border:1px solid var(--line2);background:var(--card2);color:var(--ink);font:400 26px/1 Inter,sans-serif;cursor:pointer}
.kadd:not([disabled]):active{background:var(--red);border-color:var(--red)}.kadd[disabled]{opacity:.4}
.kghost{position:fixed;left:0;top:0;z-index:10060;pointer-events:none;filter:drop-shadow(0 14px 18px rgba(0,0,0,.55))}.kghost .vial{width:46px;height:auto}
body.kdragging{cursor:grabbing;user-select:none;-webkit-user-select:none}
/* ===== Wholesale ===== */
.wkits{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;margin-top:16px}
.wkit{display:flex;gap:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.wkimg{position:relative;flex:none;width:72px;display:grid;place-items:center}.wkimg .vial{width:56px;height:auto}
.wk10{position:absolute;right:-4px;bottom:6px;background:var(--red);color:#fff;font:700 11px Inter,sans-serif;padding:2px 6px;border-radius:999px}
.wkbody{flex:1;min-width:0}.wkbody h3{font:700 1.15rem Inter,sans-serif;margin:2px 0 4px}.wkbody h3 a{color:var(--ink);text-decoration:none}.wkbody p{margin:0 0 8px}
.wkprice{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.wkprice b{font:700 1.2rem Inter,sans-serif;color:var(--ink)}.wkprice small{color:var(--muted)}
.wbulk{border-top:1px solid var(--line)}
/* home: kit + wholesale entry cards */
.kitpromo{display:grid;gap:10px}@media(min-width:760px){.kitpromo{grid-template-columns:1fr 1fr}}
.kitcta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;border:1px solid var(--line2);border-left:3px solid var(--red);border-radius:12px;background:var(--card);color:var(--ink);text-decoration:none}
.kitcta.alt{border-left-color:var(--navy)}
.kitcta b{display:block;font:700 1.1rem/1.25 Inter,sans-serif;margin:2px 0}.kitcta small{color:var(--muted)}.kitcta em{font-style:normal;color:var(--gold);font:700 12px Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.annc a{color:inherit;text-decoration:none}
.kghost canvas.vial{width:46px;height:auto;display:block}.kghost-ph{display:block;width:46px;height:106px;border-radius:10px;background:linear-gradient(180deg,#1D3FA6 0 18%,rgba(255,255,255,.85) 38% 78%,rgba(255,255,255,.35) 100%)}

/* Compare suppliers */
.cmpsum{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 10px}.cmpsum>div{background:var(--card,var(--bg2));border:1px solid var(--line2);border-radius:8px;padding:10px 12px}.cmpsum b{display:block;font-size:22px}.cmpsum small{color:var(--muted);font-size:12px}.cmpsum .wide{grid-column:1/-1}.cmpsum .wide span{display:block;font-weight:700;margin-top:2px}
.cmplist{display:grid;gap:10px;margin:10px 0 90px}.cmpc{background:var(--card,var(--bg2));border:1px solid var(--line2);border-radius:10px;padding:12px}.cmpc.on{border-color:var(--gold)}.cmpc.none{opacity:.75}.cmpc header{margin-bottom:8px}.cmpc header>b{display:block}
.cmpchk{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.cmpchk input{width:22px;height:22px;flex:none;margin-top:2px;accent-color:var(--gold)}.cmpchk>span{display:grid;gap:2px}.lowtag{font-style:normal;color:#e4572e;font-weight:700}
.cmprows{display:grid;gap:6px}.cmpr{display:grid;grid-template-columns:1fr auto 52px;gap:10px;align-items:center;width:100%;text-align:left;background:var(--bg);border:1px solid var(--line2);border-radius:8px;padding:10px;color:inherit;font:inherit;min-height:48px}.cmpr.chosen{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.cmpr.best .cv i{color:#3fae6b;font-style:normal;font-weight:700}
.cmpr small{display:block;color:var(--muted);font-size:12px}.cn{text-align:right}.cm{text-align:center;font-weight:800;border-radius:6px;padding:4px 0}.cm.ok{color:#3fae6b;background:rgba(63,174,107,.12)}.cm.mid{color:#d9a400;background:rgba(217,164,0,.12)}.cm.bad{color:#e4572e;background:rgba(228,87,46,.12)}
.cmpqty{display:flex;align-items:center;gap:12px;margin-top:10px;justify-content:flex-end}.cmpqty button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);background:var(--bg);color:inherit;font-size:22px}.cmpqty b{min-width:24px;text-align:center;font-size:18px}
.cmpbar{position:sticky;bottom:calc(70px + env(safe-area-inset-bottom));display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--bg2,var(--bg));border:1px solid var(--gold);border-radius:10px;padding:10px 12px;box-shadow:0 8px 24px rgba(0,0,0,.35);z-index:5}.cmpbar>span{flex:1 1 100%;font-size:14px}
.cmpnote{margin:6px 0 12px}.cmpnote summary{cursor:pointer;color:var(--muted);font-size:13px}

/* COA lookup */
.coaform{display:grid;gap:12px;margin:18px 0;background:var(--card,var(--bg2));border:1px solid var(--line2);border-radius:10px;padding:16px}.coaform label{display:grid;gap:6px;font-weight:600;font-size:14px}.coaform input{font-size:16px;padding:12px;border-radius:6px;border:1px solid var(--line2);background:var(--bg);color:inherit}
.coabtns{display:flex;gap:10px;flex-wrap:wrap}.coares{display:grid;gap:8px;margin:0 0 18px}.coarow{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--card,var(--bg2));border:1px solid var(--line2);border-radius:8px;padding:12px}.coarow small{display:block;color:var(--muted)}
@media(min-width:720px){.coaform{grid-template-columns:repeat(3,1fr)}.coabtns{grid-column:1/-1}}

/* Stock levels hidden from shoppers (CFG.showStock = false). Sold out / coming soon / on order still show. */
html.nostock .stk-in,html.nostock .stk-lim,html.nostock .stk-low{display:none!important}
html.nostock .stockonly{display:none!important}

/* Sign out where people look for it: account header + menu */
.hello{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.hello>div{min-width:0;flex:1 1 auto}.hello h1{overflow-wrap:anywhere}.hello .hsign{margin-left:auto;flex:none}
.dsign{display:grid;gap:8px;margin:14px 0 6px;padding-top:14px;border-top:1px solid var(--line2)}.dsign span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
/* Desktop: "Add to this order" wraps into a grid instead of a hidden-scrollbar strip a mouse can't scroll (phones keep the swipe row) */
@media (min-width:760px){.addmore .row{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));overflow:visible}.addmore .amc{flex:none;min-width:0}}
/* Toasts in Patriot colors (the cream box was left over from PST): navy with a red edge; the "updated" notice is a brand-red card */
#toast,html[data-theme=light] #toast{background:#0A1020;color:#fff;border-left:4px solid #C8102E;border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.35);font-weight:600}
#toast a{color:#fff}
#toast.upd,html[data-theme=light] #toast.upd{display:flex;align-items:center;gap:12px;text-align:left;background:#C8102E;border:0;padding:14px 18px 14px 14px;min-width:min(340px,calc(100% - 24px));box-shadow:0 14px 34px rgba(200,16,46,.35),0 4px 12px rgba(0,0,0,.25)}
#toast.upd .tic{flex:none;width:34px;height:34px;border-radius:50%;background:#fff;color:#C8102E;display:grid;place-items:center}
#toast.upd .ttx{display:flex;flex-direction:column;gap:2px;line-height:1.3}#toast.upd b{font-size:15px;letter-spacing:.02em}#toast.upd small{font-size:13px;font-weight:500;color:rgba(255,255,255,.88)}
/* Owner app "Updated to vX" card: brand red, white text, white primary button */
#updnote,html[data-theme=light] #updnote{background:#C8102E;border:0;color:#fff;box-shadow:0 14px 34px rgba(200,16,46,.35),0 4px 12px rgba(0,0,0,.25)}
#updnote .updin>svg{color:#fff}#updnote b{color:#fff}#updnote small{color:rgba(255,255,255,.9)}#updnote .sx{color:#fff}
#updnote .btn.primary{background:#fff;color:#C8102E;border-color:#fff}#updnote .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
/* Account page: owners get a big "Open the owner app" button (on phones the header Owner menu is hidden) */
.ownercta{display:flex;align-items:center;gap:12px;margin:14px 0 6px;padding:14px 16px;border-radius:12px;background:#C8102E;color:#fff;text-decoration:none;box-shadow:0 10px 26px rgba(200,16,46,.28)}
.ownercta .oc-ic{flex:none;width:38px;height:38px;border-radius:50%;background:#fff;color:#C8102E;display:grid;place-items:center}
.ownercta b{display:block;font-size:16px;color:#fff}.ownercta small{display:block;font-size:13px;color:rgba(255,255,255,.88)}.ownercta .oc-go{margin-left:auto;font-size:26px;line-height:1;color:#fff}
/* Owner app order sheet: shipped-email status with a one-tap send/resend */
.resendrow{display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-size:14px}.resendrow>svg{flex:none;color:#C8102E}.resendrow span{flex:1}
/* Email preview sheet: Send buttons sit above the preview, and the preview is a fixed-height window so it never hides them */
.eframe{display:block;width:100%;height:min(52vh,520px);border:0;border-radius:10px;background:#fff}
.eact{margin-top:12px}
.esent{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;border-radius:12px;background:#0f8a3b;color:#fff}.esent>svg{flex:none}.esent span{flex:1}.esent b{display:block;color:#fff}.esent small{display:block;color:rgba(255,255,255,.9)}
.esent .btn.primary{background:#fff;color:#0f8a3b;border-color:#fff}
/* Desktop header: "Shop ▾" on one line, same size and baseline as the other links */
.nav .mm{display:flex;align-items:center}
.nav .mmb{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:inherit;line-height:inherit;letter-spacing:inherit;color:inherit}
.nav .mmb span{font-size:.8em;line-height:1;transform:translateY(-1px)}
/* Top bar: "Free shipping over $200" stays together and drops to its own line on narrow phones */
.annc .nw{white-space:nowrap;display:inline-block}
/* The Patriot shield is not round: no circle crop, no gold ring (both were PST's round medal). Soft glow instead. */
.medal{border-radius:0;box-shadow:none;object-fit:contain;filter:drop-shadow(0 18px 40px rgba(0,0,0,.55)) drop-shadow(0 0 30px rgba(29,63,166,.35))}
.brand img,.hello img{border-radius:0;object-fit:contain}
/* Home "The Collection": spotlight grid. Phone: big pick on top, compact rows below. Tablet: 2 columns. Desktop: big pick spans two rows beside four compact cards. */
.hspot{display:grid;gap:12px;margin-top:18px}
.spc{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);background:radial-gradient(circle at 20% 60%,#17223b,#0d1424 75%);color:inherit;text-decoration:none;transition:border-color .2s,transform .2s}
.spc:hover{border-color:rgba(200,16,46,.6);transform:translateY(-2px)}
.spimg{display:grid;place-items:center}.spimg .vial,.spimg img,.spimg canvas{max-width:100%;height:auto}
.sptx{display:flex;flex-direction:column;gap:3px;min-width:0}
.sptx .kick{font-size:10.5px;margin:0}
.sptx b.serif{font-size:1.45rem;line-height:1.05;overflow-wrap:anywhere}
.spstr{font-size:13px;color:var(--ink,#e9e4d8)}.spfrom{font-size:13px;color:var(--muted)}.spfrom b{color:#fff}
.sptx .lnk{margin-top:4px;font-size:12px}
.spc.big{grid-template-columns:1fr;text-align:center;padding:26px 18px}
.spc.big .spimg{padding:8px 0 4px}.spc.big .sptx{align-items:center}
.spc.big b.serif{font-size:2.3rem}.spc.big .spstr{font-size:15px}.spc.big .spfrom{font-size:15px}
@media (min-width:700px){.hspot{grid-template-columns:1fr 1fr}.spc.big{grid-column:1/-1;grid-template-columns:1fr 1fr;text-align:left}.spc.big .sptx{align-items:flex-start}}
@media (min-width:1024px){.hspot{grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:auto auto;gap:16px}.spc.big{grid-column:1;grid-row:1/span 2;grid-template-columns:1fr;text-align:center}.spc.big .sptx{align-items:center}.spc{grid-template-columns:96px 1fr;padding:18px}}
html[data-theme=light] .spc{background:radial-gradient(circle at 20% 60%,#ebe5d8,#f6f2ea 75%)}html[data-theme=light] .spfrom b{color:#111}
/* Desktop header: left links start at the left edge, with room before the logo (Rewards was touching it) */
@media (min-width:900px){.hd .wrap.hrow{max-width:1440px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.hrow>.nav.l{justify-content:flex-start;gap:22px;padding-right:28px;min-width:0}.hrow>.nav.r{padding-left:28px}}
@media (min-width:900px) and (max-width:1279px){.hd .nav.l a[href^="rewards"]{display:none}}
@media (min-width:900px) and (max-width:1099px){.hd .nav.l a[href*="Multi-Peptide"]{display:none}.hrow>.nav.l{gap:16px;padding-right:18px}.hrow>.nav.r{padding-left:18px}}
/* Product grids: lines drawn by each card, not the grid background, so a part-filled last row has no blank boxes */
.lgrid{background:none;border:0}.lgrid>*{box-shadow:0 0 0 1px var(--line)}
@media (min-width:700px) and (max-width:1099px){[data-home-recent] .lgrid>:nth-child(n+4),[data-recent] .lgrid>:nth-child(n+4){display:none}}
/* Owner app → Products → Wholesale */
.oseg.four{grid-template-columns:repeat(4,1fr)}
.whhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:6px 0 2px}.whhead .serif{font-size:1.3rem}
.whcount{font-size:13px;font-weight:700;color:#fff;background:#12266E;border-radius:999px;padding:4px 10px;white-space:nowrap}.whcount.over{background:#C8102E}
.whlist{display:grid;gap:8px}
.whrow{display:grid;grid-template-columns:30px minmax(0,1fr) auto;grid-template-areas:"v t s" "v p p";gap:6px 12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.whrow.on{border-color:rgba(46,160,67,.6);box-shadow:inset 3px 0 0 #2EA043}
.whrow>.vial,.whrow>img{grid-area:v}.whtx{grid-area:t;min-width:0}.whtx b{display:block;font-size:15px}.whrow .pmlive{grid-area:s}
.whsel{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-top:3px}.whsel select{font-size:12px;padding:4px 6px;max-width:100%}
.whpr{grid-area:p;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.whpr input{width:110px;padding:6px 8px}
@media (min-width:700px){.whrow{grid-template-columns:30px minmax(0,1fr) auto auto;grid-template-areas:"v t p s"}}
/* Light/dark switch: header icon (desktop), menu row (phone), owner app header */
.hd .thb svg{display:block}
.dtheme{display:flex;align-items:center;gap:10px;width:100%;margin:6px 0 10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:none;color:inherit;font:inherit;font-weight:600;cursor:pointer}
.othb svg{display:block}
/* Patriot light mode (shop + owner app). Content goes Cloud white with navy ink and Signal Red accents (the PST light theme was gold).
   The brand bands stay Night navy in both modes: top bar, header, hero, menu and footer. */
html[data-theme=light]{--bg:#F3F1EC;--bg2:#ECE9E2;--card:#FFFFFF;--card2:#F7F5F0;--line:#DCD8CF;--line2:#C3C9D6;--ink:#0A1020;--muted:#4A5468;--dim:#6E778A;
  --gold:#C8102E;--gold2:#12266E;--ok:#1E7A45;--warn:#9A6A00;--bad:#B3261E}
html[data-theme=light] :is(.annc,.hd,.hero,.drawer,.ft){--bg:#0A1020;--bg2:#0D1527;--card:#111A30;--card2:#141F38;--line:#243050;--line2:#2E3A58;
  --ink:#F3F1EC;--muted:#C9CFDC;--dim:#98A2B8;--gold:#E8475F;--gold2:#F3F1EC;color:var(--ink)}
html[data-theme=light] .hd,html[data-theme=light] .ft{background:#0A1020}html[data-theme=light] .nav{color:#d8d0bf}html[data-theme=light] .annc{color:#fff}
html[data-theme=light] .hero{background:radial-gradient(ellipse at 50% 28%,#1a2742,#0A1020 66%)}
html[data-theme=light] .hspot .spc{background:radial-gradient(circle at 20% 60%,#E7EAF2,#FFFFFF 75%)}html[data-theme=light] .spfrom b{color:#0A1020}
html[data-theme=light] .spot{background:radial-gradient(circle at 50% 45%,#DCE2EE,#F3F1EC 66%)}
html[data-theme=light] .spot .back,html[data-theme=light] .spot .zoomb{color:#4A5468}
html[data-theme=light] .heartb{background:#fff;color:#0A1020;border:1px solid var(--line);box-shadow:0 2px 6px rgba(10,16,32,.08)}html[data-theme=light] .heartb[aria-pressed=true]{color:#C8102E}
/* light mode: PST's dark-grey text rules don't apply inside the navy bands */
html[data-theme=light] :is(.ft,.hd,.annc,.hero,.drawer) :is(nav,p,small,span,a,li,.fcols nav,.ruof){color:inherit}
html[data-theme=light] .ft{color:#C9CFDC}html[data-theme=light] .ft :is(b,h3,h4){color:#F3F1EC}
html[data-theme=light] .kchip,html[data-theme=light] [data-kitcount]{color:#0A1020}
html[data-theme=light] .pmlive[aria-checked=true] i{background:#2EA043}html[data-theme=light] .pmlive[aria-checked=true]{color:#1E7A45}
/* owner header on phones: room for the title with the light/dark button added */
@media (max-width:480px){.ohr{gap:6px}.ohr .btn.sm{padding:0 9px;min-width:38px}.ohr .shopsw span{display:none}.ohd small{white-space:nowrap;letter-spacing:.14em}.ohd>div:first-child{min-width:0;flex:1}.ohd h1{font-size:1.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
/* wholesale rows on phones: the strength picker gets its own full-width line */
@media (max-width:699px){.whsel{flex-wrap:wrap}.whsel select{flex:1 1 100%;width:100%}.whsel{white-space:nowrap}}
html[data-theme=light] .kitbox{background:rgba(255,255,255,.97);box-shadow:0 8px 24px rgba(10,16,32,.08)}
/* light mode: the last PST light rules that landed inside the navy bands (menu links, mega menu, footer sign-up) */
html[data-theme=light] body .drawer details a,html[data-theme=light] body .hd .mgrid a{color:#D8DCE6}
html[data-theme=light] body .ft .news{background:linear-gradient(135deg,#141F38,#0E1838);border-color:#243050}
html[data-theme=light] body .ft .news b,html[data-theme=light] body .ft .news .serif{color:#F3F1EC}html[data-theme=light] body .ft .news span{color:#C9CFDC}
html[data-theme=light] body .hd .mfcard{background:radial-gradient(circle at 20% 50%,#1d2a45,#0d1424 70%)}
html[data-theme=light] body .hd .mfcard :is(b,span,small,.kick){color:#F3F1EC}html[data-theme=light] body .hd .mfcard .kick{color:#E8475F}
html[data-theme=light] body .ft .pays span{color:#C9CFDC}
/* Lab reports page: one tidy card per compound, strengths as PDF chips */
.coagrid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.coac2{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.coahd{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;align-items:center}
.coahd b{display:block;font-size:17px;line-height:1.2}.coahd span{display:block;font-size:12.5px;color:var(--muted)}
.coahd .coapur{font-size:12px;font-weight:800;color:#fff;background:#1E7A45;border-radius:999px;padding:4px 9px;white-space:nowrap}
.coalot{margin:0;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.coachips{display:flex;flex-wrap:wrap;gap:8px}
.coachips a{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border:1px solid var(--line2);border-radius:999px;font-size:13px;font-weight:700;color:var(--ink);text-decoration:none;background:transparent;transition:border-color .15s,background .15s}
.coachips a:hover,.coachips a:focus-visible{border-color:#C8102E;background:rgba(200,16,46,.08)}.coachips svg{opacity:.7}
.coasum{margin:4px 0 0}
