/* O escritório é o foco visual. A bancada usa os materiais da mesma empresa. */
.content-column main.is-laboratory { max-width: 1480px; padding: 2rem clamp(1rem, 3.5vw, 3.8rem) 3rem; }
.lab-shell { --lab-blue: #9ab9cc; --lab-coral: #e6aa8c; --lab-desk: #b99970; }
.lab-shell svg { width: 20px; height: 20px; flex-shrink: 0; vertical-align: middle; }
.lab-shell button { text-transform: none; letter-spacing: 0; }
.lab-shell button:focus-visible, .lab-shell summary:focus-visible { outline: 2px solid var(--lab-blue); outline-offset: 4px; }
.lab-page-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; margin-bottom: 1.8rem; }
.lab-page-heading h1 { font-size: clamp(1.8rem, 2.6vw, 2.65rem); max-width: 720px; margin: .35rem 0 .6rem; font-weight: 650; letter-spacing: -.045em; }
.lab-page-heading p { color: var(--muted); margin: 0; font-size: .95rem; }
.lab-badge { display: flex; gap: .65rem; align-items: center; padding-left: 1rem; border-left: 1px solid var(--line); max-width: 225px; flex-shrink: 0; }
.lab-badge > span:last-child { font-size: .73rem; color: var(--muted); }
.lab-badge strong { display: block; font-size: .83rem; line-height: 1.4; color: var(--text); font-weight: 550; margin-top: .2rem; }
.lab-badge-icon { width: 38px; height: 42px; display: grid; place-items: center; background: var(--panel2); border-radius: 7px 7px 12px 12px; color: var(--lab-blue); }
.lab-tasks-section { margin-top: 2.2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); min-width: 0; }
.lab-tasks-heading { margin-bottom: .7rem; }
.lab-tasks-heading h2 { margin: 0 0 .3rem; font-size: 1.3rem; }
.lab-journey { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-bottom: 1px solid var(--line); gap: .3rem; }
.lab-chapter { display: flex; align-items: center; gap: .6rem; text-align: left; padding: .8rem .7rem 1rem; border: 0; border-bottom: 2px solid transparent; border-radius: 0; color: var(--muted); background: transparent; min-width: 0; }
.lab-chapter:hover:not(:disabled) { background: var(--panel); }
.lab-chapter.is-current { color: var(--text); border-bottom-color: var(--lab-blue); }
.lab-step { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; flex-shrink: 0; font-size: .75rem; }
.lab-step svg { width: 13px; height: 13px; }
.lab-chapter.is-current .lab-step { background: var(--lab-blue); border-color: var(--lab-blue); color: #17242e; }
.lab-chapter > span:last-child { font-size: .86rem; font-weight: 550; }
.lab-chapter small { display: block; font-size: .72rem; font-weight: 400; opacity: .8; margin-top: .14rem; }
.lab-journey-status { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: .35rem 1rem; margin: 0; color: var(--muted); font-size: .8rem; }
.lab-journey-status strong { font-weight: 600; color: var(--text); }
.lab-journey-status button { padding: .4rem .65rem; min-height: 38px; border: 1px solid var(--line); background: var(--panel); color: var(--lab-blue); font-size: .8rem; }
.lab-office-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: 1.6rem; align-items: start; }
.lab-office-scene { border: 1px solid var(--line); border-radius: 12px; background: var(--panel); overflow: hidden; min-width: 0; }
.lab-company-sign { display: flex; align-items: center; gap: .7rem; padding: .9rem 1rem; min-height: 72px; }
.lab-company-mark { background: #bed0c1; color: #203c3b; height: 37px; width: 39px; display: grid; place-items: center; font-weight: 760; font-size: 1.3rem; letter-spacing: -.09em; border-radius: 7px; padding-right: 3px; }
.lab-company-sign strong { display: block; font-size: .98rem; font-weight: 600; }
.lab-company-sign > div > span { display: block; font-size: .67rem; color: var(--muted); }
.lab-fiction-badge { font-size: .65rem; color: var(--muted); border: 1px solid var(--line); border-radius: 4px; padding: .15rem .4rem; }
.lab-office-art { position: relative; background: #b2a78d; }
.lab-office-art > img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; }
.lab-person-pin { position: absolute; transform: translate(-50%, -50%); min-height: 28px; min-width: 28px; border: 0; border-radius: 20px; padding: 4px; display: flex; align-items: center; gap: 4px; color: #1c302d; background: #f6f4e9e8; box-shadow: 0 2px 9px #1b281633; }
.lab-person-pin:hover:not(:disabled), .lab-person-pin.is-selected { background: #d9e8dd; }
.lab-pin-dot { display: grid; place-items: center; width: 19px; height: 19px; font-size: 17px; font-weight: 500; }
.lab-pin-name { font-size: .68rem; padding-right: 4px; display: none; }
.lab-person-pin:hover .lab-pin-name, .lab-person-pin:focus-visible .lab-pin-name, .lab-person-pin.is-selected .lab-pin-name { display: block; }
.lab-person-pin[data-person="helena"] { left: 12%; top: 32%; }
.lab-person-pin[data-person="marina"] { left: 33%; top: 36%; }
.lab-person-pin[data-person="caio"] { left: 48%; top: 48%; }
.lab-person-pin[data-person="bia"] { left: 79%; top: 51%; }
.lab-person-pin[data-person="rafael"] { left: 90%; top: 30%; }
.lab-person-pin[data-person="luiza"] { left: 62%; top: 34%; }
.lab-person-pin[data-person="andre"] { left: 45%; top: 27%; }
.lab-person-pin[data-person="nando"] { left: 13%; top: 57%; }
.lab-scene-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; padding: .55rem 1rem; gap: .5rem 1rem; color: var(--muted); font-size: .72rem; }
.lab-scene-footer .text-button { font-size: .75rem; padding: .4rem 0 .4rem .5rem; min-height: 32px; flex-shrink: 0; }
.lab-request { padding: .4rem 0 0; min-width: 0; }
.lab-request-tag { display: flex; align-items: center; gap: .5rem; font-size: .76rem; color: var(--lab-coral); margin-bottom: .65rem; }
.lab-status-dot { display: inline-block; background: currentColor; width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.lab-request > h2 { font-size: clamp(1.4rem, 2vw, 1.85rem); font-weight: 620; margin: 0 0 1rem; letter-spacing: -.035em; }
.lab-conversation { border: 1px solid var(--line); background: var(--panel); border-radius: 10px; padding: 1rem; position: relative; }
.lab-speaker { display: flex; align-items: center; gap: .65rem; }
.lab-portrait { display: inline-block; width: 48px; height: 48px; border-radius: 50%; background-image: url("../assets/lab/ponto-norte-team.png"); background-repeat: no-repeat; background-size: 400% auto; flex-shrink: 0; border: 2px solid #ffffff15; }
.lab-portrait[data-person="helena"] { background-position: 0% 11%; }
.lab-portrait[data-person="marina"] { background-position: 33.3333% 11%; }
.lab-portrait[data-person="caio"] { background-position: 66.6667% 11%; }
.lab-portrait[data-person="bia"] { background-position: 100% 11%; }
.lab-portrait[data-person="rafael"] { background-position: 0% 78%; }
.lab-portrait[data-person="luiza"] { background-position: 33.3333% 78%; }
.lab-portrait[data-person="andre"] { background-position: 66.6667% 78%; }
.lab-portrait[data-person="nando"] { background-position: 100% 78%; }
.lab-speaker strong { display: block; font-size: .87rem; line-height: 1.35; font-weight: 620; }
.lab-speaker > div > span { display: block; font-size: .72rem; color: var(--muted); }
.lab-dialogue { font-size: .97rem; line-height: 1.7; margin: .9rem 0 .7rem; color: var(--text); }
.lab-voice-controls { display: flex; align-items: center; gap: .5rem; min-width: 0; }
.lab-listen { display: inline-flex; align-items: center; gap: .4rem; font-size: .75rem; min-height: 36px; padding: .3rem .5rem .3rem 0; border: 0; background: transparent; color: var(--lab-blue); }
.lab-listen svg { width: 18px; height: 18px; }
.lab-listen:hover:not(:disabled) { background: transparent; text-decoration: underline; }
.lab-speed { margin-left: .25rem; }
.lab-speed select { font-size: .68rem; min-height: 29px; padding: .15rem .3rem; background-color: var(--panel2); border-color: var(--line); width: 57px; }
.lab-audio-time { font-size: .66rem; color: var(--muted); }
.lab-audio-error { color: var(--error); font-size: .73rem; line-height: 1.5; margin: .5rem 0 0; }
.lab-speaking { display: flex; align-items: center; gap: 3px; height: 18px; margin-left: auto; color: var(--lab-blue); opacity: 0; }
.lab-speaking i { display: block; width: 3px; height: 5px; background: currentColor; border-radius: 2px; transform-origin: center; }
.is-speaking .lab-speaking { opacity: 1; }
.is-speaking .lab-speaking i { animation: lab-voice .65s ease-in-out infinite alternate; }
.is-speaking .lab-speaking i:nth-child(2) { animation-delay: -.25s; }
.is-speaking .lab-speaking i:nth-child(3) { animation-delay: -.4s; }
.is-speaking .lab-speaking i:nth-child(4) { animation-delay: -.15s; }
.is-speaking .lab-portrait { border-color: var(--lab-blue); }
@keyframes lab-voice { to { height: 17px; } }
.lab-delivery { border-left: 2px solid var(--lab-desk); padding: .1rem 0 .1rem .8rem; margin: 1.05rem 0 1.2rem; }
.lab-delivery > span { font-size: .72rem; color: var(--muted); }
.lab-delivery > p { margin: .3rem 0 0; font-size: .9rem; line-height: 1.5; }
.lab-delivery.is-delivered { border-color: var(--good); }
.lab-delivery.is-delivered > span { color: var(--good); }
.lab-delivery.is-delivered svg { width: 16px; height: 16px; }
.lab-start { display: flex; align-items: center; justify-content: space-between; gap: .8rem; width: 100%; min-height: 46px; font-size: .9rem; }
.lab-no-rush { font-size: .7rem; color: var(--muted); margin: .6rem 0 0; }
.lab-return-request { margin-top: 1.1rem; width: 100%; font-size: .83rem; }
.lab-task-drawer, .lab-team-directory { padding: 1.4rem; margin: 0 0 1.4rem; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; }
.lab-tasks-section > .lab-task-drawer { margin: 1rem 0 0; }
.lab-team-directory { margin-top: 1.4rem; margin-bottom: 0; }
.lab-route-notice { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; border-left: 2px solid var(--lab-blue); padding: .7rem .8rem; margin: 0 0 1rem; background: var(--panel); }
.lab-route-notice p { margin: 0; font-size: .83rem; color: var(--muted); }
.lab-drawer-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.lab-drawer-heading h2 { font-size: 1.1rem; margin: 0 0 .3rem; }
.lab-drawer-heading p { font-size: .83rem; color: var(--muted); margin: 0; }
.lab-icon-button { display: grid; place-items: center; width: 32px; min-height: 32px; padding: .3rem; background: transparent; border: 0; flex-shrink: 0; }
.lab-task-drawer ol { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.8rem; }
.lab-task-drawer li { min-width: 0; border-top: 1px solid var(--line); }
.lab-task-drawer li button { display: grid; grid-template-columns: 24px minmax(0, max-content) max-content; justify-content: start; align-items: center; gap: .7rem; text-align: left; width: 100%; min-height: 64px; padding: .7rem .3rem; border: 0; border-radius: 0; background: transparent; font-size: .83rem; }
.lab-task-drawer li button > span:nth-child(2) { min-width: 0; overflow-wrap: anywhere; }
.lab-task-drawer li button[aria-current] { color: var(--lab-blue); }
.lab-task-drawer li button:disabled { opacity: .58; }
.lab-task-number { display: grid; place-items: center; width: 24px; font-size: .7rem; flex-shrink: 0; color: var(--muted); }
.lab-task-number svg { width: 15px; height: 15px; }
.lab-task-drawer li small { display: block; color: var(--muted); font-size: .69rem; margin-top: .15rem; }
.lab-here { font-size: .65rem; white-space: nowrap; text-align: left; }
.lab-team-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; }
.lab-team-list > button { display: flex; gap: .6rem; align-items: center; background: transparent; text-align: left; padding: .6rem; border: 1px solid var(--line); min-width: 0; }
.lab-team-list strong { display: block; font-size: .87rem; }
.lab-team-list small { display: block; font-size: .67rem; color: var(--muted); }
.lab-footnote { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; border-top: 1px solid var(--line); margin-top: 1.6rem; padding-top: .9rem; font-size: .73rem; color: var(--muted); }
.lab-footnote > span { padding-top: .3rem; }
.lab-footnote .text-button { font-size: inherit; min-height: 30px; padding: .1rem .3rem; }
.lab-work-heading { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1rem; margin: -.35rem 0 1rem; }
.lab-work-heading .text-button { display: inline-flex; align-items: center; gap: .4rem; font-size: .8rem; min-height: 34px; padding: .25rem 0; }
.lab-work-heading > span { color: var(--muted); font-size: .73rem; }
.lab-workbench { display: grid; grid-template-columns: minmax(245px, .8fr) minmax(0, 1.8fr); gap: 1.6rem; align-items: start; }
.lab-task-context { min-width: 0; }
.lab-desk-label { color: var(--lab-coral); font-size: .73rem; }
.lab-task-context > h2 { font-size: 1.45rem; margin: .35rem 0 1rem; line-height: 1.25; }
.lab-conversation-compact .lab-dialogue { font-size: .88rem; line-height: 1.65; }
.lab-conversation-compact { padding: .85rem; }
.lab-station { min-width: 0; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #111c23; color: #e4eee8; transition: border-color .18s ease; }
.lab-station[data-feedback="error"] { border-color: #a36c61; }
.lab-station[data-feedback="progress"] { border-color: #648f9d; }
.lab-station[data-feedback="complete"] { border-color: #8aab75; }
.lab-station-bar { display: flex; align-items: center; gap: .7rem; padding: 0 .7rem 0 .45rem; background: #25343e; border-bottom: 1px solid #394a54; min-height: 49px; }
.lab-station-tabs { display: flex; gap: .15rem; }
.lab-station-tabs > button { display: inline-flex; align-items: center; gap: .4rem; background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0; color: #b8c7ce; font-size: .8rem; min-height: 48px; padding: .5rem .65rem; }
.lab-station-tabs > button[aria-pressed="true"] { color: #edf4ef; border-bottom-color: #9ab9cc; }
.lab-station-tabs > button:hover:not(:disabled) { background: #30434f; }
.lab-station-tabs svg { width: 17px; height: 17px; }
.lab-station-name { margin-left: auto; color: #a7bbc1; font: .65rem monospace; white-space: nowrap; }
.lab-station-name .lab-status-dot { color: #b5d6ad; width: 5px; height: 5px; margin-left: .35rem; }
.lab-console { height: 350px; overflow-y: auto; padding: 1.2rem; font: .78rem/1.8 ui-monospace, Consolas, monospace; scroll-behavior: auto; }
.lab-log-entry { margin-bottom: .95rem; overflow-wrap: anywhere; }
.lab-log-entry pre { white-space: pre-wrap; overflow-wrap: anywhere; margin: .25rem 0 0; font: inherit; background: none; border: 0; color: inherit; padding: 0; }
.lab-log-command { color: #eef2f0; }
.lab-log-command > span { color: #a3c9ac; }
.lab-command-ok { color: #91a2a9; font-size: .7rem; }
.lab-command-feedback, .lab-log-entry[data-kind] { --feedback-ink: #bacbd1; --feedback-line: #607985; --feedback-bg: #1e2c34; }
.lab-command-feedback[data-kind="error"], .lab-log-entry[data-kind="error"] { --feedback-ink: #f1b8a7; --feedback-line: #a36c61; --feedback-bg: #30262a; }
.lab-command-feedback[data-kind="progress"], .lab-log-entry[data-kind="progress"] { --feedback-ink: #a5d3e0; --feedback-line: #648f9d; --feedback-bg: #1d303a; }
.lab-command-feedback[data-kind="complete"], .lab-log-entry[data-kind="complete"] { --feedback-ink: #c6e3ad; --feedback-line: #8aab75; --feedback-bg: #24332b; }
.lab-command-feedback { display: flex; align-items: flex-start; gap: .65rem; padding: .8rem 1rem; border-top: 1px solid #354750; border-left: 3px solid var(--feedback-line); background: var(--feedback-bg); color: var(--feedback-ink); }
.lab-command-feedback[hidden] { display: none; }
.lab-feedback-icon { display: flex; align-items: center; flex: 0 0 auto; padding-top: .05rem; }
.lab-feedback-icon svg { width: 20px; height: 20px; }
.lab-feedback-copy { min-width: 0; overflow-wrap: anywhere; }
.lab-feedback-copy strong { display: block; font-size: .83rem; font-weight: 650; line-height: 1.5; color: var(--feedback-ink); }
.lab-feedback-copy p { margin: .2rem 0 0; color: #c7d3d7; font-size: .76rem; line-height: 1.6; }
.lab-feedback-copy p.lab-feedback-context { margin-top: .5rem; color: #aebfc5; font-size: .72rem; }
.lab-log-explanation { margin-top: .35rem; color: #b7c9cf; font-family: "Ubuntu Sans", sans-serif; font-size: .73rem; }
.lab-log-explanation summary { cursor: pointer; width: fit-content; color: var(--feedback-ink); }
.lab-log-explanation p { margin: .4rem 0; max-width: 72ch; }
.lab-command-feedback.is-fresh .lab-feedback-icon { animation: lab-feedback-arrive .22s ease-out; }
.lab-log-entry[data-kind] { border-left: 2px solid var(--feedback-line); padding-left: .65rem; }
.lab-log-command .lab-log-status { display: inline-flex; align-items: center; gap: .25rem; max-width: 100%; margin-left: .5rem; vertical-align: middle; color: var(--feedback-ink); font: 550 .66rem/1.6 system-ui, sans-serif; }
.lab-log-status svg { width: 13px; height: 13px; }
@keyframes lab-feedback-arrive { from { transform: translateY(3px); opacity: .6; } to { transform: translateY(0); opacity: 1; } }
.lab-command-form { display: flex; align-items: center; gap: .65rem; padding: .75rem 1rem; background: #192830; border-top: 1px solid #354750; }
.lab-command-form > label { color: #bed6a8; font: .94rem monospace; }
.lab-command-form > input { flex: 1; min-width: 0; width: 0; color: #f2f4ef; border: 0; border-radius: 3px; background: transparent; font: .82rem ui-monospace, Consolas, monospace; min-height: 40px; padding: .5rem .35rem; }
.lab-command-form > input::placeholder { color: #97a8af; }
.lab-command-form > button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; background: #c1d5a4; color: #1c2a1d; border-color: #c1d5a4; font-size: .76rem; min-height: 39px; padding: .5rem .75rem; }
.lab-command-form > button svg { width: 16px; height: 16px; }
.lab-command-help { max-width: none; margin: 0; padding: .1rem 1rem .65rem; background: #192830; color: #a8bcc5; font-size: .7rem; }
.lab-command-help code { color: #d5e6d7; background: none; }
.lab-completion { padding: .65rem 1rem; border-top: 1px solid #354750; background: #192830; color: #bdd2db; font-size: .73rem; overflow-wrap: anywhere; }
.lab-completion > div { display: flex; flex-wrap: wrap; gap: .3rem .75rem; margin-top: .35rem; }
.lab-completion code { padding: .15rem .35rem; background: #25343e; color: #e4eee8; font-size: .72rem; }
.lab-editor { background: #111c23; padding: 1rem; }
.lab-editor > header { display: flex; align-items: baseline; flex-wrap: wrap; gap: .45rem 1rem; margin-bottom: .8rem; }
.lab-editor > header > div { min-width: 0; display: flex; align-items: baseline; flex-wrap: wrap; gap: .35rem .7rem; }
.lab-editor > header strong { color: #c6e3ad; font-size: .92rem; }
.lab-editor > header span { color: #b8cbd2; font: .73rem/1.5 ui-monospace, Consolas, monospace; overflow-wrap: anywhere; }
.lab-editor #lab-editor-mode { color: #a5d3e0; font-family: "Ubuntu Sans", sans-serif; }
.lab-editor textarea { display: block; resize: vertical; width: 100%; min-height: 260px; max-height: 65vh; padding: .8rem; border: 1px solid #45606d; background: #0e171d; color: #ecf3ed; font: .82rem/1.8 ui-monospace, Consolas, monospace; tab-size: 4; }
.lab-editor textarea[readonly] { border-color: #354750; }
.lab-editor > p { color: #b8cbd2; font-size: .74rem; margin: .65rem 0; }
.lab-editor #lab-editor-message { color: #d9d7ac; }
.lab-editor form { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .85rem; }
.lab-editor form label { flex-basis: 100%; color: #b8cbd2; font-size: .73rem; }
.lab-editor form input { flex: 1; min-width: 0; width: 100%; background: #192830; border-color: #45606d; color: #edf4ee; font: .8rem ui-monospace, Consolas, monospace; }
.lab-editor-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .9rem; }
.lab-editor button { background: #25343e; border-color: #45606d; color: #e4eee8; font-size: .75rem; }
.lab-editor button:hover:not(:disabled) { background: #304652; }
.lab-editor button.primary { background: #c1d5a4; border-color: #c1d5a4; color: #1c2a1d; }
.lab-editor-discard { margin-top: .8rem; border-top: 1px solid #45606d; padding-top: .75rem; }
.lab-editor-discard p { color: #efd1ad; font-size: .78rem; margin-bottom: .6rem; }
.lab-editor-discard button { margin: 0 .4rem .4rem 0; }
.lab-station-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: .5rem 1rem; padding: .55rem .9rem; border-top: 1px solid #354750; color: #a8b7bf; font-size: .65rem; line-height: 1.5; background: #1c2d35; }
.lab-station-footer > span { max-width: 100%; }
.lab-station-footer .text-button { color: #c8d6dc; font-size: .67rem; min-height: 30px; padding: .2rem 0 .2rem .4rem; flex-shrink: 0; }
.lab-hints { border-top: 1px solid var(--line); padding-top: .65rem; margin-top: 1rem; font-size: .83rem; }
.lab-hints summary { cursor: pointer; color: var(--lab-blue); padding: .25rem 0; }
.lab-hints p { margin: .6rem 0; color: var(--muted); line-height: 1.7; }
.lab-hints details { font-size: .76rem; margin-top: .8rem; }
.lab-work-tools { display: flex; flex-direction: column; align-items: flex-start; gap: .85rem; margin-top: 1.35rem; padding-top: 1.15rem; border-top: 1px solid var(--line); }
.lab-work-tools strong { font-size: .8rem; font-weight: 550; }
.lab-work-tools > div > p { font-size: .73rem; color: var(--muted); margin: .7rem 0 0; }
.lab-command-shelf { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .65rem; }
.lab-command-shelf button { background: var(--panel); color: var(--text); font-size: .75rem; min-height: 34px; padding: .35rem .7rem; }
.lab-references { font-size: .76rem; max-width: 260px; flex-shrink: 0; }
.lab-references summary { padding: .3rem 0; cursor: pointer; color: var(--muted); }
.lab-references ul { padding-left: 1.2rem; }
.lab-files { min-height: 416px; padding: 1rem; }
.lab-files > p { font-size: .75rem; color: #b8c8cc; margin: 0 0 .8rem; }
.lab-file-browser { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 1.3fr); border: 1px solid #354750; border-radius: 6px; min-height: 310px; overflow: hidden; }
.lab-file-list { border-right: 1px solid #354750; padding: .35rem; max-height: 330px; overflow: auto; }
.lab-file-list button { display: flex; align-items: center; width: 100%; gap: .4rem; text-align: left; font: .65rem/1.6 ui-monospace, Consolas, monospace; background: transparent; border: 0; color: #c4d6dc; padding: .35rem .4rem; min-height: 36px; }
.lab-file-list button > span { overflow-wrap: anywhere; }
.lab-file-list button > small { font-size: .58rem; color: #8ba4b0; }
.lab-file-list button[aria-current], .lab-file-list button:hover:not(:disabled) { background: #2b414b; }
.lab-file-list svg { width: 13px; height: 13px; }
.lab-file-preview { padding: .8rem; overflow: auto; min-width: 0; }
.lab-file-preview > strong { font: .65rem ui-monospace, Consolas, monospace; overflow-wrap: anywhere; color: #a5bac4; }
.lab-file-preview pre, .lab-file-preview > p { font: .73rem/1.8 ui-monospace, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; margin-top: 1rem; padding: 0; background: none; border: 0; color: #d4e0de; }
.lab-file-preview ul { font: .73rem/1.8 ui-monospace, Consolas, monospace; color: #d4e0de; padding-left: 1.1rem; }
.lab-dialogue-pages { display: flex; align-items: center; justify-content: space-between; margin-top: .6rem; border-top: 1px solid var(--line); padding-top: .5rem; font-size: .7rem; color: var(--muted); }
.lab-dialogue-pages button { padding: .2rem; min-height: 28px; width: 30px; background: transparent; border: 0; }
:root[data-theme="light"] .lab-shell { --lab-blue: #355d73; --lab-coral: #8b4732; }
:root[data-theme="light"] .lab-chapter.is-current .lab-step { color: #fff; }
@media (min-width: 1500px) {
  .lab-office-grid { grid-template-columns: minmax(0, 1.65fr) minmax(320px, 1fr); gap: 2rem; }
  .lab-request { padding-top: .7rem; }
  .lab-request > h2 { margin-bottom: 1.3rem; }
  .lab-conversation { padding: 1.15rem; }
  .lab-dialogue { font-size: 1.02rem; }
  .lab-console { height: 400px; }
}
@media (max-width: 1150px) {
  .lab-badge { display: none; }
  .lab-office-grid { grid-template-columns: minmax(0, 1.2fr) minmax(280px, 1fr); gap: 1.2rem; }
  .lab-chapter { padding-inline: .3rem; gap: .35rem; }
  .lab-chapter > span:last-child { font-size: .77rem; }
  .lab-company-sign { padding: .8rem; }
  .lab-fiction-badge { display: none; }
  .lab-company-sign > div > span { font-size: .62rem; }
  .lab-team-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lab-workbench { gap: 1.1rem; grid-template-columns: minmax(230px, .8fr) minmax(0, 1.45fr); }
  .lab-console { height: 330px; }
}
@media (max-width: 780px) {
  .content-column main.is-laboratory { padding: 1.5rem 1rem 2rem; }
  .lab-page-heading { margin-bottom: 1rem; }
  .lab-page-heading h1 { font-size: 1.85rem; }
  .lab-journey { display: flex; overflow-x: auto; gap: .65rem; }
  .lab-chapter { min-width: 108px; padding: .6rem .25rem .7rem; gap: .4rem; }
  .lab-chapter small { display: inline; margin-left: .35rem; }
  .lab-step { width: 24px; height: 24px; }
  .lab-tasks-section { margin-top: 1.7rem; padding-top: 1.2rem; }
  .lab-tasks-heading h2 { font-size: 1.2rem; }
  .lab-journey-status { font-size: .75rem; gap: .4rem .8rem; }
  .lab-journey-status button { min-height: 44px; }
  .lab-office-grid { grid-template-columns: 1fr; }
  .lab-company-sign > div > span { font-size: .7rem; }
  .lab-fiction-badge { display: block; }
  .lab-request { padding-top: .2rem; }
  .lab-office-art { max-height: 350px; overflow: hidden; }
  .lab-office-art > img { object-fit: cover; object-position: center 30%; max-height: 350px; }
  .lab-person-pin { display: none; }
  .lab-scene-footer { font-size: .69rem; }
  .lab-request > h2 { font-size: 1.5rem; }
  .lab-workbench { display: flex; flex-direction: column; gap: 1.25rem; }
  .lab-task-context, .lab-station { width: 100%; }
  .lab-task-context .lab-delivery { margin-bottom: .65rem; }
  .lab-task-context > h2 { font-size: 1.35rem; }
  .lab-conversation-compact .lab-dialogue { font-size: .94rem; }
  .lab-console { height: 270px; }
  .lab-work-tools { flex-direction: column; gap: .8rem; }
  .lab-references { max-width: none; }
  .lab-task-drawer ol { grid-template-columns: 1fr; }
  .lab-task-drawer, .lab-team-directory { padding: 1rem; }
  .lab-footnote { font-size: .7rem; }
  .lab-work-heading > span { font-size: .65rem; }
  .lab-work-heading .text-button { font-size: .73rem; }
}
@media (max-width: 420px) {
  .lab-team-list { grid-template-columns: 1fr; }
  .lab-scene-footer > span { max-width: 23ch; }
  .lab-console { padding: .85rem; font-size: .72rem; }
  .lab-command-feedback { padding: .7rem .75rem; gap: .5rem; }
  .lab-feedback-copy strong { font-size: .8rem; }
  .lab-feedback-copy p { font-size: .73rem; }
  .lab-log-command .lab-log-status { margin-left: .35rem; }
  .lab-command-form { gap: .35rem; padding: .65rem .7rem; }
  .lab-command-form button { font-size: .7rem; padding: .4rem .6rem; }
  .lab-command-form button svg { display: none; }
  .lab-station-name { font-size: .58rem; }
  .lab-file-browser { grid-template-columns: 1fr; }
  .lab-file-list { border-right: 0; border-bottom: 1px solid #354750; max-height: 180px; }
}
@media (prefers-reduced-motion: reduce) {
  .lab-shell *, .lab-shell *::before, .lab-shell *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
