/*
 * BIVA Hospitality shared UI stability layer.
 * Presentation only: this file deliberately contains no workflow or state rules.
 */

/* Keep every Hospitality modal attached to the viewport. This intentionally
   overrides the dashboard's generic .hospitality-page-content > * stacking rule. */
.hospitality-page-content > .hospitality-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9999 !important;
  display: grid !important;
  place-items: center !important;
  box-sizing: border-box;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: clamp(12px, 2.5vw, 28px) !important;
  overflow: auto;
  background: rgba(5, 18, 36, .72) !important;
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.hospitality-page-content > .hospitality-modal[hidden] {
  display: none !important;
}

.hospitality-page-content > .hospitality-modal > .hospitality-modal-card {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: min(780px, 100%);
  max-width: calc(100vw - 24px);
  max-height: calc(100vh - 32px);
  margin: auto;
  overflow: auto;
  border: 1px solid rgba(194, 210, 230, .82);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 32px 90px rgba(3, 18, 39, .35);
}

/* The plan comparison is intentionally wider than ordinary forms. Four plan
   cards need real comparison space on desktop instead of being compressed. */
.hospitality-page-content > .hospitality-plan-modal > .hospitality-plan-modal-card {
  width: min(1240px, calc(100vw - 48px));
  max-width: 1240px;
  padding: clamp(22px, 2.2vw, 32px);
}

.hospitality-plan-modal-card .hospitality-plan-grid {
  grid-template-columns: repeat(4, minmax(220px, 1fr));
  align-items: stretch;
  gap: 18px;
}

.hospitality-plan-modal-card .hospitality-plan-card {
  min-width: 0;
}

.hospitality-plan-modal-card .hospitality-plan-card .price {
  white-space: nowrap;
}

.hospitality-plan-modal-card .hospitality-plan-card > button {
  min-height: 46px;
  height: auto;
  padding: 11px 12px;
  line-height: 1.25;
}

/* Table cells must remain table cells. Flex on TD elements makes each body row
   calculate different column tracks, which caused the gaps shown in Menu and Employees. */
.hospitality-category-table td:first-child,
.hospitality-category-table td:last-child,
.hospitality-employees-table td:first-child,
.hospitality-employees-table td:last-child {
  display: table-cell !important;
  vertical-align: middle;
}

.hospitality-category-table td:first-child > i {
  display: inline-block;
  margin-right: 10px;
  vertical-align: middle;
}

.hospitality-category-table td:last-child > button,
.hospitality-employees-table td:last-child > button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 2px 6px 2px 0;
  vertical-align: middle;
}

.hospitality-category-table th,
.hospitality-category-table td,
.hospitality-employees-table th,
.hospitality-employees-table td {
  box-sizing: border-box;
}

@media (max-width: 700px) {
  .hospitality-page-content > .hospitality-modal {
    align-items: end !important;
    padding: 10px !important;
  }

  .hospitality-page-content > .hospitality-modal > .hospitality-modal-card {
    width: 100%;
    max-width: 100%;
    max-height: calc(100vh - 20px);
    border-radius: 20px 20px 14px 14px;
  }
}

@media (max-width: 1100px) {
  .hospitality-page-content > .hospitality-plan-modal > .hospitality-plan-modal-card {
    width: min(820px, calc(100vw - 28px));
  }

  .hospitality-plan-modal-card .hospitality-plan-grid {
    grid-template-columns: repeat(2, minmax(230px, 1fr));
  }
}

@media (max-width: 620px) {
  .hospitality-plan-modal-card .hospitality-plan-grid {
    grid-template-columns: 1fr;
  }
}
