/* --- Modalbox (full-screen slide-up modal) -------------------------------- */
.modalbox .modal-dialog {
  position: fixed; top: 0; right: 0; bottom: 0; left: 0;
  min-width: 100%; margin: 0;
  margin-top: env(safe-area-inset-top);
  transform: translate(0, 100%) !important;
  transition: var(--transition-slow) !important
}
.modalbox .modal-dialog .modal-content { height: 100dvh; padding-top: 56px;
  margin: auto; overflow: auto; border: 0;
  border-radius: 0
}
.modalbox .modal-dialog .modal-content .modal-header {
  position: fixed; top: 0; right: 0; left: 0;
  z-index: 100;
  display: flex;
  align-items: center; justify-content: space-between; width: 100%; min-height: 56px; padding: 10px 16px; margin: 0; background: var(--color-bg-card);
  border: 0; border-bottom: 1px solid var(--color-border); border-radius: 0
}
.modalbox .modal-dialog .modal-content .modal-header .modal-title { width: 100%;
  margin: 0; font-size: var(--text-sm); color: var(--color-text-heading); text-align: center
}
.modalbox .modal-dialog .modal-content .modal-body { min-height: calc(100vh - 56px);
  padding: 20px 16px; overflow: auto
}
.modalbox.show .modal-dialog { transform: translate(0, 0) !important }

/* --- Modal footer fixed button bar --------------------------------------- */
.modal-footer-bottons {
  position: fixed; right: 0; bottom: 0; left: 0; z-index: 9; display: flex;
  align-items: center; justify-content: center; width: 100%;
  min-height: 84px; padding-right: 16px;
  padding-bottom: env(safe-area-inset-bottom);
  padding-left: 16px; background: var(--color-bg-card)
}

/* --- Notification panel modal (common.tpl) -------------------------------- */
#listado_notificaciones.ht-notification-modal .modal-dialog,
.ht-notification-modal.panelbox .modal-dialog {
  position: fixed !important; top: 0 !important; right: 0 !important;
  left: auto !important; width: 100vw !important; max-width: 600px !important;
  height: 100dvh !important; transform: none !important
}
#listado_notificaciones .modal-content,
.ht-notification-modal .modal-content {
  display: flex !important; flex-direction: column !important; width: 100% !important; height: 100% !important; padding-top: 0 !important;
  overflow: hidden !important;
  background: rgba(248,249,250,0.85) !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  box-shadow: 0 10px 40px rgba(0,0,0,0.2) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  backdrop-filter: blur(20px) saturate(180%) !important
}
.panelbox .modal-dialog .modal-content .modal-header .panel-close { width: 50px; height: 50px; margin-left: 10px; background-color: white;
  border-radius: 50%
}
.icono-notify {
  position: relative; z-index: 1; display: flex; flex-shrink: 0;
  align-items: center; justify-content: center; width: 36px; height: 36px;
  padding: 0; margin-left: 12px; font-size: var(--text-sm) !important;
  background: var(--color-primary-subtle); border: none; border-radius: 50%
}
.icono-notify i { font-size: 18px !important; color: var(--color-primary-ink) }
.modal-footer-close {
  position: absolute; bottom: -93px; LEFT: 50%; z-index: 0; padding: 19px; background: #00000057;
  border-radius: 50%;
  transform: translateX(-51%)
}

/* --- Notification modal image header ------------------------------------- */
.modal-header-image { width: 100%; height: 180px; background-repeat: no-repeat;
  background-position: center;
  background-size: cover
}
#notificacion_modal .modal-header-image {
  border-radius: 16px 16px 0 0; box-shadow: 0 .5rem 1rem rgba(0,0,0,.15) !important
}
#notificacion_modal.dialogbox .modal-dialog .modal-content { overflow: unset !important }

/* --- Glass modal z-index fixes ------------------------------------------- */
.ht-modal-glass-full, .ht-modal-glass-rounded, .ht-modal-glass-auto { z-index: 1050 !important }
.ht-modal-glass-full .modal-dialog, .ht-modal-glass-rounded .modal-dialog, .ht-modal-glass-auto .modal-dialog { z-index: 1050 !important }

/* --- Language selector (from web.css) ----------------------------------- */
.dropdown-menu.fs-lang-menu {
  position: fixed !important; top: 0 !important;
  right: 0 !important; bottom: 0 !important; left: 0 !important;
  z-index: 999999;
  display: grid !important; visibility: hidden; grid-template-columns: repeat(auto-fit, minmax(130px, 160px)); gap: 25px;
  align-content: center; justify-content: center;
  width: 100vw !important; height: 100vh !important; padding: 60px 20px !important; margin: 0 !important;
  background: rgba(255,255,255,0.65) !important;
  border: none !important; opacity: 0; -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); transform: none !important; transition: opacity 0.3s ease, visibility 0.3s
}
.dropdown-menu.fs-lang-menu.show { visibility: visible; opacity: 1 }
.fs-lang-menu .lang_selector_item {
  display: flex !important; flex-direction: column; align-items: center; justify-content: center;
  width: 100%; height: 150px; font-size: 0.9rem !important;
  font-weight: 800; color: var(--color-text-body) !important; text-transform: uppercase;
  white-space: normal; text-decoration: none; cursor: pointer; background-color: rgba(255,255,255,0.85); border: 2px solid rgba(255,255,255,0.5);
  border-radius: var(--radius-lg);
  box-shadow: 0 8px 32px rgba(0,0,0,0.05); transition: var(--transition-fast)
}
.fs-lang-menu .lang_selector_item:hover { background-color: var(--color-bg-card); box-shadow: 0 15px 30px rgba(0,0,0,0.15); transform: translateY(-5px) }
.fs-lang-menu .lang_selector_item.selected { color: var(--color-primary-ink) !important; background-color: var(--color-bg-card); border-color: var(--color-info); box-shadow: 0 0 0 4px rgba(25,118,210,0.1) }
.fs-lang-menu .lang_selector_item::before { display: block; margin-bottom: 12px; font-size: 3.5rem; font-style: normal; line-height: 1; content: "🏳️" }
.form-language .form-control,
.form-language .chosen-container .chosen-choices,
.form-language .chosen-container .chosen-single {
  position: relative; padding-right: 0; padding-left: 0;
  background-color: transparent; background-image: none; border-width: 0 0 1px 0; border-radius: 0
}

@keyframes htPulseGlow {
  0% {
    opacity: 0.8;
    transform: scale(0.95)
  }

  50% {
    opacity: 0.4;
    transform: scale(1.15)
  }

  100% {
    opacity: 0.8;
    transform: scale(0.95)
  }
}

@keyframes htFadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px)
  }

  to {
    opacity: 1;
    transform: translateY(0)
  }
}

.modal-backdrop {
  background-color: rgba(0, 0, 0, 0.5);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px)
}

.modal-backdrop.show {
  opacity: 1
}

.modal {
  z-index: var(--z-modal, 1050)
}

.modal-icon {
  text-align: center
}

.modal.fade .modal-dialog {
  transition: transform var(--transition-base, 0.2s) ease-out
}

.modal-header .close,
.modal .close-btn,
.ht-modal-close-btn {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 10;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  font-size: 24px;
  color: var(--color-text-subtle);
  cursor: pointer;
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  transition: var(--transition-fast)
}

.modal-header .btn+.close {
  margin-left: 0
}

.modal-header .close:hover,
.modal .close-btn:hover,
.ht-modal-close-btn:hover {
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
  opacity: 1;
  transform: scale(1.1)
}

.modal-header .close:active,
.modal .close-btn:active,
.ht-modal-close-btn:active {
  transform: scale(0.95)
}

.modal-content {
  border: none;
  border-radius: var(--radius-lg, 24px);
  box-shadow: var(--shadow-lg, 0 1rem 3rem rgba(0, 0, 0, 0.175))
}

.modal-header {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 20px 24px
}

.modal-header .modal-title {
  flex: 1;
  margin: 0
}

.modal-header .btn,
.modal-header .close {
  position: relative;
  top: auto;
  right: auto;
  flex-shrink: 0
}

.modal-title {
  font-size: 1.25rem;
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-heading)
}

.ht-modal-glass-full .modal-title,
.ht-modal-rounded .modal-title,
.ht-modal-glass-rounded .modal-title {
  text-align: left
}

.modal-body {
  padding: 24px;
  overflow-y: auto
}

.modal-footer,
.ht-modal-footer {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  padding: 16px 24px
}

.modal-footer .btn,
.ht-modal-footer .btn,
.modal-footer .btn-inline .btn,
.ht-modal-footer .btn-inline .btn {
  flex: 1;
  min-width: 0
}

.modal-footer .btn-inline,
.ht-modal-footer .btn-inline {
  display: flex;
  gap: 12px;
  width: 100%
}

.ht-modal-full,
.ht-modal-rounded,
.ht-modal-auto,
.ht-modal-glass-full,
.ht-modal-glass-rounded,
.ht-modal-glass-auto,
.ht-modal-full .modal-dialog,
.ht-modal-rounded .modal-dialog,
.ht-modal-auto .modal-dialog,
.ht-modal-glass-full .modal-dialog,
.ht-modal-glass-rounded .modal-dialog,
.ht-modal-glass-auto .modal-dialog {
  z-index: 1050 !important
}

.ht-modal-glass .modal-content,
.ht-modal-full .modal-content,
.ht-modal-rounded .modal-content,
.ht-modal-auto .modal-content,
.ht-modal-glass-full .modal-content,
.ht-modal-glass-rounded .modal-content,
.ht-modal-glass-auto .modal-content,
.ht-modal-immersive.ht-modal-glass .modal-content {
  background: rgba(248, 249, 250, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  backdrop-filter: blur(20px) saturate(180%) !important
}

.ht-modal-glass .modal-backdrop {
  background: rgba(0, 0, 0, 0.3);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  backdrop-filter: blur(20px) saturate(180%)
}

.ht-modal-full .modal-dialog,
.ht-modal-glass-full .modal-dialog {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100dvh !important;
  margin: 0 !important;
  transform: none !important;
  transition: transform 0.3s ease-out
}

.ht-modal-full:not(.show) .modal-dialog,
.ht-modal-glass-full:not(.show) .modal-dialog {
  transform: translateY(100%) !important
}

.ht-modal-full.show .modal-dialog,
.ht-modal-glass-full.show .modal-dialog {
  transform: translateY(0) !important
}

.ht-modal-full .modal-content,
.ht-modal-glass-full .modal-content {
  display: flex;
  flex-direction: column;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden;
  border-radius: 0 !important
}

.ht-modal-full .modal-body,
.ht-modal-glass-full .modal-body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch
}

.ht-modal-glass-rounded .modal-dialog,
.ht-modal-rounded .modal-dialog {
  position: fixed !important;
  top: 25px !important;
  right: 25px !important;
  bottom: 25px !important;
  left: 25px !important;
  width: calc(100vw - 50px) !important;
  max-width: none !important;
  height: calc(100dvh - 50px) !important;
  margin: 0 !important;
  transform: none !important
}

.ht-modal-glass-rounded .modal-content,
.ht-modal-rounded .modal-content {
  display: flex;
  flex-direction: column;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden;
  border-radius: var(--radius-lg, 24px) !important
}

.ht-modal-glass-rounded .modal-body,
.ht-modal-rounded .modal-body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch
}

.ht-modal-glass-auto .modal-dialog,
.ht-modal-auto .modal-dialog {
  position: fixed !important;
  top: 50% !important;
  bottom: auto !important;
  left: 50% !important;
  width: calc(100vw - 50px) !important;
  max-width: 600px !important;
  height: auto !important;
  max-height: calc(100dvh - 50px) !important;
  margin: 0 !important;
  transform: translate(-50%, -50%) !important
}

.ht-modal-glass-auto .modal-content,
.ht-modal-auto .modal-content {
  display: flex;
  flex-direction: column;
  width: 100% !important;
  height: auto !important;
  min-height: 150px;
  max-height: calc(100dvh - 50px);
  overflow: hidden
}

.ht-modal-glass-auto .modal-body,
.ht-modal-auto .modal-body {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch
}

.ht-modal-glass-auto--center .modal-dialog {
  top: 50% !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important
}

.ht-modal-glass-auto--top .modal-dialog,
.ht-modal-auto.ht-modal-auto--top .modal-dialog {
  top: 25px !important;
  bottom: auto !important;
  transform: translateX(-50%) !important
}

.ht-modal-glass-auto--bottom .modal-dialog,
.ht-modal-auto.ht-modal-auto--bottom .modal-dialog {
  top: auto !important;
  bottom: 25px !important;
  transform: translateX(-50%) !important
}

.ht-modal-glass-auto.fade .modal-dialog,
.ht-modal-auto.fade .modal-dialog {
  transition: opacity 0.3s ease, transform 0.3s ease
}

.ht-modal-glass-auto--center.fade:not(.show) .modal-dialog,
.ht-modal-auto.fade:not(.show) .modal-dialog {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.9) !important
}

.ht-modal-glass-auto--center.show .modal-dialog,
.ht-modal-auto.fade.show .modal-dialog {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1) !important
}

.ht-modal-glass-auto--top.fade:not(.show) .modal-dialog,
.ht-modal-auto.ht-modal-auto--top.fade:not(.show) .modal-dialog {
  opacity: 0;
  transform: translateX(-50%) translateY(-20px) !important
}

.ht-modal-glass-auto--top.show .modal-dialog,
.ht-modal-auto.ht-modal-auto--top.fade.show .modal-dialog {
  opacity: 1;
  transform: translateX(-50%) translateY(0) !important
}

.ht-modal-glass-auto--bottom.fade:not(.show) .modal-dialog,
.ht-modal-auto.ht-modal-auto--bottom.fade:not(.show) .modal-dialog {
  opacity: 0;
  transform: translateX(-50%) translateY(20px) !important
}

.ht-modal-glass-auto--bottom.show .modal-dialog,
.ht-modal-auto.ht-modal-auto--bottom.fade.show .modal-dialog {
  opacity: 1;
  transform: translateX(-50%) translateY(0) !important
}

.ht-modal-dialog .modal-dialog {
  max-width: 350px;
  max-height: 560px;
  margin: auto
}

.ht-modal-dialog .modal-content {
  overflow: hidden
}

.ht-modal-dialog .modal-icon {
  display: block;
  margin: 25px auto 10px;
  font-size: 50px;
  color: var(--color-primary-ink);
  text-align: center
}

.ht-modal-dialog .modal-footer,
.ht-modal-dialog .ht-modal-footer {
  display: flex;
  gap: 10px;
  padding: 12px 16px
}

.ht-modal-panel .modal-dialog {
  position: fixed;
  top: 0;
  bottom: 0;
  width: 85%;
  max-width: 400px;
  height: 100dvh;
  max-height: none;
  margin: 0
}

.ht-modal-panel.ht-modal-panel--left .modal-dialog {
  right: auto;
  left: 0;
  transform: translateX(-100%)
}

.ht-modal-panel.ht-modal-panel--left.show .modal-dialog {
  transform: translateX(0)
}

.ht-modal-panel.ht-modal-panel--right .modal-dialog {
  right: 0;
  left: auto;
  transform: translateX(100%)
}

.ht-modal-panel.ht-modal-panel--right.show .modal-dialog {
  transform: translateX(0)
}

.ht-modal-panel .modal-content {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 0
}

.ht-modal-panel.fade .modal-dialog {
  transition: transform var(--transition-base, 0.3s) ease-out
}

.ht-modal-immersive .modal-dialog {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1065;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  padding: 20px;
  margin: 0
}

.ht-modal-immersive .modal-content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 480px;
  height: auto
}

.ht-modal-immersive:not(#welcome-splash):not(#auth-splash-modal) .modal-content {
  max-height: calc(100dvh - 40px);
  overflow: hidden;
  background: var(--color-bg-card);
  border-radius: var(--radius-lg, 24px);
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.2)
}

.modal.slide-top .modal-dialog {
  transform: translateY(-100%);
  transition: transform var(--transition-base, 0.3s) ease-out
}

.modal.slide-top.show .modal-dialog {
  transform: translateY(0)
}

.modal.slide-top.fade .modal-dialog {
  opacity: 0;
  transform: translateY(-100%)
}

.modal.slide-top.fade.show .modal-dialog {
  opacity: 1;
  transform: translateY(0)
}

.modal.slide-bottom .modal-dialog {
  transform: translateY(100%);
  transition: transform var(--transition-base, 0.3s) ease-out
}

.modal.slide-bottom.show .modal-dialog {
  transform: translateY(0)
}

.modal.slide-bottom.fade .modal-dialog {
  opacity: 0;
  transform: translateY(100%)
}

.modal.slide-bottom.fade.show .modal-dialog {
  opacity: 1;
  transform: translateY(0)
}

.modal.slide-left .modal-dialog {
  transform: translateX(-100%);
  transition: transform var(--transition-base, 0.3s) ease-out
}

.modal.slide-left.show .modal-dialog {
  transform: translateX(0)
}

.modal.slide-left.fade .modal-dialog {
  opacity: 0;
  transform: translateX(-100%)
}

.modal.slide-left.fade.show .modal-dialog {
  opacity: 1;
  transform: translateX(0)
}

.modal.slide-right .modal-dialog {
  transform: translateX(100%);
  transition: transform var(--transition-base, 0.3s) ease-out
}

.modal.slide-right.show .modal-dialog {
  transform: translateX(0)
}

.modal.slide-right.fade .modal-dialog {
  opacity: 0;
  transform: translateX(100%)
}

.modal.slide-right.fade.show .modal-dialog {
  opacity: 1;
  transform: translateX(0)
}

.modal.scale .modal-dialog {
  transform: scale(0.7);
  transition: transform var(--transition-base, 0.3s) ease-out
}

.modal.scale.show .modal-dialog {
  transform: scale(1)
}

.modal.scale.fade .modal-dialog {
  opacity: 0;
  transform: scale(0.7)
}

.modal.scale.fade.show .modal-dialog {
  opacity: 1;
  transform: scale(1)
}

.ht-modal-header {
  position: relative;
  display: flex !important;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  padding: 20px 25px;
  background: transparent;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06)
}

.ht-modal-header-title {
  margin: 0 !important;
  font-size: 1.2rem;
  font-weight: var(--font-weight-bold);
  line-height: 1.2;
  color: var(--color-text-heading)
}

.ht-modal-header-subtitle {
  margin: 4px 0 0 0;
  font-size: 0.875rem;
  line-height: 1.3;
  color: var(--color-text-subtle)
}

.ht-modal-header-actions {
  position: absolute;
  top: 20px;
  right: 80px;
  display: flex;
  gap: 10px;
  align-items: center
}

.ht-modal-header-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin-right: 10px;
  color: var(--color-text-subtle);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 50%;
  transition: var(--transition-fast)
}

.ht-modal-header-action:hover {
  color: var(--color-primary-ink);
  background-color: rgba(0, 0, 0, 0.05)
}

.ht-modal-header-action i {
  font-size: 20px
}

.ht-modal-header~.ht-modal-close-btn {
  top: 10px;
  right: 13px
}

.ht-modal-header~.ht-modal-grid {
  padding-top: 20px
}

.ht-modal-grid {
  display: grid;
  flex: 1;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 15px;
  align-content: start;
  padding: 80px 30px 30px 30px;
  overflow-y: auto
}

.ht-modal-glass-auto .ht-modal-grid {
  gap: 10px;
  max-height: calc(100dvh - 150px);
  padding: 16px 16px 16px 16px
}

.ht-modal-grid::-webkit-scrollbar {
  width: 6px
}

.ht-modal-grid::-webkit-scrollbar-track {
  background: transparent
}

.ht-modal-grid::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.15);
  border-radius: var(--radius-md)
}

.ht-modal-grid-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  padding: 20px 10px;
  color: var(--color-text-body);
  text-align: center;
  text-decoration: none;
  background-color: var(--color-bg-card);
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: var(--radius-lg);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.04);
  transition: var(--transition-base)
}

.ht-modal-grid-item i.material-icons {
  margin-bottom: 10px;
  font-size: 42px !important;
  color: var(--color-primary-ink)
}

.ht-modal-grid-item span {
  margin-top: 5px;
  font-size: 0.85rem;
  font-weight: var(--font-weight-semibold);
  line-height: 1.2;
  white-space: normal
}

.ht-modal-grid-item:hover {
  color: var(--color-primary-ink);
  background-color: var(--color-bg-card);
  border-color: transparent;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
  transform: translateY(-5px)
}

.ht-modal-grid-item:active {
  transform: translateY(-2px)
}

.ht-modal-grid-item--danger i.material-icons {
  color: var(--color-danger-hover) !important
}

.ht-modal-grid-item--danger span {
  color: var(--color-danger-hover)
}

.ht-modal-grid-item--danger:hover {
  color: var(--color-danger-hover);
  background-color: var(--color-danger-soft)
}

.ht-modal-grid-item--primary i.material-icons {
  color: var(--color-primary-ink) !important
}

.ht-modal-grid-item--primary:hover {
  background-color: var(--color-info-soft)
}

.ht-modal-grid-item--disabled {
  pointer-events: none;
  cursor: not-allowed;
  opacity: 0.4
}

.modal.action-sheet {
  z-index: 12000
}

.modal.action-sheet .modal-dialog {
  position: fixed;
  bottom: 0;
  z-index: 12000;
  width: 100%;
  padding: 0;
  margin: 0;
  transform: translate(0, 100%);
  transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1)
}

.modal.action-sheet.show .modal-dialog {
  transform: translate(0, 0) !important
}

.modal.action-sheet .modal-content {
  padding-bottom: env(safe-area-inset-bottom);
  background: var(--color-bg-card);
  border: 0;
  border-radius: 24px 24px 0 0;
  box-shadow: 0 -5px 25px rgba(0, 0, 0, 0.1)
}

.modal.action-sheet .modal-content .modal-header {
  padding: 15px 20px 5px 20px;
  border-bottom: none
}

.modal.action-sheet .modal-content .modal-header .modal-title {
  font-size: var(--text-base);
  color: var(--color-primary-ink)
}

.modal.action-sheet .close-button {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  font-size: 24px;
  color: var(--color-text-muted);
  text-decoration: none;
  background: var(--color-bg-subtle);
  border-radius: 50%
}

.modal.action-sheet .modal-content .action-sheet-content {
  padding: 10px 20px 30px 20px
}

.action-button-list {
  padding: 0;
  margin: 0
}

.action-button-list>li {
  display: block
}

.action-button-list>li .btn {
  display: flex;
  justify-content: space-between;
  width: 100%;
  min-height: 50px;
  padding: 10px 16px;
  font-size: var(--text-base);
  font-weight: var(--font-weight-normal);
  line-height: 1.1em;
  color: var(--color-text-heading);
  border-radius: 0 !important
}

.action-button-list>li .btn:active,
.action-button-list>li .btn.active {
  background: rgba(225, 225, 225, 0.3)
}

.action-button-list>li .btn.text-primary {
  color: var(--color-purple, #592BCA) !important
}

.action-button-list>li .btn.text-secondary {
  color: var(--color-text-subtle) !important
}

.action-button-list>li .btn.text-danger {
  color: var(--color-danger) !important
}

.action-button-list>li .btn.text-success {
  color: var(--color-success) !important
}

.action-button-list>li .btn.text-warning {
  color: var(--color-warning) !important
}

.action-button-list>li .btn.text-info {
  color: var(--color-purple, #592BCA) !important
}

.action-button-list>li .btn.text-light {
  color: var(--color-text-inverse) !important
}

.action-button-list>li .btn.text-dark {
  color: var(--color-text-heading) !important
}

.action-button-list>li .btn>span {
  display: flex;
  align-items: center;
  justify-content: flex-start
}

.action-button-list>li .btn .icon,
.action-button-list>li .btn ion-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px !important;
  height: 24px;
  margin-right: 10px;
  margin-left: -5px;
  font-size: 24px;
  line-height: 1em
}

.action-button-list>li.action-divider {
  height: 1px;
  background: var(--color-border)
}

.action-sheet.inset .modal-dialog {
  padding: 16px;
  padding-bottom: 16px !important;
  margin-bottom: env(safe-area-inset-bottom)
}

.action-sheet.inset .modal-dialog .modal-content {
  padding-bottom: 0;
  border-radius: var(--radius-md)
}

.action-sheet.inset .action-button-list>li:last-child .btn {
  border-radius: 0 0 16px 16px !important
}

.request_key .modal-content {
  position: relative;
  z-index: 1;
  width: 70%;
  margin-bottom: 136px;
  margin-left: 15px
}

.request_key .modal-dialog,
.contact_chat .modal-dialog {
  left: 76% !important
}

.contact_chat .modal-content {
  position: relative;
  z-index: 1;
  width: 70%;
  margin-bottom: 45px;
  margin-left: 15px
}

.request_key .modal-content:before {
  position: absolute;
  right: 7%;
  bottom: -10px;
  z-index: 10;
  display: block;
  width: 0;
  height: 0;
  margin-left: -16px;
  content: "";
  border-top: 10px solid var(--color-bg-body);
  border-right: 14px solid transparent;
  border-left: 14px solid transparent
}

.contact_chat .modal-content:before {
  position: absolute;
  right: 7%;
  bottom: -10px;
  z-index: 10;
  display: block;
  width: 0;
  height: 0;
  margin-left: -16px;
  content: "";
  border-top: 10px solid var(--color-bg-card);
  border-right: 14px solid transparent;
  border-left: 14px solid transparent
}

.request_key .modal-content .action-sheet-content,
.contact_chat .modal-content .action-sheet-content {
  padding: 10px 8px !important;
  font-size: var(--text-sm);
  line-height: 1.5em;
  color: var(--color-text-heading)
}

.request_key .modal-content .action-sheet-content {
  background-color: var(--color-bg-body)
}

.request_key .modal-content .action-sheet-content h4,
.contact_chat .modal-content .action-sheet-content h4 {
  margin-bottom: 10px;
  font-size: var(--text-base)
}

.request_key .modal-content .action-sheet-content ion-icon {
  margin-bottom: -4px;
  font-size: 22px
}

.contact_chat .modal-content .action-sheet-content ion-icon {
  margin-bottom: -5px;
  font-size: 20px
}

.push-notify {
  z-index: 200000
}

.ht-notify-card {
  overflow: hidden;
  background: var(--color-bg-card) !important;
  border: none !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important
}

.ht-notify-body {
  padding: 35px 24px 24px 24px !important;
  text-align: center
}

.ht-notify-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 20px auto
}

.ht-hero-glow {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: var(--color-success-soft);
  border-radius: 50%;
  animation: htPulseGlow 2s infinite ease-in-out
}

.ht-hero-img-wrapper {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background-color: var(--color-success);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(16, 185, 129, 0.3)
}

  {
  margin: 0 !important;
  font-size: 24px !important;
  color: var(--color-text-inverse) !important
}

.ht-notify-title {
  margin-bottom: 12px !important;
  font-family: var(--font-family-body) !important;
  font-size: 1.35rem !important;
  font-weight: 800 !important;
  color: var(--color-dark) !important;
  letter-spacing: -0.5px
}

.ht-notify-text {
  margin-bottom: 30px !important;
  font-family: var(--font-family-body) !important;
  font-size: 0.95rem !important;
  line-height: 1.5 !important;
  color: var(--color-text-body) !important
}

.ht-notify-actions {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.ht-btn-notify-primary {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  padding: 14px 24px !important;
  font-size: 1rem !important;
  font-weight: var(--font-weight-bold) !important;
  color: var(--color-text-inverse) !important;
  text-decoration: none !important;
  background-color: var(--color-dark) !important;
  border-radius: var(--radius-pill) !important;
  box-shadow: 0 10px 20px rgba(15, 23, 42, 0.15);
  transition: var(--transition-fast)
}

.ht-btn-notify-primary:active {
  transform: scale(0.96)
}

.ht-btn-notify-primary i {
  font-size: 20px !important
}

.ht-btn-notify-ghost {
  padding: 10px !important;
  font-size: 0.95rem !important;
  font-weight: var(--font-weight-semibold) !important;
  color: var(--color-text-subtle) !important;
  text-decoration: none !important;
  background-color: transparent !important;
  border-radius: var(--radius-pill) !important;
  transition: var(--transition-fast)
}

.ht-btn-notify-ghost:active {
  color: var(--color-dark) !important;
  background-color: var(--color-bg-subtle) !important
}

.android-add-to-home.ht-modal-glass-auto--bottom .modal-dialog {
  width: calc(100vw - 30px) !important;
  max-width: 400px !important;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s !important
}

.android-add-to-home.ht-modal-glass-auto--bottom .modal-dialog {
  top: 15px !important;
  right: 15px !important;
  bottom: auto !important;
  left: auto !important;
  margin: 0 0 0 auto !important;
  transform: translateY(-20px) !important
}

.android-add-to-home.ht-modal-glass-auto--bottom.show .modal-dialog {
  transform: translateY(0) !important
}

.android-add-to-home .modal-content:before {
  position: absolute;
  top: -10px;
  right: 20px;
  z-index: 10;
  display: block;
  width: 0;
  height: 0;
  content: "";
  border-right: 12px solid transparent;
  border-bottom: 12px solid var(--color-bg-card);
  border-left: 12px solid transparent;
  filter: drop-shadow(0 -4px 4px rgba(0, 0, 0, 0.05))
}

.ios-add-to-home.ht-modal-glass-auto--bottom .modal-dialog {
  top: auto !important;
  right: auto !important;
  bottom: 25px !important;
  left: 50% !important;
  width: calc(100vw - 30px) !important;
  max-width: 400px !important;
  margin: 0 !important;
  transform: translate(-50%, 20px) !important;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s !important
}

.ios-add-to-home.ht-modal-glass-auto--bottom.show .modal-dialog {
  transform: translate(-50%, 0) !important
}

.ios-add-to-home .modal-content:after {
  position: absolute;
  bottom: -10px;
  left: 50%;
  z-index: 10;
  display: block;
  width: 0;
  height: 0;
  content: "";
  border-top: 12px solid var(--color-bg-card);
  border-right: 12px solid transparent;
  border-left: 12px solid transparent;
  filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.05));
  transform: translateX(-50%)
}

.android-add-to-home .modal-content,
.ios-add-to-home .modal-content {
  padding: 10px;
  overflow: visible !important;
  background: var(--color-bg-card) !important;
  border: none !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2) !important
}

.android-add-to-home .modal-header,
.ios-add-to-home .modal-header {
  position: relative;
  justify-content: center;
  padding: 20px 24px 0 !important;
  border-bottom: none !important
}

.android-add-to-home .modal-title,
.ios-add-to-home .modal-title {
  width: 100%;
  margin: 0;
  font-family: var(--font-family-body) !important;
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  color: var(--color-dark) !important;
  text-align: center
}

.android-add-to-home .modal-body,
.ios-add-to-home .modal-body {
  padding: 10px 24px 24px !important
}

.android-add-to-home .action-sheet-content,
.ios-add-to-home .action-sheet-content {
  font-family: var(--font-family-body) !important;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--color-text-body) !important
}

.android-add-to-home img.imaged,
.ios-add-to-home img.imaged {
  display: block;
  width: 72px !important;
  height: 72px !important;
  margin: 15px auto 25px auto !important;
  object-fit: cover;
  border-radius: var(--radius-md) !important;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15) !important
}

.android-add-to-home .action-sheet-content>div,
.ios-add-to-home .action-sheet-content>div {
  margin-bottom: 16px
}
.ht-modal-sheet .ht-modal-close-btn {
    top: 22px;
    right: 18px;
}
.android-add-to-home .text-template {
  padding: 2px 4px;
  margin: 0 4px;
  font-size: 20px !important;
  vertical-align: middle;
  color: var(--color-dark) !important;
  background: var(--color-bg-subtle);
  border-radius: var(--radius-xs);
  box-shadow: inset 0 0 0 1px var(--color-border)
}

.ios-add-to-home .text-template {
  position: relative;
  top: -2px;
  padding: 2px 6px;
  margin: 0 4px;
  font-size: 20px !important;
  vertical-align: middle;
  color: var(--color-dark) !important;
  background: var(--color-bg-subtle);
  border-radius: var(--radius-xs);
  box-shadow: inset 0 0 0 1px var(--color-border)
}

.android-add-to-home #install-btn {
  width: 100%;
  padding: 14px 24px !important;
  margin-top: 10px !important;
  font-size: 1rem !important;
  font-weight: var(--font-weight-bold) !important;
  color: var(--color-text-inverse) !important;
  background-color: var(--color-success) !important;
  border: none !important;
  border-radius: var(--radius-pill) !important;
  box-shadow: 0 10px 20px rgba(16, 185, 129, 0.2) !important;
  transition: transform 0.2s
}

.android-add-to-home #install-btn:active {
  transform: scale(0.96)
}

.ht-quick-poll .modal-content {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background-color: var(--color-bg-card);
  border: none !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.3) !important
}

.ht-quick-poll__hero {
  position: relative;
  height: 180px;
    margin: 5px;
  background-position: center;
  background-size: cover;
  border-radius: 28px 28px;
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.15);
}

.ht-quick-poll__hero::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 80px;
  content: '';
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, transparent 100%);
  border-radius: 28px 28px 0 0
}

.ht-quick-poll__btn-close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: var(--color-text-body);
  cursor: pointer;
  background-color: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: var(--transition-fast)
}

.ht-quick-poll__btn-close:active {
  background-color: var(--color-bg-card);
  transform: scale(0.9)
}

.ht-quick-poll__btn-icon {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: var(--color-text-inverse);
  background-color: var(--color-success);
  border: none;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
  transition: var(--transition-fast)
}

.ht-quick-poll__btn-icon i {
  font-size: 20px
}

.ht-quick-poll__header {
  padding: 30px 24px 10px 24px;
  text-align: center
}

.ht-quick-poll__title {
  margin: 0 0 8px 0 !important;
  font-family: var(--font-family-body) !important;
  font-size: 1.4rem !important;
  font-weight: 800 !important;
  line-height: 1.3;
  color: var(--color-dark) !important
}

.ht-quick-poll__message {
  margin: 0;
  font-family: var(--font-family-body);
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--color-text-subtle)
}

.ht-quick-poll__container {
  padding: 0 24px
}

.ht-quick-poll__error {
  padding: 0 24px 15px 24px;
  font-size: 0.9rem;
  font-weight: var(--font-weight-semibold);
  color: var(--color-danger);
  text-align: center;
  background-color: transparent
}

.ht-quick-poll__social {
  padding: 10px 24px 20px 24px;
  text-align: center
}

.ht-quick-poll__social-title {
  margin-bottom: 5px;
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--color-dark)
}

.ht-quick-poll__social-text {
  margin-bottom: 20px;
  font-size: 0.95rem;
  color: var(--color-text-subtle)
}

.ht-quick-poll__social-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  justify-content: center
}

.ht-social-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 30%;
  padding: 15px;
  color: var(--color-text-body);
  text-decoration: none !important;
  background: var(--color-bg-body);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition: var(--transition-fast)
}

.ht-social-card:hover {
  background: var(--color-bg-card);
  border-color: var(--color-border-strong);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
  transform: translateY(-3px)
}

.ht-social-card img {
  width: 52px;
  height: 52px;
  margin-bottom: 8px;
  object-fit: contain;
  filter: brightness(0) opacity(1) !important
}

.ht-social-card i.fa-google {
  margin-bottom: 8px;
  font-size: 32px
}

.ht-social-card span {
  font-size: 0.75rem;
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  text-align: center
}

.ht-quick-poll__footer {
  padding: 14px 24px 24px 24px
}

.ht-quick-poll__actions {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.ht-btn-primary {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 16px 24px !important;
  font-size: 1rem !important;
  font-weight: var(--font-weight-bold) !important;
  color: var(--color-text-inverse) !important;
  cursor: pointer;
  background-color: var(--color-dark) !important;
  border: none;
  border-radius: var(--radius-pill) !important;
  box-shadow: 0 10px 20px rgba(15, 23, 42, 0.15);
  transition: var(--transition-fast)
}

.ht-btn-primary:active {
  transform: scale(0.96)
}

.ht-btn-ghost {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 12px !important;
  font-size: 0.95rem !important;
  font-weight: var(--font-weight-semibold) !important;
  color: var(--color-text-subtle) !important;
  text-decoration: none !important;
  background-color: transparent !important;
  border-radius: var(--radius-pill);
  transition: var(--transition-fast)
}

.ht-btn-ghost i {
  font-size: 18px
}

#notify_modalheader {
  display: block !important;
  padding: 30px 24px 5px 24px !important;
  text-align: center;
  border-bottom: none !important
}

#notify_modalheader .modal-title {
  margin: 0 !important;
  font-family: var(--font-family-body) !important;
  font-size: 1.4rem !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  color: var(--color-dark) !important
}

#notify_modalmessage {
  display: block !important;
  padding: 0 24px 15px 24px !important;
  font-family: var(--font-family-body) !important;
  font-size: 0.95rem !important;
  color: var(--color-text-subtle) !important;
  text-align: center
}

#notificacion_modal:has(#poll_container .poll-item):not(:has(#poll_container .poll-item:nth-child(2))) #notify_modalheader,
#notificacion_modal:has(#poll_container .poll-item):not(:has(#poll_container .poll-item:nth-child(2))) #notify_modalmessage {
  display: none !important
}

.ht-quick-poll__container .poll-question-header {
  display: block !important;
  padding: 24px 15px 15px 15px !important;
  text-align: center;
  text-decoration: none !important;
  cursor: default
}

.ht-quick-poll__container .poll-question-title {
  margin: 0 !important;
  font-family: var(--font-family-body) !important;
  font-size: 1.15rem !important;
  font-weight: var(--font-weight-bold) !important;
  line-height: 1.4 !important;
  color: var(--color-text-heading) !important
}

.ht-quick-poll__container #text_area_comments_container {
  width: 100%;
  padding: 0 !important;
  margin-top: 5px !important;
  margin-bottom: 20px !important;
  animation: htFadeInUp 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards
}

.ht-quick-poll__container .poll-obs {
  width: 100% !important;
  padding: 16px !important;
  font-family: var(--font-family-body) !important;
  font-size: 0.95rem !important;
  color: var(--color-dark) !important;
  resize: none !important;
  background-color: var(--color-bg-body) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.02) !important;
  transition: var(--transition-fast) !important
}

.ht-quick-poll__container .poll-obs:focus {
  outline: none !important;
  background-color: var(--color-bg-card) !important;
  border-color: var(--color-success) !important;
  box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.15) !important
}

.ht-quick-poll__container .poll-obs::placeholder {
  font-weight: var(--font-weight-medium) !important;
  color: var(--color-text-muted) !important
}

#storyModal.ht-modal-auto .modal-dialog {
  width: calc(100vw - 32px) !important;
  max-width: 500px !important;
  max-height: calc(100dvh - 80px);
  padding-bottom: 0 !important;
  margin: auto !important;
}

#storyModal .modal-content,
#storyModal .modal-body {
  padding: 0;
  overflow: visible !important;
  background: transparent;
  box-shadow: none
}

#storyModal .story-controls {
  position: absolute;
  bottom: -90px;
  left: 0;
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0 20px;
  padding-bottom: env(safe-area-inset-bottom, 0px)
}

#storyModal .story-controls .btn {
  flex-shrink: 0
}

#storyImage,
#storyVideo {
  display: block;
  width: auto !important;
  max-width: 100% !important;
  max-height: 72vh !important;
  margin: 0 auto;
  object-fit: inherit
}

#lang_selector_modal .lang-flag {
  width: 44px;
  height: 44px;
  margin-bottom: 11px;
  object-fit: cover;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1)
}

#lang_selector_modal .lang-flag-emoji {
  font-size: 40px;
  line-height: 1;
  margin-bottom: 8px;
}

#lang_selector_modal .lang_selector_item .material-icons {
  display: none
}

.ht-modal-full .modal-body,
.ht-modal-glass-full .modal-body,
.ht-modal-rounded .modal-body,
.ht-modal-glass-rounded .modal-body {
  padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px))
}

.ht-modal-panel .modal-body {
  flex: 1;
  padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch
}

.ht-modal-full .modal-footer,
.ht-modal-full .ht-modal-footer,
.ht-modal-glass-full .modal-footer,
.ht-modal-glass-full .ht-modal-footer,
.ht-modal-rounded .modal-footer,
.ht-modal-rounded .ht-modal-footer,
.ht-modal-glass-rounded .modal-footer,
.ht-modal-glass-rounded .ht-modal-footer,
.ht-modal-auto.ht-modal-auto--bottom .modal-footer,
.ht-modal-auto.ht-modal-auto--bottom .ht-modal-footer,
.ht-modal-glass-auto.ht-modal-glass-auto--bottom .modal-footer,
.ht-modal-glass-auto.ht-modal-glass-auto--bottom .ht-modal-footer,
.ht-modal-panel .modal-footer,
.ht-modal-panel .ht-modal-footer {
  padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px))
}

@media (max-height: 600px) {

  #storyImage,
  #storyVideo {
    max-height: 65vh !important
  }
}

@media (max-width: 576px) {
  .modal-title {
    font-size: 1.125rem
  }

  .ht-modal-grid {
    grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
    gap: 12px;
    padding: 70px 20px 20px 20px
  }

  .ht-modal-grid-item {
    min-height: 100px;
    padding: 15px 8px
  }

  .ht-modal-glass-auto--top .modal-dialog {
    top: 15px !important
  }

  .ht-modal-glass-auto--bottom .modal-dialog {
    bottom: 15px !important
  }

  .ht-modal-immersive .modal-dialog {
    padding: 0
  }

  .ht-modal-immersive:not(#welcome-splash):not(#auth-splash-modal) .modal-content {
    max-width: none;
    max-height: 100dvh;
    border-radius: 0
  }

  #storyModal.ht-modal-auto .modal-dialog {
    width: calc(100vw - 5px) !important;
    max-height: calc(100dvh - 80px);
    margin-bottom: 0;
  }

  .ht-modal-grid-item span {
    font-size: 0.75rem
  }

  .modal-header,
  .modal-body,
  .modal-footer,
  .ht-modal-footer {
    padding: 25px
  }

  .ht-modal-glass-rounded .modal-dialog,
  .ht-modal-rounded .modal-dialog {
    top: 15px !important;
    right: 15px !important;
    bottom: 15px !important;
    left: 15px !important;
    width: calc(100vw - 30px) !important;
    height: calc(100dvh - 30px) !important
  }

  .ht-modal-glass-auto .modal-dialog,
  .ht-modal-auto .modal-dialog {
    width: calc(100vw - 30px) !important;
    max-height: calc(100dvh - 30px) !important
  }

  .ht-modal-grid-item i.fab,
  .ht-modal-grid-item i.material-icons {
    font-size: 36px !important
  }
}
#modal_allow_multiple .ht-modal-footer {
    padding: 10px 0;
}
/* ==========================================================================
   iOS Bottom Sheet modal — .ht-modal-sheet
   Mobile: sube desde abajo, ocupa 95dvh, deja un hilo oscuro arriba.
   Desktop: se comporta como ht-modal-auto (centrado, tamaño automático).
   Uso: <div class="modal ht-modal-sheet fade" ...>
   ========================================================================== */

/* --- Backdrop blur (igual que el resto de glass modals) ------------------ */
.ht-modal-sheet ~ .modal-backdrop,
.ht-modal-sheet + .modal-backdrop {
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px)
}

/* --- Dialog: posicionado en la parte inferior ---------------------------- */
.ht-modal-sheet .modal-dialog {
  position: fixed !important;
  top: auto !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  max-width: 100vw !important;
  height: auto !important;
  max-height: 90dvh !important;
  margin: 0 !important;
  transform: translateY(100%) !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important
}

.ht-modal-sheet.show .modal-dialog {
  transform: translateY(0) !important
}

/* --- Content: glass, bordes redondeados arriba, sin radio abajo ---------- */
.ht-modal-sheet .modal-content {
  display: flex;
  flex-direction: column;
  width: 100% !important;
  height: auto !important;
  max-height: 90dvh !important;
  overflow: hidden;
  background: rgba(248, 249, 250, 0.96) !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  border-bottom: none !important;
  border-radius: 28px 28px 0 0;
  box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.18) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  backdrop-filter: blur(20px) saturate(180%) !important
}

/* --- Drag pill indicator (pill iOS arriba del contenido) ----------------- */
.ht-modal-sheet .modal-content::before {
  display: block;
  flex-shrink: 0;
  width: 36px;
  height: 4px;
  margin: 10px auto 0;
  content: '';
  background: rgba(0, 0, 0, 0.18);
  border-radius: var(--radius-xs)
}

/* --- Header --------------------------------------------------------------- */
.ht-modal-sheet .modal-header {
  flex-shrink: 0;
  padding: 10px 20px 14px !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.07) !important
}

/* --- Body: scrollable, respeta safe-area (notch iPhone) ------------------ */
.ht-modal-sheet .modal-body {
  flex: 1;
  padding-bottom: calc(env(safe-area-inset-bottom) + 20px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch
}

/* --- Footer: respeta safe-area ------------------------------------------ */
.ht-modal-sheet .modal-footer {
  flex-shrink: 0;
  padding-bottom: calc(env(safe-area-inset-bottom) + 12px)
}


/* ==========================================================================
   MODAL ICON SYSTEM — ht-modal-icon
   Círculo semántico con icono, se coloca ANTES de ht-modal-header.
   Variantes: --info · --success · --warning · --danger · --primary
   Uso: <div class="ht-modal-icon ht-modal-icon--danger">
          <i class="material-icons">error</i>
        </div>
   ========================================================================== */

.ht-modal-icon {
  position: relative;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  margin: 35px auto 20px;
  border-radius: 50%
}

/* Outer glow ring */
.ht-modal-icon::before {
  position: absolute;
  inset: -6px;
  content: '';
  background: currentcolor;
  border-radius: 50%;
  opacity: 0.12
}

.ht-modal-icon i,
.ht-modal-icon .material-icons {
  position: relative;
  z-index: 1;
  font-size: 32px !important
}

/* --- Semantic variants --------------------------------------------------- */
.ht-modal-icon--info    { color: var(--color-info); background: var(--color-info-soft) }
.ht-modal-icon--success { color: var(--color-success-hover); background: var(--color-success-soft) }
.ht-modal-icon--warning { color: var(--color-warning-hover); background: var(--color-warning-soft) }
.ht-modal-icon--danger  { color: var(--color-danger-hover); background: var(--color-danger-soft) }
.ht-modal-icon--primary {
  color: var(--color-primary-ink, #7c3aed);
  background: var(--color-primary-subtle, #ede9fe)
}

/* --- When icon precedes header: center + reduce spacing ------------------ */
.ht-modal-icon + .ht-modal-header {
  justify-content: center;
  padding-top: 12px;
  border-bottom: none
}

.ht-modal-icon + .ht-modal-header .ht-modal-header-title {
  width: 100%;
  text-align: center
}

/* Center body text when icon is present */
.ht-modal-icon ~ .modal-body {
  padding-top: 4px;
  text-align: center
}

/* ── Floating footer — for full/tall modals ─────────────────────────────── */
.ht-modal-footer--float {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  z-index: 1060 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  width: 100% !important;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
  background: linear-gradient(to bottom, transparent 0%, rgba(255, 255, 255, 1) 45%) !important;
  border-top: none !important;
}

