:root{color-scheme:light;--bg:#eef2f7;--panel:#fff;--ink:#182b45;--muted:#65758b;--line:#cbd6e3;--blue:#086ada}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-width:320px}header{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;gap:20px}.brand{display:inline-flex;align-items:center;gap:15px;color:var(--ink);text-decoration:none}.brand>span{font-size:31px;font-style:italic;font-weight:850;letter-spacing:-2px;line-height:1}.brand i{color:#24a7df}.brand i:nth-child(2){color:#3158ae}.brand i:nth-child(3){color:#e83d57}.brand b{font-size:21px;font-weight:500;border-left:1px solid var(--line);padding-left:15px}button,input{font:inherit;color:inherit}button{cursor:pointer;min-height:44px;border-radius:10px;border:1px solid var(--line);background:var(--panel)}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #79b7ff;outline-offset:3px}button:disabled{cursor:wait;opacity:.6}#login-theme{min-width:44px;font-size:22px}main{display:grid;place-items:center;min-height:calc(100svh - 100px);padding:24px 20px 80px}.login-card{width:100%;max-width:420px;padding:36px;background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 40px #132c4d08}h1{font-size:30px;line-height:1.2;margin:0 0 12px}.intro{color:var(--muted);margin:0 0 28px}form{display:flex;flex-direction:column;gap:9px}label{font-weight:600;font-size:14px}input{width:100%;min-width:0;min-height:48px;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:10px 13px}#login{margin-bottom:12px}.password-field{position:relative;display:flex}.password-field input{padding-right:56px}.password-field button{position:absolute;right:2px;top:2px;width:44px;min-height:44px;background:transparent;border:0}.password-field svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;vertical-align:middle}#login-submit{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600;margin-top:14px;min-height:48px}.session-note{color:var(--muted);text-align:center;font-size:13px;margin:8px 0 0}#login-error{color:#ba2e25;margin:8px 0 0;overflow-wrap:anywhere}.notice{padding:14px;border-radius:10px;background:var(--bg);font-size:14px}[hidden]{display:none!important}:root[data-theme=dark]{color-scheme:dark;--bg:#101824;--panel:#192333;--ink:#e5ecf6;--muted:#a4b1c4;--line:#40516a;--blue:#1972e9}[data-theme=dark] #login-error{color:#ffa79b}[data-theme=dark] .brand i:nth-child(2){color:#779be8}@media(max-width:650px){header{padding:16px 18px}.brand>span{font-size:27px}.brand b{font-size:18px}main{padding:20px 16px 48px;min-height:calc(100svh - 80px)}.login-card{padding:28px 22px;border-radius:16px}input,button{font-size:16px}}@media(max-width:350px){.login-card{padding:24px 18px}.brand{gap:10px}.brand b{padding-left:10px}}

#password-toggle .eye-slash{display:block}
#password-toggle[aria-pressed="true"] .eye-slash{display:none}

@media(hover:none),(pointer:coarse){button,summary,a{transition:none}}

/* Suppress the browser tap overlay; :active provides press feedback. */
button,a,summary,label,input,select,[role=button]{-webkit-tap-highlight-color:transparent}

/* Standalone iOS: keep controls outside the sensor and home-indicator areas. */
body{padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}
body{min-height:100dvh}main{min-height:calc(100dvh - 100px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}input{scroll-margin-block:24px}@media(max-height:500px){main{min-height:0;align-items:start;padding-block:16px}}

/* Keyboard gets its own scroll space; do not vertically centre behind it. */
body.keyboard-open{padding-bottom:calc(env(safe-area-inset-bottom,0px) + var(--keyboard-space,0px))}
.keyboard-open main{min-height:0;align-items:start;padding-top:8px;padding-bottom:16px}
.keyboard-open header{padding-block:8px}
.keyboard-open .login-card{padding:18px 22px}
.keyboard-open .intro,.keyboard-open .session-note{display:none}
.keyboard-open h1{font-size:24px;margin-bottom:16px}

.brand .brand-auto{font-style:normal;font-weight:300}.brand>b{white-space:nowrap}

#factor-field{display:grid;gap:9px;margin-top:8px}#recovery-toggle{justify-self:start;border:0;background:transparent;color:var(--blue);padding:0 4px}
