@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-app:#08080c;--bg-surface:#101016;--bg-surface-elevated:#161622;--bg-card:#16162280;--primary:#8e44ad;--primary-glow:#8e44ad40;--primary-hover:#9b59b6;--text-main:#f5f5fa;--text-muted:#8a8a9e;--border-color:#ffffff12;--border-color-focus:#8e44ad80;--color-active:#2ecc71;--color-active-glow:#2ecc7126;--color-preview:#f1c40f;--color-preview-glow:#f1c40f26;--color-blocked:#e74c3c;--color-blocked-glow:#e74c3c26;--sidebar-width:260px;--sidebar-collapsed-width:80px;--transition-speed:.3s}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-app)}::-webkit-scrollbar-thumb{background:var(--bg-surface-elevated);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.app-container{min-height:100vh;display:flex}.main-content{background-color:var(--bg-app);min-width:0;transition:padding var(--transition-speed);flex:1;padding:2.5rem}@media (width<=768px){.app-container{flex-direction:column}.main-content{padding:5rem 1.5rem 1.5rem}}.glass{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:16px}.btn{font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-speed) cubic-bezier(.4, 0, .2, 1);border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:.8rem 1.6rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:#fff;box-shadow:0 4px 15px var(--primary-glow)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #8e44ad66}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--bg-surface-elevated);border:1px solid var(--border-color);color:var(--text-main)}.btn-secondary:hover:not(:disabled){background:#ffffff0d;border-color:#ffffff26;transform:translateY(-2px)}.btn-danger{color:#fff;box-shadow:0 4px 15px var(--color-blocked-glow);background:linear-gradient(135deg,#c0392b,#e74c3c)}.btn-danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #e74c3c66}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.form-group{margin-bottom:1.5rem}.form-label{color:var(--text-muted);margin-bottom:.5rem;font-size:.9rem;font-weight:500;display:block}.form-input{background-color:var(--bg-surface);border:1px solid var(--border-color);width:100%;color:var(--text-main);font-family:var(--font-sans);transition:all var(--transition-speed);border-radius:12px;outline:none;padding:.85rem 1rem;font-size:.95rem}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);background-color:var(--bg-surface-elevated)}.auth-page{background:radial-gradient(circle at 10% 20%,#140a1ecc 0%,#050508 90%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{width:100%;max-width:440px;padding:2.5rem;animation:.6s cubic-bezier(.16,1,.3,1) fadeIn}.auth-header{text-align:center;margin-bottom:2rem}.auth-logo{background:linear-gradient(135deg, var(--text-main) 30%, var(--primary-hover) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:2.2rem;font-weight:700}.auth-subtitle{color:var(--text-muted);font-size:.95rem}.auth-social{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;display:grid}.social-btn{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;transition:all var(--transition-speed);border-radius:12px;justify-content:center;align-items:center;gap:.6rem;padding:.75rem;font-size:.9rem;font-weight:600;display:flex}.social-btn:hover{background:var(--bg-surface-elevated);border-color:#ffffff26;transform:translateY(-1px)}.divider{text-align:center;color:var(--text-muted);align-items:center;margin:1.5rem 0;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";border-bottom:1px solid var(--border-color);flex:1}.divider:not(:empty):before{margin-right:.75em}.divider:not(:empty):after{margin-left:.75em}.auth-footer{text-align:center;color:var(--text-muted);margin-top:1.5rem;font-size:.9rem}.auth-link{color:var(--primary-hover);transition:color var(--transition-speed);font-weight:600;text-decoration:none}.auth-link:hover{color:var(--primary);text-decoration:underline}.dashboard-header{margin-bottom:2rem}.dashboard-title{margin-bottom:.3rem;font-size:2rem;font-weight:700}.dashboard-subtitle{color:var(--text-muted);font-size:1rem}.modules-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.module-card{cursor:pointer;flex-direction:column;height:250px;padding:1.8rem;transition:all .4s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden}.module-card:before{content:"";background:radial-gradient(800px circle at var(--x,0px) var(--y,0px), #ffffff0a, transparent 40%);z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.module-card:hover{border-color:#ffffff26;transform:translateY(-5px);box-shadow:0 10px 30px #0000004d}.module-card.card-active:hover{border-color:#2ecc714d}.module-card.card-blocked{opacity:.7}.module-card.card-blocked:hover{border-color:#e74c3c4d}.module-icon-container{background-color:var(--bg-surface-elevated);border:1px solid var(--border-color);width:54px;height:54px;color:var(--primary-hover);transition:all var(--transition-speed);border-radius:14px;justify-content:center;align-items:center;margin-bottom:1.5rem;display:flex}.module-card:hover .module-icon-container{color:#fff;background-color:var(--primary);border-color:var(--primary-hover);transform:scale(1.05)}.card-active .module-icon-container{color:var(--color-active)}.card-active:hover .module-icon-container{background-color:var(--color-active);border-color:var(--color-active)}.card-preview .module-icon-container{color:var(--color-preview)}.card-preview:hover .module-icon-container{background-color:var(--color-preview);border-color:var(--color-preview)}.card-blocked .module-icon-container{color:var(--color-blocked)}.card-blocked:hover .module-icon-container{background-color:var(--color-blocked);border-color:var(--color-blocked)}.module-title{margin-bottom:.5rem;font-size:1.2rem;font-weight:600}.module-desc{color:var(--text-muted);flex:1;font-size:.9rem;line-height:1.4}.module-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:20px;align-items:center;gap:.3rem;padding:.25rem .6rem;font-size:.75rem;font-weight:700;display:flex;position:absolute;top:1.5rem;right:1.5rem}.badge-active{background-color:var(--color-active-glow);color:var(--color-active);border:1px solid #2ecc7133}.badge-preview{background-color:var(--color-preview-glow);color:var(--color-preview);border:1px solid #f1c40f33}.badge-blocked{background-color:var(--color-blocked-glow);color:var(--color-blocked);border:1px solid #e74c3c33}.alert-toast{color:#fff;z-index:9999;animation:slideIn var(--transition-speed) cubic-bezier(.16, 1, .3, 1);border-radius:12px;align-items:center;gap:.75rem;max-width:360px;padding:1rem 1.5rem;display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 10px 30px #00000080}.alert-success{background-color:#2ecc71;border-left:5px solid #27ae60}.alert-error{background-color:#e74c3c;border-left:5px solid #c0392b}.alert-info{background-color:#3498db;border-left:5px solid #2980b9}.alert-warning{background-color:#f1c40f;border-left:5px solid #d4ac0d}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}.toast-enter-active,.toast-leave-active{transition:all .4s cubic-bezier(.16,1,.3,1)}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(100px)}
