@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-6d8484bd]::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar[data-v-6d8484bd]::-webkit-scrollbar-track{background:#f1f5f980;border-radius:10px}.custom-scrollbar[data-v-6d8484bd]::-webkit-scrollbar-thumb{background:#cbd5e1cc;border-radius:10px}.custom-scrollbar[data-v-6d8484bd]::-webkit-scrollbar-thumb:hover{background:#94a3b8}.dark{background:#ffffff40}.list-enter-active[data-v-de12ae2c],.list-leave-active[data-v-de12ae2c]{transition:all .5s cubic-bezier(.4,0,.2,1)}.list-enter-from[data-v-de12ae2c]{opacity:0;transform:translate(-30px)}.list-leave-to[data-v-de12ae2c]{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:#0f172a}.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,#3b82f666,#0000 60%);width:800px;height:800px;animation:18s ease-in-out infinite orbFloat;top:-10%;left:-10%}.login-orb--2{background:radial-gradient(circle,#0d94884d,#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,#f59e0b40,#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,#3b82f640,#0000 60%)}.dark .login-orb--2{background:radial-gradient(circle,#0d948833,#0000 60%)}.dark .login-orb--3{background:radial-gradient(circle,#f59e0b1f,#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)}}@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)}}@keyframes floatRight{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes floatLeft{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.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}@media (width>=1024px){.login-container{flex-direction:row;justify-content:space-around;gap:4rem;max-width:1200px;margin:0 auto}}.login-brand{flex-direction:column;justify-content:center;align-items:center;max-width:500px;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}@media (width>=1024px){.login-brand{align-items:flex-start;animation:1s cubic-bezier(.2,.8,.2,1) forwards floatRight}.brand-content{text-align:left;align-items:flex-start}}.brand-icon{justify-content:center;align-items:center;width:90px;height:90px;margin-bottom:1.5rem;animation:4s ease-in-out infinite iconPulse;display:flex}@media (width>=1024px){.brand-icon{width:120px;height:120px;margin-bottom:2rem}}.brand-icon img{width:100%;height:100%}@keyframes iconPulse{0%,to{filter:drop-shadow(0 8px 16px #3b82f633);transform:translateY(0)}50%{filter:drop-shadow(0 12px 24px #3b82f666);transform:translateY(-5px)}}.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}@media (width>=1024px){.brand-title{font-size:4rem}.brand-title br{display:block}}.brand-title span{background:linear-gradient(135deg,#3b82f6,#0d9488);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-left:12px}.dark .brand-title span{background:linear-gradient(135deg,#60a5fa,#2dd4bf);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.brand-desc,.brand-features,.brand-footer{display:none}@media (width>=1024px){.brand-desc{color:#64748b;margin-top:1.5rem;font-size:1.15rem;font-weight:500;line-height:1.6;display:block}.dark .brand-desc{color:#94a3b8}.brand-features{flex-direction:column;gap:1rem;margin-top:2rem;display:flex}.feature-item{color:#475569;align-items:center;gap:14px;font-size:1.05rem;font-weight:600;transition:transform .3s;display:flex}.feature-item:hover{transform:translate(10px)}.dark .feature-item{color:#cbd5e1}.feature-dot{border-radius:50%;width:14px;height:14px}.feature-dot--cyan{background:#06b6d4;box-shadow:0 0 15px #06b6d499}.feature-dot--green{background:#10b981;box-shadow:0 0 15px #10b98199}.feature-dot--purple{background:#a855f7;box-shadow:0 0 15px #a855f799}.feature-dot--amber{background:#f59e0b;box-shadow:0 0 15px #f59e0b99}.brand-footer{color:#94a3b8;font-size:.85rem;font-weight:600;display:block;position:absolute;bottom:-80px;left:0}}.login-form-side{opacity:0;justify-content:center;align-items:center;width:100%;max-width:440px;animation:1s cubic-bezier(.2,.8,.2,1) .15s forwards floatUp;display:flex}@media (width>=1024px){.login-form-side{animation:1s cubic-bezier(.2,.8,.2,1) .15s forwards floatLeft}}.login-card{width:100%;position:relative}.card-glow{z-index:0;opacity:.5;filter:blur(10px);background:linear-gradient(135deg,#3b82f699,#0d948866,#f59e0b66);border-radius:30px;transition:opacity .5s,filter .5s;position:absolute;inset:-2px}.login-card:hover .card-glow{opacity:1;filter:blur(15px)}.card-inner{z-index:1;background:#fff;border:1px solid #fff9;border-top-color:#ffffffe6;border-radius:24px;padding:2.5rem;transition:all .5s cubic-bezier(.34,1.56,.64,1);position:relative;box-shadow:0 30px 60px -15px #0000001a,inset 0 0 0 1px #fff6}.login-card:hover .card-inner{transform:translateY(-4px);box-shadow:0 40px 80px -20px #00000026,inset 0 0 0 1px #fff9}.dark .card-inner{background:#1e293b;border:1px solid #ffffff1a;box-shadow:0 25px 50px -12px #00000080}.dark .login-card:hover .card-inner{box-shadow:0 40px 80px -15px #000000b3}.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:#3b82f6}.dark .input-group.focused label{color:#60a5fa}.input-wrap{align-items:center;display:flex;position:relative}.input-icon{color:#64748b;pointer-events:none;z-index:10;flex-shrink:0;transition:color .3s;position:absolute;left:16px}.dark .input-icon{color:#94a3b8}.input-group.focused .input-icon{color:#3b82f6}.dark .input-group.focused .input-icon{color:#60a5fa}.input-wrap input{color:#0f172a;z-index:1;background:#ffffffd9;border:1px solid #0000001a;border-radius:12px;outline:none;width:100%;padding:14px 16px 14px 44px;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;box-shadow:inset 0 2px 4px #00000005}.dark .input-wrap input{color:#f1f5f9;background:#0003;border:2px solid #ffffff0d}.input-wrap input:-webkit-autofill{border-radius:16px;-webkit-text-fill-color:#1e293b!important;-webkit-box-shadow:inset 0 0 0 30px #f8fafc!important}.input-wrap input:-webkit-autofill:hover{border-radius:16px;-webkit-text-fill-color:#1e293b!important;-webkit-box-shadow:inset 0 0 0 30px #f8fafc!important}.input-wrap input:-webkit-autofill:focus{border-radius:16px;-webkit-text-fill-color:#1e293b!important;-webkit-box-shadow:inset 0 0 0 30px #f8fafc!important}.input-wrap input:-webkit-autofill:active{border-radius:16px;-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:#fff;border-color:#3b82f6;transform:translateY(-1px);box-shadow:inset 0 2px 4px #00000005,0 0 0 4px #3b82f626}.dark .input-wrap input:focus{background:#0f172ae6;border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa33,0 8px 20px #60a5fa26}.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:#3b82f6}.dark .pass-toggle:hover{color:#60a5fa}.login-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#10b981);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 #3b82f64d}.login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 40px #3b82f673}.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:#3b82f64d;transform:translateY(-4px)scale(1.05);box-shadow:0 10px 25px #3b82f633}.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 #3b82f633}.theme-toggle:active{transform:scale(.95)}.theme-toggle-icon{color:#3b82f6;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<=1023px){.login-container{gap:1.5rem;padding:1.5rem}.login-brand{padding:1rem 0}.brand-content{flex-direction:row;gap:1.2rem}.brand-icon{width:64px;height:64px;margin-bottom:0}.brand-title{text-align:left;font-size:1.8rem}.brand-title span{margin-left:6px}.card-inner{border-radius:24px;padding:2rem}.login-form-side{max-width:100%}}@media (width<=480px){.brand-content{text-align:center;flex-direction:column;gap:.5rem}.brand-title{text-align:center}.card-inner{padding:1.5rem}}.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)}
