/*
  Alojalos marketplace detail page styles
  ------------------------------------------------------------------
  Archivo consolidado en v226.
  Antes existían múltiples fragmentos marketplace-detail-v162...v209.
  Para migrar a Astro, este archivo debe convertirse en:
  - src/styles/marketplace-detail.css, o
  - estilos scoped por componentes: DetailHero, AvailabilityCard,
    RoomOptions, AdvancedConsultCTA, StickyBookingSummary.
*/


/* ===== Migrated from marketplace-detail-v162.css ===== */
/* v162 — Detail page Fish-ready hardening */
.detail-page-v162 .marketplace-header-inner-lean {
  grid-template-columns: auto 1fr;
}

.detail-header-actions {
  justify-content: flex-end;
}

.detail-header-back {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.22);
  color: #fff;
  font-weight: 800;
  background: rgba(255,255,255,.06);
}

.detail-shell-v162 {
  padding-top: 24px;
}

.detail-hero-v162 {
  align-items: center;
  padding: 22px;
  border: 1px solid rgba(12,44,71,.08);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(5,25,43,.055);
}

.detail-context-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.detail-context-pills span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  color: #007c78;
  background: rgba(10,169,174,.09);
  font-size: .78rem;
  font-weight: 850;
}

.detail-gallery-v162 .detail-gallery-main,
.detail-gallery-thumb {
  border: 0;
  padding: 0;
  cursor: pointer;
}

.detail-gallery-v162 .detail-gallery-main:focus-visible,
.detail-gallery-thumb:focus-visible,
.detail-gallery-more:focus-visible {
  outline: 3px solid rgba(10,169,174,.35);
  outline-offset: 2px;
}

.detail-gallery-v162 .detail-gallery-main {
  min-height: 390px;
}

.detail-gallery-thumb {
  overflow: hidden;
  border-radius: 18px;
  background: #eaf3f7;
}

.detail-gallery-thumb img {
  width: 100%;
  height: 100%;
  min-height: 188px;
  object-fit: cover;
  display: block;
}

.detail-gallery-more {
  display: grid;
  place-items: center;
  min-height: 188px;
  border: 1px solid rgba(12,44,71,.08);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(10,169,174,.11), rgba(255,122,26,.10));
  color: #07162d;
  font-weight: 900;
  cursor: pointer;
}

.detail-layout-v162 {
  grid-template-columns: minmax(0, 1fr) minmax(340px, 390px);
}

.detail-highlights-v162 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.detail-fish-note {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 14px;
  color: #52617a;
  background: rgba(10,169,174,.08);
  font-size: .88rem;
}

.detail-booking-card-v162 {
  top: 96px;
  padding: 20px;
}

.detail-booking-topline {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  margin-bottom: 10px;
  border-radius: 999px;
  color: #008b8f;
  background: rgba(10,169,174,.09);
  font-size: .76rem;
  font-weight: 900;
}

.detail-stay-summary {
  display: grid;
  gap: 8px;
  margin-top: 16px;
  padding: 12px;
  border: 1px solid rgba(10,169,174,.14);
  border-radius: 16px;
  background: rgba(10,169,174,.06);
}

.detail-stay-summary div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.detail-stay-summary span {
  color: #52617a;
  font-size: .78rem;
  font-weight: 800;
}

.detail-stay-summary strong {
  color: #07162d;
  font-size: .92rem;
  text-align: right;
}

.detail-booking-card-v162 .detail-booking-fields {
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.detail-booking-card-v162 .detail-booking-fields label:nth-child(5) {
  grid-column: 1 / -1;
}

.detail-booking-card-v162 .detail-booking-fields input {
  width: 100%;
}

.detail-booking-status {
  min-height: 42px;
  display: flex;
  align-items: center;
  margin: 2px 0 12px;
  padding: 10px 12px;
  border-radius: 14px;
  color: #52617a;
  background: #f7f9fb;
  font-size: .82rem;
  font-weight: 750;
  line-height: 1.35;
}

.detail-booking-status.is-success {
  color: #066346;
  background: rgba(0,169,107,.10);
}

.detail-booking-status.is-warning {
  color: #8f4300;
  background: rgba(255,122,26,.12);
}

.detail-booking-status.is-error {
  color: #9b1c31;
  background: rgba(220,38,38,.10);
}

.detail-booking-card-v162 .whatsapp-btn {
  border-radius: 16px;
  font-size: .98rem;
  box-shadow: 0 10px 20px rgba(0,169,107,.16);
}

.detail-booking-card-v162 .detail-btn {
  border-radius: 16px;
  border-color: rgba(10,169,174,.26);
  color: #07162d;
  background: #fff;
}

.detail-map {
  position: relative;
}

.detail-photo-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  padding: 26px;
  background: rgba(7,22,45,.62);
  overflow: auto;
}

.detail-photo-modal[aria-hidden="false"] {
  display: grid;
  place-items: start center;
}

body.has-detail-photo-modal {
  overflow: hidden;
}

.detail-photo-modal-panel {
  position: relative;
  width: min(1080px, 100%);
  padding: 24px;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 30px 80px rgba(0,0,0,.22);
}

.detail-photo-modal-panel h2 {
  margin: 0 0 16px;
  color: #07162d;
}

.detail-photo-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(12,44,71,.1);
  border-radius: 999px;
  background: #fff;
  color: #07162d;
  font-size: 1.2rem;
  font-weight: 900;
  cursor: pointer;
}

.detail-photo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.detail-photo-grid img {
  width: 100%;
  min-height: 260px;
  max-height: 430px;
  object-fit: cover;
  border-radius: 18px;
  background: #edf5f7;
}

.detail-reviews strong span {
  color: #ff8700;
  font-size: .86rem;
}

@media (max-width: 980px) {
  .detail-page-v162 .marketplace-header-inner-lean {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .detail-header-actions {
    width: 100%;
    justify-content: stretch;
    gap: 8px;
  }

  .detail-header-back,
  .detail-header-actions .marketplace-currency-pill,
  .detail-header-actions .marketplace-publish {
    flex: 1 1 auto;
    justify-content: center;
  }

  .detail-hero-v162 {
    padding: 18px;
  }

  .detail-gallery-v162 .detail-gallery-main {
    min-height: 290px;
  }

  .detail-gallery-thumb img,
  .detail-gallery-more {
    min-height: 120px;
  }

  .detail-highlights-v162 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .detail-layout-v162 {
    grid-template-columns: 1fr;
  }

  .detail-booking-card-v162 {
    position: static;
  }
}

@media (max-width: 640px) {
  .detail-shell-v162 {
    padding-top: 16px;
  }

  .detail-title-row h1 {
    font-size: 1.65rem;
  }

  .detail-header-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .detail-header-actions .marketplace-publish {
    grid-column: 1 / -1;
  }

  .detail-gallery {
    gap: 10px;
  }

  .detail-gallery-side {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .detail-gallery-more {
    grid-column: 1 / -1;
  }

  .detail-highlights-v162,
  .detail-booking-card-v162 .detail-booking-fields,
  .detail-photo-grid {
    grid-template-columns: 1fr;
  }

  .detail-booking-card-v162 .detail-booking-fields label:nth-child(5) {
    grid-column: auto;
  }

  .detail-photo-modal {
    padding: 12px;
  }

  .detail-photo-modal-panel {
    padding: 18px;
    border-radius: 20px;
  }

  .detail-photo-grid img {
    min-height: 210px;
  }
}


/* ===== Migrated from marketplace-detail-v163.css ===== */
/* v163 — Detail conversion polish */
.detail-page-v163 .detail-hero-v162 {
  display: block;
}

.detail-page-v163 .detail-search-context-label {
  margin-top: 12px;
  color: #52617a;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.detail-page-v163 .detail-context-pills {
  margin-top: 6px;
}

.detail-page-v163 .detail-guest-note {
  color: #344767;
  background: rgba(255, 122, 26, .08);
}

.detail-page-v163 .detail-booking-card-v162 {
  padding: 18px;
  border-radius: 22px;
}

.detail-page-v163 .detail-booking-topline {
  margin-bottom: 12px;
  color: #007c78;
  background: rgba(10,169,174,.10);
}

.detail-page-v163 .detail-booking-card-v162 > span {
  display: block;
  color: #52617a;
  font-size: .82rem;
  font-weight: 800;
}

.detail-page-v163 .detail-booking-card-v162 > strong {
  margin: 2px 0 2px;
  font-size: 2.35rem;
  letter-spacing: -.04em;
}

.detail-page-v163 .detail-booking-card-v162 > small {
  display: block;
  color: #52617a;
  font-size: .82rem;
  line-height: 1.35;
}

.detail-page-v163 .detail-price-note {
  display: block;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(12,44,71,.07);
  border-radius: 14px;
  color: #52617a;
  background: #f8fbfd;
  font-size: .78rem;
  font-style: normal;
  font-weight: 750;
  line-height: 1.35;
}

.detail-page-v163 .detail-stay-summary {
  margin-top: 12px;
  padding: 12px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(10,169,174,.08), rgba(10,169,174,.035));
}

.detail-page-v163 .detail-booking-card-v162 .detail-booking-fields {
  margin: 14px 0 12px;
}

.detail-page-v163 .detail-booking-status {
  margin: 0 0 12px;
}

.detail-page-v163 .detail-primary-whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 54px;
  margin-top: 10px;
  border-radius: 16px;
  color: #fff;
  background: #09b866;
  font-size: 1.02rem;
  font-weight: 950;
  line-height: 1.1;
  text-decoration: none;
  box-shadow: 0 14px 26px rgba(0, 169, 107, .22);
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.detail-page-v163 .detail-primary-whatsapp::before {
  content: "☎";
  margin-right: 8px;
  font-size: 1.05rem;
}

.detail-page-v163 .detail-primary-whatsapp:hover,
.detail-page-v163 .detail-primary-whatsapp:focus-visible {
  background: #06a85c;
  box-shadow: 0 18px 30px rgba(0, 169, 107, .28);
  transform: translateY(-1px);
}

.detail-page-v163 .detail-secondary-consult {
  min-height: 46px;
  margin-top: 10px;
  border-radius: 14px;
  border: 1px solid rgba(10,169,174,.30);
  color: #007c78;
  background: #fff;
  font-weight: 900;
}

.detail-page-v163 .detail-trust-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
  padding: 12px 12px 0;
  border-top: 1px solid rgba(12,44,71,.08);
}

.detail-page-v163 .detail-trust-list span {
  color: #344767;
  font-size: .82rem;
  font-weight: 750;
  line-height: 1.35;
}

.detail-page-v163 .detail-booking-card-v162 > p {
  margin-top: 12px;
  font-size: .78rem;
  color: #63738e;
}

.detail-page-v163 .detail-gallery-more {
  background: #eef8fa;
  color: #007c78;
}

.detail-page-v163 .detail-mobile-reserve-bar {
  display: none;
}

@media (max-width: 980px) {
  .detail-page-v163 {
    padding-bottom: 88px;
  }

  .detail-page-v163 .detail-booking-card-v162 {
    margin-bottom: 18px;
  }

  .detail-page-v163 .detail-mobile-reserve-bar {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    z-index: 80;
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(148px, 1fr);
    gap: 10px;
    align-items: center;
    padding: 10px;
    border: 1px solid rgba(12,44,71,.10);
    border-radius: 20px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 18px 44px rgba(7,22,45,.18);
    backdrop-filter: blur(12px);
  }

  .detail-page-v163 .detail-mobile-reserve-bar span {
    min-width: 0;
    color: #07162d;
    font-size: .83rem;
    font-weight: 900;
    line-height: 1.2;
  }

  .detail-page-v163 .detail-mobile-reserve-bar .whatsapp-btn {
    min-height: 44px;
    border-radius: 14px;
    font-size: .88rem;
    font-weight: 950;
    text-align: center;
    text-decoration: none;
  }
}

@media (max-width: 520px) {
  .detail-page-v163 .detail-mobile-reserve-bar {
    grid-template-columns: 1fr;
  }

  .detail-page-v163 .detail-mobile-reserve-bar span {
    text-align: center;
  }

  .detail-page-v163 .detail-title-row h1 {
    font-size: 1.45rem;
  }
}


/* ===== Migrated from marketplace-detail-v164.css ===== */
/* v164 — Detail hardening final: validation, accessibility and conversion polish */
.detail-page-v164 .detail-booking-card-v162 > small {
  display: grid;
  gap: 2px;
  margin-top: 2px;
  color: #52617a;
  font-size: .82rem;
  line-height: 1.25;
}

.detail-page-v164 .detail-booking-card-v162 > small span:last-child {
  font-weight: 850;
  color: #344767;
}

.detail-page-v164 .detail-primary-whatsapp.is-disabled,
.detail-page-v164 .detail-mobile-reserve-bar .whatsapp-btn.is-disabled {
  pointer-events: auto;
  color: #7a879a;
  background: #e8eef3;
  box-shadow: none;
  cursor: not-allowed;
}

.detail-page-v164 .detail-tabs [role="tab"]:focus-visible {
  outline: 3px solid rgba(10,169,174,.35);
  outline-offset: 2px;
}

.detail-page-v164 .detail-tab-panel[hidden] {
  display: none !important;
}

.detail-error-state {
  max-width: 760px;
  margin: 48px auto;
  padding: 32px;
  border: 1px solid rgba(12,44,71,.08);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(5,25,43,.08);
  text-align: center;
}

.detail-error-state h1 {
  margin: 0 0 10px;
  color: #07162d;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
}

.detail-error-state p {
  max-width: 560px;
  margin: 0 auto 22px;
  color: #52617a;
  line-height: 1.55;
}

.detail-error-state > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.detail-error-state .detail-btn,
.detail-error-state .whatsapp-btn {
  min-height: 46px;
  padding: 0 18px;
  border-radius: 14px;
  font-weight: 900;
}

.detail-page-v164 .detail-gallery-side .detail-gallery-more:only-child {
  min-height: 160px;
}

.detail-page-v164 .detail-photo-modal[aria-hidden="false"] .detail-photo-modal-panel {
  animation: detailModalIn .16s ease both;
}

@keyframes detailModalIn {
  from { opacity: 0; transform: translateY(8px) scale(.99); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 980px) {
  .detail-page-v164 .detail-mobile-reserve-bar .whatsapp-btn.is-disabled {
    min-height: 44px;
  }
}


/* ===== Migrated from marketplace-detail-v165.css ===== */
/* v165 — Detail availability modal with room-type calendar and WhatsApp handoff */
.detail-page-v165 .detail-secondary-consult {
  min-height: 48px;
  border-width: 1.5px;
  color: #07162d;
  background: linear-gradient(180deg, #fff, #f7fcfd);
}

.detail-page-v165 .detail-secondary-consult::before {
  content: "▦";
  margin-right: 7px;
  color: #008b8f;
}

.detail-availability-modal {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: none;
  padding: 24px;
  background: rgba(7, 22, 45, .62);
  overflow: auto;
}

.detail-availability-modal[aria-hidden="false"] {
  display: grid;
  place-items: center;
}

body.has-availability-modal {
  overflow: hidden;
}

.detail-availability-panel {
  position: relative;
  width: min(1180px, 100%);
  max-height: min(92vh, 980px);
  display: grid;
  grid-template-rows: auto auto minmax(240px, 1fr) auto auto;
  gap: 14px;
  padding: 26px;
  border: 1px solid rgba(12,44,71,.08);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 34px 90px rgba(0,0,0,.26);
  overflow: hidden;
  animation: availabilityModalIn .18s ease both;
}

@keyframes availabilityModalIn {
  from { opacity: 0; transform: translateY(10px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.detail-availability-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  color: #07162d;
  background: #f4f8fb;
  font-size: 1.65rem;
  line-height: 1;
  cursor: pointer;
}

.detail-availability-close:hover,
.detail-availability-close:focus-visible {
  background: #e9f2f7;
  outline: 3px solid rgba(10,169,174,.28);
}

.availability-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
  padding-right: 48px;
}

.availability-header h2 {
  margin: 0 0 6px;
  color: #07162d;
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  line-height: 1.05;
  letter-spacing: -.04em;
}

.availability-header p {
  margin: 0;
  color: #52617a;
  font-size: .98rem;
  font-weight: 650;
}

.availability-property-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 260px;
  padding: 9px 12px;
  border: 1px solid rgba(12,44,71,.08);
  border-radius: 18px;
  background: #f8fbfd;
}

.availability-property-chip img {
  width: 54px;
  height: 44px;
  border-radius: 12px;
  object-fit: cover;
}

.availability-property-chip strong,
.availability-property-chip small {
  display: block;
}

.availability-property-chip strong {
  color: #07162d;
  font-size: .94rem;
  line-height: 1.15;
}

.availability-property-chip small {
  margin-top: 3px;
  color: #63738e;
  font-size: .78rem;
  font-weight: 750;
}

.availability-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.availability-controls > button,
.availability-date-jump {
  min-height: 46px;
  border: 1px solid rgba(12,44,71,.10);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(5,25,43,.04);
}

.availability-controls > button {
  width: 46px;
  color: #07162d;
  font-size: 1.45rem;
  cursor: pointer;
}

.availability-controls > strong {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  padding: 0 18px;
  border: 1px solid rgba(12,44,71,.10);
  border-radius: 14px;
  color: #07162d;
  background: #fff;
  font-size: 1.02rem;
}

.availability-date-jump {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 0 12px;
}

.availability-date-jump span {
  color: #63738e;
  font-size: .78rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.availability-date-jump input {
  border: 0;
  color: #07162d;
  background: transparent;
  font-weight: 850;
}

.availability-grid-wrap {
  border: 1px solid rgba(12,44,71,.08);
  border-radius: 18px;
  background: #fff;
  overflow: auto;
  box-shadow: inset 0 -10px 20px rgba(5,25,43,.025);
}

.availability-grid {
  width: 100%;
  min-width: 1080px;
  border-collapse: separate;
  border-spacing: 0;
  color: #07162d;
}

.availability-grid th,
.availability-grid td {
  border-bottom: 1px solid rgba(12,44,71,.07);
  padding: 8px 6px;
  text-align: center;
  vertical-align: middle;
}

.availability-grid thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #fff;
}

.availability-grid .room-col,
.availability-grid .room-name {
  position: sticky;
  left: 0;
  z-index: 3;
  width: 188px;
  min-width: 188px;
  padding-left: 14px;
  text-align: left;
  background: #fff;
}

.availability-grid thead .room-col {
  color: #63738e;
  font-size: .78rem;
  font-weight: 900;
}

.availability-grid .day-col {
  min-width: 64px;
  color: #52617a;
}

.availability-grid .day-col span,
.availability-grid .day-col small {
  display: block;
  font-size: .75rem;
  font-weight: 850;
  text-transform: capitalize;
}

.availability-grid .day-col strong {
  display: block;
  margin: 2px 0 0;
  color: #07162d;
  font-size: 1.02rem;
}

.availability-grid .action-col,
.availability-grid .row-action {
  position: sticky;
  right: 0;
  z-index: 3;
  width: 112px;
  min-width: 112px;
  background: #fff;
}

.availability-grid tbody tr.is-selected th,
.availability-grid tbody tr.is-selected td {
  background: #f6fbff;
  border-top: 1px solid rgba(47, 126, 255, .28);
  border-bottom: 1px solid rgba(47, 126, 255, .28);
}

.availability-grid tbody tr.is-selected th:first-child {
  box-shadow: inset 3px 0 0 #2f7eff;
}

.room-name {
  display: flex;
  align-items: center;
  gap: 9px;
}

.room-icon {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(12,44,71,.08);
  border-radius: 999px;
  background: #f8fbfd;
  font-size: 1rem;
}

.room-name strong {
  font-size: .9rem;
  line-height: 1.15;
}

.availability-cell {
  width: 54px;
  min-height: 54px;
  display: inline-grid;
  place-items: center;
  gap: 1px;
  padding: 4px;
  border: 1px solid transparent;
  border-radius: 13px;
  cursor: pointer;
}

.availability-cell span {
  line-height: 1;
  font-size: 1.28rem;
  font-weight: 900;
}

.availability-cell small {
  color: #064e3b;
  font-size: .68rem;
  font-weight: 950;
  line-height: 1;
}

.availability-cell.is-available {
  color: #08733f;
  background: #dcfce7;
  border-color: #a7f3c6;
}

.availability-cell.is-unavailable {
  color: #6b7280;
  background: #f2f4f7;
  border-color: #edf0f3;
}

.availability-grid .row-action button {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(12,44,71,.12);
  border-radius: 11px;
  color: #07162d;
  background: #fff;
  font-size: .78rem;
  font-weight: 950;
  cursor: pointer;
}

.availability-grid .row-action button.is-selected {
  color: #fff;
  border-color: #2f7eff;
  background: #2f7eff;
}

.availability-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  color: #52617a;
  font-size: .82rem;
  font-weight: 750;
}

.availability-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.availability-legend i {
  min-width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  border-radius: 9px;
  font-style: normal;
  font-weight: 950;
}

.legend-available { color: #08733f; background: #dcfce7; }
.legend-unavailable { color: #6b7280; background: #f2f4f7; }
.legend-price { color: #007c78; background: rgba(10,169,174,.10); }

.availability-bottom {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(340px, .9fr);
  gap: 18px;
}

.availability-selection-card,
.availability-custom-card {
  border: 1px solid rgba(12,44,71,.08);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(5,25,43,.045);
}

.availability-selection-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px;
  padding: 18px;
  background: linear-gradient(180deg, rgba(0,169,107,.06), #fff);
}

.selection-icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: #09b866;
  font-size: 1.7rem;
}

.selection-copy > span,
.selection-price-box span,
.selection-meta strong {
  color: #52617a;
  font-size: .78rem;
  font-weight: 900;
}

.selection-copy h3 {
  margin: 3px 0 12px;
  color: #07162d;
  font-size: 1.45rem;
  line-height: 1.08;
}

.selection-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 12px;
}

.selection-meta p {
  margin: 0;
  color: #07162d;
  font-size: .92rem;
  font-weight: 850;
}

.selection-meta strong,
.selection-meta small {
  display: block;
}

.selection-meta small {
  margin-top: 2px;
  color: #007c78;
  font-size: .8rem;
  font-weight: 850;
}

.selection-warning {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 13px;
  color: #8f4300;
  background: rgba(255,122,26,.12);
  font-size: .82rem;
  font-weight: 750;
  line-height: 1.35;
}

.selection-price-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid rgba(12,44,71,.08);
  border-radius: 16px;
  overflow: hidden;
}

.selection-price-box p {
  margin: 0;
  padding: 14px;
}

.selection-price-box p + p {
  border-left: 1px solid rgba(12,44,71,.08);
}

.selection-price-box strong {
  display: inline-block;
  margin-top: 3px;
  color: #07162d;
  font-size: 1.65rem;
  line-height: 1;
}

.selection-price-box small {
  margin-left: 4px;
  color: #52617a;
  font-size: .74rem;
  font-weight: 850;
}

.availability-custom-card {
  padding: 18px;
}

.availability-custom-card h3 {
  margin: 0 0 14px;
  color: #07162d;
  font-size: 1rem;
}

.availability-counters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.availability-counter {
  padding: 12px;
  border: 1px solid rgba(12,44,71,.08);
  border-radius: 15px;
  background: #f8fbfd;
}

.availability-counter > span {
  display: block;
  margin-bottom: 8px;
  color: #344767;
  font-size: .82rem;
  font-weight: 900;
}

.availability-counter div {
  display: grid;
  grid-template-columns: 34px 1fr 34px;
  min-height: 34px;
  border: 1px solid rgba(12,44,71,.08);
  border-radius: 11px;
  overflow: hidden;
  background: #fff;
}

.availability-counter button {
  border: 0;
  color: #07162d;
  background: #fff;
  font-size: 1rem;
  font-weight: 950;
  cursor: pointer;
}

.availability-counter strong {
  display: grid;
  place-items: center;
  border-left: 1px solid rgba(12,44,71,.07);
  border-right: 1px solid rgba(12,44,71,.07);
  color: #07162d;
}

.availability-counter small {
  display: block;
  margin-top: 6px;
  color: #63738e;
  font-size: .72rem;
  text-align: center;
}

.availability-actions {
  display: grid;
  grid-template-columns: .55fr 1fr;
  gap: 12px;
  margin-top: 16px;
}

.availability-back,
.availability-whatsapp {
  min-height: 56px;
  border-radius: 16px;
  font-weight: 950;
}

.availability-whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #fff;
  background: #09b866;
  text-decoration: none;
  box-shadow: 0 14px 30px rgba(0,169,107,.22);
}

.availability-whatsapp::before {
  content: "☎";
  font-size: 1.05rem;
}

.availability-whatsapp.is-disabled {
  pointer-events: auto;
  color: #7a879a;
  background: #e8eef3;
  box-shadow: none;
  cursor: not-allowed;
}

.availability-footnote {
  margin: 12px 0 0;
  color: #63738e;
  font-size: .78rem;
  line-height: 1.35;
}

@media (max-width: 980px) {
  .detail-availability-modal {
    padding: 0;
    place-items: end center;
  }

  .detail-availability-panel {
    width: 100%;
    max-height: 92vh;
    border-radius: 26px 26px 0 0;
    padding: 20px 16px calc(18px + env(safe-area-inset-bottom));
    grid-template-rows: auto auto minmax(240px, 1fr) auto auto;
  }

  .availability-header {
    grid-template-columns: 1fr;
    padding-right: 46px;
  }

  .availability-property-chip {
    min-width: 0;
  }

  .availability-bottom {
    grid-template-columns: 1fr;
  }

  .availability-counters {
    grid-template-columns: 1fr;
  }

  .availability-actions {
    grid-template-columns: 1fr;
  }

  .availability-grid {
    min-width: 980px;
  }
}

@media (max-width: 560px) {
  .availability-header h2 {
    font-size: 1.45rem;
  }

  .availability-controls > strong {
    flex: 1 1 auto;
  }

  .availability-date-jump {
    width: 100%;
  }

  .availability-date-jump input {
    flex: 1;
  }

  .availability-selection-card {
    grid-template-columns: 1fr;
  }

  .selection-icon {
    width: 52px;
    height: 52px;
  }

  .selection-meta,
  .selection-price-box {
    grid-template-columns: 1fr;
  }

  .selection-price-box p + p {
    border-left: 0;
    border-top: 1px solid rgba(12,44,71,.08);
  }
}


/* ===== Migrated from marketplace-detail-v166.css ===== */
/* v166 — Availability modal compact fit polish for 100% browser zoom */

/* Desktop: make the availability modal fit inside common laptop viewports without clipping the CTA area. */
@media (min-width: 981px) {
  .detail-availability-modal {
    padding: 14px 18px;
  }

  .detail-availability-panel {
    width: min(1100px, calc(100vw - 36px));
    max-height: calc(100vh - 28px);
    grid-template-rows: auto auto minmax(150px, .72fr) auto auto;
    gap: 9px;
    padding: 20px 22px 18px;
    border-radius: 24px;
  }

  .detail-availability-close {
    top: 14px;
    right: 14px;
    width: 38px;
    height: 38px;
    font-size: 1.45rem;
  }

  .availability-header {
    gap: 14px;
    padding-right: 44px;
    align-items: center;
  }

  .availability-header h2 {
    margin-bottom: 4px;
    font-size: clamp(1.65rem, 2.35vw, 2rem);
  }

  .availability-header p {
    font-size: .88rem;
  }

  .availability-property-chip {
    min-width: 248px;
    padding: 7px 10px;
    border-radius: 16px;
  }

  .availability-property-chip img {
    width: 46px;
    height: 36px;
    border-radius: 10px;
  }

  .availability-property-chip strong {
    font-size: .86rem;
  }

  .availability-property-chip small {
    margin-top: 2px;
    font-size: .72rem;
  }

  .availability-controls {
    gap: 8px;
  }

  .availability-controls > button,
  .availability-date-jump,
  .availability-controls > strong {
    min-height: 40px;
    border-radius: 12px;
  }

  .availability-controls > button {
    width: 42px;
    font-size: 1.25rem;
  }

  .availability-controls > strong {
    padding: 0 16px;
    font-size: .94rem;
  }

  .availability-date-jump {
    padding: 0 10px;
  }

  .availability-date-jump span {
    font-size: .7rem;
  }

  .availability-date-jump input {
    font-size: .88rem;
  }

  .availability-grid-wrap {
    border-radius: 16px;
    max-height: clamp(210px, 34vh, 285px);
    min-height: 210px;
    overflow: auto;
  }

  .availability-grid {
    min-width: 1000px;
  }

  .availability-grid th,
  .availability-grid td {
    padding: 5px 5px;
  }

  .availability-grid .room-col,
  .availability-grid .room-name {
    width: 176px;
    min-width: 176px;
    padding-left: 12px;
  }

  .availability-grid .day-col {
    min-width: 58px;
  }

  .availability-grid .day-col span,
  .availability-grid .day-col small {
    font-size: .68rem;
  }

  .availability-grid .day-col strong {
    font-size: .94rem;
  }

  .availability-grid .action-col,
  .availability-grid .row-action {
    width: 100px;
    min-width: 100px;
  }

  .room-icon {
    width: 30px;
    height: 30px;
    font-size: .9rem;
  }

  .room-name {
    gap: 8px;
  }

  .room-name strong {
    font-size: .82rem;
  }

  .availability-cell {
    width: 48px;
    min-height: 48px;
    padding: 3px;
    border-radius: 12px;
  }

  .availability-cell span {
    font-size: 1.12rem;
  }

  .availability-cell small {
    font-size: .61rem;
  }

  .availability-grid .row-action button {
    min-height: 30px;
    padding: 0 10px;
    border-radius: 10px;
    font-size: .7rem;
  }

  .availability-legend {
    gap: 11px;
    font-size: .75rem;
  }

  .availability-legend i {
    min-width: 24px;
    height: 24px;
    border-radius: 8px;
  }

  .availability-bottom {
    grid-template-columns: minmax(0, .92fr) minmax(320px, .82fr);
    gap: 12px;
  }

  .availability-selection-card,
  .availability-custom-card {
    border-radius: 16px;
  }

  .availability-selection-card {
    gap: 13px;
    padding: 14px;
  }

  .selection-icon {
    width: 50px;
    height: 50px;
    font-size: 1.35rem;
  }

  .selection-copy > span,
  .selection-price-box span,
  .selection-meta strong {
    font-size: .68rem;
  }

  .selection-copy h3 {
    margin: 2px 0 9px;
    font-size: 1.22rem;
  }

  .selection-meta {
    gap: 8px;
    margin-bottom: 9px;
  }

  .selection-meta p {
    font-size: .8rem;
  }

  .selection-meta small {
    font-size: .7rem;
  }

  .selection-warning {
    margin-bottom: 9px;
    padding: 8px 10px;
    font-size: .74rem;
  }

  .selection-price-box {
    border-radius: 14px;
  }

  .selection-price-box p {
    padding: 10px 12px;
  }

  .selection-price-box strong {
    font-size: 1.32rem;
  }

  .selection-price-box small {
    font-size: .65rem;
  }

  .availability-custom-card {
    padding: 14px;
  }

  .availability-custom-card h3 {
    margin-bottom: 10px;
    font-size: .94rem;
  }

  .availability-counters {
    gap: 8px;
  }

  .availability-counter {
    padding: 9px;
    border-radius: 13px;
  }

  .availability-counter > span {
    margin-bottom: 6px;
    font-size: .74rem;
  }

  .availability-counter div {
    grid-template-columns: 30px 1fr 30px;
    min-height: 30px;
    border-radius: 10px;
  }

  .availability-counter small {
    margin-top: 4px;
    font-size: .66rem;
  }

  .availability-actions {
    gap: 10px;
    margin-top: 12px;
  }

  .availability-back,
  .availability-whatsapp {
    min-height: 46px;
    border-radius: 14px;
    font-size: .86rem;
  }

  .availability-footnote {
    margin-top: 9px;
    font-size: .7rem;
  }
}

/* Extra compact mode for 768px–820px high laptop screens. */
@media (min-width: 981px) and (max-height: 820px) {
  .detail-availability-modal {
    padding: 10px 16px;
  }

  .detail-availability-panel {
    width: min(1080px, calc(100vw - 32px));
    max-height: calc(100vh - 20px);
    grid-template-rows: auto auto minmax(150px, .58fr) auto auto;
    gap: 8px;
    padding: 18px 20px 16px;
  }

  .availability-header h2 {
    font-size: 1.75rem;
  }

  .availability-grid-wrap {
    max-height: clamp(190px, 31vh, 245px);
    min-height: 190px;
  }

  .availability-bottom {
    gap: 10px;
  }

  .availability-selection-card {
    padding: 12px;
  }

  .availability-custom-card {
    padding: 12px;
  }

  .selection-icon {
    width: 46px;
    height: 46px;
  }

  .selection-copy h3 {
    font-size: 1.1rem;
  }

  .selection-price-box p {
    padding: 8px 10px;
  }

  .selection-price-box strong {
    font-size: 1.2rem;
  }

  .availability-back,
  .availability-whatsapp {
    min-height: 42px;
  }

  .availability-footnote {
    display: none;
  }
}


/* ===== Migrated from marketplace-detail-v167.css ===== */
/* v167 — Availability modal typography and pro visual polish */

/* Global modal typography: less heavy, more balanced. */
.detail-availability-panel {
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #0f1f35;
  letter-spacing: -.01em;
}

.detail-availability-panel strong,
.detail-availability-panel h2,
.detail-availability-panel h3,
.detail-availability-panel th,
.detail-availability-panel button {
  font-weight: 700;
}

.detail-availability-panel small,
.detail-availability-panel span,
.detail-availability-panel p,
.detail-availability-panel td {
  font-weight: 500;
}

.availability-header h2 {
  font-weight: 750;
  letter-spacing: -.045em;
}

.availability-header p {
  color: #5d6b82;
  font-weight: 520;
  letter-spacing: -.01em;
}

.availability-property-chip {
  background: rgba(248, 251, 253, .86);
  box-shadow: 0 10px 24px rgba(5, 25, 43, .04);
}

.availability-property-chip strong {
  font-weight: 720;
}

.availability-property-chip small {
  font-weight: 520;
}

.availability-controls > strong {
  font-weight: 680;
  letter-spacing: -.015em;
}

.availability-date-jump span {
  font-weight: 650;
  letter-spacing: .025em;
}

.availability-date-jump input {
  font-weight: 650;
}

.availability-grid {
  color: #13243a;
}

.availability-grid thead .room-col,
.availability-grid .day-col span,
.availability-grid .day-col small {
  color: #617087;
  font-weight: 600;
}

.availability-grid .day-col strong {
  color: #111f33;
  font-weight: 680;
}

.room-icon,
.selection-icon {
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 750;
  letter-spacing: 0;
}

.room-icon {
  color: #0f766e;
  background: #eefcf7;
  border-color: rgba(15, 118, 110, .14);
}

.room-name strong {
  color: #102137;
  font-weight: 680;
  letter-spacing: -.015em;
}

.availability-cell {
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease, background .12s ease;
}

.availability-cell:hover,
.availability-cell:focus-visible {
  transform: translateY(-1px);
  outline: none;
  box-shadow: 0 8px 18px rgba(5, 25, 43, .08);
}

.availability-cell span {
  font-weight: 650;
}

.availability-cell small {
  font-weight: 650;
  letter-spacing: -.02em;
}

.availability-cell.is-available {
  color: #047857;
  background: linear-gradient(180deg, #e8fbf0, #dff8ea);
  border-color: #b9efd0;
}

.availability-cell.is-unavailable {
  color: #7b8493;
  background: #f3f5f7;
  border-color: #edf0f3;
}

.availability-grid .row-action button {
  font-weight: 650;
  letter-spacing: -.01em;
}

.availability-grid .row-action button.is-selected {
  box-shadow: 0 10px 18px rgba(47, 126, 255, .18);
}

.availability-legend {
  color: #5d6b82;
  font-weight: 550;
}

.availability-legend i {
  font-weight: 650;
}

.availability-selection-card,
.availability-custom-card {
  box-shadow: 0 14px 34px rgba(5, 25, 43, .055);
}

.selection-copy > span,
.selection-price-box span,
.selection-meta strong {
  color: #5b6a80;
  font-weight: 620;
}

.selection-copy h3 {
  font-weight: 740;
  letter-spacing: -.035em;
}

.selection-meta p {
  font-weight: 620;
  line-height: 1.25;
}

.selection-meta small {
  font-weight: 600;
}

.selection-price-box strong {
  font-weight: 740;
  letter-spacing: -.045em;
}

.selection-price-box small {
  font-weight: 500;
}

.availability-custom-card h3 {
  font-weight: 700;
  letter-spacing: -.02em;
}

.availability-counter > span {
  font-weight: 650;
  letter-spacing: -.01em;
}

.availability-counter strong {
  font-weight: 700;
}

.availability-counter button {
  font-weight: 650;
}

.availability-back,
.availability-whatsapp {
  font-weight: 720;
  letter-spacing: -.015em;
}

.availability-whatsapp {
  background: linear-gradient(180deg, #12c875, #08a95c);
  box-shadow: 0 15px 32px rgba(0, 169, 107, .24);
}

.availability-whatsapp::before {
  content: "✆";
  font-size: .98rem;
  font-weight: 600;
}

.availability-footnote {
  font-weight: 450;
}

@media (min-width: 981px) {
  .detail-availability-panel {
    width: min(1060px, calc(100vw - 44px));
    gap: 8px;
    padding: 18px 20px 16px;
  }

  .availability-header h2 {
    font-size: clamp(1.45rem, 2vw, 1.78rem);
    line-height: 1.08;
  }

  .availability-header p {
    font-size: clamp(.76rem, .82vw, .86rem);
  }

  .availability-property-chip {
    min-width: 236px;
    padding: 6px 9px;
  }

  .availability-controls > button,
  .availability-date-jump,
  .availability-controls > strong {
    min-height: 38px;
  }

  .availability-controls > button {
    width: 38px;
    font-size: 1.12rem;
  }

  .availability-controls > strong {
    padding: 0 14px;
    font-size: .88rem;
  }

  .availability-date-jump input {
    font-size: .84rem;
  }

  .availability-grid-wrap {
    max-height: clamp(185px, 31vh, 246px);
    min-height: 182px;
    margin-top: 0;
  }

  .availability-grid {
    min-width: 940px;
  }

  .availability-grid th,
  .availability-grid td {
    padding: 4px 4px;
  }

  .availability-grid .room-col,
  .availability-grid .room-name {
    width: 156px;
    min-width: 156px;
    padding-left: 10px;
  }

  .availability-grid .day-col {
    min-width: 50px;
  }

  .availability-grid .day-col span,
  .availability-grid .day-col small {
    font-size: .62rem;
  }

  .availability-grid .day-col strong {
    font-size: .84rem;
  }

  .availability-grid .action-col,
  .availability-grid .row-action {
    width: 88px;
    min-width: 88px;
  }

  .room-icon {
    width: 27px;
    height: 27px;
    font-size: .75rem;
  }

  .room-name {
    gap: 7px;
  }

  .room-name strong {
    font-size: clamp(.72rem, .76vw, .8rem);
    line-height: 1.12;
  }

  .availability-cell {
    width: 43px;
    min-height: 43px;
    padding: 3px 2px;
    border-radius: 11px;
  }

  .availability-cell span {
    font-size: 1rem;
  }

  .availability-cell small {
    font-size: .55rem;
  }

  .availability-grid .row-action button {
    min-height: 29px;
    padding: 0 9px;
    border-radius: 9px;
    font-size: .66rem;
  }

  .availability-legend {
    gap: 10px;
    padding: 0 2px;
    font-size: .68rem;
  }

  .availability-legend i {
    min-width: 22px;
    height: 22px;
    border-radius: 7px;
  }

  .availability-bottom {
    grid-template-columns: minmax(0, .92fr) minmax(300px, .8fr);
    gap: 10px;
  }

  .availability-selection-card {
    gap: 12px;
    padding: 12px 13px;
  }

  .availability-custom-card {
    padding: 12px 13px;
  }

  .selection-icon {
    width: 44px;
    height: 44px;
    font-size: 1rem;
  }

  .selection-copy > span,
  .selection-price-box span,
  .selection-meta strong {
    font-size: .63rem;
  }

  .selection-copy h3 {
    margin: 1px 0 7px;
    font-size: clamp(1rem, 1.2vw, 1.16rem);
  }

  .selection-meta {
    gap: 8px;
    margin-bottom: 8px;
  }

  .selection-meta p {
    font-size: .76rem;
  }

  .selection-meta small {
    font-size: .66rem;
  }

  .selection-warning {
    margin-bottom: 8px;
    padding: 7px 9px;
    font-size: .68rem;
  }

  .selection-price-box p {
    padding: 8px 10px;
  }

  .selection-price-box strong {
    font-size: clamp(1.08rem, 1.55vw, 1.24rem);
  }

  .selection-price-box small {
    display: inline-block;
    margin-left: 3px;
    font-size: .58rem;
  }

  .availability-custom-card h3 {
    margin-bottom: 9px;
    font-size: .86rem;
  }

  .availability-counters {
    gap: 8px;
  }

  .availability-counter {
    padding: 8px 9px;
    border-radius: 12px;
  }

  .availability-counter > span {
    margin-bottom: 5px;
    font-size: .7rem;
  }

  .availability-counter div {
    grid-template-columns: 28px 1fr 28px;
    min-height: 29px;
    border-radius: 9px;
  }

  .availability-counter button {
    font-size: .9rem;
  }

  .availability-counter strong {
    font-size: .84rem;
  }

  .availability-counter small {
    margin-top: 4px;
    font-size: .6rem;
  }

  .availability-actions {
    gap: 9px;
    margin-top: 10px;
  }

  .availability-back,
  .availability-whatsapp {
    min-height: 40px;
    border-radius: 12px;
    font-size: .78rem;
  }

  .availability-footnote {
    margin-top: 8px;
    font-size: .64rem;
  }
}

/* Keep the modal refined on shorter laptops without making it feel cramped. */
@media (min-width: 981px) and (max-height: 820px) {
  .detail-availability-panel {
    width: min(1040px, calc(100vw - 40px));
    max-height: calc(100vh - 22px);
    grid-template-rows: auto auto minmax(172px, .58fr) auto auto;
  }

  .availability-header h2 {
    font-size: 1.55rem;
  }

  .availability-grid-wrap {
    max-height: clamp(172px, 28vh, 224px);
    min-height: 172px;
  }

  .availability-cell {
    width: 41px;
    min-height: 41px;
  }

  .availability-bottom {
    gap: 9px;
  }

  .availability-selection-card,
  .availability-custom-card {
    border-radius: 15px;
  }

  .selection-price-box strong {
    font-size: 1.08rem;
  }

  .availability-footnote {
    display: none;
  }
}

@media (max-width: 980px) {
  .availability-header h2 {
    font-size: clamp(1.45rem, 6vw, 1.75rem);
  }

  .availability-header p,
  .availability-property-chip small,
  .availability-legend,
  .availability-footnote {
    font-weight: 500;
  }

  .room-name strong,
  .selection-copy h3 {
    font-weight: 700;
  }

  .availability-cell span,
  .availability-cell small {
    font-weight: 650;
  }
}


/* ===== Migrated from marketplace-detail-v168.css ===== */
/* v168 — Availability modal clarity: no prices in cells, balanced pricing cards, room quick viewer */

.detail-page-v168 .detail-availability-panel {
  width: min(1040px, calc(100vw - 48px));
  max-height: calc(100vh - 36px);
  padding: 18px 20px 16px;
  gap: 10px;
}

.detail-page-v168 .availability-grid-wrap {
  /* Enough to show about 3 room rows at 100% zoom, with internal scroll for the rest. */
  max-height: clamp(230px, 34vh, 290px);
  min-height: 230px;
  overflow: auto;
  scrollbar-gutter: stable both-edges;
}

.detail-page-v168 .availability-grid {
  min-width: 900px;
}

.detail-page-v168 .availability-grid th,
.detail-page-v168 .availability-grid td {
  padding: 5px 5px;
}

.detail-page-v168 .availability-grid .room-col,
.detail-page-v168 .availability-grid .room-name {
  width: 170px;
  min-width: 170px;
  padding-left: 12px;
}

.detail-page-v168 .availability-grid .day-col {
  min-width: 47px;
}

.detail-page-v168 .availability-cell {
  width: 40px;
  min-height: 40px;
  padding: 0;
  border-radius: 12px;
  place-items: center;
}

.detail-page-v168 .availability-cell span {
  font-size: 1.1rem;
  line-height: 1;
}

.detail-page-v168 .availability-cell small {
  display: none !important;
}

.detail-page-v168 .availability-grid .action-col,
.detail-page-v168 .availability-grid .row-action {
  width: 86px;
  min-width: 86px;
}

.detail-page-v168 .availability-grid .row-action button {
  min-height: 30px;
  padding: 0 10px;
  font-size: .68rem;
}

/* Room title + quick viewer */
.detail-page-v168 .room-name {
  overflow: visible;
}

.detail-page-v168 .room-name-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  width: max-content;
  max-width: 150px;
  border-radius: 12px;
  cursor: help;
}

.detail-page-v168 .room-name-card:focus-visible {
  outline: 3px solid rgba(0, 169, 174, .22);
  outline-offset: 3px;
}

.detail-page-v168 .room-name-card strong {
  font-size: .78rem;
  font-weight: 640;
  line-height: 1.14;
  color: #102137;
}

.detail-page-v168 .room-icon,
.detail-page-v168 .selection-icon {
  font-weight: 650;
}

.detail-page-v168 .room-icon {
  width: 27px;
  height: 27px;
  font-size: .72rem;
}

.detail-page-v168 .room-quick-viewer {
  position: absolute;
  left: 30px;
  top: calc(100% + 8px);
  z-index: 50;
  width: 248px;
  padding: 12px 13px;
  border: 1px solid rgba(12, 44, 71, .10);
  border-radius: 16px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 22px 50px rgba(7, 22, 45, .18);
  color: #102137;
  text-align: left;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(4px) scale(.98);
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}

.detail-page-v168 .room-quick-viewer::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 18px;
  width: 12px;
  height: 12px;
  border-left: 1px solid rgba(12, 44, 71, .10);
  border-top: 1px solid rgba(12, 44, 71, .10);
  background: #fff;
  transform: rotate(45deg);
}

.detail-page-v168 .room-name-card:hover .room-quick-viewer,
.detail-page-v168 .room-name-card:focus-within .room-quick-viewer,
.detail-page-v168 .room-name-card:focus .room-quick-viewer {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.detail-page-v168 .room-quick-title {
  display: block;
  margin-bottom: 8px;
  color: #07162d;
  font-size: .72rem;
  font-weight: 720;
  letter-spacing: -.01em;
}

.detail-page-v168 .room-quick-viewer ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.detail-page-v168 .room-quick-viewer li {
  position: relative;
  padding-left: 16px;
  color: #516179;
  font-size: .68rem;
  font-weight: 500;
  line-height: 1.25;
}

.detail-page-v168 .room-quick-viewer li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #07a45d;
  font-weight: 700;
}

/* Legend is now just a status guide; price lives in the selected-room summary. */
.detail-page-v168 .availability-legend {
  padding-top: 2px;
  font-size: .68rem;
  gap: 12px;
}

.detail-page-v168 .availability-legend i {
  min-width: 22px;
  height: 22px;
  border-radius: 7px;
}

/* Summary card: make prices proportional and readable. */
.detail-page-v168 .availability-bottom {
  grid-template-columns: minmax(0, .95fr) minmax(310px, .8fr);
  gap: 12px;
}

.detail-page-v168 .availability-selection-card {
  grid-template-columns: auto 1fr;
  gap: 12px;
  padding: 13px 14px;
  align-items: start;
}

.detail-page-v168 .selection-icon {
  width: 42px;
  height: 42px;
  font-size: .95rem;
}

.detail-page-v168 .selection-copy > span,
.detail-page-v168 .selection-price-box span,
.detail-page-v168 .selection-meta strong {
  font-size: .65rem;
  font-weight: 560;
  color: #64728a;
}

.detail-page-v168 .selection-copy h3 {
  margin: 2px 0 8px;
  font-size: 1.04rem;
  font-weight: 690;
  letter-spacing: -.025em;
}

.detail-page-v168 .selection-meta {
  gap: 10px;
  margin-bottom: 9px;
}

.detail-page-v168 .selection-meta p {
  font-size: .74rem;
  font-weight: 620;
  line-height: 1.28;
}

.detail-page-v168 .selection-meta small {
  font-size: .64rem;
  font-weight: 580;
}

.detail-page-v168 .selection-price-box {
  border-radius: 14px;
}

.detail-page-v168 .selection-price-box p {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3px;
  padding: 9px 11px;
  align-content: center;
}

.detail-page-v168 .selection-price-box strong {
  display: block;
  margin-top: 0;
  font-size: clamp(1rem, 1.25vw, 1.16rem);
  font-weight: 690;
  line-height: 1.05;
  letter-spacing: -.025em;
}

.detail-page-v168 .selection-price-box small {
  display: block;
  margin: 0;
  font-size: .58rem;
  font-weight: 500;
  color: #64728a;
}

.detail-page-v168 .availability-custom-card {
  padding: 13px 14px;
}

.detail-page-v168 .availability-custom-card h3 {
  margin-bottom: 10px;
  font-size: .86rem;
  font-weight: 690;
}

.detail-page-v168 .availability-counter > span {
  font-size: .68rem;
  font-weight: 620;
}

.detail-page-v168 .availability-counter strong {
  font-size: .84rem;
  font-weight: 650;
}

.detail-page-v168 .availability-back,
.detail-page-v168 .availability-whatsapp {
  min-height: 42px;
  font-size: .78rem;
  font-weight: 690;
}

@media (min-width: 981px) and (max-height: 820px) {
  .detail-page-v168 .detail-availability-panel {
    max-height: calc(100vh - 28px);
    padding: 16px 18px 14px;
    gap: 8px;
  }

  .detail-page-v168 .availability-grid-wrap {
    max-height: clamp(218px, 34vh, 260px);
    min-height: 218px;
  }

  .detail-page-v168 .availability-cell {
    width: 38px;
    min-height: 38px;
    border-radius: 11px;
  }

  .detail-page-v168 .availability-grid th,
  .detail-page-v168 .availability-grid td {
    padding-top: 4px;
    padding-bottom: 4px;
  }
}

@media (max-width: 980px) {
  .detail-page-v168 .availability-grid-wrap {
    max-height: 44vh;
  }

  .detail-page-v168 .room-name-card {
    max-width: 170px;
  }

  .detail-page-v168 .room-quick-viewer {
    left: 0;
    top: calc(100% + 8px);
    width: min(260px, 72vw);
  }

  .detail-page-v168 .selection-price-box strong {
    font-size: 1.05rem;
  }
}

/* Floating quick viewer lives outside the scrollable matrix so it is not clipped. */
.room-floating-preview {
  position: fixed;
  z-index: 1400;
  width: min(260px, calc(100vw - 28px));
  padding: 13px 14px;
  border: 1px solid rgba(12, 44, 71, .10);
  border-radius: 16px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 24px 60px rgba(7, 22, 45, .22);
  color: #102137;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(5px) scale(.985);
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}

.room-floating-preview.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.room-floating-preview .room-quick-title {
  display: block;
  color: #07162d;
  font-size: .78rem;
  font-weight: 720;
  letter-spacing: -.015em;
}

.room-floating-preview small {
  display: block;
  margin: 2px 0 9px;
  color: #64728a;
  font-size: .62rem;
  font-weight: 500;
}

.room-floating-preview ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.room-floating-preview li {
  position: relative;
  padding-left: 17px;
  color: #516179;
  font-size: .7rem;
  font-weight: 500;
  line-height: 1.25;
}

.room-floating-preview li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #07a45d;
  font-weight: 720;
}


/* ===== Migrated from marketplace-detail-v169.css ===== */
/* v169 — Availability modal spacing + pricing note restore */

/* Create a clearer separation between the availability matrix and the action cards. */
.detail-page-v169 .availability-grid-wrap {
  margin-bottom: 0;
}

.detail-page-v169 .availability-legend {
  position: relative;
  z-index: 1;
  margin: 12px 0 18px;
  padding: 0 2px 0;
  line-height: 1.25;
}

.detail-page-v169 .availability-bottom {
  position: relative;
  margin-top: 0;
  padding-top: 18px;
  border-top: 1px solid rgba(12, 44, 71, .08);
}

/* Restore and polish the pricing/disclaimer note inside the customization card. */
.detail-page-v169 .availability-footnote {
  display: flex !important;
  align-items: flex-start;
  gap: 7px;
  width: 100%;
  margin: 12px 0 0;
  padding: 9px 10px;
  border: 1px solid rgba(12, 44, 71, .08);
  border-radius: 12px;
  background: rgba(245, 250, 252, .86);
  color: #5d6c82;
  font-size: .66rem;
  font-weight: 500;
  line-height: 1.38;
}

.detail-page-v169 .availability-footnote::before {
  content: "ⓘ";
  flex: 0 0 auto;
  color: #0a9aa8;
  font-size: .78rem;
  line-height: 1.05;
}

.detail-page-v169 .availability-custom-card {
  display: flex;
  flex-direction: column;
}

.detail-page-v169 .availability-actions {
  margin-top: 12px;
}

/* Keep the modal compact without making the lower cards feel glued to the table. */
@media (min-width: 981px) and (max-height: 820px) {
  .detail-page-v169 .availability-grid-wrap {
    max-height: clamp(205px, 30vh, 240px);
    min-height: 205px;
  }

  .detail-page-v169 .availability-legend {
    margin-top: 10px;
    margin-bottom: 16px;
  }

  .detail-page-v169 .availability-bottom {
    padding-top: 16px;
  }

  .detail-page-v169 .availability-footnote {
    display: flex !important;
    margin-top: 10px;
    padding: 8px 10px;
    font-size: .62rem;
  }
}

@media (max-width: 980px) {
  .detail-page-v169 .availability-legend {
    margin: 10px 0 14px;
  }

  .detail-page-v169 .availability-bottom {
    padding-top: 14px;
  }

  .detail-page-v169 .availability-footnote {
    display: flex !important;
    font-size: .67rem;
  }
}


/* ===== Migrated from marketplace-detail-v170.css ===== */
/* v170 — Availability modal legend breathing room + clearer room hover affordance */

/* Give the legend real breathing room under the scrollable matrix. */
.detail-page-v170 .availability-grid-wrap {
  margin-bottom: 16px;
}

.detail-page-v170 .availability-legend {
  margin: 0 0 22px;
  padding: 2px 4px 0;
}

.detail-page-v170 .availability-bottom {
  padding-top: 18px;
}

/* Remove the numeric badge from the room rows and replace it with a clear hover hint. */
.detail-page-v170 .availability-grid .room-col,
.detail-page-v170 .availability-grid .room-name {
  width: 188px;
  min-width: 188px;
}

.detail-page-v170 .room-name-card {
  width: auto;
  max-width: 172px;
  gap: 8px;
}

.detail-page-v170 .room-name-card strong {
  flex: 1 1 auto;
  max-width: none;
}

.detail-page-v170 .room-help-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border-radius: 999px;
  border: 1px solid rgba(194, 144, 0, .24);
  background: linear-gradient(180deg, #ffe681 0%, #ffd648 100%);
  color: #6d5200;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 6px 14px rgba(255, 205, 51, .22);
  transition: transform .14s ease, box-shadow .14s ease, filter .14s ease;
}

.detail-page-v170 .room-name-card:hover .room-help-trigger,
.detail-page-v170 .room-name-card:focus-visible .room-help-trigger,
.detail-page-v170 .room-name-card:focus-within .room-help-trigger {
  transform: scale(1.06);
  filter: saturate(1.03);
  box-shadow: 0 8px 18px rgba(255, 205, 51, .28);
}

@media (min-width: 981px) and (max-height: 820px) {
  .detail-page-v170 .availability-grid-wrap {
    margin-bottom: 14px;
  }

  .detail-page-v170 .availability-legend {
    margin-bottom: 18px;
  }
}

@media (max-width: 980px) {
  .detail-page-v170 .availability-grid-wrap {
    margin-bottom: 12px;
  }

  .detail-page-v170 .availability-legend {
    margin-bottom: 16px;
  }

  .detail-page-v170 .room-name-card {
    max-width: 178px;
  }
}


/* ===== Migrated from marketplace-detail-v171.css ===== */
/* v171 — Premium quick viewer: smarter hint, arrow, animation, touch-friendly behavior */

.detail-page-v171 .room-help-trigger {
  appearance: none;
  border: 1px solid rgba(194, 144, 0, .24);
  cursor: help;
}

.detail-page-v171 .room-help-trigger:focus-visible {
  outline: 3px solid rgba(255, 207, 63, .38);
  outline-offset: 2px;
}

.room-floating-preview {
  width: min(284px, calc(100vw - 28px));
  padding: 14px 15px;
  border: 1px solid rgba(14, 35, 63, .10);
  border-radius: 18px;
  background:
    radial-gradient(circle at 10% 0%, rgba(255, 228, 122, .18), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.99), rgba(249,252,253,.98));
  box-shadow: 0 22px 56px rgba(7, 22, 45, .24);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(6px) scale(.975);
  transform-origin: 18px 12px;
  transition:
    opacity .16s cubic-bezier(.2,.8,.2,1),
    transform .16s cubic-bezier(.2,.8,.2,1),
    visibility .16s ease;
}

.room-floating-preview.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.room-floating-preview::before {
  content: "";
  position: absolute;
  width: 13px;
  height: 13px;
  background: rgba(255,255,255,.99);
  border-left: 1px solid rgba(14, 35, 63, .10);
  border-top: 1px solid rgba(14, 35, 63, .10);
  transform: rotate(45deg);
}

.room-floating-preview[data-placement="right"]::before {
  left: -7px;
  top: 20px;
  transform: rotate(-45deg);
}

.room-floating-preview[data-placement="bottom"]::before {
  left: 24px;
  top: -7px;
}

.room-floating-preview[data-placement="top"]::before {
  left: 24px;
  bottom: -7px;
  top: auto;
  transform: rotate(225deg);
}

.room-floating-preview .room-quick-kicker {
  display: inline-flex;
  align-items: center;
  width: max-content;
  margin-bottom: 7px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(255, 214, 72, .22);
  color: #7a5a00;
  font-size: .6rem;
  font-weight: 720;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.room-floating-preview .room-quick-title {
  font-size: .86rem;
  font-weight: 700;
}

.room-floating-preview small {
  margin: 3px 0 10px;
  font-size: .66rem;
}

.room-floating-preview li {
  font-size: .72rem;
  line-height: 1.32;
}

.room-floating-preview.is-pinned {
  pointer-events: auto;
}

@media (hover: hover) and (pointer: fine) {
  .detail-page-v171 .room-name-card:hover .room-help-trigger {
    animation: roomHelpPulse .85s ease both;
  }
}

@keyframes roomHelpPulse {
  0% { transform: scale(1); }
  45% { transform: scale(1.12); }
  100% { transform: scale(1.04); }
}

@media (max-width: 640px) {
  .room-floating-preview.is-pinned {
    left: 14px !important;
    right: 14px !important;
    bottom: 16px !important;
    top: auto !important;
    width: auto;
    max-width: none;
    border-radius: 20px;
    padding: 16px;
    box-shadow: 0 28px 70px rgba(7, 22, 45, .32);
  }

  .room-floating-preview.is-pinned::before {
    display: none;
  }
}


/* ===== Migrated from marketplace-detail-v172.css ===== */
/* v172 — Structural spacing fix between availability matrix and legend */

/*
  The previous versions used margin between the scrollable grid and the legend.
  Because the modal is a constrained CSS grid with an internal scroll area, that margin
  was visually swallowed by the grid/scrollbar edge in compact desktop heights.
  This version moves the separation into the legend itself, so the legend content
  is always pushed away from the matrix border regardless of modal height.
*/

.detail-page-v172 .detail-availability-panel {
  row-gap: 8px;
}

.detail-page-v172 .availability-grid-wrap {
  margin-bottom: 0 !important;
  box-shadow: inset 0 -8px 18px rgba(5, 25, 43, .018);
}

.detail-page-v172 .availability-legend {
  margin: 0 0 20px !important;
  padding: 22px 4px 0 !important;
  min-height: 48px;
  align-items: center;
  position: relative;
  z-index: 2;
}

.detail-page-v172 .availability-legend::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 10px;
  height: 1px;
  background: rgba(12, 44, 71, .06);
}

.detail-page-v172 .availability-bottom {
  padding-top: 18px;
}

@media (min-width: 981px) and (max-height: 820px) {
  .detail-page-v172 .availability-grid-wrap {
    max-height: clamp(190px, 27vh, 222px);
    min-height: 190px;
  }

  .detail-page-v172 .availability-legend {
    padding-top: 20px !important;
    margin-bottom: 18px !important;
    min-height: 44px;
  }
}

@media (max-width: 980px) {
  .detail-page-v172 .availability-legend {
    padding-top: 18px !important;
    margin-bottom: 16px !important;
    min-height: 42px;
  }

  .detail-page-v172 .availability-legend::before {
    top: 8px;
  }
}


/* ===== Migrated from marketplace-detail-v174.css ===== */
/* v174 — Pre-reserva: habitación obligatoria, datos del huésped y estado sin disponibilidad */

.detail-page-v174 .availability-empty-state[hidden] {
  display: none !important;
}

.detail-page-v174 .availability-empty-state {
  display: grid;
  gap: 4px;
  margin: 0 0 18px;
  padding: 10px 12px;
  border: 1px solid rgba(245, 158, 11, .22);
  border-radius: 14px;
  background: rgba(255, 247, 237, .92);
  color: #7c4a03;
  font-size: .72rem;
  line-height: 1.35;
}

.detail-page-v174 .availability-empty-state strong {
  color: #5f3700;
  font-weight: 720;
}

.detail-page-v174 .availability-empty-state span {
  color: #7c4a03;
  font-weight: 520;
}

.detail-page-v174 .selection-icon-empty {
  background: linear-gradient(180deg, #ffe681 0%, #ffd648 100%);
  color: #705200;
  box-shadow: 0 12px 28px rgba(255, 214, 72, .25);
}

.detail-page-v174 .availability-guest-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 9px;
  margin-top: 12px;
}

.detail-page-v174 .availability-guest-fields label {
  display: grid;
  gap: 5px;
  margin: 0;
}

.detail-page-v174 .availability-guest-fields span {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  color: #304058;
  font-size: .68rem;
  font-weight: 620;
}

.detail-page-v174 .availability-guest-fields small {
  color: #7a879a;
  font-size: .58rem;
  font-weight: 520;
}

.detail-page-v174 .availability-guest-fields input,
.detail-page-v174 .availability-guest-fields textarea {
  width: 100%;
  border: 1px solid rgba(12, 44, 71, .12);
  border-radius: 12px;
  background: #fff;
  color: #102137;
  font: inherit;
  font-size: .74rem;
  line-height: 1.35;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.detail-page-v174 .availability-guest-fields input {
  min-height: 36px;
  padding: 8px 10px;
}

.detail-page-v174 .availability-guest-fields textarea {
  min-height: 56px;
  max-height: 92px;
  padding: 9px 10px;
  resize: vertical;
}

.detail-page-v174 .availability-guest-fields input:focus,
.detail-page-v174 .availability-guest-fields textarea:focus {
  border-color: rgba(0, 169, 174, .45);
  box-shadow: 0 0 0 4px rgba(0, 169, 174, .10);
  background: #fff;
}

.detail-page-v174 .availability-whatsapp.is-disabled,
.detail-page-v174 .availability-whatsapp[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: .72;
  filter: grayscale(.12);
  background: #9aa8b8;
  box-shadow: none;
  pointer-events: auto;
}

.detail-page-v174 .availability-selection-card .selection-warning {
  border-radius: 12px;
}

@media (min-width: 981px) and (max-height: 820px) {
  .detail-page-v174 .availability-guest-fields {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .detail-page-v174 .availability-guest-fields textarea {
    min-height: 38px;
    max-height: 60px;
  }

  .detail-page-v174 .availability-guest-fields input {
    min-height: 34px;
  }

  .detail-page-v174 .availability-empty-state {
    margin-bottom: 14px;
    padding: 8px 10px;
    font-size: .66rem;
  }
}

@media (max-width: 980px) {
  .detail-page-v174 .availability-guest-fields {
    margin-top: 10px;
  }

  .detail-page-v174 .availability-guest-fields textarea {
    min-height: 62px;
  }
}


/* ===== Migrated from marketplace-detail-v175.css ===== */
/* v175 — Compact modal polish: inline validation + denser customization card */

.detail-page-v175 .availability-controls {
  display: grid;
  grid-template-columns: 42px max-content 42px max-content minmax(250px, 1fr);
  align-items: stretch;
  gap: 8px 10px;
}

.detail-page-v175 .availability-controls > button,
.detail-page-v175 .availability-controls > strong,
.detail-page-v175 .availability-date-jump {
  min-height: 42px;
}

.detail-page-v175 .availability-controls > button {
  width: 42px;
  font-size: 1.3rem;
}

.detail-page-v175 .availability-controls > strong {
  padding: 0 16px;
  font-size: .98rem;
  font-weight: 850;
}

.detail-page-v175 .availability-date-jump {
  padding: 0 11px;
  gap: 8px;
}

.detail-page-v175 .availability-date-jump span {
  font-size: .74rem;
}

.detail-page-v175 .availability-date-jump input {
  font-size: .98rem;
}

.detail-page-v175 .availability-empty-state-inline {
  margin: 0;
  padding: 8px 11px;
  border-radius: 14px;
  min-height: 42px;
  align-self: stretch;
  box-shadow: 0 8px 18px rgba(124, 74, 3, .06);
}

.detail-page-v175 .availability-empty-state-inline strong {
  font-size: .74rem;
  line-height: 1.28;
}

.detail-page-v175 .availability-empty-state-inline span {
  font-size: .66rem;
  line-height: 1.28;
}

.detail-page-v175 .availability-grid-wrap {
  margin-top: 2px;
}

.detail-page-v175 .availability-legend {
  margin-bottom: 14px !important;
  padding-top: 16px !important;
  min-height: 40px;
  font-size: .76rem;
}

.detail-page-v175 .availability-legend::before {
  top: 7px;
}

.detail-page-v175 .availability-bottom {
  grid-template-columns: minmax(0, .97fr) minmax(360px, .9fr);
  gap: 14px;
  padding-top: 14px;
}

.detail-page-v175 .availability-selection-card,
.detail-page-v175 .availability-custom-card {
  border-radius: 16px;
}

.detail-page-v175 .availability-selection-card {
  gap: 14px;
  padding: 15px;
}

.detail-page-v175 .selection-icon {
  width: 54px;
  height: 54px;
  font-size: 1.45rem;
}

.detail-page-v175 .selection-copy > span,
.detail-page-v175 .selection-price-box span,
.detail-page-v175 .selection-meta strong {
  font-size: .72rem;
}

.detail-page-v175 .selection-copy h3 {
  margin: 2px 0 10px;
  font-size: 1.2rem;
}

.detail-page-v175 .selection-meta {
  gap: 8px;
  margin-bottom: 10px;
}

.detail-page-v175 .selection-meta p {
  font-size: .88rem;
}

.detail-page-v175 .selection-meta small {
  font-size: .74rem;
}

.detail-page-v175 .selection-warning {
  margin-bottom: 10px;
  padding: 8px 10px;
  font-size: .74rem;
}

.detail-page-v175 .selection-price-box p {
  padding: 11px 12px;
}

.detail-page-v175 .selection-price-box strong {
  margin-top: 2px;
  font-size: 1.05rem;
}

.detail-page-v175 .selection-price-box small {
  display: inline-block;
  margin-left: 0;
  font-size: .68rem;
}

.detail-page-v175 .availability-custom-card {
  display: flex;
  flex-direction: column;
  padding: 14px;
}

.detail-page-v175 .availability-custom-card h3 {
  margin-bottom: 10px;
  font-size: .96rem;
}

.detail-page-v175 .availability-counters {
  gap: 8px;
}

.detail-page-v175 .availability-counter {
  padding: 10px 10px 9px;
  border-radius: 14px;
}

.detail-page-v175 .availability-counter > span {
  margin-bottom: 7px;
  font-size: .76rem;
}

.detail-page-v175 .availability-counter div {
  grid-template-columns: 30px 1fr 30px;
  min-height: 32px;
}

.detail-page-v175 .availability-counter button {
  font-size: .95rem;
}

.detail-page-v175 .availability-counter strong {
  font-size: .98rem;
}

.detail-page-v175 .availability-counter small {
  margin-top: 5px;
  font-size: .66rem;
}

.detail-page-v175 .availability-guest-fields {
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 8px;
  margin-top: 10px;
}

.detail-page-v175 .availability-guest-fields label {
  gap: 4px;
}

.detail-page-v175 .availability-guest-fields span {
  font-size: .66rem;
}

.detail-page-v175 .availability-guest-fields small {
  font-size: .56rem;
}

.detail-page-v175 .availability-guest-fields input {
  min-height: 34px;
  padding: 7px 10px;
  font-size: .72rem;
}

.detail-page-v175 .availability-guest-fields textarea {
  min-height: 50px;
  max-height: 72px;
  padding: 8px 10px;
  font-size: .72rem;
  line-height: 1.3;
}

.detail-page-v175 .availability-actions {
  grid-template-columns: .5fr 1fr;
  gap: 10px;
  margin-top: 12px;
}

.detail-page-v175 .availability-back,
.detail-page-v175 .availability-whatsapp {
  min-height: 46px;
}

.detail-page-v175 .availability-footnote {
  margin-top: 10px !important;
  padding: 8px 10px !important;
  font-size: .62rem !important;
  line-height: 1.34;
}

@media (min-width: 981px) and (max-height: 860px) {
  .detail-page-v175 .detail-availability-panel {
    padding: 16px;
  }

  .detail-page-v175 .availability-header {
    margin-bottom: 8px;
  }

  .detail-page-v175 .availability-controls {
    grid-template-columns: 40px max-content 40px max-content minmax(230px, 1fr);
    gap: 7px 8px;
  }

  .detail-page-v175 .availability-controls > button,
  .detail-page-v175 .availability-controls > strong,
  .detail-page-v175 .availability-date-jump,
  .detail-page-v175 .availability-empty-state-inline {
    min-height: 40px;
  }

  .detail-page-v175 .availability-grid-wrap {
    max-height: clamp(182px, 25.5vh, 214px);
    min-height: 182px;
  }

  .detail-page-v175 .availability-legend {
    margin-bottom: 12px !important;
    padding-top: 14px !important;
    min-height: 36px;
    font-size: .72rem;
  }

  .detail-page-v175 .availability-bottom {
    gap: 12px;
    padding-top: 12px;
  }

  .detail-page-v175 .availability-selection-card,
  .detail-page-v175 .availability-custom-card {
    padding: 13px;
  }

  .detail-page-v175 .selection-copy h3 {
    font-size: 1.12rem;
  }

  .detail-page-v175 .selection-meta p {
    font-size: .82rem;
  }

  .detail-page-v175 .selection-price-box strong {
    font-size: .98rem;
  }

  .detail-page-v175 .availability-counters {
    gap: 7px;
  }

  .detail-page-v175 .availability-counter {
    padding: 9px 9px 8px;
  }

  .detail-page-v175 .availability-guest-fields {
    margin-top: 8px;
  }

  .detail-page-v175 .availability-guest-fields textarea {
    min-height: 44px;
    max-height: 62px;
  }

  .detail-page-v175 .availability-actions {
    margin-top: 10px;
  }
}

@media (max-width: 1100px) {
  .detail-page-v175 .availability-controls {
    grid-template-columns: 42px 1fr 42px 1fr;
  }

  .detail-page-v175 .availability-empty-state-inline {
    grid-column: 1 / -1;
  }

  .detail-page-v175 .availability-bottom {
    grid-template-columns: 1fr;
  }

  .detail-page-v175 .availability-custom-card {
    min-width: 0;
  }
}

@media (max-width: 980px) {
  .detail-page-v175 .availability-controls {
    display: flex;
    flex-wrap: wrap;
  }

  .detail-page-v175 .availability-empty-state-inline {
    width: 100%;
    min-height: auto;
  }

  .detail-page-v175 .availability-legend {
    padding-top: 16px !important;
    margin-bottom: 14px !important;
  }

  .detail-page-v175 .availability-bottom {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .detail-page-v175 .availability-guest-fields {
    grid-template-columns: 1fr;
  }
}


/* ===== Migrated from marketplace-detail-v176.css ===== */
/* v176 — Fix inline validation placement beside date controls */

.detail-page-v176 .availability-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 46%);
  align-items: stretch;
  gap: 10px;
  margin-bottom: 10px;
}

.detail-page-v176 .availability-controls {
  margin-bottom: 0;
}

.detail-page-v176 .availability-empty-state-inline {
  display: grid;
  gap: 4px;
  margin: 0;
  min-height: 42px;
  max-height: 74px;
  align-content: center;
  overflow: hidden;
}

.detail-page-v176 .availability-empty-state-inline strong,
.detail-page-v176 .availability-empty-state-inline span {
  margin: 0;
}

.detail-page-v176 .availability-grid-wrap {
  margin-top: 0;
}

@media (max-width: 1180px) {
  .detail-page-v176 .availability-toolbar {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .detail-page-v176 .availability-empty-state-inline {
    max-height: none;
  }
}

@media (max-width: 980px) {
  .detail-page-v176 .availability-toolbar {
    margin-bottom: 12px;
  }
}


/* ===== Migrated from marketplace-detail-v177.css ===== */
/* v177 — Compact lower cards so the footnote is visible at a glance */

.detail-page-v177 .availability-bottom {
  gap: 12px;
  padding-top: 12px;
  align-items: start;
}

.detail-page-v177 .availability-selection-card,
.detail-page-v177 .availability-custom-card {
  border-radius: 15px;
}

.detail-page-v177 .availability-selection-card {
  gap: 12px;
  padding: 12px;
}

.detail-page-v177 .selection-icon {
  width: 50px;
  height: 50px;
  font-size: 1.3rem;
}

.detail-page-v177 .selection-copy > span,
.detail-page-v177 .selection-price-box span,
.detail-page-v177 .selection-meta strong {
  font-size: .69rem;
}

.detail-page-v177 .selection-copy h3 {
  margin: 2px 0 8px;
  font-size: 1.08rem;
  line-height: 1.15;
}

.detail-page-v177 .selection-meta {
  gap: 8px;
  margin-bottom: 8px;
}

.detail-page-v177 .selection-meta p {
  font-size: .82rem;
  line-height: 1.25;
}

.detail-page-v177 .selection-meta small {
  margin-top: 3px;
  font-size: .68rem;
}

.detail-page-v177 .selection-warning {
  margin-bottom: 8px;
  padding: 7px 10px;
  font-size: .71rem;
  line-height: 1.28;
}

.detail-page-v177 .selection-price-box p {
  padding: 9px 11px;
}

.detail-page-v177 .selection-price-box strong {
  margin-top: 1px;
  font-size: .94rem;
  line-height: 1.1;
}

.detail-page-v177 .selection-price-box small {
  font-size: .64rem;
}

.detail-page-v177 .availability-custom-card {
  padding: 12px;
}

.detail-page-v177 .availability-custom-card h3 {
  margin-bottom: 8px;
  font-size: .92rem;
  line-height: 1.2;
}

.detail-page-v177 .availability-counters {
  gap: 6px;
}

.detail-page-v177 .availability-counter {
  padding: 8px 8px 7px;
  border-radius: 12px;
}

.detail-page-v177 .availability-counter > span {
  margin-bottom: 5px;
  font-size: .72rem;
}

.detail-page-v177 .availability-counter div {
  grid-template-columns: 28px 1fr 28px;
  min-height: 30px;
}

.detail-page-v177 .availability-counter strong {
  font-size: .92rem;
}

.detail-page-v177 .availability-counter small {
  margin-top: 4px;
  font-size: .62rem;
}

.detail-page-v177 .availability-guest-fields {
  gap: 7px;
  margin-top: 8px;
}

.detail-page-v177 .availability-guest-fields label {
  gap: 3px;
}

.detail-page-v177 .availability-guest-fields span {
  font-size: .64rem;
}

.detail-page-v177 .availability-guest-fields input {
  min-height: 32px;
  padding: 6px 9px;
  font-size: .7rem;
}

.detail-page-v177 .availability-guest-fields textarea {
  min-height: 42px;
  max-height: 54px;
  padding: 7px 9px;
  font-size: .7rem;
  line-height: 1.26;
}

.detail-page-v177 .availability-actions {
  gap: 8px;
  margin-top: 9px;
}

.detail-page-v177 .availability-back,
.detail-page-v177 .availability-whatsapp {
  min-height: 42px;
}

.detail-page-v177 .availability-footnote {
  margin-top: 8px !important;
  padding: 7px 9px !important;
  font-size: .59rem !important;
  line-height: 1.28;
}

@media (min-width: 981px) and (max-height: 900px) {
  .detail-page-v177 .availability-selection-card,
  .detail-page-v177 .availability-custom-card {
    padding: 11px;
  }

  .detail-page-v177 .selection-icon {
    width: 46px;
    height: 46px;
    font-size: 1.18rem;
  }

  .detail-page-v177 .selection-copy h3 {
    font-size: 1.02rem;
  }

  .detail-page-v177 .selection-meta p {
    font-size: .78rem;
  }

  .detail-page-v177 .selection-price-box p {
    padding: 8px 10px;
  }

  .detail-page-v177 .availability-counter {
    padding: 7px 7px 6px;
  }

  .detail-page-v177 .availability-guest-fields textarea {
    min-height: 38px;
    max-height: 48px;
  }

  .detail-page-v177 .availability-back,
  .detail-page-v177 .availability-whatsapp {
    min-height: 40px;
  }
}

@media (max-width: 1100px) {
  .detail-page-v177 .availability-bottom {
    grid-template-columns: 1fr;
  }
}


/* ===== Migrated from marketplace-detail-v178.css ===== */
/* v178 — Balance final de altura y jerarquía de los 2 cards inferiores */

.detail-page-v178 .availability-bottom {
  grid-template-columns: minmax(0, 1fr) minmax(350px, .88fr);
  gap: 12px;
  align-items: stretch;
}

.detail-page-v178 .availability-selection-card,
.detail-page-v178 .availability-custom-card {
  height: 100%;
  min-height: 0;
  border-radius: 15px;
  box-shadow: 0 8px 22px rgba(5,25,43,.035);
}

.detail-page-v178 .availability-selection-card {
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 11px;
  padding: 11px 12px;
}

.detail-page-v178 .selection-icon {
  width: 44px;
  height: 44px;
  font-size: 1.16rem;
}

.detail-page-v178 .selection-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.detail-page-v178 .selection-copy > span {
  font-size: .66rem;
}

.detail-page-v178 .selection-copy h3 {
  margin: 1px 0 7px;
  font-size: 1rem;
  line-height: 1.12;
}

.detail-page-v178 .selection-meta {
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin-bottom: 7px;
}

.detail-page-v178 .selection-meta p {
  font-size: .75rem;
  line-height: 1.22;
}

.detail-page-v178 .selection-meta strong {
  font-size: .65rem;
}

.detail-page-v178 .selection-meta small {
  margin-top: 2px;
  font-size: .64rem;
}

.detail-page-v178 .selection-warning {
  margin: 0 0 7px;
  padding: 6px 9px;
  font-size: .66rem;
  line-height: 1.24;
}

.detail-page-v178 .selection-price-box {
  margin-top: auto;
  border-radius: 13px;
}

.detail-page-v178 .selection-price-box p {
  padding: 7px 10px;
}

.detail-page-v178 .selection-price-box span {
  font-size: .62rem;
}

.detail-page-v178 .selection-price-box strong {
  margin-top: 1px;
  font-size: .9rem;
  letter-spacing: -.01em;
}

.detail-page-v178 .selection-price-box small {
  display: block;
  margin: 1px 0 0;
  font-size: .6rem;
}

.detail-page-v178 .availability-custom-card {
  padding: 11px 12px;
  display: flex;
  flex-direction: column;
}

.detail-page-v178 .availability-custom-card h3 {
  margin: 0 0 7px;
  font-size: .88rem;
  line-height: 1.18;
}

.detail-page-v178 .availability-counters {
  gap: 6px;
}

.detail-page-v178 .availability-counter {
  padding: 7px;
  border-radius: 12px;
}

.detail-page-v178 .availability-counter > span {
  margin-bottom: 4px;
  font-size: .68rem;
}

.detail-page-v178 .availability-counter div {
  grid-template-columns: 26px 1fr 26px;
  min-height: 28px;
  border-radius: 9px;
}

.detail-page-v178 .availability-counter button {
  font-size: .88rem;
}

.detail-page-v178 .availability-counter strong {
  font-size: .86rem;
}

.detail-page-v178 .availability-counter small {
  margin-top: 3px;
  font-size: .58rem;
}

.detail-page-v178 .availability-guest-fields {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 6px;
  margin-top: 7px;
}

.detail-page-v178 .availability-guest-fields label {
  gap: 2px;
}

.detail-page-v178 .availability-guest-fields span {
  font-size: .61rem;
}

.detail-page-v178 .availability-guest-fields small {
  font-size: .52rem;
}

.detail-page-v178 .availability-guest-fields input {
  min-height: 30px;
  padding: 6px 8px;
  border-radius: 10px;
  font-size: .68rem;
}

.detail-page-v178 .availability-guest-fields textarea {
  min-height: 36px;
  max-height: 46px;
  padding: 6px 8px;
  border-radius: 10px;
  font-size: .68rem;
  line-height: 1.22;
}

.detail-page-v178 .availability-actions {
  gap: 8px;
  margin-top: 8px;
}

.detail-page-v178 .availability-back,
.detail-page-v178 .availability-whatsapp {
  min-height: 38px;
  border-radius: 11px;
  font-size: .74rem;
}

.detail-page-v178 .availability-footnote {
  display: flex !important;
  margin-top: 7px !important;
  padding: 6px 8px !important;
  border-radius: 10px !important;
  font-size: .56rem !important;
  line-height: 1.22 !important;
}

.detail-page-v178 .availability-footnote::before {
  font-size: .68rem;
  line-height: 1;
}

@media (min-width: 981px) and (max-height: 900px) {
  .detail-page-v178 .availability-bottom {
    gap: 10px;
    padding-top: 10px;
  }

  .detail-page-v178 .availability-selection-card,
  .detail-page-v178 .availability-custom-card {
    padding: 10px;
  }

  .detail-page-v178 .selection-icon {
    width: 40px;
    height: 40px;
    font-size: 1.06rem;
  }

  .detail-page-v178 .availability-selection-card {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 10px;
  }

  .detail-page-v178 .selection-copy h3 {
    font-size: .96rem;
  }

  .detail-page-v178 .selection-meta p {
    font-size: .7rem;
  }

  .detail-page-v178 .selection-price-box p {
    padding: 6px 9px;
  }

  .detail-page-v178 .selection-price-box strong {
    font-size: .84rem;
  }

  .detail-page-v178 .availability-guest-fields textarea {
    min-height: 32px;
    max-height: 40px;
  }

  .detail-page-v178 .availability-back,
  .detail-page-v178 .availability-whatsapp {
    min-height: 36px;
  }
}

@media (max-width: 1100px) {
  .detail-page-v178 .availability-bottom {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 980px) {
  .detail-page-v178 .availability-guest-fields {
    grid-template-columns: 1fr;
  }

  .detail-page-v178 .availability-footnote {
    font-size: .62rem !important;
  }
}


/* ===== Migrated from marketplace-detail-v179.css ===== */
/* v179 — Reduce check/X icon size for cleaner proportion against room-type labels */

.detail-page-v179 .availability-cell {
  width: 50px;
  min-height: 50px;
  padding: 4px;
  gap: 0;
}

.detail-page-v179 .availability-cell span {
  font-size: .98rem;
  line-height: 1;
  font-weight: 760;
}

.detail-page-v179 .availability-cell small {
  font-size: .62rem;
}

.detail-page-v179 .availability-legend i {
  width: 24px;
  height: 24px;
  font-size: .78rem;
}

@media (max-width: 1200px) {
  .detail-page-v179 .availability-cell {
    width: 47px;
    min-height: 47px;
  }

  .detail-page-v179 .availability-cell span {
    font-size: .92rem;
  }
}


/* ===== Migrated from marketplace-detail-v180.css ===== */
/* v180 — Make availability check/X icons truly smaller and more proportional */

.detail-page-v180 .availability-grid .day-col {
  min-width: 45px;
}

.detail-page-v180 .availability-cell {
  width: 42px;
  min-height: 42px;
  padding: 0;
  gap: 0;
  border-radius: 11px;
}

.detail-page-v180 .availability-cell span {
  font-size: .82rem;
  line-height: 1;
  font-weight: 700;
}

.detail-page-v180 .availability-cell small {
  display: none !important;
}

.detail-page-v180 .availability-legend i {
  width: 20px;
  height: 20px;
  font-size: .7rem;
}

@media (max-width: 1200px) {
  .detail-page-v180 .availability-cell {
    width: 40px;
    min-height: 40px;
  }

  .detail-page-v180 .availability-cell span {
    font-size: .78rem;
  }
}


/* ===== Migrated from marketplace-detail-v182.css ===== */
/* v182 — real compact reduction of availability cells, checks and X */

.detail-page-v182 .availability-grid th,
.detail-page-v182 .availability-grid td {
  padding: 5px 4px !important;
}

.detail-page-v182 .availability-grid .day-col {
  min-width: 40px !important;
}

.detail-page-v182 .availability-cell {
  width: 32px !important;
  min-width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
  gap: 0 !important;
  border-radius: 9px !important;
}

.detail-page-v182 .availability-cell span {
  font-size: 0.68rem !important;
  line-height: 1 !important;
  font-weight: 800 !important;
}

.detail-page-v182 .availability-cell small {
  display: none !important;
}

/* keep legend icons as approved */
.detail-page-v182 .availability-legend i {
  width: 20px !important;
  height: 20px !important;
  font-size: .7rem !important;
}

@media (max-width: 1200px) {
  .detail-page-v182 .availability-grid th,
  .detail-page-v182 .availability-grid td {
    padding: 4px 3px !important;
  }

  .detail-page-v182 .availability-grid .day-col {
    min-width: 36px !important;
  }

  .detail-page-v182 .availability-cell {
    width: 29px !important;
    min-width: 29px !important;
    height: 29px !important;
    min-height: 29px !important;
  }

  .detail-page-v182 .availability-cell span {
    font-size: 0.62rem !important;
  }
}


/* ===== Migrated from marketplace-detail-v183.css ===== */
/* v183 — ultra compacto: celdas de 28px para la matriz de disponibilidad */

.detail-page-v183 .availability-grid th,
.detail-page-v183 .availability-grid td {
  padding: 4px 3px !important;
}

.detail-page-v183 .availability-grid .day-col {
  min-width: 34px !important;
}

.detail-page-v183 .availability-cell {
  width: 28px !important;
  min-width: 28px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 !important;
  gap: 0 !important;
  border-radius: 8px !important;
}

.detail-page-v183 .availability-cell span {
  font-size: 0.56rem !important;
  line-height: 1 !important;
  font-weight: 800 !important;
}

.detail-page-v183 .availability-cell small {
  display: none !important;
}

/* Mantener la leyenda tal como ya estaba aprobada */
.detail-page-v183 .availability-legend i {
  width: 20px !important;
  height: 20px !important;
  font-size: .7rem !important;
}

@media (max-width: 1200px) {
  .detail-page-v183 .availability-grid th,
  .detail-page-v183 .availability-grid td {
    padding: 3px 2px !important;
  }

  .detail-page-v183 .availability-grid .day-col {
    min-width: 31px !important;
  }

  .detail-page-v183 .availability-cell {
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
    min-height: 26px !important;
    border-radius: 7px !important;
  }

  .detail-page-v183 .availability-cell span {
    font-size: 0.52rem !important;
  }
}


/* ===== Migrated from marketplace-detail-v184.css ===== */
/* v184 — ajuste fino: dar un poco más de altura visual a la primera columna
   para empatar mejor con las celdas compactas de 28px. */

.detail-page-v184 .availability-grid .room-name {
  padding-top: 5px !important;
  padding-bottom: 5px !important;
}

.detail-page-v184 .room-name-card {
  min-height: 28px !important;
  display: flex;
  align-items: center;
}

.detail-page-v184 .room-name-card strong {
  line-height: 1.15 !important;
}

@media (max-width: 1200px) {
  .detail-page-v184 .availability-grid .room-name {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }

  .detail-page-v184 .room-name-card {
    min-height: 26px !important;
  }
}


/* ===== Migrated from marketplace-detail-v185.css ===== */
/* v185 — UX final polish for availability/pre-reservation modal */

/* 1) Highlight selected stay range in the matrix without adding visual noise. */
.detail-page-v185 .availability-grid .day-col.is-in-range,
.detail-page-v185 .availability-grid td.is-in-range {
  background: rgba(0, 169, 174, .035) !important;
}

.detail-page-v185 .availability-grid .day-col.is-in-range {
  box-shadow: inset 0 -2px 0 rgba(0, 169, 174, .22);
}

/* 2) Entire room row is clickable. */
.detail-page-v185 .availability-grid tbody tr[data-select-room-row] {
  cursor: pointer;
}

.detail-page-v185 .availability-grid tbody tr[data-select-room-row]:hover th,
.detail-page-v185 .availability-grid tbody tr[data-select-room-row]:hover td {
  background: rgba(0, 169, 174, .045);
}

.detail-page-v185 .availability-grid tbody tr[data-select-room-row]:focus-visible {
  outline: 3px solid rgba(0, 169, 174, .22);
  outline-offset: -3px;
}

/* 3) Price hint in action column. */
.detail-page-v185 .availability-grid .row-action {
  text-align: center;
}

.detail-page-v185 .availability-grid .row-action small {
  display: block;
  margin-top: 4px;
  color: #52617a;
  font-size: .58rem;
  line-height: 1;
  font-weight: 620;
  white-space: nowrap;
}

/* 4) Third availability state: requires confirmation. */
.detail-page-v185 .availability-cell.is-confirmation {
  color: #9a5a00 !important;
  background: #fff5dd !important;
  border-color: #ffd892 !important;
}

.detail-page-v185 .legend-confirmation {
  color: #9a5a00;
  background: #fff5dd;
}

/* 5) Cleaner empty selection state. */
.detail-page-v185 .selection-instruction {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 12px;
  color: #5f3700;
  background: rgba(255, 214, 72, .18);
  font-size: .72rem;
  line-height: 1.35;
  font-weight: 650;
}

/* 6) Rename/positioning polish for the consultation card. */
.detail-page-v185 .availability-custom-card h3 {
  letter-spacing: -.02em;
}

/* 7) Small next-step line below the legal note. */
.detail-page-v185 .availability-next-step {
  margin: 6px 0 0;
  color: #52617a;
  font-size: .58rem;
  line-height: 1.28;
  font-weight: 520;
}

/* 8) CTA state polish. */
.detail-page-v185 .availability-whatsapp.is-disabled,
.detail-page-v185 .availability-whatsapp[aria-disabled="true"] {
  color: rgba(255,255,255,.82);
}

/* 9) Keep compact cells from v183 while improving alignment with range highlight. */
.detail-page-v185 .availability-cell.is-in-range {
  box-shadow: 0 0 0 1px rgba(0, 169, 174, .08);
}

/* 10) Mobile/touch quick viewer remains discoverable. */
.detail-page-v185 .room-help-trigger {
  touch-action: manipulation;
}

@media (max-width: 980px) {
  .detail-page-v185 .availability-grid .row-action small {
    font-size: .56rem;
  }

  .detail-page-v185 .availability-next-step {
    font-size: .6rem;
  }
}


/* ===== Migrated from marketplace-detail-v186.css ===== */
/* v186 — fix visual del rango resaltado en cabecera sticky
   1) Cambiar el tono del rango a lila/azulado para separarlo del verde de disponibilidad.
   2) Evitar transparencia en la cabecera sticky para que no se vean las celdas del body por debajo. */

.detail-page-v186 .availability-grid .day-col.is-in-range {
  background: #eef2ff !important;
  box-shadow: inset 0 -2px 0 #c7d2fe;
}

.detail-page-v186 .availability-grid td.is-in-range {
  background: #f8faff !important;
}

/* Mantener una pista sutil en la celda, pero sin invadir visualmente. */
.detail-page-v186 .availability-cell.is-in-range {
  box-shadow: 0 0 0 1px rgba(99, 102, 241, 0.10) !important;
}

/* Asegurar que la cabecera sticky quede siempre opaca por encima del contenido. */
.detail-page-v186 .availability-grid thead th {
  background-clip: padding-box;
}

.detail-page-v186 .availability-grid thead .day-col.is-in-range {
  position: sticky;
  top: 0;
  z-index: 4;
}

/* Las columnas sticky laterales siguen por encima del resto. */
.detail-page-v186 .availability-grid thead .room-col,
.detail-page-v186 .availability-grid .action-col,
.detail-page-v186 .availability-grid .row-action,
.detail-page-v186 .availability-grid .room-name {
  z-index: 5;
}


/* ===== Migrated from marketplace-detail-v187.css ===== */
/* v187 — Pulido visual final del modal de disponibilidad */

/* Panel: respiración y borde más premium sin cambiar dimensiones aprobadas. */
.detail-page-v187 .detail-availability-panel {
  border: 1px solid rgba(12, 44, 71, .08);
  box-shadow: 0 30px 90px rgba(2, 16, 34, .24);
}

/* Header del modal: jerarquía más limpia. */
.detail-page-v187 .availability-header h2 {
  letter-spacing: -.045em;
}

.detail-page-v187 .availability-header p {
  color: #55657c;
}

/* Toolbar: controles más consistentes. */
.detail-page-v187 .availability-controls > button,
.detail-page-v187 .availability-controls > strong,
.detail-page-v187 .availability-date-jump {
  box-shadow: 0 4px 12px rgba(5, 25, 43, .025);
}

.detail-page-v187 .availability-controls > button:hover,
.detail-page-v187 .availability-controls > button:focus-visible {
  border-color: rgba(0, 169, 174, .28);
  background: #f7fbfc;
}

/* Tabla: menor ruido visual, mejor separación entre sticky header/body. */
.detail-page-v187 .availability-grid-wrap {
  border-color: rgba(12, 44, 71, .075);
  box-shadow: inset 0 -8px 18px rgba(5, 25, 43, .018);
}

.detail-page-v187 .availability-grid thead th {
  color: #4f6178;
  border-bottom: 1px solid rgba(12, 44, 71, .10);
}

.detail-page-v187 .availability-grid .day-col strong {
  color: #081a33;
}

/* Rango seleccionado: más visible, distinto al verde, pero no invasivo. */
.detail-page-v187 .availability-grid .day-col.is-in-range {
  background: #f1f0ff !important;
  box-shadow: inset 0 -2px 0 #bdb8ff;
}

.detail-page-v187 .availability-grid td.is-in-range {
  background: #faf9ff !important;
}

.detail-page-v187 .availability-cell.is-in-range {
  box-shadow: 0 0 0 1px rgba(105, 93, 255, .11) !important;
}

/* Celdas: acabado más fino. */
.detail-page-v187 .availability-cell {
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease, background .12s ease;
}

.detail-page-v187 .availability-cell:hover,
.detail-page-v187 .availability-cell:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(7, 22, 45, .06) !important;
}

.detail-page-v187 .availability-cell.is-available {
  color: #047857;
  background: #e7faef;
  border-color: #b9efd0;
}

.detail-page-v187 .availability-cell.is-unavailable {
  color: #7c8797;
  background: #f4f6f8;
  border-color: #edf0f3;
}

.detail-page-v187 .availability-cell.is-confirmation {
  color: #a15c00 !important;
  background: #fff4d8 !important;
  border-color: #ffd285 !important;
}

/* Fila seleccionada: menos brusca, más elegante. */
.detail-page-v187 .availability-grid tbody tr.is-selected th,
.detail-page-v187 .availability-grid tbody tr.is-selected td {
  background: #f8fbff !important;
}

.detail-page-v187 .availability-grid tbody tr.is-selected th:first-child {
  box-shadow: inset 3px 0 0 #2f7eff;
}

.detail-page-v187 .availability-grid tbody tr[data-select-room-row]:hover th,
.detail-page-v187 .availability-grid tbody tr[data-select-room-row]:hover td {
  background: #f7fbfc;
}

/* Primera columna: ayuda visual fina para el quick viewer. */
.detail-page-v187 .room-help-trigger {
  box-shadow: 0 4px 10px rgba(255, 205, 51, .18);
}

.detail-page-v187 .room-name-card:hover .room-help-trigger,
.detail-page-v187 .room-name-card:focus-within .room-help-trigger {
  transform: scale(1.04);
}

/* Columna de acción: botón y precio más ordenados. */
.detail-page-v187 .availability-grid .row-action button {
  border-color: rgba(12, 44, 71, .12);
  box-shadow: 0 4px 10px rgba(5, 25, 43, .035);
}

.detail-page-v187 .availability-grid .row-action button:hover,
.detail-page-v187 .availability-grid .row-action button:focus-visible {
  border-color: rgba(47, 126, 255, .32);
  background: #f7fbff;
}

.detail-page-v187 .availability-grid .row-action small {
  margin-top: 5px;
  color: #64748b;
  font-weight: 580;
}

/* Leyenda: más alineada con el estilo final. */
.detail-page-v187 .availability-legend {
  color: #5b6b82;
}

.detail-page-v187 .availability-legend span {
  gap: 7px;
}

/* Cards inferiores: acabado sutilmente más premium. */
.detail-page-v187 .availability-selection-card,
.detail-page-v187 .availability-custom-card {
  border-color: rgba(12, 44, 71, .08);
  box-shadow: 0 10px 26px rgba(5, 25, 43, .035);
}

.detail-page-v187 .selection-icon {
  box-shadow: 0 12px 24px rgba(0, 184, 104, .14);
}

.detail-page-v187 .selection-instruction,
.detail-page-v187 .selection-warning {
  box-shadow: inset 0 0 0 1px rgba(255, 185, 82, .08);
}

.detail-page-v187 .selection-price-box {
  background: rgba(255, 255, 255, .72);
}

.detail-page-v187 .availability-counter,
.detail-page-v187 .availability-guest-fields input,
.detail-page-v187 .availability-guest-fields textarea {
  background: #fbfdff;
}

.detail-page-v187 .availability-guest-fields input:focus,
.detail-page-v187 .availability-guest-fields textarea:focus {
  border-color: rgba(0, 169, 174, .34);
  box-shadow: 0 0 0 3px rgba(0, 169, 174, .10);
}

/* CTA: mayor claridad visual sin hacerlo más grande. */
.detail-page-v187 .availability-whatsapp:not(.is-disabled):hover,
.detail-page-v187 .availability-whatsapp:not([aria-disabled="true"]):hover {
  filter: brightness(.98);
  transform: translateY(-1px);
}

.detail-page-v187 .availability-back:hover,
.detail-page-v187 .availability-back:focus-visible {
  border-color: rgba(12, 44, 71, .18);
  background: #f8fafc;
}

/* Mensajes finales más limpios. */
.detail-page-v187 .availability-footnote {
  color: #5e6d82;
}

.detail-page-v187 .availability-next-step {
  color: #4f6178;
}

@media (max-width: 980px) {
  .detail-page-v187 .detail-availability-panel {
    box-shadow: 0 -18px 50px rgba(2, 16, 34, .22);
  }
}


/* ===== Migrated from marketplace-detail-v188.css ===== */
/* v188 — fix columnas sticky opacas (Tipo de habitación + Opción)
   Evita que el resaltado del rango o las celdas del body se transparenten bajo las columnas fijas. */

/* Columnas sticky laterales: siempre opacas y por encima del rango. */
.detail-page-v188 .availability-grid .room-col,
.detail-page-v188 .availability-grid .room-name,
.detail-page-v188 .availability-grid .action-col,
.detail-page-v188 .availability-grid .row-action {
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: linear-gradient(#ffffff, #ffffff) !important;
  background-clip: padding-box !important;
  opacity: 1 !important;
  isolation: isolate;
}

/* Z-index reforzado para cabeceras y columnas laterales. */
.detail-page-v188 .availability-grid thead .room-col,
.detail-page-v188 .availability-grid thead .action-col {
  z-index: 30 !important;
}

.detail-page-v188 .availability-grid tbody .room-name,
.detail-page-v188 .availability-grid tbody .row-action {
  z-index: 25 !important;
}

/* Mantener estado seleccionado con fondo sólido, sin transparencia. */
.detail-page-v188 .availability-grid tbody tr.is-selected .room-name,
.detail-page-v188 .availability-grid tbody tr.is-selected .row-action {
  background: #f8fbff !important;
  background-color: #f8fbff !important;
  background-image: linear-gradient(#f8fbff, #f8fbff) !important;
}

/* Hover también sólido en columnas laterales. */
.detail-page-v188 .availability-grid tbody tr[data-select-room-row]:hover .room-name,
.detail-page-v188 .availability-grid tbody tr[data-select-room-row]:hover .row-action {
  background: #f7fbfc !important;
  background-color: #f7fbfc !important;
  background-image: linear-gradient(#f7fbfc, #f7fbfc) !important;
}

/* Separadores laterales para que se entienda que son columnas fijas. */
.detail-page-v188 .availability-grid .room-col,
.detail-page-v188 .availability-grid .room-name {
  box-shadow: 1px 0 0 rgba(12, 44, 71, .08);
}

.detail-page-v188 .availability-grid .action-col,
.detail-page-v188 .availability-grid .row-action {
  box-shadow: -1px 0 0 rgba(12, 44, 71, .08);
}

/* El rango solo debe sentirse dentro de las celdas de fecha, nunca sobre columnas sticky. */
.detail-page-v188 .availability-grid .room-col.is-in-range,
.detail-page-v188 .availability-grid .room-name.is-in-range,
.detail-page-v188 .availability-grid .action-col.is-in-range,
.detail-page-v188 .availability-grid .row-action.is-in-range {
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: linear-gradient(#ffffff, #ffffff) !important;
}

/* Refuerzo contra bleed-through en navegadores que renderizan sticky + table con capas transparentes. */
.detail-page-v188 .availability-grid .room-name > *,
.detail-page-v188 .availability-grid .row-action > *,
.detail-page-v188 .availability-grid .room-col > *,
.detail-page-v188 .availability-grid .action-col > * {
  position: relative;
  z-index: 1;
}


/* ===== Migrated from marketplace-detail-v189.css ===== */
/* v189 — business states hardening del modal de disponibilidad */

/* Estado de carga / sin fechas / error Fish. */
.detail-page-v189 .availability-grid-message,
.detail-page-v189 .availability-grid-loading {
  min-height: 128px;
  padding: 22px !important;
  color: #52617a;
  background: #f8faff;
  text-align: center;
  font-size: .84rem;
  font-weight: 650;
  line-height: 1.4;
}

.detail-page-v189 .availability-grid-loading {
  display: grid;
  gap: 10px;
}

.detail-page-v189 .availability-grid-loading span {
  display: block;
  width: min(520px, 70%);
  height: 14px;
  margin: 0 auto;
  border-radius: 999px;
  background: linear-gradient(90deg, #eef2ff 0%, #f8fafc 48%, #eef2ff 100%);
  background-size: 220% 100%;
  animation: availabilitySkeleton 1.05s ease-in-out infinite;
}

.detail-page-v189 .availability-grid-loading span:nth-child(2) {
  width: min(440px, 62%);
}

.detail-page-v189 .availability-grid-loading span:nth-child(3) {
  width: min(360px, 54%);
}

@keyframes availabilitySkeleton {
  0% { background-position: 0% 50%; }
  100% { background-position: -220% 50%; }
}

/* Habitación seleccionada también visible junto al nombre. */
.detail-page-v189 .room-selected-badge {
  display: inline-flex;
  align-items: center;
  height: 18px;
  padding: 0 7px;
  border-radius: 999px;
  color: #2f3a8f;
  background: #eef2ff;
  border: 1px solid #c7d2fe;
  font-size: .55rem;
  font-style: normal;
  font-weight: 760;
  line-height: 1;
  white-space: nowrap;
}

/* Fila con capacidad insuficiente: no la escondemos, pero indicamos que requiere ajuste. */
.detail-page-v189 .availability-grid tbody tr.is-capacity-limited th,
.detail-page-v189 .availability-grid tbody tr.is-capacity-limited td {
  background: #fffaf0 !important;
}

.detail-page-v189 .availability-grid tbody tr.is-capacity-limited .room-name::after {
  content: "Capacidad";
  display: inline-flex;
  align-items: center;
  height: 18px;
  margin-left: 8px;
  padding: 0 7px;
  border-radius: 999px;
  color: #8a4b00;
  background: #fff3cd;
  border: 1px solid #ffe08a;
  font-size: .54rem;
  font-weight: 760;
}

/* Precio rápido por fila con contexto claro. */
.detail-page-v189 .availability-grid .row-action small {
  margin-top: 5px;
  color: #5b667a;
  font-size: .55rem;
  letter-spacing: -.01em;
}

/* Estado requiere confirmación más comprensible al hover. */
.detail-page-v189 .availability-cell.is-confirmation {
  cursor: help;
}

/* Quick viewer: capacidad primero, luego amenities. */
.detail-page-v189 .room-floating-preview small {
  display: block;
  margin-top: 2px;
  color: #4f5f78;
  font-size: .72rem;
  font-weight: 640;
}

/* Mensajes superiores como estado de inventario, no error. */
.detail-page-v189 .availability-empty-state-inline strong {
  font-size: .72rem;
}

.detail-page-v189 .availability-empty-state-inline span {
  font-size: .64rem;
}

/* Mejor affordance cuando la fila completa es seleccionable. */
.detail-page-v189 .availability-grid tbody tr[data-select-room-row]:hover .room-name-card strong {
  color: #1d4ed8;
}

/* Estados CTA: más claro cuando hay bloqueo por capacidad. */
.detail-page-v189 .availability-whatsapp.is-disabled {
  opacity: .72;
}

/* Mobile: mantener lectura compacta. */
@media (max-width: 980px) {
  .detail-page-v189 .room-selected-badge {
    height: 17px;
    padding: 0 6px;
    font-size: .52rem;
  }

  .detail-page-v189 .availability-grid tbody tr.is-capacity-limited .room-name::after {
    height: 17px;
    font-size: .5rem;
  }
}


/* ===== Migrated from marketplace-detail-v190.css ===== */
/* v190 — retirar badges confundibles en primera columna
   "Elegida" y "Capacidad" parecían botones. La selección y la capacidad
   se comunican mejor desde la fila, la columna Opción y el resumen inferior. */

/* Blindaje por si alguna versión anterior todavía imprime el badge. */
.detail-page-v190 .room-selected-badge {
  display: none !important;
}

/* Quitar el pseudo-badge "Capacidad" de la primera columna. */
.detail-page-v190 .availability-grid tbody tr.is-capacity-limited .room-name::after {
  content: none !important;
  display: none !important;
}

/* Mantener capacidad insuficiente como estado visual, pero sin parecer botón. */
.detail-page-v190 .availability-grid tbody tr.is-capacity-limited th,
.detail-page-v190 .availability-grid tbody tr.is-capacity-limited td {
  background: #fffaf0 !important;
}

.detail-page-v190 .availability-grid tbody tr.is-capacity-limited .row-action button {
  background: #2f7eff !important;
  border-color: #2f7eff !important;
  color: #fff !important;
}

/* La habitación seleccionada se entiende por la fila y por el resumen inferior. */
.detail-page-v190 .availability-grid tbody tr.is-selected .room-name {
  box-shadow: inset 3px 0 0 #2f7eff, 1px 0 0 #e7edf5 !important;
}

.detail-page-v190 .availability-grid tbody tr.is-selected .room-name-card strong {
  color: #07162d !important;
}

/* Mejor microjerarquía en la columna de acción cuando hay capacidad insuficiente. */
.detail-page-v190 .availability-grid tbody tr.is-capacity-limited .row-action small {
  color: #7a4b00 !important;
}


/* ===== Migrated from marketplace-detail-v191.css ===== */
/* v191 — Restaurar acción de fila simple: Seleccionar / Elegida.
   La validación de capacidad se mantiene en el resumen inferior y CTA principal. */

.detail-page-v191 .availability-grid .row-action button {
  min-width: 86px;
}

.detail-page-v191 .availability-grid .row-action button:not(.is-selected) {
  background: #ffffff !important;
  color: #07162d !important;
  border-color: rgba(12, 44, 71, .12) !important;
}

.detail-page-v191 .availability-grid .row-action button.is-selected {
  background: #2f7eff !important;
  color: #ffffff !important;
  border-color: #2f7eff !important;
}

.detail-page-v191 .availability-grid .row-action small {
  margin-top: 5px;
}


/* ===== Migrated from marketplace-detail-v192.css ===== */
/* v192 — corrección visual de la columna Opción
   "Seleccionar" debe verse como botón secundario (blanco), incluso
   cuando la fila tiene estados como capacity-limited. Solo "Elegida"
   queda en azul. */

.detail-page-v192 .availability-grid tbody tr .row-action button:not(.is-selected),
.detail-page-v192 .availability-grid tbody tr.is-capacity-limited .row-action button:not(.is-selected),
.detail-page-v192 .availability-grid tbody tr .row-action button:not(.is-selected):hover,
.detail-page-v192 .availability-grid tbody tr.is-capacity-limited .row-action button:not(.is-selected):hover,
.detail-page-v192 .availability-grid tbody tr .row-action button:not(.is-selected):focus-visible,
.detail-page-v192 .availability-grid tbody tr.is-capacity-limited .row-action button:not(.is-selected):focus-visible,
.detail-page-v192 .availability-grid tbody tr .row-action button:not(.is-selected):active,
.detail-page-v192 .availability-grid tbody tr.is-capacity-limited .row-action button:not(.is-selected):active {
  background: #ffffff !important;
  color: #07162d !important;
  border: 1px solid rgba(12, 44, 71, 0.14) !important;
  box-shadow: none !important;
}

.detail-page-v192 .availability-grid tbody tr .row-action button.is-selected,
.detail-page-v192 .availability-grid tbody tr .row-action button.is-selected:hover,
.detail-page-v192 .availability-grid tbody tr .row-action button.is-selected:focus-visible {
  background: #2f7eff !important;
  color: #ffffff !important;
  border: 1px solid #2f7eff !important;
}

.detail-page-v192 .availability-grid .row-action small {
  color: #617189 !important;
}

.detail-page-v192 .availability-grid tbody tr.is-capacity-limited .row-action small {
  color: #7a4b00 !important;
}


/* ===== Migrated from marketplace-detail-v193.css ===== */
/* v193 — Scroll horizontal visible solo para los días + filas de disponibilidad más compactas.
   Base: v192 aprobada. No cambia el modelo de datos ni la lógica de selección. */

.detail-page-v193 {
  --availability-room-col-width: 188px;
  --availability-action-col-width: 112px;
  --availability-scrollbar-height: 16px;
}

/* El contenedor sigue siendo el área real de scroll, pero ocultamos su barra nativa
   para evitar que parezca que también scrollean las columnas sticky. */
.detail-page-v193 .availability-grid-wrap {
  overflow: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior-x: contain;
}

.detail-page-v193 .availability-grid-wrap::-webkit-scrollbar {
  display: none;
}

.detail-page-v193 .availability-grid {
  min-width: 1260px !important;
}

/* Barra visible alineada únicamente con las columnas de días. */
.detail-page-v193 .availability-days-scrollbar {
  height: var(--availability-scrollbar-height);
  margin: -3px var(--availability-action-col-width) 2px var(--availability-room-col-width);
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: #00a9ae rgba(12, 44, 71, .10);
}

.detail-page-v193 .availability-days-scrollbar[hidden] {
  display: none !important;
}

.detail-page-v193 .availability-days-scrollbar::-webkit-scrollbar {
  height: 10px;
}

.detail-page-v193 .availability-days-scrollbar::-webkit-scrollbar-track {
  border-radius: 999px;
  background: rgba(12, 44, 71, .08);
}

.detail-page-v193 .availability-days-scrollbar::-webkit-scrollbar-thumb {
  min-width: 44px;
  border: 2px solid rgba(248, 251, 253, .95);
  border-radius: 999px;
  background: linear-gradient(90deg, #00a9ae, #2f7eff);
}

.detail-page-v193 .availability-days-scrollbar-spacer {
  height: 1px;
}

/* Más aire vertical del panel: la tabla ocupa menos alto y respira mejor con el scroll. */
.detail-page-v193 .detail-availability-panel {
  gap: 10px;
}

.detail-page-v193 .availability-grid th,
.detail-page-v193 .availability-grid td {
  padding: 2px 2px !important;
  line-height: 1.05;
}

.detail-page-v193 .availability-grid .day-col {
  min-width: 32px !important;
  padding-top: 5px !important;
  padding-bottom: 5px !important;
}

.detail-page-v193 .availability-grid .day-col span,
.detail-page-v193 .availability-grid .day-col small {
  font-size: .62rem !important;
  line-height: 1;
}

.detail-page-v193 .availability-grid .day-col strong {
  margin-top: 1px !important;
  font-size: .84rem !important;
  line-height: 1;
}

.detail-page-v193 .room-name-card {
  min-height: 24px !important;
}

.detail-page-v193 .room-name-card strong {
  font-size: .82rem !important;
  line-height: 1.08 !important;
}

.detail-page-v193 .room-help-trigger {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  font-size: .65rem !important;
  line-height: 1 !important;
}

.detail-page-v193 .availability-cell {
  width: 23px !important;
  min-width: 23px !important;
  height: 23px !important;
  min-height: 23px !important;
  padding: 0 !important;
  border-radius: 7px !important;
}

.detail-page-v193 .availability-cell span {
  font-size: .54rem !important;
  line-height: 1 !important;
  font-weight: 900 !important;
}

.detail-page-v193 .availability-cell:hover,
.detail-page-v193 .availability-cell:focus-visible {
  transform: none !important;
  box-shadow: 0 0 0 2px rgba(47, 126, 255, .11) !important;
}

.detail-page-v193 .availability-grid .row-action {
  padding-left: 5px !important;
  padding-right: 5px !important;
}

.detail-page-v193 .availability-grid .row-action button {
  min-height: 24px !important;
  padding: 0 8px !important;
  border-radius: 9px !important;
  font-size: .68rem !important;
  line-height: 1 !important;
}

.detail-page-v193 .availability-grid .row-action small {
  display: block;
  margin-top: 2px !important;
  font-size: .62rem !important;
  line-height: 1.05 !important;
  white-space: nowrap;
}

.detail-page-v193 .availability-legend {
  gap: 10px;
  margin-top: 0;
  font-size: .76rem;
}

.detail-page-v193 .availability-legend i {
  min-width: 18px !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 7px !important;
  font-size: .62rem !important;
}

@media (max-width: 980px) {
  .detail-page-v193 {
    --availability-room-col-width: 188px;
    --availability-action-col-width: 112px;
    --availability-scrollbar-height: 18px;
  }

  .detail-page-v193 .availability-days-scrollbar {
    margin-left: var(--availability-room-col-width);
    margin-right: var(--availability-action-col-width);
  }
}

@media (max-width: 560px) {
  .detail-page-v193 {
    --availability-room-col-width: 164px;
    --availability-action-col-width: 104px;
  }

  .detail-page-v193 .availability-grid .room-col,
  .detail-page-v193 .availability-grid .room-name {
    width: var(--availability-room-col-width) !important;
    min-width: var(--availability-room-col-width) !important;
  }

  .detail-page-v193 .availability-grid .action-col,
  .detail-page-v193 .availability-grid .row-action {
    width: var(--availability-action-col-width) !important;
    min-width: var(--availability-action-col-width) !important;
  }

  .detail-page-v193 .availability-days-scrollbar {
    margin-left: var(--availability-room-col-width);
    margin-right: var(--availability-action-col-width);
  }

  .detail-page-v193 .availability-grid {
    min-width: 1180px !important;
  }

  .detail-page-v193 .availability-grid .day-col {
    min-width: 30px !important;
  }

  .detail-page-v193 .availability-cell {
    width: 22px !important;
    min-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
  }
}


/* ===== Migrated from marketplace-detail-v194.css ===== */
/* v194 — Selección múltiple de tipos y cantidades de habitación.
   Base limpia: v193 aprobada. Conserva el scroll horizontal visible de días. */

.detail-page-v194 .availability-header p {
  max-width: 680px;
}

.detail-page-v194 .availability-grid {
  min-width: 1320px !important;
}

.detail-page-v194 .availability-grid .row-action {
  vertical-align: middle;
  background: #fff !important;
}

.detail-page-v194 .room-option-stack {
  display: grid;
  justify-items: center;
  align-items: center;
  gap: 3px;
  min-width: 104px;
}

.detail-page-v194 .room-option-stack small {
  order: 0;
  margin: 0 !important;
  color: #07162d !important;
  font-size: .66rem !important;
  font-weight: 850;
  white-space: nowrap;
}

.detail-page-v194 .room-option-stack em {
  color: #617189;
  font-size: .58rem;
  font-style: normal;
  font-weight: 850;
}

.detail-page-v194 .room-option-stack > button[data-add-room] {
  width: 78px;
  min-height: 25px !important;
  padding: 0 10px !important;
  border: 1px solid #2f7eff !important;
  background: #2f7eff !important;
  color: #fff !important;
  font-size: .68rem !important;
  font-weight: 900;
  cursor: pointer;
}

.detail-page-v194 .room-option-stack.is-added small {
  color: #2f7eff !important;
}

.detail-page-v194 .room-qty-control {
  display: inline-grid;
  grid-template-columns: 24px 26px 24px;
  align-items: center;
  overflow: hidden;
  height: 25px;
  border: 1px solid rgba(47, 126, 255, .22);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 6px 16px rgba(47, 126, 255, .08);
}

.detail-page-v194 .room-qty-control button {
  width: 24px !important;
  min-width: 24px !important;
  height: 25px !important;
  min-height: 25px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #2f7eff !important;
  font-size: .82rem !important;
  font-weight: 950;
}

.detail-page-v194 .room-qty-control strong {
  color: #07162d;
  font-size: .76rem;
  font-weight: 950;
  text-align: center;
}

.detail-page-v194 .room-config-link {
  min-height: auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #2f7eff !important;
  font-size: .58rem !important;
  font-weight: 900;
  text-decoration: none;
}

.detail-page-v194 .availability-grid .row-action.has-selection {
  box-shadow: inset 0 0 0 2px rgba(47, 126, 255, .12);
}

.detail-page-v194 .availability-bottom {
  grid-template-columns: minmax(360px, .95fr) minmax(360px, 1fr);
  align-items: stretch;
  gap: 18px;
}

.detail-page-v194 .availability-selection-card {
  display: block !important;
  min-height: 100%;
  padding: 16px !important;
  background: linear-gradient(180deg, rgba(47, 126, 255, .055), #fff 45%) !important;
}

.detail-page-v194 .selection-empty-v194 {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 13px;
  align-items: start;
  padding-bottom: 12px;
}

.detail-page-v194 .selection-empty-v194 h3,
.detail-page-v194 .selection-card-header-v194 h3 {
  margin: 2px 0 0;
  color: #07162d;
  font-size: 1.05rem;
  line-height: 1.15;
}

.detail-page-v194 .selection-empty-v194 span,
.detail-page-v194 .selection-card-header-v194 span {
  color: #617189;
  font-size: .72rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .035em;
}

.detail-page-v194 .selection-empty-v194 p {
  margin: 8px 0 0;
  color: #52617a;
  font-size: .82rem;
  line-height: 1.42;
}

.detail-page-v194 .selection-icon {
  width: 44px !important;
  height: 44px !important;
  font-size: 1.2rem !important;
  background: linear-gradient(135deg, #2f7eff, #00a9ae) !important;
}

.detail-page-v194 .selection-card-header-v194 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.detail-page-v194 .selection-card-header-v194 small {
  color: #52617a;
  font-size: .72rem;
  font-weight: 800;
  text-align: right;
}

.detail-page-v194 .selection-list-v194 {
  display: grid;
  gap: 8px;
  margin-bottom: 11px;
}

.detail-page-v194 .selection-room-item-v194 {
  display: grid;
  grid-template-columns: 34px 1fr 32px;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border: 1px solid rgba(12, 44, 71, .08);
  border-radius: 14px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 8px 18px rgba(5, 25, 43, .045);
}

.detail-page-v194 .selection-room-icon-v194 {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 12px;
  background: rgba(47, 126, 255, .11);
  color: #2f7eff;
  font-size: .82rem;
  font-weight: 950;
}

.detail-page-v194 .selection-room-item-v194 strong {
  display: block;
  color: #07162d;
  font-size: .86rem;
  line-height: 1.2;
}

.detail-page-v194 .selection-room-item-v194 small {
  display: block;
  margin-top: 2px;
  color: #52617a;
  font-size: .72rem;
  font-weight: 780;
  line-height: 1.25;
}

.detail-page-v194 .selection-room-item-v194 em {
  color: #b26b00;
  font-style: normal;
  font-weight: 950;
}

.detail-page-v194 .selection-room-item-v194 > button {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(47,126,255,.18);
  border-radius: 10px;
  background: #fff;
  color: #2f7eff;
  font-weight: 900;
  cursor: pointer;
}

.detail-page-v194 .selection-progress-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 10px;
  margin: 10px 0 12px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(97, 113, 137, .18);
  background: #f8fbfd;
  color: #52617a;
  font-size: .76rem;
  line-height: 1.25;
}

.detail-page-v194 .selection-progress-card strong {
  color: #07162d;
  font-weight: 950;
}

.detail-page-v194 .selection-progress-card.is-ok {
  border-color: rgba(0, 169, 107, .32);
  background: rgba(0, 169, 107, .07);
}

.detail-page-v194 .selection-progress-card.is-ok span:last-child {
  color: #007c4f;
  font-weight: 950;
}

.detail-page-v194 .selection-progress-card.is-warning {
  border-color: rgba(242, 151, 0, .35);
  background: rgba(242, 151, 0, .08);
}

.detail-page-v194 .selection-warning,
.detail-page-v194 .selection-note-v194 {
  margin: 8px 0 10px;
  padding: 9px 10px;
  border-radius: 13px;
  font-size: .76rem;
  font-weight: 850;
  line-height: 1.35;
}

.detail-page-v194 .selection-warning {
  border: 1px solid rgba(214, 49, 49, .22);
  background: rgba(214, 49, 49, .07);
  color: #9d1d1d;
}

.detail-page-v194 .selection-note-v194 {
  border: 1px solid rgba(242, 151, 0, .24);
  background: rgba(242, 151, 0, .08);
  color: #7a4b00;
}

.detail-page-v194 .selection-total-v194 {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 2px 12px;
  margin-top: 6px;
  padding-top: 12px;
  border-top: 1px solid rgba(12, 44, 71, .08);
}

.detail-page-v194 .selection-total-v194 span {
  color: #07162d;
  font-weight: 950;
}

.detail-page-v194 .selection-total-v194 strong {
  color: #07162d;
  font-size: 1.15rem;
  font-weight: 950;
  text-align: right;
}

.detail-page-v194 .selection-total-v194 strong small {
  font-size: .72rem;
  font-weight: 850;
}

.detail-page-v194 .selection-total-v194 em {
  grid-column: 2;
  color: #07162d;
  font-size: .85rem;
  font-style: normal;
  font-weight: 800;
  text-align: right;
}

.detail-page-v194 .availability-whatsapp.is-disabled {
  pointer-events: auto;
  opacity: .65;
  filter: grayscale(.2);
}

@media (max-width: 980px) {
  .detail-page-v194 .availability-bottom {
    grid-template-columns: 1fr;
  }

  .detail-page-v194 .selection-card-header-v194 {
    display: grid;
  }

  .detail-page-v194 .selection-card-header-v194 small {
    text-align: left;
  }
}

@media (max-width: 560px) {
  .detail-page-v194 .availability-grid {
    min-width: 1220px !important;
  }

  .detail-page-v194 .selection-room-item-v194 {
    grid-template-columns: 30px 1fr 30px;
    gap: 8px;
    padding: 8px;
  }

  .detail-page-v194 .selection-total-v194 {
    grid-template-columns: 1fr;
  }

  .detail-page-v194 .selection-total-v194 strong,
  .detail-page-v194 .selection-total-v194 em {
    grid-column: 1;
    text-align: left;
  }
}


/* ===== Migrated from marketplace-detail-v195.css ===== */
/* v195: limpieza de acción en selector múltiple de habitaciones. */
.detail-page-v195 .room-option-stack.is-added {
  gap: .22rem;
}

.detail-page-v195 .room-option-stack.is-added .room-qty-control {
  margin-top: 0;
}


/* ===== Migrated from marketplace-detail-v196.css ===== */
/* v196: limpieza y compactación de la columna Opción + celdas de disponibilidad.
   Base: v195 aprobada. No cambia la lógica de selección múltiple. */

.detail-page-v196 {
  --availability-action-col-width: 104px;
}

.detail-page-v196 .availability-grid {
  min-width: 1290px !important;
}

.detail-page-v196 .availability-grid th,
.detail-page-v196 .availability-grid td {
  padding-top: 1px !important;
  padding-bottom: 1px !important;
}

.detail-page-v196 .availability-grid .day-col {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

.detail-page-v196 .room-name-card {
  min-height: 21px !important;
  gap: 6px !important;
}

.detail-page-v196 .room-name-card strong {
  font-size: .8rem !important;
  line-height: 1 !important;
}

.detail-page-v196 .room-help-trigger {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  font-size: .58rem !important;
}

.detail-page-v196 .availability-cell {
  width: 18px !important;
  min-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  border-radius: 6px !important;
}

.detail-page-v196 .availability-cell span {
  font-size: .44rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  transform: translateY(-.5px);
}

.detail-page-v196 .availability-grid .action-col,
.detail-page-v196 .availability-grid .row-action {
  width: var(--availability-action-col-width) !important;
  min-width: var(--availability-action-col-width) !important;
}

.detail-page-v196 .availability-grid .row-action {
  padding: 1px 4px !important;
}

.detail-page-v196 .room-option-stack {
  min-width: 92px !important;
  gap: 2px !important;
  line-height: 1 !important;
}

.detail-page-v196 .room-option-stack small {
  font-size: .61rem !important;
  line-height: 1 !important;
  letter-spacing: -.01em;
}

.detail-page-v196 .room-option-stack > button[data-add-room] {
  width: 66px !important;
  min-height: 21px !important;
  height: 21px !important;
  padding: 0 7px !important;
  border-radius: 8px !important;
  font-size: .61rem !important;
  line-height: 1 !important;
}

.detail-page-v196 .room-qty-control {
  grid-template-columns: 20px 22px 20px !important;
  height: 21px !important;
  border-radius: 9px !important;
  box-shadow: 0 4px 10px rgba(47, 126, 255, .06) !important;
}

.detail-page-v196 .room-qty-control button {
  width: 20px !important;
  min-width: 20px !important;
  height: 21px !important;
  min-height: 21px !important;
  font-size: .72rem !important;
  line-height: 1 !important;
}

.detail-page-v196 .room-qty-control strong {
  font-size: .68rem !important;
  line-height: 1 !important;
}

.detail-page-v196 .availability-days-scrollbar {
  margin-right: var(--availability-action-col-width) !important;
}

@media (max-width: 700px) {
  .detail-page-v196 {
    --availability-action-col-width: 96px;
  }

  .detail-page-v196 .room-option-stack {
    min-width: 84px !important;
  }

  .detail-page-v196 .room-option-stack small {
    font-size: .58rem !important;
  }
}


/* ===== Migrated from marketplace-detail-v197.css ===== */
/* v197: lista de habitaciones seleccionadas con scroll interno.
   Base: v196. Mantiene visible el resumen, alertas y total del card. */

.detail-page-v197 .availability-selection-card {
  display: flex !important;
  flex-direction: column;
  min-height: 100%;
}

.detail-page-v197 .selection-list-v194 {
  max-height: 236px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 6px;
  margin-bottom: 12px;
}

.detail-page-v197 .selection-list-v194::-webkit-scrollbar {
  width: 8px;
}

.detail-page-v197 .selection-list-v194::-webkit-scrollbar-track {
  background: rgba(12, 44, 71, .06);
  border-radius: 999px;
}

.detail-page-v197 .selection-list-v194::-webkit-scrollbar-thumb {
  background: rgba(47, 126, 255, .45);
  border-radius: 999px;
}

.detail-page-v197 .selection-list-v194::-webkit-scrollbar-thumb:hover {
  background: rgba(47, 126, 255, .65);
}

.detail-page-v197 .selection-room-item-v194 {
  grid-template-columns: 34px 1fr;
}

.detail-page-v197 .selection-card-header-v194,
.detail-page-v197 .selection-progress-card,
.detail-page-v197 .selection-warning,
.detail-page-v197 .selection-note-v194,
.detail-page-v197 .selection-total-v194 {
  flex-shrink: 0;
}

@media (max-width: 980px) {
  .detail-page-v197 .selection-list-v194 {
    max-height: 208px;
  }
}

@media (max-width: 560px) {
  .detail-page-v197 .selection-list-v194 {
    max-height: 184px;
    padding-right: 4px;
  }

  .detail-page-v197 .selection-room-item-v194 {
    grid-template-columns: 30px 1fr;
  }
}


/* ===== Migrated from marketplace-detail-v198.css ===== */
/* v198: hace visible el scroll interno de la lista azul de Tu selección.
   Base: v197. Ajusta la altura para que el resumen inferior no se pierda. */

.detail-page-v198 .availability-selection-card {
  overflow: hidden;
}

/* La lista azul ahora se limita antes. 
   overflow-y: scroll fuerza el carril visible para que el usuario entienda que puede desplazarse. */
.detail-page-v198 .selection-list-v194 {
  max-height: 142px !important;
  overflow-y: scroll !important;
  overflow-x: hidden !important;
  padding-right: 8px !important;
  margin-bottom: 10px !important;
  scrollbar-gutter: stable;
}

/* Compacta ligeramente cada habitación seleccionada para ganar aire vertical. */
.detail-page-v198 .selection-room-item-v194 {
  min-height: 58px;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

/* En pantallas bajas como la captura, reduce más la lista para dejar visibles Buscaste/Asignado y Total. */
@media (max-height: 820px) {
  .detail-page-v198 .selection-list-v194 {
    max-height: 124px !important;
  }

  .detail-page-v198 .selection-room-item-v194 {
    min-height: 54px;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }

  .detail-page-v198 .selection-progress-card {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
  }

  .detail-page-v198 .selection-warning,
  .detail-page-v198 .selection-note-v194 {
    margin-top: 6px !important;
    margin-bottom: 8px !important;
  }

  .detail-page-v198 .selection-total-v194 {
    padding-top: 9px !important;
  }
}

/* En móvil, la lista debe ser todavía más corta para no empujar el CTA. */
@media (max-width: 560px) {
  .detail-page-v198 .selection-list-v194 {
    max-height: 118px !important;
  }
}


/* ===== Migrated from marketplace-detail-v199.css ===== */
/* v199: Tu selección en formato compacto tipo lista.
   Base: v198. Limpia la zona azul y mantiene scroll interno visible. */

.detail-page-v199 .availability-selection-card {
  background: linear-gradient(180deg, rgba(47,126,255,.035), #fff 42%) !important;
}

/* La lista deja de verse como un bloque azul pesado y pasa a filas limpias. */
.detail-page-v199 .selection-list-v194 {
  display: grid !important;
  gap: 5px !important;
  max-height: 132px !important;
  overflow-y: scroll !important;
  overflow-x: hidden !important;
  padding: 0 7px 0 0 !important;
  margin: 0 0 10px !important;
  background: transparent !important;
  scrollbar-gutter: stable;
}

.detail-page-v199 .selection-list-v194::-webkit-scrollbar {
  width: 8px;
}

.detail-page-v199 .selection-list-v194::-webkit-scrollbar-track {
  background: rgba(12, 44, 71, .07);
  border-radius: 999px;
}

.detail-page-v199 .selection-list-v194::-webkit-scrollbar-thumb {
  background: rgba(97, 113, 137, .38);
  border-radius: 999px;
}

.detail-page-v199 .selection-list-v194::-webkit-scrollbar-thumb:hover {
  background: rgba(47, 126, 255, .58);
}

/* Nueva fila compacta: estado + habitación + precio. */
.detail-page-v199 .selection-room-line-v199 {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  min-height: 31px;
  padding: 4px 8px;
  border: 1px solid rgba(0, 169, 107, .18);
  border-radius: 10px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 2px 7px rgba(5, 25, 43, .035);
}

.detail-page-v199 .selection-room-dot-v199 {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #00a96b;
  box-shadow: 0 0 0 3px rgba(0, 169, 107, .08);
}

.detail-page-v199 .selection-room-line-v199.requires-confirmation {
  border-color: rgba(242, 151, 0, .24);
}

.detail-page-v199 .selection-room-line-v199.requires-confirmation .selection-room-dot-v199 {
  background: #f29700;
  box-shadow: 0 0 0 3px rgba(242, 151, 0, .12);
}

.detail-page-v199 .selection-room-line-v199 strong {
  min-width: 0;
  color: #07162d;
  font-size: .82rem;
  font-weight: 850;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.detail-page-v199 .selection-room-price-v199 {
  color: #007c4f;
  font-size: .78rem;
  font-weight: 950;
  line-height: 1;
  white-space: nowrap;
  text-align: right;
}

.detail-page-v199 .selection-room-line-v199.requires-confirmation .selection-room-price-v199 {
  color: #7a4b00;
}

/* Ya no usamos el layout anterior de tarjetas grandes dentro de la lista. */
.detail-page-v199 .selection-room-item-v194,
.detail-page-v199 .selection-room-icon-v194 {
  display: none !important;
}

/* Gana un poco de aire para que se vean Buscaste/Asignado y el total. */
.detail-page-v199 .selection-card-header-v194 {
  margin-bottom: 8px !important;
}

.detail-page-v199 .selection-progress-card {
  margin-top: 8px !important;
  margin-bottom: 8px !important;
}

.detail-page-v199 .selection-warning,
.detail-page-v199 .selection-note-v194 {
  margin-top: 6px !important;
  margin-bottom: 8px !important;
}

.detail-page-v199 .selection-total-v194 {
  padding-top: 9px !important;
}

@media (max-height: 820px) {
  .detail-page-v199 .selection-list-v194 {
    max-height: 108px !important;
  }

  .detail-page-v199 .selection-room-line-v199 {
    min-height: 29px;
    padding-top: 3px;
    padding-bottom: 3px;
  }
}

@media (max-width: 560px) {
  .detail-page-v199 .selection-list-v194 {
    max-height: 112px !important;
    padding-right: 5px !important;
  }

  .detail-page-v199 .selection-room-line-v199 {
    grid-template-columns: 16px minmax(0, 1fr) auto;
    padding-left: 7px;
    padding-right: 7px;
  }

  .detail-page-v199 .selection-room-line-v199 strong {
    font-size: .78rem;
  }

  .detail-page-v199 .selection-room-price-v199 {
    font-size: .72rem;
  }
}


/* ===== Migrated from marketplace-detail-v200.css ===== */
/* v200: reasigna adultos/niños dentro de Tu selección y vuelve informativa la cantidad de habitaciones */
.detail-page-v200 .availability-custom-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.detail-page-v200 .availability-custom-card h3 {
  margin-bottom: 0;
}

.detail-page-v200 .availability-custom-intro {
  margin: 0;
  font-size: .93rem;
  color: #526783;
  line-height: 1.45;
}

.detail-page-v200 .availability-guest-fields {
  grid-template-columns: 1fr;
}

.detail-page-v200 .availability-guest-fields label span {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.detail-page-v200 .selection-card-header-v200 {
  margin-bottom: 10px !important;
}

.detail-page-v200 .selection-pill-v200 {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  align-self: flex-start;
  margin: 0 0 12px;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid rgba(34, 197, 94, .28);
  background: rgba(34, 197, 94, .07);
}

.detail-page-v200 .selection-pill-v200 strong {
  font-size: 1rem;
  color: #10365a;
}

.detail-page-v200 .selection-pill-v200 small {
  color: #5e7592;
  font-size: .82rem;
}

.detail-page-v200 .selection-pill-v200.is-empty {
  border-color: rgba(47,126,255,.2);
  background: rgba(47,126,255,.06);
}

.detail-page-v200 .selection-table-v200 {
  border: 1px solid #e4ebf4;
  border-radius: 16px;
  background: #fff;
  overflow: hidden;
}

.detail-page-v200 .selection-table-head-v200,
.detail-page-v200 .selection-row-v200 {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) 120px 104px 104px;
  align-items: center;
  gap: 10px;
}

.detail-page-v200 .selection-table-head-v200 {
  padding: 10px 14px;
  background: #f7fafc;
  color: #5d6f8a;
  font-size: .8rem;
  font-weight: 800;
  text-transform: none;
}

.detail-page-v200 .selection-list-v200 {
  max-height: 142px;
  overflow-y: auto;
  padding: 0 6px 0 0;
}

.detail-page-v200 .selection-list-v200::-webkit-scrollbar {
  width: 8px;
}
.detail-page-v200 .selection-list-v200::-webkit-scrollbar-track {
  background: rgba(12,44,71,.06);
  border-radius: 999px;
}
.detail-page-v200 .selection-list-v200::-webkit-scrollbar-thumb {
  background: rgba(97,113,137,.34);
  border-radius: 999px;
}

.detail-page-v200 .selection-row-v200 {
  padding: 12px 14px;
  border-top: 1px solid #edf2f7;
}

.detail-page-v200 .selection-row-v200.requires-confirmation {
  background: rgba(242,151,0,.035);
}

.detail-page-v200 .selection-room-name-v200 {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.detail-page-v200 .selection-room-name-v200 strong {
  font-size: .82rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.detail-page-v200 .selection-mini-counter-v200 {
  display: inline-grid;
  grid-template-columns: 30px 1fr 30px;
  align-items: center;
  min-height: 36px;
  border: 1px solid #d9e2ec;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.detail-page-v200 .selection-mini-counter-v200 button {
  border: 0;
  height: 100%;
  background: #f8fafc;
  color: #0b1f3a;
  font-size: 1.05rem;
  font-weight: 800;
  cursor: pointer;
}

.detail-page-v200 .selection-mini-counter-v200 strong {
  text-align: center;
  font-size: .95rem;
  color: #0b1f3a;
}

.detail-page-v200 .selection-progress-card-v200 {
  margin-top: 12px !important;
  margin-bottom: 10px !important;
}

.detail-page-v200 .selection-total-v200 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.detail-page-v200 .selection-total-v200 span {
  font-size: 1rem;
  font-weight: 800;
  color: #0b1f3a;
}

.detail-page-v200 .selection-total-v200 strong {
  font-size: 1.95rem;
  line-height: 1;
}

.detail-page-v200 .selection-warning {
  margin-top: 8px !important;
}

@media (max-width: 1100px) {
  .detail-page-v200 .selection-table-head-v200,
  .detail-page-v200 .selection-row-v200 {
    grid-template-columns: minmax(0, 1.2fr) 110px 92px 92px;
    gap: 8px;
  }
}

@media (max-width: 820px) {
  .detail-page-v200 .selection-table-head-v200,
  .detail-page-v200 .selection-row-v200 {
    grid-template-columns: minmax(0, 1fr) 104px 84px 84px;
    padding-left: 10px;
    padding-right: 10px;
  }

  .detail-page-v200 .selection-table-head-v200 {
    font-size: .74rem;
  }

  .detail-page-v200 .selection-list-v200 {
    max-height: 164px;
  }
}

@media (max-width: 640px) {
  .detail-page-v200 .selection-table-v200 {
    overflow-x: auto;
  }
  .detail-page-v200 .selection-table-head-v200,
  .detail-page-v200 .selection-list-v200 {
    min-width: 560px;
  }
}


/* ===== Migrated from marketplace-detail-v201.css ===== */
/* v201: compacta el card inferior izquierdo sin cambiar la lógica de v200. */
.detail-page-v201 .availability-selection-card {
  padding: 12px !important;
}

.detail-page-v201 .selection-card-header-v194 h3,
.detail-page-v201 .selection-empty-v194 h3 {
  font-size: .98rem !important;
}

.detail-page-v201 .selection-card-header-v194 small {
  font-size: .68rem !important;
}

.detail-page-v201 .selection-pill-v200 {
  margin-bottom: 10px;
  padding: 8px 12px;
  border-radius: 12px;
}

.detail-page-v201 .selection-pill-v200 strong {
  font-size: .92rem;
}

.detail-page-v201 .selection-pill-v200 small {
  font-size: .76rem;
}

.detail-page-v201 .selection-table-v200 {
  border-radius: 14px;
}

.detail-page-v201 .selection-table-head-v200,
.detail-page-v201 .selection-row-v200 {
  grid-template-columns: minmax(0, 1.45fr) 112px 96px 96px;
  gap: 8px;
}

.detail-page-v201 .selection-table-head-v200 {
  padding: 8px 12px;
  font-size: .74rem;
}

.detail-page-v201 .selection-list-v200 {
  max-height: 126px;
}

.detail-page-v201 .selection-row-v200 {
  padding: 9px 12px;
}

.detail-page-v201 .selection-room-name-v200 {
  gap: 8px;
}

.detail-page-v201 .selection-room-name-v200 strong {
  font-size: .78rem;
}

.detail-page-v201 .selection-room-price-v199 {
  font-size: .74rem;
}

.detail-page-v201 .selection-mini-counter-v200 {
  grid-template-columns: 28px 1fr 28px;
  min-height: 32px;
  border-radius: 10px;
}

.detail-page-v201 .selection-mini-counter-v200 button {
  font-size: .96rem;
}

.detail-page-v201 .selection-mini-counter-v200 strong {
  font-size: .88rem;
}

.detail-page-v201 .selection-progress-card {
  gap: 3px 8px;
  margin: 9px 0 10px !important;
  padding: 8px 10px;
  border-radius: 12px;
  font-size: .72rem;
}

.detail-page-v201 .selection-warning,
.detail-page-v201 .selection-note-v194 {
  margin: 7px 0 8px;
  padding: 8px 9px;
  border-radius: 12px;
  font-size: .73rem;
}

.detail-page-v201 .selection-total-v194,
.detail-page-v201 .selection-total-v200 {
  gap: 2px 10px;
  margin-top: 4px;
  padding-top: 9px !important;
}

.detail-page-v201 .selection-total-v200 span,
.detail-page-v201 .selection-total-v194 span {
  font-size: .94rem;
}

.detail-page-v201 .selection-total-v200 strong,
.detail-page-v201 .selection-total-v194 strong {
  font-size: 1.7rem;
}

@media (max-width: 1100px) {
  .detail-page-v201 .selection-table-head-v200,
  .detail-page-v201 .selection-row-v200 {
    grid-template-columns: minmax(0, 1.2fr) 104px 88px 88px;
    gap: 7px;
  }
}

@media (max-width: 820px) {
  .detail-page-v201 .availability-selection-card {
    padding: 11px !important;
  }

  .detail-page-v201 .selection-list-v200 {
    max-height: 136px;
  }

  .detail-page-v201 .selection-table-head-v200,
  .detail-page-v201 .selection-row-v200 {
    grid-template-columns: minmax(0, 1fr) 98px 82px 82px;
    padding-left: 10px;
    padding-right: 10px;
  }
}


/* ===== Migrated from marketplace-detail-v202.css ===== */
/* v202: limpia el header de Tu selección y elimina el card redundante de habitaciones seleccionadas. */
.detail-page-v202 .selection-pill-v200 {
  display: none !important;
}

@media (min-width: 821px) {
  .detail-page-v202 .selection-card-header-v194,
  .detail-page-v202 .selection-card-header-v200 {
    align-items: center;
  }

  .detail-page-v202 .selection-card-header-v194 h3,
  .detail-page-v202 .selection-empty-v194 h3 {
    white-space: nowrap;
  }

  .detail-page-v202 .selection-card-header-v194 small {
    white-space: nowrap;
    flex-shrink: 0;
  }
}

@media (max-width: 820px) {
  .detail-page-v202 .selection-card-header-v194 h3,
  .detail-page-v202 .selection-empty-v194 h3,
  .detail-page-v202 .selection-card-header-v194 small {
    white-space: normal;
  }
}


/* ===== Migrated from marketplace-detail-v203.css ===== */
/* v203: limpia naming visual en tablas y elimina texto de precio redundante en Opción. */
.detail-page-v203 .room-option-stack {
  gap: 6px;
  justify-content: center;
}

.detail-page-v203 .room-option-stack > small {
  display: none !important;
}

.detail-page-v203 .availability-table .room-name strong {
  word-break: break-word;
}


/* ===== Migrated from marketplace-detail-v204.css ===== */
/* v204: alertas de advertencia/error cerrables dentro del popup */
.detail-page-v204 .dismissible-inline-alert {
  position: relative;
  display: block;
  margin: 0;
  padding: 12px 46px 12px 14px;
  border-radius: 14px;
  border: 1px solid #ead7b1;
  background: #fdf6eb;
  color: #9a5a06;
}

.detail-page-v204 .dismissible-inline-alert__content {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.detail-page-v204 .dismissible-inline-alert__content strong {
  font-size: .98rem;
  line-height: 1.2;
  color: inherit;
}

.detail-page-v204 .dismissible-inline-alert__content span,
.detail-page-v204 .dismissible-inline-alert__content {
  font-size: .92rem;
  line-height: 1.35;
  color: inherit;
}

.detail-page-v204 .dismissible-inline-alert__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 28px;
  height: 28px;
  border: 1px solid #e0e5ed;
  border-radius: 999px;
  background: #f5f7fb;
  color: #0b1f3a;
  font-size: 1.15rem;
  line-height: 1;
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.detail-page-v204 .dismissible-inline-alert__close:hover {
  background: #ffffff;
}

.detail-page-v204 .dismissible-inline-alert.is-error {
  border-color: #efc2c2;
  background: #fff1f1;
  color: #b42318;
}

.detail-page-v204 .dismissible-inline-alert.is-info {
  border-color: #cfe0f3;
  background: #f4f8fd;
  color: #365277;
}

.detail-page-v204 .selection-dismissible-shell,
.detail-page-v204 .selection-warning.selection-dismissible-shell,
.detail-page-v204 .selection-note-v194.selection-dismissible-shell {
  margin: 8px 0 8px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.detail-page-v204 .selection-inline-alert {
  width: 100%;
}

.detail-page-v204 [data-availability-empty] .dismissible-inline-alert {
  margin: 0;
}

@media (max-width: 820px) {
  .detail-page-v204 .dismissible-inline-alert {
    padding: 11px 42px 11px 12px;
    border-radius: 12px;
  }

  .detail-page-v204 .dismissible-inline-alert__content strong {
    font-size: .92rem;
  }

  .detail-page-v204 .dismissible-inline-alert__content span,
  .detail-page-v204 .dismissible-inline-alert__content {
    font-size: .85rem;
  }

  .detail-page-v204 .dismissible-inline-alert__close {
    width: 26px;
    height: 26px;
    top: 8px;
    right: 8px;
  }
}


/* ===== Migrated from marketplace-detail-v205.css ===== */
/* v205: separa Consulta rápida y Consulta Avanzada en página dedicada. */

.detail-page-v205 .detail-availability-modal[aria-hidden="true"] {
  display: none;
}

.detail-advanced-page {
  background: #f4f7fb;
  min-height: 100vh;
}

.detail-advanced-page .advanced-consult-page-shell {
  width: min(1180px, calc(100% - 28px));
  margin: 18px auto;
}

.detail-advanced-page .detail-availability-modal {
  position: static !important;
  inset: auto !important;
  display: block !important;
  min-height: auto !important;
  padding: 0 !important;
  background: transparent !important;
  overflow: visible !important;
  z-index: auto !important;
}

.detail-advanced-page .availability-dialog {
  width: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  box-shadow: 0 18px 60px rgba(12, 31, 60, .13) !important;
}

.detail-advanced-page .availability-close {
  position: absolute;
}

.detail-advanced-page .availability-close::after {
  content: "";
}

.detail-advanced-page .availability-actions .availability-back::after {
  content: "";
}

.detail-page-v205 [data-detail-consult] {
  white-space: nowrap;
}

@media (max-width: 760px) {
  .detail-advanced-page .advanced-consult-page-shell {
    width: 100%;
    margin: 0;
  }

  .detail-advanced-page .availability-dialog {
    border-radius: 0 !important;
    min-height: 100vh;
  }
}

.detail-advanced-page .availability-header p {
  max-width: 720px;
}

.detail-advanced-page .availability-close {
  background: #f3f7fb !important;
}

.detail-advanced-page .availability-close:hover {
  background: #ffffff !important;
}


/* ===== Migrated from marketplace-detail-v206.css ===== */
/* v206: warnings y errores flotantes arriba a la derecha con scroll interno por card. */

.detail-page-v206 .detail-availability-panel {
  position: relative;
}

.detail-page-v206 .availability-alert-stack {
  position: absolute;
  top: 112px;
  right: 22px;
  width: min(480px, calc(100% - 44px));
  display: grid;
  gap: 10px;
  z-index: 80;
  pointer-events: none;
  max-height: 292px;
  overflow: visible;
}

.detail-page-v206 .availability-alert-stack[hidden] {
  display: none !important;
}

.detail-page-v206 .availability-alert-card {
  position: relative;
  pointer-events: auto;
  padding: 14px 48px 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(242, 151, 0, .36);
  background: rgba(255, 249, 239, .98);
  color: #8a4d00;
  box-shadow: 0 12px 28px rgba(12, 31, 60, .14);
  backdrop-filter: blur(6px);
}

.detail-page-v206 .availability-alert-card.is-error {
  border-color: rgba(214, 49, 49, .28);
  background: rgba(255, 241, 241, .98);
  color: #a41616;
}

.detail-page-v206 .availability-alert-card.is-info {
  border-color: rgba(47, 126, 255, .24);
  background: rgba(244, 248, 253, .98);
  color: #365277;
}

.detail-page-v206 .availability-alert-card__content {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 78px;
  overflow-y: auto;
  padding-right: 8px;
}

.detail-page-v206 .availability-alert-card__content::-webkit-scrollbar {
  width: 7px;
}

.detail-page-v206 .availability-alert-card__content::-webkit-scrollbar-track {
  background: rgba(12,44,71,.08);
  border-radius: 999px;
}

.detail-page-v206 .availability-alert-card__content::-webkit-scrollbar-thumb {
  background: rgba(97,113,137,.42);
  border-radius: 999px;
}

.detail-page-v206 .availability-alert-card strong {
  color: inherit;
  font-size: .98rem;
  line-height: 1.18;
  font-weight: 950;
}

.detail-page-v206 .availability-alert-card span {
  color: inherit;
  font-size: .91rem;
  line-height: 1.36;
  font-weight: 760;
}

.detail-page-v206 .availability-alert-card__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(12,44,71,.1);
  border-radius: 999px;
  background: #f4f7fb;
  color: #07162d;
  display: grid;
  place-items: center;
  font-size: 1.18rem;
  line-height: 1;
  font-weight: 950;
  cursor: pointer;
}

.detail-page-v206 .availability-alert-card__close:hover {
  background: #fff;
}

/* Ya no reservamos espacio dentro de Tu selección para warnings/errors. */
.detail-page-v206 .selection-dismissible-shell,
.detail-page-v206 .selection-warning.selection-dismissible-shell,
.detail-page-v206 .selection-note-v194.selection-dismissible-shell {
  display: none !important;
}

@media (max-width: 980px) {
  .detail-page-v206 .availability-alert-stack {
    top: 104px;
    right: 14px;
    width: min(440px, calc(100% - 28px));
  }
}

@media (max-width: 760px) {
  .detail-page-v206 .availability-alert-stack {
    position: sticky;
    top: 8px;
    right: auto;
    width: 100%;
    margin: 8px 0 10px;
    max-height: none;
  }

  .detail-page-v206 .availability-alert-card {
    padding: 12px 44px 12px 14px;
    border-radius: 14px;
  }

  .detail-page-v206 .availability-alert-card__content {
    max-height: 86px;
  }
}


/* ===== Migrated from marketplace-detail-v207.css ===== */
/* v207: consulta avanzada con apariencia de página y alertas flotantes más discretas. */

/* La página avanzada deja de sentirse como popup: menos sombra, menos “modal flotante”. */
.detail-advanced-page.detail-page-v207 {
  background:
    linear-gradient(180deg, #f7f9fc 0%, #ffffff 280px);
}

.detail-advanced-page.detail-page-v207 .advanced-consult-page-shell {
  width: min(1240px, calc(100% - 40px));
  margin: 0 auto;
  padding: 22px 0 32px;
}

.detail-advanced-page.detail-page-v207 .detail-availability-modal {
  background: transparent !important;
}

.detail-advanced-page.detail-page-v207 .availability-dialog {
  border-radius: 22px !important;
  border: 1px solid #e2eaf4 !important;
  box-shadow: none !important;
  background: #fff !important;
}

/* La cabecera se lee como cabecera de página, no como modal. */
.detail-advanced-page.detail-page-v207 .availability-header {
  padding-top: 2px;
}

.detail-advanced-page.detail-page-v207 .availability-close {
  box-shadow: none !important;
  border: 1px solid #e1e8f2 !important;
}

/* Alertas flotantes: más arriba, cerca del control calendario. */
.detail-page-v207 .availability-alert-stack {
  top: 82px;
  right: 24px;
  width: min(460px, calc(100% - 48px));
  gap: 8px;
  max-height: 260px;
}

.detail-page-v207 .availability-alert-card {
  padding: 11px 44px 11px 14px;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(12, 31, 60, .12);
}

/* Texto largo sin negrita y un poco más pequeño. */
.detail-page-v207 .availability-alert-card__content {
  gap: 3px;
  max-height: 68px;
  padding-right: 7px;
}

.detail-page-v207 .availability-alert-card strong {
  font-size: .86rem;
  line-height: 1.16;
  font-weight: 850;
}

.detail-page-v207 .availability-alert-card span {
  font-size: .79rem;
  line-height: 1.32;
  font-weight: 500;
}

.detail-page-v207 .availability-alert-card__close {
  top: 10px;
  right: 10px;
  width: 28px;
  height: 28px;
  font-size: 1.08rem;
}

/* En la página dedicada la pila se alinea todavía más arriba con la barra de controles. */
.detail-advanced-page.detail-page-v207 .availability-alert-stack {
  top: 74px;
}

/* En detalle.html, si todavía se usara el modal, no subimos tanto para no tapar header. */
body:not(.detail-advanced-page).detail-page-v207 .availability-alert-stack {
  top: 96px;
}

@media (max-width: 980px) {
  .detail-advanced-page.detail-page-v207 .advanced-consult-page-shell {
    width: min(100% - 24px, 1180px);
    padding-top: 14px;
  }

  .detail-page-v207 .availability-alert-stack {
    top: 74px;
    right: 14px;
    width: min(420px, calc(100% - 28px));
  }
}

@media (max-width: 760px) {
  .detail-advanced-page.detail-page-v207 .advanced-consult-page-shell {
    width: 100%;
    padding: 0;
  }

  .detail-advanced-page.detail-page-v207 .availability-dialog {
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
  }

  .detail-page-v207 .availability-alert-stack,
  .detail-advanced-page.detail-page-v207 .availability-alert-stack {
    position: sticky;
    top: 6px;
    right: auto;
    width: 100%;
    margin: 6px 0 8px;
    max-height: none;
  }

  .detail-page-v207 .availability-alert-card__content {
    max-height: 76px;
  }
}


/* ===== Migrated from marketplace-detail-v208.css ===== */
/* v208: la consulta avanzada deja de verse como popup y pasa a layout de página. */

.detail-advanced-page.detail-page-v208 {
  background: #ffffff !important;
  min-height: 100vh;
}

.detail-advanced-page.detail-page-v208 .advanced-consult-page-shell {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #ffffff;
}

.detail-advanced-page.detail-page-v208 .detail-availability-modal {
  position: static !important;
  display: block !important;
  width: 100% !important;
  min-height: 100vh !important;
  padding: 0 !important;
  background: #ffffff !important;
  overflow: visible !important;
}

.detail-advanced-page.detail-page-v208 .availability-dialog {
  width: 100% !important;
  max-width: none !important;
  min-height: 100vh !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 28px clamp(24px, 4vw, 64px) 42px !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #ffffff !important;
}

/* Mantiene el contenido cómodo, pero ya no como card flotante. */
.detail-advanced-page.detail-page-v208 .detail-availability-panel {
  width: min(1440px, 100%) !important;
  margin: 0 auto !important;
}

/* Header de página: más horizontal y menos modal. */
.detail-advanced-page.detail-page-v208 .availability-header {
  align-items: flex-start !important;
  gap: 18px !important;
  padding: 0 0 18px !important;
  border-bottom: 1px solid #e8eef5;
  margin-bottom: 18px;
}

.detail-advanced-page.detail-page-v208 .availability-header h2 {
  font-size: clamp(1.75rem, 2.4vw, 2.35rem) !important;
}

.detail-advanced-page.detail-page-v208 .availability-property {
  margin-left: auto;
}

/* Reemplaza el gesto modal de la X por un botón de regreso de página. */
.detail-advanced-page.detail-page-v208 .availability-close {
  position: static !important;
  width: auto !important;
  height: 40px !important;
  min-width: 0 !important;
  padding: 0 14px !important;
  border-radius: 999px !important;
  border: 1px solid #d8e2ee !important;
  background: #f7fafc !important;
  color: #0b1f3a !important;
  font-size: .88rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

.detail-advanced-page.detail-page-v208 .availability-close:hover {
  background: #ffffff !important;
  border-color: #b9c7d8 !important;
}

/* El grid queda integrado a la página, no dentro de una ventana. */
.detail-advanced-page.detail-page-v208 .availability-grid-shell,
.detail-advanced-page.detail-page-v208 .availability-bottom {
  max-width: 100%;
}

/* Alertas: se conserva el resultado de v207, pero ajustadas al nuevo layout full-page. */
.detail-advanced-page.detail-page-v208 .availability-alert-stack {
  top: 128px;
  right: clamp(24px, 4vw, 64px);
}

/* En páginas anchas, las alertas se alinean con el contenido central. */
@media (min-width: 1500px) {
  .detail-advanced-page.detail-page-v208 .availability-alert-stack {
    right: calc((100vw - 1440px) / 2);
  }
}

@media (max-width: 980px) {
  .detail-advanced-page.detail-page-v208 .availability-dialog {
    padding: 20px 18px 34px !important;
  }

  .detail-advanced-page.detail-page-v208 .availability-header {
    align-items: stretch !important;
  }

  .detail-advanced-page.detail-page-v208 .availability-property {
    margin-left: 0;
  }

  .detail-advanced-page.detail-page-v208 .availability-alert-stack {
    top: 108px;
    right: 18px;
  }
}

@media (max-width: 760px) {
  .detail-advanced-page.detail-page-v208 .availability-dialog {
    padding: 16px 12px 28px !important;
  }

  .detail-advanced-page.detail-page-v208 .availability-header {
    gap: 12px !important;
  }

  .detail-advanced-page.detail-page-v208 .availability-close {
    width: 100% !important;
    justify-content: center !important;
  }

  .detail-advanced-page.detail-page-v208 .availability-alert-stack {
    position: sticky;
    top: 6px;
    right: auto;
    width: 100%;
    margin: 6px 0 8px;
  }
}


/* ===== Migrated from marketplace-detail-v209.css ===== */
/* v209: libera el scroll natural de consulta-avanzada.html.
   Corrige recorte inferior heredado del comportamiento modal. */

html:has(body.detail-advanced-page.detail-page-v209),
body.detail-advanced-page.detail-page-v209 {
  height: auto !important;
  min-height: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

/* Neutraliza cualquier bloqueo global de scroll heredado del modal. */
body.detail-advanced-page.detail-page-v209.has-availability-modal {
  overflow-y: auto !important;
}

/* La página avanzada ya no debe tener límites de alto tipo modal. */
.detail-advanced-page.detail-page-v209 .advanced-consult-page-shell,
.detail-advanced-page.detail-page-v209 .detail-availability-modal,
.detail-advanced-page.detail-page-v209 .availability-dialog,
.detail-advanced-page.detail-page-v209 .detail-availability-panel {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* El dialog ocupa al menos el viewport, pero puede crecer todo lo que necesite. */
.detail-advanced-page.detail-page-v209 .availability-dialog {
  min-height: 100vh !important;
  padding-bottom: 96px !important;
}

/* Evita que el grid o la sección inferior corten el contenido por altura. */
.detail-advanced-page.detail-page-v209 .availability-grid-shell,
.detail-advanced-page.detail-page-v209 .availability-grid-wrap,
.detail-advanced-page.detail-page-v209 .availability-bottom,
.detail-advanced-page.detail-page-v209 .availability-selection-card,
.detail-advanced-page.detail-page-v209 .availability-custom-card {
  max-height: none !important;
}

/* Mantiene scroll interno solo donde sí aporta: tablas/listas horizontales o listas controladas. */
.detail-advanced-page.detail-page-v209 .availability-grid-wrap {
  overflow-x: auto !important;
  overflow-y: visible !important;
}

.detail-advanced-page.detail-page-v209 .selection-list-v200 {
  overflow-y: auto !important;
}

/* Da aire bajo los cards inferiores para que el CTA no quede pegado al borde. */
.detail-advanced-page.detail-page-v209 .availability-bottom {
  margin-bottom: 48px !important;
}

/* En pantallas bajas, prioriza scroll de página y no recorte de contenedor. */
@media (max-height: 820px) {
  .detail-advanced-page.detail-page-v209 .availability-dialog {
    min-height: auto !important;
    padding-bottom: 110px !important;
  }
}

@media (max-width: 760px) {
  .detail-advanced-page.detail-page-v209 .availability-dialog {
    padding-bottom: 120px !important;
  }

  .detail-advanced-page.detail-page-v209 .availability-bottom {
    margin-bottom: 64px !important;
  }
}
