.login-page{min-height:100dvh;background:radial-gradient(ellipse at 50% 0,#e4eee7 0,transparent 58%),var(--background);display:grid;place-items:center;padding:36px 20px;color:var(--ink)}
.login-shell{width:min(100%,440px);margin:auto}.login-brand{display:flex;align-items:center;justify-content:center;gap:11px;margin:0 0 29px}.login-brand-mark{width:44px;height:44px;flex:0 0 44px;border-radius:13px}.login-brand-name{font-size:22px;letter-spacing:.08em;font-weight:800;color:var(--ink)}.login-brand-label{font-size:12px;letter-spacing:.14em;font-weight:700;color:#5a6d67;margin-left:-7px}.login-card{background:var(--surface);border:1px solid #dbe5de;border-radius:22px;padding:34px 36px 28px;box-shadow:0 16px 48px #233d3210}.login-heading{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:16px;margin-bottom:27px}.login-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid #d7e7de;background:#edf5ef;color:var(--teal);border-radius:13px;margin:0}.login-card .eyebrow{margin:0 0 9px;font-size:11px}.login-card h1{font-size:28px;letter-spacing:-.055em;margin:0;line-height:1.2}.login-card label{display:block;font-size:12px;font-weight:600;margin:0 0 7px}.login-card input{display:block;width:100%;min-width:0;padding:12px 13px;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid #bccdc3;border-radius:8px;margin:0 0 18px;min-height:47px}.login-card input:focus-visible{outline:3px solid #65a895;outline-offset:2px}.login-card input[aria-invalid=true]{border-color:#b13d42}.login-submit{width:100%;padding:13px 16px;border:1px solid var(--teal);background:var(--teal);color:#fff;font-size:13px;font-weight:650;min-height:46px;border-radius:9px}.login-submit:disabled{cursor:wait;opacity:.65}.login-error{background:#fbefef;border:1px solid #edcccc;border-radius:8px;padding:11px 13px;color:#903239;font-size:12px;line-height:1.6;overflow-wrap:anywhere;margin:0 0 18px}.login-error:focus{outline:2px solid #b13d42;outline-offset:2px}.login-status{font-size:11px;color:var(--muted);text-align:center;margin:12px 0 0;min-height:17px;line-height:1.5}.session-logout{flex-shrink:0;white-space:nowrap;font:inherit;font-size:11px;font-weight:600;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);align-self:center}.session-feedback{margin-top:18px}.screener-page .session-logout{border-color:#456257;background:#21352f;color:#d9e9e0}.screener-page .session-feedback{background:#3b2526;border-color:#754448;color:#f2c7c7}
.login-card .login-remember{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;cursor:pointer;line-height:1.5}.login-card .login-remember input{width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:0;padding:0;accent-color:var(--teal)}.login-remember-note{font-size:11px;line-height:1.6;color:var(--muted);margin:3px 0 20px}
@media(max-width:760px){.session-logout{font-size:11px;padding:8px 10px}}
@media(max-width:480px){.login-page{padding:25px 18px}.login-card{padding:27px 23px 22px;border-radius:18px}.login-card h1{font-size:26px}.login-heading{gap:13px;margin-bottom:23px}.login-brand{margin-bottom:23px}}

@media(max-width:760px){}

/* Dark theme: selected by the shared light/dark switch. */
:where(:root[data-theme="dark"]) .login-brand-label{color:#7fceb3}:where(:root[data-theme="dark"]) .login-card{border:1px solid var(--line)}:where(:root[data-theme="dark"]) .login-icon{border:1px solid var(--line);background:#1d2a2e}:where(:root[data-theme="dark"]) .login-card input{background:var(--surface);border:1px solid var(--line)}:where(:root[data-theme="dark"]) .login-submit{background:#1f7a6c}:where(:root[data-theme="dark"]) .login-error{background:#3a2224;border:1px solid var(--line);color:#f18d89}
/* Dark theme: filled controls keep white text readable. */
:where(:root[data-theme="dark"]) .login-brand-name{color:var(--ink)}:where(:root[data-theme="dark"]) .login-brand-label{color:#7fceb3}:where(:root[data-theme="dark"]) .login-submit{background:#1f7a6c}
