:root{--primary:#6c63ff;--primary-dark:#4c46b8;--primary-light:#ede9ff;--secondary:#ff6584;--accent:#43d9ad;--warning:#f59e0b;--danger:#ef4444;--success:#10b981;--bg:#f0f2f5;--bg-card:#ffffff;--bg-sidebar:#1e1b4b;--bg-sidebar-hover:#312e81;--text:#1f2937;--text-muted:#6b7280;--text-light:#9ca3af;--text-on-primary:#ffffff;--text-on-sidebar:#c7d2fe;--border:#e5e7eb;--border-focus:#6c63ff;--radius:12px;--radius-sm:8px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.06);--shadow:0 4px 12px rgba(0,0,0,.10);--shadow-lg:0 10px 30px rgba(0,0,0,.14);--sidebar-w:240px;--transition:0.2s ease;--font:'Segoe UI',system-ui,-apple-system,sans-serif}*,::after,::before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);font-size:15px;line-height:1.6;color:var(--text);background:var(--bg);min-height:100vh}h1,h2,h3,h4{font-weight:700;line-height:1.3}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.2rem}h4{font-size:1rem}p{color:var(--text-muted)}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}input,select,textarea{font-family:var(--font);font-size:15px}button{cursor:pointer;font-family:var(--font)}ul{list-style:none}.hidden{display:none!important}.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}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes pop{0%{transform:scale(.8);opacity:0}70%{transform:scale(1.05)}100%{transform:scale(1);opacity:1}}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce-in{0%,100%{transform:scale(1)}25%{transform:scale(1.08)}55%{transform:scale(.95)}80%{transform:scale(1.03)}}@keyframes wiggle{0%,100%{transform:rotate(0)}20%{transform:rotate(-8deg)}60%{transform:rotate(8deg)}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes star-burst{0%{transform:scale(0) rotate(0);opacity:1}60%{transform:scale(1.3) rotate(15deg);opacity:1}100%{transform:scale(1) rotate(10deg);opacity:1}}.fade-in{animation:fadeIn .3s var(--transition) both}.pop-in{animation:.3s both pop}.spin-on-hover:hover{animation:.55s linear spin}.spin-on-click:active{animation:.45s linear spin}