:root{--primary:#2563eb;--primary-dark:#1e40af;--primary-light:#3b82f6;--secondary:#64748b;--accent:#0ea5e9;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--dark:#0f172a;--dark-light:#1e293b;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-primary:#ffffff;--bg-secondary:var(--gray-50);--bg-dark:var(--dark);--text-primary:var(--dark);--text-secondary:var(--gray-600);--text-muted:var(--gray-500);--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04);--shadow-2xl:0 25px 50px -12px rgba(0,0,0,0.25);--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:0.375rem;--radius:0.5rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--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);--font-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;--font-mono:'JetBrains Mono','Fira Code',monospace;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{font-family:var(--font-sans);line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);overflow-x:hidden}*:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}.skip-link{position:absolute;top:-40px;left:0;background:var(--primary);color:white;padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;z-index:var(--z-tooltip);border-radius:0 0 var(--radius) 0}.skip-link:focus{top:0}[aria-hidden="true"]{display:none}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;color:var(--text-primary);margin-bottom:var(--spacing-md)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-bottom:var(--spacing-md);color:var(--text-secondary)}a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:0.9375rem;font-weight:600;line-height:1.5;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:all var(--transition-base);text-decoration:none;position:relative;overflow:hidden;user-select:none;white-space:nowrap}.btn::before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,0.3);transform:translate(-50%,-50%);transition:width 0.6s,height 0.6s}.btn:active::before{width:300px;height:300px}.btn:disabled{opacity:0.6;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--primary);color:white;box-shadow:var(--shadow-md)}.btn-primary:hover{background:var(--primary-dark);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:var(--shadow)}.btn-secondary{background:white;color:var(--primary);border-color:var(--gray-300);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--gray-50);border-color:var(--primary);box-shadow:var(--shadow)}.btn-ghost{background:transparent;color:var(--primary);border-color:transparent}.btn-ghost:hover{background:var(--gray-100)}.btn-danger{background:var(--danger);color:white}.btn-danger:hover{background:#dc2626}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:0.875rem}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1rem}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;font-size:0.875rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.form-label.required::after{content:' *';color:var(--danger)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:0.9375rem;line-height:1.5;color:var(--text-primary);background-color:white;border:1px solid var(--gray-300);border-radius:var(--radius);transition:all var(--transition-fast);font-family:inherit}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,0.1)}.form-input:invalid:not(:placeholder-shown),.form-select:invalid:not(:placeholder-shown){border-color:var(--danger)}.form-input:valid:not(:placeholder-shown){border-color:var(--success)}.form-textarea{min-height:120px;resize:vertical}.form-help{display:block;font-size:0.875rem;color:var(--text-muted);margin-top:var(--spacing-xs)}.form-error{display:block;font-size:0.875rem;color:var(--danger);margin-top:var(--spacing-xs)}.form-check{display:flex;align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.form-check-input{width:1.25rem;height:1.25rem;margin-top:0.125rem;cursor:pointer;accent-color:var(--primary)}.form-check-label{font-size:0.9375rem;color:var(--text-secondary);cursor:pointer}.card{background:white;border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--gray-200);background:var(--gray-50)}.card-body{padding:var(--spacing-lg)}.card-footer{padding:var(--spacing-lg);border-top:1px solid var(--gray-200);background:var(--gray-50)}.alert{padding:var(--spacing-md);border-radius:var(--radius);border:1px solid;margin-bottom:var(--spacing-md);display:flex;align-items:flex-start;gap:var(--spacing-sm)}.alert-icon{flex-shrink:0;font-size:1.25rem}.alert-success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.alert-danger{background:#fff1f2;border-color:#fecdd3;color:#991b1b}.alert-warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.alert-info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.toast-container{position:fixed;top:var(--spacing-lg);right:var(--spacing-lg);z-index:var(--z-tooltip);display:flex;flex-direction:column;gap:var(--spacing-sm);max-width:400px}.toast{background:white;border-radius:var(--radius);box-shadow:var(--shadow-xl);padding:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-sm);animation:slideInRight 0.3s ease-out;border-left:4px solid}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-warning{border-left-color:var(--warning)}.toast-info{border-left-color:var(--info)}@keyframes slideInRight{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.loading-spinner{display:inline-block;width:1.5rem;height:1.5rem;border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin 0.6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient( 90deg,var(--gray-200) 25%,var(--gray-100) 50%,var(--gray-200) 75% );background-size:200% 100%;animation:loading 1.5s ease-in-out infinite;border-radius:var(--radius)}@keyframes loading{0%{background-position:200% 0}100%{background-position:-200% 0}}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}@media (max-width:768px){.container{padding:0 var(--spacing-md)}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-sm)}.mt-2{margin-top:var(--spacing-md)}.mt-3{margin-top:var(--spacing-lg)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:var(--spacing-lg)}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}