/**
 * Dark Mode Styles - COPILOT GESTORIA
 *
 * Best Practices Applied:
 * - No pure black (#000) - using #0d1117 for less eye strain
 * - No pure white text - using #e6edf3 for softer contrast
 * - WCAG AA compliant contrast ratios (4.5:1 minimum)
 * - Layered surfaces for depth perception
 * - Consistent with GitHub/VS Code dark themes
 *
 * Sources:
 * - https://design.dev/guides/dark-mode-css/
 * - https://getbootstrap.com/docs/5.3/customize/color-modes/
 */

/* ========================================
   CSS Variables - Light Theme (Default)
   ======================================== */
:root {
    /* Backgrounds */
    --bg-body: #f5f9fc;
    --bg-card: #ffffff;
    --bg-sidebar: #25233a;
    --bg-navbar: #ffffff;
    --bg-input: #ffffff;
    --bg-hover: #f8f9fa;
    --bg-dropdown: #ffffff;
    --bg-modal: #ffffff;
    --bg-table-header: #f8f9fa;
    --bg-table-stripe: #f8f9fa;

    /* Text */
    --text-primary: #1e1e2d;
    --text-secondary: #6c757d;
    --text-muted: #64748b; /* era #8898aa: 2,95 sobre blanco; ahora 4,76 */
    --text-inverse: #ffffff;

    /* Borders */
    --border-color: #ebecf1;
    --border-light: #e9ecef;

    /* Shadows */
    --shadow-card: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
    --shadow-dropdown: 0 0.5rem 1rem rgba(0,0,0,0.15);

    /* Brand colors (unchanged) */
    --primary: #667eea;
    --secondary: #764ba2;
    --success: #38cb89;
    --warning: #ffab00;
    --danger: #ef4b4b;
    --info: #5b7fff;
}

/* ========================================
   CSS Variables - Dark Theme
   ======================================== */
[data-theme="dark"] {
    /* Backgrounds - Layered for depth */
    --bg-body: #0d1117;
    --bg-card: #161b22;
    --bg-sidebar: #0d1117;
    --bg-navbar: #161b22;
    --bg-input: #21262d;
    --bg-hover: #21262d;
    --bg-dropdown: #1c2128;
    --bg-modal: #161b22;
    --bg-table-header: #21262d;
    --bg-table-stripe: #161b22;

    /* Text - Soft white for less strain */
    --text-primary: #e6edf3;
    --text-secondary: #8b949e;
    --text-muted: #8b949e; /* era #6e7681: 4,16 sobre el menú y 3,0 sobre un campo; ahora ≥ 4,7 */
    --text-inverse: #0d1117;

    /* Borders */
    --border-color: #30363d;
    --border-light: #21262d;

    /* Shadows - More subtle in dark mode */
    --shadow-card: 0 4px 6px -1px rgba(0,0,0,0.3), 0 2px 4px -1px rgba(0,0,0,0.2);
    --shadow-dropdown: 0 0.5rem 1rem rgba(0,0,0,0.4);
}

/* ========================================
   Base Elements
   ======================================== */
body {
    background-color: var(--bg-body) !important;
    color: var(--text-primary) !important;
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* ========================================
   App Container & Main Content
   ======================================== */
.app-content,
.main-content,
.container-fluid {
    background-color: var(--bg-body);
}

.page-header {
    background-color: var(--bg-body);
}

/* ========================================
   Cards
   ======================================== */
.card {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    box-shadow: var(--shadow-card);
}

/* Excepción: Cards con inline background (como gradientes en blog posts) */
.blog-content .card[style*="background"] {
    background-color: transparent !important;
    background-clip: padding-box !important;
}

.card-header {
    background-color: var(--bg-card) !important;
    border-bottom-color: var(--border-color) !important;
    color: var(--text-primary);
}

/* Card-header con inline background (gradientes en tablas de blog) */
.blog-content .card-header[style*="background"] {
    background-color: transparent !important;
}

.card-body {
    color: var(--text-primary);
}

.card-footer {
    background-color: var(--bg-card) !important;
    border-top-color: var(--border-color) !important;
}

.card-title,
.card-header h5,
.card-header h6 {
    color: var(--text-primary) !important;
}

/* ========================================
   Navbar / Header
   ======================================== */
.app-header,
.header {
    background-color: var(--bg-navbar) !important;
    border-bottom-color: var(--border-color) !important;
}

.header-icon {
    color: var(--text-secondary) !important;
}

.header-icon:hover {
    color: var(--text-primary) !important;
}

/* ========================================
   Sidebar
   ======================================== */
[data-theme="dark"] .app-sidebar {
    background-color: var(--bg-sidebar) !important;
}

[data-theme="dark"] .side-menu li a {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .side-menu li a:hover,
[data-theme="dark"] .side-menu li a.active {
    color: var(--text-primary) !important;
}

/* ========================================
   Tables
   ======================================== */
.table {
    color: var(--text-primary);
}

.table thead th {
    background-color: var(--bg-table-header) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

.table td,
.table th {
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

.table-striped tbody tr:nth-of-type(odd) {
    background-color: var(--bg-table-stripe);
}

.table-hover tbody tr:hover {
    background-color: var(--bg-hover) !important;
    color: var(--text-primary);
}

[data-theme="dark"] .table {
    background-color: var(--bg-card);
}

/* ========================================
   Forms & Inputs
   ======================================== */
.form-control {
    background-color: var(--bg-input) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

.form-control:focus {
    background-color: var(--bg-input) !important;
    border-color: var(--primary) !important;
    color: var(--text-primary) !important;
}

.form-control::placeholder {
    color: var(--text-muted) !important;
}

.input-group-text {
    background-color: var(--bg-hover) !important;
    border-color: var(--border-color) !important;
    color: var(--text-secondary) !important;
}

select.form-control {
    background-color: var(--bg-input) !important;
    color: var(--text-primary) !important;
}

.custom-select {
    background-color: var(--bg-input) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* ========================================
   Dropdowns
   ======================================== */
.dropdown-menu {
    background-color: var(--bg-dropdown) !important;
    border-color: var(--border-color) !important;
    box-shadow: var(--shadow-dropdown);
}

.dropdown-item {
    color: var(--text-primary) !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--bg-hover) !important;
    color: var(--text-primary) !important;
}

.dropdown-divider {
    border-top-color: var(--border-color) !important;
}

.dropdown-header {
    color: var(--text-secondary) !important;
}

/* ========================================
   Modals
   ======================================== */
.modal-content {
    background-color: var(--bg-modal) !important;
    border-color: var(--border-color) !important;
}

.modal-header {
    border-bottom-color: var(--border-color) !important;
}

.modal-header .modal-title {
    color: var(--text-primary) !important;
}

.modal-header .close {
    color: var(--text-secondary) !important;
}

.modal-body {
    color: var(--text-primary);
}

.modal-footer {
    border-top-color: var(--border-color) !important;
}

/* ========================================
   Alerts
   ======================================== */
[data-theme="dark"] .alert-info {
    background-color: rgba(91, 127, 255, 0.15) !important;
    border-color: rgba(91, 127, 255, 0.3) !important;
    color: #79a3ff !important;
}

[data-theme="dark"] .alert-warning {
    background-color: rgba(255, 171, 0, 0.15) !important;
    border-color: rgba(255, 171, 0, 0.3) !important;
    color: #ffc107 !important;
}

[data-theme="dark"] .alert-success {
    background-color: rgba(56, 203, 137, 0.15) !important;
    border-color: rgba(56, 203, 137, 0.3) !important;
    color: #5dd99a !important;
}

[data-theme="dark"] .alert-danger {
    background-color: rgba(239, 75, 75, 0.15) !important;
    border-color: rgba(239, 75, 75, 0.3) !important;
    color: #f77 !important;
}

/* ========================================
   Badges
   ======================================== */
[data-theme="dark"] .badge-light {
    background-color: var(--bg-hover) !important;
    color: var(--text-primary) !important;
}

/* ========================================
   Breadcrumbs
   ======================================== */
.breadcrumb {
    background-color: transparent !important;
}

.breadcrumb-item a {
    color: var(--text-secondary) !important;
}

.breadcrumb-item.active {
    color: var(--text-muted) !important;
}

/* ========================================
   Pagination
   ======================================== */
.page-link {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

.page-link:hover {
    background-color: var(--bg-hover) !important;
    color: var(--text-primary) !important;
}

.page-item.disabled .page-link {
    background-color: var(--bg-card) !important;
    color: var(--text-muted) !important;
}

/* ========================================
   List Groups
   ======================================== */
.list-group-item {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

.list-group-item:hover {
    background-color: var(--bg-hover) !important;
}

/* ========================================
   Text Utilities
   ======================================== */
.text-dark {
    color: var(--text-primary) !important;
}

.text-muted {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .text-secondary {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
    color: var(--text-primary);
}

[data-theme="dark"] p {
    color: var(--text-primary);
}

[data-theme="dark"] label {
    color: var(--text-primary);
}

[data-theme="dark"] .font-weight-bold,
[data-theme="dark"] .fw-bold {
    color: var(--text-primary);
}

/* ========================================
   Background Utilities Override
   ======================================== */
[data-theme="dark"] .bg-white {
    background-color: var(--bg-card) !important;
}

[data-theme="dark"] .bg-light {
    background-color: var(--bg-hover) !important;
}

/* ========================================
   Borders
   ======================================== */
[data-theme="dark"] .border {
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .border-top,
[data-theme="dark"] .border-bottom,
[data-theme="dark"] .border-left,
[data-theme="dark"] .border-right {
    border-color: var(--border-color) !important;
}

/* ========================================
   Charts (Chart.js)
   ======================================== */
[data-theme="dark"] .chart-container {
    background-color: var(--bg-card);
}

/* ========================================
   Custom Dashboard Elements
   ======================================== */
[data-theme="dark"] .hover-shadow:hover {
    box-shadow: 0 8px 25px rgba(0,0,0,0.4) !important;
}

[data-theme="dark"] .task-heading {
    color: var(--text-primary);
}

/* ========================================
   Scrollbar Styling (Dark Mode)
   ======================================== */
[data-theme="dark"] ::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

[data-theme="dark"] ::-webkit-scrollbar-track {
    background: var(--bg-body);
}

[data-theme="dark"] ::-webkit-scrollbar-thumb {
    background: #30363d;
    border-radius: 5px;
}

[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background: #484f58;
}

/* ========================================
   Smooth Transition for Theme Switch
   ======================================== */
body,
.card,
.app-header,
.app-sidebar,
.dropdown-menu,
.modal-content,
.form-control,
.table {
    transition: background-color 0.3s ease,
                border-color 0.3s ease,
                color 0.3s ease,
                box-shadow 0.3s ease;
}

/* ========================================
   Design System Dark Mode Alignment
   Sprint 9: Ensure new .cg-* components
   respect dark mode via design tokens
   ======================================== */

/* KPI cards in dark mode */
[data-theme="dark"] .cg-kpi {
    background: var(--bg-card);
    border-color: var(--border-color);
}

/* Command palette dark mode */
[data-theme="dark"] .cg-cmdk-overlay {
    background: rgba(0, 0, 0, 0.7);
}

[data-theme="dark"] .cg-cmdk-dialog {
    background: var(--bg-card);
    border-color: var(--border-color);
}

[data-theme="dark"] .cg-cmdk-input {
    background: var(--bg-input);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .cg-cmdk-item:hover,
[data-theme="dark"] .cg-cmdk-item.active {
    background: var(--bg-hover);
}

/* Toast notifications in dark mode */
[data-theme="dark"] .cg-toast {
    background: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
}

/* Sidebar group labels */
[data-theme="dark"] .cg-sidebar-group-label {
    color: var(--text-muted);
}

/* Payment type cards */
[data-theme="dark"] .cg-portal .payment-type-card {
    background: var(--bg-card);
    border-color: var(--border-color);
}

[data-theme="dark"] .cg-portal .payment-type-card h6 {
    color: var(--text-primary);
}

/* Form section backgrounds */
[data-theme="dark"] .cg-portal .form-section {
    background: var(--bg-hover);
}

/* Input group text */
[data-theme="dark"] .cg-portal .input-group-text {
    background: var(--bg-hover);
    border-color: var(--border-color);
    color: var(--text-secondary);
}

/* ================================================================
   PHASE 1: Per-page CSS variable prefix dark overrides
   58 prefixes — all blade views define :root vars with these
   prefixes. Override them under [data-theme="dark"].
   ================================================================ */

/* Per-page dark overrides: bc, bd, bp */
[data-theme="dark"] {
    --bc-surface: #151d2e; --bc-surface-alt: #111827; --bc-surface-raised: #1a2332; --bc-surface-secondary: #111827; --bc-bg: #0b1120; --bc-white: #151d2e; --bc-border: #1e293b; --bc-border-subtle: #151d2e; --bc-border-light: #1e293b; --bc-border-hover: #334155; --bc-border-strong: #475569; --bc-slate: #94a3b8; --bc-slate-light: #cbd5e1; --bc-slate-dim: #64748b; --bc-text: #f1f5f9; --bc-text-primary: #f1f5f9; --bc-text-secondary: #94a3b8; --bc-text-muted: #8493a8; --bc-shadow: 0 1px 3px rgba(0,0,0,0.3); --bc-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --bc-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --bc-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --bc-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --bc-green-bg: rgba(16,185,129,0.15); --bc-red-bg: rgba(239,68,68,0.15); --bc-blue-bg: rgba(59,130,246,0.15); --bc-info-bg: rgba(59,130,246,0.12); --bc-orange-bg: rgba(245,158,11,0.15); --bc-yellow-bg: rgba(234,179,8,0.15); --bc-rose-bg: rgba(244,63,94,0.15); --bc-warning-soft: rgba(245,158,11,0.12); --bc-nomina-bg: rgba(59,130,246,0.12); --bc-profesional-bg: rgba(16,185,129,0.12); --bc-alquiler-bg: rgba(245,158,11,0.12); --bc-capital-bg: rgba(168,85,247,0.12); --bc-premios-bg: rgba(244,63,94,0.12); --bc-actividades-bg: rgba(20,184,166,0.12); --bc-otros-bg: rgba(100,116,139,0.15);
    --bd-surface: #151d2e; --bd-surface-alt: #111827; --bd-surface-raised: #1a2332; --bd-surface-secondary: #111827; --bd-bg: #0b1120; --bd-white: #151d2e; --bd-border: #1e293b; --bd-border-subtle: #151d2e; --bd-border-light: #1e293b; --bd-border-hover: #334155; --bd-border-strong: #475569; --bd-slate: #94a3b8; --bd-slate-light: #cbd5e1; --bd-slate-dim: #64748b; --bd-text: #f1f5f9; --bd-text-primary: #f1f5f9; --bd-text-secondary: #94a3b8; --bd-text-muted: #8493a8; --bd-shadow: 0 1px 3px rgba(0,0,0,0.3); --bd-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --bd-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --bd-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --bd-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --bd-green-bg: rgba(16,185,129,0.15); --bd-red-bg: rgba(239,68,68,0.15); --bd-blue-bg: rgba(59,130,246,0.15); --bd-info-bg: rgba(59,130,246,0.12); --bd-orange-bg: rgba(245,158,11,0.15); --bd-yellow-bg: rgba(234,179,8,0.15); --bd-rose-bg: rgba(244,63,94,0.15); --bd-warning-soft: rgba(245,158,11,0.12); --bd-nomina-bg: rgba(59,130,246,0.12); --bd-profesional-bg: rgba(16,185,129,0.12); --bd-alquiler-bg: rgba(245,158,11,0.12); --bd-capital-bg: rgba(168,85,247,0.12); --bd-premios-bg: rgba(244,63,94,0.12); --bd-actividades-bg: rgba(20,184,166,0.12); --bd-otros-bg: rgba(100,116,139,0.15);
    --bp-surface: #151d2e; --bp-surface-alt: #111827; --bp-surface-raised: #1a2332; --bp-surface-secondary: #111827; --bp-bg: #0b1120; --bp-white: #151d2e; --bp-border: #1e293b; --bp-border-subtle: #151d2e; --bp-border-light: #1e293b; --bp-border-hover: #334155; --bp-border-strong: #475569; --bp-slate: #94a3b8; --bp-slate-light: #cbd5e1; --bp-slate-dim: #64748b; --bp-text: #f1f5f9; --bp-text-primary: #f1f5f9; --bp-text-secondary: #94a3b8; --bp-text-muted: #8493a8; --bp-shadow: 0 1px 3px rgba(0,0,0,0.3); --bp-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --bp-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --bp-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --bp-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --bp-green-bg: rgba(16,185,129,0.15); --bp-red-bg: rgba(239,68,68,0.15); --bp-blue-bg: rgba(59,130,246,0.15); --bp-info-bg: rgba(59,130,246,0.12); --bp-orange-bg: rgba(245,158,11,0.15); --bp-yellow-bg: rgba(234,179,8,0.15); --bp-rose-bg: rgba(244,63,94,0.15); --bp-warning-soft: rgba(245,158,11,0.12); --bp-nomina-bg: rgba(59,130,246,0.12); --bp-profesional-bg: rgba(16,185,129,0.12); --bp-alquiler-bg: rgba(245,158,11,0.12); --bp-capital-bg: rgba(168,85,247,0.12); --bp-premios-bg: rgba(244,63,94,0.12); --bp-actividades-bg: rgba(20,184,166,0.12); --bp-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: bs, ca, cd */
[data-theme="dark"] {
    --bs-surface: #151d2e; --bs-surface-alt: #111827; --bs-surface-raised: #1a2332; --bs-surface-secondary: #111827; --bs-bg: #0b1120; --bs-white: #151d2e; --bs-border: #1e293b; --bs-border-subtle: #151d2e; --bs-border-light: #1e293b; --bs-border-hover: #334155; --bs-border-strong: #475569; --bs-slate: #94a3b8; --bs-slate-light: #cbd5e1; --bs-slate-dim: #64748b; --bs-text: #f1f5f9; --bs-text-primary: #f1f5f9; --bs-text-secondary: #94a3b8; --bs-text-muted: #8493a8; --bs-shadow: 0 1px 3px rgba(0,0,0,0.3); --bs-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --bs-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --bs-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --bs-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --bs-green-bg: rgba(16,185,129,0.15); --bs-red-bg: rgba(239,68,68,0.15); --bs-blue-bg: rgba(59,130,246,0.15); --bs-info-bg: rgba(59,130,246,0.12); --bs-orange-bg: rgba(245,158,11,0.15); --bs-yellow-bg: rgba(234,179,8,0.15); --bs-rose-bg: rgba(244,63,94,0.15); --bs-warning-soft: rgba(245,158,11,0.12); --bs-nomina-bg: rgba(59,130,246,0.12); --bs-profesional-bg: rgba(16,185,129,0.12); --bs-alquiler-bg: rgba(245,158,11,0.12); --bs-capital-bg: rgba(168,85,247,0.12); --bs-premios-bg: rgba(244,63,94,0.12); --bs-actividades-bg: rgba(20,184,166,0.12); --bs-otros-bg: rgba(100,116,139,0.15);
    --ca-surface: #151d2e; --ca-surface-alt: #111827; --ca-surface-raised: #1a2332; --ca-surface-secondary: #111827; --ca-bg: #0b1120; --ca-white: #151d2e; --ca-border: #1e293b; --ca-border-subtle: #151d2e; --ca-border-light: #1e293b; --ca-border-hover: #334155; --ca-border-strong: #475569; --ca-slate: #94a3b8; --ca-slate-light: #cbd5e1; --ca-slate-dim: #64748b; --ca-text: #f1f5f9; --ca-text-primary: #f1f5f9; --ca-text-secondary: #94a3b8; --ca-text-muted: #8493a8; --ca-shadow: 0 1px 3px rgba(0,0,0,0.3); --ca-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ca-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ca-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ca-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ca-green-bg: rgba(16,185,129,0.15); --ca-red-bg: rgba(239,68,68,0.15); --ca-blue-bg: rgba(59,130,246,0.15); --ca-info-bg: rgba(59,130,246,0.12); --ca-orange-bg: rgba(245,158,11,0.15); --ca-yellow-bg: rgba(234,179,8,0.15); --ca-rose-bg: rgba(244,63,94,0.15); --ca-warning-soft: rgba(245,158,11,0.12); --ca-nomina-bg: rgba(59,130,246,0.12); --ca-profesional-bg: rgba(16,185,129,0.12); --ca-alquiler-bg: rgba(245,158,11,0.12); --ca-capital-bg: rgba(168,85,247,0.12); --ca-premios-bg: rgba(244,63,94,0.12); --ca-actividades-bg: rgba(20,184,166,0.12); --ca-otros-bg: rgba(100,116,139,0.15);
    --cd-surface: #151d2e; --cd-surface-alt: #111827; --cd-surface-raised: #1a2332; --cd-surface-secondary: #111827; --cd-bg: #0b1120; --cd-white: #151d2e; --cd-border: #1e293b; --cd-border-subtle: #151d2e; --cd-border-light: #1e293b; --cd-border-hover: #334155; --cd-border-strong: #475569; --cd-slate: #94a3b8; --cd-slate-light: #cbd5e1; --cd-slate-dim: #64748b; --cd-text: #f1f5f9; --cd-text-primary: #f1f5f9; --cd-text-secondary: #94a3b8; --cd-text-muted: #8493a8; --cd-shadow: 0 1px 3px rgba(0,0,0,0.3); --cd-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --cd-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --cd-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --cd-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --cd-green-bg: rgba(16,185,129,0.15); --cd-red-bg: rgba(239,68,68,0.15); --cd-blue-bg: rgba(59,130,246,0.15); --cd-info-bg: rgba(59,130,246,0.12); --cd-orange-bg: rgba(245,158,11,0.15); --cd-yellow-bg: rgba(234,179,8,0.15); --cd-rose-bg: rgba(244,63,94,0.15); --cd-warning-soft: rgba(245,158,11,0.12); --cd-nomina-bg: rgba(59,130,246,0.12); --cd-profesional-bg: rgba(16,185,129,0.12); --cd-alquiler-bg: rgba(245,158,11,0.12); --cd-capital-bg: rgba(168,85,247,0.12); --cd-premios-bg: rgba(244,63,94,0.12); --cd-actividades-bg: rgba(20,184,166,0.12); --cd-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: cf, cg, cl */
[data-theme="dark"] {
    --cf-surface: #151d2e; --cf-surface-alt: #111827; --cf-surface-raised: #1a2332; --cf-surface-secondary: #111827; --cf-bg: #0b1120; --cf-white: #151d2e; --cf-border: #1e293b; --cf-border-subtle: #151d2e; --cf-border-light: #1e293b; --cf-border-hover: #334155; --cf-border-strong: #475569; --cf-slate: #94a3b8; --cf-slate-light: #cbd5e1; --cf-slate-dim: #64748b; --cf-text: #f1f5f9; --cf-text-primary: #f1f5f9; --cf-text-secondary: #94a3b8; --cf-text-muted: #8493a8; --cf-shadow: 0 1px 3px rgba(0,0,0,0.3); --cf-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --cf-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --cf-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --cf-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --cf-green-bg: rgba(16,185,129,0.15); --cf-red-bg: rgba(239,68,68,0.15); --cf-blue-bg: rgba(59,130,246,0.15); --cf-info-bg: rgba(59,130,246,0.12); --cf-orange-bg: rgba(245,158,11,0.15); --cf-yellow-bg: rgba(234,179,8,0.15); --cf-rose-bg: rgba(244,63,94,0.15); --cf-warning-soft: rgba(245,158,11,0.12); --cf-nomina-bg: rgba(59,130,246,0.12); --cf-profesional-bg: rgba(16,185,129,0.12); --cf-alquiler-bg: rgba(245,158,11,0.12); --cf-capital-bg: rgba(168,85,247,0.12); --cf-premios-bg: rgba(244,63,94,0.12); --cf-actividades-bg: rgba(20,184,166,0.12); --cf-otros-bg: rgba(100,116,139,0.15);
    --cg-surface: #151d2e; --cg-surface-alt: #111827; --cg-surface-raised: #1a2332; --cg-surface-secondary: #111827; --cg-bg: #0b1120; --cg-white: #151d2e; --cg-border: #1e293b; --cg-border-subtle: #151d2e; --cg-border-light: #1e293b; --cg-border-hover: #334155; --cg-border-strong: #475569; --cg-slate: #94a3b8; --cg-slate-light: #cbd5e1; --cg-slate-dim: #64748b; --cg-text: #f1f5f9; --cg-text-primary: #f1f5f9; --cg-text-secondary: #94a3b8; --cg-text-muted: #8493a8; --cg-shadow: 0 1px 3px rgba(0,0,0,0.3); --cg-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --cg-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --cg-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --cg-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --cg-green-bg: rgba(16,185,129,0.15); --cg-red-bg: rgba(239,68,68,0.15); --cg-blue-bg: rgba(59,130,246,0.15); --cg-info-bg: rgba(59,130,246,0.12); --cg-orange-bg: rgba(245,158,11,0.15); --cg-yellow-bg: rgba(234,179,8,0.15); --cg-rose-bg: rgba(244,63,94,0.15); --cg-warning-soft: rgba(245,158,11,0.12); --cg-nomina-bg: rgba(59,130,246,0.12); --cg-profesional-bg: rgba(16,185,129,0.12); --cg-alquiler-bg: rgba(245,158,11,0.12); --cg-capital-bg: rgba(168,85,247,0.12); --cg-premios-bg: rgba(244,63,94,0.12); --cg-actividades-bg: rgba(20,184,166,0.12); --cg-otros-bg: rgba(100,116,139,0.15);
    --cl-surface: #151d2e; --cl-surface-alt: #111827; --cl-surface-raised: #1a2332; --cl-surface-secondary: #111827; --cl-bg: #0b1120; --cl-white: #151d2e; --cl-border: #1e293b; --cl-border-subtle: #151d2e; --cl-border-light: #1e293b; --cl-border-hover: #334155; --cl-border-strong: #475569; --cl-slate: #94a3b8; --cl-slate-light: #cbd5e1; --cl-slate-dim: #64748b; --cl-text: #f1f5f9; --cl-text-primary: #f1f5f9; --cl-text-secondary: #94a3b8; --cl-text-muted: #8493a8; --cl-shadow: 0 1px 3px rgba(0,0,0,0.3); --cl-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --cl-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --cl-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --cl-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --cl-green-bg: rgba(16,185,129,0.15); --cl-red-bg: rgba(239,68,68,0.15); --cl-blue-bg: rgba(59,130,246,0.15); --cl-info-bg: rgba(59,130,246,0.12); --cl-orange-bg: rgba(245,158,11,0.15); --cl-yellow-bg: rgba(234,179,8,0.15); --cl-rose-bg: rgba(244,63,94,0.15); --cl-warning-soft: rgba(245,158,11,0.12); --cl-nomina-bg: rgba(59,130,246,0.12); --cl-profesional-bg: rgba(16,185,129,0.12); --cl-alquiler-bg: rgba(245,158,11,0.12); --cl-capital-bg: rgba(168,85,247,0.12); --cl-premios-bg: rgba(244,63,94,0.12); --cl-actividades-bg: rgba(20,184,166,0.12); --cl-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: co, cp, cr */
[data-theme="dark"] {
    --co-surface: #151d2e; --co-surface-alt: #111827; --co-surface-raised: #1a2332; --co-surface-secondary: #111827; --co-bg: #0b1120; --co-white: #151d2e; --co-border: #1e293b; --co-border-subtle: #151d2e; --co-border-light: #1e293b; --co-border-hover: #334155; --co-border-strong: #475569; --co-slate: #94a3b8; --co-slate-light: #cbd5e1; --co-slate-dim: #64748b; --co-text: #f1f5f9; --co-text-primary: #f1f5f9; --co-text-secondary: #94a3b8; --co-text-muted: #8493a8; --co-shadow: 0 1px 3px rgba(0,0,0,0.3); --co-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --co-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --co-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --co-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --co-green-bg: rgba(16,185,129,0.15); --co-red-bg: rgba(239,68,68,0.15); --co-blue-bg: rgba(59,130,246,0.15); --co-info-bg: rgba(59,130,246,0.12); --co-orange-bg: rgba(245,158,11,0.15); --co-yellow-bg: rgba(234,179,8,0.15); --co-rose-bg: rgba(244,63,94,0.15); --co-warning-soft: rgba(245,158,11,0.12); --co-nomina-bg: rgba(59,130,246,0.12); --co-profesional-bg: rgba(16,185,129,0.12); --co-alquiler-bg: rgba(245,158,11,0.12); --co-capital-bg: rgba(168,85,247,0.12); --co-premios-bg: rgba(244,63,94,0.12); --co-actividades-bg: rgba(20,184,166,0.12); --co-otros-bg: rgba(100,116,139,0.15);
    --cp-surface: #151d2e; --cp-surface-alt: #111827; --cp-surface-raised: #1a2332; --cp-surface-secondary: #111827; --cp-bg: #0b1120; --cp-white: #151d2e; --cp-border: #1e293b; --cp-border-subtle: #151d2e; --cp-border-light: #1e293b; --cp-border-hover: #334155; --cp-border-strong: #475569; --cp-slate: #94a3b8; --cp-slate-light: #cbd5e1; --cp-slate-dim: #64748b; --cp-text: #f1f5f9; --cp-text-primary: #f1f5f9; --cp-text-secondary: #94a3b8; --cp-text-muted: #8493a8; --cp-shadow: 0 1px 3px rgba(0,0,0,0.3); --cp-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --cp-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --cp-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --cp-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --cp-green-bg: rgba(16,185,129,0.15); --cp-red-bg: rgba(239,68,68,0.15); --cp-blue-bg: rgba(59,130,246,0.15); --cp-info-bg: rgba(59,130,246,0.12); --cp-orange-bg: rgba(245,158,11,0.15); --cp-yellow-bg: rgba(234,179,8,0.15); --cp-rose-bg: rgba(244,63,94,0.15); --cp-warning-soft: rgba(245,158,11,0.12); --cp-nomina-bg: rgba(59,130,246,0.12); --cp-profesional-bg: rgba(16,185,129,0.12); --cp-alquiler-bg: rgba(245,158,11,0.12); --cp-capital-bg: rgba(168,85,247,0.12); --cp-premios-bg: rgba(244,63,94,0.12); --cp-actividades-bg: rgba(20,184,166,0.12); --cp-otros-bg: rgba(100,116,139,0.15);
    --cr-surface: #151d2e; --cr-surface-alt: #111827; --cr-surface-raised: #1a2332; --cr-surface-secondary: #111827; --cr-bg: #0b1120; --cr-white: #151d2e; --cr-border: #1e293b; --cr-border-subtle: #151d2e; --cr-border-light: #1e293b; --cr-border-hover: #334155; --cr-border-strong: #475569; --cr-slate: #94a3b8; --cr-slate-light: #cbd5e1; --cr-slate-dim: #64748b; --cr-text: #f1f5f9; --cr-text-primary: #f1f5f9; --cr-text-secondary: #94a3b8; --cr-text-muted: #8493a8; --cr-shadow: 0 1px 3px rgba(0,0,0,0.3); --cr-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --cr-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --cr-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --cr-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --cr-green-bg: rgba(16,185,129,0.15); --cr-red-bg: rgba(239,68,68,0.15); --cr-blue-bg: rgba(59,130,246,0.15); --cr-info-bg: rgba(59,130,246,0.12); --cr-orange-bg: rgba(245,158,11,0.15); --cr-yellow-bg: rgba(234,179,8,0.15); --cr-rose-bg: rgba(244,63,94,0.15); --cr-warning-soft: rgba(245,158,11,0.12); --cr-nomina-bg: rgba(59,130,246,0.12); --cr-profesional-bg: rgba(16,185,129,0.12); --cr-alquiler-bg: rgba(245,158,11,0.12); --cr-capital-bg: rgba(168,85,247,0.12); --cr-premios-bg: rgba(244,63,94,0.12); --cr-actividades-bg: rgba(20,184,166,0.12); --cr-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: cs, ct, db */
[data-theme="dark"] {
    --cs-surface: #151d2e; --cs-surface-alt: #111827; --cs-surface-raised: #1a2332; --cs-surface-secondary: #111827; --cs-bg: #0b1120; --cs-white: #151d2e; --cs-border: #1e293b; --cs-border-subtle: #151d2e; --cs-border-light: #1e293b; --cs-border-hover: #334155; --cs-border-strong: #475569; --cs-slate: #94a3b8; --cs-slate-light: #cbd5e1; --cs-slate-dim: #64748b; --cs-text: #f1f5f9; --cs-text-primary: #f1f5f9; --cs-text-secondary: #94a3b8; --cs-text-muted: #8493a8; --cs-shadow: 0 1px 3px rgba(0,0,0,0.3); --cs-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --cs-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --cs-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --cs-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --cs-green-bg: rgba(16,185,129,0.15); --cs-red-bg: rgba(239,68,68,0.15); --cs-blue-bg: rgba(59,130,246,0.15); --cs-info-bg: rgba(59,130,246,0.12); --cs-orange-bg: rgba(245,158,11,0.15); --cs-yellow-bg: rgba(234,179,8,0.15); --cs-rose-bg: rgba(244,63,94,0.15); --cs-warning-soft: rgba(245,158,11,0.12); --cs-nomina-bg: rgba(59,130,246,0.12); --cs-profesional-bg: rgba(16,185,129,0.12); --cs-alquiler-bg: rgba(245,158,11,0.12); --cs-capital-bg: rgba(168,85,247,0.12); --cs-premios-bg: rgba(244,63,94,0.12); --cs-actividades-bg: rgba(20,184,166,0.12); --cs-otros-bg: rgba(100,116,139,0.15);
    --ct-surface: #151d2e; --ct-surface-alt: #111827; --ct-surface-raised: #1a2332; --ct-surface-secondary: #111827; --ct-bg: #0b1120; --ct-white: #151d2e; --ct-border: #1e293b; --ct-border-subtle: #151d2e; --ct-border-light: #1e293b; --ct-border-hover: #334155; --ct-border-strong: #475569; --ct-slate: #94a3b8; --ct-slate-light: #cbd5e1; --ct-slate-dim: #64748b; --ct-text: #f1f5f9; --ct-text-primary: #f1f5f9; --ct-text-secondary: #94a3b8; --ct-text-muted: #8493a8; --ct-shadow: 0 1px 3px rgba(0,0,0,0.3); --ct-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ct-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ct-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ct-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ct-green-bg: rgba(16,185,129,0.15); --ct-red-bg: rgba(239,68,68,0.15); --ct-blue-bg: rgba(59,130,246,0.15); --ct-info-bg: rgba(59,130,246,0.12); --ct-orange-bg: rgba(245,158,11,0.15); --ct-yellow-bg: rgba(234,179,8,0.15); --ct-rose-bg: rgba(244,63,94,0.15); --ct-warning-soft: rgba(245,158,11,0.12); --ct-nomina-bg: rgba(59,130,246,0.12); --ct-profesional-bg: rgba(16,185,129,0.12); --ct-alquiler-bg: rgba(245,158,11,0.12); --ct-capital-bg: rgba(168,85,247,0.12); --ct-premios-bg: rgba(244,63,94,0.12); --ct-actividades-bg: rgba(20,184,166,0.12); --ct-otros-bg: rgba(100,116,139,0.15);
    --db-surface: #151d2e; --db-surface-alt: #111827; --db-surface-raised: #1a2332; --db-surface-secondary: #111827; --db-bg: #0b1120; --db-white: #151d2e; --db-border: #1e293b; --db-border-subtle: #151d2e; --db-border-light: #1e293b; --db-border-hover: #334155; --db-border-strong: #475569; --db-slate: #94a3b8; --db-slate-light: #cbd5e1; --db-slate-dim: #64748b; --db-text: #f1f5f9; --db-text-primary: #f1f5f9; --db-text-secondary: #94a3b8; --db-text-muted: #8493a8; --db-shadow: 0 1px 3px rgba(0,0,0,0.3); --db-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --db-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --db-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --db-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --db-green-bg: rgba(16,185,129,0.15); --db-red-bg: rgba(239,68,68,0.15); --db-blue-bg: rgba(59,130,246,0.15); --db-info-bg: rgba(59,130,246,0.12); --db-orange-bg: rgba(245,158,11,0.15); --db-yellow-bg: rgba(234,179,8,0.15); --db-rose-bg: rgba(244,63,94,0.15); --db-warning-soft: rgba(245,158,11,0.12); --db-nomina-bg: rgba(59,130,246,0.12); --db-profesional-bg: rgba(16,185,129,0.12); --db-alquiler-bg: rgba(245,158,11,0.12); --db-capital-bg: rgba(168,85,247,0.12); --db-premios-bg: rgba(244,63,94,0.12); --db-actividades-bg: rgba(20,184,166,0.12); --db-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: di, dm, ds */
[data-theme="dark"] {
    --di-surface: #151d2e; --di-surface-alt: #111827; --di-surface-raised: #1a2332; --di-surface-secondary: #111827; --di-bg: #0b1120; --di-white: #151d2e; --di-border: #1e293b; --di-border-subtle: #151d2e; --di-border-light: #1e293b; --di-border-hover: #334155; --di-border-strong: #475569; --di-slate: #94a3b8; --di-slate-light: #cbd5e1; --di-slate-dim: #64748b; --di-text: #f1f5f9; --di-text-primary: #f1f5f9; --di-text-secondary: #94a3b8; --di-text-muted: #8493a8; --di-shadow: 0 1px 3px rgba(0,0,0,0.3); --di-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --di-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --di-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --di-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --di-green-bg: rgba(16,185,129,0.15); --di-red-bg: rgba(239,68,68,0.15); --di-blue-bg: rgba(59,130,246,0.15); --di-info-bg: rgba(59,130,246,0.12); --di-orange-bg: rgba(245,158,11,0.15); --di-yellow-bg: rgba(234,179,8,0.15); --di-rose-bg: rgba(244,63,94,0.15); --di-warning-soft: rgba(245,158,11,0.12); --di-nomina-bg: rgba(59,130,246,0.12); --di-profesional-bg: rgba(16,185,129,0.12); --di-alquiler-bg: rgba(245,158,11,0.12); --di-capital-bg: rgba(168,85,247,0.12); --di-premios-bg: rgba(244,63,94,0.12); --di-actividades-bg: rgba(20,184,166,0.12); --di-otros-bg: rgba(100,116,139,0.15);
    --dm-surface: #151d2e; --dm-surface-alt: #111827; --dm-surface-raised: #1a2332; --dm-surface-secondary: #111827; --dm-bg: #0b1120; --dm-white: #151d2e; --dm-border: #1e293b; --dm-border-subtle: #151d2e; --dm-border-light: #1e293b; --dm-border-hover: #334155; --dm-border-strong: #475569; --dm-slate: #94a3b8; --dm-slate-light: #cbd5e1; --dm-slate-dim: #64748b; --dm-text: #f1f5f9; --dm-text-primary: #f1f5f9; --dm-text-secondary: #94a3b8; --dm-text-muted: #8493a8; --dm-shadow: 0 1px 3px rgba(0,0,0,0.3); --dm-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --dm-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --dm-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --dm-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --dm-green-bg: rgba(16,185,129,0.15); --dm-red-bg: rgba(239,68,68,0.15); --dm-blue-bg: rgba(59,130,246,0.15); --dm-info-bg: rgba(59,130,246,0.12); --dm-orange-bg: rgba(245,158,11,0.15); --dm-yellow-bg: rgba(234,179,8,0.15); --dm-rose-bg: rgba(244,63,94,0.15); --dm-warning-soft: rgba(245,158,11,0.12); --dm-nomina-bg: rgba(59,130,246,0.12); --dm-profesional-bg: rgba(16,185,129,0.12); --dm-alquiler-bg: rgba(245,158,11,0.12); --dm-capital-bg: rgba(168,85,247,0.12); --dm-premios-bg: rgba(244,63,94,0.12); --dm-actividades-bg: rgba(20,184,166,0.12); --dm-otros-bg: rgba(100,116,139,0.15);
    --ds-surface: #151d2e; --ds-surface-alt: #111827; --ds-surface-raised: #1a2332; --ds-surface-secondary: #111827; --ds-bg: #0b1120; --ds-white: #151d2e; --ds-border: #1e293b; --ds-border-subtle: #151d2e; --ds-border-light: #1e293b; --ds-border-hover: #334155; --ds-border-strong: #475569; --ds-slate: #94a3b8; --ds-slate-light: #cbd5e1; --ds-slate-dim: #64748b; --ds-text: #f1f5f9; --ds-text-primary: #f1f5f9; --ds-text-secondary: #94a3b8; --ds-text-muted: #8493a8; --ds-shadow: 0 1px 3px rgba(0,0,0,0.3); --ds-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ds-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ds-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ds-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ds-green-bg: rgba(16,185,129,0.15); --ds-red-bg: rgba(239,68,68,0.15); --ds-blue-bg: rgba(59,130,246,0.15); --ds-info-bg: rgba(59,130,246,0.12); --ds-orange-bg: rgba(245,158,11,0.15); --ds-yellow-bg: rgba(234,179,8,0.15); --ds-rose-bg: rgba(244,63,94,0.15); --ds-warning-soft: rgba(245,158,11,0.12); --ds-nomina-bg: rgba(59,130,246,0.12); --ds-profesional-bg: rgba(16,185,129,0.12); --ds-alquiler-bg: rgba(245,158,11,0.12); --ds-capital-bg: rgba(168,85,247,0.12); --ds-premios-bg: rgba(244,63,94,0.12); --ds-actividades-bg: rgba(20,184,166,0.12); --ds-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: du, ec, fc */
[data-theme="dark"] {
    --du-surface: #151d2e; --du-surface-alt: #111827; --du-surface-raised: #1a2332; --du-surface-secondary: #111827; --du-bg: #0b1120; --du-white: #151d2e; --du-border: #1e293b; --du-border-subtle: #151d2e; --du-border-light: #1e293b; --du-border-hover: #334155; --du-border-strong: #475569; --du-slate: #94a3b8; --du-slate-light: #cbd5e1; --du-slate-dim: #64748b; --du-text: #f1f5f9; --du-text-primary: #f1f5f9; --du-text-secondary: #94a3b8; --du-text-muted: #8493a8; --du-shadow: 0 1px 3px rgba(0,0,0,0.3); --du-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --du-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --du-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --du-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --du-green-bg: rgba(16,185,129,0.15); --du-red-bg: rgba(239,68,68,0.15); --du-blue-bg: rgba(59,130,246,0.15); --du-info-bg: rgba(59,130,246,0.12); --du-orange-bg: rgba(245,158,11,0.15); --du-yellow-bg: rgba(234,179,8,0.15); --du-rose-bg: rgba(244,63,94,0.15); --du-warning-soft: rgba(245,158,11,0.12); --du-nomina-bg: rgba(59,130,246,0.12); --du-profesional-bg: rgba(16,185,129,0.12); --du-alquiler-bg: rgba(245,158,11,0.12); --du-capital-bg: rgba(168,85,247,0.12); --du-premios-bg: rgba(244,63,94,0.12); --du-actividades-bg: rgba(20,184,166,0.12); --du-otros-bg: rgba(100,116,139,0.15);
    --ec-surface: #151d2e; --ec-surface-alt: #111827; --ec-surface-raised: #1a2332; --ec-surface-secondary: #111827; --ec-bg: #0b1120; --ec-white: #151d2e; --ec-border: #1e293b; --ec-border-subtle: #151d2e; --ec-border-light: #1e293b; --ec-border-hover: #334155; --ec-border-strong: #475569; --ec-slate: #94a3b8; --ec-slate-light: #cbd5e1; --ec-slate-dim: #64748b; --ec-text: #f1f5f9; --ec-text-primary: #f1f5f9; --ec-text-secondary: #94a3b8; --ec-text-muted: #8493a8; --ec-shadow: 0 1px 3px rgba(0,0,0,0.3); --ec-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ec-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ec-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ec-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ec-green-bg: rgba(16,185,129,0.15); --ec-red-bg: rgba(239,68,68,0.15); --ec-blue-bg: rgba(59,130,246,0.15); --ec-info-bg: rgba(59,130,246,0.12); --ec-orange-bg: rgba(245,158,11,0.15); --ec-yellow-bg: rgba(234,179,8,0.15); --ec-rose-bg: rgba(244,63,94,0.15); --ec-warning-soft: rgba(245,158,11,0.12); --ec-nomina-bg: rgba(59,130,246,0.12); --ec-profesional-bg: rgba(16,185,129,0.12); --ec-alquiler-bg: rgba(245,158,11,0.12); --ec-capital-bg: rgba(168,85,247,0.12); --ec-premios-bg: rgba(244,63,94,0.12); --ec-actividades-bg: rgba(20,184,166,0.12); --ec-otros-bg: rgba(100,116,139,0.15);
    --fc-surface: #151d2e; --fc-surface-alt: #111827; --fc-surface-raised: #1a2332; --fc-surface-secondary: #111827; --fc-bg: #0b1120; --fc-white: #151d2e; --fc-border: #1e293b; --fc-border-subtle: #151d2e; --fc-border-light: #1e293b; --fc-border-hover: #334155; --fc-border-strong: #475569; --fc-slate: #94a3b8; --fc-slate-light: #cbd5e1; --fc-slate-dim: #64748b; --fc-text: #f1f5f9; --fc-text-primary: #f1f5f9; --fc-text-secondary: #94a3b8; --fc-text-muted: #8493a8; --fc-shadow: 0 1px 3px rgba(0,0,0,0.3); --fc-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --fc-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --fc-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --fc-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --fc-green-bg: rgba(16,185,129,0.15); --fc-red-bg: rgba(239,68,68,0.15); --fc-blue-bg: rgba(59,130,246,0.15); --fc-info-bg: rgba(59,130,246,0.12); --fc-orange-bg: rgba(245,158,11,0.15); --fc-yellow-bg: rgba(234,179,8,0.15); --fc-rose-bg: rgba(244,63,94,0.15); --fc-warning-soft: rgba(245,158,11,0.12); --fc-nomina-bg: rgba(59,130,246,0.12); --fc-profesional-bg: rgba(16,185,129,0.12); --fc-alquiler-bg: rgba(245,158,11,0.12); --fc-capital-bg: rgba(168,85,247,0.12); --fc-premios-bg: rgba(244,63,94,0.12); --fc-actividades-bg: rgba(20,184,166,0.12); --fc-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: fr, gm, ic */
[data-theme="dark"] {
    --fr-surface: #151d2e; --fr-surface-alt: #111827; --fr-surface-raised: #1a2332; --fr-surface-secondary: #111827; --fr-bg: #0b1120; --fr-white: #151d2e; --fr-border: #1e293b; --fr-border-subtle: #151d2e; --fr-border-light: #1e293b; --fr-border-hover: #334155; --fr-border-strong: #475569; --fr-slate: #94a3b8; --fr-slate-light: #cbd5e1; --fr-slate-dim: #64748b; --fr-text: #f1f5f9; --fr-text-primary: #f1f5f9; --fr-text-secondary: #94a3b8; --fr-text-muted: #8493a8; --fr-shadow: 0 1px 3px rgba(0,0,0,0.3); --fr-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --fr-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --fr-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --fr-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --fr-green-bg: rgba(16,185,129,0.15); --fr-red-bg: rgba(239,68,68,0.15); --fr-blue-bg: rgba(59,130,246,0.15); --fr-info-bg: rgba(59,130,246,0.12); --fr-orange-bg: rgba(245,158,11,0.15); --fr-yellow-bg: rgba(234,179,8,0.15); --fr-rose-bg: rgba(244,63,94,0.15); --fr-warning-soft: rgba(245,158,11,0.12); --fr-nomina-bg: rgba(59,130,246,0.12); --fr-profesional-bg: rgba(16,185,129,0.12); --fr-alquiler-bg: rgba(245,158,11,0.12); --fr-capital-bg: rgba(168,85,247,0.12); --fr-premios-bg: rgba(244,63,94,0.12); --fr-actividades-bg: rgba(20,184,166,0.12); --fr-otros-bg: rgba(100,116,139,0.15);
    --gm-surface: #151d2e; --gm-surface-alt: #111827; --gm-surface-raised: #1a2332; --gm-surface-secondary: #111827; --gm-bg: #0b1120; --gm-white: #151d2e; --gm-border: #1e293b; --gm-border-subtle: #151d2e; --gm-border-light: #1e293b; --gm-border-hover: #334155; --gm-border-strong: #475569; --gm-slate: #94a3b8; --gm-slate-light: #cbd5e1; --gm-slate-dim: #64748b; --gm-text: #f1f5f9; --gm-text-primary: #f1f5f9; --gm-text-secondary: #94a3b8; --gm-text-muted: #8493a8; --gm-shadow: 0 1px 3px rgba(0,0,0,0.3); --gm-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --gm-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --gm-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --gm-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --gm-green-bg: rgba(16,185,129,0.15); --gm-red-bg: rgba(239,68,68,0.15); --gm-blue-bg: rgba(59,130,246,0.15); --gm-info-bg: rgba(59,130,246,0.12); --gm-orange-bg: rgba(245,158,11,0.15); --gm-yellow-bg: rgba(234,179,8,0.15); --gm-rose-bg: rgba(244,63,94,0.15); --gm-warning-soft: rgba(245,158,11,0.12); --gm-nomina-bg: rgba(59,130,246,0.12); --gm-profesional-bg: rgba(16,185,129,0.12); --gm-alquiler-bg: rgba(245,158,11,0.12); --gm-capital-bg: rgba(168,85,247,0.12); --gm-premios-bg: rgba(244,63,94,0.12); --gm-actividades-bg: rgba(20,184,166,0.12); --gm-otros-bg: rgba(100,116,139,0.15);
    --ic-surface: #151d2e; --ic-surface-alt: #111827; --ic-surface-raised: #1a2332; --ic-surface-secondary: #111827; --ic-bg: #0b1120; --ic-white: #151d2e; --ic-border: #1e293b; --ic-border-subtle: #151d2e; --ic-border-light: #1e293b; --ic-border-hover: #334155; --ic-border-strong: #475569; --ic-slate: #94a3b8; --ic-slate-light: #cbd5e1; --ic-slate-dim: #64748b; --ic-text: #f1f5f9; --ic-text-primary: #f1f5f9; --ic-text-secondary: #94a3b8; --ic-text-muted: #8493a8; --ic-shadow: 0 1px 3px rgba(0,0,0,0.3); --ic-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ic-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ic-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ic-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ic-green-bg: rgba(16,185,129,0.15); --ic-red-bg: rgba(239,68,68,0.15); --ic-blue-bg: rgba(59,130,246,0.15); --ic-info-bg: rgba(59,130,246,0.12); --ic-orange-bg: rgba(245,158,11,0.15); --ic-yellow-bg: rgba(234,179,8,0.15); --ic-rose-bg: rgba(244,63,94,0.15); --ic-warning-soft: rgba(245,158,11,0.12); --ic-nomina-bg: rgba(59,130,246,0.12); --ic-profesional-bg: rgba(16,185,129,0.12); --ic-alquiler-bg: rgba(245,158,11,0.12); --ic-capital-bg: rgba(168,85,247,0.12); --ic-premios-bg: rgba(244,63,94,0.12); --ic-actividades-bg: rgba(20,184,166,0.12); --ic-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: il, ip, is */
[data-theme="dark"] {
    --il-surface: #151d2e; --il-surface-alt: #111827; --il-surface-raised: #1a2332; --il-surface-secondary: #111827; --il-bg: #0b1120; --il-white: #151d2e; --il-border: #1e293b; --il-border-subtle: #151d2e; --il-border-light: #1e293b; --il-border-hover: #334155; --il-border-strong: #475569; --il-slate: #94a3b8; --il-slate-light: #cbd5e1; --il-slate-dim: #64748b; --il-text: #f1f5f9; --il-text-primary: #f1f5f9; --il-text-secondary: #94a3b8; --il-text-muted: #8493a8; --il-shadow: 0 1px 3px rgba(0,0,0,0.3); --il-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --il-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --il-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --il-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --il-green-bg: rgba(16,185,129,0.15); --il-red-bg: rgba(239,68,68,0.15); --il-blue-bg: rgba(59,130,246,0.15); --il-info-bg: rgba(59,130,246,0.12); --il-orange-bg: rgba(245,158,11,0.15); --il-yellow-bg: rgba(234,179,8,0.15); --il-rose-bg: rgba(244,63,94,0.15); --il-warning-soft: rgba(245,158,11,0.12); --il-nomina-bg: rgba(59,130,246,0.12); --il-profesional-bg: rgba(16,185,129,0.12); --il-alquiler-bg: rgba(245,158,11,0.12); --il-capital-bg: rgba(168,85,247,0.12); --il-premios-bg: rgba(244,63,94,0.12); --il-actividades-bg: rgba(20,184,166,0.12); --il-otros-bg: rgba(100,116,139,0.15);
    --ip-surface: #151d2e; --ip-surface-alt: #111827; --ip-surface-raised: #1a2332; --ip-surface-secondary: #111827; --ip-bg: #0b1120; --ip-white: #151d2e; --ip-border: #1e293b; --ip-border-subtle: #151d2e; --ip-border-light: #1e293b; --ip-border-hover: #334155; --ip-border-strong: #475569; --ip-slate: #94a3b8; --ip-slate-light: #cbd5e1; --ip-slate-dim: #64748b; --ip-text: #f1f5f9; --ip-text-primary: #f1f5f9; --ip-text-secondary: #94a3b8; --ip-text-muted: #8493a8; --ip-shadow: 0 1px 3px rgba(0,0,0,0.3); --ip-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ip-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ip-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ip-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ip-green-bg: rgba(16,185,129,0.15); --ip-red-bg: rgba(239,68,68,0.15); --ip-blue-bg: rgba(59,130,246,0.15); --ip-info-bg: rgba(59,130,246,0.12); --ip-orange-bg: rgba(245,158,11,0.15); --ip-yellow-bg: rgba(234,179,8,0.15); --ip-rose-bg: rgba(244,63,94,0.15); --ip-warning-soft: rgba(245,158,11,0.12); --ip-nomina-bg: rgba(59,130,246,0.12); --ip-profesional-bg: rgba(16,185,129,0.12); --ip-alquiler-bg: rgba(245,158,11,0.12); --ip-capital-bg: rgba(168,85,247,0.12); --ip-premios-bg: rgba(244,63,94,0.12); --ip-actividades-bg: rgba(20,184,166,0.12); --ip-otros-bg: rgba(100,116,139,0.15);
    --is-surface: #151d2e; --is-surface-alt: #111827; --is-surface-raised: #1a2332; --is-surface-secondary: #111827; --is-bg: #0b1120; --is-white: #151d2e; --is-border: #1e293b; --is-border-subtle: #151d2e; --is-border-light: #1e293b; --is-border-hover: #334155; --is-border-strong: #475569; --is-slate: #94a3b8; --is-slate-light: #cbd5e1; --is-slate-dim: #64748b; --is-text: #f1f5f9; --is-text-primary: #f1f5f9; --is-text-secondary: #94a3b8; --is-text-muted: #8493a8; --is-shadow: 0 1px 3px rgba(0,0,0,0.3); --is-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --is-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --is-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --is-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --is-green-bg: rgba(16,185,129,0.15); --is-red-bg: rgba(239,68,68,0.15); --is-blue-bg: rgba(59,130,246,0.15); --is-info-bg: rgba(59,130,246,0.12); --is-orange-bg: rgba(245,158,11,0.15); --is-yellow-bg: rgba(234,179,8,0.15); --is-rose-bg: rgba(244,63,94,0.15); --is-warning-soft: rgba(245,158,11,0.12); --is-nomina-bg: rgba(59,130,246,0.12); --is-profesional-bg: rgba(16,185,129,0.12); --is-alquiler-bg: rgba(245,158,11,0.12); --is-capital-bg: rgba(168,85,247,0.12); --is-premios-bg: rgba(244,63,94,0.12); --is-actividades-bg: rgba(20,184,166,0.12); --is-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: kb, nd, ni */
[data-theme="dark"] {
    --kb-surface: #151d2e; --kb-surface-alt: #111827; --kb-surface-raised: #1a2332; --kb-surface-secondary: #111827; --kb-bg: #0b1120; --kb-white: #151d2e; --kb-border: #1e293b; --kb-border-subtle: #151d2e; --kb-border-light: #1e293b; --kb-border-hover: #334155; --kb-border-strong: #475569; --kb-slate: #94a3b8; --kb-slate-light: #cbd5e1; --kb-slate-dim: #64748b; --kb-text: #f1f5f9; --kb-text-primary: #f1f5f9; --kb-text-secondary: #94a3b8; --kb-text-muted: #8493a8; --kb-shadow: 0 1px 3px rgba(0,0,0,0.3); --kb-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --kb-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --kb-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --kb-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --kb-green-bg: rgba(16,185,129,0.15); --kb-red-bg: rgba(239,68,68,0.15); --kb-blue-bg: rgba(59,130,246,0.15); --kb-info-bg: rgba(59,130,246,0.12); --kb-orange-bg: rgba(245,158,11,0.15); --kb-yellow-bg: rgba(234,179,8,0.15); --kb-rose-bg: rgba(244,63,94,0.15); --kb-warning-soft: rgba(245,158,11,0.12); --kb-nomina-bg: rgba(59,130,246,0.12); --kb-profesional-bg: rgba(16,185,129,0.12); --kb-alquiler-bg: rgba(245,158,11,0.12); --kb-capital-bg: rgba(168,85,247,0.12); --kb-premios-bg: rgba(244,63,94,0.12); --kb-actividades-bg: rgba(20,184,166,0.12); --kb-otros-bg: rgba(100,116,139,0.15);
    --nd-surface: #151d2e; --nd-surface-alt: #111827; --nd-surface-raised: #1a2332; --nd-surface-secondary: #111827; --nd-bg: #0b1120; --nd-white: #151d2e; --nd-border: #1e293b; --nd-border-subtle: #151d2e; --nd-border-light: #1e293b; --nd-border-hover: #334155; --nd-border-strong: #475569; --nd-slate: #94a3b8; --nd-slate-light: #cbd5e1; --nd-slate-dim: #64748b; --nd-text: #f1f5f9; --nd-text-primary: #f1f5f9; --nd-text-secondary: #94a3b8; --nd-text-muted: #8493a8; --nd-shadow: 0 1px 3px rgba(0,0,0,0.3); --nd-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --nd-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --nd-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --nd-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --nd-green-bg: rgba(16,185,129,0.15); --nd-red-bg: rgba(239,68,68,0.15); --nd-blue-bg: rgba(59,130,246,0.15); --nd-info-bg: rgba(59,130,246,0.12); --nd-orange-bg: rgba(245,158,11,0.15); --nd-yellow-bg: rgba(234,179,8,0.15); --nd-rose-bg: rgba(244,63,94,0.15); --nd-warning-soft: rgba(245,158,11,0.12); --nd-nomina-bg: rgba(59,130,246,0.12); --nd-profesional-bg: rgba(16,185,129,0.12); --nd-alquiler-bg: rgba(245,158,11,0.12); --nd-capital-bg: rgba(168,85,247,0.12); --nd-premios-bg: rgba(244,63,94,0.12); --nd-actividades-bg: rgba(20,184,166,0.12); --nd-otros-bg: rgba(100,116,139,0.15);
    --ni-surface: #151d2e; --ni-surface-alt: #111827; --ni-surface-raised: #1a2332; --ni-surface-secondary: #111827; --ni-bg: #0b1120; --ni-white: #151d2e; --ni-border: #1e293b; --ni-border-subtle: #151d2e; --ni-border-light: #1e293b; --ni-border-hover: #334155; --ni-border-strong: #475569; --ni-slate: #94a3b8; --ni-slate-light: #cbd5e1; --ni-slate-dim: #64748b; --ni-text: #f1f5f9; --ni-text-primary: #f1f5f9; --ni-text-secondary: #94a3b8; --ni-text-muted: #8493a8; --ni-shadow: 0 1px 3px rgba(0,0,0,0.3); --ni-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ni-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ni-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ni-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ni-green-bg: rgba(16,185,129,0.15); --ni-red-bg: rgba(239,68,68,0.15); --ni-blue-bg: rgba(59,130,246,0.15); --ni-info-bg: rgba(59,130,246,0.12); --ni-orange-bg: rgba(245,158,11,0.15); --ni-yellow-bg: rgba(234,179,8,0.15); --ni-rose-bg: rgba(244,63,94,0.15); --ni-warning-soft: rgba(245,158,11,0.12); --ni-nomina-bg: rgba(59,130,246,0.12); --ni-profesional-bg: rgba(16,185,129,0.12); --ni-alquiler-bg: rgba(245,158,11,0.12); --ni-capital-bg: rgba(168,85,247,0.12); --ni-premios-bg: rgba(244,63,94,0.12); --ni-actividades-bg: rgba(20,184,166,0.12); --ni-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: ns, pb, pc */
[data-theme="dark"] {
    --ns-surface: #151d2e; --ns-surface-alt: #111827; --ns-surface-raised: #1a2332; --ns-surface-secondary: #111827; --ns-bg: #0b1120; --ns-white: #151d2e; --ns-border: #1e293b; --ns-border-subtle: #151d2e; --ns-border-light: #1e293b; --ns-border-hover: #334155; --ns-border-strong: #475569; --ns-slate: #94a3b8; --ns-slate-light: #cbd5e1; --ns-slate-dim: #64748b; --ns-text: #f1f5f9; --ns-text-primary: #f1f5f9; --ns-text-secondary: #94a3b8; --ns-text-muted: #8493a8; --ns-shadow: 0 1px 3px rgba(0,0,0,0.3); --ns-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ns-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ns-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ns-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ns-green-bg: rgba(16,185,129,0.15); --ns-red-bg: rgba(239,68,68,0.15); --ns-blue-bg: rgba(59,130,246,0.15); --ns-info-bg: rgba(59,130,246,0.12); --ns-orange-bg: rgba(245,158,11,0.15); --ns-yellow-bg: rgba(234,179,8,0.15); --ns-rose-bg: rgba(244,63,94,0.15); --ns-warning-soft: rgba(245,158,11,0.12); --ns-nomina-bg: rgba(59,130,246,0.12); --ns-profesional-bg: rgba(16,185,129,0.12); --ns-alquiler-bg: rgba(245,158,11,0.12); --ns-capital-bg: rgba(168,85,247,0.12); --ns-premios-bg: rgba(244,63,94,0.12); --ns-actividades-bg: rgba(20,184,166,0.12); --ns-otros-bg: rgba(100,116,139,0.15);
    --pb-surface: #151d2e; --pb-surface-alt: #111827; --pb-surface-raised: #1a2332; --pb-surface-secondary: #111827; --pb-bg: #0b1120; --pb-white: #151d2e; --pb-border: #1e293b; --pb-border-subtle: #151d2e; --pb-border-light: #1e293b; --pb-border-hover: #334155; --pb-border-strong: #475569; --pb-slate: #94a3b8; --pb-slate-light: #cbd5e1; --pb-slate-dim: #64748b; --pb-text: #f1f5f9; --pb-text-primary: #f1f5f9; --pb-text-secondary: #94a3b8; --pb-text-muted: #8493a8; --pb-shadow: 0 1px 3px rgba(0,0,0,0.3); --pb-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --pb-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --pb-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --pb-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --pb-green-bg: rgba(16,185,129,0.15); --pb-red-bg: rgba(239,68,68,0.15); --pb-blue-bg: rgba(59,130,246,0.15); --pb-info-bg: rgba(59,130,246,0.12); --pb-orange-bg: rgba(245,158,11,0.15); --pb-yellow-bg: rgba(234,179,8,0.15); --pb-rose-bg: rgba(244,63,94,0.15); --pb-warning-soft: rgba(245,158,11,0.12); --pb-nomina-bg: rgba(59,130,246,0.12); --pb-profesional-bg: rgba(16,185,129,0.12); --pb-alquiler-bg: rgba(245,158,11,0.12); --pb-capital-bg: rgba(168,85,247,0.12); --pb-premios-bg: rgba(244,63,94,0.12); --pb-actividades-bg: rgba(20,184,166,0.12); --pb-otros-bg: rgba(100,116,139,0.15);
    --pc-surface: #151d2e; --pc-surface-alt: #111827; --pc-surface-raised: #1a2332; --pc-surface-secondary: #111827; --pc-bg: #0b1120; --pc-white: #151d2e; --pc-border: #1e293b; --pc-border-subtle: #151d2e; --pc-border-light: #1e293b; --pc-border-hover: #334155; --pc-border-strong: #475569; --pc-slate: #94a3b8; --pc-slate-light: #cbd5e1; --pc-slate-dim: #64748b; --pc-text: #f1f5f9; --pc-text-primary: #f1f5f9; --pc-text-secondary: #94a3b8; --pc-text-muted: #8493a8; --pc-shadow: 0 1px 3px rgba(0,0,0,0.3); --pc-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --pc-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --pc-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --pc-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --pc-green-bg: rgba(16,185,129,0.15); --pc-red-bg: rgba(239,68,68,0.15); --pc-blue-bg: rgba(59,130,246,0.15); --pc-info-bg: rgba(59,130,246,0.12); --pc-orange-bg: rgba(245,158,11,0.15); --pc-yellow-bg: rgba(234,179,8,0.15); --pc-rose-bg: rgba(244,63,94,0.15); --pc-warning-soft: rgba(245,158,11,0.12); --pc-nomina-bg: rgba(59,130,246,0.12); --pc-profesional-bg: rgba(16,185,129,0.12); --pc-alquiler-bg: rgba(245,158,11,0.12); --pc-capital-bg: rgba(168,85,247,0.12); --pc-premios-bg: rgba(244,63,94,0.12); --pc-actividades-bg: rgba(20,184,166,0.12); --pc-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: pi, pl, ps */
[data-theme="dark"] {
    --pi-surface: #151d2e; --pi-surface-alt: #111827; --pi-surface-raised: #1a2332; --pi-surface-secondary: #111827; --pi-bg: #0b1120; --pi-white: #151d2e; --pi-border: #1e293b; --pi-border-subtle: #151d2e; --pi-border-light: #1e293b; --pi-border-hover: #334155; --pi-border-strong: #475569; --pi-slate: #94a3b8; --pi-slate-light: #cbd5e1; --pi-slate-dim: #64748b; --pi-text: #f1f5f9; --pi-text-primary: #f1f5f9; --pi-text-secondary: #94a3b8; --pi-text-muted: #8493a8; --pi-shadow: 0 1px 3px rgba(0,0,0,0.3); --pi-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --pi-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --pi-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --pi-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --pi-green-bg: rgba(16,185,129,0.15); --pi-red-bg: rgba(239,68,68,0.15); --pi-blue-bg: rgba(59,130,246,0.15); --pi-info-bg: rgba(59,130,246,0.12); --pi-orange-bg: rgba(245,158,11,0.15); --pi-yellow-bg: rgba(234,179,8,0.15); --pi-rose-bg: rgba(244,63,94,0.15); --pi-warning-soft: rgba(245,158,11,0.12); --pi-nomina-bg: rgba(59,130,246,0.12); --pi-profesional-bg: rgba(16,185,129,0.12); --pi-alquiler-bg: rgba(245,158,11,0.12); --pi-capital-bg: rgba(168,85,247,0.12); --pi-premios-bg: rgba(244,63,94,0.12); --pi-actividades-bg: rgba(20,184,166,0.12); --pi-otros-bg: rgba(100,116,139,0.15);
    --pl-surface: #151d2e; --pl-surface-alt: #111827; --pl-surface-raised: #1a2332; --pl-surface-secondary: #111827; --pl-bg: #0b1120; --pl-white: #151d2e; --pl-border: #1e293b; --pl-border-subtle: #151d2e; --pl-border-light: #1e293b; --pl-border-hover: #334155; --pl-border-strong: #475569; --pl-slate: #94a3b8; --pl-slate-light: #cbd5e1; --pl-slate-dim: #64748b; --pl-text: #f1f5f9; --pl-text-primary: #f1f5f9; --pl-text-secondary: #94a3b8; --pl-text-muted: #8493a8; --pl-shadow: 0 1px 3px rgba(0,0,0,0.3); --pl-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --pl-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --pl-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --pl-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --pl-green-bg: rgba(16,185,129,0.15); --pl-red-bg: rgba(239,68,68,0.15); --pl-blue-bg: rgba(59,130,246,0.15); --pl-info-bg: rgba(59,130,246,0.12); --pl-orange-bg: rgba(245,158,11,0.15); --pl-yellow-bg: rgba(234,179,8,0.15); --pl-rose-bg: rgba(244,63,94,0.15); --pl-warning-soft: rgba(245,158,11,0.12); --pl-nomina-bg: rgba(59,130,246,0.12); --pl-profesional-bg: rgba(16,185,129,0.12); --pl-alquiler-bg: rgba(245,158,11,0.12); --pl-capital-bg: rgba(168,85,247,0.12); --pl-premios-bg: rgba(244,63,94,0.12); --pl-actividades-bg: rgba(20,184,166,0.12); --pl-otros-bg: rgba(100,116,139,0.15);
    --ps-surface: #151d2e; --ps-surface-alt: #111827; --ps-surface-raised: #1a2332; --ps-surface-secondary: #111827; --ps-bg: #0b1120; --ps-white: #151d2e; --ps-border: #1e293b; --ps-border-subtle: #151d2e; --ps-border-light: #1e293b; --ps-border-hover: #334155; --ps-border-strong: #475569; --ps-slate: #94a3b8; --ps-slate-light: #cbd5e1; --ps-slate-dim: #64748b; --ps-text: #f1f5f9; --ps-text-primary: #f1f5f9; --ps-text-secondary: #94a3b8; --ps-text-muted: #8493a8; --ps-shadow: 0 1px 3px rgba(0,0,0,0.3); --ps-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ps-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ps-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ps-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ps-green-bg: rgba(16,185,129,0.15); --ps-red-bg: rgba(239,68,68,0.15); --ps-blue-bg: rgba(59,130,246,0.15); --ps-info-bg: rgba(59,130,246,0.12); --ps-orange-bg: rgba(245,158,11,0.15); --ps-yellow-bg: rgba(234,179,8,0.15); --ps-rose-bg: rgba(244,63,94,0.15); --ps-warning-soft: rgba(245,158,11,0.12); --ps-nomina-bg: rgba(59,130,246,0.12); --ps-profesional-bg: rgba(16,185,129,0.12); --ps-alquiler-bg: rgba(245,158,11,0.12); --ps-capital-bg: rgba(168,85,247,0.12); --ps-premios-bg: rgba(244,63,94,0.12); --ps-actividades-bg: rgba(20,184,166,0.12); --ps-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: pw, rc, rg */
[data-theme="dark"] {
    --pw-surface: #151d2e; --pw-surface-alt: #111827; --pw-surface-raised: #1a2332; --pw-surface-secondary: #111827; --pw-bg: #0b1120; --pw-white: #151d2e; --pw-border: #1e293b; --pw-border-subtle: #151d2e; --pw-border-light: #1e293b; --pw-border-hover: #334155; --pw-border-strong: #475569; --pw-slate: #94a3b8; --pw-slate-light: #cbd5e1; --pw-slate-dim: #64748b; --pw-text: #f1f5f9; --pw-text-primary: #f1f5f9; --pw-text-secondary: #94a3b8; --pw-text-muted: #8493a8; --pw-shadow: 0 1px 3px rgba(0,0,0,0.3); --pw-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --pw-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --pw-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --pw-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --pw-green-bg: rgba(16,185,129,0.15); --pw-red-bg: rgba(239,68,68,0.15); --pw-blue-bg: rgba(59,130,246,0.15); --pw-info-bg: rgba(59,130,246,0.12); --pw-orange-bg: rgba(245,158,11,0.15); --pw-yellow-bg: rgba(234,179,8,0.15); --pw-rose-bg: rgba(244,63,94,0.15); --pw-warning-soft: rgba(245,158,11,0.12); --pw-nomina-bg: rgba(59,130,246,0.12); --pw-profesional-bg: rgba(16,185,129,0.12); --pw-alquiler-bg: rgba(245,158,11,0.12); --pw-capital-bg: rgba(168,85,247,0.12); --pw-premios-bg: rgba(244,63,94,0.12); --pw-actividades-bg: rgba(20,184,166,0.12); --pw-otros-bg: rgba(100,116,139,0.15);
    --rc-surface: #151d2e; --rc-surface-alt: #111827; --rc-surface-raised: #1a2332; --rc-surface-secondary: #111827; --rc-bg: #0b1120; --rc-white: #151d2e; --rc-border: #1e293b; --rc-border-subtle: #151d2e; --rc-border-light: #1e293b; --rc-border-hover: #334155; --rc-border-strong: #475569; --rc-slate: #94a3b8; --rc-slate-light: #cbd5e1; --rc-slate-dim: #64748b; --rc-text: #f1f5f9; --rc-text-primary: #f1f5f9; --rc-text-secondary: #94a3b8; --rc-text-muted: #8493a8; --rc-shadow: 0 1px 3px rgba(0,0,0,0.3); --rc-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --rc-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --rc-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --rc-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --rc-green-bg: rgba(16,185,129,0.15); --rc-red-bg: rgba(239,68,68,0.15); --rc-blue-bg: rgba(59,130,246,0.15); --rc-info-bg: rgba(59,130,246,0.12); --rc-orange-bg: rgba(245,158,11,0.15); --rc-yellow-bg: rgba(234,179,8,0.15); --rc-rose-bg: rgba(244,63,94,0.15); --rc-warning-soft: rgba(245,158,11,0.12); --rc-nomina-bg: rgba(59,130,246,0.12); --rc-profesional-bg: rgba(16,185,129,0.12); --rc-alquiler-bg: rgba(245,158,11,0.12); --rc-capital-bg: rgba(168,85,247,0.12); --rc-premios-bg: rgba(244,63,94,0.12); --rc-actividades-bg: rgba(20,184,166,0.12); --rc-otros-bg: rgba(100,116,139,0.15);
    --rg-surface: #151d2e; --rg-surface-alt: #111827; --rg-surface-raised: #1a2332; --rg-surface-secondary: #111827; --rg-bg: #0b1120; --rg-white: #151d2e; --rg-border: #1e293b; --rg-border-subtle: #151d2e; --rg-border-light: #1e293b; --rg-border-hover: #334155; --rg-border-strong: #475569; --rg-slate: #94a3b8; --rg-slate-light: #cbd5e1; --rg-slate-dim: #64748b; --rg-text: #f1f5f9; --rg-text-primary: #f1f5f9; --rg-text-secondary: #94a3b8; --rg-text-muted: #8493a8; --rg-shadow: 0 1px 3px rgba(0,0,0,0.3); --rg-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --rg-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --rg-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --rg-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --rg-green-bg: rgba(16,185,129,0.15); --rg-red-bg: rgba(239,68,68,0.15); --rg-blue-bg: rgba(59,130,246,0.15); --rg-info-bg: rgba(59,130,246,0.12); --rg-orange-bg: rgba(245,158,11,0.15); --rg-yellow-bg: rgba(234,179,8,0.15); --rg-rose-bg: rgba(244,63,94,0.15); --rg-warning-soft: rgba(245,158,11,0.12); --rg-nomina-bg: rgba(59,130,246,0.12); --rg-profesional-bg: rgba(16,185,129,0.12); --rg-alquiler-bg: rgba(245,158,11,0.12); --rg-capital-bg: rgba(168,85,247,0.12); --rg-premios-bg: rgba(244,63,94,0.12); --rg-actividades-bg: rgba(20,184,166,0.12); --rg-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: ri, rp, rr */
[data-theme="dark"] {
    --ri-surface: #151d2e; --ri-surface-alt: #111827; --ri-surface-raised: #1a2332; --ri-surface-secondary: #111827; --ri-bg: #0b1120; --ri-white: #151d2e; --ri-border: #1e293b; --ri-border-subtle: #151d2e; --ri-border-light: #1e293b; --ri-border-hover: #334155; --ri-border-strong: #475569; --ri-slate: #94a3b8; --ri-slate-light: #cbd5e1; --ri-slate-dim: #64748b; --ri-text: #f1f5f9; --ri-text-primary: #f1f5f9; --ri-text-secondary: #94a3b8; --ri-text-muted: #8493a8; --ri-shadow: 0 1px 3px rgba(0,0,0,0.3); --ri-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ri-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ri-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ri-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ri-green-bg: rgba(16,185,129,0.15); --ri-red-bg: rgba(239,68,68,0.15); --ri-blue-bg: rgba(59,130,246,0.15); --ri-info-bg: rgba(59,130,246,0.12); --ri-orange-bg: rgba(245,158,11,0.15); --ri-yellow-bg: rgba(234,179,8,0.15); --ri-rose-bg: rgba(244,63,94,0.15); --ri-warning-soft: rgba(245,158,11,0.12); --ri-nomina-bg: rgba(59,130,246,0.12); --ri-profesional-bg: rgba(16,185,129,0.12); --ri-alquiler-bg: rgba(245,158,11,0.12); --ri-capital-bg: rgba(168,85,247,0.12); --ri-premios-bg: rgba(244,63,94,0.12); --ri-actividades-bg: rgba(20,184,166,0.12); --ri-otros-bg: rgba(100,116,139,0.15);
    --rp-surface: #151d2e; --rp-surface-alt: #111827; --rp-surface-raised: #1a2332; --rp-surface-secondary: #111827; --rp-bg: #0b1120; --rp-white: #151d2e; --rp-border: #1e293b; --rp-border-subtle: #151d2e; --rp-border-light: #1e293b; --rp-border-hover: #334155; --rp-border-strong: #475569; --rp-slate: #94a3b8; --rp-slate-light: #cbd5e1; --rp-slate-dim: #64748b; --rp-text: #f1f5f9; --rp-text-primary: #f1f5f9; --rp-text-secondary: #94a3b8; --rp-text-muted: #8493a8; --rp-shadow: 0 1px 3px rgba(0,0,0,0.3); --rp-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --rp-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --rp-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --rp-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --rp-green-bg: rgba(16,185,129,0.15); --rp-red-bg: rgba(239,68,68,0.15); --rp-blue-bg: rgba(59,130,246,0.15); --rp-info-bg: rgba(59,130,246,0.12); --rp-orange-bg: rgba(245,158,11,0.15); --rp-yellow-bg: rgba(234,179,8,0.15); --rp-rose-bg: rgba(244,63,94,0.15); --rp-warning-soft: rgba(245,158,11,0.12); --rp-nomina-bg: rgba(59,130,246,0.12); --rp-profesional-bg: rgba(16,185,129,0.12); --rp-alquiler-bg: rgba(245,158,11,0.12); --rp-capital-bg: rgba(168,85,247,0.12); --rp-premios-bg: rgba(244,63,94,0.12); --rp-actividades-bg: rgba(20,184,166,0.12); --rp-otros-bg: rgba(100,116,139,0.15);
    --rr-surface: #151d2e; --rr-surface-alt: #111827; --rr-surface-raised: #1a2332; --rr-surface-secondary: #111827; --rr-bg: #0b1120; --rr-white: #151d2e; --rr-border: #1e293b; --rr-border-subtle: #151d2e; --rr-border-light: #1e293b; --rr-border-hover: #334155; --rr-border-strong: #475569; --rr-slate: #94a3b8; --rr-slate-light: #cbd5e1; --rr-slate-dim: #64748b; --rr-text: #f1f5f9; --rr-text-primary: #f1f5f9; --rr-text-secondary: #94a3b8; --rr-text-muted: #8493a8; --rr-shadow: 0 1px 3px rgba(0,0,0,0.3); --rr-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --rr-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --rr-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --rr-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --rr-green-bg: rgba(16,185,129,0.15); --rr-red-bg: rgba(239,68,68,0.15); --rr-blue-bg: rgba(59,130,246,0.15); --rr-info-bg: rgba(59,130,246,0.12); --rr-orange-bg: rgba(245,158,11,0.15); --rr-yellow-bg: rgba(234,179,8,0.15); --rr-rose-bg: rgba(244,63,94,0.15); --rr-warning-soft: rgba(245,158,11,0.12); --rr-nomina-bg: rgba(59,130,246,0.12); --rr-profesional-bg: rgba(16,185,129,0.12); --rr-alquiler-bg: rgba(245,158,11,0.12); --rr-capital-bg: rgba(168,85,247,0.12); --rr-premios-bg: rgba(244,63,94,0.12); --rr-actividades-bg: rgba(20,184,166,0.12); --rr-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: sc, sd, si */
[data-theme="dark"] {
    --sc-surface: #151d2e; --sc-surface-alt: #111827; --sc-surface-raised: #1a2332; --sc-surface-secondary: #111827; --sc-bg: #0b1120; --sc-white: #151d2e; --sc-border: #1e293b; --sc-border-subtle: #151d2e; --sc-border-light: #1e293b; --sc-border-hover: #334155; --sc-border-strong: #475569; --sc-slate: #94a3b8; --sc-slate-light: #cbd5e1; --sc-slate-dim: #64748b; --sc-text: #f1f5f9; --sc-text-primary: #f1f5f9; --sc-text-secondary: #94a3b8; --sc-text-muted: #8493a8; --sc-shadow: 0 1px 3px rgba(0,0,0,0.3); --sc-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --sc-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --sc-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --sc-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --sc-green-bg: rgba(16,185,129,0.15); --sc-red-bg: rgba(239,68,68,0.15); --sc-blue-bg: rgba(59,130,246,0.15); --sc-info-bg: rgba(59,130,246,0.12); --sc-orange-bg: rgba(245,158,11,0.15); --sc-yellow-bg: rgba(234,179,8,0.15); --sc-rose-bg: rgba(244,63,94,0.15); --sc-warning-soft: rgba(245,158,11,0.12); --sc-nomina-bg: rgba(59,130,246,0.12); --sc-profesional-bg: rgba(16,185,129,0.12); --sc-alquiler-bg: rgba(245,158,11,0.12); --sc-capital-bg: rgba(168,85,247,0.12); --sc-premios-bg: rgba(244,63,94,0.12); --sc-actividades-bg: rgba(20,184,166,0.12); --sc-otros-bg: rgba(100,116,139,0.15);
    --sd-surface: #151d2e; --sd-surface-alt: #111827; --sd-surface-raised: #1a2332; --sd-surface-secondary: #111827; --sd-bg: #0b1120; --sd-white: #151d2e; --sd-border: #1e293b; --sd-border-subtle: #151d2e; --sd-border-light: #1e293b; --sd-border-hover: #334155; --sd-border-strong: #475569; --sd-slate: #94a3b8; --sd-slate-light: #cbd5e1; --sd-slate-dim: #64748b; --sd-text: #f1f5f9; --sd-text-primary: #f1f5f9; --sd-text-secondary: #94a3b8; --sd-text-muted: #8493a8; --sd-shadow: 0 1px 3px rgba(0,0,0,0.3); --sd-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --sd-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --sd-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --sd-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --sd-green-bg: rgba(16,185,129,0.15); --sd-red-bg: rgba(239,68,68,0.15); --sd-blue-bg: rgba(59,130,246,0.15); --sd-info-bg: rgba(59,130,246,0.12); --sd-orange-bg: rgba(245,158,11,0.15); --sd-yellow-bg: rgba(234,179,8,0.15); --sd-rose-bg: rgba(244,63,94,0.15); --sd-warning-soft: rgba(245,158,11,0.12); --sd-nomina-bg: rgba(59,130,246,0.12); --sd-profesional-bg: rgba(16,185,129,0.12); --sd-alquiler-bg: rgba(245,158,11,0.12); --sd-capital-bg: rgba(168,85,247,0.12); --sd-premios-bg: rgba(244,63,94,0.12); --sd-actividades-bg: rgba(20,184,166,0.12); --sd-otros-bg: rgba(100,116,139,0.15);
    --si-surface: #151d2e; --si-surface-alt: #111827; --si-surface-raised: #1a2332; --si-surface-secondary: #111827; --si-bg: #0b1120; --si-white: #151d2e; --si-border: #1e293b; --si-border-subtle: #151d2e; --si-border-light: #1e293b; --si-border-hover: #334155; --si-border-strong: #475569; --si-slate: #94a3b8; --si-slate-light: #cbd5e1; --si-slate-dim: #64748b; --si-text: #f1f5f9; --si-text-primary: #f1f5f9; --si-text-secondary: #94a3b8; --si-text-muted: #8493a8; --si-shadow: 0 1px 3px rgba(0,0,0,0.3); --si-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --si-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --si-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --si-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --si-green-bg: rgba(16,185,129,0.15); --si-red-bg: rgba(239,68,68,0.15); --si-blue-bg: rgba(59,130,246,0.15); --si-info-bg: rgba(59,130,246,0.12); --si-orange-bg: rgba(245,158,11,0.15); --si-yellow-bg: rgba(234,179,8,0.15); --si-rose-bg: rgba(244,63,94,0.15); --si-warning-soft: rgba(245,158,11,0.12); --si-nomina-bg: rgba(59,130,246,0.12); --si-profesional-bg: rgba(16,185,129,0.12); --si-alquiler-bg: rgba(245,158,11,0.12); --si-capital-bg: rgba(168,85,247,0.12); --si-premios-bg: rgba(244,63,94,0.12); --si-actividades-bg: rgba(20,184,166,0.12); --si-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: sm, sr, ss */
[data-theme="dark"] {
    --sm-surface: #151d2e; --sm-surface-alt: #111827; --sm-surface-raised: #1a2332; --sm-surface-secondary: #111827; --sm-bg: #0b1120; --sm-white: #151d2e; --sm-border: #1e293b; --sm-border-subtle: #151d2e; --sm-border-light: #1e293b; --sm-border-hover: #334155; --sm-border-strong: #475569; --sm-slate: #94a3b8; --sm-slate-light: #cbd5e1; --sm-slate-dim: #64748b; --sm-text: #f1f5f9; --sm-text-primary: #f1f5f9; --sm-text-secondary: #94a3b8; --sm-text-muted: #8493a8; --sm-shadow: 0 1px 3px rgba(0,0,0,0.3); --sm-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --sm-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --sm-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --sm-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --sm-green-bg: rgba(16,185,129,0.15); --sm-red-bg: rgba(239,68,68,0.15); --sm-blue-bg: rgba(59,130,246,0.15); --sm-info-bg: rgba(59,130,246,0.12); --sm-orange-bg: rgba(245,158,11,0.15); --sm-yellow-bg: rgba(234,179,8,0.15); --sm-rose-bg: rgba(244,63,94,0.15); --sm-warning-soft: rgba(245,158,11,0.12); --sm-nomina-bg: rgba(59,130,246,0.12); --sm-profesional-bg: rgba(16,185,129,0.12); --sm-alquiler-bg: rgba(245,158,11,0.12); --sm-capital-bg: rgba(168,85,247,0.12); --sm-premios-bg: rgba(244,63,94,0.12); --sm-actividades-bg: rgba(20,184,166,0.12); --sm-otros-bg: rgba(100,116,139,0.15);
    --sr-surface: #151d2e; --sr-surface-alt: #111827; --sr-surface-raised: #1a2332; --sr-surface-secondary: #111827; --sr-bg: #0b1120; --sr-white: #151d2e; --sr-border: #1e293b; --sr-border-subtle: #151d2e; --sr-border-light: #1e293b; --sr-border-hover: #334155; --sr-border-strong: #475569; --sr-slate: #94a3b8; --sr-slate-light: #cbd5e1; --sr-slate-dim: #64748b; --sr-text: #f1f5f9; --sr-text-primary: #f1f5f9; --sr-text-secondary: #94a3b8; --sr-text-muted: #8493a8; --sr-shadow: 0 1px 3px rgba(0,0,0,0.3); --sr-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --sr-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --sr-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --sr-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --sr-green-bg: rgba(16,185,129,0.15); --sr-red-bg: rgba(239,68,68,0.15); --sr-blue-bg: rgba(59,130,246,0.15); --sr-info-bg: rgba(59,130,246,0.12); --sr-orange-bg: rgba(245,158,11,0.15); --sr-yellow-bg: rgba(234,179,8,0.15); --sr-rose-bg: rgba(244,63,94,0.15); --sr-warning-soft: rgba(245,158,11,0.12); --sr-nomina-bg: rgba(59,130,246,0.12); --sr-profesional-bg: rgba(16,185,129,0.12); --sr-alquiler-bg: rgba(245,158,11,0.12); --sr-capital-bg: rgba(168,85,247,0.12); --sr-premios-bg: rgba(244,63,94,0.12); --sr-actividades-bg: rgba(20,184,166,0.12); --sr-otros-bg: rgba(100,116,139,0.15);
    --ss-surface: #151d2e; --ss-surface-alt: #111827; --ss-surface-raised: #1a2332; --ss-surface-secondary: #111827; --ss-bg: #0b1120; --ss-white: #151d2e; --ss-border: #1e293b; --ss-border-subtle: #151d2e; --ss-border-light: #1e293b; --ss-border-hover: #334155; --ss-border-strong: #475569; --ss-slate: #94a3b8; --ss-slate-light: #cbd5e1; --ss-slate-dim: #64748b; --ss-text: #f1f5f9; --ss-text-primary: #f1f5f9; --ss-text-secondary: #94a3b8; --ss-text-muted: #8493a8; --ss-shadow: 0 1px 3px rgba(0,0,0,0.3); --ss-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ss-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ss-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ss-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ss-green-bg: rgba(16,185,129,0.15); --ss-red-bg: rgba(239,68,68,0.15); --ss-blue-bg: rgba(59,130,246,0.15); --ss-info-bg: rgba(59,130,246,0.12); --ss-orange-bg: rgba(245,158,11,0.15); --ss-yellow-bg: rgba(234,179,8,0.15); --ss-rose-bg: rgba(244,63,94,0.15); --ss-warning-soft: rgba(245,158,11,0.12); --ss-nomina-bg: rgba(59,130,246,0.12); --ss-profesional-bg: rgba(16,185,129,0.12); --ss-alquiler-bg: rgba(245,158,11,0.12); --ss-capital-bg: rgba(168,85,247,0.12); --ss-premios-bg: rgba(244,63,94,0.12); --ss-actividades-bg: rgba(20,184,166,0.12); --ss-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: st, su, sx */
[data-theme="dark"] {
    --st-surface: #151d2e; --st-surface-alt: #111827; --st-surface-raised: #1a2332; --st-surface-secondary: #111827; --st-bg: #0b1120; --st-white: #151d2e; --st-border: #1e293b; --st-border-subtle: #151d2e; --st-border-light: #1e293b; --st-border-hover: #334155; --st-border-strong: #475569; --st-slate: #94a3b8; --st-slate-light: #cbd5e1; --st-slate-dim: #64748b; --st-text: #f1f5f9; --st-text-primary: #f1f5f9; --st-text-secondary: #94a3b8; --st-text-muted: #8493a8; --st-shadow: 0 1px 3px rgba(0,0,0,0.3); --st-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --st-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --st-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --st-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --st-green-bg: rgba(16,185,129,0.15); --st-red-bg: rgba(239,68,68,0.15); --st-blue-bg: rgba(59,130,246,0.15); --st-info-bg: rgba(59,130,246,0.12); --st-orange-bg: rgba(245,158,11,0.15); --st-yellow-bg: rgba(234,179,8,0.15); --st-rose-bg: rgba(244,63,94,0.15); --st-warning-soft: rgba(245,158,11,0.12); --st-nomina-bg: rgba(59,130,246,0.12); --st-profesional-bg: rgba(16,185,129,0.12); --st-alquiler-bg: rgba(245,158,11,0.12); --st-capital-bg: rgba(168,85,247,0.12); --st-premios-bg: rgba(244,63,94,0.12); --st-actividades-bg: rgba(20,184,166,0.12); --st-otros-bg: rgba(100,116,139,0.15);
    --su-surface: #151d2e; --su-surface-alt: #111827; --su-surface-raised: #1a2332; --su-surface-secondary: #111827; --su-bg: #0b1120; --su-white: #151d2e; --su-border: #1e293b; --su-border-subtle: #151d2e; --su-border-light: #1e293b; --su-border-hover: #334155; --su-border-strong: #475569; --su-slate: #94a3b8; --su-slate-light: #cbd5e1; --su-slate-dim: #64748b; --su-text: #f1f5f9; --su-text-primary: #f1f5f9; --su-text-secondary: #94a3b8; --su-text-muted: #8493a8; --su-shadow: 0 1px 3px rgba(0,0,0,0.3); --su-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --su-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --su-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --su-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --su-green-bg: rgba(16,185,129,0.15); --su-red-bg: rgba(239,68,68,0.15); --su-blue-bg: rgba(59,130,246,0.15); --su-info-bg: rgba(59,130,246,0.12); --su-orange-bg: rgba(245,158,11,0.15); --su-yellow-bg: rgba(234,179,8,0.15); --su-rose-bg: rgba(244,63,94,0.15); --su-warning-soft: rgba(245,158,11,0.12); --su-nomina-bg: rgba(59,130,246,0.12); --su-profesional-bg: rgba(16,185,129,0.12); --su-alquiler-bg: rgba(245,158,11,0.12); --su-capital-bg: rgba(168,85,247,0.12); --su-premios-bg: rgba(244,63,94,0.12); --su-actividades-bg: rgba(20,184,166,0.12); --su-otros-bg: rgba(100,116,139,0.15);
    --sx-surface: #151d2e; --sx-surface-alt: #111827; --sx-surface-raised: #1a2332; --sx-surface-secondary: #111827; --sx-bg: #0b1120; --sx-white: #151d2e; --sx-border: #1e293b; --sx-border-subtle: #151d2e; --sx-border-light: #1e293b; --sx-border-hover: #334155; --sx-border-strong: #475569; --sx-slate: #94a3b8; --sx-slate-light: #cbd5e1; --sx-slate-dim: #64748b; --sx-text: #f1f5f9; --sx-text-primary: #f1f5f9; --sx-text-secondary: #94a3b8; --sx-text-muted: #8493a8; --sx-shadow: 0 1px 3px rgba(0,0,0,0.3); --sx-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --sx-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --sx-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --sx-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --sx-green-bg: rgba(16,185,129,0.15); --sx-red-bg: rgba(239,68,68,0.15); --sx-blue-bg: rgba(59,130,246,0.15); --sx-info-bg: rgba(59,130,246,0.12); --sx-orange-bg: rgba(245,158,11,0.15); --sx-yellow-bg: rgba(234,179,8,0.15); --sx-rose-bg: rgba(244,63,94,0.15); --sx-warning-soft: rgba(245,158,11,0.12); --sx-nomina-bg: rgba(59,130,246,0.12); --sx-profesional-bg: rgba(16,185,129,0.12); --sx-alquiler-bg: rgba(245,158,11,0.12); --sx-capital-bg: rgba(168,85,247,0.12); --sx-premios-bg: rgba(244,63,94,0.12); --sx-actividades-bg: rgba(20,184,166,0.12); --sx-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: td, ti, ts */
[data-theme="dark"] {
    --td-surface: #151d2e; --td-surface-alt: #111827; --td-surface-raised: #1a2332; --td-surface-secondary: #111827; --td-bg: #0b1120; --td-white: #151d2e; --td-border: #1e293b; --td-border-subtle: #151d2e; --td-border-light: #1e293b; --td-border-hover: #334155; --td-border-strong: #475569; --td-slate: #94a3b8; --td-slate-light: #cbd5e1; --td-slate-dim: #64748b; --td-text: #f1f5f9; --td-text-primary: #f1f5f9; --td-text-secondary: #94a3b8; --td-text-muted: #8493a8; --td-shadow: 0 1px 3px rgba(0,0,0,0.3); --td-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --td-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --td-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --td-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --td-green-bg: rgba(16,185,129,0.15); --td-red-bg: rgba(239,68,68,0.15); --td-blue-bg: rgba(59,130,246,0.15); --td-info-bg: rgba(59,130,246,0.12); --td-orange-bg: rgba(245,158,11,0.15); --td-yellow-bg: rgba(234,179,8,0.15); --td-rose-bg: rgba(244,63,94,0.15); --td-warning-soft: rgba(245,158,11,0.12); --td-nomina-bg: rgba(59,130,246,0.12); --td-profesional-bg: rgba(16,185,129,0.12); --td-alquiler-bg: rgba(245,158,11,0.12); --td-capital-bg: rgba(168,85,247,0.12); --td-premios-bg: rgba(244,63,94,0.12); --td-actividades-bg: rgba(20,184,166,0.12); --td-otros-bg: rgba(100,116,139,0.15);
    --ti-surface: #151d2e; --ti-surface-alt: #111827; --ti-surface-raised: #1a2332; --ti-surface-secondary: #111827; --ti-bg: #0b1120; --ti-white: #151d2e; --ti-border: #1e293b; --ti-border-subtle: #151d2e; --ti-border-light: #1e293b; --ti-border-hover: #334155; --ti-border-strong: #475569; --ti-slate: #94a3b8; --ti-slate-light: #cbd5e1; --ti-slate-dim: #64748b; --ti-text: #f1f5f9; --ti-text-primary: #f1f5f9; --ti-text-secondary: #94a3b8; --ti-text-muted: #8493a8; --ti-shadow: 0 1px 3px rgba(0,0,0,0.3); --ti-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ti-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ti-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ti-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ti-green-bg: rgba(16,185,129,0.15); --ti-red-bg: rgba(239,68,68,0.15); --ti-blue-bg: rgba(59,130,246,0.15); --ti-info-bg: rgba(59,130,246,0.12); --ti-orange-bg: rgba(245,158,11,0.15); --ti-yellow-bg: rgba(234,179,8,0.15); --ti-rose-bg: rgba(244,63,94,0.15); --ti-warning-soft: rgba(245,158,11,0.12); --ti-nomina-bg: rgba(59,130,246,0.12); --ti-profesional-bg: rgba(16,185,129,0.12); --ti-alquiler-bg: rgba(245,158,11,0.12); --ti-capital-bg: rgba(168,85,247,0.12); --ti-premios-bg: rgba(244,63,94,0.12); --ti-actividades-bg: rgba(20,184,166,0.12); --ti-otros-bg: rgba(100,116,139,0.15);
    --ts-surface: #151d2e; --ts-surface-alt: #111827; --ts-surface-raised: #1a2332; --ts-surface-secondary: #111827; --ts-bg: #0b1120; --ts-white: #151d2e; --ts-border: #1e293b; --ts-border-subtle: #151d2e; --ts-border-light: #1e293b; --ts-border-hover: #334155; --ts-border-strong: #475569; --ts-slate: #94a3b8; --ts-slate-light: #cbd5e1; --ts-slate-dim: #64748b; --ts-text: #f1f5f9; --ts-text-primary: #f1f5f9; --ts-text-secondary: #94a3b8; --ts-text-muted: #8493a8; --ts-shadow: 0 1px 3px rgba(0,0,0,0.3); --ts-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ts-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ts-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ts-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ts-green-bg: rgba(16,185,129,0.15); --ts-red-bg: rgba(239,68,68,0.15); --ts-blue-bg: rgba(59,130,246,0.15); --ts-info-bg: rgba(59,130,246,0.12); --ts-orange-bg: rgba(245,158,11,0.15); --ts-yellow-bg: rgba(234,179,8,0.15); --ts-rose-bg: rgba(244,63,94,0.15); --ts-warning-soft: rgba(245,158,11,0.12); --ts-nomina-bg: rgba(59,130,246,0.12); --ts-profesional-bg: rgba(16,185,129,0.12); --ts-alquiler-bg: rgba(245,158,11,0.12); --ts-capital-bg: rgba(168,85,247,0.12); --ts-premios-bg: rgba(244,63,94,0.12); --ts-actividades-bg: rgba(20,184,166,0.12); --ts-otros-bg: rgba(100,116,139,0.15);
}

/* Fichas de modelo, también en las quince: el valor de la cabecera (ejercicio, NIF…) usa
   `--td-navy`, casi negro aquí, y la franja «Al día con los datos del periodo» tenía fondo
   claro fijo con el texto ya aclarado. Las dos quedaban ilegibles. */
[data-theme="dark"] .main-content .td-hero-meta-item strong {
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .tx-ficha-stale:not(#_) {
    background: #0f172a !important;
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .tx-ficha-stale.is-stale:not(#_) {
    background: rgba(232, 168, 56, 0.10) !important;
    border-color: #92400e !important;
}

/* Botón secundario de las fichas de modelo (`td-btn--outline`): su texto es `--td-navy`, que
   aquí sigue siendo casi negro porque también pinta la cabecera, así que quedaba ilegible. Sin
   !important a propósito: el «Eliminar» del 303 colorea en rojo con su propio `style`. */
[data-theme="dark"] .main-content .td-btn--outline:not(#_) {
    color: #e2e8f0;
    border-color: #334155;
}
[data-theme="dark"] .main-content .td-btn--outline:not(#_):hover {
    color: #ffffff;
    border-color: #475569;
}

/* Per-page dark overrides: tx, wc, wi */
[data-theme="dark"] {
    --tx-surface: #151d2e; --tx-surface-alt: #111827; --tx-surface-raised: #1a2332; --tx-surface-secondary: #111827; --tx-bg: #0b1120; --tx-white: #151d2e; --tx-border: #1e293b; --tx-border-subtle: #151d2e; --tx-border-light: #1e293b; --tx-border-hover: #334155; --tx-border-strong: #475569; --tx-slate: #94a3b8; --tx-slate-light: #cbd5e1; --tx-slate-dim: #64748b; --tx-text: #f1f5f9; --tx-text-primary: #f1f5f9; --tx-text-secondary: #94a3b8; --tx-text-muted: #8493a8; --tx-shadow: 0 1px 3px rgba(0,0,0,0.3); --tx-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --tx-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --tx-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --tx-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --tx-green-bg: rgba(16,185,129,0.15); --tx-red-bg: rgba(239,68,68,0.15); --tx-blue-bg: rgba(59,130,246,0.15); --tx-info-bg: rgba(59,130,246,0.12); --tx-orange-bg: rgba(245,158,11,0.15); --tx-yellow-bg: rgba(234,179,8,0.15); --tx-rose-bg: rgba(244,63,94,0.15); --tx-warning-soft: rgba(245,158,11,0.12); --tx-nomina-bg: rgba(59,130,246,0.12); --tx-profesional-bg: rgba(16,185,129,0.12); --tx-alquiler-bg: rgba(245,158,11,0.12); --tx-capital-bg: rgba(168,85,247,0.12); --tx-premios-bg: rgba(244,63,94,0.12); --tx-actividades-bg: rgba(20,184,166,0.12); --tx-otros-bg: rgba(100,116,139,0.15);
    --wc-surface: #151d2e; --wc-surface-alt: #111827; --wc-surface-raised: #1a2332; --wc-surface-secondary: #111827; --wc-bg: #0b1120; --wc-white: #151d2e; --wc-border: #1e293b; --wc-border-subtle: #151d2e; --wc-border-light: #1e293b; --wc-border-hover: #334155; --wc-border-strong: #475569; --wc-slate: #94a3b8; --wc-slate-light: #cbd5e1; --wc-slate-dim: #64748b; --wc-text: #f1f5f9; --wc-text-primary: #f1f5f9; --wc-text-secondary: #94a3b8; --wc-text-muted: #8493a8; --wc-shadow: 0 1px 3px rgba(0,0,0,0.3); --wc-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --wc-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --wc-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --wc-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --wc-green-bg: rgba(16,185,129,0.15); --wc-red-bg: rgba(239,68,68,0.15); --wc-blue-bg: rgba(59,130,246,0.15); --wc-info-bg: rgba(59,130,246,0.12); --wc-orange-bg: rgba(245,158,11,0.15); --wc-yellow-bg: rgba(234,179,8,0.15); --wc-rose-bg: rgba(244,63,94,0.15); --wc-warning-soft: rgba(245,158,11,0.12); --wc-nomina-bg: rgba(59,130,246,0.12); --wc-profesional-bg: rgba(16,185,129,0.12); --wc-alquiler-bg: rgba(245,158,11,0.12); --wc-capital-bg: rgba(168,85,247,0.12); --wc-premios-bg: rgba(244,63,94,0.12); --wc-actividades-bg: rgba(20,184,166,0.12); --wc-otros-bg: rgba(100,116,139,0.15);
    --wi-surface: #151d2e; --wi-surface-alt: #111827; --wi-surface-raised: #1a2332; --wi-surface-secondary: #111827; --wi-bg: #0b1120; --wi-white: #151d2e; --wi-border: #1e293b; --wi-border-subtle: #151d2e; --wi-border-light: #1e293b; --wi-border-hover: #334155; --wi-border-strong: #475569; --wi-slate: #94a3b8; --wi-slate-light: #cbd5e1; --wi-slate-dim: #64748b; --wi-text: #f1f5f9; --wi-text-primary: #f1f5f9; --wi-text-secondary: #94a3b8; --wi-text-muted: #8493a8; --wi-shadow: 0 1px 3px rgba(0,0,0,0.3); --wi-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --wi-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --wi-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --wi-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --wi-green-bg: rgba(16,185,129,0.15); --wi-red-bg: rgba(239,68,68,0.15); --wi-blue-bg: rgba(59,130,246,0.15); --wi-info-bg: rgba(59,130,246,0.12); --wi-orange-bg: rgba(245,158,11,0.15); --wi-yellow-bg: rgba(234,179,8,0.15); --wi-rose-bg: rgba(244,63,94,0.15); --wi-warning-soft: rgba(245,158,11,0.12); --wi-nomina-bg: rgba(59,130,246,0.12); --wi-profesional-bg: rgba(16,185,129,0.12); --wi-alquiler-bg: rgba(245,158,11,0.12); --wi-capital-bg: rgba(168,85,247,0.12); --wi-premios-bg: rgba(244,63,94,0.12); --wi-actividades-bg: rgba(20,184,166,0.12); --wi-otros-bg: rgba(100,116,139,0.15);
}

/* Per-page dark overrides: wl, ws */
[data-theme="dark"] {
    --wl-surface: #151d2e; --wl-surface-alt: #111827; --wl-surface-raised: #1a2332; --wl-surface-secondary: #111827; --wl-bg: #0b1120; --wl-white: #151d2e; --wl-border: #1e293b; --wl-border-subtle: #151d2e; --wl-border-light: #1e293b; --wl-border-hover: #334155; --wl-border-strong: #475569; --wl-slate: #94a3b8; --wl-slate-light: #cbd5e1; --wl-slate-dim: #64748b; --wl-text: #f1f5f9; --wl-text-primary: #f1f5f9; --wl-text-secondary: #94a3b8; --wl-text-muted: #8493a8; --wl-shadow: 0 1px 3px rgba(0,0,0,0.3); --wl-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --wl-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --wl-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --wl-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --wl-green-bg: rgba(16,185,129,0.15); --wl-red-bg: rgba(239,68,68,0.15); --wl-blue-bg: rgba(59,130,246,0.15); --wl-info-bg: rgba(59,130,246,0.12); --wl-orange-bg: rgba(245,158,11,0.15); --wl-yellow-bg: rgba(234,179,8,0.15); --wl-rose-bg: rgba(244,63,94,0.15); --wl-warning-soft: rgba(245,158,11,0.12); --wl-nomina-bg: rgba(59,130,246,0.12); --wl-profesional-bg: rgba(16,185,129,0.12); --wl-alquiler-bg: rgba(245,158,11,0.12); --wl-capital-bg: rgba(168,85,247,0.12); --wl-premios-bg: rgba(244,63,94,0.12); --wl-actividades-bg: rgba(20,184,166,0.12); --wl-otros-bg: rgba(100,116,139,0.15);
    --ws-surface: #151d2e; --ws-surface-alt: #111827; --ws-surface-raised: #1a2332; --ws-surface-secondary: #111827; --ws-bg: #0b1120; --ws-white: #151d2e; --ws-border: #1e293b; --ws-border-subtle: #151d2e; --ws-border-light: #1e293b; --ws-border-hover: #334155; --ws-border-strong: #475569; --ws-slate: #94a3b8; --ws-slate-light: #cbd5e1; --ws-slate-dim: #64748b; --ws-text: #f1f5f9; --ws-text-primary: #f1f5f9; --ws-text-secondary: #94a3b8; --ws-text-muted: #8493a8; --ws-shadow: 0 1px 3px rgba(0,0,0,0.3); --ws-shadow-sm: 0 1px 2px rgba(0,0,0,0.25); --ws-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --ws-shadow-lg: 0 8px 30px rgba(0,0,0,0.5); --ws-shadow-hover: 0 4px 20px rgba(0,0,0,0.4); --ws-green-bg: rgba(16,185,129,0.15); --ws-red-bg: rgba(239,68,68,0.15); --ws-blue-bg: rgba(59,130,246,0.15); --ws-info-bg: rgba(59,130,246,0.12); --ws-orange-bg: rgba(245,158,11,0.15); --ws-yellow-bg: rgba(234,179,8,0.15); --ws-rose-bg: rgba(244,63,94,0.15); --ws-warning-soft: rgba(245,158,11,0.12); --ws-nomina-bg: rgba(59,130,246,0.12); --ws-profesional-bg: rgba(16,185,129,0.12); --ws-alquiler-bg: rgba(245,158,11,0.12); --ws-capital-bg: rgba(168,85,247,0.12); --ws-premios-bg: rgba(244,63,94,0.12); --ws-actividades-bg: rgba(20,184,166,0.12); --ws-otros-bg: rgba(100,116,139,0.15);
}

/* ================================================
   PHASE 2: Inline style overrides for hardcoded hex
   These override style="" attributes in dark mode
   ================================================ */

/* White/light backgrounds */
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background:#ffffff"],
[data-theme="dark"] [style*="background: #ffffff"],
[data-theme="dark"] [style*="background-color:#fff"],
[data-theme="dark"] [style*="background-color: #fff"] {
    background: #151d2e !important;
}

[data-theme="dark"] [style*="background:#f8fafc"],
[data-theme="dark"] [style*="background: #f8fafc"] {
    background: #111827 !important;
}

[data-theme="dark"] [style*="background:#f1f5f9"],
[data-theme="dark"] [style*="background: #f1f5f9"] {
    background: #1e293b !important;
}

[data-theme="dark"] [style*="background:#f4f6f9"],
[data-theme="dark"] [style*="background: #f4f6f9"] {
    background: #0b1120 !important;
}

/* Tinted light backgrounds -> dark tinted backgrounds */
[data-theme="dark"] [style*="background:#fef3c7"] { background: rgba(245,158,11,0.12) !important; }
[data-theme="dark"] [style*="background:#fef9c3"] { background: rgba(234,179,8,0.12) !important; }
[data-theme="dark"] [style*="background:#ffedd5"] { background: rgba(234,88,12,0.12) !important; }
[data-theme="dark"] [style*="background:#fff7ed"] { background: rgba(245,158,11,0.10) !important; }
[data-theme="dark"] [style*="background:#dbeafe"] { background: rgba(59,130,246,0.12) !important; }
[data-theme="dark"] [style*="background:#eff6ff"] { background: rgba(59,130,246,0.10) !important; }
[data-theme="dark"] [style*="background:#fee2e2"] { background: rgba(239,68,68,0.12) !important; }
[data-theme="dark"] [style*="background:#fef2f2"] { background: rgba(239,68,68,0.10) !important; }
[data-theme="dark"] [style*="background:#ecfdf5"] { background: rgba(16,185,129,0.10) !important; }
[data-theme="dark"] [style*="background:#f0fdf4"] { background: rgba(16,185,129,0.10) !important; }
[data-theme="dark"] [style*="background:#d1fae5"] { background: rgba(16,185,129,0.15) !important; }
[data-theme="dark"] [style*="background:#dcfce7"] { background: rgba(16,185,129,0.12) !important; }
[data-theme="dark"] [style*="background:#fecaca"] { background: rgba(239,68,68,0.2) !important; }
[data-theme="dark"] [style*="background:#fed7aa"] { background: rgba(245,158,11,0.2) !important; }
[data-theme="dark"] [style*="background:#bfdbfe"] { background: rgba(59,130,246,0.2) !important; }
[data-theme="dark"] [style*="background:#bbf7d0"] { background: rgba(16,185,129,0.2) !important; }
[data-theme="dark"] [style*="background:#fde68a"] { background: rgba(234,179,8,0.15) !important; }

/* Dark text invisible on dark backgrounds */
[data-theme="dark"] [style*="color:#0f172a"],
[data-theme="dark"] [style*="color: #0f172a"] { color: #f1f5f9 !important; }

[data-theme="dark"] [style*="color:#0c1222"],
[data-theme="dark"] [style*="color: #0c1222"] { color: #f1f5f9 !important; }

[data-theme="dark"] [style*="color:#1e293b"],
[data-theme="dark"] [style*="color: #1e293b"] { color: #e2e8f0 !important; }

[data-theme="dark"] [style*="color:#334155"],
[data-theme="dark"] [style*="color: #334155"] { color: #cbd5e1 !important; }

[data-theme="dark"] [style*="color:#475569"],
[data-theme="dark"] [style*="color: #475569"] { color: #94a3b8 !important; }

[data-theme="dark"] [style*="color:#64748b"],
[data-theme="dark"] [style*="color: #64748b"] { color: #94a3b8 !important; }

[data-theme="dark"] [style*="color:#92400e"],
[data-theme="dark"] [style*="color: #92400e"] { color: #fbbf24 !important; }

[data-theme="dark"] [style*="color:#9a3412"],
[data-theme="dark"] [style*="color: #9a3412"] { color: #fb923c !important; }

[data-theme="dark"] [style*="color:#991b1b"],
[data-theme="dark"] [style*="color: #991b1b"],
[data-theme="dark"] [style*="color:#991B1B"] { color: #fca5a5 !important; }

[data-theme="dark"] [style*="color:#b91c1c"],
[data-theme="dark"] [style*="color: #b91c1c"] { color: #fca5a5 !important; }

[data-theme="dark"] [style*="color:#1e40af"],
[data-theme="dark"] [style*="color: #1e40af"] { color: #93c5fd !important; }

[data-theme="dark"] [style*="color:#1e3a8a"],
[data-theme="dark"] [style*="color: #1e3a8a"] { color: #93c5fd !important; }

[data-theme="dark"] [style*="color:#065f46"],
[data-theme="dark"] [style*="color: #065f46"] { color: #6ee7b7 !important; }

[data-theme="dark"] [style*="color:#15803d"],
[data-theme="dark"] [style*="color: #15803d"] { color: #4ade80 !important; }

[data-theme="dark"] [style*="color:#b45309"],
[data-theme="dark"] [style*="color: #b45309"] { color: #fbbf24 !important; }

[data-theme="dark"] [style*="color:#c2410c"],
[data-theme="dark"] [style*="color: #c2410c"] { color: #fb923c !important; }

[data-theme="dark"] [style*="color:#92640d"] { color: #fbbf24 !important; }

/* Light border overrides */
[data-theme="dark"] [style*="border-color:#e2e8f0"],
[data-theme="dark"] [style*="border-color: #e2e8f0"] { border-color: #1e293b !important; }

[data-theme="dark"] [style*="border-color:#f1f5f9"],
[data-theme="dark"] [style*="border-color: #f1f5f9"] { border-color: #1e293b !important; }

[data-theme="dark"] [style*="border-color:#cbd5e1"],
[data-theme="dark"] [style*="border-color: #cbd5e1"] { border-color: #334155 !important; }

[data-theme="dark"] [style*="border:1px solid #e2e8f0"] { border-color: #1e293b !important; }
[data-theme="dark"] [style*="border:2px solid #e2e8f0"] { border-color: #1e293b !important; }
[data-theme="dark"] [style*="border: 1px solid #e2e8f0"] { border-color: #1e293b !important; }
[data-theme="dark"] [style*="border-bottom:2px solid #e2e8f0"] { border-color: #1e293b !important; }
[data-theme="dark"] [style*="border-bottom: 2px solid #e2e8f0"] { border-color: #1e293b !important; }

[data-theme="dark"] [style*="border:1px solid #fca5a5"] { border-color: rgba(239,68,68,0.3) !important; }
[data-theme="dark"] [style*="border: 1px solid #fca5a5"] { border-color: rgba(239,68,68,0.3) !important; }
[data-theme="dark"] [style*="border:1px solid #fed7aa"] { border-color: rgba(245,158,11,0.3) !important; }
[data-theme="dark"] [style*="border:1px solid #fecaca"] { border-color: rgba(239,68,68,0.3) !important; }
[data-theme="dark"] [style*="border:1px solid #bfdbfe"] { border-color: rgba(59,130,246,0.3) !important; }
[data-theme="dark"] [style*="border:1px solid #bbf7d0"] { border-color: rgba(16,185,129,0.3) !important; }

/* rgba backgrounds with light values */
[data-theme="dark"] [style*="rgba(30,58,138,0.06)"] { background: rgba(59,130,246,0.12) !important; }
[data-theme="dark"] [style*="rgba(232,168,56,0.08)"] { background: rgba(232,168,56,0.15) !important; }
[data-theme="dark"] [style*="rgba(232,168,56,0.12)"] { background: rgba(232,168,56,0.18) !important; }
[data-theme="dark"] [style*="rgba(5,150,105,0.08)"] { background: rgba(16,185,129,0.15) !important; }
[data-theme="dark"] [style*="rgba(220,38,38,0.08)"] { background: rgba(239,68,68,0.15) !important; }
[data-theme="dark"] [style*="rgba(220,38,38,0.06)"] { background: rgba(239,68,68,0.12) !important; }
[data-theme="dark"] [style*="rgba(37,99,235,0.06)"] { background: rgba(59,130,246,0.12) !important; }
[data-theme="dark"] [style*="rgba(234,88,12,0.10)"] { background: rgba(234,88,12,0.18) !important; }
[data-theme="dark"] [style*="rgba(16,185,129,0.1)"] { background: rgba(16,185,129,0.18) !important; }

/* ================================================
   PHASE 3: Bootstrap/global element dark overrides
   ================================================ */
[data-theme="dark"] .page-header .page-title { color: #f1f5f9; }
[data-theme="dark"] hr { border-color: #1e293b; }

/* ================================================
   PHASE 4: Semantic status utilities for dark mode
   Replace PHP ternary inline colors in blade views
   ================================================ */
.dm-text-success { color: #16a34a; }
.dm-text-warning { color: #d97706; }
.dm-text-danger { color: #dc2626; }
.dm-text-info { color: #2563eb; }
.dm-text-muted { color: #64748b; }

[data-theme="dark"] .dm-text-success { color: #4ade80; }
[data-theme="dark"] .dm-text-warning { color: #fbbf24; }
[data-theme="dark"] .dm-text-danger { color: #f87171; }
[data-theme="dark"] .dm-text-info { color: #93c5fd; }
[data-theme="dark"] .dm-text-muted { color: #94a3b8; }

.dm-bg-success { background: #16a34a; }
.dm-bg-warning { background: #f59e0b; }
.dm-bg-danger { background: #dc2626; }
.dm-bg-info { background: #2563eb; }

/* These status background colors stay the same in dark mode (they carry meaning) */

/* ================================================
   PHASE 5: Additional inline overrides (missed hex)
   Covers uppercase hex, extra dark text, client portal
   ================================================ */

/* Uppercase hex variants (some blade views use uppercase) */
[data-theme="dark"] [style*="color:#D97706"],
[data-theme="dark"] [style*="color: #D97706"] { color: #fbbf24 !important; }

[data-theme="dark"] [style*="color:#1a2332"],
[data-theme="dark"] [style*="color: #1a2332"] { color: #f1f5f9 !important; }

[data-theme="dark"] [style*="color:#10b981"],
[data-theme="dark"] [style*="color: #10b981"] { color: #34d399 !important; }

/* 🚨 EL SELECTOR CAZA `color:#6366f1` DENTRO DE `border-color:#6366f1` — es una
   BÚSQUEDA DE SUBCADENA, no de propiedad, y `border-color:` acaba en `color:`.
   Verificado en las vistas: NINGUNA declara el índigo como color de texto y como
   fondo sólido a la vez, así que el caso real es otro. `asientos-index.blade.php:906`
   escribe `style="background:#6366f1; color:#fff; border-color:#6366f1"`: el atributo
   contiene la subcadena `color:#6366f1` por el BORDE, la regla casa, y su
   `!important` pisa el `color:#fff` que el botón sí había declarado. Resultado
   medido en `/user/contabilidad/asientos`: «Nuevo Asiento Manual» en 2,24 — índigo
   claro sobre índigo. La exclusión por el fondo sólido devuelve a ese botón su
   blanco.
   ⚠️ LA MISMA COLISIÓN AFECTA A LAS OTRAS 22 REGLAS `[style*="color:#…"]` de este
   fichero (líneas 767-916). La peor, sin arreglar y de antes de este bloque:
   `border-color:#cbd5e1` —13 vistas, entre ellas los libros contables y los
   listados de personal— casa con la regla de la línea 916 y les fuerza
   `color:#475569`, gris oscuro sobre fondo oscuro. No se toca aquí porque no está
   medido pantalla a pantalla; el arreglo sería el mismo patrón:
   `:not([style*="border-color:#cbd5e1"])`. */
[data-theme="dark"] [style*="color:#6366f1"]:not([style*="background:#6366f1"]),
[data-theme="dark"] [style*="color: #6366f1"]:not([style*="background:#6366f1"]) { color: #a5b4fc !important; }

[data-theme="dark"] [style*="background:#6366f1"] { background: #6366f1 !important; }

/* Client portal specific: light backgrounds in modals */
[data-theme="dark"] [style*="background:#fff;"],
[data-theme="dark"] [style*="background: #fff;"] { background: #151d2e !important; }

/* Gradient backgrounds with light colors */
[data-theme="dark"] [style*="background: linear-gradient(135deg, #fef3c7"] { background: linear-gradient(135deg, rgba(245,158,11,0.15), rgba(234,179,8,0.1)) !important; }
[data-theme="dark"] [style*="background:linear-gradient(135deg, #fef3c7"] { background: linear-gradient(135deg, rgba(245,158,11,0.15), rgba(234,179,8,0.1)) !important; }

/* Extra light/muted colors in inline styles */
[data-theme="dark"] [style*="color:#cbd5e1"] { color: #475569 !important; }
[data-theme="dark"] [style*="color: #cbd5e1"] { color: #475569 !important; }

/* ================================================
   PHASE 6: Page-scoped variable overrides
   Some views scope vars to .XX-page instead of :root.
   CSS custom properties inherit by proximity, so we
   MUST override at the same scope level.
   ================================================ */
[data-theme="dark"] .cl-page,
[data-theme="dark"] .bp-page,
[data-theme="dark"] .cd-page,
[data-theme="dark"] .ce-page,
[data-theme="dark"] .cp-page,
[data-theme="dark"] .ct-page,
[data-theme="dark"] .di-page,
[data-theme="dark"] .kb-page,
[data-theme="dark"] .pe-page {
    --cl-border: #1e293b; --cl-slate-50: #111827; --cl-slate-100: #151d2e; --cl-slate-200: #1e293b; --cl-slate-300: #334155; --cl-slate-400: #cbd5e1; --cl-slate-500: #94a3b8; --cl-slate-600: #cbd5e1; --cl-slate-700: #e2e8f0; --cl-slate-800: #f1f5f9; --cl-shadow: 0 1px 3px rgba(0,0,0,0.3); --cl-shadow-md: 0 4px 16px rgba(0,0,0,0.4); --cl-green-bg: rgba(16,185,129,0.15); --cl-red-bg: rgba(239,68,68,0.15); --cl-blue-bg: rgba(59,130,246,0.15); --cl-teal-bg: rgba(20,184,166,0.15);
    --bp-border: #1e293b; --bp-slate-50: #111827; --bp-slate-100: #151d2e; --bp-slate-200: #1e293b; --bp-shadow: 0 1px 3px rgba(0,0,0,0.3); --bp-shadow-md: 0 4px 16px rgba(0,0,0,0.4);
    --cd-border: #1e293b; --cd-slate-200: #1e293b; --cd-shadow: 0 1px 3px rgba(0,0,0,0.3);
    --ce-border: #1e293b; --ce-shadow: 0 1px 3px rgba(0,0,0,0.3);
    --cp-border: #1e293b; --cp-shadow: 0 1px 3px rgba(0,0,0,0.3);
    --ct-border: #1e293b; --ct-shadow: 0 1px 3px rgba(0,0,0,0.3);
    --di-border: #1e293b; --di-shadow: 0 1px 3px rgba(0,0,0,0.3);
    --kb-border: #1e293b; --kb-shadow: 0 1px 3px rgba(0,0,0,0.3);
    --pe-border: #1e293b; --pe-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

/* ================================================================
   NUCLEAR DARK MODE — Universal overrides via .main-content
   Uses !important to override ANY <style> block in blade views.
   .main-content wraps ALL user page content (layouts/app.blade.php:68)
   ================================================================ */

/* --- 1. PAGE WRAPPERS: Dark background for all XX-page classes --- */
[data-theme="dark"] [class$="-page"] {
    background: #0b1120 !important;
    color: #f1f5f9 !important;
}

/* --- 2. CARDS & CONTAINERS: Everything white → dark card --- */
[data-theme="dark"] .main-content [class*="-card"],
[data-theme="dark"] .main-content [class*="-kpi"],
[data-theme="dark"] .main-content [class*="-strip"],
[data-theme="dark"] .main-content [class*="-toolbar"],
[data-theme="dark"] .main-content [class*="-section"]:not([class*="-hero"]),
[data-theme="dark"] .main-content [class*="-modal"],
[data-theme="dark"] .main-content [class*="-form-group"],
[data-theme="dark"] .main-content [class*="-table"],
[data-theme="dark"] .main-content [class*="-sidebar"],
[data-theme="dark"] .main-content [class*="-empty"],
[data-theme="dark"] .main-content [class*="-drop"],
[data-theme="dark"] .main-content [class*="-zone"],
[data-theme="dark"] .main-content [class*="-actions"]:not([class*="-hero"]),
[data-theme="dark"] .main-content [class*="-meta"]:not([class*="-hero"]),
[data-theme="dark"] .main-content [class*="-panel"],
[data-theme="dark"] .main-content [class*="-wrapper"],
[data-theme="dark"] .main-content [class*="-box"],
[data-theme="dark"] .main-content [class*="-content"],
[data-theme="dark"] .main-content [class*="-header"]:not([class*="-hero"]),
[data-theme="dark"] .main-content [class*="-body"],
[data-theme="dark"] .main-content [class*="-footer"],
[data-theme="dark"] .main-content [class*="-toggle"],
[data-theme="dark"] .main-content [class*="-tabs"],
[data-theme="dark"] .main-content [class*="-filter"],
[data-theme="dark"] .main-content [class*="-search"],
[data-theme="dark"] .main-content [class*="-alert"]:not(.alert-success):not(.alert-danger):not(.alert-warning):not(.alert-info),
[data-theme="dark"] .main-content [class*="-list"],
[data-theme="dark"] .main-content [class*="-item"],
[data-theme="dark"] .main-content [class*="-row"]:not(tr):not(.row),
[data-theme="dark"] .main-content [class*="-grid"] {
    background: #151d2e !important;
    border-color: #1e293b !important;
}

/* --- 3. TEXT: All headings, paragraphs, labels → light --- */
[data-theme="dark"] .main-content h1:not([class*="-hero"] *),
[data-theme="dark"] .main-content h2:not([class*="-hero"] *),
[data-theme="dark"] .main-content h3:not([class*="-hero"] *),
[data-theme="dark"] .main-content h4:not([class*="-hero"] *),
[data-theme="dark"] .main-content h5:not([class*="-hero"] *),
[data-theme="dark"] .main-content h6:not([class*="-hero"] *) {
    color: #f1f5f9 !important;
}

[data-theme="dark"] .main-content p:not([class*="-hero"] *),
[data-theme="dark"] .main-content label:not([class*="-hero"] *),
/* 🚨 `:not([class*="-btn"] *)` — un `<span>` DENTRO de un botón hereda el color del
   botón, que es quien sabe de qué color es su propio fondo. Sin esta exclusión se le
   forzaba el gris claro del panel: medido en `/user/tax/modelo-303/create`, el texto
   «Generar Modelo 303» quedaba en 1,69 sobre el ámbar de su botón. Es el mismo error
   que las reglas de la cabecera de aquí arriba: repintar por dentro algo que ya se
   pinta solo. */
[data-theme="dark"] .main-content span:not([class*="-hero"] *):not([class*="-btn"] *):not([class*="__btn"] *):not([class*="-badge"]):not([class*="dm-text-"]):not(.dm-text-success):not(.dm-text-warning):not(.dm-text-danger),
[data-theme="dark"] .main-content strong:not([class*="-hero"] *),
[data-theme="dark"] .main-content td,
[data-theme="dark"] .main-content li:not([class*="-hero"] *),
[data-theme="dark"] .main-content div:not([class*="-hero"]):not([class*="-badge"]):not([class*="-btn"]):not([class*="-progress"]):not([class*="dm-bg-"]):not([style*="background:linear-gradient"]):not([style*="background: linear-gradient"]) {
    color: #e2e8f0;
}

/* Named class text overrides for certainty */
[data-theme="dark"] .main-content [class*="-title"]:not([class*="-hero"] *),
[data-theme="dark"] .main-content [class*="-heading"]:not([class*="-hero"] *),
[data-theme="dark"] .main-content [class*="-name"],
[data-theme="dark"] .main-content [class*="-value"],
[data-theme="dark"] .main-content [class*="-total"],
[data-theme="dark"] .main-content [class*="-amount"],
[data-theme="dark"] .main-content [class*="-count"],
[data-theme="dark"] .main-content [class*="-label"]:not(label),
[data-theme="dark"] .main-content [class*="-desc"] {
    color: #f1f5f9 !important;
}

/* --- 4. MUTED TEXT --- */
/* 🚨 `:not([class*="-submit"])` — «-sub» casa también con «-submit»: a los botones de
   envío (`cc-btn-submit`, `du-btn-submit`, `ic-btn-submit`…) se les forzaba este gris
   de texto secundario ENCIMA de su fondo ámbar. Medido en `/user/clients/create`:
   «Crear Cliente» en 1,23. Un botón no es un subtítulo. */
[data-theme="dark"] .main-content [class*="-sub"]:not([class*="-submit"]),
[data-theme="dark"] .main-content [class*="-muted"],
[data-theme="dark"] .main-content [class*="-slate"],
[data-theme="dark"] .main-content [class*="-hint"],
[data-theme="dark"] .main-content small:not([class*="-hero"] *) {
    color: #94a3b8 !important;
}

/* --- 5. TABLES --- */
[data-theme="dark"] .main-content table thead th {
    background: #111827 !important;
    color: #94a3b8 !important;
    border-color: #1e293b !important;
}
[data-theme="dark"] .main-content table td {
    border-color: #1e293b !important;
}
[data-theme="dark"] .main-content table tbody tr:hover {
    background: #1e293b !important;
}

/* --- 6. FORM INPUTS --- */
[data-theme="dark"] .main-content input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="submit"]):not([type="button"]),
[data-theme="dark"] .main-content select,
[data-theme="dark"] .main-content textarea,
[data-theme="dark"] .main-content .input-group-text {
    background: #1e293b !important;
    /* #64748b y no #334155: el contorno de un campo es lo que lo identifica como campo y
       necesita 3:1 contra la tarjeta que lo contiene. #334155 daba 1,5 sobre #151d2e. */
    border-color: #64748b !important;
    color: #f1f5f9 !important;
}

/* --- 7. MODALS --- */
[data-theme="dark"] .modal-content {
    background: #151d2e !important;
    border-color: #1e293b !important;
    color: #f1f5f9 !important;
}
[data-theme="dark"] .modal-header {
    border-color: #1e293b !important;
}
[data-theme="dark"] .modal-footer {
    border-color: #1e293b !important;
}

/* --- 8. HERO EXCLUSIONS: Keep navy gradient backgrounds --- */
/*
 * 🚨 `:not([class*="-btn"])` — SIN ESTO, LOS BOTONES DE LA CABECERA SE VOLVÍAN INVISIBLES.
 *
 * Estas reglas buscan por SUBCADENA del nombre de clase, así que `di-hero-btn`,
 * `td-hero-btn`, `tpv-hero-btn` y `pr-btn--hero-ghost` casaban por su PROPIO nombre, no
 * por estar dentro de una franja. A un botón, `background: unset` le quita el ámbar, y la
 * regla de abajo le forzaba encima texto azul marino dando por hecho que ese ámbar seguía
 * ahí: las dos se contradecían. Medido en `/user/documents`: el botón «Nuevo Documento»
 * quedaba en 1,01 de contraste —el mismo color que el fondo— y con él «Procesar Múltiples»
 * e «Importar listado». Afectaba a OCHO pantallas: las seis de modelos fiscales, el
 * listado de facturas y los cierres de TPV.
 *
 * Con la exclusión, las FRANJAS siguen conservando su degradado (que es lo que esta
 * sección quería) y los BOTONES conservan el suyo.
 */
[data-theme="dark"] .main-content [class*="-hero"]:not([class*="-btn"]) {
    background: unset !important; /* Let the original gradient through */
}
[data-theme="dark"] .main-content [class*="-hero"][style*="background"]:not([class*="-btn"]) {
    background: unset !important;
}
/*
 * La regla que forzaba `color: #0c1222` + `background: unset` a todo `[class*="-btn"]`
 * dentro de una cabecera se RETIRA. Su intención («que el texto del botón siga siendo
 * azul marino, que es lo que contrasta sobre el ámbar») ya la cumple cada pantalla en la
 * definición de su propio botón, y aplicarla a ciegas rompía las variantes que NO son
 * ámbar: las secundarias y las de contorno llevan texto blanco sobre fondo translúcido a
 * propósito, y se quedaban con texto azul marino sobre oscuro.
 */
/* Hero text stays as-is (already light on navy bg) */
[data-theme="dark"] .main-content [class*="-hero"] h1,
[data-theme="dark"] .main-content [class*="-hero"] h2,
[data-theme="dark"] .main-content [class*="-hero"] p,
[data-theme="dark"] .main-content [class*="-hero"] span,
[data-theme="dark"] .main-content [class*="-hero"] small {
    color: unset !important;
}

/* --- 8 bis. SELECT2: el widget se pinta a sí mismo, no se le repinta por dentro --- */
/*
 * 🚨 Select2 sustituye el `<select>` nativo por su propio marcado y conserva su caja
 * BLANCA también en tema oscuro (su hoja es de terceros y no se toca). Desentona, pero
 * se lee: el texto elegido queda en 18,66 de contraste.
 *
 * El problema es que las reglas de arriba repintan en claro los `<span>` del panel, y
 * dentro de Select2 esos `<span>` están sobre blanco. La equis de «quitar la selección»
 * quedaba en 1,23 —medido en `/user/documents`—: se sabía que estaba porque ocupa sitio,
 * no porque se viera. Afecta a las 34 vistas que usan el widget.
 *
 * Se devuelven a su color propio en lugar de darle un tema oscuro entero al widget, que
 * es un proyecto aparte y no una corrección de legibilidad.
 *
 * ⚠️ `:not(.select2-dropdown):not(.select2-dropdown *)` — el DESPLEGABLE también está
 * hecho de `<span>` (en Select2 4.x `.select2-dropdown` y `.select2-results` lo son) y
 * además su clase casa con `[class*="-drop"]`, que en este fichero le pone fondo OSCURO:
 * texto azul marino sobre fondo oscuro sería ilegible. Hoy no ocurre porque Select2
 * monta el desplegable al final de `<body>`, fuera de `.main-content` —comprobado: cero
 * usos de `dropdownParent` en el proyecto—, así que la exclusión no cambia nada ahora.
 * Está puesta para el día que alguien pase `dropdownParent` apuntando al formulario,
 * que es lo normal al meter un Select2 dentro de un modal.
 */
/*
 * Oct-2026: Select2 YA TIENE TEMA OSCURO (bloque «SELECT2 EN OSCURO» al final de este
 * fichero). La caja blanca se retira, así que el texto de dentro vuelve a ser claro.
 * Se conserva la excepción de los `<span>` porque sin ella mandaría la regla general de
 * los `<span>` del panel, que no sabe de qué color es la caja.
 */
[data-theme="dark"] .main-content .select2-container span:not(.select2-dropdown):not(.select2-dropdown *) {
    color: #f1f5f9 !important;
}
/* `:not(#_)` en estas dos y en las del bloque «SELECT2 EN OSCURO»: la regla de arriba
   lleva el elemento `span` y les ganaba por especificidad, así que el texto de ejemplo
   salía del mismo blanco que un valor elegido. */
[data-theme="dark"] .main-content .select2-container .select2-selection__clear:not(#_) {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .select2-container .select2-selection__placeholder:not(#_) {
    color: #94a3b8 !important;
}

/* Distintivo «NUEVO» de la franja del Radar: lleva texto azul marino sobre ÁMBAR por
   diseño, y la regla de los `<span>` se lo pisaba con el gris claro del panel (1,69
   medido en `/user/dashboard`). No entra por la exclusión de `-badge` porque se llama
   `__new`. */
[data-theme="dark"] .main-content .cg-radar-band__new { color: #0c1222 !important; }

/* 🚨 FONDOS `white` ESCRITOS LITERALES QUE NO SE VOLTEAN CON SU TOKEN.
   En `/user/clients` el botón secundario declara `background: white` a pelo y
   `color: var(--cl-slate-700)`. El token SÍ se voltea a claro en oscuro (bloque de
   arriba), el `white` no: quedaba texto claro sobre blanco, 1,23 medido —«Alta masiva»
   y «Importar CSV»—. Las tarjetas y los KPI de esa misma vista no sufren esto porque
   sus clases (`-card`, `-kpi`) sí están en la lista de fondos de este fichero. */
[data-theme="dark"] .main-content .cl-btn--secondary {
    background: var(--cl-slate-100, #151d2e) !important;
    border-color: var(--cl-border, #1e293b) !important;
}
[data-theme="dark"] .main-content .cl-search-input input:focus {
    background: var(--cl-slate-100, #151d2e) !important;
}

/* --- 9. LINKS --- */
/* 🚨 `__btn` TAMBIÉN, no solo `-btn`. La convención BEM del proyecto separa el elemento
   con DOBLE GUION BAJO, así que `[class*="-btn"]` no caza `cg-radar-band__btn`,
   `cg-confirm__btn` ni las otras 35 clases con esa grafía: se les aplicaba el azul de
   enlace por encima de su propio fondo. Medido en `/user/dashboard`: «Abrir Radar»
   quedaba en 1,15 —azul claro sobre el ámbar de su botón—. */
[data-theme="dark"] .main-content a:not([class*="-btn"]):not([class*="__btn"]):not([class*="-hero"] *):not([class*="nav-"]) {
    color: #93c5fd;
}
[data-theme="dark"] .main-content a:not([class*="-btn"]):not([class*="__btn"]):not([class*="-hero"] *):not([class*="nav-"]):hover {
    color: #bfdbfe;
}

/* --- 10. BORDERS: Universal light border override --- */
[data-theme="dark"] .main-content hr {
    border-color: #1e293b !important;
}

/* --- 11. PROGRESS BARS (keep their color, just darken track) --- */
[data-theme="dark"] .main-content [class*="-progress"]:not([class*="-fill"]) {
    background: #1e293b !important;
}

/* --- 12. BADGES: Keep semantic colors, darken background slightly --- */
[data-theme="dark"] .main-content .badge {
    border-color: transparent !important;
}

/* --- 13. DROPDOWNS --- */
[data-theme="dark"] .dropdown-menu {
    background: #151d2e !important;
    border-color: #1e293b !important;
}
[data-theme="dark"] .dropdown-item {
    color: #e2e8f0 !important;
}
[data-theme="dark"] .dropdown-item:hover {
    background: #1e293b !important;
}

/* --- 14. TOOLTIPS & POPOVERS --- */
[data-theme="dark"] .tooltip-inner {
    background: #0b1120 !important;
}
[data-theme="dark"] .popover {
    background: #151d2e !important;
    border-color: #1e293b !important;
}
[data-theme="dark"] .popover-body {
    color: #e2e8f0 !important;
}

/* --- 15. PAGINATION --- */
[data-theme="dark"] .page-link {
    background: #151d2e !important;
    border-color: #1e293b !important;
    color: #94a3b8 !important;
}
[data-theme="dark"] .page-item.active .page-link {
    background: #e8a838 !important;
    border-color: #e8a838 !important;
    color: #0c1222 !important;
}

/* --- 16. SCROLLBAR --- */
[data-theme="dark"] .main-content ::-webkit-scrollbar-track { background: #0b1120; }
[data-theme="dark"] .main-content ::-webkit-scrollbar-thumb { background: #334155; border-radius: 4px; }
[data-theme="dark"] .main-content ::-webkit-scrollbar-thumb:hover { background: #475569; }

/* ================================================================
   SANEAMIENTO DEL TEMA OSCURO — oct-2026
   Medido en Chrome vista a vista (contraste WCAG AA: 4,5 texto, 3 controles).
   Todo lo de aquí va bajo [data-theme="dark"]: el tema claro no cambia.
   ================================================================ */

/* ---------- A. ARMAZÓN DEL PANEL (afecta a todas las pantallas) ---------- */

/* Pantalla de carga: era BLANCA a toda pantalla en cada cambio de página, un fogonazo
   en mitad del tema oscuro. */
[data-theme="dark"] .cg-portal #global-loader {
    background: #0d1117 !important;
}

/* Botón de plegar el menú: `sidemenu.css` le pone fondo BLANCO fijo. Sobre la cabecera
   blanca del tema claro no se nota; en oscuro era un cuadrado blanco suelto. */
[data-theme="dark"] .app-sidebar__toggle .header-icon {
    background: transparent;
    color: #cbd5e1 !important;
}
[data-theme="dark"] .app-sidebar__toggle .header-icon:hover {
    background: #1e293b;
    color: #f1f5f9 !important;
}

/* Distintivos de recuento del menú: blanco sobre ámbar daba 1,9 y sobre el rojo 3,63. */
[data-theme="dark"] .cg-portal .badge-warning {
    color: #0c1222 !important;
}
[data-theme="dark"] .cg-portal .badge-danger {
    background-color: #dc2626 !important;
    color: #ffffff !important;
}

/* Tarjeta del plan, al pie del menú: la barra «47 / 500» y la flecha iban al 20 % de
   blanco (1,82). */
[data-theme="dark"] .cg-sidebar-plan-widget .cg-plan-usage {
    color: rgba(255, 255, 255, 0.72);
}
[data-theme="dark"] .cg-sidebar-plan-widget .cg-plan-sep,
[data-theme="dark"] .cg-sidebar-plan-widget .cg-plan-right {
    color: rgba(255, 255, 255, 0.6);
}

/* Botón flotante «Pantalla completa»: gris casi blanco fijo. */
[data-theme="dark"] .focus-fab-activate {
    background: #1e293b;
    color: #e2e8f0;
    border-color: #64748b;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.45);
}
[data-theme="dark"] .focus-fab-activate:hover {
    background: #334155;
}
[data-theme="dark"] .focus-fab-close,
[data-theme="dark"] .focus-fab-restore {
    background: #1e293b;
    color: #e2e8f0;
    border-color: #64748b;
}

/* Cabecera de página clásica (título + migas): en claro va sobre el fondo de la página,
   sin caja. La regla general de «-header» le ponía el gris de tarjeta y quedaba como una
   losa pegada al título, sin margen interior. */
[data-theme="dark"] .main-content .page-header:not(#_),
[data-theme="dark"] .main-content .page-leftheader:not(#_),
[data-theme="dark"] .main-content .page-rightheader:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .page-header .breadcrumb-item.active {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .page-header .breadcrumb-item + .breadcrumb-item::before {
    color: #64748b;
}

/* ---------- B. CAMPOS DE FORMULARIO (todas las pantallas) ---------- */

/* El texto de ejemplo heredaba `--text-muted`; sobre el fondo del campo quedaba en 3,0. */
[data-theme="dark"] .main-content input::placeholder,
[data-theme="dark"] .main-content textarea::placeholder {
    color: #94a3b8 !important;
    opacity: 1;
}

/* FOCO. La regla de los campos fija `border-color` con !important también cuando el
   campo tiene el foco, así que el contorno ámbar que cada pantalla define para ese
   estado no llegaba a pintarse: no se sabía en qué campo se estaba escribiendo. */
[data-theme="dark"] .main-content input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="submit"]):not([type="button"]):focus,
[data-theme="dark"] .main-content select:focus,
[data-theme="dark"] .main-content textarea:focus {
    border-color: #e8a838 !important;
    box-shadow: 0 0 0 3px rgba(232, 168, 56, 0.28) !important;
    outline: none;
}
/* Campo con error de validación: la regla de los campos y la del foco fijan el contorno
   con !important y tapaban el rojo (con el foco puesto salía ámbar). `:not(#_)` para
   ganarles. */
[data-theme="dark"] .main-content input.is-invalid:not(#_),
[data-theme="dark"] .main-content select.is-invalid:not(#_),
[data-theme="dark"] .main-content textarea.is-invalid:not(#_) {
    border-color: #f87171 !important;
}
[data-theme="dark"] .main-content input.is-invalid:focus:not(#_),
[data-theme="dark"] .main-content select.is-invalid:focus:not(#_),
[data-theme="dark"] .main-content textarea.is-invalid:focus:not(#_) {
    box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.25) !important;
}

/* Campo deshabilitado o de solo lectura: se distingue del editable sin dejar de leerse. */
[data-theme="dark"] .main-content input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="submit"]):not([type="button"]):disabled,
[data-theme="dark"] .main-content select:disabled,
[data-theme="dark"] .main-content textarea:disabled {
    background: #111827 !important;
    border-color: #334155 !important;
    color: #94a3b8 !important;
}

/* FLECHA DE LOS DESPLEGABLES. `copilot-ui.css` les quita la flecha nativa y dibuja la
   suya como imagen de fondo; la regla de los campos usa el atajo `background:` con
   !important, que borra esa imagen. Resultado: en oscuro NINGÚN desplegable del panel
   tenía flecha y no se distinguía de un campo de texto. Se repone, en claro. */
[data-theme="dark"] .main-content.main-content select.form-control:not([multiple]):not([size]) {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23cbd5e1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 14px !important;
}

/* Las opciones de un `<select>` nativo las pinta el sistema: sin esto salían en negro
   sobre el gris oscuro heredado en algunos navegadores. */
[data-theme="dark"] .main-content select option,
[data-theme="dark"] .main-content select optgroup {
    background: #151d2e;
    color: #f1f5f9;
}

/* Casillas y botones de opción: en oscuro el navegador los pinta claros salvo que se le
   diga que el esquema es oscuro. `accent-color` conserva el ámbar del producto. */
[data-theme="dark"] .main-content input[type="checkbox"],
[data-theme="dark"] .main-content input[type="radio"] {
    color-scheme: dark;
    accent-color: #e8a838;
}

/* ---------- C. SELECT2 EN OSCURO (las ~34 pantallas que lo usan) ---------- */
/* Su hoja es de terceros y dejaba la caja BLANCA en mitad de la tarjeta oscura. El
   desplegable se monta al final de <body>, fuera de .main-content: por eso estas reglas
   no llevan ese prefijo. */
[data-theme="dark"] .cg-portal .select2-container--default .select2-selection--single,
[data-theme="dark"] .cg-portal .select2-container--default .select2-selection--multiple {
    background-color: #1e293b !important;
    border-color: #64748b !important;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #f1f5f9 !important;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-selection--single .select2-selection__placeholder:not(#_),
[data-theme="dark"] .cg-portal .select2-container--default .select2-selection--multiple .select2-selection__placeholder:not(#_),
[data-theme="dark"] .cg-portal .select2-container--default .select2-search--inline .select2-search__field::placeholder {
    color: #94a3b8 !important;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #cbd5e1 transparent transparent transparent !important;
}
[data-theme="dark"] .cg-portal .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent #cbd5e1 transparent !important;
}
[data-theme="dark"] .cg-portal .select2-container--default.select2-container--focus .select2-selection--single,
[data-theme="dark"] .cg-portal .select2-container--default.select2-container--focus .select2-selection--multiple,
[data-theme="dark"] .cg-portal .select2-container--default.select2-container--open .select2-selection--single,
[data-theme="dark"] .cg-portal .select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: #e8a838 !important;
}
[data-theme="dark"] .cg-portal .select2-container--default.select2-container--disabled .select2-selection--single,
[data-theme="dark"] .cg-portal .select2-container--default.select2-container--disabled .select2-selection--multiple {
    background-color: #111827 !important;
    border-color: #334155 !important;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #334155 !important;
    border-color: #475569 !important;
    color: #f1f5f9 !important;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:not(#_) {
    color: #cbd5e1 !important;
    border-color: #475569 !important;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    background-color: #475569 !important;
    color: #ffffff !important;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-search--inline .select2-search__field {
    background: transparent !important;
    color: #f1f5f9 !important;
}
[data-theme="dark"] .cg-portal .select2-dropdown {
    background-color: #151d2e !important;
    border-color: #64748b !important;
    color: #e2e8f0;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-search--dropdown .select2-search__field {
    background-color: #0f172a !important;
    border-color: #64748b !important;
    color: #f1f5f9 !important;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: #e8a838 !important;
    outline: none;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-results__option {
    color: #e2e8f0;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-results__option--selected,
[data-theme="dark"] .cg-portal .select2-container--default .select2-results__option[aria-selected="true"] {
    background-color: #1e293b !important;
    color: #f1f5f9 !important;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable,
[data-theme="dark"] .cg-portal .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: #e8a838 !important;
    color: #0c1222 !important;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-results__option--disabled,
[data-theme="dark"] .cg-portal .select2-container--default .select2-results__option[aria-disabled="true"],
[data-theme="dark"] .cg-portal .select2-results__message {
    color: #94a3b8 !important;
}
[data-theme="dark"] .cg-portal .select2-container--default .select2-results__group {
    color: #94a3b8;
}

/* ---------- D. AWSELECT EN OSCURO (desplegable propio, ~80 pantallas) ---------- */
/* El complemento escribe sus colores EN LÍNEA desde JavaScript (`background:#e5e5e5`,
   `color:#000`, `fill:#000`): la flecha era negra sobre oscuro y la caja no tenía
   contorno. Solo se ganan con !important. El contorno va con sombra interior para no
   mover ni un píxel de la caja. */
[data-theme="dark"] .cg-portal .awselect > .bg {
    background: #151d2e !important;
}
[data-theme="dark"] .cg-portal .awselect .front_face > .bg {
    background: #1e293b !important;
    box-shadow: inset 0 0 0 1px #64748b;
}
[data-theme="dark"] .cg-portal .awselect .front_face .content,
[data-theme="dark"] .cg-portal .awselect .front_face .content span {
    color: #f1f5f9 !important;
}
[data-theme="dark"] .cg-portal .awselect .front_face .content .icon svg {
    fill: #cbd5e1 !important;
}
[data-theme="dark"] .cg-portal .awselect .back_face ul li a {
    color: #e2e8f0 !important;
    opacity: 1;
}
[data-theme="dark"] .cg-portal .awselect .back_face ul li a:hover {
    background: #334155;
}

/* ---------- 1. SUBIR FACTURA — /user/documents/create ---------- */
/* 🚨 Los tokens `--du-*` se declaran en `.doc-upload`, no en `:root`: el volteo general
   de más arriba (que vive en `<html>`) queda por encima en el árbol y lo pisa la
   declaración del propio contenedor. Por eso la franja tenía borde claro, la barra de
   acciones seguía BLANCA y los separadores de la lista eran rayas casi blancas. Hay que
   voltearlos EN el contenedor. `--du-navy` no se voltea: hace de fondo (franja, botones)
   además de texto, y el texto ya lo aclaran las reglas de títulos de este fichero. */
[data-theme="dark"] .doc-upload {
    --du-surface: #151d2e;
    --du-surface-alt: #111827;
    --du-border: #263349;
    --du-slate: #94a3b8;
    --du-slate-light: #94a3b8;
    --du-green: #34d399;
    --du-green-bg: rgba(16, 185, 129, 0.16);
    --du-red: #f87171;
    --du-red-bg: rgba(239, 68, 68, 0.16);
    --du-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
    --du-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* Franja de cabecera: la barra de migas se quedaba transparente (la sección de franjas
   le quita el fondo) y el enlace «Documentos» en 3,98. */
[data-theme="dark"] .main-content .doc-upload .du-hero {
    border-color: #263349;
}
[data-theme="dark"] .main-content .doc-upload .du-hero .du-hero-breadcrumb {
    background: #111827 !important;
    border-top-color: #263349;
}
[data-theme="dark"] .main-content .doc-upload .du-hero-breadcrumb a {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .doc-upload .du-hero-breadcrumb a:hover {
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .doc-upload .du-hero-breadcrumb .du-bc-sep {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-upload .du-hero-breadcrumb .du-bc-current {
    color: #f1f5f9 !important;
}

/* Zona de arrastre: el borde discontinuo era azul marino sobre azul marino (1,15) y no
   se veía dónde soltar el fichero. */
[data-theme="dark"] .main-content .doc-upload .du-dropzone {
    border-color: #64748b !important;
}
[data-theme="dark"] .main-content .doc-upload .du-dropzone:hover,
[data-theme="dark"] .main-content .doc-upload .du-dropzone.dragover {
    border-color: #e8a838 !important;
    background: #1b2233 !important;
}
[data-theme="dark"] .main-content .doc-upload .du-dropzone .du-dropzone-title,
[data-theme="dark"] .main-content .doc-upload .du-dropzone .du-dropzone-subtitle,
[data-theme="dark"] .main-content .doc-upload .du-dropzone #dropzoneContent {
    background: transparent !important;
}
[data-theme="dark"] .main-content .doc-upload .du-dropzone .du-dropzone-subtitle {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-upload .du-dropzone .du-dropzone-icon {
    background: #1e293b !important;
    border: 1px solid #334155;
    color: #e8a838 !important;
}
[data-theme="dark"] .main-content .doc-upload .du-dropzone .du-dropzone-meta {
    background: #0f172a !important;
    border-color: #334155 !important;
    color: #cbd5e1 !important;
}

/* Iconos de cabecera de tarjeta y vistos de la lista: el icono heredaba el gris claro
   del panel sobre un círculo verde claro (1,17). */
[data-theme="dark"] .main-content .doc-upload .du-card-header-icon.is-navy {
    background: #1e293b !important;
    color: #e2e8f0 !important;
}
[data-theme="dark"] .main-content .doc-upload .du-card-header-icon.is-amber {
    background: rgba(232, 168, 56, 0.16) !important;
    color: #e8a838 !important;
}
[data-theme="dark"] .main-content .doc-upload .du-card-header-icon.is-green,
[data-theme="dark"] .main-content .doc-upload .du-info-list li .du-check-icon {
    background: rgba(16, 185, 129, 0.16) !important;
    color: #34d399 !important;
}
[data-theme="dark"] .main-content .doc-upload .du-info-list li {
    color: #cbd5e1;
}

/* Vista previa del fichero elegido */
[data-theme="dark"] .main-content .doc-upload .du-file-size {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-upload .du-btn-preview {
    color: #93c5fd;
    background: rgba(59, 130, 246, 0.16);
    border-color: rgba(147, 197, 253, 0.4);
}
[data-theme="dark"] .main-content .doc-upload .du-btn-preview:hover {
    color: #ffffff;
    background: #2563eb;
    border-color: #2563eb;
}
[data-theme="dark"] .main-content .doc-upload .du-btn-remove {
    border-color: rgba(248, 113, 113, 0.4);
}
[data-theme="dark"] .main-content .doc-upload .du-btn-remove:hover {
    background: #dc2626;
    color: #ffffff;
    border-color: #dc2626;
}

/* Tarjeta de progreso: el recuadro crema del «mientras tanto» */
[data-theme="dark"] .main-content .doc-upload .du-progress-insight {
    background: #1b2233 !important;
    border-color: #334155 !important;
}
/* La regla general de «-progress» pinta de gris TODO lo que lleve esa subcadena, no
   solo el carril: los rótulos y el porcentaje salían como franjas. Solo el carril
   (`.du-progress-track`) conserva el fondo. */
[data-theme="dark"] .main-content .doc-upload .du-progress-info,
[data-theme="dark"] .main-content .doc-upload .du-progress-status,
[data-theme="dark"] .main-content .doc-upload .du-progress-percent,
[data-theme="dark"] .main-content .doc-upload .du-progress-insight-meta,
[data-theme="dark"] .main-content .doc-upload .du-progress-insight-label,
[data-theme="dark"] .main-content .doc-upload .du-progress-insight-counter,
[data-theme="dark"] .main-content .doc-upload .du-progress-insight-body {
    background: transparent !important;
}
[data-theme="dark"] .main-content .doc-upload .du-progress-insight-body {
    color: #e2e8f0 !important;
}
[data-theme="dark"] .main-content .doc-upload .du-progress-insight-counter,
[data-theme="dark"] .main-content .doc-upload .du-progress-status {
    color: #94a3b8 !important;
}

/* Barra de acciones: Cancelar y el botón principal deshabilitado. Con `opacity: .45`
   el ámbar se mezclaba con el fondo y el texto quedaba en 1,12. */
[data-theme="dark"] .main-content .doc-upload .du-action-bar {
    border: 1px solid #263349;
}
[data-theme="dark"] .main-content .doc-upload .du-btn-cancel {
    color: #cbd5e1;
    background: #1e293b;
    border-color: #64748b;
}
[data-theme="dark"] .main-content .doc-upload .du-btn-cancel:hover {
    color: #f1f5f9;
    background: #334155;
    border-color: #94a3b8;
}
[data-theme="dark"] .main-content .doc-upload .du-btn-submit:disabled {
    opacity: 1;
    background: #263349;
    color: #94a3b8;
}

/* Botones azul marino con texto del color de la superficie: al voltear la superficie
   quedaban oscuro sobre oscuro. En oscuro pasan a ser el botón ámbar del producto. */
[data-theme="dark"] .main-content .doc-upload .du-alert-duplicate .du-btn-see-doc,
[data-theme="dark"] .main-content .doc-upload .du-no-clients__btn {
    background: #e8a838;
    color: #0c1222;
}
[data-theme="dark"] .main-content .doc-upload .du-alert-duplicate .du-btn-see-doc:hover,
[data-theme="dark"] .main-content .doc-upload .du-no-clients__btn:hover,
[data-theme="dark"] .main-content .doc-upload .du-no-clients__btn:focus {
    background: #f0b952;
    color: #0c1222;
}
[data-theme="dark"] .main-content .doc-upload .du-no-clients {
    background: rgba(232, 168, 56, 0.12) !important;
    border-color: rgba(232, 168, 56, 0.55) !important;
}
[data-theme="dark"] .main-content .doc-upload .du-no-clients__body,
[data-theme="dark"] .main-content .doc-upload .du-no-clients__text {
    background: transparent !important;
    color: #cbd5e1;
}

/* Diálogo de error de las subidas (`humanized-error-modal.css`): era blanco entero. */
[data-theme="dark"] .cg-portal .hem-dialog {
    background: #151d2e;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.6);
}
[data-theme="dark"] .cg-portal .hem-message {
    color: #e2e8f0;
}
[data-theme="dark"] .cg-portal .hem-suggestion {
    background: #111827;
    border-left-color: #60a5fa;
}
[data-theme="dark"] .cg-portal .hem-dialog .hem-suggestion h6 {
    color: #93c5fd;
}
[data-theme="dark"] .cg-portal .hem-dialog .hem-suggestion p {
    color: #94a3b8;
}
[data-theme="dark"] .cg-portal .hem-footer {
    background: #111827;
}

/* ---------- 2. SUBIDA MASIVA — /user/documents/create-batch ---------- */
/* Misma causa que la pantalla anterior: los tokens `--db-*` viven en `.doc-batch`. Se
   voltea la escala de grises entera (50→800) porque la vista la usa a la vez como fondo
   (50, 100) y como texto (700, 800). */
[data-theme="dark"] .doc-batch {
    --db-surface: #151d2e;
    --db-border: #263349;
    --db-slate: #94a3b8;
    --db-slate-light: #94a3b8;
    --db-slate-50: #111827;
    --db-slate-100: #1e293b;
    --db-slate-200: #334155;
    --db-slate-300: #64748b;
    --db-slate-700: #e2e8f0;
    --db-slate-800: #f1f5f9;
    --db-green: #34d399;
    --db-green-bg: rgba(16, 185, 129, 0.16);
    --db-green-border: rgba(52, 211, 153, 0.4);
    --db-red: #f87171;
    --db-red-bg: rgba(239, 68, 68, 0.16);
    --db-red-border: rgba(248, 113, 113, 0.4);
    --db-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    --db-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.4);
    --db-shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.5);
}
[data-theme="dark"] .main-content .doc-batch .db-hero {
    border-color: #263349;
}

/* Iconos de cabecera de tarjeta: recuperan su color de familia */
[data-theme="dark"] .main-content .doc-batch .db-card-header-icon.icon-upload,
[data-theme="dark"] .main-content .doc-batch .db-card-header-icon.icon-info {
    background: rgba(129, 140, 248, 0.18) !important;
    color: #a5b4fc !important;
}
[data-theme="dark"] .main-content .doc-batch .db-card-header-icon.icon-processing,
[data-theme="dark"] .main-content .doc-batch .db-card-header-icon.icon-summary-warning {
    background: rgba(232, 168, 56, 0.16) !important;
    color: #fbbf24 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-card-header-icon.icon-summary,
[data-theme="dark"] .main-content .doc-batch .db-info-check {
    background: rgba(16, 185, 129, 0.16) !important;
    color: #34d399 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-card-header-icon.icon-summary-danger {
    background: rgba(239, 68, 68, 0.16) !important;
    color: #f87171 !important;
}

/* Zona de arrastre */
[data-theme="dark"] .main-content .doc-batch .db-dropzone {
    border-color: #64748b !important;
}
[data-theme="dark"] .main-content .doc-batch .db-dropzone:hover,
[data-theme="dark"] .main-content .doc-batch .db-dropzone.dragover {
    border-color: #e8a838 !important;
    background: #1b2233 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-dropzone .db-dropzone-title,
[data-theme="dark"] .main-content .doc-batch .db-dropzone .db-dropzone-desc,
[data-theme="dark"] .main-content .doc-batch .db-dropzone .db-dropzone-tip {
    background: transparent !important;
}
[data-theme="dark"] .main-content .doc-batch .db-dropzone .db-dropzone-desc {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-dropzone .db-dropzone-tip {
    color: #a5b4fc !important;
}
[data-theme="dark"] .main-content .doc-batch .db-dropzone .db-dropzone-icon {
    background: #1e293b !important;
    border: 1px solid #334155;
    color: #e8a838 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-dropzone .db-dropzone-specs {
    background: #0f172a !important;
    border-color: #334155 !important;
    color: #cbd5e1 !important;
}

/* Lista de ficheros elegidos */
[data-theme="dark"] .main-content .doc-batch .db-files-count {
    background: #334155;
    color: #f1f5f9 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-file-item {
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-file-item .db-file-item-left,
[data-theme="dark"] .main-content .doc-batch .db-file-item .db-file-info,
[data-theme="dark"] .main-content .doc-batch .db-file-item .db-file-name,
[data-theme="dark"] .main-content .doc-batch .db-file-item .db-file-size {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .doc-batch .db-file-item .db-file-icon {
    background: rgba(239, 68, 68, 0.16) !important;
    border-color: transparent !important;
    color: #f87171 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-file-item .db-file-size,
[data-theme="dark"] .main-content .doc-batch .db-selected-label,
[data-theme="dark"] .main-content .doc-batch .db-select-all-label {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-file-remove-btn,
[data-theme="dark"] .main-content .doc-batch .cg-fpv-btn {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .doc-batch .db-file-remove-btn:hover {
    background: rgba(239, 68, 68, 0.2);
    border-color: #f87171;
    color: #fca5a5;
}
[data-theme="dark"] .main-content .doc-batch .cg-fpv-btn:hover {
    background: #334155;
    color: #f1f5f9;
}

/* Distintivos de estado: los tonos del tema claro (texto muy oscuro sobre pastel) */
[data-theme="dark"] .main-content .doc-batch .db-status-badge.status-pending {
    background: #1e293b;
    color: #cbd5e1;
    border-color: #475569 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-status-badge.status-processing,
[data-theme="dark"] .main-content .doc-batch .db-status-badge.status-duplicate,
[data-theme="dark"] .main-content .doc-batch .db-summary-file-conf.cf-yellow {
    background: rgba(245, 158, 11, 0.16);
    color: #fcd34d !important;
    border-color: rgba(252, 211, 77, 0.4) !important;
}
[data-theme="dark"] .main-content .doc-batch .db-status-badge.status-success,
[data-theme="dark"] .main-content .doc-batch .db-summary-file-conf.cf-green,
[data-theme="dark"] .main-content .doc-batch .db-summary-file-status.sf-ok {
    background: rgba(16, 185, 129, 0.16);
    color: #6ee7b7 !important;
    border-color: rgba(52, 211, 153, 0.4) !important;
}
[data-theme="dark"] .main-content .doc-batch .db-status-badge.status-error,
[data-theme="dark"] .main-content .doc-batch .db-summary-file-conf.cf-red,
[data-theme="dark"] .main-content .doc-batch .db-summary-file-status.sf-fail {
    background: rgba(239, 68, 68, 0.16);
    color: #fca5a5 !important;
    border-color: rgba(248, 113, 113, 0.4) !important;
}
[data-theme="dark"] .main-content .doc-batch .db-summary-file-status.sf-warn {
    background: rgba(245, 158, 11, 0.16);
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .doc-batch .db-status-badge.status-info {
    background: rgba(56, 189, 248, 0.16);
    color: #7dd3fc !important;
    border-color: rgba(125, 211, 252, 0.4) !important;
}
[data-theme="dark"] .main-content .doc-batch .db-summary-file-conf.cf-gray,
[data-theme="dark"] .main-content .doc-batch .db-summary-file-view {
    background: #1e293b;
    color: #cbd5e1 !important;
    border-color: #475569 !important;
}
[data-theme="dark"] .main-content .doc-batch a.db-summary-file-view:hover {
    background: rgba(245, 158, 11, 0.16);
    color: #fcd34d !important;
    border-color: rgba(252, 211, 77, 0.4) !important;
}
[data-theme="dark"] .main-content .doc-batch .db-summary-file-icon .sfi--receipt { color: #fbbf24; }
[data-theme="dark"] .main-content .doc-batch .db-summary-file-icon .sfi--other,
[data-theme="dark"] .main-content .doc-batch .db-summary-file-icon .sfi--duplicate { color: #7dd3fc; }

/* Progreso: solo los carriles llevan fondo; los rótulos no */
[data-theme="dark"] .main-content .doc-batch .db-progress-overall-label,
[data-theme="dark"] .main-content .doc-batch .db-file-progress,
[data-theme="dark"] .main-content .doc-batch .db-file-progress-name,
[data-theme="dark"] .main-content .doc-batch .db-file-progress-status {
    background: transparent !important;
}
[data-theme="dark"] .main-content .doc-batch .db-file-progress {
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-file-progress-status,
[data-theme="dark"] .main-content .doc-batch .db-progress-overall-label span:first-child {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-progress-track,
[data-theme="dark"] .main-content .doc-batch .db-file-progress-track {
    background: #263349 !important;
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-progress-text {
    background: transparent !important;
    color: #ffffff !important;
}

/* Resumen: las cuatro cifras recuperan su color de estado (la regla general de
   «-card» las dejaba todas iguales y con cifras verde/rojo oscuro sobre oscuro). */
[data-theme="dark"] .main-content .doc-batch .db-stat-card {
    background: #111827 !important;
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-stat-card .db-stat-number {
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .doc-batch .db-stat-card .db-stat-label {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-stat-card.stat-success {
    background: rgba(16, 185, 129, 0.14) !important;
    border-color: rgba(52, 211, 153, 0.4) !important;
}
[data-theme="dark"] .main-content .doc-batch .db-stat-card.stat-success .db-stat-number,
[data-theme="dark"] .main-content .doc-batch .db-stat-card.stat-success .db-stat-label {
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-stat-card.stat-error {
    background: rgba(239, 68, 68, 0.14) !important;
    border-color: rgba(248, 113, 113, 0.4) !important;
}
[data-theme="dark"] .main-content .doc-batch .db-stat-card.stat-error .db-stat-number,
[data-theme="dark"] .main-content .doc-batch .db-stat-card.stat-error .db-stat-label {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-stat-card.stat-duplicate {
    background: rgba(245, 158, 11, 0.14) !important;
    border-color: rgba(252, 211, 77, 0.4) !important;
}
[data-theme="dark"] .main-content .doc-batch .db-stat-card.stat-duplicate .db-stat-number,
[data-theme="dark"] .main-content .doc-batch .db-stat-card.stat-duplicate .db-stat-label {
    color: #fcd34d !important;
}
/* «Sin casos»: atenuado, pero legible (con opacity .45 la cifra bajaba de 3:1). */
[data-theme="dark"] .main-content .doc-batch .db-stat-card.stat-muted {
    opacity: 0.7;
}
[data-theme="dark"] .main-content .doc-batch .db-summary-files {
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-summary-files-header {
    background: #111827 !important;
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-summary-file-row {
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-summary-file-row:hover {
    background: #1b2233 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-summary-file-row .db-summary-file-icon,
[data-theme="dark"] .main-content .doc-batch .db-summary-file-row .db-summary-file-name {
    background: transparent !important;
}
[data-theme="dark"] .main-content .doc-batch .db-summary-file-view.dv-disabled {
    opacity: 0.55;
}
[data-theme="dark"] .main-content .doc-batch .db-summary-file-note {
    color: #aab4c5;
}
[data-theme="dark"] .main-content .doc-batch .db-summary-file-note a {
    color: #fbbf24;
}
[data-theme="dark"] .main-content .doc-batch .db-receipts-cta {
    background: rgba(245, 158, 11, 0.12);
    border-color: rgba(252, 211, 77, 0.45);
    color: #fde68a;
}
[data-theme="dark"] .main-content .doc-batch .db-receipts-cta > .fa {
    color: #fbbf24;
}
[data-theme="dark"] .main-content .doc-batch .db-receipts-cta .db-receipts-cta-text,
[data-theme="dark"] .main-content .doc-batch .db-receipts-cta .db-receipts-cta-text strong {
    color: #fde68a !important;
}

/* «Ya estaba registrada» (copilot-ui.css) */
[data-theme="dark"] .main-content .db-yareg {
    background: rgba(245, 158, 11, 0.1);
    border-color: rgba(252, 211, 77, 0.4);
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .db-yareg .db-yareg-texto,
[data-theme="dark"] .main-content .db-yareg .db-yareg-acciones {
    background: transparent !important;
}
[data-theme="dark"] .main-content .db-yareg .fa {
    color: #fbbf24;
}
[data-theme="dark"] .main-content .db-yareg-btn {
    background: #1e293b;
    border-color: #64748b;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .db-yareg-btn:hover {
    background: #334155;
}
[data-theme="dark"] .main-content .db-yareg-btn.db-yareg-btn--peligro {
    border-color: #f87171;
    color: #fca5a5;
}

/* Botones. El principal era un degradado azul marino: sobre la tarjeta oscura no se
   distinguía de ella. En oscuro es el ámbar del producto. */
[data-theme="dark"] .main-content .doc-batch .db-btn-primary {
    background: #e8a838;
    color: #0c1222;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}
[data-theme="dark"] .main-content .doc-batch .db-btn-primary:hover {
    background: #f0b952;
    color: #0c1222;
}
[data-theme="dark"] .main-content .doc-batch .db-btn-primary .db-btn-amber-dot {
    background: #0c1222 !important;
}
[data-theme="dark"] .main-content .doc-batch .db-btn-primary:disabled {
    opacity: 1;
    background: #263349;
    color: #94a3b8;
    box-shadow: none;
}
[data-theme="dark"] .main-content .doc-batch .db-btn-primary:disabled .db-btn-amber-dot {
    background: #64748b !important;
}
[data-theme="dark"] .main-content .doc-batch .db-btn-secondary,
[data-theme="dark"] .main-content .doc-batch .db-btn-cancel {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .doc-batch .db-btn-secondary:hover,
[data-theme="dark"] .main-content .doc-batch .db-btn-cancel:hover {
    background: #334155;
    border-color: #94a3b8;
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .doc-batch .db-btn-clear {
    border-color: rgba(248, 113, 113, 0.5);
    color: #fca5a5;
}
[data-theme="dark"] .main-content .doc-batch .db-info-list li {
    border-bottom-color: #263349;
}

/* Visor previo de un fichero (cg-file-preview.css) */
[data-theme="dark"] .cg-portal .cg-fpv__box {
    background: #151d2e;
    border-color: #334155;
}
[data-theme="dark"] .cg-portal .cg-fpv__bar {
    background: #111827;
    border-color: #334155;
}
[data-theme="dark"] .cg-portal .cg-fpv__name { color: #f1f5f9; }
[data-theme="dark"] .cg-portal .cg-fpv__size,
[data-theme="dark"] .cg-portal .cg-fpv__msg { color: #94a3b8; }
[data-theme="dark"] .cg-portal .cg-fpv__close { color: #cbd5e1; background: #1e293b; border-color: #64748b; }
[data-theme="dark"] .cg-portal .cg-fpv__close:hover { background: #334155; color: #ffffff; border-color: #94a3b8; }
[data-theme="dark"] .cg-portal .cg-fpv-btn { background: #1e293b; border-color: #64748b; color: #cbd5e1; }
[data-theme="dark"] .cg-portal .cg-fpv-btn:hover { background: #334155; border-color: #94a3b8; color: #f1f5f9; }
[data-theme="dark"] .cg-portal .cg-fpv__body { background: #0b1120; }

/* ---------- 3. IMPORTAR FACTURAS — /user/documents/import ---------- */
/* Tokens `--dm-*` declarados en `.doc-import`. Aquí `--dm-navy` SÍ se voltea: en esta
   vista solo hace de color de texto (títulos, celdas, botones de contorno), y sin
   voltearlo los botones «Libro de IVA de ContaSol», «Plantilla CSV»… eran azul marino
   sobre azul marino (1,11). El único sitio donde hace falta oscuro es el texto del botón
   ámbar, que se fija abajo. */
[data-theme="dark"] .doc-import {
    --dm-navy: #f1f5f9;
    --dm-navy-light: #64748b;
    --dm-amber-hover: #f0b952;
    --dm-amber-soft: rgba(232, 168, 56, 0.14);
    --dm-slate: #94a3b8;
    --dm-slate-light: #94a3b8;
    --dm-green: #34d399;
    --dm-green-soft: rgba(16, 185, 129, 0.12);
    --dm-green-badge: rgba(16, 185, 129, 0.2);
    --dm-red: #f87171;
    --dm-red-soft: rgba(239, 68, 68, 0.12);
    --dm-red-badge: rgba(239, 68, 68, 0.22);
    --dm-surface: #151d2e;
    --dm-surface-raised: #111827;
    --dm-border: #334155;
    --dm-border-light: #263349;
    --dm-warning-soft: rgba(245, 158, 11, 0.12);
    --dm-info-bg: rgba(148, 163, 184, 0.1);
    --dm-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    --dm-shadow-lg: 0 4px 24px rgba(0, 0, 0, 0.5);
}

/* Pasos 1·2·3: el número heredaba el gris claro del panel sobre su círculo (1,69 el
   activo, 1,13 los inactivos, que además eran círculos casi blancos). */
[data-theme="dark"] .main-content .doc-import .di-step {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-import .di-step > span {
    color: inherit !important;
}
[data-theme="dark"] .main-content .doc-import .di-step.active {
    color: #e8a838 !important;
}
[data-theme="dark"] .main-content .doc-import .di-step.completed {
    color: #34d399 !important;
}
[data-theme="dark"] .main-content .doc-import .di-step .di-step-number {
    background: #1e293b;
    border-color: #475569;
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .doc-import .di-step .di-step-number span,
[data-theme="dark"] .main-content .doc-import .di-step .di-step-number i {
    color: inherit !important;
}
[data-theme="dark"] .main-content .doc-import .di-step.active .di-step-number {
    background: #e8a838;
    border-color: #e8a838;
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .doc-import .di-step.completed .di-step-number {
    background: #34d399;
    border-color: #34d399;
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .doc-import .di-step-connector {
    background: #475569;
}
[data-theme="dark"] .main-content .doc-import .di-step-connector.done {
    background: #34d399;
}

/* Botones */
[data-theme="dark"] .main-content .doc-import .di-btn-primary,
[data-theme="dark"] .main-content .doc-import .di-btn-primary:hover:not(:disabled),
[data-theme="dark"] .main-content .doc-import .di-btn-primary span,
[data-theme="dark"] .main-content .doc-import .di-btn-primary i {
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .doc-import .di-btn-primary:disabled {
    opacity: 1;
    background: #263349;
}
[data-theme="dark"] .main-content .doc-import .di-btn-primary:disabled,
[data-theme="dark"] .main-content .doc-import .di-btn-primary:disabled span,
[data-theme="dark"] .main-content .doc-import .di-btn-primary:disabled i {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-import .di-btn-outline {
    border-color: #64748b;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .doc-import .di-btn-outline:hover {
    border-color: #e8a838;
    color: #e8a838;
}
[data-theme="dark"] .main-content .doc-import .di-btn-ghost {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .doc-import .di-btn-ghost:hover {
    color: #f1f5f9;
    background: #1e293b;
}

/* Zona de arrastre */
[data-theme="dark"] .main-content .doc-import .di-dropzone {
    border-color: #64748b !important;
}
[data-theme="dark"] .main-content .doc-import .di-dropzone:hover,
[data-theme="dark"] .main-content .doc-import .di-dropzone.dragover {
    border-color: #e8a838 !important;
    background: #1b2233 !important;
}
[data-theme="dark"] .main-content .doc-import .di-dropzone.has-file {
    border-color: #34d399 !important;
    background: rgba(16, 185, 129, 0.08) !important;
}
[data-theme="dark"] .main-content .doc-import .di-dropzone .di-dropzone-icon,
[data-theme="dark"] .main-content .doc-import .di-dropzone .di-dropzone-title,
[data-theme="dark"] .main-content .doc-import .di-dropzone .di-dropzone-sub,
[data-theme="dark"] .main-content .doc-import .di-dropzone .di-dropzone-format,
[data-theme="dark"] .main-content .doc-import .di-dropzone .di-dropzone-change,
[data-theme="dark"] .main-content .doc-import .di-dropzone-format,
[data-theme="dark"] .main-content .doc-import .di-dropzone-change {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .doc-import .di-dropzone .di-dropzone-icon {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .doc-import .di-dropzone:hover .di-dropzone-icon {
    color: #e8a838;
}
[data-theme="dark"] .main-content .doc-import .di-dropzone.has-file .di-dropzone-icon,
[data-theme="dark"] .main-content .doc-import .di-dropzone.has-file .di-dropzone-title {
    color: #34d399 !important;
}
[data-theme="dark"] .main-content .doc-import .di-dropzone-sub,
[data-theme="dark"] .main-content .doc-import .di-dropzone-format {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-import .di-dropzone-change {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .doc-import .di-dropzone-change:hover {
    color: #ffffff !important;
}

/* Nombres de columna y de fichero: `<code>` heredaba azul marino sobre gris oscuro
   (1,32) o gris sobre el mismo gris (1,00: no se leía ningún nombre de fichero). */
[data-theme="dark"] .main-content .doc-import code {
    background: #1e293b;
    color: #fcd34d;
    border: 1px solid #334155;
}
[data-theme="dark"] .main-content .doc-import .di-hist-fichero {
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .doc-import .di-hist-icono {
    color: #a5b4fc;
}
[data-theme="dark"] .main-content .doc-import .di-col-list li {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .doc-import .di-info-tip {
    border-color: #334155;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .doc-import .di-info-tip span {
    color: #cbd5e1 !important;
}

/* Textos que estaban escritos en línea en la vista */
[data-theme="dark"] .main-content .doc-import .di-texto-error,
[data-theme="dark"] .main-content .doc-import .di-aviso-cliente,
[data-theme="dark"] .main-content .doc-import .di-aviso-cliente span {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .doc-import .di-resumen-texto {
    color: #e2e8f0 !important;
}
[data-theme="dark"] .main-content .doc-import .di-texto-origen,
[data-theme="dark"] .main-content .doc-import .di-nota-columnas {
    color: #94a3b8 !important;
}
/* 🚨 `:not(#_)` — la regla general de «-alert» pesa (0,7,0) por sus cuatro `:not()` y
   lleva !important: ninguna cadena razonable de clases la supera. El `:not(#_)` suma
   peso de identificador sin depender de ningún id real. Sin él, los avisos ámbar y rojo
   de esta vista salían del mismo gris que la tarjeta y dejaban de parecer avisos. */
[data-theme="dark"] .main-content .doc-import .di-alert-warning:not(#_),
[data-theme="dark"] .main-content .doc-import .di-aviso-sin-nif {
    background: rgba(245, 158, 11, 0.12) !important;
    border-color: rgba(252, 211, 77, 0.45) !important;
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .doc-import .di-alert-warning div {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .doc-import .di-distribution {
    background: rgba(16, 185, 129, 0.1);
    border-color: rgba(52, 211, 153, 0.45);
}
[data-theme="dark"] .main-content .doc-import .di-distribution__titulo,
[data-theme="dark"] .main-content .doc-import .di-distribution__cab,
[data-theme="dark"] .main-content .doc-import .di-distribution thead th {
    background: transparent !important;
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .doc-import .di-distribution__fila {
    border-top-color: rgba(52, 211, 153, 0.25);
}
[data-theme="dark"] .main-content .doc-import .di-distribution__huerfanas,
[data-theme="dark"] .main-content .doc-import .di-distribution__huerfanas span {
    color: #fcd34d !important;
}

/* Avisos de error del asistente y distintivos */
[data-theme="dark"] .main-content .doc-import .di-alert-error:not(#_),
[data-theme="dark"] .main-content .doc-upload .du-alert-danger:not(#_) {
    background: rgba(239, 68, 68, 0.12) !important;
    border-color: rgba(248, 113, 113, 0.4) !important;
}
[data-theme="dark"] .main-content .doc-import .di-alert-error i,
[data-theme="dark"] .main-content .doc-import .di-alert-error strong {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .doc-import .di-badge-green,
[data-theme="dark"] .main-content .doc-import .mapping-ok,
[data-theme="dark"] .main-content .doc-import .di-validation-ok,
[data-theme="dark"] .main-content .doc-import .di-cuadre-ok {
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .doc-import .di-badge-red,
[data-theme="dark"] .main-content .doc-import .mapping-missing,
[data-theme="dark"] .main-content .doc-import .di-validation-err {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .doc-import .di-badge-amber,
[data-theme="dark"] .main-content .doc-import .di-cuadre-ko {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .doc-import .mapping-optional {
    background: #1e293b;
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .doc-import .di-mapping-bar,
[data-theme="dark"] .main-content .doc-import .di-card-footer {
    background: #111827 !important;
}
[data-theme="dark"] .main-content .doc-import .di-mapping-label {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-import .di-mapping-tags,
[data-theme="dark"] .main-content .doc-import .di-header-badges {
    background: transparent !important;
}

/* Tablas: previsualización e historial. Los colores del historial estaban fijos en
   la vista (#1e293b de texto: 1,15 sobre la tarjeta, las fechas no se veían). */
[data-theme="dark"] .main-content .doc-import .di-preview-table tbody td,
[data-theme="dark"] .main-content .doc-import .di-history-table tbody td {
    color: #e2e8f0;
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .doc-import .di-history-table thead th,
[data-theme="dark"] .main-content .doc-import .di-preview-table thead th {
    background: #111827 !important;
    color: #94a3b8 !important;
    border-bottom-color: #334155 !important;
}
[data-theme="dark"] .main-content .doc-import .di-history-table tbody tr:hover {
    background: #1b2233 !important;
}
[data-theme="dark"] .main-content .doc-import .di-preview-table .row-valid {
    background: rgba(16, 185, 129, 0.08) !important;
}
[data-theme="dark"] .main-content .doc-import .di-preview-table .row-invalid {
    background: rgba(239, 68, 68, 0.12) !important;
}
[data-theme="dark"] .main-content .doc-import .di-preview-table .row-warning {
    background: rgba(245, 158, 11, 0.1) !important;
}
[data-theme="dark"] .main-content .doc-import .di-preview-table .di-row-num,
[data-theme="dark"] .main-content .doc-import .di-preview-table .di-cell-sub {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .doc-import .di-sheet-card {
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .doc-import .di-sheet-head {
    background: #111827 !important;
}
[data-theme="dark"] .main-content .doc-import .di-sheet-count,
[data-theme="dark"] .main-content .doc-import .di-sheet-hint,
[data-theme="dark"] .main-content .doc-import .di-importing-sub {
    color: #94a3b8 !important;
}
/* Listas y cuerpos DENTRO de un aviso: la regla general de «-list»/«-body» les ponía
   el gris de tarjeta y quedaban como parches oscuros sobre el ámbar o el rojo. */
[data-theme="dark"] .main-content .doc-import .di-col-list,
[data-theme="dark"] .main-content .doc-import .di-col-list li,
[data-theme="dark"] .main-content .doc-import .di-tpv-body,
[data-theme="dark"] .main-content .doc-import .di-asumir-descuadres,
[data-theme="dark"] .main-content .doc-import .di-sheet-body,
[data-theme="dark"] .main-content .doc-import .di-sheet-controls {
    background: transparent !important;
}
[data-theme="dark"] .main-content .doc-import .di-cuadre-ko:not(#_) {
    background: rgba(245, 158, 11, 0.12) !important;
}
[data-theme="dark"] .main-content .doc-import .di-cuadre-ok:not(#_) {
    background: rgba(16, 185, 129, 0.12) !important;
}
[data-theme="dark"] .main-content .doc-import .di-asumir-descuadres {
    border-top-color: rgba(252, 211, 77, 0.35) !important;
}
[data-theme="dark"] .main-content .doc-import .di-sheet-card.di-sheet-off {
    opacity: 0.85;
}
[data-theme="dark"] .main-content .doc-import .di-spinner {
    border-color: #334155;
    border-top-color: #e8a838;
}

/* ---------- 4. SUBIR RECIBOS — /user/additional-expenses/upload ---------- */
/* La vista escribe sus colores literales (sin tokens): la nota final era un recuadro
   azul muy claro con texto gris claro (1,13) y «Cancelar» un botón blanco. */
[data-theme="dark"] .main-content .ru-wrap .ru-back {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ru-wrap .ru-back:hover {
    color: #f1f5f9 !important;
}
[data-theme="dark"] .main-content .ru-wrap .ru-card {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ru-wrap .ru-field label {
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ru-wrap .ru-field .ru-optional {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ru-wrap .ru-dropzone {
    border-color: #64748b !important;
}
[data-theme="dark"] .main-content .ru-wrap .ru-dropzone:hover,
[data-theme="dark"] .main-content .ru-wrap .ru-dropzone.dragover {
    border-color: #a5b4fc !important;
    background: #1b2233 !important;
}
[data-theme="dark"] .main-content .ru-wrap .ru-dz-icon {
    color: #a5b4fc;
}
[data-theme="dark"] .main-content .ru-wrap .ru-dz-meta {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ru-wrap .ru-aviso-tope {
    color: #fcd34d;
}
[data-theme="dark"] .main-content .ru-wrap .ru-files li {
    background: #1e293b;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ru-wrap .ru-files li i {
    color: #a5b4fc;
}
[data-theme="dark"] .main-content .ru-wrap .ru-actions {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ru-wrap .ru-btn-primary {
    background: #4f46e5;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ru-wrap .ru-btn-primary span,
[data-theme="dark"] .main-content .ru-wrap .ru-btn-primary i {
    color: inherit !important;
}
[data-theme="dark"] .main-content .ru-wrap .ru-btn-primary:hover {
    background: #6366f1;
}
[data-theme="dark"] .main-content .ru-wrap .ru-btn-primary:disabled {
    opacity: 1;
    background: #263349;
    color: #94a3b8;
}
[data-theme="dark"] .main-content .ru-wrap .ru-btn-ghost {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ru-wrap .ru-btn-ghost:hover {
    background: #334155;
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .ru-wrap .ru-note {
    background: rgba(59, 130, 246, 0.12);
    border-color: rgba(147, 197, 253, 0.4);
    color: #bfdbfe;
}

/* ---------- 5. IMPORTAR CIERRE TPV — /user/tpv-closures/create ---------- */
/* El texto se leía, pero la pantalla había perdido su estructura: los dos recuadros de
   ayuda no tenían su filete de color (la regla de «-box» lo ponía del gris del fondo),
   la zona de arrastre no tenía borde (1,15) y la entradilla pesaba igual que el título. */
[data-theme="dark"] .main-content .tpv-create-card {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .tpv-create-card p.lead {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .tpv-create-card .tpv-info-box {
    background: #111827 !important;
    border-color: transparent !important;
    border-left-color: #818cf8 !important;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .tpv-create-card .tpv-info-box.tpv-info-box--violeta {
    background: rgba(139, 92, 246, 0.14) !important;
    border-left-color: #a78bfa !important;
}
[data-theme="dark"] .main-content .tpv-create-card label {
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .tpv-create-card .tpv-file-zone {
    background: #151d2e !important;
    border-color: #64748b !important;
}
[data-theme="dark"] .main-content .tpv-create-card .tpv-file-zone:hover {
    border-color: #a5b4fc !important;
    background: #1b2233 !important;
}
[data-theme="dark"] .main-content .tpv-create-card .tpv-file-zone i {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .tpv-create-card .tpv-file-zone .tpv-file-name {
    background: transparent !important;
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .tpv-create-card .tpv-blocked {
    background: rgba(239, 68, 68, 0.12);
    border-left-color: #f87171;
    color: #fecaca;
}
[data-theme="dark"] .main-content .tpv-create-card .tpv-blocked strong,
[data-theme="dark"] .main-content .tpv-create-card .tpv-blocked p {
    color: #fecaca;
}

/* ---------- FRANJAS DE CABECERA de las pantallas saneadas ---------- */
/* 🚨 La sección «8. HERO EXCLUSIONS» dice que deja pasar el degradado de la franja, pero
   `background: unset` hace lo contrario: lo BORRA. La franja quedaba transparente, con
   sus brillos decorativos flotando sobre el fondo de la página y sin límite visible.
   Aquí se repone en las pantallas revisadas; el resto del panel sigue con la franja
   transparente (no se toca la regla general porque hay franjas CLARAS que dependen de
   ella: `cg-cuadre-hero--ok`, `bp-hero-card--*`, `fd-hero`). */
[data-theme="dark"] .main-content .doc-upload .du-hero-top,
[data-theme="dark"] .main-content .doc-batch .db-hero-top,
[data-theme="dark"] .main-content .client-create .cc-hero,
[data-theme="dark"] .main-content .client-import .ci-hero {
    background: linear-gradient(135deg, #131c30 0%, #1a2540 60%, #1e293b 100%) !important;
}
[data-theme="dark"] .main-content .client-create .cc-hero,
[data-theme="dark"] .main-content .client-import .ci-hero {
    box-shadow: inset 0 0 0 1px #263349;
}

/* ---------- 6. NUEVO CLIENTE — /user/clients/create ---------- */
/* Tokens `--cc-*` en `.client-create`. `--cc-white` y `--cc-navy` NO se voltean como
   token: el primero es además el color del título de la franja y el segundo el texto
   del botón ámbar. Se corrige cada uso. */
[data-theme="dark"] .client-create {
    --cc-slate: #94a3b8;
    --cc-slate-light: #94a3b8;
    --cc-green: #34d399;
    --cc-green-light: rgba(16, 185, 129, 0.18);
    --cc-red: #f87171;
    --cc-red-light: rgba(239, 68, 68, 0.14);
    --cc-border: #334155;
    --cc-bg: #111827;
    --cc-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
    --cc-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
    --cc-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
    --cc-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.45);
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .client-create .cc-hero .cc-hero-title {
    color: #ffffff !important;
}
[data-theme="dark"] .main-content .client-create .cc-hero .cc-hero-subtitle {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .client-create .cc-section,
[data-theme="dark"] .main-content .client-create .cc-footer {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .client-create .cc-section-header {
    background: #111827 !important;
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .client-create .cc-section-title i {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .client-create .cc-label {
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .client-create .cc-required,
[data-theme="dark"] .main-content .client-create .cc-invalid-feedback {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .client-create .cc-optional-hint,
[data-theme="dark"] .main-content .client-create .cc-hint,
[data-theme="dark"] .main-content .client-create .cc-switch-desc {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .client-create .cc-input.is-invalid {
    border-color: #f87171 !important;
}
[data-theme="dark"] .main-content .client-create .cc-password-btn {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .client-create .cc-password-btn:hover {
    background: #334155;
    color: #ffffff;
}
[data-theme="dark"] .main-content .client-create .cc-password-btn.cc-btn-generate {
    color: #e8a838;
}

/* Interruptores: apagado era gris casi blanco y el botón blanco no se veía sobre él. */
[data-theme="dark"] .main-content .client-create .cc-switch-item {
    background: #111827 !important;
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .client-create .cc-switch-item:hover {
    border-color: #e8a838 !important;
}
[data-theme="dark"] .main-content .client-create .cc-switch-item .cc-switch-content,
[data-theme="dark"] .main-content .client-create .cc-switch-item .cc-switch-toggle {
    background: transparent !important;
}
[data-theme="dark"] .main-content .client-create .cc-switch-slider {
    background: #475569;
    box-shadow: inset 0 0 0 1px #64748b;
}
[data-theme="dark"] .main-content .client-create .cc-switch-toggle input:checked + .cc-switch-slider {
    background: #e8a838;
    box-shadow: none;
}
[data-theme="dark"] .main-content .client-create .cc-switch-toggle input:focus + .cc-switch-slider {
    box-shadow: 0 0 0 3px rgba(232, 168, 56, 0.4);
}

/* Tarjeta informativa (degradado azul-verde muy claro) */
[data-theme="dark"] .main-content .client-create .cc-info-card {
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.12) 0%, rgba(16, 185, 129, 0.1) 100%) !important;
    border-color: rgba(147, 197, 253, 0.35) !important;
}
[data-theme="dark"] .main-content .client-create .cc-info-card .cc-info-list,
[data-theme="dark"] .main-content .client-create .cc-info-card .cc-info-list li {
    background: transparent !important;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .client-create .cc-info-title i {
    color: #93c5fd;
}
[data-theme="dark"] .main-content .client-create .cc-info-list li .cc-check-icon {
    background: rgba(16, 185, 129, 0.2) !important;
}
[data-theme="dark"] .main-content .client-create .cc-info-list li .cc-check-icon i {
    color: #34d399;
}

/* Aviso de errores de validación */
[data-theme="dark"] .main-content .client-create .cc-alert-error:not(#_) {
    background: rgba(239, 68, 68, 0.12) !important;
    border-color: rgba(248, 113, 113, 0.4) !important;
}
[data-theme="dark"] .main-content .client-create .cc-alert-error div {
    background: transparent !important;
}
[data-theme="dark"] .main-content .client-create .cc-alert-error .cc-alert-icon:not(#_) {
    background: rgba(239, 68, 68, 0.2) !important;
}
[data-theme="dark"] .main-content .client-create .cc-alert-error strong,
[data-theme="dark"] .main-content .client-create .cc-alert-error ul li,
[data-theme="dark"] .main-content .client-create .cc-alert-error .cc-alert-icon i,
[data-theme="dark"] .main-content .client-create .cc-alert-close,
[data-theme="dark"] .main-content .client-create .cc-alert-close span {
    color: #fca5a5 !important;
}
/* El aspa del aviso, el filete ámbar de cada sección y el número de fila llevan «-alert»,
   «-section» y «-row» en el nombre: la regla general de tarjetas les ponía su fondo. */
[data-theme="dark"] .main-content .client-create .cc-alert-close:not(#_),
[data-theme="dark"] .main-content .doc-upload .du-alert-close:not(#_),
[data-theme="dark"] .main-content .doc-import .di-preview-table .di-row-num {
    background: transparent !important;
}
[data-theme="dark"] .main-content .client-create .cc-section-accent {
    background: var(--cc-amber) !important;
}

/* Botones del pie */
[data-theme="dark"] .main-content .client-create .cc-btn-cancel {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .client-create .cc-btn-cancel:hover {
    background: #334155;
    border-color: #94a3b8;
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .client-create .cc-btn-submit,
[data-theme="dark"] .main-content .client-create .cc-btn-submit i {
    color: #0c1222 !important;
}

/* ---------- 7. ALTA MASIVA DE CLIENTES — /user/clients/import ---------- */
/* Tokens `--ci-*` en `.client-import`. Era la pantalla más rota de las nueve: icono de
   la franja 1,01 · pasos 2 y 3 con el número del mismo color que su círculo (1,00) ·
   recuadro de ayuda blanco con texto casi blanco (1,18) · nombres de columna 1,32. */
[data-theme="dark"] .client-import {
    --ci-navy: #f1f5f9;
    --ci-amber-hover: #f0b952;
    --ci-slate: #94a3b8;
    --ci-slate-light: #94a3b8;
    --ci-green: #34d399;
    --ci-green-light: rgba(16, 185, 129, 0.18);
    --ci-red: #f87171;
    --ci-red-light: rgba(239, 68, 68, 0.16);
    --ci-border: #334155;
    --ci-bg: #111827;
    --ci-white: #151d2e;
    --ci-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
    --ci-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
    --ci-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.5);
}
[data-theme="dark"] .main-content .client-import .ci-hero .ci-hero-icon {
    background: #e8a838 !important;
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .client-import .ci-hero .ci-hero-icon i {
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .client-import .ci-hero h3 {
    color: #ffffff !important;
}
[data-theme="dark"] .main-content .client-import .ci-hero p {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .client-import .ci-hero strong {
    color: #e8a838 !important;
}

/* Pasos */
[data-theme="dark"] .main-content .client-import .ci-step {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .client-import .ci-step > span {
    color: inherit !important;
}
[data-theme="dark"] .main-content .client-import .ci-step.active {
    color: #e8a838 !important;
}
[data-theme="dark"] .main-content .client-import .ci-step.completed {
    color: #34d399 !important;
}
[data-theme="dark"] .main-content .client-import .ci-step .ci-step-number {
    background: #1e293b;
    box-shadow: inset 0 0 0 2px #475569;
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .client-import .ci-step .ci-step-number span,
[data-theme="dark"] .main-content .client-import .ci-step .ci-step-number i {
    color: inherit !important;
}
[data-theme="dark"] .main-content .client-import .ci-step.active .ci-step-number {
    background: #e8a838;
    box-shadow: none;
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .client-import .ci-step.completed .ci-step-number {
    background: #34d399;
    box-shadow: none;
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .client-import .ci-step-connector {
    background: #475569;
}
[data-theme="dark"] .main-content .client-import .ci-step-connector.done {
    background: #34d399;
}

/* Tarjetas, ayuda y zona de arrastre */
[data-theme="dark"] .main-content .client-import .ci-card {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .client-import .ci-card-footer {
    background: #111827 !important;
    border-top-color: #263349 !important;
}
[data-theme="dark"] .main-content .client-import .ci-template-cta {
    background: rgba(232, 168, 56, 0.12);
    border-color: rgba(232, 168, 56, 0.45);
}
[data-theme="dark"] .main-content .client-import .ci-template-cta-text span {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .client-import .ci-source-hint {
    background: #111827;
    border-color: #475569;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .client-import .ci-source-hint span {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .client-import .ci-source-hint strong {
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .client-import .ci-dropzone {
    border-color: #64748b !important;
}
[data-theme="dark"] .main-content .client-import .ci-dropzone:hover,
[data-theme="dark"] .main-content .client-import .ci-dropzone.dragover {
    border-color: #e8a838 !important;
    background: #1b2233 !important;
}
[data-theme="dark"] .main-content .client-import .ci-dropzone.has-file {
    border-color: #34d399 !important;
    background: rgba(16, 185, 129, 0.08) !important;
}
[data-theme="dark"] .main-content .client-import .ci-dropzone .ci-dropzone-icon {
    background: #1e293b !important;
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .client-import .ci-dropzone.dragover .ci-dropzone-icon {
    background: #e8a838 !important;
}
[data-theme="dark"] .main-content .client-import .ci-dropzone.has-file .ci-dropzone-icon {
    background: #34d399 !important;
}
[data-theme="dark"] .main-content .client-import .ci-dropzone p,
[data-theme="dark"] .main-content .client-import .ci-dropzone small {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .client-import .ci-dropzone .ci-link-change {
    color: #fca5a5 !important;
}

/* Botones */
[data-theme="dark"] .main-content .client-import .ci-btn-primary,
[data-theme="dark"] .main-content .client-import .ci-btn-primary span,
[data-theme="dark"] .main-content .client-import .ci-btn-primary i {
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .client-import .ci-btn-primary:disabled {
    opacity: 1;
    background: #263349;
}
[data-theme="dark"] .main-content .client-import .ci-btn-primary:disabled,
[data-theme="dark"] .main-content .client-import .ci-btn-primary:disabled span,
[data-theme="dark"] .main-content .client-import .ci-btn-primary:disabled i {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .client-import .ci-btn-outline,
[data-theme="dark"] .main-content .client-import .ci-btn-ghost {
    background: #1e293b;
    border-color: #64748b;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .client-import .ci-btn-outline:hover,
[data-theme="dark"] .main-content .client-import .ci-btn-ghost:hover {
    background: #334155;
    border-color: #e8a838;
    color: #f1f5f9;
}

/* Instrucciones y nombres de columna */
[data-theme="dark"] .main-content .client-import .ci-instructions-list,
[data-theme="dark"] .main-content .client-import .ci-instructions-list li {
    background: transparent !important;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .client-import code {
    background: #1e293b;
    border: 1px solid #334155;
    color: #fcd34d;
}
[data-theme="dark"] .main-content .client-import .ci-alert-info:not(#_) {
    background: rgba(232, 168, 56, 0.1) !important;
    border-color: rgba(232, 168, 56, 0.4) !important;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .client-import .ci-alert-danger:not(#_) {
    background: rgba(239, 68, 68, 0.12) !important;
    border-color: rgba(248, 113, 113, 0.4) !important;
    color: #fca5a5;
}
[data-theme="dark"] .main-content .client-import .ci-alert-danger strong,
[data-theme="dark"] .main-content .client-import .ci-alert-danger li {
    color: #fca5a5 !important;
}

/* Distintivos y tabla de revisión */
[data-theme="dark"] .main-content .client-import .ci-badge-success,
[data-theme="dark"] .main-content .client-import .ci-mapping-ok {
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .client-import .ci-badge-danger,
[data-theme="dark"] .main-content .client-import .ci-mapping-missing {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .client-import .ci-badge-warning {
    background: rgba(245, 158, 11, 0.16);
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .client-import .ci-mapping-optional {
    background: #1e293b;
    border-color: #475569;
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .client-import .ci-mapping-bar {
    background: #111827 !important;
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .client-import .ci-mapping-badges {
    background: transparent !important;
}
[data-theme="dark"] .main-content .client-import .ci-mapping-label {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .client-import .ci-table thead th {
    background: #111827 !important;
    color: #94a3b8 !important;
    border-bottom-color: #334155 !important;
}
[data-theme="dark"] .main-content .client-import .ci-table tbody td {
    color: #e2e8f0;
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .client-import .ci-table tbody tr.row-valid {
    background-color: rgba(16, 185, 129, 0.07) !important;
}
[data-theme="dark"] .main-content .client-import .ci-table tbody tr.row-invalid {
    background-color: rgba(239, 68, 68, 0.12) !important;
}
[data-theme="dark"] .main-content .client-import .ci-table tbody tr.row-warning {
    background-color: rgba(245, 158, 11, 0.1) !important;
}
[data-theme="dark"] .main-content .client-import .ci-table .text-danger,
[data-theme="dark"] .main-content .client-import .ci-table .fa-times-circle {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .client-import .ci-table .text-warning,
[data-theme="dark"] .main-content .client-import .ci-table .fa-exclamation-circle {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .client-import .ci-table .text-success,
[data-theme="dark"] .main-content .client-import .ci-table .fa-check-circle {
    color: #34d399 !important;
}
[data-theme="dark"] .main-content .client-import .ci-importing-state p {
    color: #94a3b8;
}

/* ---------- 8. PETICIÓN EN LOTE — /user/clients/peticiones-en-lote ---------- */
/* Usa el juego `.ca-page` de `user/clients/activities/_styles` (lo comparten también
   los formularios de actividades económicas del cliente). Sus tokens viven en
   `.ca-page`: se voltea la escala de grises. `--ca-navy` no: es el fondo del botón
   principal, que en oscuro pasa a ámbar más abajo. */
[data-theme="dark"] .cg-portal .ca-page {
    --ca-slate-50: #111827;
    --ca-slate-100: #1e293b;
    --ca-slate-200: #334155;
    --ca-slate-400: #94a3b8;
    --ca-slate-500: #94a3b8;
    --ca-slate-700: #e2e8f0;
    --ca-slate-900: #f1f5f9;
    --ca-red: #f87171;
    --ca-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}
[data-theme="dark"] .main-content .ca-page .ca-card {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ca-page .ca-card-header {
    background: #111827 !important;
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .ca-page .ca-hint,
[data-theme="dark"] .main-content .ca-page .drb-cabecera-nota,
[data-theme="dark"] .main-content .ca-page .drb-contador {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ca-page .ca-required,
[data-theme="dark"] .main-content .ca-page .ca-error {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ca-page .ca-error__accion {
    color: #e8a838;
}
[data-theme="dark"] .main-content .ca-page .ca-actions {
    background: transparent !important;
    border-top-color: #263349 !important;
}
/* Botones: los dos eran BLANCOS (el principal además sin distinguirse del secundario). */
[data-theme="dark"] .main-content .ca-page .ca-btn {
    background: #1e293b;
    border-color: #64748b;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ca-page .ca-btn:hover {
    background: #334155;
    border-color: #94a3b8;
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .ca-page .ca-btn.ca-btn--primary,
[data-theme="dark"] .main-content .ca-page .ca-btn.ca-btn--amber {
    background: #e8a838;
    border-color: #e8a838;
    color: #0c1222;
}
[data-theme="dark"] .main-content .ca-page .ca-btn.ca-btn--primary i,
[data-theme="dark"] .main-content .ca-page .ca-btn.ca-btn--amber i {
    color: #0c1222;
}
[data-theme="dark"] .main-content .ca-page .ca-btn.ca-btn--primary:hover:not(:disabled),
[data-theme="dark"] .main-content .ca-page .ca-btn.ca-btn--amber:hover:not(:disabled) {
    background: #f0b952;
    border-color: #f0b952;
    color: #0c1222;
}
[data-theme="dark"] .main-content .ca-page .ca-btn:disabled,
[data-theme="dark"] .main-content .ca-page .ca-btn[disabled] {
    opacity: 1;
    background: #263349;
    border-color: #334155;
    color: #94a3b8;
}
/* Lista de clientes */
[data-theme="dark"] .main-content .ca-page .drb-clients {
    border-top-color: #263349;
}
[data-theme="dark"] .main-content .ca-page .drb-clients-head,
[data-theme="dark"] .main-content .ca-page .drb-tools {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ca-page .drb-list {
    background: #111827 !important;
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .ca-page .drb-list .drb-item {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ca-page .drb-list .drb-item:hover {
    background: #1e293b !important;
}
[data-theme="dark"] .main-content .ca-page .drb-nif {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ca-page .drb-contador #drb-num {
    color: #f1f5f9 !important;
}

/* Campos de fecha y hora: el icono del calendario lo pinta el navegador en negro. */
[data-theme="dark"] .main-content input[type="date"],
[data-theme="dark"] .main-content input[type="time"],
[data-theme="dark"] .main-content input[type="datetime-local"],
[data-theme="dark"] .main-content input[type="month"] {
    color-scheme: dark;
}

/* ---------- 9. INFORME TRIMESTRAL — /user/informes/trimestral ---------- */
/* `informe-trimestral.css` trae los colores literales. Lo que fallaba aquí no era tanto
   el contraste como la jerarquía: las cuatro cifras, su rótulo y su detalle salían del
   mismo gris, y los distintivos de los modelos (presentado / pendiente) eran iguales. */
[data-theme="dark"] .main-content .itr-page .itr-card {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .itr-page .itr-filtros,
[data-theme="dark"] .main-content .itr-page .itr-acciones {
    background: transparent !important;
}
[data-theme="dark"] .main-content .itr-page .itr-field label {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .itr-page .itr-head {
    background: transparent !important;
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .itr-page .itr-sub {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .itr-page .itr-grid {
    background: transparent !important;
}
[data-theme="dark"] .main-content .itr-page .itr-metric {
    background: #111827;
    border-color: #334155;
}
[data-theme="dark"] .main-content .itr-page .itr-metric-num {
    color: #f8fafc !important;
}
[data-theme="dark"] .main-content .itr-page .itr-metric-num small {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .itr-page .itr-metric-label {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .itr-page .itr-metric-detalle {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .itr-page .itr-chip {
    border-color: #64748b;
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .itr-page .itr-chip.is-ok {
    border-color: #34d399;
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .itr-page .itr-nota {
    color: #94a3b8;
}

/* ---------- E. DISTINTIVOS Y BOTONES DE CONTORNO DE BOOTSTRAP (todas las pantallas) ---------- */
/* El lote heredado pinta los distintivos con texto blanco sobre colores claros: verde
   2,09 · rosa 3,8. Y los botones de contorno usan el azul y el rojo del tema claro. */
[data-theme="dark"] .main-content .badge-success {
    background-color: #047857 !important;
    color: #ffffff !important;
}
[data-theme="dark"] .main-content .badge-secondary {
    background-color: #334155 !important;
    color: #f1f5f9 !important;
}
/* El «primario» de este panel es ÁMBAR, no azul: el contorno conserva su color y solo
   se aclara lo justo para leerse sobre la tarjeta oscura. */
[data-theme="dark"] .main-content .btn-outline-primary {
    border-color: #e8a838 !important;
    color: #f0b952 !important;
    background: transparent !important;
}
[data-theme="dark"] .main-content .btn-outline-primary:hover,
[data-theme="dark"] .main-content .btn-outline-primary:not(:disabled):active,
[data-theme="dark"] .main-content .btn-outline-primary.active {
    background: #e8a838 !important;
    border-color: #e8a838 !important;
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .btn-outline-danger {
    border-color: #f87171 !important;
    color: #fca5a5 !important;
    background: transparent !important;
}
[data-theme="dark"] .main-content .btn-outline-danger:hover,
[data-theme="dark"] .main-content .btn-outline-danger:not(:disabled):active,
[data-theme="dark"] .main-content .btn-outline-danger.active {
    background: #b91c1c !important;
    border-color: #b91c1c !important;
    color: #ffffff !important;
}
[data-theme="dark"] .main-content .btn-outline-secondary {
    border-color: #64748b !important;
    color: #cbd5e1 !important;
    background: transparent !important;
}
[data-theme="dark"] .main-content .btn-outline-secondary:hover,
[data-theme="dark"] .main-content .btn-outline-secondary:not(:disabled):active,
[data-theme="dark"] .main-content .btn-outline-secondary.active {
    background: #334155 !important;
    color: #ffffff !important;
}

/* Desplegable de actividad (awselect): la vista lo fija en blanco con !important. */
[data-theme="dark"] #doc-upload-activity-wrapper #awselect_doc-upload-activity .back_face {
    background: #151d2e !important;
    border-color: #64748b !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5) !important;
}
[data-theme="dark"] #doc-upload-activity-wrapper #awselect_doc-upload-activity .back_face ul li {
    background: #151d2e !important;
}
[data-theme="dark"] #doc-upload-activity-wrapper #awselect_doc-upload-activity .back_face ul li a {
    color: #e2e8f0 !important;
}
[data-theme="dark"] #doc-upload-activity-wrapper #awselect_doc-upload-activity .back_face ul li:hover {
    background: #334155 !important;
}

/* ================================================================
   SANEAMIENTO DEL TEMA OSCURO — CONTABILIDAD (oct-2026, segunda tanda)
   Las nueve pantallas de la sección: asientos, periódicos, activos, exportar, libros,
   cuadre, periodos, cierre y ajustes contables, con sus subpantallas y sus diálogos.
   Mismo criterio que la tanda de arriba: medido en Chrome, AA (4,5 texto · 3 controles),
   todo bajo [data-theme="dark"].
   ================================================================ */

/* ---------- G. COMPONENTES COMPARTIDOS (afectan a todo el panel) ---------- */

/* 🚨 La regla «Extra light/muted colors» de más arriba traduce `color:#cbd5e1` escrito en
   línea a #475569. En claro #cbd5e1 es un gris tenue sobre blanco; en oscuro #475569
   sobre la tarjeta da 2,22: el rótulo «Mostrar» del listado de asientos y las rayas «—»
   de las celdas vacías no se leían. El equivalente legible es #94a3b8 (6,57). La misma
   regla caza también `border-color:#cbd5e1` (es búsqueda de subcadena), así que a esos
   elementos les llega ahora el gris legible en vez del oscuro. */
/* 🚨 `.cg-portal` (clase del `<body>` de `layouts.app`) en TODO lo de esta sección que no
   cuelga de un contenedor propio del panel: son selectores por atributo o por clase de
   Bootstrap, que casan en cualquier página que cargue esta hoja. El tema es solo del
   panel del gestor; la web pública y las pantallas de acceso no lo llevan. */
[data-theme="dark"] .cg-portal [style*="color:#cbd5e1"],
[data-theme="dark"] .cg-portal [style*="color: #cbd5e1"] {
    color: #94a3b8 !important;
}

/* Verdes y marrones oscuros escritos en línea que la lista de arriba no traducía. */
[data-theme="dark"] .cg-portal [style*="color:#166534"],
[data-theme="dark"] .cg-portal [style*="color: #166534"] {
    color: #6ee7b7 !important;
}
[data-theme="dark"] .cg-portal [style*="color:#78350f"],
[data-theme="dark"] .cg-portal [style*="color: #78350f"],
[data-theme="dark"] .cg-portal [style*="color:#7c2d12"],
[data-theme="dark"] .cg-portal [style*="color: #7c2d12"],
[data-theme="dark"] .cg-portal [style*="color:#5c4200"] {
    color: #fcd34d !important;
}
[data-theme="dark"] .cg-portal [style*="color:#7f1d1d"],
[data-theme="dark"] .cg-portal [style*="color: #7f1d1d"] {
    color: #fca5a5 !important;
}
/* Azules de enlace del tema claro escritos en línea (#1d4ed8, #2563eb): 2,51 y 3,6. */
[data-theme="dark"] .cg-portal [style*="color:#1d4ed8"]:not([style*="background:#1d4ed8"]):not([style*="background-color:#1d4ed8"]),
[data-theme="dark"] .cg-portal [style*="color: #1d4ed8"],
[data-theme="dark"] .cg-portal .main-content a[style*="color:#1F4E79"],
[data-theme="dark"] .cg-portal .main-content a[style*="color:#1f4e79"],
[data-theme="dark"] .cg-portal [style*="color:#2563eb"]:not([style*="background:#2563eb"]):not([style*="background-color:#2563eb"]),
[data-theme="dark"] .cg-portal [style*="color: #2563eb"],
[data-theme="dark"] .cg-portal .main-content [style*="color:#3b82f6"]:not([style*="background:#3b82f6"]):not([style*="background-color:#3b82f6"]):not([class*="btn"]) {
    color: #93c5fd !important;
}
/* Rojo de error #dc2626 como TEXTO: 3,49 sobre la tarjeta. La exclusión evita la colisión
   de subcadena con `background-color:#dc2626` (un fondo rojo con texto blanco). */
[data-theme="dark"] .cg-portal [style*="color:#dc2626"]:not([style*="background-color:#dc2626"]):not([style*="background:#dc2626"]),
[data-theme="dark"] .cg-portal [style*="color: #dc2626"]:not([style*="background-color: #dc2626"]):not([style*="background: #dc2626"]) {
    color: #f87171 !important;
}

/* Cabecera de página `sp-page-header` (título + botón): la regla general de «-header»
   la convertía en una losa gris pegada al título. */
[data-theme="dark"] .main-content .sp-page-header:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}

/* Botón claro de Bootstrap («Cancelar» de casi todos los diálogos): era un botón BLANCO
   (#f8f9fa) en mitad del diálogo oscuro. */
[data-theme="dark"] .cg-portal .btn-light {
    background-color: #1e293b !important;
    border-color: #64748b !important;
    color: #e2e8f0 !important;
}
[data-theme="dark"] .cg-portal .btn-light:hover,
[data-theme="dark"] .cg-portal .btn-light:focus {
    background-color: #334155 !important;
    border-color: #94a3b8 !important;
    color: #ffffff !important;
}

/* Botón deshabilitado: Bootstrap lo atenúa con `opacity: .65`, que mezcla el ámbar con
   el fondo y deja el texto en 4,1-4,3. Se dice con color, no con transparencia. */
[data-theme="dark"] .main-content .btn-primary:disabled,
[data-theme="dark"] .main-content .btn-primary.disabled,
[data-theme="dark"] .main-content .btn-warning:disabled,
[data-theme="dark"] .main-content .btn-warning.disabled,
[data-theme="dark"] .main-content .btn-success:disabled,
[data-theme="dark"] .main-content .btn-success.disabled,
[data-theme="dark"] .main-content .btn-danger:disabled,
[data-theme="dark"] .main-content .btn-danger.disabled,
[data-theme="dark"] .main-content .btn-secondary:disabled,
[data-theme="dark"] .main-content .btn-secondary.disabled {
    opacity: 1;
    background: #263349 !important;
    border-color: #334155 !important;
    color: #94a3b8 !important;
    box-shadow: none !important;
}

[data-theme="dark"] .main-content .btn-outline-primary:disabled,
[data-theme="dark"] .main-content .btn-outline-secondary:disabled,
[data-theme="dark"] .main-content .btn-outline-warning:disabled,
[data-theme="dark"] .main-content .btn-outline-danger:disabled,
[data-theme="dark"] .main-content .btn-outline-success:disabled {
    opacity: 1;
    border-color: #475569 !important;
    color: #94a3b8 !important;
}

/* El texto de un botón va en un `<span>` cuando alterna con el de «Guardando…». La regla
   general de los `<span>` del panel le ponía el gris claro por encima del color del
   botón: «Guardar» en gris sobre un botón de contorno ámbar. Hereda del botón. */
[data-theme="dark"] .main-content .btn > span:not([class]) {
    color: inherit !important;
}

/* 🚨 ICONOS CON FONDO DE TARJETA. La regla general pinta por SUBCADENA del nombre de
   clase, y los nombres de Font Awesome también llevan esas subcadenas: `fa-filter`
   («-filter»), `fa-search` («-search»), `fa-list`/`fa-th-list` («-list»), `fa-table`
   («-table»), `fa-toggle-on` («-toggle»), `fa-credit-card` («-card»)… A esos iconos se
   les ponía el gris de tarjeta como FONDO: dentro de un botón de color salían como un
   bloque oscuro que tapaba el dibujo (medido: el embudo de «Filtrar» en 1,11). Un icono
   no es un contenedor. */
[data-theme="dark"] .main-content i.fa:not(#_),
[data-theme="dark"] .main-content i.fe:not(#_),
[data-theme="dark"] .main-content i.mdi:not(#_) {
    background: transparent !important;
}

/* Distintivo «Ejemplo» de los datos de demostración: pegatina crema en la fila oscura. */
[data-theme="dark"] .main-content .cg-demo-badge {
    background: rgba(245, 158, 11, 0.16);
    border-color: rgba(252, 211, 77, 0.45);
    color: #fcd34d !important;
}

/* Aspa de cerrar de los avisos `cg-toast`: gris oscuro al 50 % sobre el aviso (1,85). */
[data-theme="dark"] .cg-portal .cg-toast .cg-toast-close {
    opacity: 1;
    color: #cbd5e1;
}
[data-theme="dark"] .cg-portal .cg-toast .cg-toast-close:hover {
    color: #ffffff;
}

/* Menú desplegable de Bootstrap: el contorno era del mismo tono que la tarjeta de debajo
   (1,15) y el menú no se despegaba de ella. */
[data-theme="dark"] .cg-portal .dropdown-menu {
    border-color: #475569 !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.55) !important;
}
[data-theme="dark"] .cg-portal .dropdown-menu .dropdown-divider {
    border-top-color: #334155 !important;
}

/* ---------- H. FAMILIA `.ct-*` (la comparten las pantallas de contabilidad) ---------- */
/* Cada vista de contabilidad trae su propio bloque de estilos con el mismo vocabulario
   (`ct-card`, `ct-table`, `ct-btn-export`, `ct-action-btn`, `ct-badge-*`…) y los mismos
   colores literales del tema claro. Se sanean una vez aquí y valen para todas. */

/* Cabecera de página: la regla general de «-header» le ponía el gris de tarjeta y el
   título quedaba dentro de una losa sin margen. En claro va sobre el fondo de la página. */
[data-theme="dark"] .main-content .ct-page-header:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ct-page-subtitle {
    color: #94a3b8 !important;
}

/* Botones de la cabecera: texto #1e293b sobre la tarjeta oscura (1,15), no se leía
   «Exportar Diario» ni «Importar asientos». */
[data-theme="dark"] .main-content .ct-btn-export {
    background: #1e293b;
    border-color: #64748b;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ct-btn-export:hover,
[data-theme="dark"] .main-content .ct-btn-export:focus {
    background: #334155;
    border-color: #e8a838;
    color: #f0b952;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}
/* El que abre un menú lleva `dropdown-toggle`, y «-toggle» está en la lista de fondos de
   la regla general: perdía su fondo y su contorno. */
[data-theme="dark"] .main-content .ct-btn-export.dropdown-toggle:not(#_) {
    background: #1e293b !important;
    border-color: #64748b !important;
}
[data-theme="dark"] .main-content .ct-btn-export.dropdown-toggle:not(#_):hover,
[data-theme="dark"] .main-content .ct-btn-export.dropdown-toggle:not(#_):focus,
[data-theme="dark"] .main-content .show > .ct-btn-export.dropdown-toggle:not(#_) {
    background: #334155 !important;
    border-color: #e8a838 !important;
}
/* «Nuevo asiento manual»: blanco sobre #6366f1 daba 4,47. */
[data-theme="dark"] .main-content .ct-btn-export.ct-btn-export--nuevo,
[data-theme="dark"] .main-content .ct-btn-export.ct-btn-export--nuevo:hover,
[data-theme="dark"] .main-content .ct-btn-export.ct-btn-export--nuevo:focus {
    background: #4f46e5;
    border-color: #6366f1;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-btn-export.ct-btn-export--nuevo:hover {
    background: #6366f1;
    border-color: #818cf8;
}
[data-theme="dark"] .main-content .ct-page-header .dropdown-menu .dropdown-item:hover,
[data-theme="dark"] .main-content .ct-page-header .dropdown-menu .dropdown-item:focus {
    background: #1e293b;
    color: #ffffff !important;
}

/* Tarjetas */
[data-theme="dark"] .main-content .ct-card {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ct-card-header {
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .ct-card-generate .ct-card-header-title,
[data-theme="dark"] .main-content .ct-card-generate .ct-card-header-title i {
    color: #e8a838 !important;
}
[data-theme="dark"] .main-content .ct-gen-desc {
    color: #cbd5e1 !important;
}
/* Separadores entre los tres bloques de «Generar asientos»: eran rayas casi blancas. */
[data-theme="dark"] .main-content .ct-gen-bloque {
    border-top-color: #334155;
}
[data-theme="dark"] .main-content .ct-filter-label {
    background: transparent !important;
    color: #94a3b8 !important;
}

/* «Filtrar» es el botón principal del panel de filtros. La regla general de «-filter»
   (su nombre la contiene) le quitaba el fondo: texto blanco suelto, sin botón. */
[data-theme="dark"] .main-content .ct-btn-filter:not(#_) {
    background: #e8a838 !important;
    border-color: #e8a838 !important;
    /* `!important`: en «Saldos mensuales» el botón trae su `color:#fff` en línea. */
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .ct-btn-filter:not(#_):hover {
    background: #f0b952 !important;
}
[data-theme="dark"] .main-content .ct-btn-filter i {
    color: inherit;
}
[data-theme="dark"] .main-content .ct-btn-clear {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-btn-clear:hover {
    background: #334155;
    border-color: #94a3b8;
    color: #f1f5f9;
}

/* Barra de resumen: las pastillas son enlaces y la regla de los enlaces las pintaba
   todas del azul de enlace; la de descuadrados dejaba de ser roja. */
[data-theme="dark"] .main-content .ct-rbar {
    border-color: #263349;
}
[data-theme="dark"] .main-content .ct-rbar__label,
[data-theme="dark"] .main-content .ct-rbar__title,
[data-theme="dark"] .main-content .ct-rbar__huecos {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-rbar__num {
    color: #e8a838 !important;
}
[data-theme="dark"] .main-content .ct-rbar__sep {
    background: #334155;
}
/* `:not(#_)` — la regla de los enlaces pesa (0,6,1) por sus cuatro `:not()`. */
[data-theme="dark"] .main-content a.ct-rbar__chip.ct-rbar__chip--draft:not(#_) {
    color: #f0b952;
    border-color: rgba(232, 168, 56, 0.5);
}
[data-theme="dark"] .main-content a.ct-rbar__chip.ct-rbar__chip--alert:not(#_) {
    background: rgba(239, 68, 68, 0.16);
    border-color: rgba(248, 113, 113, 0.5);
    color: #fca5a5;
}
[data-theme="dark"] .main-content a.ct-rbar__chip.ct-rbar__chip--alert.is-active:not(#_) {
    background: #b91c1c;
    border-color: #f87171;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-rbar__renumber {
    color: #cbd5e1;
}

/* Avisos de la familia */
[data-theme="dark"] .main-content .ct-rebuild-notice {
    background: rgba(245, 158, 11, 0.12);
    border-color: rgba(252, 211, 77, 0.45);
    border-left-color: #f59e0b;
}
[data-theme="dark"] .main-content .ct-rebuild-notice .ct-rebuild-notice__text,
[data-theme="dark"] .main-content .ct-rebuild-notice .ct-rebuild-notice__text strong {
    color: #fde68a !important;
}
[data-theme="dark"] .main-content .ct-rebuild-notice__btn,
[data-theme="dark"] .main-content a.ct-rebuild-notice__btn {
    background: #e8a838;
    color: #0c1222;
}
[data-theme="dark"] .main-content .ct-rebuild-notice__btn:hover {
    background: #f0b952;
    color: #0c1222;
}
[data-theme="dark"] .main-content a.ct-unbalanced-banner:not(#_) {
    background: rgba(239, 68, 68, 0.12);
    border-color: rgba(248, 113, 113, 0.45);
}
[data-theme="dark"] .main-content a.ct-unbalanced-banner:hover {
    background: rgba(239, 68, 68, 0.2);
    border-color: #f87171;
}
[data-theme="dark"] .main-content .ct-unbalanced-banner .ct-unbalanced-banner__text,
[data-theme="dark"] .main-content .ct-unbalanced-banner .ct-unbalanced-banner__count {
    color: #fecaca !important;
}
[data-theme="dark"] .main-content .ct-unbalanced-banner .ct-unbalanced-banner__icon,
[data-theme="dark"] .main-content .ct-unbalanced-banner .ct-unbalanced-banner__cta {
    color: #fca5a5 !important;
}
/* Aviso de borradores bajo las pestañas: su botón secundario era blanco. */
[data-theme="dark"] .main-content .ct-libro-aviso-borradores {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-libro-aviso-borradores-btn {
    background: #1e293b;
    border-color: #64748b;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ct-libro-aviso-borradores-btn:hover {
    background: #334155;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-libro-aviso-borradores-btn.ct-libro-aviso-borradores-btn--primary {
    background: #e8a838;
    border-color: #e8a838;
    color: #0c1222;
}
[data-theme="dark"] .main-content .ct-libro-aviso-borradores-btn.ct-libro-aviso-borradores-btn--primary:hover {
    background: #f0b952;
    color: #0c1222;
}

/* Tabla: la separación entre filas era una raya casi BLANCA (#f8fafc) cada tres líneas. */
[data-theme="dark"] .main-content .ct-table thead th {
    border-bottom-color: #334155 !important;
}
[data-theme="dark"] .main-content .ct-table tbody tr {
    border-bottom-color: #263349;
}
[data-theme="dark"] .main-content .ct-table tbody tr:hover {
    background: #1b2233 !important;
}
[data-theme="dark"] .main-content .ct-table .ct-col-num,
[data-theme="dark"] .main-content .ct-table .ct-col-amount {
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .ct-table .ct-col-date,
[data-theme="dark"] .main-content .ct-table .ct-col-client {
    color: #cbd5e1;
}
/* Cabeceras ordenables: eran del azul de enlace, igual la activa que las demás. */
[data-theme="dark"] .main-content th a.cg-th-orden:not(#_),
[data-theme="dark"] .main-content th button.cg-th-orden:not(#_) {
    color: #94a3b8;
}
[data-theme="dark"] .main-content th a.cg-th-orden:not(#_):hover,
[data-theme="dark"] .main-content th a.cg-th-orden:not(#_):focus,
[data-theme="dark"] .main-content th a.cg-th-orden.is-activa:not(#_),
[data-theme="dark"] .main-content th button.cg-th-orden:not(#_):hover,
[data-theme="dark"] .main-content th button.cg-th-orden.is-activa:not(#_) {
    color: #f0b952;
}
[data-theme="dark"] .main-content .cg-th-orden .fa {
    opacity: 0.7;
}
[data-theme="dark"] .main-content .cg-th-orden.is-activa .fa {
    opacity: 1;
}

/* Distintivos de estado y de tipo: los tonos del tema claro sobre su velo quedaban entre
   4,05 y 4,16. Se aclaran dentro de su misma familia de color. */
[data-theme="dark"] .main-content .ct-badge.ct-badge-draft,
[data-theme="dark"] .main-content .ct-badge.ct-badge-rectificativa {
    background: rgba(245, 158, 11, 0.16);
    color: #fcd34d;
}
[data-theme="dark"] .main-content .ct-badge.ct-badge-approved,
[data-theme="dark"] .main-content .ct-badge.ct-badge-posted,
[data-theme="dark"] .main-content .ct-badge.ct-badge-recibida {
    background: rgba(59, 130, 246, 0.16);
    color: #93c5fd;
}
[data-theme="dark"] .main-content .ct-badge.ct-badge-emitida,
[data-theme="dark"] .main-content .ct-badge.ct-badge-banco {
    background: rgba(16, 185, 129, 0.16);
    color: #6ee7b7;
}
[data-theme="dark"] .main-content .ct-badge.ct-badge-nomina {
    background: rgba(129, 140, 248, 0.18);
    color: #a5b4fc;
}
[data-theme="dark"] .main-content .ct-badge.ct-badge-imported {
    background: #1e293b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-badge i {
    color: inherit;
}
[data-theme="dark"] .main-content .ct-sin-cliente {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ct-cliente-borrado {
    color: #94a3b8 !important;
}

/* Botones de acción de fila: 198 cuadrados BLANCOS en la última columna, con el lápiz
   índigo (1,99) y la flecha ámbar (2,15) encima. */
[data-theme="dark"] .main-content .ct-action-btn {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-action-btn:hover,
[data-theme="dark"] .main-content .ct-action-btn:focus {
    background: #334155;
    border-color: #cbd5e1;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-action-btn.ct-action-btn-approve {
    border-color: rgba(52, 211, 153, 0.6);
    color: #34d399;
}
[data-theme="dark"] .main-content .ct-action-btn.ct-action-btn-approve:hover {
    background: rgba(16, 185, 129, 0.2);
    border-color: #34d399;
    color: #6ee7b7;
}
[data-theme="dark"] .main-content .ct-action-btn.ct-action-btn-delete {
    border-color: rgba(248, 113, 113, 0.6);
    color: #f87171;
}
[data-theme="dark"] .main-content .ct-action-btn.ct-action-btn-delete:hover {
    background: rgba(239, 68, 68, 0.2);
    border-color: #f87171;
    color: #fca5a5;
}

/* Acciones en lote */
[data-theme="dark"] .main-content .ct-bulk-btn.ct-bulk-btn--regenerar {
    background: #64748b;
}
[data-theme="dark"] .main-content .ct-bulk-btn.ct-bulk-btn--regenerar:hover {
    background: #475569;
}
[data-theme="dark"] .main-content .ct-bulk-btn.ct-bulk-btn--trasladar {
    background: #4f46e5;
    box-shadow: inset 0 0 0 1px #818cf8;
}
[data-theme="dark"] .main-content .ct-bulk-btn.ct-bulk-btn--trasladar:hover {
    background: #6366f1;
}
[data-theme="dark"] .main-content .ct-bulk-btn i {
    color: inherit;
}
[data-theme="dark"] .main-content .ct-selection-bar {
    border: 1px solid #334155;
}
[data-theme="dark"] .main-content .ct-selection-bar .ct-selection-bar-text {
    color: #f0b952 !important;
}
[data-theme="dark"] .main-content .ct-selection-bar .ct-selection-bar-hint {
    color: #94a3b8 !important;
}

/* Estado vacío y pie de paginación */
[data-theme="dark"] .main-content .ct-empty .ct-empty-icon {
    background: #1e293b !important;
}
[data-theme="dark"] .main-content .ct-empty .ct-empty-title {
    color: #e2e8f0 !important;
}
[data-theme="dark"] .main-content .ct-empty .ct-empty-desc {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-pagination.ct-pagination--pie {
    border-top-color: #263349;
}
[data-theme="dark"] .main-content .ct-pagination .page-link {
    border-color: #475569 !important;
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .ct-pagination .page-item.disabled .page-link {
    border-color: #263349 !important;
    color: #64748b !important;
}
[data-theme="dark"] .main-content .ct-pagination .page-item.active .page-link {
    border-color: #e8a838 !important;
    color: #0c1222 !important;
}

/* Diálogos propios (`ct-picker-*`): edición rápida, copiar a otro cliente, trasladar de
   fecha y el selector de predefinidos. La caja no tenía contorno sobre el velo oscuro. */
[data-theme="dark"] .cg-portal .ct-picker-overlay {
    background: rgba(2, 6, 23, 0.72);
}
[data-theme="dark"] .main-content .ct-picker-box:not(#_),
[data-theme="dark"] .cg-portal .ct-picker-box {
    border: 1px solid #475569 !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}
[data-theme="dark"] .main-content .ct-picker-head:not(#_) {
    background: transparent !important;
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .ct-picker-list:not(#_) {
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .ct-picker-item:not(#_) {
    border-bottom-color: #263349 !important;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ct-picker-item.ct-picker-item--active:not(#_) {
    background: rgba(232, 168, 56, 0.2) !important;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-picker-badge {
    background: #334155;
    color: #e2e8f0 !important;
}
[data-theme="dark"] .main-content .ct-picker-badge.ct-picker-badge--param {
    background: rgba(245, 158, 11, 0.22);
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ct-picker-item--active .ct-picker-badge {
    background: #e8a838;
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .ct-picker-empty,
[data-theme="dark"] .main-content .ct-picker-foot {
    background: transparent !important;
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-icon-indigo {
    color: #a5b4fc;
}
[data-theme="dark"] .main-content .ct-move-date-help {
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ct-move-date-help.ct-move-date-help--muted,
[data-theme="dark"] .main-content .ct-move-date-crossyear .ct-move-date-crossyear-hint {
    color: #94a3b8 !important;
}

/* Estado del cuadre (rejilla de asientos e icono del listado): el rojo y el verde del
   tema claro, y además el mensaje de error del diálogo salía en gris porque va dentro
   de un `<span>`. */
[data-theme="dark"] .main-content .ct-cuadre-ok,
[data-theme="dark"] .main-content .ct-cuadre-ok--strong,
[data-theme="dark"] .main-content .ct-cuadre-ok span,
[data-theme="dark"] .main-content .ct-cuadre-ok--strong span {
    color: #34d399 !important;
}
[data-theme="dark"] .main-content .ct-cuadre-ko,
[data-theme="dark"] .main-content .ct-cuadre-ko--strong,
[data-theme="dark"] .main-content .ct-cuadre-ko span,
[data-theme="dark"] .main-content .ct-cuadre-ko--strong span {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ct-cuadre-neutral,
[data-theme="dark"] .main-content .ct-cuadre-neutral--strong {
    color: #94a3b8 !important;
}

/* Desplegable de subcuentas y de glosas de la rejilla de asientos (`ct-combo-*`). La
   regla general de «-list»/«-item» pintaba TODAS las opciones del mismo gris, también
   la resaltada: al moverse con las flechas no se veía en cuál se estaba. */
[data-theme="dark"] .main-content .ct-combo-list:not(#_) {
    background: #151d2e !important;
    border-color: #64748b !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.55);
}
[data-theme="dark"] .main-content .ct-combo-item:not(#_) {
    background: transparent !important;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ct-combo-item:not(#_):hover {
    background: #1e293b !important;
}
[data-theme="dark"] .main-content .ct-combo-item.ct-combo-item--active:not(#_),
[data-theme="dark"] .main-content .ct-combo-item.ct-combo-item--active:not(#_):hover {
    background: rgba(232, 168, 56, 0.22) !important;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-combo-item.ct-combo-item--active span {
    color: #e2e8f0 !important;
}
[data-theme="dark"] .main-content .ct-combo-empty:not(#_) {
    background: transparent !important;
    color: #94a3b8;
}
[data-theme="dark"] .main-content .ct-combo-item.ct-combo-create:not(#_) {
    border-top-color: #334155 !important;
    color: #f0b952;
}
[data-theme="dark"] .main-content .ct-combo-item.ct-combo-create:not(#_):hover {
    background: rgba(232, 168, 56, 0.16) !important;
}

/* ---------- 1. ASIENTOS — /user/contabilidad/asientos y sus subpantallas ---------- */

/* 1.a · Ficha del asiento (asientos/{id}) */
[data-theme="dark"] .main-content .ct-show-header:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ct-show-concept {
    color: #94a3b8 !important;
}
/* Botones de acción: blanco sobre verde 3,77 · sobre ámbar 2,15 · sobre azul cielo 2,77. */
[data-theme="dark"] .main-content .ct-btn-approve {
    background: #047857;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-btn-approve:hover {
    background: #059669;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-btn-approve.ct-btn-approve--indigo {
    background: #4f46e5;
}
[data-theme="dark"] .main-content .ct-btn-approve.ct-btn-approve--indigo:hover {
    background: #6366f1;
}
[data-theme="dark"] .main-content .ct-btn-approve.ct-btn-approve--ambar,
[data-theme="dark"] .main-content .ct-btn-approve.ct-btn-approve--ambar:hover {
    background: #e8a838;
    color: #0c1222;
}
[data-theme="dark"] .main-content .ct-btn-approve.ct-btn-approve--ambar:hover {
    background: #f0b952;
}
[data-theme="dark"] .main-content .ct-btn-approve.ct-btn-approve--cielo {
    background: #0369a1;
}
[data-theme="dark"] .main-content .ct-btn-approve.ct-btn-approve--cielo:hover {
    background: #0284c7;
}
[data-theme="dark"] .main-content .ct-btn-approve.ct-btn-approve--teja {
    background: #b45309;
}
[data-theme="dark"] .main-content .ct-btn-approve.ct-btn-approve--teja:hover {
    background: #c2410c;
}
[data-theme="dark"] .main-content .ct-btn-approve.ct-btn-approve--pizarra {
    background: #64748b;
}
[data-theme="dark"] .main-content .ct-btn-approve.ct-btn-approve--pizarra:hover {
    background: #475569;
}
[data-theme="dark"] .main-content .ct-btn-approve i,
[data-theme="dark"] .main-content .ct-btn-delete i,
[data-theme="dark"] .main-content .ct-btn-back i {
    color: inherit;
}
/* «Eliminar»: rojo #dc2626 sobre la tarjeta (3,49) y un contorno que no se veía. */
[data-theme="dark"] .main-content .ct-btn-delete:not(#_) {
    background: transparent !important;
    border-color: rgba(248, 113, 113, 0.6) !important;
    color: #fca5a5;
}
[data-theme="dark"] .main-content .ct-btn-delete:not(#_):hover {
    background: rgba(239, 68, 68, 0.18) !important;
    border-color: #f87171 !important;
    color: #fecaca;
}
/* «Volver» y la navegación entre asientos: botones casi BLANCOS (#f8fafc). */
[data-theme="dark"] .main-content .ct-btn-back {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content a.ct-btn-back:hover {
    background: #334155;
    border-color: #94a3b8;
    color: #ffffff;
}
/* Extremo de la navegación (no hay asiento anterior o siguiente): la vista lo atenúa con
   `opacity: .4` en línea; se dice con color para que la flecha siga viéndose apagada
   pero no desaparezca. */
[data-theme="dark"] .main-content span.ct-btn-back[style*="opacity"] {
    opacity: 1 !important;
    background: #111827;
    border-color: #263349;
    color: #64748b !important;
}
/* Rejilla de datos y tabla de líneas */
[data-theme="dark"] .main-content .ct-detail-item:not(#_) {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ct-detail-item .ct-detail-label {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-lines-count {
    color: #f0b952 !important;
}
[data-theme="dark"] .main-content .ct-table tbody td {
    border-bottom-color: #263349 !important;
}
/* Debe y Haber: la regla general de «-amount» los ponía los dos del mismo blanco. En
   claro el Haber va en rojo; aquí también. */
[data-theme="dark"] .main-content .ct-table .ct-amount-debe {
    color: #f1f5f9 !important;
}
[data-theme="dark"] .main-content .ct-table .ct-amount-haber {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ct-table .ct-cuenta-code {
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .ct-table .ct-mono-small {
    color: #cbd5e1;
}
/* Fila de TOTALES: seguía en gris casi blanco (#fafbfc) con las cifras en blanco: 1,06. */
[data-theme="dark"] .main-content .ct-table tfoot td {
    background: #111827 !important;
    border-top-color: #334155 !important;
}
/* Franja de cuadre */
[data-theme="dark"] .main-content .ct-balance-bar.ct-balance-ok {
    background: rgba(16, 185, 129, 0.1);
    border-color: rgba(52, 211, 153, 0.4);
}
[data-theme="dark"] .main-content .ct-balance-bar.ct-balance-error {
    background: rgba(239, 68, 68, 0.12);
    border-color: rgba(248, 113, 113, 0.45);
}
[data-theme="dark"] .main-content .ct-balance-ok .ct-balance-icon {
    background: rgba(16, 185, 129, 0.2);
    color: #34d399 !important;
}
[data-theme="dark"] .main-content .ct-balance-error .ct-balance-icon {
    background: rgba(239, 68, 68, 0.2);
    color: #f87171 !important;
}
[data-theme="dark"] .main-content .ct-balance-icon i {
    color: inherit;
}
[data-theme="dark"] .main-content .ct-balance-ok .ct-balance-title {
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .ct-balance-error .ct-balance-title {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ct-balance-bar .ct-balance-detail {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .ct-balance-bar .ct-balance-causa {
    color: #fecaca !important;
}
[data-theme="dark"] .main-content .ct-nota-fecha-recepcion {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ct-avisos-agente__title {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ct-avisos-agente__list:not(#_) {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ct-avisos-agente__item:not(#_) {
    background: transparent !important;
    color: #fde68a;
}
/* 1.b · Importar asientos (asientos/importar) — clases `ai-*` */
/* Las tarjetas de «qué importar» y de programa de origen tenían un contorno casi BLANCO
   de 2 px (#e2e8f0) y la zona de arrastre había perdido el suyo: la regla general de
   «-drop» lo pone del color de la tarjeta. */
[data-theme="dark"] .main-content .ai-wrap .ai-card:not(#_) {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ai-wrap .ai-mode,
[data-theme="dark"] .main-content .ai-wrap .ai-fmt {
    border-color: #475569;
}
[data-theme="dark"] .main-content .ai-wrap .ai-fmt:hover,
[data-theme="dark"] .main-content .ai-wrap .ai-mode:hover {
    border-color: #a5b4fc;
}
[data-theme="dark"] .main-content .ai-wrap .ai-mode.sel,
[data-theme="dark"] .main-content .ai-wrap .ai-fmt.sel {
    border-color: #818cf8;
    background: rgba(129, 140, 248, 0.14);
}
[data-theme="dark"] .main-content .ai-wrap .ai-fmt-icon {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ai-wrap .ai-fmt-icon i {
    color: inherit;
}
[data-theme="dark"] .main-content .ai-wrap .ai-mode-d,
[data-theme="dark"] .main-content .ai-wrap .ai-fmt-desc,
[data-theme="dark"] .main-content .ai-wrap .ai-stat-l {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ai-wrap .ai-drop:not(#_) {
    border-color: #64748b !important;
}
[data-theme="dark"] .main-content .ai-wrap .ai-drop:not(#_):hover,
[data-theme="dark"] .main-content .ai-wrap .ai-drop.over:not(#_) {
    border-color: #a5b4fc !important;
    background: #1b2233 !important;
}
/* Botones: el principal deshabilitado iba con `opacity: .5` (2,26); «Deshacer» en rojo
   oscuro (3,49) y «Volver» en gris con contorno blanco (3,98). */
[data-theme="dark"] .main-content .ai-wrap .ai-btn-primary {
    background: #4f46e5;
    color: #ffffff;
    box-shadow: inset 0 0 0 1px #818cf8;
}
[data-theme="dark"] .main-content .ai-wrap .ai-btn-primary:disabled {
    box-shadow: inset 0 0 0 1px #475569;
}
[data-theme="dark"] .main-content .ai-wrap .ai-btn-primary:hover {
    background: #6366f1;
}
[data-theme="dark"] .main-content .ai-wrap .ai-btn-primary:disabled {
    opacity: 1;
    background: #263349;
    color: #94a3b8;
}
[data-theme="dark"] .main-content .ai-wrap .ai-btn-ghost {
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ai-wrap .ai-btn-ghost:hover {
    background: #1e293b;
    border-color: #94a3b8;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ai-wrap .ai-btn-danger {
    border-color: rgba(248, 113, 113, 0.8);
    color: #fca5a5;
}
[data-theme="dark"] .main-content .ai-wrap .ai-btn-danger:hover {
    background: rgba(239, 68, 68, 0.18);
    border-color: #f87171;
}
[data-theme="dark"] .main-content .ai-wrap .ai-btn i {
    color: inherit;
}
/* Cifras del análisis y avisos del paso de revisión */
[data-theme="dark"] .main-content .ai-wrap .ai-stat {
    background: #111827;
    border: 1px solid #334155;
}
[data-theme="dark"] .main-content .ai-wrap .ai-stat-n {
    color: #f8fafc;
}
[data-theme="dark"] .main-content .ai-wrap .ai-alert.ai-alert-warn:not(#_) {
    background: rgba(245, 158, 11, 0.12) !important;
    border-color: rgba(252, 211, 77, 0.45) !important;
    color: #fde68a !important;
}
[data-theme="dark"] .main-content .ai-wrap .ai-alert.ai-alert-err:not(#_) {
    background: rgba(239, 68, 68, 0.12) !important;
    border-color: rgba(248, 113, 113, 0.45) !important;
    color: #fecaca !important;
}
[data-theme="dark"] .main-content .ai-wrap .ai-alert.ai-alert-ok:not(#_) {
    background: rgba(16, 185, 129, 0.12) !important;
    border-color: rgba(52, 211, 153, 0.45) !important;
    color: #a7f3d0 !important;
}
/* Lo de DENTRO de un aviso hereda su color: las reglas generales de «-title», «-sub»,
   «-list» e «-item» lo repintaban de blanco y de gris de tarjeta, a parches. */
[data-theme="dark"] .main-content .ai-wrap .ai-alert *:not(a):not(code):not(button):not(input):not(.ai-btn *):not(#_) {
    background: transparent !important;
    border-color: transparent !important;
    color: inherit !important;
}
[data-theme="dark"] .main-content .ai-wrap .ai-alert a:not(.ai-btn):not(#_) {
    color: inherit;
    text-decoration: underline;
}
[data-theme="dark"] .main-content .ai-wrap .ai-tbl td {
    color: #e2e8f0;
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .ai-wrap .ai-tbl .ai-pill-ok {
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .ai-wrap .ai-tbl .ai-pill-bad {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ai-wrap .ai-tbl .ai-pill-rep {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ai-wrap .ai-spin {
    border-color: #475569;
    border-top-color: #a5b4fc;
}

/* 1.c · Historial del asiento (asientos/{id}/audit) */
/* El nombre del campo modificado va en `<code>`: caja gris casi blanca con texto gris
   claro (2,25). Y las líneas entre entradas eran blancas. */
[data-theme="dark"] .main-content code:not(.cg-api-reveal-key) {
    background: #1e293b;
    border-color: #334155;
    color: #fcd34d;
}
[data-theme="dark"] .main-content [style*="border-bottom:1px solid #f1f5f9"],
[data-theme="dark"] .main-content [style*="border-bottom: 1px solid #f1f5f9"],
[data-theme="dark"] .main-content [style*="border-top:1px solid #f1f5f9"],
[data-theme="dark"] .main-content [style*="border-top: 1px solid #f1f5f9"],
[data-theme="dark"] .main-content [style*="border-bottom:1px solid #e2e8f0"],
[data-theme="dark"] .main-content [style*="border-top:1px solid #e2e8f0"],
[data-theme="dark"] .main-content [style*="border-top: 1px solid #e2e8f0"],
[data-theme="dark"] .main-content [style*="border-bottom: 1px solid #e2e8f0"] {
    border-color: #263349 !important;
}

/* 1.d · Plantillas de asiento (asientos/plantillas) y su índice «Reglas y plantillas»:
   familia `ryp-*` de `plan-contable/reglas-y-plantillas.css`. La tabla seguía BLANCA
   entera con el texto ya aclarado por las reglas generales: 1,10-1,23, no se leía ni
   una plantilla. Los botones de la cabecera eran azul marino sobre oscuro (1,06). */
[data-theme="dark"] .main-content .ryp-page:not(#_),
[data-theme="dark"] .main-content .ryp-header:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ryp-subtitle {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ryp-cliente,
[data-theme="dark"] .main-content .ryp-pie,
[data-theme="dark"] .main-content .ryp-vacio,
[data-theme="dark"] .main-content .ryp-tabla-wrap {
    background: #151d2e;
    border-color: #263349;
}
[data-theme="dark"] .main-content .ryp-card:not(#_) {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ryp-card:not(#_):hover {
    border-color: #e8a838 !important;
}
[data-theme="dark"] .main-content .ryp-card-top:not(#_) {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ryp-card-icon:not(#_) {
    background: rgba(232, 168, 56, 0.16) !important;
    color: #f0b952 !important;
}
[data-theme="dark"] .main-content .ryp-card-icon i {
    color: inherit;
}
[data-theme="dark"] .main-content .ryp-cuenta {
    background: #1e293b;
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .ryp-card-texto,
[data-theme="dark"] .main-content .ryp-pie-texto,
[data-theme="dark"] .main-content .ryp-vacio,
[data-theme="dark"] .main-content .ryp-cliente label {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ryp-vacio i {
    color: #64748b;
}
/* `:not(#_)`: su nombre contiene «-card» y la regla general le quitaba fondo y contorno. */
[data-theme="dark"] .main-content .ryp-card-btn:not(#_) {
    background: #1e293b !important;
    border-color: #64748b !important;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ryp-card-btn:not(#_):hover,
[data-theme="dark"] .main-content .ryp-card-btn:not(#_):focus {
    background: #334155 !important;
    border-color: #e8a838 !important;
    color: #f0b952;
}
[data-theme="dark"] .main-content .ryp-card-btn i {
    color: inherit;
}
[data-theme="dark"] .main-content .ryp-tabla td {
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .ryp-tabla .ryp-tabla-nombre {
    color: #f1f5f9 !important;
}
[data-theme="dark"] .main-content .ryp-tabla .ryp-tabla-desc {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ryp-etiqueta {
    background: #1e293b;
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .ryp-etiqueta.ryp-etiqueta--fabrica {
    background: rgba(232, 168, 56, 0.16);
    color: #f0b952 !important;
}
[data-theme="dark"] .main-content .ryp-etiqueta.ryp-etiqueta--formula {
    background: rgba(16, 185, 129, 0.16);
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .ryp-lineas,
[data-theme="dark"] .main-content .ryp-lineas li {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ryp-lineas .ryp-cuenta-mono {
    color: #f0b952 !important;
}

/* ---------- 3. ACTIVOS FIJOS — /user/contabilidad/activos, su ficha, alta y edición ---------- */
/* Desplegable del filtro: su nombre contiene «-filter» y la regla general le quitaba
   fondo y contorno; quedaba como texto suelto sin caja (1,15). */
[data-theme="dark"] .main-content select.ct-filter-select:not(#_) {
    background-color: #1e293b !important;
    border-color: #64748b !important;
    color: #f1f5f9;
}
[data-theme="dark"] .main-content select.ct-filter-select:not(#_):focus {
    border-color: #e8a838 !important;
}
[data-theme="dark"] .main-content .ct-filter-card:not(#_),
[data-theme="dark"] .main-content .af-card:not(#_),
[data-theme="dark"] .main-content .af-detail-card:not(#_),
[data-theme="dark"] .main-content .af-schedule-card:not(#_),
[data-theme="dark"] .main-content .af-form-card:not(#_) {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ct-filter-title:not(#_) {
    background: transparent !important;
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-title-bar {
    background: #e8a838;
}
/* Carril de la barra de amortización: gris casi blanco, así que con un 0 % la barra
   parecía LLENA. */
[data-theme="dark"] .main-content .progress-bar-amort {
    background: #334155;
}
/* Al pasar el ratón la fila se ponía amarillo crema (#fefce8) con el texto ya aclarado. */
[data-theme="dark"] .main-content .af-table tr:hover td {
    background: #1b2233;
}
[data-theme="dark"] .main-content .af-table td,
[data-theme="dark"] .main-content .af-schedule-table td {
    border-bottom-color: #263349 !important;
}
/* Estado del activo: azul #2563eb sobre su velo, 2,88. */
[data-theme="dark"] .main-content .af-estado.af-estado--activo {
    background: rgba(59, 130, 246, 0.16);
    color: #93c5fd !important;
}
[data-theme="dark"] .main-content .af-estado.af-estado--amortizado {
    background: rgba(16, 185, 129, 0.16);
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .af-estado.af-estado--baja {
    background: rgba(239, 68, 68, 0.16);
    color: #fca5a5 !important;
}
/* Botones de contorno: el contorno era casi blanco (#e2e8f0) y el de borrar, rosa claro. */
[data-theme="dark"] .main-content .ct-btn-ghost {
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-btn-ghost:hover {
    background: #1e293b;
    border-color: #94a3b8;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-btn-ghost.ct-btn-ghost--peligro {
    border-color: rgba(248, 113, 113, 0.7);
    color: #fca5a5;
}
[data-theme="dark"] .main-content .ct-btn-ghost.ct-btn-ghost--peligro:hover {
    background: rgba(239, 68, 68, 0.18);
    border-color: #f87171;
    color: #fecaca;
}
[data-theme="dark"] .main-content .ct-btn-ghost i,
[data-theme="dark"] .main-content .ct-btn-cta i {
    color: inherit;
}
[data-theme="dark"] .main-content .ct-btn-cta,
[data-theme="dark"] .main-content .ct-btn-cta:hover {
    color: #0c1222;
}
[data-theme="dark"] .main-content .ct-btn-cta:hover {
    background: #f0b952;
}
/* Ficha: el rótulo de cada dato salía del mismo blanco que su valor. */
[data-theme="dark"] .main-content .af-detail-item:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .af-detail-item label {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .af-detail-item span {
    color: #f1f5f9 !important;
}
/* Formulario de alta y edición */
[data-theme="dark"] .main-content .af-form-card .af-form-label,
[data-theme="dark"] .main-content .af-form-card .af-check {
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .af-form-card .af-form-hint {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .af-form-hint.af-form-hint--aviso,
[data-theme="dark"] .main-content .af-detail-card .af-form-hint {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .af-acciones:not(#_) {
    background: transparent !important;
}

/* ---------- 4. EXPORTAR A CONTABILIDAD — /user/documents/contabilidad-export ---------- */
/* Esta pantalla (y su pestaña de nóminas) ya tiene juego oscuro propio en
   `contabilidad-export.css`, con sus tokens `--ce-*`. Aquí va solo lo que se le quedó
   fuera, medido: */

/* Cabecera: el contenedor lleva la utilidad `justify-content-between`, que contiene
   «-content», y la regla general lo pintaba como una losa detrás del título. */
[data-theme="dark"] .main-content .ce-hoja > .d-flex.justify-content-between:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}

/* Logotipo de cada programa: caja pastel CLARA con el icono aclarado por las reglas
   generales — 1,01 a 1,13: nueve cuadrados lisos, sin dibujo. */
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-icon-xdiario { background: rgba(148, 163, 184, 0.18); color: #cbd5e1; }
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-icon-csv,
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-icon-sage { background: rgba(16, 185, 129, 0.18); color: #6ee7b7; }
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-icon-excel { background: rgba(59, 130, 246, 0.2); color: #93c5fd; }
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-icon-suenlace { background: rgba(236, 72, 153, 0.18); color: #f9a8d4; }
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-icon-cegid-diez { background: rgba(245, 158, 11, 0.18); color: #fcd34d; }
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-icon-glasof { background: rgba(139, 92, 246, 0.2); color: #c4b5fd; }
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-icon-contasol { background: rgba(56, 189, 248, 0.18); color: #7dd3fc; }
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-icon i {
    color: inherit;
}
/* Programa ELEGIDO: la hoja propia lo busca como `.ce-selected`, pero la vista marca la
   tarjeta con `.selected`, así que en oscuro la opción elegida no se distinguía de las
   demás más que por el punto del botón de opción. */
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-option.selected:not(#_) {
    background: var(--ce-ambar-fondo, #2a2213) !important;
    border-color: #e8a838 !important;
    box-shadow: 0 0 0 3px rgba(232, 168, 56, 0.2);
}
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-option.selected .ce-fmt-name {
    color: #f0b84d !important;
}
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-radio {
    border-color: #94a3b8;
}
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-option.selected .ce-fmt-radio {
    border-color: #e8a838;
}
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-chip {
    border-color: rgba(240, 184, 77, 0.55);
}
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-seg.on {
    background: var(--ce-ambar-fondo, #2a2213) !important;
    border-color: #e8a838 !important;
}
[data-theme="dark"] .main-content .ce-hoja .ce-fmt-pick {
    color: #f0b84d;
}
/* «Filtrar»: «-filter» en el nombre → la regla general le quitaba el fondo. */
[data-theme="dark"] .main-content .ce-hoja .ce-btn-filter:not(#_) {
    background: #e8a838 !important;
    color: #0c1222;
}
[data-theme="dark"] .main-content .ce-hoja .ce-btn-filter:not(#_):hover {
    background: #f0b952 !important;
}
[data-theme="dark"] .main-content .ce-hoja .ce-btn-filter i {
    color: inherit;
}
[data-theme="dark"] .main-content .ce-hoja .ce-btn-row:not(#_),
[data-theme="dark"] .main-content .ce-hoja .ce-action-btns:not(#_),
[data-theme="dark"] .main-content .ce-hoja .ce-filter-title:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
/* Contorno de campos y botones secundarios: `--ce-borde` (#2b3444) daba 1,35 contra la
   tarjeta; no se veía dónde acababa cada control. El resto del panel usa #64748b. */
[data-theme="dark"] .main-content .ce-hoja .ce-quarter-btn:not(#_),
[data-theme="dark"] .main-content .ce-hoja .ce-btn-sel:not(#_),
[data-theme="dark"] .main-content .ce-hoja .ce-btn-clear:not(#_),
[data-theme="dark"] .main-content .ce-hoja .ce-btn-preview:not(#_),
[data-theme="dark"] .main-content .ce-hoja .ce-btn-back:not(#_),
[data-theme="dark"] .main-content .ce-hoja .ce-btn-sm-outline:not(#_),
[data-theme="dark"] .main-content .ce-hoja .ce-ver-original:not(#_),
[data-theme="dark"] .main-content .ce-hoja .ce-nif-input:not(#_),
[data-theme="dark"] .main-content .ce-hoja .ce-code-input:not(#_),
[data-theme="dark"] .main-content .ce-hoja select:not(#_),
[data-theme="dark"] .main-content .ce-hoja input[type="text"]:not(#_),
[data-theme="dark"] .main-content .ce-hoja input[type="number"]:not(#_),
[data-theme="dark"] .main-content .ce-hoja input[type="date"]:not(#_) {
    border-color: #64748b !important;
}
[data-theme="dark"] .main-content .ce-hoja select:not(#_):focus,
[data-theme="dark"] .main-content .ce-hoja input[type="text"]:not(#_):focus,
[data-theme="dark"] .main-content .ce-hoja input[type="number"]:not(#_):focus,
[data-theme="dark"] .main-content .ce-hoja input[type="date"]:not(#_):focus {
    border-color: #e8a838 !important;
}
[data-theme="dark"] .main-content .ce-hoja .ce-ver-original.ce-ver-original--vacio:not(#_) {
    border-color: #334155 !important;
    color: #64748b !important;
}
/* Trimestre activo: en claro va en azul marino con texto ámbar; aquí se quedaba igual
   que los otros tres. */
[data-theme="dark"] .main-content .ce-hoja .ce-quarter-btn.active:not(#_),
[data-theme="dark"] .main-content .ce-hoja .ce-quarter-btn:not(#_):hover {
    background: #e8a838 !important;
    border-color: #e8a838 !important;
    color: #0c1222 !important;
}
/* Botones de la barra de acciones deshabilitados: `opacity: .4` (2,25 y 2,67). */
[data-theme="dark"] .main-content .ce-hoja .ce-btn-export:disabled,
[data-theme="dark"] .main-content .ce-hoja .ce-btn-primary-sm:disabled,
[data-theme="dark"] .cg-portal .ce-modal-btn-export:disabled {
    opacity: 1;
    background: #263349;
    color: #94a3b8;
    box-shadow: none;
}
[data-theme="dark"] .main-content .ce-hoja .ce-btn-export:disabled i {
    color: inherit;
}
[data-theme="dark"] .main-content .ce-hoja .ce-btn-preview:not(#_):disabled {
    opacity: 1;
    border-color: #334155 !important;
    color: #8d9bb0 !important;
}
[data-theme="dark"] .main-content .ce-hoja .ce-btn-preview:disabled span,
[data-theme="dark"] .main-content .ce-hoja .ce-btn-preview:disabled i {
    color: inherit !important;
}
/* Diálogo «Vista previa». Todas sus piezas se llaman `ce-modal-*`, y la regla general
   de «-modal» les ponía a TODAS el gris de tarjeta: el velo dejaba de ser translúcido
   (pantalla entera opaca) y cada cifra y cada rótulo salían en su propia losa dentro
   de la caja. Solo las cajas llevan fondo. */
[data-theme="dark"] .main-content .ce-modal-overlay:not(#_) {
    background: rgba(2, 6, 23, 0.72) !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ce-modal:not(#_) {
    border: 1px solid #475569 !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-title:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-body:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-stats:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-money:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-balance:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-stat-val:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-stat-label:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-money-val:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-money-label:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-divider:not(#_) {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-stat-box:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-money-box:not(#_) {
    background: #11161e !important;
    border-color: #3a4557 !important;
}
/* En claro el Haber va en rojo y el Debe en tinta: aquí salían iguales. */
[data-theme="dark"] .main-content .ce-modal .ce-modal-money-box.haber .ce-modal-money-val:not(#_) {
    color: #fca5a5 !important;
}
/* «Cuadrado» / «Descuadre»: el texto va en un `<span>` y salía blanco sobre su velo. */
[data-theme="dark"] .main-content .ce-modal .ce-badge-balanced span,
[data-theme="dark"] .main-content .ce-modal .ce-badge-balanced i {
    color: inherit !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-warning:not(#_) {
    background: #2a2213 !important;
    border-color: rgba(240, 184, 77, 0.45) !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-error-box:not(#_) {
    background: #2c1618 !important;
    border-color: rgba(255, 107, 107, 0.5) !important;
    color: #ffb3b3 !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-warning .ce-warn-title:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-warning .ce-warn-list:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-warning .ce-warn-list li {
    background: transparent !important;
    color: #f0c274 !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-error-box .ce-warn-title:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-error-box .ce-warn-list:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-modal-error-box .ce-warn-list li,
[data-theme="dark"] .main-content .ce-modal .ce-modal-error-box strong,
[data-theme="dark"] .main-content .ce-modal .ce-modal-error-box span {
    background: transparent !important;
    color: #ffb3b3 !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-numeracion-fichero__titulo:not(#_),
[data-theme="dark"] .main-content .ce-modal .ce-numeracion-fichero__lista:not(#_) {
    background: transparent !important;
}
/* Aviso de cuentas provisionales: recuadro CREMA con la frase principal en gris claro. */
[data-theme="dark"] .main-content .ce-modal .ce-modal-aviso-prov:not(#_) {
    background: #2a2213 !important;
    border-color: transparent !important;
    border-left-color: #e8a838 !important;
    color: #f0c274 !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-aviso-prov strong,
[data-theme="dark"] .main-content .ce-modal .ce-modal-aviso-prov span,
[data-theme="dark"] .main-content .ce-modal .ce-modal-aviso-prov i {
    color: #f7d9a0 !important;
}
/* Botones del pie: «Cerrar» era blanco y «Descargar fichero» blanco sobre ámbar (2,0). */
[data-theme="dark"] .main-content .ce-modal .ce-modal-btn-close:not(#_) {
    background: #1e293b !important;
    border-color: #64748b !important;
    color: #e2e8f0 !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-btn-close:not(#_):hover {
    background: #334155 !important;
    color: #ffffff !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-close:not(#_) {
    background: #1e293b !important;
    border-color: #475569 !important;
    color: #e2e8f0 !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-btn-export:not(#_) {
    background: #e8a838 !important;
    color: #0c1222;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-btn-export:not(#_):hover {
    background: #f0b952 !important;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-btn-export:not(#_):disabled {
    opacity: 1;
    background: #263349 !important;
    color: #94a3b8;
    box-shadow: none;
}
[data-theme="dark"] .main-content .ce-modal .ce-modal-btn-export i {
    color: inherit;
}

/* Flechas de orden de la tabla: 1,41. */
[data-theme="dark"] .main-content .ce-hoja .ce-table thead th .sort-icon {
    opacity: 1;
    color: #64748b;
}
[data-theme="dark"] .main-content .ce-hoja .ce-table thead th .sort-icon.active {
    color: #e8a838;
}

/* 4.b · Historial de exportaciones (contabilidad-export/history) — clases `ceh-*` */
/* La fila de avisos de cada fichero seguía en CREMA (#fffbeb) a todo el ancho, y los
   distintivos «Completada» y «Nóminas» eran pastel claro con el texto ya aclarado
   (1,09 y 1,11). «Volver al exportador» salía en azul de enlace sobre ámbar (1,15). */
[data-theme="dark"] .main-content .ceh-wrap .ceh-head:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ceh-wrap a.ceh-back:not(#_),
[data-theme="dark"] .main-content .ceh-wrap a.ceh-back:not(#_):hover {
    color: #0c1222;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-zona {
    background: rgba(245, 158, 11, 0.16);
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-table thead {
    background: #111827;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-tag.ceh-tag--nomina {
    background: rgba(245, 158, 11, 0.16);
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-tag.ceh-tag--ok {
    background: rgba(16, 185, 129, 0.16);
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-tag.ceh-tag--ko {
    background: rgba(239, 68, 68, 0.16);
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-ok {
    color: #34d399;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-ko,
[data-theme="dark"] .main-content .ceh-wrap .ceh-warn-inline {
    color: #f87171 !important;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-file {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-muted,
[data-theme="dark"] .main-content .ceh-wrap .ceh-dash,
[data-theme="dark"] .main-content .ceh-wrap .ceh-identico,
[data-theme="dark"] .main-content .ceh-wrap .ceh-empty {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-avisos {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-avisos-fila > td {
    background: rgba(245, 158, 11, 0.1);
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-avisos-fila:hover {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-avisos-fila summary {
    color: #fcd34d;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-avisos-lista:not(#_) {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ceh-wrap .ceh-avisos-lista li {
    color: #fde68a;
}

/* ---------- 5. LIBROS CONTABLES — /user/contabilidad/libros/* ---------- */
/* Las trece pestañas comparten cabecera, pestañas, tarjeta de exportar y de filtros. */

/* Pestañas de libro: doce botones casi BLANCOS (#f8fafc) con el rótulo en azul de
   enlace (1,72), y la activa en azul marino sobre el fondo oscuro. */
[data-theme="dark"] .main-content .ct-libro-tabs:not(#_),
[data-theme="dark"] .main-content .ct-sub-tabs:not(#_),
[data-theme="dark"] .main-content .ct-quarter-btns:not(#_),
[data-theme="dark"] .main-content .ct-date-shortcuts:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content a.ct-libro-tab:not(#_) {
    background: #1e293b;
    border-color: #475569;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content a.ct-libro-tab:not(#_):hover {
    background: #334155;
    border-color: #94a3b8;
    color: #ffffff;
}
[data-theme="dark"] .main-content a.ct-libro-tab.ct-libro-tab--active:not(#_),
[data-theme="dark"] .main-content a.ct-libro-tab.ct-libro-tab--active:not(#_):hover {
    background: #e8a838;
    border-color: #e8a838;
    color: #0c1222;
    box-shadow: none;
}
[data-theme="dark"] .main-content .ct-libro-tab i {
    color: inherit;
}
/* Subpestañas (Emitidas / Recibidas / Intracomunitarias…): la activa era azul marino
   sobre la tarjeta oscura y no se sabía cuál estaba abierta. */
/* `!important`: «-sub» está en la lista de texto secundario de la regla general. */
[data-theme="dark"] .main-content .ct-sub-tab {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .ct-sub-tab:hover {
    background: #1e293b;
    color: #ffffff !important;
}
[data-theme="dark"] .main-content .ct-sub-tab.active,
[data-theme="dark"] .main-content .ct-sub-tab.active:hover {
    background: #e8a838;
    color: #0c1222 !important;
}
/* Segunda línea de una factura con varios tipos de IVA: la vista la sombrea con un gris
   claro al 40 % calculado en el servidor, que sobre la tarjeta oscura es un gris medio
   (#6d737f) donde el texto baja a 1,85-3,85. */
[data-theme="dark"] .main-content tr[style*="rgba(241,245,249,0.4)"] {
    background: rgba(148, 163, 184, 0.08) !important;
}
[data-theme="dark"] .main-content .ct-sub-tab .ct-count {
    background: #334155;
    color: #e2e8f0 !important;
}
[data-theme="dark"] .main-content .ct-sub-tab.active .ct-count {
    background: rgba(12, 18, 34, 0.2);
    color: #0c1222 !important;
}
/* Botones de trimestre y atajos de fecha: blancos. */
[data-theme="dark"] .main-content .ct-quarter-btn,
[data-theme="dark"] .main-content .ct-date-shortcut-btn {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-quarter-btn:hover,
[data-theme="dark"] .main-content .ct-quarter-btn.active,
[data-theme="dark"] .main-content .ct-date-shortcut-btn:hover {
    background: #e8a838;
    border-color: #e8a838;
    color: #0c1222;
}
/* Tarjetas de exportar, filtros y resumen */
[data-theme="dark"] .main-content .ct-export-card:not(#_),
[data-theme="dark"] .main-content .ct-summary-card:not(#_) {
    border: 1px solid #263349 !important;
}
[data-theme="dark"] .main-content .ct-summary-card:not(#_) {
    border-top: 3px solid #e8a838 !important;
}
[data-theme="dark"] .main-content .ct-export-title:not(#_),
[data-theme="dark"] .main-content .ct-summary-header:not(#_) {
    background: transparent !important;
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ct-export-title:not(#_) {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-btn-excel,
[data-theme="dark"] .main-content .ct-btn-excel:hover {
    color: #0c1222;
}
[data-theme="dark"] .main-content .ct-btn-excel i {
    color: inherit;
}
[data-theme="dark"] .main-content .ct-card-title i,
[data-theme="dark"] .main-content .ct-summary-title i {
    color: #e8a838;
}
[data-theme="dark"] .main-content .ct-breadcrumb,
[data-theme="dark"] .main-content .ct-breadcrumb a {
    color: #94a3b8;
}
/* Códigos (número de factura, NIF): 302 cajas casi BLANCAS con el texto ya aclarado —
   1,18: no se leía ni un número de factura ni un NIF de todo el libro. */
[data-theme="dark"] .main-content .ct-code {
    background: #1e293b;
    border-color: #334155;
    color: #f1f5f9 !important;
}
[data-theme="dark"] .main-content a .ct-code {
    color: #bfdbfe !important;
}
[data-theme="dark"] .main-content .ct-money {
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ct-money-bold {
    color: #f8fafc;
}
/* Tipos de IVA: pastel claro con texto gris (4,34 el 0 %). */
[data-theme="dark"] .main-content .ct-badge-iva,
[data-theme="dark"] .main-content .ct-badge-iva.ct-badge-iva-0,
[data-theme="dark"] .main-content .ct-badge-country {
    background: #1e293b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-badge-iva.ct-badge-iva-21,
[data-theme="dark"] .main-content .ct-badge-clave.ct-badge-clave-a {
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
}
[data-theme="dark"] .main-content .ct-badge-iva.ct-badge-iva-10,
[data-theme="dark"] .main-content .ct-badge-clave.ct-badge-clave-e {
    background: rgba(16, 185, 129, 0.18);
    color: #6ee7b7;
}
[data-theme="dark"] .main-content .ct-badge-iva.ct-badge-iva-4 {
    background: rgba(245, 158, 11, 0.18);
    color: #fcd34d;
}
[data-theme="dark"] .main-content .ct-badge-iva.ct-badge-iva-re {
    background: rgba(217, 70, 239, 0.18);
    color: #f0abfc;
}
[data-theme="dark"] .main-content .ct-badge-iva.ct-badge-iva-exenta {
    background: #334155;
    color: #e2e8f0;
}
/* Clave de operación (libro de IVA y fichas): violeta muy claro con texto aclarado, 1,10. */
[data-theme="dark"] .main-content .cg-clave-op {
    background: rgba(129, 140, 248, 0.18);
    border-color: rgba(165, 180, 252, 0.4);
    color: #c7d2fe !important;
}
[data-theme="dark"] .main-content .cg-clave-op.cg-clave-op--pendiente {
    background: rgba(245, 158, 11, 0.16);
    border-color: rgba(252, 211, 77, 0.4);
    color: #fcd34d !important;
}
/* Fila de totales y diferencias */
[data-theme="dark"] .main-content .ct-table .ct-totals-row td {
    background: #111827 !important;
    border-top: 1px solid #334155 !important;
}
[data-theme="dark"] .main-content .ct-table .ct-totals-row .ct-money,
[data-theme="dark"] .main-content .ct-table .ct-totals-row .ct-money-bold {
    color: #f0b952 !important;
}
[data-theme="dark"] .main-content .ct-table .ct-totals-label {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-diff-positive,
[data-theme="dark"] .main-content .ct-diff-sublabel.ct-diff-sublabel-ingresar {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ct-diff-negative,
[data-theme="dark"] .main-content .ct-diff-sublabel.ct-diff-sublabel-compensar {
    color: #4ade80 !important;
}
/* 5.b · Libro Diario y Libro Mayor */
/* En estos dos libros `ct-btn-ghost` trae fondo casi blanco (#f8fafc) de origen: el
   texto que la regla de más arriba aclara quedaba en 1,42. En oscuro lleva su caja. */
[data-theme="dark"] .main-content .ct-btn-ghost {
    background: #1e293b;
}
[data-theme="dark"] .main-content .ct-btn-ghost:hover {
    background: #334155;
}
[data-theme="dark"] .main-content .ct-btn-print {
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-btn-print:hover {
    border-color: #e8a838;
    color: #f0b952;
}
[data-theme="dark"] .main-content .ct-btn-print i {
    color: inherit;
}
[data-theme="dark"] .main-content .ct-card-export:not(#_) {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ct-toggle-all:not(#_) {
    background: #1e293b !important;
    border-color: #64748b !important;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-toggle-all:not(#_):hover {
    border-color: #e8a838 !important;
    color: #f0b952;
}
/* Flecha de desplegar cada asiento: 200 cuadraditos claros con la flecha aclarada (1,13). */
[data-theme="dark"] .main-content .ct-chevron {
    background: #1e293b;
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .ct-chevron i {
    color: inherit;
}
[data-theme="dark"] .main-content .ct-asiento-master:hover .ct-chevron {
    background: #334155;
    color: #ffffff !important;
}
[data-theme="dark"] .main-content .ct-asiento-master.is-open .ct-chevron {
    background: #e8a838;
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .ct-asiento-master td {
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content tr.ct-asiento-master:hover {
    background: #1b2233 !important;
}
[data-theme="dark"] .main-content tr.ct-asiento-master.is-open {
    background: rgba(232, 168, 56, 0.06) !important;
}
[data-theme="dark"] .main-content tr.ct-linea-row {
    background: #111827;
}
[data-theme="dark"] .main-content .ct-separator td,
[data-theme="dark"] .main-content .ct-row-month-subtotal td {
    background: #111827 !important;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-row-apertura td {
    background: rgba(59, 130, 246, 0.1);
    color: #93c5fd;
}
[data-theme="dark"] .main-content .ct-cuenta {
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .ct-badge-ok {
    background: rgba(16, 185, 129, 0.16);
    color: #6ee7b7;
}
[data-theme="dark"] .main-content .ct-badge-error {
    background: rgba(239, 68, 68, 0.16);
    color: #fca5a5;
}
[data-theme="dark"] .main-content .ct-badge-count {
    color: #f0b952 !important;
}
[data-theme="dark"] .main-content #ct-verify-chain-btn {
    border-color: #60a5fa !important;
}
/* Casilla de punteo: cuadrado blanco con contorno claro en cada fila. */
[data-theme="dark"] .main-content .js-puntear-btn {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
/* Mayor: tarjeta de cada cuenta */
[data-theme="dark"] .main-content .ct-account-card:not(#_) {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ct-account-header:not(#_) {
    border-color: transparent !important;
    border-left-color: #e8a838 !important;
}
[data-theme="dark"] .main-content .ct-account-header:not(#_):hover {
    background: #1b2233 !important;
}
[data-theme="dark"] .main-content .ct-account-header .ct-account-name {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .ct-account-header .ct-account-meta:not(#_) {
    background: transparent !important;
    color: #94a3b8;
}
/* Saldo deudor y acreedor: en claro, rojo y verde. La regla general los igualaba. */
[data-theme="dark"] .main-content .ct-saldo-deudor {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ct-saldo-acreedor {
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .ct-badge-anomalo {
    color: #fcd34d;
}
[data-theme="dark"] .main-content .ct-mayor-drill,
[data-theme="dark"] .main-content .ct-mayor-drill i {
    color: #93c5fd;
}
[data-theme="dark"] .main-content .ct-iva-liq-cta:not(#_) {
    background: rgba(16, 185, 129, 0.1) !important;
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ct-iva-liq-cta .ct-iva-liq-texto,
[data-theme="dark"] .main-content .ct-iva-liq-cta .ct-iva-liq-label {
    color: #a7f3d0 !important;
}
[data-theme="dark"] .main-content .ct-iva-liq-cta .ct-iva-liq-form:not(#_) {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ct-iva-liq-cta .ct-iva-liq-enlace {
    color: #a7f3d0 !important;
}

/* Pantalla «Regularización del IVA» (iva-liquidacion.css) */
[data-theme="dark"] .main-content .ivl-card:not(#_) {
    background: #1e293b !important;
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ivl-titulo,
[data-theme="dark"] .main-content .ivl-tabla td {
    color: #e2e8f0 !important;
}
[data-theme="dark"] .main-content .ivl-sub,
[data-theme="dark"] .main-content .ivl-nota,
[data-theme="dark"] .main-content .ivl-tabla th {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ivl-tabla th,
[data-theme="dark"] .main-content .ivl-tabla td {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ivl-tabla tr.ivl-sugerido td {
    background: rgba(232, 168, 56, 0.08) !important;
}
[data-theme="dark"] .main-content .ivl-confirmacion:not(#_) {
    background: rgba(232, 168, 56, 0.08) !important;
    border-color: #92400e !important;
}
[data-theme="dark"] .main-content .ivl-confirmacion-titulo,
[data-theme="dark"] .main-content .ivl-confirmacion ul {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ivl-btn:not(#_) {
    background: #0f172a !important;
    color: #e2e8f0 !important;
    border-color: #475569 !important;
}
[data-theme="dark"] .main-content .ivl-btn:not(#_):hover,
[data-theme="dark"] .main-content .ivl-btn:not(#_):focus {
    background: #1e293b !important;
    border-color: #64748b !important;
}
[data-theme="dark"] .main-content .ivl-btn.ivl-btn--primario:not(#_) {
    background: #e8a838 !important;
    color: #0f172a !important;
    border-color: #e8a838 !important;
}
[data-theme="dark"] .main-content .ivl-estado--ok:not(#_) {
    color: #6ee7b7 !important;
    background: rgba(16, 185, 129, 0.12) !important;
    border-color: #065f46 !important;
}
[data-theme="dark"] .main-content .ivl-estado--borrador:not(#_) {
    color: #fcd34d !important;
    background: rgba(232, 168, 56, 0.12) !important;
    border-color: #92400e !important;
}
[data-theme="dark"] .main-content .ivl-estado--pendiente:not(#_),
[data-theme="dark"] .main-content .ivl-estado--cerrado:not(#_) {
    color: #cbd5e1 !important;
    background: #0f172a !important;
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .ivl-estado--resto:not(#_) {
    color: #fdba74 !important;
    background: rgba(234, 88, 12, 0.12) !important;
    border-color: #9a3412 !important;
}
[data-theme="dark"] .main-content .ivl-destino:not(#_),
[data-theme="dark"] .main-content .ct-iva-liq-select:not(#_) {
    background: #0f172a !important;
    color: #e2e8f0 !important;
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .ct-hint {
    color: #94a3b8 !important;
}

[data-theme="dark"] .main-content .ct-traspaso-bar {
    border: 1px solid #475569;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
}

/* 5.c · Balance de sumas y saldos */
/* Franja de cuadre: degradado verde (o rojo) CLARO con el texto aclarado por las reglas
   generales: «Balance cuadrado» en 1,18. */
[data-theme="dark"] .main-content .ct-balance-status.ct-balance-ok {
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(52, 211, 153, 0.45);
}
[data-theme="dark"] .main-content .ct-balance-status.ct-balance-error {
    background: rgba(239, 68, 68, 0.12);
    border-color: rgba(248, 113, 113, 0.45);
}
[data-theme="dark"] .main-content .ct-balance-status.ct-balance-ok .ct-balance-icon {
    background: #22c55e;
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .ct-balance-status.ct-balance-error .ct-balance-icon {
    background: #ef4444;
    color: #ffffff !important;
}
[data-theme="dark"] .main-content .ct-balance-status.ct-balance-ok strong,
[data-theme="dark"] .main-content .ct-balance-status.ct-balance-ok span:not(.ct-hash-badge) {
    color: #a7f3d0 !important;
}
[data-theme="dark"] .main-content .ct-balance-status.ct-balance-error strong,
[data-theme="dark"] .main-content .ct-balance-status.ct-balance-error span:not(.ct-hash-badge) {
    color: #fecaca !important;
}
/* Huella SHA-256 del libro: pastilla casi blanca. */
[data-theme="dark"] .main-content .ct-hash-badge:not(#_) {
    background: #1e293b !important;
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .ct-hash-badge i {
    color: inherit;
}
/* Interruptores «Agrupar por PGC» / «3 col»: carril gris claro, sin distinguir apagado. */
[data-theme="dark"] .main-content .ct-switch {
    background: #475569;
    box-shadow: inset 0 0 0 1px #64748b;
}
[data-theme="dark"] .main-content .ct-switch.active {
    background: #e8a838;
    box-shadow: none;
}
[data-theme="dark"] .main-content .ct-pgc-toggle:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ct-pgc-toggle .ct-pgc-label {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .ct-btn-sm.ct-btn-sm-outline {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-btn-sm.ct-btn-sm-outline:hover {
    background: #334155;
    border-color: #94a3b8;
    color: #ffffff;
}

/* 5.e · Libros IRPF (`ct-lir-*`), Saldos mensuales (`ct-sm-*`) y asiento del Mayor */
[data-theme="dark"] .main-content .ct-lir-header:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ct-lir-legal {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .ct-lir-card:not(#_),
[data-theme="dark"] .main-content .ct-lir-filter-card:not(#_),
[data-theme="dark"] .main-content .ct-lir-export-card:not(#_) {
    border: 1px solid #263349 !important;
}
[data-theme="dark"] .main-content .ct-lir-card-head {
    border-bottom-color: #263349;
}
[data-theme="dark"] .main-content .ct-lir-table tbody td {
    border-bottom-color: #263349 !important;
}
/* Pie de totales del libro: gris casi blanco con las cifras aclaradas (1,19). */
[data-theme="dark"] .main-content .ct-lir-table tfoot td {
    background: #111827 !important;
    border-top-color: #334155 !important;
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .ct-lir-code {
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .ct-lir-num {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .ct-lir-nodeduc {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ct-lir-badge-nd {
    background: rgba(239, 68, 68, 0.16);
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ct-lir-warning {
    background: rgba(232, 168, 56, 0.12);
    border-color: rgba(232, 168, 56, 0.45);
    color: #fde68a;
}
[data-theme="dark"] .main-content .ct-lir-subgroup:not(#_) {
    background: rgba(232, 168, 56, 0.08) !important;
    border-color: rgba(232, 168, 56, 0.45) !important;
}
[data-theme="dark"] .main-content .ct-lir-subgroup .ct-lir-subgroup-label {
    color: #f0b952 !important;
}
[data-theme="dark"] .main-content .ct-lir-export-title:not(#_) {
    background: transparent !important;
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-lir-filter-card .ct-lir-filter-label {
    background: transparent !important;
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-lir-export-card .ct-lir-btn-excel,
[data-theme="dark"] .main-content .ct-lir-export-card .ct-lir-btn-excel:hover {
    color: #0c1222;
}
[data-theme="dark"] .main-content .ct-lir-btn-excel i {
    color: inherit;
}
[data-theme="dark"] .main-content .ct-lir-empty .ct-lir-empty-icon {
    background: #1e293b !important;
}
[data-theme="dark"] .main-content .ct-lir-empty .ct-lir-empty-desc {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content a.ct-quarter-btn:not(#_) {
    background: #1e293b !important;
    border-color: #64748b !important;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content a.ct-quarter-btn:not(#_):hover,
[data-theme="dark"] .main-content a.ct-quarter-btn.active:not(#_) {
    background: #e8a838 !important;
    border-color: #e8a838 !important;
    color: #0c1222;
}
/* Saldos mensuales: celdas a cero, negativos y el conmutador de vista */
[data-theme="dark"] .main-content .ct-sm-table td.ct-sm-h0 {
    color: #64748b;
}
[data-theme="dark"] .main-content .ct-sm-table td.ct-sm-h3 {
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-sm-table td.ct-sm-neg {
    color: #fca5a5;
}
[data-theme="dark"] .main-content .ct-sm-toggle {
    border-color: #64748b;
}
[data-theme="dark"] .main-content .ct-sm-toggle a:not(#_) {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-sm-toggle a.on:not(#_) {
    background: #e8a838;
    color: #0c1222;
}
/* Diálogo del asiento desde el Libro Mayor */
[data-theme="dark"] .main-content .ct-mayor-modal-overlay:not(#_) {
    background: rgba(2, 6, 23, 0.72) !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ct-mayor-modal:not(#_) {
    border: 1px solid #475569 !important;
}
[data-theme="dark"] .main-content .ct-mayor-modal-head:not(#_) {
    background: #0f172a !important;
    border-bottom: 1px solid #334155 !important;
}
[data-theme="dark"] .main-content .ct-mayor-modal-title:not(#_),
[data-theme="dark"] .main-content .ct-mayor-modal-sub:not(#_),
[data-theme="dark"] .main-content .ct-mayor-modal-x:not(#_),
[data-theme="dark"] .main-content .ct-mayor-modal-meta:not(#_),
[data-theme="dark"] .main-content .ct-mayor-modal-state:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ct-mayor-modal-title span {
    color: #f0b952 !important;
}
[data-theme="dark"] .main-content .ct-mayor-modal-sub:not(#_),
[data-theme="dark"] .main-content .ct-mayor-modal-meta:not(#_) {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-mayor-modal-x:not(#_) {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-mayor-modal-foot:not(#_) {
    background: #111827 !important;
    border-top-color: #263349 !important;
}
[data-theme="dark"] .main-content .ct-mayor-btn-gold,
[data-theme="dark"] .main-content .ct-mayor-btn-gold:hover {
    color: #0c1222;
}
[data-theme="dark"] .main-content .ct-mayor-btn-ghost {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-mayor-btn-ghost:hover {
    background: #334155;
    color: #ffffff;
}
[data-theme="dark"] .main-content a.ct-mayor-jump:not(#_) {
    background: rgba(232, 168, 56, 0.14);
    border-color: rgba(232, 168, 56, 0.5);
    color: #f0b952;
}
[data-theme="dark"] .main-content a.ct-mayor-jump:not(#_):hover {
    background: #e8a838;
    color: #0c1222;
}

/* 5.a · Registros de IVA: franja verde «libro oficial» y pie «¿Los números cuadran?».
   La franja seguía con su degradado verde CLARO y el texto aclarado: 1,00. */
[data-theme="dark"] .main-content .ct-libro-oficial {
    background: rgba(16, 185, 129, 0.12);
    border-left-color: #34d399;
    color: #a7f3d0;
    box-shadow: none;
}
[data-theme="dark"] .main-content .ct-libro-oficial .ct-libro-oficial__ico {
    background: #34d399;
}
[data-theme="dark"] .main-content .ct-libro-oficial .ct-libro-oficial__ico i {
    color: #0c1222;
}
[data-theme="dark"] .main-content .ct-libro-oficial .ct-libro-oficial__cuerpo,
[data-theme="dark"] .main-content .ct-libro-oficial .ct-libro-oficial__cuerpo div {
    color: #a7f3d0;
}
[data-theme="dark"] .main-content .ct-libro-oficial .ct-libro-oficial__tit:not(#_) {
    color: #d1fae5 !important;
}
[data-theme="dark"] .main-content .ct-libro-cta303 {
    background: #111827;
    border-top-color: #263349;
}
[data-theme="dark"] .main-content .ct-libro-cta303 .ct-libro-cta303__fila:not(#_) {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ct-libro-cta303 .ct-libro-cta303__texto {
    color: #94a3b8;
}
/* El botón principal pequeño es ámbar en unos libros y azul marino (#1F4E79) en otros
   (PyG): sobre el fondo oscuro el marino no se despegaba (2,18). En oscuro, ámbar. */
[data-theme="dark"] .main-content .ct-btn-sm.ct-btn-sm-primary {
    background: #e8a838;
    color: #0c1222;
}
[data-theme="dark"] .main-content .ct-btn-sm.ct-btn-sm-primary:hover {
    background: #f0b952;
    color: #0c1222;
}

/* 5.d · Estados y resúmenes: PyG, Balance de situación, EFE, Gastos por tipo, Resumen,
   Retenciones. Cada uno trae su prefijo (`pyg-`, `bs-`, `efe-`, `gt-`, `ri-`, `re-`)
   pero el mismo defecto: las filas de sección, subtotal y resultado conservaban su
   fondo CLARO con el texto ya aclarado — 1,13 a 1,18: no se leía «A) RESULTADO DE
   EXPLOTACIÓN» ni su importe. */
[data-theme="dark"] .main-content .pyg-card:not(#_),
[data-theme="dark"] .main-content .bs-card:not(#_),
[data-theme="dark"] .main-content .efe-card:not(#_),
[data-theme="dark"] .main-content .gt-card:not(#_),
[data-theme="dark"] .main-content .ri-card:not(#_),
[data-theme="dark"] .main-content .re-card:not(#_),
[data-theme="dark"] .main-content .ct-kpi-card:not(#_) {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ri-kpi {
    background: #151d2e;
    border-color: #263349;
}
[data-theme="dark"] .main-content .pyg-table td,
[data-theme="dark"] .main-content .bs-table td,
[data-theme="dark"] .main-content .efe-table td,
[data-theme="dark"] .main-content .gt-table td,
[data-theme="dark"] .main-content .ri-table td,
[data-theme="dark"] .main-content .re-table td {
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .pyg-section td,
[data-theme="dark"] .main-content .bs-section td,
[data-theme="dark"] .main-content .efe-section td,
[data-theme="dark"] .main-content .ct-grupo-header td,
[data-theme="dark"] .main-content .gt-table tfoot td,
[data-theme="dark"] .main-content .ri-table tfoot td,
[data-theme="dark"] .main-content .re-table tfoot td,
[data-theme="dark"] .main-content .ct-table tfoot td {
    background: #111827 !important;
    border-color: #334155 !important;
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .pyg-subtotal td,
[data-theme="dark"] .main-content .bs-subtotal td {
    background: #1b2233;
}
[data-theme="dark"] .main-content .pyg-subitem td {
    background: #111827;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .pyg-result td {
    background: rgba(16, 185, 129, 0.12);
    border-top-color: rgba(52, 211, 153, 0.5) !important;
}
[data-theme="dark"] .main-content .pyg-grand td,
[data-theme="dark"] .main-content .pyg-grand td strong {
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-pyg-excep-row td:not(#_) {
    background: rgba(245, 158, 11, 0.14) !important;
    border-top-color: rgba(252, 211, 77, 0.5) !important;
    color: #fde68a;
}
[data-theme="dark"] .main-content .ct-verification-ok td {
    background: rgba(16, 185, 129, 0.1);
}
[data-theme="dark"] .main-content .ct-verification-error td {
    background: rgba(239, 68, 68, 0.12);
}
/* Positivo y negativo: en claro, verde y rojo. La regla general de las celdas los
   ponía los dos del mismo gris claro: una pérdida y un beneficio se leían igual. */
[data-theme="dark"] .main-content td.pos,
[data-theme="dark"] .main-content td.pos strong,
[data-theme="dark"] .main-content span.pos,
[data-theme="dark"] .main-content .ct-kpi-value.pos,
[data-theme="dark"] .main-content .pyg-var.pos {
    color: #34d399 !important;
}
[data-theme="dark"] .main-content td.neg,
[data-theme="dark"] .main-content td.neg strong,
[data-theme="dark"] .main-content span.neg,
[data-theme="dark"] .main-content .ct-kpi-value.neg,
[data-theme="dark"] .main-content .pyg-var.neg {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ct-kpi-card .ct-kpi-label {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .pyg-table .pyg-pct,
[data-theme="dark"] .main-content .pyg-table .pyg-y1 {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .pyg-table .pyg-pct strong {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content a.pyg-drill-link:not(#_) {
    color: inherit;
    border-bottom-color: #64748b;
}
[data-theme="dark"] .main-content a.pyg-drill-link:not(#_):hover {
    color: #93c5fd;
    border-bottom-color: #93c5fd;
}
[data-theme="dark"] .main-content .pyg-toggle-arrow,
[data-theme="dark"] .main-content .pyg-drill-icon {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .ct-banner-info:not(#_) {
    background: rgba(59, 130, 246, 0.12) !important;
    border-color: rgba(147, 197, 253, 0.45) !important;
    color: #bfdbfe;
}
[data-theme="dark"] .main-content .ct-banner-warn:not(#_) {
    background: rgba(245, 158, 11, 0.12) !important;
    border-color: rgba(252, 211, 77, 0.45) !important;
    color: #fde68a;
}
[data-theme="dark"] .main-content .ct-banner-info *:not(a):not(#_),
[data-theme="dark"] .main-content .ct-banner-warn *:not(a):not(#_) {
    background: transparent !important;
    color: inherit !important;
}
[data-theme="dark"] .main-content .ct-anomalo-badge {
    background: rgba(245, 158, 11, 0.18);
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .cuadre-ok {
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(52, 211, 153, 0.45);
}
[data-theme="dark"] .main-content .cuadre-err {
    background: rgba(239, 68, 68, 0.12);
    border-color: rgba(248, 113, 113, 0.45);
}
[data-theme="dark"] .main-content .gt-bar {
    background: #334155;
}
/* Cabeceras de página de estos libros: losa gris detrás del título («-header»). */
[data-theme="dark"] .main-content .efe-header:not(#_),
[data-theme="dark"] .main-content .gt-header:not(#_),
[data-theme="dark"] .main-content .ri-header:not(#_),
[data-theme="dark"] .main-content .re-header:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .efe-card-header:not(#_),
[data-theme="dark"] .main-content .gt-card-header:not(#_),
[data-theme="dark"] .main-content .ri-card-header:not(#_),
[data-theme="dark"] .main-content .re-card-header:not(#_) {
    border-bottom-color: #263349 !important;
}
/* Botón «Filtrar» / «Calcular»: azul marino sobre la tarjeta oscura (1,06), solo se
   veía el texto. */
[data-theme="dark"] .main-content .efe-btn,
[data-theme="dark"] .main-content .gt-btn,
[data-theme="dark"] .main-content .ri-btn,
[data-theme="dark"] .main-content .re-btn {
    background: #e8a838;
    color: #0c1222;
}
[data-theme="dark"] .main-content .efe-btn:hover,
[data-theme="dark"] .main-content .gt-btn:hover,
[data-theme="dark"] .main-content .ri-btn:hover,
[data-theme="dark"] .main-content .re-btn:hover {
    background: #f0b952;
}
[data-theme="dark"] .main-content .efe-btn i,
[data-theme="dark"] .main-content .gt-btn i,
[data-theme="dark"] .main-content .ri-btn i,
[data-theme="dark"] .main-content .re-btn i {
    color: inherit;
}
[data-theme="dark"] .main-content .ri-kpi .ri-kpi-label {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ri-kpi .ri-kpi-value.pos {
    color: #34d399 !important;
}
[data-theme="dark"] .main-content .ri-kpi .ri-kpi-value.neg {
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ri-kpis:not(#_) {
    background: transparent !important;
}
[data-theme="dark"] .main-content .efe-empty,
[data-theme="dark"] .main-content .gt-empty,
[data-theme="dark"] .main-content .ri-empty,
[data-theme="dark"] .main-content .re-empty {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .ct-btn-sm.ct-btn-sm-primary.ct-btn-sm--verde {
    background: #047857;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-btn-sm.ct-btn-sm-primary.ct-btn-sm--verde:hover {
    background: #059669;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-btn-sm i {
    color: inherit;
}

/* ---------- 6. CUADRE CONTABLE — /user/contabilidad/cuadre y la ficha de cada cliente ---------- */
/* Distintivos y puntuaciones en pastel CLARO con la cifra aclarada por las reglas
   generales: la puntuación de cada cliente (63, 90…) en 1,11-1,12, no se leía ninguna. */
[data-theme="dark"] .main-content .ct-badge.ct-badge--ok,
[data-theme="dark"] .main-content .ct-score.ct-score--ok {
    background: rgba(16, 185, 129, 0.16);
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .ct-badge.ct-badge--warning,
[data-theme="dark"] .main-content .ct-score.ct-score--warning {
    background: rgba(245, 158, 11, 0.16);
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ct-badge.ct-badge--error,
[data-theme="dark"] .main-content .ct-score.ct-score--error {
    background: rgba(239, 68, 68, 0.16);
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ct-badge.ct-badge--na {
    background: #1e293b;
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-score.ct-score--ok { box-shadow: inset 0 0 0 1px rgba(52, 211, 153, 0.45); }
[data-theme="dark"] .main-content .ct-score.ct-score--warning { box-shadow: inset 0 0 0 1px rgba(252, 211, 77, 0.45); }
[data-theme="dark"] .main-content .ct-score.ct-score--error { box-shadow: inset 0 0 0 1px rgba(248, 113, 113, 0.45); }
/* Al pasar el ratón por una fila sus celdas se ponían casi BLANCAS (#f8fafc) con el
   texto claro: la fila señalada era justo la que dejaba de leerse. */
[data-theme="dark"] .main-content .ct-table tr:hover td {
    background: #1b2233;
}
[data-theme="dark"] .main-content .ct-table thead tr:hover th {
    background: #111827 !important;
}
/* Colores de estado que la vista calcula en el servidor y escribe en línea (verde si
   cuadra, rojo si no, ámbar si hay avisos). `:not(#_)` porque la regla general de
   «-value» los forzaba a blanco: beneficio y pérdida se veían iguales. */
[data-theme="dark"] .main-content [style*="color:#15803d"]:not(#_),
[data-theme="dark"] .main-content [style*="color: #15803d"]:not(#_) {
    color: #4ade80 !important;
}
[data-theme="dark"] .main-content [style*="color:#a16207"]:not(#_),
[data-theme="dark"] .main-content [style*="color: #a16207"]:not(#_) {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content [style*="color:#dc2626"]:not([style*="background-color:#dc2626"]):not([style*="background:#dc2626"]):not(#_),
[data-theme="dark"] .main-content [style*="color: #dc2626"]:not([style*="background-color: #dc2626"]):not([style*="background: #dc2626"]):not(#_) {
    color: #f87171 !important;
}
/* Ficha del cliente */
[data-theme="dark"] .main-content .ct-kpi.ct-kpi--ok:not(#_) { border-color: rgba(52, 211, 153, 0.5) !important; }
[data-theme="dark"] .main-content .ct-kpi.ct-kpi--warning:not(#_) { border-color: rgba(252, 211, 77, 0.5) !important; }
[data-theme="dark"] .main-content .ct-kpi.ct-kpi--error:not(#_) { border-color: rgba(248, 113, 113, 0.5) !important; }
[data-theme="dark"] .main-content .ct-kpi .ct-kpi-label {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ct-kpi-grid:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
/* Franja de puntuación: la sección de franjas le borra el degradado y quedaba el número
   suelto sobre el fondo de la página. */
[data-theme="dark"] .main-content .ct-score-hero.ct-score-hero--ok:not(#_) {
    background: rgba(16, 185, 129, 0.12) !important;
    box-shadow: inset 0 0 0 1px rgba(52, 211, 153, 0.4);
}
[data-theme="dark"] .main-content .ct-score-hero.ct-score-hero--warning:not(#_) {
    background: rgba(245, 158, 11, 0.12) !important;
    box-shadow: inset 0 0 0 1px rgba(252, 211, 77, 0.4);
}
[data-theme="dark"] .main-content .ct-score-hero.ct-score-hero--error:not(#_) {
    background: rgba(239, 68, 68, 0.12) !important;
    box-shadow: inset 0 0 0 1px rgba(248, 113, 113, 0.4);
}
[data-theme="dark"] .main-content .ct-issue.ct-issue--error {
    background: rgba(239, 68, 68, 0.12);
}
[data-theme="dark"] .main-content .ct-issue.ct-issue--warning {
    background: rgba(245, 158, 11, 0.1);
}
[data-theme="dark"] .main-content .ct-cross-table th,
[data-theme="dark"] .main-content .ct-cross-table td {
    border-bottom-color: #263349 !important;
}
/* Botones: el principal era blanco sobre ámbar (2,0). */
[data-theme="dark"] .main-content .ct-btn.ct-btn--primary,
[data-theme="dark"] .main-content .ct-btn.ct-btn--primary:hover {
    color: #0c1222;
}
[data-theme="dark"] .main-content .ct-btn.ct-btn--primary:hover {
    background: #f0b952;
}
[data-theme="dark"] .main-content .ct-btn.ct-btn--outline {
    background: #1e293b;
    border-color: #64748b;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ct-btn.ct-btn--outline:hover {
    background: #334155;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ct-btn i {
    color: inherit;
}

/* ---------- 7. BLOQUEO DE PERIODOS — /user/contabilidad/periodos ---------- */
/* Cada mes es una caja: las abiertas eran casi BLANCAS (#f8fafc) y las bloqueadas rosa
   claro (#fef2f2), con el nombre del mes ya aclarado encima. */
[data-theme="dark"] .main-content .pm-card:not(#_) {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .pm-month {
    border-color: #334155;
}
[data-theme="dark"] .main-content .pm-month.pm-unlocked {
    background: #111827;
}
[data-theme="dark"] .main-content .pm-month.pm-locked {
    background: rgba(239, 68, 68, 0.12);
    border-color: rgba(248, 113, 113, 0.5);
}
[data-theme="dark"] .main-content .pm-month .pm-month-name {
    color: #f1f5f9 !important;
}
[data-theme="dark"] .main-content .pm-btn.pm-btn-unlock {
    background: #047857;
    box-shadow: inset 0 0 0 1px #34d399;
}
[data-theme="dark"] .main-content .pm-btn.pm-btn-unlock:hover {
    background: #059669;
}
[data-theme="dark"] .main-content .pm-btn i {
    color: inherit;
}
[data-theme="dark"] .main-content .pm-year-row:not(#_) {
    border-color: transparent !important;
    border-top-color: #263349 !important;
}

/* ---------- 8. CIERRE DE EJERCICIO — /user/contabilidad/cierre ---------- */
/* Comprobaciones previas: cada línea iba separada por una raya casi BLANCA (#f1f5f9). */
[data-theme="dark"] .main-content .ci-check {
    border-bottom-color: #263349;
}
[data-theme="dark"] .main-content .ci-check .ci-check-ok {
    color: #34d399;
}
[data-theme="dark"] .main-content .ci-check .ci-check-fail {
    color: #f87171;
}
[data-theme="dark"] .main-content .ci-check .ci-check-body:not(#_) {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ci-check .ci-check-text {
    color: #e2e8f0;
}
[data-theme="dark"] .main-content a.ci-check-cta:not(#_),
[data-theme="dark"] .main-content .ci-reasons-list a:not(#_) {
    color: #93c5fd;
}
[data-theme="dark"] .main-content .ci-icon-amber {
    color: #fbbf24;
}
[data-theme="dark"] .main-content .ci-icon-slate {
    color: #94a3b8;
}
/* Apertura provisional y avisos ámbar */
[data-theme="dark"] .main-content .ci-prov-card:not(#_),
[data-theme="dark"] .main-content .ci-reserva-legal-notice,
[data-theme="dark"] .main-content .ci-stale-banner,
[data-theme="dark"] .main-content .ci-prechecks {
    background: rgba(245, 158, 11, 0.1) !important;
    border-color: rgba(252, 211, 77, 0.45) !important;
}
[data-theme="dark"] .main-content .ci-prechecks {
    border-left-color: #f59e0b !important;
}
[data-theme="dark"] .main-content .ci-prov-card .ci-prov-title:not(#_),
[data-theme="dark"] .main-content .ci-prov-card .ci-prov-actions:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ci-prov-card .ci-prov-desc,
[data-theme="dark"] .main-content .ci-reserva-legal-notice,
[data-theme="dark"] .main-content .ci-reserva-legal-notice span,
[data-theme="dark"] .main-content .ci-stale-banner,
[data-theme="dark"] .main-content .ci-stale-banner span {
    color: #fde68a !important;
}
[data-theme="dark"] .main-content .ci-reserva-legal-notice > i {
    color: #fbbf24;
}
/* «Provisional»: blanco sobre #f59e0b, 2,15. */
[data-theme="dark"] .main-content .ci-badge-provisional {
    background: #e8a838;
    color: #0c1222 !important;
}
[data-theme="dark"] .main-content .ci-prechecks .ci-prechecks-head:not(#_),
[data-theme="dark"] .main-content .ci-prechecks .ci-prechecks-list:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ci-prechecks .ci-prechecks-head,
[data-theme="dark"] .main-content .ci-prechecks .ci-prechecks-head span {
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ci-prechecks .ci-prechecks-head i {
    opacity: 1;
}
[data-theme="dark"] .main-content .ci-prechecks .ci-precheck {
    border-top-color: rgba(252, 211, 77, 0.2);
}
[data-theme="dark"] .main-content .ci-prechecks a.ci-precheck-cuenta:not(#_) {
    color: #fcd34d;
}
[data-theme="dark"] .main-content .ci-prechecks .ci-precheck-saldo.is-deudor {
    color: #fbbf24 !important;
}
[data-theme="dark"] .main-content .ci-prechecks .ci-precheck-saldo.is-acreedor {
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .ci-prechecks .ci-precheck-motivo {
    color: #fde68a !important;
    opacity: 1;
}
/* Vista previa del asiento y cajas de información */
[data-theme="dark"] .main-content .ci-preview-card:not(#_) {
    background: #111827 !important;
    border-color: #334155 !important;
}
[data-theme="dark"] .main-content .ci-preview-card .ci-preview-count {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .ci-preview-table-wrap:not(#_),
[data-theme="dark"] .main-content .ci-preview-table:not(#_) {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ci-preview-table th {
    background: transparent !important;
    border-bottom-color: #334155 !important;
}
[data-theme="dark"] .main-content .ci-preview-table td {
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .ci-preview-more {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .ci-info-box:not(#_),
[data-theme="dark"] .main-content .ci-info-box.ci-info-box--gray:not(#_) {
    background: #111827 !important;
    border-color: #334155 !important;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ci-info-box.ci-info-box--amber:not(#_) {
    background: rgba(245, 158, 11, 0.12) !important;
    border-color: rgba(252, 211, 77, 0.45) !important;
    color: #fde68a;
}
[data-theme="dark"] .main-content .ci-info-box.ci-info-box--blue:not(#_) {
    background: rgba(59, 130, 246, 0.12) !important;
    border-color: rgba(147, 197, 253, 0.45) !important;
    color: #bfdbfe;
}
[data-theme="dark"] .main-content .ci-info-box.ci-info-box--green:not(#_),
[data-theme="dark"] .main-content .ci-alert.ci-alert--success:not(#_) {
    background: rgba(16, 185, 129, 0.12) !important;
    border-color: rgba(52, 211, 153, 0.45) !important;
    color: #a7f3d0;
}
[data-theme="dark"] .main-content .ci-info-box.ci-info-box--red:not(#_),
[data-theme="dark"] .main-content .ci-alert.ci-alert--error:not(#_) {
    background: rgba(239, 68, 68, 0.12) !important;
    border-color: rgba(248, 113, 113, 0.45) !important;
    color: #fecaca;
}
/* El texto de dentro de una caja de color hereda el suyo. */
[data-theme="dark"] .main-content .ci-info-box--amber *:not(a):not(button):not(#_),
[data-theme="dark"] .main-content .ci-info-box--blue *:not(a):not(button):not(#_),
[data-theme="dark"] .main-content .ci-info-box--green *:not(a):not(button):not(#_),
[data-theme="dark"] .main-content .ci-info-box--red *:not(a):not(button):not(#_),
[data-theme="dark"] .main-content .ci-alert *:not(a):not(button):not(#_) {
    background: transparent !important;
    color: inherit !important;
}
[data-theme="dark"] .main-content .ci-reasons-list:not(#_),
[data-theme="dark"] .main-content .ci-reasons-list li {
    background: transparent !important;
}
[data-theme="dark"] .main-content .ci-reasons-list li {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ci-reasons-list li > i {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .ci-input-label {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .ci-apply-grid:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ci-empty-state:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ci-empty-state > i {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .ci-empty-state .ci-empty-sub {
    color: #94a3b8 !important;
}
/* Botones */
[data-theme="dark"] .main-content .ci-btn-secondary {
    background: #1e293b;
    border-color: #64748b;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ci-btn-secondary:hover {
    background: #334155;
    border-color: #94a3b8;
    color: #ffffff;
}
[data-theme="dark"] .main-content .ci-btn-secondary:disabled,
[data-theme="dark"] .main-content .ct-btn-cta:disabled,
[data-theme="dark"] .main-content .ct-btn-danger:disabled {
    opacity: 1;
    background: #263349;
    border-color: #334155;
    color: #94a3b8;
}
[data-theme="dark"] .main-content .ct-btn-danger span,
[data-theme="dark"] .main-content .ct-btn-danger i,
[data-theme="dark"] .main-content .ct-btn-cta span {
    color: inherit !important;
}
/* Diálogo de confirmación propio del cierre */
[data-theme="dark"] .main-content .ci-modal-overlay:not(#_) {
    background: rgba(2, 6, 23, 0.72) !important;
    border-color: transparent !important;
}
[data-theme="dark"] .main-content .ci-modal:not(#_) {
    border: 1px solid #475569 !important;
}
[data-theme="dark"] .main-content .ci-modal-header:not(#_),
[data-theme="dark"] .main-content .ci-modal-footer:not(#_) {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .ci-modal-close:not(#_) {
    background: transparent !important;
    border-color: transparent !important;
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .ci-modal-body:not(#_) {
    color: #cbd5e1;
}

/* ---------- 9. AJUSTES DE CONTABILIDAD — /user/settings/accounting ---------- */
/* La opción ELEGIDA era la que no se leía: recuadro amarillo crema (#fefce8) con el
   rótulo aclarado (1,19) y su descripción en 2,48; el distintivo «ACTIVO» en 1,12 y el
   pie del formulario, una franja blanca con el botón azul marino. */
[data-theme="dark"] .main-content .acs-card:not(#_) {
    border-color: #263349 !important;
}
[data-theme="dark"] .main-content .acs-head:not(#_) {
    border-bottom-color: #263349 !important;
}
[data-theme="dark"] .main-content .acs-head p {
    color: #94a3b8;
}
[data-theme="dark"] .main-content .acs-opt {
    border-bottom-color: #263349;
}
[data-theme="dark"] .main-content .acs-opt.is-selected {
    background: rgba(232, 168, 56, 0.12);
    box-shadow: inset 0 0 0 1px rgba(232, 168, 56, 0.55);
}
[data-theme="dark"] .main-content .acs-opt label {
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .acs-opt small {
    color: #94a3b8 !important;
}
[data-theme="dark"] .main-content .acs-opt.is-selected small {
    color: #cbd5e1 !important;
}
[data-theme="dark"] .main-content .acs-opt small strong {
    color: #f1f5f9;
}
[data-theme="dark"] .main-content .acs-current {
    background: rgba(16, 185, 129, 0.18);
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .acs-conditions {
    background: #111827;
    border: 1px solid #334155;
}
[data-theme="dark"] .main-content .acs-conditions li {
    color: #cbd5e1;
}
[data-theme="dark"] .main-content .acs-conditions li::before {
    color: #34d399;
}
[data-theme="dark"] .main-content .acs-foot {
    background: #111827;
    border-top-color: #263349;
}
[data-theme="dark"] .main-content .acs-btn {
    background: #e8a838;
    color: #0c1222;
}
[data-theme="dark"] .main-content .acs-btn:hover {
    opacity: 1;
    background: #f0b952;
}
[data-theme="dark"] .main-content .acs-btn i {
    color: inherit;
}
[data-theme="dark"] .main-content .acs-readonly {
    background: rgba(232, 168, 56, 0.14);
    color: #fcd34d !important;
}

/* Vencimientos de cartera */
[data-theme="dark"] .main-content .ct-venc-edit-form .ct-venc-save {
    background: #1e293b;
    border-color: #64748b;
    color: #e2e8f0;
}
[data-theme="dark"] .main-content .ct-venc-edit-form .ct-venc-save:hover {
    border-color: #e8a838;
    color: #f0b952;
}
[data-theme="dark"] .main-content .ct-venc-estado.ct-venc-estado--pendiente {
    background: rgba(245, 158, 11, 0.16);
    color: #fcd34d !important;
}
[data-theme="dark"] .main-content .ct-venc-estado.ct-venc-estado--parcial {
    background: rgba(56, 189, 248, 0.16);
    color: #7dd3fc !important;
}
[data-theme="dark"] .main-content .ct-venc-estado.ct-venc-estado--cobrado {
    background: rgba(16, 185, 129, 0.16);
    color: #6ee7b7 !important;
}
[data-theme="dark"] .main-content .ct-venc-estado.ct-venc-estado--impagado {
    background: rgba(239, 68, 68, 0.16);
    color: #fca5a5 !important;
}
[data-theme="dark"] .main-content .ct-icon-muted {
    color: #94a3b8;
}
/* Distintivo del centro de coste sin asignar: blanco sobre #94a3b8 (2,56). */
[data-theme="dark"] .main-content .ccc-badge.ccc-badge--none {
    background: #334155 !important;
    color: #e2e8f0 !important;
}
[data-theme="dark"] .main-content .ccc-badge.ccc-badge--none i {
    color: inherit;
}
/* Equipo, pantalla anterior: las marcas de la columna Estado («Caduca 23/10», «Enlace
   caducado», «No entregado») conservaban su fondo claro y la regla de los `span` de aquí
   arriba les ponía el texto claro: #e2e8f0 sobre #f1f3f5, 1,1:1. Con el id del listado la
   regla gana a ese selector (0,10,1) sin `!important`. */
[data-theme="dark"] #cg-team-listado .cg-team-marca {
    background: #2a3142;
    color: #cbd5e1;
}
[data-theme="dark"] #cg-team-listado .cg-team-marca--error {
    background: #3b2a12;
    color: #fbbf24;
}
[data-theme="dark"] #cg-team-listado .cg-team-caduca {
    color: #fbbf24;
}
