/* Tema Claro (Default) */
:root[data-theme="light"] {
    --bg-primary: #f8fafc;
    --bg-secondary: #e2e8f0;
    --bg-card: #ffffff;
    --text-primary: #0f172a;
    --text-secondary: #475569;
    --border-color: #cbd5e1;
    --primary-color: #334155;
    --primary-hover: #1e293b;
    --success-color: #0f766e;
    --warning-color: #b45309;
    --danger-color: #991b1b;
    --accent-color: #64748b;
    --nav-bg: #111827;
    --nav-text: #f8fafc;
    --nav-hover: #e2e8f0;
    --dropdown-bg: #f8fafc;
    --dropdown-text: #0f172a;
    --dropdown-hover: #e2e8f0;
}

/* Tema Oscuro */
:root[data-theme="dark"] {
    --bg-primary: #111827;
    --bg-secondary: #1f2937;
    --bg-card: #374151;
    --text-primary: #f3f4f6;
    --text-secondary: #d1d5db;
    --border-color: #4b5563;
    --primary-color: #60a5fa;
    --primary-hover: #93c5fd;
    --success-color: #34d399;
    --warning-color: #fbbf24;
    --danger-color: #f87171;
    --accent-color: #93c5fd;
    --nav-bg: #0f172a;
    --nav-text: #ffffff;
    --nav-hover: #3b82f6;
    --icon-color: #ffffff;
    --button-text: #ffffff;
    --dropdown-bg: #1f2937;
    --dropdown-text: #f3f4f6;
    --dropdown-hover: #374151;
}

/* Tema Alto Contraste */
:root[data-theme="high-contrast"] {
    --bg-primary: #000000;
    --bg-secondary: #1a1a1a;
    --bg-card: #000000;
    --text-primary: #ffffff;
    --text-secondary: #e0e0e0;
    --border-color: #ffffff;
    --primary-color: #00ffff;
    --primary-hover: #00cccc;
    --success-color: #00ff00;
    --warning-color: #ffff00;
    --danger-color: #ff0000;
    --accent-color: #00ffff;
    --nav-bg: #000000;
    --nav-text: #ffffff;
    --nav-hover: #333333;
    --dropdown-bg: #000000;
    --dropdown-text: #ffffff;
    --dropdown-hover: #333333;
}

/* Aplicar variables CSS */
body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Iconos */
i, .fas, .far, .fab, .fa {
    color: var(--icon-color, var(--text-primary)) !important;
}

/* Botones principales */
button, .btn, .btn-nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    background-color: var(--primary-color, #2563eb);
    color: var(--button-text, #ffffff) !important;
    border: 1px solid transparent;
    border-radius: 0.75rem;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

button:hover, .btn:hover, .btn-nav:hover {
    background-color: var(--primary-hover, #1d4ed8);
}

button:focus-visible, .btn:focus-visible, .btn-nav:focus-visible {
    outline: 2px solid var(--primary-hover, #1d4ed8);
    outline-offset: 2px;
}

button:disabled, .btn:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

/* Texto dentro de botones con iconos */
button i, .btn i, .btn-nav i {
    color: var(--button-text, #ffffff) !important;
}

/* Botones claros con fondo blanco y texto oscuro */
button.bg-white,
button.bg-gray-50,
button.bg-gray-100,
button.bg-gray-200,
button.bg-slate-50,
button.bg-slate-100,
button.bg-slate-200,
.btn.bg-white,
.btn.bg-gray-50,
.btn.bg-gray-100,
.btn.bg-gray-200,
.btn.bg-slate-50,
.btn.bg-slate-100,
.btn.bg-slate-200 {
    background-color: var(--bg-card) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

/* Asegura buen contraste cuando hay texto blanco dentro de un fondo claro */
.bg-white.text-white,
.bg-gray-50.text-white,
.bg-gray-100.text-white,
.bg-gray-200.text-white,
.bg-slate-50.text-white,
.bg-slate-100.text-white,
.bg-slate-200.text-white,
.bg-white .text-white,
.bg-gray-50 .text-white,
.bg-gray-100 .text-white,
.bg-gray-200 .text-white,
.bg-slate-50 .text-white,
.bg-slate-100 .text-white,
.bg-slate-200 .text-white {
    color: var(--text-primary) !important;
}

/* Botones principales de la página principal */
button.bg-gradient-to-r, 
button.bg-gradient-to-r i,
button.bg-gradient-to-r h2,
button.bg-gradient-to-r p {
    color: #ffffff !important;
}

/* Botones de acción uniformes */
.btn-primary,
.btn-success,
.btn-secondary,
.btn-danger,
.btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.btn-primary {
    background-color: var(--primary-color, #2563eb);
    color: #ffffff;
    border: 1px solid transparent;
}

.btn-primary:hover {
    background-color: var(--primary-hover, #1d4ed8);
}

.btn-success {
    background-color: var(--success-color, #10b981);
    color: #ffffff;
    border: 1px solid transparent;
}

.btn-success:hover {
    background-color: #0f766e;
}

.btn-secondary {
    background-color: var(--bg-card, #ffffff);
    color: var(--text-primary, #1f2937);
    border: 1px solid var(--border-color, #e5e7eb);
}

.btn-secondary:hover {
    background-color: var(--bg-secondary, #f3f4f6);
}

.btn-danger {
    background-color: var(--danger-color, #ef4444);
    color: #ffffff;
    border: 1px solid transparent;
}

.btn-danger:hover {
    background-color: #dc2626;
}

.btn-outline {
    background-color: transparent;
    color: var(--text-primary, #1f2937);
    border: 1px solid var(--border-color, #e5e7eb);
}

.btn-outline:hover {
    background-color: var(--bg-secondary, #f3f4f6);
}

.page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

/* Iconos dentro de botones principales */
button.bg-gradient-to-r i {
    color: #ffffff !important;
}

/* Botones de navegación del dashboard */
a.bg-white.rounded-lg.shadow-md i {
    color: var(--primary-color) !important;
}

a.bg-white.rounded-lg.shadow-md h3 {
    color: var(--text-primary) !important;
}

a.bg-white.rounded-lg.shadow-md p {
    color: var(--text-secondary) !important;
}

/* Menús desplegables */
.dropdown-menu, 
.relative > div[class*="hidden"],
.absolute,
div[id$="-options"] {
    background-color: var(--dropdown-bg) !important;
    color: var(--dropdown-text) !important;
    border-color: var(--border-color) !important;
}

/* Enlaces dentro de menús desplegables */
.dropdown-menu a,
.absolute a,
div[id$="-options"] a {
    color: var(--dropdown-text) !important;
}

.dropdown-menu a:hover,
.absolute a:hover,
div[id$="-options"] a:hover {
    background-color: var(--dropdown-hover) !important;
}

/* Iconos en menús desplegables */
.dropdown-menu i,
.absolute i,
div[id$="-options"] i {
    color: var(--dropdown-text) !important;
}

/* Texto en menús desplegables */
.dropdown-menu h3,
.absolute h3,
div[id$="-options"] h3 {
    color: var(--dropdown-text) !important;
}

.dropdown-menu p,
.absolute p,
div[id$="-options"] p {
    color: var(--dropdown-text) !important;
}

/* Tarjetas dentro de menús desplegables */
div[id$="-options"] a.bg-blue-50,
div[id$="-options"] a.bg-green-50,
div[id$="-options"] a.bg-purple-50 {
    background-color: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}

div[id$="-options"] a.bg-blue-50:hover,
div[id$="-options"] a.bg-green-50:hover,
div[id$="-options"] a.bg-purple-50:hover {
    background-color: var(--dropdown-hover) !important;
}

/* Iconos en tarjetas de menús desplegables */
div[id$="-options"] a.text-blue-600 i,
div[id$="-options"] a.text-green-600 i,
div[id$="-options"] a.text-purple-600 i {
    color: var(--primary-color) !important;
}

/* Títulos en tarjetas de menús desplegables */
div[id$="-options"] a.text-gray-800 h3 {
    color: var(--text-primary) !important;
}

/* Descripciones en tarjetas de menús desplegables */
div[id$="-options"] a.text-gray-600 p {
    color: var(--text-secondary) !important;
}

.bg-white {
    background-color: var(--bg-card) !important;
}

.bg-gray-50 {
    background-color: var(--bg-secondary) !important;
}

.text-gray-800 {
    color: var(--text-primary) !important;
}

.text-gray-600 {
    color: var(--text-secondary) !important;
}

.text-gray-500 {
    color: var(--text-secondary) !important;
}

.text-gray-700 {
    color: var(--text-primary) !important;
}

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

.border-gray-200 {
    border-color: var(--border-color) !important;
}

.border-gray-300 {
    border-color: var(--border-color) !important;
}

.bg-blue-600 {
    background-color: var(--primary-color) !important;
}

.bg-blue-600:hover {
    background-color: var(--primary-hover) !important;
}

.bg-blue-500 {
    background-color: var(--accent-color) !important;
}

.text-blue-600 {
    color: var(--primary-color) !important;
}

.text-blue-500 {
    color: var(--accent-color) !important;
}

.hover\:text-blue-600:hover {
    color: var(--primary-color) !important;
}

.hover\:text-blue-700:hover {
    color: var(--primary-hover) !important;
}

.hover\:bg-blue-50:hover {
    background-color: var(--bg-secondary) !important;
}

.hover\:bg-gray-50:hover {
    background-color: var(--bg-secondary) !important;
}

.bg-green-600 {
    background-color: var(--success-color) !important;
}

.bg-green-500 {
    background-color: var(--success-color) !important;
}

.text-green-600 {
    color: var(--success-color) !important;
}

.bg-yellow-600 {
    background-color: var(--warning-color) !important;
}

.text-yellow-600 {
    background-color: var(--warning-color) !important;
}

.bg-red-600 {
    background-color: var(--danger-color) !important;
}

.bg-red-500 {
    background-color: var(--danger-color) !important;
}

.text-red-600 {
    color: var(--danger-color) !important;
}

.bg-purple-600 {
    background-color: #9333ea !important;
}

.bg-orange-600 {
    background-color: #f97316 !important;
}

.bg-gray-600 {
    background-color: var(--text-secondary) !important;
}

.bg-gray-800 {
    background-color: var(--bg-secondary) !important;
}

.bg-gray-200 {
    background-color: var(--border-color) !important;
}

/* Navegación */
nav {
    background-color: var(--nav-bg) !important;
}

nav a {
    color: var(--nav-text) !important;
}

nav a:hover {
    color: var(--nav-hover) !important;
}

/* Inputs */
input, textarea, select {
    background-color: var(--bg-primary) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

input:focus, textarea:focus, select:focus {
    border-color: var(--primary-color) !important;
}

/* Tablas */
table {
    background-color: var(--bg-card) !important;
}

th {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

td {
    color: var(--text-primary) !important;
}

tr:hover td {
    background-color: var(--bg-secondary) !important;
}

/* Footer */
header, footer {
    background-color: var(--nav-bg) !important;
    color: var(--nav-text) !important;
}
header a, header summary, header details, header .module-link, header .context-link {
    color: var(--nav-text) !important;
}
header .module-link {
    color: rgba(248, 250, 252, 0.88) !important;
}
header .module-link.active {
    background-color: rgba(248, 250, 252, 0.12) !important;
    color: #ffffff !important;
}
header details {
    border-color: rgba(226, 232, 240, 0.18) !important;
}
.card, .shadow-sm, .rounded-xl {
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08);
}
.hover\:bg-blue-100:hover {
    background-color: #e2e8f0 !important;
}
.text-blue-700 {
    color: #334155 !important;
}
.text-blue-600 {
    color: #334155 !important;
}
.bg-blue-800 {
    background-color: #111827 !important;
}
.border-blue-700 {
    border-color: #1e293b !important;
}
.bg-blue-50 {
    background-color: #f8fafc !important;
}
.border-blue-200 {
    border-color: #cbd5e1 !important;
}
.bg-emerald-600 {
    background-color: var(--success-color) !important;
}
.bg-emerald-700 {
    background-color: #115e59 !important;
}
.bg-slate-100 {
    background-color: #f1f5f9 !important;
}
.bg-slate-200 {
    background-color: #e2e8f0 !important;
}

footer {
    padding: 1.25rem 0;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
}
.print-action,button[onclick*="print"],button[onclick*="Print"],a[onclick*="print"],a[onclick*="Print"],.danger-action,.btn-danger,.catalog-delete-button,.license-delete-button,form[action*="delete"] button,button[title*="Eliminar"]{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.5rem!important;border:1px solid #dc2626!important;border-radius:.7rem!important;background:#dc2626!important;color:#fff!important;font-weight:700!important;text-decoration:none!important;box-shadow:0 3px 8px rgba(220,38,38,.22)!important;transition:.18s ease!important}.print-action i,button[onclick*="print"] i,button[onclick*="Print"] i,a[onclick*="print"] i,a[onclick*="Print"] i,.danger-action i,.btn-danger i,form[action*="delete"] button i,button[title*="Eliminar"] i{color:#fff!important}.print-action:hover,button[onclick*="print"]:hover,button[onclick*="Print"]:hover,a[onclick*="print"]:hover,a[onclick*="Print"]:hover,.danger-action:hover,.btn-danger:hover,form[action*="delete"] button:hover,button[title*="Eliminar"]:hover{background:#b91c1c!important;border-color:#b91c1c!important;color:#fff!important;transform:translateY(-1px)!important}form[action*="delete"] button:disabled{opacity:.5!important;cursor:not-allowed!important;transform:none!important}
.primary-action{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.55rem!important;min-height:3rem!important;padding:.72rem 1.25rem!important;border:1px solid #2563eb!important;border-radius:.85rem!important;background:#2563eb!important;color:#fff!important;font-weight:700!important;line-height:1.2!important;text-decoration:none!important;box-shadow:0 4px 10px rgba(37,99,235,.22)!important;transition:.18s ease!important}.primary-action i{color:#fff!important}.primary-action:hover{background:#1d4ed8!important;border-color:#1d4ed8!important;color:#fff!important;transform:translateY(-1px)!important;box-shadow:0 7px 15px rgba(37,99,235,.3)!important}.primary-action:focus-visible{outline:3px solid #bfdbfe!important;outline-offset:2px!important}.primary-action:disabled{cursor:not-allowed!important;opacity:.55!important;transform:none!important}.primary-action.compact{min-height:2.35rem!important;padding:.48rem .8rem!important;border-radius:.65rem!important;font-size:.8rem!important}
.search-action{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.45rem!important;border:1px solid #2563eb!important;border-radius:.7rem!important;background:#2563eb!important;color:#fff!important;font-weight:700!important;box-shadow:0 3px 8px rgba(37,99,235,.2)!important}.search-action i{color:#fff!important}.search-action:hover{background:#1d4ed8!important;border-color:#1d4ed8!important;color:#fff!important}
.search-action:focus-visible{outline:3px solid #bfdbfe!important;outline-offset:2px!important}
button.bg-white i,button.bg-gray-50 i,button.bg-gray-100 i,button.bg-gray-200 i,button.bg-slate-50 i,button.bg-slate-100 i,button.bg-slate-200 i{color:var(--text-primary,#1f2937)!important}
a.bg-blue-500 i,a.bg-blue-600 i,a.bg-blue-700 i,a.bg-blue-800 i,a.bg-emerald-600 i,a.bg-emerald-700 i,a.bg-green-600 i,a.bg-red-600 i,a.bg-red-700 i,a.bg-orange-600 i,a.bg-violet-600 i,a.bg-purple-600 i,a.bg-slate-700 i,a.bg-slate-800 i{color:#fff!important}
.filter-action,button:has(.fa-filter){display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.45rem!important;border:1px solid #2563eb!important;border-radius:.7rem!important;background:#2563eb!important;color:#fff!important;font-weight:700!important;box-shadow:0 3px 8px rgba(37,99,235,.2)!important}.filter-action i,button:has(.fa-filter) i{color:#fff!important}.filter-action:hover,button:has(.fa-filter):hover{background:#1d4ed8!important;border-color:#1d4ed8!important;color:#fff!important}
.print-action,button[onclick*="print"],button[onclick*="Print"],a[onclick*="print"],a[onclick*="Print"]{border-color:#16a34a!important;background:#16a34a!important;color:#fff!important;box-shadow:0 3px 8px rgba(22,163,74,.22)!important}.print-action i,button[onclick*="print"] i,button[onclick*="Print"] i,a[onclick*="print"] i,a[onclick*="Print"] i{color:#fff!important}.print-action:hover,button[onclick*="print"]:hover,button[onclick*="Print"]:hover,a[onclick*="print"]:hover,a[onclick*="Print"]:hover{border-color:#15803d!important;background:#15803d!important;color:#fff!important}

/* Prueba de paleta violeta/magenta/azul.
   Respaldo previo: respaldo_antes_paleta_20260814_075429 */
:root[data-theme="light"] {
    --primary-color: #5508f7;
    --primary-hover: #3d06b8;
    --accent-color: #c500f5;
    --nav-bg: #260064;
    --nav-hover: #ddd2ff;
    --palette-violet: #5508f7;
    --palette-violet-dark: #3d06b8;
    --palette-magenta: #c500f5;
    --palette-blue: #153df5;
    --palette-soft: #f3efff;
}

header,
footer {
    background: linear-gradient(115deg, #260064 0%, #5508f7 55%, #153df5 100%) !important;
}
header .module-link:hover {
    background: rgba(255,255,255,.13) !important;
    color: #fff !important;
}
header .module-link.active {
    background: linear-gradient(135deg, rgba(197,0,245,.88), rgba(21,61,245,.9)) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.28), 0 5px 14px rgba(16,0,70,.28) !important;
}

aside > div {
    border-color: #d9ccff !important;
    background: linear-gradient(180deg, #ffffff 0%, #f7f4ff 100%) !important;
}
aside p.text-xs.font-bold.uppercase {
    color: #5508f7 !important;
}
.context-link:not(.navigation-control) {
    border-color: transparent !important;
    color: #34245f !important;
}
.context-link:not(.navigation-control):hover {
    border-color: #c9b6ff !important;
    background: #eee8ff !important;
    color: #3d06b8 !important;
}
.context-link.active {
    border-color: #5508f7 !important;
    background: linear-gradient(105deg, #5508f7, #153df5) !important;
    color: #fff !important;
    box-shadow: 0 6px 14px rgba(85,8,247,.23) !important;
}
.context-link.active i { color:#fff !important; }
.context-link.navigation-control {
    border-color: #c9b6ff !important;
    background: #fff !important;
    color: #3d245f !important;
}
.context-link.navigation-control:hover {
    border-color: #5508f7 !important;
    background: #f3efff !important;
    color: #5508f7 !important;
}

.primary-action,
.btn-primary {
    border-color: #5508f7 !important;
    background: linear-gradient(110deg, #5508f7 0%, #6f19f5 55%, #153df5 100%) !important;
    color: #fff !important;
    box-shadow: 0 5px 13px rgba(85,8,247,.28) !important;
}
.primary-action:hover,
.btn-primary:hover {
    border-color: #3d06b8 !important;
    background: linear-gradient(110deg, #3d06b8, #5508f7 60%, #1234ca) !important;
    color: #fff !important;
}
.primary-action i,
.btn-primary i { color:#fff !important; }

.search-action {
    border-color: #153df5 !important;
    background: linear-gradient(110deg, #153df5, #5508f7) !important;
    box-shadow: 0 4px 11px rgba(21,61,245,.25) !important;
}
.search-action:hover {
    border-color: #102fc0 !important;
    background: linear-gradient(110deg, #102fc0, #3d06b8) !important;
}
.filter-action,
button:has(.fa-filter) {
    border-color: #a600d0 !important;
    background: linear-gradient(110deg, #c500f5, #5508f7) !important;
    box-shadow: 0 4px 11px rgba(197,0,245,.22) !important;
}
.filter-action:hover,
button:has(.fa-filter):hover {
    border-color: #8500a8 !important;
    background: linear-gradient(110deg, #a600d0, #3d06b8) !important;
}

a.bg-blue-500, a.bg-blue-600, a.bg-blue-700, a.bg-blue-800,
button.bg-blue-500, button.bg-blue-600, button.bg-blue-700, button.bg-blue-800,
a.bg-indigo-600, button.bg-indigo-600,
a.bg-violet-600, button.bg-violet-600,
a.bg-purple-600, button.bg-purple-600 {
    border-color: #5508f7 !important;
    background: #5508f7 !important;
    color: #fff !important;
}
a.bg-blue-500:hover, a.bg-blue-600:hover, a.bg-blue-700:hover, a.bg-blue-800:hover,
button.bg-blue-500:hover, button.bg-blue-600:hover, button.bg-blue-700:hover, button.bg-blue-800:hover,
a.bg-indigo-600:hover, button.bg-indigo-600:hover,
a.bg-violet-600:hover, button.bg-violet-600:hover,
a.bg-purple-600:hover, button.bg-purple-600:hover {
    background: #3d06b8 !important;
}

input:focus,
textarea:focus,
select:focus {
    border-color: #5508f7 !important;
    box-shadow: 0 0 0 3px rgba(85,8,247,.14) !important;
}
main details > summary {
    color: #3d245f !important;
}
main details[open] > summary {
    background: #f3efff !important;
    color: #5508f7 !important;
}

/* Segunda prueba: paleta análoga clara basada en #4f7ab0. */
:root[data-theme="light"] {
    --primary-color: #4f7ab0;
    --primary-hover: #3b628f;
    --accent-color: #5752b4;
    --nav-bg: #365f92;
    --nav-hover: #e5eef8;
    --palette-violet: #5752b4;
    --palette-violet-dark: #454191;
    --palette-magenta: #7067c6;
    --palette-blue: #4f7ab0;
    --palette-teal: #4fa9ad;
    --palette-soft: #eef5fa;
}
header, footer {
    background: linear-gradient(115deg, #365f92 0%, #5752b4 53%, #4fa9ad 100%) !important;
}
header .module-link.active {
    background: linear-gradient(135deg, rgba(112,103,198,.94), rgba(79,169,173,.94)) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.34), 0 5px 14px rgba(42,67,105,.22) !important;
}
aside > div {
    border-color: #cbdbea !important;
    background: linear-gradient(180deg, #fff 0%, #f3f7fb 100%) !important;
}
aside p.text-xs.font-bold.uppercase { color:#4f7ab0 !important; }
.context-link:not(.navigation-control) { color:#314963 !important; }
.context-link:not(.navigation-control):hover {
    border-color:#b8cde1 !important;
    background:#eaf2f8 !important;
    color:#3b628f !important;
}
.context-link.active {
    border-color:#4f7ab0 !important;
    background:linear-gradient(105deg, #4f7ab0, #5752b4) !important;
    box-shadow:0 6px 14px rgba(79,122,176,.22) !important;
}
.context-link.navigation-control { border-color:#c2d3e4 !important; color:#36516d !important; }
.context-link.navigation-control:hover {
    border-color:#4f7ab0 !important;
    background:#eef5fa !important;
    color:#3b628f !important;
}
.primary-action, .btn-primary {
    border-color:#4f7ab0 !important;
    background:linear-gradient(110deg, #4f7ab0 0%, #5752b4 58%, #4fa9ad 100%) !important;
    box-shadow:0 5px 13px rgba(79,122,176,.25) !important;
}
.primary-action:hover, .btn-primary:hover {
    border-color:#3b628f !important;
    background:linear-gradient(110deg, #3b628f, #454191 60%, #3c8589) !important;
}
.search-action {
    border-color:#4f7ab0 !important;
    background:linear-gradient(110deg, #4f7ab0, #5752b4) !important;
    box-shadow:0 4px 11px rgba(79,122,176,.24) !important;
}
.search-action:hover {
    border-color:#3b628f !important;
    background:linear-gradient(110deg, #3b628f, #454191) !important;
}
.filter-action, button:has(.fa-filter) {
    border-color:#4a979b !important;
    background:linear-gradient(110deg, #4fa9ad, #5752b4) !important;
    box-shadow:0 4px 11px rgba(79,169,173,.23) !important;
}
.filter-action:hover, button:has(.fa-filter):hover {
    border-color:#3c8589 !important;
    background:linear-gradient(110deg, #3c8589, #454191) !important;
}
a.bg-blue-500, a.bg-blue-600, a.bg-blue-700, a.bg-blue-800,
button.bg-blue-500, button.bg-blue-600, button.bg-blue-700, button.bg-blue-800,
a.bg-indigo-600, button.bg-indigo-600,
a.bg-violet-600, button.bg-violet-600,
a.bg-purple-600, button.bg-purple-600 {
    border-color:#4f7ab0 !important;
    background:#4f7ab0 !important;
}
a.bg-blue-500:hover, a.bg-blue-600:hover, a.bg-blue-700:hover, a.bg-blue-800:hover,
button.bg-blue-500:hover, button.bg-blue-600:hover, button.bg-blue-700:hover, button.bg-blue-800:hover,
a.bg-indigo-600:hover, button.bg-indigo-600:hover,
a.bg-violet-600:hover, button.bg-violet-600:hover,
a.bg-purple-600:hover, button.bg-purple-600:hover { background:#3b628f !important; }
input:focus, textarea:focus, select:focus {
    border-color:#4f7ab0 !important;
    box-shadow:0 0 0 3px rgba(79,122,176,.16) !important;
}
main details[open] > summary { background:#eef5fa !important; color:#3b628f !important; }

/* Versión definitiva de prueba: colores sólidos, sin degradados. */
header, footer { background:#4f7ab0 !important; }
header .module-link.active {
    background:#5752b4 !important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.3), 0 4px 10px rgba(49,73,99,.2) !important;
}
aside > div { background:#f7fafc !important; }
.context-link.active {
    border-color:#5752b4 !important;
    background:#5752b4 !important;
    box-shadow:0 5px 12px rgba(87,82,180,.2) !important;
}
.primary-action, .btn-primary {
    border-color:#5752b4 !important;
    background:#5752b4 !important;
    box-shadow:0 4px 11px rgba(87,82,180,.23) !important;
}
.primary-action:hover, .btn-primary:hover {
    border-color:#454191 !important;
    background:#454191 !important;
}
.search-action {
    border-color:#4f7ab0 !important;
    background:#4f7ab0 !important;
    box-shadow:0 4px 10px rgba(79,122,176,.22) !important;
}
.search-action:hover { border-color:#3b628f !important; background:#3b628f !important; }
.filter-action, button:has(.fa-filter) {
    border-color:#4fa9ad !important;
    background:#4fa9ad !important;
    box-shadow:0 4px 10px rgba(79,169,173,.22) !important;
}
.filter-action:hover, button:has(.fa-filter):hover { border-color:#3c8589 !important; background:#3c8589 !important; }

a.bg-blue-500, a.bg-blue-600, a.bg-blue-700, a.bg-blue-800,
button.bg-blue-500, button.bg-blue-600, button.bg-blue-700, button.bg-blue-800 {
    border-color:#4f7ab0 !important; background:#4f7ab0 !important; color:#fff !important;
}
a.bg-indigo-600, button.bg-indigo-600,
a.bg-violet-600, button.bg-violet-600,
a.bg-purple-600, button.bg-purple-600 {
    border-color:#5752b4 !important; background:#5752b4 !important; color:#fff !important;
}

/* Destructivos: rojo pastel; se conserva la señal de peligro con alto contraste. */
.danger-action, .btn-danger, .catalog-delete-button, .license-delete-button,
form[action*="delete"] button, button[title*="Eliminar"],
a.bg-red-500, a.bg-red-600, a.bg-red-700,
button.bg-red-500, button.bg-red-600, button.bg-red-700 {
    border-color:#f3a6a6 !important;
    background:#fbd1d1 !important;
    color:#7f1d1d !important;
    box-shadow:0 3px 8px rgba(185,28,28,.12) !important;
}
.danger-action i, .btn-danger i, .catalog-delete-button i, .license-delete-button i,
form[action*="delete"] button i, button[title*="Eliminar"] i,
a.bg-red-500 i, a.bg-red-600 i, a.bg-red-700 i,
button.bg-red-500 i, button.bg-red-600 i, button.bg-red-700 i { color:#7f1d1d !important; }
.danger-action:hover, .btn-danger:hover, .catalog-delete-button:hover, .license-delete-button:hover,
form[action*="delete"] button:hover, button[title*="Eliminar"]:hover,
a.bg-red-500:hover, a.bg-red-600:hover, a.bg-red-700:hover,
button.bg-red-500:hover, button.bg-red-600:hover, button.bg-red-700:hover {
    border-color:#eb8f8f !important; background:#f6bcbc !important; color:#681717 !important;
}

/* Positivos e impresión: verde claro con texto oscuro. */
.print-action, button[onclick*="print"], button[onclick*="Print"],
a[onclick*="print"], a[onclick*="Print"],
a.bg-green-500, a.bg-green-600, a.bg-green-700,
button.bg-green-500, button.bg-green-600, button.bg-green-700,
a.bg-emerald-500, a.bg-emerald-600, a.bg-emerald-700,
button.bg-emerald-500, button.bg-emerald-600, button.bg-emerald-700 {
    border-color:#75c99a !important;
    background:#bce8ce !important;
    color:#14532d !important;
    box-shadow:0 3px 8px rgba(20,83,45,.12) !important;
}
.print-action i, button[onclick*="print"] i, button[onclick*="Print"] i,
a[onclick*="print"] i, a[onclick*="Print"] i,
a.bg-green-500 i, a.bg-green-600 i, a.bg-green-700 i,
button.bg-green-500 i, button.bg-green-600 i, button.bg-green-700 i,
a.bg-emerald-500 i, a.bg-emerald-600 i, a.bg-emerald-700 i,
button.bg-emerald-500 i, button.bg-emerald-600 i, button.bg-emerald-700 i { color:#14532d !important; }
.print-action:hover, button[onclick*="print"]:hover, button[onclick*="Print"]:hover,
a[onclick*="print"]:hover, a[onclick*="Print"]:hover,
a.bg-green-500:hover, a.bg-green-600:hover, a.bg-green-700:hover,
button.bg-green-500:hover, button.bg-green-600:hover, button.bg-green-700:hover,
a.bg-emerald-500:hover, a.bg-emerald-600:hover, a.bg-emerald-700:hover,
button.bg-emerald-500:hover, button.bg-emerald-600:hover, button.bg-emerald-700:hover {
    border-color:#5db985 !important; background:#a5ddbc !important; color:#0f4425 !important;
}
/* Evita degradados residuales de utilidades visuales en tarjetas y encabezados. */
[class*="bg-gradient-"] { background-image:none !important; background-color:#f3f7fb !important; }
[class*="bg-gradient-"][class*="text-white"] { background:#4f7ab0 !important; color:#fff !important; }
body > header, body > footer { background-color:#4f7ab0 !important; background-image:none !important; color:#fff !important; }
body > footer, body > footer * { color:#fff !important; }

/* Tono morado único para todos los controles de acción morados. */
:is(a, button, input[type="submit"]):is(
  .bg-indigo-600, .bg-indigo-700, .bg-indigo-800, .bg-indigo-900,
  .bg-violet-600, .bg-violet-700, .bg-violet-800, .bg-violet-900,
  .bg-purple-600, .bg-purple-700, .bg-purple-800, .bg-purple-900
),
.primary-action,
body > header .module-link.active,
aside .context-link.active {
  border-color:#5752b4 !important;
  background-color:#5752b4 !important;
  background-image:none !important;
  color:#fff !important;
}
:is(a, button, input[type="submit"]):is(
  .bg-indigo-600, .bg-indigo-700, .bg-indigo-800, .bg-indigo-900,
  .bg-violet-600, .bg-violet-700, .bg-violet-800, .bg-violet-900,
  .bg-purple-600, .bg-purple-700, .bg-purple-800, .bg-purple-900
) *,
.primary-action *,
body > header .module-link.active *,
aside .context-link.active * { color:#fff !important; }
:is(a, button, input[type="submit"]):is(
  .bg-indigo-600, .bg-indigo-700, .bg-indigo-800, .bg-indigo-900,
  .bg-violet-600, .bg-violet-700, .bg-violet-800, .bg-violet-900,
  .bg-purple-600, .bg-purple-700, .bg-purple-800, .bg-purple-900
):hover,
.primary-action:hover,
body > header .module-link.active:hover,
aside .context-link.active:hover {
  border-color:#454191 !important;
  background-color:#454191 !important;
  color:#fff !important;
}
