*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100dvh;line-height:1.5;font-family:var(--font-sans);font-size:var(--text-base);color:var(--clr-text);background-color:var(--clr-bg)}img,picture,video,canvas{display:block;max-width:100%}svg{max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--clr-focus);outline-offset:2px}:root{--clr-bg: #ffffff;--clr-bg-secondary: #f9fafb;--clr-bg-tertiary: #f3f4f6;--clr-surface: #ffffff;--clr-border: #e5e7eb;--clr-border-subtle: #f3f4f6;--clr-text: #111827;--clr-text-secondary: #6b7280;--clr-text-tertiary: #9ca3af;--clr-text-inverse: #ffffff;--clr-accent: #111827;--clr-accent-hover: #374151;--clr-accent-subtle: #f3f4f6;--clr-success: #059669;--clr-success-bg: #ecfdf5;--clr-warning: #d97706;--clr-warning-bg: #fffbeb;--clr-error: #dc2626;--clr-error-bg: #fef2f2;--clr-info: #2563eb;--clr-info-bg: #eff6ff;--clr-focus: #111827;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", Menlo, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-6: 24px;--sp-8: 32px;--sp-12: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--duration-fast: .1s;--duration-normal: .2s;--duration-slow: .3s;--easing-default: cubic-bezier(.4, 0, .2, 1);--easing-spring: cubic-bezier(.34, 1.56, .64, 1);--z-base: 1;--z-dropdown: 50;--z-overlay: 100;--z-modal: 200;--z-toast: 300;--z-tooltip: 400;--sidebar-width: 220px;--sidebar-collapsed: 64px;--content-max-width: 1200px;--header-height: 52px}[data-theme=dark]{--clr-bg: #0a0a0a;--clr-bg-secondary: #111111;--clr-bg-tertiary: #1a1a1a;--clr-surface: #141414;--clr-border: #262626;--clr-border-subtle: #1a1a1a;--clr-text: #fafafa;--clr-text-secondary: #a1a1aa;--clr-text-tertiary: #71717a;--clr-text-inverse: #0a0a0a;--clr-accent: #fafafa;--clr-accent-hover: #d4d4d8;--clr-accent-subtle: #1a1a1a;--clr-focus: #fafafa;--clr-success-bg: #052e16;--clr-warning-bg: #451a03;--clr-error-bg: #450a0a;--clr-info-bg: #172554}h1,h2,h3,h4,h5,h6{font-weight:var(--fw-semibold);line-height:1.25}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}code,kbd,pre{font-family:var(--font-mono);font-size:var(--text-sm)}::selection{background-color:var(--clr-accent);color:var(--clr-text-inverse)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--clr-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--clr-text-tertiary)}.app-shell{display:flex;flex-direction:column;min-height:100dvh}.main-content{flex:1;min-height:100dvh}.page{min-height:100dvh;padding:var(--sp-6);max-width:var(--content-max-width);margin:0 auto}.page__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-6);gap:var(--sp-4)}.page__title{font-size:var(--text-2xl);font-weight:var(--fw-bold)}.page__back{display:inline-flex;align-items:center;gap:var(--sp-2);color:var(--clr-text-secondary);font-size:var(--text-sm);font-weight:var(--fw-medium);background:none;border:none;cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--easing-default),background var(--duration-fast) var(--easing-default)}.page__back:hover{color:var(--clr-text);background:var(--clr-bg-tertiary)}.page--dashboard{display:flex;max-width:none;padding:0}.dashboard__sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);display:flex;flex-direction:column;background:var(--clr-bg);border-right:1px solid var(--clr-border);z-index:var(--z-base);padding:var(--sp-4) 0}.dashboard__sidebar-logo{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);margin-bottom:var(--sp-6);font-weight:var(--fw-bold);font-size:var(--text-md);color:var(--clr-text);cursor:pointer;background:none;border:none;text-align:left}.dashboard__sidebar-nav{flex:1;display:flex;flex-direction:column;gap:var(--sp-1);padding:0 var(--sp-2)}.dashboard__nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);color:var(--clr-text-secondary);font-size:var(--text-sm);font-weight:var(--fw-medium);transition:background var(--duration-fast) var(--easing-default),color var(--duration-fast) var(--easing-default);cursor:pointer;background:none;border:none;width:100%;text-align:left;user-select:none}.dashboard__nav-item:hover{background:var(--clr-bg-tertiary);color:var(--clr-text)}.dashboard__nav-item--active{background:var(--clr-accent-subtle);color:var(--clr-text)}.dashboard__main{flex:1;margin-left:var(--sidebar-width);padding:var(--sp-6);min-height:100dvh}.dashboard__main-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.dashboard__canvas-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);width:100%;padding:var(--sp-4);margin-bottom:var(--sp-6);background:var(--clr-accent);color:var(--clr-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--fw-semibold);cursor:pointer;transition:background var(--duration-fast) var(--easing-default)}.dashboard__canvas-btn:hover{background:var(--clr-accent-hover)}.dashboard__mobile{padding:var(--sp-4);min-height:100dvh}.dashboard__mobile-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.dashboard__recent-section{margin-bottom:var(--sp-6)}.dashboard__recent-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.dashboard__recent-scroll{display:flex;gap:var(--sp-3);overflow-x:auto;padding-bottom:var(--sp-2);-webkit-overflow-scrolling:touch;scrollbar-width:none}.dashboard__recent-scroll::-webkit-scrollbar{display:none}.dashboard__recent-card{flex:0 0 140px;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--clr-bg-secondary);border:1px solid var(--clr-border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--easing-default)}.dashboard__recent-card:hover{background:var(--clr-bg-tertiary)}.dashboard__pages-section{border-top:1px solid var(--clr-border);padding-top:var(--sp-4)}.dashboard__page-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--clr-border-subtle);color:var(--clr-text);font-size:var(--text-base);cursor:pointer;background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left;transition:background var(--duration-fast) var(--easing-default)}.dashboard__page-item:hover{background:var(--clr-bg-tertiary)}.dashboard__page-item__chevron{margin-left:auto;color:var(--clr-text-tertiary)}.dashboard__hero{margin-bottom:var(--sp-6);border-radius:var(--radius-md);overflow:hidden;min-height:160px;background:var(--clr-bg-secondary)}.dashboard__hero-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);min-height:160px;color:var(--clr-text-tertiary)}.dashboard__hero-icon{opacity:.4}.dashboard__hero-text{font-size:var(--text-sm)}.dashboard__hero-canvas{width:100%;height:200px}.section-title{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--clr-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--sp-4)}.file-grid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.file-grid--2col{grid-template-columns:repeat(2,1fr)}.file-grid--4col{grid-template-columns:repeat(4,1fr)}.file-card{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);background:var(--clr-bg-secondary);border:1px solid var(--clr-border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--easing-default),border-color var(--duration-fast) var(--easing-default)}.file-card:hover{background:var(--clr-bg-tertiary);border-color:var(--clr-text-tertiary)}.file-card--folder{border-style:dashed}.file-card__thumb{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:var(--radius-sm);background:var(--clr-bg-tertiary)}.file-card__thumb--empty{width:100%;aspect-ratio:16 / 10;background:var(--clr-bg-tertiary);border-radius:var(--radius-sm)}.file-card__thumb--icon{width:100%;aspect-ratio:16 / 10;display:flex;align-items:center;justify-content:center;background:var(--clr-bg-tertiary);border-radius:var(--radius-sm);color:var(--clr-text-tertiary)}.file-card__name{font-size:var(--text-sm);font-weight:var(--fw-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-card__size{font-size:var(--text-xs);color:var(--clr-text-tertiary)}.section-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--sp-4)}.section-card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-4);background:var(--clr-bg-secondary);border:1px solid var(--clr-border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--easing-default)}.section-card:hover{background:var(--clr-bg-tertiary)}.section-list{display:flex;flex-direction:column}.section-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--clr-border-subtle);cursor:pointer;background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left;transition:background var(--duration-fast) var(--easing-default)}.section-row:hover{background:var(--clr-bg-tertiary)}.section-row__chevron{margin-left:auto;color:var(--clr-text-tertiary)}.tab{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--clr-text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color var(--duration-fast) var(--easing-default),border-color var(--duration-fast) var(--easing-default)}.tab--disabled{opacity:.5;cursor:not-allowed}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--fw-medium);cursor:pointer;border:none;transition:background var(--duration-fast) var(--easing-default),color var(--duration-fast) var(--easing-default)}.btn--primary:hover{background:var(--clr-accent-hover)}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--ghost:hover{background:var(--clr-bg-tertiary);color:var(--clr-text)}.btn--outline{background:transparent;color:var(--clr-text);border:1px solid var(--clr-border)}.btn--outline:hover{background:var(--clr-bg-tertiary)}.btn--danger{color:var(--clr-error)}.btn--danger:hover{background:var(--clr-error-bg)}.input{padding:var(--sp-2) var(--sp-3);background:var(--clr-bg-secondary);border:1px solid var(--clr-border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--clr-text);width:100%;transition:border-color var(--duration-fast) var(--easing-default)}.input:focus{border-color:var(--clr-accent);outline:none}.input--search{padding-left:var(--sp-4)}.radio-label{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);cursor:pointer}.crafts__search{margin-bottom:var(--sp-4)}.crafts__insights{display:flex;gap:var(--sp-4);padding:var(--sp-3);background:var(--clr-bg-secondary);border:1px solid var(--clr-border);border-radius:var(--radius-sm);margin-bottom:var(--sp-4);flex-wrap:wrap}.insights__stat{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--text-sm)}.crafts__tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--clr-border);margin-bottom:var(--sp-4)}.craft-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--clr-border-subtle);cursor:pointer;background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left;transition:background var(--duration-fast) var(--easing-default)}.craft-row:hover{background:var(--clr-bg-tertiary)}.craft-row--error{border-left:3px solid var(--clr-error)}.craft-row__icon{flex-shrink:0;color:var(--clr-text-secondary)}.craft-row__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.craft-row__name{font-weight:var(--fw-medium);font-size:var(--text-base)}.craft-row__desc{font-size:var(--text-sm);color:var(--clr-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.craft-row__chevron{color:var(--clr-text-tertiary);flex-shrink:0}.page--craft-editor{padding:0;max-width:none;display:flex;flex-direction:column}.page--stacked .editor__body{flex-direction:column}.editor__toolbar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--clr-border);height:var(--header-height);flex-shrink:0}.editor__title{font-weight:var(--fw-semibold);font-size:var(--text-base);flex:1}.editor__dirty{color:var(--clr-warning)}.editor__toolbar-actions{display:flex;gap:var(--sp-2)}.editor__body{display:flex;flex:1;overflow:hidden}.editor__pane-left{flex:1;min-width:0;overflow:auto;border-right:1px solid var(--clr-border)}.editor__pane-right{width:340px;min-width:280px;max-width:480px;display:flex;flex-direction:column;overflow:hidden}.editor__panel-tabs{display:flex;border-bottom:1px solid var(--clr-border);padding:0 var(--sp-2);flex-shrink:0}.editor__panel{flex:1;overflow:auto;padding:var(--sp-3)}.editor__codemirror{height:100%}.editor__fallback-textarea{width:100%;height:100%;min-height:calc(100dvh - var(--header-height));background:var(--clr-bg);color:var(--clr-text);border:none;resize:none;padding:var(--sp-4);font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6}.structure-tree{padding-left:var(--sp-4)}.structure-node{padding:2px 0}.structure-node__key{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--fw-medium)}.structure-node__line{font-size:var(--text-xs);color:var(--clr-text-tertiary);margin-left:var(--sp-1)}.problem-list{display:flex;flex-direction:column}.problem-item{display:flex;align-items:baseline;gap:var(--sp-2);padding:var(--sp-2) 0;font-size:var(--text-sm);border-bottom:1px solid var(--clr-border-subtle)}.problem-item--error .problem-item__loc{color:var(--clr-error)}.problem-item--warning .problem-item__loc{color:var(--clr-warning)}.problem-item__loc{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--clr-text-tertiary);white-space:nowrap}.problem-item__msg{flex:1}.playground__output{display:flex;flex-direction:column;gap:var(--sp-3)}.playground__error{color:var(--clr-error);font-size:var(--text-sm);padding:var(--sp-2);background:var(--clr-error-bg);border-radius:var(--radius-sm)}.playground__heading{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--clr-text-secondary)}.playground__ops{font-family:var(--font-mono);font-size:var(--text-xs)}.playground__op{padding:2px 0}.playground__timing{font-size:var(--text-xs);color:var(--clr-text-tertiary)}.drive__providers{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--clr-border);margin-bottom:var(--sp-4)}.drive__breadcrumb{display:flex;align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-4);font-size:var(--text-sm)}.breadcrumb__item{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);cursor:pointer;background:none;border:none;color:var(--clr-text-secondary);font-size:var(--text-sm);transition:background var(--duration-fast) var(--easing-default),color var(--duration-fast) var(--easing-default)}.breadcrumb__item:hover{background:var(--clr-bg-tertiary);color:var(--clr-text)}.breadcrumb__item--active{color:var(--clr-text);font-weight:var(--fw-medium)}.breadcrumb__sep{color:var(--clr-text-tertiary)}.settings__nav{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--clr-border);margin-bottom:var(--sp-6)}.settings__section{margin-bottom:var(--sp-6)}.settings__heading{font-size:var(--text-xl);font-weight:var(--fw-semibold);margin-bottom:var(--sp-4)}.settings__dl{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-2) var(--sp-6);font-size:var(--text-sm)}.settings__dl dt{color:var(--clr-text-secondary);font-weight:var(--fw-medium)}.settings__fieldset{border:none;padding:0}.settings__legend{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--clr-text-secondary);margin-bottom:var(--sp-3)}.settings__radio-group{display:flex;gap:var(--sp-4)}.settings__hint{font-size:var(--text-sm);color:var(--clr-text-tertiary);margin-top:var(--sp-2)}.settings__connection-list{display:flex;flex-direction:column;gap:var(--sp-2)}.connection-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);background:var(--clr-bg-secondary);border:1px solid var(--clr-border);border-radius:var(--radius-sm)}.connection-item__icon{flex-shrink:0;color:var(--clr-text-secondary)}.connection-item__info{flex:1;display:flex;flex-direction:column;gap:2px}.connection-item__label{font-size:var(--text-sm);color:var(--clr-text-secondary)}.container{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:0 var(--sp-4)}.grid{display:grid;gap:var(--sp-4)}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}.grid--auto-fill{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-6{gap:var(--sp-6)}.section{margin-bottom:var(--sp-8)}.section__title{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--clr-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--sp-4)}.empty-state{text-align:center;padding:var(--sp-8) var(--sp-4);color:var(--clr-text-tertiary);font-size:var(--text-sm)}.skeleton{background:var(--clr-bg-tertiary);border-radius:var(--radius-sm);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton--grid{height:200px}.skeleton--list{height:120px}.skeleton--tabs{height:40px;width:200px}.skeleton--editor{height:calc(100dvh - var(--header-height))}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.split-pane{display:flex;height:calc(100dvh - var(--header-height));overflow:hidden}.split-pane__left{flex:1;min-width:0;overflow:auto;border-right:1px solid var(--clr-border)}.split-pane__right{width:340px;min-width:280px;max-width:480px;overflow:auto;display:flex;flex-direction:column}.split-pane__right>*+*{border-top:1px solid var(--clr-border)}@media(max-width:1023px){.dashboard__sidebar{display:none}.dashboard__main{margin-left:0}.page--stacked .editor__body,.editor__body{flex-direction:column}.editor__pane-left{border-right:none;border-bottom:1px solid var(--clr-border)}.editor__pane-right{width:100%;max-width:none;max-height:40vh}.split-pane{flex-direction:column}.split-pane__left{border-right:none;border-bottom:1px solid var(--clr-border)}.split-pane__right{width:100%;max-width:none;max-height:40vh}.grid--4{grid-template-columns:repeat(2,1fr)}}@media(max-width:767px){.page{padding:var(--sp-4)}.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}.editor__pane-right,.split-pane__right{max-height:50vh}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);font-size:var(--text-sm);font-weight:var(--fw-medium);line-height:1;border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--easing-default),color var(--duration-fast) var(--easing-default),opacity var(--duration-fast) var(--easing-default);user-select:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--clr-accent);color:var(--clr-text-inverse)}.btn--primary:hover:not(:disabled){background:var(--clr-accent-hover)}.btn--secondary{background:var(--clr-bg-tertiary);color:var(--clr-text)}.btn--secondary:hover:not(:disabled){background:var(--clr-border)}.btn--ghost{background:transparent;color:var(--clr-text-secondary)}.btn--ghost:hover:not(:disabled){background:var(--clr-bg-tertiary);color:var(--clr-text)}.btn--danger{background:var(--clr-error);color:#fff}.btn--danger:hover:not(:disabled){opacity:.9}.btn--sm{padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs)}.btn--icon{padding:var(--sp-2);width:32px;height:32px}.input{width:100%;padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);background:var(--clr-bg);border:1px solid var(--clr-border);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--easing-default),box-shadow var(--duration-fast) var(--easing-default)}.input:focus{outline:none;border-color:var(--clr-accent);box-shadow:0 0 0 1px var(--clr-accent)}.input::placeholder{color:var(--clr-text-tertiary)}.input--error{border-color:var(--clr-error)}.input--error:focus{box-shadow:0 0 0 1px var(--clr-error)}.card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-md);padding:var(--sp-4);transition:border-color var(--duration-fast) var(--easing-default),box-shadow var(--duration-fast) var(--easing-default)}.card--interactive{cursor:pointer}.card--interactive:hover{border-color:var(--clr-text-tertiary);box-shadow:var(--shadow-sm)}.card--featured{border-radius:var(--radius-lg)}.card__title{font-size:var(--text-base);font-weight:var(--fw-semibold);margin-bottom:var(--sp-1)}.card__meta{font-size:var(--text-xs);color:var(--clr-text-tertiary)}.badge{display:inline-flex;align-items:center;padding:2px var(--sp-2);font-size:var(--text-xs);font-weight:var(--fw-medium);line-height:1.4;border-radius:var(--radius-full);white-space:nowrap}.badge--success{background:var(--clr-success-bg);color:var(--clr-success)}.badge--warning{background:var(--clr-warning-bg);color:var(--clr-warning)}.badge--error{background:var(--clr-error-bg);color:var(--clr-error)}.badge--info{background:var(--clr-info-bg);color:var(--clr-info)}.badge--neutral{background:var(--clr-bg-tertiary);color:var(--clr-text-secondary)}.tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--clr-border)}.tab{padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--clr-text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--duration-fast) var(--easing-default),border-color var(--duration-fast) var(--easing-default);cursor:pointer;user-select:none}.tab:hover{color:var(--clr-text)}.tab--active{color:var(--clr-text);border-bottom-color:var(--clr-accent)}.skeleton{background:var(--clr-bg-tertiary);border-radius:var(--radius-sm);animation:skeleton-shimmer 1.5s ease-in-out infinite}.skeleton--text{height:14px;width:100%;margin-bottom:var(--sp-2)}.skeleton--text:last-child{width:60%}.skeleton--card{height:120px;border-radius:var(--radius-md)}.skeleton--avatar{width:32px;height:32px;border-radius:var(--radius-full)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-12) var(--sp-4);text-align:center;color:var(--clr-text-tertiary)}.empty-state__icon{font-size:2rem;margin-bottom:var(--sp-3);opacity:.5}.empty-state__title{font-size:var(--text-base);font-weight:var(--fw-medium);color:var(--clr-text-secondary);margin-bottom:var(--sp-1)}.empty-state__desc{font-size:var(--text-sm);max-width:320px}.tooltip{position:absolute;padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);font-weight:var(--fw-medium);color:var(--clr-text-inverse);background:var(--clr-text);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;z-index:var(--z-tooltip);animation:fade-in var(--duration-fast) var(--easing-default)}.backdrop{position:fixed;inset:0;background:#0006;z-index:var(--z-overlay);animation:fade-in var(--duration-normal) var(--easing-default)}.overlay{position:fixed;z-index:var(--z-modal);background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);animation:scale-in var(--duration-normal) var(--easing-spring)}.toast-container{position:fixed;bottom:var(--sp-4);right:var(--sp-4);display:flex;flex-direction:column-reverse;gap:var(--sp-2);z-index:var(--z-toast);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--clr-text);color:var(--clr-text-inverse);border-radius:var(--radius-sm);font-size:var(--text-sm);box-shadow:var(--shadow-lg);pointer-events:auto;animation:slide-up var(--duration-normal) var(--easing-spring)}.ye{display:flex;height:100%;font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6;background:var(--clr-bg);border:1px solid var(--clr-border);border-radius:var(--radius-sm);overflow:hidden}.ye--focused{border-color:var(--clr-accent);box-shadow:0 0 0 1px var(--clr-accent)}.ye--ro{opacity:.7}.ye-gutter{flex-shrink:0;padding:var(--sp-2) 0;background:var(--clr-bg-secondary);border-right:1px solid var(--clr-border-subtle);overflow:hidden;user-select:none;text-align:right}.ye-ln{padding:0 var(--sp-2);color:var(--clr-text-tertiary)}.ye-ln--active{color:var(--clr-text);background:var(--clr-accent-subtle)}.ye-ln--err{color:var(--clr-error);background:var(--clr-error-bg)}.ye-ta{flex:1;padding:var(--sp-2) var(--sp-3);border:none;outline:none;background:transparent;color:var(--clr-text);font:inherit;line-height:inherit;resize:none;overflow:auto;white-space:pre}.ac-overlay{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);animation:fade-in var(--duration-fast) var(--easing-default)}.ac-list{padding:var(--sp-1) 0}.ac-item{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);cursor:pointer;font-size:var(--text-sm)}.ac-item--active{background:var(--clr-accent-subtle)}.ac-icon{flex-shrink:0;font-size:var(--text-xs)}.ac-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-detail{flex-shrink:0;font-size:var(--text-xs);color:var(--clr-text-tertiary)}.vu{display:flex;flex-direction:column;font-size:var(--text-sm)}.vu-bar{display:flex;gap:var(--sp-4);padding:var(--sp-2) var(--sp-3);background:var(--clr-bg-secondary);border-bottom:1px solid var(--clr-border-subtle)}.vu-count{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xs);font-weight:var(--fw-medium)}.vu-list{overflow-y:auto;max-height:200px}.vu-item{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);font-size:var(--text-xs);border-bottom:1px solid var(--clr-border-subtle)}.vu-item--clickable{cursor:pointer}.vu-item--clickable:hover{background:var(--clr-accent-subtle)}.vu-item--error{border-left:2px solid var(--clr-error)}.vu-item--warning{border-left:2px solid var(--clr-warning)}.vu-item--info{border-left:2px solid var(--clr-info)}.vu-sev{flex-shrink:0}.vu-loc{flex-shrink:0;color:var(--clr-text-tertiary);font-family:var(--font-mono)}.vu-msg{flex:1;min-width:0}.vu-src{flex-shrink:0;color:var(--clr-text-tertiary)}.vu-empty{padding:var(--sp-4);text-align:center;color:var(--clr-success);font-size:var(--text-sm)}.sp{display:flex;flex-direction:column;font-size:var(--text-sm)}.sp-header{display:flex;align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--clr-bg-secondary);border-bottom:1px solid var(--clr-border-subtle)}.sp-title{font-weight:var(--fw-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--clr-text-secondary)}.sp-tree{overflow-y:auto;max-height:300px;padding:var(--sp-1) 0}.sp-node{list-style:none}.sp-row{display:flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);cursor:pointer;border-radius:var(--radius-sm);user-select:none}.sp-row:hover{background:var(--clr-accent-subtle)}.sp-row--active{background:var(--clr-accent-subtle);font-weight:var(--fw-medium)}.sp-chevron{flex-shrink:0;font-size:var(--text-xs);color:var(--clr-text-tertiary);transition:transform var(--duration-fast) var(--easing-default);display:inline-block;width:12px;text-align:center}.sp-chevron--open{transform:rotate(90deg)}.sp-kind{flex-shrink:0;font-size:10px;font-family:var(--font-mono);font-weight:var(--fw-bold);width:18px;text-align:center}.sp-key{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-val{flex-shrink:0;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);color:var(--clr-text-tertiary)}.sp-line{flex-shrink:0;font-size:10px;color:var(--clr-text-tertiary);font-family:var(--font-mono)}.sp-children{list-style:none}.sp-empty{padding:var(--sp-4);text-align:center;color:var(--clr-text-tertiary);font-size:var(--text-xs)}.pg{display:flex;flex-direction:column;font-size:var(--text-sm)}.pg-toolbar{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);background:var(--clr-bg-secondary);border-bottom:1px solid var(--clr-border-subtle)}.pg-status{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xs);font-weight:var(--fw-semibold)}.pg-actions{display:flex;gap:var(--sp-1)}.pg-btn{padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);font-weight:var(--fw-medium);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--easing-default)}.pg-btn:hover:not(:disabled){background:var(--clr-bg-tertiary)}.pg-btn:disabled{opacity:.4;cursor:not-allowed}.pg-btn--run{color:var(--clr-success)}.pg-btn--stop{color:var(--clr-error)}.pg-console{flex:1;min-height:120px;max-height:300px;overflow-y:auto;padding:var(--sp-2) 0;font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.6;background:var(--clr-bg)}.pg-log{display:flex;gap:var(--sp-2);padding:1px var(--sp-3)}.pg-log:hover{background:var(--clr-bg-secondary)}.pg-log--warn{background:var(--clr-warning-bg)}.pg-log--error{background:var(--clr-error-bg)}.pg-ts{flex-shrink:0;color:var(--clr-text-tertiary)}.pg-prefix{flex-shrink:0;width:16px;text-align:center}.pg-msg{flex:1;min-width:0;white-space:pre-wrap;word-break:break-word}.pg-empty{padding:var(--sp-6);text-align:center;color:var(--clr-text-tertiary);font-family:var(--font-sans)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-100%) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-slide-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-100%) scale(.95)}}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-content-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}:root{--ease-spring: cubic-bezier(.22, 1, .36, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s}.anim-fade-in{animation:fade-in var(--duration-normal) var(--ease-spring) both}.anim-slide-up{animation:slide-up var(--duration-normal) var(--ease-spring) both}.anim-scale-in{animation:scale-in var(--duration-normal) var(--ease-spring) both}.anim-shimmer{background:linear-gradient(90deg,var(--color-surface, #1a1a1a) 25%,var(--color-surface-hover, #2a2a2a) 50%,var(--color-surface, #1a1a1a) 75%);background-size:200% 100%;animation:shimmer 1.5s var(--ease-in-out) infinite}.anim-spin{animation:spin .8s linear infinite}.anim-pulse{animation:pulse 2s var(--ease-in-out) infinite}.toast-enter{animation:toast-slide-in var(--duration-normal) var(--ease-spring) both}.toast-exit{animation:toast-slide-out var(--duration-fast) var(--ease-in-out) both}.modal-backdrop{animation:modal-backdrop-in var(--duration-fast) var(--ease-in-out) both}.modal-content{animation:modal-content-in var(--duration-normal) var(--ease-spring) both}.anim-stagger>*{animation:slide-up var(--duration-normal) var(--ease-spring) both}.anim-stagger>*:nth-child(1){animation-delay:0ms}.anim-stagger>*:nth-child(2){animation-delay:40ms}.anim-stagger>*:nth-child(3){animation-delay:80ms}.anim-stagger>*:nth-child(4){animation-delay:.12s}.anim-stagger>*:nth-child(5){animation-delay:.16s}.anim-stagger>*:nth-child(6){animation-delay:.2s}.anim-stagger>*:nth-child(7){animation-delay:.24s}.anim-stagger>*:nth-child(8){animation-delay:.28s}.anim-stagger>*:nth-child(9){animation-delay:.32s}.anim-stagger>*:nth-child(10){animation-delay:.36s}.anim-stagger>*:nth-child(n+11){animation-delay:.4s}.gpu-accelerated{will-change:transform,opacity;transform:translateZ(0)}.transition-colors{transition:color var(--duration-fast) var(--ease-in-out),background-color var(--duration-fast) var(--ease-in-out),border-color var(--duration-fast) var(--ease-in-out)}.transition-transform{transition:transform var(--duration-fast) var(--ease-spring)}.transition-opacity{transition:opacity var(--duration-fast) var(--ease-in-out)}.transition-all{transition:all var(--duration-normal) var(--ease-spring)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.anim-shimmer{animation:none;background:var(--color-surface-hover, #2a2a2a)}.anim-spin{animation:none}}
