/* Peptide Policy Watch: warm, readable, editorial. Topic colours (.t-<slug>) are generated by build.py from config.json. */
:root{--bg:#fbf9f5;--fg:#1d2730;--muted:#57636d;--brand:#1f3a5f;--brand-d:#14263f;--card:#fff;--line:#e4dfd5;--soft:#f3efe7;--link:#0a58a8;
--ok-bg:#e8f4ec;--ok-bd:#2f7d4f;--ok-fg:#14502e;--means-bg:#e9f0fa;--means-bd:#2c5ea3;--warn-bg:#fff4d9;--warn-bd:#b27a0a;--warn-fg:#6b4700;--watch-bg:#f1ecf8;--watch-bd:#6b4ba6;--sum-bg:#f3efe7;--sum-bd:#7a6f5a;
--shadow:0 1px 2px rgba(20,38,63,.06),0 6px 20px rgba(20,38,63,.07);--r:16px;--tc:#1f3a5f;--tb:#e6edf7;--tf:#16345f}
@media (prefers-color-scheme:dark){:root{--bg:#12171a;--fg:#e9edef;--muted:#a6b1b8;--brand:#9bbcec;--brand-d:#c3d6f3;--card:#1b2226;--line:#2c353b;--soft:#222a2f;--link:#8fc3ff;
--ok-bg:#16291d;--ok-bd:#4fa874;--ok-fg:#b5e3c7;--means-bg:#16222f;--means-bd:#6ea2e6;--warn-bg:#2b2412;--warn-bd:#d0a03a;--warn-fg:#f0d9a0;--watch-bg:#211b2e;--watch-bd:#a58ad8;--sum-bg:#222a2f;--sum-bd:#9a8f78;
--shadow:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.35)}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--bg);color:var(--fg);font:1.1563rem/1.75 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--link);text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
a:focus-visible,.btn:focus-visible{outline:3px solid var(--link);outline-offset:3px;border-radius:6px}
img{max-width:100%;height:auto;display:block}
.skip{position:absolute;left:-999px;top:0;background:var(--brand);color:#fff;padding:.6rem 1rem;z-index:20}
.skip:focus{left:0}
.wrap{max-width:70rem;margin:0 auto;padding:0 1.25rem}
.prose-wrap{max-width:46rem}
header.site{border-bottom:1px solid var(--line);background:var(--card)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem 1.25rem;padding-top:.9rem;padding-bottom:.9rem}
.brand{font-weight:800;font-size:1.25rem;color:var(--brand);text-decoration:none;letter-spacing:-.01em}
nav.main{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
nav.main a{color:var(--fg);text-decoration:none;font-size:1rem;padding:.35rem 0}
nav.main a:hover{text-decoration:underline}
main{padding:1.5rem 0 3.5rem}
h1{font-size:2.15rem;line-height:1.2;margin:.4rem 0 1rem;letter-spacing:-.02em;text-wrap:balance}
h2{font-size:1.55rem;line-height:1.3;margin:2.6rem 0 .8rem;letter-spacing:-.01em}
h3{font-size:1.2rem;line-height:1.35;margin:1.9rem 0 .5rem}
p,ul,ol,table,blockquote{margin:0 0 1.25rem}
ul,ol{padding-left:1.5rem}
li{margin-bottom:.55rem}
.lead{font-size:1.25rem;line-height:1.6;color:var(--muted)}
.meta{color:var(--muted);font-size:.95rem;margin-bottom:1.5rem}
.prose>p,.prose>ul,.prose>ol{max-width:42rem}
.prose hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
blockquote{background:var(--soft);border-left:5px solid var(--brand);padding:1rem 1.25rem;border-radius:0 var(--r) var(--r) 0}
blockquote p:last-child{margin:0}
code{background:var(--soft);padding:.1em .35em;border-radius:6px;font-size:.92em}
.table-wrap{overflow-x:auto;margin:0 0 1.5rem;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
table{border-collapse:collapse;width:100%;min-width:34rem;font-size:1rem;margin:0}
th,td{padding:.75rem .9rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:0}
th{background:var(--soft);font-weight:700}
.notice{background:var(--soft);border-radius:var(--r);padding:1rem 1.25rem;font-size:1rem;margin-top:2.5rem}
.preview-banner{background:#fff1b8;color:#4a3800;padding:.7rem 1rem;text-align:center;border-bottom:2px solid #d4a017}

/* buttons */
.btn{display:inline-block;font-weight:700;font-size:1.05rem;line-height:1.2;text-decoration:none;padding:.9rem 1.5rem;border-radius:999px;border:2px solid transparent;min-height:48px;transition:background .15s,transform .15s}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-d);transform:translateY(-1px)}
@media (prefers-color-scheme:dark){.btn-primary{background:#9bbcec;color:#0f1a2b}.btn-primary:hover{background:#c3d6f3}}
.btn-ghost{background:transparent;color:var(--brand);border-color:var(--brand)}
.btn-ghost:hover{background:var(--soft)}

/* badges: colours come from the generated .t-<slug> variables; .badge without one falls back to brand colours */
.badges{list-style:none;padding:0;margin:0 0 .6rem;display:flex;flex-wrap:wrap;gap:.4rem}
.badges li{margin:0}
.badge{display:inline-block;background:var(--tb);color:var(--tf);font-size:.84rem;font-weight:700;line-height:1;padding:.42rem .75rem;border-radius:999px;text-decoration:none;border:1px solid color-mix(in srgb,var(--tf) 25%,transparent)}
a.badge:hover{text-decoration:underline}
.draft-tag{display:inline-block;background:#fff1b8;color:#4a3800;font-size:.8rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;margin-right:.4rem}

/* hero */
.hero{position:relative;background:var(--brand-d);color:#fff;margin:-1.5rem 0 0;overflow:hidden}
.hero:not(.has-photo){background:linear-gradient(135deg,#1f3a5f,#2c5ea3)}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero.has-photo .hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,24,42,.93) 0%,rgba(12,24,42,.82) 55%,rgba(12,24,42,.55) 100%)}
.hero-copy{position:relative;padding:4rem 0 4.5rem}
.hero h1{font-size:2.8rem;max-width:40rem;color:#fff}
.hero .lead{color:#e8eef8;max-width:40rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.75rem 0 0}
.hero .btn-primary{background:#fff;color:#14263f}
.hero .btn-primary:hover{background:#e6edf7}
.hero .btn-ghost{color:#fff;border-color:#fff}
.hero .btn-ghost:hover{background:rgba(255,255,255,.14)}
.hero-credit{position:relative;margin:0;padding:.5rem 1.25rem;font-size:.82rem;line-height:1.4;color:#d5deea;background:rgba(0,0,0,.35)}
.hero-credit a{color:#fff}

/* intro tiles */
.intro{margin-top:2.5rem}
.intro h2{margin-top:0}
.tiles{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem}
.tiles li{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.25rem;margin:0;box-shadow:var(--shadow)}
.tiles strong{display:block;color:var(--brand);font-size:1.1rem;margin-bottom:.25rem}
.tiles span{color:var(--muted);font-size:1rem;line-height:1.5;display:block}

/* post cards */
.pcards{list-style:none;padding:0;margin:1.25rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:1.5rem}
.pcard{margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.pcard-img{display:block;aspect-ratio:640/336;background:var(--soft);overflow:hidden}
.pcard-img img{width:100%;height:100%;object-fit:cover}
.pcard-ph{background:var(--tc)}
.pcard-body{padding:1.25rem 1.4rem 1.4rem;display:flex;flex-direction:column;flex:1}
.pcard-meta{color:var(--muted);font-size:.9rem;margin:0 0 .35rem}
.pcard-title{font-size:1.25rem;line-height:1.35;margin:0 0 .6rem}
.pcard-title a{color:var(--fg);text-decoration:none}
.pcard-title a:hover{text-decoration:underline}
.pcard-desc{color:var(--muted);font-size:1rem;line-height:1.55;margin:0 0 1rem}
.pcard-more{margin:auto 0 0;font-weight:700}
.pcard.feature{grid-column:1/-1;flex-direction:row}
.pcard.feature .pcard-img{flex:0 0 46%;aspect-ratio:auto;min-height:16rem}
.pcard.feature .pcard-title{font-size:1.6rem}
@media (max-width:760px){.pcard.feature{flex-direction:column}.pcard.feature .pcard-img{flex:none;aspect-ratio:640/336;min-height:0}.hero h1{font-size:2.15rem}.hero-copy{padding:2.75rem 0 3.25rem}h1{font-size:1.8rem}}

/* topic cards */
.tcards{list-style:none;padding:0;margin:1.25rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem}
.tcard{margin:0}
.tcard a{display:flex;flex-direction:column;gap:.35rem;height:100%;background:var(--card);border:1px solid var(--line);border-top:5px solid var(--tc);border-radius:var(--r);padding:1.1rem 1.25rem;text-decoration:none;color:var(--fg);box-shadow:var(--shadow);transition:transform .15s}
.tcard a:hover{transform:translateY(-2px)}
.tcard-ico{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border-radius:12px;background:var(--tb);color:var(--tf)}
.tcard-name{font-weight:800;font-size:1.15rem}
.tcard-blurb{color:var(--muted);font-size:.97rem;line-height:1.5}
.tcard-count{font-size:.9rem;font-weight:700;color:var(--link);margin-top:auto;padding-top:.4rem}
.topic-head{border-left:6px solid var(--tc);padding:.25rem 0 .25rem 1.25rem;margin:1rem 0 2rem}
.topic-ico{display:inline-flex;width:3rem;height:3rem;align-items:center;justify-content:center;background:var(--tb);color:var(--tf);border-radius:14px;margin:0 0 .5rem}
.topic-head h1{margin-top:0}
.empty{background:var(--soft);padding:1.25rem;border-radius:var(--r)}
.more-topics{margin-top:3rem}
.how{margin-top:3rem}.how li{max-width:46rem}

/* post hero figure */
.post-hero{margin:0 0 2rem}
.post-hero img{width:100%;border-radius:var(--r);box-shadow:var(--shadow);aspect-ratio:1200/630;object-fit:cover;background:var(--soft)}
.post-hero figcaption{font-size:.85rem;line-height:1.5;color:var(--muted);margin-top:.6rem}
.banner-fallback svg{width:100%;height:auto;border-radius:var(--r);display:block}

/* callouts */
.callout{border-left:6px solid var(--cb);background:var(--cbg);border-radius:var(--r);padding:1.15rem 1.4rem .6rem;margin:2rem 0;--cb:var(--sum-bd);--cbg:var(--sum-bg)}
.callout-kicker{display:flex;align-items:center;gap:.55rem;margin:0 0 .6rem;font-weight:800;font-size:1.05rem;color:var(--cb)}
.callout h2,.callout h3{margin-top:.2rem;font-size:1.25rem}
.callout-body>*:last-child{margin-bottom:.6rem}
.callout-body ul,.callout-body ol{padding-left:1.3rem}
.callout .callout-body h2:first-child,.callout .callout-body h3:first-child{margin-top:0}
.c-confirmed{--cb:var(--ok-bd);--cbg:var(--ok-bg)}
.c-confirmed .callout-kicker{color:var(--ok-fg)}
.c-means,.c-plain{--cb:var(--means-bd);--cbg:var(--means-bg)}
.c-unverified{--cb:var(--warn-bd);--cbg:var(--warn-bg)}
.c-unverified .callout-kicker{color:var(--warn-fg)}
.c-watch{--cb:var(--watch-bd);--cbg:var(--watch-bg)}
.c-summary,.c-key-facts{--cb:var(--sum-bd);--cbg:var(--sum-bg)}
.c-key-facts{--cb:var(--brand)}
.c-key-facts .callout-kicker{color:var(--brand)}
.c-means .callout-kicker,.c-plain .callout-kicker{color:var(--means-bd)}
@media (prefers-color-scheme:light){.c-means .callout-kicker,.c-plain .callout-kicker{color:#1d4a8a}.c-watch .callout-kicker{color:#533a87}.c-summary .callout-kicker{color:#5c523f}}
.c-watch .callout-kicker{color:var(--watch-bd)}.c-summary .callout-kicker{color:var(--sum-bd)}
.tag-s{display:inline-block;background:var(--warn-bg);color:var(--warn-fg);border:1px solid var(--warn-bd);border-radius:6px;font-size:.78rem;font-weight:800;padding:0 .35rem;line-height:1.5;margin-right:.2rem}
.box-legend{font-size:.9rem;color:var(--muted)}
.callout .ico,.cats .ico{flex:none}

/* graphics */
.graphic{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem 1.4rem 1rem;margin:2.25rem 0;box-shadow:var(--shadow)}
.graphic-title{font-weight:800;font-size:1.15rem;margin:0 0 1rem;color:var(--brand)}
.graphic-src{font-size:.85rem;line-height:1.5;color:var(--muted);border-top:1px solid var(--line);padding-top:.7rem;margin-top:1rem}
.graphic-notes p,.graphic-foot{font-size:.95rem;color:var(--muted);margin:.4rem 0}
.tl,.tl-section ul{list-style:none;padding:0;margin:0;position:relative}
.tl::before{content:"";position:absolute;left:.62rem;top:.4rem;bottom:.4rem;width:3px;background:var(--line);border-radius:2px}
.tl-i{position:relative;padding:0 0 1.2rem 2.2rem;margin:0}
.tl-i::before{content:"";position:absolute;left:.1rem;top:.4rem;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--card);border:4px solid var(--brand)}
.tl-i.s-reported::before{border-color:var(--warn-bd);background:var(--warn-bg)}
.tl-i.s-pending::before{border-style:dashed;border-color:var(--watch-bd)}
.tl-date{display:block;font-weight:800;color:var(--brand);font-size:1rem}
.tl-body p{margin:.1rem 0 .4rem;font-size:1.02rem;line-height:1.55}
.chip{display:inline-block;font-size:.8rem;font-weight:700;padding:.15rem .6rem;border-radius:999px;border:1px solid var(--line);background:var(--soft);color:var(--muted)}
.chip-official{background:var(--ok-bg);color:var(--ok-fg);border-color:var(--ok-bd)}
.chip-reported{background:var(--warn-bg);color:var(--warn-fg);border-color:var(--warn-bd)}
.chip-pending{background:var(--watch-bg);color:var(--fg);border-color:var(--watch-bd)}
.votes{list-style:none;padding:0;margin:1rem 0}
.votes li{display:grid;grid-template-columns:6.5rem 1fr;align-items:center;gap:.75rem;margin:0 0 .7rem}
.v-name{font-weight:700;font-size:1rem}
.v-bar{display:flex;gap:3px;height:2.1rem;border-radius:10px;overflow:hidden}
.v-bar span{display:flex;align-items:center;justify-content:center;flex-basis:0;font-weight:800;font-size:.95rem;color:#fff;min-width:1.6rem}
.v-for{background:#2b6e47}.v-against{background:#9b3a2e}.v-abs{background:#5d6770}
.v-legend{font-size:.92rem;margin:.75rem 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .8rem}
.k{display:inline-block;width:.9rem;height:.9rem;border-radius:4px;margin-right:.3rem;vertical-align:-1px}
.k-for{background:#2b6e47}.k-against{background:#9b3a2e}.k-abs{background:#5d6770}
.v-note{color:var(--muted)}
.cats{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1rem}
.cat{background:var(--soft);border-radius:14px;padding:1rem 1.1rem .4rem;margin:0;border-top:5px solid var(--brand)}
.cat-2{border-top-color:#8a5a12}.cat-3{border-top-color:#6b4ba6}.cat-4{border-top-color:#2f7d4f}
.cat-n{display:block;font-size:.85rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.cat-t{display:block;font-size:1.1rem;margin:.15rem 0 .4rem}
.cat p{font-size:.98rem;line-height:1.55}
@media (max-width:560px){.votes li{grid-template-columns:1fr;gap:.25rem}}

/* the "week in order" list becomes a visual timeline */
.tl-section{margin:2rem 0}
.tl-section>ul{position:relative;padding-left:0}
.tl-section>ul::before{content:"";position:absolute;left:.62rem;top:.5rem;bottom:.5rem;width:3px;background:var(--line)}
.tl-section>ul>li{position:relative;padding-left:2.2rem;margin-bottom:1.1rem}
.tl-section>ul>li::before{content:"";position:absolute;left:.1rem;top:.45rem;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--card);border:4px solid var(--brand)}

/* affiliate slot (hidden unless configured), related, image credits */
.affiliate-slot{border:1px dashed var(--line);border-radius:var(--r);padding:1rem 1.25rem;margin:2rem 0}
.aff-head{font-weight:700;margin:0 0 .4rem}
.aff-tag{font-size:.8rem;font-weight:700;background:var(--soft);padding:.1rem .45rem;border-radius:6px}
.related{margin-top:2.5rem}
.credit-list{list-style:none;padding:0;display:grid;gap:1.5rem}
.credit{display:grid;grid-template-columns:minmax(10rem,18rem) 1fr;gap:1.25rem;margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1rem;box-shadow:var(--shadow)}
.credit img{width:100%;border-radius:10px}
.credit h2{margin:0 0 .5rem;font-size:1.15rem}
.credit dl{margin:0;font-size:.97rem}
.credit dt{font-weight:700;float:left;clear:left;width:6rem}
.credit dd{margin:0 0 .3rem 6.5rem;overflow-wrap:anywhere}
@media (max-width:640px){.credit{grid-template-columns:1fr}}

footer.site{border-top:1px solid var(--line);background:var(--card);padding:2rem 0;font-size:.95rem;color:var(--muted)}
footer.site nav{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-bottom:1rem}
footer.site nav a{color:var(--fg)}
footer.site p{max-width:52rem;line-height:1.6;margin:0}
@media print{header.site,footer.site,.hero-actions,.skip{display:none}body{font-size:12pt;background:#fff;color:#000}}

/* generated from config.json topics by build.py */
.t-fda{--tc:#2563b0;--tb:#dbe8fb;--tf:#123a73}
.t-telehealth{--tc:#0f8a73;--tb:#d3f0e8;--tf:#0a4d41}
.t-legal{--tc:#7c3fa8;--tb:#ecdff6;--tf:#4a1d6b}
.t-clinical-trials{--tc:#d9731a;--tb:#fde4cb;--tf:#7a3000}
.t-compounding{--tc:#5a9a2a;--tb:#dff0cc;--tf:#2b4f12}
.t-advisory-committee{--tc:#c2305b;--tb:#fbdbe5;--tf:#7a1233}
.t-policy{--tc:#5b6781;--tb:#e4e7ee;--tf:#2a3140}
@media (prefers-color-scheme:dark){
.t-fda{--tb:#1d3557;--tf:#cfe0fb}
.t-telehealth{--tb:#0f3b33;--tf:#bdeadf}
.t-legal{--tb:#35244a;--tf:#e3d0f3}
.t-clinical-trials{--tb:#4a2a10;--tf:#fcdcbc}
.t-compounding{--tb:#26391a;--tf:#d3ebb9}
.t-advisory-committee{--tb:#4a1a2b;--tf:#fbcfdc}
.t-policy{--tb:#2c3340;--tf:#d6dbe6}
}
