.subject-lab{--lab-blue:#5279a6;--lab-gold:#ad7928;line-height:1.75}.lab-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.lab-control{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:14px;font-weight:600;margin:15px 0}.lab-control input,.lab-control select{grid-column:1/-1;width:100%;accent-color:var(--red)}.lab-control select{padding:12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit}.lab-control output{grid-column:2;grid-row:1;font-variant-numeric:tabular-nums;color:var(--red-ink)}
.macro-bars{display:flex;height:90px;margin:26px 0 12px;overflow:hidden;border-radius:14px;background:var(--surface-3);gap:2px}.macro-bars>div{display:grid;place-items:center;background:var(--red);color:#fff;min-width:0;transition:width .4s ease;overflow:hidden}.macro-bars>div:nth-child(2){background:var(--lab-blue)}.macro-bars>div:nth-child(3){background:#8b641e}.macro-bars span{font-size:12px;padding:8px;writing-mode:horizontal-tb;text-align:center}.lab-prediction{display:grid;gap:8px;margin:22px 0}.lab-prediction input{max-width:250px;padding:12px;font:inherit;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink)}
.lab-flow,.quality-chart,.life-track{width:100%;height:auto;display:block;margin:24px 0}.lab-flow text,.quality-chart text{fill:var(--ink);font:600 15px var(--font-body)}.lab-flow .lab-small{font-size:12px}.lab-link,.life-track path{stroke:var(--line-strong);stroke-width:4;fill:none}.lab-flow circle{fill:var(--surface-3);stroke:var(--line-strong);stroke-width:2;transition:fill .3s,stroke .3s}.lab-flow .visited circle{fill:var(--red-soft);stroke:var(--red)}.lab-flow .current circle{stroke-width:4;animation:lab-check-in .35s ease-out}.lab-flow .blocked circle{fill:var(--red)}.lab-flow .blocked text:not(.lab-small){fill:#fff}.lab-step-summary{min-height:180px;padding:20px;background:var(--surface-2);border-radius:14px}.lab-step-summary h5,.life-detail h5,.life-comparison h5{font:650 20px/1.5 var(--font-body);margin:0 0 14px}.quality-track{fill:var(--surface-3)}.quality-bar{fill:var(--red);transition:width .4s ease}.quality-bar.after{fill:var(--lab-blue)}.quality-chart text{font-size:13px}
.life-tabs{display:flex;flex-wrap:wrap;gap:8px}.life-track circle{fill:var(--surface-3);stroke:var(--muted);stroke-width:2}.life-track [data-life-marker]{fill:var(--red);stroke:var(--red);transition:cx .5s cubic-bezier(.2,.7,.1,1)}.life-detail,.life-comparison{padding:24px;border:1px solid var(--line-strong);border-radius:14px;background:var(--surface-2)}.life-comparison{margin-top:18px;border-left:4px solid var(--lab-blue)}.life-detail small,.life-comparison small{font-size:13px;font-weight:400;color:var(--muted)}.life-detail dl,.life-comparison dl{margin:0;display:grid;gap:14px}.life-detail dt,.life-comparison dt{font-weight:650;color:var(--red-ink)}.life-detail dd,.life-comparison dd{margin:4px 0 0;font-size:14px}
.term-anatomy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.term-anatomy button{padding:20px 12px;display:grid;gap:14px;text-align:center;border:1px solid var(--line-strong);border-radius:16px;background:var(--surface-2);color:var(--ink);cursor:pointer;transition:transform .2s,background .2s;min-height:150px}.term-anatomy button[aria-pressed=true]{transform:translateY(-5px);background:var(--red-soft);border-color:var(--red)}.term-anatomy small{font:12px var(--font-body);color:var(--muted)}.term-anatomy strong{font:600 clamp(18px,2vw,28px) var(--font-body)}.term-anatomy span{font:14px/1.5 var(--font-body)}.term-interpretation{padding:18px;border-left:3px solid var(--red);background:var(--red-soft)}
.lw .chip.on{outline:2px solid var(--red);outline-offset:2px}.lw-pool[tabindex]:focus-visible,.lw [data-zone]:focus-visible,.lw [data-step]:focus-visible{outline:3px solid var(--red);outline-offset:3px}.lw-help{font-size:12px;color:var(--muted);margin:8px 0}.lw-svg [data-part].hl text{stroke:none!important}.lw[data-complete=true]>.lw-head::after{content:'Activity practiced ✓';display:block;color:var(--good,var(--red-ink));font-size:12px;margin-top:8px}
@keyframes lab-check-in{from{stroke-width:9}to{stroke-width:4}}
@media(max-width:600px){.lab-controls{grid-template-columns:1fr;gap:4px}.macro-bars span{font-size:10px;padding:3px}.term-anatomy{gap:6px}.term-anatomy button{padding:15px 6px;min-height:125px}.life-detail,.life-comparison{padding:18px}.lab-step-summary{min-height:200px}.lab-flow .lab-small{font-size:11px}}
@media(prefers-reduced-motion:reduce){.subject-lab *{animation:none!important;transition:none!important}.term-anatomy button[aria-pressed=true]{transform:none}}
