:root{--primary-50:#f0f4f9;--primary-100:#dbe4f0;--primary-200:#b7cae1;--primary-300:#93b0d2;--primary-400:#6f96c3;--primary-500:#4b7cb4;--primary-600:#3d6599;--primary-700:#2f4e7e;--primary-800:#213763;--primary-900:#1e3a5f;--secondary-50:#fffbeb;--secondary-100:#fef3c7;--secondary-200:#fde68a;--secondary-300:#fcd34d;--secondary-400:#fbbf24;--secondary-500:#f59e0b;--secondary-600:#d97706;--secondary-700:#b45309;--neutral-50:#f9fafb;--neutral-100:#f3f4f6;--neutral-200:#e5e7eb;--neutral-300:#d1d5db;--neutral-400:#9ca3af;--neutral-500:#6b7280;--neutral-600:#4b5563;--neutral-700:#374151;--neutral-800:#1f2937;--neutral-900:#111827;--success-light:#d1fae5;--success-main:#10b981;--success-dark:#047857;--error-light:#fee2e2;--error-main:#ef4444;--error-dark:#dc2626;--warning-light:#fef3c7;--warning-main:#f59e0b;--warning-dark:#d97706;--info-light:#dbeafe;--info-main:#3b82f6;--info-dark:#1d4ed8;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--neutral-50);color:var(--neutral-900);font-size:16px;line-height:1.5}#root{width:100%;min-height:100vh}@keyframes skeleton-pulse{0%,to{background-position:200% 0}50%{background-position:0 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.transition-smooth{transition:all .2s ease-in-out}.container-max{max-width:80rem;margin:0 auto}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@media (width>=768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:block{display:block!important}}.w-full{width:100%}.max-w-md{max-width:28rem}.max-w-2xl{max-width:42rem}.text-gray-600{color:var(--neutral-500)}.text-gray-700{color:var(--neutral-600)}.text-gray-900{color:var(--neutral-900)}.text-blue-600{color:var(--primary-600)}.text-blue-700{color:var(--primary-700)}.text-blue-900{color:var(--primary-900)}.bg-white{background-color:#fff}.bg-gray-50{background-color:var(--neutral-50)}.bg-gray-100{background-color:var(--neutral-100)}.border-t{border-top:1px solid var(--neutral-200)}.border-b{border-bottom:1px solid var(--neutral-200)}.shadow{box-shadow:0 1px 3px #0000001a}.shadow-lg{box-shadow:0 10px 15px -3px #0000001a}a{color:var(--primary-600);text-decoration:none;transition:color .2s ease-in-out}a:hover{color:var(--primary-700)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.app-container{height:100vh;display:flex}.app-sidebar{width:256px}.app-main{flex-direction:column;flex:1;display:flex}.app-header{background:#fff;border-bottom:1px solid #e5e7eb;padding:1rem 1.5rem;box-shadow:0 1px 3px #00000014}.app-content{flex:1;padding:1.5rem;overflow-y:auto}@media (width<=768px){.app-sidebar{z-index:50;height:100%;transition:transform .3s ease-in-out;position:fixed;transform:translate(-100%)}.app-sidebar.open{transform:translate(0)}}.fade-in{animation:.3s ease-out fadeIn}
