.navbar{position:sticky;top:0;z-index:var(--z-navbar);height:var(--navbar-height);background:transparent;color:var(--color-text-primary);transition:background-color var(--transition-slow),backdrop-filter var(--transition-slow),border-color var(--transition-slow);border-bottom:1px solid transparent}.navbar.is-scrolled{background:color-mix(in srgb,var(--color-bg-primary) 60%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom-color:var(--color-border)}.navbar-container{height:100%;max-width:90rem;margin:0 auto;padding:0 var(--space-xl);display:flex;align-items:center;justify-content:space-between;gap:var(--space-xl)}@media(min-width:640px){.navbar-container{padding:0 3rem}}.navbar-logo{display:flex;align-items:center;gap:8px;flex-shrink:0;font-family:var(--font-brand);font-size:var(--text-xl);font-weight:var(--font-medium);letter-spacing:-.02em;color:var(--color-text-primary)}.navbar-logo:hover{color:var(--color-text-primary)}.navbar-logo-img{width:24px;height:24px;object-fit:contain}.navbar-links{display:flex;align-items:center;gap:var(--space-lg);flex:1;justify-content:center;min-width:0}.navbar-link{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-base);color:var(--color-text-secondary);white-space:nowrap;transition:color var(--transition-fast)}.navbar-link:hover{color:var(--color-brand)}.navbar-link.active{color:var(--color-text-primary);font-weight:var(--font-medium)}.navbar-link.locked{color:var(--color-text-muted)}.navbar-link__lock{width:12px;height:12px;opacity:.8}.navbar-actions{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.navbar-theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-primary);transition:color var(--transition-fast)}.navbar-theme-toggle svg{width:22px;height:22px}.navbar-theme-toggle:hover{color:var(--color-brand)}.navbar-auth{display:flex;align-items:center}.navbar-signin-btn{height:36px;padding:0 16px;border-radius:var(--radius-asym);background:var(--color-bg-inverse);color:var(--color-text-inverse);font-size:var(--text-base);font-weight:var(--font-medium);transition:background-color var(--transition-fast)}.navbar-signin-btn:hover{background:color-mix(in oklab,var(--color-bg-inverse) 88%,var(--color-text-inverse))}@media(max-width:900px){.navbar-container{padding:0 var(--space-md);gap:var(--space-md)}.navbar-links{gap:var(--space-md);overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.navbar-links::-webkit-scrollbar{display:none}.navbar-link{font-size:var(--text-sm)}.navbar-logo-text{display:none}}.home{position:relative;isolation:isolate;overflow-x:clip;background:var(--color-bg-primary);color:var(--color-text-primary)}.home-container{width:100%;max-width:72rem;margin:0 auto;padding:0 var(--space-xl)}@media(min-width:640px){.home-container{padding:0 3rem}}.home-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px;font-size:var(--text-base);font-weight:var(--font-medium);white-space:nowrap;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.home-btn svg{width:16px;height:16px;margin-left:-2px}.home-btn--solid{border-radius:var(--radius-asym);background:var(--color-bg-inverse);color:var(--color-text-inverse)}.home-btn--solid:hover{color:var(--color-text-inverse);background:color-mix(in oklab,var(--color-bg-inverse) 88%,var(--color-text-inverse))}.home-btn--outline{border-radius:var(--radius-asym-mirror);border:1px solid var(--color-border);background:transparent;color:var(--color-text-primary)}.home-btn--outline:hover{color:var(--color-text-primary);background:var(--color-overlay);border-color:var(--color-border-hover)}.home-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted)}.home-tag svg{width:11px;height:11px}.home-tag--free{border-color:var(--color-success-border);color:var(--color-success)}.home-badge{position:relative;display:inline-flex;width:fit-content;overflow:hidden;border-radius:var(--radius-full);padding:1px;margin-bottom:20px}.home-badge__glint{position:absolute;top:50%;left:50%;height:20px;width:300px;border-radius:var(--radius-full);background:linear-gradient(to right,transparent,transparent,var(--color-brand));transform:translate(-50%,-50%)}@media(prefers-reduced-motion:no-preference){.home-badge__glint{animation:chai-spin 4s linear infinite}}.home-badge__label{position:relative;z-index:1;border-radius:var(--radius-full);padding:7px 16px;background:var(--color-bg-tertiary);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary)}@keyframes chai-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.home-hero{padding:72px 0 80px}.home-hero__grid{display:flex;gap:2rem;align-items:center}.home-hero__copy{display:flex;flex-direction:column;align-items:flex-start;width:60%}.home-hero__title{font-size:42px;font-weight:var(--font-semibold);letter-spacing:-.025em;line-height:1.05;margin-bottom:20px}.home-hero__lead{max-width:48rem;font-size:var(--text-lg);line-height:1.6;color:var(--color-text-secondary);margin-bottom:28px}.home-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:40px}.home-hero__stats{display:flex;gap:36px;margin:0}.home-hero__stats div{display:flex;flex-direction:column;gap:2px}.home-hero__stats dt{font-family:var(--font-display);font-size:1.375rem;font-weight:var(--font-semibold);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.home-hero__stats dd{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}.home-hero__visual{position:relative;width:40%}@media(min-width:768px){.home-hero__title{font-size:3.75rem}}@media(min-width:1024px){.home-hero__title{font-size:4.5rem}.home-hero__lead{font-size:var(--text-xl)}}.home-demo{position:relative}.home-demo__window{overflow:hidden}.home-demo__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;height:40px;padding:0 16px;border-bottom:1px solid var(--color-card-edge)}.home-demo__file{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary)}.home-demo__chip{font-size:var(--text-xs);color:var(--color-text-muted)}.home-demo__code{margin:0;padding:16px;font-family:var(--font-mono);font-size:12.5px;line-height:1.75;color:var(--color-text-primary);overflow-x:auto;background:none;border:none;border-radius:0}.home-demo__code code{font-family:inherit;background:none;border:none;padding:0}.home-demo__ln{display:inline-block;width:24px;color:var(--color-text-muted);-webkit-user-select:none;user-select:none}.home-demo__code .tok-c{color:var(--color-text-muted);font-style:italic}.home-demo__code .tok-k{color:var(--color-highlight)}.home-demo__code .tok-f{color:var(--color-text-primary);font-weight:var(--font-semibold)}.home-demo__code .tok-s{color:var(--color-success)}.home-demo__code .tok-v{color:var(--color-info)}.home-demo__cursor{display:inline-block;width:2px;height:1.05em;margin-left:1px;vertical-align:-.2em;background:var(--color-text-secondary)}@media(prefers-reduced-motion:no-preference){.home-demo__cursor{animation:chai-blink 1.1s steps(2,start) infinite}}.home-demo__tests{border-top:1px solid var(--color-card-edge);padding:12px 16px 14px}.home-demo__tests-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:var(--text-xs);color:var(--color-text-muted)}.home-demo__count{color:var(--color-success)}.home-demo__test{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:var(--text-sm);color:var(--color-text-secondary);animation:chai-rise .36s ease-out both;animation-delay:calc(.5s + var(--i) * .3s)}.home-demo__tick{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--color-success-border);color:var(--color-success);flex-shrink:0}.home-demo__tick svg{width:9px;height:9px}.home-demo__xp{margin-top:10px;padding-top:10px;border-top:1px solid var(--color-card-edge);font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-highlight);animation:chai-rise .36s 1.5s ease-out both}.home-section{padding:0 0 80px}.home-section__head{max-width:48rem;margin-bottom:32px}.home-section__title{font-size:var(--text-2xl);font-weight:var(--font-medium);letter-spacing:-.02em;line-height:1.15}.home-section__lead{margin-top:8px;font-size:var(--text-md);line-height:1.6;color:var(--color-text-secondary)}@media(min-width:640px){.home-section__title{font-size:30px}.home-section__lead{font-size:var(--text-lg)}}.home-labs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.5rem}.home-labs>*{grid-column:span 2}.home-labs>*:nth-child(n+4){grid-column:span 3}.home-external{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--color-card-edge)}.home-external__head{margin-bottom:1rem;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted)}.home-external__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.home-lab{display:flex;flex-direction:column;gap:12px;padding:20px;color:var(--color-text-primary)}.home-lab:hover{color:var(--color-text-primary)}.home-lab.is-locked{color:var(--color-text-secondary)}.home-lab__top{display:flex;align-items:center;justify-content:space-between}.home-lab__glyph{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--color-card-edge);color:var(--color-text-secondary);transition:color var(--transition-fast),border-color var(--transition-fast)}.home-lab__glyph svg{width:18px;height:18px}.home-lab:hover .home-lab__glyph{color:var(--color-text-primary);border-color:var(--color-card-edge-hover)}.home-lab__title{display:flex;flex-direction:column;gap:2px;font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-semibold);letter-spacing:-.01em;line-height:1.3}.home-lab__tagline{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-normal);color:var(--color-text-muted)}.home-lab__desc{flex:1;font-size:var(--text-base);line-height:1.6;color:var(--color-text-secondary)}.home-lab__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid var(--color-card-edge);font-size:var(--text-xs);color:var(--color-text-muted)}.home-lab__go{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-family:var(--font-display);font-weight:var(--font-semibold);color:var(--color-text-primary)}.home-lab__go svg{width:13px;height:13px;transition:transform var(--transition-fast)}.home-lab:hover .home-lab__go svg{transform:translate(2px,-2px)}.home-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem}.home-step{padding-top:16px;border-top:1px solid var(--color-card-edge)}.home-step__num{display:block;margin-bottom:12px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.home-step__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:8px}.home-step__body{font-size:var(--text-base);line-height:1.65;color:var(--color-text-secondary)}.home-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}.home-feature{padding:20px}.home-feature__icon{display:grid;place-items:center;width:34px;height:34px;margin-bottom:14px;border-radius:var(--radius-md);border:1px solid var(--color-card-edge);color:var(--color-text-secondary)}.home-feature__icon svg{width:17px;height:17px}.home-feature__title{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--font-semibold);margin-bottom:6px}.home-feature__body{font-size:var(--text-sm);line-height:1.6;color:var(--color-text-secondary)}.home-cta{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:36px 40px}.home-cta__title{font-size:var(--text-2xl);font-weight:var(--font-medium);letter-spacing:-.02em;margin-bottom:6px}.home-cta__lead{font-size:var(--text-md);color:var(--color-text-secondary)}.home-cta__actions{display:flex;flex-wrap:wrap;gap:1rem;flex-shrink:0}@media(min-width:640px){.home-cta__title{font-size:30px}}.home-footer{position:relative;padding:48px 0 40px;font-family:var(--font-display)}.home-footer:before{content:"";position:absolute;top:0;left:50%;height:1px;width:100%;max-width:1440px;transform:translate(-50%);background:var(--color-brand);opacity:.1;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 40%,#000 60%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 40%,#000 60%,transparent 100%)}.home-footer__grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:2.5rem}.home-footer__logo{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-family:var(--font-brand);font-size:var(--text-xl);font-weight:var(--font-medium);letter-spacing:-.02em}.home-footer__logo img{width:24px;height:24px}.home-footer__tagline{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:16px}.home-footer__copy{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-muted)}.home-footer__col h3{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:12px}.home-footer__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.home-footer__col a{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--color-text-secondary);transition:color var(--transition-fast)}.home-footer__col a:hover{color:var(--color-brand)}.home-footer__col a svg{width:13px;height:13px;opacity:.8}@keyframes chai-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes chai-blink{to{visibility:hidden}}@media(max-width:1024px){.home-hero__grid{flex-direction:column;align-items:stretch;gap:2.5rem}.home-hero__copy,.home-hero__visual{width:100%}.home-hero__visual{max-width:36rem}.home-labs{grid-template-columns:repeat(2,minmax(0,1fr))}.home-labs>*,.home-labs>*:nth-child(n+4){grid-column:span 1}.home-labs>*:last-child{grid-column:span 2}.home-features{grid-template-columns:repeat(2,minmax(0,1fr))}.home-footer__grid{grid-template-columns:1fr 1fr}}@media(max-width:680px){.home-container{padding:0 var(--space-lg)}.home-hero{padding:40px 0 56px}.home-hero__stats{gap:24px}.home-section{padding-bottom:56px}.home-labs,.home-features,.home-steps,.home-external__grid{grid-template-columns:1fr}.home-labs>*,.home-labs>*:nth-child(n+4),.home-labs>*:last-child{grid-column:span 1}.home-steps{gap:1.75rem}.home-cta{flex-direction:column;align-items:flex-start;padding:24px}.home-footer__grid{grid-template-columns:1fr;gap:1.75rem}}.signin-page{min-height:calc(100vh - var(--navbar-height));display:flex;align-items:center;padding:56px var(--space-xl);background:var(--color-bg-primary);color:var(--color-text-primary)}.signin-container{width:100%;max-width:1040px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:64px}.signin-heading{font-size:clamp(1.75rem,3.2vw,2.5rem);font-weight:var(--font-medium);letter-spacing:-.02em;line-height:1.15;margin-bottom:14px}.signin-description{max-width:460px;font-size:var(--text-md);line-height:1.65;color:var(--color-text-secondary);margin-bottom:28px}.signin-perks{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-direction:column;gap:10px}.signin-perks li{display:flex;align-items:flex-start;gap:10px;font-size:var(--text-base);line-height:1.5;color:var(--color-text-primary)}.signin-perk-icon{display:grid;place-items:center;flex-shrink:0;width:20px;height:20px;margin-top:1px;border-radius:50%;border:1px solid var(--color-success-border);color:var(--color-success)}.signin-perk-icon svg{width:11px;height:11px}.signin-cohort{padding:14px 16px;border:1px solid var(--color-card-edge);border-radius:var(--radius-xl);background:var(--color-card-fill)}.signin-cohort p{margin:0 0 6px;font-size:var(--text-sm);line-height:1.5;color:var(--color-text-secondary)}.signin-cohort a{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary)}.signin-cohort a:hover{color:var(--color-brand)}.signin-cohort a svg{width:14px;height:14px;transition:transform var(--transition-fast)}.signin-cohort a:hover svg{transform:translate(2px,-2px)}.signin-right{display:flex;justify-content:center}.signin-clerk-root{width:100%;max-width:420px}.signin-clerk-cardbox{box-shadow:var(--shadow-lg)!important;border:1px solid var(--color-border)}@media(max-width:1024px){.signin-container{grid-template-columns:1fr;gap:40px;max-width:560px}.signin-page{padding:40px var(--space-lg);align-items:flex-start}}.fs-scope{--text-xs: calc(.6875rem * var(--fs-scale, 1));--text-sm: calc(.8125rem * var(--fs-scale, 1));--text-base: calc(.875rem * var(--fs-scale, 1));--text-md: calc(.9375rem * var(--fs-scale, 1));--text-lg: calc(1rem * var(--fs-scale, 1));--text-xl: calc(1.125rem * var(--fs-scale, 1));--text-2xl: calc(1.25rem * var(--fs-scale, 1));font-size:calc(1rem * var(--fs-scale, 1))}.fs-scope iframe{font-size:1rem}.font-settings{--fsp-bg: var(--color-bg-secondary);--fsp-bg-subtle: var(--color-bg-tertiary);--fsp-text: var(--color-text-primary);--fsp-text-muted: var(--color-text-muted);--fsp-border: var(--color-border);--fsp-accent: var(--color-orange-primary);--fsp-shadow: var(--shadow-lg);position:relative;display:inline-flex}.font-settings__trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--fsp-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.font-settings__trigger:hover,.font-settings__trigger--active{background:var(--fsp-bg-subtle);border-color:var(--color-border-hover);color:var(--fsp-text)}.font-settings__trigger--active{border-color:var(--fsp-accent);color:var(--fsp-accent)}.font-settings__trigger-glyph{font-weight:600;font-size:14px;line-height:1}.font-settings__trigger-glyph sup{font-size:10px}.font-settings__dot{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--fsp-accent)}.font-settings__panel{position:fixed;display:block;z-index:10000;width:272px;overflow-y:auto;padding:12px 14px 10px;border:1px solid var(--fsp-border);border-radius:12px;background:var(--fsp-bg);color:var(--fsp-text);box-shadow:var(--fsp-shadow);text-align:left;font-size:12.5px;line-height:1.4;animation:fs-pop .14s ease-out}@keyframes fs-pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.font-settings__panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.font-settings__title{margin:0;font-size:12.5px;font-weight:600;color:var(--fsp-text)}.font-settings__reset{padding:2px 6px;margin-right:-6px;border:none;border-radius:5px;background:transparent;color:var(--fsp-accent);font-size:11.5px;font-weight:500;cursor:pointer}.font-settings__reset:disabled{color:var(--fsp-text-muted);cursor:default}.font-settings__reset:not(:disabled):hover{background:var(--fsp-bg-subtle)}.font-settings__presets{display:flex;gap:2px;padding:3px;border:1px solid var(--fsp-border);border-radius:8px;background:var(--color-bg-primary)}.font-settings__preset{flex:1;height:24px;border:none;border-radius:5px;background:transparent;color:var(--fsp-text-muted);font-size:11px;font-weight:600;cursor:pointer;transition:background-color .12s ease,color .12s ease}.font-settings__preset:hover{color:var(--fsp-text)}.font-settings__preset--active{background:var(--fsp-bg);color:var(--fsp-text);box-shadow:var(--shadow-sm),0 0 0 1px var(--fsp-border)}.font-settings__sections{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.font-settings__row{display:grid;grid-template-columns:82px 1fr 38px;align-items:center;gap:10px;min-height:26px}.font-settings__label{font-size:12px;font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}.font-settings__value{text-align:right;font-size:11px;font-variant-numeric:tabular-nums;color:var(--fsp-text-muted)}.font-settings__slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:16px;margin:0;background:transparent;cursor:pointer}.font-settings__slider:focus-visible{outline:none}.font-settings__slider::-webkit-slider-runnable-track{height:3px;border-radius:999px;background:linear-gradient(to right,var(--fsp-accent) var(--fill, 0%),var(--fsp-border) var(--fill, 0%))}.font-settings__slider::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;margin-top:-5px;border-radius:50%;border:2px solid var(--fsp-bg);background:var(--fsp-accent);box-shadow:0 0 0 1px var(--fsp-accent);transition:transform .12s ease}.font-settings__slider:hover::-webkit-slider-thumb,.font-settings__slider:focus-visible::-webkit-slider-thumb{transform:scale(1.15)}.font-settings__slider::-moz-range-track{height:3px;border-radius:999px;background:var(--fsp-border)}.font-settings__slider::-moz-range-progress{height:3px;border-radius:999px;background:var(--fsp-accent)}.font-settings__slider::-moz-range-thumb{width:9px;height:9px;border-radius:50%;border:2px solid var(--fsp-bg);background:var(--fsp-accent);box-shadow:0 0 0 1px var(--fsp-accent)}.font-settings__footnote{margin:10px 0 0;padding-top:8px;border-top:1px solid var(--fsp-border);color:var(--fsp-text-muted);font-size:10.5px}@media(max-width:480px){.font-settings__panel{width:min(272px,calc(100vw - 24px))}}.sidebar-rail{flex:0 0 18px;align-self:stretch;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-right:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);z-index:2}.sidebar-rail:hover{background:var(--color-orange-muted);color:var(--color-orange-primary)}.sidebar-rail__chevron{display:flex;align-items:center;justify-content:center;width:14px;height:14px;transition:transform var(--transition-base)}.sidebar-rail__chevron svg{width:100%;height:100%}.sidebar-rail--collapsed .sidebar-rail__chevron{transform:rotate(180deg)}@media(max-width:968px){.lab .sidebar-rail{display:none}}@media(max-width:768px){.sql-lab .sidebar-rail{display:none}}.sidebar__inner{width:var(--sidebar-width, 320px);height:100%;display:flex;flex-direction:column;overflow:hidden}.sql-lab{--sql-header-height: 52px;font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary)}.sql-lab code,.sql-lab pre{font-family:var(--font-mono)}.sql-lab .anim-stage{border:1px solid var(--border-color);border-radius:14px;background:var(--bg-secondary);outline:none}.sql-lab .anim-stage:focus-visible{border-color:var(--orange-primary);box-shadow:var(--focus-ring)}.sql-lab .anim-stage__canvas{min-height:300px;padding:26px 22px;overflow-x:auto;background-image:linear-gradient(var(--color-hairline) 1px,transparent 1px),linear-gradient(90deg,var(--color-hairline) 1px,transparent 1px);background-size:22px 22px}.sql-lab .anim-stage__footer{border-top:1px solid var(--border-color);padding:16px 20px 18px}.sql-lab .anim-stage__caption-slot{min-height:48px}.sql-lab .anim-stage__caption{margin:0;font-size:calc(14px * var(--fs-scale, 1));line-height:1.6;color:var(--text-secondary)}.sql-lab .anim-stage code{padding:1px 6px;border-radius:5px;border:1px solid var(--border-color);background:var(--bg-tertiary);font-size:calc(12.5px * var(--fs-scale, 1));color:var(--text-primary)}.sql-lab .anim-stage__caption code{color:var(--orange-primary)}.sql-lab .anim-stage__caption strong{font-weight:600;color:var(--text-primary)}.sql-lab .anim-stage__controls{display:flex;align-items:center;gap:14px;margin-top:16px}.sql-lab .anim-stage__play{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border:none;border-radius:50%;background:var(--color-bg-inverse);color:var(--color-text-inverse);cursor:pointer;transition:background-color .15s ease,transform .15s ease}.sql-lab .anim-stage__play:hover{background:color-mix(in oklab,var(--color-bg-inverse) 88%,var(--color-text-inverse));transform:scale(1.05)}.sql-lab .anim-stage__track{display:flex;flex:1;min-width:0;align-items:flex-start;gap:6px}.sql-lab .anim-stage__seg{flex:1;min-width:0;padding:4px 0 2px;border:none;background:none;text-align:left;cursor:pointer}.sql-lab .anim-stage__seg-bar{display:block;height:3px;border-radius:999px;background:var(--border-medium);transition:background-color .15s ease}.sql-lab .anim-stage__seg.is-past .anim-stage__seg-bar{background:var(--orange-border)}.sql-lab .anim-stage__seg.is-current .anim-stage__seg-bar{background:var(--color-text-primary)}.sql-lab .anim-stage__seg:hover .anim-stage__seg-bar{background:var(--text-tertiary)}.sql-lab .anim-stage__seg.is-past:hover .anim-stage__seg-bar,.sql-lab .anim-stage__seg.is-current:hover .anim-stage__seg-bar{background:var(--orange-hover)}.sql-lab .anim-stage__seg-label{display:block;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(11px * var(--fs-scale, 1));font-weight:500;color:var(--text-tertiary);transition:color .15s ease}.sql-lab .anim-stage__seg.is-current .anim-stage__seg-label{color:var(--text-primary)}.sql-lab .anim-stage__steppers{display:flex;flex-shrink:0;gap:4px}.sql-lab .anim-stage__stepper{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--border-color);border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.sql-lab .anim-stage__stepper:hover:not(:disabled){border-color:var(--border-medium);background:var(--bg-tertiary);color:var(--text-primary)}.sql-lab .anim-stage__stepper:disabled{opacity:.3;cursor:default}@media(max-width:768px){.sql-lab .anim-stage__canvas{padding:18px 14px}.sql-lab .anim-stage__seg-label{display:none}}@media(prefers-reduced-motion:reduce){.sql-lab .anim-stage *{animation-duration:.01ms!important;transition-duration:.01ms!important}}.sql-lab .tgrid{display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}.sql-lab .tgrid__caption{font-family:var(--font-mono);font-size:calc(11.5px * var(--fs-scale, 1));color:var(--orange-primary);white-space:nowrap}.sql-lab .tgrid__frame{display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-primary);overflow:hidden}.sql-lab .tgrid__head{display:flex;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.sql-lab .tgrid__row{display:flex;border-bottom:1px solid var(--color-hairline)}.sql-lab .tgrid__row:last-child{border-bottom:none}.sql-lab .tgrid__cell{flex-shrink:0;box-sizing:border-box;padding:6px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:calc(12px * var(--fs-scale, 1));line-height:1.5;color:var(--text-primary);border-right:1px solid var(--color-hairline)}.sql-lab .tgrid__cell:last-child{border-right:none}.sql-lab .tgrid__cell.is-num{text-align:right}.sql-lab .tgrid__cell.is-null{color:var(--tone-null);font-style:italic}.sql-lab .tgrid__cell--head{font-weight:600;font-size:calc(11px * var(--fs-scale, 1));letter-spacing:.03em;text-transform:uppercase;color:var(--text-secondary)}.sql-lab .tgrid__cell--extra{border-left:1px dashed var(--border-medium);font-style:normal}.sql-lab .tgrid__empty{padding:14px 12px;font-size:calc(12px * var(--fs-scale, 1));color:var(--text-tertiary);font-style:italic}.sql-lab .tgrid__note{font-size:calc(11px * var(--fs-scale, 1));color:var(--text-tertiary)}.sql-lab .anim-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:28px}.sql-lab .anim-notes{display:flex;flex-direction:column;gap:10px;width:250px;min-width:0}.sql-lab .anim-note{border:1px solid;border-radius:10px;padding:10px 12px}.sql-lab .anim-note__title{font-size:calc(12px * var(--fs-scale, 1));font-weight:600}.sql-lab .anim-note__body{margin-top:4px;font-size:calc(11.5px * var(--fs-scale, 1));line-height:1.55;color:var(--text-secondary)}.sql-lab .anim-note__body code{font-size:calc(11px * var(--fs-scale, 1))}.sql-lab .anim-note--focus{border-color:color-mix(in oklab,var(--tone-focus) 35%,transparent);background:color-mix(in oklab,var(--tone-focus) 7%,transparent)}.sql-lab .anim-note--focus .anim-note__title{color:var(--tone-focus)}.sql-lab .anim-note--keep{border-color:color-mix(in oklab,var(--tone-keep) 35%,transparent);background:color-mix(in oklab,var(--tone-keep) 7%,transparent)}.sql-lab .anim-note--keep .anim-note__title{color:var(--tone-keep)}.sql-lab .anim-note--drop{border-color:color-mix(in oklab,var(--tone-drop) 35%,transparent);background:color-mix(in oklab,var(--tone-drop) 7%,transparent)}.sql-lab .anim-note--drop .anim-note__title{color:var(--tone-drop)}.sql-lab .anim-note--nullish{border-color:color-mix(in oklab,var(--tone-null) 35%,transparent);background:color-mix(in oklab,var(--tone-null) 7%,transparent)}.sql-lab .anim-note--nullish .anim-note__title{color:var(--tone-null)}.sql-lab .anim-note--idle,.sql-lab .anim-note--muted{border-color:var(--border-color);background:var(--color-overlay)}.sql-lab .anim-note--idle .anim-note__title,.sql-lab .anim-note--muted .anim-note__title{color:var(--text-secondary)}.sql-lab .anim-verdict{border:1px solid var(--border-color);border-radius:10px;padding:10px 12px;background:var(--bg-primary);font-family:var(--font-mono);font-size:calc(11.5px * var(--fs-scale, 1));line-height:1.7}.sql-lab .anim-verdict__bad{color:var(--tone-drop)}.sql-lab .anim-verdict__good{color:var(--tone-keep)}@media(max-width:900px){.sql-lab .anim-notes{width:100%}}.sql-lab .anim-col{display:flex;flex-direction:column;gap:18px}.sql-lab .anim-result{display:flex;flex-direction:column;gap:8px}.sql-lab .anim-result__arrow{font-size:calc(16px * var(--fs-scale, 1));color:var(--orange-primary);line-height:1}.sql-lab .qo{display:flex;flex-direction:column;gap:4px;min-width:300px;padding:14px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-primary)}.sql-lab .qo__line{display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:6px;opacity:.4;transition:opacity .22s ease,background-color .22s ease}.sql-lab .qo__line.is-done{opacity:.75}.sql-lab .qo__line.is-active{opacity:1;background:var(--orange-subtle);box-shadow:inset 0 0 0 1px var(--orange-border)}.sql-lab .qo__line code{background:none;border:none;padding:0;font-size:calc(12px * var(--fs-scale, 1));white-space:pre}.sql-lab .qo__badge{display:grid;place-items:center;flex-shrink:0;width:20px;height:20px;border-radius:50%;background:var(--bg-tertiary);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:calc(11px * var(--fs-scale, 1));font-weight:600;color:var(--orange-primary)}.sql-lab .qo__line.is-active .qo__badge{background:var(--color-bg-inverse);border-color:var(--color-bg-inverse);color:var(--color-text-inverse)}.sql-lab .qo__verdict{margin-top:10px}@media(max-width:900px){.sql-lab .qo{min-width:0;width:100%}}.sql-lab .sidebar{position:relative;background:var(--bg-secondary);color:var(--text-primary);display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border-color)}.sql-lab .sidebar-header{position:relative;padding:16px 16px 12px;border-bottom:1px solid var(--border-color)}.sql-lab .sidebar-header h2{margin:0 0 2px;font-size:calc(14px * var(--fs-scale, 1));font-weight:600;color:var(--text-primary)}.sql-lab .sidebar-header p{margin:0;font-size:calc(11px * var(--fs-scale, 1));color:var(--text-tertiary);line-height:1.4}.sql-lab .lessons-container{flex:1;overflow-y:auto;padding:8px 0 16px}.sql-lab .chapter{margin-bottom:6px}.sql-lab .chapter-title{display:flex;align-items:center;gap:8px;padding:10px 16px 6px;margin:0;font-size:calc(11px * var(--fs-scale, 1));font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s ease}.sql-lab .chapter-title:hover{color:var(--text-primary)}.sql-lab .chapter-chevron{display:inline-block;width:10px;font-size:calc(13px * var(--fs-scale, 1));line-height:1;color:var(--text-tertiary);transition:transform .15s ease}.sql-lab .chapter-chevron.expanded{transform:rotate(90deg)}.sql-lab .lessons-list{display:flex;flex-direction:column;gap:1px;padding:0 8px;overflow:hidden;animation:expandList .2s ease-out}@keyframes expandList{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sql-lab .lesson-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;cursor:pointer;transition:background-color .15s ease}.sql-lab .lesson-item:hover{background:var(--bg-tertiary)}.sql-lab .lesson-item.active{background:var(--orange-subtle)}.sql-lab .lesson-number{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--bg-tertiary);border:1px solid var(--border-color);font-size:calc(11px * var(--fs-scale, 1));font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0;color:var(--text-secondary)}.sql-lab .lesson-item.active .lesson-number{background:var(--color-bg-inverse);border-color:var(--color-bg-inverse);color:var(--color-text-inverse)}.sql-lab .lesson-title{flex:1;min-width:0;font-size:calc(13px * var(--fs-scale, 1));line-height:1.35;color:var(--text-primary)}.sql-lab .lesson-item.active .lesson-title{font-weight:500}.sql-lab .difficulty-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin:0 8px 0 7px}.sql-lab .difficulty-dot.easy{background:var(--success)}.sql-lab .difficulty-dot.medium{background:var(--warning)}.sql-lab .difficulty-dot.hard{background:var(--error)}.sql-lab .lesson-anim-badge{margin-left:auto;flex-shrink:0;font-size:calc(8px * var(--fs-scale, 1));line-height:1;color:var(--orange-primary);opacity:.7}.sql-lab .lesson-item.active .lesson-anim-badge{opacity:1}.sql-lab .mobile-menu-button{display:none;position:fixed;bottom:16px;left:16px;z-index:1001;width:44px;height:44px;border-radius:999px;background:var(--color-bg-inverse);color:var(--color-text-inverse);border:none;cursor:pointer;align-items:center;justify-content:center;box-shadow:var(--shadow-lg)}.sql-lab .mobile-close-button{display:none;position:absolute;top:12px;right:12px;width:30px;height:30px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;align-items:center;justify-content:center;border-radius:6px}.sql-lab .mobile-close-button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sql-lab .mobile-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-scrim);z-index:998}@media screen and (max-width:768px){.sql-lab .mobile-menu-button,.sql-lab .mobile-close-button{display:flex}.sql-lab .mobile-overlay{display:block}.sql-lab .sidebar{position:fixed;top:var(--navbar-height);left:0;bottom:0;width:85%!important;max-width:320px!important;min-width:0!important;z-index:999;transform:translate(-100%);transition:transform .25s ease-in-out;box-shadow:var(--shadow-lg)}.sql-lab .sidebar.mobile-open{transform:translate(0)}}.sql-lab .sidebar.sidebar-collapsible{--sidebar-width: 300px;transition:transform .25s ease,width .2s ease,min-width .2s ease,max-width .2s ease}@media screen and (min-width:769px){.sql-lab .sidebar.sidebar-collapsible.is-collapsed{--sidebar-current-width: 0px;border-right-width:0}}.sql-lab .query-editor{display:flex;flex-direction:column;height:100%;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.sql-lab .editor-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;height:40px;flex-shrink:0;padding:0 6px 0 16px;border-bottom:1px solid var(--border-color)}.sql-lab .toolbar-left{display:flex;align-items:center;gap:12px;min-width:0}.sql-lab .toolbar-title{font-size:calc(11px * var(--fs-scale, 1));font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}.sql-lab .toolbar-right{display:flex;gap:8px}.sql-lab .run-button{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px 0 8px;border:none;border-radius:6px;background:var(--color-bg-inverse);color:var(--color-text-inverse);font-size:calc(12px * var(--fs-scale, 1));font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background-color .15s ease,transform .15s ease}.sql-lab .run-button svg{width:12px;height:12px}.sql-lab .run-button:hover{background:color-mix(in oklab,var(--color-bg-inverse) 88%,var(--color-text-inverse))}.sql-lab .run-button:active{transform:translateY(1px)}.sql-lab .keyboard-hint{margin-left:2px;padding:1px 5px;border-radius:4px;background:var(--color-overlay-strong);font-family:var(--font-sans);font-size:calc(10.5px * var(--fs-scale, 1));font-weight:500;color:inherit;opacity:.8}.sql-lab .editor-wrapper{flex:1;min-height:0}@media screen and (max-width:768px){.sql-lab .editor-toolbar{padding:0 6px 0 12px}.sql-lab .run-button{height:32px}.sql-lab .keyboard-hint{display:none}}.sql-lab .schema-viewer{height:100%;display:flex;flex-direction:column;background:var(--bg-secondary);overflow:hidden}.sql-lab .schema-header{flex-shrink:0;padding:14px 20px;border-bottom:1px solid var(--border-color)}.sql-lab .schema-header h3{margin:0 0 2px;color:var(--text-primary);font-size:calc(14px * var(--fs-scale, 1));font-weight:600}.sql-lab .schema-subtitle{margin:0;color:var(--text-tertiary);font-size:calc(12px * var(--fs-scale, 1))}.sql-lab .schema-content{flex:1;overflow-y:auto;padding:16px}.sql-lab .tables-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.sql-lab .table-card{border:1px solid var(--border-color);border-radius:10px;background:var(--bg-primary);overflow:hidden}.sql-lab .table-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;transition:background-color .15s ease}.sql-lab .table-header:hover{background:var(--bg-tertiary)}.sql-lab .table-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.sql-lab .table-name{margin:0;font-family:var(--font-mono);font-size:calc(13px * var(--fs-scale, 1));font-weight:600;color:var(--text-primary)}.sql-lab .table-description{margin:0;font-size:calc(12px * var(--fs-scale, 1));color:var(--text-secondary)}.sql-lab .row-count{font-size:calc(11px * var(--fs-scale, 1));color:var(--text-tertiary);font-variant-numeric:tabular-nums}.sql-lab .expand-icon{color:var(--text-tertiary);font-size:calc(10px * var(--fs-scale, 1));transition:transform .15s ease}.sql-lab .expand-icon.expanded{transform:rotate(180deg)}.sql-lab .table-details{border-top:1px solid var(--border-color);padding:14px}.sql-lab .columns-section h5{margin:0 0 8px;font-size:calc(10.5px * var(--fs-scale, 1));font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}.sql-lab .columns-table{width:100%;border-collapse:separate;border-spacing:0;font-size:calc(12.5px * var(--fs-scale, 1));border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.sql-lab .columns-table th{padding:7px 12px;text-align:left;background:var(--bg-tertiary);font-size:calc(10.5px * var(--fs-scale, 1));font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary)}.sql-lab .columns-table td{padding:7px 12px;border-top:1px solid var(--color-hairline);vertical-align:top}.sql-lab .column-name{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-weight:600;color:var(--text-primary)}.sql-lab .badge{display:inline-flex;align-items:center;height:16px;padding:0 5px;border-radius:4px;font-family:var(--font-sans);font-size:calc(9.5px * var(--fs-scale, 1));font-weight:700;letter-spacing:.04em}.sql-lab .badge.primary{background:var(--color-warning-bg);color:var(--warning);border:1px solid var(--color-warning-border)}.sql-lab .badge.foreign{background:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info-border)}.sql-lab .column-type{color:var(--text-secondary);font-family:var(--font-mono);font-size:calc(11.5px * var(--fs-scale, 1))}.sql-lab .column-description{color:var(--text-secondary);font-size:calc(12px * var(--fs-scale, 1))}.sql-lab .sample-query-section{margin-top:12px;display:flex;justify-content:flex-end}.sql-lab .sample-query-button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--border-color);border-radius:7px;background:var(--bg-secondary);color:var(--text-primary);font-size:calc(12px * var(--fs-scale, 1));font-weight:500;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.sql-lab .sample-query-button:hover{border-color:var(--orange-border);background:var(--orange-subtle);color:var(--orange-primary)}.sql-lab .relationships-section{margin-top:20px;padding:14px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-primary)}.sql-lab .relationships-section h4{margin:0 0 10px;font-size:calc(10.5px * var(--fs-scale, 1));font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}.sql-lab .relationships-list{display:flex;flex-direction:column;gap:8px}.sql-lab .relationship-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-left:3px solid var(--orange-primary);border-radius:6px;background:var(--bg-secondary);font-size:calc(12.5px * var(--fs-scale, 1))}.sql-lab .rel-from,.sql-lab .rel-to{padding:1px 7px;border-radius:4px;border:1px solid var(--border-color);background:var(--bg-tertiary);font-family:var(--font-mono);font-size:calc(11.5px * var(--fs-scale, 1));font-weight:600;color:var(--text-primary)}.sql-lab .rel-arrow{color:var(--orange-primary);font-weight:600}.sql-lab .rel-type{color:var(--text-tertiary);font-style:italic;font-size:calc(11.5px * var(--fs-scale, 1))}.sql-lab .rel-description{width:100%;margin:2px 0 0;color:var(--text-secondary);font-size:calc(12px * var(--fs-scale, 1))}.sql-lab .schema-viewer .empty-state{display:flex;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-secondary);font-size:calc(13px * var(--fs-scale, 1));text-align:center}@media screen and (max-width:768px){.sql-lab .schema-viewer{overflow:visible;height:auto}.sql-lab .schema-content{padding:12px;overflow-y:visible}.sql-lab .table-header{padding:12px}.sql-lab .columns-table{display:block;overflow-x:auto}.sql-lab .columns-table thead,.sql-lab .columns-table tbody,.sql-lab .columns-table tr{display:table;width:100%;table-layout:fixed}.sql-lab .sample-query-button{width:100%;justify-content:center;min-height:40px}}.sql-lab .results-panel{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.sql-lab .results-header{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;border-bottom:1px solid var(--border-color)}.sql-lab .tabs{display:flex;width:100%;padding:0 8px}.sql-lab .tab{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 12px;background:transparent;border:none;font-size:calc(12.5px * var(--fs-scale, 1));font-weight:500;color:var(--text-secondary);cursor:pointer;transition:color .15s ease}.sql-lab .tab:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:transparent;transition:background-color .15s ease}.sql-lab .tab:hover,.sql-lab .tab.active{color:var(--text-primary)}.sql-lab .tab.active:after{background:var(--color-text-primary)}.sql-lab .tab-badge{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);font-size:calc(11px * var(--fs-scale, 1));font-weight:600;font-variant-numeric:tabular-nums}.sql-lab .tab.active .tab-badge{background:var(--orange-subtle);border-color:var(--orange-border);color:var(--orange-primary)}.sql-lab .validation-banner{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:10px 16px;font-size:calc(13px * var(--fs-scale, 1));font-weight:500;border-bottom:1px solid}.sql-lab .validation-banner.success{background:var(--color-success-bg);color:var(--success);border-color:var(--color-success-border)}.sql-lab .validation-banner.incorrect,.sql-lab .validation-banner.error{background:var(--color-error-bg);color:var(--error);border-color:var(--color-error-border)}.sql-lab .validation-icon{font-size:calc(15px * var(--fs-scale, 1));font-weight:700;line-height:1}.sql-lab .validation-message{flex:1}.sql-lab .results-content{flex:1;overflow:auto;min-height:0}.sql-lab .empty-state{display:flex;align-items:center;justify-content:center;height:100%;min-height:120px;color:var(--text-tertiary);font-size:calc(13px * var(--fs-scale, 1))}.sql-lab .error-message{margin:16px;padding:12px 16px;border:1px solid var(--color-error-border);border-left:3px solid var(--error);border-radius:8px;background:var(--color-error-bg);color:var(--error);font-family:var(--font-mono);font-size:calc(12.5px * var(--fs-scale, 1));line-height:1.6;white-space:pre-wrap;word-break:break-word}.sql-lab .table-wrapper{overflow:auto;padding:12px 16px 16px}.sql-lab .results-table{width:100%;border-collapse:separate;border-spacing:0;font-size:calc(12.5px * var(--fs-scale, 1));font-variant-numeric:tabular-nums;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.sql-lab .results-table thead{position:sticky;top:0;z-index:1}.sql-lab .results-table th{padding:8px 14px;text-align:left;background:var(--bg-tertiary);font-size:calc(11px * var(--fs-scale, 1));font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border-color);white-space:nowrap}.sql-lab .results-table td{padding:8px 14px;border-bottom:1px solid var(--color-hairline);color:var(--text-primary);font-family:var(--font-mono);font-size:calc(12px * var(--fs-scale, 1))}.sql-lab .results-table tbody tr:nth-child(2n) td{background:var(--color-overlay)}.sql-lab .results-table tbody tr:hover td{background:var(--orange-subtle)}.sql-lab .results-table tbody tr:last-child td{border-bottom:none}.sql-lab .null-value{color:var(--tone-null);font-style:italic}.sql-lab .schema-tab-content{flex:1;min-height:0;overflow:hidden}@media screen and (max-width:768px){.sql-lab .results-panel{height:auto;overflow:visible}.sql-lab .results-content{overflow-y:visible;max-height:none;height:auto}.sql-lab .tab{padding:0 10px;min-height:44px}.sql-lab .table-wrapper{padding:12px;-webkit-overflow-scrolling:touch}.sql-lab .results-table td{white-space:nowrap}.sql-lab .results-table th:first-child,.sql-lab .results-table td:first-child{position:sticky;left:0;background:var(--bg-secondary);z-index:2}.sql-lab .results-table thead th:first-child{background:var(--bg-tertiary);z-index:3}}.sql-lab .solution-panel{border:1px solid var(--border-color);border-radius:12px;background:var(--bg-secondary);overflow:hidden}.sql-lab .solution-panel.is-open{border-color:var(--orange-border)}.sql-lab .solution-panel__toggle{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;text-align:left;transition:color .15s ease,background-color .15s ease}.sql-lab .solution-panel__toggle:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sql-lab .solution-panel__chevron{display:inline-block;font-size:calc(15px * var(--fs-scale, 1));line-height:1;transition:transform .18s ease}.sql-lab .solution-panel__chevron.is-open{transform:rotate(90deg)}.sql-lab .solution-panel__label{font-size:calc(13px * var(--fs-scale, 1));font-weight:600}.sql-lab .solution-panel__hint{margin-left:auto;font-size:calc(11.5px * var(--fs-scale, 1));color:var(--text-tertiary)}.sql-lab .solution-panel__body{border-top:1px solid var(--border-color);padding:14px}.sql-lab .solution-panel__code{margin:0;padding:12px 14px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:calc(12.5px * var(--fs-scale, 1));line-height:1.65;white-space:pre-wrap;word-break:break-word;overflow-x:auto}.sql-lab .solution-panel__actions{display:flex;gap:8px;margin-top:12px}.sql-lab .solution-panel__action{height:30px;padding:0 13px;border:1px solid var(--border-color);border-radius:7px;background:transparent;font-size:calc(12px * var(--fs-scale, 1));font-weight:500;color:var(--text-secondary);cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.sql-lab .solution-panel__action:hover{border-color:var(--border-medium);background:var(--bg-tertiary);color:var(--text-primary)}.sql-lab .solution-panel__action--primary{border-color:var(--orange-border);background:var(--orange-subtle);color:var(--orange-primary)}.sql-lab .solution-panel__action--primary:hover{border-color:var(--color-bg-inverse);background:var(--color-bg-inverse);color:var(--color-text-inverse)}.sql-lab .lesson-flow{flex:1;min-width:0;height:100%;overflow:hidden;background:var(--bg-primary)}.sql-lab .lesson-flow__scroll{height:100%;overflow-y:auto;padding:36px 40px 96px}.sql-lab .lesson-flow--empty{display:grid;place-items:center;color:var(--text-tertiary);font-size:calc(14px * var(--fs-scale, 1))}.sql-lab .lesson-flow__header{max-width:760px;margin-bottom:36px}.sql-lab .lesson-flow__crumbs{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:calc(11.5px * var(--fs-scale, 1));letter-spacing:.02em;color:var(--text-tertiary)}.sql-lab .lesson-flow__dot{color:var(--border-medium)}.sql-lab .lesson-flow__title{margin:12px 0 0;font-size:calc(30px * var(--fs-scale, 1));font-weight:600;letter-spacing:-.025em;line-height:1.15;color:var(--text-primary)}.sql-lab .lesson-flow__tagline{margin:12px 0 0;font-size:calc(15px * var(--fs-scale, 1));line-height:1.65;color:var(--text-secondary)}.sql-lab .lesson-flow__section{max-width:1100px;margin-bottom:36px}.sql-lab .lesson-flow__section--flush{margin-bottom:12px}.sql-lab .lesson-flow__section--flush+.lesson-flow__section:not(.lesson-flow__section--flush){margin-top:36px}.sql-lab .lesson-flow__section-head{margin-bottom:14px}.sql-lab .lesson-flow__section-head h2{margin:0;font-size:calc(11.5px * var(--fs-scale, 1));font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--orange-primary)}.sql-lab .lesson-flow__section-head p{margin:4px 0 0;font-size:calc(13px * var(--fs-scale, 1));color:var(--text-tertiary)}.sql-lab .lesson-flow__context{padding:14px 18px;border-left:3px solid var(--orange-border);border-radius:0 10px 10px 0;background:var(--bg-secondary);font-size:calc(14px * var(--fs-scale, 1));line-height:1.7;color:var(--text-secondary)}.sql-lab .lesson-flow__task{margin-top:12px;padding:14px 18px;border-left:3px solid var(--orange-primary);border-radius:0 10px 10px 0;background:var(--orange-subtle);font-size:calc(14.5px * var(--fs-scale, 1));line-height:1.7;color:var(--text-primary)}.sql-lab .lesson-flow__task strong{color:var(--orange-primary);font-weight:600}.sql-lab .lesson-flow__hint-row{margin-top:12px}.sql-lab .lesson-flow__hint-toggle,.sql-lab .lesson-flow__schema-toggle{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 14px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);font-size:calc(12.5px * var(--fs-scale, 1));font-weight:500;color:var(--text-secondary);cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.sql-lab .lesson-flow__hint-toggle:hover,.sql-lab .lesson-flow__schema-toggle:hover{border-color:var(--border-medium);background:var(--bg-tertiary);color:var(--text-primary)}.sql-lab .lesson-flow__hint{margin-top:10px;padding:12px 16px;border:1px dashed var(--orange-border);border-radius:8px;font-size:calc(13px * var(--fs-scale, 1));line-height:1.65;color:var(--text-secondary)}.sql-lab .lesson-flow__editor{height:280px}.sql-lab .lesson-flow__results{min-height:240px;max-height:460px;display:flex;flex-direction:column}.sql-lab .lesson-flow__chevron{display:inline-block;transition:transform .18s ease;font-size:calc(15px * var(--fs-scale, 1));line-height:1}.sql-lab .lesson-flow__chevron.is-open{transform:rotate(90deg)}.sql-lab .lesson-flow__schema{margin-top:14px;height:420px;border:1px solid var(--border-color);border-radius:12px;overflow:hidden}@media screen and (max-width:768px){.sql-lab .lesson-flow__scroll{padding:20px 16px 96px}.sql-lab .lesson-flow__title{font-size:calc(24px * var(--fs-scale, 1))}}.sql-lab .lesson-flow__context code,.sql-lab .lesson-flow__task code,.sql-lab .lesson-flow__hint code{padding:1px 6px;border-radius:5px;border:1px solid var(--border-color);background:var(--bg-tertiary);font-size:.92em;color:var(--text-primary)}.sql-lab .split-content-area{flex:1;display:flex;min-width:0;height:100%;overflow:hidden;background:var(--bg-primary)}.sql-lab .left-panel{display:flex;flex-direction:column;height:100%;overflow:hidden;border-right:1px solid var(--border-color)}.sql-lab .right-panel{display:flex;flex-direction:column;flex:1;min-width:200px;height:100%;overflow:hidden}.sql-lab .problem-section{display:flex;flex-direction:column;overflow:hidden;background:var(--bg-secondary)}.sql-lab .problem-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;flex-shrink:0;padding:14px 20px;border-bottom:1px solid var(--border-color)}.sql-lab .problem-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;flex:1 1 240px;min-width:0}.sql-lab .problem-title-row h2{margin:0;font-size:calc(18px * var(--fs-scale, 1));font-weight:600;letter-spacing:-.01em;color:var(--text-primary)}.sql-lab .problem-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.sql-lab .action-button{display:inline-flex;align-items:center;height:30px;padding:0 12px;border:1px solid var(--orange-border);border-radius:7px;background:var(--orange-subtle);color:var(--orange-primary);font-size:calc(12px * var(--fs-scale, 1));font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.sql-lab .action-button:hover:not(:disabled){background:var(--color-bg-inverse);border-color:var(--color-bg-inverse);color:var(--color-text-inverse)}.sql-lab .action-button.hint-button-small{background:transparent;color:var(--text-secondary);border-color:var(--border-color);font-weight:500}.sql-lab .action-button.hint-button-small:hover{background:var(--bg-tertiary);border-color:var(--border-medium);color:var(--text-primary)}.sql-lab .action-button.loaded{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--success);cursor:default}.sql-lab .action-button:disabled{cursor:not-allowed}.sql-lab .problem-content{flex:1;overflow-y:auto;padding:20px}.sql-lab .problem-description{margin:0 0 16px;color:var(--text-secondary);font-size:calc(14px * var(--fs-scale, 1));line-height:1.65}.sql-lab .problem-task{margin:16px 0;padding:12px 16px;border-radius:8px;border-left:3px solid var(--orange-primary);background:var(--bg-tertiary);color:var(--text-primary);font-size:calc(14px * var(--fs-scale, 1));line-height:1.65}.sql-lab .lesson-context{margin:16px 0;padding:12px 16px;border-radius:8px;border-left:3px solid var(--orange-border);background:var(--bg-tertiary);color:var(--text-secondary);font-size:calc(13px * var(--fs-scale, 1));line-height:1.6}.sql-lab .hint-box{margin:16px 0;padding:12px 16px;border:1px dashed var(--orange-border);border-radius:8px;color:var(--text-secondary);font-size:calc(13px * var(--fs-scale, 1));line-height:1.6}.sql-lab .difficulty-badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;border:1px solid transparent;font-size:calc(10.5px * var(--fs-scale, 1));font-weight:600;letter-spacing:.05em;text-transform:uppercase}.sql-lab .difficulty-badge.easy{background:var(--color-success-bg);color:var(--success);border-color:var(--color-success-border)}.sql-lab .difficulty-badge.medium{background:var(--color-warning-bg);color:var(--warning);border-color:var(--color-warning-border)}.sql-lab .difficulty-badge.hard{background:var(--color-error-bg);color:var(--error);border-color:var(--color-error-border)}.sql-lab .challenge-problem{margin:16px 0;padding:14px 16px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);overflow-x:auto}.sql-lab .challenge-problem pre{margin:0;font-size:calc(12.5px * var(--fs-scale, 1));line-height:1.6;color:var(--text-primary);white-space:pre}.sql-lab .challenge-example{margin:16px 0;padding:12px 16px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary)}.sql-lab .challenge-example summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-primary);font-weight:500;font-size:calc(13px * var(--fs-scale, 1))}.sql-lab .challenge-example pre{margin-top:12px;font-size:calc(12.5px * var(--fs-scale, 1));line-height:1.6;color:var(--text-primary);overflow-x:auto}.sql-lab .schema-section{display:flex;flex-direction:column;overflow:hidden;background:var(--bg-secondary)}.sql-lab .editor-section,.sql-lab .results-section{display:flex;flex-direction:column;overflow:hidden;padding:12px}.sql-lab .editor-section{padding-bottom:0}.sql-lab .results-section{padding-top:0}.sql-lab .resize-handle-horizontal{width:6px;flex-shrink:0;cursor:ew-resize;position:relative;display:flex;align-items:center;justify-content:center;background:transparent;transition:background .15s ease;z-index:10;-webkit-user-select:none;user-select:none}.sql-lab .resize-handle-vertical{height:12px;flex-shrink:0;cursor:ns-resize;position:relative;display:flex;align-items:center;justify-content:center;background:transparent;transition:background .15s ease;z-index:10;-webkit-user-select:none;user-select:none}.sql-lab .resize-handle-horizontal:hover,.sql-lab .resize-handle-horizontal.dragging,.sql-lab .resize-handle-vertical:hover,.sql-lab .resize-handle-vertical.dragging{background:var(--orange-subtle)}.sql-lab .resize-handle-bar-horizontal{width:3px;height:36px;border-radius:2px;background:var(--border-medium);transition:background .15s ease}.sql-lab .resize-handle-bar-vertical{width:36px;height:3px;border-radius:2px;background:var(--border-medium);transition:background .15s ease}.sql-lab .resize-handle-horizontal:hover .resize-handle-bar-horizontal,.sql-lab .resize-handle-horizontal.dragging .resize-handle-bar-horizontal,.sql-lab .resize-handle-vertical:hover .resize-handle-bar-vertical,.sql-lab .resize-handle-vertical.dragging .resize-handle-bar-vertical{background:var(--color-text-primary)}@media screen and (max-width:768px){.sql-lab .split-content-area{flex-direction:column;height:auto;overflow:visible;padding-bottom:80px}.sql-lab .left-panel,.sql-lab .right-panel{width:100%!important;height:auto!important;border-right:none;display:block;overflow:visible}.sql-lab .resize-handle-horizontal{display:none}.sql-lab .problem-section,.sql-lab .schema-section{height:auto!important;max-height:none!important;overflow:visible}.sql-lab .editor-section{height:380px!important;min-height:300px}.sql-lab .results-section{height:auto!important;min-height:250px}.sql-lab .problem-header{padding:12px 16px;flex-direction:column;gap:10px;align-items:flex-start}.sql-lab .problem-title-row{flex-wrap:wrap;width:100%}.sql-lab .problem-title-row h2{font-size:calc(17px * var(--fs-scale, 1))}.sql-lab .problem-actions{width:100%}.sql-lab .problem-content{padding:16px;overflow-y:visible}.sql-lab .resize-handle-vertical{height:14px;touch-action:none}}.sql-lab .loading-screen,.sql-lab .error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:320px;gap:16px;background:var(--bg-primary);color:var(--text-primary);text-align:center;padding:32px}.sql-lab .loading-screen p{margin:0;font-size:calc(14px * var(--fs-scale, 1));color:var(--text-secondary)}.sql-lab .loader{width:32px;height:32px;border:2.5px solid var(--border-color);border-top-color:var(--orange-primary);border-radius:50%;animation:spin .8s linear infinite}.sql-lab .error-screen h2{color:var(--error);font-size:calc(18px * var(--fs-scale, 1))}.sql-lab .error-screen p{color:var(--text-secondary);font-size:calc(14px * var(--fs-scale, 1))}.sql-lab .sql-header{flex-shrink:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;height:var(--sql-header-height);padding:0 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.sql-lab .sql-header__brand{display:flex;align-items:baseline;gap:12px;min-width:0}.sql-lab .sql-header__title{margin:0;font-size:calc(15px * var(--fs-scale, 1));font-weight:600;letter-spacing:-.01em;color:var(--text-primary);white-space:nowrap}.sql-lab .sql-accent{color:var(--orange-primary)}.sql-lab .sql-header__subtitle{margin:0;font-size:calc(13px * var(--fs-scale, 1));color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sql-lab .sql-header__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.sql-lab .mode-switcher{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-primary)}.sql-lab .mode-button{height:28px;padding:0 14px;border:none;border-radius:7px;background:transparent;color:var(--text-secondary);font-size:calc(13px * var(--fs-scale, 1));font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.sql-lab .mode-button:hover{color:var(--text-primary)}.sql-lab .mode-button.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);height:28px;line-height:1}.sql-lab .mode-button.do-not-click{color:var(--text-tertiary);font-style:italic}.sql-lab .mode-button.do-not-click:hover{color:var(--orange-primary)}.sql-lab .reset-button{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--border-color);border-radius:8px;background:transparent;color:var(--text-secondary);font-size:calc(12.5px * var(--fs-scale, 1));font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.sql-lab .reset-button svg{width:14px;height:14px}.sql-lab .reset-button:hover{background:var(--bg-tertiary);border-color:var(--border-medium);color:var(--text-primary)}@media screen and (max-width:768px){.sql-lab .sql-header{grid-template-columns:1fr auto;grid-template-rows:auto auto;height:auto;padding:10px 12px 10px 56px;row-gap:8px}.sql-lab .sql-header__brand{grid-column:1;grid-row:1}.sql-lab .sql-header__subtitle{display:none}.sql-lab .sql-header__actions{grid-column:2;grid-row:1}.sql-lab .mode-switcher{grid-column:1 / -1;grid-row:2;width:100%}.sql-lab .mode-button{flex:1;padding:0 8px;font-size:calc(12px * var(--fs-scale, 1));min-height:36px}.sql-lab .reset-button span{display:none}}.sql-lab{width:100%;height:calc(100vh - var(--navbar-height));display:flex;flex-direction:column;overflow:hidden;position:relative}.sql-lab .app{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;position:relative;background:var(--bg-primary)}.sql-lab .main-layout{display:flex;flex:1;min-height:0;width:100%;overflow:hidden}.sql-lab .sidebar{width:var(--sidebar-current-width, 300px);min-width:var(--sidebar-current-width, 300px);max-width:var(--sidebar-current-width, 300px);flex-shrink:0;height:100%}@media screen and (max-width:768px){.sql-lab{height:auto;min-height:calc(100vh - var(--navbar-height));overflow:visible}.sql-lab .app,.sql-lab .main-layout{height:auto;overflow:visible}}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAn4ABMAAAAAEwQAAAmOAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjQbgnQcLj9IVkFSgQEGYD9TVEFUgQIAgQovahEICok0h0ULIAAwhzoBNgIkAzwEIAWHJgeBDgwHG6QQUdRKTmoBFD8K42bniObKrG3LZFcMWZzFmrjTFhQ6TVTqPJcInrfrvzq3b2PGn1wwMiNYGTy9ViREYARlL1zAGcPdPqBt3gNWrfKthv4xnM+b9caw+wmjgEUVRjHXhS6jgCK6zf5HiWQacJpGdAgdrbV6g/Rf1BfxRqZVQnrxRVWSJb6RLFnyu0elilmjeoSQCKnxsmwLaddUMjnksriSYuuPl06EAl7KfAiWQjCUETz0zNZ3EII94CDQtzkMfZ/9IkkY8tZRZTDky5ZVwBAM+GYpdd4ZVAWYImnLkiTg48l79gGx3D+VBtLeyg8u7bJAd4uo0pFuQBFysE9C95l0W4Fkiao6GfrDbu77lVU7wk9cV3uqOsXmQiMkhVKl1ugjzUAJBSIkkVWHijkpkVSyUFsgVBuJMA0N+ZnXtyUv5yMigGdfQRmwL1AAjQ3YXG6iIFNSUdPQo8+AISPGAltBMDQRAtyf4ZspLlZkpyOVoMZPvFGWzvk8p5SUC/NWPMj6T2/Yas2EdlON5GkfdkeFwVGjta825H89NIenlLWAPAp5h1KDtRhCaAQWMsFKtEvOKpIhgLHlXPARokkgEGEOAkqxJRQpKYq4ezahIiLHP6hZpqMbV0pUF2vdvEimLEQ/iIUYLgYWs0VXGVlLTOPdaPmFfCC/XrtzqVo1ez7vz6+Kd2+7o11ZJ+4MreLbB5BKVGxobAq4jZYalZ5aX2CKJiwUuc9GNJyi4M8bGyKcdjSRrG4JohdF8buJfmQefbYYREnMFsOoiNliFDVxmRgL0XUmUMLqzW0A4gCQAhWGYCQpFNukwXhIkPMsbRI19ewtw8Cp2Wj/Ro5cM2OTAbJAvZ/L4opBXb9+UHscYuOKM/W8isgwN26Exexjizmfnlp9dE3hOSqdZ/F5QqbckIlPb+oKfXxd6hftJ7Sm/uyPYpONza84CRlMNk/uhOrLpyf53982++zRkXNu3g3VF8qFbx1+7fbHZ9DrB3VXWNSmhnT2vrwS1+1Z+kHGBaZIhnnvuLBTNDeA340D1DWu5/jEa9pVfl6+Jij+yo3EELNixXCLjr173Q5eDP7Y7/L4iQFHbjpaJLFoP4cCsYP6sAPL7gMHNg53yYjqxqTDrYqLDl5DzW/eTLjYxCvucprjI3yl2ykKowKUC2Ox2FJLFo6Fa1HBWLC2jMCIIBEmklkYhmkpmBhTm/LCvJAH5oGcMKcgFEP1xUdho8ANPa6RFD99/PN60fjj9eXy2Eex4B5MpmRapXidzFk1p4uLk3+hn6jAP9ovJcXPPwk8o/0ltizbdbnTprvx4PSxT0VZ3Xc772aN7RflgbXRYwc3hLNO+k878nxGwfuVM8m8Gs7WEoVGWLHwSpx4vNSHBCMNqJ4m15Kp/TfHHVkQd++eY7PGN4W5byTs+6Ft8Ozvb/D60btv37de8ER0mS3P/0sLW84qGjEVkwztPzz06eGUWwKLwPb0D/WFd3vltl2aP276KpM0JNz6AfnAnZ5ADlF2zVyZ2OkxHSMxWPMnSZLbbDR3F1UjPVqp4d68da13F1YZujdWw7271iecO2l9+/4p47Oztjck355/75wFOI+VdGDqbNGs+ISgxg3iB2jb2r+b0CWsNLHIM4sdv8SDSFBP/Oromz6FNCWw2iMTxV0R8QLyBTkpe0j5+pSSJOOTB5Mck/gh3IopuNQnhKj02t3FL80gGbEh89SZcwTxcYt5cZT/nMnB3uXfPy8BSpVMBuRx+ZhACGzDBmwHsJRAjhotOnzuj2wDz3ug2wOUAY2NgZln9/TK/enG/oE4rO1wxvGUFMAxsZ0qNjRC7hl9d17e7imbgDt6uJXhUobDg7v3RX/yRCKxgMhfyiKcZfbpk0wmCcdQlIAOHeakXLvCNt++WfKiozNqSZxxJotn+c0a7DdPsx7DPYgKIDxwwYUZDg9aJbxocTjcwovr9WAsVV32mQoiiIOCHc60Oltst9qCQYuCqN1yHo0Kj60OgI2OqmiuBUWrNA0NDhYCDcdpmMrs1fZZ0xdTzMr1HdPtIHstYhqaPDDA5YxUDx7J4fJiisBSDI/L6G/bn34GNy8Q2g044ZTulAdFLb0tI6NNxfj3DzLjWiNGxje1pz7aXOcNV68lDPEd2SXl6VfBuwmHzdf1gxFy1HvA7pD8I2BnnmyGw852Cg5XbgIdEEGE5UCzen5jTlG6JCU5iajlxVcsXvbcS0SAcg1dcesWJLVK8+hYHOYQ+Pjy+EyVGXP0aPTFagrV9E03hCQvYx+g47KGq+1GsLj8uBIyihNw33YUe8PNC4BOJ3Lm1AglLV3nCuvUdIP+v15tVGbWIwgxLVpPkfpthCGpTKG+oA/DQfsKKvxhScqaN6FuElAUtTKv2UYgOmQegsN/n7njHUju8wM4VTcm+Q8xfX9SFwjTzdVqu95UOWSIGOabH8OGBEba//8Yxl3GcPdP/dMBOoSX/0z5SZmBoLbaPs+9asaMpb36yknKaw6FqWZa6A5vDa02mhkOba1q6KtLV208xrkwmW5C4VD6n2fvRjADy2qDYYnNy+H10Fq0LMbNzS863gkO7iQ8eC48/Ny5m59tOcEso3u7Qg3yrqDL6eKXwJAuWnhylfbWrRObe66rzX59+XDtzusnL66dI/86ArmtLlzED860Ef3bFPV78OX/zFTA11fcBn2Vntb7qiGBSgLBHyuv/uEaqqoTgSpOyjlzh86me1Vriv7i9rLPLvtghWmSnblRbAsBJL/4dScSQTBxOivHMO5QvBBY0iheJvfwWLxLOGzYKZyM4zVc2Cll46zEpeUV4MqGEWZj22SdOxhGAjgs9AEnfT+RoiMfcDb0GS5NncKVxju4Nt/mRk13O9Gz3FLct5oCD6wkwUNrCfHIUg6SMf8LwQGyVaBUqpLPW5BaMpRshEpl8nS1qw5dgnzlik8QBXmdy5UrIH74heTKZKMSilQso4hsRiGraQZRzxpNGqlEJMsXuAU7GlcR8mWSykUpVkWGyIf0a8v4qEQp5CtGsMiZa+4ESYQy+WilCiguHzxMXO54ogShooTV2bj2z1zL6DYSoImoQ8lFUWxMLBNQQgLkV2tHYgUoIbkuREz+fJHKxxWBcnvu3KQppFCxLkguB1NyVSp/TknRvNwYlCdbblWu3ze6owHdWluhE5tgQ6ej2SV65CijijoaRfSiH4Nqz1OpfEW+WeI/oU0ly60zkV9YzOQSYtZVEGYmrysTZAJkY4qZtIBD9/LYTIK7Nww3vMiYBwA=) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-cyrillic-ext-wght-normal-CO5hGrJv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-cyrillic-wght-normal-EAA9jha_.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-vietnamese-wght-normal-k7S-YeeD.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-latin-ext-wght-normal-BsZE-iaG.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/montserrat-latin-wght-normal-l_AIctKy.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-ext-wght-normal-DOFToQv1.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-wght-normal-DayYxulF.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-math-wght-normal-Bl4ZGkZl.woff2) format("woff2-variations");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-symbols-wght-normal-DxQzqQfC.woff2) format("woff2-variations");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-vietnamese-wght-normal-BBxOatbv.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-ext-wght-normal-QAhDxQuo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-wght-normal-Dun_Rd-l.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=light]{color-scheme:light;--color-bg-primary: oklch(1 0 0);--color-bg-secondary: oklch(1 0 0);--color-bg-tertiary: oklch(.97 0 0);--color-bg-hover: oklch(.94 0 0);--color-bg-inverse: oklch(.205 0 0);--color-text-inverse: oklch(.985 0 0);--color-text-primary: oklch(.145 0 0);--color-text-secondary: oklch(.44 0 0);--color-text-muted: oklch(.556 0 0);--color-border: oklch(.922 0 0);--color-border-hover: oklch(.86 0 0);--color-hairline: oklch(.95 0 0);--color-overlay: rgb(0 0 0 / .04);--color-overlay-strong: rgb(0 0 0 / .08);--color-scrim: rgb(0 0 0 / .45);--color-card-edge: rgb(120 53 15 / .15);--color-card-edge-hover: rgb(120 53 15 / .25);--color-card-fill: rgb(255 255 255 / .7);--color-highlight: oklch(.476 .114 61.907);--color-highlight-soft: rgb(120 53 15 / .1);--color-brand: oklch(66.6% .179 58.318);--color-success: oklch(.52 .15 150);--color-success-bg: rgb(22 163 74 / .08);--color-success-border: rgb(22 163 74 / .3);--color-error: oklch(.55 .21 27);--color-error-bg: rgb(220 38 38 / .07);--color-error-border: rgb(220 38 38 / .3);--color-warning: oklch(.55 .12 75);--color-warning-bg: rgb(161 98 7 / .08);--color-warning-border: rgb(161 98 7 / .3);--color-info: oklch(.5 .18 265);--color-info-bg: rgb(29 78 216 / .07);--color-info-border: rgb(29 78 216 / .3);--tone-keep: oklch(.52 .15 150);--tone-drop: oklch(.55 .21 27);--tone-null: oklch(.5 .22 295);--tone-focus: oklch(.5 .18 265);--tone-ink: oklch(.145 0 0);--tone-g0: #c2410c;--tone-g1: #0369a1;--tone-g2: #7e22ce;--tone-g3: #a16207;--tone-g4: #047857;--tone-g5: #be123c;--shadow-sm: 0 1px 2px rgb(0 0 0 / .04);--shadow-md: 0 4px 16px -6px rgb(0 0 0 / .12);--shadow-lg: 0 16px 40px -12px rgb(0 0 0 / .18)}[data-theme=dark]{color-scheme:dark;--color-bg-primary: oklch(.145 0 0);--color-bg-secondary: oklch(.205 0 0);--color-bg-tertiary: oklch(.269 0 0);--color-bg-hover: oklch(.31 0 0);--color-bg-inverse: oklch(.922 0 0);--color-text-inverse: oklch(.205 0 0);--color-text-primary: oklch(.985 0 0);--color-text-secondary: oklch(.708 0 0);--color-text-muted: oklch(.556 0 0);--color-border: oklch(1 0 0 / 10%);--color-border-hover: oklch(1 0 0 / 15%);--color-hairline: oklch(1 0 0 / 6%);--color-overlay: rgb(255 255 255 / .04);--color-overlay-strong: rgb(255 255 255 / .08);--color-scrim: rgb(0 0 0 / .6);--color-card-edge: rgb(255 247 237 / .15);--color-card-edge-hover: rgb(255 247 237 / .3);--color-card-fill: rgb(0 0 0 / .1);--color-highlight: oklch(.954 .038 75.164);--color-highlight-soft: rgb(255 237 213 / .1);--color-brand: oklch(75% .183 55.934);--color-success: oklch(.8 .18 150);--color-success-bg: rgb(74 222 128 / .1);--color-success-border: rgb(74 222 128 / .3);--color-error: oklch(.72 .17 22);--color-error-bg: rgb(248 113 113 / .1);--color-error-border: rgb(248 113 113 / .3);--color-warning: oklch(.83 .15 85);--color-warning-bg: rgb(251 191 36 / .1);--color-warning-border: rgb(251 191 36 / .3);--color-info: oklch(.72 .14 255);--color-info-bg: rgb(96 165 250 / .1);--color-info-border: rgb(96 165 250 / .3);--tone-keep: #4ade80;--tone-drop: #f87171;--tone-null: #a78bfa;--tone-focus: #60a5fa;--tone-ink: oklch(.985 0 0);--tone-g0: #fb923c;--tone-g1: #38bdf8;--tone-g2: #c084fc;--tone-g3: #facc15;--tone-g4: #34d399;--tone-g5: #fb7185;--shadow-sm: 0 1px 2px rgb(0 0 0 / .3);--shadow-md: 0 4px 16px -6px rgb(0 0 0 / .5);--shadow-lg: 0 16px 40px -12px rgb(0 0 0 / .65)}:root{--font-sans: "Manrope Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Montserrat Variable", ui-sans-serif, system-ui, sans-serif;--font-brand: "Onest Variable", ui-sans-serif, system-ui, sans-serif;--font-mono: "Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--color-sidebar-bg: var(--color-bg-primary);--color-sidebar-text: var(--color-text-primary);--color-sidebar-text-muted: var(--color-text-muted);--color-sidebar-item-hover: var(--color-bg-tertiary);--color-sidebar-border: var(--color-border);--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--space-2xl: 2rem;--radius: .625rem;--radius-sm: calc(var(--radius) - 4px);--radius-md: calc(var(--radius) - 2px);--radius-lg: var(--radius);--radius-xl: calc(var(--radius) + 4px);--radius-full: 999px;--radius-asym: 0 var(--radius) 0 var(--radius);--radius-asym-mirror: var(--radius) 0 var(--radius) 0;--transition-fast: .2s ease;--transition-base: .25s ease;--transition-slow: .3s ease;--transition-normal: .25s ease;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: .9375rem;--text-lg: 1rem;--text-xl: 1.125rem;--text-2xl: 1.25rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--navbar-height: 56px;--focus-ring: 0 0 0 3px var(--color-overlay-strong);--z-navbar: 1000;--z-modal: 2000;--z-tooltip: 3000}:root,[data-theme]{--bg-primary: var(--color-bg-primary);--bg-secondary: var(--color-bg-secondary);--bg-tertiary: var(--color-bg-tertiary);--bg-elevated: var(--color-bg-tertiary);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--text-tertiary: var(--color-text-muted);--border-light: var(--color-border);--border-medium: var(--color-border-hover);--border-dark: var(--color-text-muted);--border-color: var(--color-border);--chai-orange: var(--color-brand);--chai-accent: var(--color-highlight);--color-orange-primary: var(--color-highlight);--color-orange-hover: var(--color-highlight);--color-orange-muted: var(--color-highlight-soft);--color-orange-border: var(--color-card-edge-hover);--color-orange-glow: var(--color-overlay-strong);--orange-primary: var(--color-highlight);--orange-hover: var(--color-highlight);--orange-dark: var(--color-highlight);--orange-subtle: var(--color-highlight-soft);--orange-border: var(--color-card-edge-hover);--success: var(--color-success);--error: var(--color-error);--warning: var(--color-warning);--glass-bg: var(--color-bg-secondary);--glass-border: var(--color-border);--btn-primary-bg: var(--color-bg-inverse);--btn-primary-hover: var(--color-bg-inverse);--btn-primary-text: var(--color-text-inverse);--btn-secondary-bg: var(--color-overlay);--btn-secondary-hover: var(--color-overlay-strong);--btn-secondary-text: var(--color-text-primary);--btn-border: var(--color-border);--btn-shadow: var(--shadow-sm)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none}body{min-width:320px;min-height:100vh;background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:background-color var(--transition-base),color var(--transition-base)}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:1.25;letter-spacing:-.01em;color:var(--color-text-primary)}a{color:var(--color-orange-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-orange-hover)}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}button:disabled{cursor:not-allowed}input,select,textarea{font:inherit;color:inherit}code,kbd,pre,samp{font-family:var(--font-mono);font-feature-settings:"liga" 0}img,svg{display:block;max-width:100%}::selection{background-color:var(--color-orange-glow);color:var(--color-text-primary)}:focus-visible{outline:2px solid var(--color-orange-primary);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--color-border-hover) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:var(--radius-full);border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted);background-clip:padding-box}.app-root{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1 1 auto;width:100%;overflow-y:auto}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 1rem}.text-center{text-align:center}.text-orange{color:var(--color-orange-primary)}.bg-orange{background-color:var(--color-orange-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.auth-disabled-banner{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;padding:7px 14px;background:var(--color-warning-bg);border-bottom:1px solid var(--color-warning-border);color:var(--color-warning);font-size:12.5px;text-align:center}.auth-disabled-banner code{background:var(--color-overlay-strong);border-radius:4px;padding:1px 5px;font-size:11.5px}.navbar-auth-disabled{border:1px dashed var(--color-warning-border);border-radius:var(--radius-sm);padding:4px 10px;color:var(--color-warning);font-size:12px;cursor:help}.highlight{font-family:var(--font-display);font-weight:var(--font-medium);letter-spacing:-.025em;text-transform:capitalize;color:var(--color-highlight)}.card-chai{border-radius:var(--radius-xl);border:1px solid var(--color-card-edge);background:var(--color-card-fill);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:border-color var(--transition-slow),opacity var(--transition-slow)}.card-chai:hover{border-color:var(--color-card-edge-hover)}@media(min-width:640px){.card-chai{opacity:.9}.card-chai:hover{opacity:1}}.btn-asym{border-radius:var(--radius-asym)}.btn-asym-mirror{border-radius:var(--radius-asym-mirror)}.chai-backdrop{position:absolute;top:0;left:50%;width:2842px;max-width:none;transform:translate(-50%);z-index:-50;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent);mask-image:linear-gradient(to bottom,#000 55%,transparent)}:root:not([data-theme=dark]) .chai-backdrop{filter:invert(1) hue-rotate(180deg)}@media(max-width:640px){.chai-backdrop{width:100%;height:120dvh;object-fit:cover}}.lab{--sidebar-width: 300px;--lab-header-height: 52px;--card-header-height: 40px;display:flex;flex-direction:column;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--text-base);line-height:1.5}.lab .main-layout{display:flex;flex-direction:column;height:calc(100vh - var(--navbar-height));overflow:hidden}.lab .main-layout__container{display:flex;flex:1;min-height:0}.lab .main-layout__content{flex:1;min-width:0;overflow-y:auto;background:var(--color-bg-primary)}.lab .header{flex-shrink:0;height:var(--lab-header-height);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.lab .header__content{height:100%;padding:0 var(--space-xl);display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}.lab .header__brand{display:flex;align-items:baseline;gap:var(--space-md);min-width:0}.lab .header__title{font-size:var(--text-md);font-weight:var(--font-semibold);letter-spacing:-.01em;white-space:nowrap}.lab .header__subtitle{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab .header__stats{display:flex;align-items:center;gap:var(--space-sm)}.lab .header__stat{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.lab .header__stat svg{width:14px;height:14px;flex-shrink:0}.lab .header__stat--xp{border-color:var(--color-orange-border);background:var(--color-orange-muted);color:var(--color-orange-primary)}.lab .header__stat-value{font-weight:var(--font-semibold);color:inherit;white-space:nowrap}.lab .header__stat--xp .header__stat-value{color:var(--color-orange-primary)}.lab .header__stat:not(.header__stat--xp) .header__stat-value{color:var(--color-text-primary)}.lab .header__stat-of{color:var(--color-text-muted);font-weight:var(--font-normal);margin-left:2px}.lab .header__stat-label{font-size:var(--text-xs);font-weight:var(--font-medium);letter-spacing:.04em;text-transform:uppercase}.lab .header__progress{width:56px;height:4px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);overflow:hidden}.lab .header__progress span{display:block;height:100%;border-radius:inherit;background:var(--color-orange-primary);transition:width var(--transition-slow)}@media(max-width:768px){.lab .header__content{padding:0 var(--space-md);gap:var(--space-sm)}.lab .header__brand{flex:1;min-width:0}.lab .header__title{font-size:var(--text-base);overflow:hidden;text-overflow:ellipsis}.lab .header__subtitle,.lab .header__stat-label,.lab .header__progress{display:none}.lab .header__stat{height:32px;padding:0 var(--space-sm)}}.lab .sidebar{position:relative;flex:0 0 var(--sidebar-width);width:var(--sidebar-width);background:var(--color-sidebar-bg);border-right:1px solid var(--color-border);overflow:hidden;transition:transform var(--transition-base),flex-basis var(--transition-base),width var(--transition-base)}@media(min-width:969px){.lab .sidebar.sidebar-collapsible.is-collapsed{flex-basis:0;width:0;border-right-width:0}}.lab .sidebar-toggle{display:none;position:fixed;bottom:var(--space-lg);left:var(--space-lg);z-index:100;width:44px;height:44px;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--color-bg-inverse);color:var(--color-text-inverse);box-shadow:var(--shadow-lg)}.lab .sidebar-toggle__icon{width:20px;height:20px}.lab .sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--color-scrim);z-index:40}@media(max-width:968px){.lab .sidebar{position:fixed;top:var(--navbar-height);left:0;height:calc(100vh - var(--navbar-height));z-index:50;transform:translate(-100%);box-shadow:var(--shadow-lg)}.lab .sidebar--open{transform:translate(0)}.lab .sidebar-toggle{display:flex}.lab .sidebar--open+.sidebar-overlay{display:block}}.lab .chapter-list{display:flex;flex-direction:column;height:100%;overflow:hidden}.lab .chapter-list__header{padding:var(--space-lg) var(--space-lg) var(--space-md);border-bottom:1px solid var(--color-border)}.lab .chapter-list__header h2{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-sidebar-text);margin-bottom:2px}.lab .chapter-list__header p{font-size:var(--text-xs);color:var(--color-sidebar-text-muted);line-height:1.4}.lab .chapter-list__content{flex:1;overflow-y:auto;padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.lab .chapter-card{position:relative;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:left;cursor:pointer;width:100%;transition:border-color var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast)}.lab .chapter-card:hover:not([aria-disabled=true]){border-color:var(--color-border-hover);background:var(--color-bg-tertiary)}.lab .chapter-card:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-orange-primary)}.lab .chapter-card--active,.lab .chapter-card--active:hover:not([aria-disabled=true]){border-color:var(--color-orange-primary);background:var(--color-orange-muted)}.lab .chapter-card--locked{opacity:.5;cursor:not-allowed}.lab .chapter-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.lab .chapter-card__number{display:flex;align-items:center;justify-content:center;flex-shrink:0}.lab .chapter-card__lock{width:20px;height:20px;color:var(--color-text-muted)}.lab .chapter-card__badges{display:flex;gap:var(--space-xs)}.lab .chapter-card__content{display:flex;flex-direction:column;gap:2px}.lab .chapter-card__title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text-primary);line-height:1.35}.lab .chapter-card__description{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lab .chapter-card__task-dots,.lab .chapter-card__progress{margin-top:2px}.lab .circular-progress{position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}.lab .circular-progress__bg{fill:none;stroke:var(--color-border)}.lab .circular-progress__fill{fill:none;stroke:var(--color-text-primary);stroke-linecap:round;transition:stroke-dashoffset var(--transition-slow)}.lab .circular-progress__text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.lab .circular-progress__percentage{font-size:10px;font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);line-height:1}.lab .chapter-card--active .circular-progress__percentage{color:var(--color-orange-primary)}.lab .task-dots{display:flex;flex-wrap:wrap;gap:5px;padding:var(--space-xs) 0}.lab .task-dot{position:relative;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--color-border-hover);background-color:transparent;padding:0;display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast)}.lab .task-dot:hover{border-color:var(--color-orange-primary);transform:scale(1.2)}.lab .task-dot--completed{border-color:var(--color-success);background-color:var(--color-success)}.lab .task-dot--current{border-color:var(--color-text-primary);background-color:var(--color-text-primary);box-shadow:0 0 0 3px var(--color-overlay-strong)}.lab .task-dot__check{width:9px;height:9px;color:var(--color-bg-secondary)}.lab .task-dot--current .task-dot__check{color:var(--color-text-inverse)}.lab .task-dot:after{content:attr(title);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(2px);background-color:var(--color-bg-inverse);color:var(--color-text-inverse);padding:3px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast);z-index:10}.lab .task-dot:hover:after{opacity:1;transform:translate(-50%) translateY(0)}.lab .progress-bar{width:100%}.lab .progress-bar__label{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;font-size:var(--text-xs);font-weight:var(--font-medium);font-variant-numeric:tabular-nums}.lab .progress-bar__track{width:100%;height:4px;background-color:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.lab .chapter-card--active .progress-bar__track{background-color:var(--color-bg-secondary)}.lab .progress-bar__fill{height:100%;background:var(--color-text-primary);border-radius:inherit;transition:width var(--transition-slow)}.lab .editor-layout{display:flex;flex-direction:column;min-height:100%;padding:var(--space-lg);gap:var(--space-lg);position:relative;max-width:1600px;margin:0 auto;width:100%}.lab .editor-layout__empty{display:flex;align-items:center;justify-content:center;height:calc(100vh - var(--navbar-height) - var(--lab-header-height));color:var(--color-text-muted);font-size:var(--text-md)}.lab .editor-layout__top{display:flex;gap:var(--space-lg);min-height:220px}.lab .editor-layout__instructions{flex:1;min-width:0;overflow:hidden}.lab .editor-layout__bottom{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:var(--space-lg);margin-bottom:var(--space-lg)}.lab .editor-layout__editor{grid-column:1;grid-row:1;height:480px;min-width:0;overflow:hidden}.lab .editor-layout__preview{grid-column:2;grid-row:1;height:480px;min-width:0;overflow:hidden}.lab .editor-layout__validation{grid-column:1 / -1;grid-row:2;height:260px;overflow:hidden}.lab .editor-layout__success-banner{position:fixed;bottom:var(--space-xl);left:50%;transform:translate(-50%);z-index:1000;animation:slideUp var(--transition-slow)}.lab .editor-layout__success-content{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-md) var(--space-md) var(--space-lg);background:var(--color-bg-inverse);color:var(--color-text-inverse);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);font-size:var(--text-sm);font-weight:var(--font-medium)}.lab .editor-layout__success-content svg{width:18px;height:18px;color:var(--color-success);flex-shrink:0}.lab .editor-layout__success-content .btn--primary{background:var(--color-bg-primary);color:var(--color-text-primary)}@media(max-width:1200px){.lab .editor-layout__bottom{grid-template-columns:1fr;grid-template-rows:auto auto auto}.lab .editor-layout__editor{grid-column:1;grid-row:1;height:380px}.lab .editor-layout__preview{grid-column:1;grid-row:2;height:380px}.lab .editor-layout__validation{grid-column:1;grid-row:3}}@media(max-width:768px){.lab .editor-layout{padding:var(--space-md);gap:var(--space-md)}.lab .editor-layout__top{height:auto;min-height:200px}.lab .editor-layout__success-banner{bottom:var(--space-md);left:var(--space-md);right:var(--space-md);transform:none}.lab .editor-layout__success-content{flex-direction:column;text-align:center;padding:var(--space-md)}}.lab .task-view{display:flex;flex-direction:column;height:100%;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.lab .task-view__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--color-border)}.lab .task-view__title{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0}.lab .task-view__title h2{font-size:var(--text-2xl);font-weight:var(--font-semibold);letter-spacing:-.02em;color:var(--color-text-primary);line-height:1.2}.lab .task-view__badges{display:flex;gap:var(--space-xs);flex-wrap:wrap}.lab .task-view__navigation{display:flex;gap:var(--space-xs);flex-shrink:0}.lab .task-view__content{flex:1;overflow-y:auto;padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-xl)}.lab .task-view__story{display:flex;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-bg-tertiary);border-left:3px solid var(--color-border-hover);border-radius:var(--radius-md)}.lab .task-view__story-icon{width:28px;height:28px;padding:5px;border-radius:50%;background:var(--color-text-primary);flex-shrink:0}.lab .task-view__story p{color:var(--color-text-secondary);line-height:1.65;font-style:italic;font-size:var(--text-base)}.lab .task-view__section{display:flex;flex-direction:column;gap:var(--space-sm)}.lab .task-view__section h3{font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.lab .task-view__section p{color:var(--color-text-primary);line-height:1.7;font-size:var(--text-md)}.lab .task-view__section .text-muted{color:var(--color-text-muted);font-size:var(--text-sm)}.lab .task-view__hints-header{display:flex;align-items:center;justify-content:space-between}.lab .task-view__hints{display:flex;flex-direction:column;gap:var(--space-sm)}.lab .task-view__hint{display:flex;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);animation:slideUp var(--transition-base)}.lab .task-view__hint-number{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background-color:var(--color-orange-muted);border-radius:50%;font-size:var(--text-xs);font-weight:var(--font-bold);color:var(--color-orange-primary);flex-shrink:0}.lab .task-view__hint p{color:var(--color-text-primary);line-height:1.6;font-size:var(--text-sm)}.lab .code-editor,.lab .preview-pane,.lab .validation-panel{display:flex;flex-direction:column;height:100%;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.lab .code-editor__header,.lab .preview-pane__header,.lab .validation-panel__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);height:var(--card-header-height);flex-shrink:0;padding:0 var(--space-sm) 0 var(--space-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.lab .code-editor__title,.lab .preview-pane__title,.lab .validation-panel__title{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.lab .code-editor__dots{display:none}.lab .code-editor__content{flex:1;min-height:0;overflow:hidden}.lab .preview-pane__indicator{display:flex;align-items:center;gap:6px;padding-right:var(--space-sm);font-size:var(--text-xs);color:var(--color-text-muted)}.lab .preview-pane__dot{width:7px;height:7px;border-radius:50%;background-color:var(--color-success);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.lab .preview-pane__dot--success{background-color:var(--color-success)}.lab .preview-pane__dot--error{background-color:var(--color-error);animation:none}.lab .preview-pane__content{flex:1;min-height:0;overflow:auto;background-color:#fff}.lab .preview-pane__iframe{width:100%;height:100%;border:none;display:block;background:#fff}.lab .preview-pane__section{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border)}.lab .preview-pane__section:last-child{border-bottom:none}.lab .preview-pane__section--full{flex:1;display:flex;flex-direction:column;min-height:160px;padding:0}.lab .preview-pane__section--full .preview-pane__section-header{padding:var(--space-md) var(--space-lg) 0}.lab .preview-pane__section--full .preview-pane__iframe{flex:1;margin-top:var(--space-sm)}.lab .preview-pane__section-header{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-sm)}.lab .preview-pane__console{font-family:var(--font-mono);font-size:var(--text-sm);background-color:var(--color-bg-primary);border:1px solid var(--color-border);color:var(--color-text-primary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);max-height:220px;overflow-y:auto}.lab .preview-pane__console-line{display:flex;gap:var(--space-sm);padding:3px 0;line-height:1.55}.lab .preview-pane__console-line+.preview-pane__console-line{border-top:1px solid var(--color-hairline)}.lab .preview-pane__console-arrow{color:var(--color-orange-primary);flex-shrink:0;-webkit-user-select:none;user-select:none}.lab .preview-pane__console-text{color:var(--color-text-primary);word-break:break-word;white-space:pre-wrap}.lab .preview-pane__empty{color:var(--color-text-muted);text-align:center;padding:var(--space-lg);font-size:var(--text-sm)}.lab .preview-pane__error{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-error-border);border-left:3px solid var(--color-error);color:var(--color-error);margin-top:var(--space-sm);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);white-space:pre-wrap;word-break:break-word}.lab .preview-pane__error-icon{font-weight:var(--font-bold);flex-shrink:0}.lab .preview-pane__return{font-family:var(--font-mono);font-size:var(--text-sm);background-color:var(--color-bg-tertiary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);overflow-x:auto}.lab .preview-pane__return code{color:var(--color-text-primary);background:none;padding:0}.lab .validation-panel__run-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 var(--space-md);margin:0 var(--space-xs);background:var(--color-bg-inverse);color:var(--color-text-inverse);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.02em;transition:background-color var(--transition-fast),transform var(--transition-fast),opacity var(--transition-fast)}.lab .validation-panel__run-btn:hover:not(:disabled){background:color-mix(in oklab,var(--color-bg-inverse) 88%,var(--color-text-inverse))}.lab .validation-panel__run-btn:active:not(:disabled){transform:translateY(1px)}.lab .validation-panel__run-btn:disabled{opacity:.5}.lab .validation-panel__content{flex:1;min-height:0;overflow-y:auto;padding:var(--space-md) var(--space-lg) var(--space-xl);scroll-behavior:smooth}.lab .validation-panel__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-2xl);color:var(--color-text-secondary);font-size:var(--text-sm)}.lab .validation-panel__spinner{width:28px;height:28px;border:2.5px solid var(--color-border);border-top-color:var(--color-orange-primary);border-radius:50%;animation:spin .8s linear infinite}.lab .validation-panel__empty{display:flex;align-items:center;justify-content:center;height:100%;text-align:center;padding:var(--space-2xl);color:var(--color-text-muted);font-size:var(--text-sm)}.lab .validation-panel__results{display:flex;flex-direction:column;gap:var(--space-md)}.lab .validation-panel__success{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border:1px solid var(--color-success-border);border-radius:var(--radius-md);color:var(--color-success)}.lab .validation-panel__success-icon{width:24px;height:24px;flex-shrink:0}.lab .validation-panel__success h3{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-success);margin-bottom:2px}.lab .validation-panel__success p{font-size:var(--text-sm);color:var(--color-success);opacity:.85}.lab .validation-panel__tests{display:flex;flex-direction:column;gap:var(--space-sm)}.lab .validation-test{display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-primary)}.lab .validation-test--passed{border-color:var(--color-success-border)}.lab .validation-test--failed{border-color:var(--color-error-border)}.lab .validation-test__icon{width:18px;height:18px;flex-shrink:0;margin-top:1px}.lab .validation-test--passed .validation-test__icon{color:var(--color-success)}.lab .validation-test--failed .validation-test__icon{color:var(--color-error)}.lab .validation-test__content{flex:1;min-width:0}.lab .validation-test__message{font-size:var(--text-sm);font-weight:var(--font-medium);line-height:1.5;color:var(--color-text-primary)}.lab .validation-test--failed .validation-test__message{color:var(--color-error)}.lab .validation-test__error{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-text-secondary);margin-top:var(--space-xs);white-space:pre-wrap;word-break:break-word}.lab .validation-test__hint{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px dashed var(--color-error-border)}.lab .badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;border-radius:var(--radius-full);font-weight:var(--font-medium);white-space:nowrap;line-height:1;border:1px solid transparent;text-transform:capitalize}.lab .badge--sm{height:20px;padding:0 8px;font-size:var(--text-xs)}.lab .badge--md{height:24px;padding:0 10px;font-size:var(--text-xs)}.lab .badge--default{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border-color:var(--color-border)}.lab .badge--success{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.lab .badge--error{background:var(--color-error-bg);color:var(--color-error);border-color:var(--color-error-border)}.lab .badge--warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}.lab .badge--orange{background:var(--color-orange-muted);color:var(--color-orange-primary);border-color:var(--color-orange-border)}.lab .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:var(--font-medium);border-radius:var(--radius-md);border:1px solid transparent;white-space:nowrap;line-height:1;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast),opacity var(--transition-fast)}.lab .btn:disabled{opacity:.45}.lab .btn:active:not(:disabled){transform:translateY(1px)}.lab .btn--sm{height:30px;padding:0 var(--space-md);font-size:var(--text-sm)}.lab .btn--md{height:36px;padding:0 var(--space-lg);font-size:var(--text-sm)}.lab .btn--lg{height:42px;padding:0 var(--space-xl);font-size:var(--text-base)}.lab .btn--primary{background:var(--color-bg-inverse);color:var(--color-text-inverse)}.lab .btn--primary:hover:not(:disabled){opacity:.88}.lab .btn--secondary{background:var(--color-bg-secondary);color:var(--color-text-primary);border-color:var(--color-border)}.lab .btn--secondary:hover:not(:disabled){background:var(--color-bg-tertiary);border-color:var(--color-border-hover)}.lab .btn--ghost{background:transparent;color:var(--color-text-secondary)}.lab .btn--ghost:hover:not(:disabled){background:var(--color-bg-tertiary);color:var(--color-text-primary)}.lab .btn--danger{background:var(--color-error);color:#fff}.lab .btn--danger:hover:not(:disabled){opacity:.9}.lab .text-primary{color:var(--color-text-primary)}.lab .text-secondary{color:var(--color-text-secondary)}.lab .text-muted{color:var(--color-text-muted)}.lab .text-orange{color:var(--color-orange-primary)}.lab code{font-family:var(--font-mono);font-size:.9em;background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);padding:.1em .4em;border-radius:var(--radius-sm)}.lab pre{font-family:var(--font-mono);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);padding:var(--space-md);border-radius:var(--radius-md);overflow-x:auto}.lab pre code{background:none;border:none;padding:0}.lab .lab-boot{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--navbar-height));padding:var(--space-2xl)}.lab .lab-boot__card{width:min(420px,100%);padding:var(--space-2xl);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);text-align:center}.lab .lab-boot__title{font-size:var(--text-xl);font-weight:var(--font-semibold);letter-spacing:-.01em;margin-bottom:var(--space-sm)}.lab .lab-boot__title--error{color:var(--color-error)}.lab .lab-boot__message{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.6;margin-bottom:var(--space-xl)}.lab .lab-boot__track{width:100%;height:6px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.lab .lab-boot__fill{height:100%;background:var(--color-text-primary);border-radius:inherit;transition:width var(--transition-slow)}.lab .lab-boot__percent{margin-top:var(--space-md);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.lab .lab-boot__details{margin:var(--space-md) 0 var(--space-lg);text-align:left;font-size:var(--text-xs);color:var(--color-text-secondary)}.lab .lab-boot__details summary{cursor:pointer;color:var(--color-text-muted)}
