:root { color-scheme:light; }
* { box-sizing:border-box; }
body { margin:0;background:#f4f6f8;color:#19364b;font:14px/1.6 'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif; }
body::before { content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 115%,transparent 0 149px,#708ca010 150px 151px,transparent 152px 319px,#708ca00c 320px 321px,transparent 322px 489px,#708ca008 490px 491px,transparent 492px); }
button,input { font:inherit; }
button { cursor:pointer; }
a { color:#1764a5; }
.login-shell { position:relative;display:flex;flex-direction:column;align-items:center;min-height:100svh;padding:32px 20px; }
.signin-panel { width:100%;max-width:440px;margin:auto;padding:38px 40px 30px;border:1px solid #e3e8ed;border-radius:12px;background:white;box-shadow:0 18px 55px #1a355715,0 2px 8px #1a355704; }
.signin-inner { width:100%;min-width:0; }
.brand-row { display:flex;align-items:center;justify-content:center;gap:11px;margin-bottom:28px; }
.login-mark { display:block;flex:0 0 44px;width:44px;height:44px; }
.login-wordmark { min-width:0; }
.login-brand-name { font-size:29px;font-weight:800;letter-spacing:-1.1px;line-height:1.1;white-space:nowrap; }
.login-brand-name span { font-weight:400;color:#4076a0;margin-left:4px; }
.login-brand-tagline { font-size:8px;letter-spacing:1.1px;color:#61798b;margin-top:6px; }
.auth-heading { text-align:center; }
.auth-eyebrow { font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#54758e;margin:0 0 8px; }
.auth-heading h1 { font-size:25px;letter-spacing:-.65px;line-height:1.3;margin:0 0 7px; }
.auth-heading>p:last-child { margin:0;color:#657b8c;font-size:12px;line-height:1.6; }
.auth-form { display:grid;gap:18px;margin-top:25px; }
.form-field>label { display:block;font-size:12px;font-weight:600;margin-bottom:7px;color:#38576e; }
.input-shell { position:relative;display:flex;align-items:center; }
.input-shell>svg { position:absolute;left:13px;color:#7891a3;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;pointer-events:none; }
.input-shell input { width:100%;min-width:0;min-height:48px;border:1px solid #c9d5df;border-radius:7px;background:#fff;color:#19364b;padding:11px 14px 11px 41px;font-size:16px;transition:border-color .15s,box-shadow .15s; }
.password-shell input { padding-right:48px; }
.input-shell input:hover { border-color:#9fb9cc; }
.input-shell input:focus { outline:3px solid #b7dbf580;outline-offset:2px;border-color:#397eb1; }
.password-toggle { position:absolute;right:3px;display:grid;place-items:center;width:42px;height:42px;border:0;background:transparent;color:#597a94;border-radius:5px; }
.password-toggle:hover { color:#1764a5;background:#f1f6fa; }
.password-toggle svg,.signin-button svg,.login-alert svg { display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;flex-shrink:0; }
.password-toggle .eye-closed { display:none; }
.password-toggle[aria-pressed=true] .eye-open { display:none; }
.password-toggle[aria-pressed=true] .eye-closed { display:block; }
.signin-button { position:relative;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;margin-top:4px;border:1px solid #1e619d;border-radius:7px;background:linear-gradient(180deg,#2b75b8,#2367a5);color:#fff;padding:12px 40px;font-size:14px;font-weight:650;box-shadow:0 3px 8px #1a568b1c;transition:background .15s,box-shadow .15s; }
.signin-button>svg { position:absolute;right:16px;width:18px;height:18px; }
.signin-button:hover { background:#1d609b;box-shadow:0 4px 12px #1a568b26; }
.signin-button:disabled { opacity:.7;cursor:wait; }
.button-spinner { position:absolute;left:16px;width:17px;height:17px;border:2px solid #ffffff66;border-top-color:white;border-radius:50%;animation:signin-spin .8s linear infinite; }
@keyframes signin-spin { to { transform:rotate(360deg); } }
.login-alert { display:flex;align-items:flex-start;gap:9px;margin:20px 0 0;padding:12px 13px;border:1px solid #c8dfd2;border-radius:7px;background:#eaf5ef;color:#286c50;font-size:12px;overflow-wrap:anywhere; }
.login-alert-error { border-color:#e7c6c0;background:#fff0ed;color:#a43f38; }
.setup-note { margin:20px 0 0;color:#617b8e;font-size:11px;line-height:1.6;text-align:center; }
.security-footer { margin-top:24px;padding-top:20px;border-top:1px solid #edf0f3;text-align:center;color:#708495;font-size:11px;line-height:1.8; }
.security-footer p { margin:0; }
.security-footer strong { color:#47667e;font-weight:500; }
.login-skip-link { position:fixed;top:10px;left:10px;z-index:10;transform:translateY(-150%);padding:10px;background:white;border-radius:5px; }
.login-skip-link:focus { transform:none; }
button:focus-visible,a:focus-visible { outline:3px solid #2275b4;outline-offset:3px; }
@media(max-width:480px) {
    .login-shell { padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); }
    .password-toggle { width:44px;height:44px;right:2px; }
    .signin-panel { padding:30px 26px 25px;border-radius:11px; }
    .brand-row { gap:9px;margin-bottom:25px; }
    .login-mark { width:38px;height:38px;flex-basis:38px; }
    .login-brand-name { font-size:27px; }
    .auth-heading h1 { font-size:24px; }
}
@media(max-width:350px) { .signin-panel { padding:28px 21px 24px; } .login-brand-name { font-size:25px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important; } }

.security-domain-guidance { margin-top:20px;padding:12px 13px;border:1px solid #dce7ef;border-radius:7px;background:#f5f9fc;color:#536e81;font-size:12px;line-height:1.6; }
.security-domain-guidance summary { cursor:pointer;color:#315f82;font-weight:600; }
.security-domain-guidance p { margin:10px 0; }
.security-domain-guidance a { display:inline-block;padding:5px 0;text-underline-offset:3px; }
