.navbar{position:sticky;top:0;z-index:var(--z-navbar);height:var(--navbar-height);background:color-mix(in srgb,var(--color-bg-secondary) 82%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--color-border);color:var(--color-text-primary);transition:background-color var(--transition-base),border-color var(--transition-base)}.navbar-container{height:100%;max-width:1440px;margin:0 auto;padding:0 var(--space-xl);display:flex;align-items:center;justify-content:space-between;gap:var(--space-xl)}.navbar-logo{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-text-primary);flex-shrink:0}.navbar-logo:hover{color:var(--color-text-primary)}.navbar-logo-img{width:26px;height:26px;object-fit:contain}.navbar-logo-text{font-size:var(--text-lg);font-weight:var(--font-bold);letter-spacing:-.02em}.navbar-logo-text:first-letter{color:var(--color-orange-primary)}.navbar-links{display:flex;align-items:center;gap:2px;flex:1;justify-content:center;min-width:0}.navbar-link{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 var(--space-md);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);white-space:nowrap;transition:background-color var(--transition-fast),color var(--transition-fast)}.navbar-link:hover{background-color:var(--color-overlay);color:var(--color-text-primary)}.navbar-link.active{background-color:var(--color-orange-muted);color:var(--color-orange-primary);font-weight:var(--font-semibold)}.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:34px;height:34px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.navbar-theme-toggle svg{width:16px;height:16px}.navbar-theme-toggle:hover{background:var(--color-bg-tertiary);border-color:var(--color-border-hover);color:var(--color-text-primary)}.navbar-auth{display:flex;align-items:center}.navbar-signin-btn{height:34px;padding:0 var(--space-lg);background:var(--color-bg-inverse);color:var(--color-text-inverse);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-semibold);transition:opacity var(--transition-fast),transform var(--transition-fast)}.navbar-signin-btn:hover{opacity:.88}.navbar-signin-btn:active{transform:translateY(1px)}@media(max-width:768px){.navbar-container{padding:0 var(--space-md);gap:var(--space-md)}.navbar-links{gap:0;overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.navbar-links::-webkit-scrollbar{display:none}.navbar-link{padding:0 var(--space-sm);font-size:var(--text-xs)}.navbar-logo-text{display:none}}.home{--home-max: 1120px;background:var(--color-bg-primary);color:var(--color-text-primary);overflow-x:hidden}.home-container{width:100%;max-width:var(--home-max);margin:0 auto;padding:0 var(--space-xl)}.home-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border-radius:var(--radius-md);border:1px solid transparent;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),transform var(--transition-fast),opacity var(--transition-fast)}.home-btn svg{width:16px;height:16px;transition:transform var(--transition-fast)}.home-btn:hover svg{transform:translate(2px)}.home-btn:active{transform:translateY(1px)}.home-btn--lg{height:46px;padding:0 22px;font-size:var(--text-md)}.home-btn--primary{background:var(--color-bg-inverse);color:var(--color-text-inverse)}.home-btn--primary:hover{color:var(--color-text-inverse);opacity:.88}.home-btn--secondary{background:var(--color-bg-secondary);color:var(--color-text-primary);border-color:var(--color-border)}.home-btn--secondary:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:var(--color-bg-tertiary)}.home-btn--ghost{background:transparent;color:var(--color-text-secondary)}.home-btn--ghost:hover{color:var(--color-text-primary);background:var(--color-overlay)}.home-kicker{display:inline-block;margin-bottom:var(--space-md);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-orange-primary)}.home-pill{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:var(--radius-full);border:1px solid transparent;font-size:var(--text-xs);font-weight:var(--font-medium)}.home-pill svg{width:11px;height:11px}.home-pill--free{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.home-pill--locked{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border-color:var(--color-border)}.home-hero{position:relative;padding:88px 0 72px;overflow:hidden}.home-hero__bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(var(--color-border-hover) 1px,transparent 1px);background-size:22px 22px;mask-image:radial-gradient(ellipse 70% 60% at 65% 40%,#000 0%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 65% 40%,#000 0%,transparent 70%);opacity:.7}.home-hero__bg:after{content:"";position:absolute;top:-20%;right:-10%;width:60%;height:120%;background:radial-gradient(closest-side,var(--color-orange-glow),transparent);opacity:.6;filter:blur(40px)}.home-hero__grid{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:56px}.home-hero__copy{animation:home-rise .6s ease-out both}.home-eyebrow{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 12px 0 10px;margin-bottom:22px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.home-eyebrow__dot{width:7px;height:7px;border-radius:50%;background:var(--color-success);box-shadow:0 0 0 3px var(--color-success-bg)}.home-hero__title{font-size:clamp(2.5rem,5.2vw,4rem);font-weight:var(--font-bold);letter-spacing:-.035em;line-height:1.02;margin-bottom:22px}.home-hero__accent{color:var(--color-orange-primary)}.home-hero__lead{max-width:520px;font-size:var(--text-xl);line-height:1.6;color:var(--color-text-secondary);margin-bottom:30px}.home-hero__actions{display:flex;flex-wrap:wrap;gap:10px;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-size:var(--text-2xl);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;animation:home-rise .7s .12s ease-out both}.home-demo{position:relative;max-width:520px;margin-left:auto}.home-demo__window{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-bg-secondary);box-shadow:var(--shadow-lg);overflow:hidden}.home-demo__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;height:40px;padding:0 14px 0 16px;border-bottom:1px solid var(--color-border)}.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:18px 18px 20px;font-family:var(--font-mono);font-size:13px;line-height:1.75;color:var(--color-text-primary);overflow-x:auto;background:var(--color-bg-secondary);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:26px;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-orange-primary)}.home-demo__code .tok-f{color:var(--color-warning)}.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-orange-primary);animation:home-blink 1.1s steps(2,start) infinite}.home-demo__tests{border-top:1px solid var(--color-border);padding:12px 16px 14px;background:var(--color-bg-primary)}.home-demo__tests-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.home-demo__count{padding:1px 8px;border-radius:var(--radius-full);background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success);letter-spacing:0;animation:home-pop .3s 1.7s ease-out both}.home-demo__test{display:flex;align-items:center;gap:10px;padding:7px 10px;margin-top:4px;border:1px solid var(--color-success-border);border-radius:var(--radius-md);background:var(--color-success-bg);font-size:var(--text-sm);color:var(--color-text-primary);animation:home-rise .36s ease-out both;animation-delay:calc(.7s + var(--i) * .32s)}.home-demo__tick{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--color-success);color:#fff;flex-shrink:0}.home-demo__tick svg{width:11px;height:11px}.home-demo__toast{position:absolute;right:-14px;bottom:-18px;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px 0 12px;border-radius:var(--radius-full);background:var(--color-bg-inverse);color:var(--color-text-inverse);font-size:var(--text-sm);font-weight:var(--font-medium);box-shadow:var(--shadow-lg);animation:home-pop .42s 1.9s cubic-bezier(.2,1.2,.4,1) both}.home-demo__toast svg{width:16px;height:16px;color:var(--color-orange-primary)}.home-section{padding:88px 0}.home-section--alt{background:var(--color-bg-secondary);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.home-section__head{max-width:640px;margin-bottom:44px}.home-section__title{font-size:clamp(1.75rem,3vw,2.375rem);font-weight:var(--font-semibold);letter-spacing:-.03em;line-height:1.12}.home-section__lead{margin-top:12px;font-size:var(--text-md);line-height:1.6;color:var(--color-text-secondary)}.home-labs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.home-lab{grid-column:span 2}.home-lab:nth-child(n+4){grid-column:span 3}.home-lab{position:relative;display:flex;flex-direction:column;gap:12px;padding:22px;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-bg-secondary);color:var(--color-text-primary);transition:border-color var(--transition-fast),transform var(--transition-base),box-shadow var(--transition-base)}.home-lab:hover{color:var(--color-text-primary);border-color:var(--color-orange-border);transform:translateY(-2px);box-shadow:var(--shadow-md)}.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:40px;height:40px;border-radius:var(--radius-md);background:var(--color-orange-muted);color:var(--color-orange-primary);transition:background-color var(--transition-fast),color var(--transition-fast)}.home-lab__glyph svg{width:20px;height:20px}.home-lab:hover .home-lab__glyph{background:var(--color-orange-primary);color:#111010}.home-lab__title{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xl);font-weight:var(--font-semibold);letter-spacing:-.01em}.home-lab__tagline{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;padding-top:12px;border-top:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted)}.home-lab__go{display:inline-flex;align-items:center;gap:4px;font-weight:var(--font-medium);color:var(--color-orange-primary)}.home-lab__go svg{width:13px;height:13px;transition:transform var(--transition-fast)}.home-lab:hover .home-lab__go svg{transform:translate(3px)}.home-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.home-step{position:relative;padding-top:18px;border-top:1px solid var(--color-border)}.home-step:before{content:"";position:absolute;top:-1px;left:0;width:40px;height:2px;background:var(--color-orange-primary)}.home-step__num{display:block;margin-bottom:14px;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-orange-primary)}.home-step__title{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:14px}.home-feature{padding:22px;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-bg-secondary)}.home-feature__icon{display:grid;place-items:center;width:36px;height:36px;margin-bottom:16px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary)}.home-feature__icon svg{width:18px;height:18px}.home-feature__title{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-section--cta{padding-top:0}.home-cta{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:40px 44px;border-radius:var(--radius-xl);background:var(--color-bg-secondary);border:1px solid var(--color-border);position:relative;overflow:hidden}.home-cta:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 50% 120% at 100% 50%,var(--color-orange-glow),transparent 70%);opacity:.7;pointer-events:none}.home-cta>*{position:relative}.home-cta__title{font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:var(--font-semibold);letter-spacing:-.025em;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:10px;flex-shrink:0}.home-footer{border-top:1px solid var(--color-border);padding:56px 0 40px;background:var(--color-bg-primary)}.home-footer__grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px}.home-footer__logo{display:flex;align-items:center;gap:8px;font-weight:var(--font-bold);letter-spacing:-.02em;margin-bottom:10px}.home-footer__logo img{width:24px;height:24px}.home-footer__logo span:first-letter{color:var(--color-orange-primary)}.home-footer__tagline{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:18px}.home-footer__copy{font-size:var(--text-xs);color:var(--color-text-muted)}.home-footer__col h3{font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:14px}.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)}.home-footer__col a:hover{color:var(--color-text-primary)}.home-footer__col a svg{width:14px;height:14px;opacity:.8}@keyframes home-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes home-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}@keyframes home-blink{to{visibility:hidden}}@media(max-width:1024px){.home-hero__grid{grid-template-columns:1fr;gap:44px}.home-demo{margin-left:0;max-width:560px}.home-labs{grid-template-columns:repeat(2,minmax(0,1fr))}.home-lab,.home-lab:nth-child(n+4){grid-column:span 1}.home-lab: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:48px 0 56px}.home-hero__stats{gap:24px}.home-section{padding:60px 0}.home-labs,.home-features,.home-steps{grid-template-columns:1fr}.home-lab,.home-lab:nth-child(n+4),.home-lab:last-child{grid-column:span 1}.home-steps{gap:28px}.home-cta{flex-direction:column;align-items:flex-start;padding:28px 24px}.home-demo__toast{right:8px;bottom:-16px}.home-footer__grid{grid-template-columns:1fr;gap:28px}}.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-kicker{display:inline-block;margin-bottom:var(--space-md);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-orange-primary)}.signin-heading{font-size:clamp(1.75rem,3.2vw,2.5rem);font-weight:var(--font-semibold);letter-spacing:-.03em;line-height:1.1;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%;background:var(--color-success-bg);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-orange-border);border-radius:var(--radius-lg);background:var(--color-orange-muted)}.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-orange-primary)}.signin-cohort a svg{width:14px;height:14px;transition:transform var(--transition-fast)}.signin-cohort a:hover svg{transform:translate(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(--orange-primary);color:#111010;cursor:pointer;transition:background-color .15s ease,transform .15s ease}.sql-lab .anim-stage__play:hover{background:var(--orange-hover);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(--orange-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(--orange-primary);border-color:var(--orange-primary);color:#111010}.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(--orange-primary);border-color:var(--orange-primary);color:#111010}.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(--orange-primary);color:#111010;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:var(--orange-hover)}.sql-lab .run-button:active{transform:translateY(1px)}.sql-lab .keyboard-hint{margin-left:2px;padding:1px 5px;border-radius:4px;background:#0000001f;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(--orange-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(--orange-primary);background:var(--orange-primary);color:#111010}.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(--orange-primary);border-color:var(--orange-primary);color:#111010}.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(--orange-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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA) 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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.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: #faf7f2;--color-bg-secondary: #ffffff;--color-bg-tertiary: #f3efe8;--color-bg-hover: #ece6dc;--color-bg-inverse: #1c1917;--color-text-inverse: #faf7f2;--color-text-primary: #1c1917;--color-text-secondary: #57534e;--color-text-muted: #a8a29e;--color-border: #e7e0d5;--color-border-hover: #d6cdbf;--color-hairline: rgba(28, 25, 23, .08);--color-overlay: rgba(28, 25, 23, .04);--color-overlay-strong: rgba(28, 25, 23, .08);--color-scrim: rgba(28, 25, 23, .45);--color-orange-primary: #f97316;--color-orange-hover: #ea580c;--color-orange-muted: rgba(249, 115, 22, .1);--color-orange-border: rgba(249, 115, 22, .3);--color-orange-glow: rgba(249, 115, 22, .18);--color-success: #15803d;--color-success-bg: #dcfce7;--color-success-border: #bbf7d0;--color-error: #b91c1c;--color-error-bg: #fee2e2;--color-error-border: #fecaca;--color-warning: #a16207;--color-warning-bg: #fef3c7;--color-warning-border: #fde68a;--color-info: #1d4ed8;--color-info-bg: #dbeafe;--color-info-border: #bfdbfe;--tone-keep: #16a34a;--tone-drop: #dc2626;--tone-null: #7c3aed;--tone-focus: #2563eb;--tone-ink: #1c1917;--tone-g0: #ea580c;--tone-g1: #0284c7;--tone-g2: #9333ea;--tone-g3: #ca8a04;--tone-g4: #059669;--tone-g5: #e11d48;--shadow-sm: 0 1px 2px rgba(28, 25, 23, .05), 0 1px 3px rgba(28, 25, 23, .04);--shadow-md: 0 2px 4px rgba(28, 25, 23, .05), 0 8px 20px -6px rgba(28, 25, 23, .12);--shadow-lg: 0 4px 8px rgba(28, 25, 23, .06), 0 20px 40px -12px rgba(28, 25, 23, .2);--shadow-orange: 0 8px 24px -8px rgba(249, 115, 22, .45)}[data-theme=dark]{color-scheme:dark;--color-bg-primary: #111010;--color-bg-secondary: #181716;--color-bg-tertiary: #1f1d1b;--color-bg-hover: #272422;--color-bg-inverse: #f5f2ed;--color-text-inverse: #111010;--color-text-primary: #f5f2ed;--color-text-secondary: #a8a29e;--color-text-muted: #6b6560;--color-border: rgba(255, 255, 255, .08);--color-border-hover: rgba(255, 255, 255, .14);--color-hairline: rgba(255, 255, 255, .06);--color-overlay: rgba(255, 255, 255, .04);--color-overlay-strong: rgba(255, 255, 255, .08);--color-scrim: rgba(0, 0, 0, .6);--color-orange-primary: #fb923c;--color-orange-hover: #fdba74;--color-orange-muted: rgba(251, 146, 60, .12);--color-orange-border: rgba(251, 146, 60, .3);--color-orange-glow: rgba(251, 146, 60, .22);--color-success: #4ade80;--color-success-bg: rgba(74, 222, 128, .12);--color-success-border: rgba(74, 222, 128, .3);--color-error: #f87171;--color-error-bg: rgba(248, 113, 113, .12);--color-error-border: rgba(248, 113, 113, .3);--color-warning: #fbbf24;--color-warning-bg: rgba(251, 191, 36, .12);--color-warning-border: rgba(251, 191, 36, .3);--color-info: #60a5fa;--color-info-bg: rgba(96, 165, 250, .12);--color-info-border: rgba(96, 165, 250, .3);--tone-keep: #4ade80;--tone-drop: #f87171;--tone-null: #a78bfa;--tone-focus: #60a5fa;--tone-ink: #ffffff;--tone-g0: #fb923c;--tone-g1: #38bdf8;--tone-g2: #c084fc;--tone-g3: #facc15;--tone-g4: #34d399;--tone-g5: #fb7185;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px -2px rgba(0, 0, 0, .4);--shadow-lg: 0 16px 40px -12px rgba(0, 0, 0, .6);--shadow-orange: 0 8px 24px -8px rgba(251, 146, 60, .35)}:root{--font-sans: "Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--color-sidebar-bg: var(--color-bg-secondary);--color-sidebar-text: var(--color-text-primary);--color-sidebar-text-muted: var(--color-text-muted);--color-sidebar-item-hover: var(--color-bg-hover);--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-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--transition-fast: .15s ease;--transition-base: .2s 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-orange-glow);--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-orange-primary);--chai-orange-light: var(--color-orange-hover);--chai-orange-dark: var(--color-orange-hover);--chai-accent: var(--color-orange-primary);--orange-primary: var(--color-orange-primary);--orange-hover: var(--color-orange-hover);--orange-dark: var(--color-orange-hover);--orange-subtle: var(--color-orange-muted);--orange-border: var(--color-orange-border);--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;font-feature-settings:"cv11","ss01"}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}.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-orange-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-orange-primary);background-color:var(--color-orange-primary);box-shadow:0 0 0 3px var(--color-orange-glow)}.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-orange-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-orange-primary);color:#111010}@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-orange-primary);border-radius:var(--radius-md)}.lab .task-view__story-icon{width:28px;height:28px;padding:5px;border-radius:50%;background:var(--color-orange-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);background-color:var(--color-error-bg);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-orange-primary);color:#111010;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:var(--color-orange-hover)}.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);background-color:var(--color-success-bg);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);background:var(--color-success-bg)}.lab .validation-test--failed{border-color:var(--color-error-border);background:var(--color-error-bg)}.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-orange-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)}
