*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;tab-size:4}html,body{height:100%}body{line-height:var(--line-height,1.5);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root{isolation:isolate}body{font-family:var(--font-family,"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:var(--font-size-base,.875rem);color:var(--color-text);background-color:var(--color-bg)}h1{font-size:var(--font-size-2xl,1.5rem);font-weight:var(--font-weight-bold,700);letter-spacing:-.01em;line-height:1.25}h2{font-size:var(--font-size-xl,1.25rem);font-weight:var(--font-weight-semibold,600);line-height:1.3}h3{font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-semibold,600);line-height:1.35}h4{font-size:var(--font-size-base,.875rem);font-weight:var(--font-weight-semibold,600);line-height:1.4}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-dark)}code,pre{font-family:var(--font-family-mono,"JetBrains Mono", "Fira Code", monospace);font-size:.8125rem}::selection{background-color:var(--color-primary-light,#ea580c26);color:var(--color-text)}:focus-visible{outline:2px solid var(--color-primary,var(--color-primary));outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border,var(--color-border));border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-muted,#94a3b8)}.route-loading{flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;display:flex}.route-loading__label{color:var(--color-text-secondary,#94a3b8);font-size:.85rem}.error-page__hint{color:var(--color-text-secondary,#94a3b8);margin-bottom:16px}.error-page__detail{opacity:.6;white-space:pre-wrap;word-break:break-all;margin-bottom:24px;font-size:.75rem}:root{--sidebar-width:260px;--sidebar-rail-width:60px;--right-panel-width:320px;--toolbar-height:48px;--header-height:56px;--statusbar-height:28px;--content-padding:16px;--color-primary:var(--color-primary);--color-primary-dark:var(--color-primary-dark);--color-primary-light:#ea580c14;--color-primary-contrast:#fff;--color-secondary:#6366f1;--color-secondary-dark:#4f46e5;--color-secondary-light:#6366f114;--color-success:#16a34a;--color-success-light:#16a34a14;--color-warning:#d97706;--color-warning-light:#d9770614;--color-error:#dc2626;--color-error-light:#dc262614;--color-info:#0891b2;--color-info-light:#0891b214;--color-bg:var(--color-bg);--color-bg-primary:#fff;--color-bg-secondary:#f5f6f8;--color-bg-tertiary:var(--color-border-secondary);--color-bg-hover:#0000000a;--color-bg-active:#ea580c14;--color-bg-selected:#ea580c1f;--color-bg-overlay:#0006;--color-bg-input:#fff;--color-bg-danger:#fef2f2;--color-surface:#fff;--color-surface-raised:var(--color-surface-raised);--color-text:var(--color-text);--color-text-primary:#1a1d23;--color-text-secondary:#5f6775;--color-text-tertiary:#8b93a1;--color-text-inverse:#fff;--color-text-link:var(--color-primary);--color-text-danger:#dc2626;--color-muted:var(--color-muted);--color-disabled:#cbd5e1;--color-border:var(--color-border);--color-border-strong:#cbd5e1;--color-border-primary:var(--color-border-primary);--color-border-secondary:var(--color-border-secondary);--color-border-focus:var(--color-primary);--color-border-danger:#dc2626;--color-sidebar-bg:#1c1917;--color-sidebar-text:#c5c0bb;--color-sidebar-active:#ea580c40;--color-sidebar-hover:#ffffff14;--color-sidebar-border:#94a3b826;--color-sidebar-section:#ffffff0f;--color-sidebar-active-indicator:var(--color-primary);--color-text-sidebar:#c5c0bb;--color-text-sidebar-active:#fff;--color-bg-toolbar:#fff;--color-bg-statusbar:#1c1917;--color-accent-primary:var(--color-primary);--color-accent-success:#16a34a;--color-accent-warning:#d97706;--color-accent-danger:#dc2626;--color-badge-bg:#dc2626;--color-badge-text:#fff;--color-table-header-bg:#f5f6f8;--color-table-stripe:#00000005;--color-table-hover:#0000000a;--color-table-selected:#ea580c1a;--table-row-height:36px;--table-row-height-compact:28px;--table-header-height:38px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--font-size-xs:.6875rem;--font-size-sm:.75rem;--font-size-md:.8125rem;--font-size-base:.875rem;--font-size-lg:1rem;--font-size-xl:1.125rem;--font-size-2xl:1.375rem;--font-size-3xl:1.875rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height:1.5;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.75;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-9:2.25rem;--space-10:2.5rem;--space-11:2.75rem;--space-12:3rem;--radius-xs:4px;--radius-sm:6px;--radius:8px;--radius-md:10px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--border-radius-sm:6px;--shadow-sm:0 1px 2px #0000000f;--shadow:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 2px 8px #0000001a;--shadow-lg:0 4px 16px #0000001f;--shadow-xl:0 8px 32px #00000029;--transition-fast:.12s ease;--transition:.2s ease;--transition-normal:.2s ease;--transition-slow:.3s ease;--z-base:1;--z-dropdown:50;--z-sidebar:100;--z-toolbar:100;--z-overlay:150;--z-dialog:200;--z-modal:200;--z-toast:300;--z-notification:300;--z-tooltip:400}[data-theme=light]{--color-bg:var(--color-bg);--color-surface:#fff;--color-surface-raised:var(--color-surface-raised);--color-text:var(--color-text);--color-text-secondary:var(--color-text-secondary);--color-muted:var(--color-muted);--color-disabled:#cbd5e1;--color-border:var(--color-border);--color-border-strong:#cbd5e1;--color-primary:var(--color-primary);--color-primary-dark:var(--color-primary-dark);--color-primary-light:#ea580c14;--color-primary-contrast:#fff;--color-success:#16a34a;--color-success-light:#16a34a14;--color-warning:#d97706;--color-warning-light:#d9770614;--color-error:#dc2626;--color-error-light:#dc262614;--color-sidebar-bg:#1c1917;--color-sidebar-text:var(--color-sidebar-text);--color-sidebar-active:#ea580c33;--color-sidebar-hover:#ffffff14;--color-sidebar-border:#94a3b826;--shadow-sm:0 1px 2px #0f172a0a;--shadow:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 4px 6px #0f172a0f, 0 2px 4px #0f172a0a;--shadow-lg:0 10px 25px #0f172a14;--shadow-xl:0 20px 40px #0f172a1f}[data-theme=dark]{--color-bg:#0c0a09;--color-surface:#1c1917;--color-surface-raised:#292524;--color-text:var(--color-text);--color-text-secondary:var(--color-text-secondary);--color-muted:var(--color-muted);--color-disabled:#44403c;--color-border:#292524;--color-border-strong:#44403c;--color-primary:#fb923c;--color-primary-dark:#fdba74;--color-primary-light:#fb923c26;--color-primary-contrast:#fff;--color-success:#22c55e;--color-success-light:#22c55e1f;--color-warning:#f59e0b;--color-warning-light:#f59e0b1f;--color-error:#ef4444;--color-error-light:#ef44441f;--color-sidebar-bg:#0c0a09;--color-sidebar-text:var(--color-sidebar-text);--color-sidebar-active:#fb923c33;--color-sidebar-hover:#ffffff0f;--color-sidebar-border:#47556966;--color-bg-toolbar:#1c1917;--color-bg-statusbar:#0c0a09;--color-bg-secondary:var(--color-bg-secondary);--color-border-primary:#292524;--color-border-secondary:#1c1917;--color-table-header-bg:#1c1917;--color-table-stripe:#ffffff05;--color-table-hover:#ffffff0a;--shadow-sm:0 1px 2px #0003;--shadow:0 1px 3px #00000040, 0 1px 2px #00000026;--shadow-md:0 4px 6px #00000040, 0 2px 4px #00000026;--shadow-lg:0 10px 25px #0000004d;--shadow-xl:0 20px 40px #0006}html,body{height:100%;margin:0;padding:0}#root{flex-direction:column;height:100vh;display:flex;overflow:hidden}body{font-family:var(--font-family,"Inter", system-ui, -apple-system, sans-serif);font-size:var(--font-size-base,.875rem);line-height:var(--line-height,1.5);color:var(--color-text,var(--color-text));background-color:var(--color-bg,var(--color-bg));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body,.sidebar,.app-main,.auth-card{transition:background-color .2s,color .2s,border-color .2s}.app-shell{flex:auto;min-height:0}.auth-layout{background:var(--color-bg,var(--color-bg));justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:var(--color-surface,#fff);border-radius:var(--radius,12px);box-shadow:var(--shadow-lg,0 10px 25px #0f172a14);text-align:center;width:100%;max-width:420px;padding:2.5rem}.auth-brand h1{margin:0 0 1.5rem;font-size:1.5rem;font-weight:700}.error-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.error-page h1{color:var(--color-text,var(--color-text));margin-bottom:.5rem;font-size:2rem;font-weight:700}.error-page p{color:var(--color-muted,var(--color-muted));margin-bottom:1.5rem}.page-content{max-width:1400px;margin:0 auto}.app-loading-skeleton{flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:100vh;display:flex}.app-loading-text{color:var(--color-muted,var(--color-muted));font-size:.875rem}.route-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.spinner{border:3px solid var(--color-border,var(--color-border));border-top-color:var(--color-primary,var(--color-primary));border-radius:50%;width:2rem;height:2rem;animation:.8s linear infinite spin}.app-loading-spinner{border:4px solid var(--color-border,var(--color-border));border-top-color:var(--color-primary,var(--color-primary));border-radius:50%;width:3rem;height:3rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn{border-radius:var(--radius-sm,8px);cursor:pointer;background:var(--color-primary,var(--color-primary));color:#fff;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background-color .15s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--color-primary-dark,var(--color-primary-dark))}.btn.full{width:100%}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
