/* =============================================================================
   HIF Legibilidad — contraste global (login, panel, modales, formularios, alertas)
   Cargar DESPUÉS de hif-app.css, hif-premium.css y hif-premium-universal.css
   ============================================================================= */

/* —— Base: texto oscuro por defecto en toda la app —— */
body.hif-app {
    color: var(--text-primary, #0f172a);
}

/* Bootstrap .text-white → texto legible (solo modo claro) */
body.hif-app .text-white {
    color: var(--text-primary, #0f172a) !important;
}

body.hif-app .text-white-50 {
    color: var(--text-muted, #64748b) !important;
}

/* Restaurar contraste en componentes con fondo oscuro heredado (desactivado: solo modo claro) */

/* Sidebar oscura pastel: texto blanco (no gris de “sidebar clara”) */
body.hif-app.hif-ds-2026 .sidebar.hif-sidebar .nav-link,
body.hif-app.hif-ds-2026 .sidebar-offcanvas .nav-link,
body.hif-app.hif-ds-2026 .hif-sidebar-nav .nav-link,
body.hif-app.hif-ds-2026 .hif-sidebar-nav .nav-link span,
body.hif-app.hif-ds-2026 .hif-sidebar-nav a.nav-link {
    color: #FFFFFF !important;
}

body.hif-app.hif-ds-2026 .hif-sidebar-nav .sidebar-section,
body.hif-app.hif-ds-2026 .hif-sidebar-nav .hif-sidebar-flow-hint,
body.hif-app.hif-ds-2026 .sidebar.hif-sidebar .sidebar-section,
body.hif-app.hif-ds-2026 .sidebar-offcanvas .sidebar-section {
    color: rgba(255, 255, 255, 0.55) !important;
}

body.hif-app.hif-ds-2026 .hif-sidebar-nav .nav-link:hover,
body.hif-app.hif-ds-2026 .sidebar.hif-sidebar .nav-link:hover,
body.hif-app.hif-ds-2026 .sidebar-offcanvas .nav-link:hover {
    color: #FFFFFF !important;
    background: rgba(255, 255, 255, 0.12) !important;
}

body.hif-app.hif-ds-2026 .hif-sidebar-nav .nav-link.active,
body.hif-app.hif-ds-2026 .sidebar.hif-sidebar .nav-link.active,
body.hif-app.hif-ds-2026 .sidebar-offcanvas .nav-link.active {
    color: #1C2430 !important;
    background: #E6EEF5 !important;
}

body.hif-app.hif-ds-2026 .hif-sidebar-nav .nav-link.active i.bi {
    color: #3D5A73 !important;
    opacity: 1;
}

body.hif-app.hif-ds-2026 .hif-sidebar-nav .nav-link i.bi {
    color: #FFFFFF !important;
    opacity: 1;
}

/* —— Área principal del panel —— */
body.hif-app .main-content,
body.hif-app .content-wrapper,
body.hif-app .container-fluid {
    color: var(--text-primary, #0f172a);
}

body.hif-app .main-content .card,
body.hif-app .main-content .cr-form-section,
body.hif-app .content-wrapper .card,
body.hif-app .main-content .modal-content:not(.ticket-floating-window) {
    color: var(--text-primary, #0f172a);
}

body.hif-app .main-content .card-body,
body.hif-app .main-content .card-footer,
body.hif-app .main-content .card-header:not(.bg-primary):not(.bg-success):not(.bg-danger):not(.bg-dark):not(.bg-secondary) {
    background: var(--bg-card, #fff) !important;
    color: var(--hif-navy, #0f3d5e) !important;
}

/* Títulos */
body.hif-app .main-content h1,
body.hif-app .main-content h2,
body.hif-app .main-content h3,
body.hif-app .main-content h4,
body.hif-app .main-content h5,
body.hif-app .main-content .page-title,
body.hif-app .main-content h6.text-body,
body.hif-app .main-content .text-body {
    color: var(--hif-navy, #0f3d5e);
}

body.hif-app .main-content h6.text-secondary,
body.hif-app .main-content .text-secondary:not(.badge):not(.btn) {
    color: var(--text-secondary, #475569) !important;
}

body.hif-app .main-content .page-subtitle,
body.hif-app .main-content .text-muted,
body.hif-app .main-content small.text-muted,
body.hif-app .main-content .form-text {
    color: var(--text-muted, #64748b) !important;
}

/* Formularios (panel y módulos) */
body.hif-app .main-content .form-label,
body.hif-app .main-content .form-check-label,
body.hif-app .main-content legend,
body.hif-app .modal .form-label,
body.hif-app .modal .form-check-label {
    color: var(--text-secondary, #475569) !important;
}

body.hif-app .main-content .form-control,
body.hif-app .main-content .form-select,
body.hif-app .main-content textarea,
body.hif-app .modal .form-control,
body.hif-app .modal .form-select,
body.hif-app .modal textarea {
    color: var(--text-primary, #0f172a) !important;
    background-color: var(--bg-card, #fff) !important;
}

body.hif-app .main-content .form-control::placeholder,
body.hif-app .modal .form-control::placeholder {
    color: var(--text-muted, #64748b) !important;
    opacity: 1;
}

body.hif-app .main-content .form-control[readonly],
body.hif-app .main-content .form-control:disabled,
body.hif-app .main-content .form-select:disabled {
    background-color: #f1f5f9 !important;
    color: var(--text-primary, #0f172a) !important;
}

body.hif-app .main-content .input-group-text {
    color: var(--text-secondary, #475569) !important;
    background-color: #f1f5f9 !important;
}

body.hif-app .main-content .invalid-feedback,
body.hif-app .modal .invalid-feedback {
    color: var(--danger-text, #b42318) !important;
}

body.hif-app .main-content .btn-outline-secondary,
body.hif-app .main-content .btn-outline-light,
body.hif-app .modal .btn-outline-secondary {
    color: var(--text-secondary, #475569) !important;
    background-color: var(--bg-card, #fff) !important;
    border-color: var(--border-light, #dce3ea) !important;
}

/* —— Login / invitado / registro —— */
body.hif-guest-body,
body.hif-guest-body .hif-guest-card,
body.hif-guest-body .hif-guest-card *:not(.btn-primary):not(.btn-success):not(.btn-danger) {
    color: var(--text-primary, #0f172a);
}

body.hif-guest-body .hif-guest-instruction,
body.hif-guest-body .hif-guest-instruction strong {
    color: var(--text-secondary, #475569) !important;
}

body.hif-guest-body .hif-guest-instruction strong {
    color: var(--text-primary, #0f172a) !important;
}

body.hif-guest-body .hif-guest-card .form-label {
    color: var(--text-secondary, #475569) !important;
}

body.hif-guest-body .hif-guest-card .form-control,
body.hif-guest-body .hif-guest-card .form-select {
    color: var(--text-primary, #0f172a) !important;
    -webkit-text-fill-color: var(--text-primary, #0f172a) !important;
}

body.hif-guest-body .hif-guest-card .text-muted {
    color: var(--text-muted, #64748b) !important;
}

body.hif-guest-body .hif-guest-card .btn-primary,
body.hif-guest-body .hif-guest-card .btn-success {
    color: #fff !important;
}

body.hif-guest-body .hif-guest-card code {
    color: var(--text-primary, #0f172a) !important;
    background: #f1f5f9 !important;
}

body.hif-register-page,
body.hif-register-page .cliente-card,
body.hif-register-page .cliente-card .card-header,
body.hif-register-page .cliente-card .card-body {
    color: var(--text-primary, #0f172a);
}

body.hif-register-page .cliente-card .card-header .text-muted,
body.hif-register-page .section-title {
    color: var(--text-muted, #64748b);
}

body.hif-register-page .section-title {
    color: var(--hif-navy, #0f3d5e);
    font-weight: 700;
}

/* —— Modales (todos excepto ticket oscuro) —— */
body.hif-app .modal-content:not(.ticket-floating-window) {
    background: var(--bg-card, #fff) !important;
    color: var(--text-primary, #0f172a) !important;
}

body.hif-app .modal-content:not(.ticket-floating-window) .modal-header,
body.hif-app .modal-content:not(.ticket-floating-window) .modal-footer {
    background: var(--bg-page, #f5f7fa) !important;
    color: var(--text-primary, #0f172a) !important;
    border-color: var(--border-light, #dce3ea) !important;
}

body.hif-app .modal-content:not(.ticket-floating-window) .modal-title,
body.hif-app .modal-content:not(.ticket-floating-window) .modal-body,
body.hif-app .modal-content:not(.ticket-floating-window) .modal-body p,
body.hif-app .modal-content:not(.ticket-floating-window) .modal-body label,
body.hif-app .modal-content:not(.ticket-floating-window) .modal-body strong,
body.hif-app .modal-content:not(.ticket-floating-window) .modal-body small {
    color: var(--text-primary, #0f172a) !important;
}

body.hif-app .modal-content:not(.ticket-floating-window) .text-muted {
    color: var(--text-muted, #64748b) !important;
}

/* Notificación y confirmación (refuerzo) */
body.hif-app .hif-notification-modal .modal-content,
body.hif-app .hif-confirm-modal .modal-content {
    background: var(--bg-card, #fff) !important;
    color: var(--text-primary, #0f172a) !important;
}

body.hif-app .hif-notification-modal .modal-title,
body.hif-app .hif-confirm-modal .modal-title,
body.hif-app .hif-notification-modal .modal-body,
body.hif-app .hif-confirm-modal .modal-body,
body.hif-app .hif-notification-modal__text,
body.hif-app .hif-notification-modal__text strong {
    color: var(--text-primary, #0f172a) !important;
}

body.hif-app .hif-notification-modal__item--success {
    color: var(--success-text, #1a7a34) !important;
}

body.hif-app .hif-notification-modal__item--error {
    color: var(--danger-text, #b42318) !important;
}

body.hif-app .hif-notification-modal__item--warning {
    color: var(--warning-text, #8a5a12) !important;
}

body.hif-app .hif-notification-modal__item--info {
    color: var(--info-text, #1f5eff) !important;
}

body.hif-app .hif-confirm-modal .modal-footer .btn-secondary {
    color: var(--text-secondary, #475569) !important;
    background: var(--bg-card, #fff) !important;
}

/* —— Tarjetas de notificación flash (session) —— */
body.hif-app .notification-cards,
body.hif-app .notification-card,
body.hif-app .notification-card-message,
body.hif-app .notification-card-inner,
body.hif-app .notification-cards-cliente,
body.hif-app .notification-card-cliente,
body.hif-app .notification-card-cliente-message {
    color: inherit;
}

body.hif-app .notification-card--success,
body.hif-app .notification-card-cliente--success {
    color: var(--success-text, #1a7a34) !important;
}

body.hif-app .notification-card--error,
body.hif-app .notification-card-cliente--error {
    color: var(--danger-text, #b42318) !important;
}

body.hif-app .notification-card--warning {
    color: var(--warning-text, #8a5a12) !important;
}

body.hif-app .notification-card--info,
body.hif-app .notification-card-cliente--info {
    color: var(--info-text, #1f5eff) !important;
}

/* —— Alertas Bootstrap en panel —— */
body.hif-app .main-content .alert,
body.hif-app .content-wrapper .alert {
    color: inherit;
}

body.hif-app .main-content .alert-success {
    color: var(--success-text, #1a7a34) !important;
}

body.hif-app .main-content .alert-danger {
    color: var(--danger-text, #b42318) !important;
}

body.hif-app .main-content .alert-warning {
    color: var(--warning-text, #8a5a12) !important;
}

body.hif-app .main-content .alert-info {
    color: var(--info-text, #1f5eff) !important;
}

body.hif-app .main-content .alert-link {
    color: var(--hif-link, #1f5eff) !important;
    font-weight: 600;
}

/* —— Tablas, listas, dropdowns —— */
body.hif-app .main-content .table,
body.hif-app .main-content .table td,
body.hif-app .main-content .table th,
body.hif-app .main-content .list-group-item,
body.hif-app .main-content .dropdown-menu,
body.hif-app .main-content .dropdown-item {
    color: var(--text-primary, #0f172a);
}

body.hif-app .main-content .table thead th {
    color: var(--text-secondary, #475569) !important;
}

/* —— Badges en fondo claro —— */
body.hif-app .main-content .badge.bg-light,
body.hif-app .main-content .badge.bg-white {
    color: var(--text-primary, #0f172a) !important;
}

/* —— Formulario solicitud / desembolso —— */
body.hif-app .cr-section-card .card-header {
    color: var(--hif-navy, #0f3d5e) !important;
    background: var(--bg-card, #fff) !important;
}

body.hif-app .cr-section-card .card-body,
body.hif-app .question-card,
body.hif-app .cr-subpanel,
body.hif-app .cr-bcr-panel,
body.hif-app .cr-inline-tool {
    color: var(--text-primary, #0f172a);
}

body.hif-app .cr-field-group-title {
    color: #475569;
}

body.hif-app .cr-wizard-pills .badge.bg-light {
    color: var(--text-secondary, #475569) !important;
    background: var(--bg-page, #f5f7fa) !important;
    border: 1px solid var(--border-light, #dce3ea);
}

body.hif-app .cr-wizard-pills .badge.active-step {
    color: #fff !important;
}

body.hif-app #credit-step1-section-nav .btn-outline-secondary,
body.hif-app #credit-step2-section-nav .btn-outline-secondary {
    color: var(--text-secondary, #475569) !important;
}

body.hif-app .main-content .accordion-button {
    color: var(--text-primary, #0f172a);
}

body.hif-app .main-content .nav-tabs .nav-link {
    color: var(--text-muted, #64748b);
}

body.hif-app .main-content .nav-tabs .nav-link.active {
    color: var(--hif-blue, #1f5eff);
}

/* —— Portal cliente / cobrador —— */
body.hif-app .collector-app-main,
body.hif-app .collector-app-main .card,
body.hif-app .collector-app-main .form-label,
body.hif-app .collector-app-main .form-control {
    color: var(--text-primary, #0f172a) !important;
}

body.hif-app .collector-app-main .text-muted {
    color: var(--text-muted, #64748b) !important;
}

@media (min-width: 768px) {
    body.hif-app .portal-app-main,
    body.hif-app .cliente-main {
        color: var(--text-primary, #0f172a);
    }

    body.hif-app .portal-app-main .hif-portal-card,
    body.hif-app .cliente-main .card {
        color: var(--text-primary, #0f172a);
    }
}

body.hif-app .hif-portal-body .hif-portal-card,
body.hif-app .hif-portal-body .hif-portal-card .card-header,
body.hif-app .hif-portal-body .hif-portal-card .card-body,
body.hif-app .hif-portal-body .hif-portal-card .form-label,
body.hif-app .hif-portal-body .hif-portal-card .form-control {
    color: var(--text-primary, #0f172a) !important;
}

/* Portal móvil: texto legible sobre fondo claro */
@media (max-width: 767.98px) {
    body.hif-app .hif-portal-body .portal-app-main > .text-muted:not(.hif-portal-card *),
    body.hif-app .hif-portal-body .cliente-main > .text-muted:not(.card *) {
        color: var(--text-muted, #64748b) !important;
    }
}

/* —— Páginas de error —— */
body.hif-error-page,
body.hif-error-page .card,
body.hif-error-page p {
    color: var(--text-primary, #0f172a);
}

body.hif-error-page .text-muted {
    color: var(--text-muted, #64748b) !important;
}

/* Campos editables: copiar/pegar siempre permitido */
body.hif-app input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.hif-app textarea,
body.hif-app select {
    -webkit-user-select: text;
    user-select: text;
}
