.lab-page{background:var(--color-surface-void)}.rack-lab{--rack-bg: #0f141e;--rack-poster: url(/ki-labor/rack-poster.jpg);color-scheme:dark;--rack-free: #252d3e;--lab-gap: max(20px, calc((100vw - var(--content-wide)) / 2 + 24px));position:relative;height:100vh;height:100svh;min-height:660px;overflow:hidden;color:var(--color-ink);background:var(--rack-bg)}html[data-theme=light] .rack-lab{--rack-bg: #dfe5ea;--rack-poster: url(/ki-labor/rack-poster-light.jpg);color-scheme:light}.rack-stage{position:absolute;inset:0;background:radial-gradient(ellipse 60% 55% at 68% 48%,rgba(110,155,245,.12),transparent 70%),var(--rack-bg)}.rack-stage:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 75% 70% at 60% 50%,transparent 55%,rgba(4,6,10,.55) 100%);pointer-events:none}html[data-theme=light] .rack-stage:after{background:radial-gradient(ellipse 75% 70% at 60% 50%,transparent 60%,rgba(70,85,100,.16) 100%)}.rack-poster{position:absolute;inset:0;background:var(--rack-poster) 72% 50% / cover no-repeat;transition:opacity .8s var(--ease-out)}.rack-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;cursor:grab;touch-action:pan-y;transition:opacity .8s var(--ease-out)}.rack-canvas:active{cursor:grabbing}.rack-lab[data-scene=ready] .rack-canvas{opacity:1}.rack-lab[data-scene=ready] .rack-poster{opacity:0}.rack-labels{position:absolute;inset:0;z-index:1;pointer-events:none}.rack-label{position:absolute;top:0;left:0;display:inline-flex;align-items:center;gap:7px;padding:4px 10px 4px 8px;border:1px solid var(--color-line-soft);border-radius:999px;background:var(--color-surface-overlay);color:var(--color-ink-strong);font-size:12px;line-height:1.2;font-weight:500;white-space:nowrap;translate:-9px -50%;opacity:0;transition:opacity var(--dur-base) var(--ease-out);will-change:transform}.rack-label:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-accent-300);box-shadow:var(--glow-signal)}.rack-label.is-on{opacity:1}.rack-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.lab-panel,.rack-hud,.lab-dock{position:absolute;z-index:2;border:1px solid var(--color-line-soft);border-radius:var(--radius-xl);background:var(--color-surface-overlay);backdrop-filter:var(--blur-glass);box-shadow:var(--sh-overlay)}.lab-panel{top:84px;bottom:16px;left:var(--lab-gap);display:flex;flex-direction:column;gap:14px;width:340px;padding:18px 18px 14px;overflow-y:auto;scrollbar-width:thin}.rack-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 12px;color:var(--color-accent-300);font-size:13px;font-weight:500}.rack-eyebrow span{width:7px;height:7px;border-radius:50%;background:var(--color-accent);box-shadow:var(--glow-signal)}.lab-intro h1{margin:0 0 10px;color:var(--color-ink-strong);font-size:clamp(22px,1.9vw,27px);line-height:1.1;letter-spacing:-.024em;font-weight:600}.rack-lead{margin:0;font-size:13px;line-height:1.55;color:var(--color-ink-muted)}.lab-stations ol{display:flex;gap:6px;margin:0 0 12px;padding:0;list-style:none}.lab-stations li{flex:1}.lab-station-btn{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:40px;padding:0;overflow:hidden;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--color-ink-muted);font:500 13px/1.2 var(--font-sans);text-align:left;cursor:pointer;transition:var(--t-control)}.lab-station-btn:hover:not(:disabled){background:var(--color-surface-card);color:var(--color-ink-strong)}.lab-station-btn.is-active{border-color:var(--color-line-accent);background:var(--color-surface-card);color:var(--color-ink-strong)}.lab-station-num{display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid var(--color-line-soft);border-radius:50%;font-size:12px}.lab-station-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.lab-station-btn.is-done .lab-station-num{background:#6e9bf524}.lab-station-btn.is-active .lab-station-num{background:var(--color-accent);color:var(--color-on-accent)}.lab-station-btn.is-done .lab-station-num{border-color:var(--color-accent);color:var(--color-accent-300)}.lab-station-btn.is-active .lab-station-num{border-color:var(--color-accent)}.lab-station-timer{position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--color-accent);transform-origin:left;animation:lab-timer linear forwards}@keyframes lab-timer{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.lab-transport{display:flex;gap:8px}.lab-play,.lab-icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;border:1px solid var(--color-line-soft);border-radius:var(--radius-md);background:var(--color-surface-card);color:var(--color-ink-strong);font:500 14px/1.2 var(--font-sans);cursor:pointer;transition:var(--t-control)}.lab-play{flex:1;border-color:var(--color-line-accent)}.lab-icon-btn{width:44px}.lab-play:hover:not(:disabled),.lab-icon-btn:hover:not(:disabled){background:var(--color-surface-card-hover)}.lab-play:disabled,.lab-icon-btn:disabled{cursor:default;opacity:.45}.lab-flip{display:inline-flex;transform:scaleX(-1)}.lab-play-icon{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid var(--color-accent-300)}.lab-play-icon.is-pause{width:10px;height:12px;border:0;border-left:3px solid var(--color-accent-300);border-right:3px solid var(--color-accent-300)}.lab-station{padding-top:14px;border-top:1px solid var(--color-line-hairline);animation:lab-in var(--dur-slow) var(--ease-out)}@keyframes lab-in{0%{opacity:0;transform:translateY(6px)}}.lab-station-label{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:13px;font-weight:500;color:var(--color-ink-muted)}.lab-station-label .tech{color:var(--color-accent-300)}.lab-station h2{margin:0 0 8px;color:var(--color-ink-strong);font-size:19px;line-height:1.2;letter-spacing:-.018em;font-weight:600}.lab-station-text{margin:0;font-size:14px;line-height:1.6;color:var(--color-ink)}.lab-capacity{display:grid;gap:10px;margin-top:12px;padding:12px 14px;border:1px solid var(--color-line-hairline);border-radius:var(--radius-md);background:var(--color-surface-card)}.lab-capacity p{margin:0;font-size:14px;line-height:1.5;color:var(--color-ink-strong)}.rack-note{margin:auto 0 0;font-size:12px;line-height:1.45;color:var(--color-ink-muted)}.rack-status{color:var(--color-accent-300)}.rack-hud{top:84px;right:var(--lab-gap);left:calc(var(--lab-gap) + 354px);display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;padding:10px 16px;font-size:12px;line-height:1.3}.rack-hud-title{margin:0;color:var(--color-ink-strong);font-weight:600}.rack-hud-title .rack-hud-class,.rack-hud-title .tech{font-weight:400;color:var(--color-ink-muted)}.rack-hud-grid{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0}.rack-hud-grid>div{display:flex;align-items:baseline;gap:6px}.rack-hud-grid dt{display:flex;align-items:center;gap:6px;color:var(--color-ink-muted);font-size:12px}.rack-hud-grid dd{margin:0;color:var(--color-ink-strong);font-size:14px}.rack-hud-requests{display:flex;align-items:center;gap:5px;margin:0 0 0 auto;color:var(--color-ink-muted)}.rack-hud-requests strong{color:var(--color-ok-300);font-weight:500}.rack-hud .is-warn{color:var(--color-danger-300)}.rack-swatch{display:inline-block;flex:0 0 auto;width:9px;height:9px;border-radius:2px}.rack-swatch--weights{background:var(--color-accent-600)}.rack-swatch--kv{background:var(--color-ok)}.rack-swatch--free{background:var(--rack-free);box-shadow:inset 0 0 0 1px var(--color-line-soft)}.rack-swatch--waiting{background:var(--color-danger)}.lab-dock{right:var(--lab-gap);bottom:16px;left:calc(var(--lab-gap) + 354px);display:grid;gap:10px;padding:10px 14px}.lab-console{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-end;margin:0}.rack-field{display:grid;gap:6px;min-width:0;margin:0;padding:0;border:0}.rack-field-label{margin:0;padding:0;font-size:12px;line-height:1.25;font-weight:500;color:var(--color-ink-muted);transition:color var(--dur-base) var(--ease-out)}.rack-field.is-hot .rack-field-label{color:var(--color-accent-300)}.rack-field.is-hot .rack-seg,.rack-field.is-hot .rack-range output{border-color:var(--color-line-accent);box-shadow:0 0 0 3px #6e9bf51f}.rack-seg{display:flex;gap:2px;padding:3px;border:1px solid var(--color-line-soft);border-radius:11px;background:var(--scene-control-scope);transition:var(--t-control)}.rack-seg-btn{display:inline-flex;align-items:center;justify-content:center;min-width:30px;min-height:32px;padding:4px 8px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--color-ink-muted);font:500 13px/1.2 var(--font-sans);white-space:nowrap;cursor:pointer;transition:var(--t-control)}.rack-seg-btn.tech{font-family:var(--font-mono)}.rack-seg-btn:hover:not(:disabled){background:var(--color-surface-card);color:var(--color-ink-strong)}.rack-seg-btn.is-active{border-color:var(--color-line-accent);background:var(--color-surface-raised);color:var(--color-ink-strong);box-shadow:var(--edge-inner)}.rack-seg-btn:disabled,.rack-action:disabled{cursor:default}.rack-field--range{flex:1 1 220px;min-width:220px}.rack-range{display:flex;gap:10px;align-items:center}.rack-range input{flex:1;min-width:0;height:40px;accent-color:var(--color-accent)}.rack-range output{min-width:44px;padding:6px 8px;border:1px solid var(--color-line-soft);border-radius:8px;text-align:center;font-size:15px;color:var(--color-ink-strong);transition:var(--t-control)}.rack-action{display:inline-flex;align-items:center;justify-self:start;gap:9px;min-height:40px;padding:8px 14px;border:1px solid var(--color-line-accent);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-ink-strong);font:500 13px/1.2 var(--font-sans);cursor:pointer;transition:var(--t-control)}.rack-action:hover:not(:disabled){background:var(--color-surface-card-hover)}.rack-action-dot{width:8px;height:8px;border-radius:50%;background:var(--color-ok);box-shadow:var(--glow-success)}.rack-action.is-cut .rack-action-dot{background:var(--color-danger);box-shadow:none}.rack-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin:10px 0 0;padding:8px 0 0;border-top:1px solid var(--color-line-hairline);list-style:none;font-size:12px;color:var(--color-ink-muted)}.rack-legend li{display:inline-flex;align-items:center;gap:6px}.rack-binding{display:grid;gap:8px;margin-top:12px;font-size:13px;line-height:1.5;color:var(--color-ink-muted)}.rack-binding p{margin:0}.rack-binding a{display:inline-flex;align-items:center;gap:5px;color:var(--color-link)}.lab-list,.lab-report{position:relative;padding-block:var(--section-y);border-top:1px solid var(--color-line-hairline)}.lab-list{background:var(--color-surface-void)}.lab-report{background:var(--color-surface)}.lab-report-inner{max-width:var(--content-max);margin-inline:auto;padding-inline:24px}.lab-report-head{max-width:760px;margin-bottom:40px}.lab-report-label{margin:0 0 18px;font-size:13px;font-weight:500;color:var(--color-accent-300)}.lab-report-head h2{margin:0 0 16px;font-size:var(--text-display-3);line-height:1.12;letter-spacing:-.022em;font-weight:600}.lab-report-lead{margin:0;font-size:19px;line-height:1.55;color:var(--color-ink-muted)}.lab-list-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px;margin:0;padding:0;list-style:none}.lab-list-items li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;scroll-margin-top:90px}.lab-list-num{margin:2px 0 0;color:var(--color-accent-300);font-size:15px}.lab-list-items h3{margin:0 0 6px;font-size:var(--text-h3);line-height:1.35;font-weight:600;color:var(--color-ink-strong)}.lab-list-items p:not(.lab-list-num){margin:0;font-size:16px;line-height:1.6;color:var(--color-ink)}.lab-findings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}.lab-finding-card{display:grid;align-content:start;gap:10px;padding:24px;border:1px solid var(--color-line-hairline);border-radius:var(--radius-lg);background:var(--color-surface-card)}.lab-finding-card h3{margin:0;font-size:var(--text-h3);line-height:1.35;font-weight:600;color:var(--color-ink-strong)}.lab-finding-text{margin:0;font-size:16px;line-height:1.6;color:var(--color-ink)}.lab-finding-links{display:flex;flex-wrap:wrap;gap:8px 18px;margin:4px 0 0;font-size:14px}.lab-finding-links a{display:inline-flex;align-items:center;gap:5px;min-height:32px;color:var(--color-link)}@media(max-width:1239px)and (min-width:960px){.rack-hud{left:calc(var(--lab-gap) + 324px)}.lab-panel{width:310px}.lab-dock{left:calc(var(--lab-gap) + 324px)}}@media(min-width:960px)and (max-height:860px){.rack-lead{display:none}}@media(max-width:959px){.rack-lab{height:auto;min-height:0;overflow:visible;padding-top:68px}.rack-stage{position:sticky;z-index:3;inset:auto;height:44svh;min-height:260px}.lab-panel,.rack-hud,.lab-dock{position:relative;inset:auto;width:auto;margin:12px}.rack-hud{padding:10px 12px;gap:6px 14px}.rack-hud-requests{margin-left:0}.rack-hud-title{margin-bottom:6px}.rack-hud-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 8px}.rack-hud-grid dd{font-size:14px}.rack-hud-requests{margin-top:6px;padding-top:6px}.lab-panel{overflow:visible}.lab-station-btn{min-height:44px}.lab-stations ol{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px}.rack-seg-btn{min-height:44px;min-width:44px}.lab-console{display:grid;grid-template-columns:minmax(0,1fr)}.rack-seg-btn{flex:1}.lab-list-items,.lab-findings{grid-template-columns:minmax(0,1fr)}}@media(max-width:959px)and (max-height:700px){.rack-hud-grid{display:none}}@media(prefers-reduced-motion:reduce){.rack-poster,.rack-canvas,.rack-label,.lab-station{transition:none;animation:none}.lab-station-timer{display:none}}
