:root{--bg-layer-0:#0A0E1A;--bg-layer-1:#0F1319;--bg-layer-2:#14171F;--bg-layer-3:#1A1F2E;--bg-layer-4:#242938;--bg-layer-5:#2D3347;--surface-0:var(--bg-layer-0);--surface-1:var(--bg-layer-1);--surface-2:var(--bg-layer-2);--surface-3:var(--bg-layer-3);--surface-4:var(--bg-layer-4);--surface-5:var(--bg-layer-5);--surface-base:var(--bg-layer-0);--surface-raised:var(--bg-layer-2);--surface-overlay:var(--bg-layer-3);--surface-modal:rgba(17,24,39,0.85);--border-subtle:rgba(255,255,255,0.04);--border-default:rgba(255,255,255,0.08);--border-strong:rgba(255,255,255,0.12);--border-emphasis:rgba(255,255,255,0.16);--border-gradient-start:rgba(255,255,255,0.12);--border-gradient-mid:rgba(255,255,255,0.04);--border-gradient-end:rgba(59,130,246,0.08);--divider-horizontal:linear-gradient(90deg,transparent,rgba(255,255,255,0.1) 50%,transparent);--font-primary:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;--font-mono:"SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,"Courier New",monospace;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-lg:15px;--text-xl:16px;--text-2xl:20px;--text-3xl:24px;--text-4xl:28px;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--tracking-tight:-0.025em;--tracking-normal:0;--tracking-wide:0.025em;--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-200:#bfdbfe;--primary-300:#93c5fd;--primary-400:#60a5fa;--primary-500:#3b82f6;--primary-600:#2563eb;--primary-700:#1d4ed8;--primary-800:#1e40af;--primary-900:#1e3a8a;--success-50:#f0fdf4;--success-100:#dcfce7;--success-200:#bbf7d0;--success-300:#86efac;--success-400:#4ade80;--success-500:#22c55e;--success-600:#16a34a;--success-700:#15803d;--success-800:#166534;--success-900:#14532d;--warning-50:#fff7ed;--warning-100:#ffedd5;--warning-200:#fed7aa;--warning-300:#fdba74;--warning-400:#fb923c;--warning-500:#f97316;--warning-600:#ea580c;--warning-700:#c2410c;--warning-800:#9a3412;--warning-900:#7c2d12;--danger-50:#fef2f2;--danger-100:#fee2e2;--danger-200:#fecaca;--danger-300:#fca5a5;--danger-400:#f87171;--danger-500:#ef4444;--danger-600:#dc2626;--danger-700:#b91c1c;--danger-800:#991b1b;--danger-900:#7f1d1d;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--color-background:#0A0E1A;--color-surface:#14171F;--color-surface-elevated:#1A1F2E;--color-border:rgba(255,255,255,0.08);--color-border-hover:rgba(255,255,255,0.12);--text-primary:#F8FAFC;--text-secondary:#CBD5E1;--text-tertiary:#94A3B8;--text-disabled:#64748B;--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-tertiary:var(--text-tertiary);--color-text-disabled:var(--text-disabled);--color-text-inverse:#111827;--color-link:var(--primary-500);--color-link-hover:var(--primary-400);--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--shadow-xs:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-sm:0 0 0 1px rgba(255,255,255,0.05),0 1px 2px rgba(0,0,0,0.4),0 0 8px rgba(59,130,246,0.05);--shadow-md:0 0 0 1px rgba(255,255,255,0.05),0 4px 6px rgba(0,0,0,0.3),0 2px 16px rgba(59,130,246,0.08),0 0 24px rgba(139,92,246,0.06);--shadow-lg:0 0 0 1px rgba(255,255,255,0.06),0 10px 15px rgba(0,0,0,0.4),0 4px 24px rgba(59,130,246,0.12),0 0 32px rgba(139,92,246,0.08);--shadow-xl:0 0 0 1px rgba(255,255,255,0.08),0 20px 25px rgba(0,0,0,0.5),0 8px 32px rgba(59,130,246,0.15),0 0 48px rgba(139,92,246,0.1);--shadow-glow:0 0 0 1px rgba(255,255,255,0.08),0 8px 16px rgba(0,0,0,0.5),0 0 32px rgba(59,130,246,0.15),0 0 48px rgba(139,92,246,0.1);--shadow-focus:0 0 0 3px rgba(59,130,246,0.1);--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--radius-full:9999px;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:200ms cubic-bezier(0.4,0,0.2,1);--transition-slow:300ms cubic-bezier(0.4,0,0.2,1);--transition-slower:500ms cubic-bezier(0.4,0,0.2,1);--ease-in:cubic-bezier(0.4,0,1,1);--ease-out:cubic-bezier(0,0,0.2,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--z-base:0;--z-dropdown:1000;--z-sticky:1100;--z-fixed:1200;--z-modal-backdrop:1300;--z-modal:1400;--z-popover:1500;--z-tooltip:1600;--z-notification:1700;--sidebar-width-collapsed:64px;--sidebar-width-expanded:280px;--header-height:64px;--content-max-width:1440px;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1536px}@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-primary);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-background)}.text-display{font-size:var(--text-4xl)}.text-display,.text-h1{line-height:var(--leading-tight);font-weight:var(--font-semibold);letter-spacing:var(--tracking-tight)}.text-h1{font-size:var(--text-3xl)}.text-h2{font-size:var(--text-2xl)}.text-h2,.text-h3{line-height:var(--leading-snug);font-weight:var(--font-medium)}.text-h3{font-size:var(--text-xl)}.text-lg{font-size:var(--text-lg);line-height:var(--leading-relaxed)}.text-base{font-size:var(--text-base)}.text-base,.text-sm{line-height:var(--leading-normal)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs);line-height:var(--leading-normal)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.font-mono{font-family:var(--font-mono);font-variant-ligatures:none}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-disabled{color:var(--color-text-disabled)}.text-inverse{color:var(--color-text-inverse)}a{color:var(--color-link);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-link-hover)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.truncate{text-overflow:ellipsis}.sr-only,.truncate{overflow:hidden;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);border-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-medium);line-height:var(--leading-tight);border-radius:var(--radius-lg);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background-color:var(--primary-600);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background-color:var(--primary-700);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--gray-50);border-color:var(--color-border-hover)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background-color:var(--gray-100);color:var(--color-text-primary)}.btn-danger{background-color:var(--danger-600);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background-color:var(--danger-700)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-lg)}.btn-icon{padding:var(--space-2);width:36px;height:36px}.btn-icon.btn-sm{width:32px;height:32px}.btn-icon.btn-lg{width:44px;height:44px}.input{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-primary);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.input::-moz-placeholder{color:var(--color-text-tertiary)}.input::placeholder{color:var(--color-text-tertiary)}.input:hover:not(:disabled){border-color:var(--color-border-hover)}.input:focus{outline:none;border-color:var(--primary-600);box-shadow:var(--shadow-focus)}.input:disabled{background-color:var(--gray-100);color:var(--color-text-disabled);cursor:not-allowed}.input-error{border-color:var(--danger-600)}.input-error:focus{box-shadow:0 0 0 3px rgba(220,38,38,.5)}.textarea{min-height:80px;resize:vertical}.input-group{display:flex;flex-direction:column;gap:var(--space-2)}.input-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.input-hint{font-size:var(--text-sm);color:var(--color-text-tertiary)}.input-error-message{font-size:var(--text-sm);color:var(--danger-600)}.card{background-color:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.card-interactive{cursor:pointer}.card-interactive:active{transform:scale(.99)}.card-accent{border-left:4px solid}.card-accent-primary{border-left-color:var(--primary-600)}.card-accent-success{border-left-color:var(--success-600)}.card-accent-warning{border-left-color:var(--warning-600)}.card-accent-danger{border-left-color:var(--danger-600)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.card-footer{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--font-medium);line-height:1;border-radius:var(--radius-md);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.badge-primary{background-color:var(--primary-100);color:var(--primary-700)}.badge-success{background-color:var(--success-100);color:var(--success-700)}.badge-warning{background-color:var(--warning-100);color:var(--warning-700)}.badge-danger{background-color:var(--danger-100);color:var(--danger-700)}.badge-neutral{background-color:var(--gray-100);color:var(--gray-700)}.citation{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--font-medium);background-color:var(--primary-50);color:var(--primary-600);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none}.citation:hover{background-color:var(--primary-600);color:white;transform:scale(1.1)}.citation:active{transform:scale(1.05)}.progress{width:100%;height:8px;background-color:var(--gray-200);overflow:hidden}.progress,.progress-bar{border-radius:var(--radius-full)}.progress-bar{height:100%;background:linear-gradient(90deg,var(--primary-600),var(--primary-400));transition:width var(--transition-slow)}.progress-bar-animated{animation:progress-pulse 1.5s ease-in-out infinite}@keyframes progress-pulse{0%,to{opacity:1}50%{opacity:.7}}.tooltip{position:absolute;max-width:300px;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-text-inverse);background-color:var(--gray-900);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity var(--transition-fast),transform var(--transition-fast);z-index:var(--z-tooltip)}.tooltip.visible{opacity:1;transform:translateY(0)}.divider{height:1px;background-color:var(--color-border);border:none}.divider-thick{height:2px}.divider-vertical{width:1px;height:auto;align-self:stretch}.skeleton{background:linear-gradient(90deg,var(--gray-200) 0,var(--gray-100) 50%,var(--gray-200) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{display:inline-block;width:20px;height:20px;border:2px solid rgba(156,163,175,.3);border-top:2px solid var(--primary-500);border-radius:var(--radius-full);animation:spinner-rotate .6s linear infinite}@keyframes spinner-rotate{to{transform:rotate(1turn)}}.spinner-lg{width:32px;height:32px;border-width:3px}.typing-indicator{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-4)}.typing-indicator span{width:8px;height:8px;background-color:var(--gray-400);border-radius:var(--radius-full);animation:typing-bounce 1.4s ease-in-out infinite}.typing-indicator span:first-child{animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-10px)}}.text-separator,rator{color:var(--color-text-tertiary);-webkit-user-select:none;-moz-user-select:none;user-select:none}