/*
  Overrides específicos de Hybrid Impressions
  Objetivo: eliminar la restricción de altura en el sidenav vertical de Soft UI
  Motivo: reglas del tema fijan height: calc(100vh - 360px); en varios breakpoints
  Estrategia: forzar height:auto con !important para todos los tamaños
*/

/* Aplica a todas las variantes de navbar-vertical con clases navbar-expand-xx */
.navbar-vertical[class*="navbar-expand-"] .navbar-collapse {
  height: auto !important;
}

/* (limpio) dejar que el tema maneje los estilos de datatables */

/* Evitar desbordes horizontales del datatable dentro del card */
.dataTable-wrapper {
  max-width: 100%;
}
.dataTable-wrapper .dataTable-container {
  overflow-x: auto;
}
.dataTable-table {
  width: 100%;
  max-width: 100%;
}

/* Impersonate banner refined */
.impersonate-banner-wrapper {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 12000;
  pointer-events: none; /* allow inner to control */
}
.impersonate-banner {
  pointer-events: auto;
  --imp-bg: linear-gradient(90deg,#facc15,#f59e0b);
  background: var(--imp-bg);
  color: #1f2937;
  box-shadow: 0 4px 14px -4px rgba(0,0,0,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  padding: .55rem 1rem;
  font-size: .775rem;
  font-weight: 500;
  letter-spacing: .5px;
  position: relative;
  overflow: hidden;
}
.impersonate-banner:before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(135deg, rgba(255,255,255,.18) 0 8px, rgba(255,255,255,0) 8px 16px);
  mix-blend-mode: overlay;
  pointer-events: none;
}
.impersonate-badge {
  background: #1f2937;
  color: #fcd34d;
  font-size: .65rem;
  letter-spacing: 1px;
  padding: .25rem .55rem;
  border-radius: 999px;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  box-shadow: 0 2px 6px -2px rgba(0,0,0,.4);
}
.impersonate-btn-return {
  background: #111827;
  border: 0;
  color: #f9fafb;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .8px;
  padding: .45rem .9rem;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
  position: relative;
}
.impersonate-btn-return:before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 6px;
  padding: 1px;
  background: linear-gradient(120deg,#fbbf24,#f59e0b,#d97706);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity: .5;
  pointer-events: none;
}
.impersonate-btn-return:hover {
  background:#1f2937;
  transform: translateY(-1px);
  box-shadow:0 4px 14px -4px rgba(0,0,0,.5);
}
.impersonate-btn-return:active {
  transform: translateY(0);
  box-shadow:0 2px 8px -3px rgba(0,0,0,.5);
}
.impersonate-icon-spin {
  display:inline-block;
  animation: imp-spin 6s linear infinite;
}
@keyframes imp-spin { to { transform: rotate(360deg);} }
.impersonate-spacer { padding-top: 52px; }
