: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}}
