:root{--surface-base:#0f1117;--surface-raised:#1a1d27;--surface-overlay:#242733;--surface-border:#2e3140;--text-primary:#e8e9ed;--text-secondary:#9598a6;--text-muted:#5c5f6e;--accent-primary:#4f8fff;--accent-primary-hover:#6ba3ff;--accent-primary-muted:rgba(79,143,255,.12);--status-success:#34d399;--status-success-muted:rgba(52,211,153,.12);--status-warning:#fbbf24;--status-warning-muted:rgba(251,191,36,.12);--status-error:#f87171;--status-error-muted:rgba(248,113,113,.12);--status-info:#60a5fa;--status-info-muted:rgba(96,165,250,.12);--focus-ring:rgba(79,143,255,.5);--hover-overlay:hsla(0,0%,100%,.04);--card-shadow:none;--font-body:"Inter","Rubik",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-lg:1rem;--text-xl:1.25rem;--text-2xl:1.5rem;--font-normal:400;--font-medium:500;--font-semibold:600;--leading-tight:1.25;--leading-normal:1.5;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--sidebar-width:220px;--sidebar-width-collapsed:56px;--control-height:36px;--radius-sm:6px;--radius-md:8px}[data-theme=light]{--surface-base:#f8f9fc;--surface-raised:#fff;--surface-overlay:#fff;--surface-border:#e2e4ea;--text-primary:#1a1d27;--text-secondary:#5c5f6e;--text-muted:#9598a6;--hover-overlay:rgba(0,0,0,.04);--card-shadow:0 1px 3px rgba(0,0,0,.08)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--surface-base);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}a{color:var(--accent-primary);text-decoration:none}a:hover{color:var(--accent-primary-hover)}button{font:inherit;cursor:pointer}.ltr{direction:ltr;unicode-bidi:isolate}[dir=rtl] .icon-directional{transform:scaleX(-1)}:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);border-radius:var(--radius-sm)}.page-enter-active,.page-leave-active{transition:opacity .15s ease}.page-enter-from,.page-leave-to{opacity:0}@keyframes row-pulse{0%{background:var(--status-warning-muted)}to{background:transparent}}.row-updated{animation:row-pulse .3s ease-out}*{scrollbar-width:thin;scrollbar-color:var(--surface-border) transparent}
