:root { color-scheme:light; --ink:#26343d; --muted:#6d767e; --line:#dce2e6; --accent:#176b62; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; min-height:100dvh; display:grid; place-items:center; padding:24px 16px; background:#f5f7f8; color:var(--ink); font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; }
.login-window { width:min(100%,360px); padding:32px 28px 24px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.login-shell { width:min(100%,360px); display:grid; justify-items:center; gap:16px; }
.login-shell .signal-stage { width:150px; height:142px; }
h1 { margin:0 0 12px; font-size:20px; line-height:1.3; font-weight:600; }
p { margin:12px 0; }
form { display:grid; gap:12px; }
label { font-size:13px; }
label input { margin-top:5px; }
input,button { font:inherit; border:1px solid #bdc8cf; border-radius:5px; min-height:44px; color:var(--ink); }
input { width:100%; min-width:0; padding:10px 12px; background:#fff; }
button { padding:9px 14px; cursor:pointer; background:#fff; }
button:hover { background:#f0f4f5; }
button:disabled { opacity:.55; cursor:wait; }
.primary { color:#fff; border-color:var(--accent); background:var(--accent); }
.primary:hover { background:#11554d; }
button:focus-visible,input:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.login-actions { display:flex; gap:10px; margin-top:2px; }
.login-actions button { flex:1; }
.text-button { min-height:36px; padding:7px 0; border:0; color:var(--muted); background:transparent; text-decoration:underline; text-underline-offset:3px; font-size:12px; }
.text-button:hover { color:var(--ink); background:transparent; }
#login-recovery,#auth-back { margin-top:12px; }
.muted { color:var(--muted); font-size:12px; }
#auth-description { margin-bottom:18px; }
#auth-message { font-size:13px; overflow-wrap:anywhere; }
#auth-message.error { color:#963c32; }
#auth-message.success { color:#176b62; }
#auth-progress { min-height:18px; margin-bottom:20px; }
.login-mark { display:block; color:#b6bcc1; font-size:13px; font-style:italic; letter-spacing:.02em; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
[hidden] { display:none !important; }
@media(max-width:400px) { .login-window { padding:26px 22px 22px; } }
@media(max-height:700px) { .login-shell { gap:8px; } .login-shell .signal-stage { width:112px; height:106px; } }
