/* Shared sign-in surface only. Role-specific screens and authentication API stay unchanged. */
#loginOvl{--login-bg:#f5f5f3;--login-surface:#fff;--login-ink:#202024;--login-muted:#696973;--login-line:#dedee2;--login-input:#fafafa;--login-error:#b42318;--login-error-bg:#fff1f0;background:var(--login-bg);color:var(--login-ink);backdrop-filter:none!important;-webkit-backdrop-filter:none!important;overflow-y:auto;overscroll-behavior:contain;align-items:flex-start;padding:32px 20px;height:100dvh}
html[data-theme="mono"] #loginOvl{--login-bg:#111114;--login-surface:#202024;--login-ink:#f4f4f6;--login-muted:#b0b0bb;--login-line:#43434b;--login-input:#27272e;--login-error:#ffb4ab;--login-error-bg:#3e2428;color-scheme:dark}
html[data-theme="flower"] #loginOvl{--login-bg:#f1f5eb;--login-ink:#2e4a33;--login-input:#f9fbf6}
html[data-theme="crayon"] #loginOvl{--login-bg:#faf5e9;--login-ink:#3a2e2a;--login-input:#fdfbf5}
html[data-theme="retro"] #loginOvl{--login-bg:#faf1dc;--login-input:#fffdf6}
#loginOvl .login-card{width:100%;max-width:440px;margin:auto;padding:40px;background:var(--login-surface);border:1px solid var(--login-line);border-radius:24px;box-shadow:0 16px 60px rgba(20,20,24,.05);backdrop-filter:none!important;-webkit-backdrop-filter:none!important;animation:none;color:var(--login-ink)}
#loginOvl .login-brand{display:flex;align-items:center;gap:12px;margin:0 0 36px}
#loginOvl .login-brand img{display:block;width:126px;height:32px;object-fit:contain;filter:brightness(0)}
html[data-theme="mono"] #loginOvl .login-brand img{filter:brightness(0) invert(1)}
#loginOvl .login-brand>span{font-size:9px;letter-spacing:1.8px;font-weight:650;border-left:1px solid var(--login-line);padding-left:12px;color:var(--login-muted)}
#loginOvl .login-heading h2{display:block;font-size:28px!important;line-height:1.4;font-weight:750;letter-spacing:-.9px;margin:0 0 8px!important;color:var(--login-ink)!important}
#loginOvl .login-heading p{font-size:13px;line-height:1.7;margin:0 0 30px;color:var(--login-muted)}
#loginOvl .login-label{display:block;font-size:13px;font-weight:650;margin:20px 0 8px;color:var(--login-ink)}
#loginOvl input{display:block;box-sizing:border-box;width:100%;max-width:none;border:1px solid var(--login-line);border-radius:12px;background:var(--login-input)!important;color:var(--login-ink)!important;font:inherit;font-size:16px!important;min-height:54px;padding:14px 15px;margin:0;box-shadow:none}
#loginOvl input::placeholder{color:var(--login-muted);font-size:14px;opacity:.85}
#loginOvl input:focus{outline:2px solid var(--login-ink);outline-offset:2px;background:var(--login-surface)!important}
#loginOvl .login-password{position:relative}
#loginOvl #loginPw{padding-right:72px}
#loginOvl #loginPasswordToggle{position:absolute;right:5px;top:5px;min-width:56px;height:44px;min-height:44px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--login-muted);font:inherit;font-size:12px;cursor:pointer}
#loginOvl button:focus-visible{outline:2px solid var(--login-ink);outline-offset:3px}
#loginOvl #loginSubmit{display:block;min-height:54px;padding:15px;margin-top:26px;border:0;border-radius:12px;background:var(--acc);color:var(--acc-ink);font-size:16px;font-weight:750;box-shadow:none;transition:opacity .15s}
#loginOvl #loginSubmit:disabled{opacity:.6;cursor:wait}
#loginOvl .login-err{color:var(--login-error);background:var(--login-error-bg);border:1px solid color-mix(in srgb,var(--login-error) 28%,transparent);font-size:12px;font-weight:500;line-height:1.6;margin-top:14px;padding:12px;border-radius:10px;overflow-wrap:anywhere}
#loginOvl .login-help{text-align:center;font-size:12px;line-height:1.9;color:var(--login-muted);margin:25px 0 0}
#loginOvl .login-help span{color:var(--login-ink)}
#loginOvl .login-footer{text-align:center;font-size:10px;letter-spacing:.3px;color:var(--login-muted);margin-top:30px;padding-top:20px;border-top:1px solid var(--login-line)}
@media(max-width:600px){#loginOvl{padding:24px 22px;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom));background:var(--login-surface)}#loginOvl .login-card{max-width:400px;border:0;border-radius:0;padding:16px 0;box-shadow:none}#loginOvl .login-brand{margin-bottom:38px}#loginOvl .login-heading h2{font-size:29px!important}}
@media(prefers-reduced-motion:reduce){#loginOvl #loginSubmit{transition:none}}
