/**
 * SEIMED — Modo claro / oscuro global (panel + constructor de informes).
 */
html {
    color-scheme: light;
    --sa-shell-canvas: #f1f5f9;
    --sa-surface: #f1f5f9;
    --sa-card: #ffffff;
    --sa-border: #e2e8f0;
    --sa-text: #0f172a;
    --sa-muted: #64748b;
    --sa-input-bg: #f8fafc;
    --sa-hover: #f8fafc;
    --main-bg: #f1f5f9;
    --text-color: #334155;
    --table-border-color: #e2e8f0;
    --menu-text: #cbd5e1;
}

html.sa-theme-dark {
    color-scheme: dark;
    /* Paleta oscura suave (menos contraste, tonos azul-gris elevados) */
    --sa-shell-canvas: #181f2e;
    --sa-surface: #181f2e;
    --sa-card: #222c3d;
    --sa-elevated: #283244;
    --sa-border: #323e52;
    --sa-border-subtle: rgba(255, 255, 255, 0.07);
    --sa-text: #dde4ed;
    --sa-text-strong: #eef2f7;
    --sa-muted: #9aa6b6;
    --sa-input-bg: #1e2636;
    --sa-hover: #2e3a4d;
    --main-bg: #181f2e;
    --text-color: #dde4ed;
    --table-color: #dde4ed;
    --table-border-color: #323e52;
    --bs-body-color: #dde4ed;
    --bs-table-color: #dde4ed;
    --menu-text: #b8c4d4;
}

/* —— Marco claro: cruceta unificada (navbar + sidebar + curva #main) —— */
html:not(.sa-theme-dark) .wrapper,
html:not(.sa-theme-dark) main#main {
    background: var(--sa-shell-canvas) !important;
}

html:not(.sa-theme-dark) header.custom-navbar .header-items {
    background: var(--sa-shell-canvas) !important;
}

html:not(.sa-theme-dark) .bg-semi-dark {
    background: var(--sa-rail-bg, #ffffff) !important;
}

html:not(.sa-theme-dark) .custom-navbar .navbar-brand span,
html:not(.sa-theme-dark) header .icon-bars,
html:not(.sa-theme-dark) #user-menu-link {
    color: #0f172a !important;
}

html:not(.sa-theme-dark) .dropdown-menu.user-menu.sa-user-dropdown {
    background: #ffffff !important;
}

html:not(.sa-theme-dark) .sa-theme-toggle {
    border-color: #e2e8f0;
    background: #f8fafc;
    color: #64748b;
}

html:not(.sa-theme-dark) .sa-theme-toggle:hover {
    background: #ecfdf5;
    border-color: #99f6e4;
    color: #0d9488;
}

/* Columna izquierda (logo + menú): un solo color y sombra en el sidebar */
html:not(.sa-theme-dark) aside#sidebar,
html:not(.sa-theme-dark) #sidebar,
html:not(.sa-theme-dark) header.custom-navbar .navbar-brand,
html:not(.sa-theme-dark) header.custom-navbar .navbar-brand .long,
html:not(.sa-theme-dark) header.custom-navbar .navbar-brand .short {
    background: var(--sa-rail-bg, #ffffff) !important;
    border-right-color: transparent !important;
}

html:not(.sa-theme-dark) header.custom-navbar .navbar-brand {
    box-shadow: none !important;
}

html.sa-theme-dark aside#sidebar,
html.sa-theme-dark #sidebar,
html.sa-theme-dark header.custom-navbar .navbar-brand,
html.sa-theme-dark header.custom-navbar .navbar-brand .long,
html.sa-theme-dark header.custom-navbar .navbar-brand .short {
    background: var(--sa-rail-bg) !important;
    border-right-color: transparent !important;
}

html.sa-theme-dark header.custom-navbar .navbar-brand {
    box-shadow: none !important;
}

html:not(.sa-theme-dark) #main:not(:has(.report-builder)),
html:not(.sa-theme-dark) #main:has(.report-builder) {
    background: var(--sa-shell-canvas) !important;
}

html:not(.sa-theme-dark) .custom-menu > ul > li > a {
    color: #64748b !important;
}

html:not(.sa-theme-dark) .custom-menu > ul > li.active > a {
    color: #0d9488 !important;
}

/* —— Toggle en navbar —— */
.sa-theme-toggle-wrap {
    display: flex;
    align-items: center;
    padding: 0 0.35rem 0 0.75rem;
    background: transparent !important;
}

/* Evitar el rectángulo de hover del <li> del header (queda desalineado detrás del botón) */
header .header-items li.sa-theme-toggle-wrap:hover,
html.sa-theme-dark header .header-items li.sa-theme-toggle-wrap:hover {
    background: transparent !important;
}

.sa-theme-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.06);
    color: #e2e8f0;
    cursor: pointer;
    box-shadow: none;
    transition:
        transform 0.22s cubic-bezier(0.34, 1.25, 0.64, 1),
        background 0.22s ease,
        border-color 0.22s ease,
        color 0.22s ease;
}

.sa-theme-toggle::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    opacity: 0;
    transform: scale(0.88);
    background: radial-gradient(circle at 50% 50%, rgba(45, 212, 191, 0.28) 0%, transparent 72%);
    transition:
        opacity 0.22s ease,
        transform 0.22s cubic-bezier(0.34, 1.25, 0.64, 1);
    pointer-events: none;
    z-index: 0;
}

.sa-theme-toggle i {
    position: relative;
    z-index: 1;
    font-size: 1.05rem;
    line-height: 1;
    transition: transform 0.22s cubic-bezier(0.34, 1.25, 0.64, 1);
}

.sa-theme-toggle:hover {
    transform: scale(1.06);
    background: rgba(20, 184, 166, 0.18);
    border-color: rgba(45, 212, 191, 0.45);
    color: #5eead4;
}

.sa-theme-toggle:hover::before {
    opacity: 1;
    transform: scale(1);
}

.sa-theme-toggle:hover i {
    transform: rotate(-12deg) scale(1.05);
}

.sa-theme-toggle:active {
    transform: scale(0.96);
    transition-duration: 0.1s;
}

.sa-theme-toggle:focus-visible {
    outline: 2px solid rgba(45, 212, 191, 0.55);
    outline-offset: 2px;
}

.sa-theme-toggle--dark {
    background: rgba(251, 191, 36, 0.12);
    border-color: rgba(251, 191, 36, 0.28);
    color: #fcd34d;
}

.sa-theme-toggle--dark::before {
    background: radial-gradient(circle at 50% 50%, rgba(251, 191, 36, 0.32) 0%, transparent 72%);
}

.sa-theme-toggle--dark:hover {
    background: rgba(251, 191, 36, 0.22);
    border-color: rgba(251, 191, 36, 0.45);
    color: #fde68a;
}

.sa-theme-toggle--dark:hover i {
    transform: rotate(18deg) scale(1.05);
}

.sa-theme-toggle--dark:focus-visible {
    outline-color: rgba(251, 191, 36, 0.55);
}

html.sa-theme-dark .user-image.bg-light {
    background: var(--sa-hover) !important;
    border: 1px solid var(--sa-border);
}

html.sa-theme-dark .user-menu.show {
    background: var(--sa-card) !important;
}

html.sa-theme-dark .dropdown-menu.user-menu {
    background: var(--sa-card);
    border-color: var(--sa-border);
}

html.sa-theme-dark .user-menu .user-header {
    background: var(--sa-surface) !important;
    color: var(--sa-text);
}

html.sa-theme-dark header .header-items a:hover,
html.sa-theme-dark header .header-items li:hover:not(.sa-theme-toggle-wrap) {
    background: var(--sa-hover) !important;
}

/* —— Área principal CRUD —— */
html.sa-theme-dark #main:not(:has(.report-builder)) {
    background: var(--sa-surface) !important;
    color: var(--sa-text);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .content-header,
html.sa-theme-dark #main:not(:has(.report-builder)) .content-header h1,
html.sa-theme-dark #main:not(:has(.report-builder)) .content-header h1 small,
html.sa-theme-dark #main:not(:has(.report-builder)) .content-header .h1,
html.sa-theme-dark #main:not(:has(.report-builder)) .content-header > h1,
html.sa-theme-dark #main:not(:has(.report-builder)) .breadcrumb,
html.sa-theme-dark #main:not(:has(.report-builder)) .breadcrumb-item.active {
    color: var(--sa-text) !important;
}

html.sa-theme-dark #main:not(:has(.report-builder)) .content-header h1 *,
html.sa-theme-dark #main:not(:has(.report-builder)) .content-header .breadcrumb-item a {
    color: var(--sa-muted) !important;
}

html.sa-theme-dark #main:not(:has(.report-builder)) .content-header {
    background: transparent;
}

html.sa-theme-dark #main:not(:has(.report-builder)) .breadcrumb-item a {
    color: var(--sa-muted);
}

html.sa-theme-dark #main:not(:has(.report-builder)) section.content .card,
html.sa-theme-dark #main:not(:has(.report-builder)) .card.box-info {
    background: var(--sa-card);
    border-color: var(--sa-border);
    color: var(--sa-text);
}

html.sa-theme-dark #main:not(:has(.report-builder)) section.content .card-header,
html.sa-theme-dark #main:not(:has(.report-builder)) .card > .container-fluid.card-header {
    background: var(--sa-elevated);
    border-color: var(--sa-border);
    color: var(--sa-text);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .grid-table thead th {
    background: var(--sa-elevated);
    color: var(--sa-muted);
    border-color: var(--sa-border);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .grid-table tbody td {
    border-color: var(--sa-border);
    color: var(--sa-text);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .grid-table tbody tr:hover td {
    background: var(--sa-hover);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .form-control,
html.sa-theme-dark #main:not(:has(.report-builder)) .form-select {
    background: var(--sa-input-bg);
    border-color: var(--sa-border);
    color: var(--sa-text);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .fields-group .form-group {
    background: var(--sa-card);
    border-color: var(--sa-border);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .fields-group .form-group .form-label {
    color: var(--sa-muted);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .fields-group .form-group .input-group,
html.sa-theme-dark #main:not(:has(.report-builder)) .fields-group .form-group .form-control:not(.input-group .form-control) {
    background: var(--sa-input-bg);
    border-color: var(--sa-border);
    color: var(--sa-text);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .fields-group .form-group .input-group:focus-within {
    background: var(--sa-input-bg);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .form-footer.navbar {
    background: var(--sa-elevated);
    border-color: var(--sa-border);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .card .form-horizontal .card-body > .row > .row {
    background: linear-gradient(180deg, var(--sa-card) 0%, var(--sa-elevated) 100%);
    border-color: var(--sa-border);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .card .form-horizontal .card-body .show-value {
    color: var(--sa-text);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .card .form-horizontal .card-body .form-label {
    color: var(--sa-muted);
}

/* CRUD (detalle/form) con informe embebido: :not(:has(.report-builder)) no aplica */
html.sa-theme-dark #main:has(.rb-report-embed) .content-header,
html.sa-theme-dark #main:has(.rb-report-embed) .content-header h1,
html.sa-theme-dark #main:has(.rb-report-embed) .content-header h1 small,
html.sa-theme-dark #main:has(.rb-report-embed) .content-header .h1,
html.sa-theme-dark #main:has(.rb-report-embed) .content-header > h1,
html.sa-theme-dark #main:has(.rb-report-embed) .breadcrumb,
html.sa-theme-dark #main:has(.rb-report-embed) .breadcrumb-item.active {
    color: var(--sa-text) !important;
}

html.sa-theme-dark #main:has(.rb-report-embed) .content-header h1 *,
html.sa-theme-dark #main:has(.rb-report-embed) .content-header .breadcrumb-item a {
    color: var(--sa-muted) !important;
}

html.sa-theme-dark #main:has(.rb-report-embed) .content-header {
    background: transparent !important;
}

html.sa-theme-dark #main:has(.rb-report-embed) section.content > .card,
html.sa-theme-dark #main:has(.rb-report-embed) section.content > .card.box-info {
    background: var(--sa-card) !important;
    border-color: var(--sa-border) !important;
    color: var(--sa-text) !important;
}

html.sa-theme-dark #main:has(.rb-report-embed) section.content > .card > .card-header,
html.sa-theme-dark #main:has(.rb-report-embed) section.content > .card.box-info > .card-header.with-border {
    background: var(--sa-elevated) !important;
    border-color: var(--sa-border) !important;
    color: var(--sa-text) !important;
}

html.sa-theme-dark #main:has(.rb-report-embed) .card .form-horizontal .card-body > .row > .row {
    background: linear-gradient(180deg, var(--sa-card) 0%, var(--sa-elevated) 100%) !important;
    border-color: var(--sa-border) !important;
}

html.sa-theme-dark #main:has(.rb-report-embed) .card .form-horizontal .card-body .form-label {
    color: var(--sa-muted) !important;
}

html.sa-theme-dark #main:has(.rb-report-embed) .card .form-horizontal .card-body .show-value {
    color: var(--sa-text) !important;
}

html.sa-theme-dark #main:has(.rb-report-embed) .card.box-info > .card-header .card-tools .btn {
    background: var(--sa-input-bg, #1e2636) !important;
    border-color: var(--sa-border) !important;
    color: var(--sa-muted) !important;
}

html.sa-theme-dark #main:has(.rb-report-embed) .card.box-info > .card-header .card-tools .btn:hover {
    background: #134e4a !important;
    border-color: #14b8a6 !important;
    color: #5eead4 !important;
}

html.sa-theme-dark #main:not(:has(.report-builder)) .sa-grid-org__link {
    color: var(--sa-text) !important;
}

html.sa-theme-dark #main:not(:has(.report-builder)) .sa-grid-org__avatar {
    background: var(--sa-input-bg);
    border-color: var(--sa-border);
}

html.sa-theme-dark #main:not(:has(.report-builder)) .grid-table .__actions__div a {
    background: var(--sa-card);
    border-color: var(--sa-border);
    color: var(--sa-muted) !important;
}

html.sa-theme-dark #main:not(:has(.report-builder)) .grid-table .__actions__div a:hover {
    background: #134e4a;
    border-color: #14b8a6;
    color: #5eead4 !important;
}

html.sa-theme-dark #main:not(:has(.report-builder)) .pagination .page-link {
    background: var(--sa-card);
    border-color: var(--sa-border);
    color: var(--sa-text);
}

html.sa-theme-dark .select2-container--default .select2-selection--single,
html.sa-theme-dark .select2-container--default .select2-selection--multiple {
    background: var(--sa-input-bg) !important;
    border-color: var(--sa-border) !important;
    color: var(--sa-text);
}

html.sa-theme-dark .select2-dropdown {
    background: var(--sa-card);
    border-color: var(--sa-border);
}

html.sa-theme-dark .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: #134e4a;
}

/* —— Constructor de informes: variables —— */
html.sa-theme-dark .report-builder {
    --rb-primary: #c8d2e0;
    --rb-accent: #3ecdb6;
    --rb-accent-dark: #1fa896;
    --rb-bg: var(--sa-surface);
    --rb-card: var(--sa-card);
    --rb-fill-surface: var(--sa-surface);
    --rb-fill-elevated: var(--sa-elevated);
    --rb-border: var(--sa-border);
    --rb-text: var(--sa-text);
    --rb-muted: var(--sa-muted);
    --rb-shadow: 0 1px 3px rgba(0, 0, 0, 0.22);
    --rb-shadow-lg: 0 8px 28px rgba(0, 0, 0, 0.32);
    --rb-sep-line: linear-gradient(
        90deg,
        transparent 0%,
        #3a4558 18%,
        #4a5669 50%,
        #3a4558 82%,
        transparent 100%
    );
}

html.sa-theme-dark #main:has(.report-builder) {
    background: var(--rb-bg) !important;
}

html.sa-theme-dark #main:has(.report-builder) .content-header {
    background: var(--sa-card, var(--rb-card)) !important;
    border-color: var(--sa-border, var(--rb-border)) !important;
}

html.sa-theme-dark #main:has(.report-builder) .content-header h1,
html.sa-theme-dark #main:has(.report-builder) .content-header h1 small,
html.sa-theme-dark #main:has(.report-builder) .content-header .breadcrumb,
html.sa-theme-dark #main:has(.report-builder) .content-header .breadcrumb-item,
html.sa-theme-dark #main:has(.report-builder) .content-header .breadcrumb-item a {
    color: var(--sa-text, var(--rb-text)) !important;
}

html.sa-theme-dark #main:has(.report-builder) .content-header .breadcrumb-item.active {
    color: var(--sa-muted, var(--rb-muted)) !important;
}

/* Panel Show «Detalle» (Open-admin): vendor fuerza .card-header { background:#fff } */
html.sa-theme-dark #main:has(.report-builder) #app .card,
html.sa-theme-dark #main:has(.report-builder) section.content .card {
    background: var(--sa-card) !important;
    border-color: var(--sa-border) !important;
    color: var(--sa-text) !important;
}

html.sa-theme-dark #main:has(.report-builder) #app .card .card-header,
html.sa-theme-dark #main:has(.report-builder) section.content .card .card-header,
html.sa-theme-dark #main:has(.report-builder) .card .card-header.with-border {
    background: var(--sa-elevated, #283244) !important;
    border-color: var(--sa-border) !important;
    color: var(--sa-text) !important;
}

html.sa-theme-dark #main:has(.report-builder) .card .card-header .card-title,
html.sa-theme-dark #main:has(.report-builder) .card .card-header h3 {
    color: var(--sa-text) !important;
}

html.sa-theme-dark #main:has(.report-builder) #app .card .form-horizontal .card-body > .row > .row,
html.sa-theme-dark #main:has(.report-builder) section.content .card .form-horizontal .card-body > .row > .row {
    background: linear-gradient(180deg, var(--sa-card) 0%, var(--sa-elevated) 100%) !important;
    border-color: var(--sa-border) !important;
}

html.sa-theme-dark #main:has(.report-builder) #app .card .form-horizontal .card-body .form-label,
html.sa-theme-dark #main:has(.report-builder) section.content .card .form-horizontal .card-body .form-label {
    color: var(--sa-muted) !important;
}

html.sa-theme-dark #main:has(.report-builder) #app .card .form-horizontal .card-body .show-value,
html.sa-theme-dark #main:has(.report-builder) section.content .card .form-horizontal .card-body .show-value {
    color: var(--sa-text) !important;
}

html.sa-theme-dark #main:has(.report-builder) .card .card-header .card-tools .btn,
html.sa-theme-dark #main:has(.report-builder) .card .card-header .card-tools a.btn {
    background: var(--sa-input-bg, #1e2636) !important;
    border-color: var(--sa-border) !important;
    color: var(--sa-muted) !important;
}

html.sa-theme-dark #main:has(.report-builder) .card .card-header .card-tools .btn:hover,
html.sa-theme-dark #main:has(.report-builder) .card .card-header .card-tools a.btn:hover {
    background: #134e4a !important;
    border-color: #14b8a6 !important;
    color: #5eead4 !important;
}

/* Fondos blancos → tema oscuro (edición, vista previa, relleno) */
html.sa-theme-dark #report.report-builder.rb-mode-fill,
html.sa-theme-dark #report.report-builder.rb-mode-fill .rb-content,
html.sa-theme-dark .report-builder.rb-mode-fill .rb-fill-canvas,
html.sa-theme-dark .report-builder.rb-mode-fill .rb-fill-canvas__body,
html.sa-theme-dark .report-builder .rb-fill-welcome,
html.sa-theme-dark .report-builder .rb-mode-fill-preview,
html.sa-theme-dark #main:has(.report-builder.rb-mode-fill) {
    background: #10172a !important;
    color: var(--rb-text);
}

/* Relleno: sin cajas grises (rb-card) en secciones ni sidebar */
html.sa-theme-dark .report-builder.rb-mode-fill .rb-line__inner,
html.sa-theme-dark .report-builder.rb-mode-fill .rb-field-item,
html.sa-theme-dark .report-builder.rb-mode-fill .rb-field-item__head {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

html.sa-theme-dark .report-builder.rb-mode-fill .rb-fill-layout__sidebar {
    background: transparent !important;
    border: none !important;
}

html.sa-theme-dark .report-builder.rb-mode-fill .rb-fill-canvas .rb-fill-blocks-grid__item .rb-block-summary,
html.sa-theme-dark .report-builder.rb-mode-fill .rb-fill-canvas .rb-fill-blocks-list__item .rb-block-summary,
html.sa-theme-dark .report-builder.rb-mode-fill .rb-fill-canvas .rb-block-summary--list,
html.sa-theme-dark .report-builder .rb-section-card,
html.sa-theme-dark .report-builder:not(.rb-mode-fill) .rb-field-item,
html.sa-theme-dark .report-builder:not(.rb-mode-fill) .rb-line__inner,
html.sa-theme-dark .report-builder .rb-vars-table-wrap,
html.sa-theme-dark .report-builder .rb-export-block,
html.sa-theme-dark .report-builder .rb-web-intro {
    background: var(--rb-card) !important;
    border-color: var(--rb-border) !important;
    color: var(--rb-text);
}

html.sa-theme-dark .report-builder .rb-fill-field .form-control,
html.sa-theme-dark .report-builder .rb-fill-field .form-select,
html.sa-theme-dark .report-builder .form-control,
html.sa-theme-dark .report-builder .form-select {
    background: #0f172a !important;
    border-color: var(--rb-border) !important;
    color: var(--rb-text) !important;
}

/* Barra nombre del informe (no usar --rb-card: deja franja más clara que los márgenes) */
html.sa-theme-dark .report-builder .rb-toolbar {
    background: #10172a !important;
    border-color: var(--rb-border) !important;
    box-shadow: none !important;
}

html.sa-theme-dark .rb-toolbar-sticky {
    background: #10172a !important;
}

html.sa-theme-dark .rb-toolbar-sticky__inner {
    background: transparent !important;
}

html.sa-theme-dark .report-builder .rb-btn-undo--active,
html.sa-theme-dark .report-builder .rb-btn-redo--active,
html.sa-theme-dark .report-builder .btn-light {
    background: #1e293b !important;
    border-color: var(--rb-border) !important;
    color: var(--rb-text) !important;
}

html.sa-theme-dark .report-builder .rb-fill-nav-actions {
    border-color: var(--rb-border) !important;
}

html.sa-theme-dark .report-builder .rb-fill-layout__sidebar,
html.sa-theme-dark .report-builder .rb-fill-nav__item {
    background: var(--rb-card);
    border-color: var(--rb-border);
    color: var(--rb-text);
}

html.sa-theme-dark .report-builder .rb-fill-nav__item--active,
html.sa-theme-dark .report-builder .rb-fill-nav__item:hover {
    background: #134e4a;
    color: #99f6e4;
}

html.sa-theme-dark .report-builder .rb-mode-tabs .nav-link {
    color: var(--rb-muted);
}

html.sa-theme-dark .report-builder .rb-mode-tabs .nav-link.active {
    color: var(--rb-accent);
    border-color: var(--rb-accent);
}

html.sa-theme-dark .report-builder .ck.ck-editor__editable,
html.sa-theme-dark .report-builder .ck.ck-editor__editable:not(.ck-editor__nested-editable) {
    background: #0f172a !important;
    color: var(--rb-text) !important;
}

html.sa-theme-dark .report-builder .ck.ck-toolbar {
    background: #1e293b !important;
    border-color: var(--rb-border) !important;
}

html.sa-theme-dark .report-builder .ck.ck-toolbar .ck-button {
    color: var(--rb-text);
}

html.sa-theme-dark .rb-help-fab {
    background: var(--rb-card);
    border-color: var(--rb-border);
    color: var(--rb-text);
}

html.sa-theme-dark .report-builder .modal-content {
    background: var(--rb-card);
    border-color: var(--rb-border);
    color: var(--rb-text);
}

html.sa-theme-dark .report-builder .modal-header,
html.sa-theme-dark .report-builder .modal-footer {
    border-color: var(--rb-border);
}

html.sa-theme-dark .export-constructor-toolbar,
html.sa-theme-dark .export-block-card {
    background: var(--rb-card) !important;
    border-color: var(--rb-border) !important;
    color: var(--rb-text);
}

html.sa-theme-dark .report-builder .rb-fill-header,
html.sa-theme-dark .report-builder .rb-fill-form-panel,
html.sa-theme-dark .report-builder .rb-block-unit-wrap,
html.sa-theme-dark .report-builder .rb-line-tabs__nav,
html.sa-theme-dark .report-builder .rb-field-card,
html.sa-theme-dark .report-builder .rb-vars-panel,
html.sa-theme-dark .report-builder .list-group-item,
html.sa-theme-dark .report-builder .card {
    background: var(--rb-card) !important;
    border-color: var(--rb-border) !important;
    color: var(--rb-text);
}

html.sa-theme-dark .report-builder h1,
html.sa-theme-dark .report-builder h2,
html.sa-theme-dark .report-builder h3,
html.sa-theme-dark .report-builder h4,
html.sa-theme-dark .report-builder h5,
html.sa-theme-dark .report-builder label,
html.sa-theme-dark .report-builder p {
    color: inherit;
}

/* Login (misma preferencia guardada en localStorage) */
html.sa-theme-dark body.sa-login-page .sa-login__panel {
    background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%);
}

html.sa-theme-dark body.sa-login-page .sa-login__card {
    background: #1e293b;
    border-color: #334155;
}

html.sa-theme-dark body.sa-login-page .sa-login__card-head h2,
html.sa-theme-dark body.sa-login-page .sa-login__card-head p,
html.sa-theme-dark body.sa-login-page .sa-login__input-wrap .form-control {
    color: #f1f5f9;
}

html.sa-theme-dark body.sa-login-page .sa-login__input-wrap {
    background: #0f172a;
    border-color: #475569;
}
