:root{--lab-accent:#1660cf;--lab-soft:#eef5ff;--lab-ink:#0d2340;--lab-line:#cbd9e7}
.framework-masthead{background:linear-gradient(135deg,var(--lab-soft),#fff 66%);border-bottom:1px solid var(--lab-line)}
.framework-masthead .eyebrow,.framework-masthead h1{color:var(--lab-ink)}
.framework-masthead .eyebrow{color:var(--lab-accent)}
.framework-masthead .subtitle{max-width:820px}
.framework-journey .point-button[aria-current="step"]{border-color:var(--lab-accent);background:var(--lab-soft)}
.framework-journey .progress-bar{background:var(--lab-accent)}
.lab-evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.lab-evidence-card{min-height:116px;padding:16px;text-align:left;border:1px solid var(--lab-line);border-radius:16px;background:#fff;color:var(--lab-ink);cursor:pointer;transition:border-color .18s ease,transform .18s ease,background .18s ease}
.lab-evidence-card:hover,.lab-evidence-card:focus-visible{border-color:var(--lab-accent);transform:translateY(-2px);outline:none}
.lab-evidence-card[aria-pressed="true"]{border-color:var(--lab-accent);background:var(--lab-soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--lab-accent) 12%,transparent)}
.lab-evidence-card strong{display:block;margin-bottom:8px;font:700 .78rem/1.2 Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--lab-accent)}
.lab-evidence-card span{display:block;font:500 .9rem/1.45 Inter,system-ui,sans-serif;color:#4f6278}
.lab-inspection{min-height:112px;padding:18px;border-left:4px solid var(--lab-accent);border-radius:0 14px 14px 0;background:var(--lab-soft)}
.lab-inspection .small-label{color:var(--lab-accent)}
.lab-inspection p{margin:.55rem 0 0;color:#31475e;line-height:1.55}
.python-workbench{margin:18px 0 0;border:1px solid var(--lab-line);border-radius:16px;overflow:hidden;background:#0e2036;color:#eaf3ff}
.python-workbench header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:#142b46;border-bottom:1px solid rgba(255,255,255,.12)}
.python-workbench header span{font:700 .72rem/1 Inter,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.python-workbench button{border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:7px 12px;background:transparent;color:#fff;font:700 .72rem/1 Inter,system-ui,sans-serif;cursor:pointer}
.python-workbench pre{margin:0;padding:18px;overflow:auto;font:500 .79rem/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre}
.framework-note{margin:8px 0 0;color:#65788d;font:500 .76rem/1.45 Inter,system-ui,sans-serif}
.framework-sources{margin:28px 0 0;padding:22px;border:1px solid var(--lab-line);border-radius:18px;background:#f8fbfe}
.framework-sources__heading{display:grid;grid-template-columns:minmax(180px,.42fr) minmax(260px,.8fr) minmax(300px,1.15fr);gap:18px;align-items:start}
.framework-sources__heading .small-label{color:var(--lab-accent)}
.framework-sources__heading strong{color:var(--lab-ink);font:700 1rem/1.35 Inter,system-ui,sans-serif}
.framework-sources__heading p{margin:0;color:#5d7085;font:500 .8rem/1.55 Inter,system-ui,sans-serif}
.framework-sources__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
.framework-sources__grid a{display:flex;min-height:126px;flex-direction:column;padding:15px;border:1px solid var(--lab-line);border-radius:14px;background:#fff;color:var(--lab-ink);text-decoration:none;transition:border-color .18s ease,transform .18s ease}
.framework-sources__grid a:hover,.framework-sources__grid a:focus-visible{border-color:var(--lab-accent);transform:translateY(-2px);outline:none}
.framework-sources__grid a>span{color:var(--lab-accent);font:750 .66rem/1.3 Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.framework-sources__grid a>strong{margin:.55rem 0 .9rem;font:650 .86rem/1.42 Inter,system-ui,sans-serif}
.framework-sources__grid a>small{margin-top:auto;color:#5d7085;font:700 .7rem/1.2 Inter,system-ui,sans-serif}
@media(max-width:850px){.lab-evidence-grid{grid-template-columns:1fr}.lab-evidence-card{min-height:0}}
@media(max-width:850px){.framework-sources__heading,.framework-sources__grid{grid-template-columns:1fr}.framework-sources__grid a{min-height:0}}
@media(prefers-reduced-motion:reduce){.lab-evidence-card,.framework-sources__grid a{transition:none}.lab-evidence-card:hover,.framework-sources__grid a:hover{transform:none}}

/* Biology framework v2: progressive depth without front-loading prose. */
.biology-prediction{margin:0 0 18px;padding:16px;border:1px solid color-mix(in srgb,var(--lab-accent) 26%,#d8e1e8);border-radius:14px;background:color-mix(in srgb,var(--lab-soft) 72%,#fff)}
.biology-prediction__head{display:flex;align-items:center;justify-content:space-between;gap:16px}.biology-prediction__head strong{font-size:15px}.biology-prediction__head span,.biology-depth span,.biology-depth__badge{font-size:10px;font-weight:800;letter-spacing:.14em}
.biology-prediction>p{margin:8px 0 12px;line-height:1.55}.biology-prediction__row{display:grid;grid-template-columns:1fr auto;gap:8px}.biology-prediction input{min-width:0;border:1px solid #bccbd5;border-radius:9px;background:#fff;padding:11px 12px;color:#10253a;font:inherit}.biology-prediction button{border:0;border-radius:9px;background:var(--lab-accent);padding:10px 14px;color:#fff;font-weight:750}.biology-prediction small{display:block;margin-top:8px;color:#60758a}
.biology-depth{display:grid;grid-template-columns:auto repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid #d9e2e8}.biology-depth>div{min-width:0}.biology-depth__badge{align-self:start;width:max-content;max-width:100%;border:1px solid color-mix(in srgb,var(--lab-accent) 35%,#cbd6de);border-radius:999px;padding:7px 9px;color:var(--lab-accent);background:var(--lab-soft)}.biology-depth p{margin:5px 0 0;line-height:1.5}
@media(max-width:760px){.biology-prediction__row{grid-template-columns:1fr}.biology-depth{grid-template-columns:1fr}.biology-depth__badge{margin-bottom:2px}}
