/* Scoped login refinements; shared Identity styling and watermark remain intact. */
.login-page{--login-focus:#7044aa;--login-link:#68409c}
html[data-theme="dark"] .login-page{--login-focus:#b5a4cb;--login-link:#ffc078}
.login-page .login-card a{color:var(--login-link);text-underline-offset:4px}
.login-page .login-card a:hover{text-decoration:underline}
/* One field boundary, with no inner rectangle or outer glow. */
.login-page .input-wrap:focus-within{border-color:var(--login-focus);box-shadow:none}
.login-page .login-card .input-wrap input:focus,
.login-page .login-card .input-wrap input:focus-visible{outline:none;box-shadow:none}
/* Separate controls retain a restrained keyboard-only indicator. */
.login-page .login-card :is(a,button,input[type="checkbox"]):focus-visible{outline:2px solid var(--login-focus);outline-offset:2px}
@media(forced-colors:active){.login-page .input-wrap:focus-within{outline:2px solid Highlight;outline-offset:2px}}
.login-page .password-eye{width:44px;min-width:44px;min-height:44px;display:grid;place-items:center;cursor:pointer}
.login-page .input-wrap{padding-right:3px}
.login-page .login-options{gap:12px;flex-wrap:wrap}
.login-page .login-options .check{min-height:44px}
.login-page .login-options input[type="checkbox"]{width:18px;height:18px;accent-color:var(--login-focus)}
.login-page .login-card .primary-btn{min-height:48px}
.login-page .login-card .primary-btn:disabled{cursor:wait;opacity:.8}
.login-page .login-brand-back{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;overflow-wrap:anywhere}
.login-page .login-hint{font-size:13px;margin:6px 0;color:#704013}
html[data-theme="dark"] .login-page .login-hint{color:#ffd19c}
.login-page .login-card .alert{background:#fff0f3;color:#8e203d;font-size:14px;line-height:1.5;border:1px solid #d895a6}
html[data-theme="dark"] .login-page .login-card .alert{background:#38232c;color:#ffd4df;border-color:#a86a7c}
html[data-theme="light"] .login-page .login-card .muted{color:#686170}
html[data-theme="dark"] .login-page .login-card .muted{color:#c1b9ca}
.login-page [hidden]{display:none!important}
.login-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(prefers-reduced-motion:reduce){.login-page *, .login-page *::before,.login-page *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Sequential dots reserve their width so the button label never moves. */
.login-page .login-loading-dots{display:inline-flex;min-width:1em;white-space:nowrap}
.login-page .login-loading-dots>span{opacity:0;animation:loginDotOne 1.5s steps(1,end) infinite}
.login-page .login-loading-dots>span:nth-child(2){animation-name:loginDotTwo}
.login-page .login-loading-dots>span:nth-child(3){animation-name:loginDotThree}
@keyframes loginDotOne{0%,100%{opacity:0}20%,99.99%{opacity:1}}
@keyframes loginDotTwo{0%,100%{opacity:0}40%,99.99%{opacity:1}}
@keyframes loginDotThree{0%,100%{opacity:0}60%,99.99%{opacity:1}}
@media(prefers-reduced-motion:reduce){.login-page .login-loading-dots>span{animation:none!important;opacity:1}}
