/* ==========================================================
   BOTONES BRIXAURBA
   Fuente única del borde, glow y hover tomado de Reportes.
   Conserva el color semántico de cada botón (primario, secundario,
   edición, WhatsApp, etc.) y cambia el glow a rojo en destructivos.
   ========================================================== */
:root {
  --button-glow-border: rgba(16, 185, 129, .46);
  --button-glow-ring: rgba(16, 185, 129, .25);
  --button-glow-shadow: rgba(16, 185, 129, .25);
  --button-glow-ring-hover: rgba(16, 185, 129, .42);
  --button-glow-shadow-hover: rgba(16, 185, 129, .36);
  --button-danger-border: rgba(220, 38, 38, .58);
  --button-danger-ring: rgba(220, 38, 38, .28);
  --button-danger-shadow: rgba(220, 38, 38, .28);
}

/* El glow global solo pertenece al tema oscuro. En claro no se declara borde,
   sombra, transición ni hover: cada módulo recupera íntegro su estilo original. */
body[data-theme="oscuro"] :is(button, .btn, .action-btn, [class*="btn-"]):not(.appnav-item):not(.appnav-group-btn):not(.perfil-tab):not(.vista-tab):not(.cot-modal-close):not(.rsv-modal-close):not(.modal-close):not(.close-btn) {
  border-color: var(--button-glow-border) !important;
  box-shadow:
    0 0 0 1px var(--button-glow-ring),
    0 10px 24px var(--button-glow-shadow) !important;
  transition:
    background-color .25s ease,
    border-color .25s ease,
    color .25s ease,
    box-shadow .25s ease,
    transform .25s ease !important;
}

body[data-theme="oscuro"] :is(button, .btn, .action-btn, [class*="btn-"]):not(.appnav-item):not(.appnav-group-btn):not(.perfil-tab):not(.vista-tab):not(.cot-modal-close):not(.rsv-modal-close):not(.modal-close):not(.close-btn):not(:disabled):hover {
  border-color: rgba(16, 185, 129, .72) !important;
  box-shadow:
    0 0 0 1px var(--button-glow-ring-hover),
    0 14px 32px var(--button-glow-shadow-hover) !important;
  transform: translateY(-1px);
}

body[data-theme="oscuro"] :is(button, .btn, .action-btn, [class*="btn-"]):not(.appnav-item):not(.appnav-group-btn):not(.perfil-tab):not(.vista-tab):not(.cot-modal-close):not(.rsv-modal-close):not(.modal-close):not(.close-btn):focus-visible {
  outline: 3px solid rgba(16, 185, 129, .28);
  outline-offset: 3px;
}

/* La selección de período conserva el activo del menú lateral y suma el glow. */
.dv-seg-btn.active {
  box-shadow:
    inset 3px 0 0 var(--app-green, #0f3d3e),
    0 0 0 1px var(--button-glow-ring),
    0 10px 24px var(--button-glow-shadow) !important;
}

/* Acciones destructivas: mismo lenguaje visual, siempre en rojo. */
:is(
  .btn-danger,
  .danger-btn,
  .btn-eliminar,
  .btn-borrar,
  .btn-delete,
  .btn-action-delete,
  .project-delete-btn,
  .pe-btn-danger,
  #btnEliminarCuenta,
  [aria-label*="eliminar" i],
  [aria-label*="borrar" i]
) {
  border-color: var(--button-danger-border) !important;
  box-shadow:
    0 0 0 1px var(--button-danger-ring),
    0 10px 24px var(--button-danger-shadow) !important;
}

:is(
  .btn-danger,
  .danger-btn,
  .btn-eliminar,
  .btn-borrar,
  .btn-delete,
  .btn-action-delete,
  .project-delete-btn,
  .pe-btn-danger,
  #btnEliminarCuenta,
  [aria-label*="eliminar" i],
  [aria-label*="borrar" i]
):not(:disabled):hover {
  border-color: rgba(239, 68, 68, .78) !important;
  box-shadow:
    0 0 0 1px rgba(239, 68, 68, .42),
    0 14px 32px rgba(220, 38, 38, .38) !important;
}

body[data-theme="oscuro"] :is(button, .btn, .action-btn, [class*="btn-"]):disabled {
  box-shadow: none !important;
  transform: none !important;
  cursor: not-allowed;
}

body[data-theme="oscuro"] {
  --button-glow-border: rgba(52, 211, 153, .5);
  --button-glow-ring: rgba(16, 185, 129, .3);
  --button-glow-shadow: rgba(16, 185, 129, .28);
  --button-glow-ring-hover: rgba(52, 211, 153, .5);
  --button-glow-shadow-hover: rgba(16, 185, 129, .4);
}

body[data-theme="oscuro"] .dv-seg-btn.active {
  box-shadow:
    inset 3px 0 0 #10b981,
    0 0 0 1px rgba(52, 211, 153, .42),
    0 10px 24px rgba(16, 185, 129, .28) !important;
}

@media (prefers-reduced-motion: reduce) {
  body[data-theme="oscuro"] :is(button, .btn, .action-btn, [class*="btn-"]) {
    transition: none !important;
  }
}
