/* GHB VERSION:20151203 */

/* sign-in form */

/* Clase para DataTable 19032019*/
td.details-control {
position:relative;
cursor: pointer;
}

td.details-control::after {
position:absolute;
left: 50%;
transform:translateX(-50%);
font-family: "Font Awesome 5 Pro";
font-weight: 900;
content: "\f055";
}

tr.shown td.details-control::after {
font-family: "Font Awesome 5 Pro";
font-weight: 900;
content: "\f056";
}

/* DataTables sort icons (sb-admin-2 usa font-family legacy "fontawesome") */
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after {
  font-family: "Font Awesome 5 Pro";
  font-weight: 900;
}

/* Columna de acciones DataTables: solo ⋮ en celda; acciones en menú horizontal (elements/datatables.php) */
table.table.dataTable tbody td.dt-actions-cell-overflow {
  width: 1%;
  white-space: nowrap;
  text-align: right;
  vertical-align: middle;
  padding-left: 4px;
  padding-right: 4px;
}
.dt-actions-cell-overflow {
  overflow: visible !important;
  position: relative;
  text-align: right;
}
/* Toggle u otra acción rápida fuera del menú ⋮ (ver collapseDtActionsInCell) */
table.table.dataTable tbody td.dt-actions-cell-overflow > a.dt-action-outside-overflow.trappable {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  min-width: 36px;
  min-height: 36px;
  padding: 4px 6px;
  box-sizing: border-box;
  margin-right: 4px;
}
/* Pending / toggles fuera del menú ⋮: sin subrayado del <a> (evita línea bajo el ícono) */
table.table.dataTable tbody tr td a.dt-action-outside-overflow.trappable,
table.table.dataTable tbody tr td a.dt-pending-action.trappable {
  text-decoration: none !important;
}
table.table.dataTable tbody tr td a.dt-action-outside-overflow.trappable:hover,
table.table.dataTable tbody tr td a.dt-action-outside-overflow.trappable:focus,
table.table.dataTable tbody tr td a.dt-pending-action.trappable:hover,
table.table.dataTable tbody tr td a.dt-pending-action.trappable:focus {
  text-decoration: none !important;
}
.dt-actions-dropdown {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  position: relative;
}
/* Puente invisible entre ⋮ y el menú (hueco vertical al abrir hacia abajo) */
.dt-actions-dropdown.open::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 12px;
  z-index: 1998;
  pointer-events: auto;
}
/* Solo ícono FA (sin recuadro estilo botón Bootstrap) */
.dt-actions-kebab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 6px 10px;
  min-width: 36px;
  min-height: 36px;
  box-sizing: border-box;
  line-height: 1;
  border: none;
  background: transparent;
  box-shadow: none;
  color: #5c5c5c;
  cursor: pointer;
  font: inherit;
  vertical-align: middle;
  -webkit-appearance: none;
  appearance: none;
}
.dt-actions-kebab .fa-ellipsis-v {
  font-size: 14px;
  line-height: 1;
}
.dt-actions-kebab:hover,
.dt-actions-kebab:focus {
  color: #222;
  background: rgba(0, 0, 0, 0.06);
  border-radius: 3px;
  outline: none;
}
.dt-actions-kebab:active {
  color: #000;
  background: rgba(0, 0, 0, 0.1);
}
/* Menú horizontal: se abre hacia ABAJO del ⋮, alineado al borde derecho del contenedor */
.dt-actions-dropdown .dt-actions-overflow-menu {
  top: 100% !important;
  left: auto !important;
  right: 0 !important;
  transform: none !important;
  margin-top: 4px !important;
  margin-left: 0;
  margin-right: 0;
  float: none;
  min-width: max-content;
  max-width: min(96vw, 640px);
  padding: 8px 12px;
  z-index: 2000;
}
.dt-actions-overflow-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  white-space: nowrap;
}
.dt-actions-overflow-row > a,
.dt-actions-overflow-row > span.action-no-perm {
  display: inline-flex !important;
  float: none !important;
  width: auto !important;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 36px;
  box-sizing: border-box;
  padding: 6px 8px !important;
  clear: none !important;
}

/* Formmaker: barra acciones progresiva v4 — zona de acción visible bajo el título */
form.formmaker-modern > .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4,
#page-wrapper .panel-body form.formmaker-modern > .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4,
.app-progressive-form-actions.app-pf-actions.app-pf-actions-v4 {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0 0 14px;
  padding: 14px 18px;
  clear: both;
  background: var(--brand-accent-bg-soft, #eef4f9);
  border: 1px solid var(--fm-input-border, #c5d0dc);
  border-radius: var(--fm-radius, 8px);
  box-shadow: 0 1px 2px rgba(15, 35, 55, 0.05), 0 4px 14px rgba(15, 35, 55, 0.07);
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1020;
}

form.formmaker-modern > .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4 + .nav-tabs.app-progressive-tabs-nav,
#page-wrapper .panel-body form.formmaker-modern > .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4 + .nav-tabs.app-progressive-tabs-nav {
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px solid var(--fm-input-border, #dde3ea);
}

.app-pf-actions-v4 .app-pf-actions__nav,
.app-pf-actions-v4 .app-pf-actions__commit {
  display: flex;
  align-items: center;
  min-width: 0;
}

.app-pf-actions-v4 .app-pf-actions__nav {
  flex: 0 1 auto;
  gap: 10px;
}

.app-pf-actions-v4 .app-pf-actions__commit {
  flex: 0 0 auto;
  gap: 10px;
  margin-left: auto;
}

.app-pf-actions-v4 .app-pf-actions__sep {
  display: none;
}

.app-pf-actions-v4 .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 18px;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
  border-radius: var(--fm-radius-sm, 6px);
  text-shadow: none;
  white-space: nowrap;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate .fa,
.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate .fas {
  font-size: 0.9375rem;
  line-height: 1;
}

/* Volver: secundario outline */
.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate.prev-tab {
  color: var(--fm-label-color, #2c3e50);
  background: var(--fm-input-bg, #fff);
  border: 1px solid var(--fm-input-border, #c5d0dc);
  box-shadow: 0 1px 2px rgba(15, 35, 55, 0.06);
}

.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate.prev-tab:hover,
.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate.prev-tab:focus {
  color: var(--fm-focus-border, #286090);
  background: var(--fm-input-bg, #fff);
  border-color: var(--fm-focus-border, #286090);
  outline: none;
  text-decoration: none;
  box-shadow: 0 1px 4px rgba(40, 96, 144, 0.15);
}

/* Siguiente: primario de paso (más destacado que Volver) */
.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate.next-tab {
  color: #fff;
  background: var(--fm-focus-border, #286090);
  border: 1px solid var(--fm-focus-border, #286090);
  box-shadow: 0 2px 6px rgba(40, 96, 144, 0.28);
}

.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate.next-tab:hover,
.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate.next-tab:focus {
  color: #fff;
  background: var(--brand-primary-dark, #204d74);
  border-color: var(--brand-primary-dark, #204d74);
  outline: none;
  text-decoration: none;
  box-shadow: 0 3px 10px rgba(32, 77, 116, 0.35);
}

.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate.disabled,
.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate[disabled] {
  pointer-events: none;
  cursor: not-allowed;
  opacity: 1;
  color: var(--fm-disabled-text, #8a96a3);
  background: var(--fm-disabled-bg, #f4f6f8);
  border-color: var(--fm-input-border, #c5d0dc);
  box-shadow: none;
}

.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate.next-tab.disabled,
.app-pf-actions-v4 .app-pf-actions__nav .btn-navigate.next-tab[disabled] {
  color: var(--fm-disabled-text, #8a96a3);
  background: var(--fm-disabled-bg, #f4f6f8);
  border-color: var(--fm-input-border, #c5d0dc);
}

/* Guardar: CTA principal del formulario */
.app-pf-actions-v4 .app-pf-actions__commit .btn-submit {
  min-width: 132px;
  min-height: 46px;
  padding: 10px 26px;
  font-weight: 700;
  font-size: 1rem;
  color: #fff;
  background: var(--fm-focus-border, #286090);
  border: 1px solid var(--fm-focus-border, #286090);
  box-shadow: 0 2px 8px rgba(40, 96, 144, 0.32);
}

.app-pf-actions-v4 .app-pf-actions__commit .btn-submit:hover,
.app-pf-actions-v4 .app-pf-actions__commit .btn-submit:focus {
  color: #fff;
  background: var(--brand-primary-dark, #204d74);
  border-color: var(--brand-primary-dark, #204d74);
  outline: none;
  text-decoration: none;
  box-shadow: 0 3px 12px rgba(32, 77, 116, 0.38);
}

.app-pf-actions-v4 .app-pf-actions__icon-commit,
.app-pf-actions-v4 .app-pf-actions__icon-cancel {
  font-size: 0.9375rem;
}

/* Cancelar: secundario outline visible */
.app-pf-actions-v4 .app-pf-actions__commit .btn-cancel .app-pf-actions__icon-cancel {
  display: inline-block;
  font-size: 0.875rem;
  opacity: 0.85;
}

.app-pf-actions-v4 .app-pf-actions__commit .btn-cancel {
  min-height: 44px;
  padding: 10px 16px;
  font-weight: 500;
  font-size: 0.9375rem;
  color: var(--fm-label-color, #2c3e50);
  background: var(--fm-input-bg, #fff);
  border: 1px solid var(--fm-input-border, #c5d0dc);
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(15, 35, 55, 0.05);
}

.app-pf-actions-v4 .app-pf-actions__commit .btn-cancel:hover,
.app-pf-actions-v4 .app-pf-actions__commit .btn-cancel:focus {
  color: var(--fm-error-border, #c9302c);
  background: var(--fm-input-bg, #fff);
  border-color: var(--fm-error-border, #c9302c);
  text-decoration: none;
  outline: none;
  box-shadow: 0 1px 4px rgba(201, 48, 44, 0.12);
}

@media (min-width: 768px) {
  form.formmaker-modern > .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4,
  #page-wrapper .panel-body form.formmaker-modern > .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4,
  .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4 {
    top: var(--app-shell-topbar-height, 56px);
  }
}

@media (max-width: 767px) {
  form.formmaker-modern > .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4,
  #page-wrapper .panel-body form.formmaker-modern > .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4,
  .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4 {
    gap: 8px;
    margin: 16px 0 0;
    padding: 10px 12px;
    overflow: visible;
  }

  form.formmaker-modern > .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4 + .nav-tabs.app-progressive-tabs-nav,
  #page-wrapper .panel-body form.formmaker-modern > .app-progressive-form-actions.app-pf-actions.app-pf-actions-v4 + .nav-tabs.app-progressive-tabs-nav {
    padding-top: 12px;
  }

  .app-pf-actions-v4 .app-pf-actions__nav {
    flex: 1 1 0;
    justify-content: flex-start;
    gap: 6px;
  }

  .app-pf-actions-v4 .app-pf-actions__commit {
    flex: 0 0 auto;
    gap: 6px;
    margin-left: 0;
  }

  /* Volver: solo icono; Siguiente y Guardar mantienen etiqueta */
  .app-pf-actions-v4 .app-pf-actions__nav .prev-tab .app-pf-actions__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .app-pf-actions-v4 .app-pf-actions__nav .next-tab .app-pf-actions__label,
  .app-pf-actions-v4 .app-pf-actions__commit .btn-submit .app-pf-actions__label {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    overflow: visible;
    clip: auto;
    white-space: nowrap;
    border: 0;
  }

  .app-pf-actions-v4 .btn {
    min-height: 46px;
    min-width: 46px;
    padding: 10px 12px;
    font-size: 0.9375rem;
  }

  .app-pf-actions-v4 .app-pf-actions__nav .next-tab {
    padding: 10px 14px;
  }

  .app-pf-actions-v4 .app-pf-actions__commit .btn-submit {
    min-width: 0;
    padding: 10px 16px;
  }

  .app-pf-actions-v4 .app-pf-actions__commit .btn-cancel .app-pf-actions__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .app-pf-actions-v4 .app-pf-actions__commit .btn-cancel .app-pf-actions__icon-cancel {
    display: inline-block;
    margin: 0;
    font-size: 1rem;
  }
}

/* ******** */


.ip-margin-top {
  margin-top: 10px;
}

.ip-margin {
margin: 15px;
}

.form-signin {
  max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-signin .form-signin-heading,
  .form-signin .checkbox {
    margin-bottom: 10px;
    text-align: center;
  }

.form-logo {
  margin-top:60px;
  padding-bottom:30px;
  text-align: center;
}

.form-signin .checkbox {
  font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
padding: 10px;
         font-size: 16px;
}
.form-signin .form-control:focus {
  z-index: 2;
}
.form-signin input[type="email"] {
  margin-bottom: 6px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.form-signin input[type="password"] {
  margin-bottom: 10px;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.password-field-wrap {
  margin-bottom: 10px;
}

.password-field-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
}

.password-field-wrap .password-field-input {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  min-width: 0;
  padding-right: 44px;
}

/* Edge / IE: ocultar el ojo nativo del navegador (evita duplicado con .password-toggle) */
.password-field-input::-ms-reveal,
.password-field-input::-ms-clear {
  display: none;
  width: 0;
  height: 0;
}

.password-field-inner > .password-toggle {
  grid-column: 1;
  grid-row: 1;
  justify-self: end;
  align-self: center;
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin-right: 2px;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: #6c757d;
  box-shadow: none;
  transform: none;
  transition: color 0.15s ease, background-color 0.15s ease;
}

.password-field-inner > label.error {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  margin-top: 4px;
}

.password-field-wrap > label.error {
  display: block;
  width: 100%;
  margin-top: 6px;
  margin-bottom: 0;
}

.password-field-inner .password-toggle:hover,
.password-field-inner .password-toggle:focus {
  color: #495057;
  background-color: rgba(0, 0, 0, 0.05);
  outline: none;
}

.password-complexity.progress {
  height: 4px;
  margin: 6px 0 0;
  background-color: #e9ecef;
  border-radius: 2px;
  box-shadow: none;
  overflow: hidden;
}

.password-complexity .password-complexity-bar {
  min-width: 0;
  transition: width 0.2s ease, background-color 0.2s ease;
}

.password-policy-rules {
  margin: 8px 0 4px;
  padding: 0;
  list-style: none;
  font-size: 14px;
  line-height: 1.55;
}

.password-policy-rule {
  position: relative;
  padding-left: 1.35em;
  color: #6c757d;
}

.password-policy-rule::before {
  content: '○';
  position: absolute;
  left: 0;
  color: #adb5bd;
}

.password-policy-rule.is-met {
  color: #3d8b3d;
}

.password-policy-rule.is-met::before {
  content: '●';
  color: #5cb85c;
}

.form-signin .password-field-wrap {
  margin-bottom: 10px;
}

.form-signin .password-field-wrap .form-control {
  margin-bottom: 0;
}

/* Bootstrap hacks for CSP */
.progress-bar[data-value="0"] { width: 0% }
.progress-bar[data-value="1"] { width: 1% }
.progress-bar[data-value="2"] { width: 2% }
.progress-bar[data-value="3"] { width: 3% }
.progress-bar[data-value="4"] { width: 4% }
.progress-bar[data-value="5"] { width: 5% }
.progress-bar[data-value="6"] { width: 6% }
.progress-bar[data-value="7"] { width: 7% }
.progress-bar[data-value="8"] { width: 8% }
.progress-bar[data-value="9"] { width: 9% }
.progress-bar[data-value="10"] { width: 10% }
.progress-bar[data-value="11"] { width: 11% }
.progress-bar[data-value="12"] { width: 12% }
.progress-bar[data-value="13"] { width: 13% }
.progress-bar[data-value="14"] { width: 14% }
.progress-bar[data-value="15"] { width: 15% }
.progress-bar[data-value="16"] { width: 16% }
.progress-bar[data-value="17"] { width: 17% }
.progress-bar[data-value="18"] { width: 18% }
.progress-bar[data-value="19"] { width: 19% }
.progress-bar[data-value="20"] { width: 20% }
.progress-bar[data-value="21"] { width: 21% }
.progress-bar[data-value="22"] { width: 22% }
.progress-bar[data-value="23"] { width: 23% }
.progress-bar[data-value="24"] { width: 24% }
.progress-bar[data-value="25"] { width: 25% }
.progress-bar[data-value="26"] { width: 26% }
.progress-bar[data-value="27"] { width: 27% }
.progress-bar[data-value="28"] { width: 28% }
.progress-bar[data-value="29"] { width: 29% }
.progress-bar[data-value="30"] { width: 30% }
.progress-bar[data-value="31"] { width: 31% }
.progress-bar[data-value="32"] { width: 32% }
.progress-bar[data-value="33"] { width: 33% }
.progress-bar[data-value="34"] { width: 34% }
.progress-bar[data-value="35"] { width: 35% }
.progress-bar[data-value="36"] { width: 36% }
.progress-bar[data-value="37"] { width: 37% }
.progress-bar[data-value="38"] { width: 38% }
.progress-bar[data-value="39"] { width: 39% }
.progress-bar[data-value="40"] { width: 40% }
.progress-bar[data-value="41"] { width: 41% }
.progress-bar[data-value="42"] { width: 42% }
.progress-bar[data-value="43"] { width: 43% }
.progress-bar[data-value="44"] { width: 44% }
.progress-bar[data-value="45"] { width: 45% }
.progress-bar[data-value="46"] { width: 46% }
.progress-bar[data-value="47"] { width: 47% }
.progress-bar[data-value="48"] { width: 48% }
.progress-bar[data-value="49"] { width: 49% }
.progress-bar[data-value="50"] { width: 50% }
.progress-bar[data-value="51"] { width: 51% }
.progress-bar[data-value="52"] { width: 52% }
.progress-bar[data-value="53"] { width: 53% }
.progress-bar[data-value="54"] { width: 54% }
.progress-bar[data-value="55"] { width: 55% }
.progress-bar[data-value="56"] { width: 56% }
.progress-bar[data-value="57"] { width: 57% }
.progress-bar[data-value="58"] { width: 58% }
.progress-bar[data-value="59"] { width: 59% }
.progress-bar[data-value="60"] { width: 60% }
.progress-bar[data-value="61"] { width: 61% }
.progress-bar[data-value="62"] { width: 62% }
.progress-bar[data-value="63"] { width: 63% }
.progress-bar[data-value="64"] { width: 64% }
.progress-bar[data-value="65"] { width: 65% }
.progress-bar[data-value="66"] { width: 66% }
.progress-bar[data-value="67"] { width: 67% }
.progress-bar[data-value="68"] { width: 68% }
.progress-bar[data-value="69"] { width: 69% }
.progress-bar[data-value="70"] { width: 70% }
.progress-bar[data-value="71"] { width: 71% }
.progress-bar[data-value="72"] { width: 72% }
.progress-bar[data-value="73"] { width: 73% }
.progress-bar[data-value="74"] { width: 74% }
.progress-bar[data-value="75"] { width: 75% }
.progress-bar[data-value="76"] { width: 76% }
.progress-bar[data-value="77"] { width: 77% }
.progress-bar[data-value="78"] { width: 78% }
.progress-bar[data-value="79"] { width: 79% }
.progress-bar[data-value="80"] { width: 80% }
.progress-bar[data-value="81"] { width: 81% }
.progress-bar[data-value="82"] { width: 82% }
.progress-bar[data-value="83"] { width: 83% }
.progress-bar[data-value="84"] { width: 84% }
.progress-bar[data-value="85"] { width: 85% }
.progress-bar[data-value="86"] { width: 86% }
.progress-bar[data-value="87"] { width: 87% }
.progress-bar[data-value="88"] { width: 88% }
.progress-bar[data-value="89"] { width: 89% }
.progress-bar[data-value="90"] { width: 90% }
.progress-bar[data-value="91"] { width: 91% }
.progress-bar[data-value="92"] { width: 92% }
.progress-bar[data-value="93"] { width: 93% }
.progress-bar[data-value="94"] { width: 94% }
.progress-bar[data-value="95"] { width: 95% }
.progress-bar[data-value="96"] { width: 96% }
.progress-bar[data-value="97"] { width: 97% }
.progress-bar[data-value="98"] { width: 98% }
.progress-bar[data-value="99"] { width: 99% }
.progress-bar[data-value="100"] { width: 100% }


/* FNG 11012017 - Switch Toggle */
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
}

/* Hide default HTML checkbox */
.switch input {display:none;}

/* The slider */
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
        background-color: #ccc;
        -webkit-transition: .4s;
transition: .4s;
}

.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
        background-color: white;
        -webkit-transition: .4s;
transition: .4s;
}

input:checked + .slider {
        background-color: #2196F3;
      }

input:focus + .slider {
        box-shadow: 0 0 1px #2196F3;
      }

input:checked + .slider:before {
        -webkit-transform: translateX(26px);
        -ms-transform: translateX(26px);
transform: translateX(26px);
      }

/* Rounded sliders */
.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

.notification-channels-sliders {
  max-width: 420px;
  margin-bottom: 4px;
}

.notification-channels-sliders__row {
  display: flex;
  align-items: center;
  gap: 32px;
  margin-bottom: 14px;
}

.notification-channels-sliders__row--disabled {
  opacity: 0.55;
}

.notification-channels-sliders__label {
  flex: 1 1 auto;
  font-weight: normal;
  line-height: 1.4;
  padding-left: 4px;
}

.notification-channels-sliders__switch {
  flex: 0 0 auto;
  margin-bottom: 0;
  min-width: 60px;
}

.notification-channels-sliders__help {
  margin-top: 4px;
  margin-bottom: 0;
}

.help-block .notification-brief-template-help-text {
  display: block;
  margin-bottom: 6px;
}

.help-block .notification-brief-template-toolbar {
  display: block;
}

.notification-brief-template-toolbar {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  margin-top: 8px;
  margin-bottom: 0;
}

.notification-brief-emoji-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.notification-brief-emoji-toggle-icon {
  font-size: 1.15em;
  line-height: 1;
}

.notification-brief-emoji-panel {
  position: absolute;
  z-index: 1050;
  top: calc(100% + 4px);
  left: 0;
  width: 352px;
  max-width: calc(100vw - 32px);
  padding: 0;
  background: #fff;
  border: 1px solid #c5d0dc;
  border-radius: 6px;
  box-shadow: 0 6px 18px rgba(15, 35, 55, 0.12);
  overflow: hidden;
}

.notification-brief-emoji-panel[hidden] {
  display: none !important;
}

.notification-brief-emoji-mount {
  min-height: 80px;
}

.notification-brief-emoji-mount em-emoji-picker {
  width: 100%;
  --em-rgb-background: 255, 255, 255;
  --em-rgb-input: 255, 255, 255;
  --em-rgb-color: 34, 47, 62;
  --em-rgb-accent: 40, 96, 144;
}

.active-circle{
color:#335a14;
}
.unactive-circle{
color:#da280b;
}
.active-circle:hover{
color:#da280b;
}
.unactive-circle:hover{
color:#335a14;
}

/* Dashboard Solicitud (/home): hero, acciones rápidas y tarjetas KPI */
.dashboard-home {
  margin-bottom: 1.25rem;
}

.dashboard-home-hero {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.35rem;
  margin-bottom: 1.35rem;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(118deg, #1e3a5f 0%, #2980b9 42%, #16a085 100%);
  box-shadow: 0 8px 28px rgba(30, 58, 95, 0.28);
}

.dashboard-home-hero-icon {
  flex-shrink: 0;
  width: 3.6rem;
  height: 3.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.35rem;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 12px;
}

.dashboard-home-hero-title {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.dashboard-home-hero-sub {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.45;
  opacity: 0.94;
}

.dashboard-home-hero-hint {
  margin: 0.55rem 0 0 0;
  font-size: 0.86rem;
  line-height: 1.4;
  opacity: 0.88;
}

.dashboard-home-hero-hint .fas {
  margin-right: 0.35rem;
  opacity: 0.92;
}

.dashboard-home-section-title {
  margin: 0 0 0.75rem 0;
  font-size: 1.28rem;
  font-weight: 700;
  color: #2c3e50;
  border-left: 4px solid #3498db;
  padding-left: 0.65rem;
}

.dashboard-home-section-title .fad,
.dashboard-home-section-title .fas {
  margin-right: 0.4rem;
  color: #2980b9;
}

.dashboard-home-quick {
  margin-bottom: 1.5rem;
  overflow: visible;
}

.dashboard-home-quick-col {
  margin-bottom: 14px;
}

.dashboard-home-tile {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-height: 5.25rem;
  padding: 1rem 2.5rem 1rem 1.15rem;
  border-radius: 12px;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 600;
  font-size: 1.05rem;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  overflow: hidden;
}

.dashboard-home-tile:hover,
.dashboard-home-tile:focus {
  color: #fff !important;
  text-decoration: none !important;
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
}

.dashboard-home-tile:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.95);
  outline-offset: 2px;
}

.dashboard-home-tile--nolink {
  cursor: default;
  opacity: 0.92;
}

.dashboard-home-tile--nolink:hover,
.dashboard-home-tile--nolink:focus {
  transform: none;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14);
}

.dashboard-home-tile-icon {
  flex-shrink: 0;
  font-size: 2.15rem;
  line-height: 1;
  opacity: 0.95;
}

.dashboard-home-tile-label {
  flex: 1;
  line-height: 1.25;
  font-size: 1.18rem;
  font-weight: 700;
}

.dashboard-home-tile-go {
  position: absolute;
  right: 0.85rem;
  top: 50%;
  margin-top: -0.55rem;
  opacity: 0.85;
  font-size: 1.1rem;
}

/* Badge «Reciente» a la izquierda de la flecha (ambos centrados a la derecha) */
.dashboard-home-tile--has-news {
  padding-right: 10.5rem;
}

.dashboard-home-tile--has-news .dashboard-home-tile-go {
  top: 50%;
  bottom: auto;
  margin-top: -0.55rem;
}

.dashboard-home-tile-news {
  position: absolute;
  top: 50%;
  right: 2.55rem;
  z-index: 2;
  transform: translateY(-50%);
  padding: 0.4rem 0.95rem 0.4rem 0.85rem;
  border-radius: 10px;
  font-size: 1.18rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-transform: none;
  line-height: 1.25;
  color: #1b3a63;
  background: #fff;
  border: none;
  box-shadow:
    0 4px 14px rgba(27, 58, 99, 0.2),
    0 1px 2px rgba(0, 0, 0, 0.08);
  white-space: nowrap;
  pointer-events: none;
  -webkit-font-smoothing: antialiased;
}

.dashboard-home-tile-news::before {
  content: '';
  display: inline-block;
  width: 0.7rem;
  height: 0.7rem;
  margin-right: 0.5rem;
  border-radius: 50%;
  background: #f39c12;
  vertical-align: 0.05em;
  box-shadow: 0 0 0 3px rgba(243, 156, 18, 0.28);
}

.dashboard-home-tile--turquesa {
  background: linear-gradient(135deg, #138d75 0%, #1abc9c 55%, #48c9b0 100%);
}

.dashboard-home-tile--azul {
  background: linear-gradient(135deg, #1f4e79 0%, #2874a6 50%, #5dade2 100%);
}

.dashboard-home-tile--violeta {
  background: linear-gradient(135deg, #6c3483 0%, #8e44ad 45%, #af7ac5 100%);
}

.dashboard-home-tile--verde {
  background: linear-gradient(135deg, #1e8449 0%, #2ecc71 55%, #58d68d 100%);
}

.dashboard-home-tile--celeste {
  background: linear-gradient(135deg, #1f618d 0%, #3498db 55%, #5dade2 100%);
}

.dashboard-home-tile--purpura {
  background: linear-gradient(135deg, #5b2c6f 0%, #8e44ad 55%, #bb8fce 100%);
}

.dashboard-home-tile--dorado {
  background: linear-gradient(135deg, #9a7d0a 0%, #d4ac0d 55%, #f7dc6f 100%);
}

.dashboard-home-tile--rojo {
  background: linear-gradient(135deg, #922b21 0%, #e74c3c 55%, #ec7063 100%);
}

.dashboard-home-tile--rosa {
  background: linear-gradient(135deg, #ad1457 0%, #ec407a 50%, #f48fb1 100%);
}

.dashboard-home-tile--naranja {
  background: linear-gradient(135deg, #ca6f1e 0%, #e67e22 50%, #f0b27a 100%);
}

.dashboard-home-tile--coral {
  background: linear-gradient(135deg, #e64a19 0%, #ff7f50 50%, #ffa07a 100%);
}

.dashboard-home-tile--indigo {
  background: linear-gradient(135deg, #283593 0%, #5c6bc0 55%, #9fa8da 100%);
}

.dashboard-home-tile--esmeralda {
  background: linear-gradient(135deg, #004d40 0%, #26a69a 55%, #4db6ac 100%);
}

.dashboard-home-tile--gris {
  background: linear-gradient(135deg, #566573 0%, #85929e 100%);
}

.dashboard-home-metrics {
  margin-bottom: 1.25rem;
}

.dashboard-home-metric-col {
  margin-bottom: 16px;
}

.dashboard-home-metric {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 272px;
  padding: 1.25rem 1.15rem 1.3rem 1.2rem;
  border-radius: 14px;
  background: #fff;
  border: 1px solid #e5e8ec;
  box-shadow: 0 4px 16px rgba(44, 62, 80, 0.08);
  overflow: hidden;
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.dashboard-home-metric:hover {
  box-shadow: 0 8px 24px rgba(44, 62, 80, 0.12);
  transform: translateY(-2px);
}

.dashboard-home-metric-inner {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  flex: 1;
  gap: 0.45rem;
  min-height: 232px;
}

.dashboard-home-metric-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding-right: 0.15rem;
}

.dashboard-home-metric-iconcol {
  flex-shrink: 0;
  width: 6.75rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 0.2rem 0 0 0.95rem;
  margin-left: 0.15rem;
  border-left: 1px dashed #dce1e6;
}

.dashboard-home-metric-caption {
  margin: 0.55rem 0 0.85rem 0;
  font-size: 1.06rem;
  line-height: 1.45;
  color: #5d6d7e;
  flex: 1;
}

.dashboard-home-metric-accent {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
}

.dashboard-home-metric--turquesa .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #117864, #48c9b0);
}

.dashboard-home-metric--azul .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #1f4e79, #5dade2);
}

.dashboard-home-metric--violeta .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #6c3483, #af7ac5);
}

.dashboard-home-metric--verde .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #1e8449, #58d68d);
}

.dashboard-home-metric--celeste .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #1f618d, #5dade2);
}

.dashboard-home-metric--purpura .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #6c3483, #bb8fce);
}

.dashboard-home-metric--dorado .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #b7950b, #f7dc6f);
}

.dashboard-home-metric--rojo .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #922b21, #ec7063);
}

.dashboard-home-metric--rosa .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #ad1457, #f48fb1);
}

.dashboard-home-metric--naranja .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #ca6f1e, #f0b27a);
}

.dashboard-home-metric--coral .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #e64a19, #ffa07a);
}

.dashboard-home-metric--indigo .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #283593, #9fa8da);
}

.dashboard-home-metric--esmeralda .dashboard-home-metric-accent {
  background: linear-gradient(180deg, #004d40, #4db6ac);
}

.dashboard-home-metric--gris .dashboard-home-metric-accent {
  background: #95a5a6;
}

.dashboard-home-metric-iconwrap {
  flex-shrink: 0;
  width: 5.1rem;
  height: 5.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 2.65rem;
  color: #fff;
  box-shadow: 0 5px 16px rgba(0, 0, 0, 0.14);
}

.dashboard-home-metric--turquesa .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #138d75, #1abc9c);
}

.dashboard-home-metric--azul .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #1f4e79, #2874a6);
}

.dashboard-home-metric--violeta .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #6c3483, #8e44ad);
}

.dashboard-home-metric--verde .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #1e8449, #2ecc71);
}

.dashboard-home-metric--celeste .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #1f618d, #3498db);
}

.dashboard-home-metric--purpura .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #5b2c6f, #8e44ad);
}

.dashboard-home-metric--dorado .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #9a7d0a, #f4d03f);
  color: #4a3b08;
}

.dashboard-home-metric--rojo .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #c0392b, #e74c3c);
}

.dashboard-home-metric--rosa .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #c2185b, #ec407a);
}

.dashboard-home-metric--naranja .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #d35400, #e67e22);
}

.dashboard-home-metric--coral .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #e64a19, #ff7f50);
}

.dashboard-home-metric--indigo .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #303f9f, #5c6bc0);
}

.dashboard-home-metric--esmeralda .dashboard-home-metric-iconwrap {
  background: linear-gradient(145deg, #00695c, #26a69a);
}

.dashboard-home-metric--gris .dashboard-home-metric-iconwrap {
  background: #7f8c8d;
}

.dashboard-home-metric-count {
  font-size: 4.15rem;
  font-weight: 800;
  line-height: 0.95;
  color: #1a252f;
  letter-spacing: -0.035em;
}

.dashboard-home-metric-label {
  font-size: 1.32rem;
  font-weight: 700;
  color: #2c3e50;
  margin: 0.55rem 0 0 0;
  line-height: 1.28;
}

.dashboard-home-metric-actions {
  margin-top: auto;
  padding-top: 0.35rem;
}

.dashboard-home-metric-btn {
  border-radius: 10px;
  font-weight: 700;
  font-size: 1.05rem;
  padding: 0.65rem 0.9rem;
  border: none;
  color: #fff !important;
  background: linear-gradient(90deg, #2874a6, #3498db) !important;
}

.dashboard-home-metric-btn:hover,
.dashboard-home-metric-btn:focus {
  color: #fff !important;
  text-decoration: none !important;
  opacity: 0.95;
}

.dashboard-home-metric-btn:focus-visible {
  outline: 2px solid var(--brand-focus-ring, #2980b9);
  outline-offset: 2px;
}

.dashboard-home-metric--turquesa .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #117864, #1abc9c) !important;
}

.dashboard-home-metric--azul .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #1f4e79, #2874a6) !important;
}

.dashboard-home-metric--violeta .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #6c3483, #8e44ad) !important;
}

.dashboard-home-metric--verde .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #1e8449, #27ae60) !important;
}

.dashboard-home-metric--celeste .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #1f618d, #2980b9) !important;
}

.dashboard-home-metric--purpura .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #5b2c6f, #8e44ad) !important;
}

.dashboard-home-metric--dorado .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #9a7d0a, #d4ac0d) !important;
  color: #1a1404 !important;
}

.dashboard-home-metric--rojo .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #922b21, #e74c3c) !important;
}

.dashboard-home-metric--rosa .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #ad1457, #ec407a) !important;
}

.dashboard-home-metric--naranja .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #ca6f1e, #e67e22) !important;
}

.dashboard-home-metric--coral .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #e64a19, #ff7f50) !important;
}

.dashboard-home-metric--indigo .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #283593, #5c6bc0) !important;
}

.dashboard-home-metric--esmeralda .dashboard-home-metric-btn {
  background: linear-gradient(90deg, #004d40, #26a69a) !important;
}

.dashboard-home-metric-na {
  font-size: 1.05rem;
  display: inline-block;
  padding-top: 0.4rem;
}

html[data-theme="dark"] .dashboard-home-section-title {
  color: #e8eef3;
  border-left-color: #5dade2;
}

html[data-theme="dark"] .dashboard-home-metric {
  background: #1e2430;
  border-color: #2c3544;
}

html[data-theme="dark"] .dashboard-home-metric-count {
  color: #ecf0f1;
}

html[data-theme="dark"] .dashboard-home-metric-label {
  color: #bdc3c7;
}

html[data-theme="dark"] .dashboard-home-hero-hint {
  color: rgba(255, 255, 255, 0.88);
}

html[data-theme="dark"] .dashboard-home-metric-caption {
  color: #aab7c4;
}

html[data-theme="dark"] .dashboard-home-metric-iconcol {
  border-left-color: #3d4a5c;
}

/* --- Widgets analíticos del home --- */
.dashboard-home-analytics-widgets {
  margin-top: 1.5rem;
}
.dashboard-home-analytics-widget {
  background: #fff;
  border: 1px solid #e3e8ee;
  border-radius: 8px;
  padding: 1.25rem 1.5rem 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  font-size: 1.125rem;
  line-height: 1.55;
}
.dashboard-home-analytics-widget--azul { border-top: 3px solid #2980b9; }
.dashboard-home-analytics-widget--verde { border-top: 3px solid #27ae60; }
.dashboard-home-analytics-widget--naranja { border-top: 3px solid #e67e22; }
.dashboard-home-analytics-widget--turquesa { border-top: 3px solid #16a085; }
.dashboard-home-analytics-title {
  margin-top: 0;
  margin-bottom: 1rem;
}
.dashboard-analytics-widget-filters {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  background: #f8fafc;
  border-radius: 6px;
  border: 1px solid #e8edf2;
}
.dashboard-analytics-filter-group {
  margin-right: 1rem;
  margin-bottom: 0.5rem;
  vertical-align: top;
}
.dashboard-analytics-filter-group label {
  display: block;
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.dashboard-analytics-filter-plans,
.dashboard-analytics-filter-estados {
  min-width: 180px;
}
.dashboard-analytics-widget-chart-wrap {
  width: 100%;
  max-width: 100%;
  margin-bottom: 1.25rem;
  min-height: 220px;
  position: relative;
}
.dashboard-analytics-widget-table-wrap {
  margin-top: 0.5rem;
}
.dashboard-analytics-widget-empty {
  padding: 1.5rem;
  text-align: center;
}
.dashboard-analytics-empresa-panel {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}
.dashboard-analytics-empresa-panel .panel-heading {
  font-weight: 600;
}
html[data-theme="dark"] .dashboard-analytics-empresa-panel.panel {
  background: #1e2430;
  border-color: #2c3544;
}
html[data-theme="dark"] .dashboard-analytics-empresa-panel .panel-heading {
  background: #252b38;
  border-color: #2c3544;
  color: #e8edf2;
}

/* Preview layout (control de ventas) */
.dashboard-home-analytics-widget--preview {
  padding: 1.5rem;
}
.dashboard-analytics-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.dashboard-analytics-widget-filters--preview {
  margin-bottom: 1.25rem;
  padding: 1.15rem 1.35rem 1.25rem;
  border-radius: 10px;
  background: linear-gradient(145deg, #f8fafc 0%, #f1f5f9 100%);
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  overflow: visible;
}
.dashboard-analytics-widget-filters--preview.is-filters-collapsed {
  padding-bottom: 0.9rem;
}
.dashboard-analytics-filters-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: #334155;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}
.dashboard-analytics-filters-toggle:hover {
  color: #1e4d72;
}
.dashboard-analytics-filters-toggle:focus-visible {
  outline: 2px solid #3498db;
  outline-offset: 2px;
}
.dashboard-analytics-filters-toggle-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}
.dashboard-analytics-filters-toggle-label .fas.fa-filter {
  color: #2980b9;
  font-size: 0.95rem;
}
.dashboard-analytics-filters-toggle-chevron {
  flex-shrink: 0;
  color: #64748b;
  font-size: 0.85rem;
  transition: transform 0.22s ease, color 0.15s ease;
}
.dashboard-analytics-widget-filters--preview.is-filters-collapsed .dashboard-analytics-filters-toggle-chevron {
  transform: rotate(-90deg);
}
.dashboard-analytics-filters-body {
  overflow: visible;
  max-height: 1200px;
  opacity: 1;
  margin-top: 0.9rem;
  transition: max-height 0.25s ease, opacity 0.2s ease, margin 0.2s ease;
}
.dashboard-analytics-widget-filters--preview.is-filters-collapsed .dashboard-analytics-filters-body {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  margin-top: 0;
}
.dashboard-analytics-filters-grid {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) minmax(260px, 1.35fr) minmax(220px, 1fr);
  gap: 1.15rem 1.5rem;
  align-items: start;
}
.dashboard-analytics-filter-section {
  min-width: 0;
}
.dashboard-analytics-filter-section--period {
  overflow: visible;
}
.dashboard-analytics-filter-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  margin-bottom: 0.55rem;
}
.dashboard-analytics-filter-section-label {
  font-size: 1.05rem;
  font-weight: 700;
  color: #334155;
  letter-spacing: 0.01em;
}
.dashboard-analytics-filter-section-hint {
  font-size: 0.82rem;
  color: #64748b;
  font-weight: 400;
}
.dashboard-analytics-filter-section--plans {
  overflow: visible;
}
.dashboard-analytics-filter-section--plans .dashboard-analytics-filter-plans {
  width: 100%;
  min-width: 0;
}
.dashboard-analytics-filter-section--plans .ts-wrapper {
  width: 100%;
}
.dashboard-analytics-filter-section--plans .ts-dropdown {
  z-index: 1060;
}
.dashboard-analytics-chip-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.dashboard-analytics-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  padding: 0.38rem 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #fff;
  color: #475569;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.25;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
  user-select: none;
}
.dashboard-analytics-chip:hover {
  border-color: #94a3b8;
  background: #f8fafc;
}
.dashboard-analytics-chip:focus-visible {
  outline: 2px solid #3498db;
  outline-offset: 2px;
}
.dashboard-analytics-chip.is-active {
  border-color: #2980b9;
  background: #ebf5fb;
  color: #1e4d72;
  box-shadow: 0 0 0 1px rgba(41, 128, 185, 0.12);
}
.dashboard-analytics-chip--all.is-active {
  border-color: #64748b;
  background: #eef2f7;
  color: #334155;
  box-shadow: none;
}
.dashboard-analytics-chip--group input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
.dashboard-analytics-chip-swatch {
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
}
.dashboard-analytics-chip-text {
  white-space: nowrap;
}
.dashboard-analytics-period-toggle {
  display: inline-flex;
  width: 100%;
  max-width: 100%;
  padding: 3px;
  border-radius: 999px;
  background: #e2e8f0;
  margin-bottom: 0.65rem;
}
.dashboard-analytics-period-mode {
  flex: 1 1 50%;
  margin: 0;
  padding: 0.42rem 0.65rem;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: #64748b;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.dashboard-analytics-period-mode.is-active {
  background: #fff;
  color: #1e4d72;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}
.dashboard-analytics-period-mode:focus-visible {
  outline: 2px solid #3498db;
  outline-offset: 1px;
}
.dashboard-analytics-composition-toggle {
  display: flex;
  gap: 0;
  padding: 3px;
  background: #e8edf2;
  border-radius: 8px;
  border: 1px solid #d5dde8;
}
.dashboard-analytics-agent-filter-toggle {
  display: flex;
  gap: 0;
  padding: 3px;
  background: #e8edf2;
  border-radius: 8px;
  border: 1px solid #d5dde8;
}
.dashboard-analytics-composition-toggle .dashboard-analytics-composition-mode {
  flex: 1 1 0;
  min-width: 0;
  font-size: 0.82rem;
  padding: 0.42rem 0.45rem;
  border: none;
  background: transparent;
  color: #64748b;
  border-radius: 6px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.dashboard-analytics-composition-toggle .dashboard-analytics-composition-mode.is-active {
  background: #fff;
  color: #1e4d72;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}
.dashboard-analytics-agent-filter-toggle .dashboard-analytics-agent-filter-mode {
  flex: 1 1 0;
  min-width: 0;
  font-size: 0.78rem;
  padding: 0.42rem 0.35rem;
  border: none;
  background: transparent;
  color: #64748b;
  border-radius: 6px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.dashboard-analytics-agent-filter-toggle .dashboard-analytics-agent-filter-mode.is-active {
  background: #fff;
  color: #1e4d72;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}
.dashboard-analytics-agent-filter-toggle .dashboard-analytics-agent-filter-mode:focus-visible {
  outline: 2px solid #3498db;
  outline-offset: 1px;
}
.dashboard-analytics-composition-toggle .dashboard-analytics-composition-mode:focus-visible {
  outline: 2px solid #3498db;
  outline-offset: 1px;
}
.dashboard-analytics-composition-toggle .dashboard-analytics-period-mode {
  flex: 1 1 0;
  min-width: 0;
  font-size: 0.82rem;
  padding: 0.42rem 0.45rem;
}
.dashboard-analytics-date-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.55rem;
  overflow: visible;
  max-height: 120px;
  opacity: 1;
  transition: max-height 0.22s ease, opacity 0.18s ease, margin 0.18s ease;
}
.dashboard-analytics-date-row.is-collapsed {
  max-height: 0;
  opacity: 0;
  margin-top: 0;
  pointer-events: none;
  overflow: hidden;
}
.dashboard-analytics-date-field {
  min-width: 0;
}
.dashboard-analytics-date-label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.dashboard-analytics-date-field .input-group {
  width: 100%;
  display: table;
  table-layout: fixed;
}
.dashboard-analytics-date-field .input-group .form-control {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.dashboard-analytics-date-field .input-group-addon {
  width: 38px;
  padding: 6px 10px;
  background: #fff;
  border-color: #cbd5e1;
  color: #64748b;
  cursor: pointer;
}
.dashboard-analytics-date-field .input-group-addon .glyphicon {
  top: 2px;
}
.dashboard-analytics-date-field .form-control {
  border-radius: 6px;
  font-size: 0.95rem;
}
.dashboard-analytics-widget-filters--preview .datepicker-dropdown {
  z-index: 1060;
}
.dashboard-analytics-legend-swatch {
  display: inline-block;
  width: 12px;
  height: 12px;
  min-width: 12px;
  border-radius: 2px;
  flex-shrink: 0;
}
.dashboard-analytics-group-legend {
  margin-bottom: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}
.dashboard-analytics-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.875rem;
  line-height: 1.2;
  color: #555;
}
.dashboard-analytics-preview-block {
  width: 100%;
}
.dashboard-analytics-preview-main {
  width: 100%;
  margin-bottom: 1rem;
}
.dashboard-analytics-preview-main--split {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
  gap: 1rem;
  align-items: stretch;
}
.dashboard-analytics-preview-chart-col,
.dashboard-analytics-preview-groups-col {
  min-width: 0;
}
@media (max-width: 991px) {
  .dashboard-analytics-preview-main--split {
    grid-template-columns: 1fr;
  }
}
.dashboard-analytics-chart-card {
  width: 100%;
  box-sizing: border-box;
  background: #f8fafc;
  border: 1px solid #e8edf2;
  border-radius: 8px;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
}
.dashboard-analytics-chart-canvas {
  display: block;
  max-width: 100%;
}
.dashboard-analytics-chart-title {
  margin: 0 0 0.75rem;
  font-size: 1.4rem;
  font-weight: 600;
  color: #444;
}
.dashboard-analytics-product-legend {
  margin-bottom: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}
.dashboard-analytics-chart-empty {
  min-height: 220px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 1rem;
  text-align: center;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  background: #fff;
}
.dashboard-analytics-chart-empty-icon {
  font-size: 1.75rem;
  color: #94a3b8;
  margin-bottom: 0.5rem;
}
.dashboard-analytics-chart-empty-text {
  margin: 0;
  font-size: 0.92rem;
  color: #64748b;
  max-width: 28rem;
}
.dashboard-analytics-widget-chart-wrap--stacked {
  width: 100%;
  min-height: 240px;
}
.dashboard-analytics-plan-totals {
  margin-top: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 1.2rem;
}
.dashboard-analytics-group-count-stack {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  height: 100%;
}
.dashboard-analytics-group-count-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-radius: 8px;
  border: 1px solid #e8edf2;
  border-left: 4px solid var(--group-color, #85929e);
  background: #fff;
  flex: 1;
  min-height: 72px;
}
.dashboard-analytics-group-count-icon {
  flex-shrink: 0;
  font-size: 2.4rem;
  line-height: 1;
  opacity: 0.88;
  color: var(--group-color, #85929e);
}
.dashboard-analytics-group-count-body {
  min-width: 0;
}
.dashboard-analytics-group-count-value {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
  color: #2c3e50;
}
.dashboard-analytics-group-count-label {
  font-size: 1.1rem;
  color: #666;
  margin-top: 0.35rem;
  line-height: 1.3;
}
.dashboard-analytics-empresa-title {
  margin: 1.5rem 0 1rem;
  font-size: 1.6rem;
  font-weight: 600;
  color: #333;
}
.dashboard-analytics-preview-block + .dashboard-analytics-preview-block {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e8edf2;
}
/* Matriz agente × grupo × plan (widget analítico home) */
.dashboard-analytics-widget-table-wrap--matrix {
  margin-top: 1rem;
}
.dashboard-analytics-matrix-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background:
    linear-gradient(to right, #fff 32px, rgba(255, 255, 255, 0)),
    linear-gradient(to left, #fff 32px, rgba(255, 255, 255, 0)) 100% 0,
    radial-gradient(farthest-side at 0 50%, rgba(15, 23, 42, 0.12), rgba(15, 23, 42, 0)) 0 50%,
    radial-gradient(farthest-side at 100% 50%, rgba(15, 23, 42, 0.12), rgba(15, 23, 42, 0)) 100% 50%;
  background-repeat: no-repeat;
  background-size: 40px 100%, 40px 100%, 16px 100%, 16px 100%;
  background-attachment: local, local, scroll, scroll;
}
.dashboard-analytics-matrix-scroll:focus-visible {
  outline: 2px solid #3498db;
  outline-offset: 2px;
}
.dashboard-analytics-table--matrix {
  margin-bottom: 0;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.92rem;
  min-width: 100%;
}
.dashboard-analytics-table--matrix thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #fff;
  border-bottom-width: 1px;
  vertical-align: middle;
  padding: 0.45rem 0.55rem;
  line-height: 1.25;
}
.dashboard-analytics-table--matrix tbody th,
.dashboard-analytics-table--matrix tbody td {
  vertical-align: middle;
  padding: 0.4rem 0.55rem;
  line-height: 1.3;
}
.dashboard-analytics-table--matrix tbody tr:hover th,
.dashboard-analytics-table--matrix tbody tr:hover td {
  background-color: #f0f7ff;
}
.dashboard-analytics-matrix-row-alt th,
.dashboard-analytics-matrix-row-alt td {
  background-color: #fafbfc;
}
.dashboard-analytics-matrix-row-alt:hover th,
.dashboard-analytics-matrix-row-alt:hover td {
  background-color: #eef5fc;
}
.dashboard-analytics-th-agent,
.dashboard-analytics-td-agent {
  text-align: left !important;
  font-weight: 600;
  min-width: 148px;
  max-width: 220px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dashboard-analytics-matrix-sticky-col {
  position: sticky;
  left: 0;
  z-index: 3;
  background: #fff;
  box-shadow: 2px 0 6px rgba(15, 23, 42, 0.06);
}
.dashboard-analytics-matrix-sticky-col-end {
  position: sticky;
  right: 0;
  z-index: 2;
  box-shadow: -2px 0 6px rgba(15, 23, 42, 0.06);
}
thead .dashboard-analytics-matrix-sticky-col {
  z-index: 4;
}
thead .dashboard-analytics-matrix-sticky-col-end {
  z-index: 4;
}
.dashboard-analytics-th-group {
  text-align: center !important;
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.01em;
  color: #334155;
  border-top: 3px solid var(--group-color, #85929e);
  background-color: #fff;
  background-image: linear-gradient(to bottom, color-mix(in srgb, var(--group-color, #85929e) 14%, #fff), #fff 72%);
}
.dashboard-analytics-th-group-inner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  max-width: 100%;
}
.dashboard-analytics-th-group-swatch {
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  background: var(--group-color, #85929e);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
}
.dashboard-analytics-th-group-label {
  white-space: normal;
  line-height: 1.2;
}
.dashboard-analytics-th-plan {
  text-align: center !important;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
  background: #f8fafc;
  border-bottom: 2px solid var(--group-color, #cbd5e1);
  white-space: nowrap;
}
.dashboard-analytics-col-group-start {
  border-left: 2px solid var(--group-color, #cbd5e1) !important;
}
.dashboard-analytics-col-group-end {
  border-right: 1px solid #e2e8f0 !important;
}
.dashboard-analytics-td-val {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
  color: #1e293b;
  background: #fff;
}
.dashboard-analytics-td-empty {
  color: #cbd5e1;
}
.dashboard-analytics-zero {
  color: #cbd5e1;
  font-weight: 400;
}
.dashboard-analytics-th-plan-total,
.dashboard-analytics-td-group-total,
.dashboard-analytics-td-grand,
.dashboard-analytics-th-grand {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
  background: #eef2f7;
  font-weight: 700;
  color: #1e293b;
  min-width: 4.5rem;
}
.dashboard-analytics-th-grand {
  text-align: center !important;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #475569;
  background: #e8edf2;
}
.dashboard-analytics-row-total th,
.dashboard-analytics-row-total td {
  font-weight: 700;
  background: #e8edf2 !important;
  border-top: 2px solid #cbd5e1;
}
.dashboard-analytics-row-total .dashboard-analytics-td-agent {
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.82rem;
  color: #334155;
}
.dashboard-analytics-row-total .dashboard-analytics-matrix-sticky-col,
.dashboard-analytics-row-total .dashboard-analytics-matrix-sticky-col-end {
  background: #e8edf2 !important;
}
.dashboard-analytics-row-total .dashboard-analytics-td-grand {
  background: #dbe4ec !important;
  color: #0f172a;
}
.dashboard-analytics-row-total:hover th,
.dashboard-analytics-row-total:hover td {
  background: #dbe4ec !important;
}
.dashboard-analytics-matrix-scroll-hint {
  margin: 0.45rem 0 0;
  font-size: 0.78rem;
  text-align: right;
}
.dashboard-analytics-matrix-empty {
  margin-top: 1rem;
  padding: 1.75rem 1.25rem;
  text-align: center;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
}
.dashboard-analytics-matrix-empty-icon {
  font-size: 1.75rem;
  color: #94a3b8;
  margin-bottom: 0.5rem;
}
.dashboard-analytics-matrix-empty-title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 600;
  color: #475569;
}
.dashboard-analytics-matrix-empty-text {
  margin: 0;
  font-size: 0.875rem;
  color: #64748b;
}

/* Lista compacta de agentes (widget analítico home — layout agent_cards) */
.dashboard-analytics-widget-table-wrap--agent-list {
  margin-top: 1rem;
}
.dashboard-analytics-agent-list {
  border: 1px solid #e8edf2;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}
.dashboard-analytics-agent-list-header,
.dashboard-analytics-agent-row {
  display: grid;
  grid-template-columns: minmax(200px, 1.75fr) repeat(var(--agent-group-cols, 3), 100px) 80px 36px;
  align-items: center;
  column-gap: 0.75rem;
  padding: 0.85rem 1.15rem;
}
.dashboard-analytics-agent-list-header {
  background: #eef2f7;
  border-bottom: 2px solid #dde4ec;
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #475569;
  align-items: stretch;
  padding-top: 0;
  padding-bottom: 0;
}
.dashboard-analytics-agent-list-header .dashboard-analytics-agent-col--name {
  text-align: left;
  align-self: center;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}
.dashboard-analytics-agent-list-header .dashboard-analytics-agent-col--total {
  text-align: center;
  align-self: center;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}
.dashboard-analytics-agent-list-header .dashboard-analytics-agent-col--expand {
  align-self: center;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}
.dashboard-analytics-agent-col--group {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
  padding: 0.55rem 0.25rem 0.45rem;
  border-top: 3px solid var(--group-color, #85929e);
  background-color: #fff;
  background-image: linear-gradient(to bottom, color-mix(in srgb, var(--group-color, #85929e) 14%, #fff), #fff 72%);
}
.dashboard-analytics-agent-group-head {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  max-width: 100%;
  line-height: 1.25;
  text-align: center;
}
.dashboard-analytics-agent-col-label {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dashboard-analytics-agent-col--val,
.dashboard-analytics-agent-col--total {
  justify-self: stretch;
  text-align: center;
  padding-right: 0;
}
.dashboard-analytics-agent-col--name {
  font-weight: 700;
  font-size: 1.1rem;
  color: #1e293b;
  min-width: 0;
  word-break: break-word;
  line-height: 1.35;
  text-align: left;
}
.dashboard-analytics-agent-col--val {
  font-size: 1.15rem;
  font-weight: 700;
  color: #1e293b;
  font-variant-numeric: tabular-nums;
}
.dashboard-analytics-agent-col--total {
  font-size: 1.2rem;
  font-weight: 800;
  color: #0f172a;
  font-variant-numeric: tabular-nums;
}
.dashboard-analytics-agent-col--val.is-zero,
.dashboard-analytics-agent-col--total.is-zero {
  color: #94a3b8;
  font-weight: 500;
}
.dashboard-analytics-agent-col--expand {
  text-align: center;
  color: #64748b;
  font-size: 1rem;
}
.dashboard-analytics-agent-item {
  border-bottom: 1px solid #e2e8f0;
}
.dashboard-analytics-agent-item:nth-child(even) .dashboard-analytics-agent-row {
  background: #f8fafc;
}
.dashboard-analytics-agent-item:last-child {
  border-bottom: none;
}
.dashboard-analytics-agent-item:not(.dashboard-analytics-agent-item--no-detail) {
  cursor: pointer;
}
.dashboard-analytics-agent-item:not(.dashboard-analytics-agent-item--no-detail):hover .dashboard-analytics-agent-row {
  background: #f8fafc;
}
.dashboard-analytics-agent-item:not(.dashboard-analytics-agent-item--no-detail):focus-visible {
  outline: 2px solid #5dade2;
  outline-offset: -2px;
}
.dashboard-analytics-agent-item.is-expanded .dashboard-analytics-agent-col--expand i {
  transform: rotate(180deg);
}
.dashboard-analytics-agent-item.is-expanded .dashboard-analytics-agent-row {
  background: #f8fafc;
}
.dashboard-analytics-agent-col--expand i {
  display: inline-block;
  transition: transform 0.2s ease;
}
.dashboard-analytics-agent-detail {
  padding: 0.35rem 1.15rem 1rem;
  background: #f1f5f9;
  border-top: 1px solid #dde4ec;
}
.dashboard-analytics-agent-detail-table {
  width: 100%;
  margin: 0;
  font-size: 1rem;
  border-collapse: collapse;
}
.dashboard-analytics-agent-detail-table thead th {
  font-size: 0.88rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #475569;
  padding: 0.55rem 0.65rem;
  text-align: right;
  border-bottom: 2px solid #dde4ec;
  background: #fff;
}
.dashboard-analytics-agent-detail-table thead th:first-child {
  text-align: left;
}
.dashboard-analytics-agent-detail-table tbody th,
.dashboard-analytics-agent-detail-table tbody td {
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid #e2e8f0;
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-size: 1rem;
}
.dashboard-analytics-agent-detail-table tbody tr:last-child th,
.dashboard-analytics-agent-detail-table tbody tr:last-child td {
  border-bottom: none;
}
.dashboard-analytics-agent-detail-plan {
  text-align: left !important;
  font-weight: 700;
  font-size: 1.02rem;
  color: #1e293b;
}
.dashboard-analytics-agent-detail-product th {
  font-weight: 600;
  font-size: 0.95rem;
  color: #475569;
  padding-left: 1.5rem !important;
}
.dashboard-analytics-agent-detail-val.is-zero {
  color: #94a3b8;
}
.dashboard-analytics-agent-detail-total {
  font-weight: 800;
  font-size: 1.05rem;
  color: #0f172a;
}
@media (max-width: 767px) {
  .dashboard-analytics-agent-list {
    overflow-x: auto;
  }
  .dashboard-analytics-agent-list-header,
  .dashboard-analytics-agent-row {
    min-width: 640px;
  }
}

/* Legibilidad — tipografía ampliada del widget analítico */
.dashboard-home-analytics-widget .dashboard-home-section-title {
  font-size: 1.6rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-filters-toggle {
  font-size: 1.2rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-filter-section-label {
  font-size: 1.2rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-filter-section-hint {
  font-size: 1rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-chip {
  font-size: 1.1rem;
  padding: 0.5rem 0.95rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-period-mode,
.dashboard-home-analytics-widget .dashboard-analytics-agent-filter-mode {
  font-size: 1.05rem;
  padding: 0.52rem 0.75rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-date-label {
  font-size: 0.95rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-date-field .form-control {
  font-size: 1.1rem;
}
.dashboard-home-analytics-widget .ts-wrapper .ts-control,
.dashboard-home-analytics-widget .ts-wrapper .ts-dropdown .option {
  font-size: 1.1rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-chart-title {
  font-size: 1.7rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-chart-subtitle {
  font-size: 1.15rem;
  margin-bottom: 0.85rem;
  color: #475569;
}
.dashboard-home-analytics-widget .dashboard-analytics-legend-item {
  font-size: 1.1rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-legend-swatch {
  width: 14px;
  height: 14px;
  min-width: 14px;
}
.dashboard-home-analytics-widget .dashboard-analytics-chart-empty-text {
  font-size: 1.1rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-group-count-label {
  font-size: 1.28rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-group-count-value {
  font-size: 2.85rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-group-count-icon {
  font-size: 2.85rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-plan-totals {
  font-size: 1.35rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-agent-list-header {
  font-size: 0.95rem;
  padding: 0.85rem 1.15rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-agent-row {
  padding: 0.85rem 1.15rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-agent-col--name {
  font-size: 1.15rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-agent-col--val {
  font-size: 1.2rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-agent-col--total {
  font-size: 1.28rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-agent-col--expand {
  font-size: 1.05rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-agent-detail-table {
  font-size: 1.05rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-agent-detail-table thead th {
  font-size: 0.92rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-agent-detail-plan {
  font-size: 1.05rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-table--matrix {
  font-size: 1.1rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-th-group {
  font-size: 1rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-th-plan {
  font-size: 0.92rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-matrix-scroll-hint,
.dashboard-home-analytics-widget .dashboard-analytics-matrix-empty-text {
  font-size: 1.05rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-matrix-empty-title {
  font-size: 1.2rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-apply {
  font-size: 1.1rem;
  padding: 0.55rem 1.25rem;
}
.dashboard-home-analytics-widget .dashboard-analytics-updated-at {
  font-size: 1.2rem;
}
.dashboard-analytics-updated-at {
  margin-top: 1rem;
  font-size: 1.1rem;
  text-align: right;
}
.dashboard-analytics-filter-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid #e2e8f0;
}
.dashboard-analytics-apply {
  min-width: 9.5rem;
  border-radius: 8px;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(41, 128, 185, 0.22);
}
.dashboard-analytics-apply .fas {
  margin-right: 0.35rem;
}
@media (max-width: 991px) {
  .dashboard-analytics-filters-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .dashboard-analytics-filter-actions {
    justify-content: stretch;
  }
  .dashboard-analytics-apply {
    width: 100%;
  }
}
@media (max-width: 480px) {
  .dashboard-analytics-date-row {
    grid-template-columns: 1fr;
  }
}
html[data-theme="dark"] .dashboard-analytics-chart-card {
  background: #252b38;
  border-color: #2c3544;
}
html[data-theme="dark"] .dashboard-analytics-group-count-card {
  background: #1e2430;
  border-color: #2c3544;
}
html[data-theme="dark"] .dashboard-analytics-group-count-icon {
  opacity: 0.95;
}
html[data-theme="dark"] .dashboard-analytics-group-count-value {
  color: #e8edf2;
}
html[data-theme="dark"] .dashboard-analytics-group-count-label {
  color: #94a3b8;
}
html[data-theme="dark"] .dashboard-analytics-chart-title,
html[data-theme="dark"] .dashboard-analytics-empresa-title {
  color: #e8edf2;
}
html[data-theme="dark"] .dashboard-analytics-chart-subtitle,
html[data-theme="dark"] .dashboard-analytics-legend-item,
html[data-theme="dark"] .dashboard-analytics-plan-totals {
  color: #94a3b8;
}
html[data-theme="dark"] .dashboard-analytics-chart-empty {
  background: #1e2430;
  border-color: #3d4a5c;
}
html[data-theme="dark"] .dashboard-analytics-chart-empty-text {
  color: #94a3b8;
}
html[data-theme="dark"] .dashboard-analytics-th-plan-total,
html[data-theme="dark"] .dashboard-analytics-td-group-total,
html[data-theme="dark"] .dashboard-analytics-td-grand,
html[data-theme="dark"] .dashboard-analytics-th-grand {
  background: #2c3544;
  color: #e8edf2;
}
html[data-theme="dark"] .dashboard-analytics-matrix-scroll {
  border-color: #2c3544;
  background:
    linear-gradient(to right, #1e2430 32px, rgba(30, 36, 48, 0)),
    linear-gradient(to left, #1e2430 32px, rgba(30, 36, 48, 0)) 100% 0,
    radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0)) 0 50%,
    radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0)) 100% 50%;
  background-repeat: no-repeat;
  background-size: 40px 100%, 40px 100%, 16px 100%, 16px 100%;
  background-attachment: local, local, scroll, scroll;
}
html[data-theme="dark"] .dashboard-analytics-table--matrix thead th {
  background: #252b38;
  color: #e8edf2;
  border-color: #3d4a5c;
}
html[data-theme="dark"] .dashboard-analytics-th-group {
  color: #e8edf2;
  background-color: #252b38;
  background-image: linear-gradient(to bottom, color-mix(in srgb, var(--group-color, #85929e) 18%, #252b38), #252b38 72%);
}
html[data-theme="dark"] .dashboard-analytics-th-plan {
  background: #1e2430;
  color: #94a3b8;
}
html[data-theme="dark"] .dashboard-analytics-matrix-sticky-col,
html[data-theme="dark"] .dashboard-analytics-matrix-sticky-col-end {
  background: #252b38;
  box-shadow: 2px 0 8px rgba(0, 0, 0, 0.28);
}
html[data-theme="dark"] .dashboard-analytics-matrix-sticky-col-end {
  box-shadow: -2px 0 8px rgba(0, 0, 0, 0.28);
}
html[data-theme="dark"] .dashboard-analytics-td-val {
  background: #1e2430;
  color: #e8edf2;
  border-color: #3d4a5c;
}
html[data-theme="dark"] .dashboard-analytics-td-empty,
html[data-theme="dark"] .dashboard-analytics-zero {
  color: #4b5563;
}
html[data-theme="dark"] .dashboard-analytics-matrix-row-alt th,
html[data-theme="dark"] .dashboard-analytics-matrix-row-alt td {
  background-color: #222833;
}
html[data-theme="dark"] .dashboard-analytics-table--matrix tbody tr:hover th,
html[data-theme="dark"] .dashboard-analytics-table--matrix tbody tr:hover td {
  background-color: #2a3444;
}
html[data-theme="dark"] .dashboard-analytics-matrix-row-alt:hover th,
html[data-theme="dark"] .dashboard-analytics-matrix-row-alt:hover td {
  background-color: #2a3444;
}
html[data-theme="dark"] .dashboard-analytics-th-grand {
  background: #2c3544;
  color: #cbd5e1;
}
html[data-theme="dark"] .dashboard-analytics-row-total .dashboard-analytics-matrix-sticky-col,
html[data-theme="dark"] .dashboard-analytics-row-total .dashboard-analytics-matrix-sticky-col-end {
  background: #2c3544 !important;
}
html[data-theme="dark"] .dashboard-analytics-row-total th,
html[data-theme="dark"] .dashboard-analytics-row-total td {
  background: #2c3544 !important;
  border-top-color: #64748b;
}
html[data-theme="dark"] .dashboard-analytics-row-total .dashboard-analytics-td-grand {
  background: #364152 !important;
}
html[data-theme="dark"] .dashboard-analytics-row-total:hover th,
html[data-theme="dark"] .dashboard-analytics-row-total:hover td {
  background: #364152 !important;
}
html[data-theme="dark"] .dashboard-analytics-matrix-empty {
  background: #1e2430;
  border-color: #3d4a5c;
}
html[data-theme="dark"] .dashboard-analytics-matrix-empty-title {
  color: #cbd5e1;
}
html[data-theme="dark"] .dashboard-analytics-matrix-empty-text {
  color: #94a3b8;
}
html[data-theme="dark"] .dashboard-analytics-agent-list {
  background: #1e2430;
  border-color: #2c3544;
}
html[data-theme="dark"] .dashboard-analytics-agent-list-header {
  background: #252b38;
  border-bottom-color: #3d4a5c;
  color: #cbd5e1;
}
html[data-theme="dark"] .dashboard-analytics-agent-col--group {
  color: #e8edf2;
  background-color: #252b38;
  background-image: linear-gradient(to bottom, color-mix(in srgb, var(--group-color, #85929e) 18%, #252b38), #252b38 72%);
}
html[data-theme="dark"] .dashboard-analytics-agent-col--name {
  color: #e8edf2;
}
html[data-theme="dark"] .dashboard-analytics-agent-col--val,
html[data-theme="dark"] .dashboard-analytics-agent-col--total,
html[data-theme="dark"] .dashboard-analytics-agent-detail-total {
  color: #e8edf2;
}
html[data-theme="dark"] .dashboard-analytics-agent-item {
  border-bottom-color: #2c3544;
}
html[data-theme="dark"] .dashboard-analytics-agent-item:not(.dashboard-analytics-agent-item--no-detail):hover .dashboard-analytics-agent-row,
html[data-theme="dark"] .dashboard-analytics-agent-item.is-expanded .dashboard-analytics-agent-row {
  background: #252b38;
}
html[data-theme="dark"] .dashboard-analytics-agent-item:nth-child(even) .dashboard-analytics-agent-row {
  background: #252b38;
}
html[data-theme="dark"] .dashboard-analytics-agent-detail {
  background: #252b38;
  border-top-color: #2c3544;
}
html[data-theme="dark"] .dashboard-analytics-agent-detail-table thead th {
  color: #cbd5e1;
  border-bottom-color: #3d4a5c;
  background: #1e2430;
}
html[data-theme="dark"] .dashboard-analytics-agent-detail-table tbody th,
html[data-theme="dark"] .dashboard-analytics-agent-detail-table tbody td {
  border-bottom-color: #2c3544;
}
html[data-theme="dark"] .dashboard-analytics-agent-detail-plan {
  color: #cbd5e1;
}
html[data-theme="dark"] .dashboard-analytics-agent-detail-product th {
  color: #94a3b8;
}
html[data-theme="dark"] .dashboard-home-analytics-widget {
  background: #1e2430;
  border-color: #2c3544;
}
html[data-theme="dark"] .dashboard-analytics-widget-filters {
  background: #252b38;
  border-color: #2c3544;
}
html[data-theme="dark"] .dashboard-analytics-widget-filters--preview {
  background: linear-gradient(145deg, #252b38 0%, #1e2430 100%);
  border-color: #2c3544;
  box-shadow: none;
}
html[data-theme="dark"] .dashboard-analytics-filters-toggle {
  color: #e8edf2;
}
html[data-theme="dark"] .dashboard-analytics-filters-toggle:hover {
  color: #fff;
}
html[data-theme="dark"] .dashboard-analytics-filters-toggle-label .fas.fa-filter {
  color: #5dade2;
}
html[data-theme="dark"] .dashboard-analytics-filters-toggle-chevron {
  color: #94a3b8;
}
html[data-theme="dark"] .dashboard-analytics-filter-section-label {
  color: #e8edf2;
}
html[data-theme="dark"] .dashboard-analytics-filter-section-hint,
html[data-theme="dark"] .dashboard-analytics-date-label {
  color: #94a3b8;
}
html[data-theme="dark"] .dashboard-analytics-filter-section--plans .ts-wrapper .ts-control {
  background: #1e2430;
  border-color: #3d4a5c;
  color: #e8edf2;
}
html[data-theme="dark"] .dashboard-analytics-chip {
  background: #1e2430;
  border-color: #3d4a5c;
  color: #cbd5e1;
}
html[data-theme="dark"] .dashboard-analytics-chip:hover {
  background: #2c3544;
  border-color: #64748b;
}
html[data-theme="dark"] .dashboard-analytics-chip.is-active {
  background: #1a3a52;
  border-color: #3498db;
  color: #e8edf2;
}
html[data-theme="dark"] .dashboard-analytics-chip--all.is-active {
  background: #2c3544;
  border-color: #64748b;
  color: #e8edf2;
}
html[data-theme="dark"] .dashboard-analytics-period-toggle {
  background: #1e2430;
}
html[data-theme="dark"] .dashboard-analytics-period-mode {
  color: #94a3b8;
}
html[data-theme="dark"] .dashboard-analytics-period-mode.is-active {
  background: #2c3544;
  color: #e8edf2;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}
html[data-theme="dark"] .dashboard-analytics-filter-actions {
  border-top-color: #2c3544;
}
html[data-theme="dark"] .dashboard-analytics-date-field .form-control {
  background: #1e2430;
  border-color: #3d4a5c;
  color: #e8edf2;
}
html[data-theme="dark"] .dashboard-analytics-date-field .input-group-addon {
  background: #252b38;
  border-color: #3d4a5c;
  color: #94a3b8;
}

/* Toggles activar/desactivar débito (lista car_debitocredito): ícono FA5 */
a.dt-debito-toggle i {
  font-size: 1.35em;
  vertical-align: middle;
}

h3 {
margin: 0px;
}

#vercomo_form .select2 {
  border-color: #ccc;
margin: 5px 0;
}
#vercomo_form .select2-container--default .select2-selection--multiple {
  -webkit-border-radius: 0;
  border-radius: 0;
}

/**** Estilo de badges de Bootstrap ****/
.badge-danger {
    background-color: #b94a48;
}
.badge-warning {
    background-color: #f89406;
}
.badge-success {
    background-color: #468847;
}
.badge-info {
    background-color: #3a87ad;
}
.badge-inverse {
    background-color: #333333;
}

.modal:not(#waitingmodal) {
text-align: center;
padding: 0!important;
}

.modal:not(#waitingmodal):before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -4px;
}

.modal-dialog:not(#waitingmodal) {
display: inline-block;
text-align: left;
vertical-align: middle;
}

/* ===== Variables de branding (default:) ===== */
/* Solo dos colores a configurar: primario (predominante) y secundario (menor jerarquía).
 * Los customers sobrescriben --brand-primary y --brand-secondary en su css_path (acc_install.css_path).
 * El resto se deriva automáticamente. */
:root {
	/* Colores principales - configurar solo estos dos */
	--brand-primary: #286090;
	--brand-secondary: #5bc0de;
	--app-shell-sidebar-width: 278px;
	--app-shell-sidebar-collapsed-width: 88px;
	--app-shell-topbar-height: 72px; /* Sobrescrito en app-sidebar-shell.css (topbar compacta) */
	--app-brand-logo-size: 44px;
	/* Derivados del primario */
	--brand-primary-dark: #204d74;
	--brand-primary-light: #337ab7;
	--brand-accent: #b8d4e8;
	--brand-accent-soft: #d4e8f4;
	--brand-accent-bg: #e8f2f8;
	--brand-accent-bg-soft: #f4f8fb;
	--brand-text: #2c3e50;
	--brand-text-muted: #5a6c7d;
	--brand-focus-ring: rgba(40,96,144,0.2);
	--brand-shadow: rgba(40,96,144,0.08);
	--brand-shadow-strong: rgba(40,96,144,0.3);
	--brand-accent-border: rgba(184,212,232,0.6);
	/* Tipografía UI: pila de sistema (sin descargas; compatible con navegadores actuales) */
	--app-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

/* ===== Sistema de diseño - Paneles y formularios (aplica a todo el sistema) ===== */
/* Los colores usan variables CSS; los customers pueden sobreescribirlas en su css_path */
#page-wrapper .panel {
	border: 1px solid #ddd;
	border-radius: 4px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.05);
	background: #fff;
}
#page-wrapper .panel .panel-heading {
	background: var(--brand-primary);
	color: #fff;
	border: none;
	padding: 15px 20px;
	font-size: 1.1em;
	font-weight: 600;
}
#page-wrapper .panel .panel-heading .fa {
	margin-right: 10px;
	opacity: 0.95;
	font-size: 1.1em;
}
#page-wrapper .panel .panel-body {
	padding: 20px 24px;
	background: #fff;
}
#page-wrapper .panel .panel-body > p:first-of-type {
	background: var(--brand-accent-bg-soft);
	padding: 12px 16px;
	border-radius: 6px;
	margin-bottom: 20px;
	border-left: 4px solid var(--brand-secondary);
	font-size: 0.95em;
	color: var(--brand-text-muted);
}
#page-wrapper .panel .form-group {
	margin-bottom: 15px;
}
#page-wrapper .panel .form-group label.control-label {
	font-weight: 500;
	color: #333;
}
#page-wrapper .panel .form-group label.control-label .field-required-marker,
form.formmaker-modern .form-group label.control-label .field-required-marker {
	color: #c0392b;
	font-weight: 700;
	margin-left: 2px;
}
#page-wrapper .panel .form-control {
	border-radius: 4px;
	border: 1px solid #ccc;
	padding: 8px 12px;
}
#page-wrapper .panel .form-control:focus {
	border-color: var(--brand-primary);
	box-shadow: 0 0 0 2px var(--brand-focus-ring);
	outline: none;
}
#page-wrapper .panel .help-block {
	font-size: 0.85em;
	color: #777;
	margin-top: 4px;
	margin-bottom: 0;
}
#page-wrapper .panel .btn-primary {
	background: var(--brand-primary);
	border-color: var(--brand-primary-dark);
}
#page-wrapper .panel .btn-primary:hover {
	background: var(--brand-primary-dark);
	border-color: var(--brand-primary-dark);
}
#page-wrapper .panel .btn-default {
	border: 1px solid #ccc;
	background: #fff;
	color: #333;
}
#page-wrapper .panel .btn-default:hover {
	background: #f5f5f5;
	border-color: #adadad;
}
#page-wrapper .panel .form-group .btn,
#page-wrapper .panel .form-group .btn + .btn {
	margin-right: 12px;
}
#page-wrapper .panel .radio-inline {
	margin-right: 24px;
	font-weight: 500;
}

/* Planes destacados (/listas/generacion/destacados): tarjetas de precio con altura uniforme */
#page-wrapper .planes-precios-destacados-row {
	display: flex;
	flex-wrap: wrap;
}
#page-wrapper .planes-precios-destacados-row > .planes-precio-panel-col {
	display: flex;
}
#page-wrapper .planes-precio-panel {
	flex: 1;
	width: 100%;
	display: flex;
	flex-direction: column;
	margin-bottom: 20px;
}
#page-wrapper .planes-precio-panel .panel-body {
	flex: 1 1 auto;
}
#page-wrapper .planes-precio-panel-heading .planes-precio-panel-plan {
	margin: 0 0 8px;
}
#page-wrapper .planes-precio-panel-heading .planes-precio-panel-product {
	margin: 0 0 6px;
	min-height: 2.8em;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 1em;
	font-weight: 600;
}
#page-wrapper .planes-precio-panel-heading .planes-precio-panel-dates {
	margin: 0;
	font-size: 0.95em;
}

/* Cuadros informativos (planes_info_panel / elements/info_panel.php) */
#page-wrapper .planes-info-panel--panel {
	margin-bottom: 18px;
}
#page-wrapper .planes-info-panel-panel {
	margin-bottom: 0;
}
#page-wrapper .planes-info-panel-body .planes-info-panel-table {
	margin-bottom: 0;
}
#page-wrapper .planes-info-panel--inline .planes-info-panel-table {
	margin-top: 8px;
}
#page-wrapper .planes-info-panel-highlight {
	margin-bottom: 0;
}
#page-wrapper .planes-info-panel-empty {
	color: var(--brand-text-muted, #8a96a3);
	font-style: italic;
}
#page-wrapper .planes-info-panel-footer-actions {
	margin-top: 10px;
}
#page-wrapper .planes-info-panel-actions a,
#page-wrapper .planes-info-panel-footer-actions a {
	display: inline-block;
}

/* ===== Formmaker — UI moderna (form.formmaker-modern; clase en Formmaker::makeForm) ===== */
form.formmaker-modern {
	--fm-radius: 8px;
	--fm-radius-sm: 6px;
	--fm-policy-font-size: 14px;
	--fm-input-border: #c5d0dc;
	--fm-input-bg: #fff;
	--fm-input-shadow: inset 0 1px 2px rgba(15, 35, 55, 0.06);
	--fm-label-color: var(--brand-text, #2c3e50);
	--fm-help-color: var(--brand-text-muted, #5a6c7d);
	--fm-focus-border: var(--brand-primary, #286090);
	--fm-focus-ring: var(--brand-focus-ring, rgba(40, 96, 144, 0.22));
	--fm-error-border: #c9302c;
	--fm-error-ring: rgba(201, 48, 44, 0.18);
	--fm-disabled-bg: #f4f6f8;
	--fm-disabled-text: #8a96a3;
	--fm-tab-border: rgba(40, 96, 144, 0.22);
	--fm-tab-active-bg: #fff;
}

form.formmaker-modern .form-group {
	margin-bottom: 18px;
}

form.formmaker-modern .control-label {
	font-weight: 600;
	color: var(--fm-label-color);
	padding-top: 10px;
	letter-spacing: 0.01em;
}

form.formmaker-modern .form-control {
	border-radius: var(--fm-radius);
	border: 1px solid var(--fm-input-border);
	background-color: var(--fm-input-bg);
	box-shadow: var(--fm-input-shadow);
	padding: var(--fm-input-padding-y, 9px) var(--fm-input-padding-x, 12px);
	min-height: 38px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

form.formmaker-modern textarea.form-control {
	min-height: 96px;
	resize: vertical;
	line-height: 1.45;
}

form.formmaker-modern select.form-control {
	padding-right: 28px;
}

form.formmaker-modern .form-control:focus {
	border-color: var(--fm-focus-border);
	box-shadow: var(--fm-input-shadow), 0 0 0 3px var(--fm-focus-ring);
	outline: none;
}

form.formmaker-modern .form-control[disabled],
form.formmaker-modern .form-control[readonly],
form.formmaker-modern fieldset[disabled] .form-control {
	background-color: var(--fm-disabled-bg);
	border-color: var(--fm-input-border);
	color: var(--fm-disabled-text);
	cursor: not-allowed;
	opacity: 1;
	box-shadow: none;
}

form.formmaker-modern .help-block {
	font-size: 0.875rem;
	line-height: 1.45;
	color: var(--fm-help-color);
	margin-top: 6px;
	margin-bottom: 0;
}

form.formmaker-modern .password-field-wrap {
	width: 100%;
	margin-bottom: 0;
}

form.formmaker-modern .password-field-inner .password-field-input.form-control {
	padding-right: 44px;
}

form.formmaker-modern .password-field-inner > .password-toggle {
	width: 34px;
	height: 34px;
	margin-right: 3px;
	color: var(--fm-help-color, #6c757d);
}

form.formmaker-modern .password-field-inner > .password-toggle:hover,
form.formmaker-modern .password-field-inner > .password-toggle:focus {
	color: var(--brand-primary, #286090);
	background-color: rgba(40, 96, 144, 0.08);
}

form.formmaker-modern .password-complexity.progress {
	height: 4px;
	margin-top: 8px;
	background-color: var(--brand-accent-bg-soft, #e9ecef);
	border-radius: 2px;
	box-shadow: none;
}

form.formmaker-modern .password-policy-rules,
form.formmaker-modern .password-policy-rule {
	font-size: var(--fm-policy-font-size, 14px);
	line-height: 1.55;
}

form.formmaker-modern .password-policy-rule {
	color: var(--fm-help-color, #6c757d);
}

form.formmaker-modern .password-policy-rule.is-met {
	color: #3d8b3d;
}

/* jquery.validate — label.error siempre en rojo (BS3 #a94442); no depender solo de .has-error en form-group */
form.formmaker-modern label.error,
#page-wrapper label.error,
form.validate-input label.error {
	color: #a94442;
	font-weight: 600;
	/* BS3: html=10px → rem achica; heredar body (14px) como antes de unificar color */
	font-size: inherit;
	line-height: 1.45;
	margin-top: 6px;
	margin-bottom: 0;
	display: block;
}

form.formmaker-modern .has-error .control-label,
form.formmaker-modern .has-error .help-block,
form.formmaker-modern .has-error label.error {
	color: #a94442;
}

form.formmaker-modern .has-error .form-control,
form.formmaker-modern .has-error .input-group-addon {
	border-color: var(--fm-error-border);
}

form.formmaker-modern .has-error .form-control:focus {
	border-color: var(--fm-error-border);
	box-shadow: var(--fm-input-shadow), 0 0 0 3px var(--fm-error-ring);
}

form.formmaker-modern .input-group .form-control {
	border-radius: 0;
}

form.formmaker-modern .input-group .form-control:first-child,
form.formmaker-modern .input-group-addon:first-child {
	border-top-left-radius: var(--fm-radius);
	border-bottom-left-radius: var(--fm-radius);
}

form.formmaker-modern .input-group .form-control:last-child,
form.formmaker-modern .input-group-addon:last-child,
form.formmaker-modern .input-group-btn:last-child > .btn {
	border-top-right-radius: var(--fm-radius);
	border-bottom-right-radius: var(--fm-radius);
}

form.formmaker-modern .input-group-addon {
	background: var(--brand-accent-bg-soft, #f4f8fb);
	border-color: var(--fm-input-border);
	color: var(--fm-focus-border);
}

/* Pestañas Formmaker (#tabs) */
form.formmaker-modern > .nav-tabs,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs {
	border-bottom: 2px solid var(--fm-tab-border);
	margin-bottom: 0;
}

form.formmaker-modern > .nav-tabs > li > a,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs > li > a {
	border: none;
	border-radius: var(--fm-radius-sm) var(--fm-radius-sm) 0 0;
	margin-right: 4px;
	padding: 10px 16px;
	color: var(--fm-help-color);
	font-weight: 500;
	transition: background 0.15s ease, color 0.15s ease;
}

form.formmaker-modern > .nav-tabs > li > a:hover,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs > li > a:hover {
	background: var(--brand-accent-bg-soft, #f4f8fb);
	color: var(--fm-label-color);
	border: none;
}

form.formmaker-modern > .nav-tabs > li.active > a,
form.formmaker-modern > .nav-tabs > li.active > a:hover,
form.formmaker-modern > .nav-tabs > li.active > a:focus,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs > li.active > a,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs > li.active > a:hover,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs > li.active > a:focus {
	background: var(--fm-tab-active-bg);
	color: var(--fm-focus-border);
	border: none;
	border-bottom: 2px solid var(--fm-focus-border);
	margin-bottom: -2px;
	font-weight: 600;
}

/* Formmaker: stepper wizard (pestañas progresivas — done / active / upcoming) */
form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	float: none;
	width: 100%;
	margin: 0 0 20px;
	padding: 20px 12px 10px;
	gap: 0;
	counter-reset: app-progressive-step;
	border: 1px solid var(--fm-tab-border);
	border-radius: var(--fm-radius);
	background: linear-gradient(180deg, var(--brand-accent-bg-soft, #f4f8fb) 0%, var(--fm-tab-active-bg, #fff) 100%);
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li {
	flex: 1 1 0;
	min-width: 72px;
	float: none;
	margin: 0;
	text-align: center;
	position: relative;
	counter-increment: app-progressive-step;
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li:not(:last-child)::after,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 19px;
	left: calc(50% + 22px);
	width: calc(100% - 44px);
	height: 2px;
	background: var(--fm-tab-border);
	z-index: 0;
	pointer-events: none;
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-done:not(:last-child)::after,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-done:not(:last-child)::after {
	background: var(--fm-focus-border);
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li > a,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li > a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	border: none !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 6px 6px;
	background: transparent !important;
	box-shadow: none !important;
	cursor: default;
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
	font-weight: 500;
	font-size: 0.9375rem;
	line-height: 1.35;
	color: var(--fm-help-color);
	text-decoration: none;
	transition: color 0.15s ease;
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li > a::before,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li > a::before {
	content: counter(app-progressive-step);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1;
	position: relative;
	z-index: 1;
	flex-shrink: 0;
	border: 2px solid var(--fm-input-border);
	background: var(--fm-tab-active-bg, #fff);
	color: var(--fm-help-color);
	box-sizing: border-box;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-done > a,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-done > a {
	color: var(--fm-focus-border);
	cursor: pointer;
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-done > a::before,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-done > a::before {
	content: "\f00c";
	font-family: "Font Awesome 5 Pro";
	font-weight: 900;
	font-size: 0.8125rem;
	background: var(--fm-focus-border);
	border-color: var(--fm-focus-border);
	color: #fff;
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-done > a:hover,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-done > a:hover {
	color: var(--brand-primary-dark, #204d74);
	background: transparent !important;
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-done > a:hover::before,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-done > a:hover::before {
	box-shadow: 0 2px 8px var(--brand-shadow-strong, rgba(40, 96, 144, 0.3));
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-active > a,
form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-active > a:hover,
form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-active > a:focus,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-active > a,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-active > a:hover,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-active > a:focus {
	color: var(--fm-label-color);
	font-weight: 600;
	background: transparent !important;
	border: none !important;
	border-bottom: none !important;
	margin-bottom: 0 !important;
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-active > a::before,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-active > a::before {
	background: var(--fm-focus-border);
	border-color: var(--fm-focus-border);
	color: #fff;
	box-shadow: 0 0 0 4px var(--fm-focus-ring);
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-upcoming > a,
form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-upcoming > a:hover,
form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-upcoming > a:focus,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-upcoming > a,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-upcoming > a:hover,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-upcoming > a:focus {
	color: var(--fm-disabled-text);
	opacity: 1;
	pointer-events: none;
	background: transparent !important;
	border: none !important;
	border-bottom: none !important;
	margin-bottom: 0 !important;
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-upcoming > a::before,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.progressive-tab-upcoming > a::before {
	background: var(--fm-disabled-bg);
	border-color: var(--fm-input-border);
	color: var(--fm-disabled-text);
}

form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.active > a,
form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.active > a:hover,
form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.active > a:focus,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.active > a,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.active > a:hover,
#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li.active > a:focus {
	background: transparent !important;
	border: none !important;
	border-bottom: none !important;
	margin-bottom: 0 !important;
}

form.formmaker-modern > .app-progressive-tabs-nav ~ .tab-content,
#page-wrapper .panel-body form.formmaker-modern > .app-progressive-tabs-nav ~ .tab-content {
	border-top: 1px solid var(--fm-tab-border);
	border-radius: var(--fm-radius);
}

@media (max-width: 767px) {
	form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav,
	#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding: 16px 8px 8px;
		scrollbar-width: thin;
	}
	form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li,
	#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li {
		flex: 0 0 auto;
		min-width: 88px;
		max-width: 140px;
	}
	form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li > a::before,
	#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li > a::before {
		width: 32px;
		height: 32px;
		font-size: 0.8125rem;
	}
	form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li:not(:last-child)::after,
	#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li:not(:last-child)::after {
		top: 16px;
		left: calc(50% + 18px);
		width: calc(100% - 36px);
	}
	form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li > a,
	#page-wrapper .panel-body form.formmaker-modern > .nav-tabs.app-progressive-tabs-nav > li > a {
		font-size: 0.8125rem;
	}
}

form.formmaker-modern .tab-content {
	padding: 20px 4px 8px;
	border: 1px solid var(--fm-tab-border);
	border-top: none;
	border-radius: 0 0 var(--fm-radius) var(--fm-radius);
	margin-bottom: 12px;
	background: var(--fm-tab-active-bg);
}

form.formmaker-modern .tab-pane > .form-group:first-child {
	margin-top: 4px;
}

form.formmaker-modern .app-progressive-tabs-nav ~ .tab-content > .tab-pane:not(.active) {
	display: none !important;
}

form.formmaker-modern .app-progressive-notab-fields {
	display: none !important;
}

/* Switches (Form_builder / combine) */
form.formmaker-modern .switch {
	width: 52px;
	height: 28px;
	vertical-align: middle;
}

form.formmaker-modern .switch .slider {
	background-color: #b8c5d4;
}

form.formmaker-modern .switch .slider:before {
	height: 22px;
	width: 22px;
	left: 3px;
	bottom: 3px;
}

form.formmaker-modern .switch input:checked + .slider {
	background-color: var(--fm-focus-border);
}

form.formmaker-modern .switch input:focus + .slider {
	box-shadow: 0 0 0 3px var(--fm-focus-ring);
}

form.formmaker-modern .switch input:checked + .slider:before {
	transform: translateX(24px);
}

form.formmaker-modern .switch .slider.round {
	border-radius: 28px;
}

/* Radios estilo botón */
form.formmaker-modern .btn-group[data-toggle="buttons"] {
	box-shadow: var(--fm-input-shadow);
	border-radius: var(--fm-radius);
	overflow: hidden;
}

form.formmaker-modern .btn-group[data-toggle="buttons"] > label.btn {
	border-color: var(--fm-input-border) !important;
	padding: 8px 14px;
	font-weight: 500;
	margin: 0;
}

form.formmaker-modern .btn-group[data-toggle="buttons"] > label.btn.active {
	background: var(--fm-focus-border) !important;
	border-color: var(--brand-primary-dark, #204d74) !important;
	color: #fff !important;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12);
}

form.formmaker-modern .btn-group label.error {
	color: #a94442;
	font-weight: 600;
}

/* form-inline / combine dentro del formulario */
form.formmaker-modern .form-inline.col-sm-9,
form.formmaker-modern .form-inline {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 12px 16px;
}

form.formmaker-modern .form-inline .form-group.col {
	margin-right: 0;
	margin-bottom: 8px;
}

form.formmaker-modern .form-inline .help-block {
	flex: 1 1 100%;
	margin-left: 0 !important;
}

/* Tablas embebidas (type table) */
form.formmaker-modern table.table,
form.formmaker-modern table {
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--fm-input-border);
	border-radius: var(--fm-radius);
	overflow: hidden;
	margin-bottom: 12px;
	background: var(--fm-input-bg);
}

form.formmaker-modern table thead th {
	background: var(--brand-accent-bg-soft, #f4f8fb);
	border-bottom: 1px solid var(--fm-input-border);
	font-weight: 600;
	color: var(--fm-label-color);
	padding: 10px 12px;
}

form.formmaker-modern table tbody td {
	padding: 8px 12px;
	vertical-align: middle;
	border-top: 1px solid #e8edf2;
}

form.formmaker-modern table tbody tr:hover td {
	background: var(--brand-accent-bg-soft, #f8fbfd);
}

/* Tom Select — cursor/caret en control cerrado (global; carga tras tom-select.css) */
.ts-wrapper:not(.dropdown-active) .ts-control {
	cursor: pointer;
}
.ts-wrapper:not(.dropdown-active) .ts-control > input {
	cursor: pointer;
	caret-color: transparent;
}
.ts-wrapper.dropdown-active .ts-control > input {
	cursor: text;
	caret-color: auto;
}
.ts-wrapper.multi:not(.dropdown-active) .ts-control {
	cursor: default;
}

/* Select2 / Tom Select — alinear caja sin romper dropdown */
form.formmaker-modern .select2-container--default .select2-selection--single,
form.formmaker-modern .select2-container--default .select2-selection--multiple {
	border: 1px solid var(--fm-input-border);
	border-radius: var(--fm-radius);
	min-height: 38px;
	padding: 4px 8px;
	background: var(--fm-input-bg);
	box-shadow: var(--fm-input-shadow);
}

form.formmaker-modern .select2-container--default.select2-container--focus .select2-selection--single,
form.formmaker-modern .select2-container--default.select2-container--focus .select2-selection--multiple {
	border-color: var(--fm-focus-border);
	box-shadow: var(--fm-input-shadow), 0 0 0 3px var(--fm-focus-ring);
}

form.formmaker-modern .ts-wrapper .ts-control {
	border-radius: var(--fm-radius);
	min-height: 38px;
	padding: 6px 10px;
}

form.formmaker-modern .ts-wrapper.focus .ts-control {
	border-color: var(--fm-focus-border);
	box-shadow: var(--fm-input-shadow), 0 0 0 3px var(--fm-focus-ring);
}

form.formmaker-modern .ts-wrapper.has-error .ts-control,
#page-wrapper .ts-wrapper.has-error .ts-control {
	border-color: var(--fm-error-border, #c9302c);
	box-shadow: var(--fm-input-shadow, inset 0 1px 2px rgba(15, 35, 55, 0.06)), 0 0 0 3px var(--fm-error-ring, rgba(201, 48, 44, 0.18));
}

/* Subida de archivos ajaxfile */
form.formmaker-modern .fileinput-button {
	border-radius: var(--fm-radius);
}

form.formmaker-modern .form-control-static {
	padding-top: 10px;
	color: var(--fm-label-color);
}

/* Wizard: sección colapsable (solo formularios wizard) */
.wizard-form-card .collapse-toggle {
	background: var(--brand-accent-bg-soft);
	border: 1px solid var(--brand-accent-soft);
	border-radius: 4px;
	padding: 10px 16px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 16px 0 0;
	font-weight: 500;
	color: var(--brand-text-muted);
}
.wizard-form-card .collapse-toggle:hover {
	background: var(--brand-accent-bg);
	border-color: var(--brand-accent);
}
.wizard-form-card .collapse-toggle .fa-chevron-down {
	transition: transform 0.2s ease;
	color: var(--brand-primary);
}
.wizard-form-card .collapse-toggle.collapsed .fa-chevron-down {
	transform: rotate(-90deg);
}
.wizard-form-card .collapse-content {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid #eee;
}

/* ===== Widget Novedades: branding (primario + secundario) ===== */
.panel-brand {
	border-color: var(--brand-primary);
}
.panel-brand .panel-heading {
	border-color: var(--brand-primary);
	background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
	color: #fff;
}
.panel-brand a {
	color: var(--brand-primary);
}
.panel-brand a:hover {
	color: var(--brand-primary-dark);
}

/* ===== Menú lateral y superior modernizados ===== */
/* Sidebar: diseño claro, primario + secundario del branding */
.navbar-default.sidebar {
	background: #fff;
	border-right: 1px solid #e8e8e8;
	box-shadow: 2px 0 8px rgba(0,0,0,0.04);
}
.sidebar .sidebar-nav.navbar-collapse {
	padding: 12px 0;
}
.sidebar ul.nav li {
	border-bottom: 1px solid #f0f0f0;
}
.sidebar ul.nav li a {
	color: #444;
	padding: 12px 20px;
	font-size: 0.95em;
	font-weight: 500;
	transition: background 0.2s, color 0.2s;
}
.sidebar ul.nav li a:hover {
	background: var(--brand-accent-bg-soft);
	color: var(--brand-primary);
}
.sidebar ul.nav li a.active,
.sidebar ul.nav li.active > a {
	background: var(--brand-accent-bg-soft);
	color: var(--brand-primary);
	font-weight: 600;
	border-left: 4px solid var(--brand-primary);
	margin-left: 0;
	padding-left: 16px;
}
.sidebar ul.nav li a .fa {
	margin-right: 12px;
	opacity: 0.9;
	width: 20px;
	text-align: center;
}
.sidebar .fa.arrow {
	font-size: 0.85em;
	opacity: 0.7;
}
.sidebar .nav-second-level li a,
.sidebar .nav-third-level li a {
	padding-left: 44px;
	font-size: 0.9em;
	color: #555;
}
.sidebar .nav-third-level li a {
	padding-left: 56px;
}
.sidebar .nav-second-level li a:hover,
.sidebar .nav-third-level li a:hover {
	color: var(--brand-primary);
}
.sidebar .nav-second-level li a.active,
.sidebar .nav-third-level li a.active {
	background: transparent;
	color: var(--brand-secondary);
	font-weight: 600;
}

/* Navbar superior: limpio, con sombra sutil */
.navbar-default.navbar-static-top {
	background: #fff;
	border-bottom: 1px solid #e8e8e8;
	box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.navbar-default .navbar-brand {
	color: var(--brand-primary);
	font-weight: 600;
	font-size: 1.2em;
}
.navbar-default .navbar-brand:hover {
	color: var(--brand-primary-dark);
}
.navbar-default .navbar-toggle {
	border-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
	background-color: #888;
}
.navbar-top-links li a {
	color: #555;
	font-weight: 500;
}
.navbar-top-links li a:hover {
	color: var(--brand-primary);
}
.navbar-top-links .dropdown-menu {
	border-radius: 6px;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
	border: 1px solid #e8e8e8;
	margin-top: 4px;
}
.navbar-top-links .dropdown-menu li a {
	padding: 10px 20px;
}
.navbar-top-links .dropdown-menu li a:hover {
	background: var(--brand-accent-bg-soft);
	color: var(--brand-primary);
}

/* Acento con color secundario en navbar */
.navbar-default .navbar-brand {
	border-left: 3px solid var(--brand-secondary);
	padding-left: 10px;
	margin-left: 5px;
}

/* ===== Refresh medio del shell principal ===== */
html {
	/* clip (no hidden): overflow-x:hidden en html/wrapper rompe position:sticky en descendientes */
	overflow-x: clip;
	font-family: var(--app-font-sans);
}

body {
	font-family: var(--app-font-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	background: linear-gradient(180deg, #f7fafc 0%, #eef3f8 100%);
	color: var(--brand-text);
}

/* SweetAlert2 toast: .swal2-popup usa font-size:1rem (html Bootstrap = 10px); alinear con body 14px */
.swal2-popup.swal2-toast {
	font-family: var(--app-font-sans);
	font-size: 14px;
	line-height: 1.42857143;
}

.swal2-popup.swal2-toast .swal2-title {
	font-size: 1em !important;
	font-weight: 600 !important;
}

#wrapper {
	background: transparent;
	max-width: 100%;
	overflow-x: clip;
}

@supports not (overflow: clip) {
	html,
	#wrapper {
		overflow-x: visible;
	}
}

.app-shell-navbar {
	min-height: var(--app-shell-topbar-height);
	background: rgba(255,255,255,0.96) !important;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	padding-right: 10px;
}

.app-brand {
	display: flex !important;
	align-items: center;
	gap: 12px;
	height: var(--app-shell-topbar-height);
	margin-left: 12px !important;
	padding: 0 18px 0 12px !important;
	border-left: 0 !important;
	max-width: calc(var(--app-shell-sidebar-width) - 24px);
}

.app-brand-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: auto;
	border-radius: 0;
	background: transparent;
	color: var(--brand-primary);
	box-shadow: none;
	font-size: 16px;
	flex-shrink: 0;
}

.app-brand-logo {
	display: block;
	width: var(--app-brand-logo-size, 44px);
	height: var(--app-brand-logo-size, 44px);
	object-fit: contain;
	border-radius: 0;
}

.app-brand-mark i {
	font-size: 24px;
	color: var(--brand-primary);
}

.app-brand-copy {
	display: flex;
	flex-direction: column;
	line-height: 1.1;
}

.app-brand-title {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--brand-primary-dark);
}

.app-brand-subtitle {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--brand-text-muted);
	margin-top: 3px;
}

.navbar-top-links {
	margin-right: 14px;
}

.app-sidebar-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	width: 100%;
	height: 44px;
	border: 0;
	border-radius: 14px;
	padding: 0 14px !important;
	color: var(--brand-text-muted);
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.app-sidebar-toggle-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	min-width: 20px;
}

.app-sidebar-toggle-label {
	font-size: 13px;
	font-weight: 600;
}

.app-sidebar-toggle:hover,
.app-sidebar-toggle:focus {
	background: var(--brand-accent-bg-soft);
	color: var(--brand-primary);
	text-decoration: none;
	outline: none;
}

.navbar-top-links > li {
	display: inline-flex;
	align-items: center;
}

.app-top-link {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 14px !important;
	margin-top: 12px;
	border-radius: 14px;
	color: var(--brand-text-muted) !important;
	transition: all 0.2s ease;
}

.app-top-link:hover,
.app-top-link:focus {
	background: var(--brand-accent-bg-soft);
	color: var(--brand-primary) !important;
}

/* Toggle claro/oscuro: .btn-link subraya en hover/focus (parece enlace) */
.navbar-top-links .app-theme-toggle.btn-link,
.navbar-top-links .app-theme-toggle.btn-link:hover,
.navbar-top-links .app-theme-toggle.btn-link:focus,
.navbar-top-links .app-theme-toggle.btn-link:active {
	text-decoration: none !important;
	box-shadow: none !important;
	border-color: transparent !important;
}

.navbar-top-links .app-theme-toggle.btn-link:focus {
	outline: 2px solid var(--brand-focus-ring);
	outline-offset: 2px;
}

.app-top-user {
	padding-right: 16px !important;
}

.app-top-user-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	background: var(--brand-accent-bg);
	color: var(--brand-primary);
	overflow: hidden;
}

.app-top-user-avatar-image{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.app-top-user-avatar-fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-size: 16px;      
    font-weight: 700;
    letter-spacing: 0.5px;
}

.app-top-user-avatar-image {
	display: block;
	object-fit: cover;
}

.app-top-user-name {
	font-weight: 600;
	max-width: 180px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.navbar-default.sidebar {
	background: rgba(255,255,255,0.92);
	border-right: 1px solid rgba(210, 220, 232, 0.9);
	box-shadow: 10px 0 30px rgba(44, 62, 80, 0.06);
}

.sidebar .sidebar-nav.navbar-collapse {
	padding: 18px 12px 22px;
}

.app-sidebar-toolbar {
	padding: 0 4px 14px;
	margin: 0 0 12px;
	border-bottom: 1px solid rgba(210, 220, 232, 0.7);
}

.app-sidebar-toolbar .app-sidebar-toggle {
	background: rgba(248, 250, 252, 0.9);
	border: 0;
	box-shadow: inset 0 0 0 1px rgba(40, 96, 144, 0.1);
}

.app-sidebar-toolbar .app-sidebar-toggle:focus,
.app-sidebar-toolbar .app-sidebar-toggle:active:focus {
	box-shadow:
		inset 0 0 0 1px rgba(40, 96, 144, 0.14),
		0 0 0 2px rgba(40, 96, 144, 0.2);
}

.app-sidebar-menu-filter {
	position: sticky;
	top: 0;
	z-index: 3;
	padding-bottom: 10px;
	margin: -4px 0 10px;
	/* Más opaco abajo: evita que los ítems del scroll “asomen” bajo el buscador y parezcan superpuestos. */
	background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 82%, rgba(255, 255, 255, 0) 100%);
	isolation: isolate;
}

.app-mainmenu-filter-input {
	border-radius: 12px;
	border: 1px solid rgba(210, 220, 232, 0.95);
	box-shadow: inset 0 1px 2px rgba(44, 62, 80, 0.06);
	font-size: 13px;
	height: 36px;
}

.app-mainmenu-filter-input:focus {
	border-color: rgba(40, 96, 144, 0.35);
	box-shadow: inset 0 1px 2px rgba(44, 62, 80, 0.04), 0 0 0 2px rgba(40, 96, 144, 0.18);
	outline: none;
}

body.app-sidebar-collapsed .app-sidebar-menu-filter {
	display: none;
}

/* Modo búsqueda: ocultar ramas sin coincidencia ni descendiente con match. */
#mainmenu li.app-menu-filter-hidden {
	display: none;
}

#mainmenu.app-menu-filter-active ul.collapse.in {
	display: block;
	height: auto !important;
	overflow: visible;
}

/* Coincidencia directa del filtro (branding). */
#mainmenu a.app-menu-filter-match {
	background: var(--brand-accent-bg-soft);
	color: var(--brand-primary);
	font-weight: 600;
	border-left: 4px solid var(--brand-primary);
	margin-left: 0;
	padding-left: 16px;
	box-shadow: inset 0 0 0 1px rgba(40, 96, 144, 0.1);
}

#mainmenu a.app-menu-filter-match:hover {
	background: linear-gradient(135deg, rgba(40, 96, 144, 0.12) 0%, rgba(91, 192, 222, 0.1) 100%);
	color: var(--brand-primary-dark);
}

.sidebar ul.nav li {
	border-bottom: 0;
	margin-bottom: 4px;
}

.sidebar .app-menu-item {
	position: relative;
}

.sidebar ul.nav li a {
	display: flex;
	align-items: center;
	gap: 12px;
	border-radius: 14px;
	padding: 13px 16px;
	font-size: 14px;
	font-weight: 600;
	color: #41576d;
}

.sidebar .app-menu-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	min-width: 22px;
	text-align: center;
}

.sidebar .app-menu-icon-empty::before {
	content: "\00a0";
}

.sidebar .app-menu-label {
	flex: 1 1 auto;
	min-width: 0;
}

.sidebar .app-menu-arrow {
	margin-left: auto;
}

.sidebar ul.nav li a:hover {
	background: linear-gradient(135deg, var(--brand-accent-bg-soft) 0%, #ffffff 100%);
	color: var(--brand-primary);
}

.sidebar ul.nav li a.active,
.sidebar ul.nav li.active > a {
	background: linear-gradient(135deg, rgba(40,96,144,0.12) 0%, rgba(91,192,222,0.1) 100%);
	color: var(--brand-primary-dark);
	border-left: 0;
	box-shadow: inset 0 0 0 1px rgba(40,96,144,0.10);
	padding-left: 16px;
}

.sidebar ul.nav li a .fa {
	margin-right: 0;
}

.sidebar .nav-second-level,
.sidebar .nav-third-level {
	margin-top: 6px;
	margin-bottom: 8px;
}

.sidebar .nav-second-level li a,
.sidebar .nav-third-level li a {
	border-radius: 12px;
	margin-left: 10px;
	padding-top: 10px;
	padding-bottom: 10px;
	font-weight: 500;
	background: rgba(248, 250, 252, 0.7);
}

.sidebar .nav-third-level li a {
	margin-left: 18px;
}

.dataTable_wrapper,
.dataTables_wrapper {
	width: 100%;
}

/* DataTables: sin scroll con ≤10 filas/página; con más el bloque del listado puede hacer scroll */
.dataTables_wrapper.dt-inner-scroll {
	max-height: calc(100vh - 160px);
	overflow-y: auto;
	overflow-x: auto;
}

.dataTable_wrapper > table,
.dataTables_wrapper > table,
.dataTables_wrapper table.dataTable {
	width: 100% !important;
}

#mainmenu > .app-menu-item-primary {
	margin-bottom: 18px;
	padding-bottom: 14px;
}

#mainmenu > .app-menu-item-primary::after {
	content: "";
	position: absolute;
	left: 18px;
	right: 18px;
	bottom: 0;
	height: 1px;
	background: linear-gradient(90deg, rgba(40,96,144,0.18) 0%, rgba(40,96,144,0.04) 100%);
}

#mainmenu > .app-menu-item-primary > a {
	background: linear-gradient(135deg, rgba(40,96,144,0.15) 0%, rgba(91,192,222,0.08) 100%);
	box-shadow: inset 0 0 0 1px rgba(40,96,144,0.08);
}

#page-wrapper {
	background: transparent;
	border-left: 0;
	min-height: calc(100vh - var(--app-shell-topbar-height));
	padding-top: 18px;
}

#page-wrapper .page-header {
	font-size: 28px;
	font-weight: 700;
	color: var(--brand-primary-dark);
	border-bottom: 0;
	margin-top: 6px;
	margin-bottom: 22px;
	letter-spacing: -0.02em;
}

#page-wrapper .row {
	margin-left: 0;
	margin-right: 0;
}

@media (min-width: 768px) {
	/* Topbar fija: el sidebar ya es fixed; si el nav hace scroll, “se despega” visualmente. */
	#wrapper {
		padding-top: var(--app-shell-topbar-height);
	}

	.app-shell-navbar {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		width: 100%;
		z-index: 1030;
		margin-bottom: 0;
		/* Separación clara respecto al contenido al hacer scroll */
		box-shadow:
			0 1px 0 rgba(210, 220, 232, 0.95),
			0 4px 18px rgba(44, 62, 80, 0.07);
		border-bottom: 1px solid rgba(210, 220, 232, 0.85);
	}

	.app-shell-navbar .navbar-header {
		width: var(--app-shell-sidebar-width);
		border-right: 1px solid rgba(210, 220, 232, 0.9);
	}

	.app-shell-navbar .navbar-brand {
		width: calc(var(--app-shell-sidebar-width) - 24px);
	}

	/* Fuera de .app-shell-navbar: evita que backdrop-filter en el nav fuerce al sidebar
	   fixed a posicionarse dentro de un contenedor ~72px y quede recortado. */
	.navbar-default.sidebar.app-sidebar {
		position: fixed;
		top: var(--app-shell-topbar-height);
		left: 0;
		bottom: 0;
		width: var(--app-shell-sidebar-width);
		height: calc(100vh - var(--app-shell-topbar-height));
		margin-top: 0;
		z-index: 1000;
		display: flex;
		flex-direction: column;
	}

	.app-sidebar-scroll {
		flex: 1 1 auto;
		min-height: 0;
		display: flex;
		flex-direction: column;
		overflow-x: hidden;
		overflow-y: hidden;
	}

	.app-sidebar-toolbar {
		flex-shrink: 0;
	}

	.app-sidebar-menu-scroll {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		overflow-x: hidden;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		scrollbar-gutter: auto;
	}

	#page-wrapper {
		margin: 0 0 0 var(--app-shell-sidebar-width);
		padding: 26px 32px 40px;
	}

	.navbar-top-links.navbar-right {
		display: flex;
		align-items: center;
		gap: 4px;
		min-height: var(--app-shell-topbar-height);
		margin-right: 12px;
	}

	.navbar-top-links > li {
		float: none;
	}

	body.app-sidebar-collapsed .app-shell-navbar .navbar-header {
		width: var(--app-shell-sidebar-collapsed-width);
	}

	body.app-sidebar-collapsed .app-shell-navbar .navbar-brand {
		width: calc(var(--app-shell-sidebar-collapsed-width) - 16px);
		max-width: calc(var(--app-shell-sidebar-collapsed-width) - 16px);
		padding-right: 8px !important;
		padding-left: 8px !important;
		justify-content: center;
	}

	body.app-sidebar-collapsed .app-brand-copy {
		display: none;
	}

	body.app-sidebar-collapsed .app-brand-logo {
		width: 48px;
		height: 48px;
	}

	body.app-sidebar-collapsed .navbar-default.sidebar.app-sidebar {
		width: var(--app-shell-sidebar-collapsed-width);
	}

	body.app-sidebar-collapsed .app-sidebar-scroll {
		padding-left: 10px;
		padding-right: 10px;
		overflow-x: hidden !important;
		overflow-y: hidden !important;
	}

	body.app-sidebar-collapsed .app-sidebar-toolbar {
		padding-left: 0;
		padding-right: 0;
	}

	body.app-sidebar-collapsed .app-sidebar-toggle {
		justify-content: center;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	body.app-sidebar-collapsed .app-sidebar-toggle-label {
		display: none;
	}

	body.app-sidebar-collapsed .sidebar ul.nav li a {
		justify-content: center;
		padding-left: 12px;
		padding-right: 12px;
	}

	body.app-sidebar-collapsed .sidebar .app-menu-label,
	body.app-sidebar-collapsed .sidebar .app-menu-arrow,
	body.app-sidebar-collapsed .sidebar .nav-second-level .app-menu-arrow,
	body.app-sidebar-collapsed .sidebar .nav-third-level .app-menu-arrow {
		display: none;
	}

	body.app-sidebar-collapsed .sidebar .app-menu-icon {
		width: 24px;
		min-width: 24px;
	}

	body.app-sidebar-collapsed #mainmenu > .app-menu-item-primary {
		margin-bottom: 14px;
		padding-bottom: 12px;
	}

	body.app-sidebar-collapsed #mainmenu > .app-menu-item-primary::after {
		left: 10px;
		right: 10px;
	}

	body.app-sidebar-collapsed .sidebar .nav-second-level,
	body.app-sidebar-collapsed .sidebar .nav-third-level {
		display: none !important;
	}

	body.app-sidebar-collapsed #page-wrapper {
		margin-left: var(--app-shell-sidebar-collapsed-width);
	}
}

@media (max-width: 767px) {
	:root {
		--app-shell-topbar-height: 64px;
		--app-brand-logo-size: 40px;
	}

	.app-brand {
		margin-left: 0 !important;
		padding-left: 8px !important;
		max-width: calc(100% - 70px);
	}

	.app-brand-subtitle,
	.app-top-user-name {
		display: none !important;
	}

	.navbar-top-links {
		margin-right: 6px;
	}

	.app-top-link {
		padding: 0 10px !important;
	}

	.navbar-default.sidebar.app-sidebar {
		position: static;
		width: 100%;
		height: auto;
		top: auto;
		bottom: auto;
		box-shadow: none;
		border-right: 0;
	}

	.app-sidebar-scroll {
		height: auto;
		overflow: visible !important;
	}

	.app-sidebar-menu-scroll {
		flex: none;
		min-height: 0;
		overflow: visible !important;
		scrollbar-gutter: auto;
	}

	#page-wrapper {
		margin-left: 0;
		padding: 16px 12px 28px;
	}
}

/* Radios btn-group: mostrar error debajo (merge YAMI) */
.btn-group { position: relative; }
.btn-group label.error {
	position: absolute;
	left: 0;
	top: 100%;
	margin-top: -55px;
	width: auto;
	font-weight: 700;
	color: #a94442;
	display: block;
}


/* ===================== DATATABLES LAYOUT ===================== */
/* Evitar que las tablas se “escapen” del contenedor y forzar un único scroll horizontal interno */
.dataTables_wrapper{
  width: 100% !important;
  overflow-x: auto !important;
}
.dataTables_scroll{
  width: 100% !important;
  overflow-x: auto !important;
}
.dataTables_scrollHead,
.dataTables_scrollBody{
  width: 100% !important;
}
.dataTables_scrollBody table.dataTable{
  width: 100% !important;

}
/* Separación fija entre grilla y controles inferiores (info/paginación) */
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate{
  margin-top: 18px;
}

/* Length menu / buscador: dataTables.bootstrap usa form-control input-sm; el padding
   extra de #page-wrapper .panel .form-control recortaba el valor (p. ej. el "5"). */
.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin-bottom: 0;
	font-weight: 400;
	vertical-align: middle;
}
.dataTables_wrapper .dataTables_length select.form-control,
.dataTables_wrapper .dataTables_filter input.form-control {
	width: auto;
	max-width: 100%;
	height: auto;
	min-height: 30px;
	padding: 4px 10px;
	line-height: 1.42857143;
	vertical-align: middle;
}
#page-wrapper .panel .dataTables_wrapper .dataTables_length select.form-control,
#page-wrapper .panel .dataTables_wrapper .dataTables_filter input.form-control {
	padding: 4px 10px;
}

/* Un solo indicador de orden: dataTables.bootstrap usa PNG; sb-admin-2 añade ::after (FA) y duplica flechas */
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
  content: none !important;
}

/* Tabs marcadas como ocultas desde el backend */
.tab-config-hidden { display: none !important; }

/* ===================== GOOGLE PLACE AUTOCOMPLETE (web component) ===================== */
/*
 * El host no lleva la clase .form-control (evitaba doble borde con el interior del componente).
 * Aquí reproducimos UNA sola caja al estilo Bootstrap 3 (.form-control) sobre el web component.
 */
.app-place-autocomplete-host {
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 34px;
	padding: 0;
	margin: 0;
	font-size: 14px;
	line-height: 1.42857143;
	color: #555;
	color-scheme: light;
	background-color: #fff;
	background-image: none;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
	transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
	height: auto;
}

.app-place-autocomplete-host:focus-within {
	border-color: #66afe9;
	outline: 0;
	box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
}

/* LEGACY: usado si se vuelve a incluir elements/form_wiki_informacion.php en formularios */
.app-form-wiki-info {
	background-color: #f8f8f8;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	padding: 16px 18px;
	margin-bottom: 18px;
	float: none;
}
.app-form-wiki-info__title {
	font-weight: 700;
	font-size: 15px;
	color: #2c3e50;
	margin: 0 0 8px 0;
}
.app-form-wiki-info__text {
	font-size: 14px;
	color: #555;
	margin: 0;
	line-height: 1.45;
}
.app-form-wiki-info__link {
	color: #337ab7;
}

/* Tabla genérica con paginación — embebida en formularios (xtra_div, etc.) */
.generic-table-embed.panel {
	margin-bottom: 0;
	border: none;
	box-shadow: none;
}
.generic-table-embed > .panel-body {
	padding: 0 0 8px;
	overflow-x: auto;
}
.generic-table-embed table.table {
	width: 100%;
}
.generic-table-embed .dataTable_wrapper,
.generic-table-embed .dataTables_wrapper {
	width: 100%;
	overflow-x: auto;
}
.generic-table-embed .generic-table-toolbar.row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-left: 0;
	margin-right: 0;
}
.generic-table-embed .generic-table-toolbar.row::before,
.generic-table-embed .generic-table-toolbar.row::after {
	display: none;
}
.generic-table-embed .generic-table-toolbar > [class*="col-"] {
	float: none;
	width: auto;
	flex: 1 1 200px;
	min-width: 0;
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
}
.generic-table-embed .generic-table-toolbar [id^="registros-container-"],
.generic-table-embed .generic-table-toolbar [id^="buscador-container-"] {
	width: 100%;
	max-width: 100%;
}
.generic-table-embed .generic-table-toolbar .dataTables_length,
.generic-table-embed .generic-table-toolbar .dataTables_filter {
	float: none;
	display: block;
	width: 100%;
	max-width: 100%;
	margin-bottom: 0;
}
.generic-table-embed .generic-table-toolbar .dataTables_length label,
.generic-table-embed .generic-table-toolbar .dataTables_filter label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	width: 100%;
	max-width: 100%;
}
.generic-table-embed .generic-table-toolbar .text-right .dataTables_filter label {
	justify-content: flex-end;
}
.generic-table-embed .generic-table-toolbar .dataTables_filter input,
.generic-table-embed .generic-table-toolbar .dataTables_length select {
	flex: 1 1 120px;
	min-width: 0;
	max-width: 100%;
}
.generic-table-embed .generic-table-extra-filters.row {
	margin-left: 0;
	margin-right: 0;
}
.generic-table-embed table.dataTable {
	width: 100% !important;
}

/* Footer info + paginación (dom DataTables con col-sm-6) */
.generic-table-embed .dataTables_wrapper > .row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 12px;
	margin-left: 0;
	margin-right: 0;
}
.generic-table-embed .dataTables_wrapper > .row::before,
.generic-table-embed .dataTables_wrapper > .row::after {
	display: none;
}
.generic-table-embed .dataTables_wrapper > .row > [class*="col-"] {
	float: none;
	width: auto;
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
}
.generic-table-embed .dataTables_wrapper .dataTables_info,
.generic-table-embed .dataTables_wrapper .dataTables_paginate {
	float: none;
}
.generic-table-embed .dataTables_wrapper .dataTables_paginate {
	text-align: right;
}
.generic-table-embed .dataTables_wrapper .dataTables_paginate ul.pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0;
	margin: 0;
	white-space: normal;
}
.generic-table-embed .dataTables_wrapper .dataTables_paginate .pagination > li {
	display: block;
	float: none;
}
.generic-table-embed .dataTables_wrapper .dataTables_paginate .pagination > li > a,
.generic-table-embed .dataTables_wrapper .dataTables_paginate .pagination > li > span {
	float: none;
}

/* Agrupar — listados embebidos en tabs del formulario progresivo */
.agrupar-embed-list > .row,
.agrupar-embed-list > .col-lg-12 {
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
}
.agrupar-embed-list > .col-lg-12 > .panel,
.agrupar-embed-list .panel {
	margin-bottom: 0;
	border: none;
	box-shadow: none;
	background: transparent;
}
.agrupar-embed-list > .col-lg-12 > .panel > .panel-body,
.agrupar-embed-list .panel > .panel-body {
	padding: 0;
}
.agrupar-embed-list .agrupar-embed-dt-inner,
.agrupar-embed-list .agrupar-embed-dt-scroll,
.agrupar-embed-list .dataTable_wrapper,
.agrupar-embed-list .dataTables_wrapper,
.agrupar-embed-list .table-responsive {
	width: 100%;
	overflow-x: auto;
}
.agrupar-embed-list .dataTables_wrapper .row {
	margin-left: 0;
	margin-right: 0;
}
.agrupar-embed-list .dataTables_wrapper .row > [class*="col-"] {
	padding-left: 0;
	padding-right: 0;
	float: none;
	width: auto;
}
.agrupar-embed-list .dataTables_wrapper .dataTables_length,
.agrupar-embed-list .dataTables_wrapper .dataTables_filter {
	float: none;
	display: inline-block;
	vertical-align: middle;
}
.agrupar-embed-list .dataTables_wrapper .dataTables_length {
	margin-right: 12px;
}
.agrupar-embed-list .dataTables_wrapper > .row:first-child {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 8px;
}
.agrupar-embed-list table.dataTable,
.agrupar-embed-list table.table {
	font-size: 13px;
	width: 100% !important;
	margin-bottom: 0;
	table-layout: auto;
}
.agrupar-embed-list table.dataTable th,
.agrupar-embed-list table.dataTable td,
.agrupar-embed-list table.table th,
.agrupar-embed-list table.table td {
	vertical-align: middle;
}
.agrupar-embed-list table.dataTable th:last-child,
.agrupar-embed-list table.dataTable td:last-child,
.agrupar-embed-list table.table th:last-child,
.agrupar-embed-list table.table td:last-child {
	width: 72px;
	text-align: center;
	white-space: nowrap;
}
.agrupar-embed-list table.dataTable td:nth-child(2) {
	white-space: normal;
	min-width: 120px;
}
.agrupar-embed-list .dataTables_info,
.agrupar-embed-list .dataTables_paginate {
	float: none;
}
.agrupar-embed-list .dataTables_wrapper .dataTables_paginate {
	text-align: right;
}
.agrupar-reparto-alert {
	margin-bottom: 12px;
}
.agrupar-reparto-libres-badge {
	margin-left: 6px;
	vertical-align: middle;
	font-weight: normal;
}
#reparto .control-label {
	height: auto;
	min-height: 20px;
	line-height: 1.4;
}
.agrupar-resumen-embed .agrupar-resumen-info-dl {
	margin-bottom: 0;
	margin-top: 8px;
}
.agrupar-resumen-embed .agrupar-resumen-info-dl dt {
	width: 190px;
}
.agrupar-resumen-embed .agrupar-resumen-table-panel {
	margin-bottom: 0;
}
.agrupar-resumen-embed .agrupar-resumen-table-panel > .panel-heading {
	padding: 8px 12px;
}
.agrupar-resumen-embed .agrupar-resumen-table-panel > .panel-body {
	padding: 0;
}
.agrupar-resumen-embed .agrupar-resumen-table td:last-child {
	white-space: normal;
	min-width: 220px;
}
.agrupar-resumen-embed .agrupar-isa-code {
	font-size: 12px;
	background: #f7f7f9;
}
.agrupar-embed-list .dataTables_length,
.agrupar-embed-list .dataTables_filter {
	margin-bottom: 8px;
}

/* -----------------------------------------------------------------------------
   Paneles admin reutilizables (catálogo endpoints, permisos, niveles extra)
   ----------------------------------------------------------------------------- */

.planes-admin-panel .planes-toolbar {
	margin-bottom: 12px;
}

.planes-admin-panel .planes-view-modes {
	margin-bottom: 10px;
}

.planes-admin-panel .planes-filter-get-form {
	margin-bottom: 12px;
}

.planes-admin-panel .planes-catalog-pagination {
	margin-top: 12px;
	margin-bottom: 0;
}

.planes-admin-panel .planes-table-actions {
	white-space: nowrap;
}

.planes-admin-panel .planes-table-actions .btn + .btn {
	margin-left: 4px;
}

.planes-admin-panel .planes-form-block-toolbar {
	margin-bottom: 12px;
}

.planes-panel-accordion .planes-accordion-tools {
	margin-bottom: 10px;
}

.planes-admin-panel .planes-form-block {
	margin-bottom: 20px;
}

.planes-admin-panel .planes-section-title {
	margin-top: 16px;
}

.planes-path-monospace {
	font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
	font-size: 13px;
	color: #333;
	word-break: break-all;
}

.planes-label-badge-inline {
	margin-left: 6px;
	vertical-align: middle;
}

.planes-save-bar {
	margin-top: 16px;
	padding-top: 12px;
	border-top: 1px solid #eee;
}

.planes-endpoint-catalog-actions .planes-inline-action-form {
	display: inline-block;
	margin: 0 4px 4px 0;
	vertical-align: middle;
}

.form-control.planes-select-level,
select.form-control.planes-select-level {
	width: 100%;
	max-width: 280px;
	height: auto;
	min-height: 34px;
	padding: 6px 10px;
	line-height: 1.45;
	font-size: 13px;
}

.planes-inline-form-gap {
	margin-right: 8px;
}

.planes-input-label-wide {
	min-width: 220px;
}

.planes-input-label-edit {
	min-width: 160px;
}

.planes-form-inline {
	display: inline;
}

.planes-col-edit-label {
	min-width: 260px;
}

.planes-module-perm-accordion .panel table th.planes-col-level {
	width: 34%;
}

.planes-module-perm-accordion .panel table th.planes-col-permit {
	width: 18%;
}

.planes-module-perm-accordion .panel table th.planes-col-role {
	width: 22%;
}

.planes-module-perm-accordion .panel table th.planes-col-user {
	width: 24%;
}

html[data-theme="dark"] .planes-path-monospace {
	color: var(--brand-text, #e8eef5);
}

html[data-theme="dark"] .planes-admin-panel .planes-save-bar {
	border-top-color: var(--brand-border, #2a3a4d);
}

/* Acordeón panel-info: heading azul #337ab7 + texto blanco (tema claro/oscuro) */
#page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading {
	background-color: #337ab7;
	border-color: #2e6da4;
	color: #fff;
}

#page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .panel-title,
#page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .panel-title a,
#page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .panel-title a:hover,
#page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .panel-title a:focus {
	color: #fff;
	text-decoration: none;
}

#page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .panel-title a {
	display: block;
	font-weight: 600;
}

#page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .planes-path-monospace {
	font-weight: 600;
}

#page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .planes-panel-accordion-count,
#page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .planes-panel-accordion-sub {
	font-weight: normal;
	color: rgba(255, 255, 255, 0.85);
	margin-left: 6px;
}

html[data-theme="dark"] #page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading {
	background-color: #337ab7;
	border-color: #2e6da4;
	color: #fff;
}

html[data-theme="dark"] #page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .panel-title a,
html[data-theme="dark"] #page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .planes-panel-accordion-sub,
html[data-theme="dark"] #page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .planes-panel-accordion-count {
	color: #fff;
}

html[data-theme="dark"] #page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .planes-panel-accordion-count,
html[data-theme="dark"] #page-wrapper .planes-panel-accordion.panel-group > .panel.panel-info > .panel-heading.planes-panel-accordion-heading .planes-panel-accordion-sub {
	color: rgba(255, 255, 255, 0.85);
}

/* Toggle on/off para niveles (feature permissions) */
.planes-feature-switch {
	position: relative;
	display: inline-block;
	width: 46px;
	height: 24px;
	margin: 0;
}

.planes-feature-switch input {
	opacity: 0;
	width: 0;
	height: 0;
}

.planes-feature-switch-slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #d9534f;
	transition: .2s;
	border-radius: 24px;
}

.planes-feature-switch-slider:before {
	position: absolute;
	content: "";
	height: 18px;
	width: 18px;
	left: 3px;
	top: 3px;
	background-color: #fff;
	transition: .2s;
	border-radius: 50%;
}

.planes-feature-switch input:checked + .planes-feature-switch-slider {
	background-color: #5cb85c;
}

.planes-feature-switch input:checked + .planes-feature-switch-slider:before {
	transform: translateX(22px);
}

.wizard-empresa-map {
	height: 200px;
	margin-bottom: 15px;
}

/* Leyenda de colores de fila (fnRowCallback / createdRow) */
.dt-row-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1rem;
	justify-content: flex-end;
	align-items: center;
	margin: 0 0 0.65rem;
	padding: 0;
	font-size: 12px;
	line-height: 1.35;
	color: #6b7280;
}
/* Más aire entre título del panel y buscador DT cuando hay leyenda */
.panel-heading + .panel-body > .dt-row-legend:first-child {
	margin-top: 0.15rem;
	margin-bottom: 1.25rem;
}
.panel-body > .dt-row-legend:first-child {
	margin-bottom: 1.25rem;
}
.panel-body > .dt-row-legend + .dataTable_wrapper .dataTables_wrapper > .row:first-child,
.agrupar-embed-dt-scroll > .dt-row-legend + .dataTables_wrapper > .row:first-child {
	margin-top: 0.15rem;
}
.dt-row-legend__item {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	white-space: nowrap;
}
.dt-row-legend__swatch {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 2px;
	flex-shrink: 0;
	border: 1px solid rgba(0, 0, 0, 0.14);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
}
.dt-row-legend__swatch--success { background-color: #dff0d8; border-color: #a8d4a0; }
.dt-row-legend__swatch--danger { background-color: #f2dede; border-color: #d4a5a5; }
.dt-row-legend__swatch--warning { background-color: #fcf8e3; border-color: #edd88a; }
.dt-row-legend__swatch--info { background-color: #d9edf7; border-color: #9ccde0; }
.dt-row-legend__swatch--default {
	background-color: #fff;
	border-color: #c5cacf;
	background-image: linear-gradient(135deg, #fff 0%, #fff 42%, #f5f5f5 42%, #f5f5f5 58%, #fff 58%, #fff 100%);
}
.dt-row-legend__label {
	font-weight: 500;
	letter-spacing: 0.01em;
}

/* listaFilters — toolbar sobria sobre DataTables (escala px fija, no rem/html 10px) */
.lista-filters {
  --lf-control-min-h: 34px;
  --lf-control-radius: 8px;
  --lf-control-inner-radius: 6px;
  --lf-head-h: calc(1.42857143em + 2px + 1.2142857143em);
  margin-bottom: 20px;
  padding: 0;
  border-radius: 8px;
  background: var(--brand-accent-bg, #e8f2f8);
  border: 1px solid var(--brand-accent, #b8d4e8);
  border-left: 3px solid var(--brand-primary-light, #337ab7);
  box-shadow: 0 1px 2px var(--brand-shadow, rgba(40, 96, 144, 0.08));
  overflow: visible;
  font-size: 12px;
  line-height: 1.42857143;
}
.lista-filters.is-filters-collapsed {
  padding: 0;
}
.lista-filters:not(.is-filters-collapsed) {
  padding: 0 16px 16px;
}
.lista-filters.has-filters-active {
  background: var(--brand-accent-soft, #d4e8f4);
  border-left-color: var(--brand-primary, #286090);
  border-color: rgba(51, 122, 183, 0.42);
}
.lista-filters-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 12px 16px;
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--brand-text, #2c3e50);
  font-size: 1em;
  font-weight: 600;
  line-height: 1.42857143;
  text-align: left;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}
.lista-filters.is-filters-collapsed .lista-filters-toggle {
  padding: 12px 16px;
  border-radius: 8px;
}
.lista-filters:not(.is-filters-collapsed) .lista-filters-toggle {
  margin: 0 -16px 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--brand-accent, #b8d4e8);
  border-radius: 8px 8px 0 0;
}
.lista-filters-toggle:hover {
  color: var(--brand-primary-dark, #204d74);
  background: rgba(51, 122, 183, 0.06);
}
.lista-filters-toggle:focus-visible {
  outline: 2px solid var(--brand-primary-light, #337ab7);
  outline-offset: -2px;
}
.lista-filters-toggle-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.lista-filters-toggle-label .fas.fa-filter {
  color: var(--brand-text-muted, #5a6c7d);
  font-size: 1em;
}
.lista-filters.has-filters-active .lista-filters-toggle-label .fas.fa-filter {
  color: var(--brand-primary, #286090);
}
.lista-filters-active-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-left: 2px;
  border-radius: 50%;
  background: var(--brand-primary, #286090);
  box-shadow: 0 0 0 2px var(--brand-focus-ring, rgba(40, 96, 144, 0.2));
}
/* legacy badge (por si queda en DOM viejo) */
.lista-filters-active-badge {
  display: none;
}
.lista-filters-toggle-meta {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
.lista-filters-toggle-hint { display: none !important; }
.lista-filters-toggle-chevron {
  flex-shrink: 0;
  color: var(--brand-text-muted, #5a6c7d);
  font-size: 0.85em;
  transition: transform 0.2s ease, color 0.15s ease;
}
.lista-filters.is-filters-collapsed .lista-filters-toggle-chevron {
  transform: rotate(-90deg);
}
.lista-filters-body {
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: visible;
  max-height: 1400px;
  opacity: 1;
  margin-top: 0;
  transition: max-height 0.25s ease, opacity 0.2s ease;
}
.lista-filters.is-filters-collapsed .lista-filters-body {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  pointer-events: none;
}
.lista-filters-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px 16px;
  align-items: stretch;
}
.lista-filters-section {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
}
/* Chips multilínea: fila superior a ancho completo; controles simples debajo en columnas equilibradas */
.lista-filters-section[data-filter-type="chips"],
.lista-filters-section--chips {
  grid-column: 1 / -1;
  padding-bottom: 4px;
  border-bottom: 1px solid #e8edf2;
}
.lista-filters-section-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  flex: 0 0 var(--lf-head-h);
  gap: 2px;
  width: 100%;
  max-width: 100%;
  height: var(--lf-head-h);
  min-height: var(--lf-head-h);
  max-height: var(--lf-head-h);
  margin: 0 0 8px;
  padding: 0;
  overflow: hidden;
  box-sizing: border-box;
}
.lista-filters-section-label {
  display: block;
  font-size: 1em;
  font-weight: 600;
  color: #333;
  letter-spacing: 0;
  line-height: 1.42857143;
  text-transform: none;
}
.lista-filters-section-hint {
  display: block;
  font-size: 0.85em;
  color: #777;
  font-weight: 400;
  line-height: 1.42857143;
}
.lista-filters-section-hint--placeholder {
  visibility: hidden;
  user-select: none;
  pointer-events: none;
}
.lista-filters-section-body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.lista-filters-section .ts-wrapper {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.lista-filters-section .ts-dropdown { z-index: 1060; }
.lista-filters-section .ts-wrapper .ts-control,
.lista-filters .ts-wrapper.multi.has-items .ts-control {
  width: 100%;
  max-width: 100%;
  min-height: var(--lf-control-min-h);
  margin-left: 0;
  margin-right: 0;
  padding: 8px 12px;
  font-size: inherit;
  line-height: 1.42857143;
  border-radius: var(--lf-control-radius);
  box-sizing: border-box;
}
.lista-filters-text,
select.lista-filters-select {
  width: 100%;
  max-width: 100%;
  min-height: var(--lf-control-min-h);
  margin-left: 0;
  margin-right: 0;
  padding: 8px 12px;
  font-size: inherit;
  line-height: 1.42857143;
  border-radius: var(--lf-control-radius);
  box-sizing: border-box;
}
.lista-filters-chip-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.lista-filters-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 6px 12px;
  border: 1px solid #cfd8dc;
  border-radius: 9px;
  background: #fff;
  color: #34495e;
  font-size: inherit;
  font-weight: 500;
  line-height: 1.42857143;
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
  user-select: none;
}
.lista-filters-chip:hover {
  border-color: #90a4ae;
  background: #f4f7f9;
}
.lista-filters-chip:focus-visible {
  outline: 2px solid #3498db;
  outline-offset: 2px;
}
.lista-filters-chip.is-active {
  border-color: #2980b9;
  background: #eaf4fb;
  color: #1a5276;
  font-weight: 600;
}
.lista-filters-chip--all.is-active {
  border-color: #7f8c8d;
  background: #eef1f4;
  color: #2c3e50;
}
.lista-filters-chip-group.is-none-selected .lista-filters-chip--item {
  opacity: 0.5;
}
.lista-filters-chip-group.is-none-selected .lista-filters-chip--all {
  border-style: dashed;
  color: #95a5a6;
}
.lista-filters-chip--item input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
.lista-filters-chip-swatch {
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
}
.lista-filters-chip-text { white-space: nowrap; }
.lista-filters-period-toggle,
.lista-filters-toggle-group {
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  min-height: var(--lf-control-min-h);
  margin-left: 0;
  margin-right: 0;
  padding: 3px;
  border-radius: var(--lf-control-radius);
  background: #e8edf2;
  border: 1px solid #d5dde8;
  box-sizing: border-box;
}
.lista-filters-period-mode,
.lista-filters-toggle-mode {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  padding: 0 12px;
  border: none;
  border-radius: var(--lf-control-inner-radius);
  background: transparent;
  color: #7f8c8d;
  font-size: inherit;
  font-weight: 600;
  line-height: 1.42857143;
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease;
}
.lista-filters-period-mode.is-active {
  background: #fff;
  color: #1a5276;
  box-shadow: 0 1px 2px rgba(44, 62, 80, 0.08);
}
.lista-filters-period-mode:focus-visible {
  outline: 2px solid #3498db;
  outline-offset: 1px;
}
.lista-filters-date-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
  overflow: visible;
  max-height: 140px;
  opacity: 1;
  transition: max-height 0.22s ease, opacity 0.18s ease, margin 0.18s ease;
}
.lista-filters-date-row.is-collapsed {
  max-height: 0;
  opacity: 0;
  margin-top: 0;
  pointer-events: none;
  overflow: hidden;
}
.lista-filters-date-field { min-width: 0; }
.lista-filters-date-label {
  display: block;
  margin-bottom: 4px;
  font-size: 0.85em;
  font-weight: 600;
  color: #777;
  text-transform: none;
  letter-spacing: 0;
}
.lista-filters-date-field .input-group {
  width: 100%;
  display: table;
  table-layout: fixed;
}
.lista-filters-date-field .input-group .form-control {
  border-top-left-radius: 8px;
  border-bottom-left-radius: 8px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.lista-filters-date-field .input-group-addon {
  width: 42px;
  padding: 8px 10px;
  background: #fff;
  border-color: #cfd8dc;
  color: #7f8c8d;
  cursor: pointer;
  border-top-right-radius: 8px;
  border-bottom-right-radius: 8px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.lista-filters-date-field .form-control {
  border-radius: var(--lf-control-radius);
  font-size: inherit;
  min-height: var(--lf-control-min-h);
  padding: 8px 12px;
}
.lista-filters-toggle-mode.is-active {
  background: #fff;
  color: #1a5276;
  box-shadow: 0 1px 2px rgba(44, 62, 80, 0.08);
}
.lista-filters-toggle-mode:focus-visible {
  outline: 2px solid #3498db;
  outline-offset: 1px;
}
.lista-filters-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
}
.lista-filters-clear {
  min-width: 0;
  min-height: 0;
  padding: 6px 12px;
  border-radius: 8px;
  font-size: inherit;
  font-weight: 600;
  color: #5d6d7e;
}
.lista-filters-apply {
  min-width: 0;
  min-height: 0;
  padding: 6px 12px;
  border-radius: 8px;
  font-size: inherit;
  font-weight: 600;
  box-shadow: none;
}
/* tom-select.css carga después de default.css: anclar escala 12px del contenedor */
.lista-filters .ts-wrapper,
.lista-filters .ts-wrapper .ts-control,
.lista-filters .ts-wrapper .ts-control input,
.lista-filters .form-control,
.lista-filters .btn {
  font-size: inherit;
}
.lista-filters .ts-wrapper .ts-control,
.lista-filters .form-control,
.lista-filters .btn {
  border-radius: var(--lf-control-radius);
}
@media (min-width: 992px) and (max-width: 1199px) {
  .lista-filters-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 991px) {
  .lista-filters-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .lista-filters-section[data-filter-type="chips"],
  .lista-filters-section--chips {
    padding-bottom: 0;
    border-bottom: none;
  }
  .lista-filters-actions {
    flex-direction: column-reverse;
  }
  .lista-filters-apply,
  .lista-filters-clear { width: 100%; }
}
@media (max-width: 480px) {
  .lista-filters-date-row { grid-template-columns: 1fr; }
}
html[data-theme="dark"] .lista-filters {
  background: var(--brand-accent-bg, #2a3a4d);
  border-color: var(--brand-accent-border, rgba(90, 120, 155, 0.65));
  border-left-color: var(--brand-primary-light, #8fc4f4);
  box-shadow: 0 1px 3px var(--brand-shadow, rgba(0, 0, 0, 0.28));
}
html[data-theme="dark"] .lista-filters.has-filters-active {
  background: var(--brand-accent-soft, #2c3d52);
  border-left-color: var(--brand-primary, #7eb8f0);
  border-color: rgba(126, 184, 240, 0.35);
}
html[data-theme="dark"] .lista-filters-toggle { color: var(--brand-text, #eef3f8); }
html[data-theme="dark"] .lista-filters:not(.is-filters-collapsed) .lista-filters-toggle {
  border-bottom-color: var(--brand-accent-border, rgba(90, 120, 155, 0.65));
}
html[data-theme="dark"] .lista-filters-toggle:hover {
  color: var(--brand-primary-dark, #a8d4fa);
  background: rgba(126, 184, 240, 0.1);
}
html[data-theme="dark"] .lista-filters-toggle-label .fas.fa-filter { color: var(--brand-text-muted, #b4c6da); }
html[data-theme="dark"] .lista-filters.has-filters-active .lista-filters-toggle-label .fas.fa-filter {
  color: var(--brand-primary, #7eb8f0);
}
html[data-theme="dark"] .lista-filters-active-dot {
  background: var(--brand-primary, #7eb8f0);
  box-shadow: 0 0 0 2px var(--brand-focus-ring, rgba(120, 184, 240, 0.45));
}
html[data-theme="dark"] .lista-filters-toggle-chevron { color: var(--brand-text-muted, #b4c6da); }
html[data-theme="dark"] .lista-filters-section-label { color: #cbd5e1; }
html[data-theme="dark"] .lista-filters-section-hint,
html[data-theme="dark"] .lista-filters-date-label { color: #94a3b8; }
html[data-theme="dark"] .lista-filters-section .ts-wrapper .ts-control {
  background: #252b38;
  border-color: #3d4a5c;
  color: #e8edf2;
}
html[data-theme="dark"] .lista-filters-chip {
  background: #252b38;
  border-color: #3d4a5c;
  color: #cbd5e1;
}
html[data-theme="dark"] .lista-filters-chip:hover {
  background: #2c3544;
  border-color: #64748b;
}
html[data-theme="dark"] .lista-filters-chip.is-active {
  background: #1a3a52;
  border-color: #5dade2;
  color: #e8edf2;
}
html[data-theme="dark"] .lista-filters-chip--all.is-active {
  background: #2c3544;
  border-color: #64748b;
  color: #e8edf2;
}
html[data-theme="dark"] .lista-filters-period-toggle {
  background: #252b38;
  border-color: #3d4a5c;
}
html[data-theme="dark"] .lista-filters-period-mode { color: #94a3b8; }
html[data-theme="dark"] .lista-filters-period-mode.is-active {
  background: #2c3544;
  color: #e8edf2;
  box-shadow: none;
}
html[data-theme="dark"] .lista-filters-toggle-group {
  background: #252b38;
  border-color: #3d4a5c;
}
html[data-theme="dark"] .lista-filters-toggle-mode { color: #94a3b8; }
html[data-theme="dark"] .lista-filters-toggle-mode.is-active {
  background: #2c3544;
  color: #e8edf2;
}
html[data-theme="dark"] .lista-filters-section[data-filter-type="chips"],
html[data-theme="dark"] .lista-filters-section--chips { border-bottom-color: #2c3544; }
html[data-theme="dark"] .lista-filters-actions { border-top-color: #2c3544; }
html[data-theme="dark"] .lista-filters-clear { color: #94a3b8; }
html[data-theme="dark"] .lista-filters-date-field .form-control {
  background: #252b38;
  border-color: #3d4a5c;
  color: #e8edf2;
}
html[data-theme="dark"] .lista-filters-date-field .input-group-addon {
  background: #1e2430;
  border-color: #3d4a5c;
  color: #94a3b8;
}
html[data-theme="dark"] .lista-filters-text {
  background: #252b38;
  border-color: #3d4a5c;
  color: #e8edf2;
}
html[data-theme="dark"] .lista-filters-section .ts-wrapper .ts-dropdown .option {
  font-size: inherit;
  padding: 8px 12px;
}
