[hidden] { display: none !important; }
.password-field { display: flex; align-items: stretch; gap: 8px; }
.password-field .form-control { min-width: 0; flex: 1; }
.password-toggle, .account-link {
    color: var(--color-forest-green); background: transparent; border: 0;
    font: inherit; font-size: 13px; cursor: pointer; min-height: 44px;
}
.password-toggle { flex: 0 0 auto; padding: 0 4px; }
.account-link { width: 100%; text-decoration: underline; padding: 10px 0; }
.account-message { font-size: 13px; line-height: 1.5; color: var(--color-dark-charcoal); margin: 12px 0; }
.account-message:empty { display: none; }
.account-error { color: #9d2828; }
.account-help { font-size: 12px; line-height: 1.4; margin-top: 6px; color: #626262; }
.account-title { font-size: 20px; margin: 0 0 12px; color: var(--color-forest-green); }
.account-security summary { cursor: pointer; min-height: 44px; display: list-item; padding: 10px 0; }
.account-security form { margin-top: 14px; }
button:disabled { opacity: .55; cursor: default; }
#recovery_code { letter-spacing: .25em; font-size: 22px; }
.startup-state { min-height: min(60vh, 420px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; text-align: center; padding: 24px; }
.startup-state h2 { font-size: 32px; color: var(--color-forest-green); margin: 0; }
.startup-state p { color: var(--color-dark-charcoal); line-height: 1.5; margin: 0; }
.startup-spinner { width: 32px; height: 32px; border: 3px solid var(--color-border-grey); border-top-color: var(--color-forest-green); border-radius: 50%; animation: startup-spin 1s linear infinite; }
.startup-spinner[hidden], #startup_retry[hidden], #startup_sign_in[hidden] { display: none; }
@keyframes startup-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .startup-spinner { animation: none; } }

