@charset "UTF-8";
/* PALETA DE COLORES BASE - NESPRA */
:root {
  /* BASE COLORS */
  --white: #ffffff;
  --black: #000000;
  /* BLUE SCALE */
  --blue-0: #99A7E6;
  --blue-1: #8A97D8;
  --blue-2: #6B79BC;
  --blue-3: #4B5AA1;
  --blue-4: #2C3C85;
  --blue-5: #0D1D69;
  --blue-6: #0A1754;
  --blue-7: #08113F;
  --blue-8: #050C2A;
  --blue-9: #030615;
  /* CYAN SCALE */
  --cyan-0: #ebfdff;
  --cyan-1: #a2f1ff;
  --cyan-2: #63e4fd;
  --cyan-3: #1ccef4;
  --cyan-4: #00b9e4;
  --cyan-5: #038cb7;
  --cyan-6: #0a7094;
  --cyan-7: #125b78;
  --cyan-8: #144c65;
  --cyan-9: #063146;
  /* BRAND */
  --color-primary: #0D1D69;
  --color-secondary: #00b9e4;
  /* TEXT */
  --text-primary: #063146;
  --text-secondary: #696D80;
  --text-muted: #8991B4;
  --text-link: #4B5AA1;
  /* BACKGROUND */
  --bg-main: #ffffff;
  --bg-alt: #F3F3F3;
  --bg-selected: #D2D5E2;
  /* BORDER */
  --border-default: rgba(0, 0, 0, 0.7);
  /* HOVER / STATES */
  --bg-hover: rgba(238, 239, 246, 1);
  --bg-hover-light: rgba(240, 240, 240, 0.5);
  /* BUTTON */
  --btn-bg: var(--color-primary);
  --btn-hover: var(--blue-3);
  --btn-active: var(--blue-6);
  --btn-text: var(--white);
  /* TABLE */
  --bg-table-header: rgba(210, 213, 226, 0.1);
  /* SUCCESS SCALE */
  --success-50: #f2fbf3;
  --success-100: #e2f6e4;
  --success-200: #c6ecca;
  --success-300: #98dda1;
  --success-400: #74ca80;
  --success-500: #3fa84e;
  --success-600: #2f8a3c;
  --success-700: #286d32;
  --success-800: #24572c;
  --success-900: #1f4826;
  --success-950: #0c2711;
  /* WARNING SCALE */
  --warning-50: #fefbec;
  --warning-100: #fcf5c9;
  --warning-200: #f8e98f;
  --warning-300: #f5d754;
  --warning-400: #f3ca3e;
  --warning-500: #eba615;
  --warning-600: #d0800f;
  --warning-700: #ad5c10;
  --warning-800: #8c4714;
  --warning-900: #743b13;
  --warning-950: #421e06;
  /* ERROR SCALE */
  --error-50: #fef2f2;
  --error-100: #fde3e3;
  --error-200: #fccccd;
  --error-300: #f9a8a9;
  --error-400: #f37678;
  --error-500: #ea5658;
  --error-600: #d52d2f;
  --error-700: #b32224;
  --error-800: #942022;
  --error-900: #7b2122;
  --error-950: #430c0d;
}

.card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  border: none;
  background-clip: border-box;
  word-wrap: break-word;
  overflow: visible !important;
  background: var(--card-bg);
  border-radius: 16px;
  box-shadow: var(--card-shadow);
  border: 1px solid var(--table-glass-border);
}

.card-body {
  flex: 1 1 auto;
  border-radius: 16px;
  width: 100%;
  padding: 1.25rem;
}

.card_lte_info {
  padding: 0px !important;
  border: 1px solid var(--table-glass-border);
  box-shadow: var(--card-shadow);
  border-radius: 16px;
  margin: 0;
}

.card-widget {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  overflow: hidden;
  background-color: var(--bg-card) !important;
}

.card-widget .card-body {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: auto;
  max-height: 100%;
  max-width: 100%;
}

.card_shadow {
  box-shadow: var(--card-shadow);
}

.widget-header {
  padding: 10px;
  border: 0;
  background-color: var(--bg-card);
  min-height: 48px;
}

.title_widget {
  font-weight: 600;
  font-size: 1rem;
  flex-grow: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.card_shadow {
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2);
}

.card-body-tabs {
  padding: 0 !important;
}

/* CARD HEADER — BASE */
.card-header {
  padding: 12px 16px;
  margin-bottom: 0;
  background: transparent;
  border-bottom: 1px solid var(--card-border-soft);
  border-radius: 16px 16px 0 0 !important;
  border-bottom: none !important;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.column-block {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 5px;
}

.row-table-fix {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 1px !important;
  padding-right: 0 !important;
}

.padding_card_icon_battery {
  width: 50px;
  height: 50px;
  gap: 8px;
  align-items: center;
  display: flex;
  padding-right: 20px;
}

.padding_card_icon {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.row_nesgate_info {
  padding-left: 14px;
  padding-bottom: 20px;
}

.card_nesgate_info,
.map_nesgate_info {
  background: var(--surface-glass-bg);
  border: 1px solid var(--card-border);
  box-shadow: var(--card-shadow);
  border-radius: 16px !important;
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0.5rem;
  box-sizing: border-box;
  margin-top: 5px;
}

.card-counter {
  position: relative;
  box-shadow: var(--card-shadow);
  margin: 5px;
  padding: 20px 10px;
  height: 150px;
  border-radius: 5px;
  transition: box-shadow 0.3s ease;
}

.card-counter:hover {
  box-shadow: 5px 5px 20px rgba(131, 128, 128, 0.6);
}

.card-counter.primary {
  background-color: #007bff;
  color: var(--btn-primary-text);
}

.card-counter.danger {
  background-color: var(--state-error);
  color: var(--btn-primary-text);
}

.card-counter.success {
  background-color: var(--state-success);
  color: var(--text-white);
}

.card-counter.info {
  background-color: var(--color-accent);
  color: var(--text-white);
}

.card-counter i {
  font-size: 5em;
  opacity: 0.2;
}

.card-counter .count-numbers,
.card-counter .count-networks,
.card-counter .count-nameModel,
.card-counter .count-name,
.card-counter .count-device {
  position: absolute;
  right: 35px;
  display: block;
}

.card-counter .count-numbers {
  top: 20px;
  font-size: 28px;
}

.card-counter .count-networks {
  top: 20px;
  font-size: 14px;
}

.card-counter .count-nameModel {
  top: 65px;
  font-size: 18px;
  font-style: italic;
  text-transform: capitalize;
  opacity: 0.8;
}

.card-counter .count-name {
  top: 95px;
  font-size: 18px;
  font-style: italic;
  text-transform: capitalize;
  opacity: 0.5;
}

.card-counter .count-device {
  top: 125px;
  font-size: 14px;
  font-style: italic;
  text-transform: capitalize;
  opacity: 0.75;
}

.card-counter[selected] {
  border: 4px solid var(--black);
  transition: border 0.3s ease;
}

.zones,
.parents {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
  background-color: var(--bg-main);
  border: 4px solid var(--black);
  width: 90%;
  max-width: 700px;
  min-height: 75px;
  max-height: 350px;
  overflow-y: auto;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.zones[diselect],
.parents[diselect] {
  opacity: 0;
  visibility: hidden;
}

/* Labels e inputs */
#deviceAssigned h1 {
  margin-bottom: 10px;
  font-weight: 600;
  font-size: 20px;
}

#deviceAssigned input[type=radio],
#deviceAssigned input[type=checkbox] {
  display: none;
}

#deviceAssigned label {
  display: inline-block;
  padding: 10px;
  width: 90px;
  cursor: pointer;
  text-align: center;
  transition: background-color 0.2s ease;
}

#deviceAssigned label:hover,
#deviceAssigned input[type=radio]:checked + label,
#deviceAssigned input[type=checkbox]:checked + label {
  background: var(--bg-selected);
  border-radius: 20%;
}

.card-footer {
  padding: 0.75rem 1.25rem;
}

/* Espaciado */
.no_right_padding {
  padding-right: 10px !important;
}

.no_left_padding {
  padding-left: 6px !important;
}

.align-card-left {
  padding-left: 1rem;
}

.dropdown_datepicker_sensors,
.smallest_blue_text_nesmote_info {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary);
  padding-left: 0;
}

.card-group {
  padding-right: 10px;
  margin-top: 10px;
  gap: 0;
}

.card-group {
  gap: 0;
}

.card-body-tab-nesgates {
  margin-top: 8px;
  padding-left: 10px;
}

#create_actuation_rule_button {
  margin-bottom: 16px;
  display: block;
}

.table-wrapper {
  overflow-x: auto;
  width: 100%;
}

/* Responsive media queries */
@media (max-width: 768px) {
  .card,
  .card_nesgate_info,
  .nesmotes_nesgate_info_card,
  .map_nesgate_info {
    padding: 1rem;
    margin: 1rem 0;
    height: auto;
  }
  .card-counter .count-numbers,
  .card-counter .count-name,
  .card-counter .count-device {
    right: 10px;
    font-size: 16px;
  }
  .card-counter i {
    font-size: 3rem;
  }
  .zones,
  .parents {
    width: 95%;
  }
}
.dropdown_sensor_configuration_options_text:hover {
  color: var(--text-link-hover);
  font-weight: 600;
  background: var(--sidebar-bg-active);
}

.grid-stack {
  border: 1px solid var(--border-gridstack);
  border-radius: 5px;
}

.grid-stack-item-content {
  float: left;
  background-position: center center;
  background-size: cover;
  border-radius: 16px !important;
  box-shadow: var(--card-shadow);
  background: var(--card-bg) !important;
}

.grid-stack > .grid-stack-item > .grid-stack-item-content {
  border-radius: 8px;
  margin: 0;
  position: absolute;
  width: auto;
}

.grid-stack-item-content > .card-widget > .card-header {
  background: transparent !important;
  border: 1px solid transparent;
}

.grid-stack-item-content > .card-widget > .card-header:hover {
  background: var(--bg-header-widget) !important;
  border: 1px solid var(--border-header-widget);
}

.card-group .card {
  border-radius: 16px !important;
}

.card-group .card:not(.card-keep-radius):not(:first-child) {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}

.card-group .card:not(.card-keep-radius):not(:last-child) {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.highcharts-a11y-proxy-button {
  padding-top: 10px;
}

.other_values_graph {
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding-left: 13px;
  font-size: 20px;
  font-weight: 600;
  color: var(--text-primary);
  display: block;
  text-align: center;
}

.nesmote_name_information {
  cursor: pointer;
  width: 100%;
  border: 0px;
  border-color: var(--blue-5) !important;
  border-radius: 8px;
}

.note_network_info {
  cursor: pointer;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  display: block;
}

.tab-licenses {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.nesmote-icon {
  height: 40px !important;
  margin-left: -8px;
  justify-content: center;
}

.battery-icon {
  height: 38px !important;
  justify-content: center;
}

.equal-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.ping_results_box {
  border: 1px solid var(--input-border-filled);
  background: var(--input-bg);
  color: var(--text-primary);
  border-radius: 12px;
  padding: 12px;
  overflow-y: auto;
  min-height: 480px;
  height: 100%;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease, background 0.2s ease;
}

.ping_results_box:active {
  transform: scale(0.995);
}

.padding_card_columns .nesmote-name-wrapper {
  max-width: 100% !important;
  flex-grow: 1;
}

.note-row {
  padding-top: 12px;
  border-top: 1px solid #E0E0E0;
}

.device-uptime-block {
  margin-bottom: 16px;
}

/* Fecha Información*/
.device-uptime-block .col-12 {
  width: 100%;
  padding: 0;
  margin: 0;
  float: none;
}

.device-uptime-block span {
  display: block;
}

/* Etiqueta */
.device-uptime-block .title_network_info,
.device-uptime-block .title_inactive_since {
  font-size: 13px;
  font-weight: 500;
  color: #8a8fa3;
  line-height: 1.2;
}

/* Valor */
.device-uptime-block .ip_network_info {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  margin-top: 2px;
  word-break: break-word;
}

.sensor_draggable {
  background-color: var(--bg-main);
  color: var(--text-primary);
  border-radius: 0.75em;
  padding: 0.5%;
  touch-action: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.form-row {
  margin: 5px;
}

/* MODAL FORM */
/* === NESPRA MODAL SYSTEM === */
.modal-content {
  background: var(--bg-main) !important;
  padding: var(--panel-pad);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: var(--glass-blur-lg);
  border: 1px solid var(--glass-border);
  box-shadow: var(--card-shadow);
  border-radius: 16px;
}

/* Header */
.modal-header {
  background: var(--bg-main);
  backdrop-filter: blur(16px) saturate(140%);
  border-bottom: 1px solid var(--glass-border);
}

/* Body */
.modal-body {
  background-color: var(--bg-main);
  font: var(--ns-b1);
  color: var(--text-primary);
}

/* Footer */
.modal-footer {
  border-top: 1px solid var(--glass-border);
}

/* Title */
.ns-modal-title {
  color: var(--text-heading);
  font-size: 18px;
  font-weight: 600;
}

/* Inputs */
.ns-modal .form-control {
  color: var(--text-primary);
  border: 1px solid rgba(255, 255, 255, 0.12);
  font-size: var(--ns-fs-14);
}

.ns-modal .form-control::-moz-placeholder {
  color: var(--text-muted);
}

.ns-modal .form-control::placeholder {
  color: var(--text-muted);
}

/* LEGACY LABEL  */
/* MODAL FORM LABEL — SYSTEM */
.modal_form_label {
  font-family: var(--ns-font);
  letter-spacing: 0.4px;
  word-wrap: break-word;
  font-size: 13px;
  font-weight: 500;
  line-height: 16px;
  letter-spacing: 0.2px;
  color: var(--text-secondary);
  margin-bottom: 6px;
}

.label_actuation {
  display: block;
  padding-left: 0;
  color: var(--text-primary);
  font-size: var(--ns-label-size);
  font-family: var(--ns-font);
  font-weight: var(--ns-label-weight);
  line-height: var(--ns-label-line);
  letter-spacing: var(--ns-label-ls);
  word-wrap: break-word;
}

/* NEW SYSTEM*/
.ns-modal .ns-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.ns-modal .ns-field__label {
  color: var(--text-primary);
}

.ns-modal .ns-check {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}

/* CARD-BODY CENTRAR CNTENIDO */
.ns-card-centered {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.ns-card-centered {
  min-height: 100%;
}

.card-no-shadow {
  box-shadow: none !important;
}

.card-group-spacing {
  gap: 1rem;
}

.card-highcharts {
  background-color: var(--bg-highcharts);
}

.card-content {
  background-color: var(--bg-surface) !important;
}

.card-col-md-12 .card_smaller_margin_bottom {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  word-wrap: break-word;
  background-clip: border-box;
  border: none !important;
  border-radius: 0.25rem;
}

table.dataTable {
  background-color: var(--bg-card) !important;
  width: auto;
  table-layout: auto;
  margin: 0 auto;
  border-spacing: 0;
  padding-left: 3px;
  padding-right: 3px;
  white-space: nowrap;
}

/* Asegura ancho al 100% */
#maintenance_provisioning_table {
  width: 100% !important;
}

#acc_ftd_table_wrapper,
.table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

#networks_table {
  width: 100% !important;
  min-width: 600px;
}

/*table_body_actuation */
#table_actuation {
  table-layout: auto;
  width: 100%;
  word-break: break-word;
}

#table_actuation td {
  white-space: normal;
  word-break: break-word;
}

#table_actuation th {
  white-space: nowrap;
}

#table_actuation td.table-body-cell:last-child {
  width: 1%;
  white-space: nowrap;
  text-align: center;
}

#networks_table {
  width: 100% !important;
  min-width: 600px;
}

.card-maintenances {
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2);
  border-radius: 8px !important;
}

.col-sm-12 {
  width: 100% !important;
  table-layout: auto !important;
  padding-right: 0px;
}

.title_text_inventory {
  font-family: var(--ns-font);
  font-size: 19px;
  font-weight: 600;
  color: var(--color-primary);
  margin: 10px;
}

.text_inventory {
  font-family: var(--ns-font);
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
  margin: 10px;
}

.table-wrapper-rounded {
  border-radius: 10px;
  overflow: hidden;
  margin-top: 1rem;
}

div.dataTables_scrollBody {
  border-radius: 0 0 10px 10px !important;
  overflow: hidden !important;
}

.table-header-overview {
  background: var(--surface-header-bg);
}

table.dataTable thead th,
th.table-header-text-centered,
th.dt-center,
th.dt-head-center {
  text-align: left !important;
}

.tr-table-overview,
.table-header-overview {
  border-radius: 0;
  border: none !important;
  outline: none;
  box-shadow: none;
  padding: 0px !important;
}

.tr-table-overview {
  line-height: 40px;
  color: var(--text-primary);
  font-size: 14px;
  font-family: "Inter", sans-serif;
  letter-spacing: 0.1px;
  word-wrap: break-word;
  border: 0px;
  border-style: solid;
  border-color: var(--bg-selected);
  margin: 0 !important;
  padding: 0px !important;
}

.dt-container .dt-empty-footer {
  width: 100% !important;
  table-layout: auto;
  /* o fixed si necesitas alinear tamaños */
}

.row {
  display: flex;
  flex-wrap: nowrap;
  flex-wrap: wrap;
  margin-right: -16px !important;
  margin-left: -16px !important;
  border-radius: 0px 0px 8px 8px;
}

.tbody_notification {
  border-radius: 0px 0px 8px 8px;
}

.table-header-overview .table {
  background: rgba(210, 213, 226, 0.15) !important;
  padding: 12px 24px;
  border-radius: 0;
  border: none !important;
  outline: none;
  box-shadow: none;
}

.table-header-overview .dt-column-title {
  color: var(--text-primary);
  font-size: 14px;
  font-family: var(--ns-font);
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0.1px;
  word-wrap: break-word;
}

.table thead th {
  vertical-align: bottom;
  border-bottom: none !important;
  color: var(--text-primary);
}

th,
td {
  border: none;
}

.dt-scroll {
  padding: 1px;
  overflow-x: auto;
  width: 100%;
}

.dt-scroll-body {
  border-radius: 0px 0px 8px 8px;
  overflow-x: auto;
  max-width: 100%;
}

.table td {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.icon-column {
  width: 1%;
  white-space: nowrap;
  text-align: center;
}
.icon-column button,
.icon-column i {
  min-width: auto;
  width: auto;
  padding: 4px;
  margin: 0 2px;
}

.dt-info {
  color: var(--text-muted) !important;
  font-size: 12px;
  font-family: var(--ns-font) !important;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.4px;
  word-wrap: break-word;
  padding-left: 24px !important;
  margin-bottom: 20px;
}

.col-sm-4 .dt-info {
  color: var(--text-muted) !important;
  font-size: 12px;
  font-family: var(--ns-font) !important;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.4px;
  word-wrap: break-word;
  padding-left: 24px !important;
}

table.dataTable th.dt-empty,
table.dataTable td.dt-empty {
  text-align: center;
  vertical-align: top;
  color: var(--text-primary);
  font-size: 12px;
  font-family: var(--ns-font);
  font-weight: 400;
}

.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
  white-space: nowrap;
}

/* Contenedor de la paginación */
.dataTables_wrapper .dataTables_paginate {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  padding: 16px 24px;
  font-family: "Inter", sans-serif;
}

.dt-paging {
  color: var(--color-primary);
  font-size: 12px;
  font-family: var(--ns-font);
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0.4px;
  word-wrap: break-word;
  float: right;
  margin-top: 1%;
  margin-bottom: 1rem;
}

/* Asegura que los encabezados puedan posicionar las flechas */
table.dataTable thead th {
  position: relative;
  overflow: hidden;
}

/* ESTILO BASE */
table.dataTable thead th.dt-orderable-asc::after,
table.dataTable thead th.dt-orderable-desc::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url("../icons/arrowboth.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  right: 8px;
  top: 50%;
  margin-left: 10px;
  transform: translateY(-50%);
  opacity: 0.3;
  transition: opacity 0.2s ease;
}

table.dataTable thead th.dt-orderable-asc:hover::after,
table.dataTable thead th.dt-orderable-desc:hover::after {
  opacity: 1;
  filter: var(--blue-5);
}

/* ORDEN ACTIVO ASCENDENTE */
table.dataTable thead th.dt-ordering-asc::after {
  background-image: url("../icons/flechaup.svg");
  opacity: 1;
  filter: none;
}

/* ORDEN ACTIVO DESCENDENTE */
table.dataTable thead th.dt-ordering-desc::after {
  background-image: url("../icons/flechadown.svg");
  opacity: 1;
  filter: none;
}

.max_width_nesmotes_info {
  max-width: none;
  width: 100%;
}

.seen_check:hover {
  background-image: url("../icons/stepdonehover.svg");
  background-size: cover;
}

.table_info {
  border: none !important;
  border-style: solid;
  border: 1px solid var(--card-border);
  border-radius: 16px !important;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}

.tabs-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 0px;
  margin-bottom: 0rem;
}

.tabs-scroll-container {
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  flex: 1;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0 36px;
}

.tabs-scroll-container::-webkit-scrollbar {
  display: none;
}

.ul_device_tabs {
  display: flex;
  flex-wrap: nowrap !important;
}

.li_device_tab {
  flex: 0 0 auto;
}

.scroll-button {
  position: absolute;
  top: 30%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  background: transparent;
  border: none;
  border-radius: 9999px;
  z-index: 10;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.scroll-button span {
  width: 26px;
  height: 26px;
  background-color: var(--bg-scroll-button);
  box-shadow: 0px 1px 6px rgba(0, 0, 0, 0.3);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto 70%;
}
.scroll-button.left {
  left: 6px;
}
.scroll-button.left span {
  background-image: url(../../assets/icons/previous.svg);
}
.scroll-button.right {
  right: 3px;
}
.scroll-button.right span {
  background-image: url(../../assets/icons/next.svg);
}
.scroll-button:hover span {
  background-color: var(--bg-scroll-button-hover);
}
.scroll-button:focus, .scroll-button:active {
  outline: none;
  box-shadow: none;
}

.table-body-cell a {
  color: var(--text-link);
  text-decoration: underline !important;
}
.table-body-cell a:hover {
  color: var(--text-link-hover) !important;
}

#nesgate_signal_quality_info_table {
  margin-top: 16px !important;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}
#nesgate_signal_quality_info_table thead th:first-child {
  border-top-left-radius: 8px;
}
#nesgate_signal_quality_info_table thead th:last-child {
  border-top-right-radius: 8px;
}
#nesgate_signal_quality_info_table tbody tr:last-child td:first-child {
  border-bottom-left-radius: 8px;
}
#nesgate_signal_quality_info_table tbody tr:last-child td:last-child {
  border-bottom-right-radius: 8px;
}

.notifications_description:focus,
.connection_disconnection_notification_description:focus {
  outline: none !important;
  border-color: var(--blue-5) !important;
}

.connection_disconnection_notification_description {
  border: 0px;
  padding: 0px;
  border-radius: 8px;
}

.table-body-cell-no-wrap {
  white-space: nowrap;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.table_nesmotes_nesgates {
  width: 100%;
  table-layout: auto;
}

.table {
  background-color: var(--surface-glass-bg);
  border-radius: 0;
  width: 100%;
  margin: 0px !important;
}

td {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.table-inventory {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
}

.table-inventory th,
.table-inventory td {
  padding-left: 8px;
  padding-right: 8px;
}

.card .table-inventory {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.table-lorawan {
  padding: 0 !important;
  margin: 0 !important;
  background: var(--bg-main);
  border-radius: 16px !important;
}

#opcua_servers_table {
  width: 100%;
  height: 100%;
  border-right: none;
  border-bottom: none;
  margin: 0px -4px -20px 10px;
  padding: 0px !important;
}
#opcua_servers_table tbody tr td,
#opcua_servers_table thead tr th {
  border-right: none !important;
  border-bottom: none !important;
}
#opcua_servers_table tr:last-child td {
  border-bottom: none !important;
}

.calendar-column {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-left: 1.5rem;
}

.calendar-label {
  margin-bottom: 1;
  font-weight: 600;
  font-size: 18px;
}

.dt-search {
  padding: 10px;
  justify-content: flex-end;
}

/* Columnas de íconos en DataTables */
td.icon-col,
th.icon-col,
td.only-icon,
td.icon-fav {
  width: 56px;
  padding: 4px 6px !important;
  vertical-align: middle;
  white-space: nowrap;
}
td.icon-col a,
td.icon-col button,
td.icon-col span,
th.icon-col a,
th.icon-col button,
th.icon-col span,
td.only-icon a,
td.only-icon button,
td.only-icon span,
td.icon-fav a,
td.icon-fav button,
td.icon-fav span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
td.icon-col img,
td.icon-col svg,
th.icon-col img,
th.icon-col svg,
td.only-icon img,
td.only-icon svg,
td.icon-fav img,
td.icon-fav svg {
  width: 20px;
  height: 20px;
  display: inline-block;
}

td.only-icon {
  min-width: 32px;
  max-width: 40px;
  padding: 4px !important;
}

td.icon-fav {
  max-width: 56px;
  padding: 0 !important;
}
td.icon-fav img {
  display: block;
}

/* Fila de íconos (horizontal) */
.icon-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
}

.icon-col {
  text-align: center;
  padding: 0 !important;
  white-space: nowrap;
}

.icon-col img,
.icon-col svg {
  width: 16px;
  height: 16px;
  display: inline-block;
}

table.dataTable {
  width: 100%;
  margin: 0px auto;
  border-spacing: 0;
  padding-left: 3px;
  padding-right: 3px;
}

table td {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: var(--bg-main);
}

table.dataTable th,
table.dataTable td {
  white-space: nowrap;
}

table.dataTable td:nth-child(5),
table.dataTable td:nth-child(7) {
  max-width: 160px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.status {
  width: 56px;
}

th.table-header-text-centered,
td.table-header-text-centered {
  width: 100px;
  max-width: 100px;
  min-width: 100px;
  text-align: center;
  padding-left: 4px;
  padding-right: 4px;
}

th.col-seen,
td.col-seen {
  width: 100px;
  max-width: 100px;
  min-width: 100px;
  text-align: center;
  padding-left: 4px;
  padding-right: 4px;
}

.status-mod {
  width: 100px;
}

.nesgate_info_table_wrapper {
  overflow-x: hidden;
  padding-right: 0 !important;
}

.col-md-6 {
  position: relative;
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
}

/* Oculta el texto solo dentro de la tabla, no del filtro */
#networks_table td .disconnected-text,
#networks_table td .connected-text,
#nesgates_table td .disconnected-text,
#nesgates_table td .connected-text,
#nesmotes_table td .disconnected-text,
#nesmotes_table td .connected-text {
  position: absolute;
  left: -9999px;
}

#notifications_table td:nth-child(1),
#notifications_table th:nth-child(1) {
  width: 10px !important;
  text-align: center;
}

#inventoryTable th:nth-child(1),
#inventoryTable td:nth-child(1) {
  width: 36px !important;
  padding-left: 0;
  padding-right: 0;
  text-align: center;
}

.table-header {
  background-color: var(--bg-card);
}

#nesgate_info_table tr td {
  padding: 0px;
  border: 0px;
  vertical-align: middle;
  padding-left: 10px;
}

.tr-table-overview {
  line-height: 40px;
  border: 1px;
  border-style: solid;
  border-color: #E4E4E4;
}

.tr-table-popup-leaflet {
  border: 0px !important;
  border-style: solid;
  border-color: #E4E4E4;
  line-height: 20px;
}

.table-header-text-leaflet {
  font-size: 14px;
  font-family: "Inter", sans-serif !important;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
  border: 0px !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
  padding-top: 0px !important;
  padding-bottom: 0px !important;
}

.table-body-cell-leaflet {
  font-size: 12px;
  font-weight: 400;
  border: 0px !important;
  white-space: nowrap;
  padding-left: 10px !important;
  padding-right: 10px !important;
}

.table-body-cell-leaflet-nesgate {
  font-size: 12px;
  font-weight: 400;
  border-left: 0px !important;
  border-top: 0px !important;
  border-bottom: 0px !important;
  white-space: nowrap;
  padding-left: 10px !important;
  padding-right: 10px !important;
}

.map_widget_num_sensors_tooltip {
  font-size: 14px;
  font-family: "Inter", sans-serif !important;
  font-weight: 600;
  color: var(--color-primary);
  border: 0px !important;
  white-space: normal;
  word-wrap: break-word;
  padding-left: 10px !important;
  padding-bottom: 4px !important;
  font-variant-numeric: tabular-nums;
}

.map_widget_num_sensors_for_state_tooltip {
  font-size: 12px;
  font-family: "Inter", sans-serif !important;
  font-weight: 600;
  border: 0px !important;
  white-space: normal;
  word-wrap: break-word;
  padding-left: 10px !important;
  padding-top: 4px !important;
  padding-bottom: 4px !important;
  font-variant-numeric: tabular-nums;
}

.map_widget_device_name {
  font-size: 14px;
  font-family: "Inter" !important;
  font-weight: 500;
  border: 0px !important;
}

.map_widget_timestamp {
  font-size: 12px;
  font-family: "Inter" !important;
  font-weight: 400;
  border: 0px !important;
  white-space: nowrap;
}

.map_widget_sensor_type {
  font-size: 14px;
  font-family: "Inter" !important;
  font-weight: 400;
  border: 0px !important;
}

.map_widget_map_status_text {
  font-size: 14px;
  padding-left: 8px;
  font-family: "Inter" !important;
  font-weight: 400;
  border: 0px !important;
  color: var(--text-secondary);
}

.map_widget_bold_text {
  font-size: 14px;
  font-family: "Inter" !important;
  font-weight: 600;
  border: 0px !important;
}

.tr-table-without-border {
  line-height: 40px;
}

.table thead tr {
  border: 0px;
}

.table tr td {
  padding: 0px;
  vertical-align: middle;
  padding-left: 10px;
}

.table {
  margin-bottom: 0px;
}

.table-header-overview {
  border: 1px solid rgba(210, 213, 226, 0.5);
  border-radius: 8px 8px 0 0;
  overflow: hidden;
}

.table-header-text {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
}

.table-header-small-text {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
}

.table-header-smaller-text-with-wrap {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
}

.table-header-text-centered {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  text-align: center;
  white-space: nowrap;
}

.table-header-text-no-border-blue {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
  border: 0px !important;
}

.table-header-text-no-border-blue-centered {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
  border: 0px !important;
  text-align: center;
}

.table-header-text-no-border-black {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  border: 0px !important;
}

.table-header-text-no-border-black-centered {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  text-align: center;
  white-space: nowrap;
  border: 0px !important;
}

.table-body-cell {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-primary);
}

.table-body-cell-no-wrap {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-primary);
  white-space: nowrap;
}

.table-body-cell-centered {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-primary);
  text-align: center !important;
}

.table-body-cell-right {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-primary);
  text-align: right;
}

.table-body-cell-edit-user-networks {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-primary);
  text-align: right;
  padding-right: 20px !important;
}

.table-body-cell-highlighted {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
  text-align: center;
}

.table-body-cell-warning {
  font-size: 13px;
  font-weight: 400;
  color: #f3ca3e;
}

.table-body-cell-danger {
  font-size: 13px;
  font-weight: 400;
  color: #ea5658;
}

.table_link {
  color: var(--text-link);
  font-size: 14px;
  font-weight: 400;
  text-decoration: underline;
  cursor: pointer;
}

.table_link:hover {
  text-decoration: none;
  filter: brightness(1.15);
  transform: translateY(-1px);
  transition: all 0.18s ease;
}

.table_link_bold {
  font-size: 15px;
  font-weight: 600;
  text-decoration: underline;
  color: var(--color-primary);
}

.max_width_nesmotes_info {
  max-width: 745px;
}

.license_status_end {
  background-color: var(--state-error) !important;
}

.license_status_30_days_left {
  background-color: #ff9900 !important;
}

.license_status_60_days_left {
  background-color: var(--state-warning) !important;
}

.table tr td {
  padding-top: 14px;
  padding-bottom: 14px;
}

/* TABLES / DATATABLES  */
.card.padding-for-card {
  background: var(--surface-glass-bg);
  border-radius: var(--table-radius);
  border: 1px solid var(--table-glass-border);
  overflow: hidden;
}

.dt-container {
  padding-right: 16px;
  box-sizing: border-box;
}

.col-sm-12 {
  padding-right: 0;
}

.barra-titulo {
  background: var(--card-bg);
  border-bottom: 1px solid var(--table-border-soft);
  padding: var(--table-header-padding);
  border-radius: 16px 16px 0px 0px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  width: 100%;
  box-sizing: border-box;
}

.barra-titulo__izquierda {
  display: flex;
  align-items: center;
}

.barra-titulo__derecha {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}

.barra-titulo .titulo {
  font-family: var(--ns-font);
  font-size: var(--font-size-body1);
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
}

.buscador {
  background: var(--table-search-bg);
  border-radius: var(--table-search-radius);
  border: 1px solid transparent;
  padding: var(--table-search-padding);
  display: flex;
  height: 40px;
  align-items: center;
  gap: var(--table-search-gap);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.buscador:hover {
  border-color: var(--input-border-hover) !important;
}

.buscador:focus-within {
  border-color: var(--input-border-focus) !important;
}

.buscador input:-webkit-autofill,
.buscador input:-webkit-autofill:hover,
.buscador input:-webkit-autofill:focus,
.buscador input:-webkit-autofill:active,
.buscador-panel input:-webkit-autofill,
.buscador-panel input:-webkit-autofill:hover,
.buscador-panel input:-webkit-autofill:focus,
.buscador-panel input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 1000px transparent inset !important;
  -webkit-text-fill-color: var(--input-text) !important;
  caret-color: var(--primary);
  -webkit-transition: background-color 9999s ease-in-out 0s;
  transition: background-color 9999s ease-in-out 0s;
}

.buscador svg {
  color: var(--icon-secondary);
}

.buscador input.form-control {
  background: transparent !important;
  border: none;
  box-shadow: none;
  color: var(--text-primary);
}

.table.dataTable {
  background: transparent;
  border-spacing: 0 var(--table-row-gap);
}

.thead.table-header-overview th {
  background: var(--table-th-bg);
  color: var(--table-th-text);
  font-weight: 600;
  border: none;
  padding: var(--table-th-padding);
}

.tbody tr {
  background: var(--table-row-bg);
  border-radius: var(--table-row-radius);
  transition: background 0.15s ease, transform 0.12s ease;
}

.tbody tr:hover {
  background: var(--table-row-bg-hover);
  transform: translateY(-1px);
}

.tbody td {
  padding: var(--table-cell-padding);
  color: var(--table-cell-text);
  border: none;
}

.table.dataTable tbody tr.selected {
  background: var(--table-row-bg-selected) !important;
}

/* DATATABLES – PAGINATION  */
div.dt-container .dt-paging {
  color: var(--text-primary);
  float: right;
  margin-top: 12px;
  margin-bottom: 1rem;
  display: flex;
  justify-content: flex-end;
  padding-right: 6px;
}
div.dt-container .dt-info {
  margin-top: 1rem;
}
div.dt-container .dt-paging nav {
  display: flex;
  gap: 10px;
  align-items: center;
  background: var(--table-pagination-bg);
  padding: 6px;
  border-radius: 10px;
  border: 1px solid var(--table-pagination-border);
}
div.dt-container .dt-paging-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: var(--dt-pagination-radius);
  color: var(--dt-pagination-text) !important;
  font-weight: 500;
  box-shadow: none !important;
  transition: background 0.15s ease, color 0.15s ease, transform 0.12s ease;
}
div.dt-container .dt-paging nav .ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 6px;
  line-height: 1;
  color: var(--dt-pagination-text);
  opacity: 0.6;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
div.dt-container .dt-paging-button img.app-icon {
  width: 14px;
  height: 14px;
  opacity: 0.8;
}
div.dt-container .dt-paging-button:not(.disabled):not(.current):hover {
  background: var(--dt-pagination-hover-bg) !important;
  color: var(--dt-pagination-active-text) !important;
  font-weight: 600;
  transform: translateY(-1px);
}
div.dt-container .dt-paging-button.current {
  background: var(--dt-pagination-active-bg) !important;
  border-color: var(--dt-pagination-border) !important;
  color: var(--dt-pagination-active-text) !important;
  font-weight: 600;
  border-radius: var(--dt-pagination-radius);
}
div.dt-container .dt-paging-button.current:hover {
  background: var(--dt-pagination-active-bg) !important;
  border-radius: var(--dt-pagination-radius);
}
div.dt-container .dt-paging-button:active {
  background: var(--dt-pagination-hover-bg) !important;
  transform: none;
}
div.dt-container .dt-paging-button.current:active {
  background: var(--dt-pagination-active-bg) !important;
}
div.dt-container .dt-paging-button.disabled,
div.dt-container .dt-paging-button.disabled:hover,
div.dt-container .dt-paging-button.disabled:active {
  opacity: 0.4;
  cursor: not-allowed;
  background: transparent !important;
  color: var(--text-muted) !important;
  transform: none;
  box-shadow: none;
}
div.dt-container .dt-paging-button:focus {
  outline: none;
}
div.dt-container .dt-paging-button:focus-visible {
  outline: 1px solid var(--dt-pagination-border);
  outline-offset: 1px;
}

/* Scroll DataTables */
.dt-scroll-body,
.dataTables_scrollBody {
  overflow: auto;
}
.dt-scroll-body::-webkit-scrollbar,
.dataTables_scrollBody::-webkit-scrollbar {
  height: 8px;
  width: 8px;
}
.dt-scroll-body::-webkit-scrollbar-track,
.dataTables_scrollBody::-webkit-scrollbar-track {
  background: var(--scroll-track);
}
.dt-scroll-body::-webkit-scrollbar-thumb,
.dataTables_scrollBody::-webkit-scrollbar-thumb {
  background-color: var(--scroll-thumb);
  border-radius: 8px;
  -webkit-transition: background-color 0.15s ease;
  transition: background-color 0.15s ease;
}
.dt-scroll-body::-webkit-scrollbar-thumb:hover, .dt-scroll-body::-webkit-scrollbar-thumb:active,
.dataTables_scrollBody::-webkit-scrollbar-thumb:hover,
.dataTables_scrollBody::-webkit-scrollbar-thumb:active {
  background-color: var(--scroll-thumb-hover);
}

.widget-type {
  padding: 20px;
  margin: auto;
  padding-top: 0;
  overflow-x: hidden;
  position: relative;
  width: 100%;
  height: auto;
  max-height: 100%;
}

.table_widget_panel {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  border-radius: 12px;
  table-layout: auto !important;
  border-collapse: collapse !important;
  font-family: "Inter", sans-serif;
  border-top: none !important;
  border-bottom: none;
  margin: 0 !important;
}
.table_widget_panel thead tr {
  background: var(--surface-header-bg);
}

.table_widget_panel th,
.table_widget_panel td {
  white-space: nowrap;
  padding: 8px 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 220px;
}

.table_widget_panel thead th:focus,
.table_widget_panel thead th:active,
.table_widget_panel thead th {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

/* Encabezados */
.table_widget_panel thead,
.table_widget_panel thead tr,
.table_widget_panel thead th,
.table_widget_panel .dt-column-header {
  border-top: none !important;
  border-bottom: none;
  box-shadow: none !important;
}

/* DataTables scroll */
.dataTables_scroll {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
}

.dataTables_wrapper {
  width: 100%;
  height: auto !important;
  transition: none !important;
}

.dataTables_scrollBody {
  overflow-x: auto;
  overflow-y: visible;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: none;
}

.dataTables_scrollBody table,
.dataTables_scrollHeadInner table {
  table-layout: auto !important;
}

/* Forzar ancho total en scroll */
.dt-scroll-headInner,
.dataTables_scrollBody table {
  min-width: 100% !important;
}

/* Contenedor principal del header */
.dt-column-header {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 0px;
  width: 100%;
}

.dtcc-button-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2px;
  color: #a4a9c5;
  font-size: 14px;
  border-radius: 4px;
  cursor: pointer;
  outline: none;
  box-shadow: none;
}

.dtcc-button-icon:hover {
  border-color: #0D1D69;
  background-color: rgb(238, 239, 246) !important;
  color: var(--color-primary);
  border: 2px solid #0D1D69;
  outline: none !important;
  box-shadow: none !important;
}

table.dataTable span.dtcc button.dtcc-button,
table.dataTable span.dtcc button.dtcc-button:focus,
table.dataTable span.dtcc button.dtcc-button:active,
table.dataTable span.dtcc button.dtcc-button:focus-visible {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

button.dtcc-button-icon:focus-visible,
button.dtcc-button-icon::-moz-focus-inner,
.dtcc-button-icon:active {
  color: var(--color-primary);
  outline: none !important;
  box-shadow: none !important;
}

.dtcc-button {
  font-size: 12px;
  font-family: var(--ns-font);
}

/* botón search*/
.dtcc-dropdown,
.dtcc-search_active {
  position: relative !important;
  z-index: 1000;
  background: var(--bg-main);
  border-radius: 10px;
  padding: 12px;
  min-width: 220px;
  transition: none !important;
}

.dtcc-search_active input,
.dtcc-search_active select {
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 14px;
  width: 100%;
  max-width: 100%;
}

.dtcc-force-visible {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

/* Dropdown de filtro */
.dtcc-dropdown {
  position: absolute !important;
  z-index: 9999;
  max-width: 300px;
  width: -moz-max-content;
  width: max-content;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  border-radius: 10px;
  padding: 12px;
  transition: none !important;
}

/* Contenedor del th */
.table_widget_panel th {
  padding: 0 8px;
  white-space: nowrap;
}

/* botón de ffiltro a la derecha */
.column-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Oculta íconos de order en la tabla */
.dtcc-button_order {
  display: none !important;
}

div.dtcc-dropdown {
  background: var(--bg-surface);
  border: 1px solid var(--card-border);
  z-index: 1000;
  border: none;
}

.dtcc-button-text {
  color: var(--text-primary);
}

div.dtcc-dropdown button.dtcc-button:hover {
  background-color: var(--sidebar-bg-active);
}

/*Table widget Config */
#grouping_table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

/* Drag column */
#grouping_table td.reorder {
  cursor: move;
  text-align: center;
  font-size: 18px;
  font-weight: 400;
}

.drag-handle {
  cursor: grab;
  color: var(--color-primary);
  font-size: 14px;
  text-align: center;
  font-weight: 400;
  width: 30px;
  min-width: 30px;
  max-width: 35px;
  opacity: 0.6;
}

tr:hover .drag-handle {
  opacity: 1;
}

/* Column widths */
/* Orden */
#grouping_table th.col-order,
#grouping_table td.col-order {
  width: 30px;
  min-width: 30px;
  max-width: 30px;
  text-align: center;
}

.col-order {
  width: 1%;
  white-space: nowrap;
}

/* Sensor */
#grouping_table th.col-sensor,
#grouping_table td.col-sensor {
  width: 80px;
  max-width: 80px;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#grouping_table select {
  width: 100%;
  max-width: 90px;
}

#grouping_table input {
  width: 100%;
  max-width: 110px;
}

#grouping_table th,
#grouping_table td {
  padding: 6px 8px;
}

.table-hover {
  color: var(--text-link-hover);
}

.col-type {
  width: 120px;
}

.col-name {
  width: 140px;
}

/* Table typography */
#grouping_table th {
  font-weight: 600;
  font-size: 13px;
}

#grouping_table td {
  vertical-align: middle;
}

/* Inputs */
#grouping_table select {
  width: 100%;
  max-width: 110px;
}

#grouping_table input {
  width: 100%;
  max-width: 120px;
}

/* ===== Card header ===== */
.card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: none;
  padding-bottom: 12px;
}

.grouping-title {
  display: flex;
  flex-direction: column;
}

.grouping-title span {
  font-size: 12px;
  color: var(--text-muted);
}

/* ===== Dropdown selector ===== */
.grouping-selector {
  background-color: transparent !important;
  font-weight: 600;
  font-size: 14px;
  color: var(--color-primary);
  padding: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.grouping-selector::after {
  border: 1px solid var(--icon-color);
  border-width: 0 1px 1px 0;
  display: inline-block;
  padding: 3px;
  transform: rotate(45deg);
  margin-left: 8px;
  flex-shrink: 0;
}

.grouping-selector:hover,
.grouping-selector:focus,
.grouping-selector:active {
  text-decoration: none;
  color: var(--color-primary);
  box-shadow: none;
}

.dropdown-menu {
  min-width: 220px;
}

.dropdown-item {
  cursor: pointer;
}

.dropdown-item:hover {
  background-color: var(--bg-selected);
}

#grouping_table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

/* Compact spacing */
#grouping_table th,
#grouping_table td {
  padding: 6px 8px;
  vertical-align: middle;
}

/* Order column */
#grouping_table th.col-order,
#grouping_table td.col-order {
  width: 30px;
  min-width: 30px;
  max-width: 30px;
  text-align: center;
}

/* Sensor column */
#grouping_table th.col-sensor,
#grouping_table td.col-sensor {
  width: 100px;
  max-width: 100px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.btn.dropdown-toggle::after {
  border: 1px solid var(--icon-color);
  border-width: 0 1px 1px 0;
  display: inline-block;
  padding: 3px;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  margin-left: 2%;
}

#grouping_table_wrapper {
  padding-right: 0 !important;
}

div.dt-container.dt-empty-footer tbody > tr:last-child > * {
  border-bottom: none;
}

.grouping-option {
  font-size: 14px;
}

.reorder {
  color: var(--icon-color);
}

/* Agrupación fila */
#grouping_table tbody tr.grouping-main-row > td {
  background: var(--chip-email-bg);
  color: var(--text-bluedark);
  font-weight: 600;
}

#grouping_table tbody tr.grouping-main-row > td:first-child {
  border-left: 4px solid var(--icon-active);
}

/* BOTÓN TABLA WIDGET */
/* CONTENEDOR DEL DROPDOWN */
.widget-type .table-actions .dropdown {
  position: relative; /* 🔥 CLAVE */
}

/* DROPDOWN */
.widget-type .table-actions .dropdown-menu {
  position: absolute !important;
  top: 100% !important; /* debajo del botón */
  right: 0 !important; /* alineado a la derecha */
  left: auto !important;
  min-width: auto;
  transform: none !important;
  margin-top: 6px;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  z-index: 9999;
}

.widget-type .dt-scroll {
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  overflow: hidden;
  background: var(--bg-surface, #fff);
}
.widget-type .table-actions {
  position: static;
  top: 12px;
  right: 12px;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.widget-type .btn-hamburger {
  background-color: transparent;
  border: none;
  cursor: pointer;
  padding: 6px 8px;
  border-radius: 8px;
  transition: all 0.2s ease;
  color: var(--icon-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
}
.widget-type .btn-hamburger:hover {
  background: var(--bg-hover, #f5f5f5);
  border-color: var(--color-primary);
  color: var(--text-link-hover);
}
.widget-type .dropdown-menu {
  font-size: 14px;
  font-weight: 400;
  right: 0 !important;
  left: auto !important;
  margin-top: 6px;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  color: var(--text-primary);
}
.widget-type .dropdown-item:hover {
  background: var(--bg-hover);
  color: var(--text-link-hover);
  font-weight: 600;
}

/* Re diseño*/
.ns-daterangepicker {
  background-color: var(--bg-main);
  border: 1px solid var(--card-border);
  border-radius: 16px;
  box-shadow: var(--card-shadow);
}

.ns-daterangepicker .drp-calendar,
.ns-daterangepicker .drp-calendar.left,
.ns-daterangepicker .drp-calendar.right {
  background: transparent;
}

.ns-daterangepicker .calendar-table,
.ns-daterangepicker .calendar-time,
.ns-daterangepicker .ranges {
  background: transparent !important;
}

.ns-daterangepicker .ranges li:hover {
  background: var(--bg-hover);
}

.ns-daterangepicker td.in-range::before {
  background: var(--bg-selected);
}

.ns-daterangepicker .drp-calendar.left {
  border-left: none;
}

.ns-daterangepicker .drp-calendar.right {
  border-left: none;
}

.daterangepicker td.off,
.daterangepicker td.off.in-range,
.daterangepicker td.off.start-date,
.daterangepicker td.off.end-date {
  background: transparent;
  border-color: transparent;
  color: var(--text-muted);
}

.cancelBtn {
  border-color: var(--btn-text-color);
  color: var(--btn-secondary-text);
  border-radius: 8px;
  font-size: 12px;
  font-family: var(--ns-font);
  font-weight: 700;
  line-height: 20px;
  letter-spacing: 0.25px;
  word-wrap: break-word;
}

.cancelBtn:hover {
  background-color: var(--bg-hover) !important;
  border-color: var(--btn-primary-bg);
}

.applyBtn {
  background-color: var(--btn-primary-bg);
  color: var(--dp-primary-text);
  border-radius: 8px;
  border-color: var(--btn-primary-bg);
}

.applyBtn:hover {
  background-color: var(--btn-primary-bg-hover);
}

.daterangepicker .calendar-table th,
.daterangepicker .calendar-table td {
  color: var(--text-primary);
  font-size: 12px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0.1px;
  text-align: center;
  vertical-align: middle;
  min-width: 30px;
  width: 30px;
  cursor: pointer;
  border-radius: 0;
}

.daterangepicker .ranges li.active {
  background: var(--bg-selected);
  color: var(--text-primary);
}

.daterangepicker td.available:hover,
.daterangepicker th.available:hover {
  background-color: var(--dp-hover, var(--bg-hover));
  color: var(--color-accent);
}

.daterangepicker select.monthselect,
.daterangepicker select.yearselect {
  font-size: 12px;
  padding: 1px;
  height: auto;
  margin: 0;
  cursor: default;
}

.daterangepicker select.monthselect {
  margin-right: 2%;
  width: 56%;
}

.daterangepicker select.yearselect {
  width: 40%;
}

.daterangepicker select.hourselect,
.daterangepicker select.minuteselect,
.daterangepicker select.secondselect,
.daterangepicker select.ampmselect {
  width: 50px;
  margin: 0 auto;
  padding: 2px;
  font-size: 12px;
  outline: 0;
  background-color: var(--input-bg);
  border: 1px solid var(--input-border-default);
  color: var(--input-text);
}

.daterangepicker select.hourselect:hover,
.daterangepicker select.minuteselect:hover,
.daterangepicker select.secondselect:hover,
.daterangepicker select.ampmselect:hover {
  border-color: var(--input-border-hover);
}

.daterangepicker select.hourselect:focus,
.daterangepicker select.minuteselect:focus,
.daterangepicker select.secondselect:focus,
.daterangepicker select.ampmselect:focus {
  border-color: var(--input-border-focus);
  box-shadow: none;
}

.daterangepicker .calendar-time {
  text-align: center;
  margin: 4px auto 0 auto;
  line-height: 30px;
  position: relative;
}

.daterangepicker .calendar-table .next span, .daterangepicker .calendar-table .prev span {
  color: var(--text-white);
  border: solid var(--icon-active);
  border-width: 0 2px 2px 0;
  border-radius: 0;
  display: inline-block;
  padding: 3px;
}

.daterangepicker .calendar-time select.disabled {
  color: #ccc;
  cursor: not-allowed;
}

.daterangepicker .drp-buttons {
  clear: both;
  text-align: right;
  padding: 8px;
  display: none;
  line-height: 12px;
  vertical-align: middle;
}

.daterangepicker .drp-buttons .btn {
  padding-left: 16px;
  padding-right: 16px;
  padding-top: 8px;
  padding-bottom: 8px;
  border-radius: 360px;
  justify-content: center;
  align-items: center;
  gap: 8px;
  display: inline-flex;
  margin-left: 8px;
  font-size: 12px;
  font-weight: bold;
  padding: 4px 8px;
}

.daterangepicker.show-ranges .drp-calendar.left {
  border-left: 1px solid var(--table-glass-border);
}

.daterangepicker .ranges {
  float: none;
  text-align: left;
  margin: 0;
}

.daterangepicker .ranges ul {
  list-style: none;
  padding: 0 !important;
  width: 100%;
}

.daterangepicker .ranges li {
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0.1px;
  word-wrap: break-word;
  padding: 8px 12px;
  cursor: pointer;
}

/*  Larger Screen Styling */
@media (min-width: 564px) {
  .daterangepicker {
    width: auto;
  }
  .daterangepicker.single .ranges ul {
    width: 100%;
  }
  .daterangepicker.single .drp-calendar.left {
    clear: none;
  }
  .daterangepicker.single.ltr .ranges,
  .daterangepicker.single.ltr .drp-calendar {
    float: left;
  }
  .daterangepicker.single.rtl .ranges,
  .daterangepicker.single.rtl .drp-calendar {
    float: right;
  }
  .daterangepicker.ltr {
    direction: ltr;
    text-align: left;
  }
  .daterangepicker.ltr .drp-calendar.left {
    clear: left;
    margin-right: 0;
  }
}
@media (min-width: 730px) {
  .daterangepicker .ranges {
    width: auto;
  }
  .daterangepicker.ltr .ranges {
    float: left;
  }
  .daterangepicker.rtl .ranges {
    float: right;
  }
  .daterangepicker .drp-calendar.left {
    clear: none !important;
  }
}
/* BASE CELDAS (Figma) */
.daterangepicker td {
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  line-height: 24px;
  font-size: 12px;
  padding: 0;
  text-align: center;
  position: relative;
  letter-spacing: 0.25px;
  position: relative;
  z-index: 1;
}

.daterangepicker td span {
  position: relative;
  z-index: 1;
}

/* Eliminar fondos legacy */
.daterangepicker td.in-range,
.daterangepicker td.active {
  background: transparent !important;
  border-radius: 0 !important;
}

.daterangepicker td.in-range::before {
  content: "";
  position: absolute;
  inset: 4px 0;
  background: var(--bg-selected);
  z-index: -3;
  pointer-events: none;
}

/* Inicio del rango */
.daterangepicker td.start-date.in-range::before {
  left: 50%;
  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px;
}

/* Fin del rango */
.daterangepicker td.end-date.in-range::before {
  right: 50%;
  border-top-right-radius: 16px;
  border-bottom-right-radius: 16px;
}

.daterangepicker td.start-date::after,
.daterangepicker td.end-date::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 24px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: var(--btn-primary-bg);
  color: var(--text-white);
  border-radius: 50%;
  z-index: -1;
  pointer-events: none;
}

.daterangepicker td.start-date,
.daterangepicker td.end-date {
  color: #F6F7F9 !important;
}

/* HOY (BORDE) */
.daterangepicker td.today::after {
  content: "";
  position: absolute;
  border: 1px solid var(--color-accent);
  width: 24px;
  height: 24px;
  border-radius: 9999px;
  text-align: center;
  justify-content: center;
  display: flex;
  flex-direction: column;
  font-size: 12px;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0.25px;
  word-wrap: break-word;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -2;
  pointer-events: none;
}

.daterangepicker td.end-date::before {
  z-index: -2;
}

.daterangepicker {
  right: auto !important;
  transform: none !important;
}

.daterangepicker td.available:hover {
  border-radius: 20px;
}

.daterangepicker .drp-buttons .btn {
  margin-left: 8px;
  font-size: 12px;
  font-weight: bold;
  padding: 0px 8px;
}

.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show > .btn-primary.dropdown-toggle .applyBtn {
  color: var(--text-white);
  background-color: #0D1D69;
  border-color: #0D1D69 !important;
  font-family: var(--ns-font);
}

.btn-primary.focus,
.btn-primary:focus {
  border-color: var(--btn-primary-white-border) !important;
}

.applyBtn {
  color: var(--btn-primary-white-bg);
  background-color: var(--btn-primary-bg) !important;
  border-radius: 8px;
  box-shadow: none !important;
  border-color: var(--btn-primary-bg) !important;
}

.applyBtn:hover {
  background-color: var(--btn-primary-bg-hover);
  border-color: var(--btn-primary-bg-hover);
}

.daterangepicker select {
  margin: 0 auto;
  height: 30px;
  width: 30px;
  background-color: var(--bg-main);
  border: 1px solid var(--card-border);
  padding: 2px;
  outline: 0;
  font-size: 12px;
}

.daterangepicker tr td.in-range:first-child::before {
  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px;
}

.daterangepicker tr td.in-range:last-child::before {
  border-top-right-radius: 16px;
  border-bottom-right-radius: 16px;
}

/* Continuacion select */
.daterangepicker td.start-date::before {
  content: "";
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 50%;
  right: -3px;
  background: var(--bg-selected);
  z-index: -2;
}

.daterangepicker td.end-date::before {
  content: "";
  position: absolute;
  top: 14%;
  bottom: 4px;
  left: -3px;
  right: 50%;
  background: var(--bg-selected);
  z-index: -2;
}

:root {
  --ns-font: 'Inter', sans-serif;
}

.body {
  font-family: var(--ns-font);
  margin: 0;
  background-color: var(--bg-surface) !important;
}

.icon {
  color: var(--icon-color) !important;
}

html,
body {
  background-color: var(--bg-surface);
  min-height: 100vh;
  margin: 0;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.layout-wrapper {
  flex: 1;
}

img {
  vertical-align: middle;
  border-style: none;
}

.h2 {
  font-family: "Inter", sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--text-primary);
  margin: 10px;
}

#fullscreen_div::backdrop {
  background-color: var(--bg-fullscreen);
}

.sensor_draggable {
  background-color: var(--bg-main);
  color: var(--text-primary);
  border-radius: 0.75em;
  padding: 0.5%;
  touch-action: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.h1-crear-org {
  text-align: center;
  color: var(--action-primary);
}

#div-button-next {
  text-align: right;
  padding-top: 10px;
}

#inputNetwork {
  max-width: 100%;
  display: inline;
}

#label-check-networks:hover {
  cursor: pointer;
  color: var(--action-primary);
}

.delete-network:hover {
  cursor: pointer;
}

/* Hover scrollbar*/
::-webkit-scrollbar-thumb:hover {
  background-color: var(--scroll-thumb-hover);
}

/*ICON CLOSE */
.icon-close-modal {
  width: 20px;
  height: 20px;
  opacity: 0.7;
  cursor: pointer;
}

.dismiss_modal:hover .icon-close-modal {
  color: var(--icon-color);
  opacity: 1;
  transform: scale(1.1) rotate(90deg);
}

.dismiss_modal:active .icon-close-modal {
  transform: scale(0.9) rotate(90deg);
  color: var(--icon-color);
  opacity: 0.8;
}

.dismiss_modal:focus {
  outline: none;
}

.dismiss_modal:focus .icon-close-modal {
  border-radius: 50%;
}

/* EVERYTHING HERE IS USED IN THE NEW STYLE */
a {
  color: var(--text-link);
}

a:hover {
  color: var(--text-link-hover);
}

/* NAV */
ol {
  display: flex;
  align-items: center;
}

/* OTHERS */
/* BOOTSTRAP TOGGLE CUSTOM STYLE */
.toggle {
  border-color: var(--bg-selected);
}

.toggle-on {
  background-color: #0D1D69;
}

.nespra_logo_in_card {
  margin-bottom: 5%;
}

.form-inline-navbar {
  margin-bottom: 0px;
}

/* NEW OTHERS */
.table_border {
  border: 1px solid rgb(105, 109, 128);
}

.table_border_left {
  border-left: 1px solid rgba(0, 0, 0, 0.15);
}

.table_border_right {
  border-right: 1px solid rgba(0, 0, 0, 0.15);
}

/* MEDIA QUERY FOR COMMON LAPTOPS */
@media (max-width: 1600px) {
  .div-overview-text-donuts {
    font-size: 16px !important;
    margin-left: 45px;
  }
  .other_values_graph {
    font-size: 12px;
  }
  .padding_card_icon {
    padding-right: 10px;
  }
  .sensor_description_input {
    width: 60%;
  }
  .status_nesgate_info {
    font-size: 13px;
  }
  .smallest_blue_text_nesmote_info {
    font-size: 10px;
  }
  .small_blue_text_nesmote_info {
    font-size: 16px;
  }
  .smaller_last_value_graph {
    font-size: 16px;
  }
  .smallest_last_value_graph {
    font-size: 10px;
  }
  .smaller_other_values_graph {
    font-size: 8px;
  }
  .smallest_other_values_graph {
    font-size: 10px;
  }
  .total_value_graph {
    font-size: 20px;
  }
  .units_graph {
    font-size: 10px;
  }
  .deveui_text {
    font-size: 14px;
  }
  .title_inactive_since {
    font-size: 12px;
  }
  #button_row_sim_nesgate {
    margin-top: 180px !important;
  }
  #max_alert, #min_alert, #max_alarm, #min_alarm, #alarm_input_email, #alert_input_email,
  #alarm_input_phone, #alert_input_phone, #alert_add_email_button, #alert_add_phone_button,
  #alarm_add_email_button, #alarm_add_phone_button {
    font-size: 12px;
  }
}
/* MEDIA QUERY FOR TABLETS */
@media (max-width: 769px) {
  /* SHOW THE HIDE/SHOW VNAV ICON, HIDE THE VNAV AND EXPAND CONTENT*/
  #expand_vnav_icon {
    display: block !important;
  }
  #sidebar {
    margin-left: -270px;
    padding-bottom: 80px;
  }
  #content {
    width: 100%;
    margin-left: 0px;
    margin-right: 0px !important;
    margin-bottom: 0px !important;
    margin-top: 120px !important;
  }
  .canvasDonut {
    width: 132px !important;
    height: 72px !important;
  }
  .navbar-brand {
    display: none;
  }
  .navbar-brand-mobile {
    display: block;
  }
  .div-overview-text-donuts {
    font-size: 10px;
    margin-left: 35px !important;
  }
  #row_donuts {
    top: 560px;
  }
  #container_column_map {
    width: 150px;
    height: 560px;
  }
  .top-nav {
    height: 120px;
  }
  .vertical-nav {
    top: 120px !important;
  }
  .footer_text {
    font-size: 12px;
  }
  .font_size_widget_value {
    font-size: 14vw !important;
  }
  .font_size_widget_units {
    font-size: 8vw !important;
  }
}
/* MEDIA QUERY FOR MOBILES */
@media (max-width: 500px) {
  .mobile_image_logo_nespra_office {
    max-width: 325px;
    display: block !important;
  }
  .big_image_logo_nespra_office {
    display: none;
  }
  .mobile_image_logo_orbita_office {
    display: block;
  }
  .big_image_logo_orbita_office {
    display: none;
  }
  .card_demo_office {
    width: 100%;
  }
  .font_size_widget_value {
    font-size: 14vw !important;
  }
  .font_size_widget_units {
    font-size: 8vw !important;
  }
}
/* MEDIA QUERY FOR MOBILES */
@media (max-width: 450px) {
  .canvasDonut {
    width: 99px !important;
    height: 54px !important;
  }
  .div-overview-text-donuts {
    font-size: 10px !important;
    margin-left: 28px !important;
  }
  #container_column_map {
    width: 100px !important;
  }
  .form-inline-org {
    margin-left: auto;
  }
  .form-inline-user {
    margin-left: auto;
  }
  #mobile_test_element {
    display: none;
  }
  #go_fullscreen {
    display: none;
  }
  #fullscreen_div {
    margin-bottom: 25%;
  }
  .last_date_title_control_panel {
    font-size: 14px !important;
  }
  .kpi_time_info {
    font-size: 7px !important;
  }
}
body {
  background: var(var(--bg-surface));
  min-height: 100vh;
  overflow-x: hidden;
}

.separator {
  margin: 48px 0;
  border-bottom: 1px dashed #fff;
}

.text-uppercase {
  letter-spacing: 0.1em;
}

.welcome_close_button {
  height: 50px;
}

.close_text_welcome_message {
  font-size: 14px;
  vertical-align: middle;
}

.nespra_img_small {
  height: 16px;
}

.nespra_img_big {
  height: 25px;
}

.submenu_network {
  cursor: pointer;
}

.cursor-pointer {
  cursor: pointer;
}

.dot {
  height: 12px;
  width: 12px;
  border-radius: 50%;
  position: absolute;
  background: var(--state-error);
  top: -8px;
  left: 20px;
  display: none;
}

.mobile_image_logo_nespra_office {
  display: none;
}

.mobile_image_logo_orbita_office {
  display: none;
}

.card_demo_office {
  width: 400px;
}

.big_image_logo_nespra_office {
  max-width: 250px;
}

.font_size_widget_value {
  color: var(--action-primary);
}

.tooltip-inner {
  justify-content: left !important;
  max-width: 350px !important;
  width: 350px !important;
  color: var(--text-primary) !important;
  background-color: var(--bg-main) !important;
  border: 1px solid var(--card-border);
}

.arrow {
  display: none !important;
}

/* dynamic bootstrap cols */
.dynamic-col {
  padding: 0;
}

/* Ocultar Flechas Widget */
.grid-stack-item .ui-resizable-handle {
  display: none !important;
}

.grid-stack-item:hover .ui-resizable-handle {
  display: block !important;
}

.highcharts-tooltip {
  white-space: normal !important;
}

.highcharts-tooltip strong {
  white-space: nowrap !important;
}

/* Solo flechas del acordeón*/
#accordionDonuts .card-header .icon-chevron {
  display: inline-block;
  transition: transform 0.25s ease;
  transform: rotate(0deg);
}

#accordionDonuts .card-header .icon-chevron.rotated {
  transform: rotate(180deg);
}

/* BASE/_themes.scss */
/* LIGHT THEME */
:root {
  /* TYPOGRAPHY */
  --ns-font: 'Inter', sans-serif;
  /* ICONS */
  --icon-color: #0d1d69;
  --icon-secondary: #6b7280;
  --icon-active: #0d1d69;
  --icon-disabled: #6b7280;
  /* WIDGET INTERNAL  */
  --widget-icon-arc-primary: #c7d2fe;
  --widget-icon-arc-secondary: #00b9e4;
  --widget-icon-text: #6b7280;
  --widget-icon-needle: #00b9e4;
  /* STATES */
  --widget-bg-hover: rgba(13, 29, 105, 0.08);
  --widget-bg-active: #ffffff;
  --icon-active-soft: #00b9e4;
  --widget-border-hover: #0d1d69;
  --widget-border-active: #0d1d69;
  /*RadioButton */
  --radio-button: #0d1d69;
  /* BACKGROUNDS */
  --bg-main: #ffffff;
  --bg-login: #f2f3f8;
  --bg-surface: #f3f3f3;
  --bg-selected: #d2d5e2;
  --bg-header-widget:rgba(238.07, 238.25, 239.06, 0.95);
  --bg-fullscreen: #ffffff;
  /* separadores */
  --divider-color: rgba(16, 24, 40, 0.08);
  /* TEXT COLORS */
  --text-primary: #030615;
  --text-secondary: #696d80;
  --text-muted: #8991b4;
  --text-white: #ffffff;
  --text-bluedark: #45508a;
  /* Text roles */
  --text-heading: #0d1d69;
  --text-link: #0d1d69;
  --text-link-hover: rgba(75, 90, 161, 1);
  /* Texto de charts */
  --chart-center-text: var(--text-heading);
  /* ACTIONS BRAND COLORS*/
  --color-primary: #0d1d69;
  --color-accent: #00b9e4;
  --action-primary: #00b9e4;
  --action-secondary: #1ccef4;
  /* STATES */
  --state-success: #74ca80;
  --state-sucess-border: #2F8A3C;
  --state-warning: #f9d762;
  --state-warning-border: #f9b55d;
  --state-error: #EA5658;
  --state-error-border: #f23336;
  --state-info: #1CCEF4;
  --state-info-border:#00B9E4;
  --status-error:lightcoral;
  --status-warning: #EBA615;
  /* ALERTS */
  --alert-info-bg: #EBFDFF;
  --alert-info-border: rgba(3, 140, 183, 0.6);
  --alert-info-text: #038CB7;
  --alert-info-icon: #038CB7;
  --alert-warning-bg: #FFF7DB;
  --alert-warning-border: rgba(173, 92, 16, 0.6);
  --alert-warning-text: #AD5C10;
  --alert-warning-icon: #AD5C10;
  --alert-error-bg: #FDECEC;
  --alert-error-border: rgba(179, 34, 36, 0.6);
  --alert-error-text: #B32224;
  --alert-error-icon: #B32224;
  --alert-success-bg: #EAF8EE;
  --alert-success-border: rgba(36, 87, 44, 0.6);
  --alert-success-text: #24572C;
  --alert-success-icon: #24572C;
  --alert-danger-bg: rgba(100, 116, 139, 0.12);
  --alert-danger-border: rgba(100, 116, 139, 0.35);
  --alert-danger-text: #475569;
  --alert-danger-icon: #64748B;
  /* BORDERS */
  --border-input: var(--color-primary);
  --border-default: rgba(75, 90, 161, 0.6);
  --border-gridstack: #E0ECFF;
  /* INPUTS */
  --input-bg: #ffffff;
  --input-text: #030615;
  --text-placeholder: #9aa0a6;
  --input-placeholder: #8991B4;
  --input-border-default: #8991B4;
  --input-border-hover: #0D1D69;
  --input-border-focus: #0D1D69;
  --input-border-filled: #8991B4;
  --input-border-error: #B32224;
  /* Button scroll*/
  --bg-scroll-button: #ffffff;
  --bg-scroll-button-hover: rgba(210, 213, 226, 0.95);
  /* BUTTON PRIMARY BLUE*/
  --btn-primary-bg: #0D1D69;
  --btn-primary-bg-hover: #4B5AA1;
  --btn-primary-bg-pressed: #0A1754;
  --btn-primary-text: #FEFEFE;
  /* BUTTON PRIMARY WHITE*/
  --btn-primary-white-bg: #FFFFFF;
  --btn-primary-white-bg-hover: #F3F3F3;
  --btn-primary-white-bg-pressed: rgba(210, 213, 226, 0.08);
  --btn-primary-white-text: #0D1D69;
  /* BUTTON SECONDARY*/
  --btn-secondary-bg: rgba(255, 255, 255, 0.50);
  --btn-secondary-bg-hover: #EEF0F6;
  --btn-secondary-bg-pressed: #D2D5E2;
  --btn-secondary-text: #0D1D69;
  --btn-secondary-text-hover:#4B5AA1;
  --btn-primary-white-border: #0A1754;
  /* BUTTON TEXT*/
  --btn-text-bg: transparent;
  --btn-text-bg-hover: #F3F3F3;
  --btn-text-bg-pressed: rgba(210, 213, 226, 0.50);
  --btn-text-color: #0D1D69;
  /* BUTTON MULTISTEP */
  --bg-step-circle: #696d80;
  /* BUTTON-GROUP */
  /* USER CHANGE PASSWORD BUTTON — LIGHT */
  --ucp-btn-bg: #ffffff; /* white */
  --ucp-btn-bg-hover: rgba(238, 239, 246, 1);
  --ucp-btn-bg-selected: rgba(210, 213, 226, 0.5);
  --ucp-btn-text: rgba(13, 29, 105, 1);
  --ucp-btn-border: rgba(13, 29, 105, 1);
  /*CARDS BASE*/
  --bg-card: #ffffff;
  --bg-hover: #d2d5e2;
  --bg-cardpaneles: #d2d5e2;
  --bg-card-widget: #ffffff;
  --bg-highcharts:#ffffff;
  --border-header-widget:#ffffff;
  --card-border: rgba(0, 0, 0, 0.08);
  --card-border-soft: rgba(0, 0, 0, 0.06);
  --card-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  --card-shadow-hover: 0 8px 20px rgba(0, 0, 0, 0.12);
  /* === GLASS SYSTEM — LIGHT === */
  --glass-bg: rgba(255, 255, 255, 0.75);
  --glass-bg-hover: rgba(255, 255, 255, 0.85);
  --glass-border: rgba(0, 0, 0, 0.04);
  --glass-border-soft: rgba(0, 0, 0, 0.03);
  --glass-blur: 20px;
  --glass-saturate: 160%;
  --glass-shadow:
    0 8px 24px rgb(153 153 153 / 50%),
    inset 0 1px 0 rgba(255, 255, 255, .05),
  /*MODAL CONTENT VENTANA*/
  --modal-header-glass-bg: rgba(245, 246, 248, 0.75);
  --modal-header-glass-border: rgba(0, 0, 0, 0.08);
  /* === CARD / GLASS SURFACE === */
  --card-bg: #ffffff;
  --card-bg-hover: #f3f3f3;
  --card-border: rgba(0, 0, 0, 0.08);
  --card-border-soft: rgba(0, 0, 0, 0.06);
  --card-shadow:
    0 4px 12px rgba(0, 0, 0, 0.08);
  --card-shadow-hover:
    0 8px 20px rgba(0, 0, 0, 0.12);
  --card-shadow-active:
    0 4px 10px rgba(0, 0, 0, 0.1);
  --card-separator: linear-gradient(to right,
      transparent,
      rgba(0, 0, 0, 0.08),
      transparent);
  /* SIDEBAR */
  /* Text */
  --sidebar-text-primary: var(--color-primary);
  --sidebar-text-secondary: #a4a9c5;
  --sidebar-text-backend: lightcoral;
  /* Backgrounds */
  --sidebar-bg-main: var(--bg-main);
  --sidebar-bg-hover: rgba(210, 213, 226, 0.50);
  --sidebar-bg-active: rgba(210, 213, 226, 0.5);
  --sidebar-bg-surface: var(--bg-surface);
  /* Accents / Borders */
  --sidebar-accent-primary: #00B9E4;
  --sidebar-accent-hover: #99E3F4;
  /* Shadows */
  --sidebar-shadow-sm: 0 0 2px rgba(0, 0, 0, 0.2);
  --sidebar-shadow-md: 3px 3px 10px rgba(0, 0, 0, 0.1);
  /* TAGS / BADGES PANELES*/
  --badge-editor-bg: rgba(124, 58, 237, 0.12); /* violet soft */
  --badge-editor-border: rgba(124, 58, 237, 0.35);
  --badge-editor-text: #5B21B6;
  --badge-only-read-bg: rgba(34, 197, 94, 0.12); /* green soft */
  --badge-only-read-border: rgba(34, 197, 94, 0.35);
  --badge-only-read-text: #15803D;
  --badge-propietary-bg: rgba(6, 182, 212, 0.12); /* cyan soft */
  --badge-propietary-border: rgba(6, 182, 212, 0.35);
  --badge-propietary-text: #0E7490;
  --badge-external-bg: rgba(245, 158, 11, 0.12); /* amber soft */
  --badge-external-border: rgba(245, 158, 11, 0.35);
  --badge-external-text: #B45309;
  /* TAGS – count */
  --tag-count-bg: #EBFDFF;
  --tag-count-text: #038CB7;
  /* TAGS – periodic */
  --tag-periodic-bg: #FCF5C9;
  --tag-periodic-text: #D0800F;
  /*Badge de ENTIDAD (emails)*/
  --chip-email-bg: rgba(210, 213, 226, 0.5);
  --chip-email-border: rgba(13, 29, 105, 1);
  --chip-email-text: rgba(13, 29, 105, 1);
  /* DEVICE TABS */
  --device-tab-text: rgba(105, 109, 128, 1);
  --device-tab-text-active: rgba(13, 29, 105, 1);
  /* Device tabs – background */
  --device-tab-bg: rgba(255, 255, 255, 0.80);
  --device-tab-bg-inactive:rgba(255, 255, 255, 0.80);
  --device-tab-hover:rgba(210, 213, 226, 0.5);
  --device-tab-bg-active: rgba(243, 243, 243, 1);
  /* Device tabs – border */
  --device-tab-border: rgba(13, 29, 105, 1);
  --device-tab-border-bottom-active: rgba(243, 243, 243, 1);
  /*TABLES*/
  --surface-glass-bg: #ffffff;
  --surface-glass-border: rgba(0, 0, 0, 0.08);
  --surface-glass-border-soft: rgba(0, 0, 0, 0.06);
  --surface-glass-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  --surface-search-bg: transparent;
  --surface-header-bg: rgba(0, 0, 0, 0.03);
  --surface-divider: rgba(0, 0, 0, 0.08);
  --surface-row-bg: #ffffff;
  --surface-row-bg-hover: #f3f3f3;
  --surface-row-bg-selected: rgba(0, 185, 228, 0.15);
  /* PAGINATION – BASE */
  --table-pagination-bg: rgba(0, 0, 0, 0.04);
  --table-pagination-border: rgba(0, 0, 0, 0.08);
  --table-pagination-hover-bg: rgba(0, 0, 0, 0.08);
  --dt-pagination-text: rgba(13, 29, 105, 1);
  --dt-pagination-border: rgba(13, 29, 105, 1);
  --dt-pagination-hover-bg: rgba(238, 239, 246, 1);
  --dt-pagination-active-bg: rgba(13, 29, 105, 0.18);
  --dt-pagination-active-text: rgba(13, 29, 105, 1);
  --dt-pagination-radius: 4px;
  /*Breadcrumb*/
  --bg-breadcrumb: #f3f3f3;
  /* Sidebar scrollbar (light / default) */
  --scroll-track: #f1f3f6;
  --scroll-thumb: #c5c9cf;
  --scroll-thumb-hover: #aeb4bc;
  --scrollbarBG: var(--scroll-track);
  --thumbBG: var(--scroll-thumb);
  /* Highcharts Light */
  --highcharts-background-color: transparent;
  /* Texto */
  --highcharts-neutral-color-100: #0f172a;
  --highcharts-neutral-color-60: #667085;
  /* Tooltip */
  --highcharts-tooltip-bg: rgba(210, 213, 226, 0.8);
  --highcharts-tooltip-border: var(--chart-tooltip-border);
}

body.dark-mode {
  /* TYPOGRAPHY */
  --ns-font: 'Inter', sans-serif;
  /* ICONS */
  --icon-color: #e2e8f0;
  --icon-secondary: #94a3b8;
  --icon-active: #38bdf8;
  --icon-disabled: #7b8797;
  /* WIDGET INTERNAL */
  --widget-icon-arc-primary: #334155;
  --widget-icon-arc-secondary: #475569;
  --widget-icon-text: #cbd5e1;
  --widget-icon-needle: #ffffff;
  /* STATES */
  --widget-bg-hover: rgba(255,255,255,0.06);
  --widget-bg-active: #1e293b;
  --widget-border-hover:#38bdf8;
  --widget-border-active: rgba(56,189,248,.9);
  --icon-active-soft: #7dd3fc;
  /*RadioButton */
  --radio-button: #2bb0ed;
  /* BACKGROUNDS */
  --bg-main: #1B1B1F;
  --bg-login: #1B1B1F;
  --bg-surface: #15181D;
  --bg-selected: #1e3a5f;
  --bg-header-widget:rgba(255, 255, 255, 0.06);
  --bg-fullscreen: #1B1B1F;
  /* separadores */
  --divider-color: rgba(255, 255, 255, 0.08);
  /* TEXT COLORS */
  --text-primary: #E6E8EB;
  --text-secondary: #A1A7B3;
  --text-muted: #6B7280;
  --text-white: #ffffff;
  --text-bluedark: #00b9e4;
  /* Text roles */
  --text-heading: #A2F1FF;
  --text-link: #2bb0ed;
  --text-link-hover: #5cc6f2;
  /* Texto de charts */
  --chart-center-text: var(--text-white);
  /* ACTIONS BRAND COLORS*/
  --color-primary: #e6e9ef;
  --color-accent: #2bb0ed;
  --action-primary: #63e4fd;
  --action-secondary: #1ccef4;
  /* STATES */
  --state-success: #2dd4bf;
  --state-sucess-border: #74CA80;
  --state-warning: #c99700;
  --state-warning-border: #EBA615;
  --state-error: #d25959;
  --state-error-border: #EA5658;
  --state-info: #2ba5db;
  --state-info-border:#1CCEF4;
  --status-error:#f87171;
  --status-warning: #f0c24d;
  /* ALERTS */
  --alert-info-bg: rgba(56, 189, 248, 0.12);
  --alert-info-border: rgba(56, 189, 248, 0.35);
  --alert-info-text: #A2F1FF;
  --alert-info-icon: #7DD3FC;
  --alert-warning-bg: rgba(251, 191, 36, 0.12);
  --alert-warning-border: rgba(251, 191, 36, 0.35);
  --alert-warning-text: #FDE68A;
  --alert-warning-icon: #FACC15;
  --alert-error-bg: rgba(248, 113, 113, 0.12);
  --alert-error-border: rgba(248, 113, 113, 0.35);
  --alert-error-text: #FECACA;
  --alert-error-icon: #F87171;
  --alert-success-bg: rgba(45, 212, 191, 0.12);
  --alert-success-border: rgba(45, 212, 191, 0.35);
  --alert-success-text: #BBF7D0;
  --alert-success-icon: #2DD4BF;
  --alert-danger-bg: rgba(148, 163, 184, 0.12);
  --alert-danger-border: rgba(148, 163, 184, 0.30);
  --alert-danger-text: #CBD5F5;
  --alert-danger-icon: #94A3B8;
  /* BORDERS */
  --border-input: #ffffff;
  --border-default: #ffffff;
  --border-gridstack: rgba(255, 255, 255, 0.08);
  /* INPUTS */
  --input-bg: #1B1B1F;
  --input-text: #e6e9ef;
  --text-placeholder: #8b949e;
  --input-placeholder: #e6e9ef;
  --input-border-default: rgba(255, 255, 255, 0.08);
  --input-border-hover: rgba(255, 255, 255, 0.14);
  --input-border-focus: #2bb0ed;
  --input-border-filled: rgba(255, 255, 255, 0.18);
  --input-border-error: #f87171;
  /* Button scroll*/
  --bg-scroll-button: #e6e9ef;
  --bg-scroll-button-hover:#A2F1FF;
  /* BUTTON PRIMARY – Enterprise */
  --btn-primary-bg: #2bb0ed;
  --btn-primary-white-bg: #2bb0ed;
  --btn-primary-bg-hover: #5cc6f2;
  --btn-primary-bg-pressed: #1e88c7;
  --btn-primary-bg-disabled: #1c3f55;
  --btn-primary-white-text: #e6e9ef;
  --btn-primary-text: #ffffff;
  --btn-primary-white-border: #D6E4FF;
  /* BUTTON SECONDARY – Dark */
  --btn-secondary-bg: #161c24;
  --btn-secondary-bg-hover: rgba(56, 189, 248, 0.12);
  --btn-secondary-bg-pressed: #243041;
  --btn-secondary-text: #e6e9ef;
  --btn-secondary-text-hover:#A2F1FF;
  --btn-secondary-border: rgba(255, 255, 255, 0.12);
  /* BUTTON TEXT – Ghost */
  --btn-text-bg: transparent;
  --btn-text-bg-hover: rgba(43, 176, 237, 0.08);
  --btn-text-bg-pressed: rgba(43, 176, 237, 0.16);
  --btn-text-color: #2bb0ed;
  /* BUTTON MULTISTEP */
  --bg-step-circle:#9AA1B8;
  /* BUTTON-GROUP */
  /* USER CHANGE PASSWORD BUTTON — LIGHT */
  --ucp-btn-bg: rgba(255, 255, 255, 0.04);
  --ucp-btn-bg-hover: rgba(13, 29, 105, 0.18);
  --ucp-btn-bg-selected: rgba(13, 29, 105, 0.28);
  --ucp-btn-text: #e6e9ef;
  --ucp-btn-border: #A2F1FF;
  /*CARDS BASE*/
  --bg-card: transparent;
  --bg-hover: #FFFFFF1A;
  --bg-cardpaneles: #FFFFFF1A;
  --bg-card-widget: rgba(255, 255, 255, 0.04);
  --bg-highcharts:#141414;
  --border-header-widget: rgba(255, 255, 255, 0.12);
  --card-border: rgba(255, 255, 255, 0.12);
  --card-border-soft: rgba(255, 255, 255, 0.06);
  --card-shadow:
    0 8px 24px rgba(0, 0, 0, .5),
    inset 0 1px 0 rgba(255, 255, 255, .05);
  --card-shadow-hover:
    0 12px 32px rgba(0, 0, 0, 0.65);
  /* === GLASS SYSTEM — DARK === */
  --glass-bg: rgba(255, 255, 255, 0.04);
  --glass-bg-hover: rgba(255, 255, 255, 0.08);
  --glass-border: rgba(255, 255, 255, 0.08);
  --glass-border-soft: rgba(255, 255, 255, 0.05);
  --glass-blur: 16px;
  --glass-saturate: 160%;
  --glass-shadow:
    0 20px 40px rgba(0, 0, 0, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  /*MODAL CONTENT VENTANA*/
  --modal-header-glass-bg: rgba(28, 30, 36, 0.72);
  --modal-header-glass-border: rgba(255, 255, 255, 0.08);
  /* === CARD / GLASS SURFACE === */
  --card-bg: rgba(255, 255, 255, 0.04);
  --card-bg-hover: rgba(255, 255, 255, 0.08);
  --card-border: rgba(255, 255, 255, 0.12);
  --card-border-soft: rgba(255, 255, 255, 0.06);
  --card-shadow:
    0 8px 24px rgba(0, 0, 0, .5),
    inset 0 1px 0 rgba(255, 255, 255, .05);
  --card-shadow-hover:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 12px 32px rgba(0, 0, 0, 0.65);
  --card-shadow-active:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 6px 16px rgba(0, 0, 0, 0.5);
  /* SIDEBAR */
  /* Text */
  --sidebar-text-primary: #e6e9ef;
  --sidebar-text-secondary: #9aa4b2;
  --sidebar-text-muted: #6b7280;
  --sidebar-text-backend: #e58c8c;
  /* Backgrounds */
  --sidebar-bg-main: #1B1B1F; /* Fondo principal */
  --sidebar-bg-surface: #1B1B1F; /* Tarjetas / secciones */
  --sidebar-bg-hover: rgba(255, 255, 255, 0.06); /* Hover elegante */
  --sidebar-bg-active: rgba(255, 255, 255, 0.10); /* Activo (más profundo) */
  /* Accents / Borders */
  --sidebar-accent-primary: #2bb0ed;
  /* Cian ingeniería */
  --sidebar-accent-hover: #5cc6f2;
  /* Hover acento */
  --sidebar-border: rgba(255, 255, 255, 0.05);
  /* Shadows */
  --sidebar-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.65);
  --sidebar-shadow-md: 0 8px 20px rgba(0, 0, 0, 0.6);
  /* TAGS / BADGES — DARK PANELES*/
  --badge-editor-bg: rgba(124, 58, 237, 0.18);
  --badge-editor-border: rgba(167, 139, 250, 0.45);
  --badge-editor-text: #C4B5FD;
  --badge-only-read-bg: rgba(34, 197, 94, 0.16);
  --badge-only-read-border: rgba(134, 239, 172, 0.40);
  --badge-only-read-text: #86EFAC;
  --badge-propietary-bg: rgba(6, 182, 212, 0.16);
  --badge-propietary-border: rgba(103, 232, 249, 0.40);
  --badge-propietary-text: #67E8F9;
  --badge-external-bg: rgba(245, 158, 11, 0.16);
  --badge-external-border: rgba(253, 230, 138, 0.35);
  --badge-external-text: #FDE68A;
  /* TAGS – count */
  --tag-count-bg: rgba(255, 255, 255, 0.06);
  --tag-count-text: #8FD8FF;
  /* TAGS – periodic */
  --tag-periodic-bg: rgba(255, 255, 255, 0.06);
  --tag-periodic-text: #F2C27B;
  /*Badge de ENTIDAD (emails)*/
  --chip-email-bg: rgba(13, 29, 105, 0.12);
  --chip-email-border: #D6E4FF;
  --chip-email-text: #D6E4FF;
  /* Device tabs – text */
  --device-tab-text: #e6e9ef;
  --device-tab-text-active: #A2F1FF;
  /* Device tabs – background */
  --device-tab-bg:#434343;
  --device-tab-bg-inactive:rgba(56, 189, 248, 0.12);
  --device-tab-hover:rgba(56, 189, 248, 0.12);
  --device-tab-bg-active: #243041;
  /* Device tabs – border */
  --device-tab-border: #A2F1FF;
  --device-tab-border-bottom-active: #2bb0ed;
  /*BOX-SHADOW*/
  --card-shadow:
  0 2px 4px rgba(0, 0, 0, 0.35),
  0 10px 24px rgba(0, 0, 0, 0.28);
  /*TABLES*/
  --surface-glass-bg: rgba(255, 255, 255, 0.04);
  --surface-glass-border: rgba(255, 255, 255, 0.12);
  --surface-glass-border-soft: rgba(255, 255, 255, 0.08);
  --surface-glass-shadow:
    0 8px 24px rgba(0, 0, 0, .5),
    inset 0 1px 0 rgba(255, 255, 255, .05);
  --surface-search-bg: rgba(255, 255, 255, 0.08);
  --surface-header-bg: rgba(255, 255, 255, 0.06);
  --surface-divider: rgba(255, 255, 255, 0.08);
  --surface-row-bg: rgba(255, 255, 255, 0.04);
  --surface-row-bg-hover: rgba(255, 255, 255, 0.08);
  --surface-row-bg-selected: rgba(43, 176, 237, 0.25);
  /* Pagination – Dark */
  --table-pagination-bg: rgba(255, 255, 255, 0.04);
  --table-pagination-border: rgba(255, 255, 255, 0.08);
  --table-pagination-hover-bg: rgba(255, 255, 255, 0.10);
  --dt-pagination-text: var(--text-secondary);
  --dt-pagination-border: #2bb0ed;
  --dt-pagination-hover-bg: rgba(255, 255, 255, 0.08);
  --dt-pagination-active-bg: transparent;
  --dt-pagination-active-text: #2bb0ed;
  /*Breadcrumb*/
  --bg-breadcrumb: rgba(0, 0, 0, 0.08);
  /*Scrollbar*/
  --scroll-track: #1c2430;
  --scroll-thumb: #3a3f46;
  --scroll-thumb-hover: #4a5058;
  --scrollbarBG: var(--scroll-track);
  --thumbBG: var(--scroll-thumb);
  /* highcharts-dark */
  --highcharts-background-color: transparent;
  /* Texto */
  --highcharts-neutral-color-100: #e6e9ef;
  --highcharts-neutral-color-60: #9aa4b2;
  /* Tooltip */
  --highcharts-tooltip-bg: #2B2F36;
  --highcharts-tooltip-border: var(--chart-tooltip-border);
  /*COMPONENT OVERRIDES*/
  /* Toggle (Bootstrap Toggle / Switch) */
}
body.dark-mode .toggle.btn-primary {
  background-color: #2bb0ed !important;
  /* ON en dark */
}
body.dark-mode .toggle.btn-light.off {
  background: #696D80 !important;
  /* OFF en dark */
}
body.dark-mode .toggle.btn::after {
  background: #F6F7F9 !important;
}
body.dark-mode .table_link {
  color: var(--text-link);
}
body.dark-mode {
  /*ICON & SVG NORMALIZATION*/
  /* Navigation */
}
body.dark-mode .nav-link img,
body.dark-mode .custom-select-arrow {
  filter: brightness(0) invert(1);
}
body.dark-mode {
  /* Search / indicators */
}
body.dark-mode .buscador svg, body.dark-mode .spinner-sun-img,
body.dark-mode .app-icon, body.dark-mode .arrow-icon {
  filter: brightness(0) invert(1);
}
body.dark-mode {
  /* Bootstrap Select */
}
body.dark-mode .bootstrap-select .dropdown-toggle,
body.dark-mode .bootstrap-select .dropdown-toggle::after,
body.dark-mode .selectpicker {
  filter: brightness(0) invert(1);
}
body.dark-mode {
  /* Resize handle (jQuery UI) */
}
body.dark-mode .ui-resizable-handle {
  filter: brightness(0) invert(1);
}
body.dark-mode {
  /* DATATABLES*/
}
body.dark-mode .table.dataTable thead th.dt-orderable-asc::after, body.dark-mode table.dataTable thead th.dt-orderable-desc::after {
  filter: brightness(0) invert(1);
  opacity: 0.6;
}
body.dark-mode .table.dataTable thead th.dt-orderable-desc::after {
  filter: brightness(0) invert(1);
  opacity: 0.6;
}
body.dark-mode .leaflet-popup-content-wrapper {
  background: rgba(20, 24, 30, 0.82);
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
body.dark-mode .leaflet-popup-tip {
  background: rgba(20, 24, 30, 0.82);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
body.dark-mode .leaflet-tile {
  filter: brightness(1.15) contrast(0.9) saturate(0.85);
}
body.dark-mode select.form-control {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  box-sizing: border-box;
  width: 100%;
  padding: 10px 16px;
  background-color: var(--input-bg);
  background-image: url("../../assets/icons/directiondownwhite.svg");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 18px 18px;
  cursor: pointer;
}
body.dark-mode .map_overview .leaflet-tile-pane {
  filter: brightness(1.25) contrast(1.15) saturate(0.85);
}

/*_typography-legacy.scss */
.title_device_info {
  font-size: 24px;
  font-weight: 600;
  color: var(--color-primary);
  padding-left: 0;
}

.data_range_text {
  font-size: 18px;
  font-weight: 600;
  color: var(--color-primary);
  padding-left: 0;
}

/* MUTED / SECONDARY */
.text-muted {
  color: var(--text-muted);
}

/* LABELS */
.label {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-secondary);
}

/* TIPOGRAFÍA NESPRA FIGMA */
/* RESET TIPOGRÁFICO GLOBAL */
body {
  font-family: var(--ns-font);
  font-size: var(--ns-b1-size);
  line-height: var(--ns-b1-line);
  font-weight: var(--ns-b1-weight);
  color: var(--text-primary);
}

/* Elementos base */
p {
  margin: 0;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-weight: inherit;
}

/* BASE TEXT */
.ns-text, .ns-ovl, .ns-cap, .text-muted,
.small, .ns-btn, .ns-body, .ns-b2, .ns-inline-text, .form-check-label, .ns-loading, .ns-b1, .ns-subtitle, .ns-s2, .ns-s1, .title_text_inventory,
.card-title, .ns-section-title, .ns-heading, .ns-h6, .ns-h5, .ns-h4, .ns-h3, .ns-h2, .ns-h1 {
  font-family: var(--ns-font);
  margin: 0;
}

/* Headings */
/* BASE OPCIONAL (RECOMENDADO)*/
.ns-heading, .ns-h6, .ns-h5, .ns-h4, .ns-h3, .ns-h2, .ns-h1 {
  color: var(--text-heading);
}

.ns-h1 {
  font-size: var(--ns-h1-size);
  line-height: var(--ns-h1-line);
  font-weight: var(--ns-h1-weight);
  letter-spacing: var(--ns-h1-ls);
}

.ns-h2 {
  font-size: var(--ns-h2-size);
  line-height: var(--ns-h2-line);
  font-weight: var(--ns-h2-weight);
  letter-spacing: var(--ns-h2-ls);
}

.ns-h3 {
  font-size: var(--ns-h3-size);
  line-height: var(--ns-h3-line);
  font-weight: var(--ns-h3-weight);
  letter-spacing: var(--ns-h3-ls);
}

.ns-h4 {
  font-size: var(--ns-h4-size);
  line-height: var(--ns-h4-line);
  font-weight: var(--ns-h4-weight);
  letter-spacing: var(--ns-h4-ls);
}

.ns-h5 {
  font-size: var(--ns-h5-size);
  line-height: var(--ns-h5-line);
  font-weight: var(--ns-h5-weight);
  letter-spacing: var(--ns-h5-ls);
}

.ns-h6 {
  font-size: var(--ns-h6-size);
  line-height: var(--ns-h6-line);
  font-weight: var(--ns-h6-weight);
  letter-spacing: var(--ns-h6-ls);
  margin-bottom: 5px;
}

/* BASE (opcional recomendado) */
.ns-subtitle, .ns-s2, .ns-s1, .title_text_inventory,
.card-title, .ns-section-title {
  color: var(--color-primary);
}

.ns-s1, .title_text_inventory,
.card-title, .ns-section-title {
  font-size: var(--ns-s1-size);
  line-height: var(--ns-s1-line);
  font-weight: var(--ns-s1-weight);
  letter-spacing: var(--ns-s1-ls);
}

.ns-s2 {
  font-size: var(--ns-s2-size);
  line-height: var(--ns-s2-line);
  font-weight: var(--ns-s2-weight);
  letter-spacing: var(--ns-s2-ls);
}

/* Body */
.ns-body, .ns-b2, .ns-inline-text, .form-check-label, .ns-loading, .ns-b1 {
  color: var(--text-primary);
}

.ns-b1 {
  font-size: var(--ns-b1-size);
  line-height: var(--ns-b1-line);
  font-weight: var(--ns-b1-weight);
  letter-spacing: var(--ns-b1-ls);
}

.ns-b2, .ns-inline-text, .form-check-label, .ns-loading {
  font-size: var(--ns-b2-size);
  line-height: var(--ns-b2-line);
  font-weight: var(--ns-b2-weight);
  letter-spacing: var(--ns-b2-ls);
}

/* BUTTON TEXT */
.ns-btn {
  font-size: var(--ns-btn-size);
  line-height: var(--ns-btn-line);
  font-weight: var(--ns-btn-weight);
  letter-spacing: var(--ns-btn-ls);
  color: var(--btn-primary-text);
  text-transform: none;
}

/* CAPTION */
.ns-cap, .text-muted,
.small {
  font-size: var(--ns-cap-size);
  line-height: var(--ns-cap-line);
  font-weight: var(--ns-cap-weight);
  letter-spacing: var(--ns-cap-ls);
  color: var(--text-secondary);
}

.ns-ovl {
  font-size: var(--ns-ovl-size);
  line-height: var(--ns-ovl-line);
  font-weight: var(--ns-ovl-weight);
  letter-spacing: var(--ns-ovl-ls);
  color: var(--text-muted);
  text-transform: uppercase;
}

/* Utilidades */
.ns-loading {
  color: var(--text-secondary);
  letter-spacing: 0.3px;
}

.ns-text-italic {
  font-style: italic;
}

.ns-icon-info {
  margin-left: 10px;
  color: var(--icon-active);
}

/* Form label */
.ns-label, .label-help, .modal_form_label,
.label_actuation {
  font-family: var(--ns-font);
  font-size: var(--ns-label-size);
  line-height: var(--ns-label-line);
  font-weight: var(--ns-label-weight);
  letter-spacing: var(--ns-label-ls);
  color: var(--text-primary);
  display: block;
  margin-bottom: 6px;
}

.ns-helper-text {
  font-family: var(--ns-font);
  font-size: var(--ns-helper-size);
  line-height: var(--ns-helper-line);
  font-weight: var(--ns-helper-weight);
  letter-spacing: var(--ns-helper-ls);
  color: var(--text-secondary);
  margin-top: 4px;
}

/* =========================
   LEGACY → NESPRA BRIDGE
========================= */
.ns-section-title {
  font-size: var(--ns-fs-19);
  font-weight: var(--ns-w-semibold);
  color: var(--color-primary);
  margin: 0;
  padding-bottom: 8px;
}

/* Labels */
/* Titles */
/* Small text */
/* Checkbox labels */
.label-help {
  color: var(--color-primary);
}

.ns-inline-text {
  padding-left: 8px;
}

/* NESPRA — TYPOGRAPHY TOKENS */
:root {
  /* ---------- Base tokens ---------- */
  /* Font family */
  --ns-font: 'Inter', sans-serif;
  /* Font weights */
  --ns-w-light: 300;
  --ns-w-regular: 400;
  --ns-w-medium: 500;
  --ns-w-semibold: 600;
  /* Font sizes */
  --ns-fs-93: 93px;
  --ns-fs-58: 58px;
  --ns-fs-47: 47px;
  --ns-fs-33: 33px;
  --ns-fs-23: 23px;
  --ns-fs-19: 19px;
  --ns-fs-16: 16px;
  --ns-fs-14: 14px;
  --ns-fs-12: 12px;
  --ns-fs-10: 10px;
  /* Line heights */
  --ns-lh-100: 100px;
  --ns-lh-64: 64px;
  --ns-lh-52: 52px;
  --ns-lh-40: 40px;
  --ns-lh-28: 28px;
  --ns-lh-24: 24px;
  --ns-lh-20: 20px;
  --ns-lh-16: 16px;
  /* Letter spacing */
  --ns-ls-neg-15: -1.5px;
  --ns-ls-neg-05: -0.5px;
  --ns-ls-0: 0;
  --ns-ls-015: 0.15px;
  --ns-ls-025: 0.25px;
  --ns-ls-03: 0.3px;
  --ns-ls-04: 0.4px;
  --ns-ls-125: 1.25px;
  --ns-ls-15: 1.5px;
  /* ---------- Semantic tokens ---------- */
  /* Headings */
  --ns-h1-size: clamp(32px, 5vw, 93px);
  --ns-h1-line: var(--ns-lh-100);
  --ns-h1-weight: var(--ns-w-semibold);
  --ns-h1-ls: var(--ns-ls-neg-15);
  --ns-h2-size: clamp(28px, 4vw, 58px);
  --ns-h2-line: var(--ns-lh-64);
  --ns-h2-weight: var(--ns-w-semibold);
  --ns-h2-ls: var(--ns-ls-neg-05);
  --ns-h3-size: var(--ns-fs-47);
  --ns-h3-line: var(--ns-lh-52);
  --ns-h3-weight: var(--ns-w-semibold);
  --ns-h3-ls: var(--ns-ls-0);
  --ns-h4-size: var(--ns-fs-33);
  --ns-h4-line: var(--ns-lh-40);
  --ns-h4-weight: var(--ns-w-semibold);
  --ns-h4-ls: var(--ns-ls-025);
  --ns-h5-size: var(--ns-fs-23);
  --ns-h5-line: var(--ns-lh-28);
  --ns-h5-weight: var(--ns-w-semibold);
  --ns-h5-ls: var(--ns-ls-0);
  --ns-h6-size: var(--ns-fs-19);
  --ns-h6-line: var(--ns-lh-24);
  --ns-h6-weight: var(--ns-w-semibold);
  --ns-h6-ls: var(--ns-ls-015);
  /* Subtitles */
  --ns-s1-size: var(--ns-fs-16);
  --ns-s1-line: var(--ns-lh-24);
  --ns-s1-weight: var(--ns-w-semibold);
  --ns-s1-ls: var(--ns-ls-015);
  --ns-s2-size: var(--ns-fs-14);
  --ns-s2-line: var(--ns-lh-20);
  --ns-s2-weight: var(--ns-w-semibold);
  --ns-s2-ls: var(--ns-ls-015);
  /* Body */
  --ns-b1-size: var(--ns-fs-16);
  --ns-b1-line: var(--ns-lh-24);
  --ns-b1-weight: var(--ns-w-regular);
  --ns-b1-ls: var(--ns-ls-015);
  --ns-b2-size: var(--ns-fs-14);
  --ns-b2-line: var(--ns-lh-20);
  --ns-b2-weight: var(--ns-w-regular);
  --ns-b2-ls: var(--ns-ls-025);
  /* Button */
  --ns-btn-size: var(--ns-fs-14);
  --ns-btn-line: var(--ns-lh-16);
  --ns-btn-weight: var(--ns-w-medium);
  --ns-btn-ls: var(--ns-ls-03);
  /* Caption / Overline */
  --ns-cap-size: var(--ns-fs-12);
  --ns-cap-line: var(--ns-lh-16);
  --ns-cap-weight: var(--ns-w-regular);
  --ns-cap-ls: var(--ns-ls-04);
  --ns-ovl-size: var(--ns-fs-10);
  --ns-ovl-line: var(--ns-lh-16);
  --ns-ovl-weight: var(--ns-w-regular);
  --ns-ovl-ls: var(--ns-ls-125);
  /* NEW: UI labels */
  --ns-label-size: 13px;
  --ns-label-line: 18px;
  --ns-label-weight: 500;
  --ns-label-ls: 0.3px;
  /* NEW: UI helper text */
  --ns-helper-size: 12px;
  --ns-helper-line: 16px;
  --ns-helper-weight: 400;
  --ns-helper-ls: 0.25px;
}

.button {
  font-size: 14px;
  font-family: "Inter", sans-serif;
  font-weight: 700;
  line-height: 20px;
  letter-spacing: 0.25px;
  padding: 8px 16px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  word-wrap: break-word;
}
.button:disabled {
  cursor: not-allowed;
  opacity: 1;
}

/* RADIO AND BUTTONS */
.edit_button {
  padding-left: 3px;
  padding-right: 3px;
  margin-left: auto;
}

.delete_button,
.datasource_button,
.delete_stop {
  padding-left: 3px;
  padding-right: 3px;
}

.button-link--small {
  font-size: 12px;
  line-height: 16px;
  letter-spacing: 0.4px;
  font-weight: 400;
}

#add_edit_buttons_modbus {
  margin-top: 12px;
}

.modal_delete_button {
  font-size: 12px;
  font-weight: 600;
  border-width: 1px;
  border-radius: 20px;
  border-color: lightcoral;
  color: lightcoral;
}

.modal_delete_button:hover {
  background-color: lightcoral;
  border-color: lightcoral;
}

.btn-primary {
  background-color: var(--blue-5);
  border-color: var(--blue-5);
}

.btn-primary:hover {
  background-color: var(--blue-3);
  border-color: var(--blue-3);
}

.btn-info,
.btn-info:hover,
.btn-info:active,
.btn-info:visited {
  background-color: #00B9E4 !important;
  border-color: #00B9E4 !important;
}

.create_org_networks_button {
  font-weight: 600;
  border-width: 2px;
  border-radius: 20px;
  border-color: #00B9E4;
  color: #00B9E4;
  margin-top: 10px;
  margin-bottom: 20px;
}

.icon_button {
  font-weight: 600;
  border-width: 1px;
  border-radius: 20px;
  border-color: none !important;
  color: var(--btn-primary-bg);
  background-color: var(--bg-main);
}

.icon_button:hover {
  background-color: var(--sidebar-bg-hover);
}

.btn {
  justify-content: center;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0.375rem 0.75rem;
  font-weight: 400;
  font-size: 14px;
  cursor: pointer;
}
.btn:disabled {
  cursor: not-allowed;
}

/*
<button class="btn btn--primary">Button</button>
<button class="btn btn--primary-white">Button</button>
<button class="btn btn--secondary">Button</button>
<button class="btn btn--text">Button</button>
*/
/*BUTTON OTHERS*/
.modal_confirm_button {
  padding-left: 16px;
  padding-right: 16px;
  border-radius: 20px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 14px;
  border-width: 2px;
  background-color: var(--btn-primary-bg);
  color: var(--btn-primary-text);
  border-color: var(--btn-primary-bg);
  transition: all 0.2s ease;
}

/* Hover */
.modal_confirm_button:hover {
  background-color: var(--btn-primary-bg-hover);
  border-color: var(--btn-primary-bg-hover);
  color: var(--btn-primary-text);
}

/* Focus (accesibilidad) */
.modal_confirm_button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
}

/* Pressed (REAL click) */
.modal_confirm_button:active {
  background-color: var(--btn-primary-bg-pressed);
  border-color: var(--btn-primary-bg-pressed);
}

/* Disabled */
.modal_confirm_button:disabled {
  background-color: var(--btn-primary-bg);
  border-color: var(--btn-primary-bg);
  color: var(--btn-primary-text);
  opacity: 0.4;
  cursor: not-allowed;
}

/* SECONDARY (OUTLINE)*/
.modal_secondary_button,
.inline_confirm_button {
  max-height: 51px;
  font-weight: 600;
  font-size: 14px;
  border-width: 1px;
  border-radius: 20px;
  background-color: var(--btn-secondary-bg);
  color: var(--btn-secondary-text) !important;
  border-color: var(--btn-primary-white-border);
}

.inline_confirm_button {
  max-height: 54px;
}

/* Hover */
.modal_secondary_button:hover,
.inline_confirm_button:hover {
  background-color: var(--btn-secondary-bg-hover);
  color: var(--btn-secondary-text-hover) !important;
}

/* Pressed */
.modal_secondary_button:active,
.inline_confirm_button:active {
  background-color: var(--btn-secondary-bg-pressed);
}

/* Disabled */
.modal_secondary_button:disabled,
.inline_confirm_button:disabled {
  opacity: 0.5;
}

/* BUTTON-GROUP */
.btn-group {
  display: flex;
}

.user_change_password_button {
  font-weight: 400;
  font-size: 14px;
  border-width: 1px;
  border-radius: 8px;
  background-color: var(--ucp-btn-bg);
  color: var(--ucp-btn-text);
  border-color: var(--ucp-btn-border);
}

.user_change_password_button:hover {
  background-color: var(--ucp-btn-bg-hover);
  color: var(--btn-secondary-text-hover);
  border-color: var(--ucp-btn-border);
  font-weight: 600;
}

.user_change_password_button_selected {
  font-weight: 600;
  border-width: 1px;
  border-radius: 8px;
  background-color: var(--bg-selected);
  color: var(--text-heading);
  border-color: var(--ucp-btn-border);
}

.user_change_password_button_selected:hover {
  background-color: var(--ucp-btn-bg-hover);
  color: var(--ucp-btn-text);
  border-color: var(--ucp-btn-border);
}

/* Button group widget */
.ns-toggle-group .ns-btn {
  background: var(--btn-toggle-bg);
  color: var(--btn-toggle-text);
  border: 1px solid var(--btn-toggle-border);
  font-size: 14px;
  transition: all 0.2s ease;
}
.ns-toggle-group .ns-btn:hover {
  background: var(--btn-toggle-hover);
}
.ns-toggle-group .ns-btn.is-active {
  background: var(--btn-toggle-active);
  font-weight: 600;
}

/* TEXT BUTTON*/
.grey_modal_button,
.go_back_to_info_button {
  font-weight: 600;
  font-size: 14px;
  background-color: transparent;
  color: var(--btn-text-color);
  border: none;
}

/* Hover */
.grey_modal_button:hover,
.go_back_to_info_button:hover {
  background-color: transparent;
}

/* Pressed */
.grey_modal_button:active,
.go_back_to_info_button:active {
  background-color: transparent;
}

/* Disabled */
.grey_modal_button:disabled,
.go_back_to_info_button:disabled {
  opacity: 0.5;
}

/*cambiar clases diseño figma*/
/* PRIMARY WHITE */
.modal_cancel_button {
  font-weight: 600;
  font-size: 14px;
  border-width: 1px;
  border-radius: 20px;
  background-color: var(--bg-main);
  color: var(--btn-primary-white-text);
  border-color: 2px solid var(--btn-primary-white-border);
}

.modal_cancel_button:hover {
  background-color: var(--btn-primary-white-bg-hover);
  border-color: var(--btn-primary-bg-hover) !important;
  color: var(--btn-primary-white-text);
}

.modal_cancel_button:active {
  background-color: var(--btn-primary-white-bg-pressed);
}

.modal_cancel_button:disabled {
  opacity: 0.5;
}

/*SECONDARY*/
.inline_confirm_button:hover {
  background-color: var(--btn-secondary-bg-hover);
}

.inline_confirm_button:active {
  background-color: var(--btn-secondary-bg-pressed);
}

.inline_confirm_button:disabled {
  opacity: 0.5;
}

/* PRIMARY BLUE – DARK VARIANT */
.darker_modal_confirm_button {
  font-weight: 600;
  font-size: 14px;
  border-width: 2px;
  border-radius: 20px;
  background-color: transparent;
  color: var(--btn-primary-bg);
  border-color: var(--btn-primary-bg);
}

.darker_modal_confirm_button:hover {
  background-color: var(--btn-primary-bg);
  color: var(--btn-primary-text);
}

/*OTHERS*/
/* */
.solid_confirm_button {
  font-weight: 600;
  border-width: 2px;
  border-radius: 20px;
  background-color: var(--color-accent);
  color: var(--btn-primary-text);
}

.solid_confirm_button:hover {
  color: var(--btn-primary-text);
}

.cancel_button {
  font-weight: 600;
  border-width: 2px;
  border-radius: 20px;
  color: var(--color-accent);
}

.cancel_button:hover {
  color: var(--color-accent);
}

.new_modal_confirm_button {
  font-weight: 600;
  border-width: 2px;
  border-radius: 10px;
  border-color: var(--btn-primary-bg);
  color: var(--btn-primary-text);
  background-color: var(--btn-primary-bg);
}

.new_modal_confirm_button:hover {
  color: var(--btn-primary-text);
}

.white_confirm_button {
  font-weight: 600;
  border-width: 2px;
  border-radius: 20px;
  border-color: white;
  color: var(--text-primary);
  background-color: var(--btn-secondary-bg);
}

.white_confirm_button:hover {
  color: var(--text-primary);
}

.white_confirm_button_with_border {
  font-weight: 600;
  border-width: 2px;
  border-radius: 20px;
  border-color: #0D1D69;
  color: var(--btn-text-color);
  background-color: var(--btn-secondary-bg);
}

.white_confirm_button:hover {
  color: var(--btn-text-color);
}

/*Buttons*/
button:focus {
  outline: 1px dotted;
  outline: none;
}

/*Buttons group*/
.device-filter {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border-radius: 999px;
  background: var(--bg-surface);
}

.device-filter__btn {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  background: transparent;
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-muted);
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}
.device-filter__btn:hover {
  background: var(--bg-hover);
  color: var(--text-primary);
}
.device-filter__btn.active {
  background: var(--action-primary);
  color: var(--text-white);
  box-shadow: var(--card-shadow-active);
}

/* Licenses */
.add_license {
  max-height: 50px;
}

.card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  border: none;
  background-clip: border-box;
  word-wrap: break-word;
  overflow: visible !important;
  background: var(--card-bg);
  border-radius: 16px;
  box-shadow: var(--card-shadow);
  border: 1px solid var(--table-glass-border);
}

.card-body {
  flex: 1 1 auto;
  border-radius: 16px;
  width: 100%;
  padding: 1.25rem;
}

.card_lte_info {
  padding: 0px !important;
  border: 1px solid var(--table-glass-border);
  box-shadow: var(--card-shadow);
  border-radius: 16px;
  margin: 0;
}

.card-widget {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  overflow: hidden;
  background-color: var(--bg-card) !important;
}

.card-widget .card-body {
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: auto;
  max-height: 100%;
  max-width: 100%;
}

.card_shadow {
  box-shadow: var(--card-shadow);
}

.widget-header {
  padding: 10px;
  border: 0;
  background-color: var(--bg-card);
  min-height: 48px;
}

.title_widget {
  font-weight: 600;
  font-size: 1rem;
  flex-grow: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.card_shadow {
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2);
}

.card-body-tabs {
  padding: 0 !important;
}

/* CARD HEADER — BASE */
.card-header {
  padding: 12px 16px;
  margin-bottom: 0;
  background: transparent;
  border-bottom: 1px solid var(--card-border-soft);
  border-radius: 16px 16px 0 0 !important;
  border-bottom: none !important;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.column-block {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 5px;
}

.row-table-fix {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 1px !important;
  padding-right: 0 !important;
}

.padding_card_icon_battery {
  width: 50px;
  height: 50px;
  gap: 8px;
  align-items: center;
  display: flex;
  padding-right: 20px;
}

.padding_card_icon {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.row_nesgate_info {
  padding-left: 14px;
  padding-bottom: 20px;
}

.card_nesgate_info,
.map_nesgate_info {
  background: var(--surface-glass-bg);
  border: 1px solid var(--card-border);
  box-shadow: var(--card-shadow);
  border-radius: 16px !important;
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0.5rem;
  box-sizing: border-box;
  margin-top: 5px;
}

.card-counter {
  position: relative;
  box-shadow: var(--card-shadow);
  margin: 5px;
  padding: 20px 10px;
  height: 150px;
  border-radius: 5px;
  transition: box-shadow 0.3s ease;
}

.card-counter:hover {
  box-shadow: 5px 5px 20px rgba(131, 128, 128, 0.6);
}

.card-counter.primary {
  background-color: #007bff;
  color: var(--btn-primary-text);
}

.card-counter.danger {
  background-color: var(--state-error);
  color: var(--btn-primary-text);
}

.card-counter.success {
  background-color: var(--state-success);
  color: var(--text-white);
}

.card-counter.info {
  background-color: var(--color-accent);
  color: var(--text-white);
}

.card-counter i {
  font-size: 5em;
  opacity: 0.2;
}

.card-counter .count-numbers,
.card-counter .count-networks,
.card-counter .count-nameModel,
.card-counter .count-name,
.card-counter .count-device {
  position: absolute;
  right: 35px;
  display: block;
}

.card-counter .count-numbers {
  top: 20px;
  font-size: 28px;
}

.card-counter .count-networks {
  top: 20px;
  font-size: 14px;
}

.card-counter .count-nameModel {
  top: 65px;
  font-size: 18px;
  font-style: italic;
  text-transform: capitalize;
  opacity: 0.8;
}

.card-counter .count-name {
  top: 95px;
  font-size: 18px;
  font-style: italic;
  text-transform: capitalize;
  opacity: 0.5;
}

.card-counter .count-device {
  top: 125px;
  font-size: 14px;
  font-style: italic;
  text-transform: capitalize;
  opacity: 0.75;
}

.card-counter[selected] {
  border: 4px solid var(--black);
  transition: border 0.3s ease;
}

.zones,
.parents {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
  background-color: var(--bg-main);
  border: 4px solid var(--black);
  width: 90%;
  max-width: 700px;
  min-height: 75px;
  max-height: 350px;
  overflow-y: auto;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.zones[diselect],
.parents[diselect] {
  opacity: 0;
  visibility: hidden;
}

/* Labels e inputs */
#deviceAssigned h1 {
  margin-bottom: 10px;
  font-weight: 600;
  font-size: 20px;
}

#deviceAssigned input[type=radio],
#deviceAssigned input[type=checkbox] {
  display: none;
}

#deviceAssigned label {
  display: inline-block;
  padding: 10px;
  width: 90px;
  cursor: pointer;
  text-align: center;
  transition: background-color 0.2s ease;
}

#deviceAssigned label:hover,
#deviceAssigned input[type=radio]:checked + label,
#deviceAssigned input[type=checkbox]:checked + label {
  background: var(--bg-selected);
  border-radius: 20%;
}

.card-footer {
  padding: 0.75rem 1.25rem;
}

/* Espaciado */
.no_right_padding {
  padding-right: 10px !important;
}

.no_left_padding {
  padding-left: 6px !important;
}

.align-card-left {
  padding-left: 1rem;
}

.dropdown_datepicker_sensors,
.smallest_blue_text_nesmote_info {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-primary);
  padding-left: 0;
}

.card-group {
  padding-right: 10px;
  margin-top: 10px;
  gap: 0;
}

.card-group {
  gap: 0;
}

.card-body-tab-nesgates {
  margin-top: 8px;
  padding-left: 10px;
}

#create_actuation_rule_button {
  margin-bottom: 16px;
  display: block;
}

.table-wrapper {
  overflow-x: auto;
  width: 100%;
}

/* Responsive media queries */
@media (max-width: 768px) {
  .card,
  .card_nesgate_info,
  .nesmotes_nesgate_info_card,
  .map_nesgate_info {
    padding: 1rem;
    margin: 1rem 0;
    height: auto;
  }
  .card-counter .count-numbers,
  .card-counter .count-name,
  .card-counter .count-device {
    right: 10px;
    font-size: 16px;
  }
  .card-counter i {
    font-size: 3rem;
  }
  .zones,
  .parents {
    width: 95%;
  }
}
.dropdown_sensor_configuration_options_text:hover {
  color: var(--text-link-hover);
  font-weight: 600;
  background: var(--sidebar-bg-active);
}

.grid-stack {
  border: 1px solid var(--border-gridstack);
  border-radius: 5px;
}

.grid-stack-item-content {
  float: left;
  background-position: center center;
  background-size: cover;
  border-radius: 16px !important;
  box-shadow: var(--card-shadow);
  background: var(--card-bg) !important;
}

.grid-stack > .grid-stack-item > .grid-stack-item-content {
  border-radius: 8px;
  margin: 0;
  position: absolute;
  width: auto;
}

.grid-stack-item-content > .card-widget > .card-header {
  background: transparent !important;
  border: 1px solid transparent;
}

.grid-stack-item-content > .card-widget > .card-header:hover {
  background: var(--bg-header-widget) !important;
  border: 1px solid var(--border-header-widget);
}

.card-group .card {
  border-radius: 16px !important;
}

.card-group .card:not(.card-keep-radius):not(:first-child) {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}

.card-group .card:not(.card-keep-radius):not(:last-child) {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.highcharts-a11y-proxy-button {
  padding-top: 10px;
}

.other_values_graph {
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding-left: 13px;
  font-size: 20px;
  font-weight: 600;
  color: var(--text-primary);
  display: block;
  text-align: center;
}

.nesmote_name_information {
  cursor: pointer;
  width: 100%;
  border: 0px;
  border-color: var(--blue-5) !important;
  border-radius: 8px;
}

.note_network_info {
  cursor: pointer;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  display: block;
}

.tab-licenses {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.nesmote-icon {
  height: 40px !important;
  margin-left: -8px;
  justify-content: center;
}

.battery-icon {
  height: 38px !important;
  justify-content: center;
}

.equal-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.ping_results_box {
  border: 1px solid var(--input-border-filled);
  background: var(--input-bg);
  color: var(--text-primary);
  border-radius: 12px;
  padding: 12px;
  overflow-y: auto;
  min-height: 480px;
  height: 100%;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease, background 0.2s ease;
}

.ping_results_box:active {
  transform: scale(0.995);
}

.padding_card_columns .nesmote-name-wrapper {
  max-width: 100% !important;
  flex-grow: 1;
}

.note-row {
  padding-top: 12px;
  border-top: 1px solid #E0E0E0;
}

.device-uptime-block {
  margin-bottom: 16px;
}

/* Fecha Información*/
.device-uptime-block .col-12 {
  width: 100%;
  padding: 0;
  margin: 0;
  float: none;
}

.device-uptime-block span {
  display: block;
}

/* Etiqueta */
.device-uptime-block .title_network_info,
.device-uptime-block .title_inactive_since {
  font-size: 13px;
  font-weight: 500;
  color: #8a8fa3;
  line-height: 1.2;
}

/* Valor */
.device-uptime-block .ip_network_info {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  margin-top: 2px;
  word-break: break-word;
}

.sensor_draggable {
  background-color: var(--bg-main);
  color: var(--text-primary);
  border-radius: 0.75em;
  padding: 0.5%;
  touch-action: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.form-row {
  margin: 5px;
}

/* MODAL FORM */
/* === NESPRA MODAL SYSTEM === */
.modal-content {
  background: var(--bg-main) !important;
  padding: var(--panel-pad);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: var(--glass-blur-lg);
  border: 1px solid var(--glass-border);
  box-shadow: var(--card-shadow);
  border-radius: 16px;
}

/* Header */
.modal-header {
  background: var(--bg-main);
  backdrop-filter: blur(16px) saturate(140%);
  border-bottom: 1px solid var(--glass-border);
}

/* Body */
.modal-body {
  background-color: var(--bg-main);
  font: var(--ns-b1);
  color: var(--text-primary);
}

/* Footer */
.modal-footer {
  border-top: 1px solid var(--glass-border);
}

/* Title */
.ns-modal-title {
  color: var(--text-heading);
  font-size: 18px;
  font-weight: 600;
}

/* Inputs */
.ns-modal .form-control {
  color: var(--text-primary);
  border: 1px solid rgba(255, 255, 255, 0.12);
  font-size: var(--ns-fs-14);
}

.ns-modal .form-control::-moz-placeholder {
  color: var(--text-muted);
}

.ns-modal .form-control::placeholder {
  color: var(--text-muted);
}

/* LEGACY LABEL  */
/* MODAL FORM LABEL — SYSTEM */
.modal_form_label {
  font-family: var(--ns-font);
  letter-spacing: 0.4px;
  word-wrap: break-word;
  font-size: 13px;
  font-weight: 500;
  line-height: 16px;
  letter-spacing: 0.2px;
  color: var(--text-secondary);
  margin-bottom: 6px;
}

.label_actuation {
  display: block;
  padding-left: 0;
  color: var(--text-primary);
  font-size: var(--ns-label-size);
  font-family: var(--ns-font);
  font-weight: var(--ns-label-weight);
  line-height: var(--ns-label-line);
  letter-spacing: var(--ns-label-ls);
  word-wrap: break-word;
}

/* NEW SYSTEM*/
.ns-modal .ns-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.ns-modal .ns-field__label {
  color: var(--text-primary);
}

.ns-modal .ns-check {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}

/* CARD-BODY CENTRAR CNTENIDO */
.ns-card-centered {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.ns-card-centered {
  min-height: 100%;
}

.card-no-shadow {
  box-shadow: none !important;
}

.card-group-spacing {
  gap: 1rem;
}

.card-highcharts {
  background-color: var(--bg-highcharts);
}

.card-content {
  background-color: var(--bg-surface) !important;
}

.card-col-md-12 .card_smaller_margin_bottom {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  word-wrap: break-word;
  background-clip: border-box;
  border: none !important;
  border-radius: 0.25rem;
}

table.dataTable {
  background-color: var(--bg-card) !important;
  width: auto;
  table-layout: auto;
  margin: 0 auto;
  border-spacing: 0;
  padding-left: 3px;
  padding-right: 3px;
  white-space: nowrap;
}

/* Asegura ancho al 100% */
#maintenance_provisioning_table {
  width: 100% !important;
}

#acc_ftd_table_wrapper,
.table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

#networks_table {
  width: 100% !important;
  min-width: 600px;
}

/*table_body_actuation */
#table_actuation {
  table-layout: auto;
  width: 100%;
  word-break: break-word;
}

#table_actuation td {
  white-space: normal;
  word-break: break-word;
}

#table_actuation th {
  white-space: nowrap;
}

#table_actuation td.table-body-cell:last-child {
  width: 1%;
  white-space: nowrap;
  text-align: center;
}

#networks_table {
  width: 100% !important;
  min-width: 600px;
}

.card-maintenances {
  box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2);
  border-radius: 8px !important;
}

.col-sm-12 {
  width: 100% !important;
  table-layout: auto !important;
  padding-right: 0px;
}

.title_text_inventory {
  font-family: var(--ns-font);
  font-size: 19px;
  font-weight: 600;
  color: var(--color-primary);
  margin: 10px;
}

.text_inventory {
  font-family: var(--ns-font);
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
  margin: 10px;
}

.table-wrapper-rounded {
  border-radius: 10px;
  overflow: hidden;
  margin-top: 1rem;
}

div.dataTables_scrollBody {
  border-radius: 0 0 10px 10px !important;
  overflow: hidden !important;
}

.table-header-overview {
  background: var(--surface-header-bg);
}

table.dataTable thead th,
th.table-header-text-centered,
th.dt-center,
th.dt-head-center {
  text-align: left !important;
}

.tr-table-overview,
.table-header-overview {
  border-radius: 0;
  border: none !important;
  outline: none;
  box-shadow: none;
  padding: 0px !important;
}

.tr-table-overview {
  line-height: 40px;
  color: var(--text-primary);
  font-size: 14px;
  font-family: "Inter", sans-serif;
  letter-spacing: 0.1px;
  word-wrap: break-word;
  border: 0px;
  border-style: solid;
  border-color: var(--bg-selected);
  margin: 0 !important;
  padding: 0px !important;
}

.dt-container .dt-empty-footer {
  width: 100% !important;
  table-layout: auto;
  /* o fixed si necesitas alinear tamaños */
}

.row {
  display: flex;
  flex-wrap: nowrap;
  flex-wrap: wrap;
  margin-right: -16px !important;
  margin-left: -16px !important;
  border-radius: 0px 0px 8px 8px;
}

.tbody_notification {
  border-radius: 0px 0px 8px 8px;
}

.table-header-overview .table {
  background: rgba(210, 213, 226, 0.15) !important;
  padding: 12px 24px;
  border-radius: 0;
  border: none !important;
  outline: none;
  box-shadow: none;
}

.table-header-overview .dt-column-title {
  color: var(--text-primary);
  font-size: 14px;
  font-family: var(--ns-font);
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0.1px;
  word-wrap: break-word;
}

.table thead th {
  vertical-align: bottom;
  border-bottom: none !important;
  color: var(--text-primary);
}

th,
td {
  border: none;
}

.dt-scroll {
  padding: 1px;
  overflow-x: auto;
  width: 100%;
}

.dt-scroll-body {
  border-radius: 0px 0px 8px 8px;
  overflow-x: auto;
  max-width: 100%;
}

.table td {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.icon-column {
  width: 1%;
  white-space: nowrap;
  text-align: center;
}
.icon-column button,
.icon-column i {
  min-width: auto;
  width: auto;
  padding: 4px;
  margin: 0 2px;
}

.dt-info {
  color: var(--text-muted) !important;
  font-size: 12px;
  font-family: var(--ns-font) !important;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.4px;
  word-wrap: break-word;
  padding-left: 24px !important;
  margin-bottom: 20px;
}

.col-sm-4 .dt-info {
  color: var(--text-muted) !important;
  font-size: 12px;
  font-family: var(--ns-font) !important;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.4px;
  word-wrap: break-word;
  padding-left: 24px !important;
}

table.dataTable th.dt-empty,
table.dataTable td.dt-empty {
  text-align: center;
  vertical-align: top;
  color: var(--text-primary);
  font-size: 12px;
  font-family: var(--ns-font);
  font-weight: 400;
}

.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
  white-space: nowrap;
}

/* Contenedor de la paginación */
.dataTables_wrapper .dataTables_paginate {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  padding: 16px 24px;
  font-family: "Inter", sans-serif;
}

.dt-paging {
  color: var(--color-primary);
  font-size: 12px;
  font-family: var(--ns-font);
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0.4px;
  word-wrap: break-word;
  float: right;
  margin-top: 1%;
  margin-bottom: 1rem;
}

/* Asegura que los encabezados puedan posicionar las flechas */
table.dataTable thead th {
  position: relative;
  overflow: hidden;
}

/* ESTILO BASE */
table.dataTable thead th.dt-orderable-asc::after,
table.dataTable thead th.dt-orderable-desc::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url("../icons/arrowboth.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  right: 8px;
  top: 50%;
  margin-left: 10px;
  transform: translateY(-50%);
  opacity: 0.3;
  transition: opacity 0.2s ease;
}

table.dataTable thead th.dt-orderable-asc:hover::after,
table.dataTable thead th.dt-orderable-desc:hover::after {
  opacity: 1;
  filter: var(--blue-5);
}

/* ORDEN ACTIVO ASCENDENTE */
table.dataTable thead th.dt-ordering-asc::after {
  background-image: url("../icons/flechaup.svg");
  opacity: 1;
  filter: none;
}

/* ORDEN ACTIVO DESCENDENTE */
table.dataTable thead th.dt-ordering-desc::after {
  background-image: url("../icons/flechadown.svg");
  opacity: 1;
  filter: none;
}

.max_width_nesmotes_info {
  max-width: none;
  width: 100%;
}

.seen_check:hover {
  background-image: url("../icons/stepdonehover.svg");
  background-size: cover;
}

.table_info {
  border: none !important;
  border-style: solid;
  border: 1px solid var(--card-border);
  border-radius: 16px !important;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}

.tabs-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 0px;
  margin-bottom: 0rem;
}

.tabs-scroll-container {
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  flex: 1;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0 36px;
}

.tabs-scroll-container::-webkit-scrollbar {
  display: none;
}

.ul_device_tabs {
  display: flex;
  flex-wrap: nowrap !important;
}

.li_device_tab {
  flex: 0 0 auto;
}

.scroll-button {
  position: absolute;
  top: 30%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  background: transparent;
  border: none;
  border-radius: 9999px;
  z-index: 10;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.scroll-button span {
  width: 26px;
  height: 26px;
  background-color: var(--bg-scroll-button);
  box-shadow: 0px 1px 6px rgba(0, 0, 0, 0.3);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto 70%;
}
.scroll-button.left {
  left: 6px;
}
.scroll-button.left span {
  background-image: url(../../assets/icons/previous.svg);
}
.scroll-button.right {
  right: 3px;
}
.scroll-button.right span {
  background-image: url(../../assets/icons/next.svg);
}
.scroll-button:hover span {
  background-color: var(--bg-scroll-button-hover);
}
.scroll-button:focus, .scroll-button:active {
  outline: none;
  box-shadow: none;
}

.table-body-cell a {
  color: var(--text-link);
  text-decoration: underline !important;
}
.table-body-cell a:hover {
  color: var(--text-link-hover) !important;
}

#nesgate_signal_quality_info_table {
  margin-top: 16px !important;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}
#nesgate_signal_quality_info_table thead th:first-child {
  border-top-left-radius: 8px;
}
#nesgate_signal_quality_info_table thead th:last-child {
  border-top-right-radius: 8px;
}
#nesgate_signal_quality_info_table tbody tr:last-child td:first-child {
  border-bottom-left-radius: 8px;
}
#nesgate_signal_quality_info_table tbody tr:last-child td:last-child {
  border-bottom-right-radius: 8px;
}

.notifications_description:focus,
.connection_disconnection_notification_description:focus {
  outline: none !important;
  border-color: var(--blue-5) !important;
}

.connection_disconnection_notification_description {
  border: 0px;
  padding: 0px;
  border-radius: 8px;
}

.table-body-cell-no-wrap {
  white-space: nowrap;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.table_nesmotes_nesgates {
  width: 100%;
  table-layout: auto;
}

.table {
  background-color: var(--surface-glass-bg);
  border-radius: 0;
  width: 100%;
  margin: 0px !important;
}

td {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.table-inventory {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
}

.table-inventory th,
.table-inventory td {
  padding-left: 8px;
  padding-right: 8px;
}

.card .table-inventory {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.table-lorawan {
  padding: 0 !important;
  margin: 0 !important;
  background: var(--bg-main);
  border-radius: 16px !important;
}

#opcua_servers_table {
  width: 100%;
  height: 100%;
  border-right: none;
  border-bottom: none;
  margin: 0px -4px -20px 10px;
  padding: 0px !important;
}
#opcua_servers_table tbody tr td,
#opcua_servers_table thead tr th {
  border-right: none !important;
  border-bottom: none !important;
}
#opcua_servers_table tr:last-child td {
  border-bottom: none !important;
}

.calendar-column {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-left: 1.5rem;
}

.calendar-label {
  margin-bottom: 1;
  font-weight: 600;
  font-size: 18px;
}

.dt-search {
  padding: 10px;
  justify-content: flex-end;
}

/* Columnas de íconos en DataTables */
td.icon-col,
th.icon-col,
td.only-icon,
td.icon-fav {
  width: 56px;
  padding: 4px 6px !important;
  vertical-align: middle;
  white-space: nowrap;
}
td.icon-col a,
td.icon-col button,
td.icon-col span,
th.icon-col a,
th.icon-col button,
th.icon-col span,
td.only-icon a,
td.only-icon button,
td.only-icon span,
td.icon-fav a,
td.icon-fav button,
td.icon-fav span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
td.icon-col img,
td.icon-col svg,
th.icon-col img,
th.icon-col svg,
td.only-icon img,
td.only-icon svg,
td.icon-fav img,
td.icon-fav svg {
  width: 20px;
  height: 20px;
  display: inline-block;
}

td.only-icon {
  min-width: 32px;
  max-width: 40px;
  padding: 4px !important;
}

td.icon-fav {
  max-width: 56px;
  padding: 0 !important;
}
td.icon-fav img {
  display: block;
}

/* Fila de íconos (horizontal) */
.icon-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
}

.icon-col {
  text-align: center;
  padding: 0 !important;
  white-space: nowrap;
}

.icon-col img,
.icon-col svg {
  width: 16px;
  height: 16px;
  display: inline-block;
}

table.dataTable {
  width: 100%;
  margin: 0px auto;
  border-spacing: 0;
  padding-left: 3px;
  padding-right: 3px;
}

table td {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: var(--bg-main);
}

table.dataTable th,
table.dataTable td {
  white-space: nowrap;
}

table.dataTable td:nth-child(5),
table.dataTable td:nth-child(7) {
  max-width: 160px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.status {
  width: 56px;
}

th.table-header-text-centered,
td.table-header-text-centered {
  width: 100px;
  max-width: 100px;
  min-width: 100px;
  text-align: center;
  padding-left: 4px;
  padding-right: 4px;
}

th.col-seen,
td.col-seen {
  width: 100px;
  max-width: 100px;
  min-width: 100px;
  text-align: center;
  padding-left: 4px;
  padding-right: 4px;
}

.status-mod {
  width: 100px;
}

.nesgate_info_table_wrapper {
  overflow-x: hidden;
  padding-right: 0 !important;
}

.col-md-6 {
  position: relative;
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
}

/* Oculta el texto solo dentro de la tabla, no del filtro */
#networks_table td .disconnected-text,
#networks_table td .connected-text,
#nesgates_table td .disconnected-text,
#nesgates_table td .connected-text,
#nesmotes_table td .disconnected-text,
#nesmotes_table td .connected-text {
  position: absolute;
  left: -9999px;
}

#notifications_table td:nth-child(1),
#notifications_table th:nth-child(1) {
  width: 10px !important;
  text-align: center;
}

#inventoryTable th:nth-child(1),
#inventoryTable td:nth-child(1) {
  width: 36px !important;
  padding-left: 0;
  padding-right: 0;
  text-align: center;
}

.table-header {
  background-color: var(--bg-card);
}

#nesgate_info_table tr td {
  padding: 0px;
  border: 0px;
  vertical-align: middle;
  padding-left: 10px;
}

.tr-table-overview {
  line-height: 40px;
  border: 1px;
  border-style: solid;
  border-color: #E4E4E4;
}

.tr-table-popup-leaflet {
  border: 0px !important;
  border-style: solid;
  border-color: #E4E4E4;
  line-height: 20px;
}

.table-header-text-leaflet {
  font-size: 14px;
  font-family: "Inter", sans-serif !important;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
  border: 0px !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
  padding-top: 0px !important;
  padding-bottom: 0px !important;
}

.table-body-cell-leaflet {
  font-size: 12px;
  font-weight: 400;
  border: 0px !important;
  white-space: nowrap;
  padding-left: 10px !important;
  padding-right: 10px !important;
}

.table-body-cell-leaflet-nesgate {
  font-size: 12px;
  font-weight: 400;
  border-left: 0px !important;
  border-top: 0px !important;
  border-bottom: 0px !important;
  white-space: nowrap;
  padding-left: 10px !important;
  padding-right: 10px !important;
}

.map_widget_num_sensors_tooltip {
  font-size: 14px;
  font-family: "Inter", sans-serif !important;
  font-weight: 600;
  color: var(--color-primary);
  border: 0px !important;
  white-space: normal;
  word-wrap: break-word;
  padding-left: 10px !important;
  padding-bottom: 4px !important;
  font-variant-numeric: tabular-nums;
}

.map_widget_num_sensors_for_state_tooltip {
  font-size: 12px;
  font-family: "Inter", sans-serif !important;
  font-weight: 600;
  border: 0px !important;
  white-space: normal;
  word-wrap: break-word;
  padding-left: 10px !important;
  padding-top: 4px !important;
  padding-bottom: 4px !important;
  font-variant-numeric: tabular-nums;
}

.map_widget_device_name {
  font-size: 14px;
  font-family: "Inter" !important;
  font-weight: 500;
  border: 0px !important;
}

.map_widget_timestamp {
  font-size: 12px;
  font-family: "Inter" !important;
  font-weight: 400;
  border: 0px !important;
  white-space: nowrap;
}

.map_widget_sensor_type {
  font-size: 14px;
  font-family: "Inter" !important;
  font-weight: 400;
  border: 0px !important;
}

.map_widget_map_status_text {
  font-size: 14px;
  padding-left: 8px;
  font-family: "Inter" !important;
  font-weight: 400;
  border: 0px !important;
  color: var(--text-secondary);
}

.map_widget_bold_text {
  font-size: 14px;
  font-family: "Inter" !important;
  font-weight: 600;
  border: 0px !important;
}

.tr-table-without-border {
  line-height: 40px;
}

.table thead tr {
  border: 0px;
}

.table tr td {
  padding: 0px;
  vertical-align: middle;
  padding-left: 10px;
}

.table {
  margin-bottom: 0px;
}

.table-header-overview {
  border: 1px solid rgba(210, 213, 226, 0.5);
  border-radius: 8px 8px 0 0;
  overflow: hidden;
}

.table-header-text {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
}

.table-header-small-text {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
}

.table-header-smaller-text-with-wrap {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-primary);
}

.table-header-text-centered {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  text-align: center;
  white-space: nowrap;
}

.table-header-text-no-border-blue {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
  border: 0px !important;
}

.table-header-text-no-border-blue-centered {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
  border: 0px !important;
  text-align: center;
}

.table-header-text-no-border-black {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  border: 0px !important;
}

.table-header-text-no-border-black-centered {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  text-align: center;
  white-space: nowrap;
  border: 0px !important;
}

.table-body-cell {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-primary);
}

.table-body-cell-no-wrap {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-primary);
  white-space: nowrap;
}

.table-body-cell-centered {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-primary);
  text-align: center !important;
}

.table-body-cell-right {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-primary);
  text-align: right;
}

.table-body-cell-edit-user-networks {
  font-size: 13px;
  font-weight: 400;
  color: var(--text-primary);
  text-align: right;
  padding-right: 20px !important;
}

.table-body-cell-highlighted {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-primary);
  text-align: center;
}

.table-body-cell-warning {
  font-size: 13px;
  font-weight: 400;
  color: #f3ca3e;
}

.table-body-cell-danger {
  font-size: 13px;
  font-weight: 400;
  color: #ea5658;
}

.table_link {
  color: var(--text-link);
  font-size: 14px;
  font-weight: 400;
  text-decoration: underline;
  cursor: pointer;
}

.table_link:hover {
  text-decoration: none;
  filter: brightness(1.15);
  transform: translateY(-1px);
  transition: all 0.18s ease;
}

.table_link_bold {
  font-size: 15px;
  font-weight: 600;
  text-decoration: underline;
  color: var(--color-primary);
}

.max_width_nesmotes_info {
  max-width: 745px;
}

.license_status_end {
  background-color: var(--state-error) !important;
}

.license_status_30_days_left {
  background-color: #ff9900 !important;
}

.license_status_60_days_left {
  background-color: var(--state-warning) !important;
}

.table tr td {
  padding-top: 14px;
  padding-bottom: 14px;
}

/* TABLES / DATATABLES  */
.card.padding-for-card {
  background: var(--surface-glass-bg);
  border-radius: var(--table-radius);
  border: 1px solid var(--table-glass-border);
  overflow: hidden;
}

.dt-container {
  padding-right: 16px;
  box-sizing: border-box;
}

.col-sm-12 {
  padding-right: 0;
}

.barra-titulo {
  background: var(--card-bg);
  border-bottom: 1px solid var(--table-border-soft);
  padding: var(--table-header-padding);
  border-radius: 16px 16px 0px 0px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  width: 100%;
  box-sizing: border-box;
}

.barra-titulo__izquierda {
  display: flex;
  align-items: center;
}

.barra-titulo__derecha {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}

.barra-titulo .titulo {
  font-family: var(--ns-font);
  font-size: var(--font-size-body1);
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
}

.buscador {
  background: var(--table-search-bg);
  border-radius: var(--table-search-radius);
  border: 1px solid transparent;
  padding: var(--table-search-padding);
  display: flex;
  height: 40px;
  align-items: center;
  gap: var(--table-search-gap);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.buscador:hover {
  border-color: var(--input-border-hover) !important;
}

.buscador:focus-within {
  border-color: var(--input-border-focus) !important;
}

.buscador input:-webkit-autofill,
.buscador input:-webkit-autofill:hover,
.buscador input:-webkit-autofill:focus,
.buscador input:-webkit-autofill:active,
.buscador-panel input:-webkit-autofill,
.buscador-panel input:-webkit-autofill:hover,
.buscador-panel input:-webkit-autofill:focus,
.buscador-panel input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 1000px transparent inset !important;
  -webkit-text-fill-color: var(--input-text) !important;
  caret-color: var(--primary);
  -webkit-transition: background-color 9999s ease-in-out 0s;
  transition: background-color 9999s ease-in-out 0s;
}

.buscador svg {
  color: var(--icon-secondary);
}

.buscador input.form-control {
  background: transparent !important;
  border: none;
  box-shadow: none;
  color: var(--text-primary);
}

.table.dataTable {
  background: transparent;
  border-spacing: 0 var(--table-row-gap);
}

.thead.table-header-overview th {
  background: var(--table-th-bg);
  color: var(--table-th-text);
  font-weight: 600;
  border: none;
  padding: var(--table-th-padding);
}

.tbody tr {
  background: var(--table-row-bg);
  border-radius: var(--table-row-radius);
  transition: background 0.15s ease, transform 0.12s ease;
}

.tbody tr:hover {
  background: var(--table-row-bg-hover);
  transform: translateY(-1px);
}

.tbody td {
  padding: var(--table-cell-padding);
  color: var(--table-cell-text);
  border: none;
}

.table.dataTable tbody tr.selected {
  background: var(--table-row-bg-selected) !important;
}

/* DATATABLES – PAGINATION  */
div.dt-container .dt-paging {
  color: var(--text-primary);
  float: right;
  margin-top: 12px;
  margin-bottom: 1rem;
  display: flex;
  justify-content: flex-end;
  padding-right: 6px;
}
div.dt-container .dt-info {
  margin-top: 1rem;
}
div.dt-container .dt-paging nav {
  display: flex;
  gap: 10px;
  align-items: center;
  background: var(--table-pagination-bg);
  padding: 6px;
  border-radius: 10px;
  border: 1px solid var(--table-pagination-border);
}
div.dt-container .dt-paging-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: var(--dt-pagination-radius);
  color: var(--dt-pagination-text) !important;
  font-weight: 500;
  box-shadow: none !important;
  transition: background 0.15s ease, color 0.15s ease, transform 0.12s ease;
}
div.dt-container .dt-paging nav .ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 6px;
  line-height: 1;
  color: var(--dt-pagination-text);
  opacity: 0.6;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
div.dt-container .dt-paging-button img.app-icon {
  width: 14px;
  height: 14px;
  opacity: 0.8;
}
div.dt-container .dt-paging-button:not(.disabled):not(.current):hover {
  background: var(--dt-pagination-hover-bg) !important;
  color: var(--dt-pagination-active-text) !important;
  font-weight: 600;
  transform: translateY(-1px);
}
div.dt-container .dt-paging-button.current {
  background: var(--dt-pagination-active-bg) !important;
  border-color: var(--dt-pagination-border) !important;
  color: var(--dt-pagination-active-text) !important;
  font-weight: 600;
  border-radius: var(--dt-pagination-radius);
}
div.dt-container .dt-paging-button.current:hover {
  background: var(--dt-pagination-active-bg) !important;
  border-radius: var(--dt-pagination-radius);
}
div.dt-container .dt-paging-button:active {
  background: var(--dt-pagination-hover-bg) !important;
  transform: none;
}
div.dt-container .dt-paging-button.current:active {
  background: var(--dt-pagination-active-bg) !important;
}
div.dt-container .dt-paging-button.disabled,
div.dt-container .dt-paging-button.disabled:hover,
div.dt-container .dt-paging-button.disabled:active {
  opacity: 0.4;
  cursor: not-allowed;
  background: transparent !important;
  color: var(--text-muted) !important;
  transform: none;
  box-shadow: none;
}
div.dt-container .dt-paging-button:focus {
  outline: none;
}
div.dt-container .dt-paging-button:focus-visible {
  outline: 1px solid var(--dt-pagination-border);
  outline-offset: 1px;
}

/* Scroll DataTables */
.dt-scroll-body,
.dataTables_scrollBody {
  overflow: auto;
}
.dt-scroll-body::-webkit-scrollbar,
.dataTables_scrollBody::-webkit-scrollbar {
  height: 8px;
  width: 8px;
}
.dt-scroll-body::-webkit-scrollbar-track,
.dataTables_scrollBody::-webkit-scrollbar-track {
  background: var(--scroll-track);
}
.dt-scroll-body::-webkit-scrollbar-thumb,
.dataTables_scrollBody::-webkit-scrollbar-thumb {
  background-color: var(--scroll-thumb);
  border-radius: 8px;
  -webkit-transition: background-color 0.15s ease;
  transition: background-color 0.15s ease;
}
.dt-scroll-body::-webkit-scrollbar-thumb:hover, .dt-scroll-body::-webkit-scrollbar-thumb:active,
.dataTables_scrollBody::-webkit-scrollbar-thumb:hover,
.dataTables_scrollBody::-webkit-scrollbar-thumb:active {
  background-color: var(--scroll-thumb-hover);
}

/*Desym System NESPRA */
.ns-daterangepicker {
  --dp-text: var(--text-primary);
  --dp-text-muted: var(--text-muted);
  --dp-hover: var(--bg-hover);
  --dp-range: var(--bg-selected);
  --dp-primary: var(--btn-primary-bg);
  --dp-primary-hover: var(--btn-primary-bg-hover);
  --dp-primary-text: var(--btn-primary-text);
  --dp-input-bg: var(--input-bg);
  --dp-input-border: var(--input-border-default);
  --dp-input-text: var(--input-text);
  --dp-divider: var(--border-default);
}

.footer_public_page {
  position: fixed;
  bottom: 0;
  width: 100%;
  background-color: var(--bg-main);
  padding: 0.75rem 1.5rem;
  border-top: 1px solid #eee;
  font-size: 12px;
  font-family: var(--ns-font);
  font-weight: 500;
  color: var(--text-muted);
  line-height: 16px;
  letter-spacing: 0.4px;
  word-wrap: break-word;
  z-index: 1000;
}

.footer_public_content {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.2rem;
  flex-wrap: wrap;
  text-align: center;
}

.footer_public_content .org_logo {
  height: 22px;
  vertical-align: middle;
}

.footer_public_content span,
.footer_public_content span * {
  font-size: 12px;
  font-family: var(--ns-font);
  font-weight: 500;
  line-height: 16px;
  letter-spacing: 0.4px;
  word-wrap: break-word;
}

.a {
  color: var(--blue-5);
  text-decoration: underline;
}

.footer_public_content span,
.footer_public_content span:not(:has(a)) {
  color: var(--text-muted);
}

.span:has(a) {
  color: var(--blue-5);
}

.titlepanels {
  justify-content: flex-end;
  color: var(--btn-text-color);
}

.logopanels {
  height: 26px;
  max-width: 120px;
  vertical-align: middle;
}

#org_logo_row, #dashboard_name_row {
  font-size: 13px;
  padding: 10px;
  color: var(--text-primary);
  white-space: nowrap;
  background-color: var(--bg-main);
}

#last_refresh_text,
#last_refresh_time {
  font-size: 12px;
  color: var(--text-muted);
}

#go_fullscreen {
  cursor: pointer;
}

#fullscreen_div::backdrop {
  background-color: var(--bg-fullscreen) !important;
}

.card-widget {
  background: var(--surface-glass-bg);
  container-type: inline-size;
  display: flex;
  width: 100%;
  min-width: 0;
  block-size: 100%;
  overflow: hidden;
  border-radius: 16px;
}

.widget {
  container-type: size;
  container-name: widget;
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
  overflow: hidden;
  inline-size: 100%;
  block-size: 100%;
  min-width: 0;
}

.widget_value_units_row {
  display: flex;
  align-items: baseline;
  gap: 0.35em;
  white-space: nowrap;
  min-width: 0;
}

.widget_value_units_row {
  white-space: normal;
}

/* VALOR */
@supports (font-size: 1cqw) {
  .widget_small_font_size {
    font-size: clamp(22px, 4cqmin, 28px);
  }
  .widget_medium_font_size {
    font-size: clamp(28px, 6cqmin, 54px);
  }
  .widget_big_font_size {
    font-size: clamp(34px, 8cqmin, 94px);
  }
}
/* UNIDADES */
@supports (font-size: 1cqw) {
  .widget_units_small {
    font-size: clamp(14px, 1.4cqmin, 18px);
  }
  .widget_units_medium {
    font-size: clamp(18px, 1.8cqmin, 24px);
  }
  .widget_units_big {
    font-size: clamp(22px, 2.8cqmin, 64px);
  }
}
@supports not (font-size: 1cqw) {
  .widget_small_font_size {
    font-size: clamp(22px, 1.2em, 28px);
  }
  .widget_medium_font_size {
    font-size: clamp(28px, 1.8em, 54px);
  }
  .widget_big_font_size {
    font-size: clamp(34px, 2.4em, 94px);
  }
  /* UNIDADES */
  .widget_units_small {
    font-size: clamp(14px, 0.66em, 18px);
  }
  .widget_units_medium {
    font-size: clamp(18px, 1em, 24px);
  }
  .widget_units_big {
    font-size: clamp(22px, 1.3em, 64px);
  }
}
.widget_big_font_size,
.widget_medium_font_size,
.widget_small_font_size {
  line-height: 1.05;
  font-weight: 600;
  color: var(--color-accent);
  text-overflow: ellipsis;
  overflow: hidden;
}

.widget_units_big,
.widget_units_medium,
.widget_units_small {
  line-height: 1.05;
  font-weight: 600;
  color: var(--text-secondary);
  opacity: 0.9;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
}

.widget_units_small {
  line-height: 1.1;
  font-weight: 500;
}

.widget-text-size-group {
  margin-left: 3px;
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--ucp-btn-border);
  border-radius: 10px;
  overflow: hidden;
  background-color: var(--ucp-btn-bg);
}
.widget-text-size-group .btn-text-size {
  flex: 1;
  background-color: var(--ucp-btn-bg);
  color: var(--ucp-btn-text);
  font-weight: 600;
  font-size: 14px;
  line-height: 1.2;
  padding: 8px 16px;
  border: none;
  border-right: 1px solid var(--ucp-btn-border);
  border-radius: 0;
  box-shadow: none;
  text-transform: none;
  transition: background-color 0.2s ease, color 0.2s ease, font-weight 0.2s ease;
}
.widget-text-size-group .btn-text-size:hover, .widget-text-size-group .btn-text-size:focus-visible {
  background-color: var(--ucp-btn-bg-hover);
  outline: none;
}
.widget-text-size-group .btn-text-size:last-child {
  border-right: none;
}
.widget-text-size-group .btn-text-size.btn-text-size-selected {
  font-weight: 700;
  border-width: 1px;
  background-color: var(--bg-selected);
  color: var(--text-heading);
  border-color: var(--ucp-btn-border);
}

[id^=time_range_widget_] {
  font-size: 12px !important;
  padding-left: 20px;
  font-weight: 400;
  color: var(--text-secondary);
  flex: 1 1 auto;
  min-width: 0;
  white-space: normal;
  display: block;
  overflow: visible;
  word-break: break-word;
}

.custom-select-wrapper {
  margin: 0px 18px;
  cursor: pointer;
}

/* Menú personalizado widgets */
.custom-select-menu {
  display: none;
  position: absolute;
  top: 22px;
  left: 0;
  min-width: 140px;
  padding: 6px 0;
  background: var(--bg-main);
  border: 1px solid var(--table-glass-border);
  border-radius: 16px;
  box-shadow: var(--card-shadow);
  z-index: 999;
  max-height: none;
  overflow-y: hidden;
}
.custom-select-menu.is-open {
  display: block;
}

.custom-select-item {
  padding: 8px 14px;
  font-size: 14px;
  font-weight: 400;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, font-weight 0.2s ease;
  color: var(--text-primary);
}
.custom-select-item:hover {
  background: var(--ucp-btn-bg-selected);
  color: var(--text-link-hover);
  font-weight: 600;
}

.custom-select-menu {
  position: absolute;
  display: none;
  z-index: 999;
}

.custom-select-menu.is-open {
  display: block;
}

/*Customtoggle Widgets*/
.custom-select-toggle {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--text-link);
  font-size: 14px;
  font-weight: 500;
}

/*  CONTENEDOR DEL MENÚ  */
.highcharts-contextmenu {
  margin-right: 10px;
  min-width: 180px;
  background-color: var(--bg-main);
  border: 1px solid var(--table-glass-border);
  background-clip: padding-box;
  border-radius: 16px !important;
  padding: 0 !important;
}

.highcharts-menu-item {
  display: flex;
  align-items: center;
  margin: 2px 0;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary);
  border-radius: 10px;
}

/* Hover moderno tipo SaaS */
.highcharts-menu-item:hover {
  background: var(--ucp-btn-bg-selected) !important;
  color: var(--text-link-hover) !important;
  font-weight: 600;
}

.highcharts-menu-item:active {
  transform: scale(0.98);
}

/* Evita que el menú se corte dentro del gráfico */
[id^=widget_body_],
.highcharts-figure,
.chart-container,
.highcharts-container {
  overflow: visible !important;
  position: relative !important;
}

.highcharts-root {
  overflow: hidden !important;
}

.highcharts-menu {
  list-style: none;
  margin: 0px;
  box-shadow: none;
  border: none;
  border-radius: 16px !important;
  background: var(--bg-main);
  border-radius: 16px;
  box-shadow: var(--card-shadow);
}

.highcharts-menu-item {
  font-size: 13px;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, font-weight 0.2s ease;
  color: var(--text-primary);
}
.highcharts-menu-item:hover {
  background: var(--ucp-btn-bg-selected);
  color: var(--text-link-hover);
  font-weight: 600;
}

.card-header,
.widget-header,
.widget-toolbar {
  flex: 0 0 auto;
  z-index: 20;
}

/* Títulos izquierda */
.add_new_widget {
  color: var(--text-primary);
  font: 600 19px/24px Inter, sans-serif;
  letter-spacing: 0.15px;
  word-wrap: break-word;
}

.type_widget {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-bottom: 16px;
  color: var(--text-primary);
  font: 400 14px/20px Inter, sans-serif;
  letter-spacing: 0.25px;
  word-wrap: break-word;
}

.close.dismiss_modal {
  background: transparent;
  right: 16px;
  border: none;
  outline: none;
  padding: 4px;
  line-height: 0;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.close.dismiss_modal:focus,
.close.dismiss_modal:active {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}

.close.dismiss_modal:hover {
  transform: scale(1.1);
}

#edit_datasource_modal .modal-dialog.modal-xl {
  max-width: 1200px;
}

/* Layout columnas */
#edit_datasource_modal .row#modal-two-cols {
  display: flex;
  align-items: stretch !important;
}

#modal-two-cols {
  --bs-gutter-x: 24px;
}

#edit_datasource_modal #col_widgets {
  width: 100%;
  max-width: 100%;
}

@media (min-width: 576px) {
  #edit_datasource_modal #col_widgets {
    flex: 0 0 380px;
    max-width: 380px;
    border-radius: 12px;
    padding-left: 24px;
    padding-right: 24px;
  }
}
.card-panel {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  padding: 24px !important;
  margin-bottom: 16px;
  border-radius: 16px;
  background: var(--surface-glass-bg);
  border: 1px solid var(--glass-border);
  box-shadow: var(--card-shadow);
}

#edit_datasource_modal #col_widgets .row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 0;
}

#edit_datasource_modal #col_widgets .row > [class*=col-] {
  padding-left: 8px;
  padding-right: 8px;
  max-width: none;
  flex: none;
}

/* Imágenes */
#edit_datasource_modal img {
  max-width: 100%;
  height: auto;
}

/* Preview imagen */
#container_image_preview,
#container_upload_image {
  width: 100% !important;
}

#container_upload_image {
  min-height: 360px;
}

#container_widget_info {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

#edit_datasource_modal .col-12.d-flex.justify-content-end {
  margin-top: auto;
  padding: 16px 24px;
}

.toggle.btn {
  margin-bottom: 5px;
}

/*OTHERS*/
.col-left-right-paddings {
  padding-left: 10px !important;
  padding-right: 10px !important;
}

.widget_description_wrapper {
  line-height: 0.7;
  margin-top: 5px;
  margin-bottom: 10px;
}

/* .widget_type_image_selected {
    background-color: white;
} */
.important_hide {
  display: none !important;
}

.title_widget {
  border: 0px;
  width: 100%;
  font-weight: 600;
}

.title_widget:focus {
  outline: none !important;
  box-shadow: 0 0 10px #00B9E4;
}

.ui-resizable-handle {
  opacity: 0.4;
}

.date-size-title-0 {
  font-size: 10px;
}

.date-size-title-1 {
  font-size: 14px;
}

.date-size-title-2 {
  font-size: 16px;
}

.date-size-title-3 {
  font-size: 24px;
}

.kpi-size-title-0 {
  font-size: 10px;
}

.kpi-size-title-1 {
  font-size: 11px;
}

.kpi-size-title-2 {
  font-size: 13px;
}

.kpi-size-title-3 {
  font-size: 20px;
}

.center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

#alert_list_of_emails, #alarm_list_of_emails, #alert_list_of_phones, #alarm_list_of_phones,
#edit_alert_list_of_emails, #edit_alarm_list_of_emails, #edit_alert_list_of_phones, #edit_alarm_list_of_phones,
#nesgate_disconnection_list_of_emails, #nesgate_disconnection_list_of_phones, #nesmote_disconnection_list_of_emails,
#nesmote_disconnection_list_of_phones, #battery_list_of_emails, #battery_list_of_phones, #list_of_emails, #list_of_sensors,
#list_of_licenses_to_renew, #list_of_emails_privileges, #shared_to_list_of_emails, #create_list_of_emails_privileges, #maintenance_list_of_emails,
#maintenance_list_of_phones {
  list-style-type: none;
  padding-left: 0px !important;
}

.alert_remove_email, .alarm_remove_email, .alert_remove_phone, .alarm_remove_phone,
.nesgate_remove_email, .nesgate_remove_phone, .nesmote_remove_email, .nesmote_remove_phone,
.battery_remove_email, .battery_remove_phone, .alert_remove_sensor, .remove_license_to_renew {
  font-weight: 600;
  float: right;
  cursor: pointer;
}

.label_notifications_modal {
  font-size: 13px;
  color: var(--text-primary);
  display: block;
  font-weight: 600;
}

.composite_data_keyboard_grey {
  margin-top: 3px;
  width: 80px;
  height: 40px;
  background: var(--bg-surface);
  border: 1px solid var(--btn-primary-white-border);
  border-radius: 5px;
  padding: 10px;
  display: inline-block;
  line-height: 20px;
  cursor: pointer;
  text-align: center;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.composite_data_keyboard_white {
  margin-top: 3px;
  width: 80px;
  height: 40px;
  background: var(--bg-main);
  border: 1px solid var(--btn-secondary-bg-pressed);
  border-radius: 5px;
  padding: 10px;
  display: inline-block;
  line-height: 20px;
  cursor: pointer;
  text-align: center;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.composite_data_keyboard_empty {
  margin-top: 3px;
  width: 80px;
  height: 40px;
  background: var(--bg-main);
  border: 1px solid var(--btn-secondary-bg-pressed);
  border-radius: 5px;
  padding: 10px;
  display: inline-block;
  line-height: 20px;
  text-align: center;
  color: var(--icon-color);
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.modal-l {
  width: 90%;
  max-width: 750px;
}

.modal-xl {
  width: 100%;
  max-width: 1100px;
}

.modal-xxl {
  width: 90%;
  max-width: 1335px;
}

.modal-xxxl {
  width: 90%;
  max-width: 1700px;
}

.circle_selected {
  outline: none;
  box-shadow: 0px 0px 20px #00b9e4;
}

.leaflet-container .select_sensor_status_map a {
  color: var(--color-primary);
}

.truncate-text-two-lines {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.5; /* Adjust based on your line height */
  max-height: 3em; /* Should be line-height * number of lines (2 in this case) */
}

.new_nespra_spinner {
  width: 15%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(farthest-side, rgb(13, 29, 105) 100%, rgba(0, 0, 0, 0)) top/8px 8px no-repeat, conic-gradient(rgba(0, 0, 0, 0) 0%, rgb(13, 29, 105));
  -webkit-mask: radial-gradient(farthest-side, rgba(0, 0, 0, 0) calc(100% - 8px), #000 0);
  animation: s3 1s infinite linear;
}

.progress-container {
  width: 100%;
  background-color: #e0e0e0;
  overflow: hidden;
  height: 15px;
  margin: 1% 5% 1% 5%;
}

.progress-bar {
  height: 100%;
  text-align: center;
  line-height: 30px;
  color: white;
  font-weight: bold;
}

@keyframes s3 {
  100% {
    transform: rotate(1turn);
  }
}
.theader_table_widget {
  color: "black";
  white-space: "normal";
  overflow-wrap: "break-word";
  max-width: "150px";
  text-align: "center";
  line-height: "20px";
  background-color: "#F3F3F3";
}

/*Customtoggle Widgets*/
.custom-select-toggle {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--text-link);
  font-size: 14px;
}

/* RADIO */
.widget-option__radio {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* CONTENEDOR */
.widget-option {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: -moz-fit-content;
  width: fit-content;
}

/* ICONO BASE */
.widget-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1/1;
  box-sizing: border-box;
  border-radius: 8px;
  background: transparent;
  /* ÚNICA FUENTE DE COLOR */
  --widget-role: var(--icon-disabled);
  color: var(--widget-role);
  /* DERIVACIONES */
  --widget-icon-arc-primary: color-mix(in srgb, var(--widget-role) 18%, transparent);
  --widget-icon-arc-secondary: color-mix(in srgb, var(--widget-role) 40%, transparent);
  --widget-icon-text: var(--widget-role);
  --widget-icon-needle: var(--widget-role);
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease, color 0.2s ease;
}

/* TAMAÑOS */
.widget-icon--sm {
  width: 64px;
}

.widget-icon--md {
  width: 96px;
}

.widget-icon--lg {
  width: 128px;
}

/* HOVER */
.widget-option:hover .widget-icon {
  background: var(--widget-bg-hover);
  --widget-role: var(--icon-color);
  --widget-icon-arc-primary:color-mix(in srgb, var(--icon-color) 18%, transparent);
  --widget-icon-arc-secondary:color-mix(in srgb, var(--widget-role) 60%, transparent);
  --widget-icon-text: var(--widget-role);
  --widget-icon-needle: var(--icon-color);
  transform: translateY(-1px);
}

/* ACTIVE */
.widget-option__radio:checked + .widget-icon {
  background: var(--widget-bg-active);
  --widget-role: var(--icon-active);
  color: var(--icon-active);
  --widget-icon-arc-primary: var(--icon-color);
  --widget-icon-arc-secondary: var(--icon-active-soft);
  --widget-icon-text: var(--icon-active);
  --widget-icon-needle: var(--icon-color);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
  transform: translateY(-2px);
}

/* DISABLED */
.widget-option__radio:disabled + .widget-icon {
  cursor: not-allowed;
  opacity: 0.45;
  --widget-role: var(--icon-disabled);
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  transform: none;
}

.widget-cell {
  width: 100%;
}

.cp-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: var(--bg-main);
  padding: 20px;
}

.cp-form {
  width: 100%;
  max-width: 480px;
  padding: 42px;
  border-radius: 16px;
  display: flex;
  background: var(--bg-main);
  flex-direction: column;
  align-items: center;
}

.cp-logo img {
  width: 140px;
  margin-bottom: 26px;
}

.cp-label {
  font-size: 13px;
  font-weight: 500;
  color: #4A4A4A;
  display: block;
  margin-bottom: 6px;
}

.cp-input {
  width: 100%;
  height: 44px;
  border: 1px solid #D0D4E4;
  border-radius: 8px;
  padding: 0 14px;
  font-size: 14px;
  background: #fff;
  transition: all 0.2s ease;
}
.cp-input:focus {
  border-color: #0D1D69;
  box-shadow: none;
  outline: none;
}

.cp-field {
  width: 100%;
  margin-bottom: 18px;
}

.cp-btn {
  width: 100%;
  height: 44px;
  background: #0D1D69;
  color: white;
  border: none;
  border-radius: 12px;
  font-weight: 600;
  font-size: 14px;
  transition: all 0.2s ease;
  cursor: pointer;
  margin-top: 10px;
}
.cp-btn:hover {
  background: #1a2b80;
}
.cp-btn:active {
  transform: scale(0.98);
}

.cp-btn::-moz-focus-inner {
  border: 0 !important;
}

.cp-alert {
  width: 100%;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 13px;
  margin-bottom: 16px;
}

.cp-alert-info {
  background: #EEF4FF;
  color: #0D1D69;
  outline-offset: -1px;
}

.cp-alert-warning {
  background: #fff3d2;
  color: #8a5b00;
}

.cp-error {
  color: #c33;
  font-size: 12px;
  margin-top: 3px;
}

@media (max-width: 1024px) {
  #vertical_banner_column {
    background: var(--bg-surface);
  }
  .cp-form {
    max-width: 100%;
    border-radius: 0;
    box-shadow: none;
    padding: 32px 24px;
  }
  .cp-logo img {
    width: 110px;
    margin-top: 20px;
  }
}
.footer_not_logged {
  padding: 10px;
  border-top: 1px solid #E0E0E0;
}

.footer_not_logged_text {
  padding: 10px;
  color: var(--text-secondary);
  margin-bottom: 0px !important;
  text-align: center;
  font-weight: 400;
  font-size: 14px;
}

.cp-logo > #nespra_logo {
  height: 100px;
}

.label-row-reset {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0;
}

.toggle-password {
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  color: #0D1D69;
  transition: 0.2s;
}
.toggle-password:hover {
  opacity: 0.7;
}

/* Tabla paneles */
.buscador-panel {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 221px;
  height: 40px;
  background: var(--table-search-bg);
  border-radius: var(--table-search-radius);
  border: 1px solid var(--input-border-default);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.buscador-panel:hover {
  border-color: var(--input-border-hover);
}
.buscador-panel:focus-within {
  border-color: var(--input-border-focus);
}
.buscador-panel svg {
  position: absolute;
  left: 12px;
  width: 16px;
  height: 16px;
  fill: var(--input-placeholder);
  pointer-events: none;
}
.buscador-panel input.form-control {
  width: 100%;
  height: 100%;
  padding: 0 12px 0 36px;
  margin: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 6px;
  font-size: var(--ns-fs-14);
  line-height: 1;
  color: var(--input-text);
}
.buscador-panel input.form-control::-moz-placeholder {
  color: var(--input-placeholder);
}
.buscador-panel input.form-control::placeholder {
  color: var(--input-placeholder);
}

.card-widget .card-header {
  border: none;
  border-radius: 0;
  top: 0;
  left: 0;
  width: 100%;
  padding: 12px 16px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  outline-offset: -1px;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}
.card-widget .card-header:hover {
  background: var(--bg-header-widget);
}

#card_view_paneles .card-dashboard {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
}
#card_view_paneles .card-dashboard .hover-icons {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: 12px 16px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  background: var(--bg-header-widget);
  border: 1px solid var(--border-header-widget);
  outline-offset: -1px;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease-in-out;
  z-index: 2;
}
#card_view_paneles .card-dashboard:hover .hover-icons, #card_view_paneles .card-dashboard:focus-within .hover-icons {
  opacity: 1;
  pointer-events: auto;
}
#card_view_paneles .card-dashboard .icon-btn {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  border-radius: 50%;
  position: relative;
  cursor: pointer;
}
#card_view_paneles .card-dashboard .icon-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: transparent;
  transition: background 0.2s;
  pointer-events: none;
}
#card_view_paneles .card-dashboard .icon-btn:hover::before, #card_view_paneles .card-dashboard .icon-btn:focus-visible::before {
  background: rgba(255, 255, 255, 0.65);
}
#card_view_paneles .card-dashboard .icon-btn img {
  width: 20px;
  height: 20px;
  display: block;
  -o-object-fit: contain;
     object-fit: contain;
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  max-width: none !important;
  transform: none !important;
}
@media (hover: none) and (pointer: coarse) {
  #card_view_paneles .card-dashboard .hover-icons {
    opacity: 1;
    pointer-events: auto;
  }
}

#ordenar_privilegios_trigger[hidden] {
  display: none !important;
}

/* Flecha animada según dirección actual */
#ordenar_privilegios_trigger svg {
  transition: transform 0.15s ease;
}

#ordenar_privilegios_trigger[data-dir=desc] svg {
  transform: rotate(0deg);
}

#ordenar_privilegios_trigger[data-dir=asc] svg {
  transform: rotate(180deg);
}

.buscador-con-vista {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 16px;
}

.buscador-panel {
  flex: 1;
}

.btn-view {
  padding: 4px;
  transition: background 0.15s ease, transform 0.12s ease;
}

.btn-view:hover {
  background: var(--bg-selected);
}

.btn-view:active {
  transform: scale(0.99);
}

.separador-paneles {
  height: 1px;
  background: transparent;
}

.table-responsive {
  overflow-x: auto;
}

@media (max-width: 767.98px) {
  #control_panels_table td,
  #control_panels_table th {
    padding: 0.5rem 0.625rem;
  }
}
.card-dashboard {
  border: 1px solid var(--card-border);
  border-radius: 16px !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.card-dashboard:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(3, 6, 21, 0.06);
}

.card-dashboard .hover-icons {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.card-dashboard .table_link {
  font-weight: 600;
}

/* Estilo general (desktop) */
#ordenar_por_privilegios {
  display: flex;
  justify-content: flex-end;
  align-self: flex-end;
}

#ordenar_dir_toggle {
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem;
  transition: transform 0.2s ease;
}

@media (max-width: 767.98px) {
  #ordenar_por_privilegios {
    align-self: stretch;
  }
}
@media (max-width: 767.98px) {
  .table_link {
    display: inline-block;
    margin-top: 12px;
  }
}
.dropdown-orden {
  position: absolute;
  background: var(--bg-main);
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(3, 6, 21, 0.08);
  padding: 4px;
  z-index: 999;
  min-width: 200px;
}

.dropdown-orden button {
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 14px;
  cursor: pointer;
  outline: none;
}

.dropdown-orden button:hover {
  background: #F2F4F8;
}

.dropdown-orden button.active {
  background: #EEF2FF;
  font-weight: 600;
}

.show > .btn-light.dropdown-toggle {
  background-color: transparent;
}

.select-card {
  border: none !important;
}

.select-card,
.selectpicker .selectpicker,
.bootstrap-select .dropdown-toggle {
  background-color: transparent !important;
}

.select-card {
  background-color: transparent !important;
}

.dropdown-toggle:active {
  background-color: transparent !important;
}

#ordenar_por_privilegios .bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn) {
  width: auto !important;
}

#ordenar_por_privilegios .bootstrap-select > .dropdown-toggle {
  width: auto !important;
}

#ordenar_both .icon-asc,
#ordenar_both .icon-desc,
#ordenar_both .icon-both {
  display: none;
}

#ordenar_both[data-dir=asc] .icon-asc {
  display: inline;
}

#ordenar_both[data-dir=desc] .icon-desc {
  display: inline;
}

#ordenar_both[data-dir=both] .icon-both {
  display: inline;
}

@media (max-width: 767.98px) {
  #search_input_table_panel_settings {
    width: 100% !important;
    max-width: 100%;
  }
}
#ordenar_por_privilegios .bootstrap-select > .dropdown-toggle,
#ordenar_por_privilegios .bootstrap-select > .dropdown-toggle:focus,
#ordenar_por_privilegios .bootstrap-select > .dropdown-toggle:active,
#ordenar_por_privilegios .bootstrap-select.show > .dropdown-toggle {
  box-shadow: none !important;
  outline: 0 !important;
  border-color: transparent !important;
  -webkit-tap-highlight-color: transparent;
  padding-left: 5px;
}

#ordenar_privilegios_trigger {
  display: flex;
  align-items: center;
}

#ordenar_privilegios_trigger .ordenar-label {
  font-size: 14px;
  color: rgba(0, 0, 0, 0.7);
  line-height: 1;
  margin-bottom: 0;
}

.text_select {
  font-size: 14px;
  font-weight: 400;
  color: var(--text-primary);
  margin-top: 5px;
}

/* Elimina el borde superior de la cabecera DataTables */
.dt-scroll-head {
  overflow: hidden !important;
}

.dt-scroll-head thead th {
  border-top: none !important;
}

.tab-panels {
  padding: 0px;
  padding-right: 5px;
}

.cards_panels {
  padding-right: 0px;
}

/* BADGE BASE*/
.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.3px;
  font-family: var(--ns-font);
  white-space: nowrap;
  border: 1px solid transparent;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.badge-light {
  background-color: var(--bg-breadcrumb);
  color: var(--text-primary);
  border: 1px solid var(--text-secondary);
  padding: 0.25rem 0.65rem;
  display: inline-block;
  word-wrap: break-word;
}

.badge-editor {
  background-color: var(--badge-editor-bg);
  color: var(--badge-editor-text);
  border: 1px solid var(--badge-editor-border);
  display: inline-block;
  word-wrap: break-word;
}

.badge-only-read {
  background-color: var(--badge-only-read-bg);
  color: var(--badge-only-read-text);
  border: 1px solid var(--badge-only-read-border);
  display: inline-block;
  word-wrap: break-word;
}

.badge-propietary {
  background-color: var(--badge-propietary-bg);
  color: var(--badge-propietary-text);
  border: 1px solid var(--badge-propietary-border);
  display: inline-block;
  word-wrap: break-word;
}

.badge-external {
  background-color: var(--badge-external-bg);
  color: var(--badge-external-text);
  border: 1px solid var(--badge-external-border);
  display: inline-block;
  word-wrap: break-word;
}

.badge-row {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 6px !important;
}

.title_cards {
  color: var(--text-primary);
  font-size: 16px;
  font-family: var(--ns-font);
  font-weight: 600;
  line-height: 24px;
  letter-spacing: 0.15px;
  word-wrap: break-word;
  cursor: pointer;
  transition: color 0.2s ease;
}

.text_cards {
  color: var(--text-secondary);
  font-size: 12px;
  font-family: var(--ns-font);
  font-weight: 400;
  line-height: 18px;
  letter-spacing: 0.4px;
  word-wrap: break-word;
}

@media (max-width: 768px) {
  .card,
  .card.card-dashboard {
    padding: 0 !important;
    margin: 0;
    height: auto;
  }
}
.text_cards {
  line-height: 1.5;
}

.text_cards .meta-label {
  color: var(--text-secondary);
  font-size: 12px;
  font-family: var(--ns-font);
  font-weight: 400;
  line-height: 16px;
  letter-spacing: 0.4px;
  word-wrap: break-word;
}

.text_cards .meta-value,
.text_cards .meta-value a,
.text_cards .meta-value a:visited,
.text_cards .meta-value a:hover {
  color: var(--text-primary);
  font-size: 12px;
  font-family: var(--ns-font);
  font-weight: 400;
  line-height: 16px;
  letter-spacing: 0.4px;
  word-wrap: break-word;
}

.badge-row {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  flex-wrap: wrap;
}

:root {
  --hover-bg: #D2D5E2;
}

#ordenar_both {
  padding: 7px !important;
  border-radius: 0.25rem;
  border: 1px solid transparent;
  background: transparent !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  cursor: pointer;
  transition: background 0.15s ease;
}

#ordenar_both:hover,
#ordenar_both:focus-visible,
#ordenar_both:active {
  background: var(--bg-selected) !important;
  padding: 4px;
}

#ordenar_both img {
  display: block;
  pointer-events: none;
}

@media (max-width: 576px) {
  .card-dashboard .card-body {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas: "title tag" "meta  meta";
    align-items: center;
    -moz-column-gap: 8px;
         column-gap: 8px;
    row-gap: 12px;
    padding-top: 54px;
  }
  .card-dashboard .title_cards {
    grid-area: title;
    margin-bottom: 0 !important;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .card-dashboard .badge-row {
    grid-area: tag;
    margin: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
  }
  .card-dashboard .text_cards {
    grid-area: meta;
    margin-top: 8px;
  }
  .card-dashboard .badge-row .toggle_favorite {
    display: none !important;
  }
}
.fav-panels-title {
  color: var(--text-secondary);
  padding-left: 15px;
  font-size: 12px;
  font-family: var(--ns-font);
  font-weight: 500;
  text-transform: uppercase;
  line-height: 16px;
  letter-spacing: 0.7px;
  word-wrap: break-word;
}

.ul-favorites {
  margin-top: 5px;
  padding-bottom: 80px;
}

.panels-title {
  justify-content: center;
  display: flex;
  flex-direction: column;
  color: var(--text-primary);
  font-size: 19px;
  font-weight: 600;
  line-height: 24px;
  letter-spacing: 0.15px;
  word-wrap: break-word;
}

/* CONTROL PANEL OTHERS*/
.tag {
  padding: 4px 8px 4px 8px;
  margin-top: 10px;
  margin-bottom: 10px;
}

.add_new_widget {
  font-size: 19px;
  font-weight: 600;
}

.datasource_modal_body {
  background-color: var(--bg-surface);
}

.last_value_control_panel {
  font-weight: 600;
}

.last_value_title_control_panel {
  font-weight: 600;
  color: #0d1d69;
}

.gauge_title_control_panel {
  font-weight: 600;
  color: #0d1d69;
  margin-bottom: 0px;
}

html,
body {
  min-height: 100vh;
  margin: 0;
  font-family: var(--ns-font);
  background-color: var(--bg-main);
}

#fullscreen_div::backdrop {
  background-color: var(--bg-fullscreen);
}

#fullscreen_div {
  background-color: var(--bg-surface);
}

/* Mejorar espacios en widgets de paros */
.public-panels .card-body .row {
  margin-bottom: 8px;
}

.public-panels .card-body p,
.public-panels .card-body span {
  line-height: 1.15;
}

.page-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.page-content {
  flex: 1;
}