/* Publication palette. All component colors resolve through these shared tokens. */
:root {
 --paper:#fbfaf6; --surface:#fffefb; --sidebar:#f2f3ed; --ink:#223b35; --muted:#596b63;
 --accent:#286752; --accent-hover:#174e3c; --on-accent:#fffef8; --pale:#edf1e8;
 --hover:#e7ede1; --selected:#dfeadd; --line:#d7ddd1; --control-border:#7b9081;
 --accent-soft:#879f89; --focus:#9b5c20; --warning:#815524; --warning-bg:#f8f0df;
 --danger:#9d3e32; --danger-bg:#fbeee8; --table-head:#e8edde;
 --botanical-bg:#edf1e6; --botanical:#4b6d47; --water-bg:#eaf0ef; --water:#376963;
 --clay-bg:#f4ece2; --clay:#805d43; --ochre-bg:#f1efe1; --ochre:#706137;
 --lavender-bg:#efebf2; --lavender:#6c587c; --scale-fill:#a4c4ac; --scale-mark:#315b49;
 --shadow:#243b3520; --serif:Georgia,'Times New Roman',serif;
 color-scheme:light;
}
:root[data-theme=dark] {
 --paper:#15211e; --surface:#1c2b25; --sidebar:#182720; --ink:#e6e8dc; --muted:#b0bcae;
 --accent:#a6cda9; --accent-hover:#c8e7c4; --on-accent:#17271e; --pale:#22332a;
 --hover:#2a3f32; --selected:#314b3b; --line:#3a4b3e; --control-border:#6a806e;
 --accent-soft:#738d71; --focus:#efc484; --warning:#e3bf83; --warning-bg:#362f21;
 --danger:#efb3a4; --danger-bg:#3a2823; --table-head:#293b2f;
 --botanical-bg:#24382b; --botanical:#b4cda1; --water-bg:#223736; --water:#a3cbc7;
 --clay-bg:#382e24; --clay:#d7ba9a; --ochre-bg:#333422; --ochre:#c9c38e;
 --lavender-bg:#302c39; --lavender:#c6b8d8; --scale-fill:#62866a; --scale-mark:#d6e4ce;
 --shadow:#00000045; color-scheme:dark;
}
body { -webkit-font-smoothing:antialiased; }
::selection { background:var(--selected); color:var(--ink); }
:focus-visible { outline:2px solid var(--focus); outline-offset:4px; }
a { text-decoration-thickness:1px; }
a:hover { color:var(--accent-hover); }
input,select { color:var(--ink); accent-color:var(--accent); }
input::placeholder { color:var(--muted); opacity:1; }
input:focus,select:focus { border-color:var(--accent); }
option { background:var(--surface); color:var(--ink); }
button:disabled { cursor:default; }
.masthead { display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;padding:17px 28px;background:var(--paper); }
.brand { font:normal 23px/1.15 var(--serif);letter-spacing:-.6px;white-space:nowrap;gap:11px; }
.brand small,.brand #edition-label { font:10px/1.4 var(--sans);letter-spacing:.25px;margin-top:6px; }
.brand-mark { display:grid;place-items:center;font-size:33px;width:43px;height:43px;line-height:1;border-color:var(--accent-soft); }
.masthead nav { justify-content:flex-end;flex-wrap:wrap;gap:7px 17px; }
.masthead nav>a,.explore-menu>summary { font:500 12px/1.5 var(--sans);white-space:nowrap; }
.masthead nav>a { padding:8px 0; }
#explore-menu>summary { border-color:var(--line);padding:8px 10px; }
.theme-control { display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:10px;border:0;border-left:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);cursor:pointer; }
.theme-control:hover { background:var(--pale); }
.theme-icon { width:17px;height:17px;flex-shrink:0; }
.theme-control>span { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%); }
.explore-links { background:var(--surface);box-shadow:0 12px 28px var(--shadow);border-radius:8px;padding:7px; }
.masthead nav .explore-links a { min-height:42px;display:flex;align-items:center; }
.workspace { grid-template-columns:282px minmax(0,1fr); }
.sidebar { background:var(--sidebar);padding:18px 20px 14px; }
.sidebar-title { font-size:23px;margin-bottom:12px; }
.sidebar .search-wrap input { border-color:var(--control-border);background:var(--surface);border-radius:5px;padding:9px 11px; }
.sidebar .filters select { color:var(--ink); }
.sidebar .sidebar-sort button { min-height:30px; }
.entry-list { scrollbar-color:var(--accent-soft) transparent;scrollbar-width:thin; }
.entry-list .catalogue-group h2 { background:var(--sidebar);box-shadow:0 3px 5px var(--sidebar);font-size:10px;letter-spacing:.7px;text-transform:uppercase; }
.entry-link { padding:11px 9px;line-height:1.5; }
.entry-link:hover { color:var(--ink); }
.entry-link[aria-current=page] { border-left-color:var(--accent); }
@media(min-width:761px) {
 .sidebar .entry-link { padding:6px 9px; }
 .sidebar .entry-link small { margin-top:1px; }
 .entry-list .catalogue-group h2 { padding-block:7px; }
}
main { padding:48px clamp(28px,5vw,78px) 80px; }
.hero h1 { font-size:clamp(40px,4.4vw,62px);font-weight:normal;letter-spacing:-2px;line-height:1.08;margin-bottom:20px; }
.hero .intro { font-size:16px;line-height:1.8;max-width:620px; }
.hero-actions { margin:25px 0 36px; }
.button { border-radius:5px;font-weight:550;padding:11px 18px; }
.button:hover { background:var(--accent-hover);color:var(--on-accent); }
.button.secondary:hover { background:var(--hover);color:var(--accent-hover); }
.popular-section { padding-top:27px; }
.popular-section .section-title h2 { font-size:clamp(28px,2.8vw,37px);letter-spacing:-.9px; }
.popular-carousel { grid-auto-columns:minmax(210px,calc((100% - 32px)/3));padding:3px 2px 14px;scrollbar-color:var(--accent-soft) transparent; }
.popular-card { border-radius:8px;border-color:var(--line);min-height:286px;padding:22px 22px 19px; }
.popular-art { height:66px;margin-bottom:22px;color:inherit;opacity:.85; }
.popular-art .peptide-icon { width:62px;height:62px; }
.popular-card strong { font-size:28px;letter-spacing:-.7px; }
.popular-topic { font-size:13px;line-height:1.65;color:var(--muted);margin-top:12px; }
.card-action { border-color:var(--line);padding-top:14px; }
.popular-card:hover { background:var(--hover);border-color:var(--accent-soft); }
.popular-class { font-size:10px;letter-spacing:1px; }
.carousel-controls { gap:10px; }
.carousel-controls button { width:46px;height:46px;border:2px solid var(--accent);background:var(--accent);color:var(--on-accent); }
.carousel-controls button svg { display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round; }
.carousel-controls button:hover:not(:disabled) { background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent); }
.carousel-controls button:focus-visible { outline:3px solid var(--focus);outline-offset:3px; }
.carousel-controls button:disabled { opacity:1;background:var(--pale);border-color:var(--line);color:var(--control-border); }
.goal-card { border-radius:6px; }
.goal-card:hover { background:var(--hover); }
.quick-link-grid { gap:0 28px; }
.quick-links .quick-link { border:0;border-top:1px solid var(--line);border-radius:0;padding:19px 0;background:transparent; }
.quick-links .quick-link:hover { background:transparent;border-color:var(--accent); }
.entry-header h1 { font-size:clamp(36px,3.6vw,51px);letter-spacing:-1.3px; }
.entry-header .summary { font-size:19px;line-height:1.7;max-width:74ch; }
.metadata { font-size:11px; }
.prose { font-size:18px;line-height:1.85; }
.prose h2 { font:normal 30px/1.25 var(--serif);letter-spacing:-.6px;margin-top:40px; }
.prose h3 { letter-spacing:-.2px; }
.handbook-prose { font:15px/1.85 var(--sans); }
.handbook-prose>ul li { padding:15px 18px; }
.modebar a { padding:10px 16px; }
.modebar a.active { background:var(--accent);color:var(--on-accent);border-color:var(--accent); }
.modebar a:not(.active):hover { background:var(--hover);color:var(--ink); }
.section-nav a { border-radius:5px;padding:8px 11px; }
.reading-disclosure>summary { padding:18px 20px; }
.reading-disclosure[open]>summary { border-bottom:1px solid var(--line);background:var(--pale); }
.prose .reading-disclosure>summary h2 { font-size:15px;letter-spacing:0; }
table { font-size:13px;line-height:1.65; }
th { background:var(--table-head);color:var(--ink); }
td { font-variant-numeric:tabular-nums; }
.references { font-size:12px;line-height:1.8; }
.references li:target { border-radius:4px;outline:2px solid var(--focus);outline-offset:3px; }
.finder-search,.stack-browser .stack-search-card,.interaction-picker,.interaction-checker { border-radius:8px;background:var(--pale); }
.finder-result { background:transparent;border-radius:6px; }
.finder-result:hover { background:var(--hover); }
.interaction-record { background:var(--surface); }
.interaction-concern { background:var(--warning-bg); }
.interaction-record>summary { flex-wrap:wrap; }
.guide-fold>summary:hover { color:var(--accent); }
.resource-card { border-radius:7px;background:var(--surface); }
.featured-suppliers .resource-card { border-left-color:var(--accent-soft); }
.result-panel { background:var(--pale);border-radius:8px;border-color:var(--line); }
.calc-u100 { border-color:var(--control-border); }
.calculator-page input,.calculator-page select { background:var(--surface); }
.syringe { background:var(--surface); }
.calc-guide-section details[open] { background:var(--surface); }
.calc-warning { color:var(--warning); }
.calc-table tbody tr:nth-child(even) { background:var(--surface); }
:is(a,button,summary,input,select) { -webkit-tap-highlight-color:transparent; }
@media(min-width:761px) and (max-width:1250px) {
 .masthead { grid-template-columns:1fr auto;padding:15px 24px;gap:13px; }
 .masthead nav { grid-column:1/-1;grid-row:2;justify-content:flex-start;gap:6px 23px; }
 .theme-control { grid-column:2;grid-row:1; }
 .workspace { grid-template-columns:254px minmax(0,1fr); }
 .popular-carousel { grid-auto-columns:minmax(210px,calc((100% - 16px)/2)); }
}
@media(max-width:760px) {
 .masthead { position:relative;grid-template-columns:minmax(0,1fr) auto;padding:18px 20px 13px;gap:13px 8px; }
 .brand { font-size:20px;gap:9px;white-space:normal; }
 .brand-mark { width:35px;height:35px;min-width:35px;font-size:28px; }
 .brand #edition-label { font-size:9px;letter-spacing:0; }
 .theme-control { grid-column:2;grid-row:1;padding-left:8px;gap:3px; }
 #theme-select { width:77px;font-size:12px; }
 .theme-icon { width:15px;height:15px; }
 .masthead nav { grid-column:1/-1;grid-row:2;justify-content:flex-start;gap:3px 17px; }
 .masthead nav>a,.explore-menu>summary { font-size:12px;min-height:36px; }
 .more-menu .explore-links { left:auto;right:0; }
 .workspace { display:block; }
 .sidebar { padding:16px 20px; }
 .sidebar-title { font-size:22px;margin-bottom:10px; }
 .sidebar .search-wrap input { padding:9px 11px;font-size:16px; }
 .browse-toggle { min-height:40px;padding-top:10px;align-items:center; }
 .sidebar .sidebar-sort button { min-height:36px; }
 main { padding:32px 21px 60px; }
 .hero h1 { font-size:42px;letter-spacing:-1.4px; }
 .hero .intro { font-size:15px;line-height:1.8; }
 .hero-actions { margin:23px 0 30px;gap:9px; }
 .button { font-size:12px;padding:11px 13px; }
 .popular-carousel { grid-auto-columns:82%; }
 .popular-section .section-title h2 { font-size:30px; }
 .popular-card { min-height:280px; }
 .entry-header h1 { font-size:37px; }
 .entry-header .summary { font-size:18px; }
 .prose { font-size:17px; }
 .handbook-prose { font-size:15px; }
 .prose h2 { font-size:27px; }
 .modebar a { min-width:0;flex:1; }
 .modebar button { min-height:40px; }
 .quick-link-grid { grid-template-columns:1fr; }
 .interaction-record-count { white-space:normal; }
 .section-nav a { min-height:36px; }
}
@media(max-width:370px) {
 .masthead { padding-left:14px;padding-right:14px; }
 .brand { font-size:18px; }
 .brand-mark { display:none; }
 .masthead nav { gap:3px 14px; }
 .theme-icon { display:none; }
 .popular-section .section-title h2 { font-size:27px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
}
@media print {
 :root[data-theme] { --paper:white;--surface:white;--sidebar:white;--ink:#182d30;--muted:#53686a;--accent:#176d66;--pale:#edf3ee;--line:#d7e1dc;--on-accent:white;color-scheme:light; }
 .theme-control { display:none; }
}

/* Theme changes are immediate; avoid mixed palettes during a color transition. */
.popular-card,.finder-result { transition:none; }


.reading-disclosure>summary:focus-visible { outline-offset:-4px; }
.unit-toggle button.active:focus-visible { outline-color:var(--on-accent); }

.popular-card:focus-visible { outline-offset:-5px; }
@media(max-width:760px) {
 .masthead nav { position:relative; }
 .more-menu { position:static; }
 .more-menu .explore-links { top:calc(100% + 8px);right:0;left:auto; }
}
.section-nav,.guide-toc,.guide-crosslinks,.calc-jumps { justify-content:flex-start; }
