@keyframes blob{0%{transform:translate(0)scale(1)}33%{transform:translate(30px,-50px)scale(1.1)}66%{transform:translate(-20px,20px)scale(.9)}to{transform:translate(0)scale(1)}}.animate-blob{animation:12s cubic-bezier(.4,0,.2,1) infinite alternate blob}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}@keyframes fade-in-up{0%{opacity:0;transform:translateY(24px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.animation-fade-in-up{opacity:0;animation:.7s cubic-bezier(.16,1,.3,1) forwards fade-in-up}@keyframes fade-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.animation-fade-in{opacity:0;animation:.7s cubic-bezier(.16,1,.3,1) forwards fade-in}@keyframes shine{to{transform:translate(150%)skew(-20deg)}}.animate-shine{animation:1.5s cubic-bezier(.4,0,.2,1) infinite shine}@keyframes bounce-slow{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-5%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:translateY(5%)}}.animate-bounce-slow{animation:3s infinite bounce-slow}@keyframes glow-pulse{0%,to{filter:drop-shadow(0 0 4px)}50%{filter:drop-shadow(0 0 12px)}}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-600{animation-delay:.6s}.delay-700{animation-delay:.7s}.delay-800{animation-delay:.8s}.perspective-1000{perspective:1000px}.transform-style-3d{transform-style:preserve-3d}.rotate-y-12{transform:rotateY(12deg)}.rotate-x-12{transform:rotateX(12deg)}.custom-scrollbar[data-v-abccc69a]::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar[data-v-abccc69a]::-webkit-scrollbar-track{background:#f1f5f980;border-radius:10px}.custom-scrollbar[data-v-abccc69a]::-webkit-scrollbar-thumb{background:#cbd5e1cc;border-radius:10px}.custom-scrollbar[data-v-abccc69a]::-webkit-scrollbar-thumb:hover{background:#94a3b8}.dark{background:#ffffff40}.list-enter-active[data-v-3a23a8f0],.list-leave-active[data-v-3a23a8f0]{transition:all .5s cubic-bezier(.4,0,.2,1)}.list-enter-from[data-v-3a23a8f0]{opacity:0;transform:translate(-30px)}.list-leave-to[data-v-3a23a8f0]{opacity:0;transform:translate(30px)}.login-root{color:#1e293b;background:#f0f4f8;min-height:100vh;font-family:Plus Jakarta Sans,system-ui,sans-serif;transition:background .5s,color .5s;position:relative;overflow:hidden}.dark .login-root{color:#f1f5f9;background:#050816}.login-canvas{z-index:0;pointer-events:none;position:fixed;inset:0}.login-orb{filter:blur(80px);pointer-events:none;z-index:0;border-radius:50%;transition:background .5s;position:absolute}.login-orb--1{background:radial-gradient(circle,#6366f166,#0000 60%);width:800px;height:800px;animation:18s ease-in-out infinite orbFloat;top:-10%;left:-10%}.login-orb--2{background:radial-gradient(circle,#a855f74d,#0000 60%);width:700px;height:700px;animation:22s ease-in-out infinite reverse orbFloat;bottom:-10%;right:-10%}.login-orb--3{background:radial-gradient(circle,#06b6d440,#0000 60%);width:600px;height:600px;animation:15s ease-in-out 3s infinite orbFloat;top:20%;left:40%}.dark .login-orb--1{background:radial-gradient(circle,#6366f140,#0000 60%)}.dark .login-orb--2{background:radial-gradient(circle,#a855f733,#0000 60%)}.dark .login-orb--3{background:radial-gradient(circle,#06b6d41f,#0000 60%)}@keyframes orbFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-40px)scale(1.1)}66%{transform:translate(-20px,20px)scale(.95)}}.login-container{z-index:1;perspective:1000px;flex-direction:column;justify-content:center;align-items:center;gap:2rem;min-height:100vh;padding:2rem;display:flex;position:relative}@keyframes floatDown{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}@keyframes floatUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.login-brand{flex-direction:column;justify-content:center;align-items:center;animation:1s cubic-bezier(.2,.8,.2,1) forwards floatDown;display:flex;position:relative}.brand-content{text-align:center;flex-direction:column;align-items:center;display:flex}.brand-icon{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:22px;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:1.5rem;animation:3s ease-in-out infinite iconPulse;display:flex;box-shadow:0 8px 32px #6366f159}.brand-icon svg{width:32px;height:32px}@keyframes iconPulse{0%,to{box-shadow:0 8px 32px #6366f159}50%{box-shadow:0 8px 48px #6366f180}}.brand-title{color:#1e293b;letter-spacing:-.03em;margin:0;font-size:2.8rem;font-weight:800;line-height:1.1;transition:color .5s}.dark .brand-title{color:#f1f5f9}.brand-title br{display:none}.brand-title span{background:linear-gradient(135deg,#6366f1,#a855f7);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-left:12px}.dark .brand-title span{background:linear-gradient(135deg,#818cf8,#c084fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.brand-desc,.brand-features,.brand-footer{display:none!important}.login-form-side{opacity:0;justify-content:center;align-items:center;width:100%;animation:1s cubic-bezier(.2,.8,.2,1) .15s forwards floatUp;display:flex}.login-card{width:100%;max-width:420px;position:relative}.card-glow{z-index:0;opacity:0;background:linear-gradient(135deg,#6366f166,#a855f733,#06b6d433);border-radius:28px;transition:opacity .5s;position:absolute;inset:-1px}.login-card:hover .card-glow{opacity:1}.card-inner{z-index:1;-webkit-backdrop-filter:blur(40px)saturate(150%);backdrop-filter:blur(40px)saturate(150%);background:#ffffffd9;border:1px solid #0000000f;border-radius:28px;padding:2.5rem;transition:all .5s cubic-bezier(.34,1.56,.64,1);position:relative;box-shadow:0 20px 60px #0000000f}.login-card:hover .card-inner{border-color:#6366f126;transform:translateY(-6px);box-shadow:0 30px 70px #0000001a}.dark .card-inner{background:#0f172abf;border:1px solid #ffffff14;box-shadow:0 20px 60px #0000004d}.dark .login-card:hover .card-inner{border-color:#6366f140;box-shadow:0 30px 70px #00000080}.card-header{text-align:center;margin-bottom:2rem}.card-logo{display:none!important}.card-header h2{color:#1e293b;letter-spacing:-.02em;margin:0 0 .4rem;font-size:1.6rem;font-weight:800;transition:color .5s}.dark .card-header h2{color:#f1f5f9}.card-header p{color:#94a3b8;margin:0;font-size:.85rem;font-weight:500;transition:color .5s}.dark .card-header p{color:#64748b}.login-error{color:#e11d48;background:#f43f5e14;border:1px solid #f43f5e26;border-radius:14px;align-items:center;gap:10px;margin-bottom:1.25rem;padding:12px 16px;font-size:.85rem;font-weight:600;transition:background .5s,color .5s,border-color .5s;display:flex}.dark .login-error{color:#fb7185;background:#f43f5e1a;border-color:#f43f5e33}.err-enter-active{transition:all .3s ease-out}.err-leave-active{transition:all .2s ease-in}.err-enter-from{opacity:0;transform:translateY(-8px)}.err-enter-to{opacity:1;transform:translateY(0)}.login-form{flex-direction:column;gap:1.25rem;display:flex}.input-group label{text-transform:uppercase;letter-spacing:.1em;color:#94a3b8;margin-bottom:8px;padding-left:4px;font-size:.7rem;font-weight:700;transition:color .3s;display:block}.dark .input-group label{color:#64748b}.input-group.focused label{color:#6366f1}.dark .input-group.focused label{color:#818cf8}.input-wrap{align-items:center;display:flex;position:relative}.input-icon{color:#94a3b8;pointer-events:none;flex-shrink:0;transition:color .3s;position:absolute;left:16px}.dark .input-icon{color:#475569}.input-group.focused .input-icon{color:#6366f1}.dark .input-group.focused .input-icon{color:#818cf8}.input-wrap input{color:#1e293b;background:#f1f5f9cc;border:1px solid #00000014;border-radius:14px;outline:none;width:100%;padding:14px 16px 14px 46px;font-family:inherit;font-size:.9rem;font-weight:600;transition:all .3s}.dark .input-wrap input{color:#f1f5f9;background:#0f172a99;border:1px solid #ffffff14}.input-wrap input:-webkit-autofill{border-radius:14px;-webkit-text-fill-color:#1e293b!important;-webkit-box-shadow:inset 0 0 0 30px #f8fafc!important}.input-wrap input:-webkit-autofill:hover{border-radius:14px;-webkit-text-fill-color:#1e293b!important;-webkit-box-shadow:inset 0 0 0 30px #f8fafc!important}.input-wrap input:-webkit-autofill:focus{border-radius:14px;-webkit-text-fill-color:#1e293b!important;-webkit-box-shadow:inset 0 0 0 30px #f8fafc!important}.input-wrap input:-webkit-autofill:active{border-radius:14px;-webkit-text-fill-color:#1e293b!important;-webkit-box-shadow:inset 0 0 0 30px #f8fafc!important}.dark .input-wrap input:-webkit-autofill{-webkit-text-fill-color:#f1f5f9!important;-webkit-box-shadow:inset 0 0 0 30px #0f172a!important}.dark .input-wrap input:-webkit-autofill:hover{-webkit-text-fill-color:#f1f5f9!important;-webkit-box-shadow:inset 0 0 0 30px #0f172a!important}.dark .input-wrap input:-webkit-autofill:focus{-webkit-text-fill-color:#f1f5f9!important;-webkit-box-shadow:inset 0 0 0 30px #0f172a!important}.dark .input-wrap input:-webkit-autofill:active{-webkit-text-fill-color:#f1f5f9!important;-webkit-box-shadow:inset 0 0 0 30px #0f172a!important}.input-wrap input::placeholder{color:#94a3b8;font-weight:400}.dark .input-wrap input::placeholder{color:#334155}.input-wrap input:focus{background:#fffffff2;border-color:#6366f180;box-shadow:0 0 0 4px #6366f114,0 0 20px #6366f108}.dark .input-wrap input:focus{background:#0f172acc;box-shadow:0 0 0 4px #6366f11a,0 0 20px #6366f10d}.pass-toggle{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:4px;transition:color .2s;display:flex;position:absolute;right:14px}.dark .pass-toggle{color:#475569}.pass-toggle:hover{color:#6366f1}.dark .pass-toggle:hover{color:#818cf8}.login-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#7c3aed);border:none;border-radius:16px;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:.5rem;padding:16px;font-family:inherit;font-size:.95rem;font-weight:700;transition:all .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 32px #6366f14d}.login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 40px #6366f173}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.btn-shimmer{background:linear-gradient(90deg,#0000,#fff3,#0000);position:absolute;inset:0;transform:translate(-100%)skew(-20deg)}.login-btn:hover .btn-shimmer{animation:.8s forwards shimmer}@keyframes shimmer{to{transform:translate(100%)skew(-20deg)}}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.card-footer{text-align:center;border-top:1px solid #0000000d;margin-top:2rem;padding-top:1.5rem;transition:border-color .5s}.dark .card-footer{border-top-color:#ffffff0d}.footer-badge{color:#94a3b8;letter-spacing:.04em;text-transform:uppercase;background:#00000008;border-radius:100px;align-items:center;gap:6px;padding:6px 14px;font-size:.7rem;font-weight:700;transition:background .5s,color .5s;display:inline-flex}.dark .footer-badge{color:#475569;background:#ffffff0a}.theme-toggle{z-index:50;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);cursor:pointer;background:#fffc;border:1px solid #00000014;border-radius:14px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .4s cubic-bezier(.34,1.56,.64,1);display:flex;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 16px #0000000f}.theme-toggle:hover{border-color:#6366f14d;transform:translateY(-4px)scale(1.05);box-shadow:0 10px 25px #6366f133}.dark .theme-toggle{background:#1e293bb3;border-color:#ffffff1a;box-shadow:0 4px 16px #0000004d}.theme-toggle:hover{transform:scale(1.1);box-shadow:0 6px 24px #6366f133}.theme-toggle:active{transform:scale(.95)}.theme-toggle-icon{color:#6366f1;justify-content:center;align-items:center;transition:transform .5s cubic-bezier(.34,1.56,.64,1),color .3s;display:flex}.theme-toggle-icon.is-dark{color:#fbbf24;filter:drop-shadow(0 0 8px #fbbf2480)}.theme-toggle:hover .theme-toggle-icon{transform:rotate(30deg)}@media (width<=768px){.login-container{justify-content:flex-start;gap:1.5rem;padding:1rem}.login-brand{padding:2.5rem 1rem 0}.brand-content{flex-direction:row;gap:1rem}.brand-icon{border-radius:14px;width:48px;height:48px;margin-bottom:0}.brand-icon svg{width:24px;height:24px}.brand-title{font-size:1.8rem}.card-inner{padding:1.8rem}}.sidebar-glass{-webkit-backdrop-filter:blur(24px)saturate(150%);backdrop-filter:blur(24px)saturate(150%);background:#ffffffb3;border-right:1px solid #e2e8f099;transition:background-color .5s,border-color .5s}.dark .sidebar-glass{background:#0a0e1ed9;border-right:1px solid #ffffff0f}.navbar-glass{-webkit-backdrop-filter:blur(20px)saturate(150%);backdrop-filter:blur(20px)saturate(150%);background:#fff9;transition:background-color .5s}.dark .navbar-glass{background:#0a0e1e99}.iot-grid-bg{z-index:0;pointer-events:none;background-image:linear-gradient(#6366f108 1px,#0000 1px),linear-gradient(90deg,#6366f108 1px,#0000 1px);background-size:60px 60px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(80% 60%,#000 40%,#0000 100%);mask-image:radial-gradient(80% 60%,#000 40%,#0000 100%)}@keyframes float-slow{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-30px)scale(1.05)}}.animate-float-slow{animation:20s ease-in-out infinite float-slow}.page-slide-enter-active,.page-slide-leave-active{transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1)}.page-slide-enter-from{opacity:0;transform:translateY(12px)scale(.99)}.page-slide-leave-to{opacity:0;transform:translateY(-12px)scale(.99)}
