/* Acceso y registro: misma paleta y superficies que la aplicación, sin alterar sus flujos. */
.auth-page { --auth-primary: #006272; --auth-ink: #253943; --auth-muted: #526773; --auth-line: #dce5eb; color: var(--auth-ink); background: #f7f9fc; }
.auth-page .auth-shell { min-height: 100svh; padding: 32px 16px; background: #f7f9fc; }
.auth-page .auth-row { --bs-gutter-x: 0; margin: 0; }
.auth-page .auth-column { width: 100%; max-width: 480px; padding: 0; }
.auth-page .auth-column:has(#register-form-container:not([style*="display: none"])) { max-width: 640px; }
.auth-page .auth-card { border: 1px solid var(--auth-line); border-radius: 20px; background: #fff; box-shadow: 0 8px 32px rgb(25 47 59 / 5%); }
.auth-page .auth-card-body { padding: 32px 36px; }
.auth-page .auth-brand { padding: 0 0 24px !important; margin-bottom: 22px; border-bottom: 1px solid var(--auth-line); }
.auth-page .auth-brand img { width: 180px; max-width: 100%; height: auto; }
.auth-page .auth-form-heading { margin: 0 0 26px; text-align: center; }
.auth-page .auth-form-heading h1 { margin: 0 0 7px; color: var(--auth-ink); font-size: 26px; font-weight: 600; letter-spacing: -.5px; line-height: 1.3; }
.auth-page .auth-form-heading p { margin: 0; color: var(--auth-muted); font-size: 13px; line-height: 1.6; }
.auth-page .form-label { margin-bottom: 7px; color: var(--auth-ink); font-size: 13px; font-weight: 500; }
.auth-page .form-control { min-height: 44px; border: 1px solid #cad8e0; border-radius: 10px; padding: 10px 12px; color: var(--auth-ink); background-color: #fff; font-size: 14px; }
.auth-page .form-control:focus { border-color: var(--auth-primary); box-shadow: 0 0 0 3px rgb(0 98 114 / 10%); }
.auth-page .password-field .form-control { padding-right: 44px; }
.auth-page .input-icon-left .form-control { padding-left: 40px; }
.auth-page .password-toggle { width: 32px; height: 32px; right: 6px; border-radius: 7px; color: var(--auth-muted); }
.auth-page .password-toggle:hover { color: var(--auth-primary); background: #eaf3f5; }
.auth-page :is(a, button, input):focus-visible { outline: 2px solid var(--auth-primary); outline-offset: 3px; }
.auth-page .password-toggle:focus-visible { outline: 2px solid var(--auth-primary); outline-offset: 2px; }
.auth-page .btn { min-height: 42px; padding: 10px 16px; border-radius: 10px !important; font-size: 13px; font-weight: 500; box-shadow: none; }
.auth-page .btn-primary { --bs-btn-focus-shadow-rgb: 0,98,114; color: #fff; background: var(--auth-primary); border-color: var(--auth-primary); }
.auth-page .btn-primary:hover, .auth-page .btn-primary:focus, .auth-page .btn-primary:active { color: #fff; background: #005362; border-color: #005362; }
.auth-page .btn-outline-primary { color: var(--auth-primary); background: #fff; border-color: #b7ccd5; }
.auth-page .btn-outline-primary:hover, .auth-page .btn-check:checked + .btn-outline-primary { color: var(--auth-primary); background: #e1eef2; border-color: var(--auth-primary); }
.auth-page .btn-outline-secondary { color: var(--auth-muted); background: #fff; border-color: #cad8e0; }
.auth-page :is(.text-primary, .link-primary, .text-primary-emphasis) { color: var(--auth-primary) !important; }
.auth-page a { color: var(--auth-primary); }
.auth-page a:hover { color: #004854; }
.auth-page #forgot-link { color: var(--auth-primary) !important; font-weight: 500; }
.auth-page .form-check-label { color: var(--auth-muted) !important; font-size: 13px; line-height: 1.6; }
.auth-page .form-check-input { border-color: #a9bcc6; cursor: pointer; }
.auth-page .form-check-input:checked { background-color: var(--auth-primary); border-color: var(--auth-primary); }
.auth-page .form-check-input:focus { border-color: var(--auth-primary); box-shadow: 0 0 0 3px rgb(0 98 114 / 10%); }
.auth-page .auth-switch { margin-top: 22px !important; padding-top: 20px; border-top: 1px solid var(--auth-line); font-size: 13px; }
.auth-page .auth-switch a { margin-left: 4px; font-weight: 600 !important; }
.auth-page #register-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; }
.auth-page #register-form > :is(.mb-3, .mb-4) { min-width: 0; margin: 0 !important; }
.auth-page #register-form > :is(.auth-form-wide, #reg_cif_group, #reg_dni_group, .mb-4, button) { grid-column: 1 / -1; }
.auth-page #register-form > button { margin: 0 !important; }
.auth-page #register-form .btn-group { gap: 6px; }
.auth-page #register-form .btn-group > .btn { margin: 0; }
.auth-page #register-form [id$="_error"] { font-size: 12px; line-height: 1.5; }
.auth-page .alert { border-radius: 10px; padding: 12px 14px; font-size: 13px; overflow-wrap: anywhere; }
.auth-page .form-control.is-invalid { border-color: #b53c4e; }
.auth-page .form-control.is-valid { border-color: #34805a; }
.auth-page .modal-content { max-height: calc(100dvh - 56px); border: 1px solid var(--auth-line) !important; border-radius: 18px; overflow: hidden; box-shadow: 0 16px 60px rgb(25 47 59 / 16%) !important; }
.auth-page .modal-header { flex-shrink: 0; padding: 20px 24px !important; border-bottom: 1px solid var(--auth-line) !important; background: #f7f9fc; }
.auth-page .modal-title { color: var(--auth-ink) !important; font-size: 19px; line-height: 1.4; letter-spacing: -.3px; }
.auth-page .modal-body { padding: 22px 24px !important; overflow: auto; }
.auth-page .modal-body p { line-height: 1.65; }
.auth-page #termsModal .modal-body { font-size: 13px; }
.auth-page #termsModal .auth-terms-intro { padding-bottom: 18px; border-bottom: 1px solid var(--auth-line); }
.auth-page #termsModal .auth-terms-section { padding: 18px !important; margin-bottom: 14px !important; border-color: var(--auth-line) !important; border-radius: 12px !important; background: #f7f9fc !important; }
.auth-page #termsModal .auth-terms-section h6 { color: var(--auth-ink) !important; font-size: 14px; line-height: 1.5; }
.auth-page #termsModal .auth-terms-section :is(p, li) { color: var(--auth-muted) !important; line-height: 1.7; }
.auth-page #termsModal .auth-terms-section.h-100 { margin-bottom: 0 !important; }
.auth-page #code-inputs-container { gap: 6px !important; }
.auth-page .code-input { flex: 1 1 0; min-width: 0; width: 44px; max-width: 48px; height: 48px; border: 1px solid #cad8e0; border-radius: 9px; color: var(--auth-ink); font-size: 21px; }
.auth-page .code-input:focus { border-color: var(--auth-primary); box-shadow: 0 0 0 2px rgb(0 98 114 / 10%); transform: none; }
.auth-page .code-input.is-invalid { border-color: #b53c4e; }
.auth-page .code-input.is-valid { border-color: #34805a; }
.auth-page .login-loader { width: 56px; height: 56px; }
.auth-page .login-loader-ring { border-width: 2px; border-top-color: var(--auth-primary); border-right-color: var(--auth-primary); }
.auth-page .login-loader-ring::after { display: none; }
.auth-page .login-loading-text { color: var(--auth-ink); font-size: 16px; font-weight: 500; text-align: center; }
.auth-page .login-loading-content { gap: 22px; padding: 24px; }
@media (max-width: 575px) {
  .auth-page .auth-shell { padding: 20px 12px; }
  .auth-page .auth-card { border-radius: 16px; }
  .auth-page .auth-card-body { padding: 26px 22px; }
  .auth-page .auth-form-heading h1 { font-size: 24px; }
  .auth-page #register-form { grid-template-columns: minmax(0, 1fr); }
  .auth-page .modal-header { padding: 16px !important; }
  .auth-page .modal-content { max-height: calc(100dvh - 16px); }
  .auth-page .modal-body { padding: 18px 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .auth-page .login-loader-ring, .auth-page .login-loading-text .dots span { animation: none; }
}
