/* Mobile first sign-in; all assets and interactions are local. */
.login-page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;background:#003424;border-top:6px solid #1FC29C;color:var(--ink);font-size:1.1429rem}
.login-page [hidden]{display:none}
.login-page .login-main{width:100%;max-width:520px;margin:auto;padding:28px 16px 16px}
.login-card{min-width:0;background:#fff;border:1px solid #dde4df;border-radius:20px;padding:26px 22px;box-shadow:0 18px 50px #001d1433}
.login-brand{border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:24px}
.login-logo{display:block;width:128px;max-width:100%;height:auto;background:#fff;margin-bottom:24px}
.login-brand h1{font-size:2.2857rem;line-height:1.15;color:#003424;letter-spacing:-.02em;margin:0 0 10px}
.login-subtitle{font-size:1rem;color:var(--ink-2);line-height:1.6;margin:0;max-width:32ch}
.login-intro h2{font-size:1.5714rem;line-height:1.3;margin:0 0 8px;color:#003424}
.login-intro p{font-size:1rem;color:var(--ink-2);margin:0 0 20px}
.login-form{margin:0}.password-label-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;min-height:44px}
.password-label-row label{font-weight:700;font-size:1.0714rem}
.password-toggle{min-height:44px;padding:8px 10px;flex-shrink:0;background:#fff;border:1px solid var(--line);color:#003424;font-size:1rem;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.login-form input[type=password],.login-form input[type=text]{display:block;width:100%;min-width:0;min-height:56px;border:1.5px solid #77827c;border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:1.1429rem;padding:12px 14px}
.login-form input[aria-invalid=true]{border-width:2px;border-color:var(--crit)}
.login-page button:focus-visible,.login-page input:focus-visible,.login-page a:focus-visible{outline:4px solid #003424;outline-offset:4px}
.login-page .skip:focus-visible{outline-color:#fff}
.login-submit{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;margin-top:24px;padding:14px 16px;border:2px solid #003424;border-radius:10px;background:#1FC29C;color:#003424;font-size:1.1429rem;font-weight:700;flex-wrap:wrap}
.login-submit-label{min-width:0}.login-submit-arrow{margin-left:auto;font-size:1.4rem}
.login-submit:hover{box-shadow:inset 0 0 0 2px #003424}.password-toggle:hover{border-color:#003424}
.login-session{font-size:1rem;text-align:center;line-height:1.6;margin:14px 0 0;color:var(--ink-2)}
.login-help{font-size:1rem;line-height:1.6;color:var(--ink-2);border-top:1px solid var(--line);padding-top:20px;margin:24px 0 0}
.login-error{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--crit);border-left-width:4px;border-radius:8px;background:var(--crit-bg);margin-bottom:16px;color:var(--ink);font-size:1rem}
.login-error p{margin:0}.login-error-icon{display:inline-grid;place-items:center;flex:0 0 22px;height:22px;border-radius:50%;background:var(--crit);color:#fff;font-weight:700}
.caps-lock-hint{font-size:1rem;color:var(--ink);border:1px dashed var(--warn);border-radius:8px;background:var(--warn-bg);margin:10px 0 0;padding:8px 10px}.caps-lock-hint span{font-weight:700;margin-right:4px}
.login-footer{width:100%;max-width:520px;align-self:center;margin:0 auto;padding:8px 24px 28px;font-size:1rem;text-align:center;color:#fff;line-height:1.6}
@media (min-width:561px){.login-page .login-main{padding-top:48px}.login-card{padding:36px}.login-logo{width:144px}.login-brand h1{font-size:2.5714rem}.login-footer{padding-bottom:40px}}
@media (max-width:380px){.login-page .login-main{padding:20px 12px 12px}.login-card{padding:22px 18px}.login-brand h1{font-size:2.1429rem}.login-submit{padding-left:12px;padding-right:12px}}
