@keyframes panelSlideIn{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes iconPop{0%{opacity:0;transform:scale(.85);box-shadow:0 0 #6d28d900}to{opacity:1;transform:scale(1);box-shadow:0 10px 36px #6d28d959,0 0 64px #6d28d91a}}.login-container{background-image:url(/images/charging-stations.webp);background-position:100%;background-repeat:no-repeat;background-size:cover;width:100%;min-height:100vh;font-family:Inter,Montserrat,system-ui,sans-serif;position:relative;overflow:hidden}.login-container:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(110deg,#0000002e 0%,#0000000a 50%,#0000 100%);position:absolute;inset:0}.login-form-area{z-index:2;width:34%;min-width:360px;animation:.7s cubic-bezier(.16,1,.3,1) both panelSlideIn;position:absolute;top:40px;bottom:40px;left:5%}.login-image-area,.glass-shape,.theme-toggle-btn{display:none}.settings-btn{z-index:3;-webkit-backdrop-filter:blur(8px);color:#ffffffb8;cursor:pointer;background:#ffffff2e;border:1px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;transition:color .3s,background .3s,transform .4s;display:flex;position:absolute;top:24px;right:24px}.settings-btn:hover{color:#fff;background:#ffffff47;transform:rotate(50deg)}.login-header{text-align:center;width:100%;margin-bottom:40px;animation:.65s .2s both fadeInUp}.login-logo{width:270px;height:auto;margin:0 auto;animation:.65s .2s both fadeInUp;display:block}.login-content{width:100%;max-width:340px}.welcome-title{color:var(--color-text-primary);letter-spacing:-1px;margin-bottom:8px;font-size:38px;font-weight:700;animation:.65s .3s both fadeInUp}.welcome-subtitle{color:var(--color-text-secondary);margin-bottom:32px;font-size:15px;animation:.65s .38s both fadeInUp}.login-form{animation:.65s .44s both fadeInUp}.form-group{margin-bottom:16px}.form-group label{display:none}.input-wrapper{background:var(--color-background);border:1px solid var(--color-border);border-radius:12px;align-items:center;height:52px;padding:0 16px;transition:border-color .25s,box-shadow .25s;display:flex;position:relative}.input-wrapper:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-tint)}.input-icon{color:var(--color-text-secondary);flex-shrink:0;margin-right:12px;font-size:16px}.input-wrapper .form-control{height:100%;color:var(--color-text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:15px}.input-wrapper .form-control::placeholder{color:var(--color-text-muted);opacity:1}.input-wrapper .form-control:-webkit-autofill{-webkit-text-fill-color:var(--color-text-primary);-webkit-background-clip:text}.password-toggle{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:15px;transition:color .2s}.password-toggle:hover{color:var(--color-text-primary)}.login-divider{text-align:center;color:var(--color-text-muted);align-items:center;margin:24px 0;font-size:12px;display:flex}.login-divider:before,.login-divider:after{content:"";border-bottom:1px solid var(--color-border);flex:1}.login-divider span{padding:0 16px}.login-footer{text-align:center;margin-top:20px}.forgot-link{color:var(--color-primary);font-size:14px;text-decoration:none;transition:color .2s}.forgot-link:hover{color:var(--color-primary-dark);text-decoration:underline}.login-version-footer{text-align:center;margin-top:24px}.app-version--login{letter-spacing:.4px;color:var(--color-text-muted);background:var(--color-background);border:1px solid var(--color-border);font-variant-numeric:tabular-nums;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:500;transition:color .2s;display:inline-block}.app-version--login:hover{color:var(--color-primary)}@media (max-width:992px){.login-form-area{width:100%;min-height:100vh;position:relative;top:auto;bottom:auto;left:auto}.settings-btn{top:16px;right:16px}}@media (max-width:480px){.welcome-title{font-size:32px}}
