/*
 * RKDL — overrides de acento (color de sidebar aplicado a toda la app) + Modo Stream.
 * Se carga después de soft-ui-dashboard.css. No toca el vendor CSS/JS.
 * "primary" es el color por defecto ya compilado — no necesita bloque de override.
 */

/* ---------- Primary (default) ----------
 * bg-gradient-primary/btn-primary/text-primary ya vienen rosas por defecto en el CSS
 * compilado — no necesitan override. Solo falta el fix del ícono activo del sidebar:
 * la regla del vendor [data-color=primary] .navbar-nav>.nav-item>.nav-link.active .icon
 * exige que .nav-item sea hijo directo de .navbar-nav, y el acordeón Bootstrap del
 * sidebar de este proyecto mete un div.collapse de por medio — nunca hace match. */
body[data-accent-color="primary"] .sidenav .nav-link.active .icon { background-image: linear-gradient(310deg,#cb0c9f,#cb0c9f) !important; }

/* El glifo interior del ícono se pone blanco cuando la sección está activa, sin importar
 * el acento elegido — se ve mejor sobre el fondo de color que el text-dark original. */
.sidenav .nav-link.active .icon i { color: #fff !important; }

/* Tabs de Mi Perfil / Editar Usuario (#perfil-tabs, nav-pills tipo "pastilla"). El vendor
 * agrega un div .moving-tab decorativo posicionado por JS (setTimeout + offsetWidth) para
 * animar el fondo blanco del tab activo — si al cargar la página el tab activo no es el
 * primero (ej. ?tab=seguridad), el cálculo no coincide y el fondo colapsa visualmente a una
 * línea delgada en vez de cubrir el botón completo. Se oculta ese div y se logra el mismo
 * efecto (pastilla blanca + sombra en el activo) con CSS puro, sin depender de JS/timing.
 * El color del texto queda fijo aquí — a propósito NO sigue el acento elegido por el
 * usuario (a diferencia de los tabs de Cuentas, que sí lo siguen). */
#perfil-tabs .moving-tab { display: none !important; }
#perfil-tabs .nav-link.active {
  background-color: #fff !important;
  color: #344767 !important;
  box-shadow: 0 1px 5px 1px #ddd;
  font-weight: 600;
}
#perfil-tabs .nav-link:not(.active) {
  color: #344767 !important;
}

/* ---------- Dark ---------- */
body[data-accent-color="dark"] .bg-gradient-primary { background-image: linear-gradient(310deg,#141727,#3a416f) !important; }
body[data-accent-color="dark"] .btn-primary { background-color:#344767 !important; border-color:#344767 !important; }
body[data-accent-color="dark"] .text-primary { color:#344767 !important; }
body[data-accent-color="dark"] .text-gradient.text-primary { background-image: linear-gradient(310deg,#141727,#3a416f) !important; }
body[data-accent-color="dark"] .sidenav .nav-link.active .icon { background-image: linear-gradient(310deg,#344767,#344767) !important; }
body[data-accent-color="dark"] .nav-tabs .nav-link:not(.active),
body[data-accent-color="dark"] .nav-pills .nav-link:not(.active) { color:#344767 !important; }
body[data-accent-color="dark"] .pagination .page-link { color:#344767 !important; }
body[data-accent-color="dark"] .pagination .page-item.active .page-link { background-color:#344767 !important; border-color:#344767 !important; }

/* ---------- Info ---------- */
body[data-accent-color="info"] .bg-gradient-primary { background-image: linear-gradient(310deg,#2152ff,#21d4fd) !important; }
body[data-accent-color="info"] .btn-primary { background-color:#17c1e8 !important; border-color:#17c1e8 !important; }
body[data-accent-color="info"] .text-primary { color:#17c1e8 !important; }
body[data-accent-color="info"] .text-gradient.text-primary { background-image: linear-gradient(310deg,#2152ff,#21d4fd) !important; }
body[data-accent-color="info"] .sidenav .nav-link.active .icon { background-image: linear-gradient(310deg,#17c1e8,#17c1e8) !important; }
body[data-accent-color="info"] .nav-tabs .nav-link:not(.active),
body[data-accent-color="info"] .nav-pills .nav-link:not(.active) { color:#17c1e8 !important; }
body[data-accent-color="info"] .pagination .page-link { color:#17c1e8 !important; }
body[data-accent-color="info"] .pagination .page-item.active .page-link { background-color:#17c1e8 !important; border-color:#17c1e8 !important; }

/* ---------- Success ---------- */
body[data-accent-color="success"] .bg-gradient-primary { background-image: linear-gradient(310deg,#17ad37,#98ec2d) !important; }
body[data-accent-color="success"] .btn-primary { background-color:#82d616 !important; border-color:#82d616 !important; }
body[data-accent-color="success"] .text-primary { color:#82d616 !important; }
body[data-accent-color="success"] .text-gradient.text-primary { background-image: linear-gradient(310deg,#17ad37,#98ec2d) !important; }
body[data-accent-color="success"] .sidenav .nav-link.active .icon { background-image: linear-gradient(310deg,#82d616,#82d616) !important; }
body[data-accent-color="success"] .nav-tabs .nav-link:not(.active),
body[data-accent-color="success"] .nav-pills .nav-link:not(.active) { color:#82d616 !important; }
body[data-accent-color="success"] .pagination .page-link { color:#82d616 !important; }
body[data-accent-color="success"] .pagination .page-item.active .page-link { background-color:#82d616 !important; border-color:#82d616 !important; }

/* ---------- Warning ---------- */
body[data-accent-color="warning"] .bg-gradient-primary { background-image: linear-gradient(310deg,#f53939,#fbcf33) !important; }
body[data-accent-color="warning"] .btn-primary { background-color:#fbcf33 !important; border-color:#fbcf33 !important; }
body[data-accent-color="warning"] .text-primary { color:#fbcf33 !important; }
body[data-accent-color="warning"] .text-gradient.text-primary { background-image: linear-gradient(310deg,#f53939,#fbcf33) !important; }
body[data-accent-color="warning"] .sidenav .nav-link.active .icon { background-image: linear-gradient(310deg,#fbcf33,#fbcf33) !important; }
body[data-accent-color="warning"] .nav-tabs .nav-link:not(.active),
body[data-accent-color="warning"] .nav-pills .nav-link:not(.active) { color:#fbcf33 !important; }
body[data-accent-color="warning"] .pagination .page-link { color:#fbcf33 !important; }
body[data-accent-color="warning"] .pagination .page-item.active .page-link { background-color:#fbcf33 !important; border-color:#fbcf33 !important; }

/* ---------- Danger ---------- */
body[data-accent-color="danger"] .bg-gradient-primary { background-image: linear-gradient(310deg,#ea0606,#ff667c) !important; }
body[data-accent-color="danger"] .btn-primary { background-color:#ea0606 !important; border-color:#ea0606 !important; }
body[data-accent-color="danger"] .text-primary { color:#ea0606 !important; }
body[data-accent-color="danger"] .text-gradient.text-primary { background-image: linear-gradient(310deg,#ea0606,#ff667c) !important; }
body[data-accent-color="danger"] .sidenav .nav-link.active .icon { background-image: linear-gradient(310deg,#ea0606,#ea0606) !important; }
body[data-accent-color="danger"] .nav-tabs .nav-link:not(.active),
body[data-accent-color="danger"] .nav-pills .nav-link:not(.active) { color:#ea0606 !important; }
body[data-accent-color="danger"] .pagination .page-link { color:#ea0606 !important; }
body[data-accent-color="danger"] .pagination .page-item.active .page-link { background-color:#ea0606 !important; border-color:#ea0606 !important; }

body[data-accent-color] .btn-primary:hover,
body[data-accent-color] .btn-primary:focus { filter: brightness(.92); }

/* El swatch "primary" del panel configurador usa bg-gradient-primary como su propio
 * color de badge (no como botón temático) — no debe repintarse con el acento activo. */
body[data-accent-color] .badge-colors .badge.bg-gradient-primary { background-image: linear-gradient(310deg,#7928ca,#ff0080) !important; }

/* Botones Transparent/White (Sidenav Type): ambos llevan bg-gradient-primary siempre —
 * el vendor ya distingue activo/inactivo con su propia regla (inactivo = transparente +
 * borde/texto rosa fijo #cb0c9f), pero el override de arriba (con !important) le devolvía
 * el degradado también al inactivo, anulando esa transparencia. El activo sí debe seguir
 * el acento (ya lo hereda del override genérico); el inactivo se fuerza a blanco liso. */
.fixed-plugin .btn.bg-gradient-primary:not(.active) {
  background-image: none !important;
  background-color: #fff !important;
  border: 1px solid #dee2e6 !important;
  color: #67748e !important;
}

/* =====================================================
 * Modo Stream — difumina datos sensibles (dinero, contacto)
 * ===================================================== */
.dato-sensible {
  display: inline-flex;
  align-items: center;
}
.dato-sensible-valor {
  display: inline;
}
.dato-sensible-toggle {
  display: none;
  border: none;
  background: transparent;
  padding: 0;
  margin-left: .35rem;
  color: inherit;
  opacity: .6;
}
.dato-sensible-toggle:hover { opacity: 1; }

body.modo-stream-activo .dato-sensible-valor {
  filter: blur(6px);
  user-select: none;
  transition: filter .15s ease;
}
body.modo-stream-activo .dato-sensible.revelado .dato-sensible-valor {
  filter: none;
}
body.modo-stream-activo .dato-sensible-toggle {
  display: inline-flex;
  cursor: pointer;
}

.dato-sensible-bloque {
  display: block;
  position: relative;
}
.dato-sensible-bloque .dato-sensible-valor {
  display: block;
}
body.modo-stream-activo .dato-sensible-bloque .dato-sensible-valor {
  filter: blur(10px);
}
.dato-sensible-bloque .dato-sensible-toggle {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 2.5rem;
  height: 2.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255,255,255,.85);
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
  opacity: 1;
  z-index: 2;
}
