:root{--bg-color:#f8fafc;--text-color:#1e293b;--primary-color:#6366f1;--secondary-color:#818cf8;--accent-color:#a5b4fc;--card-bg:#fffc;--border-radius:24px;--border-color:#6366f1;--soft-shadow:0 10px 15px -3px #0000000d, 0 4px 6px -2px #00000005;--glass:blur(10px);--font-main:"Outfit", "Inter", sans-serif}[data-theme=dark]{--bg-color:#1e1f21;--text-color:#e2eeff;--primary-color:#6d70ff;--secondary-color:#8683ff;--accent-color:#8683ff;--card-bg:#141415;--border-color:#5a58ab;--soft-shadow:0 10px 15px -3px #0003, 0 4px 6px -2px #0000001a}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .3s,color .3s,transform .2s}html,body{width:100%;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--bg-color);color:var(--text-color);flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}.container{width:100%;max-width:1200px;margin:0 auto;padding:20px}.card{background:var(--card-bg);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border-radius:var(--border-radius);box-shadow:var(--soft-shadow);border:1px solid #ffffff1a;padding:2rem}.catalog-container{background:var(--card-bg);border-radius:var(--border-radius);box-shadow:var(--soft-shadow);border:1px solid #00000008;padding:2rem}button{cursor:pointer;font-weight:600;font-family:var(--font-main);background:var(--primary-color);color:#fff;box-shadow:var(--soft-shadow);border:none;border-radius:100px;padding:12px 24px}button:hover{filter:brightness(1.1);transform:translateY(-2px)}input,select,textarea{background:var(--card-bg);color:var(--text-color);font-family:var(--font-main);border:1px solid #0000000d;border-radius:20px;width:100%;padding:12px 20px}input,select{border-radius:100px}.flex-center{justify-content:center;align-items:center;display:flex}.animate{animation:.5s ease-out forwards fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.spinner{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.skeleton{background:var(--card-bg);background:linear-gradient(90deg,#8080800a 25%,#8080801f 50%,#8080800a 75%) 0 0/200% 100%;border-radius:12px;animation:1.2s linear infinite skeleton-pulse}@keyframes skeleton-pulse{0%{background-position:100% 0}to{background-position:-100% 0}}.skeleton-pulse{animation:2s ease-in-out infinite pulse-soft}@keyframes pulse-soft{0%{opacity:.4}50%{opacity:.8}to{opacity:.4}}.skeleton-text{width:100%;height:1rem;margin-bottom:.5rem}.skeleton-card{border-radius:var(--border-radius);width:100%;height:120px;margin-bottom:15px}.skeleton-button{border-radius:100px;width:120px;height:40px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.navbar{background:var(--card-bg);width:100%;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);z-index:1000;border-bottom:2px solid #0000000f;position:sticky;top:0;left:0;right:0}.modal-overlay{-webkit-backdrop-filter:blur(10px);z-index:9999;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--card-bg);text-align:center;border:1px solid #ffffff1a;border-radius:30px;width:100%;max-width:500px;padding:40px;box-shadow:0 20px 40px #0000004d}.modal-content-danger{border-top:5px solid #f87171}@media (width<=768px){.navbar .container{gap:15px;flex-direction:column!important;padding:15px!important}.nav-links{flex-wrap:wrap;width:100%;justify-content:center!important;gap:8px!important}.nav-links button{padding:8px 14px!important;font-size:.85rem!important}.container{padding:30px 10px!important}.catalog-class-content,.catalog-section-content,.editor-section-container{padding:10px 5px!important}.catalog-section-head,.editor-class-head{padding-left:12px!important;padding-right:12px!important}.editor-class-head{padding-top:15px!important;padding-bottom:15px!important}.card{padding:1.25rem!important}.grid-2{grid-template-columns:1fr!important}.catalog-section-content .card,.editor-section-container .card{padding:15px 12px!important}}select{appearance:none;cursor:pointer}
