.lab-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lab-categories article{border:1px solid var(--line,#c8d5e7);padding:18px;border-radius:12px}.lab-selected{border-color:#0878df!important}.lab-session-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:26px}.lab-session-bar h2{flex:1;margin:0}#lab-timer{font-family:monospace;font-size:1.4rem;font-weight:700}.lab-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px}.lab-layout nav ol{list-style:none;padding:0;display:grid;gap:6px}.lab-layout nav button{width:100%;text-align:left;padding:10px;border-radius:7px;border:1px solid var(--line,#c8d5e7);color:inherit;background:transparent;cursor:pointer}.lab-layout nav button[aria-current=step]{border-color:#076ed3;background:#076ed319;font-weight:700}.lab-task{min-width:0}.lab-task details{margin:14px 0}.lab-task pre{white-space:pre-wrap;overflow-wrap:anywhere}#lab-setup{padding:18px;background:#0878df12;border:1px solid #076ed3;border-radius:10px;margin:16px 0}#lab-setup-actions{display:flex;gap:10px;flex-wrap:wrap}#lab-setup-actions button{padding:12px;border-radius:6px;cursor:pointer;background:#0868be;color:#fff;border:0}.lab-terminal{background:#081526;color:#e6f0ff;border:1px solid #294969;border-radius:10px;overflow:hidden;margin-top:18px;font-family:Consolas,monospace}.lab-terminal-title{background:#163450;padding:10px 14px;font:600 13px Inter,sans-serif}.lab-terminal pre{margin:0;padding:16px;min-height:170px;max-height:350px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:transparent;color:#e6f0ff}.lab-terminal label{display:block;padding:0 16px;font-weight:700}.lab-terminal textarea{box-sizing:border-box;width:calc(100% - 32px);margin:8px 16px;background:#0c2037;color:#f1f6ff;border:1px solid #4d739b;border-radius:5px;padding:12px;resize:vertical;font:15px/1.5 Consolas,monospace}.lab-terminal-help{padding:0 16px;font-size:12px;color:#bacce2}.lab-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}#lab-feedback{min-height:24px}#lab-feedback[data-passed=true]{color:var(--ink,#173858);font-weight:700}#lab-notice{padding:14px;border-left:3px solid #076ed3}#lab-workspace[hidden],#lab-result[hidden],#lab-login[hidden],#lab-setup[hidden]{display:none}.lab-task summary{cursor:pointer;font-weight:700}.lab-layout button:focus-visible,.lab-terminal textarea:focus-visible{outline:3px solid #45a6ff;outline-offset:3px}.lab-layout button:disabled{opacity:.65;cursor:wait}@media(max-width:800px){.lab-layout{grid-template-columns:1fr}.lab-layout nav ol{display:flex;overflow:auto;max-width:100%;padding-bottom:8px}.lab-layout nav li{min-width:150px}.lab-categories{grid-template-columns:1fr}.lab-terminal textarea{font-size:16px}.lab-session-bar{gap:10px}}
/* The lab owns its entire workspace width; guidance stays above the exercises. */
.lab-page-grid{grid-template-columns:minmax(0,1fr)}
.lab-page-grid>main{min-width:0;width:100%}
.lab-guidance{border:1px solid var(--line,#c8d5e7);border-radius:12px;padding:14px 18px;margin:20px 0}
.lab-guidance summary{cursor:pointer;font-weight:700}
.lab-categories article{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.lab-categories article :is(h3,p){margin:0}
.lab-categories article .btn{margin-top:auto;white-space:normal;text-align:left}
.lab-session-bar h2{flex:1 1 260px;min-width:0}
.lab-progress-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:16px 0 24px}
.lab-progress-row p{margin:0}
.lab-progress-row progress{width:220px;max-width:100%;accent-color:#076ed3}
#lab-setup{background:var(--card,#f6f9fd);border-color:var(--line,#c8d5e7);padding:22px;box-shadow:0 8px 24px #08152608}
.lab-setup-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.lab-window-mark{font-size:32px;color:#076ed3;line-height:1}
.lab-setup-title h4{margin:0;font-size:1.15rem}
.lab-setup-kicker{margin:0;font-size:12px;color:var(--muted,#506780)}
.lab-simulation-badge{margin-left:auto;border:1px solid var(--line,#c8d5e7);border-radius:5px;padding:3px 8px;font-size:11px;font-weight:700}
#lab-setup-status{font-weight:700;margin:18px 0 8px}
#lab-setup-meter{display:block;width:100%;height:7px;accent-color:#076ed3;margin-bottom:18px}
#lab-setup-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#lab-setup-actions button{display:grid;grid-template-columns:28px minmax(0,1fr);gap:3px 10px;align-items:center;text-align:left;padding:14px;border:1px solid var(--line,#c8d5e7);background:transparent;color:var(--ink,#173858);min-width:0;white-space:normal}
#lab-setup-actions button strong{font-size:14px}
#lab-setup-actions button small{grid-column:2;font-size:11px;line-height:1.5;color:var(--muted,#506780)}
.lab-step-marker{grid-row:span 2;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;width:26px;height:26px;font-size:12px}
#lab-setup-actions button[aria-current=step]{background:#076ed312;border-color:#076ed3}
#lab-setup-actions button[data-setup-done=true]{opacity:1;cursor:default;background:#13946a0b}
#lab-setup-actions button[data-setup-done=true] .lab-step-marker{color:#148060}
#lab-setup-actions button[data-setup-locked=true]{cursor:not-allowed;opacity:.6}
.lab-setup-evidence{font-size:12px;margin:16px 0 0;color:var(--muted,#506780)}
#lab-setup[data-setup-complete=true]{border-color:#148060}
.lab-terminal-title{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;line-height:1.5}
#lab-activity{font-size:11px;color:#bacce2;display:inline-flex;align-items:center;gap:7px}
#lab-activity::before{content:'';width:6px;height:6px;border-radius:50%;background:#69d7b4}
#lab-activity[data-busy=true]::before{background:#61afff;animation:lab-pulse 1s ease-in-out infinite}
#lab-feedback:not(:empty){padding:12px 14px;border:1px solid var(--line,#c8d5e7);border-radius:8px;background:var(--card,#f6f9fd)}
#lab-feedback[data-passed=true]{border-left:3px solid #148060}
#lab-feedback[data-passed=false]{border-left:3px solid #bf8b32}
@keyframes lab-pulse{50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){#lab-activity[data-busy=true]::before{animation:none}}
@media(max-width:560px){#lab-setup{padding:16px}#lab-setup-actions{grid-template-columns:minmax(0,1fr)}.lab-actions .btn{flex:1 1 140px;white-space:normal}.lab-session-bar .btn{white-space:normal}.lab-simulation-badge{margin-left:0}.lab-terminal pre{padding:14px;min-height:150px}}

.lab-page-grid :is(#lab-workspace,.lab-actions,.lab-session-bar){scroll-margin-top:calc(var(--utilbar-h,60px) + 20px);scroll-margin-bottom:72px}

.lab-install-record{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0 0;border-top:1px solid var(--line,#c8d5e7);padding-top:16px}.lab-install-record div{min-width:0}.lab-install-record dt{font-size:11px;font-weight:700;color:var(--muted,#506780)}.lab-install-record dd{margin:4px 0 0;font-size:12px;line-height:1.5;overflow-wrap:anywhere}@media(max-width:560px){.lab-install-record{grid-template-columns:1fr}}

/* V440: the homepage embeds the same complete workspace as the category lab. */
.psg-studio .story-sandbox .lab-layout{display:grid;grid-template-columns:minmax(220px,270px) minmax(0,1fr);gap:20px;align-items:start}
.psg-studio .story-sandbox .lab-layout>nav{position:static;max-height:none}
.psg-studio .story-sandbox #lab-questions button{font-size:13px;padding:10px 12px;line-height:1.5}
.psg-studio .story-sandbox .lab-session-bar{margin-top:10px;gap:14px}
.psg-studio .story-sandbox .lab-session-bar h2{font-size:22px;margin:0}
.psg-studio .story-sandbox .lab-progress-row{margin:10px 0 18px}
.psg-studio .story-sandbox .lab-task>h3{font-size:19px;margin:0 0 8px}
.psg-studio .story-sandbox .lab-terminal{margin:16px 0}
.psg-studio .story-sandbox #lab-output{min-height:110px;max-height:280px;margin:0}
.psg-studio .story-sandbox .lab-actions{display:flex;gap:12px;flex-wrap:wrap}
.psg-studio .story-sandbox #lab-notice{padding:0;border:0;margin:10px 0;font-size:13px}
.psg-studio .story-sandbox .lab-guidance{margin:12px 0 18px;padding:10px 14px}
.psg-studio .story-sandbox .lab-auth-state{margin-bottom:8px}
@media(max-width:900px){
 .psg-studio .story-sandbox .lab-layout{grid-template-columns:minmax(0,1fr);gap:16px}
 .psg-studio .story-sandbox .lab-layout>nav{max-height:200px;overflow:auto;padding:8px}
 .psg-studio .story-sandbox #lab-questions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
 .psg-studio .story-sandbox #lab-questions li{min-width:0}
 .psg-studio .story-sandbox #lab-questions button{font-size:12px;white-space:normal;overflow-wrap:anywhere;min-height:48px;margin:0}
 .psg-studio .story-sandbox .lab-task{padding:16px}
}

.psg-studio #lab-timer::before{content:attr(data-label);display:block;font:600 11px/1.5 var(--font,Arial);color:var(--studio-muted);letter-spacing:0}
.psg-studio #lab-workspace[data-preview=true] .studio-environment,.psg-studio #lab-workspace[data-preview=true] .lab-task>details:last-child{display:none}
