:root {
  --background: #f3f3f3b4;
  --backgroundInputs: #e7e7e7;
  --toneBluePrimary: #1e2b40;
  --toneBlueTextSoftButtons: #3b82f6;
  --toneActiveElements: #3b83f692;
  --toneGreyBorders: #94a3b8;
  --toneGreyBackground: #f1f5f9;
  --toneGreySolid: #f1f5f9;
  --toneGreyTextPrimary: #0f172a;
  --toneGreyTextSoft: #64748b;
  --toneWhite: #fff;
  --toneIcons: #11599c;
  --subtext: #8b8b8bef;
  --toneOk: #3cd20ee4;
  --toneInactive: #eb0e03e4;
  --backgroundLogin: #1e2b40;
}

/* Scroll vertical */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: #f2f4f8;
  border-radius: 10px;
}

::-webkit-scrollbar-thumb {
  background: var(--subtext);
  border-radius: 10px;
  transition: all 0.3s ease;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--toneBlueTextSoftButtons);
}

body {
  font-family: "Montserrat", sans-serif !important;
  font-weight: 500 !important;
  font-size: 0.75rem !important;
  color: var(--toneGreyTextPrimary) !important;
}

.contentFilters_footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid #ddd;
  position: sticky;
  /* O fixed si quieres que se mantenga visible */
  bottom: 0;
  background: #fff;
}

.lastChild {
  margin-left: auto;
}

.form-group {
  margin: 10px 0px !important;
}

.view-switch {
  display: inline-block;
}

.view-switch input {
  display: none;
}

.switchView {
  position: relative;
  width: 50px;
  height: 26px;
  background: var(--toneBlueTextSoftButtons);
  border-radius: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  padding: 0 8px;
  gap: 10px;
  transition: background 0.3s ease;
}

.switchView .icon-table,
.switchView .icon-cards {
  font-size: 0.75rem;
  color: #fff;
  transition:
    color 0.3s ease,
    opacity 0.3s ease;
}

/* Estilos para login */

.loginSystem {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  min-width: 100vw;
  gap: 20px;
  padding: 20px;
  background:
    radial-gradient(600px 400px at 20% 30%, #22d3ee22, transparent 70%),
    radial-gradient(800px 600px at 80% 20%, #60a5fa22, transparent 70%),
    radial-gradient(700px 500px at 60% 80%, #34d39922, transparent 70%),
    linear-gradient(180deg, #0b1220, #0f172a 70%);
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.25);
}

.login-error {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255, 77, 79, 0.12);
  border: 1px solid rgba(255, 77, 79, 0.35);
  border-radius: 10px;
  padding: 12px 14px;
  margin-top: 14px;
  color: #ff6b6b;
  font-size: 14px;
  font-weight: 500;
  animation: fadeInError 0.25s ease-out;
}

.login-error.hidden {
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  height: 0;
  padding: 0 14px;
  margin: 0;
  overflow: hidden;
}

.login-error .error-icon {
  font-size: 16px;
  line-height: 1;
}

.login-error .error-text {
  flex: 1;
}

.contentLogin {
  width: clamp(290px, 450px, 90%);
  height: 350px;
  padding: 20px;
  border-radius: 10px;
  background-color: var(--backgroundLogin);
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.contentLogin h4 {
  color: var(--background);
}

.input-container {
  width: 100%;
  height: 37px;
  border-radius: 8px;
  background-color: var(--textlabel);
  display: flex;
  flex-direction: row;
  align-items: center;
  align-content: center;
  padding-right: 1px;
  transition: background-color 0.3s ease-in-out;
}

.input-container:hover {
  background-color: var(--textLight);
}

.imgInput {
  width: 36px;
  height: 36px;
  background-color: var(--toneBlueTextSoftButtons);
  border-radius: 8px 0px 0px 8px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 40%;
  padding: 3px;
}

.btn-login {
  margin-top: 20px;
  border: none;
  border-radius: 8px;
  padding: 10px;
  background-color: var(--toneBlueTextSoftButtons);
  color: var(--toneGreyBackground);
  font-weight: bold !important;
  cursor: pointer;
  position: relative;
  float: right;
  transition: all 0.3s ease-in-out;
  min-width: 120px;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.dataUserImg {
  background-image: url(../../img/icons/ui/user_login.svg);
}

.dataPasswordImg {
  background-image: url(../../img/icons/ui/password.svg);
}

.input-container input {
  width: calc(100% - 36px);
  height: 32px;
  border: none !important;
  border-radius: 0 6px 6px 0 !important;
  outline: none !important;
  background-color: var(--background) !important;
  margin-left: auto;
  margin-right: 2px;
}

.input-container input::placeholder {
  color: #ccc;
}

/* Circulito que se mueve */
.sliderView {
  position: absolute;
  width: 20px;
  height: 20px;
  background: white;
  border-radius: 50%;
  left: 3px;
  top: 3px;
  transition: transform 0.3s ease;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

/* Estado activado (vista Cards) */

input:checked + .switchView .sliderView {
  transform: translateX(24px);
}

input:checked + .switchView .icon-table {
  color: #fff; /* tenue */
}

input:checked + .switchView .icon-cards {
  color: #fff;
}

/* Estado desactivado (vista Tabla) */
input:not(:checked) + .switch .icon-table {
  color: #fff;
}

input:not(:checked) + .switch .icon-cards {
  color: #fff;
  opacity: 0.5;
}

/* ========== CLASS FORMS ==========*/

h5 {
  margin: 0px;
}

form label:not(.customFileInputLabel) {
  color: var(--toneGreyTextSoft);
  height: 24px;
}

input[type="text"],
input[type="number"],
input[type="email"],
input[type="password"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
select,
textarea {
  background-color: var(--toneGreyBackground);
  border: none;
  border-radius: 5px;
  padding: 5px 5px 5px 10px;
  height: 34px;
  color: var(--toneBluePrimary);
  outline: none;
  font-weight: 500 !important;
  font-size: 0.75rem !important;
  width: 100%;
}

textarea:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
  outline: none;
}

select:disabled,
input:disabled {
  opacity: 0.3;
  box-shadow: none;
  pointer-events: none; /* Evita cualquier interacción */
}

input:focus {
  box-shadow: 1px 1px 7px var(--toneGreyBorders);
}

.help-text {
  margin-top: 5px;
  font-size: 0.7rem;
  color: #64748b;
  line-height: 1.4;
}
.title_name {
  font-size: 1.15rem !important;
  font-weight: bold !important;
}

.subtitle-info {
  font-size: 0.75rem !important;
  font-weight: bold !important;
  color: var(--toneGreyTextSoft);
}

.subtitle-info span {
  color: var(--toneBlueTextSoftButtons);
}

.hiddenContent {
  display: none;
}

.btnFuntionSecondary {
  background-color: var(--toneBlueTextSoftButtons) !important;
}

.btnStyleModal:hover {
  box-shadow: 2px 4px 2px var(--backgroundInputs);
}

.inputTempQuantity {
  max-width: 80px !important;
}

/* Contenedor de imágenes */
#imagePreviewContainer {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 12px;
  margin-top: 12px;
}

/* Tarjeta imagen */
.uix-card {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
  height: 110px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

/* Imagen */
.uix-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Overlay al pasar encima */
.uix-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  opacity: 0;
  transition: 0.25s ease;
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  padding: 5px;
}

.uix-card:hover .uix-overlay {
  opacity: 1;
}

/* Botón eliminar */
.uix-delete {
  background: #ff4d4f;
  border: none;
  color: white;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 16px;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Estilo bonito para el botón de upload */
.customFileInputLabel {
  padding: 8px 15px;
  background: #4b72ff;
  color: white;
  border-radius: 6px;
  cursor: pointer;
  transition: 0.25s ease;
}

.customFileInputLabel:hover {
  background: #3358d4;
}

.customFileInput {
  display: none;
}

.textareaForm {
  height: auto !important;
}

/* Contenedor principal */
.ts-wrapper,
.ts-control {
  height: 34px !important;
  border: none !important;
  border-radius: 5px !important;
  background-color: var(--toneGreyBackground) !important;
  color: var(--toneGreyTextSoft) !important;
}

.ts-control input {
  height: 17px !important;
}

/* Texto dentro del select */
.ts-control .item {
  height: 100%;
  color: var(--toneBluePrimary) !important;
}

/* Dropdown de opciones */
.ts-dropdown {
  background-color: var(--toneGreyBackground) !important;
}

/* Opciones dentro del dropdown */

/* Opción activa / hover */
.ts-dropdown .option:hover,
.ts-dropdown .active {
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: var(--toneGreyTextSoft) !important;
}

textarea {
  border-radius: 10px;
  border: none;
  padding: 5px 5px 5px 10px;
}

.btnStyleModal {
  border: none;
  border-radius: 8px;
  padding: 8px;
  background-color: var(--toneBlueTextSoftButtons);
  color: var(--toneGreyBackground);
  font-weight: bold !important;
  cursor: pointer;
  position: relative;
  float: right;
  transition: all 0.3s ease-in-out;
  min-width: 120px;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

/* ========== LAYOUT GENERAL ========== */

.flex-row {
  display: flex;
  flex-direction: row;
  align-items: center;
}
.gap-5 {
  gap: 5px;
}
.gap-10 {
  gap: 10px;
}
.gap-15 {
  gap: 15px;
}
.gap-20 {
  gap: 20px;
}
.gap-25 {
  gap: 25px;
}
.gap-30 {
  gap: 30px;
}

.flex-justify-space-around {
  justify-content: space-around;
}

.font-strong {
  font-weight: bold;
  color: var(--toneGreyTextPrimary);
}

.contentInfoGenerally p {
  text-align: center !important;
  margin: 0px;
}

.loaderPage {
  position: absolute;
  top: 0;
  left: 0;
  min-width: 100vw;
  min-height: 100vh;
  background-color: #fff;
  z-index: 10000;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
}

.container-flex-login {
  width: 100vw;
  height: 100vh;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  background: rgb(182, 201, 255);
  background: radial-gradient(
    circle,
    rgba(182, 201, 255, 0.9019257361147583) 0%,
    rgba(220, 241, 255, 0.9047268565629377) 100%
  );
}

.margin-none {
  margin: 0px;
}

.spanPrimary {
  color: var(--toneBlueTextSoftButtons) !important;
}

.inputQuantityProducts {
  width: 70px !important;
  margin-right: 15px;
}

.full-width {
  width: 100% !important;
}
.mid-width {
  width: 50% !important;
}

.flex-column-center {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
}

.flex-column-right {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: flex-end;
}

.container-forms {
  width: 320px;
  border-radius: 8px;
  background-color: var(--toneGreyBackground);
  gap: 20px;
}

.label-title-login {
  font-size: 1.15rem;
  color: var(--toneGreyTextPrimary);
}

.contentInputUi {
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  border-radius: 7px;
  background-color: #fff;
  padding: 4px;
}

.lineAddCatalog {
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
}

.contentIcon {
  border: none;
  margin-left: 5px;
  margin-right: 5px;
  width: 24px;
  height: 24px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 18px 18px;
}

.iconUser {
  background-image: url(../../img/icons/ui/user.svg);
}

.iconLogin {
  background-image: url(../../img/icons/ui/login.svg);
}

.iconPassword {
  background-image: url(../../img/icons/ui/password.svg);
}

.input {
  width: 100%;
  line-height: 30px;
  border: 2px solid transparent;
  border-radius: 10px;
  outline: none;
  background-color: transparent !important;
}

input:-webkit-autofill {
  /* Elimina el color de fondo */
  -webkit-box-shadow: 0 0 0px 1000px white inset !important;
  /* Fondo blanco */
  box-shadow: 0 0 0px 1000px var(--backgroundInputs) inset !important;
  border: none !important;
  color: inherit !important;
  /* Mantiene el color del texto */
}

.input:-webkit-autofill {
  background-color: transparent !important;
  /* Elimina el color de fondo */
  -webkit-box-shadow: 0 0 0px 1000px white inset !important;
  /* Fondo blanco */
  box-shadow: 0 0 0px 1000px white inset !important;
  border: none !important;
  color: inherit !important;
  /* Mantiene el color del texto */
}

.contentGenerally {
  font-family: "Montserrat", sans-serif !important;
  min-width: calc(100% - 70px);
  max-width: calc(100% - 70px);
  min-height: 100vh;
  max-height: 100vh;
  overflow: hidden;
  margin-left: 70px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  font-family: "Rajdhani", sans-serif;
  font-weight: 500;
  padding: 10px;
  background-color: var(--toneWhite);
}

.rowHeadersPage,
.contentImagePage,
.contentFunctionPage {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 30px;
}

.rowHeadersPage {
  flex: 0 0 auto;
  width: 100%;
  flex-wrap: wrap;
  padding: 10px;
}

.rowSubHeadersPage {
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  padding: 5px 10px;
}

.contentImagePage {
  width: auto;
  flex-wrap: nowrap;
}

.imagePage {
  height: 100%;
}

.imagePage > img {
  height: 38px;
}

.textPageTitle {
  margin-left: 10px;
  font-weight: bold;
  line-height: 1;
  text-align: end;
  font-size: 1.15rem;
}

.contentFunctionPage {
  flex-wrap: nowrap;
  align-items: flex-end;
  margin-left: auto;
}

.contentBodyPage {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  padding: 25px 15px;
  box-sizing: border-box;
  /* Quitar esto: overflow: auto; */
  display: flex;
  flex-direction: column;
  border-radius: 10px;
}

.max-height-modal {
  max-height: 70vh !important;
  overflow-y: auto !important;
}

.container-with-panel {
  display: flex;
  flex-direction: row;
  /* IMPORTANTE: no usar wrap */
  flex-wrap: nowrap;
  gap: 25px;
  flex: 1 1 auto;
  min-height: 0;
  padding: 10px 15px;
  overflow: hidden; /* evita desbordes */
}

#modalListMaterials .modal-body {
  flex: 1;
  overflow: hidden; /* evita que crezca */
  display: flex;
  flex-direction: column;
}

.container-side-panel {
  width: clamp(250px, 300px, 350px);
  flex-shrink: 0; /* No se hace más pequeño */
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: var(--background);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  padding: 10px 15px;
  border-radius: 10px;
  min-height: 0;
  overflow: hidden; /* importante */
}

.container-side-panel .row {
  position: relative;
  z-index: 2;
}

.content-list-panel {
  position: relative;
  z-index: 1;
}

.modal.hidden {
  opacity: 0;
  pointer-events: none;
}

.full-background-panel {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  max-height: 100vh;
  min-height: 100vh;
  background-color: #bcbcbcb7;
  display: none;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  z-index: 1000;
}

.container-list-check {
  width: clamp(350px, 450px, 800px);
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  padding: 20px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0px 0px 10px rgba(51, 70, 99, 0.3);
  margin-top: 40px;
}

.content-list:not(tbody) {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 5px;
  overflow-y: auto;
  min-height: 0;
  margin-top: 20px;
}

.text-content {
  flex: 1; /* Toma todo el espacio sobrante */
  min-width: 0; /* OBLIGATORIO para que el ellipsis funcione en flexbox */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--toneGreyTextPrimary);
  font-weight: 500;
  margin-left: 5px; /* Ajusta este margen según el ancho de tu checkmark */
  text-transform: lowercase;
}
.text-content::first-letter {
  text-transform: uppercase;
}

.container-data {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow-y: auto;
  min-height: 0;
  background: var(--background);
  box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.073);
  padding: 10px 15px;
  border-radius: 10px;
}

.box-shadow {
  box-shadow: 0px 0px 10px rgba(51, 70, 99, 0.3);
}

/* ========== BOTONES DE FUNCIÓN ========== */

.btnFunctionPrimary {
  border: none;
  height: 44px;
  padding: 4px;
  border-radius: 5px;
  background-color: var(--toneGreyTextSoft);
  color: #fff;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}

.btnFunctionPrimary:hover {
  transform: scale(1.03);
  background-color: var(--toneBluePrimary);
  box-shadow: 4px 4px 10px rgba(51, 70, 99, 0.3);
}

.btnFunctionPage {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: 10px;
  font-size: 0.75rem;
  font-weight: 500;
  cursor: pointer;
  user-select: none;
  border: 1px solid transparent;
  background: transparent;
  transition:
    background-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.15s ease;
}

.btnPrimary {
  background: var(--toneIcons);
  color: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
  padding: 8px 10px;
}

.btn-secondary {
  background: #f8fafc;
  color: #334155;
  border: 1px solid #e2e8f0;
}

.btnSecondary:hover {
  background: #f1f5f9;
}
.btnPrimary:hover {
  background: color-mix(in srgb, var(--toneIcons) 90%, #000);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
  transform: translateY(-1px);
}

.btn-secondary-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 0.75rem;
  font-weight: 500;
  color: #334155;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.15s ease;
}

.btn-secondary-action i {
  font-size: 0.85rem;
  color: var(--toneIcons);
}

.btn-secondary-action:hover {
  background: #f1f5f9;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
}

.btn-secondary-action:active {
  transform: translateY(0);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.btn-primary:active {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.action-play {
  color: #2563eb; /* acción principal */
}

.action-calendar {
  color: #64748b; /* secundaria */
}

.action-tools {
  color: #64748b;
}

.action-icon:hover {
  color: #0f172a;
}

.btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  box-shadow: none;
}

.btnFunctionPage:focus,
.btnFunctionPage:active,
.btnFunctionTable:active {
  outline: none;
}

.contentFunctionIcon:hover,
.newSubcatalog:hover {
  color: var(--toneBlueTextHover);
  /* tono más brillante del azul */
  box-shadow: 0 0 8px rgba(0, 140, 255, 0.8);
  /* halo de luz */
  transform: scale(1.1);
  /* leve agrandamiento */
}

.btnPrint {
  background-image: url(../../img/icons/ui/print.svg);
}

.btnEditCard {
  background-image: url(../../img/icons/ui/editar.svg);
}

.btnActivities {
  background-image: url(../../img/icons/ui/tool.svg);
}

.btnRenew {
  background-image: url(../../img/icons/ui/download.svg);
}

.btnAutorized {
  background-image: url(../../img/icons/ui/autorized.svg);
}

.btnCancel {
  background-image: url(../../img/icons/ui/cancel.svg);
}

.btnForward {
  background-image: url(../../img/icons/ui/forward.svg);
}

/* style loader */

/* Fondo semitransparente */
.loader-overlay {
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.9);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  backdrop-filter: blur(5px);
}

/* Contenedor de los puntos */
.loader {
  display: flex;
  gap: 10px;
}

/* Cada punto representa un "vehículo" o "etapa logística" */
.dot {
  width: 14px;
  height: 14px;
  background: var(--toneBlueTextSoftButtons, #007bff);
  border-radius: 50%;
  animation: move 1.2s infinite ease-in-out;
}

/* Animación escalonada */
.dot:nth-child(1) {
  animation-delay: 0s;
}

.dot:nth-child(2) {
  animation-delay: 0.15s;
}

.dot:nth-child(3) {
  animation-delay: 0.3s;
}

.dot:nth-child(4) {
  animation-delay: 0.45s;
}

@keyframes move {
  0%,
  80%,
  100% {
    transform: scale(0);
    opacity: 0.3;
  }

  40% {
    transform: scale(1.2);
    opacity: 1;
  }
}

/* Texto debajo */
.loader-text {
  margin-top: 12px;
  font-size: 1.15rem;
  font-weight: bold;
  color: #333;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  animation: fadeText 1.6s infinite ease-in-out;
}

@keyframes fadeText {
  0%,
  100% {
    opacity: 0.3;
  }

  50% {
    opacity: 1;
  }
}

/* ========== TABLA ========== */

.columnStatus {
  max-width: 50px;
}

.statusProgram {
  background-color: #007bff;
  /* Azul - Programada */
  color: #007bff;
  padding: 4px 8px;
  border-radius: 4px 0px 0px 0px;
}

.cancelProgram {
  background-color: #ff2600;
  /* Azul - Programada */
  color: #007bff;
  padding: 4px 8px;
  border-radius: 4px 0px 0px 0px;
}

.statusMaintenance {
  background-color: #fd7e14;
  /* Naranja - Mantenimiento */
  color: #ffffff;
  padding: 4px 8px;
  border-radius: 4px 0px 0px 0px;
}

.statusReprogram {
  background-color: #ffc107;
  /* Amarillo - Reprogramada */
  color: #212529;
  /* texto oscuro para buen contraste */
  padding: 4px 8px;
  border-radius: 4px 0px 0px 0px;
}

.statusValidate {
  background-color: #28a745;
  /* Gris - Finalizada/Validada */
  color: #ffffff;
  padding: 4px 8px;
  border-radius: 4px 0px 0px 0px;
}

.statusFinished {
  background-color: #6c757d;
  /* Gris - Finalizada/Validada */
  color: #ffffff;
  padding: 4px 8px;
  border-radius: 4px 0px 0px 0px;
}

/* Estilos de tablas */

.contentColumnTable {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}

.editable-column {
  width: 100%;
  min-width: 100%;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.editable-column button {
  width: 20px;
  background: none;
  border: none;
  color: var(--toneBluePrimary);
  cursor: pointer;
  font-size: 0.85rem;
  padding: 0;
  transition: all 0.2s ease-in-out;
}

.editable-column button:hover {
  text-decoration: underline;
  transform: scale(1.2);
  text-shadow: 0 0 5px var(--toneBlueTextSoftButtons);
}

.columnImgCatalog {
  padding: 0px !important;
  width: 60px !important;
  max-width: 60px !important;
}

.imgTableCatalog {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Hace que se comporte como fondo recortado */
}

.align-left {
  text-align: left !important;
}

table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 6px;
  font-size: 0.85rem;
}

thead > tr,
tfoot tr {
  position: sticky;
  background: var(--toneGreySolid);
  padding: 8px 14px;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  border: 1px solid var(--toneGreyBorders);
  z-index: 1;
}

thead > tr {
  top: -10px;
  height: 40px;
}

tfoot tr {
  bottom: 0;
  height: 30px;
  color: var(--background);
}

thead th {
  text-align: left;
  font-weight: bold;
  color: var(--toneBluePrimary);
  text-transform: uppercase;
  text-align: center;
  text-transform: lowercase;
}

thead th:first-child,
tbody td:first-child {
  border-radius: 8px 0 0 8px;
}

thead th:last-child,
tbody td:last-child {
  border-radius: 0 8px 8px 0;
}

tbody > tr {
  background: #ffffff;
  transition:
    all 0.2s ease,
    transform 0.2s ease;
  cursor: pointer;
}
tbody tr:last-child {
  border-bottom: none;
}

tbody > tr > td {
  padding: 10px 14px;
  color: var(--toneGreyTextPrimary);
  font-size: 0.75rem;
  border-bottom: 1px solid #e5e7eb;
  transition: all 0.2 ease-in-out;
  text-transform: lowercase;
}

th::first-letter,
td::first-letter {
  text-transform: uppercase;
}

td.id {
  color: #64748b;
  font-weight: 500;
}
/* 
tbody > tr:hover td {
  background: var(--toneGreyBackground);
  transform: translateY(-1px);
} */

.activeTr td {
  background-color: rgba(59, 130, 246, 0.18);
  color: var(--toneGreyTextPrimary); /* texto oscuro */
}

.activeTr .btnFunctionTable {
  font-size: 1.15rem;
  color: var(--toneActiveElements);
  transition: color 0.3s ease;
}

tbody > tr:hover .btnFunctionTable {
  color: var(--toneBluePrimary);
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: 999px;
  border: 1px solid transparent;
  white-space: nowrap;
}

.badge.success {
  background-color: #dcfce7;
  color: #15803d;
  border-color: #bbf7d0;
}

.badge.inactive {
  background-color: #fee2e2;
  color: #b91c1c;
  border-color: #fecaca;
}

.badge.order-id {
  background-color: #e0f2fe;
  color: #0369a1;
  border-color: #bae6fd;
}

.badge.status-pending {
  background-color: #fef9c3;
  color: #854d0e;
  border-color: #fde68a;
}

.badge.status-program {
  background-color: #e0f2fe;
  color: #075985;
  border-color: #bae6fd;
}

.badge.status-active {
  background-color: #dcfce7;
  color: #166534;
  border-color: #bbf7d0;
}

.badge.status-rescheduled {
  background-color: #ffedd5;
  color: #9a3412;
  border-color: #fed7aa;
}

.badge.status-validate {
  background-color: #ede9fe;
  color: #4c1d95;
  border-color: #ddd6fe;
}

.badge.status-complete {
  background-color: #f1f5f9;
  color: #1e293b;
  border-color: #e2e8f0;
}

.badge.status-cancelled {
  background-color: #fee2e2;
  color: #991b1b;
  border-color: #fecaca;
}

/* Estilos tabla lista */

.table-list thead > tr {
  background-color: var(--toneWhite);
  color: var(--toneGreyTextPrimary);
  box-shadow: 0 0 4px var(--backgroundInputs);
}

.table-list tbody > tr {
  box-shadow: none;
}

.table-list tbody > tr > td {
  padding: 5px;
  text-align: center;
  border-bottom: 2px solid var(--toneGreyBackground);
}

.tdImgCatalog {
  max-width: 130px !important;
}

/* ========== CABECERAS PARA MODALES ====== */

.context-panel {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 16px 20px;
  margin-bottom: 30px;
}

.context-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.context-main {
  font-size: 14px;
  color: #374151;
  margin-bottom: 6px;
}

.context-activity {
  font-size: 13px;
  color: #6b7280;
}

.context-divider {
  color: #9ca3af;
}

.context-meta {
  color: #6b7280;
}

.status-badge.success {
  background: #dcfce7;
  color: #166534;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
}

.order-summary {
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-evenly;
  gap: 1.4rem;
  padding: 12px 16px;
}

.summary-item {
  display: flex;
  flex: 1;
  flex-direction: column;
  position: relative;
  justify-content: center;
  align-items: center;
  background: #ebebebee;
  border-radius: 16px;
  padding: 10px 15px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
  border: 1px solid #f1f5f9;
}

/* Línea divisora vertical
.summary-item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -6px;
  top: 10%;
  height: 80%;
  width: 1px;
  background: #e2e8f0;
} */

.summary-label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  color: #64748b;
  margin-bottom: 6px;
}

.summary-value {
  font-size: 0.85rem;
  font-weight: 600;
  color: #1e293b;
}

.summary-value {
  text-transform: lowercase; /* Primero bajamos todo a minúsculas */
}

.summary-value::first-letter {
  text-transform: uppercase; /* Luego subimos solo la primera letra */
}

/* ========== COLUMNAS DE TABLA ========== */
.columnFunctionTable {
  min-width: 50px !important;
  max-width: 50px !important;
}

.columnStateTable {
  min-width: 30px;
  padding: 0;
}

.columnActive {
  background-color: #9fec47d7;
}

.columnAutorized {
  background-color: #205599d7;
}

.columnExpired {
  background-color: #eaec4eec;
}

.columnCancel {
  background-color: #d42d22ec;
}

.btn-delete-row i {
  color: #d42d22ec;
}

.columnIconFunction {
  width: 25px !important;
}

.columnXsTable {
  text-align: center !important;
  width: 60px;
  padding: 0;
}

.columnSmTable {
  min-width: 50px;
  max-width: 120px;
}

.columnMdTable {
  min-width: 120px;
  max-width: 190px;
  padding: 0 20px;
}

.columnLgTable {
  min-width: 190px;
  max-width: 280px;
  padding: 0 20px;
}

.textLeft {
  text-align: left !important;
}

.columPercentageLg {
  min-width: 50% !important;
}

.activeRowTable {
  background-color: var(--toneGreyTextSoftSky);
}

/* ========== CARDS ========== */

.card-container {
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-around;
  gap: 30px;
  border: none;
  background-color: transparent;
  max-height: 100%;
  overflow: auto;
}

.card-register {
  flex: 1 1 300px;
  border-radius: 12px;
  box-shadow:
    0 4px 6px -1px var(--backgroundInputs),
    0 2px 4px -1px var(--backgroundInputs);
  border: 2px solid var(--backgroundInputs);
}

.card-header {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  padding: 8px 15px;
  gap: 12px;
  border-radius: 12px 12px 0 0 !important;
  border: none;
  background-color: transparent;
  color: var(--toneGreyTextPrimary);
}

.card-header .btnFunctionTable {
  font-size: 16px;
}

.content-header {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  color: var(--toneGreyBackground);
}

.content-header .header-card-title {
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--toneBluePrimary);
}

.content-header span {
  font-size: 0.75rem;
  color: var(--subtext);
  text-transform: lowercase;
}

.content-header span::first-letter {
  text-transform: uppercase; /* Luego subimos solo la primera letra */
}

.containerImage {
  height: 50px;
  width: 50px;
}
.containerImage img {
  width: 100%;
  height: 100%;
  border-radius: 20%;
  object-fit: cover;
}

.card-content {
  min-width: 100%;
  display: flex;
  flex-direction: column;
  padding: 15px;
  gap: 15px;
  border-radius: 0 0 12px 12px;
}

.rowInfoCard {
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 15px;
}

.rowInfoCard div {
  flex: 1;
}

.statusColumn {
  max-width: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 10px;
  padding: 5px 7px;
  font-weight: 500;
  font-size: 0.75rem;
  animation: fadeInError 0.25s ease-out;
}

.statusColumnActive {
  background-color: rgba(79, 189, 186, 0.12); /* Turquesa muy suave */
  border: 1px solid rgba(79, 189, 186, 0.3);
}
.statusColumnInactive {
  background: rgba(255, 77, 79, 0.12);
  border: 1px solid rgba(255, 77, 79, 0.35);
  color: #ff6b6b;
}
.card-content p {
  margin: 0px;
  color: var(--toneGreyTextSoft);
  font-size: 0.75rem;
  font-weight: 400;
}

.card-content span {
  color: var(--toneBluePrimary);
  font-weight: 600;
}

.card-actions {
  padding: 15px;
}

/* ========== BOTONES EN TABLA ========== */
.btnFunctionTable {
  width: 100%;
  height: 100%;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--toneBlueTextSoftButtons);
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  transition: all 0.3s ease-in-out;
  font-size: 1.15rem;
  opacity: 0.6;
  z-index: 0;
}

.btnFunctionTableModal {
  width: 100%;
  height: 100%;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--toneBluePrimary);
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  transition: all 0.3s ease-in-out;
  font-size: 0.95rem;
  opacity: 0.6;
  z-index: 0;
}

.btnFunctionTableModal:hover,
.btnFunctionTable:hover {
  color: var(--toneBluePrimary);
  opacity: 1;
  transform: scale(1.1);
}

.width-btn {
  width: 30px !important;
  max-width: 30px !important;
}

/* ========== PAGINACIÓN ========== */
.contengePagination {
  flex: 0 0 auto;
  width: 100%;
  height: 60px;
  margin-top: auto;
  padding: 5px 15px;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}

.pagination-settings {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: #444;
}

.pagination-select {
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  border: 1px solid #ccc;
  font-size: 0.75rem;
  background-color: #fff;
  transition: border-color 0.2s ease-in-out;
}

.pagination-select:hover {
  border-color: var(--toneBlueTextSoftButtons);
}

.sectionPagesCtrl,
.pagesContent {
  margin-left: auto;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  align-items: center;
  justify-content: center;
}

.sectionPageInfo {
  width: 220px;
  display: flex;
  flex-direction: row;
  align-items: center;
}

.sectionPageInfo > p {
  margin: 0;
  padding: 0;
}

.sectionPageInfo span {
  color: var(--toneGreyTextSoft);
}

.pagesCtrl,
.BtnPageCtl {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  padding: 2px;
  margin: 5px;
  background-color: var(--toneGrey);
  color: var(--toneIcons);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition:
    background-color 0.3s ease-in-out,
    color 0.3s ease-in-out;
}

.pagesCtrl i {
  font-size: 1.6rem;
  color: var(--toneBlueTextSoftButtons);
}

.activePage {
  background-color: var(--toneBluePrimary);
  color: var(--background);
}

.contentMorePage {
  max-height: 300px;
  overflow: auto;
  background-color: var(--toneGreySolid);
  border: 2px solid var(--toneGreyTextSoft);
  border-radius: 5px;
  position: absolute;
}

.btnFiles {
  border: none;
  display: flex;
  padding: 10px 15px;
  background-color: var(--toneBlueTextSoftButtons);
  color: #ffffff;
  font-size: 0.75rem;
  line-height: 0.95rem;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
  text-transform: uppercase;
  vertical-align: middle;
  align-items: center;
  border-radius: 0.5rem;
  user-select: none;
  gap: 0.75rem;
  box-shadow:
    0 4px 6px -1px var(--backgroundInputs),
    0 2px 4px -1px var(--backgroundInputs);
  transition: all 0.6s ease;
}

.btnFiles:hover {
  box-shadow: 0 10px 15px -3px rgba(51, 70, 99, 0.3);
}

.btnFiles:focus,
.btnFiles:active {
  opacity: 0.85;
  box-shadow: none;
}

.btnFiles svg {
  width: 1.25rem;
  height: 1.25rem;
}

.containerImg {
  position: relative;
  display: inline-block;
}

.img-preview {
  width: 100%;
  height: 120px;
  object-fit: cover;
  border-radius: 8px;
}

.btnDeleteImg {
  position: absolute;
  top: -5px;
  right: -5px;
  background-color: rgba(255, 0, 0);
  color: white;
  border: none;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  font-size: 1.6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.imgTableCatalog {
  width: 100px;
  max-width: 100px;
  height: 80px;
  object-fit: cover;
  border-radius: 8px;
}

/* UI card */

.cardElement {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  width: 220px;
  max-height: 350px;
  background-color: var(--toneGreyBackground);
  border-radius: 10px;
  padding: 15px;
}

.containerImg {
  border-radius: 7px;
  width: 100%;
  height: 100px;
  aspect-ratio: 16 / 9;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.1);
  background-color: #fff;
}

.imgCardElement {
  border-radius: 7px;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bodyCard {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 3px;
  width: 100%;
  max-height: 200px;
  padding-top: 15px;
}

.rowDataCard {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  width: 100%;
  gap: 3px;
}

.rowDataCard span {
  color: var(--toneGreyTextSoft);
}

.rowBtnsCard {
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  padding-top: 15px;
}

/* ========== FILTROS ========== */
#spaceFilters {
  position: absolute;
  top: 0;
  right: 0;
  border-radius: 10px;
  z-index: 10000000000;
  min-width: 280px;
  display: none;
}

.contentFilters {
  height: 100vh;
  max-height: 100vh;
  width: 100%;
  max-width: 380px;
  overflow: auto;
  padding: 20px 30px;
  display: flex;
  flex-direction: column;
  background-color: var(--toneWhite);
  box-shadow: -4px 0 8px rgba(0, 0, 0, 0.2);
}

.contentFilters__title {
  width: 100%;
  padding: 10px 0px;
  display: flex;
  flex-direction: row;
}

.contentFilters_body {
  min-width: 100% !important;
  max-width: 100% !important;
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  gap: 25px;
}

.btnsFiltersPanel {
  border: none;
  border-radius: 8px;
  padding: 8px;
  color: var(--toneGreyBackground);
  font-weight: 600 !important;
  cursor: pointer;
  position: relative;
  float: right;
  transition: all 0.3s ease-in-out;
  min-width: 120px;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.btnsFiltersPanel:hover {
  box-shadow: 0 2px 8px var(--toneBluePrimary);
}

.btnApplyFilter {
  background-color: var(--toneBlueTextSoftButtons);
}

.btnCleanerFilter {
  background-color: red;
}

.elementFilterHeaderComplete {
  width: 100%;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 10px;
}

.filterHeaderTitle {
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  padding: 5px 10px;
  border-radius: 7px;
  background-color: var(--toneBlueTextSoftButtons);
  color: var(--toneWhite);
}

.max-filter-height {
  max-height: 260px;
  overflow: auto;
}

.contentDataHeader {
  padding: 5px 10px;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 5px;
}

.searchIcon {
  width: 16px;
  height: 16px;
  background-image: url(../../img/icons/ui/search.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 90%;
  cursor: pointer;
  z-index: 0;
}

#inputSearch {
  box-shadow: 4px 4px 4px var(--toneGreyTextSoft);
  transition: all 0.2s ease-in-out;
}

.input-search-panel,
#inputSearch:focus {
  box-shadow: 0px 1px 6px var(--toneBlueTextSoftButtons);
}

.inputSearchFilter {
  max-width: 100%;
  height: 22px !important;
  background-color: #fff !important;
  border-radius: 5px !important;
}

.rowAddressAgree {
  padding: 5px;
  border-radius: 7px;
  cursor: pointer;
}

/* Estilos modal */

.close_name {
  margin-left: auto;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
  font-size: 1.6rem;
  font-weight: bold;
  color: #444;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 1000;
}

.close_name:hover,
.btnCloseModal:hover,
.closeViewFull:hover {
  transform: translateY(-3px);
  color: var(--toneGreyTextSoft);
  outline: none;
}

.error-messages {
  margin-top: 5px;
}

.error-text {
  color: red;
  font-size: 0.6rem;
  margin: 0;
}

/* Estilo panel listas */

.contentPanelPage {
  width: 100%;
  height: calc(100vh - 80px);
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
}

.contentPanelList {
  min-height: 100%;
  max-height: 100%;
  border-radius: 8px;
  box-shadow: 0 0 8px var(--toneGreyBorders);
}

.contentHeaderList {
  width: 100%;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  border: none;
  border-radius: 7px 7px 0 0;
  padding: 10px;
  background-color: var(--toneBluePrimary);
  color: #fff;
}

.contentHeaderList label,
.contentHeaderList p {
  color: var(--toneGreyBackground) !important;
}

.headerPanelList {
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
}

.btnNewElementList {
  border: none;
  background-color: transparent;
  width: 24px;
  height: 24px;
  background-image: url(../../img/icons/ui/registro.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 20px 20px;
  cursor: pointer;
  z-index: 0;
}

.btnAgreeElementList {
  border: none;
  background-color: transparent;
  width: 24px;
  height: 24px;
  background-image: url(../../img/icons/ui/agree.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 20px 20px;
  cursor: pointer;
  z-index: 0;
}

.btnAssignment {
  border: none;
  background-color: transparent;
  width: 24px;
  height: 24px;
  background-image: url(../../img/icons/ui/assignment.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 20px 20px;
  cursor: pointer;
  z-index: 0;
}

.margin-left-function {
  margin-left: 20px !important;
}

.margin-right-function {
  margin-right: 20px !important;
}

.btnDeleteElementList {
  border: none;
  background-color: transparent;
  width: 24px;
  height: 24px;
  background-image: url(../../img/icons/ui/delete.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 20px 20px;
  cursor: pointer;
  z-index: 0;
}

.btnDownList {
  border: none;
  background-color: transparent;
  width: 24px;
  height: 24px;
  background-image: url(../../img/icons/ui/btnDown.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 20px 20px;
  cursor: pointer;
  z-index: 0;
}

.searchPanelList {
  width: 100%;
  margin-top: 10px;
}

.contentListElements {
  overflow: auto;
  border: 2px solid var(--toneGreyTextSoftSky);
  padding: 15px 15px;
  border-radius: 0 0 7px 7px;
}

.height-modal-panel {
  max-height: 400px;
  overflow-y: auto;
}

.overflow-x-hidden {
  overflow-x: hidden !important;
}

.full-height-panel {
  min-height: calc(100vh - 170px);
  max-height: calc(100vh - 170px);
}

.listElementLi {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-left: 0;
  padding-left: 0;
  list-style-position: inside;
}

.input-search-panel,
.inputSearchPanel {
  border: 1px solid var(--toneGreyBorders) !important;
  background: #fff !important;
  box-shadow: 4px 4px 4px var(--toneGreyTextSoft);
  transition: all 0.3s ease-in-out;
}

.inputTempColumn {
  max-width: 90px;
}

.listElementLi li {
  cursor: pointer;
  transition: all 0.3s ease-in-out;
  margin: 0px !important;
  padding: 0px !important;
}

.liActive {
  color: var(--toneBlueTextSoftButtons);
  transform: translateX(10px);
}

.listElementLi li:hover {
  color: var(--toneBlueTextSoftButtons);
  transform: translateX(10px);
}

.columnContentPage {
  max-width: calc(100vw - 380px) !important;
  min-height: calc(100vh - 85px);
  max-height: calc(100vh - 85px);
  padding: 0px 25px;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  align-content: flex-start;
  gap: 15px;
  overflow: auto;
}

.containerModules {
  width: clamp(120px, 220px, 250px);
}

.custom-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
  padding: 5px 5px;
  background: transparent;
}

/* Ocultar checkbox original */
.custom-checkbox input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* Estilo visual */
.custom-checkbox .checkmark {
  width: 16px;
  height: 16px;
  border: 1px solid var(--toneGreyBorders);
  border-radius: 4px;
  display: inline-block;
  box-sizing: border-box;
  transition: all 0.2s ease;
  background: #fff;
  position: relative;
}

/* Hover */
.custom-checkbox:hover .checkmark {
  border-color: var(--toneBlueTextSoftButtons);
}

/* ESTADO CHECKED */
.custom-checkbox input:checked + .checkmark {
  background: var(--toneBlueTextSoftButtons);
  border-color: var(--toneBlueTextSoftButtons);
}

/* PALOMITA */
.custom-checkbox input:checked + .checkmark::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 1px;
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.hidden-height-view {
  height: 0px !important;
  visibility: hidden;
}

/* Seccion de visitas */

.visit-card {
  background: #fff;
  border-radius: 14px;
  padding: 24px 32px;
  border: 2px solid var(--toneGrey);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  max-width: 900px;
  margin: 25px auto;
  font-family: "Montserrat", sans-serif !important;
  font-weight: 600 !important;
  font-size: 0.75rem !important;
  color: #1f2937;
}

.visit-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.status-badge {
  background: #2563eb;
  color: #fff;
  padding: 10px 14px;
  border-radius: 999px;
  font-size: 0.75rem;
  text-transform: uppercase;
}

.visit-body {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: flex-start;
}

.visit-info {
  flex: 1 1 60%;
  min-width: 300px;
}

.qr-side {
  flex: 1 1 30%;
  min-width: 200px;
  text-align: center;
  border-left: 1px solid #eee;
  padding-left: 20px;
}

.qr-side img {
  width: 160px;
  height: 160px;
  margin-bottom: 8px;
}

.qr-note {
  font-size: 0.75rem;
  color: #6b7280;
}

.visit-section {
  margin-bottom: 22px;
}

.visit-section h3 {
  font-size: 1.15rem;
  color: #374151;
  border-bottom: 1px solid #e5e7eb;
  padding-bottom: 6px;
  margin-bottom: 10px;
}

.visit-section i {
  color: #2563eb;
  margin-right: 6px;
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px 16px;
}

/* --- Panel QR --- */
.qr-panel {
  text-align: center;
  width: 100%;
}

.qr-panel h3 {
  font-size: 1.15rem;
  margin-bottom: 15px;
  color: #333;
}

.input-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}

.input-group input {
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 8px !important;
  font-size: 0.75rem;
  text-align: center;
}

.input-group button {
  background-color: var(--toneBlueTextSoftButtons);
  border: none;
  color: white;
  padding: 10px;
  font-size: 0.75rem;
  border-radius: 8px !important;
  cursor: pointer;
  transition: background 0.3s;
}

.input-group button:disabled {
  opacity: 0.5;
  /* Lo hace más claro */
  cursor: not-allowed;
  /* Cambia el cursor */
  background-color: #ccc;
  /* Color de fondo gris */
  color: #666;
}

.input-group button:hover {
  background-color: #0056b3;
}

.qr-preview {
  margin-top: 20px;
  background-color: #f5f5f5;
  border-radius: 8px;
  padding: 15px;
}

.qr-preview img {
  width: 150px;
  height: 150px;
  object-fit: contain;
}

.modal-uix {
  background-color: var(--toneBluePrimary);
  color: var(--toneGreyBackground);
}

/* content side panel */

.title-panel {
  flex: 0 0 auto;
  font-size: 0.95rem;
  color: var(--toneBluePrimary);
  margin-bottom: 15px;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 7px;
}

.row-title-panel {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  align-content: center;
}

.option-label-checkbox,
.option-list {
  border-radius: 4px;
  padding: 5px 5px;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
}
.option-list:hover:not(.panel-list) {
  border-radius: 4px;
  background: var(--toneBluePrimary);
  color: var(--toneGreyBackground);
}

.list-selected {
  background: var(--toneBluePrimary);
  color: var(--toneGreyBackground);
}

.roles-container {
  display: flex;
  gap: 15px;
  height: calc(100vh - 140px);
}

.roles-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 200px;
}

/* HEADER */
.roles-header {
  padding: 12px;
  border-bottom: 1px solid #e5e7eb;
  font-size: 13px;
  color: #374151;
}

/* SEARCH */
.roles-search {
  padding: 10px;
  border-bottom: 1px solid #f1f5f9;
}

.roles-search input {
  width: 100%;
  padding: 6px 10px;
  font-size: 12px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
}

/* LISTA */
.roles-items {
  overflow-y: auto;
  flex: 1;
  padding: 5px;
}

/* ITEM */
.role-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 12px;
  transition: all 0.15s ease;
}

/* hover */
.role-item:hover {
  background: #f9fafb;
}

/* activo */
.role-item.active {
  background: #eef2ff;
  color: #1e3a8a;
  font-weight: 500;
}

/* puntito */
.role-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #9ca3af;
}

/* activo */
.role-item.active .role-dot {
  background: #2563eb;
}

.add-role {
  border: none;
  background: #2563eb;
  color: white;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 11px;
  cursor: pointer;
}

.role-input {
  width: 100%;
  font-size: 12px;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  padding: 4px;
}

.role-edit {
  display: flex;
  gap: 4px;
  width: 100%;
}

.btn-save,
.btn-cancel {
  border: none;
  padding: 2px 6px;
  font-size: 12px;
  border-radius: 4px;
  cursor: pointer;
}

.btn-save {
  background: #10b981;
  color: white;
}

.btn-cancel {
  background: #e5e7eb;
}

.hidden {
  display: none;
}
.module-card {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  margin-bottom: 10px;
  background: #fff;
  overflow: hidden;
  transition: box-shadow 0.2s ease;
}

.module-card:hover {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.module-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px;
  cursor: pointer;
  background: #f9fafb;
}

.module-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.module-right {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  color: #6b7280;
}

/* Animación suave */
.module-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.25s ease;
}

.module-body.active {
  max-height: 500px; /* suficiente para contenido */
}

/* grid bonito */
.module-body.active {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 6px;
  padding: 10px;
}

.operation-item {
  font-size: 12px;
}

.container-section-modal {
  width: 100%;
  border-radius: 8px;
  padding: 15px;
}

.section-content-modal {
  width: 100%;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: flex-start;
  align-content: flex-start;
  gap: 20px;
  margin-top: 35px;
  max-height: 290px;
  overflow: auto;
}

.section-content-modal-flotante {
  position: absolute;
  top: 45%;
  left: calc((100% / 320px));
  z-index: 1000;
  width: 330px;
  background: white;
  border: 1px solid #ccc;
  border-radius: 5px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  padding: 10px;
  display: none;
}

.parent-element {
  min-width: 80px;
  padding: 10px;
  background: var(--toneGreyTextPrimary);
  color: var(--toneGreyBackground);
  border-radius: 8px;
  box-shadow: 4px 4px 4px var(--toneGreyTextSoft);
  text-align: center;
  position: relative;
}

.close-button-parent {
  position: absolute;
  top: 8px; /* Centrado vertical */
  transform: translateY(-50%);
  right: 3px; /* Mantiene la misma posición que tu ::after */
  /* Estilos visuales */
  color: red;
  cursor: pointer;
  font-weight: bold;
  padding: 3px; /* Área de clic generosa */
  line-height: 1;
  z-index: 2; /* Asegura que esté por encima del contenido */
}

/* ======== MODAL LAYOUT PANEL ========= */
.modal-content-layout {
  display: flex;
  gap: 24px;
  background: #ffffff;
  border-radius: 16px;
  padding: 16px 20px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
  border: 1px solid #f1f5f9;
}

.activities-section {
  flex: 1;
  min-width: 0;
  transition: all 0.3s ease;
}

.table-container {
  flex: 1;
  max-height: 400px;
  min-height: 300px;
  overflow-y: auto; /* 👈 scroll independiente */
}

.assign-panel {
  width: 320px;
  background: #fafafa;
  border-left: 1px solid #e2e6ef;
  padding: 20px;
  border-radius: 0px 8px 8px 0px;
  transition: all 0.3s ease;
}

.assign-panel-header {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  align-content: center;
  justify-content: start;
}

.assign-panel-header button {
  border-radius: 7px;
  border: none;
  background: var(--toneIcons);
  color: var(--toneGreyBackground);
}

.assign-panel.hidden {
  width: 0;
  padding: 0;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.input-error {
  border-color: #ef4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);
}

/* 🔹 Responsivo: QR pasa abajo en móviles */
@media (max-width: 768px) {
  .visit-body {
    flex-direction: column;
  }

  .qr-side {
    border-left: none;
    border-top: 1px solid #eee;
    padding-left: 0;
    padding-top: 20px;
  }
}
