*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#2563eb;--primary-dark:#1d4ed8;--primary-light:#dbeafe;--primary-bg:#eff6ff;--success:#22c55e;--success-dark:#16a34a;--success-bg:#f0fdf4;--danger:#ef4444;--danger-dark:#dc2626;--danger-bg:#fef2f2;--warning:#f97316;--warning-bg:#fff7ed;--purple:#a855f7;--purple-bg:#f5f3ff;--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;--font:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:20px;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow:0 4px 12px #00000014;--shadow-lg:0 10px 30px #0000001f;--shadow-xl:0 20px 60px #00000026;--shadow-primary:0 4px 15px #2563eb59}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font);color:var(--gray-900);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;line-height:1.5}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--gray-300)}input,select,textarea,button{font-family:var(--font)}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fadeIn{animation:.3s forwards fadeIn}.animate-slideUp{animation:.35s forwards slideUp}.animate-scaleIn{animation:.2s forwards scaleIn}.animate-spin{animation:.8s linear infinite spin}.animate-pulse{animation:1.5s infinite pulse}@media print{.no-print{display:none!important}.print-only{display:block!important}body{background:#fff}}.print-only{display:none}.text-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
