/* dark_fixes.css - reglas puntuales generadas desde el audit de contraste.
   Cargar DESPUES de dark.css. Inerte en light. */

/* ---- Badges/botones: relleno oscuro del tono + texto claro ---- */
[data-theme="dark"] span.ad-badge.ad-badge-blue { background: #172f4f !important; color: #f5f7fa !important; }
[data-theme="dark"] button.ms-btn.ms-btn-sm.ms-btn-secondary { background: #334155 !important; color: #f5f7fa !important; }
[data-theme="dark"] span.status-label.danger { background: #4f1717 !important; color: #f5f7fa !important; }
[data-theme="dark"] span.user-badge.badge-active { background: #4f4117 !important; color: #f5f7fa !important; }
[data-theme="dark"] span.fer-list-tipo.fer-list-tipo-feriado { background: #4f1717 !important; color: #f5f7fa !important; }
[data-theme="dark"] span.chip.ok { background: #174f2c !important; color: #f5f7fa !important; }
[data-theme="dark"] span.user-badge.badge-staff { background: #1f3b47 !important; color: #f5f7fa !important; }
[data-theme="dark"] span.badge.badge-ready { background: #174f2f !important; color: #f5f7fa !important; }
[data-theme="dark"] span.status-label.warn { background: #4f3a17 !important; color: #f5f7fa !important; }
[data-theme="dark"] span.badge.b-no-revisado { background: #4f3a17 !important; color: #f5f7fa !important; }
[data-theme="dark"] span.alm-badge.alm-badge-blue { background: #172f4f !important; color: #f5f7fa !important; }
[data-theme="dark"] span.merr-usuarios-badge { background: #4f4117 !important; color: #f5f7fa !important; }
[data-theme="dark"] button.btn-quick-action { background: #212f45 !important; color: #f5f7fa !important; }
[data-theme="dark"] span.badge.b-exc { background: #173e4f !important; color: #f5f7fa !important; }
[data-theme="dark"] span.badge.b-aprobado { background: #174f2c !important; color: #f5f7fa !important; }
[data-theme="dark"] span.badge.bg-warning { background: #4f4117 !important; color: #f5f7fa !important; }
[data-theme="dark"] a.rc-tbtn { background: #334155 !important; color: #f5f7fa !important; }
[data-theme="dark"] button.btn.btn-sm { background: #334155 !important; color: #f5f7fa !important; }
[data-theme="dark"] button.btn.btn-config#btnMapeo { background: #334155 !important; color: #f5f7fa !important; }
[data-theme="dark"] button.btn-generar#mrc-generar { background: #17324f !important; color: #f5f7fa !important; }
[data-theme="dark"] button.btn-manage-recipients { background: #212f45 !important; color: #f5f7fa !important; }
[data-theme="dark"] button.btn-close-panel#closeUsersPanel { background: #212f45 !important; color: #f5f7fa !important; }
[data-theme="dark"] a.btn.btn-success { background: #174f24 !important; color: #f5f7fa !important; }
[data-theme="dark"] a.btn.btn-secondary { background: #334155 !important; color: #f5f7fa !important; }
[data-theme="dark"] span.filtro-badge { background: #334155 !important; color: #f5f7fa !important; }
[data-theme="dark"] a.btn.btn-gray { background: #213045 !important; color: #f5f7fa !important; }
[data-theme="dark"] button.btn.btn-green.btn-sm#achMarcarBtn { background: #174f2c !important; color: #f5f7fa !important; }
[data-theme="dark"] button.dlr-btn.dlr-btn-secondary#btnFiltrarDiferencias { background: #213045 !important; color: #f5f7fa !important; }
[data-theme="dark"] span.fer-list-tipo.fer-list-tipo-no_labor { background: #4f3a17 !important; color: #f5f7fa !important; }
[data-theme="dark"] a.cob-btn.cob-btn-gray { background: #213045 !important; color: #f5f7fa !important; }
[data-theme="dark"] div.stat-label { background: #4f171e !important; color: #f5f7fa !important; }
[data-theme="dark"] div.stat-number { background: #4f171e !important; color: #f5f7fa !important; }
[data-theme="dark"] a.btn-back { background: #334155 !important; color: #f5f7fa !important; }
[data-theme="dark"] a.btn-submit { background: #174f2c !important; color: #f5f7fa !important; }
[data-theme="dark"] span.badge.badge-factura { background: #17384f !important; color: #f5f7fa !important; }
[data-theme="dark"] span.badge#bd-todos { background: #334155 !important; color: #f5f7fa !important; }
[data-theme="dark"] a.ad-btn.ad-btn-sm.ad-btn-ok { background: #17184f !important; color: #f5f7fa !important; }
[data-theme="dark"] a.ad-btn.ad-btn-sm { background: #334155 !important; color: #f5f7fa !important; }

/* ---- Texto con clase: color segun fondo ---- */
[data-theme="dark"] small#swap-text { color: #eeb68b !important; }
[data-theme="dark"] p.compose-header-eyebrow { color: #98c4e1 !important; }
[data-theme="dark"] strong.selected-count-number { color: #98c4e1 !important; }
[data-theme="dark"] td.sorting_1 { color: #e6eaf0 !important; }
[data-theme="dark"] span.ellipsis { color: #e6eaf0 !important; }
[data-theme="dark"] td.cob-frente-name { color: #e6eaf0 !important; }
[data-theme="dark"] td.cob-num { color: #e6eaf0 !important; }
[data-theme="dark"] td.cob-num.sorting_1 { color: #e6eaf0 !important; }
[data-theme="dark"] td.cob-num.cob-ok { color: #8febb0 !important; }
[data-theme="dark"] td.cob-num.cob-warn { color: #ee8b8b !important; }

/* ---- Bare (coloreado inline por JS): override por firma de color inline ---- */
[data-theme="dark"] [style*="color:#dc2626"], [data-theme="dark"] [style*="color: #dc2626"] { color: #ed8d8d !important; }
[data-theme="dark"] [style*="color:#9d174d"], [data-theme="dark"] [style*="color: #9d174d"] { color: #ee8bb3 !important; }
[data-theme="dark"] [style*="background:#e0e7ff"], [data-theme="dark"] [style*="background: #e0e7ff"] { background: #161f41 !important; }
[data-theme="dark"] [style*="color:#16a34a"], [data-theme="dark"] [style*="color: #16a34a"] { color: #8beeb0 !important; }
[data-theme="dark"] [style*="color:#d97706"], [data-theme="dark"] [style*="color: #d97706"] { color: #eec08b !important; }
[data-theme="dark"] [style*="color:#173a52"], [data-theme="dark"] [style*="color: #173a52"] { color: #97c4e2 !important; }
[data-theme="dark"] [style*="color:#ffffff"], [data-theme="dark"] [style*="color: #ffffff"] { color: #e6eaf0 !important; }
[data-theme="dark"] [style*="background:#e0f2fe"], [data-theme="dark"] [style*="background: #e0f2fe"] { background: #163041 !important; }
[data-theme="dark"] [style*="background:#cbd5e1"], [data-theme="dark"] [style*="background: #cbd5e1"] { background: #202a37 !important; }
[data-theme="dark"] [style*="color:#8b5cf6"], [data-theme="dark"] [style*="color: #8b5cf6"] { color: #a98bee !important; }
[data-theme="dark"] [style*="color:#6b7280"], [data-theme="dark"] [style*="color: #6b7280"] { color: #e6eaf0 !important; }
[data-theme="dark"] [style*="color:#c9c9c9"], [data-theme="dark"] [style*="color: #c9c9c9"] { color: #e6eaf0 !important; }

/* ---- Fixes finales manuales ---- */
[data-theme="dark"] span.fer-list-tipo.fer-list-tipo-no_laborable { background: #4d3a17 !important; color: #f5f7fa !important; }
[data-theme="dark"] #cobRoot .cob-clickable:hover td,
[data-theme="dark"] #cobRoot .cob-tbl tbody tr:hover td { background: #1e2a3a !important; }
[data-theme="dark"] #cobRoot .cob-num.cob-ok { color: #4ade80 !important; }
[data-theme="dark"] #cobRoot .cob-num.cob-warn { color: #f87171 !important; }

/* ---- Fixes finales v2 (cargados despues de extra_styles) ---- */
[data-theme="dark"] .card-header { background: var(--surface-2); }
[data-theme="dark"] .card-header[style*="var(--red-600)"] { background:#4a1f1f !important; }
[data-theme="dark"] .card-header[style*="var(--amber-500)"] { background:#4a3a15 !important; }
[data-theme="dark"] .card-header[style*="var(--emerald-500)"] { background:#15402e !important; }
[data-theme="dark"] .mss-warning, [data-theme="dark"] .mss-info-note.mss-warning { background:#3a2e15 !important; }
[data-theme="dark"] #swap-text { color:#fcd9a8 !important; }
[data-theme="dark"] .merr-usuarios-badge { color:#6b3410 !important; }
[data-theme="dark"] .btn-config { background:#334155 !important; color:#f5f7fa !important; }

/* ---- Fixes finales v3 (literales en <script> de template) ---- */
[data-theme="dark"] .bit-empty a { color: var(--brand-ink) !important; }
[data-theme="dark"] td.sorting_1 { background: rgba(125,180,230,0.10) !important; }
[data-theme="dark"] [style*="background:#e0f2fe"], [data-theme="dark"] [style*="background: #e0f2fe"] { background: #16304a !important; }
[data-theme="dark"] [style*="background:#cbd5e1"], [data-theme="dark"] [style*="background: #cbd5e1"] { background: #334155 !important; color: #f5f7fa !important; }

/* ---- Fixes finales v4: calendario, tooltips, sorting, ad-btn ---- */
[data-theme="dark"] td[class*="fecha-"] { color: #1e293b !important; }
[data-theme="dark"] .tooltip-texto { background: #1e293b !important; color: #f1f5f9 !important; }
[data-theme="dark"] .tooltip-texto * { color: #f1f5f9 !important; }
[data-theme="dark"] table tbody td.sorting_1 { background: rgba(125,180,230,0.10) !important; }
[data-theme="dark"] a.ad-btn.ad-btn-sm { background: #334155 !important; color: #f5f7fa !important; }

/* ---- Fixes finales v5: JS setea .style.bg -> DOM serializa como rgb(...) ---- */
[data-theme="dark"] [style*="rgb(224, 242, 254)"] { background: #16304a !important; }   /* sky #e0f2fe */
[data-theme="dark"] [style*="rgb(173, 216, 230)"] { background: #16304a !important; }   /* lightblue */
[data-theme="dark"] [style*="rgb(203, 213, 225)"] { background: #334155 !important; color: #f5f7fa !important; } /* slate-300 */
[data-theme="dark"] [style*="rgb(224, 231, 255)"] { background: #1e2a4a !important; }   /* indigo-100 */
[data-theme="dark"] td.sorting_1, [data-theme="dark"] td.sorting_2, [data-theme="dark"] td.sorting_3 { background: rgba(125,180,230,0.10) !important; }
[data-theme="dark"] .ad-btn-sm:not(.ad-btn-ok):not(.ad-btn-green):not(.ad-btn-danger) { background: #334155 !important; color: #f5f7fa !important; }

/* ---- Fixes finales v6: sorting/row highlight + ad-btn (max specificity) ---- */
[data-theme="dark"] table td.sorting_1, [data-theme="dark"] table.dataTable td.sorting_1,
[data-theme="dark"] .responsive-table td.sorting_1, [data-theme="dark"] tbody tr td.sorting_1 { background-color: rgba(125,180,230,0.12) !important; }
[data-theme="dark"] tr.selected td, [data-theme="dark"] tr.active td, [data-theme="dark"] tr.row-selected td { background-color: rgba(125,180,230,0.12) !important; }
[data-theme="dark"] a.ad-btn.ad-btn-sm:not([class*="ok"]):not([class*="green"]):not([class*="danger"]):not([class*="blue"]):not([class*="red"]) { background: #334155 !important; color: #f5f7fa !important; }

/* ---- v7: sorting/ad-btn broad ---- */
[data-theme="dark"] .sorting_1 { background-color: rgba(125,180,230,0.12) !important; }
[data-theme="dark"] a.ad-btn-sm, [data-theme="dark"] .ad-btn-sm { color: #f5f7fa !important; }

/* ---- v8: hover de filas (era el origen de los "offenders" que fluctuaban) ---- */
[data-theme="dark"] tbody tr:hover > td,
[data-theme="dark"] tbody tr:hover > th,
[data-theme="dark"] table.dataTable tbody tr:hover > td,
[data-theme="dark"] .responsive-table tbody tr:hover,
[data-theme="dark"] .responsive-table tbody tr:hover > td { background-color: rgba(125,180,230,0.10) !important; }

/* ---- v9: hover sutil (no aclarar el fondo; preserva contraste de links/acento) ---- */
[data-theme="dark"] tbody tr:hover > td,
[data-theme="dark"] tbody tr:hover > th,
[data-theme="dark"] table.dataTable tbody tr:hover > td,
[data-theme="dark"] .responsive-table tbody tr:hover,
[data-theme="dark"] .responsive-table tbody tr:hover > td { background-color: rgba(255,255,255,0.05) !important; }

/* ---- v10: hover aun mas sutil + ad-btn-sm catch fuerte ---- */
[data-theme="dark"] tbody tr:hover > td, [data-theme="dark"] tbody tr:hover > th,
[data-theme="dark"] .responsive-table tbody tr:hover, [data-theme="dark"] .responsive-table tbody tr:hover > td { background-color: rgba(255,255,255,0.035) !important; }
[data-theme="dark"] a.ad-btn.ad-btn-sm, [data-theme="dark"] .ad-btn.ad-btn-sm:not(.ad-btn-ok):not(.ad-btn-green):not(.ad-btn-danger) { background-color: #334155 !important; color: #f5f7fa !important; }
[data-theme="dark"] [style*="rgb(203, 213, 225)"] { background-color: #334155 !important; }

/* ---- v11: nudge final para cruzar 4.5 estricto ---- */
[data-theme="dark"] .link-danger { color: #fca5a5 !important; }
[data-theme="dark"] .text-success-ink, [data-theme="dark"] [style*="var(--text-success-ink)"] { color: #86efac !important; }

/* ---- v12: label de dia en viandas (sky-ink apenas legible) ---- */
[data-theme="dark"] .viandas-menu-dia-titulo { color: #7dd3fc !important; }

/* ---- v13: caja del menu del dia (viandas): fondo OSCURO + letra CLARA ---- */
[data-theme="dark"] .viandas-menu-dia { background: linear-gradient(135deg, #16304a 0%, #1d3b57 100%) !important; }
[data-theme="dark"] .viandas-menu-dia-titulo { color: #bae6fd !important; }

/* ---- v14: caja notificacion-section (configuracion-viandas): gradiente claro -> oscuro ---- */
[data-theme="dark"] .notificacion-section { background: linear-gradient(135deg, #16304a 0%, #1d3b57 100%) !important; border-color: #2a4a6b !important; }

/* ---- v15: #empleadosTable (Mi Nomina) hover azul claro y fila notificada amarilla ----
   La regla original usa ID (#empleadosTable) y pinta el <tr>, no el <td>; el override
   generico de hover (> td casi transparente) deja ver el azul claro por debajo. Hay que
   igualar la especificidad de ID sobre el propio tr. */
[data-theme="dark"] #empleadosTable tbody tr:hover { background-color: rgba(96,165,250,0.14) !important; }
[data-theme="dark"] #empleadosTable tbody tr:hover td input,
[data-theme="dark"] #empleadosTable tbody tr:hover td textarea,
[data-theme="dark"] #empleadosTable tbody tr:hover td select { background-color: #243049 !important; }
/* fila notificada como ausente: amarillo claro -> ambar oscuro translucido */
[data-theme="dark"] #empleadosTable tbody tr.ausencia-notificada-modal { background-color: rgba(245,158,11,0.13) !important; }
[data-theme="dark"] #empleadosTable tbody tr.ausencia-notificada-modal:hover { background-color: rgba(245,158,11,0.20) !important; }
[data-theme="dark"] #empleadosTable tbody tr.ausencia-notificada-modal td input,
[data-theme="dark"] #empleadosTable tbody tr.ausencia-notificada-modal td textarea,
[data-theme="dark"] #empleadosTable tbody tr.ausencia-notificada-modal td select { background-color: rgba(245,158,11,0.10) !important; }

/* ---- v16: mi_nomina_dashboard en dark ----
   La grilla usa pasteles claros hardcodeados (son claves de logica en el view, no se tocan en Python):
   los remapeo a version oscura del mismo tono via data-cell-bg (!important cubre tambien el set por JS).
   Celdas con texto (Ult.Marcacion/Parte = hsl claro) -> texto oscuro. Header de fecha especial y foto. */
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#bbf7d0"] { background:#1d4a33 !important; }
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#4ade80"] { background:#2c7349 !important; }
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#fecaca"] { background:#4d2429 !important; }
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#fed7aa"] { background:#4d3622 !important; }
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#fef3c7"] { background:#443b1d !important; }
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#dbeafe"] { background:#1e3a55 !important; }
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#e0e7ff"] { background:#2a3252 !important; }
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#e5e7eb"] { background:#2d323a !important; }
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#f1f5f9"] { background:#262f3c !important; }
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#e2e8f0"] { background:#2a323d !important; }
/* celdas vacias (sin dato / ausencia "A"): neutro tipo celda mas claro, no hueco/sombra */
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#ffffff"],
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg="#fff"] { background:#37424f !important; }
/* tambien por inline style (fallback si falta data-cell-bg) */
[data-theme="dark"] #dashTable .dash-row td[style*="background:#bbf7d0"] { background:#1d4a33 !important; }
[data-theme="dark"] #dashTable .dash-row td[style*="background:#fecaca"] { background:#4d2429 !important; }
[data-theme="dark"] #dashTable .dash-row td[style*="background:#fed7aa"] { background:#4d3622 !important; }
[data-theme="dark"] #dashTable .dash-row td[style*="background:#fef3c7"] { background:#443b1d !important; }
/* Ult.Marcacion / Ult.Parte: el color de antiguedad ahora se genera oscuro en dark
   desde el view (_dashboard_color_antiguedad es_dark) -> texto claro heredado, legible. */
/* header de fecha "especial" (orange-200 claro) -> ambar oscuro + texto claro */
[data-theme="dark"] #dashTable thead th[style*="--orange-200"] { background:#4a3320 !important; color:#fcd9a8 !important; }
/* celda foto sin registro (red-200 claro) -> rojo oscuro */
[data-theme="dark"] #dashTable .dash-row td[style*="--red-200"] { background:#4a1f24 !important; }
/* leyenda del dashboard: igualar los cuadritos a las celdas oscurecidas */
[data-theme="dark"] .dash-legend span[style*="--green-200"] { background:#1d4a33 !important; border-color:#2c7349 !important; }
[data-theme="dark"] .dash-legend span[style*="--green-400"] { background:#2c7349 !important; border-color:#3a8f5d !important; }
[data-theme="dark"] .dash-legend span[style*="--amber-100"] { background:#443b1d !important; border-color:#5e5226 !important; }
[data-theme="dark"] .dash-legend span[style*="--orange-200"] { background:#4d3622 !important; border-color:#6b4a30 !important; }
[data-theme="dark"] .dash-legend span[style*="--red-200"] { background:#4d2429 !important; border-color:#6b3338 !important; }
[data-theme="dark"] .dash-legend span[style*="--blue-100"] { background:#1e3a55 !important; border-color:#2a4f6b !important; }
/* divisiones de celda visibles en dark (la grilla no tenia borde propio) */
[data-theme="dark"] :is(#dashTable,#tablaHorario) td[data-cell-bg] { border:1px solid rgba(255,255,255,0.19) !important; }
[data-theme="dark"] #dashTable .dash-row { border-bottom-color:rgba(255,255,255,0.11) !important; }
[data-theme="dark"] #dashTable thead th { border-color:rgba(255,255,255,0.10) !important; }

/* ---- v17: dashboard de HORARIO (#tablaHorario) ----
   Celdas data-cell-bg: cubiertas por v16 (:is incluye #tablaHorario). Leyenda: .dash-legend.
   Los th usan slate-900/800/700 esperando que sean OSCUROS, pero en dark esos neutros se
   INVIERTEN a claro -> header blanco. Los forzamos oscuros (texto on-accent=blanco queda bien). */
[data-theme="dark"] #tablaHorario th,
[data-theme="dark"] #tablaHorario thead tr { background-color:#16202e !important; }
[data-theme="dark"] #tablaHorario th.th-especial { background-color:#3d2e18 !important; color:#fcd9a8 !important; }
[data-theme="dark"] #tablaHorario th.col-hover { background-color:#26344a !important; }
[data-theme="dark"] #tablaHorario thead th { border-color:rgba(255,255,255,0.10) !important; }

/* ---- v18: menu_semanal cajas amber/emerald claras (gradientes no theme-aware) ----
   El texto usa -ink (se aclara solo en dark); aca solo oscurecemos los fondos. */
[data-theme="dark"] .cocina-selector { background: linear-gradient(135deg,#3a2e15 0%,#463810 100%) !important; }
[data-theme="dark"] .activacion-panel { background: linear-gradient(135deg,#3a2e15 0%,#463810 100%) !important; border-color:#6b5418 !important; }
[data-theme="dark"] .activacion-panel.siempre-activa { background: linear-gradient(135deg,#143420 0%,#16402a 100%) !important; border-color:#1f6440 !important; }
[data-theme="dark"] .activacion-dia-item:has(input:checked) { background:#3a2e15 !important; border-color:#6b5418 !important; }

/* ---- v19: popup nativo de <select> en dark ----
   El highlight del cursor sobre una fila aclaraba el select (translucido) -> al abrirlo, el popup
   nativo salia claro y el item resaltado quedaba bajo contraste. Estilar <option> oscuro hace que
   el popup SIEMPRE se vea oscuro y legible (Chrome/Firefox respetan bg/color de option). Global. */
[data-theme="dark"] option,
[data-theme="dark"] optgroup { background-color: #1e293b !important; color: #e6eaf0 !important; }
[data-theme="dark"] option:checked,
[data-theme="dark"] option:hover { background-color: #2b3a55 !important; color: #ffffff !important; }

/* ---- v20: FABs del index (#fab-container) en dark ----
   Las sombras base usan negro/glow pensados para fondo claro: en dark el FAB del menu
   (sombra negra) desaparece y los bordes de los circulos se funden con el fondo.
   Se profundiza la sombra neutra y se agrega un anillo sutil de separacion.
   NO se toca #ap-fab: sus estilos son inline desde JS (amber glow, legible en dark). */
[data-theme="dark"] #mobile-menu-fab {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.10);
}
[data-theme="dark"] #mobile-menu-fab:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(255, 255, 255, 0.14);
}
[data-theme="dark"] .btn-ocr-flotante {
    box-shadow: 0 4px 15px rgba(124, 58, 237, 0.35), 0 2px 8px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.10);
}
[data-theme="dark"] .btn-ocr-flotante:hover {
    box-shadow: 0 6px 20px rgba(124, 58, 237, 0.5), 0 2px 8px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.14);
}
[data-theme="dark"] .btn-viandas-flotante {
    box-shadow: 0 4px 15px rgba(76, 144, 175, 0.35), 0 2px 8px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.10);
}
[data-theme="dark"] .btn-viandas-flotante:hover {
    box-shadow: 0 6px 20px rgba(76, 144, 175, 0.5), 0 2px 8px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.14);
}
/* Ausencias: el pulse anima box-shadow y pisaria el anillo -> keyframes propios para dark */
[data-theme="dark"] .btn-ausencias-flotante {
    animation-name: pulse-fab-dark;
    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.35), 0 2px 8px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.10);
}
[data-theme="dark"] .btn-ausencias-flotante:hover {
    animation: none;
    box-shadow: 0 6px 20px rgba(102, 126, 234, 0.5), 0 2px 8px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.14);
}
@keyframes pulse-fab-dark {
    0%, 100% { box-shadow: 0 4px 15px rgba(102, 126, 234, 0.35), 0 2px 8px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.10); }
    50%      { box-shadow: 0 4px 25px rgba(102, 126, 234, 0.6), 0 2px 8px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.10); }
}
