.lab-page{--lab-reveal: cubic-bezier(.16, 1, .3, 1);--lab-cut-panel: polygon(0 0, calc(100% - 1.25rem) 0, 100% 1.25rem, 100% 100%, 0 100%);--lab-cut-canvas: polygon(0 0, calc(100% - 2rem) 0, 100% 2rem, 100% 100%, 0 100%);--lab-cut-btn: polygon( 0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 8px 100%, 0 calc(100% - 8px) );max-width:1440px;margin:0 auto;padding:2.5rem 1.5rem 4rem;font-family:var(--font-family-base);color:var(--color-text-secondary)}.lab-page .lab-eyebrow{font-family:var(--font-family-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.2em;text-transform:uppercase;color:var(--color-brand-cyan);margin:0 0 .6rem;padding-left:1.5rem;position:relative}.lab-page .lab-eyebrow:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1rem;height:2px;background:var(--color-brand-cyan)}.lab-page .lab-panel{position:relative;background:var(--color-background-content-primary);border:1px solid var(--color-border-primary);clip-path:var(--lab-cut-panel);padding:1.5rem;animation:lab-reveal .5s var(--lab-reveal) both}.lab-page .lab-panel-head{margin-bottom:1.25rem}.lab-page .lab-panel-title{font-family:var(--font-family-heading);font-size:clamp(1.15rem,1.6vw,1.45rem);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-primary);margin:0;line-height:1.2}.lab-page .lab-panel-sub{margin:.5rem 0 0;font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text-tertiary)}@keyframes lab-reveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.lab-page .lab-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.25rem;font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);text-decoration:none;border:1px solid transparent;cursor:pointer;clip-path:var(--lab-cut-btn);transition:background-color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease}.lab-page .lab-btn-primary{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff;box-shadow:0 0 18px #23b8c833}.lab-page .lab-btn-primary:hover:not(:disabled){background:var(--color-accent-primary-hover);transform:translateY(-2px);box-shadow:0 0 26px #23b8c859}.lab-page .lab-btn-ghost{background:transparent;border-color:var(--color-border-light-alpha);color:var(--color-text-secondary)}.lab-page .lab-btn-ghost:hover:not(:disabled){border-color:var(--color-accent-primary);color:var(--color-text-primary)}.lab-page .lab-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.lab-page .lab-btn:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:-2px}.lab-page .lab-btn-primary:focus-visible{outline-color:var(--color-background-app);outline-offset:-3px}.lab-page .lab-header{max-width:780px;margin-bottom:2rem;animation:lab-reveal .6s var(--lab-reveal) both}.lab-page .lab-title{font-family:var(--font-family-heading);font-size:clamp(2.25rem,4.5vw,3.5rem);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.01em;line-height:1.05;color:var(--color-text-primary);margin:0 0 .75rem}.lab-page .lab-lede{margin:0;font-size:var(--font-size-lg);line-height:1.7;color:var(--color-text-tertiary)}.lab-page .lab-chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:1.25rem 0 0;padding:0}.lab-page .lab-chip{font-size:11px;font-weight:var(--font-weight-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary);background:var(--color-background-content-secondary);border:1px solid var(--color-border-primary);padding:.3rem .65rem;clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,0 100%)}.lab-page .lab-chip-accent{color:var(--color-brand-cyan);background:#23b8c814;border-color:#23b8c840}.lab-page .lab-grid{display:grid;grid-template-columns:360px minmax(0,1fr);grid-template-areas:"dials canvas" "dials steps";grid-template-rows:auto auto;align-items:start;gap:1.25rem}.lab-page .lab-side{grid-area:dials;position:sticky;top:1.25rem}.lab-page .lab-steps{grid-area:steps}.lab-page .lab-canvas-panel{grid-area:canvas;padding:0;clip-path:var(--lab-cut-canvas);display:flex;flex-direction:column;overflow:hidden}.lab-page .lab-output{display:flex;flex-direction:column;gap:1.25rem;min-width:0;margin-top:1.25rem}.lab-page .lab-output:empty{margin-top:0}.lab-page .lab-canvas-panel:before{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--color-brand-cyan) 0%,var(--color-brand-blue) 55%,rgba(35,184,200,0) 100%)}.lab-page .lab-canvas-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--color-border-primary);background:var(--color-background-navbar);flex-wrap:wrap}.lab-page .lab-canvas-title{font-family:var(--font-family-heading);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-primary);margin:0}.lab-page .lab-canvas-hint{margin:0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.lab-page .lab-canvas{position:relative;height:58vh;min-height:380px;background:var(--color-background-app)}.lab-page .lab-canvas>.flow-canvas-container{height:100%}.lab-page .lab-canvas-failed{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.35rem;text-align:center;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.lab-page .lab-canvas-failed-sub{color:var(--color-text-muted);font-size:var(--font-size-xs);margin:0}.lab-page .lab-skeleton{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:radial-gradient(circle at 30% 30%,rgba(35,184,200,.06),transparent 60%),var(--color-background-app)}.lab-page .lab-skeleton-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:28px 28px}.lab-page .lab-skeleton-nodes{position:absolute;top:0;right:0;bottom:0;left:0}.lab-page .lab-skeleton-node{position:absolute;display:block;height:54px;border:1px solid var(--color-border-primary);background:var(--color-background-content-secondary);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%);animation:lab-skeleton-pulse 1.6s ease-in-out infinite}.lab-page .lab-skeleton-node-a{left:8%;top:26%;width:130px}.lab-page .lab-skeleton-node-b{left:34%;top:14%;width:150px;animation-delay:.15s}.lab-page .lab-skeleton-node-c{left:34%;top:52%;width:150px;animation-delay:.3s}.lab-page .lab-skeleton-node-d{left:64%;top:32%;width:140px;animation-delay:.45s}.lab-page .lab-skeleton-wire{position:absolute;display:block;height:2px;background:linear-gradient(90deg,#23b8c873,#23b8c814)}.lab-page .lab-skeleton-wire-1{left:20%;top:34%;width:14%}.lab-page .lab-skeleton-wire-2{left:50%;top:42%;width:14%}.lab-page .lab-skeleton-caption{position:absolute;bottom:1rem;left:0;right:0;text-align:center;margin:0;font-size:var(--font-size-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted)}@keyframes lab-skeleton-pulse{0%,to{opacity:.5}50%{opacity:.95}}.lab-page .lab-dial-list{display:flex;flex-direction:column;gap:1.1rem}.lab-page .lab-dial-label{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.4rem}.lab-page .lab-dial-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.lab-page .lab-dial-value{font-family:var(--font-family-heading);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-brand-cyan);white-space:nowrap}.lab-page .lab-dial-suffix{font-family:var(--font-family-base);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-tertiary);margin-left:.35rem}.lab-page .lab-dial-range{width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;height:4px;background:var(--color-background-content-tertiary);border-radius:var(--border-radius-sm);cursor:pointer}.lab-page .lab-dial-range::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;background:var(--color-accent-primary);border:2px solid var(--color-background-content-primary);border-radius:var(--border-radius-full);cursor:pointer;box-shadow:0 0 10px #23b8c866}.lab-page .lab-dial-range::-moz-range-thumb{width:16px;height:16px;background:var(--color-accent-primary);border:2px solid var(--color-background-content-primary);border-radius:var(--border-radius-full);cursor:pointer}.lab-page .lab-dial-range:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:3px}.lab-page .lab-dial-select:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:-2px}.lab-page .lab-dial-range:disabled,.lab-page .lab-dial-select:disabled{opacity:.4;cursor:not-allowed}.lab-page .lab-dial-select{width:100%;padding:.5rem .65rem;background:var(--color-background-content-secondary);border:1px solid var(--color-border-primary);color:var(--color-text-primary);font-family:inherit;font-size:var(--font-size-base);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%)}.lab-page .lab-dial-help{margin:.4rem 0 0;font-size:var(--font-size-xs);line-height:1.55;color:var(--color-text-tertiary)}.lab-page .lab-dial-warning{margin:1rem 0 0;padding:.6rem .75rem;font-size:var(--font-size-xs);line-height:1.55;color:var(--color-status-warning-text);background:#fbbf2414;border-left:2px solid var(--color-status-warning-text)}.lab-page .lab-step-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}.lab-page .lab-step{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.6rem;align-content:start;padding-left:.9rem;border-left:1px solid var(--color-border-primary);transition:opacity .4s var(--lab-reveal),border-color .4s var(--lab-reveal)}.lab-page .lab-step-live{border-left-color:var(--color-brand-cyan)}.lab-page .lab-step-done{border-left-color:var(--color-status-success-text)}.lab-page .lab-step-num{font-family:var(--font-family-heading);font-size:1.5rem;font-weight:var(--font-weight-bold);line-height:1;color:#ffffff26;transition:color .4s var(--lab-reveal)}.lab-page .lab-step-title{font-family:var(--font-family-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-primary);margin:0 0 .3rem}.lab-page .lab-step-text{margin:0 0 .65rem;font-size:var(--font-size-xs);line-height:1.6;color:var(--color-text-tertiary)}.lab-page .lab-step-hint{margin:0 0 .65rem;padding-left:.6rem;border-left:2px solid var(--color-accent-primary);font-size:var(--font-size-xs);line-height:1.5;color:var(--color-accent-primary)}.lab-page .lab-step-locked{opacity:.68}.lab-page .lab-step-locked .lab-step-text{color:var(--color-text-secondary)}.lab-page .lab-step-live .lab-step-num{color:var(--color-brand-cyan);animation:lab-step-glow 2.4s ease-in-out infinite}.lab-page .lab-step-done .lab-step-num{color:var(--color-status-success-text)}@keyframes lab-step-glow{0%,to{text-shadow:0 0 0 rgba(35,184,200,0)}50%{text-shadow:0 0 14px rgba(35,184,200,.6)}}.lab-page .lab-notice{display:flex;align-items:flex-start;gap:.85rem;flex-wrap:wrap;padding:1rem 1.15rem;background:var(--color-background-content-secondary);border:1px solid var(--color-border-primary);border-left:3px solid var(--color-brand-cyan);clip-path:polygon(0 0,calc(100% - 1rem) 0,100% 1rem,100% 100%,0 100%);animation:lab-reveal .4s var(--lab-reveal) both}.lab-page .lab-notice-sample{border-left-color:var(--color-status-warning-text)}.lab-page .lab-notice-mark{width:8px;height:8px;margin-top:.45rem;flex:none;background:var(--color-status-warning-text);transform:rotate(45deg)}.lab-page .lab-notice-body{flex:1 1 260px;min-width:0}.lab-page .lab-notice-headline{margin:0 0 .3rem;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.lab-page .lab-notice-detail{margin:0;font-size:var(--font-size-xs);line-height:1.6;color:var(--color-text-tertiary)}.lab-page .lab-notice-cta{white-space:nowrap;align-self:center}.lab-page .lab-feed-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.lab-page .lab-live-dot{width:9px;height:9px;border-radius:var(--border-radius-full);background:var(--color-text-muted);flex:none}.lab-page .lab-live-dot-on{background:var(--color-status-success-text);animation:lab-live-pulse 1.4s ease-in-out infinite}@keyframes lab-live-pulse{0%,to{box-shadow:0 0 #4ade8080}70%{box-shadow:0 0 0 8px #4ade8000}}.lab-page .lab-feed-status{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.lab-page .lab-feed-price{margin-left:auto;font-family:var(--font-family-heading);font-size:var(--font-size-xxl);color:var(--color-brand-cyan)}.lab-page .lab-feed-bar{height:3px;background:var(--color-background-content-tertiary);overflow:hidden;margin-bottom:.85rem}.lab-page .lab-feed-bar-fill{display:block;height:100%;background:var(--gradient-primary-accent);transition:width .4s linear}.lab-page .lab-feed-list{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:.3rem}.lab-page .lab-feed-item{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.6rem;font-size:var(--font-size-xs);line-height:1.5;color:var(--color-text-tertiary);animation:lab-feed-in .35s var(--lab-reveal) both}.lab-page .lab-feed-time{color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.lab-page .lab-feed-item-price .lab-feed-text{color:var(--color-brand-cyan)}.lab-page .lab-feed-item-trade .lab-feed-text{color:var(--color-status-success-text);font-weight:var(--font-weight-semibold)}.lab-page .lab-feed-item-note .lab-feed-text{color:var(--color-text-secondary)}@keyframes lab-feed-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}.lab-page .lab-feed-note{margin:.75rem 0 0;font-size:var(--font-size-xs);color:var(--color-status-warning-text)}.lab-page .lab-openloop{margin:1rem 0 0;padding:.85rem 1rem;font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text-secondary);background:#23b8c80f;border-left:2px solid var(--color-brand-cyan)}.lab-page .lab-risk{margin:1rem 0 0;font-size:var(--font-size-xs);line-height:1.6;color:var(--color-text-tertiary);border-top:1px solid var(--color-border-primary);padding-top:.75rem}.lab-page .lab-progress{height:6px;background:var(--color-background-content-tertiary);overflow:hidden;margin-bottom:.6rem}.lab-page .lab-progress-fill{display:block;height:100%;background:var(--gradient-primary-accent);transition:width var(--transition-fast)}.lab-page .lab-progress-text{margin:0;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.lab-page .lab-result:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--color-brand-cyan) 0%,var(--color-brand-blue) 60%,rgba(35,184,200,0) 100%)}.lab-page .lab-result-statement{margin:0 0 1.25rem;padding:.85rem 1rem;font-size:var(--font-size-sm);line-height:1.65;color:var(--color-text-secondary);background:var(--color-background-content-secondary);border-left:2px solid var(--color-brand-cyan)}.lab-page .lab-result-statement strong{color:var(--color-text-primary)}.lab-page .lab-save{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-top:1.5rem;padding:1.25rem;background:var(--color-background-content-secondary);border:1px solid rgba(35,184,200,.25);clip-path:var(--lab-cut-panel)}.lab-page .lab-save-body{flex:1 1 320px;min-width:0}.lab-page .lab-save-title{font-family:var(--font-family-heading);font-size:var(--font-size-xxl);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-primary);margin:0 0 .4rem}.lab-page .lab-save-text{margin:0;font-size:var(--font-size-sm);line-height:1.65;color:var(--color-text-tertiary)}.lab-page .lab-save-actions{display:flex;gap:.75rem;flex-wrap:wrap}.lab-page .lab-save-standalone .lab-save-actions{margin-top:1rem}.lab-page .lab-problem{border-left:3px solid var(--color-status-warning-text)}.lab-page .lab-problem-list{margin:0;padding-left:1.1rem;font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text-tertiary)}.lab-page .lab-problem-text{margin:0;font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text-tertiary);word-break:break-word}.lab-page .lab-window-note{margin:0;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}@media(max-width:968px){.lab-page{padding:2rem 1.25rem 3rem}.lab-page .lab-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"canvas" "dials" "steps";grid-template-rows:auto}.lab-page .lab-side{position:static}.lab-page .lab-step-list{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-page .lab-canvas{height:46vh;min-height:300px}}@media(max-width:768px){.lab-page{padding:1.5rem 1rem 2.5rem}.lab-page .lab-canvas{height:44vh;min-height:320px}.lab-page .lab-canvas .flow-minimap{display:none}.lab-page .lab-step-list{grid-template-columns:minmax(0,1fr);gap:1rem}.lab-page .lab-canvas-hint{display:none}.lab-page .lab-panel{padding:1.15rem}.lab-page .lab-save,.lab-page .lab-notice{flex-direction:column;align-items:stretch}.lab-page .lab-notice-cta{align-self:flex-start}}@media(max-width:480px){.lab-page{padding:1.25rem .85rem 2rem}.lab-page .lab-canvas{height:42vh;min-height:300px}.lab-page .lab-chips{gap:.35rem}.lab-page .lab-feed-item{grid-template-columns:minmax(0,1fr);gap:0}.lab-page .lab-feed-time{font-size:10px}.lab-page .lab-feed-price{font-size:var(--font-size-xl)}.lab-page .lab-save-actions .lab-btn,.lab-page .lab-step .lab-btn{width:100%}}@media(prefers-reduced-motion:reduce){.lab-page .lab-panel,.lab-page .lab-header,.lab-page .lab-notice,.lab-page .lab-feed-item{animation:none!important;opacity:1!important;transform:none!important}.lab-page .lab-skeleton-node,.lab-page .lab-live-dot-on,.lab-page .lab-step-live .lab-step-num{animation:none!important}.lab-page .lab-skeleton-node{opacity:.7}.lab-page .lab-btn,.lab-page .lab-step,.lab-page .lab-feed-bar-fill,.lab-page .lab-progress-fill{transition:none!important}.lab-page .lab-btn-primary:hover:not(:disabled){transform:none}}
