.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem;background:var(--bg);color:var(--text);font-size:15px}
.login-theme-toggle{position:fixed;top:1rem;right:1rem;z-index:5}
.login-box{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.4rem;box-shadow:var(--shadow-raised)}
.login-box h1{margin:.1rem 0 .35rem}
.login-intro{margin:0 0 1.15rem;color:var(--muted)}
.login-box label{display:grid;gap:.35rem;margin:.8rem 0;font-weight:650}
.login-box input{padding:.75rem}
.login-box button[type="submit"]{width:100%;padding:.78rem;margin-top:.55rem}
.login-box .error,.login-box .success,.passkey-status{padding:.7rem;border-radius:8px}
.login-box .error,.passkey-status.error{background:var(--bad-bg);color:var(--bad);border:1px solid color-mix(in srgb,var(--bad) 35%,transparent)}
.login-box .success,.passkey-status.success{background:var(--good-bg);color:var(--good);border:1px solid color-mix(in srgb,var(--good) 35%,transparent)}
.passkey-login{width:100%;margin:.15rem 0 .35rem;padding:.78rem}
.login-divider{display:flex;align-items:center;gap:.7rem;color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;margin:.6rem 0}
.login-divider::before,.login-divider::after{content:"";height:1px;background:var(--line);flex:1}
.password-field{position:relative}
.password-field input{padding-right:5.2rem}
.password-toggle{position:absolute;top:50%;right:.3rem;transform:translateY(-50%);width:auto;min-width:42px;height:38px;min-height:38px;padding:0 .55rem;background:transparent;color:var(--muted);border:0;font-size:.82rem}
.password-toggle:hover{background:var(--surface-hover);color:var(--text)}
.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.password-hide-icon{display:none}
.password-toggle.is-visible .password-show-icon{display:none}
.password-toggle.is-visible .password-hide-icon{display:block}
.login-options{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin:.85rem 0}
.login-box .remember-control{display:flex;grid-template-columns:none;align-items:flex-start;gap:.55rem;margin:0;font-weight:500;color:var(--text);cursor:pointer}
.login-box .remember-control input{width:auto;margin:.18rem 0 0;padding:0;flex:0 0 auto}
.login-options>a{flex:0 0 auto;font-size:.9rem;padding-top:.12rem}
.public-main{width:min(520px,100%)}
.public-card{display:block}
.public-links{text-align:center;margin:1rem 0 0}
.public-action{width:100%}
@media(max-width:480px){.login-page{align-items:start;padding-top:5rem}.login-box{padding:1.1rem}.login-theme-toggle{top:.75rem;right:.75rem}.login-options{flex-direction:column}.login-options>a{align-self:flex-end}}
