/* =========================================================
   custom.css (DUXA) – COMPLETO
   Reemplaza tu custom.css por este (o pega tal cual)
   ========================================================= */

/* =========================
   1) PALETA + FUENTES DUXA
   ========================= */

:root{
  --duxa-blue:#034EF7;
  --duxa-blue-deep:#042080;
  --duxa-cyan:#83FFE7;
  --duxa-cyan-soft:#ACE3E8;
  --duxa-sky:#5CDCFF;
  --duxa-black:#000000;
  --duxa-white:#FFFFFF;
  --duxa-gray:#71869D;
}

/* Fuentes DUXA (si existen en /static/fonts) */
@font-face{ font-family:"Integral CF"; src:url("/static/fonts/IntegralCF-Bold.otf") format("opentype"); font-weight:700; font-style:normal; }
@font-face{ font-family:"Hando Trial";  src:url("/static/fonts/HandoTrial-Regular.otf") format("opentype"); font-weight:400; font-style:normal; }
@font-face{ font-family:"Hando Trial";  src:url("/static/fonts/HandoTrial-Bold.otf") format("opentype"); font-weight:700; font-style:normal; }

/* =========================
   2) TIPOGRAFÍA GLOBAL
   ========================= */

body{
  font-family: "Integral CF","WesFY",Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  color: var(--duxa-black);
}

/* Headings */
h1,h2,h3,h4,h5,h6{
  font-family: "Integral CF","WesFY",Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
}

/* Texto general */
p,span,a,li,td,th,label,button,input,select,textarea,text,div{
  font-family: "Hando Trial","WesFY",Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
}

/* Links (NO pintar todos los <a> en azul) */
.text-primary, .link-primary{ color: var(--duxa-blue) !important; }
a{ color: inherit; }
a:hover{ color: inherit; }

/* =========================
   3) REGLAS EXISTENTES (TU TEMPLATE)
   ========================= */

.is-invalid{
  border-color:#ed4c78 !important;
  color:#ed4c78 !important;
}
.is-invalid:focus{
  box-shadow:0 0 0 0.25rem rgba(237,76,120,0.25);
}
.input-group-merge.is-invalid{ border:0.0625rem solid #ed4c78; }

.smalltable{ font-size:10pt !important; }

thead tr th{ font-weight:900 !important; }
tfoot tr th{ font-weight:900 !important; }

.form_error{ border:1px solid #ed4c78; }

.custom-hover:hover{ background-color:#f0f0f0; }

.sticky{ z-index:3; position:relative; }
.is-sticky{
  background-color:#fff;
  box-shadow:0 0 10px rgba(0,0,0,.1);
  z-index:2 !important;
}

#contenedorsubmenu{ z-index:0; }

.card-footer{ padding:10px !important; }

.card-dashed-3px{ border:3px dashed rgba(231,234,243,.7) !important; }

.grupo-enlinea{
  background-color:#fdfdfd !important;
  width:40%;
  font-weight:bold !important;
  padding:.6125rem .5rem !important;
}
.grupo-enlinea-input{ padding:.6125rem .4rem !important; }

.text-card-title{ font-size:1.5rem !important; }
.text-card-subtitle{ font-size:.8rem; }

.bg_custom_grey{ background-color:#F1F1F1; }

.pointer{ cursor:pointer; }

.tipo-grafia-header-base{
  font-family:'WesFY',sans-serif !important;
  color:#494949;
}
.tipo-grafia-subtitle-base{
  font-family:'WesFY',sans-serif !important;
  font-size:small !important;
  font-weight:normal !important;
  color:#494949;
}

.texto-resaltado{ font-weight:600 !important; }

.text-size-subtiltulo{
  font-weight:500 !important;
  font-style:Medium !important;
  font-size:14px !important;
  line-height:150% !important;
  letter-spacing:0% !important;
}
.text-size-header{
  font-weight:500 !important;
  font-style:Medium !important;
  font-size:20px !important;
  line-height:150% !important;
  letter-spacing:0% !important;
}

.match-input{ height:calc(2.375rem + 2px); }

/* fondos */
.bg-fondo{ background-color:#F9F9F9 !important; }
.bg-fondo-v2{ background-color:#F1F1F1 !important; }
.bg-fondo-v2-border-trasnparente{
  background-color:#F1F1F1 !important;
  border-radius:1.5rem !important;
}
.bg-fondo-border{
  background-color:#F9F9F9 !important;
  border:1px solid #dee2e6;
  border-radius:1.5rem !important;
  -webkit-border-radius:1.5rem !important;
  -moz-border-radius:1.5rem !important;
  -ms-border-radius:1.5rem !important;
  -o-border-radius:1.5rem !important;
}
.bg-fondo-border-trasnparente{
  background-color:#F9F9F9 !important;
  border:0px solid #dee2e6;
  border-radius:1.5rem !important;
  -webkit-border-radius:1.5rem !important;
  -moz-border-radius:1.5rem !important;
  -ms-border-radius:1.5rem !important;
  -o-border-radius:1.5rem !important;
}
.bg-fondo-border-invertido{
  background-color:transparent !important;
  border:1px solid #F1F1F1;
  border-radius:1.5rem !important;
}
.bg-fondo-trasnparente{
  background-color:transparent;
  border-radius:1.5rem !important;
}

/* =========================
   4) DUXA – REMAP COLORES / BOTONES
   ========================= */

.btn-primary{
  background-color:var(--duxa-blue) !important;
  border-color:var(--duxa-blue) !important;
}
.btn-primary:hover, .btn-primary:focus{
  background-color:var(--duxa-blue-deep) !important;
  border-color:var(--duxa-blue-deep) !important;
}
.btn-outline-primary{
  color:var(--duxa-blue) !important;
  border-color:var(--duxa-blue) !important;
}
.btn-outline-primary:hover{
  background-color:var(--duxa-blue) !important;
  border-color:var(--duxa-blue) !important;
  color:var(--duxa-white) !important;
}

.text-bg-primary{
  background-color:var(--duxa-blue) !important;
  color:var(--duxa-white) !important;
}
.text-bg-primary:hover{
  background-color:var(--duxa-blue-deep) !important;
  color:var(--duxa-white) !important;
}
.badge-primary{
  background-color:var(--duxa-blue) !important;
  color:var(--duxa-white) !important;
}

.text-bg-secondary{
  background-color:var(--duxa-gray) !important;
  color:var(--duxa-white) !important;
}
.text-bg-secondary:hover{
  background-color:var(--duxa-black) !important;
  color:var(--duxa-white) !important;
}
.badge-secondary{
  background-color:var(--duxa-gray) !important;
  color:var(--duxa-white) !important;
}

.text-bg-info{
  background-color:var(--duxa-sky) !important;
  color:var(--duxa-black) !important;
}
.text-bg-info:hover{
  background-color:var(--duxa-cyan) !important;
  color:var(--duxa-black) !important;
}
.badge-info{
  background-color:var(--duxa-sky) !important;
  color:var(--duxa-black) !important;
}

.text-bg-success{
  background-color:#198754 !important;
  color:var(--duxa-white) !important;
}
.text-bg-success:hover{
  background-color:#2ccf83 !important;
  color:var(--duxa-white) !important;
}
.badge-success{
  background-color:#198754 !important;
  color:var(--duxa-white) !important;
}

.text-bg-warning{
  background-color:#ffc107 !important;
  color:var(--duxa-white) !important;
}
.text-bg-warning:hover{
  background-color:#ffe083 !important;
  color:var(--duxa-white) !important;
}
.badge-warning{
  background-color:#ffc107 !important;
  color:var(--duxa-white) !important;
}

.text-bg-danger{
  background-color:#dc3545 !important;
  color:var(--duxa-white) !important;
}
.text-bg-danger:hover{
  background-color:rgb(255, 73, 73) !important;
  color:var(--duxa-white) !important;
}
.badge-danger{
  background-color:#dc3545 !important;
  color:var(--duxa-white) !important;
}

/* Remapeo */
.tipo-grafia-header,
.tipo-grafia-subtitle{
  color:var(--duxa-blue) !important;
}

.id-azul{ color:var(--duxa-blue) !important; }
.id-azul:hover{
  background-color:var(--duxa-blue) !important;
  color:var(--duxa-white) !important;
  text-decoration:none !important;
}
.bg_azul{
  background-color:var(--duxa-blue) !important;
  color:var(--duxa-white) !important;
}

.elemento-activo{
  background-color:var(--duxa-blue) !important;
  color:var(--duxa-white) !important;
}
.elemento-borde-activo{
  border:4px solid var(--duxa-blue) !important;
}

/* chips/estados */
.color_base{
  background-color:var(--duxa-cyan) !important;
  border:none !important;
  color:#000 !important;
}
.color_intermedio{
  background-color:var(--duxa-sky) !important;
  border:none !important;
  color:#000 !important;
}
.color_punta{
  background-color:var(--duxa-blue-deep) !important;
  border:none !important;
  color:#fff !important;
}

/* datepicker */
.today:not(.selected){
  background:rgba(3,78,247,.18) !important;
}

/* hover general */
.custom-hover:hover{
  background-color:rgba(131,255,231,.18) !important;
}

/* DataTables headers (light default) */
table.dataTable thead th{
  color:var(--duxa-blue-deep) !important;
}

/* =========================
   5) HEADER / TOPBAR
   ========================= */

#header .navbar-nav .nav-link,
#header .navbar-nav .dropdown-toggle{
  color:var(--duxa-gray) !important;
  font-weight:500 !important;
}
#header .navbar-nav .nav-link:hover,
#header .navbar-nav .dropdown-toggle:hover{
  color:var(--duxa-blue) !important;
}

html[data-hs-theme-appearance="dark"] #header .navbar-nav .nav-link,
html[data-hs-theme-appearance="dark"] #header .navbar-nav .dropdown-toggle{
  color:rgba(255,255,255,.90) !important;
}
html[data-hs-theme-appearance="dark"] #header .navbar-nav .nav-link:hover,
html[data-hs-theme-appearance="dark"] #header .navbar-nav .dropdown-toggle:hover{
  color:var(--duxa-sky) !important;
}

/* evita “azul link” en header por tags <a> */
#header a,
#header a:visited,
#header a:active{
  color:inherit !important;
  text-decoration:none !important;
}

/* =========================
  6) PAGINACIÓN (DataTables / Bootstrap)
========================= */

.dataTables_wrapper .dataTables_paginate .paginate_button,
.pagination .page-link{
  border-radius:.5rem !important;
  min-width:2.1rem;
  text-align:center;
}

/* Light */
.dataTables_wrapper .dataTables_paginate .paginate_button,
.pagination .page-link{
  color:var(--duxa-blue-deep) !important;
  border:1px solid rgba(3,78,247,.20) !important;
  background:transparent !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button, .pagination .page-item{
  color: var(--duxa-blue-deep)  !important;
  border: 1px solid rgba(3, 78, 247, .20) !important;
  background: transparent !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.pagination .page-link:hover{
  background:rgba(3,78,247,.10) !important;
  border-color:rgba(3,78,247,.35) !important;
  color:var(--duxa-blue) !important;
}

/* Light activo */
.dataTables_wrapper .dataTables_paginate .paginate_button.current{
  background:var(--duxa-blue) !important;
  border-color:var(--duxa-blue) !important;
  color:#fff !important;
}
.pagination .page-item.active .page-link{
  background:var(--duxa-blue) !important;
  border-color:var(--duxa-blue) !important;
  color:#fff !important;
}

/* Light disabled */
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled{
  opacity:.45 !important;
  color:rgba(3,78,247,.55) !important;
  border-color:rgba(3,78,247,.18) !important;
}
.pagination .page-item.disabled .page-link{
  opacity:.45 !important;
  color:rgba(3,78,247,.55) !important;
  border-color:rgba(3,78,247,.18) !important;
  background:transparent !important;
}

/* =========================
   7) DARK MODE (HS usa data-hs-theme-appearance="dark")
   ========================= */

html[data-hs-theme-appearance="dark"]{
  color-scheme:dark;
}

/* Fondo general */
html[data-hs-theme-appearance="dark"] body{
  color:rgba(255,255,255,.88) !important;
  background-color:#1f2326 !important; /* gris profundo */
}

/* Header */
html[data-hs-theme-appearance="dark"] #header{
  background:#15191d !important;
  border-bottom:1px solid rgba(255,255,255,.06) !important;
}

/* Topbar texto en dark */
html[data-hs-theme-appearance="dark"] #header .navbar-nav .nav-link,
html[data-hs-theme-appearance="dark"] #header .navbar-nav .dropdown-toggle{
  color:rgba(255,255,255,.90) !important;
}
html[data-hs-theme-appearance="dark"] #header .navbar-nav .nav-link:hover,
html[data-hs-theme-appearance="dark"] #header .navbar-nav .dropdown-toggle:hover{
  color:var(--duxa-sky) !important;
}
html[data-hs-theme-appearance="dark"] #header .btn,
html[data-hs-theme-appearance="dark"] #header i{
  color:rgba(255,255,255,.85) !important;
}

/* Textos del theme */
html[data-hs-theme-appearance="dark"] .text-body,
html[data-hs-theme-appearance="dark"] .card-text,
html[data-hs-theme-appearance="dark"] .dataTables_info,
html[data-hs-theme-appearance="dark"] .form-label,
html[data-hs-theme-appearance="dark"] label{
  color:rgba(255,255,255,.72) !important;
}

/* Titulos */
html[data-hs-theme-appearance="dark"] h1,
html[data-hs-theme-appearance="dark"] h2,
html[data-hs-theme-appearance="dark"] h3,
html[data-hs-theme-appearance="dark"] .page-header-title,
html[data-hs-theme-appearance="dark"] .content-title,
html[data-hs-theme-appearance="dark"] .text-card-title{
  color:rgba(255,255,255,.90) !important;
  letter-spacing:.2px;
}

/* Cards/containers */
html[data-hs-theme-appearance="dark"] .card,
html[data-hs-theme-appearance="dark"] .content.container-fluid .card,
html[data-hs-theme-appearance="dark"] .datatable-custom,
html[data-hs-theme-appearance="dark"] .table-responsive{
  background:rgba(255,255,255,.03) !important;
  border-color:rgba(255,255,255,.08) !important;
}

/* Tablas */
html[data-hs-theme-appearance="dark"] table.dataTable thead th,
html[data-hs-theme-appearance="dark"] .table thead th{
  color:rgba(255,255,255,.85) !important;
  border-color:rgba(255,255,255,.10) !important;
}
html[data-hs-theme-appearance="dark"] .table,
html[data-hs-theme-appearance="dark"] table.dataTable{
  color:rgba(255,255,255,.78) !important;
}
html[data-hs-theme-appearance="dark"] .table td,
html[data-hs-theme-appearance="dark"] table.dataTable td{
  border-color:rgba(255,255,255,.08) !important;
}

/* Inputs dark */
html[data-hs-theme-appearance="dark"] .form-control,
html[data-hs-theme-appearance="dark"] .form-select{
  background:rgba(255,255,255,.04) !important;
  color:rgba(255,255,255,.88) !important;
  border-color:rgba(255,255,255,.14) !important;
}
html[data-hs-theme-appearance="dark"] .form-control::placeholder{
  color:rgba(255,255,255,.45) !important;
}
html[data-hs-theme-appearance="dark"] select option,
html[data-hs-theme-appearance="dark"] select optgroup{
  background-color:#1f2326 !important;
  color:rgba(255,255,255,.88) !important;
}

/* Paginación dark */
html[data-hs-theme-appearance="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button,
html[data-hs-theme-appearance="dark"] .pagination .page-link{
  color:rgba(255,255,255,.88) !important;
  border:1px solid rgba(255,255,255,.22) !important;
  background:rgba(255,255,255,.04) !important;
}

html[data-hs-theme-appearance="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button, .pagination .page-item{
  color: rgba(255, 255, 255, .88) !important;
  border: 1px solid rgba(255, 255, 255, .22) !important;
  background: rgba(255, 255, 255, .04) !important;
}

html[data-hs-theme-appearance="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
html[data-hs-theme-appearance="dark"] .pagination .page-link:hover{
  background:rgba(92,220,255,.14) !important;
  border-color:rgba(92,220,255,.35) !important;
  color:var(--duxa-blue) !important;
}
html[data-hs-theme-appearance="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current{
  background:var(--duxa-blue) !important;
  border-color:var(--duxa-blue) !important;
  color:#000 !important;
  font-weight:800 !important;
}
html[data-hs-theme-appearance="dark"] .pagination .page-item.active .page-link{
  background:var(--duxa-blue) !important;
  border-color:var(--duxa-blue) !important;
  color:rgba(255,255,255,.65) !important;
  font-weight:800 !important;
}
html[data-hs-theme-appearance="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
html[data-hs-theme-appearance="dark"] .pagination .page-item.disabled .page-link{
  opacity:.45 !important;
  color:rgba(255,255,255,.65) !important;
  border-color:rgba(255,255,255,.18) !important;
}

/* Info + select “10” en dark */
html[data-hs-theme-appearance="dark"] .dataTables_wrapper .dataTables_info,
html[data-hs-theme-appearance="dark"] .dataTables_wrapper .dataTables_length,
html[data-hs-theme-appearance="dark"] .dataTables_wrapper .dataTables_filter{
  color:rgba(255,255,255,.75) !important;
}
html[data-hs-theme-appearance="dark"] .dataTables_wrapper select,
html[data-hs-theme-appearance="dark"] .dataTables_wrapper input{
  color:rgba(255,255,255,.90) !important;
  background:rgba(255,255,255,.05) !important;
  border-color:rgba(255,255,255,.18) !important;
}

/* =========================
   8) UTILIDADES DE TEXTO (Bootstrap-like)
   ========================= */

/* LIGHT */
.text-primary{ color: var(--duxa-blue) !important; }
.text-secondary{ color: var(--duxa-gray) !important; }
.text-info{ color: var(--duxa-sky) !important; }
.text-success{ color: #16a34a !important; }
.text-warning{ color: #d97706 !important; }
.text-danger{ color: #dc2626 !important; }
.text-muted{ color: rgba(113,134,157,.75) !important; }
.text-dark{ color: var(--duxa-black) !important; }
.text-light{ color: var(--duxa-white) !important; }

/* DARK */
html[data-hs-theme-appearance="dark"] .text-primary{ color: var(--duxa-blue-deep) !important; }
html[data-hs-theme-appearance="dark"] .text-secondary{ color: rgba(255, 255, 255, 0.65) !important; }
html[data-hs-theme-appearance="dark"] .text-info{ color: var(--duxa-cyan) !important; }
html[data-hs-theme-appearance="dark"] .text-success{ color: #4ade80 !important; }
html[data-hs-theme-appearance="dark"] .text-warning{ color: #fbbf24 !important; }
html[data-hs-theme-appearance="dark"] .text-danger{ color: #f87171 !important; }
html[data-hs-theme-appearance="dark"] .text-muted{ color: rgba(255,255,255,.90) !important; }
html[data-hs-theme-appearance="dark"] .text-dark{ color: rgba(255,255,255,.90) !important; }
html[data-hs-theme-appearance="dark"] .text-light{ color: rgba(255,255,255,.95) !important; }

/* Links semánticos */
.link-primary{ color: var(--duxa-blue) !important; }
.link-primary:hover{ color: var(--duxa-blue-deep) !important; }
html[data-hs-theme-appearance="dark"] .link-primary{ color: var(--duxa-sky) !important; }
html[data-hs-theme-appearance="dark"] .link-primary:hover{ color: var(--duxa-cyan) !important; }

/* =========================================================
   BSTable / Bootstrap STRIPED - FIX LIGHT (DUXA)
   ========================================================= */

/* Asegura que la tabla no tenga fondo transparente raro */
.table{
  --bs-table-bg: transparent;
}

/* FORZAR striped en LIGHT */
html:not([data-hs-theme-appearance="dark"])
.table.table-striped > tbody > tr:nth-of-type(odd) > *{
  --bs-table-accent-bg: rgba(3, 78, 247, 0.04) !important;
}

/* Hover en LIGHT */
html:not([data-hs-theme-appearance="dark"])
.table.table-hover > tbody > tr:hover > *{
  --bs-table-accent-bg: rgba(3, 78, 247, 0.07) !important;
}

/* Separador inferior sutil en light */
html:not([data-hs-theme-appearance="dark"])
.table > :not(caption) > * > *{
  border-bottom-color: rgba(15, 23, 42, 0.08) !important;
}

/* =========================================================
   ACCIONES – (NO HOVER EN BOTÓN, SOLO EN ICONO)
   ========================================================= */

.btn-action{
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

/* Disabled */
.btn-action:disabled{
  opacity: .5;
  cursor: not-allowed;
}

/* =========================================================
   ICONOS DE ACCIONES – HOVER SOLO ICONO (DUXA)
   ========================================================= */

.icon-action{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .35rem;
  border-radius: .5rem;
  color: var(--duxa-gray);
  transition: background-color .15s ease,
              color .15s ease,
              transform .1s ease;
}

.btn-action:not(:disabled) .icon-action{
  cursor: pointer;
}

/* BAJA */
.icon-baja:hover{
  background-color: rgba(220, 38, 38, 0.14);
  color: #dc2626;
  transform: scale(1.15);
}

/* REACTIVAR */
.icon-reactivar:hover{
  background-color: rgba(3, 78, 247, 0.14);
  color: var(--duxa-blue);
  transform: scale(1.15);
}

/* EDITAR */
.icon-edit:hover{
  background-color: rgba(3, 78, 247, 0.14);
  color: var(--duxa-blue);
  transform: scale(1.15);
}

/* ELIMINAR */
.icon-delete:hover{
  background-color: rgba(220, 38, 38, 0.14);
  color: #dc2626;
  transform: scale(1.15);
}

/* LISTAR / VER DETALLES */
.icon-list:hover{
  background-color: rgba(3, 78, 247, 0.14);
  color: var(--duxa-blue);
  transform: scale(1.15);
}

/* CAMBIAR CONTRASEÑA */
.icon-change-password:hover{
  background-color: rgb(202, 138, 4, 0.14);
  color: #ffbb45;
  transform: scale(1.15);
}

/* Disabled icon */
.btn-action:disabled .icon-action{
  opacity: .35;
  cursor: not-allowed;
  transform: none;
}

/* DARK icons */
html[data-hs-theme-appearance="dark"] .icon-action{
  color: rgba(255,255,255,.75);
}
html[data-hs-theme-appearance="dark"] .icon-baja:hover{
  background-color: rgba(248, 113, 113, 0.22);
  color: #f87171;
  transform: scale(1.15);
}
html[data-hs-theme-appearance="dark"] .icon-reactivar:hover{
  background-color: rgba(92, 220, 255, 0.22);
  color: var(--duxa-sky);
  transform: scale(1.15);
}
html[data-hs-theme-appearance="dark"] .icon-edit:hover{
  background-color: rgba(3, 78, 247, 0.22);
  color: var(--duxa-sky);
  transform: scale(1.15);
}
html[data-hs-theme-appearance="dark"] .icon-delete:hover{
  background-color: rgba(220, 38, 38, 0.22);
  color: #f87171;
  transform: scale(1.15);
}
html[data-hs-theme-appearance="dark"] .icon-list:hover{
  background-color: rgba(3, 78, 247, 0.22);
  color: var(--duxa-sky);
  transform: scale(1.15);
}
html[data-hs-theme-appearance="dark"] .icon-change-password:hover{
  background-color: rgba(255, 188, 2, 0.22);
  color: #fbbf24;
  transform: scale(1.15);
}

/* =========================================================
   FIN custom.css (DUXA)
   ========================================================= */
