.course-links, .lab-actions { display: flex; flex-wrap: wrap; gap: .6rem 1rem; margin-top: 1rem; }
.labs-layout { display: grid; grid-template-columns: minmax(14rem, .72fr) minmax(0, 1.55fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.lab-card { min-width: 0; padding: 1.25rem clamp(1rem, 3vw, 2rem) 1.5rem; border: 1px solid var(--line); border-top: 4px solid var(--accent); background: var(--surface); border-radius: var(--tn-radius-sm); box-shadow: var(--shadow); }
.lab-card h2 { margin-top: 0; }
.lab-section { margin-top: 1.3rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.lab-section h3 { margin: 0 0 .6rem; font-size: 1.08rem; }
.lab-card textarea { display: block; width: 100%; min-height: 23rem; resize: vertical; border: 1px solid var(--muted); border-radius: .3rem; padding: .8rem; background: var(--code-background); color: var(--ink); font: .9rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; tab-size: 4; }
.lab-actions { margin: .75rem 0; }
.lab-status { min-height: 1.5em; color: var(--muted); }
.lab-output { overflow: auto; max-height: 24rem; padding: .8rem; background: var(--code-background); white-space: pre-wrap; overflow-wrap: anywhere; font: .86rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; }
.lab-plot:empty { display: none; }
.python-plot { display: block; width: 100%; height: auto; background: var(--wash); }
.plot-axis { stroke: var(--muted); stroke-width: 1; }
.plot-bar { fill: var(--accent); }
.lab-card details > summary { margin-bottom: .7rem; }
.lab-card details pre { margin: .75rem 0; }
#activity-list li { margin-bottom: .6rem; }
#activity-list a[aria-current="page"] { color: var(--ink); font-weight: 700; text-decoration-thickness: 3px; }
@media (max-width: 48rem) { .labs-layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; } }
