:root{--color-primary: #4440E2;--color-primary-light: #5c5ae8;--color-primary-dark: #3835c4;--color-sidebar: #452674;--color-sidebar-dark: #361d5c;--color-sidebar-text: rgba(255, 255, 255, .85);--color-sidebar-text-muted: rgba(255, 255, 255, .6);--color-sidebar-active: rgba(68, 64, 226, .9);--color-background: #f8fafc;--color-surface: #ffffff;--color-surface-elevated: #ffffff;--color-text-primary: #1e293b;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-text-inverse: #ffffff;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-accent: #06b6d4;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--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);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--sidebar-width: 260px;--sidebar-collapsed-width: 72px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family),serif;font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-background);min-height:100vh}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-family:inherit;font-size:var(--font-size-sm);font-weight:500;line-height:var(--line-height-tight);text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-dark)}.btn--secondary{background-color:transparent;color:var(--color-text-primary);border:1px solid var(--color-border)}.btn--secondary:hover:not(:disabled){background-color:var(--color-background)}.btn--large{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-base)}.btn--full-width{width:100%}.form-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.form-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input::placeholder{color:var(--color-text-muted)}.form-input:hover{border-color:var(--color-text-muted)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4440e226}.form-input.has-error{border-color:var(--color-error)}.form-input.has-error:focus{box-shadow:0 0 0 3px #ef444426}.form-error{font-size:var(--font-size-sm);color:var(--color-error)}.card{border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn var(--transition-normal)}.animate-slide-up{animation:slideInUp var(--transition-normal)}.animate-spin{animation:spin 1s linear infinite}
