:root{--color-primary: #260086;--color-primary-light: #3d14a3;--color-primary-dark: #1a005c;--color-primary-gradient: linear-gradient(90deg, #6e43db, #260086);--color-secondary: #00b4d8;--color-accent: #ff6b6b;--color-success: #10b981;--color-error: #f97373;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--bg-primary: #ffffff;--bg-secondary: #f4f5fb;--bg-tertiary: #eef2ff;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", 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-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--border-radius-sm: .375rem;--border-radius-md: .5rem;--border-radius-lg: .75rem;--border-radius-xl: 1rem;--border-radius-2xl: 1.375rem;--border-radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1);--shadow-primary: 0 10px 20px rgba(79, 70, 229, .25);--shadow-primary-hover: 0 14px 28px rgba(79, 70, 229, .32);--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .3s ease}*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg-secondary);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-gray-900);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{position:relative;display:block;width:100%;min-height:100vh;overflow-x:hidden}.affi-swal-popup{border-radius:var(--border-radius-2xl)!important;padding:22px 24px 20px!important;font-family:var(--font-family)!important;box-shadow:0 18px 45px #0f172a2e!important}.affi-swal-title{font-size:18px!important;font-weight:var(--font-semibold)!important;color:var(--color-gray-900)!important;margin-bottom:6px!important}.affi-swal-text{font-size:14px!important;color:var(--color-gray-500)!important}.affi-swal-popup .swal2-icon{margin-top:6px!important;margin-bottom:10px!important}.affi-swal-popup .swal2-icon.swal2-error{border-color:var(--color-error)!important;color:var(--color-error)!important}.affi-swal-popup .swal2-icon.swal2-success{border-color:var(--color-primary)!important;color:var(--color-primary)!important}.affi-swal-popup .swal2-icon.swal2-warning{border-color:#f59e0b!important;color:#f59e0b!important}.affi-swal-popup .swal2-icon.swal2-info{border-color:var(--color-secondary)!important;color:var(--color-secondary)!important}.affi-swal-btn{border-radius:var(--border-radius-full)!important;padding:8px 20px!important;font-size:13px!important;font-weight:var(--font-medium)!important;border:none!important;cursor:pointer!important;min-width:90px!important;transition:background-color var(--transition-fast),transform .06s ease,box-shadow var(--transition-fast)!important}.affi-swal-btn--primary{background:var(--color-primary-gradient)!important;color:#fff!important;box-shadow:var(--shadow-primary)!important}.affi-swal-btn--primary:hover{transform:translateY(-1px)!important;box-shadow:var(--shadow-primary-hover)!important}.affi-swal-btn--primary:active{transform:translateY(0)!important}.affi-swal-btn--ghost{background:var(--bg-tertiary)!important;color:var(--color-primary)!important;margin-left:8px!important}.affi-swal-btn--ghost:hover{background:#e0e7ff!important}.affi-swal-btn--ghost:active{transform:scale(.98)!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--border-radius-md)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.text-primary{color:var(--color-primary)!important}.bg-primary{background:var(--color-primary)!important}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.fade-in{animation:fadeIn var(--transition-base)}.slide-in{animation:slideIn var(--transition-base)}
