/* ============================================================
   Habitta — Ajustes modo oscuro (carga al final del layout app)
   Elimina fondos claros residuales y asegura contraste de texto
   ============================================================ */

body.dark,
body.dark .content {
    background-color: var(--color-bg);
    color: var(--color-text);
}

body.dark label,
body.dark .form-group label,
body.dark .breadcrumb,
body.dark .breadcrumb .current,
body.dark .footer p,
body.dark .footer__copy {
    color: var(--color-text-muted);
}

body.dark .welcome span,
body.dark .footer {
    color: var(--color-text-muted);
}

/* DataTables (CDN deja fondos claros por defecto) */
body.dark .content .dataTables_wrapper,
body.dark .content .dt-container,
body.dark .content .dt-layout-row,
body.dark .content .dt-layout-cell,
body.dark .content .dt-scroll,
body.dark .content .dt-scroll-body,
body.dark .content .dt-scroll-head,
body.dark .content .dt-scroll-foot,
body.dark .content div.dt-scroll-head table.dataTable,
body.dark .content div.dt-scroll-body table.dataTable {
    background-color: transparent !important;
    color: var(--color-text) !important;
}

body.dark .content table.dataTable,
body.dark .content table.display,
body.dark .content table.ds-datatable {
    background-color: var(--color-card) !important;
    border-color: var(--color-border) !important;
    color: var(--color-text) !important;
}

body.dark .content table.dataTable tbody tr,
body.dark .content table.dataTable tbody td,
body.dark .content table.display tbody tr,
body.dark .content table.display tbody td {
    background-color: var(--color-card) !important;
    color: var(--color-text) !important;
    border-color: var(--table-border) !important;
}

body.dark .content table.dataTable tbody tr:nth-child(even),
body.dark .content table.dataTable tbody tr:nth-child(even) td,
body.dark .content table.display tbody tr:nth-child(even),
body.dark .content table.display tbody tr:nth-child(even) td {
    background-color: var(--table-stripe) !important;
}

body.dark .content table.dataTable tbody tr:hover,
body.dark .content table.dataTable tbody tr:hover td,
body.dark .content table.display tbody tr:hover,
body.dark .content table.display tbody tr:hover td {
    background-color: var(--table-row-hover) !important;
    color: var(--color-text) !important;
}

body.dark .content .dataTables_wrapper .dataTables_length,
body.dark .content .dataTables_wrapper .dataTables_filter,
body.dark .content .dataTables_wrapper .dataTables_info,
body.dark .content .dataTables_wrapper .dataTables_paginate,
body.dark .content .dt-container .dt-length,
body.dark .content .dt-container .dt-search,
body.dark .content .dt-container .dt-info,
body.dark .content .dt-container .dt-paging {
    color: var(--color-text-muted) !important;
}

body.dark .content .dataTables_wrapper .dataTables_filter input,
body.dark .content .dataTables_wrapper .dataTables_length select,
body.dark .content .dt-container .dt-search input,
body.dark .content .dt-container .dt-length select {
    background-color: var(--color-card) !important;
    color: var(--color-text) !important;
    border: 1px solid var(--color-input-border) !important;
}

body.dark .content .dataTables_wrapper .dataTables_paginate .paginate_button,
body.dark .content .dt-container .dt-paging .dt-paging-button {
    background: var(--color-card) !important;
    color: var(--color-text) !important;
    border-color: var(--color-border) !important;
}

body.dark .content .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
body.dark .content .dt-container .dt-paging .dt-paging-button.disabled {
    color: var(--color-disabled-text) !important;
    background: var(--color-disabled-bg) !important;
}

/* Formularios y tablas internas */
body.dark .table-permisos td {
    background-color: var(--color-card) !important;
    color: var(--color-text) !important;
}

body.dark .form-row-box,
body.dark .form-row-title,
body.dark .ds-datatable-wrapper {
    background: var(--color-card);
    color: var(--color-text);
    border-color: var(--color-border);
}

body.dark input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.dark select,
body.dark textarea,
body.dark .form-control,
body.dark .ds-input {
    background-color: var(--color-card) !important;
    color: var(--color-text) !important;
    border-color: var(--color-input-border) !important;
}

body.dark input::placeholder,
body.dark textarea::placeholder {
    color: var(--color-text-muted);
    opacity: 0.85;
}

body.dark .invalid-feedback {
    color: #fca5a5;
}

/* Parqueaderos / apartamentos */
body.dark .pk-panel {
    background: var(--color-surface);
    border-color: var(--color-border);
    color: var(--color-text);
}

body.dark .pk-panel--highlight {
    background: var(--color-primary-light);
    border-color: var(--color-primary);
}

body.dark .ds-page-intro strong {
    color: var(--color-text);
}

body.dark .ds-inline-notice--muted {
    background: color-mix(in srgb, var(--color-text-muted) 16%, var(--color-card));
    border-color: color-mix(in srgb, var(--color-text-muted) 35%, var(--color-border));
    color: var(--color-text);
}

body.dark .pk-item,
body.dark .pk-card--assigned,
body.dark .pk-card--available {
    background: var(--color-card) !important;
    color: var(--color-text) !important;
    border-color: var(--color-border) !important;
}

body.dark .pk-item--al-dia {
    background: color-mix(in srgb, var(--color-success) 16%, var(--color-card)) !important;
    border-color: color-mix(in srgb, var(--color-success) 40%, var(--color-border)) !important;
    color: var(--color-text) !important;
}

body.dark .pk-item--mora {
    background: color-mix(in srgb, var(--color-danger) 14%, var(--color-card)) !important;
    border-color: color-mix(in srgb, var(--color-danger) 35%, var(--color-border)) !important;
    color: var(--color-text) !important;
}

body.dark .pk-item--convenio {
    background: color-mix(in srgb, var(--color-warning) 16%, var(--color-card)) !important;
    border-color: color-mix(in srgb, var(--color-warning) 40%, var(--color-border)) !important;
    color: var(--color-text) !important;
}

body.dark .pk-tag,
body.dark .pk-badge {
    background: var(--color-outline-hover);
    color: var(--color-text);
}

body.dark .pk-badge--inscripcion {
    background: color-mix(in srgb, var(--color-primary) 22%, var(--color-card));
    color: color-mix(in srgb, var(--color-primary) 85%, white);
}

body.dark .pk-meta-inscripcion {
    color: var(--color-primary);
}

body.dark .pk-meta-asignado {
    color: var(--color-text-muted);
}

body.dark .pk-alert-mora,
body.dark .pk-alert-convenio,
body.dark .pk-alert-convenio-pendiente {
    color: var(--color-text);
}

body.dark .pk-alert-mora {
    background: color-mix(in srgb, var(--color-danger) 18%, var(--color-card));
    border-color: color-mix(in srgb, var(--color-danger) 40%, var(--color-border));
}

body.dark .pk-alert-convenio,
body.dark .pk-alert-convenio-pendiente {
    background: color-mix(in srgb, var(--color-warning) 18%, var(--color-card));
    border-color: color-mix(in srgb, var(--color-warning) 40%, var(--color-border));
}

body.dark .pk-empty,
body.dark .pk-obligaciones__saldo {
    color: var(--color-text-muted);
}

/* Modales legacy nómina */
body.dark .auto-modal-nomina-box,
body.dark .auto-modal-nomina-body {
    background: var(--color-card);
    color: var(--color-text);
}

body.dark .auto-modal-nomina-box p {
    color: var(--color-text);
}
