:root{
  --bg:#f7f9fb; --panel:#ffffff; --panel2:#f0f3f7; --line:#e3e8ef;
  --ink:#26313f; --head:#0c1522; --muted:#586576; --faint:#8996a6;
  --accent:#0d9488; --accent-ink:#ffffff; --accent2:#2563eb; --link:#2563eb;
  --green:#059669; --yellow:#b45309; --blue:#2563eb; --orange:#c2410c; --red:#dc2626; --black:#4b5563;
  --star:#d97706; --purple:#7c3aed;
  --shadow:0 10px 30px rgba(15,30,50,.08);
  --radius:14px; --maxw:1080px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
code{background:var(--panel2);padding:1px 6px;border-radius:6px;font-size:.88em;color:#0f766e;font-family:var(--mono)}
h1,h2,h3,h4{line-height:1.25;color:var(--head)}
hr{border:none;border-top:1px solid var(--line);margin:1.4rem 0}

/* top bar */
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:1rem;
  padding:.7rem 1.2rem;background:rgba(255,255,255,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{font-weight:800;font-size:1.15rem;color:var(--accent);letter-spacing:-.02em}
.brand span{color:#000}
.search-wrap{position:relative;flex:1;max-width:520px}
#search{width:100%;padding:.55rem .9rem;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:.95rem;outline:none}
#search:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.search-results{position:absolute;top:110%;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;max-height:60vh;overflow:auto;box-shadow:var(--shadow);padding:.3rem}
.search-results a{display:block;padding:.5rem .7rem;border-radius:8px;color:var(--ink)}
.search-results a:hover,.search-results a.active{background:var(--panel2);text-decoration:none}
.search-results .sr-kind{font-size:.72rem;color:var(--faint);text-transform:uppercase;letter-spacing:.05em}
.topnav{display:flex;gap:1.1rem;font-size:.92rem}
.topnav a{color:var(--muted)}
.topnav a:hover{color:var(--head);text-decoration:none}
.menu-btn{display:none;background:none;border:none;color:var(--head);font-size:1.4rem;cursor:pointer}
.stack-badge{display:inline-block;min-width:18px;height:18px;line-height:18px;text-align:center;background:var(--accent);color:#fff;border-radius:999px;font-size:.72rem;font-weight:800;padding:0 5px}

main{max-width:var(--maxw);margin:0 auto;padding:2rem 1.2rem 4rem}

/* hero */
.hero{text-align:center;padding:2.6rem 0 1.6rem}
.hero .kicker{font-family:var(--mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem}
.hero h1{font-size:2.5rem;letter-spacing:-.03em;margin:.2rem 0;color:var(--head)}
.hero p{color:var(--muted);font-size:1.12rem;max-width:660px;margin:.8rem auto 0}
.hero .lead{color:var(--accent)}
.blueprint{position:relative}
.blueprint::before{content:"";position:absolute;inset:-2rem 0 0;z-index:-1;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:34px 34px;opacity:.6;mask-image:radial-gradient(ellipse at 50% 25%,#000 0%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 50% 25%,#000 0%,transparent 70%)}
.counters{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:1.8rem}
.counter{display:flex;flex-direction:column;align-items:center;min-width:130px;padding:1rem 1.2rem;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--ink);box-shadow:var(--shadow);transition:.15s}
a.counter:hover{border-color:var(--accent);transform:translateY(-2px);text-decoration:none}
.counter b{font-family:var(--mono);font-size:2rem;font-weight:800;color:var(--head);line-height:1}
.counter span{font-size:.76rem;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;margin-top:.35rem}

.section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--faint);margin:2.2rem 0 1rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.see-all{font-size:.78rem;font-weight:500;text-transform:none;letter-spacing:0}

/* goal grid */
.goal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.9rem}
.goal-card{display:flex;align-items:center;gap:.8rem;padding:1.1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:.15s;color:var(--ink);box-shadow:var(--shadow)}
.goal-card:hover{border-color:var(--accent);transform:translateY(-2px);text-decoration:none}
.goal-card .ico{font-size:1.7rem}
.goal-card .lbl{font-weight:600}
.goal-card .n{font-size:.8rem;color:var(--faint)}

/* target chips (home) */
.tchip-row{display:flex;gap:.6rem;flex-wrap:wrap}
.tchip{display:flex;align-items:center;gap:.5rem;padding:.5rem .9rem;background:#fff;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);color:var(--ink);box-shadow:var(--shadow)}
.tchip:hover{border-color:var(--accent2);text-decoration:none}
.tchip b{color:var(--accent2)}
.tchip span{background:var(--panel2);color:var(--muted);border-radius:999px;padding:0 .5rem;font-size:.78rem}

/* legend */
.legend{display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.4rem;box-shadow:var(--shadow);margin:.4rem 0}
.legend-h{font-size:.9rem;font-weight:700;color:var(--head);margin-bottom:.7rem}
.legend-h span{font-weight:400;color:var(--faint);font-size:.82rem}
.legend-row{display:flex;align-items:center;gap:.7rem;padding:.28rem 0;font-size:.9rem;color:var(--muted)}
.legend-row .stars{min-width:5.6em}
.legend-row .pill{font-size:.78rem}

/* learn cards */
.learn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.9rem}
.learn-card{padding:1.2rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:.15s;box-shadow:var(--shadow)}
.learn-card:hover{border-color:var(--accent2);transform:translateY(-2px)}
.learn-card h3{margin:.2rem 0 .4rem;font-size:1.05rem}
.learn-card p{color:var(--muted);font-size:.9rem;margin:0}
.learn-card .step{font-size:.72rem;color:var(--accent);text-transform:uppercase;letter-spacing:.08em}

/* compound cards */
.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:1.2rem}
.chip{padding:.35rem .8rem;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--muted);font-size:.83rem;cursor:pointer;transition:.12s}
.chip:hover{color:var(--head);border-color:var(--faint)}
.chip.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.9rem}
.cpd-card{padding:1.1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:.15s;box-shadow:var(--shadow)}
.cpd-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.cpd-card h3{margin:0 0 .3rem;font-size:1.08rem}
.cpd-card .cat{font-size:.74rem;color:var(--faint);text-transform:uppercase;letter-spacing:.05em}
.cpd-card .mech{color:var(--muted);font-size:.88rem;margin:.5rem 0 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.badges{display:flex;gap:.4rem;align-items:center;margin-top:.6rem;flex-wrap:wrap}
.stars{color:var(--star);letter-spacing:1px;font-size:.82rem}
.pill{display:inline-block;white-space:nowrap;vertical-align:middle;font-size:.72rem;padding:.15rem .5rem;border-radius:999px;font-weight:600}
.pill.g{background:rgba(5,150,105,.12);color:var(--green)}
.pill.y{background:rgba(180,83,9,.12);color:var(--yellow)}
.pill.b{background:rgba(37,99,235,.12);color:var(--blue)}
.pill.o{background:rgba(194,65,12,.12);color:var(--orange)}
.pill.r{background:rgba(220,38,38,.12);color:var(--red)}
.pill.k{background:rgba(75,85,99,.14);color:var(--black)}
.mini-targets{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.6rem}
.mini-t{font-family:var(--mono);font-size:.7rem;color:var(--accent2);background:rgba(37,99,235,.08);border:1px solid rgba(37,99,235,.2);border-radius:6px;padding:1px 6px}

/* breadcrumbs */
.crumbs{font-size:.82rem;color:var(--faint);margin-bottom:1rem;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.crumbs a{color:var(--muted)}
.crumbs .sep{color:var(--line)}

/* detail page */
.detail{max-width:780px;margin:0 auto}
.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.detail h1{font-size:2rem;margin:.2rem 0 .4rem;letter-spacing:-.02em}
.detail .badges{margin:.6rem 0 0}
.stack-btn-lg{white-space:nowrap;padding:.6rem 1rem;border-radius:10px;border:1px solid var(--accent);background:#fff;color:var(--accent);font-weight:600;cursor:pointer;font-size:.9rem;transition:.15s}
.stack-btn-lg:hover,.stack-btn-lg.in{background:var(--accent);color:#fff}
.callout{background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:1rem 1.2rem;margin:1.2rem 0;box-shadow:var(--shadow)}
.callout.warn{border-left-color:var(--red)}
.callout .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);display:block;margin-bottom:.3rem}
.callout strong{color:var(--head)}
.callout a{border-bottom:1px dotted var(--faint)}
.body{font-size:1.02rem}
.body h3{margin-top:1.6rem;font-size:1.15rem;color:var(--accent2)}
.body strong{color:var(--head)}
.body a{border-bottom:1px dotted var(--faint)}
.related{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem;margin-top:1rem}

/* small inline node chips (used on target page + stack builder) */
.ex-node{padding:.45rem .7rem;border-radius:9px;font-size:.85rem;border:1px solid var(--line);text-align:center;font-weight:500;background:#fff}
.ex-node.c{background:var(--accent);color:#fff;font-weight:700;border-color:var(--accent)}
.ex-node.t{font-family:var(--mono);color:var(--accent2);background:rgba(37,99,235,.06);border-color:rgba(37,99,235,.25)}
.ex-node.p{color:var(--purple);background:rgba(124,58,237,.06);border-color:rgba(124,58,237,.25)}
.ex-node.g{color:var(--green);background:rgba(5,150,105,.06);border-color:rgba(5,150,105,.25)}
a.ex-node:hover{text-decoration:none;filter:brightness(.97);transform:translateY(-1px)}

/* mechanism chain (compound page) */
.mech{background:linear-gradient(180deg,#fbfdff,#f1f5fb);border:1px solid var(--line);border-radius:16px;padding:1.3rem 1.2rem;margin:1.4rem 0}
.mech-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;flex-wrap:wrap}
.mech-title{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-weight:700}
.mech-help-btn{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.3rem .75rem;font-size:.78rem;color:var(--accent2);cursor:pointer;transition:.12s}
.mech-help-btn:hover,.mech-help-btn.open{background:var(--accent2);color:#fff;border-color:var(--accent2)}
.mech-guide{background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent2);border-radius:10px;padding:.85rem 1.05rem;font-size:.92rem;color:var(--muted);line-height:1.65;margin-bottom:1.1rem}
.mech-guide b{color:var(--head)}
.mech-chain{display:flex;flex-direction:column;align-items:center}
.mstage{width:100%;max-width:560px;text-align:center}
.mstage-lbl{font-size:.66rem;text-transform:uppercase;letter-spacing:.09em;color:var(--faint);margin-bottom:.5rem}
.mstage-lbl em{display:block;text-transform:none;letter-spacing:0;font-style:normal;font-size:.76rem;opacity:.9;margin-top:.15rem}
.mstage-row{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
.mnode{padding:.6rem 1rem;border-radius:11px;border:1px solid var(--line);font-size:.92rem;font-weight:600;background:#fff;transition:.16s cubic-bezier(.2,.7,.3,1)}
.mnode.c{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700;box-shadow:0 8px 20px rgba(13,148,136,.25)}
.mnode.t{font-family:var(--mono);color:var(--accent2);background:rgba(37,99,235,.07);border-color:rgba(37,99,235,.3)}
.mnode.p{color:var(--purple);background:rgba(124,58,237,.07);border-color:rgba(124,58,237,.3)}
.mnode.g{color:var(--green);background:rgba(5,150,105,.07);border-color:rgba(5,150,105,.3)}
a.mnode:hover{text-decoration:none;transform:translateY(-2px) scale(1.03);box-shadow:0 10px 24px rgba(15,30,50,.14);filter:brightness(1.02)}
.mconn{position:relative;height:48px;display:flex;align-items:center;justify-content:center;margin:.35rem 0}
.mconn::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translateX(-50%);background:linear-gradient(var(--accent2),rgba(37,99,235,.28))}
.mconn::after{content:"";position:absolute;left:50%;top:0;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--accent2);box-shadow:0 0 8px rgba(37,99,235,.6);animation:mflow 2s ease-in-out infinite}
@keyframes mflow{0%{top:2px;opacity:0}18%{opacity:1}82%{opacity:1}100%{top:42px;opacity:0}}
.mconn-word{position:relative;z-index:1;background:#eef3fb;border:1px solid rgba(37,99,235,.3);color:var(--accent2);border-radius:999px;padding:.14rem .8rem;font-size:.78rem;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.mconn::after{animation:none;opacity:0}}

/* interactive pathway diagram */
.pdiagram{background:linear-gradient(180deg,#fbfdff,#f1f5fb);border:1px solid var(--line);border-radius:16px;padding:1.3rem;margin:1.2rem 0 1.6rem}
.pd-legend{font-size:.86rem;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:10px;padding:.75rem .95rem;margin-bottom:1.2rem;line-height:1.6}
.pd-legend b{color:var(--head)}
.pd-flow{display:flex;align-items:center;gap:.5rem}
.pd-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:.7rem}
.pd-coltitle{font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-weight:700}
.pd-coltitle.green{color:var(--green)}
.pd-coltitle.red{color:var(--orange)}
.pd-chips{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}
.pd-chip{padding:.45rem .7rem;border-radius:9px;font-size:.85rem;font-weight:600;text-align:center;border:1px solid var(--line);background:#fff;transition:.15s;width:100%}
.pd-chip.on{border-color:rgba(5,150,105,.4);color:var(--green);background:rgba(5,150,105,.05)}
.pd-chip.off{border-color:rgba(194,65,12,.4);color:var(--orange);background:rgba(194,65,12,.05)}
.pd-chip.static{cursor:default}
a.pd-chip:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(15,30,50,.1);text-decoration:none;filter:brightness(.99)}
.pd-arrowcol{display:flex;align-items:center;justify-content:center;width:36px;flex:none}
.pd-flowarrow{position:relative;width:36px;height:3px;background:linear-gradient(90deg,rgba(37,99,235,.2),var(--accent2));border-radius:2px}
.pd-flowarrow::after{content:"";position:absolute;right:-1px;top:50%;transform:translateY(-50%);border-left:7px solid var(--accent2);border-top:5px solid transparent;border-bottom:5px solid transparent}
.pd-flowarrow::before{content:"";position:absolute;top:-2px;left:0;width:7px;height:7px;border-radius:50%;background:var(--accent2);box-shadow:0 0 6px rgba(37,99,235,.6);animation:pdflow 2s ease-in-out infinite}
@keyframes pdflow{0%{left:0;opacity:0}20%{opacity:1}80%{opacity:1}100%{left:31px;opacity:0}}
@media(prefers-reduced-motion:reduce){.pd-flowarrow::before{animation:none;opacity:0}}
.pd-hubwrap{flex:none;display:flex;align-items:center;justify-content:center}
.pd-hub{background:var(--purple);color:#fff;font-weight:800;padding:1rem;border-radius:14px;text-align:center;font-size:1rem;line-height:1.2;box-shadow:0 12px 28px rgba(124,58,237,.32);max-width:170px}
.pd-eff{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .65rem;border-radius:9px;font-size:.85rem;font-weight:600;background:#fff;border:1px solid var(--line)}
.pd-eff .pd-arrow{font-size:.66rem;line-height:1}
.pd-eff.up{color:var(--green);border-color:rgba(5,150,105,.35)}
.pd-eff.down{color:var(--orange);border-color:rgba(194,65,12,.35)}
.pd-goals{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:1.2rem;padding-top:1rem;border-top:1px dashed var(--line)}
.pd-goalslbl{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-weight:700}
.pd-goal{padding:.4rem .8rem;border-radius:999px;font-size:.85rem;font-weight:600;color:var(--green);background:rgba(5,150,105,.08);border:1px solid rgba(5,150,105,.3)}
a.pd-goal:hover{text-decoration:none;filter:brightness(.97);transform:translateY(-1px)}
.pd-goal.static{color:var(--muted);background:var(--panel2);border-color:var(--line)}

/* go deeper (compound page) */
.deeper{margin-top:2.2rem}
.deeper-h{font-size:1.35rem;border-top:2px solid var(--line);padding-top:1.5rem}
.deeper-intro{color:var(--muted);font-size:.96rem;line-height:1.6}
.deeper-block{margin-top:1.3rem}
.deeper-name{font-size:.95rem;font-weight:700;color:var(--head);margin-bottom:.35rem}
.deeper-name a{color:var(--purple)}
.deeper-one{color:var(--muted);font-size:.96rem;margin:.2rem 0 .5rem;line-height:1.55}
.deeper-link{display:inline-block;margin-top:.5rem;font-weight:600;color:var(--accent2)}

/* target explainer (target page) */
.target-explainer{background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent2);border-radius:12px;padding:1.2rem 1.4rem;margin:1.2rem 0;box-shadow:var(--shadow);font-size:1rem;line-height:1.7}
.target-explainer p{margin:.6rem 0}
.target-explainer p:first-child{margin-top:0}
.target-explainer strong{color:var(--head)}

/* glossary tap-to-define */
.gloss{border-bottom:1px dotted var(--accent2);cursor:help}
.gloss:hover{background:rgba(37,99,235,.07)}
.gloss-pop{position:absolute;z-index:300;background:var(--head);color:#fff;padding:.65rem .85rem;border-radius:9px;font-size:.86rem;max-width:270px;line-height:1.5;box-shadow:0 14px 34px rgba(12,21,34,.35)}
.gloss-pop::before{content:"";position:absolute;top:-6px;left:24px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid var(--head)}

/* target page + parts catalog */
.target-hero{display:flex;gap:1.2rem;align-items:flex-start;margin-bottom:1rem}
.tsym{font-family:var(--mono);font-size:1.6rem;font-weight:800;color:#fff;background:var(--accent);padding:.6rem 1rem;border-radius:12px;white-space:nowrap}
.part-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem}
.part-card{position:relative;padding:1rem;background:#fff;border:1px solid var(--line);border-radius:12px;transition:.15s;color:var(--ink);overflow:hidden;box-shadow:var(--shadow)}
.part-card:hover{border-color:var(--accent2);transform:translateY(-2px);text-decoration:none}
.part-count{position:absolute;top:.5rem;right:.7rem;font-family:var(--mono);font-size:1.5rem;font-weight:800;color:#e7ecf3}
.part-card:hover .part-count{color:var(--accent2)}
.part-sym{font-family:var(--mono);font-weight:700;color:var(--accent2);font-size:1.05rem}
.part-name{font-size:.78rem;color:var(--faint);margin-top:.2rem;line-height:1.3}

/* article */
.article{max-width:800px;margin:0 auto}
.article h1{font-size:2rem;letter-spacing:-.02em}
.article h2{font-size:1.4rem;margin-top:2rem;border-bottom:1px solid var(--line);padding-bottom:.4rem}
.article h3{font-size:1.12rem;margin-top:1.5rem;color:var(--accent2)}
.article strong{color:var(--head)}
.article ul,.article ol{padding-left:1.3rem}
.article li{margin:.35rem 0}
.article a{border-bottom:1px dotted var(--faint)}
.article code{white-space:nowrap}
.prevnext{display:flex;justify-content:space-between;gap:1rem;margin-top:2.5rem;border-top:1px solid var(--line);padding-top:1.2rem}
.prevnext a{padding:.7rem 1rem;background:#fff;border:1px solid var(--line);border-radius:10px;flex:1;font-size:.9rem;box-shadow:var(--shadow)}
.prevnext a:hover{border-color:var(--accent);text-decoration:none}

/* stack builder */
.stack-select{padding:.5rem;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px;min-width:220px}
.stack-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:1.2rem;margin-top:1rem}
.stack-list{display:flex;flex-direction:column;gap:.5rem}
.stack-row{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;background:#fff;border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;box-shadow:var(--shadow)}
.stack-x{margin-left:auto;background:none;border:none;color:var(--red);cursor:pointer;font-size:.8rem}
.stack-summary{display:flex;flex-direction:column;gap:.8rem}
.ss-block{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.9rem;box-shadow:var(--shadow)}
.ss-block.warn-block{border-color:rgba(194,65,12,.4);background:rgba(194,65,12,.04)}
.ss-h{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin-bottom:.6rem}
.ss-block p{margin:.3rem 0 0;font-size:.88rem;color:var(--muted)}
.ss-block .chip,.ss-block .ex-node{display:inline-block;margin:.15rem .15rem 0 0}

/* compare / az / misc */
.compare-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.compare-col select{width:100%;padding:.6rem;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:10px;font-size:.95rem}
.compare-table{margin-top:1.2rem;font-size:.92rem}
.compare-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}
.compare-row .rk{grid-column:1/-1;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint)}
.az-letter{margin-top:1.6rem;color:var(--accent);font-weight:800;font-size:1.1rem}
.az-list{columns:3;column-gap:2rem}
.az-list a{display:block;padding:.2rem 0}
.disclaimer{background:rgba(220,38,38,.06);border:1px solid rgba(220,38,38,.3);border-radius:12px;padding:1.2rem;color:#991b1b;margin:1.5rem 0}
.foot{max-width:var(--maxw);margin:0 auto;padding:2rem 1.2rem 3rem;color:var(--faint);font-size:.82rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--line)}
.empty{color:var(--faint);text-align:center;padding:3rem}

/* accounts */
.account-slot{display:flex;align-items:center}
.acct{display:flex;align-items:center;gap:.5rem}
.acct-name{font-size:.86rem;color:var(--head);font-weight:600}
.acct-btn{padding:.4rem .8rem;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--muted);font-size:.82rem;cursor:pointer;transition:.12s}
.acct-btn:hover{border-color:var(--faint);color:var(--head)}
.acct-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
.acct-btn.primary:hover{filter:brightness(.95);color:#fff}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(12,21,34,.5);backdrop-filter:blur(3px);z-index:200;display:flex;align-items:flex-start;justify-content:center;padding:6vh 1rem;overflow:auto}
.modal{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 70px rgba(12,21,34,.3);width:100%;max-width:460px;padding:1.8rem}
.modal h2{margin:.2rem 0 .3rem}
.modal-sub{color:var(--muted);font-size:.92rem;margin:.2rem 0 1.2rem}
.modal-x{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.1rem;color:var(--faint);cursor:pointer;line-height:1}
.modal-x:hover{color:var(--head)}
/* Mini-window item detail (builder + tracker) */
.item-modal .im-kind{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:.15rem}
.item-modal h2{margin:.1rem 0 .5rem;font-size:1.35rem}
.item-modal .im-rx{color:var(--muted);font-size:.9rem;margin-bottom:.6rem}
.item-modal .im-line{font-size:.9rem;margin:.4rem 0}
.item-modal .im-meta{margin:.2rem 0 .8rem;display:flex;gap:.4rem;flex-wrap:wrap}
.item-modal .im-how{margin:.7rem 0;font-size:.9rem}
.item-modal .im-how ol{margin:.35rem 0 0;padding-left:1.2rem}
.item-modal .im-how li{margin:.18rem 0;line-height:1.4}
.item-modal .im-cal{margin:.6rem 0;font-size:.9rem;line-height:1.5}
.item-modal .im-cal b{display:block;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:.15rem}
.item-modal .im-cal.warn{background:rgba(220,38,38,.06);border-left:3px solid #dc2626;padding:.5rem .7rem;border-radius:8px}
.item-modal .im-full{display:inline-block;margin-top:.9rem;font-size:.88rem;font-weight:600;color:var(--accent);text-decoration:none}
.item-modal .im-full:hover{text-decoration:underline}
.auth-form{display:flex;flex-direction:column;gap:.9rem}
.auth-demo{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:0}
.auth-demo label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem}
.auth-demo select{padding:.55rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--head);font-size:.95rem}
.auth-demo-why{font-size:.75rem;color:var(--muted);margin:-.5rem 0 0}
.auth-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--head)}
.auth-form .opt{font-weight:400;color:var(--faint)}
.auth-form input{padding:.6rem .8rem;border:1px solid var(--line);border-radius:10px;font-size:.95rem;background:#fff}
.auth-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.btn-primary{padding:.7rem 1rem;border-radius:10px;border:none;background:var(--accent);color:#fff;font-weight:700;font-size:.95rem;cursor:pointer;transition:.12s}
.btn-primary:hover{filter:brightness(.96)}
.btn-primary:disabled{opacity:.6;cursor:default}
.auth-err{background:rgba(220,38,38,.08);color:#991b1b;border:1px solid rgba(220,38,38,.25);border-radius:8px;padding:.5rem .7rem;font-size:.85rem}
.auth-switch{margin-top:1rem;font-size:.88rem;color:var(--muted);text-align:center}

/* edit button + meta */
.detail-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.edit-btn{white-space:nowrap;padding:.6rem 1rem;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--muted);font-weight:600;cursor:pointer;font-size:.9rem;transition:.15s}
.edit-btn:hover{border-color:var(--accent2);color:var(--accent2)}
.edit-meta{font-size:.82rem;color:var(--faint);margin:.2rem 0 0}
.edit-meta a{color:var(--accent2)}
.field-val{display:inline}

/* editor */
.editor{display:flex;flex-direction:column;gap:.8rem}
.ed-field{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--head)}
.ed-field .opt{font-weight:400;color:var(--faint)}
.ed-field textarea,.ed-field input{padding:.6rem .7rem;border:1px solid var(--line);border-radius:9px;font-size:.92rem;font-family:inherit;background:#fff;resize:vertical;line-height:1.5}
.ed-field textarea:focus,.ed-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(13,148,136,.1)}
.ed-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.3rem}
.modal.wide,.editor{max-width:100%}
#modal-bg .modal:has(.editor){max-width:640px}

/* comments */
.comment-form{display:flex;flex-direction:column;gap:.5rem;background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem;box-shadow:var(--shadow)}
.comment-form textarea{padding:.7rem;border:1px solid var(--line);border-radius:10px;font-family:inherit;font-size:.95rem;resize:vertical}
.comment-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(13,148,136,.1)}
.cm-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.cm-hint{font-size:.78rem;color:var(--faint)}
.comment-signin{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:1rem 1.2rem;color:var(--muted);font-size:.92rem}
.comment-list{display:flex;flex-direction:column;gap:.7rem;margin-top:1rem}
.comment{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.9rem 1.1rem;box-shadow:var(--shadow)}
.comment-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.4rem}
.comment-user{font-weight:700;color:var(--head);font-size:.88rem}
.comment-time{color:var(--faint);font-size:.78rem}
.comment-del{margin-left:auto;background:none;border:none;color:var(--red);font-size:.78rem;cursor:pointer}
.comment-body{color:var(--ink);font-size:.95rem;line-height:1.55}

/* recent comments (home) */
.recent-comments{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.8rem}
.rc{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.9rem 1.1rem;box-shadow:var(--shadow);color:var(--ink);transition:.15s}
.rc:hover{border-color:var(--accent2);transform:translateY(-2px);text-decoration:none}
.rc-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem;flex-wrap:wrap}
.rc-goal{font-size:.76rem;color:var(--accent2);font-weight:600}
.rc-body{color:var(--muted);font-size:.9rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* history */
.hist-list{display:flex;flex-direction:column;gap:.6rem;max-height:50vh;overflow:auto}
.hist-row{border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem}
.hist-note{color:var(--muted);font-size:.88rem;margin-top:.3rem}

@media(max-width:760px){
  .legend{grid-template-columns:1fr}
  .pd-flow{flex-direction:column;align-items:stretch}
  .pd-hub{max-width:none}
  .pd-arrowcol{width:100%;height:26px}
  .pd-flowarrow{transform:rotate(90deg)}
  .pd-chips{align-items:stretch}
  .stack-grid{grid-template-columns:1fr}
  .target-hero{flex-direction:column}
  .detail-head{flex-direction:column}
  .topnav{display:none}
  .topnav.open{display:flex;position:absolute;top:100%;right:0;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.8rem 1.2rem;gap:.9rem;box-shadow:var(--shadow)}
  .menu-btn{display:block}
  .hero h1{font-size:1.9rem}
  .compare-cols{grid-template-columns:1fr}
  .az-list{columns:1}
  .search-wrap{max-width:none}
}

/* ================= Protocol Engine ================= */
:root{--mv:#2563eb;--fl:#16a34a;--st:#7c3aed}
.nav-solve{color:var(--accent)!important;font-weight:700}
.hero-cta{margin-top:1.3rem;display:flex;flex-direction:column;gap:.35rem}
.cta-primary{display:inline-block;align-self:flex-start;background:var(--accent);color:#fff;padding:.7rem 1.25rem;border-radius:999px;font-weight:700;box-shadow:var(--shadow)}
.cta-primary:hover{text-decoration:none;filter:brightness(1.06)}
.cta-sub{color:var(--muted);font-size:.85rem}
.how-it-works{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.6rem 0}
.hiw{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem}
.hiw p{margin:.4rem 0 0;color:var(--muted);font-size:.9rem}
.hiw-n{font-weight:800;font-size:1.05rem}
.hiw-n.mv{color:var(--mv)}.hiw-n.fl{color:var(--fl)}.hiw-n.st{color:var(--st)}

/* solve page */
.solve-hero{background:linear-gradient(135deg,#eef4ff,#eafcf3);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.5rem;margin-bottom:1.2rem}
.solve-hero h1{font-size:2rem;margin:.2rem 0 .5rem}
.solve-hero .mv{color:var(--mv)}.solve-hero .fl{color:var(--fl)}.solve-hero .st{color:var(--st)}
.solve-hero p{color:var(--ink);max-width:70ch;margin:0}
.solve-filter{display:flex;gap:.5rem;margin:0 0 1.2rem}
.solve-filter button{border:1px solid var(--line);background:#fff;color:var(--muted);padding:.4rem .9rem;border-radius:999px;cursor:pointer;font-size:.88rem}
.solve-filter button.on{background:var(--head);color:#fff;border-color:var(--head)}
.solve-section{margin-bottom:1.4rem}
.solve-section h2{font-size:1.1rem;margin:0 0 .6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.solve-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.7rem}
.solve-card{display:flex;align-items:center;gap:.7rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.75rem .85rem;color:var(--ink)}
.solve-card:hover{text-decoration:none;border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px)}
.solve-card .s-ico{font-size:1.5rem}
.solve-card .s-body{display:flex;flex-direction:column;line-height:1.25}
.solve-card small{color:var(--faint);font-size:.76rem}

/* protocol view */
.proto-head{display:flex;gap:1rem;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.3rem;margin-bottom:.8rem}
.proto-ico{font-size:2.6rem;line-height:1}
.proto-head h1{font-size:1.7rem;margin:.15rem 0}
.rc-name{font-weight:700;color:var(--head);margin:.1rem 0}
.rc-diag{color:var(--muted);margin:.2rem 0 0;font-size:.92rem}
.rc-switch{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:0 0 1rem;font-size:.85rem}
.rc-switch span{color:var(--muted);margin-right:.2rem}
.rc-switch a{border:1px solid var(--line);padding:.3rem .7rem;border-radius:999px;color:var(--muted);background:#fff}
.rc-switch a.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.rc-switch a:hover{text-decoration:none}
.proto-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;align-items:start}
.layer{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.05rem}
.layer h2{display:flex;align-items:center;gap:.5rem;font-size:1.15rem;margin:.1rem 0 .3rem}
.lyr-dot{width:12px;height:12px;border-radius:50%;display:inline-block}
.lyr-dot.mv{background:var(--mv)}.lyr-dot.fl{background:var(--fl)}.lyr-dot.st{background:var(--st)}
.layer.move{border-top:3px solid var(--mv)}.layer.fuel{border-top:3px solid var(--fl)}.layer.stack{border-top:3px solid var(--st)}
.lyr-sub{color:var(--muted);font-size:.85rem;margin:0 0 .7rem}
.rx{background:var(--panel2);border-radius:10px;padding:.6rem .8rem;font-size:.86rem;color:var(--ink);margin-bottom:.8rem}
.proto-more{display:inline-block;margin-top:.5rem;font-size:.85rem}
.proto-foot{margin-top:1.2rem;font-size:.82rem}

/* exercise cards */
.ex-card{display:flex;gap:.7rem;border:1px solid var(--line);border-radius:10px;padding:.5rem;margin-bottom:.6rem;background:#fff}
.ex-card img{width:78px;height:78px;object-fit:cover;border-radius:8px;background:var(--panel2)}
.ex-noimg{width:78px;height:78px;display:flex;align-items:center;justify-content:center;font-size:1.8rem;background:var(--panel2);border-radius:8px}
.ex-body{flex:1;min-width:0}
.ex-body small{display:block;color:var(--faint);font-size:.76rem;margin:.1rem 0 .3rem}
.ex-body details summary{cursor:pointer;color:var(--mv);font-size:.82rem}
.ex-body ol{margin:.4rem 0 0;padding-left:1.1rem;font-size:.82rem;color:var(--muted)}

/* stack cards */
.st-card{border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;margin-bottom:.6rem;background:#fff}
.st-main{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;color:var(--ink)}
.st-main:hover{text-decoration:none}
.st-main .stars{color:var(--star);font-size:.85rem;white-space:nowrap}
.st-meta{display:flex;flex-wrap:wrap;gap:.3rem;margin:.35rem 0}
.st-plain{font-size:.82rem;color:var(--muted);margin:.2rem 0 .5rem}
.pill.syn{background:#f3e8ff;color:#7c3aed;border-color:#e9d5ff}
.st-add{width:100%;border:1px solid var(--st);color:var(--st);background:#faf5ff;border-radius:8px;padding:.35rem;cursor:pointer;font-weight:600;font-size:.82rem}
.st-add.in{background:var(--st);color:#fff}

/* fuel tracker */
.fuel-search{position:relative;margin-bottom:.6rem}
#food-q{width:100%;padding:.55rem .8rem;border:1px solid var(--line);border-radius:10px;font-size:.9rem;outline:none}
#food-q:focus{border-color:var(--fl);box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.food-hits{position:absolute;top:105%;left:0;right:0;z-index:20;background:var(--bg);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-height:48vh;overflow:auto;padding:.3rem}
.food-hits small{color:var(--faint)}
.no-hit{display:block;padding:.5rem;color:var(--faint)}
.sg{background:#eafcf3;color:var(--fl);border-radius:5px;padding:0 4px;font-size:.68rem;font-weight:700;vertical-align:middle}
.fuel-foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--line)}
.fuel-share-btn{border:none;background:var(--accent);color:#fff;font:inherit;font-weight:600;font-size:.9rem;padding:.6rem 1.15rem;border-radius:999px;cursor:pointer;box-shadow:0 2px 10px color-mix(in srgb,var(--accent) 38%,transparent);transition:.14s}
.fuel-share-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.fuel-clear-btn{border:none;background:none;color:var(--muted);font:inherit;font-size:.82rem;cursor:pointer;padding:.4rem .2rem;text-decoration:underline;text-underline-offset:2px}
.fuel-clear-btn:hover{color:#c0362c}
.gi-badge{display:inline-block;font-size:.66rem;font-weight:700;padding:.05rem .35rem;border-radius:6px;vertical-align:middle;letter-spacing:.01em}
.gi-low{background:#e6f4ea;color:#1a7f37}
.gi-med{background:#fef3c7;color:#a16207}
.gi-high{background:#fde2e1;color:#c0362c}
@media (prefers-color-scheme:dark){.gi-low{background:#12351f;color:#5bd67f}.gi-med{background:#3a2f0a;color:#e6c14d}.gi-high{background:#3d1512;color:#f0857c}}
:root[data-theme="dark"] .gi-low{background:#12351f;color:#5bd67f}
:root[data-theme="dark"] .gi-med{background:#3a2f0a;color:#e6c14d}
:root[data-theme="dark"] .gi-high{background:#3d1512;color:#f0857c}
:root[data-theme="light"] .gi-low{background:#e6f4ea;color:#1a7f37}
:root[data-theme="light"] .gi-med{background:#fef3c7;color:#a16207}
:root[data-theme="light"] .gi-high{background:#fde2e1;color:#c0362c}
.gl-summary{border:1px solid var(--line);border-radius:14px;padding:.7rem .85rem;margin:.2rem 0 1rem;background:var(--panel);border-left:4px solid var(--line)}
.gl-summary.gi-low{border-left-color:#1a7f37}
.gl-summary.gi-med{border-left-color:#a16207}
.gl-summary.gi-high{border-left-color:#c0362c}
.gl-top{display:flex;justify-content:space-between;align-items:baseline;font-size:.9rem;font-weight:600;color:var(--head)}
.gl-why{font-size:.76rem;color:var(--muted);line-height:1.4;margin-top:.3rem}
/* General macros (complement to protocol targets) */
.macro-card{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:1rem 1.1rem;margin:1.1rem 0}
.macro-h{font-size:.9rem;font-weight:700;color:var(--head);margin-bottom:.8rem}
.macro-h .muted{font-weight:400;font-size:.78rem}
.macro-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:.85rem}
.macro-s{display:flex;flex-direction:column;gap:.12rem;text-align:center;padding:.55rem .2rem;border-radius:11px;background:var(--bg);border-bottom:2.5px solid transparent}
.macro-s.macro-p{border-bottom-color:#3b82f6}.macro-s.macro-c{border-bottom-color:#f59e0b}.macro-s.macro-f{border-bottom-color:#ef4444}
.macro-n{font-size:1.2rem;font-weight:800;color:var(--head);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.macro-l{font-size:.7rem;color:var(--muted)}
.macro-split{display:flex;height:10px;border-radius:6px;overflow:hidden;background:var(--line);margin-bottom:.5rem}
.macro-split i{display:block;height:100%}
.ms-p{background:#3b82f6}.ms-c{background:#f59e0b}.ms-f{background:#ef4444}
.macro-leg{display:flex;gap:.9rem;flex-wrap:wrap;font-size:.75rem}
.macro-leg .macro-p{color:#3b82f6}.macro-leg .macro-c{color:#d97706}.macro-leg .macro-f{color:#ef4444}
.fuel-log{list-style:none;margin:.2rem 0 .8rem;padding:0}
.fuel-log li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .1rem;border-bottom:1px solid var(--line);font-size:.85rem}
.fuel-log li.empty-log{color:var(--faint);justify-content:flex-start;border:none}
.fuel-log small{color:var(--faint)}
.fuel-log .qty{display:flex;align-items:center;gap:.35rem;white-space:nowrap}
.fuel-log .qty button{width:22px;height:22px;border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer;line-height:1;color:var(--ink)}
.fuel-log .qty .rm{color:var(--red);border-color:#fbcfcf}
.fbar{margin-bottom:.7rem}
.fbar-top{display:flex;justify-content:space-between;font-size:.82rem;font-weight:600}
.fbar-top em{color:var(--faint);font-weight:400;font-style:normal}
.fbar-val{color:var(--muted);font-variant-numeric:tabular-nums}
.fbar-track{height:8px;background:var(--panel2);border-radius:999px;overflow:hidden;margin:.2rem 0}
.fbar-track i{display:block;height:100%;background:var(--faint);border-radius:999px;transition:width .3s}
.fbar.done .fbar-track i{background:var(--fl)}
.fbar.done .fbar-val{color:var(--fl)}
.fbar.limit .fbar-track i{background:var(--star)}
.fbar.over .fbar-track i{background:var(--red)}
.fbar.over .fbar-val{color:var(--red);font-weight:700}
.fbar-why{font-size:.72rem;color:var(--faint);margin-top:.1rem}
.fbar-why .miss{color:var(--orange)}
.fbar-supp{font-size:.72rem;color:#2563eb;margin-top:.15rem}
@media(prefers-color-scheme:dark){.fbar-supp{color:#60a5fa}}
.fuel-foot{font-size:.75rem;color:var(--faint);margin-top:.5rem}
.linkbtn{background:none;border:none;color:var(--link);cursor:pointer;padding:0;font-size:.75rem}
@media(max-width:820px){.proto-grid{grid-template-columns:1fr}.how-it-works{grid-template-columns:1fr}.proto-head{flex-direction:column}}

/* ---- Tier 1 voting ---- */
.vote-foot{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.9rem;padding-top:.7rem;border-top:1px dashed var(--line);font-size:.82rem}
.vote-q{color:var(--muted)}
.vote-btns{display:flex;gap:.4rem}
.vt{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.25rem .6rem;cursor:pointer;font-size:.82rem;color:var(--ink)}
.vt .c{font-variant-numeric:tabular-nums;color:var(--faint);margin-left:.15rem}
.vt.up.on{background:#eafcf3;border-color:var(--fl);color:var(--fl)}
.vt.down.on{background:#fdecec;border-color:var(--red);color:var(--red)}
.vote-badge{color:var(--orange);font-weight:700;font-size:.78rem}

/* ---- stewardship CTA on protocol ---- */
.steward-cta{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  background:linear-gradient(135deg,#f5f0ff,#eef4ff);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.2rem;margin-top:1.2rem}
.steward-cta span{display:block;color:var(--muted);font-size:.85rem}
.cta-ghost{border:1px solid var(--st);color:var(--st);padding:.5rem 1rem;border-radius:999px;font-weight:600;white-space:nowrap}
.cta-ghost:hover{text-decoration:none;background:#faf5ff}

/* ---- stewardship hub ---- */
.steward-head{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.4rem;margin-bottom:1rem}
.steward-head h1{font-size:1.5rem;margin:.2rem 0 .5rem}
.steward-head .mv{color:var(--mv)}.steward-head .fl{color:var(--fl)}.steward-head .st{color:var(--st)}
.steward-head p{color:var(--ink);max-width:78ch;margin:0;font-size:.92rem}
.domain-bar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;margin-bottom:1.1rem;font-size:.86rem}
.domain-bar select,.domain-bar input{padding:.4rem .6rem;border:1px solid var(--line);border-radius:8px;font-size:.85rem;background:#fff}
.domain-bar input{flex:1;min-width:160px}
.domain-bar button{background:var(--head);color:#fff;border:none;border-radius:8px;padding:.45rem .9rem;cursor:pointer}
.domain-you{color:var(--muted)}
.steward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-items:start}
.steward-col{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--dc);border-radius:var(--radius);padding:.9rem}
.steward-col-h{margin-bottom:.7rem}
.steward-col-h b{color:var(--dc);font-size:1.05rem}
.steward-col-h small{display:block;color:var(--faint);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}
.sm{font-size:.82rem}
.prop{border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;margin-bottom:.6rem;background:#fff}
.prop.ok{border-color:var(--fl);background:#f6fdf9}
.prop.flag{border-color:var(--orange);background:#fff8f1}
.prop-verified{color:var(--fl);font-weight:700;font-size:.78rem;margin-bottom:.2rem}
.prop-flagged{color:var(--orange);font-weight:700;font-size:.78rem;margin-bottom:.2rem}
.prop-change{font-size:.86rem;margin:.1rem 0 .4rem}
.prop-ev{font-size:.78rem}
.prop-meta{display:flex;justify-content:space-between;gap:.5rem;font-size:.74rem;color:var(--faint);margin:.35rem 0}
.prop-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}
.prop-actions button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:.25rem .6rem;font-size:.76rem;cursor:pointer}
.p-endorse{color:var(--fl);border-color:#bbe9cf!important}
.p-flag{color:var(--orange);border-color:#fad9bd!important}
.p-gh{font-size:.76rem;align-self:center}
.locked{color:var(--faint);font-size:.78rem;font-style:italic;padding:.4rem 0}
.propose-btn{width:100%;border:1px dashed var(--dc);color:var(--dc);background:none;border-radius:8px;padding:.45rem;cursor:pointer;font-weight:600;font-size:.82rem}
.fld{display:block;margin:.6rem 0;font-size:.85rem;font-weight:600}
.fld textarea,.fld input{width:100%;margin-top:.25rem;padding:.5rem;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:.88rem;font-weight:400}
.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.8rem}
.modal-actions .primary{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;cursor:pointer}
.modal-actions .ghost{background:none;border:1px solid var(--line);border-radius:8px;padding:.5rem 1rem;cursor:pointer}
@media(max-width:820px){.steward-grid{grid-template-columns:1fr}.steward-cta{flex-direction:column;align-items:flex-start}}

/* ---- assessment fixes: cross-links, honest verification badges ---- */
.goal-protos{margin-top:2rem}
.prop-endorsed{color:var(--fl);font-weight:600;font-size:.76rem;margin-bottom:.2rem}
.prop-verified{color:#0f766e}
.dv-ok{color:var(--fl)}
.dv-pending{color:var(--faint);font-style:italic}
.sr-kind{display:inline-block;min-width:64px}

/* ---- food scanners ---- */
.scan-row{display:flex;gap:.5rem;margin:-.2rem 0 .7rem}
.scan-btn{flex:1;border:1px solid var(--line);background:#fff;border-radius:9px;padding:.5rem;cursor:pointer;font-size:.84rem;font-weight:600;color:var(--ink)}
.scan-btn:hover{border-color:var(--fl)}
.scan-btn.ai{border-color:#e9d5ff;color:var(--st);background:#faf5ff}
.scan-tag{background:#faf5ff;color:var(--st);border-radius:5px;padding:0 5px;font-size:.66rem;font-weight:700;vertical-align:middle}
.scan-facts{list-style:none;padding:0;margin:.6rem 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.scan-facts li{display:flex;justify-content:space-between;padding:.45rem .8rem;border-bottom:1px solid var(--line);font-size:.9rem}
.scan-facts li:last-child{border-bottom:none}
.scan-facts b{font-variant-numeric:tabular-nums}
.scan-spin{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--st);border-radius:50%;margin:1.2rem auto;animation:scanspin 1s linear infinite}
@keyframes scanspin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.scan-spin{animation:none}}

/* ---- contributors + admin + protocol discussion ---- */
.proto-discussion{margin-top:1.6rem;border-top:1px solid var(--line);padding-top:.6rem}
.rc-hint{color:var(--faint);font-size:.76rem;font-style:italic}
.expert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.7rem;margin-bottom:1rem}
.expert-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.8rem .9rem}
.expert-card .ex-verified{color:var(--fl);font-weight:700;font-size:.76rem;margin-bottom:.25rem}
.expert-card small{display:block;color:var(--faint);margin-top:.15rem}
.board{width:100%;border-collapse:collapse;font-size:.9rem;margin:.2rem 0}
.board th,.board td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--line);vertical-align:middle}
.board tr:last-child td{border-bottom:none}
.board tbody tr:hover{background:rgba(13,148,136,.03)}
.board th{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.board td{font-variant-numeric:tabular-nums}
.admin-btn{border:1px solid var(--accent);color:var(--accent);background:transparent;border-radius:999px;padding:.3rem .8rem;cursor:pointer;font-size:.8rem;font-weight:600}
.admin-btn:hover{background:var(--accent);color:#fff}

/* ---- fuel sign-in gate, AI-interest, Google button ---- */
.fuel-signin{background:var(--panel2);border:1px dashed var(--line);border-radius:12px;padding:.9rem 1rem;font-size:.88rem;line-height:1.5}
.fuel-signin b{display:block;margin-bottom:.2rem}
.fuel-signin .btn-primary{margin-top:.6rem}
.ai-interest{margin:.6rem 0 0;background:#faf5ff;border:1px solid #e9d5ff;color:var(--st);border-radius:9px;padding:.5rem .75rem;font-size:.82rem}
.gbtn-wrap{display:flex;justify-content:center;margin:.2rem 0 .4rem;min-height:40px}
.auth-or{display:flex;align-items:center;text-align:center;color:var(--faint);font-size:.78rem;margin:.5rem 0}
.auth-or::before,.auth-or::after{content:"";flex:1;border-top:1px solid var(--line)}
.auth-or span{padding:0 .6rem}

/* ================= Conversion landing (funnel hero, steps, personas, intake) ================= */
.funnel-hero{background:radial-gradient(1200px 400px at 50% -80px,#eafcf3 0,transparent 70%),radial-gradient(900px 360px at 50% -40px,#eef4ff 0,transparent 65%);border-radius:20px;padding:3rem 1rem 2rem}
.funnel-hero h1{font-size:3rem}
.hero-lead{font-size:1.18rem!important;max-width:640px}
.funnel{display:flex;gap:.6rem;justify-content:center;align-items:stretch;max-width:720px;margin:1.6rem auto 0;flex-wrap:wrap}
.funnel-search{position:relative;flex:1;min-width:280px;text-align:left}
.funnel-search .fs-ico{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:1.05rem;opacity:.6;pointer-events:none}
#hero-solve-input{width:100%;font-size:1.1rem;padding:1rem 1rem 1rem 2.7rem;border:2px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow);color:var(--ink);transition:border-color .15s}
#hero-solve-input:focus{outline:none;border-color:var(--accent)}
.funnel-btn{align-self:center;white-space:nowrap;padding:1rem 1.5rem;font-size:1.02rem;border:none;cursor:pointer}
.funnel-out{position:absolute;left:0;right:0;top:calc(100% + .4rem);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(12,21,34,.18);overflow:hidden;z-index:50}
.funnel-hit{display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);padding:.7rem .9rem;cursor:pointer}
.funnel-hit:last-child{border-bottom:none}
.funnel-hit:hover,.funnel-hit.on{background:var(--panel2)}
.funnel-hit .fh-i{font-size:1.3rem;width:1.7rem;text-align:center}
.funnel-hit .fh-b{display:flex;flex-direction:column}
.funnel-hit .fh-b b{color:var(--head);font-size:.98rem}
.funnel-hit .fh-b small{color:var(--faint);font-size:.78rem}
.seed-row{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-top:1.1rem;align-items:center}
.seed-chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.4rem .85rem;font-size:.85rem;color:var(--ink);cursor:pointer;transition:.15s}
.seed-chip:hover{border-color:var(--accent);color:var(--accent)}
.seed-all{font-size:.82rem;color:var(--muted);padding:.4rem .3rem}
.home-counters{margin-top:2.4rem}

.section-title.center{justify-content:center}
.how-3{margin:2.6rem 0 1rem}
.steps-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.step3{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.2rem;box-shadow:var(--shadow)}
.step3 .s3-n{position:absolute;top:-.7rem;left:1.2rem;width:1.9rem;height:1.9rem;display:flex;align-items:center;justify-content:center;background:var(--head);color:#fff;border-radius:999px;font-family:var(--mono);font-weight:800;font-size:.95rem}
.step3 .s3-tag{display:inline-block;margin:.4rem 0 .5rem;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px}
.step3 .s3-tag.mv{color:var(--mv);background:#eaf1ff}.step3 .s3-tag.st{color:var(--st);background:#f5edff}.step3 .s3-tag.fl{color:var(--fl);background:#e8f9ee}
.step3 h3{margin:.1rem 0 .35rem;color:var(--head);font-size:1.12rem}
.step3 p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}

.persona{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2.6rem 0 1rem}
.persona-card{border-radius:18px;padding:1.8rem 1.6rem;border:1px solid var(--line)}
.persona-card.users{background:linear-gradient(135deg,#0d9488,#0f766e);color:#fff;border-color:transparent}
.persona-card.pros{background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff;border-color:transparent}
.persona-card .p-tag{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.85;margin-bottom:.5rem}
.persona-card h3{margin:.1rem 0 .5rem;font-size:1.4rem;color:#fff}
.persona-card p{margin:0 0 1.1rem;opacity:.92;line-height:1.55;font-size:.95rem}
.persona-card .cta-primary{background:#fff;color:var(--head)}
.persona-card .cta-ghost{display:inline-block;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.35);padding:.7rem 1.25rem;border-radius:999px;font-weight:700}
.persona-card .cta-ghost:hover{background:rgba(255,255,255,.24);text-decoration:none}

/* intake modal */
.intake .intake-head{margin-bottom:1rem}
.intake .kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.intake h2{margin:.35rem 0 .4rem;font-size:1.5rem;color:var(--head)}
.intake .intake-head p{color:var(--muted);font-size:.92rem;margin:0;line-height:1.5}
.intake-opts{display:flex;flex-direction:column;gap:.55rem}
.intake-opt{display:flex;align-items:flex-start;gap:.75rem;text-align:left;width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:.85rem .95rem;cursor:pointer;transition:.15s}
.intake-opt:hover{border-color:var(--accent);background:#fff;box-shadow:var(--shadow)}
.intake-opt .io-i{flex:none;width:1.7rem;height:1.7rem;display:flex;align-items:center;justify-content:center;background:var(--head);color:#fff;border-radius:999px;font-family:var(--mono);font-weight:800;font-size:.85rem}
.intake-opt .io-b{display:flex;flex-direction:column;flex:1}
.intake-opt .io-b b{color:var(--head);font-size:.98rem}
.intake-opt .io-b small{color:var(--muted);font-size:.83rem;margin-top:.15rem;line-height:1.4}
.intake-opt .io-go{color:var(--accent);font-weight:800;align-self:center}
.intake-skip{display:block;width:100%;margin-top:.9rem;background:none;border:none;color:var(--muted);font-size:.85rem;cursor:pointer;text-decoration:underline}
.intake-skip:hover{color:var(--accent)}

@media(max-width:720px){
  .funnel-hero h1{font-size:2rem}
  .hero-lead{font-size:1.02rem!important}
  .funnel-btn{width:100%}
  .steps-3{grid-template-columns:1fr}
  .persona{grid-template-columns:1fr}
}

/* ================= Why RNA (blueprint vs builder) ================= */
.why-rna{margin:3rem 0 1rem;text-align:center;background:radial-gradient(900px 300px at 50% 0,#eef7ff 0,transparent 70%);border-radius:20px;padding:2rem 1rem}
.wr-head{font-size:2rem;letter-spacing:-.02em;color:var(--head);margin:.2rem 0 1.4rem}
.wr-head .lead{color:var(--accent)}
.wr-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:stretch;max-width:820px;margin:0 auto;text-align:left}
.wr-card{border-radius:16px;padding:1.3rem 1.3rem;border:1px solid var(--line)}
.wr-card .wr-tag{display:block;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;margin-bottom:.5rem}
.wr-card p{margin:0;font-size:.95rem;line-height:1.55}
.wr-card.dna{background:#f1f4f8;color:var(--muted)}
.wr-card.dna .wr-tag{color:var(--faint)}
.wr-card.rna{background:linear-gradient(135deg,#0d9488,#0f766e);color:#fff;border-color:transparent;box-shadow:var(--shadow)}
.wr-card.rna .wr-tag{color:#bff3ea}
.wr-arrow{display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:var(--accent);font-weight:800}
.wr-thesis{max-width:760px;margin:1.5rem auto 0;color:var(--ink);font-size:1.02rem;line-height:1.65}
@media(max-width:720px){
  .wr-head{font-size:1.5rem}
  .wr-grid{grid-template-columns:1fr}
  .wr-arrow{transform:rotate(90deg)}
}

/* ================= Protocol dashboard: stretch/strengthen, scaling, local partners ================= */
.move-sub{margin:.4rem 0 1rem}
.move-h{font-size:.9rem;margin:.6rem 0 .5rem;display:flex;align-items:center;gap:.4rem;font-weight:800;letter-spacing:.01em}
.move-h.strengthen{color:var(--mv)}
.move-h.stretch{color:var(--fl)}
.ex-rx{margin:.4rem 0 .1rem;font-size:.82rem;color:var(--head);background:var(--panel2);border-radius:8px;padding:.35rem .55rem;font-variant-numeric:tabular-nums}
.ex-rx i{color:var(--muted);font-style:italic}
.rx-def{margin-left:.4rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);border:1px solid var(--line);border-radius:5px;padding:.02rem .3rem;vertical-align:middle}
.ex-scale{display:flex;gap:.4rem;margin:.45rem 0 .1rem}
.ex-sc{flex:1;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:8px;padding:.35rem .5rem;font-size:.8rem;font-weight:700;cursor:pointer;transition:.15s}
.ex-sc.easier:hover,.ex-sc.harder:hover{border-color:var(--accent);color:var(--accent)}
.ex-sc.suggest{color:var(--st);border-style:dashed;border-color:#e9d5ff;background:#faf5ff}
.ex-sc.suggest:hover{background:#f3e8ff}

.local-partners{margin:1.6rem 0 .5rem}
.lp-tag{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);border:1px solid var(--line);border-radius:6px;padding:.05rem .35rem}
.lp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.lp-card{display:flex;gap:.6rem;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.85rem .9rem;color:var(--ink);transition:.15s}
.lp-card:hover{box-shadow:var(--shadow);border-color:var(--accent);text-decoration:none}
.lp-ico{font-size:1.4rem;line-height:1}
.lp-body{display:flex;flex-direction:column}
.lp-body b{color:var(--head);font-size:.95rem}
.lp-body small{color:var(--faint);font-size:.76rem;text-transform:capitalize}
.lp-blurb{color:var(--muted);font-size:.82rem;margin-top:.25rem;line-height:1.4}
.lp-note{color:var(--faint);font-size:.78rem;margin:.7rem 0 0}
@media(max-width:820px){ .lp-grid{grid-template-columns:1fr} }

/* ================= Scroll reveal + merged-About landing sections ================= */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

.trust{text-align:center;margin:3rem 0 1rem;background:radial-gradient(900px 300px at 50% 0,#f5edff 0,transparent 70%);border-radius:20px;padding:2rem 1rem}
.trust-lead{max-width:760px;margin:0 auto;color:var(--ink);font-size:1.02rem;line-height:1.65}
.trust-row{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-top:1.4rem}
.trust-pill{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.5rem .95rem;font-size:.85rem;color:var(--muted);box-shadow:var(--shadow)}
.trust-pill b{color:var(--head)}

.onboard{margin:2.4rem 0 1rem;border-radius:18px;padding:2rem 1.8rem;background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff;text-align:center}
.onboard .p-tag{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.85;margin-bottom:.5rem}
.onboard h2{color:#fff;font-size:1.7rem;margin:.1rem 0 .6rem;letter-spacing:-.02em}
.onboard p{max-width:640px;margin:0 auto 1.2rem;opacity:.92;line-height:1.6}
.onboard .cta-primary{background:#fff;color:var(--head)}

/* ================= Micro-bounty board + modal ================= */
.bnt-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.2rem 0}
.bnt-tab{border:1px solid var(--line);background:#fff;color:var(--muted);padding:.4rem .95rem;border-radius:999px;cursor:pointer;font-size:.88rem}
.bnt-tab.on{background:var(--head);color:#fff;border-color:var(--head)}
.bnt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}
.bnt-card{display:flex;flex-direction:column;gap:.35rem;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem 1.05rem;box-shadow:var(--shadow)}
.bnt-top{display:flex;justify-content:space-between;align-items:center}
.bnt-badge{font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:.18rem .5rem;border-radius:999px}
.bnt-badge.physio{color:#2563eb;background:#eaf1ff}
.bnt-badge.dietitian{color:#16a34a;background:#e8f9ee}
.bnt-badge.pharmacist{color:#7c3aed;background:#f5edff}
.bnt-min{font-size:.72rem;color:var(--faint)}
.bnt-card>b{color:var(--head);font-size:.92rem}
.bnt-title{color:var(--ink);font-size:.9rem}
.bnt-title small{color:var(--faint);font-size:.78rem}
.bnt-ctx{color:var(--faint);font-size:.78rem}
.bnt-solve{margin-top:.4rem;border:1px solid var(--accent);color:var(--accent);background:#fff;border-radius:9px;padding:.4rem .6rem;font-size:.82rem;font-weight:700;cursor:pointer;transition:.15s}
.bnt-solve:hover{background:var(--accent);color:#fff}
.bounty-modal h2{margin:.5rem 0 .2rem;font-size:1.25rem}
.bounty-modal .bm-target{color:var(--muted);margin:0 0 .8rem;font-weight:600}
.bounty-modal .bm-l{display:block;font-size:.8rem;font-weight:700;color:var(--head);margin:.7rem 0 .25rem}
.bounty-modal textarea,.bounty-modal input{width:100%;border:1px solid var(--line);border-radius:9px;padding:.55rem .65rem;font:inherit;font-size:.9rem;box-sizing:border-box}
.bounty-modal .bm-note{color:var(--faint);font-size:.78rem;margin:.6rem 0 0}
.bounty-modal .bm-block{background:#fff4f4;border:1px solid #fecaca;color:#b91c1c;border-radius:10px;padding:.8rem .9rem;font-size:.88rem;line-height:1.5}
@media(max-width:820px){ .bnt-grid{grid-template-columns:1fr} }

/* domain roles hint (who qualifies for each stewardship domain) */
.domain-roles{display:flex;flex-direction:column;gap:.25rem;margin-top:.6rem;font-size:.78rem;color:var(--muted);line-height:1.45}
.domain-roles b{color:var(--head)}

/* ================= Reputation + expert profile (/u/:handle) ================= */
.acct-rep{font-family:var(--mono);font-size:.8rem;color:var(--accent);font-weight:700;margin:0 .4rem}
.acct-name{color:var(--head);text-decoration:none}
.acct-name:hover{color:var(--accent)}

.prof-head{display:flex;align-items:center;gap:1.1rem;margin:1.4rem 0 1rem;flex-wrap:wrap}
.prof-avatar{width:64px;height:64px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.9rem;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--accent),#0f766e)}
.prof-id{flex:1;min-width:200px}
.prof-id h1{margin:0;font-size:1.7rem}
.prof-badges{display:flex;gap:.4rem;flex-wrap:wrap;margin:.35rem 0}
.prof-domain{font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px;color:#fff}
.prof-domain.physio{background:#2563eb}.prof-domain.dietitian{background:#16a34a}.prof-domain.pharmacist{background:#7c3aed}
.prof-badge{font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;background:#fef3c7;color:#b45309;border:1px solid #fde68a}
.prof-rep{color:var(--muted);font-size:.86rem}
.prof-rep b{color:var(--head);font-family:var(--mono)}
.prof-socials{display:flex;gap:.5rem;flex-wrap:wrap;margin:.6rem 0 1rem}
.prof-social{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.4rem .95rem;font-size:.85rem;font-weight:600;color:var(--ink)}
.prof-social:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
.prof-social.book{background:var(--accent);color:#fff;border-color:transparent}
.prof-social.book:hover{color:#fff;filter:brightness(1.06)}
.prof-share{background:#faf5ff;border:1px solid #e9d5ff;border-radius:14px;padding:1rem 1.1rem;margin:0 0 1.4rem}
.prof-share b{color:var(--st)}
.prof-share p{margin:.35rem 0 .7rem;font-size:.88rem;color:var(--muted);line-height:1.5}
.prof-share-row{display:flex;gap:.5rem}
.prof-share-row input{flex:1;border:1px solid var(--line);border-radius:9px;padding:.5rem .65rem;font:inherit;font-size:.85rem;background:#fff;color:var(--ink)}
.prof-share-row button{border:none;background:var(--st);color:#fff;border-radius:9px;padding:.5rem 1rem;font-weight:700;cursor:pointer}
.prof-contribs{display:flex;flex-direction:column;gap:.6rem}
.prof-contrib{display:flex;gap:.7rem;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.8rem .9rem;color:var(--ink)}
.prof-contrib:hover{border-color:var(--accent);box-shadow:var(--shadow);text-decoration:none}
.pc-dom{flex:none;font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:.15rem .45rem;border-radius:6px;color:#fff}
.pc-dom.physio{background:#2563eb}.pc-dom.dietitian{background:#16a34a}.pc-dom.pharmacist{background:#7c3aed}
.pc-body b{display:block;color:var(--head);font-size:.9rem}
.pc-body small{color:var(--muted);font-size:.8rem}
.edit-profile h2{margin:.2rem 0 .3rem}
.edit-profile label{display:block;font-size:.8rem;font-weight:700;color:var(--head);margin:.7rem 0 .25rem}
.edit-profile input{width:100%;border:1px solid var(--line);border-radius:9px;padding:.55rem .65rem;font:inherit;font-size:.9rem;box-sizing:border-box}

/* ================= Protocol stewardship banner ================= */
.steward-banner{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;border-radius:14px;padding:.8rem 1.1rem;margin:0 0 1.1rem}
.steward-banner.has{background:linear-gradient(135deg,#ecfdf5,#eff6ff);border:1px solid #bbf7d0}
.steward-banner.none{background:var(--panel2);border:1px dashed var(--line)}
.steward-banner .sb-l{flex:1;min-width:220px;font-size:.9rem;color:var(--ink)}
.sb-tag{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:.35rem}
.sb-name{font-weight:800;color:var(--head)}
.sb-name:hover{color:var(--accent)}
.sb-dom{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:.12rem .45rem;border-radius:6px;color:#fff;margin-left:.4rem}
.sb-dom.physio{background:#2563eb}.sb-dom.dietitian{background:#16a34a}.sb-dom.pharmacist{background:#7c3aed}
.sb-book{padding:.55rem 1.1rem;white-space:nowrap}
.sb-manage{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:.4rem .9rem;font-size:.8rem;cursor:pointer}
.sb-manage:hover{border-color:var(--accent);color:var(--accent)}
.prof-stewarded{display:flex;flex-wrap:wrap;gap:.5rem}
.prof-steward{background:#ecfdf5;border:1px solid #bbf7d0;border-radius:999px;padding:.4rem .9rem;font-size:.85rem;font-weight:600;color:#0f766e}
.prof-steward:hover{text-decoration:none;filter:brightness(.98);border-color:var(--accent)}

/* ================= Proof-of-Progress: share card + banners ================= */
.shared-prog{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:linear-gradient(135deg,#eef2ff,#eafcf3);border:1px solid #c7d2fe;border-radius:14px;padding:.85rem 1.1rem;margin:0 0 1.1rem}
.shared-prog .sp-l{flex:1;min-width:220px;font-size:.9rem;color:var(--ink)}
.shared-prog .sp-l b{display:block;color:var(--head)}
.fuel-foot .share{color:var(--accent);font-weight:700}
.celebrate{text-align:center}
.celebrate h2{margin:.2rem 0 .2rem;font-size:1.4rem}
.pcard-wrap{display:flex;justify-content:center;margin:1rem 0}
.celebrate-btns{display:flex;gap:.6rem;justify-content:center;margin-top:.4rem}
.celebrate-btns button{flex:1;padding:.7rem 1rem}
/* the shareable card (Instagram-story proportions) */
.pcard{width:300px;min-height:400px;border-radius:22px;padding:26px 22px;display:flex;flex-direction:column;gap:14px;
  background:radial-gradient(600px 300px at 20% 0,#134e4a 0,transparent 60%),linear-gradient(160deg,#0f172a,#134e4a);color:#fff;box-shadow:0 20px 50px rgba(12,21,34,.35);text-align:left}
.pcard-top{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;opacity:.85}
.pcard-hit{font-size:1.5rem;font-weight:800;line-height:1.15;letter-spacing:-.02em;margin-top:8px}
.pcard-prob{font-size:.95rem;opacity:.92}
.pcard-prob small{display:block;opacity:.7;font-size:.8rem;margin-top:2px}
.pcard-sec{margin-top:4px}
.pcard-sec b{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;opacity:.6;display:block;margin-bottom:5px}
.pcard-sec div{display:flex;flex-wrap:wrap;gap:6px}
.pcard-sec span{background:rgba(255,255,255,.12);border-radius:8px;padding:4px 9px;font-size:.8rem}
.pcard-foot{margin-top:auto;font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;opacity:.85;border-top:1px solid rgba(255,255,255,.15);padding-top:12px}

/* ================= Phase 4: leaderboard, Digital Rx, cite, partner submit ================= */
.lb-row{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center}
.lb-card{display:flex;align-items:center;gap:.6rem;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:.5rem 1rem;color:var(--ink);box-shadow:var(--shadow)}
.lb-card:hover{border-color:var(--accent);text-decoration:none}
.lb-rank{font-family:var(--mono);font-weight:800;color:var(--faint)}
.lb-name{font-weight:700;color:var(--head)}
.lb-pts{font-family:var(--mono);color:var(--accent);font-weight:700}
.clinic-header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:linear-gradient(135deg,#0f172a,#134e4a);color:#fff;border-radius:16px;padding:1.1rem 1.3rem;margin:0 0 1.1rem}
.clinic-header .ch-l{flex:1;min-width:200px}
.clinic-header .ch-tag{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;opacity:.7;margin-bottom:.2rem}
.clinic-header .ch-name{font-size:1.25rem;font-weight:800;color:#fff}
.clinic-header .ch-name:hover{color:#bff3ea}
.clinic-header .cta-primary{background:#fff;color:var(--head)}
.cite-modal textarea,.partner-modal input,.partner-modal select,.partner-modal textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:.6rem .7rem;font:inherit;font-size:.92rem;box-sizing:border-box;line-height:1.5}
.partner-modal textarea,.cite-modal textarea{min-height:120px;resize:vertical;display:block}
.partner-modal label{display:block;font-size:.8rem;font-weight:700;color:var(--head);margin:.6rem 0 .25rem}
.partner-modal h2,.cite-modal h2{margin:.2rem 0 .3rem}
/* ---- learning visuals: 3D embeds + inline SVG figures ---- */
.model-embed{position:relative;width:100%;aspect-ratio:16/10;margin:1rem 0 .4rem;border-radius:14px;overflow:hidden;background:#0e1420;border:1px solid var(--line)}
.model-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.learn-fig{margin:1rem 0 .3rem;border-radius:14px;background:#0e1420;border:1px solid var(--line);padding:.6rem .4rem}
.learn-fig svg{width:100%;height:auto;display:block}
.fig-credit{font-size:.8rem;color:var(--muted);margin:.15rem 0 1.1rem;line-height:1.5}
.acct-btn.super{background:linear-gradient(135deg,#f59e0b,#f97316);color:#1a1206;border-color:#f59e0b;font-weight:700}
.acct-btn.super:hover{filter:brightness(1.08)}

/* ================= Patient-view declutter: contextual leads + quiet footer ================= */
.ctx-slot:empty{display:none}
.ctx-card{display:flex;align-items:center;gap:.6rem;margin-top:.8rem;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:.6rem .75rem;color:var(--ink)}
.ctx-card.ext:hover{border-color:var(--accent);text-decoration:none}
.ctx-ico{font-size:1.3rem;flex:none}
.ctx-card .ctx-body{display:flex;flex-direction:column;flex:1;color:var(--ink)}
.ctx-card .ctx-body:hover{text-decoration:none}
.ctx-card .ctx-body b{font-size:.85rem;color:var(--head)}
.ctx-card .ctx-body small{font-size:.76rem;color:var(--muted)}
.ctx-book{flex:none;background:var(--accent);color:#fff;border-radius:999px;padding:.35rem .8rem;font-size:.8rem;font-weight:700}
.ctx-book:hover{text-decoration:none;filter:brightness(1.06)}
.proto-after{margin-top:1.6rem;border-top:1px solid var(--line);padding-top:1rem}
.proto-discuss{margin:.6rem 0}
.proto-discuss>summary{cursor:pointer;color:var(--muted);font-size:.85rem;list-style:none}
.proto-discuss>summary::-webkit-details-marker{display:none}
.proto-discuss>summary:hover{color:var(--accent)}
.pro-footer{display:flex;gap:.6rem;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:1rem;padding:.7rem;background:var(--panel2);border-radius:10px;font-size:.85rem;color:var(--muted)}
.pro-footer a{font-weight:700}

/* ================= Pro dashboard (/pro) ================= */
.pro-hd{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1.4rem 0 1rem}
.pro-hd-id{flex:1;min-width:200px}
.pro-hd-id h1{margin:0;font-size:1.6rem}
.pro-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1.2rem}
.pro-stat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem;text-align:center;box-shadow:var(--shadow)}
.pro-stat b{display:block;font-family:var(--mono);font-size:1.8rem;font-weight:800;color:var(--head);line-height:1}
.pro-stat span{font-size:.74rem;color:var(--faint);text-transform:uppercase;letter-spacing:.05em}
.pro-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem;margin-bottom:1rem}
.pro-card .section-title{margin-top:0}
.pro-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.6rem 0;border-bottom:1px solid var(--line)}
.pro-row:last-child{border-bottom:none}
.pro-row a{font-weight:600}
@media(max-width:600px){ .pro-stats{grid-template-columns:1fr 1fr} }

/* ================= Home v2: RNA-led journey, one CTA, staggered reveal ================= */
.hero-note{margin-top:1rem;font-size:.82rem;color:var(--faint);letter-spacing:.02em}
.how-cta{text-align:center;margin-top:1.6rem}
/* staggered reveal: the section stays put; its cards fade up one after another on scroll-in */
.reveal.stagger{opacity:1;transform:none;transition:none}
.reveal.stagger .step3{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.reveal.stagger.in .step3{opacity:1;transform:none}
.reveal.stagger.in .step3:nth-child(2){transition-delay:.12s}
.reveal.stagger.in .step3:nth-child(3){transition-delay:.24s}
@media(prefers-reduced-motion:reduce){.reveal.stagger .step3{opacity:1;transform:none;transition:none}}
.pro-strip{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff;border-radius:18px;padding:1.6rem 1.8rem;margin:2.8rem 0 1rem}
.pro-strip .ps-copy{flex:1;min-width:260px}
.pro-strip .p-tag{opacity:.85}
.pro-strip h2{color:#fff;font-size:1.5rem;margin:.2rem 0 .4rem}
.pro-strip p{opacity:.9;margin:0;font-size:.92rem;line-height:1.5}
.pro-strip .cta-ghost{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.35);white-space:nowrap}
.pro-strip .cta-ghost:hover{background:rgba(255,255,255,.24);text-decoration:none}
.browse-sec{margin-top:2.6rem}
.browse-more{text-align:center;color:var(--muted);font-size:.88rem;margin-top:1rem}
#home-leaderboard:not(:empty){margin-top:1.6rem}

.page-cta{text-align:center;margin:1.8rem 0}

/* ================= /pros professional landing ================= */
.pros-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;max-width:820px;margin:1.4rem auto 0}
.pros-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem;box-shadow:var(--shadow)}
.pros-card b{color:var(--head);font-size:1rem}
.pros-card p{margin:.4rem 0 0;color:var(--muted);font-size:.9rem;line-height:1.5}
.pro-row-acts{display:inline-flex;gap:.6rem;white-space:nowrap}
@media(max-width:620px){ .pros-grid{grid-template-columns:1fr} }

/* ================= Prominent discussions + per-page top contributors ================= */
.page-discuss{margin-top:2rem;border-top:2px solid var(--line);padding-top:1.4rem}
.discuss-head{margin-bottom:.9rem}
.discuss-head h2{margin:0 0 .2rem;font-size:1.3rem}
.discuss-sub{margin:0;color:var(--muted);font-size:.9rem}
.comment-form{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.8rem;box-shadow:var(--shadow)}
.comment-form textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:.6rem;font:inherit;font-size:.92rem;box-sizing:border-box;resize:vertical}
.comment-signin{background:#eef7ff;border:1px solid #c7d2fe;border-radius:12px;padding:.9rem 1.1rem;font-size:.92rem}
.comment-user{color:var(--head);font-weight:700;text-decoration:none}
.comment-user:hover{color:var(--accent)}
.proto-contributors,#proto-contributors:empty{margin:0}
.pc-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:1.2rem 0 .5rem}
.pc-row{display:flex;flex-wrap:wrap;gap:.5rem}
.pc-chip{display:inline-flex;align-items:center;gap:.45rem;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:.35rem .8rem;color:var(--ink);box-shadow:var(--shadow)}
.pc-chip:hover{border-color:var(--accent);text-decoration:none}
.pc-u{font-weight:700;color:var(--head)}
.pc-n{font-size:.76rem;color:var(--faint)}

/* crowd-food add form + verified badge */
.uf-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.3rem}
.uf-grid input{width:100%;border:1px solid var(--line);border-radius:8px;padding:.45rem .55rem;font:inherit;font-size:.88rem;box-sizing:border-box}
.uf-badge{color:var(--green);font-weight:700;font-size:.72rem}

/* ================= Request a protocol + contribute prompts ================= */
.request-cta{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:linear-gradient(135deg,#eef4ff,#eafcf3);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.3rem;margin:2rem 0 1rem}
.request-cta b{color:var(--head)}
.request-cta span{color:var(--muted);font-size:.9rem}
.req-list{display:flex;flex-direction:column;gap:.5rem}
.req-row{display:flex;align-items:center;gap:.7rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem}
.req-vote{flex:none;display:flex;flex-direction:column;align-items:center;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:9px;padding:.3rem .55rem;cursor:pointer;font-size:.75rem;line-height:1.1;min-width:2.4rem}
.req-vote:hover,.req-vote.voted{border-color:var(--accent);color:var(--accent)}
.req-vote .rv-n{font-family:var(--mono);font-weight:800;font-size:.9rem;color:var(--head)}
.req-b b{color:var(--head);font-size:.92rem}
.req-b small{display:block;color:var(--muted);font-size:.8rem}
.req-status{display:inline-block;margin-top:.2rem;font-size:.72rem;color:var(--green);font-weight:700}
.fuel-contribute{background:#f0f9ff;border:1px dashed #bae6fd;border-radius:10px;padding:.55rem .75rem;font-size:.82rem;color:var(--muted);line-height:1.5;margin:.5rem 0}

/* ================= Scrollytelling — pinned, scroll-driven module ================= */
.scrolly{position:relative;height:200vh}
.scrolly-track{position:sticky;top:58px;height:calc(100vh - 58px);display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start;align-content:start;max-width:1080px;margin:0 auto;padding:4vh 1.2rem 0;overflow:hidden}
.scrolly-copy .section-title{text-align:left;margin-bottom:1.4rem}
.sy-step{opacity:.62;transform:translateY(4px);transition:opacity .5s ease,transform .5s ease;padding:.55rem 0 .55rem 1rem;border-left:3px solid var(--line)}
.sy-step.on{opacity:1;transform:none;border-left-color:var(--accent)}
.sy-step h3{margin:.35rem 0 .3rem;color:var(--head);font-size:1.25rem}
.sy-step p{color:var(--muted);font-size:.95rem;line-height:1.6;margin:0}
.scrolly-cta{margin:2.5rem auto 0}

/* the pinned "phone" stage */
.scrolly-stage{display:flex;flex-direction:column;align-items:center;justify-content:center}
.phone{position:relative;width:300px;height:560px;background:#0e1420;border-radius:38px;padding:14px;box-shadow:0 30px 70px -20px rgba(16,32,64,.5),0 0 0 2px rgba(255,255,255,.04) inset;flex:none}
.phone-notch{position:absolute;top:14px;left:50%;transform:translateX(-50%);width:120px;height:22px;background:#0e1420;border-radius:0 0 14px 14px;z-index:3}
.phone-screen{position:relative;width:100%;height:100%;background:linear-gradient(180deg,#f7fbff,#eef4fb);border-radius:26px;overflow:hidden}
.sy-frame{position:absolute;inset:0;padding:2.4rem 1.15rem 1.15rem;display:flex;flex-direction:column;gap:.6rem;opacity:0;transform:translateY(22px) scale(.97);transition:opacity .55s ease,transform .55s ease;pointer-events:none}
.sy-frame.on{opacity:1;transform:none;pointer-events:auto}

/* frame 1 — diagnose */
.pf-bar{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid var(--line);border-radius:11px;padding:.6rem .7rem;font-size:.82rem;color:var(--head);box-shadow:0 4px 12px -6px rgba(0,0,0,.12)}
.pf-q{font-weight:800;color:var(--head);font-size:.92rem;margin-top:.3rem}
.pf-opt{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem;font-size:.8rem;color:var(--muted)}
.pf-opt.pf-hi{border-color:var(--accent);background:#eef4ff;color:var(--head);font-weight:700}
.pf-pick{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);color:var(--accent)}
.pf-root{margin-top:.35rem;font-size:.8rem;color:var(--green);background:#eafcf3;border:1px dashed #a7e8c8;border-radius:9px;padding:.5rem .6rem}
.pf-root b{color:#0a7a48}

/* frame 2 — protocol */
.pf-proto{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.2rem .6rem;background:#fff;border:1px solid var(--line);border-radius:11px;padding:.55rem .7rem;box-shadow:0 4px 12px -8px rgba(0,0,0,.12)}
.pf-proto .pf-l{grid-row:span 2;font-size:.72rem;font-weight:800;padding:.3rem .45rem;border-radius:8px;text-align:center;align-self:stretch;display:flex;align-items:center}
.pf-l.mv{background:#eaf3ff;color:#1f6fd6}.pf-l.st{background:#f1ecff;color:#6b46c1}.pf-l.fl{background:#eafcf3;color:#0a7a48}
.pf-proto b{color:var(--head);font-size:.86rem}
.pf-proto small{color:var(--muted);font-size:.72rem}
.pf-cap{margin-top:.3rem;text-align:center;font-size:.76rem;color:var(--muted)}

/* frame 3 — tracker */
.pf-track-h{font-weight:800;color:var(--head);font-size:.9rem;margin-bottom:.2rem}
.pf-nut{display:grid;grid-template-columns:64px 1fr 34px;align-items:center;gap:.5rem;font-size:.78rem;color:var(--head)}
.sy-bar{height:9px;background:#e3ebf3;border-radius:6px;overflow:hidden}
.sy-bar>i{display:block;height:100%;width:25%;border-radius:6px;background:linear-gradient(90deg,#38bdf8,#2f7de0);transition:width .12s linear}
.pf-nut em{font-style:normal;font-family:var(--mono);color:var(--muted);text-align:right;font-size:.72rem}

.sy-dots{display:flex;gap:.5rem;margin-top:1.4rem}
.sy-dots i{width:8px;height:8px;border-radius:50%;background:var(--line);transition:.3s}
.sy-dots i.on{background:var(--accent);transform:scale(1.35)}
.funnel-req .fh-i{background:#eef4ff}

@media(max-width:820px){
  .scrolly{height:auto}
  .scrolly-track{position:static;height:auto;grid-template-columns:1fr;gap:1.5rem;padding:1.5rem 1.2rem}
  .sy-step{opacity:1;transform:none;border-left-color:var(--line)}
  .sy-step.on{border-left-color:var(--accent)}
  .scrolly-stage{display:none}
  .scrolly-cta{margin-top:.5rem}
}
@media(prefers-reduced-motion:reduce){.sy-frame{transition:none}.sy-step{opacity:1;transform:none}}

/* pros scrolly frames */
.pf-verify,.pf-clinic{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.9rem;box-shadow:0 4px 12px -8px rgba(0,0,0,.12)}
.pf-verify{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem}
.pf-av{width:46px;height:46px;border-radius:50%;background:#eef4ff;display:flex;align-items:center;justify-content:center;font-size:1.3rem}
.pf-verify b{color:var(--head);font-size:.9rem}
.pf-verify small{color:var(--muted);font-size:.75rem}
.pf-badge{margin-top:.3rem;font-size:.75rem;font-weight:800;color:#0a7a48;background:#eafcf3;border:1px solid #a7e8c8;border-radius:20px;padding:.25rem .7rem}
.pf-clinic{display:flex;align-items:center;gap:.6rem;text-align:left}
.pf-clinic b{color:var(--head);font-size:.88rem;display:block}
.pf-clinic small{color:var(--muted);font-size:.74rem}
.pf-book{border:none;background:linear-gradient(135deg,var(--accent),#2f7de0);color:#fff;font-weight:800;border-radius:10px;padding:.6rem;font-size:.85rem;cursor:default}
.pf-proto2{background:#f4f8fd;border:1px dashed var(--line);border-radius:10px;padding:.5rem .6rem;font-size:.78rem;color:var(--muted);display:flex;align-items:center;gap:.4rem}
.pf-proto2 .pf-l{font-size:.7rem;font-weight:800;padding:.2rem .4rem;border-radius:7px}

/* ================= Super-admin control room + root-cause governance ================= */
/* Apple-style: one focused view at a time, generous whitespace, quiet chrome */
.cr-head h1{margin:0 0 .1rem}
.cr-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem;margin:.9rem 0 1.3rem}
.cr-metric{display:flex;flex-direction:column;gap:.15rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.cr-m-n{font-size:1.7rem;font-weight:800;line-height:1;color:var(--head);letter-spacing:-.02em}
.cr-m-l{font-size:.78rem;color:var(--muted)}
.cr-seg{display:inline-flex;gap:.2rem;padding:.25rem;border-radius:14px;background:var(--panel);border:1px solid var(--line);margin:0 0 1.4rem;max-width:100%;overflow-x:auto}
.cr-seg button{border:none;background:transparent;font:inherit;font-weight:600;font-size:.9rem;color:var(--muted);cursor:pointer;padding:.5rem 1.1rem;border-radius:11px;white-space:nowrap;transition:.14s}
.cr-seg button:hover{color:var(--head)}
.cr-seg button.on{background:var(--bg);color:var(--head);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.cr-view{min-height:40vh}
.cr-sec-h{margin:0 0 1rem}
.cr-sec-h h2{margin:0 0 .15rem;font-size:1.25rem;letter-spacing:-.01em}
.cr-sec-h p{margin:0;font-size:.85rem}
.cr-export{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:1.1rem 0 .5rem;padding-top:1rem;border-top:1px solid var(--line)}
.cr-export-l{font-size:.82rem;color:var(--muted);margin-right:.2rem}
/* Data-asset cards: one clear dataset each, framed what/who/why/how + live stat */
.ds-nudge{font-size:.85rem;color:var(--muted);margin:-.4rem 0 1rem;padding:.5rem .75rem;background:var(--panel);border:1px solid var(--line);border-radius:10px}
.ds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.9rem}
.ds-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:1.05rem 1.15rem;box-shadow:0 1px 2px rgba(0,0,0,.03);font:inherit;text-align:left;cursor:pointer;width:100%;color:inherit;transition:.14s}
.ds-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.06)}
.ds-expand{margin-left:auto;color:var(--faint);font-size:1.05rem;flex:none}
.ds-card:hover .ds-expand{color:var(--accent)}
.dsm-head{display:flex;align-items:center;gap:.6rem;margin:0 0 1rem}
.dsm-ico{font-size:1.7rem}
.dsm-head h2{margin:0;font-size:1.35rem;letter-spacing:-.01em}
.dsm-stat{padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel);margin:0 0 1.1rem}
.dsm-meta{display:flex;flex-direction:column;gap:.8rem;margin:0 0 1.2rem}
.dsm-meta>div{display:grid;grid-template-columns:9rem 1fr;gap:.6rem}
.dsm-meta dt{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}
.dsm-meta dd{margin:0;font-size:.92rem;line-height:1.45;color:var(--head)}
.dsm-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.ds-head{display:flex;align-items:center;gap:.55rem;margin-bottom:.7rem}
.ds-ico{font-size:1.4rem;line-height:1;flex:none}
.ds-head h4{margin:0;font-size:1.02rem;font-weight:700;letter-spacing:-.01em;color:var(--head)}
.ds-stat{min-height:2.4rem;margin-bottom:.9rem;padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.ds-big{font-size:2rem;font-weight:800;line-height:1;letter-spacing:-.02em;color:var(--head)}
.ds-sub{font-size:.82rem;color:var(--muted);margin-top:.25rem;line-height:1.4}
.ds-list{list-style:none;margin:.1rem 0 0;padding:0;font-size:.88rem;display:flex;flex-direction:column;gap:.25rem}
.ds-phrow{font-size:.84rem;margin:.15rem 0;line-height:1.5}
.ds-phk{display:inline-block;min-width:4.2rem;font-weight:600;color:var(--muted)}
.ds-empty{font-size:.85rem;color:var(--faint);font-style:italic;line-height:1.4}
.ds-meta{margin:0;display:flex;flex-direction:column;gap:.5rem}
.ds-meta>div{display:grid;grid-template-columns:2.6rem 1fr;gap:.5rem;align-items:start}
.ds-meta dt{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);padding-top:.08rem}
.ds-meta dd{margin:0;font-size:.82rem;color:var(--head);line-height:1.4}
.adm-tabs{display:flex;gap:.45rem;flex-wrap:wrap;margin:.8rem 0 1rem}
.adm-tabs button{border:1px solid var(--line);background:var(--panel);padding:.45rem .95rem;font:inherit;font-weight:600;font-size:.88rem;color:var(--muted);cursor:pointer;border-radius:999px;display:flex;align-items:center;gap:.45rem;transition:.12s}
.adm-tabs button:hover{border-color:var(--accent);color:var(--head)}
.adm-tabs button.on{color:#fff;background:var(--accent);border-color:var(--accent)}
.adm-c{font-size:.72rem;min-width:1.1rem;text-align:center;opacity:.85}
.adm-c.hot{background:#e5484d;color:#fff;border-radius:20px;padding:.05rem .42rem;font-weight:700;opacity:1}
.ops-menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.6rem;margin:.6rem 0 1.1rem}
.ops-item{display:flex;align-items:flex-start;gap:.7rem;text-align:left;border:1px solid var(--line);background:var(--panel);padding:.75rem .85rem;border-radius:14px;cursor:pointer;font:inherit;transition:.12s;color:var(--head)}
.ops-item:hover{border-color:var(--accent);transform:translateY(-1px)}
.ops-item.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.ops-ico{font-size:1.25rem;line-height:1.3;flex:none}
.ops-txt{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.ops-title{font-weight:700;font-size:.92rem;display:flex;align-items:center;gap:.4rem}
.ops-desc{font-size:.78rem;color:var(--muted);line-height:1.35}
.ops-item .adm-c{color:var(--muted)}
.adm-sub-h{font-size:.95rem;font-weight:700;color:var(--head);margin:1.3rem 0 .5rem}
.adm-sub-h:first-child{margin-top:0}
.pf-conds{margin:.6rem 0 .2rem}
.pf-conds-h{display:block;font-size:.85rem;font-weight:600;color:var(--head);margin-bottom:.45rem}
.pf-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.pf-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;padding:.35rem .65rem;border:1px solid var(--line);border-radius:999px;cursor:pointer;color:var(--head);user-select:none}
.pf-chip:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);font-weight:600}
.pf-chip input{margin:0;accent-color:var(--accent)}
.sig-h{font-size:1rem;margin:1.4rem 0 .7rem;color:var(--head)}
.sig-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem}
.sig-card{border:1px solid var(--line);background:var(--bg);border-radius:14px;padding:.85rem .95rem}
.sig-card.sig-wide{grid-column:1/-1}
.sig-t{font-weight:700;font-size:.86rem;margin-bottom:.5rem;color:var(--head)}
.sig-t .muted{font-weight:400;font-size:.75rem}
.sig-list{list-style:none;margin:.2rem 0 0;padding:0;display:flex;flex-direction:column;gap:.28rem;font-size:.85rem}
.sig-list.sig-scroll{max-height:150px;overflow-y:auto}
.sig-pills{display:flex;flex-wrap:wrap;gap:.35rem}
.sig-pill{font-size:.78rem;padding:.25rem .55rem;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--head)}
.sig-pill b{color:var(--accent)}
.rz-sub{margin:.5rem 0 0}
.rz-sub>b{font-size:.82rem;color:var(--head)}
.hm-relab{background:color-mix(in srgb,var(--accent) 9%,var(--panel));border:1px solid var(--line);border-radius:12px;padding:.7rem .85rem;margin:.2rem 0 .8rem;font-size:.86rem;line-height:1.45}
.dm-rem-off{display:flex;align-items:center;gap:.5rem;font-size:.85rem;margin:.7rem 0 0;padding-top:.6rem;border-top:1px solid var(--line);color:var(--muted);cursor:pointer}
.dm-rem-off input{accent-color:var(--accent)}
#adm-body{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:1rem 1.2rem;overflow-x:auto}
#adm-body>.muted:first-child{margin-top:0}
.admin-btn.ok{border-color:var(--green);color:var(--green)}
.admin-btn.ok:hover{background:var(--green);color:#fff}
.rcc-act{font-weight:800;font-size:.78rem;white-space:nowrap}
.rcc-act.add{color:#0a7a48}.rcc-act.remove{color:#c2410c}
.rcc-why{font-size:.82rem;color:var(--head);margin-top:.2rem}

.rc-stub{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:.8rem 1rem;color:#9a3412;font-size:.9rem;margin:1rem 0}
.rcg-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem 1.2rem;margin:1.2rem 0}
.rcg-head{font-weight:800;color:var(--head);display:flex;align-items:center;gap:.5rem}
.rcg-tag{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:#eef4ff;color:var(--accent);border-radius:20px;padding:.15rem .55rem}
.rcg-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 0;border-top:1px solid var(--line)}
.rcg-row b{color:var(--head);font-size:.9rem}
.rcg-row small{display:block;color:var(--muted);font-size:.8rem;margin:.15rem 0}
.rcg-row em{font-style:normal;color:var(--accent);font-size:.76rem;font-weight:700}
.rcg-endorse{flex:none;border:1px solid var(--accent);color:var(--accent);background:#fff;border-radius:9px;padding:.4rem .8rem;font-weight:700;cursor:pointer}
.rcg-endorse:hover{background:var(--accent);color:#fff}
.rcg-endorse.done{border-color:var(--green);color:var(--green);background:#eafcf3;cursor:default}
.rcg-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.8rem}
.rcg-doms{display:flex;flex-wrap:wrap;gap:.5rem;margin:.3rem 0 .2rem}
.rcg-dom{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--head);background:#fff;border:1px solid var(--line);border-radius:8px;padding:.3rem .6rem;cursor:pointer}

/* ================= Anatomy & physiology pages ================= */
.tag-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 1rem}
.tag-chip{display:inline-flex;align-items:center;gap:.3rem;background:#eef4ff;color:var(--accent);border:1px solid #d9e6ff;border-radius:20px;padding:.3rem .75rem;font-size:.82rem;font-weight:700;text-decoration:none}
.tag-chip:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.anat-head{margin-bottom:1rem}
.anat-region{display:inline-block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);background:#eef4ff;border-radius:20px;padding:.2rem .7rem;margin-bottom:.5rem}
.anat-aka{color:var(--muted);font-size:.9rem;margin:.2rem 0 0}
.anat-lead{font-size:1.08rem;line-height:1.65;color:var(--head)}
.anat-callout{background:linear-gradient(135deg,#eef4ff,#eafcf3);border:1px solid var(--line);border-radius:12px;padding:.9rem 1.1rem;font-size:1rem;color:var(--head);margin:1rem 0}
.anat-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.3rem;margin:1.2rem 0}
.anat-card h2{margin:0 0 .7rem;font-size:1.15rem}
.anat-oi{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1.4rem}
.anat-oi>div:first-child{grid-column:1/-1}
.anat-k{display:block;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.15rem}
.anat-actions{margin:.4rem 0 0;padding-left:1.1rem}
.anat-actions li{margin:.25rem 0;color:var(--head)}
.anat-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}
.anat-mini{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem}
.anat-mini h3{margin:0 0 .5rem;font-size:1rem}
.anat-mini ul{margin:.3rem 0;padding-left:1.1rem}
.anat-mini li{margin:.2rem 0;font-size:.9rem}
.anat-probs{padding-left:1.1rem}.anat-probs li{margin:.3rem 0}
.anat-exlist{display:flex;flex-direction:column;gap:.35rem;margin:.3rem 0}
.anat-ex{display:flex;justify-content:space-between;gap:.5rem;font-size:.86rem;background:#f7fafd;border:1px solid var(--line);border-radius:8px;padding:.35rem .6rem}
.anat-ex em{font-style:normal;color:var(--muted);font-size:.74rem;text-transform:capitalize}
.anat-hint{font-size:.82rem;color:var(--muted);margin-top:.5rem;line-height:1.5}
.energy-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem;margin:1rem 0}
.anat-steps{counter-reset:s;list-style:none;padding:0;margin:.6rem 0}
.anat-steps li{position:relative;padding:.55rem 0 .55rem 2.4rem;border-top:1px solid var(--line);color:var(--head)}
.anat-steps li:before{counter-increment:s;content:counter(s);position:absolute;left:0;top:.5rem;width:1.7rem;height:1.7rem;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem}
.anat-card2{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:1rem 1.2rem;margin:1rem 0}
.anat-card2 h3{margin:0 0 .4rem;color:#9a3412}
.anat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.7rem;margin:.6rem 0 1.4rem}
.anat-tile{display:flex;flex-direction:column;gap:.2rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem;text-decoration:none}
.anat-tile:hover{border-color:var(--accent);box-shadow:0 6px 18px -12px rgba(0,0,0,.25)}
.anat-tile b{color:var(--head)}.anat-tile small{color:var(--muted);font-size:.78rem}
.anat-tile.energy{background:linear-gradient(135deg,#fff,#eef4ff)}
.anat-tile.physio{background:linear-gradient(135deg,#fff,#f1ecff)}
.anat-region-group h3{margin:1rem 0 .4rem;font-size:1.05rem;color:var(--head)}
/* exercise-card muscle links */
.ex-muscles{font-size:.78rem;margin:.25rem 0}
.ex-mk{color:var(--muted);font-weight:700}
.ex-muscle{color:var(--accent);text-decoration:none;font-weight:600;margin-right:.5rem}
.ex-muscle:hover{text-decoration:underline}
/* protocol science strips */
.sci-strip{background:#f7fafd;border:1px dashed var(--line);border-radius:12px;padding:.7rem .9rem;margin:.8rem 0}
.sci-h{font-weight:800;color:var(--head);font-size:.86rem;margin-bottom:.4rem}
.sci-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.3rem 0}
.sci-k{font-size:.74rem;color:var(--muted);font-weight:700;margin-right:.3rem;min-width:6.5rem}
@media(max-width:640px){.anat-oi,.anat-grid{grid-template-columns:1fr}.energy-meta{grid-template-columns:1fr 1fr}}

/* Featured contributors (attribution, not ownership) */
.pc-sub{color:var(--muted);font-size:.85rem;margin:.1rem 0 .7rem}
.pc-chip{display:flex;align-items:center;gap:.5rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.4rem .6rem}
.pc-chip-l{display:flex;align-items:center;gap:.5rem;text-decoration:none;flex:1;min-width:0}
.pc-book{flex:none;border:1px solid var(--accent);color:var(--accent);background:#fff;border-radius:8px;padding:.3rem .6rem;font-size:.78rem;font-weight:700;text-decoration:none;white-space:nowrap}
.pc-book:hover{background:var(--accent);color:#fff}

/* Add-food micronutrients */
.uf-micros{margin:.6rem 0 .2rem;border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem}
.uf-micros summary{cursor:pointer;font-weight:700;color:var(--accent);font-size:.88rem}
.uf-micro-grid{margin-top:.3rem}

/* Intake: plain-language options + demoted clinical label */
.io-clin{display:inline-block;margin-top:.3rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:.1rem .45rem}
.intake-opt .io-b b{font-size:1rem;line-height:1.35}

/* Feedback FAB + share prompt + attribution label */
.feedback-fab{position:fixed;right:16px;bottom:16px;z-index:150;background:var(--head,#0e1420);color:#fff;border:none;border-radius:24px;padding:.6rem 1rem;font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:0 8px 24px -8px rgba(0,0,0,.4);opacity:.9}
.feedback-fab:hover{opacity:1;transform:translateY(-1px)}
@media(max-width:640px){.feedback-fab{right:12px;bottom:12px;padding:.5rem .8rem;font-size:.78rem}}
.sp-row{display:flex;gap:.6rem;align-items:center;margin-top:.6rem}
.sp-row .cta-primary{flex:1}
.bl-label{display:block;font-size:.78rem;color:var(--muted);line-height:1.5;margin:.5rem 0 .3rem}
.bl-label b{color:var(--head)}

/* Food search hit rows with an edit affordance */
.food-hit{display:flex;align-items:center;gap:.2rem;border-radius:9px}
.food-hit:hover{background:var(--panel2)}
.food-hit>button[data-food]{flex:1 1 auto;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:.3rem .4rem;text-align:left;border:none;background:none;cursor:pointer;padding:.55rem .65rem;font-size:.88rem;color:var(--ink);line-height:1.25}
.food-hit>button[data-food] b{font-weight:600}
.food-thumb{width:28px;height:28px;border-radius:6px;object-fit:cover;flex:0 0 auto;background:var(--panel2)}
.uf-tracked{margin-top:.7rem;padding:.7rem .8rem;border:1px solid var(--accent,#16a34a);border-radius:12px;background:color-mix(in srgb,var(--accent,#16a34a) 7%,transparent)}
.uf-tracked-h{font-weight:600;font-size:.85rem;margin-bottom:.5rem;color:var(--ink)}
.uf-tk{display:flex;align-items:center;gap:.6rem;margin:.35rem 0}
.uf-tk-l{flex:1 1 auto;min-width:0;font-size:.86rem}
.uf-tk-l small{display:block;color:var(--faint);font-size:.74rem;line-height:1.25}
.uf-tk input{flex:0 0 8.5rem}
.food-hit>button[data-food] small{color:var(--faint);white-space:nowrap}
.food-edit{flex:none;align-self:stretch;border:none;background:none;cursor:pointer;color:var(--muted);font-size:.95rem;padding:0 .55rem;border-radius:8px}
.food-edit:hover{background:var(--panel);color:var(--accent)}
/* Food detail sheet */
.fd-img{width:100%;max-height:200px;object-fit:cover;border-radius:14px;margin:.2rem 0 .9rem;display:block}
.fd-name{margin:0 0 .2rem;font-size:1.3rem;letter-spacing:-.01em}
.fd-serv{margin:0 0 .8rem;font-size:.88rem;color:var(--muted)}
.fd-gi{display:inline-block;font-size:.82rem;font-weight:600;padding:.35rem .7rem;border-radius:10px;margin:0 0 1rem}
.fd-sub{border:1px solid color-mix(in srgb,#22c55e 32%,var(--line));background:color-mix(in srgb,#22c55e 9%,var(--panel));border-radius:12px;padding:.75rem .9rem;margin:0 0 1.1rem}
.fd-sub-h{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#15803d;margin-bottom:.35rem}
.fd-sub-body b{font-size:.93rem;color:var(--head)}
.fd-sub-body p{margin:.25rem 0 0;font-size:.8rem;color:var(--muted);line-height:1.45}
@media(prefers-color-scheme:dark){.fd-sub-h{color:#4ade80}}
.fd-nutri{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:.5rem;margin:0 0 1.1rem}
.fd-n{display:flex;flex-direction:column;gap:.15rem;padding:.6rem .4rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-align:center}
.fd-nv{font-size:1.05rem;font-weight:700;color:var(--head);font-variant-numeric:tabular-nums}
.fd-nl{font-size:.7rem;color:var(--muted)}
.fd-qtyrow{display:flex;align-items:center;justify-content:space-between;margin:0 0 1rem;font-size:.95rem;font-weight:600}
.fd-qty{display:flex;align-items:center;gap:.9rem}
.fd-qbtn{width:2.1rem;height:2.1rem;border-radius:50%;border:1px solid var(--line);background:var(--panel);font-size:1.1rem;cursor:pointer;color:var(--head);line-height:1}
.fd-qbtn:hover{border-color:var(--accent);color:var(--accent)}
.fd-qn{font-size:1.15rem;font-weight:700;min-width:1.4rem;text-align:center;font-variant-numeric:tabular-nums}
.fd-add{width:100%}
.fd-confirm{font-size:.76rem;color:var(--muted);text-align:center;margin:.6rem 0 0}

/* ================= Fuel page (main menu function) ================= */
.fuel-picker{max-width:640px;margin:1rem auto;text-align:center}
.fuel-picker .hero-lead{margin:.6rem auto 1.4rem;color:var(--muted)}
.fuel-sel-l{display:block;text-align:left;font-weight:700;color:var(--head);margin-bottom:.4rem}
.fuel-sel{width:100%;padding:.8rem 1rem;font-size:1rem;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--head)}
.fuel-page-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}
.fuel-page-hd h1{margin:.2rem 0}
.fuel-stack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.6rem;margin:.5rem 0}
.fs-item{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem}
.fs-main{display:flex;flex-direction:column;gap:.15rem;text-decoration:none;min-width:0}
.fs-main b{color:var(--head)}
.fs-toggle{flex:none;border:1px solid var(--accent);color:var(--accent);background:#fff;border-radius:9px;padding:.35rem .7rem;font-size:.8rem;font-weight:700;cursor:pointer}
.fs-toggle.in{background:var(--green);border-color:var(--green);color:#fff}
/* Learn hub muscle chips */
.learn-muscles{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1rem}
.learn-muscle{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:.35rem .8rem;font-size:.85rem;font-weight:600;color:var(--head);text-decoration:none}
.learn-muscle:hover{border-color:var(--accent);color:var(--accent)}

/* Per-section edit affordance on protocols */
.lyr-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.lyr-head h2{margin:0}
.sec-edit{flex:none;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:8px;padding:.25rem .6rem;font-size:.76rem;font-weight:700;cursor:pointer}
.sec-edit:hover{border-color:var(--accent);color:var(--accent)}

/* ================= Exercise pages (animated movement demo) ================= */
.ex-name{color:var(--head);font-weight:700;text-decoration:none}
.ex-name:hover{color:var(--accent);text-decoration:underline}
.ex-demo{position:relative;max-width:440px;margin:1.2rem auto;border-radius:16px;overflow:hidden;background:#eef2f6;border:1px solid var(--line);min-height:180px}
.ex-demo .exd{width:100%;display:block}
.ex-demo.anim .exd-1{position:absolute;inset:0;width:100%;animation:exflip 2s ease-in-out infinite}
@keyframes exflip{0%,22%{opacity:0}50%,72%{opacity:1}100%{opacity:0}}
.ex-demo-cap{position:absolute;left:10px;bottom:10px;background:rgba(14,20,32,.72);color:#fff;font-size:.72rem;font-weight:600;padding:.25rem .55rem;border-radius:7px}
.ex-demo.noimg{display:flex;align-items:center;justify-content:center;font-size:3rem;min-height:200px}
.ex-rx-line{text-align:center;color:var(--muted);font-size:.9rem;margin:.2rem 0 1rem;text-transform:capitalize}
.ex-mgroup{display:flex;align-items:baseline;gap:.6rem;margin:.4rem 0}
.ex-mgroup .ex-mk{font-size:.72rem;font-weight:800;text-transform:uppercase;color:var(--muted);min-width:4.5rem}
.tag-chip.static{background:var(--panel);color:var(--muted);border-color:var(--line);cursor:default}
a.anat-ex{text-decoration:none}
a.anat-ex:hover{border-color:var(--accent)}
a.anat-ex b{color:var(--head)}
/* 3D model slot on muscle pages */
.anat-3d{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#0e1420;margin:.6rem 0 1rem}
.anat-3d iframe{width:100%;height:clamp(280px,52vw,440px);border:0;display:block}
.anat-3d.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;background:linear-gradient(135deg,#eef4ff,#f1ecff);color:var(--head);text-align:center;padding:2rem 1rem;min-height:180px}
.anat-3d.placeholder span{font-weight:700}
.anat-3d.placeholder small{color:var(--muted)}

/* Rx / medical-supervision separation + evidence legend */
.pill.rx{background:#fff1f0;color:#b3261e;border:1px solid #f5c2bd;font-weight:800}
.st-card.rx{border-left:3px solid #e5484d;background:linear-gradient(90deg,#fff6f5,var(--panel) 12%)}
.st-card .stars{cursor:help}

/* ================= Progressive-disclosure entity popover ================= */
.entity-pop{position:absolute;z-index:300;width:min(320px,86vw);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px -14px rgba(16,32,64,.4);padding:.7rem .8rem;animation:epin .12s ease-out}
@keyframes epin{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.ep-badge{display:inline-block;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-radius:20px;padding:.1rem .5rem;color:#fff;background:var(--muted)}
.ep-badge.st{background:#6b46c1}.ep-badge.tg{background:#0a7a48}.ep-badge.pw{background:#2f7de0}.ep-badge.mv{background:#1f6fd6}.ep-badge.en{background:#d97706}.ep-badge.ph{background:#9333ea}
.ep-title{font-weight:800;color:var(--head);margin:.35rem 0 .2rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.ep-title .stars{font-size:.8rem;color:#f59e0b}
.ep-rx{font-size:.62rem;font-weight:800;color:#b3261e;background:#fff1f0;border:1px solid #f5c2bd;border-radius:5px;padding:.05rem .3rem}
.ep-sub{font-size:.85rem;color:var(--muted);line-height:1.5;margin:0}
.ep-go{display:inline-block;margin-top:.5rem;font-size:.78rem;font-weight:700;color:var(--accent)}

/* Protocol summary card (orientation dashboard) */
.proto-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:.9rem 1.1rem;margin:.4rem 0 1.2rem}
.ps-cell{display:flex;flex-direction:column;gap:.15rem}
.ps-k{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.ps-cell b{color:var(--head);font-size:.95rem;line-height:1.35}
.ps-cell a{color:var(--accent);font-weight:700;font-size:.9rem;text-decoration:none}

/* "Example" label on illustrative marketing mockups (not real data) */
.pf-eg{position:absolute;top:8px;right:8px;z-index:4;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#64748b;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:6px;padding:.1rem .4rem}
.phone-screen{position:relative}

/* Per-section tools: share + maintained-by trust stamp */
.lyr-tools{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.sec-share{flex:none;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:8px;padding:.25rem .5rem;font-size:.8rem;cursor:pointer}
.sec-share:hover{border-color:var(--accent);color:var(--accent)}
.sec-trust-l{font-size:.7rem;font-weight:700;color:var(--muted);text-decoration:none;white-space:nowrap}
.sec-trust-l.ok{color:var(--green,#0a7a48)}
.sec-trust-l.ok:hover{text-decoration:underline}
@media(max-width:520px){.sec-trust-l{display:none}}

/* Community analogy / simplify suggestion row */
.suggest-row{margin:.8rem 0 1.2rem}
.suggest-row .linkbtn{font-size:.85rem;color:var(--accent);font-weight:600}

/* ================= Community forks (protocol variations) ================= */
.fork-items{max-height:34vh;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:.4rem;margin:.3rem 0}
.fork-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:8px;font-size:.9rem}
.fork-item:hover{background:var(--panel)}
.fork-item b{color:var(--head)}
.fork-empty{background:var(--panel);border:1px dashed var(--line);border-radius:12px;padding:.8rem 1rem;color:var(--muted);font-size:.9rem;margin:1rem 0}
.fork-list{display:flex;flex-direction:column;gap:.6rem;margin:.5rem 0}
.fork-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem}
.fork-head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.fork-title{text-decoration:none}.fork-title b{color:var(--head)}
.fork-by{font-size:.76rem;color:var(--muted);white-space:nowrap}
.fork-note{font-size:.85rem;color:var(--head);margin:.35rem 0}
.fork-stack{font-size:.82rem;color:var(--muted);margin:.2rem 0 .5rem}
.fork-clone{border:1px solid var(--accent);color:var(--accent);background:#fff;border-radius:9px;padding:.35rem .7rem;font-size:.82rem;font-weight:700;cursor:pointer}
.fork-clone:hover{background:var(--accent);color:#fff}

/* ================= "Wrapped" shareable stack card ================= */
.wrapped-card{width:342px;background:linear-gradient(160deg,#0d1a2b,#0e1420);color:#fff;border-radius:18px;padding:1.4rem 1.3rem;box-shadow:0 20px 50px -20px rgba(0,0,0,.5)}
.wr-top{display:flex;justify-content:space-between;align-items:center}
.wr-brand{font-weight:800;font-size:1rem}
.wr-loc{color:#64748b;font-size:.72rem}
.wr-title{font-size:1.7rem;font-weight:800;margin:.9rem 0 .7rem}
.wr-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;min-height:1.6rem}
.wr-chips span{background:rgba(56,189,248,.12);border:1px solid rgba(56,189,248,.3);color:#7dd3fc;border-radius:20px;padding:.2rem .6rem;font-size:.76rem}
.wr-stats{display:flex;gap:1.4rem;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);padding:.75rem 0;margin:.4rem 0}
.wr-stats div{display:flex;flex-direction:column;gap:.1rem}
.wr-stats b{font-size:1.35rem;color:#38bdf8;font-weight:800}
.wr-stats span{font-size:.64rem;color:#9fb3c8;text-transform:uppercase;letter-spacing:.04em}
.wr-goals{font-size:.82rem;color:#cbd5e1;margin:.6rem 0}
.wr-foot{font-size:.7rem;color:#64748b;margin-top:.9rem}

/* ================= "Your day" temporal plan ================= */
.day-plan{margin:.4rem 0 1.4rem}
.dp-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:.7rem;margin:.6rem 0}
.dp-block{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--line);border-radius:14px;padding:.75rem .9rem}
.dp-block.morning{border-top-color:#f59e0b}
.dp-block.training{border-top-color:#2f7de0}
.dp-block.meals{border-top-color:#0a7a48}
.dp-block.evening{border-top-color:#6b46c1}
.dp-block.periodic{border-top-color:#e5484d}
.dp-head{font-weight:800;color:var(--head);font-size:.9rem;margin-bottom:.4rem}
.dp-item{padding:.4rem 0;border-top:1px solid var(--line)}
.dp-item:first-of-type{border-top:none}
.dp-name{color:var(--head);font-weight:700;text-decoration:none;font-size:.9rem;margin-right:.4rem}
a.dp-name:hover{color:var(--accent)}
.dp-why{margin-top:.15rem}
.dp-why summary{font-size:.74rem;color:var(--accent);cursor:pointer;list-style:none}
.dp-why summary::-webkit-details-marker{display:none}
.dp-why p{font-size:.82rem;color:var(--muted);margin:.3rem 0 0;line-height:1.5}

/* ================= Community pulse (live activity feed) ================= */
.pulse-feed{max-width:640px;margin:.8rem auto 0;display:flex;flex-direction:column}
.pl-item{display:flex;gap:.7rem;padding:.6rem .2rem;border-top:1px solid var(--line);align-items:flex-start}
.pl-item:first-child{border-top:none}
.pl-ic{flex:none;font-size:1rem;width:1.6rem;text-align:center;line-height:1.4}
.pl-item>div{flex:1;font-size:.9rem;color:var(--head);line-height:1.5}
.pl-item a{color:var(--accent);text-decoration:none;font-weight:600}
.pl-item a:hover{text-decoration:underline}
.pl-actor{font-weight:700}
.pl-item small{color:var(--muted)}
.pl-dom{font-size:.66rem;font-weight:700;background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:.05rem .35rem;color:var(--muted);margin:0 .15rem}
.pl-t{display:block;font-size:.72rem;color:var(--muted);margin-top:.1rem}
.center{text-align:center}

/* Community pulse — inviting empty state */
.pulse-seed{max-width:560px;margin:.6rem auto 0;text-align:center;background:linear-gradient(135deg,#eef4ff,#eafcf3);border:1px solid var(--line);border-radius:12px;padding:.8rem 1.1rem;font-size:.9rem;color:var(--head)}
.pulse-seed a{color:var(--accent);font-weight:700}

/* ================= Compound: Stacks-with / Avoid / SG availability ================= */
.sg-buy{border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;font-size:.92rem;line-height:1.55;color:var(--head);margin:.4rem 0}
.sg-buy.ok{background:#eafcf3;border-color:#a7e8c8}
.sg-buy.rx{background:#eef4ff;border-color:#d9e6ff}
.sg-buy.warn{background:#fff7ed;border-color:#fed7aa}
.sg-buy.danger{background:#fff1f0;border-color:#f5c2bd}
.sg-cost{margin-top:.45rem;font-weight:700;color:var(--accent)}

/* ================= Compound: collapsible "human evidence" block ================= */
.evidence-block{border:1px solid var(--line);border-radius:12px;padding:.1rem .9rem;margin:.7rem 0;background:var(--panel)}
.evidence-block summary{cursor:pointer;font-weight:700;color:var(--head);padding:.65rem 0;list-style:none}
.evidence-block summary::-webkit-details-marker{display:none}
.evidence-block summary::before{content:'▸ ';color:var(--accent)}
.evidence-block[open] summary::before{content:'▾ '}
.ev-hint{font-weight:400;color:var(--muted);font-size:.82rem}
.ev-body{padding:.1rem 0 .85rem;color:var(--head);line-height:1.62;font-size:.92rem}

/* ---- Founding-clinician page (/for-clinicians) + admin export ---- */
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700;margin:0 0 .4rem}
.clin-wrap{max-width:720px}
.clin-wrap h1{margin:.1rem 0 .5rem}
.clin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:1.6rem 0}
.clin-card{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:var(--panel)}
.clin-card h3{margin:0 0 .3rem;font-size:1rem;color:var(--head)}
.clin-card p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}
.clin-form{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;padding:22px 24px;background:linear-gradient(135deg,rgba(13,148,136,.05),var(--panel));box-shadow:var(--shadow)}
.clin-form h3{margin:0 0 1rem;color:var(--head)}
.clin-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.clin-form input,.clin-form select{flex:1 1 200px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:.95rem;font-family:var(--font)}
.clin-form input:focus,.clin-form select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.clin-btn{margin-top:.4rem;padding:12px 22px;border:0;border-radius:9px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:.98rem;cursor:pointer}
.clin-btn:hover{filter:brightness(1.06)}
.clin-btn:disabled{opacity:.6;cursor:default}
.clin-consent{font-size:.78rem;margin:.7rem 0 0}
.clin-msg{margin-top:.7rem;font-size:.88rem}
.clin-msg.err{color:var(--red)}
.clin-done{text-align:center;padding:1.5rem 0}
.clin-tick{width:52px;height:52px;border-radius:50%;background:var(--accent);color:#fff;font-size:1.6rem;display:flex;align-items:center;justify-content:center;margin:0 auto .8rem}
.clin-done h3{margin:0 0 .4rem;color:var(--head)}
@media(max-width:560px){.clin-grid{grid-template-columns:1fr}}

/* ---- SEO FAQ blocks (compound + protocol pages; prerender + client parity) ---- */
.faq{display:flex;flex-direction:column;gap:8px;margin:.4rem 0 1.2rem}
.faq h2{margin:.2rem 0 .4rem}
.faq-q{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:0 14px}
.faq-q summary{cursor:pointer;font-weight:600;color:var(--head);padding:11px 0;list-style:none;display:flex;gap:8px;align-items:baseline}
.faq-q summary::-webkit-details-marker{display:none}
.faq-q summary::before{content:"＋";color:var(--accent);font-weight:700}
.faq-q[open] summary::before{content:"－"}
.faq-q p{margin:0 0 12px;color:var(--ink);line-height:1.55}

/* ---- Guided clinical assessment (physio-style triage modal) ---- */
.assess-modal{max-width:520px}
.assess-top{display:flex;align-items:center;gap:12px;margin:-4px 0 14px}
.assess-back,.assess-x{background:none;border:0;font-size:1.1rem;color:var(--muted);cursor:pointer;padding:4px 8px;border-radius:8px;line-height:1}
.assess-back:hover:not([disabled]),.assess-x:hover{background:var(--panel2);color:var(--head)}
.assess-back[disabled]{opacity:.25;cursor:default}
.assess-dots{flex:1;display:flex;gap:6px;justify-content:center}
.assess-dots span{width:8px;height:8px;border-radius:50%;background:var(--line)}
.assess-dots span.on{background:var(--accent);transform:scale(1.25)}
.assess-dots span.done{background:var(--accent);opacity:.5}
.assess-kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:700}
.assess-q{margin:.3rem 0 1rem;font-size:1.3rem;color:var(--head);line-height:1.25}
.assess-sub{color:var(--muted);font-size:.9rem;margin:-.6rem 0 1rem}
.assess-opts{display:flex;flex-direction:column;gap:10px}
.assess-opt{display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);font-size:1rem;cursor:pointer;transition:border-color .12s,background .12s}
.assess-opt:hover{border-color:var(--accent);background:var(--panel2)}
.assess-opt.sel{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.assess-opt .ao-go{margin-left:auto;color:var(--accent);font-weight:700;opacity:.6}
.assess-flags{display:flex;flex-direction:column;gap:8px;margin-bottom:1rem}
.assess-flag{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--panel);cursor:pointer;font-size:.95rem;color:var(--ink)}
.assess-flag input{margin-top:2px;accent-color:var(--red);width:18px;height:18px;flex:none}
.assess-flag.on{border-color:var(--red);background:color-mix(in srgb,var(--red) 7%,var(--panel))}
.assess-continue{width:100%;padding:13px;border:0;border-radius:11px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:1rem;cursor:pointer}
.assess-continue:hover{filter:brightness(1.06)}
.assess-result{text-align:left}
.assess-result h2{margin:.3rem 0 .6rem;color:var(--head)}
.assess-why{color:var(--ink);line-height:1.55;margin:.2rem 0 .7rem}
.assess-plain{color:var(--muted);font-style:italic;margin:0 0 .7rem;line-height:1.5}
.assess-alt{font-size:.9rem;color:var(--muted);background:var(--panel2);padding:9px 12px;border-radius:9px;margin:0 0 1rem}
.assess-actions{display:flex;flex-direction:column;gap:9px;margin-top:.4rem}
.assess-go2{padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--head);font-weight:600;font-size:1rem;cursor:pointer}
.assess-go2.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.assess-go2:hover{filter:brightness(1.04)}
.assess-switch,.assess-close2{background:none;border:0;color:var(--muted);font-size:.9rem;cursor:pointer;padding:8px;text-decoration:underline;text-underline-offset:3px}
.assess-switch:hover,.assess-close2:hover{color:var(--head)}
.assess-disclaimer{font-size:.78rem;color:var(--faint);margin:1rem 0 0;text-align:center}
.assess-result.redflag{text-align:center}
.assess-result.redflag h2{color:var(--red)}
.assess-rf-ic{font-size:2.6rem;margin-bottom:.4rem}
.assess-result.redflag p{color:var(--ink);line-height:1.6;margin:0 0 1rem}
.rc-assess{background:color-mix(in srgb,var(--accent) 10%,var(--panel));border:1px solid var(--accent);color:var(--accent);border-radius:20px;padding:6px 13px;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap}
.rc-assess:hover{background:var(--accent);color:var(--accent-ink)}

/* ---- Outcome loop: Results Ledger panel · streak · outcome modal · toast (Phase 4) ---- */
.exp-panel:empty{display:none}
.adopt-panel:empty{display:none}
.adopt-inner{margin:.9rem 0 1.1rem;font-size:.95rem;color:var(--muted)}
.outcome-proof{background:linear-gradient(135deg,rgba(13,148,136,.08),var(--panel));border:1px solid #b4e2c9;border-radius:12px;padding:.7rem 1rem;margin:.4rem 0 1rem;font-size:.95rem;color:var(--head);line-height:1.5}
.outcome-proof b{color:var(--accent)}
.adopt-inner b{color:var(--head)}
.exp-inner{margin:1rem 0 1.3rem;padding:16px 20px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:14px;background:linear-gradient(135deg,rgba(13,148,136,.06),var(--panel));box-shadow:var(--shadow)}
.exp-proof-row{margin-bottom:.85rem;line-height:1.45}
.exp-proof{font-size:1.02rem;color:var(--head)}
.exp-proof b{color:var(--accent);font-weight:700}
.exp-proof.empty{color:var(--muted);font-size:.98rem}
.exp-proof.empty b{color:var(--head)}
.exp-cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.exp-action{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.exp-cta-row .exp-btn.primary{padding:12px 26px;font-size:1rem}
@media(max-width:560px){.exp-cta-row{flex-direction:column;align-items:stretch}.exp-action{width:100%}.exp-action>.exp-btn,.exp-action .exp-running,.exp-share{width:100%;text-align:center;justify-content:center}}
.exp-btn{padding:10px 18px;border:1px solid var(--accent);border-radius:10px;background:var(--panel);color:var(--accent);font-weight:700;font-size:.92rem;cursor:pointer;white-space:nowrap}
.exp-btn.primary{background:var(--accent);color:var(--accent-ink)}
.exp-btn.sm{padding:6px 12px;font-size:.82rem}
.exp-btn.done{border-color:var(--green);color:var(--green);background:color-mix(in srgb,var(--green) 8%,var(--panel));cursor:default}
.exp-btn:hover:not(.done):not([disabled]){filter:brightness(1.05)}
.exp-btn[disabled]{cursor:default;opacity:.9}
.exp-running,.exp-done{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.9rem;color:var(--ink)}
.exp-streak{font-weight:700;color:var(--orange);white-space:nowrap}
.exp-link{background:none;border:0;color:var(--muted);font-size:.86rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:4px}
.exp-link:hover{color:var(--head)}
.oc-better{color:var(--green)}.oc-same{color:var(--muted)}.oc-worse{color:var(--orange)}
.home-stat{margin:1rem auto 0;font-size:.95rem;color:var(--muted);text-align:center}
.home-stat b{color:var(--accent)}
/* outcome modal */
.outcome-modal h2,.outcome-celebrate h2,.outcome-thanks h2{margin:.2rem 0 .5rem;color:var(--head)}
.outcome-btns{display:flex;flex-direction:column;gap:10px;margin:1rem 0 .6rem}
.oc-choice{display:flex;align-items:center;gap:12px;padding:15px 18px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--head);font-size:1.05rem;font-weight:600;cursor:pointer;text-align:left}
.oc-choice .oc-emo{font-size:1.3rem}
.oc-choice.better:hover{border-color:var(--green);background:color-mix(in srgb,var(--green) 7%,var(--panel))}
.oc-choice.same:hover{border-color:var(--muted);background:var(--panel2)}
.oc-choice.worse:hover{border-color:var(--orange);background:color-mix(in srgb,var(--orange) 7%,var(--panel))}
.oc-choice[disabled]{opacity:.5;cursor:default}
.outcome-celebrate,.outcome-thanks{text-align:center}
.outcome-celebrate p{color:var(--ink);line-height:1.6;margin:0 0 1.2rem}
.oc-emo.big{font-size:3rem;margin-bottom:.3rem}
.outcome-celebrate .exp-btn,.outcome-thanks .exp-btn{width:100%;padding:13px;margin-bottom:.5rem}
.outcome-celebrate .exp-link{display:block;width:100%;margin-top:.2rem}
/* toast */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(16px);background:var(--head);color:#fff;padding:12px 20px;border-radius:12px;font-size:.92rem;font-weight:600;box-shadow:0 12px 34px rgba(0,0,0,.25);opacity:0;transition:opacity .25s,transform .25s;z-index:1000;pointer-events:none;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---- Community goals: level/cohort/weekly chips + milestone bar (Phase 5) ---- */
.exp-meta{display:flex;flex-wrap:wrap;gap:8px;margin:.9rem 0 0;padding-top:.85rem;border-top:1px solid var(--line)}
.exp-chip{font-size:.8rem;color:var(--muted);background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:4px 11px;white-space:nowrap}
.exp-chip em{font-style:normal;color:var(--faint)}
.exp-chip.lvl{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.exp-chip.goal{color:var(--orange);border-color:color-mix(in srgb,var(--orange) 30%,var(--line))}
.home-stat-bar{max-width:340px;height:7px;border-radius:99px;background:var(--panel2);margin:.6rem auto .3rem;overflow:hidden;border:1px solid var(--line)}
.home-stat-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 60%,var(--blue)));border-radius:99px;transition:width .6s ease}
.home-stat-sub{font-size:.8rem;color:var(--faint)}

/* ---- Backlink engine: share hub + always-on share button (Phase 6) ---- */
.exp-share{background:none;border:1px solid var(--line);color:var(--muted);border-radius:20px;padding:6px 13px;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;align-self:center}
.exp-share:hover{border-color:var(--accent);color:var(--accent)}
.share-modal h2{margin:.1rem 0 .4rem;color:var(--head)}
.share-preview{margin:.9rem 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--ink);font-size:.9rem;line-height:1.5;word-break:break-word}
.share-actions{display:flex;flex-wrap:wrap;gap:9px}
.share-actions .exp-btn{flex:1 1 auto}
.share-onboard{margin:1rem 0 0;font-size:.85rem;color:var(--muted);background:color-mix(in srgb,var(--green) 6%,var(--panel));border:1px solid color-mix(in srgb,var(--green) 20%,var(--line));border-radius:9px;padding:10px 12px}
.share-onboard b{color:var(--green)}

/* ---- Comparison pages ([A] vs [B]) — Phase 9 long-tail ---- */
.cmp-wrap{overflow-x:auto;margin:1.2rem 0;border:1px solid var(--line);border-radius:12px}
.cmp-table{border-collapse:collapse;width:100%;min-width:520px;background:var(--panel);font-size:.92rem}
.cmp-table th,.cmp-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.5}
.cmp-table thead th{background:var(--panel2);color:var(--head);font-size:.95rem}
.cmp-table thead th a{color:var(--accent)}
.cmp-table tbody th{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap;width:1%;font-weight:700}
.cmp-table tr:last-child td,.cmp-table tr:last-child th{border-bottom:0}

/* ---- Exercise YouTube tutorial link ---- */
.ex-yt{display:inline-flex;align-items:center;gap:6px;margin:.7rem 0 .2rem;color:#c4302b;font-weight:600;font-size:.9rem;text-decoration:none}
.ex-yt:hover{text-decoration:underline}

/* ---- Muscle 3D placeholder (when no muscle-specific model yet) ---- */
.anat-3d-soon{display:flex;align-items:center;gap:14px;padding:18px 20px;border:1px dashed var(--line);border-radius:14px;background:var(--panel2);margin:.4rem 0 .2rem}
.anat-3d-soon .a3d-ico{font-size:1.8rem;flex:none}
.anat-3d-soon p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}

/* ---- Metabolic mill diagram (light background so the pathway colours read) ---- */
.mm-fig,.pd-fig{background:var(--panel);padding:1rem .6rem .4rem}
.mm-fig svg,.pd-fig svg{width:100%;height:auto}
.mm-fig svg text,.pd-fig svg text{font-family:-apple-system,system-ui,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}

/* ---- Daily Fact (homepage "Did you know?" widget) ---- */
.daily-fact{max-width:760px;margin:1.4rem auto 0;padding:0 1rem}
.df-card{position:relative;background:linear-gradient(135deg,#0c1a16 0%,#12352c 62%,#0d5f52 130%);color:#eafff9;border-radius:16px;padding:1.15rem 1.35rem 1.25rem;box-shadow:var(--shadow);overflow:hidden}
.df-card::before{content:"🧬";position:absolute;right:-.4rem;bottom:-1rem;font-size:5.5rem;opacity:.08;transform:rotate(-12deg)}
.df-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}
.df-kicker{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#7fe9d4}
.df-meta{font-size:.66rem;color:#8fe0cd;opacity:.8}
.df-text{font-size:1.02rem;line-height:1.5;font-weight:500;margin:.1rem 0 .7rem;position:relative;z-index:1}
.df-text b{color:#a9f3e2;font-weight:800}
.df-link{display:inline-block;font-size:.82rem;font-weight:700;color:#0c1a16;background:#7fe9d4;padding:.42rem .8rem;border-radius:999px;position:relative;z-index:1;transition:.15s}
.df-link:hover{background:#a9f3e2;transform:translateX(2px)}
@media(max-width:560px){.df-text{font-size:.96rem}}

/* ---- Supplement interaction check (Stack builder) ---- */
.ixn-panel{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow);padding:.9rem 1rem;margin:0 0 1rem}
.ixn-top{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.95rem;margin-bottom:.5rem}
.ixn-verdict{font-size:.76rem;font-weight:700;padding:.15rem .55rem;border-radius:999px}
.ixn-verdict.bad{background:#fdeaea;color:#a11}
.ixn-verdict.warn{background:#fef3e2;color:#a76100}
.ixn-verdict.ok{background:#e9f7ef;color:#0b7a4b}
.ixn-verdict.good{background:#e6f5f1;color:#0b6b5c}
.ixn{border-left:3px solid var(--line);border-radius:0 8px 8px 0;background:#fafbfc;padding:.55rem .75rem;margin:.45rem 0}
.ixn.danger{border-left-color:#c0392b;background:#fdf3f2}
.ixn.blunt{border-left-color:#e08e0b;background:#fff9f0}
.ixn.timing{border-left-color:#2563eb;background:#f2f6ff}
.ixn.good{border-left-color:#0d9488;background:#f0faf7}
.ixn-h{font-size:.9rem}
.ixn-who{font-size:.74rem;color:var(--muted);font-weight:600}
.ixn-why{font-size:.84rem;color:var(--ink);margin:.2rem 0}
.ixn-act{font-size:.82rem;color:var(--muted);margin:.15rem 0 0}
.ixn-foot{font-size:.72rem;color:var(--faint);margin:.6rem 0 0}

/* ---- Keystone card (protocol page — the one highest-leverage habit) ---- */
.keystone-card{background:linear-gradient(135deg,#fff8ec,#fdefd2);border:1px solid #f0d9a8;border-left:4px solid #e0a021;border-radius:14px;padding:1rem 1.2rem;margin:0 0 1rem;box-shadow:var(--shadow)}
.ks-badge{font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#9a6a00}
.ks-one{font-size:1.12rem;font-weight:700;color:#3a2a05;margin:.35rem 0 .3rem;line-height:1.35}
.ks-why{font-size:.9rem;color:#6b5320;margin:0 0 .4rem}
.ks-note{font-size:.78rem;color:#95803f;margin:0}

/* ---- Protocol journey rail (frames Move·Stack·Fuel as one sequence) ---- */
.journey-rail{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.4rem .6rem;margin:0 0 1rem;box-shadow:var(--shadow)}
.journey-rail .jr-step{font-size:.82rem;font-weight:700;color:var(--muted);background:transparent;border:none;border-radius:999px;padding:.28rem .7rem;cursor:pointer;transition:.15s;font-family:inherit}
.journey-rail button.jr-step:hover{background:var(--bg);color:var(--accent)}
.journey-rail .jr-step.done{color:var(--accent);cursor:default}
.journey-rail .jr-step.track{color:#fff;background:var(--accent)}
.journey-rail .jr-step.track:hover{background:#0b7a6e;color:#fff}
.journey-rail .jr-sep{color:var(--faint);font-weight:800;font-size:.8rem}
#p-move,#p-stack,#p-fuel{scroll-margin-top:5rem}
@media(max-width:560px){.journey-rail{gap:.2rem;padding:.35rem .4rem}.journey-rail .jr-step{font-size:.76rem;padding:.24rem .55rem}}

/* ---- Inline interaction note inside a protocol's Stack section ---- */
.proto-ixn{margin:.6rem 0 0}
.proto-ixn-h{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.35rem}
.proto-ixn .ixn-panel{box-shadow:none;background:var(--bg)}

/* ---- "Did you know?" fact callout on compound pages ---- */
.cpd-fact{background:linear-gradient(135deg,#f0faf7,#e6f5f1);border:1px solid #bfe6db;border-left:4px solid var(--accent);border-radius:12px;padding:.7rem .95rem;margin:.9rem 0}
.cpd-fact .cf-k{font-size:.72rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#0b6b5c;display:block;margin-bottom:.15rem}
.cpd-fact .cf-t{font-size:.96rem;color:var(--ink);line-height:1.45}
.cpd-fact .cf-t b{color:var(--accent)}

/* ---- "Coach me on Telegram" button (protocol keystone card) ---- */
.tg-coach{margin-top:.7rem;display:inline-block;background:#229ED9;color:#fff;border:none;border-radius:999px;padding:.5rem .95rem;font-size:.85rem;font-weight:700;cursor:pointer;font-family:inherit;transition:.15s}
.tg-coach:hover{background:#1b8ec4}
.tg-coach:disabled{opacity:.7;cursor:default}

/* ---- My Plan page (the personal execution "kitchen") ---- */
.plan-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.plan-hd h1{margin:.1rem 0}
.plan-hd-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.plan-empty{text-align:center;max-width:560px;margin:3rem auto;padding:0 1rem}
.plan-empty-ico{font-size:3rem}
.plan-streak{display:flex;align-items:center;gap:.7rem;margin-top:.7rem;flex-wrap:wrap}
.ks-done-btn{background:#e0a021;color:#3a2a05;border:none;border-radius:999px;padding:.45rem .95rem;font-size:.85rem;font-weight:700;cursor:pointer;font-family:inherit}
.ks-done-btn.done{background:#0d9488;color:#fff}
.streak-badge{font-size:.9rem;color:var(--muted);font-weight:600}
.start-plan-row{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin:0 0 1rem}
.start-plan{font-size:1rem}
.start-plan-note{font-size:.82rem;color:var(--muted)}
.plan-item{display:flex;align-items:flex-start;gap:.6rem;margin:.4rem 0}
.plan-item .plan-cb{margin-top:.85rem;width:1.15rem;height:1.15rem;flex:0 0 auto;accent-color:var(--accent);cursor:pointer}
.plan-item .ex-card,.plan-item .stack-card,.plan-item>*:not(.plan-cb){flex:1;min-width:0}
.plan-supps{margin:.3rem 0}
.chip.food-only{cursor:pointer;border:1px solid var(--line);background:#fff;margin:.2rem 0 .6rem}
.chip.food-only.on{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ---- Learn "learn & master" scaffold: takeaways + active-recall quiz ---- */
.learn-progress{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem}
.learn-takeaways{background:#f2fbf5;border:1px solid #b4e2c9;border-left:4px solid var(--accent);border-radius:12px;padding:.9rem 1.1rem;margin:1.6rem 0 1rem}
.learn-takeaways .lt-h{font-size:.78rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#0b6b5c;margin-bottom:.4rem}
.learn-takeaways ul{margin:0;padding-left:1.1rem}
.learn-takeaways li{margin:.3rem 0;font-size:.92rem;line-height:1.5}
.learn-quiz{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.9rem 1.1rem;margin:1rem 0;box-shadow:var(--shadow)}
.learn-quiz .lq-h{font-size:1rem;font-weight:800;color:var(--ink)}
.learn-quiz .lq-sub{font-size:.82rem;color:var(--muted);margin:.15rem 0 .6rem}
.lq-item{border-top:1px solid var(--line);padding:.55rem 0}
.lq-item:first-of-type{border-top:none}
.lq-item summary{cursor:pointer;font-weight:600;font-size:.92rem;list-style:none;display:flex;gap:.5rem;align-items:baseline}
.lq-item summary::-webkit-details-marker{display:none}
.lq-item summary::before{content:"▸";color:var(--accent);font-size:.8rem}
.lq-item[open] summary::before{content:"▾"}
.lq-n{font-size:.72rem;font-weight:800;color:var(--accent);background:#e6f5f1;border-radius:6px;padding:.05rem .35rem}
.lq-a{margin:.5rem 0 .2rem 1.1rem;padding:.55rem .8rem;background:var(--bg);border-radius:8px;font-size:.9rem;line-height:1.5;color:var(--ink)}

/* ---- Fix: day-plan columns stretching to equal height (massive whitespace) ---- */
.dp-blocks{align-items:start}
.proto-grid{align-items:start}

/* ---- Protocol page "what's inside" teaser (details now live in the builder) ---- */
.proto-inside{background:#f6faf9;border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;margin:1rem 0}
.proto-inside .pi-k{font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}
.proto-inside p{margin:.25rem 0 0;font-size:.92rem;color:var(--ink)}

/* ---- My Plan builder wizard ---- */
.build-steps{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin:.2rem 0 1rem}
.bstep{font-size:.8rem;font-weight:700;color:var(--faint);padding:.25rem .6rem;border-radius:999px;background:#fff;border:1px solid var(--line)}
.bstep.on{color:#fff;background:var(--accent);border-color:var(--accent)}
.bstep.done{color:var(--accent);border-color:#b4e2c9;background:#f2fbf5}
.bsep{color:var(--faint);font-weight:800;font-size:.8rem}
.build-list{margin:.4rem 0}
.build-item{display:flex;align-items:flex-start;gap:.7rem;padding:.5rem;border:1px solid transparent;border-radius:12px;margin:.35rem 0;transition:.12s}
.build-item.sel{background:#f2fbf5;border-color:#cdeadd}
.build-item .build-cb{margin-top:.9rem;width:1.25rem;height:1.25rem;flex:0 0 auto;accent-color:var(--accent);cursor:pointer}
.build-item .ex-card,.build-item .st-card{flex:1;min-width:0;margin:0}
.build-item{position:relative}
.build-custom{position:absolute;top:.35rem;right:.5rem;font-size:.66rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--accent);background:rgba(13,148,136,.1);padding:.1rem .4rem;border-radius:999px}
/* Search-to-add: pull any item from the full library into a build section */
.build-add{margin:.8rem 0 .4rem;padding:.9rem 1rem;border:1px dashed var(--line);border-radius:12px;background:var(--panel)}
.build-add-lbl{display:block;font-weight:600;font-size:.9rem;color:var(--head);margin-bottom:.5rem}
.build-search{width:100%;padding:.6rem .8rem;border:1px solid var(--line);border-radius:10px;font-size:.95rem;background:var(--bg);color:var(--head)}
.build-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.build-results{margin-top:.5rem;display:flex;flex-direction:column;gap:.3rem}
.build-res{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem;cursor:pointer;transition:.12s}
.build-res:hover{border-color:var(--accent);background:rgba(13,148,136,.04)}
.build-res .br-name{font-weight:600;color:var(--head);font-size:.92rem}
.build-res .br-meta{flex:1;min-width:0;font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.build-res .br-add{flex:0 0 auto;font-size:.78rem;font-weight:700;color:var(--accent)}
.build-nohit{font-size:.85rem;color:var(--muted);margin:.5rem 0 0}
.build-nav{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin:1.2rem 0 .5rem;position:sticky;bottom:.6rem;background:var(--bg);padding:.5rem 0}
.build-count{font-size:.85rem;color:var(--muted)}
@media(max-width:560px){
  .build-nav{gap:.5rem .8rem}
  .build-nav .cta-primary{flex:1 1 100%;order:3;text-align:center;justify-content:center}
  .build-nav .cta-ghost{order:1}
  .build-count{order:2}
}
.plan-tg{margin:.8rem 0}
.tg-sync-note{font-size:.78rem;color:var(--muted);margin:.4rem 0 0}
.plan-tg .tg-coach{background:#229ED9;color:#fff;border:none;border-radius:999px;padding:.5rem .95rem;font-size:.85rem;font-weight:700;cursor:pointer;font-family:inherit}
.plan-tg .tg-coach:hover{background:#1b8ec4}
.plan-built-banner{background:linear-gradient(135deg,#f2fbf5,#eafaf1);border:1px solid #b4e2c9;border-radius:12px;padding:.7rem 1rem;margin:0 0 1rem;font-size:.95rem}

/* ---- Focused daily tracker (post-build) ---- */
.trk-hd .plan-hd-actions{align-items:center}
.trk-share{background:var(--accent);color:#fff;border:none;border-radius:999px;padding:.4rem .9rem;font-size:.82rem;font-weight:600;cursor:pointer}
.trk-share:hover{filter:brightness(1.05)}
.trk-today{margin:1.1rem 0}
.trk-today-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}
.trk-today-head h2{margin:0;font-size:1.15rem}
.trk-prog{font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}
/* Home GP recruitment strip */
.gp-home{margin:2.4rem 0}
.gp-home-inner{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;border:1px solid var(--line);border-radius:20px;padding:1.6rem 1.7rem;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 8%,var(--panel)),var(--panel))}
.gp-home-txt{max-width:640px}
.gp-home-txt h2{margin:.4rem 0 .5rem;font-size:1.4rem;letter-spacing:-.01em;line-height:1.25}
.gp-home-txt p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.55}
.gp-home-inner .cta-primary{white-space:nowrap;flex:none}
/* ============ GP recruitment landing (/gp) ============ */
.cta-primary.lg{font-size:1.02rem;padding:.85rem 1.6rem}
.gp-hero{text-align:center;padding:2.4rem 0 2rem;max-width:760px;margin:0 auto}
.gp-eyebrow{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);padding:.35rem .8rem;border-radius:999px;margin-bottom:1.1rem}
.gp-h1{font-size:clamp(1.8rem,5vw,2.9rem);line-height:1.12;letter-spacing:-.02em;margin:0 0 1rem}
.gp-h1 .lead{color:var(--accent)}
.gp-sub{font-size:1.08rem;line-height:1.6;color:var(--muted);max-width:620px;margin:0 auto 1.6rem}
.gp-hero-cta{display:flex;flex-direction:column;align-items:center;gap:.6rem}
.gp-cta{display:inline-block;font-size:1.02rem;padding:.85rem 1.7rem;border-radius:999px}
.gp-hero-note{font-size:.8rem;color:var(--faint);margin-top:.7rem}
.gp-scrollhint{margin-top:1.8rem;font-size:.82rem;color:var(--faint);animation:gpbob 1.8s ease-in-out infinite}
@keyframes gpbob{0%,100%{transform:translateY(0);opacity:.65}50%{transform:translateY(4px);opacity:1}}
/* pain → fix modules — responsive (desktop side-by-side, mobile stacked); visuals always visible */
.gpm{margin:2.9rem 0}
.gpm-tag{font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:1.1rem}
.gpm-flow{display:grid;grid-template-columns:1fr auto 1fr;gap:1.2rem;align-items:stretch}
.gpm-side{display:flex;flex-direction:column;min-width:0}
.gpm-side h3{font-size:1.15rem;margin:1rem 0 .4rem;color:var(--head);letter-spacing:-.01em;line-height:1.25}
.gpm-side h3 .lead{color:var(--accent)}
.gpm-side p{font-size:.9rem;line-height:1.55;color:var(--muted);margin:0}
.gpm-viz{border:1px solid var(--line);border-radius:18px;padding:1.3rem 1.1rem;min-height:158px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;text-align:center}
.gpm-pain .gpm-viz{background:linear-gradient(180deg,color-mix(in srgb,#ef4444 6%,var(--panel)),var(--panel));border-color:color-mix(in srgb,#ef4444 20%,var(--line))}
.gpm-viz-good{background:linear-gradient(180deg,color-mix(in srgb,#22c55e 9%,var(--panel)),var(--panel))!important;border-color:color-mix(in srgb,#22c55e 28%,var(--line))!important;box-shadow:0 12px 34px rgba(34,197,94,.14)}
.gpm-pins{font-size:1.5rem;letter-spacing:.12rem;filter:grayscale(.75);opacity:.5;line-height:1.5}
.gpm-viz-h{font-weight:700;font-size:.88rem;color:var(--head)}
.gpm-rank{display:flex;justify-content:space-between;align-items:center;gap:.4rem;width:100%;padding:.5rem .7rem;border-radius:10px;background:var(--bg);font-size:.83rem;flex-wrap:wrap}
.gpm-rank>span{min-width:0;overflow-wrap:anywhere}
.gpm-rank small{color:var(--muted);text-align:right}
.gpm-rank-1{background:linear-gradient(90deg,#fef3c7,var(--bg));border:1px solid #fcd34d;font-weight:600}
.gpm-flowline{font-size:1.7rem;display:flex;align-items:center;gap:.5rem}
.gpm-ar{color:var(--faint);font-size:1.05rem}
.gpm-gone{opacity:.4}
.gpm-viz-sub{font-size:.84rem;color:var(--muted)}.gpm-viz-sub b{color:#16a34a}
.gpm-prog{width:100%;padding:.65rem .8rem;border-radius:12px;background:var(--panel);border:1px solid var(--line);text-align:left}
.gpm-prog span{display:block;font-weight:700;color:var(--head);font-size:.92rem}
.gpm-prog small{color:var(--muted);font-size:.78rem}
.gpm-loopline{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem;font-size:.78rem;color:#16a34a;font-weight:600}
.gpm-bar{display:flex;width:100%;height:26px;border-radius:8px;overflow:hidden}
.gpm-bar-cost{background:#ef4444}.gpm-bar-keep{background:#22c55e}
.gpm-bar-key{display:flex;gap:1rem;font-size:.74rem}
.gpm-k-cost{color:#ef4444}.gpm-k-keep{color:#16a34a}
.gpm-nodes{font-size:1.5rem;letter-spacing:.18rem}
.gpm-vs{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem}
.gpm-vs-lbl{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);white-space:nowrap;writing-mode:vertical-rl;transform:rotate(180deg)}
.gpm-vs-arr{font-size:1.5rem;color:var(--accent)}
@media(max-width:720px){
  .gpm-flow{grid-template-columns:1fr;gap:.6rem}
  .gpm-vs{flex-direction:row;gap:.5rem;margin:.2rem 0}
  .gpm-vs-lbl{writing-mode:horizontal-tb;transform:none}
  .gpm-vs-arr{transform:rotate(90deg)}
}
/* Immersive scroll modules — full-screen sticky scene that crossfades pain → fix as you scroll (works on mobile) */
.gpx{position:relative;height:340vh;--t:0}
.gpx-sticky{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;padding:4vh 1.2rem}
.gpx-art{width:100%;max-width:440px}
.gpx-svg{width:100%;height:auto;display:block;overflow:visible}
.gpx-cap{position:relative;width:100%;max-width:520px;min-height:190px}
.gpx-cap-l{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.7rem;will-change:opacity}
.gpx-cap-fix{opacity:0}
.gpx-name{font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:.32rem .9rem;border-radius:999px}
.gpx-name-pain{color:#b91c1c;background:color-mix(in srgb,#ef4444 13%,transparent)}
.gpx-name-fix{color:#15803d;background:color-mix(in srgb,#22c55e 15%,transparent)}
.gpx-cap-l h3{font-size:clamp(1.35rem,3.7vw,2rem);margin:0;letter-spacing:-.02em;line-height:1.2;color:var(--head)}
.gpx-cap-l h3 .lead{color:var(--accent)}
.gpx-cap-l p{font-size:1rem;line-height:1.6;color:var(--muted);margin:0;max-width:460px}
.gpx-cue{position:absolute;bottom:3vh;font-size:.76rem;color:var(--faint);letter-spacing:.03em;animation:gpbob 1.8s ease-in-out infinite}
.gpx-lbl{fill:var(--muted);font-size:12px;font-weight:600}
.gpx-lbl-good{fill:#16a34a}
/* scene morph, all driven by --t (0→1) */
.gpx-glow{opacity:var(--t)}
.gpx-beam{opacity:calc(var(--t)*.85)}
.gpx-others{opacity:calc(1 - var(--t)*.6)}
.gpx-you{transform:translateY(calc(var(--t)*-14px))}
.gpx-you-gold{opacity:clamp(0,calc((var(--t) - .12)*2),1)}
.gpx-badge{opacity:clamp(0,calc((var(--t) - .5)*3),1)}
.gpx-cd{transform:translateX(calc(var(--x)*1px*(1 - var(--t))));opacity:calc(.35 + var(--t)*.65)}
/* staggered build: each element wakes at its own --d and eases in over ~0.15 of --t */
.gpx-stag{opacity:clamp(0,calc((var(--t) - var(--d,0))*7),1)}
.gpx-s2pain{opacity:clamp(0,calc((.42 - var(--t))*3.2),1)}
.gpx-s2fix{opacity:1}
.gpx-arc{stroke-dashoffset:calc(100 - clamp(0,calc((var(--t) - .42)*2.1),1)*76)}
.gpx-orbit{transform-box:view-box;transform-origin:200px 100px;animation:gpspin 13s linear infinite}
.gpx-ln{stroke-dasharray:100;stroke-dashoffset:calc(100 - clamp(0,calc((var(--t) - var(--d,0))*6),1)*100)}
.gpx-sat{opacity:clamp(0,calc((var(--t) - var(--d,0))*7),1)}
.gpx-center-halo{opacity:clamp(0,calc((var(--t) - .15)*.5),.28)}
.gpx-keep{transform-box:fill-box;transform-origin:left;transform:scaleX(clamp(.16,calc(.16 + (var(--t) - .5)*1.3),.62))}
@keyframes gpspin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.gpx{height:auto}.gpx-sticky{position:static;height:auto;padding:2.4rem 1.2rem}.gpx-cap{min-height:0}.gpx-cap-l{position:static}.gpx-cap-pain{display:none}.gpx-cue{display:none}.gpx-orbit{animation:none}}
.gp-band{margin:2.6rem 0}
.gp-pains{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.3rem}
.gp-pain{border:1px solid var(--line);border-radius:18px;padding:1.4rem 1.3rem;background:var(--panel)}
.gp-pain-ic{font-size:2rem;display:block;margin-bottom:.6rem}
.gp-pain h3{margin:0 0 .4rem;font-size:1.15rem;color:var(--head)}
.gp-pain p{margin:0;font-size:.92rem;line-height:1.55;color:var(--muted)}
.gp-turn{text-align:center;max-width:780px;margin:3rem auto}
.gp-turn-h{font-size:clamp(1.4rem,3.6vw,2.1rem);line-height:1.3;letter-spacing:-.01em;margin:0}
.gp-turn-h .lead,.gp-found .lead{color:var(--accent)}
.gp-found{text-align:center;max-width:680px;margin:3rem auto 2rem}
.gp-found h2{font-size:1.7rem;margin:0 0 .6rem;letter-spacing:-.01em}
.gp-found p{color:var(--muted);line-height:1.6;font-size:1rem;margin:0}
.gp-found .gp-cta{margin-top:1.8rem}
.gp-aspire{text-align:center;max-width:760px;margin:4rem auto 2rem}
.gp-aspire h2{font-size:clamp(1.5rem,3.8vw,2.2rem);line-height:1.25;letter-spacing:-.02em;margin:0 0 .8rem;color:var(--head)}
.gp-aspire h2 .lead{color:var(--accent)}
.gp-aspire p{font-size:1.05rem;line-height:1.6;color:var(--muted);max-width:560px;margin:0 auto}
.gp-faq{max-width:620px;margin:3.4rem auto}
.gp-faq-list{display:flex;flex-direction:column;gap:.6rem;margin-top:1.3rem}
.gp-q{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}
.gp-q>summary{list-style:none;cursor:pointer;padding:.9rem 1.1rem;font-weight:600;color:var(--head);display:flex;justify-content:space-between;align-items:center;gap:.8rem;font-size:.98rem}
.gp-q>summary::-webkit-details-marker{display:none}
.gp-q>summary::after{content:'+';color:var(--accent);font-size:1.35rem;font-weight:400;line-height:1;flex:none}
.gp-q[open]>summary::after{content:'–'}
.gp-q>p{margin:0;padding:0 1.1rem 1rem;color:var(--muted);font-size:.92rem;line-height:1.55}
/* Journey — scroll-driven fill line + sequential waypoint activation (a different scroll mechanism) */
.gpj{max-width:600px;margin:4.5rem auto 1rem}
.gpj-head{text-align:center;margin-bottom:2.6rem}
.gpj-head h2{font-size:clamp(1.5rem,3.6vw,2.15rem);line-height:1.22;letter-spacing:-.02em;margin:.5rem 0 0;color:var(--head)}
.gpj-head h2 .lead{color:var(--accent)}
.gpj-track{position:relative}
.gpj-line{position:absolute;left:22px;top:22px;bottom:22px;width:3px;background:var(--line);border-radius:2px;overflow:hidden}
.gpj-fill{position:absolute;top:0;left:0;width:100%;height:0;background:linear-gradient(180deg,#22c55e,#16a34a)}
.gpj-steps{display:flex;flex-direction:column;gap:1.7rem}
.gpj-step{display:flex;gap:1.05rem;align-items:flex-start;opacity:.38;transform:translateY(6px);transition:opacity .45s ease,transform .45s ease}
.gpj-step.on{opacity:1;transform:none}
.gpj-node{flex:none;width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;background:var(--panel);border:2px solid var(--line);position:relative;z-index:1;transition:.45s}
.gpj-step.on .gpj-node{border-color:#22c55e;background:color-mix(in srgb,#22c55e 12%,var(--panel));box-shadow:0 0 0 5px color-mix(in srgb,#22c55e 11%,transparent)}
.gpj-body{padding-top:.5rem}
.gpj-body h4{margin:0 0 .3rem;font-size:1.08rem;color:var(--head)}
.gpj-body p{margin:0;font-size:.92rem;line-height:1.55;color:var(--muted)}
/* Founding + form merged into one seamless section */
.gp-join{max-width:940px;margin:2rem auto 3.5rem}
.gp-join-inner{display:grid;grid-template-columns:1fr 1.05fr;gap:2.6rem;align-items:center;border:1px solid var(--line);border-radius:26px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 6%,var(--panel)),var(--panel));padding:2.6rem;box-shadow:0 14px 50px rgba(0,0,0,.07)}
.gp-join-head h2{font-size:clamp(1.6rem,3.2vw,2.1rem);line-height:1.2;letter-spacing:-.02em;margin:.7rem 0 .9rem;color:var(--head)}
.gp-join-head h2 .lead{color:var(--accent)}
.gp-join-head p{color:var(--muted);line-height:1.6;font-size:1rem;margin:0}
.gp-join .gp-form-card{border:none;box-shadow:none;padding:0;background:none;border-radius:0}
.gp-join .gp-form{margin-top:0}
.gp-join .gp-form input,.gp-join .gp-form textarea{background:var(--bg)}
@media(max-width:760px){.gp-join-inner{grid-template-columns:1fr;padding:1.7rem 1.4rem;gap:1.7rem}}
.gp-apply{max-width:640px;margin:1rem auto 3rem;scroll-margin-top:1.5rem}
.gp-form-card{border:1px solid var(--line);border-radius:22px;background:var(--panel);padding:1.8rem 1.6rem;box-shadow:0 6px 30px rgba(0,0,0,.06)}
.gp-form-card>h2{margin:0 0 .3rem;font-size:1.5rem}
.gp-form{display:flex;flex-direction:column;gap:.9rem;margin-top:1.2rem}
.gp-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600;color:var(--head)}
.gp-form input,.gp-form textarea{padding:.65rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--head);font:inherit;font-weight:400}
.gp-form input:focus,.gp-form textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}
.gp-2col{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.gp-form .opt{font-weight:400;color:var(--faint);font-size:.8rem}
.gp-fineprint{font-size:.74rem;color:var(--faint);text-align:center;margin:.2rem 0 0}
.gp-done{text-align:center;padding:1.5rem 0}
.gp-done-ic{font-size:2.6rem}
.gp-done h3{margin:.4rem 0 .3rem}
.gp-done p{color:var(--muted);margin:0}
@media(max-width:520px){.gp-2col{grid-template-columns:1fr}}
/* My Plan tabs — one focused panel at a time */
.pt-seg{display:flex;gap:.2rem;padding:.25rem;border-radius:14px;background:var(--panel);border:1px solid var(--line);margin:1rem 0 1.3rem;overflow-x:auto}
.pt-seg button{flex:1 1 auto;border:none;background:transparent;font:inherit;font-weight:600;font-size:.9rem;color:var(--muted);cursor:pointer;padding:.55rem .6rem;border-radius:11px;white-space:nowrap;transition:.14s}
.pt-seg button:hover{color:var(--head)}
.pt-seg button.on{background:var(--bg);color:var(--head);box-shadow:0 1px 3px rgba(0,0,0,.08)}
/* colour-coded sections (Apple: instant differentiation) */
.pt-today.on{color:#b45309;box-shadow:0 1px 3px rgba(0,0,0,.08),inset 0 -2.5px 0 #f59e0b}
.pt-fuel.on{color:#15803d;box-shadow:0 1px 3px rgba(0,0,0,.08),inset 0 -2.5px 0 #22c55e}
.pt-tools.on{color:#6d28d9;box-shadow:0 1px 3px rgba(0,0,0,.08),inset 0 -2.5px 0 #8b5cf6}
.pt-plan.on{color:#475569;box-shadow:0 1px 3px rgba(0,0,0,.08),inset 0 -2.5px 0 #94a3b8}
@media(prefers-color-scheme:dark){.pt-today.on{color:#fbbf24}.pt-fuel.on{color:#4ade80}.pt-tools.on{color:#a78bfa}.pt-plan.on{color:#cbd5e1}}
.trk-fold{border:1px solid var(--line);border-radius:14px;background:var(--panel);margin:1.1rem 0;overflow:hidden}
.trk-fold>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.85rem 1rem;font-weight:600;color:var(--head)}
.trk-fold>summary::-webkit-details-marker{display:none}
.trk-fold-hint{font-size:.78rem;color:var(--muted);font-weight:400}
.trk-fold:not([open])>summary .trk-fold-hint::after{content:' ▾'}
.trk-fold[open]>summary .trk-fold-hint::after{content:' ▴'}
.trk-fold-body{padding:0 1rem 1rem}
.pt-panel{animation:ptfade .18s ease}
@keyframes ptfade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.pt-sub{color:var(--muted);font-size:.86rem;margin:0 0 1rem}
/* Unified plan sections — one clear, well-spaced block each (Apple: clear hierarchy, grouped content) */
.trk-sec{margin:1.9rem 0 0}
.trk-sec-h{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.8rem}
.trk-sec-h h2{margin:0;font-size:1.22rem;font-weight:700;letter-spacing:-.02em;color:var(--head)}
.trk-sec-sub{font-size:.8rem;color:var(--muted)}
.trk-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}
.trk-item{border-bottom:1px solid var(--line)}
.trk-item:last-child{border-bottom:none}
.trk-row{display:flex;align-items:center;gap:.75rem;padding:.8rem 1rem;cursor:pointer;transition:background .12s}
.trk-row:hover{background:rgba(13,148,136,.04)}
.trk-row .plan-cb{width:1.25rem;height:1.25rem;flex:0 0 auto;accent-color:var(--accent);cursor:pointer}
/* per-exercise set/rep logger */
.ex-logtoggle{display:block;width:100%;text-align:left;background:none;border:none;padding:.15rem 1rem .7rem 3.05rem;font-size:.78rem;color:var(--accent);cursor:pointer}
.ex-logtoggle:hover{text-decoration:underline}
.ex-logtoggle .ex-lasthint{color:var(--muted)}
.ex-logtoggle.open{font-weight:600}
.ex-log{padding:0 1rem .9rem 3.05rem}
.ex-last{font-size:.8rem;color:var(--muted);margin:0 0 .55rem}
.ex-last b{color:var(--head)}
.ex-setrows{display:flex;flex-direction:column;gap:.4rem}
.ex-setrow{display:flex;align-items:center;gap:.5rem}
.ex-setn{font-size:.78rem;color:var(--muted);width:2.9rem;flex:0 0 auto}
.ex-in{width:4.2rem;padding:.35rem .5rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--head);font-size:.9rem;text-align:center}
.ex-in:focus{outline:none;border-color:var(--accent)}
.ex-x{color:var(--faint);font-size:.85rem}
.trk-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.trk-name{font-weight:600;color:var(--head);font-size:.96rem}
.trk-sub{font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trk-item.done .trk-name{color:var(--muted);text-decoration:line-through;text-decoration-color:rgba(13,148,136,.5)}
.trk-i{flex:0 0 auto;font-size:.78rem;font-weight:600;color:var(--accent);text-decoration:none;padding:.2rem .5rem;border:1px solid var(--line);border-radius:999px}
.trk-i:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.trk-fuel{margin:1.4rem 0}
.trk-fuel h2{font-size:1.15rem;margin:0 0 .2rem}
.trk-timing{margin:1rem 0;border:1px solid var(--line);border-radius:12px;padding:.2rem 1rem;background:var(--panel)}
.trk-timing>summary{cursor:pointer;font-weight:600;padding:.6rem 0;color:var(--head)}
.trk-timing[open]>summary{border-bottom:1px solid var(--line);margin-bottom:.6rem}
/* ---- Functions picker (final build stage) ---- */
.fn-list{display:flex;flex-direction:column;gap:.7rem;margin:.6rem 0}
.fn-card{border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;background:var(--panel);transition:.12s}
.fn-card.on{border-color:var(--accent);background:rgba(13,148,136,.05)}
.fn-top{display:flex;gap:.8rem;align-items:flex-start}
.fn-ico{font-size:1.5rem;line-height:1;flex:0 0 auto}
.fn-head{flex:1;min-width:0}
.fn-name{font-weight:700;color:var(--head);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.fn-def{font-size:.66rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#b8860b;background:#fff5db;padding:.1rem .45rem;border-radius:999px}
.fn-tg{font-size:.66rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#2563eb;background:#e6efff;padding:.1rem .45rem;border-radius:999px}
.fn-desc{margin:.25rem 0 0;font-size:.9rem;color:var(--muted);line-height:1.45}
.fn-how{margin:.6rem 0 .8rem;font-size:.85rem;color:var(--head);line-height:1.45}
.fn-how b{color:var(--muted);font-weight:600}
.fn-toggle{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.4rem 1rem;font-size:.85rem;font-weight:600;color:var(--head);cursor:pointer}
.fn-toggle.on{background:var(--accent);border-color:var(--accent);color:#fff}
/* ---- Function widgets (tracker) ---- */
.trk-tools{margin:1.4rem 0}
.trk-tools h2{font-size:1.15rem;margin:0 0 .5rem}
.fn-w-list{display:flex;flex-direction:column;gap:.6rem}
.fn-w{border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;background:var(--panel)}
.fn-w-h{display:flex;align-items:center;gap:.5rem}
.fn-w-h b{color:var(--head);font-size:.95rem}
.fn-w-val{margin-left:auto;font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums}
.fn-w-done{margin-left:auto;font-size:.78rem;font-weight:700;color:var(--accent)}
.fn-w-sub{margin:.35rem 0 .5rem;font-size:.83rem;color:var(--muted);line-height:1.4}
.fn-w-bar{height:7px;background:var(--line);border-radius:999px;overflow:hidden;margin:.5rem 0}
.fn-w-bar>span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .2s}
.fn-w-btns{display:flex;gap:.5rem}
.fn-step{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:.35rem .8rem;font-size:.85rem;font-weight:600;color:var(--head);cursor:pointer;min-width:2.4rem}
.fn-step.add{background:var(--accent);border-color:var(--accent);color:#fff}
.fn-step:hover{filter:brightness(1.03)}
.fn-timer{display:flex;align-items:center;gap:.6rem}
.fn-timer-disp{font-variant-numeric:tabular-nums;font-weight:700;color:var(--head)}
.fn-log-row{display:flex;gap:.5rem}
.fn-log-in{flex:1;min-width:0;padding:.4rem .6rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--head);font-size:.9rem}
.fn-log-in:focus{outline:none;border-color:var(--accent)}
/* sleep-window tracker */
.sleep-inputs{display:flex;gap:.6rem;flex-wrap:wrap;margin:.5rem 0}
.sleep-inputs label{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem;color:var(--muted)}
.sleep-inputs .slp-in{padding:.4rem .5rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--head);font-size:.9rem}
.sleep-inputs .slp-in:focus{outline:none;border-color:var(--accent)}
.fn-w-sub.sleep-rec{color:var(--head)}
.fn-w-sub.sleep-rec b{color:var(--accent)}
/* blood pressure */
.bp-row{display:flex;align-items:center;gap:.4rem;margin:.5rem 0}
.bp-unit{font-size:.8rem;color:var(--muted)}
/* eating-window */
.win-btns{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0}
.fn-w-sub.over{color:#a11}
/* one-tap scale (symptom / readiness) */
.scl-btns{display:flex;gap:.4rem;margin:.5rem 0}
.scl-btn{flex:1;padding:.45rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);cursor:pointer;font-size:1.1rem;display:flex;flex-direction:column;align-items:center;gap:.15rem}
.scl-btn span{font-size:.66rem;color:var(--muted);font-weight:600}
.scl-btn.on{border-color:var(--accent);background:rgba(13,148,136,.08)}
/* pain traffic-light */
.triage-btns{display:flex;gap:.5rem;margin:.5rem 0}
.tri-btn{flex:1;padding:.5rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-size:.85rem;font-weight:600;cursor:pointer;color:var(--head)}
.tri-btn.on.green{background:#eafaf1;border-color:#6fbf8f}
.tri-btn.on.yellow{background:#fff6e0;border-color:#e6b84e}
.tri-btn.on.red{background:#fdecec;border-color:#e59a9a}
.triage-guide{font-size:.85rem;margin:.5rem 0 0;padding:.5rem .7rem;border-radius:8px;line-height:1.45}
.triage-guide.green{background:#eafaf1;color:#0a6b3b}
.triage-guide.yellow{background:#fff6e0;color:#8a6100}
.triage-guide.red{background:#fdecec;color:#a11}
.fn-w.tgonly .fn-w-tg{margin-top:.4rem;background:#2563eb;color:#fff;border:none;border-radius:999px;padding:.4rem .9rem;font-size:.82rem;font-weight:600;cursor:pointer}
/* ---- Shared protocol landing (trainer → client) ---- */
.shared-hero{max-width:640px;margin:1.5rem auto;padding:1.6rem;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,rgba(13,148,136,.06),var(--panel));box-shadow:var(--shadow)}
.shared-badge{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:rgba(13,148,136,.1);padding:.2rem .6rem;border-radius:999px;margin-bottom:.7rem}
.shared-hero h1{margin:.2rem 0 .4rem;font-size:1.6rem}
.shared-summary{display:flex;flex-direction:column;gap:.6rem;margin:1.1rem 0}
.shared-summary .ss-block{display:flex;flex-direction:column;gap:.15rem;padding:.6rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.shared-summary .ss-block b{font-size:.82rem;color:var(--head)}
.shared-summary .ss-block span{font-size:.85rem;color:var(--muted);line-height:1.4}
.shared-cta{display:flex;flex-direction:column;gap:.6rem;margin-top:1.2rem}
.shared-cta .cta-primary,.shared-cta .tg-coach{width:100%;justify-content:center}
.shared-note{font-size:.8rem;color:var(--muted);margin:.9rem 0 0;text-align:center}
/* ---- Consistency pulse: streak + 7-day week strip ---- */
.plan-pulse{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:.75rem 1.1rem;margin:0 0 1rem}
.pulse-streak{font-size:1rem;color:var(--head)}
.pulse-streak b{font-size:1.3rem;color:var(--accent);font-variant-numeric:tabular-nums}
.week-strip{display:flex;gap:.55rem}
.ws-day{display:flex;flex-direction:column;align-items:center;gap:.28rem}
.ws-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);background:transparent;transition:.15s}
.ws-day.partial .ws-dot{background:#f5b301;border-color:#f5b301}
.ws-day.full .ws-dot{background:var(--accent);border-color:var(--accent)}
.ws-day.today .ws-dot{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent)}
.ws-lbl{font-size:.64rem;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.ws-day.today .ws-lbl{color:var(--accent);font-weight:700}
/* ---- Progress dashboard ---- */
.prog-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin:1rem 0}
.pstat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.9rem .6rem;text-align:center;display:flex;flex-direction:column;gap:.2rem}
.pstat-n{font-size:1.2rem;font-weight:700;color:var(--head);font-variant-numeric:tabular-nums}
.pstat-l{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
@media(max-width:560px){.prog-stats{grid-template-columns:1fr 1fr}}
.prog-sec{margin:1.5rem 0}
.prog-sec h2{font-size:1.05rem;margin:0 0 .6rem}
.prog-line{margin:.2rem 0}
.prog-line b{color:var(--head)}
.prog-sub{font-size:.82rem;color:var(--muted);margin:.4rem 0}
.hm-head{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;max-width:266px;margin-bottom:4px}
.hm-head span{font-size:.6rem;color:var(--faint);text-align:center}
.heatmap{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;max-width:266px}
.hm-cell{width:100%;aspect-ratio:1;border-radius:4px;background:var(--panel2,#e9edf1);display:inline-block}
.hm-cell.partial{background:#f5b301}
.hm-cell.full{background:var(--accent)}
.hm-cell.empty{background:transparent}
.hm-cell.today{box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--accent)}
.hm-legend{display:flex;align-items:center;gap:.4rem;margin-top:.6rem;font-size:.76rem;color:var(--muted)}
.hm-legend .hm-cell{width:12px;height:12px;aspect-ratio:auto;border-radius:3px}
.spark{display:flex;align-items:flex-end;gap:3px;height:56px;padding:.3rem 0}
.spark-bar{flex:1;min-width:4px;background:var(--accent);border-radius:2px 2px 0 0;opacity:.85}
.ptool{padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.9rem;color:var(--muted)}
.ptool:last-child{border-bottom:none}
.ptool b{color:var(--head)}
/* ---- Retention banners (recap + gentle nudge) ---- */
.recap-card,.miss-banner{border-radius:12px;padding:.75rem 2.3rem .75rem 1rem;font-size:.9rem;color:var(--head);margin:0 0 1rem;position:relative;line-height:1.5}
.recap-card{background:linear-gradient(135deg,#eefaf3,#f4fbf7);border:1px solid #bfe6ce}
.miss-banner{background:linear-gradient(135deg,#fff8ec,#fefcf5);border:1px solid #f0dcae}
.recap-card b,.miss-banner b{color:var(--head)}
.miss-x{position:absolute;top:.5rem;right:.6rem;background:none;border:none;color:var(--faint);font-size:.9rem;cursor:pointer;line-height:1}
.miss-x:hover{color:var(--head)}
/* ---- Consent + profile (outcome-data moat) ---- */
.consent-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:linear-gradient(135deg,#eef4ff,#f6f9ff);border:1px solid #cdddf5;border-radius:14px;padding:.9rem 1.1rem;margin:0 0 1rem}
.consent-card .consent-txt b{color:var(--head)}
.consent-card .consent-txt p{margin:.25rem 0 0;font-size:.85rem;color:var(--muted);line-height:1.45}
.consent-acts{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;margin-top:.8rem}
.consent-notice{font-size:.9rem;line-height:1.55;color:var(--head)}
.consent-notice ul{margin:.5rem 0;padding-left:1.2rem}
.consent-notice li{margin:.25rem 0;color:var(--muted)}
.pf-grid{display:flex;flex-direction:column;gap:.7rem;margin:1rem 0}
.pf-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--head)}
.pf-in{padding:.5rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--head);font-size:.95rem}
.hm-sec{margin:1.1rem 0}
.hm-sec>b{display:block;margin-bottom:.5rem;color:var(--head)}
.hm-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.hm-num{width:6rem}
.hm-list{list-style:none;padding:0;margin:.6rem 0 0;font-size:.88rem}
.hm-list li{padding:.3rem 0;border-bottom:1px solid var(--line);color:var(--muted)}
.hm-list li:last-child{border-bottom:none}
.dm-remind{border:1px solid var(--line);border-radius:12px;padding:.75rem .85rem;margin:.2rem 0 1rem;background:var(--bg)}
.dm-rem-top{display:flex;align-items:center;gap:.5rem;font-size:.95rem;cursor:pointer}
.dm-rem-top input{accent-color:var(--accent)}
.dm-rem-when{margin:.6rem 0 0;font-size:.9rem}
.dm-rem-when .pf-in{width:auto;display:inline-block;padding:.35rem .5rem}
.dm-rem-hint{font-size:.78rem;margin:.5rem 0 0}
.hm-trends{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem}
.hm-trend{border:1px solid var(--line);border-radius:12px;padding:.55rem .65rem;background:var(--bg)}
.hm-trend-h{display:flex;justify-content:space-between;align-items:baseline;font-size:.82rem;color:var(--muted);margin-bottom:.3rem}
.hm-trend-h b{color:var(--head);font-size:.9rem}
.spark{display:block;overflow:visible}
.linkbtn.danger,.cta-ghost.danger{color:#dc2626}
.cta-ghost.danger{border-color:#f0c0c0}
/* ---- Outcome check-ins ---- */
.checkin-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:linear-gradient(135deg,#eefaf3,#f4fbf7);border:1px solid #bfe6ce;border-radius:14px;padding:.8rem 1.1rem;margin:0 0 1rem;font-size:.9rem}
.checkin-banner b{color:var(--head)}
.cta-primary.sm{padding:.4rem .9rem;font-size:.85rem}
.ci-q{display:flex;flex-direction:column;gap:.35rem;margin:.9rem 0;font-size:.9rem;font-weight:600;color:var(--head)}
.ci-range{width:100%}
.ci-q output{font-weight:700;color:var(--accent);font-size:1.1rem}
/* ---- Control Room: outcome dashboard ---- */
.adm-outcomes{margin:.5rem 0 1.5rem}
.ao-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:0 0 1rem}
.ao-stat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem;text-align:center}
.ao-n{display:block;font-size:1.8rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
.ao-l{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.ao-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.adm-ops-h{font-size:1.1rem;margin:1.6rem 0 .6rem;color:var(--head)}
@media(max-width:560px){.ao-stats{grid-template-columns:1fr}}
/* ---- Weekly structure: rest-day banner + training-days editor ---- */
.rest-banner{background:linear-gradient(135deg,#eef4ff,#f6f9ff);border:1px solid #cdddf5;border-radius:12px;padding:.7rem 1rem;font-size:.9rem;color:var(--head);margin:.2rem 0 .8rem}
.train-days{margin:.7rem 0 .1rem;font-size:.85rem}
.train-days>summary{cursor:pointer;color:var(--muted);padding:.45rem 0;font-weight:600;list-style:none}
.train-days>summary::-webkit-details-marker{display:none}
.train-days>summary::before{content:'▸ ';color:var(--faint)}
.train-days[open]>summary::before{content:'▾ '}
.td-chips{display:flex;gap:.4rem;flex-wrap:wrap;margin:.5rem 0}
.td-chip{width:2.5rem;padding:.4rem 0;text-align:center;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--muted);font-size:.8rem;font-weight:700;cursor:pointer}
.td-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.td-hint{font-size:.78rem;color:var(--muted);margin:.3rem 0 .2rem}
/* ---- Merged-plan manage section (your protocols + add another) ---- */
.trk-manage{margin-bottom:1rem}
.trk-manage h2{font-size:1.05rem;margin:0 0 .6rem}
.tpm-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap;padding:.55rem 0;border-bottom:1px solid var(--line)}
.tpm-name{font-weight:600;color:var(--head);font-size:.94rem}
.tpm-name em{font-weight:400;color:var(--muted);font-style:normal}
.tpm-acts{font-size:.85rem;color:var(--muted);white-space:nowrap}
.tpm-acts .linkbtn.danger{color:#dc2626}
.tpm-add{display:inline-block;margin-top:.8rem;font-weight:600;font-size:.9rem;color:var(--accent);text-decoration:none}
.tpm-add:hover{text-decoration:underline}
/* ---- Build-completion celebration popup ---- */
.build-celebrate{text-align:center}
.build-celebrate .bc-emo{font-size:2.6rem;line-height:1}
.build-celebrate h2{margin:.5rem 0 .3rem}
.build-celebrate .bc-actions{display:flex;flex-direction:column;gap:.6rem;margin:1.2rem 0 .6rem}
.build-celebrate .bc-actions .cta-primary,.build-celebrate .bc-actions .cta-ghost{width:100%}
.build-celebrate .bc-hint{font-size:.82rem;color:var(--muted);margin:0}

/* ---- Tighten stack-card badges (were bulky / clashing) ---- */
.st-card{padding:.85rem 1rem}
.st-meta{gap:.35rem;align-items:center}
.pill.rx{background:rgba(220,38,38,.1);color:var(--red);border:1px solid rgba(220,38,38,.25)}

/* ---- Compact prescription cue (replaces the verbose "Prescription only" block) ---- */
.rx-note{font-size:.72rem;font-weight:700;color:var(--red);margin-left:.15rem;white-space:nowrap;vertical-align:middle}

/* ================= Compound page — learning-first components ================= */
/* At-a-glance spec strip */
.spec-strip{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 .3rem}
.spec-chip{display:inline-flex;flex-direction:column;gap:.05rem;padding:.4rem .7rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);line-height:1.2}
.spec-chip .sc-k{font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}
.spec-chip .sc-v{font-size:.86rem;font-weight:600;color:var(--ink)}
.spec-chip .sc-dim{color:var(--line)}
/* Depth toggle */
.depth-bar{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin:.7rem 0}
.depth-lbl{font-size:.8rem;color:var(--muted);margin-right:.2rem}
.depth-btn{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:.35rem .8rem;font-size:.82rem;cursor:pointer;transition:.15s}
.depth-btn:hover{border-color:var(--accent)}
.depth-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
/* Sticky table of contents */
.cpd-toc{position:sticky;top:0;z-index:5;display:flex;gap:.2rem;flex-wrap:wrap;padding:.5rem 0;margin:.3rem 0 .6rem;background:var(--bg);border-bottom:1px solid var(--line)}
.cpd-toc a{font-size:.78rem;color:var(--muted);text-decoration:none;padding:.25rem .6rem;border-radius:999px}
.cpd-toc a:hover{background:var(--panel2)}
.cpd-toc a.active{color:var(--accent);font-weight:600;background:color-mix(in srgb,var(--accent) 12%,transparent)}
/* Takeaways */
.takeaways{margin:1rem 0;padding:.9rem 1.1rem;border-radius:14px;background:color-mix(in srgb,var(--accent) 7%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
.takeaways .tk-h{font-weight:700;font-size:.9rem;margin-bottom:.4rem}
.takeaways ul{margin:0;padding-left:1.1rem}
.takeaways li{margin:.25rem 0;font-size:.92rem;line-height:1.5}
/* Molecule viewer */
.mol-viewer{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;margin:1.2rem 0;padding:1rem;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.mol-2d{flex:0 0 auto}
.mol-2d img{width:200px;height:200px;object-fit:contain;background:#fff;border-radius:12px;padding:.4rem}
.mol-side{flex:1 1 220px;min-width:200px}
.mol-title{font-weight:700;margin-bottom:.3rem}
.mol-cid{font-size:.7rem;color:var(--faint);font-weight:400;margin-left:.3rem}
.mol-formula{font-size:.9rem;color:var(--muted);margin-bottom:.7rem}
.mol-3d-btn{border:1px solid var(--accent);background:transparent;color:var(--accent);border-radius:999px;padding:.4rem .9rem;font-size:.84rem;cursor:pointer}
.mol-3d-btn:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.mol-3d-wrap{margin-top:.8rem}
.mol-3d-wrap iframe{width:100%;height:340px;border:1px solid var(--line);border-radius:12px}
.mol-link{display:inline-block;margin-top:.7rem;font-size:.82rem}
/* Evidence at a glance */
.ev-glance{display:flex;gap:.8rem;align-items:flex-start;margin:1.1rem 0;padding:.8rem 1rem;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.evg-stars{font-size:1.15rem;color:#f5a623;white-space:nowrap;letter-spacing:1px}
.evg-dim{color:var(--line)}
.evg-body{font-size:.9rem;line-height:1.5}
.evg-note{color:var(--muted);font-size:.82rem}
/* Glossary hover-defs */
.gloss{border-bottom:1px dotted var(--accent);cursor:help;position:relative}
.gloss.open::after,.gloss:hover::after{content:attr(data-def);position:absolute;left:0;top:130%;z-index:20;width:min(20rem,72vw);padding:.55rem .7rem;font-size:.8rem;font-weight:400;line-height:1.4;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 24px rgba(0,0,0,.18)}
/* Learned button */
.learned-btn{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:.45rem .9rem;font-size:.84rem;cursor:pointer}
.learned-btn.on{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);border-color:var(--accent);font-weight:600}
@media(max-width:640px){.mol-2d img{width:150px;height:150px}.cpd-toc{overflow-x:auto;flex-wrap:nowrap}}

/* ---- Learning-layer components: analogy, mechanism cascade, PK timeline, self-test, positioning ---- */
.analogy{display:flex;gap:.7rem;align-items:flex-start;margin:1rem 0;padding:.9rem 1.1rem;border-radius:14px;background:color-mix(in srgb,#f5a623 12%,transparent);border:1px solid color-mix(in srgb,#f5a623 40%,transparent)}
.analogy .an-ico{font-size:1.3rem;line-height:1}
.analogy .an-h{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin-bottom:.15rem}
.analogy p{margin:0;font-size:1.02rem;line-height:1.5;font-weight:500}
/* Mechanism cascade */
.mcascade .mc-list{list-style:none;margin:.6rem 0 0;padding:0;counter-reset:none}
.mc-step{display:flex;gap:.8rem;position:relative;padding-bottom:1.1rem}
.mc-step:not(:last-child)::before{content:"";position:absolute;left:15px;top:32px;bottom:0;width:2px;background:var(--line)}
.mc-n{flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:1}
.mc-body{flex:1 1 auto;min-width:0}
.mc-t{font-weight:600;margin-bottom:.15rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.mc-body p{margin:0;font-size:.94rem;line-height:1.55;color:var(--muted)}
.mc-tag{font-size:.72rem;font-weight:700;padding:.1rem .45rem;border-radius:6px;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);text-decoration:none}
.mc-fx{font-size:.74rem;font-weight:700;padding:.1rem .45rem;border-radius:6px}
.mc-fx.up{background:color-mix(in srgb,#16a34a 15%,transparent);color:#16a34a}
.mc-fx.down{background:color-mix(in srgb,#dc2626 13%,transparent);color:#dc2626}
/* PK timeline */
.pk{margin:1rem 0;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.pk .k{font-weight:700;display:block;margin-bottom:.7rem}
.pk-row{display:flex;align-items:stretch;gap:.3rem;flex-wrap:wrap}
.pk-cell{flex:1 1 5rem;text-align:center;padding:.5rem .3rem;border-radius:10px;background:var(--panel2)}
.pk-ico{font-size:1.1rem}
.pk-l{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:var(--faint)}
.pk-v{font-weight:700;font-size:.9rem}
.pk-arrow{display:flex;align-items:center;color:var(--faint)}
.pk-note{margin:.7rem 0 0;font-size:.86rem;line-height:1.5;color:var(--muted)}
/* Self-test */
.selftest{margin:1.4rem 0;padding:1rem 1.1rem;border-radius:14px;border:1px dashed var(--accent);background:color-mix(in srgb,var(--accent) 5%,transparent)}
.st-h{font-weight:700;margin-bottom:.6rem}
.st-sub{font-weight:400;color:var(--muted);font-size:.85rem}
.st-card{padding:.6rem 0;border-top:1px solid var(--line)}
.st-card:first-of-type{border-top:none}
.st-q{font-size:.94rem;line-height:1.5;margin-bottom:.4rem}
.st-a{font-size:.92rem;line-height:1.55;color:var(--ink);background:var(--panel2);padding:.55rem .7rem;border-radius:8px;margin-top:.3rem}
.st-reveal{border:1px solid var(--accent);background:transparent;color:var(--accent);border-radius:999px;padding:.25rem .8rem;font-size:.8rem;cursor:pointer}
/* Positioning */
.positioning{margin:1.2rem 0}
.pos-sub{font-weight:400;color:var(--muted);font-size:.82rem}
.pos-list{display:flex;flex-direction:column;gap:.35rem;margin-top:.4rem}
.pos-row{display:flex;align-items:center;gap:.6rem}
.pos-row.me .pos-name{font-weight:700;color:var(--accent)}
.pos-name{flex:0 0 40%;font-size:.84rem;color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pos-bar{flex:1 1 auto;height:8px;border-radius:4px;background:var(--panel2);overflow:hidden}
.pos-bar i{display:block;height:100%;background:var(--line)}
.pos-row.me .pos-bar i{background:var(--accent)}
.pos-stars{flex:0 0 auto;font-size:.72rem;color:#f5a623;letter-spacing:.5px}

/* ---- Depth descriptor + compare cards + biotech deep-dive ---- */
.depth-wrap{margin:.7rem 0}
.depth-desc{font-size:.82rem;color:var(--muted);margin-top:.4rem;padding-left:.1rem}
/* Compare cards (replaces run-together links) */
.cmp-grid{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.3rem}
.cmp-card{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-decoration:none;color:var(--ink)}
.cmp-card:hover{border-color:var(--accent)}
.cmp-vs{font-size:.7rem;font-weight:700;color:var(--faint);text-transform:uppercase}
.cmp-name{font-weight:600;font-size:.9rem}
.cmp-stars{font-size:.72rem;color:#f5a623;letter-spacing:.5px}
.cmp-stars .cmp-dim{color:var(--line)}
/* Biotech deep-dive */
.biotech{margin:1.3rem 0;padding:1.1rem 1.2rem;border-radius:16px;border:1px solid color-mix(in srgb,#7c3aed 32%,var(--line));background:color-mix(in srgb,#7c3aed 5%,transparent)}
.bt-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.4rem}
.bt-badge{font-weight:800;font-size:1.02rem}
.bt-sub{font-size:.8rem;color:var(--muted)}
.bt-sec{padding:.8rem 0;border-top:1px solid color-mix(in srgb,#7c3aed 15%,var(--line))}
.bt-sec:first-of-type{border-top:none}
.bt-st{font-weight:700;font-size:.92rem;margin-bottom:.35rem}
.bt-sb{font-size:.93rem;line-height:1.6;color:var(--ink)}
.bt-targets{display:flex;flex-direction:column;gap:.55rem}
.bt-tg{padding:.55rem .7rem;border-radius:10px;background:var(--panel)}
.bt-tg-h{font-weight:600;font-size:.9rem;display:flex;gap:.5rem;flex-wrap:wrap;align-items:baseline}
.bt-tg-act{font-weight:400;font-size:.8rem;color:#7c3aed}
.bt-tg-aff{font-size:.85rem;color:var(--ink);margin-top:.15rem;font-variant-numeric:tabular-nums}
.bt-tg-role{font-size:.82rem;color:var(--muted);margin-top:.1rem}
.bt-adme{display:flex;flex-direction:column;gap:.5rem}
.bt-adme-row{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;line-height:1.55}
.bt-adme-k{flex:0 0 auto;width:26px;height:26px;border-radius:8px;background:#7c3aed;color:#fff;font-weight:800;font-size:.85rem;display:flex;align-items:center;justify-content:center;margin-top:.1rem}
.bt-trials{margin:.2rem 0 0;padding-left:1.1rem}
.bt-trials li{margin:.3rem 0;font-size:.9rem;line-height:1.55}
.bt-ref{color:var(--faint);font-size:.82rem}

/* ---- The single learning journey (ribbon + card) ---- */
.j-ribbon{display:flex;align-items:center;gap:.5rem;margin:.5rem 0 0;padding:.4rem .2rem;font-size:.8rem;color:var(--muted)}
.jr-ico{font-size:1rem}
.jr-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jr-txt b{color:var(--ink)}
.jr-bar{flex:1 1 auto;max-width:180px;height:5px;border-radius:3px;background:var(--panel2);overflow:hidden}
.jr-bar i{display:block;height:100%;background:var(--accent);border-radius:3px}
.journey-card{margin:1.6rem 0;padding:1.2rem;border-radius:18px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));background:color-mix(in srgb,var(--accent) 6%,transparent)}
.j-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.7rem}
.j-ico{font-size:1.5rem}
.j-title{font-weight:800;font-size:1.05rem}
.j-sub{font-size:.82rem;color:var(--muted)}
.j-track{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.9rem}
.j-dot{width:10px;height:10px;border-radius:50%;background:var(--panel2);border:1px solid var(--line)}
.j-dot.done{background:var(--accent);border-color:var(--accent)}
.j-dot.cur{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent);transform:scale(1.15)}
.j-next{display:flex;align-items:center;gap:1rem;padding:.9rem 1.1rem;border-radius:14px;background:var(--accent);color:#fff;text-decoration:none;transition:.15s}
.j-next:hover{filter:brightness(1.06)}
.j-next .jn-l{flex:1 1 auto;min-width:0}
.jn-lbl{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;opacity:.85}
.jn-name{font-weight:800;font-size:1.1rem;margin:.05rem 0}
.jn-hook{font-size:.85rem;opacity:.92;line-height:1.4}
.jn-go{flex:0 0 auto;font-weight:700;font-size:.95rem;white-space:nowrap}
.j-next.capstone{background:#7c3aed}
.related-fold{margin:1rem 0}
.related-fold>summary{cursor:pointer;color:var(--muted);font-size:.9rem;padding:.3rem 0}
.related-fold .related{margin-top:.6rem}

/* Depth reveal flash + journey connection */
.depth-new{animation:depthReveal 1.5s ease}
@keyframes depthReveal{0%{box-shadow:0 0 0 3px var(--accent),0 0 0 9px color-mix(in srgb,var(--accent) 18%,transparent)}100%{box-shadow:0 0 0 0 transparent}}
.j-connect{font-size:.92rem;line-height:1.55;color:var(--ink);margin:.1rem 0 .8rem;padding:.65rem .85rem;border-radius:10px;background:var(--panel)}
.j-apply{font-size:.85rem;color:var(--muted);margin-top:.7rem}
.j-apply a{font-weight:600}

/* ---- Chapter tabs (each swaps the whole reading area) ---- */
.ch-lead{font-size:.84rem;color:var(--muted);margin:.4rem 0 .5rem}
.ch-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:.2rem 0 1.1rem;border-bottom:1px solid var(--line);padding-bottom:.7rem;position:sticky;top:0;background:var(--bg);z-index:6}
.ch-tab{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:.45rem .95rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:.15s;white-space:nowrap}
.ch-tab:hover{border-color:var(--accent);color:var(--ink)}
.ch-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.chapter{display:none}
.chapter.active{display:block;animation:chFade .28s ease}
@keyframes chFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ch-nav{margin-top:1.5rem;padding-top:1rem;border-top:1px dashed var(--line);text-align:right}
.ch-next-btn{border:1px solid var(--accent);background:transparent;color:var(--accent);border-radius:999px;padding:.55rem 1.15rem;font-size:.9rem;font-weight:600;cursor:pointer}
.ch-next-btn:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.jr-bar.big{display:block;width:100%;max-width:none;height:7px;border-radius:4px;background:var(--panel2);overflow:hidden;margin:.3rem 0 .9rem}
.jr-bar.big i{display:block;height:100%;background:var(--accent);border-radius:4px}
@media(max-width:640px){.ch-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}}

/* ---- CTA de-clutter + richer evidence chapter ---- */
.deeper-link.quiet{font-size:.82rem;color:var(--muted);font-weight:500;text-decoration:none;display:inline-block;margin-top:.6rem;border-bottom:1px dotted var(--line)}
.deeper-link.quiet:hover{color:var(--accent);border-color:var(--accent)}
.ch-done{font-size:.9rem;color:var(--muted);text-align:center;margin:0;font-style:italic}
.bt-lead{font-size:.9rem;line-height:1.55;color:var(--muted);margin:.3rem 0 .7rem;padding:.65rem .85rem;border-radius:10px;background:var(--panel)}
.evidence-deep{margin:.5rem 0}
.evd-sec{padding:.8rem 0;border-top:1px solid var(--line)}
.evd-sec:first-child{border-top:none;padding-top:.2rem}
.evd-t{font-weight:700;font-size:.96rem;margin-bottom:.3rem}
.evd-b{font-size:.94rem;line-height:1.62;color:var(--ink)}

/* ================= Pedagogy components + mastery stepper ================= */
/* Numbered mastery spine */
.ch-steps{display:flex;gap:.4rem;flex-wrap:wrap;margin:.4rem 0 1.2rem;position:sticky;top:0;background:var(--bg);z-index:6;padding:.6rem 0 .7rem;border-bottom:1px solid var(--line)}
.ch-step{display:flex;align-items:center;gap:.45rem;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:.32rem .8rem .32rem .35rem;cursor:pointer;color:var(--muted);transition:.15s}
.ch-step:hover{border-color:var(--accent)}
.cs-num{width:22px;height:22px;border-radius:50%;background:var(--panel2);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.76rem;flex:0 0 auto;color:var(--muted)}
.ch-step.done .cs-num{background:var(--accent);color:#fff}
.cs-label{font-size:.82rem;font-weight:600;white-space:nowrap}
.ch-step.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.ch-step.active .cs-label{color:var(--ink)}
.ch-steps.mastered{border-color:var(--accent)}
@media(max-width:640px){.ch-steps{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}}
/* Curiosity hook */
.hook{margin:.3rem 0 1rem;padding:1rem 1.2rem;border-radius:16px;border:1px dashed color-mix(in srgb,#d97706 45%,var(--line));background:color-mix(in srgb,#d97706 6%,transparent)}
.hook-h{font-weight:700;margin-bottom:.5rem}
.hook-qs{margin:0;padding-left:1.2rem}
.hook-qs li{margin:.35rem 0;font-size:.98rem;line-height:1.5;font-weight:500}
.hook-sub{margin:.6rem 0 0;font-size:.86rem;color:var(--muted)}
.stakes{font-size:.9rem;color:var(--muted);margin:.2rem 0 .6rem}
/* Big idea */
.bigidea{margin:1rem 0;padding:1rem 1.2rem;border-radius:16px;background:var(--accent);color:#fff}
.bi-tag{font-size:.66rem;font-weight:800;letter-spacing:.08em;opacity:.85}
.bigidea p{margin:.25rem 0 0;font-size:1.12rem;font-weight:600;line-height:1.5}
.bigidea .gloss{border-bottom-color:rgba(255,255,255,.6)}
/* Predict-then-reveal */
.mc-hint{font-size:.82rem;color:var(--muted);margin:.2rem 0 .8rem;font-style:italic}
.mc-predict{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between}
.mc-p-q{font-weight:600;font-size:.95rem;flex:1 1 60%}
.mc-reveal{border:1px solid var(--accent);background:transparent;color:var(--accent);border-radius:999px;padding:.3rem .8rem;font-size:.82rem;cursor:pointer;white-space:nowrap}
.mc-reveal:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.mc-answer{animation:chFade .3s ease;margin-top:.4rem}
/* Chapter micro-check */
.ch-check{margin:1.2rem 0 0;padding:.8rem 1rem;border-radius:12px;background:color-mix(in srgb,var(--accent) 6%,transparent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}
.cc-q{font-weight:600;font-size:.92rem;margin-bottom:.4rem}
.cc-reveal{border:1px solid var(--accent);background:transparent;color:var(--accent);border-radius:999px;padding:.25rem .75rem;font-size:.8rem;cursor:pointer}
.cc-a{margin-top:.5rem;font-size:.9rem;line-height:1.55;color:var(--ink)}
/* Expert framework */
.framework{margin:1rem 0;padding:1.1rem 1.2rem;border-radius:16px;border:1px solid color-mix(in srgb,#7c3aed 30%,var(--line));background:color-mix(in srgb,#7c3aed 5%,transparent)}
.fw-badge{font-weight:800;font-size:1.02rem}
.fw-lead{font-size:.92rem;line-height:1.55;color:var(--ink);margin:.4rem 0 .8rem}
.fw-list{list-style:none;margin:0;padding:0}
.fw-q{padding:.6rem 0;border-top:1px solid color-mix(in srgb,#7c3aed 15%,var(--line))}
.fw-q:first-child{border-top:none}
.fw-qh{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.95rem}
.fw-n{width:22px;height:22px;border-radius:50%;background:#7c3aed;color:#fff;font-weight:800;font-size:.8rem;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.fw-tag{font-size:.72rem;color:#7c3aed;font-weight:600}
.fw-a{font-size:.9rem;line-height:1.55;color:var(--muted);margin-top:.25rem;padding-left:1.9rem}
/* Myths */
.myths{margin:1rem 0;padding:.9rem 1.1rem;border-radius:14px;border:1px solid color-mix(in srgb,#dc2626 25%,var(--line));background:color-mix(in srgb,#dc2626 4%,transparent)}
.myths-h{font-weight:700;margin-bottom:.5rem}
.myth{padding:.5rem 0;border-top:1px solid color-mix(in srgb,#dc2626 12%,var(--line))}
.myth:first-of-type{border-top:none}
.myth-x{font-weight:600;color:#dc2626;font-size:.92rem}
.myth-t{font-size:.9rem;line-height:1.55;margin-top:.2rem}
/* Contrasts */
.contrasts{margin:1rem 0}
.contrast{padding:.9rem 1.1rem;border-radius:14px;background:var(--panel);border:1px solid var(--line);margin-bottom:.8rem}
.ct-h{font-weight:700;margin-bottom:.5rem}
.ct-structs{display:flex;align-items:center;justify-content:center;gap:1rem;margin:.4rem 0 .7rem}
.ct-structs figure{margin:0;text-align:center}
.ct-structs img{width:130px;height:130px;object-fit:contain;background:#fff;border-radius:10px;padding:.3rem}
.ct-structs figcaption{font-size:.78rem;color:var(--muted);margin-top:.2rem}
.ct-vs{font-weight:800;color:var(--faint)}
.contrast p{margin:0;font-size:.93rem;line-height:1.6}
/* When to use */
.whenuse{margin:1rem 0;padding:.9rem 1.1rem;border-radius:14px;background:color-mix(in srgb,var(--accent) 6%,transparent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}
.wu-h{font-weight:700;margin-bottom:.3rem}
.wu-intro{font-size:.9rem;color:var(--muted);margin:.2rem 0 .5rem}
.wu-list{margin:0;padding-left:1.2rem}
.wu-list li{margin:.35rem 0;font-size:.92rem;line-height:1.55}
/* Molecule journey */
.mjourney{margin:1rem 0;padding:1rem 1.1rem;border-radius:16px;border:1px solid var(--line);background:var(--panel)}
.mj-h{font-weight:700;margin-bottom:.7rem}
.mj-track{display:flex;flex-direction:column;gap:0}
.mj-stage{display:flex;gap:.8rem;position:relative;padding-bottom:1rem}
.mj-stage:not(:last-child)::before{content:"";position:absolute;left:15px;top:34px;bottom:0;width:2px;background:var(--line)}
.mj-num{flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:1}
.mj-stage-t{font-weight:700;font-size:.98rem}
.mj-stage-d{font-size:.92rem;line-height:1.55;color:var(--muted);margin-top:.1rem}
/* Feynman */
.feynman{margin:1.4rem 0;padding:1rem 1.1rem;border-radius:16px;border:1px dashed color-mix(in srgb,#2563eb 40%,var(--line));background:color-mix(in srgb,#2563eb 4%,transparent)}
.fy-h{font-weight:700;margin-bottom:.3rem}
.fy-sub{font-size:.88rem;color:var(--muted);margin:.2rem 0 .6rem;line-height:1.5}
.fy-input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem;font:inherit;font-size:.92rem;resize:vertical;background:var(--panel);color:var(--ink)}
.fy-check{margin-top:.6rem;border:1px solid #2563eb;background:transparent;color:#2563eb;border-radius:999px;padding:.4rem .9rem;font-size:.85rem;cursor:pointer}
.fy-check:disabled{opacity:.6;cursor:default}
.fy-model{margin-top:.7rem;font-size:.92rem;line-height:1.6;background:var(--panel2);padding:.6rem .8rem;border-radius:10px}
/* Graduation */
.graduation{margin:1.4rem 0}
.hook-payoff{padding:1rem 1.2rem;border-radius:16px;background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);margin-bottom:.8rem}
.hp-h{font-weight:800;margin-bottom:.3rem}
.hook-payoff p{margin:0;font-size:.94rem;line-height:1.6}
.grad-can{padding:1rem 1.2rem;border-radius:16px;background:var(--panel);border:1px solid var(--line)}
.gc-h{font-weight:800;color:var(--accent);margin-bottom:.4rem}
.grad-can ul{margin:0;padding-left:1.3rem}
.grad-can li{margin:.3rem 0;font-size:.94rem;line-height:1.5}
/* Dose simulator */
.dosesim{margin:1.1rem 0;padding:1.1rem 1.2rem;border-radius:16px;border:1px solid var(--line);background:var(--panel)}
.ds-h{font-weight:800;font-size:1rem}
.ds-sub{font-size:.86rem;color:var(--muted);margin:.2rem 0 .8rem}
.ds-controls{display:flex;flex-direction:column;gap:.7rem;margin-bottom:.7rem}
.ds-controls label{display:flex;flex-direction:column;gap:.25rem;font-size:.84rem;color:var(--muted)}
.ds-controls label b{color:var(--ink)}
.ds-controls input[type=range]{width:100%;accent-color:var(--accent)}
.ds-readout{font-size:.95rem;line-height:1.6;padding:.7rem .9rem;border-radius:10px;background:var(--panel2);margin-bottom:.7rem}
.ds-good{color:#16a34a}.ds-under{color:#d97706}.ds-over{color:#dc2626}
.ds-chart{width:100%;height:auto;background:var(--panel2);border-radius:10px}
.ds-legend{font-size:.76rem;color:var(--muted);margin-top:.4rem;display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.ds-swatch{display:inline-block;width:20px;height:4px;border-radius:2px;background:var(--accent);vertical-align:middle}
.ds-note{font-size:.78rem;color:var(--faint);margin:.6rem 0 0;line-height:1.5}
/* Header demote — utility buttons recede so the lesson leads */
.detail-actions .stack-btn-lg{background:transparent;color:var(--accent);border:1px solid var(--accent);font-weight:600}
.detail-actions .stack-btn-lg.in{background:color-mix(in srgb,var(--accent) 12%,transparent)}

/* ---- Mastery map + journey footer + gentle motion ---- */
.j-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.8rem;padding-top:.7rem;border-top:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));font-size:.82rem;color:var(--muted)}
.j-foot b{color:var(--ink)}
.j-map-btn{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:.3rem .75rem;font-size:.8rem;cursor:pointer}
.j-map-btn:hover{border-color:var(--accent);color:var(--accent)}
.mmap{display:flex;flex-direction:column;gap:.7rem;margin-top:.6rem;max-height:60vh;overflow-y:auto}
.mmap-row{}
.mmap-sec{font-size:.82rem;font-weight:700;color:var(--ink);margin-bottom:.3rem;display:flex;justify-content:space-between}
.mmap-count{color:var(--faint);font-weight:500}
.mmap-dots{display:flex;flex-wrap:wrap;gap:5px}
.mmap-dot{width:12px;height:12px;border-radius:50%;background:var(--panel2);border:1px solid var(--line);display:block}
.mmap-dot.done{background:var(--accent);border-color:var(--accent)}
.mmap-dot:hover{transform:scale(1.4);border-color:var(--accent)}
.mol-2d img{animation:molBreathe 7s ease-in-out infinite}
@keyframes molBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}
@media(prefers-reduced-motion:reduce){.mol-2d img{animation:none}.chapter.active{animation:none}}
/* Reading rhythm */
.chapter{line-height:1.62}

/* ============================================================
   Visual lightening pass — Apple hierarchy: one hero per chapter,
   quieter secondary cards, and consistent breathing room. Nothing
   removed; the loud "wall of boxes" is just dialled down so the eye
   knows where to land. Colour language kept, only softened.
   ============================================================ */
/* one uniform rhythm between every block in a chapter (overrides each card's own margin) */
.chapter > *{margin:1.45rem 0 0}
.chapter > *:first-child{margin-top:0}
.chapter .ch-nav{margin-top:1.6rem}
/* flatten callouts: no shadow, hairline, plain surface — they recede into prose */
.callout{box-shadow:none;background:var(--panel);border-color:var(--line)}
/* soften the tinted secondary cards so only their colour hints at meaning */
.takeaways{background:color-mix(in srgb,var(--accent) 4%,transparent);border-color:color-mix(in srgb,var(--accent) 15%,var(--line))}
.analogy{background:color-mix(in srgb,#f5a623 6%,transparent);border-color:color-mix(in srgb,#f5a623 22%,var(--line))}
.hook{background:color-mix(in srgb,#d97706 4%,transparent);border-color:color-mix(in srgb,#d97706 26%,var(--line))}
.framework{background:color-mix(in srgb,#7c3aed 4%,transparent);border-color:color-mix(in srgb,#7c3aed 18%,var(--line))}
.myths{background:transparent;border-color:color-mix(in srgb,#dc2626 16%,var(--line))}
.whenuse,.ch-check{background:color-mix(in srgb,var(--accent) 4%,transparent);border-color:color-mix(in srgb,var(--accent) 15%,var(--line))}
.mjourney,.dosesim{border-color:var(--line)}
.feynman{background:color-mix(in srgb,#2563eb 3%,transparent);border-color:color-mix(in srgb,#2563eb 30%,var(--line))}
.cpd-fact{background:color-mix(in srgb,var(--accent) 5%,transparent);border:1px solid color-mix(in srgb,var(--accent) 16%,var(--line));border-left:3px solid var(--accent)}
/* the one hero stays confident, not shouty */
.bigidea{padding:1.05rem 1.2rem}
.bigidea p{font-size:1.06rem}
/* fewer competing ultra-bolds among the section labels */
.hook-h,.myths-h,.takeaways .tk-h,.ft-h{font-weight:600}

/* ---- Explain-it-back community discussion ---- */
.fy-note{margin-top:.7rem;font-size:.85rem;color:var(--accent);font-weight:500}
.fy-note a{border-bottom:1px dotted currentColor;cursor:pointer}
.fy-thread{margin-top:1.1rem;border-top:1px solid var(--line);padding-top:1rem}
.ft-h{font-size:.9rem;margin-bottom:.8rem;display:flex;align-items:center;gap:.45rem}
.ft-n{background:color-mix(in srgb,#2563eb 12%,transparent);color:#2563eb;border-radius:999px;padding:.05rem .5rem;font-size:.74rem;font-weight:700}
.ft-empty{font-size:.88rem;color:var(--muted);margin:.2rem 0 0}
.ftp{margin:0 0 .8rem;padding:.7rem .85rem;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.ftp-reply{margin:.6rem 0 0 .8rem;background:transparent;border:none;border-left:2px solid color-mix(in srgb,#2563eb 28%,var(--line));border-radius:0;padding:.35rem 0 .35rem .8rem}
.ftp-meta{display:flex;gap:.5rem;align-items:baseline;font-size:.78rem;margin-bottom:.25rem}
.ftp-who{font-weight:700;color:var(--ink)}
.ftp-who.me{color:var(--accent)}
.ftp-ago{color:var(--faint)}
.ftp-body{font-size:.92rem;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.ftp-reply-btn{margin-top:.55rem;background:none;border:none;color:#2563eb;font-size:.8rem;font-weight:600;cursor:pointer;padding:0}
.ftp-reply-btn:hover{text-decoration:underline}
.ftp-replybox{margin:.55rem 0 0;display:flex;flex-direction:column;gap:.45rem}
.ftp-replybox textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:.5rem .6rem;font:inherit;font-size:.9rem;resize:vertical;background:var(--bg,#fff);color:inherit}
.ftp-replybox button{align-self:flex-start;background:#2563eb;color:#fff;border:none;border-radius:8px;padding:.38rem .85rem;font-size:.82rem;font-weight:600;cursor:pointer}

/* ---- Tier-aware safety states (RESEARCH/DANGER compounds) ---- */
.danger-chip{background:color-mix(in srgb,#dc2626 12%,transparent)!important;color:#dc2626!important;border:1px solid color-mix(in srgb,#dc2626 40%,var(--line))!important;cursor:not-allowed;display:inline-flex;align-items:center;font-weight:600}
.whenuse.danger{background:color-mix(in srgb,#dc2626 6%,transparent);border-color:color-mix(in srgb,#dc2626 35%,var(--line))}
.whenuse.danger .wu-h{color:#dc2626}
.whenuse.caution{background:color-mix(in srgb,#d97706 5%,transparent);border-color:color-mix(in srgb,#d97706 28%,var(--line))}
.whenuse.caution .wu-h{color:#b45309}
