/* Login copy/layout only. Preserve global palette, type scale and auth policy. */
.login-shell .login-panel,
.login-shell .login-intro,
.login-shell .auth-form { min-width: 0; }
.login-shell :is(.login-status, .form-note, .auth-options label) {
    word-break: keep-all;
    overflow-wrap: break-word;
    letter-spacing: normal;
}
.login-shell .auth-options { gap: 10px 20px; }
.login-shell .auth-options label {
    max-width: 100%;
    white-space: normal;
}
.login-shell .auth-options label span { min-width: 0; }
.login-shell :is(.form-error, .errorlist) { overflow-wrap: anywhere; }
.login-shell .auth-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) { min-width: 0; max-width: 100%; }

/* Only this submit group owns the option/note/button spacing.
   The outer auth-form gap and the label/input/error spacing stay unchanged. */
.login-shell .login-submit-block { display: grid; gap: 0; min-width: 0; }
.login-shell .login-submit-block > .auth-options { margin-bottom: 0; }
.login-shell .login-option-notes { display: grid; gap: 4px; margin: 12px 0 20px; }
.login-shell .login-option-notes > .form-note { margin: 0; }
.login-shell .login-submit-block > button[type="submit"] { margin: 0; }

.login-shell .auth-password-control { display: flex; min-width: 0; align-items: stretch; gap: 8px; }
.login-shell .auth-password-control > input { flex: 1 1 auto; width: 0; }
.login-shell .auth-password-control > button { flex: 0 0 auto; margin: 0; padding: 8px 12px; min-width: 56px; }
.login-shell .auth-recovery-links { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 20px; word-break: keep-all; }
.login-shell .auth-secret { overflow-wrap: anywhere; word-break: break-all; font-family: monospace; }
