/* PointCompass v8.6.2.46 — closer Claude sample likeness pass.
   Keep this scoped to the booking confirmation modal only. */
.owner-rental-booking-summary-panel {
  width: min(1780px, calc(100vw - 36px));
  max-width: min(1780px, calc(100vw - 36px));
  background: #f3f7fa;
}
.owner-rental-booking-confirmation-header {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) auto;
  align-items: start;
  gap: 24px;
  padding: 24px 28px 16px;
}
.owner-rental-booking-confirmation-title {
  min-width: 0;
}
.owner-rental-booking-confirmation-title .mini-label,
.owner-rental-summary-hero-copy .mini-label,
.owner-rental-summary-section h3,
.booking-payment-financial-card span,
.booking-payment-financial-summary span,
.booking-payment-due-panel span,
.booking-payment-method-heading {
  letter-spacing: .18em;
}
.owner-rental-booking-confirmation-title h2 {
  margin: 4px 0 4px;
  max-width: none;
  font-size: clamp(2rem, 2.8vw, 2.75rem);
  line-height: .98;
  white-space: normal;
}
.owner-rental-booking-confirmation-title .section-copy {
  max-width: 840px;
  font-size: 1.02rem;
}
.owner-rental-booking-confirmation-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px;
  overflow: visible;
}
.owner-rental-booking-confirmation-actions .btn {
  min-height: 44px;
  border-radius: 12px;
  padding: 0 18px;
  white-space: nowrap;
  font-size: 1rem;
  letter-spacing: .02em;
}
.owner-rental-booking-confirmation-actions #ownerRentalBookingSummaryDownloadContractBtn,
.owner-rental-booking-confirmation-actions #ownerRentalBookingSummaryEmailTestBtn {
  display: none !important;
}
.owner-rental-booking-confirmation-actions #ownerRentalBookingSummaryEditBtn::before { content: "✎"; font-size: 1.05em; margin-right: 8px; }
.owner-rental-booking-confirmation-actions #ownerRentalBookingSummaryContractsBtn::before { content: "▣"; font-size: .92em; margin-right: 8px; }
.owner-rental-booking-confirmation-actions #ownerRentalBookingSummaryEmailContractBtn::before { content: "✉"; font-size: .96em; margin-right: 8px; }
.owner-rental-booking-confirmation-actions #ownerRentalBookingSummaryEmailStatusBtn::before { content: "⌄"; font-size: .95em; margin-right: 8px; }
.owner-rental-booking-confirmation-actions [data-owner-rental-booking-summary-close]::before { content: "×"; font-size: 1.15em; margin-right: 8px; }
.owner-rental-booking-confirmation-tabs {
  gap: 14px;
  padding: 18px 28px 16px;
}
.owner-rental-booking-confirmation-tabs button {
  padding: 11px 26px;
  font-size: 1rem;
}
.owner-rental-booking-summary-body {
  padding: 34px 34px 30px;
}
.owner-rental-summary-hero {
  grid-template-columns: 280px minmax(0, 1fr) minmax(350px, 440px);
  gap: 24px;
  padding: 28px 0 28px 28px;
  border-radius: 24px;
}
.owner-rental-summary-resort-image {
  width: 280px;
  height: 180px;
  align-self: center;
  border-radius: 15px;
}
.owner-rental-summary-hero-copy h3 {
  margin-top: 8px;
  margin-bottom: 10px;
  font-size: clamp(2rem, 2.4vw, 2.5rem);
  letter-spacing: -.035em;
}
.owner-rental-summary-hero-copy p {
  font-size: 1.1rem;
}
.owner-rental-summary-overdue-panel {
  margin: -28px 0 -28px 0;
  padding: 32px 36px;
}
.owner-rental-summary-overdue-title {
  font-size: 1.15rem;
}
.owner-rental-summary-overdue-main strong {
  font-size: 2.8rem;
  letter-spacing: .08em;
}
.owner-rental-summary-overdue-date {
  font-size: 1.05rem;
}
.owner-rental-summary-metrics {
  gap: 18px;
  margin: 22px 0;
}
.owner-rental-summary-metric {
  min-height: 92px;
  padding: 20px 24px;
  border: 1px solid rgba(13,73,116,.12);
  box-shadow: 0 8px 24px rgba(25,49,94,.055);
}
.owner-rental-summary-metric strong,
.booking-payment-financial-card strong,
.booking-payment-financial-summary strong {
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
.owner-rental-summary-metric strong {
  font-size: 1.28rem;
}
.owner-rental-summary-section {
  padding: 26px 28px;
  border: 1px solid rgba(13,73,116,.12);
  box-shadow: 0 12px 30px rgba(25,49,94,.06);
}
.owner-rental-summary-section-financials {
  padding: 30px 32px;
}
.booking-payment-financial-topline {
  gap: 20px;
}
.booking-payment-financial-topline > div {
  min-height: 118px;
  padding: 26px 30px;
  border-radius: 16px;
}
.booking-payment-financial-card strong {
  font-size: 2rem;
}
.booking-payment-financial-dues {
  gap: 22px;
}
.booking-payment-due-panel {
  min-height: 152px;
  padding: 30px 34px;
  border-radius: 18px;
}
.booking-payment-due-panel strong {
  font-size: 2.35rem;
}
.booking-payment-due-panel small {
  font-size: 1rem;
}
.booking-payment-status-stamp.is-paid,
.booking-payment-status-stamp.is-due,
.booking-payment-status-stamp.is-overdue {
  display: inline-grid;
  place-items: center;
  min-width: 104px;
  min-height: 44px;
  border: 2px solid currentColor;
  background: transparent;
  font-size: .82rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .18em;
}
.booking-payment-status-stamp.is-paid { color: #047857; background: #f0fdf4; }
.booking-payment-status-stamp.is-due { color: #92400e; background: #fffbeb; }
.booking-payment-status-stamp.is-overdue { color: #b91c1c; background: #fff5f5; }
.booking-payment-financial-status-band {
  min-height: 68px;
  padding: 16px 22px;
  border-radius: 16px;
}
.booking-payment-status-chip {
  min-height: 36px;
  padding: 8px 16px;
  font-size: 1rem;
}
.booking-payment-financial-summary {
  padding: 22px 26px;
  border-radius: 16px;
}
.booking-payment-financial-summary strong {
  font-size: 1.25rem;
}
.booking-payment-method-card {
  min-width: 190px;
  padding: 12px 18px;
}
.booking-payment-method-card-row {
  gap: 18px;
}
.owner-rental-summary-sections {
  gap: 24px;
}
.owner-rental-summary-activity-grid {
  gap: 26px;
  margin-top: 26px;
}
.owner-rental-summary-activity-grid .booking-payment-standalone-ledger,
.owner-rental-summary-activity-grid .owner-rental-summary-payment-ledger-section,
.owner-rental-summary-activity-grid .owner-rental-summary-email-section {
  grid-column: auto !important;
  margin-top: 0;
  min-width: 0;
  padding: 28px 32px;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(25,49,94,.06);
}
.booking-confirmation-preview-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.booking-confirmation-preview-card-head h3 {
  margin: 0;
  color: #19315e;
  font-size: 1.25rem;
  font-weight: 850;
  letter-spacing: 0;
  text-transform: none;
}
.booking-confirmation-view-all {
  border: 0;
  background: transparent;
  color: #0569a2;
  font-size: 1rem;
  font-weight: 850;
  cursor: pointer;
}
.booking-confirmation-preview-list {
  display: grid;
  gap: 0;
}
.booking-confirmation-preview-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 74px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(13,73,116,.08);
}
.booking-confirmation-preview-row:last-child {
  border-bottom: 0;
}
.booking-confirmation-preview-icon {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  border: 1px solid currentColor;
  font-size: .78rem;
  font-weight: 900;
}
.booking-confirmation-preview-row.is-success .booking-confirmation-preview-icon,
.booking-confirmation-preview-row.is-success .booking-confirmation-preview-right { color: #047857; }
.booking-confirmation-preview-row.is-danger .booking-confirmation-preview-icon,
.booking-confirmation-preview-row.is-danger .booking-confirmation-preview-right { color: #b91c1c; }
.booking-confirmation-preview-row.is-warning .booking-confirmation-preview-icon { color: #92400e; }
.booking-confirmation-preview-row.is-info .booking-confirmation-preview-icon { color: #0569a2; }
.booking-confirmation-preview-main strong {
  display: block;
  color: #19315e;
  font-size: 1.25rem;
  font-weight: 760;
  line-height: 1.15;
}
.booking-confirmation-preview-main small {
  display: block;
  margin-top: 6px;
  color: #6b819c;
  font-size: 1rem;
}
.booking-confirmation-preview-right {
  color: #6b819c;
  font-size: 1.05rem;
  font-weight: 850;
  white-space: nowrap;
}
.owner-rental-summary-audit-section {
  margin-top: 26px;
}
@media (max-width: 1280px) {
  .owner-rental-booking-confirmation-header {
    grid-template-columns: 1fr;
  }
  .owner-rental-booking-confirmation-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
  }
  .owner-rental-summary-hero {
    grid-template-columns: 220px minmax(0, 1fr) minmax(300px, 380px);
  }
  .owner-rental-summary-resort-image {
    width: 220px;
    height: 165px;
  }
}
@media (max-width: 980px) {
  .owner-rental-summary-hero {
    padding: 20px;
  }
  .owner-rental-summary-overdue-panel {
    margin: 0;
  }
}

/* v8.6.2.42 — booking confirmation fidelity fix: working section jumps, corrected section widths, compact email schedule. */
.owner-rental-booking-summary-body [id],
.owner-rental-booking-summary-body [data-booking-summary-section] {
  scroll-margin-top: 22px;
}
.owner-rental-booking-confirmation-tabs button {
  cursor: pointer;
}
.owner-rental-booking-confirmation-tabs button:focus-visible,
.booking-confirmation-view-all:focus-visible,
.booking-email-expand-row .btn:focus-visible {
  outline: 3px solid rgba(19, 136, 200, .32);
  outline-offset: 3px;
}
.owner-rental-summary-section[data-booking-summary-section="terms"] {
  grid-column: 1 / -1;
  max-width: none;
}
.owner-rental-summary-section[data-booking-summary-section="terms"] dl {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 0;
}
.owner-rental-summary-section[data-booking-summary-section="terms"] dl > div {
  display: contents;
}
.owner-rental-summary-section[data-booking-summary-section="terms"] dt,
.owner-rental-summary-section[data-booking-summary-section="terms"] dd {
  padding: 16px 0;
  border-bottom: 1px solid rgba(13,73,116,.08);
}
.owner-rental-summary-section[data-booking-summary-section="terms"] dd {
  max-width: 920px;
}
.owner-rental-traveller-panel dl {
  grid-template-columns: minmax(210px, .8fr) minmax(0, 1fr);
  align-items: start;
}
.owner-rental-traveller-contact-phone {
  grid-column: 1;
  grid-row: 1;
}
.owner-rental-traveller-contact-email {
  grid-column: 1;
  grid-row: 2;
}
.owner-rental-traveller-contact-address {
  grid-column: 2;
  grid-row: 1 / span 2;
}
.owner-rental-traveller-contact-email dd,
.owner-rental-traveller-contact-phone dd {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.owner-rental-summary-email-section,
.owner-rental-summary-payment-ledger-section,
.owner-rental-summary-audit-section {
  overflow: hidden;
}
.owner-rental-summary-email-section .section-head,
.owner-rental-summary-email-section .support-copy {
  max-width: 100%;
}
.owner-rental-summary-email-section .booking-email-scheduler-status {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.booking-email-schedule-shell {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border-radius: 18px;
}
.booking-email-readable-table-compact {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
.booking-email-readable-table-compact th,
.booking-email-readable-table-compact td {
  padding: 16px 18px;
  vertical-align: top;
  white-space: normal;
  overflow-wrap: anywhere;
}
.booking-email-readable-table-compact th:nth-child(1),
.booking-email-readable-table-compact td:nth-child(1) { width: 150px; }
.booking-email-readable-table-compact th:nth-child(2),
.booking-email-readable-table-compact td:nth-child(2) { width: 28%; }
.booking-email-readable-table-compact th:nth-child(3),
.booking-email-readable-table-compact td:nth-child(3) { width: 24%; }
.booking-email-readable-table-compact th:nth-child(4),
.booking-email-readable-table-compact td:nth-child(4) { width: auto; }
.booking-email-readable-table-compact th:nth-child(5),
.booking-email-readable-table-compact td:nth-child(5) { width: 120px; text-align: center; }
.booking-email-timing-line {
  display: block;
  margin: 0 0 4px;
  color: #19315e;
  line-height: 1.25;
}
.booking-email-timing-line b {
  color: #6b819c;
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.booking-email-expand-row {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}
.booking-email-expand-row .btn {
  min-height: 38px;
  border-radius: 999px;
  padding: 0 18px;
}
@media (max-width: 760px) {
  .owner-rental-summary-section[data-booking-summary-section="terms"] dl {
    grid-template-columns: 1fr;
  }
  .owner-rental-summary-section[data-booking-summary-section="terms"] dl > div {
    display: block;
  }
  .owner-rental-summary-section[data-booking-summary-section="terms"] dt,
  .owner-rental-summary-section[data-booking-summary-section="terms"] dd {
    padding: 8px 0;
  }
  .owner-rental-traveller-panel dl {
    grid-template-columns: 1fr;
  }
  .owner-rental-traveller-contact-phone,
  .owner-rental-traveller-contact-email,
  .owner-rental-traveller-contact-address {
    grid-column: auto;
    grid-row: auto;
  }
}

/* v8.6.2.42 — booking confirmation polish: remove More action, stack expanded panels, add collapse affordance. */
.owner-rental-booking-confirmation-actions #ownerRentalBookingSummaryEmailStatusBtn {
  display: none !important;
}
.owner-rental-summary-activity-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 26px;
}
.owner-rental-summary-activity-grid .booking-payment-standalone-ledger,
.owner-rental-summary-activity-grid .owner-rental-summary-payment-ledger-section,
.owner-rental-summary-activity-grid .owner-rental-summary-email-section {
  grid-column: 1 / -1 !important;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.booking-payment-standalone-ledger-head,
.booking-confirmation-expanded-head,
.booking-confirmation-expanded-actions {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.booking-payment-standalone-ledger-head > div:first-child,
.booking-confirmation-expanded-head > div:first-child {
  min-width: 0;
}
.booking-confirmation-expanded-actions {
  flex: 0 0 auto;
  align-items: center;
}
.booking-confirmation-expanded-actions .btn,
.booking-confirmation-expanded-head .btn {
  min-height: 36px;
  border-radius: 999px;
  padding: 0 16px;
  font-size: .86rem;
  font-weight: 850;
  white-space: nowrap;
}
.owner-rental-summary-payment-ledger-section .rental-table-shell,
.owner-rental-summary-email-section .rental-table-shell,
.booking-payment-ledger-table-shell,
.booking-email-schedule-shell {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}
.booking-payment-ledger-table,
.booking-email-readable-table-compact {
  width: 100%;
}
.booking-payment-ledger-table {
  min-width: 1100px;
}
.booking-email-readable-table-compact {
  min-width: 980px;
}
.booking-email-readable-table-compact th,
.booking-email-readable-table-compact td,
.booking-payment-ledger-table th,
.booking-payment-ledger-table td {
  line-height: 1.35;
}
.booking-email-readable-table-compact th:nth-child(1),
.booking-email-readable-table-compact td:nth-child(1) { width: 145px; }
.booking-email-readable-table-compact th:nth-child(2),
.booking-email-readable-table-compact td:nth-child(2) { width: 34%; }
.booking-email-readable-table-compact th:nth-child(3),
.booking-email-readable-table-compact td:nth-child(3) { width: 26%; }
.booking-email-readable-table-compact th:nth-child(4),
.booking-email-readable-table-compact td:nth-child(4) { width: 28%; }
.booking-email-readable-table-compact th:nth-child(5),
.booking-email-readable-table-compact td:nth-child(5) { width: 120px; }
@media (max-width: 760px) {
  .booking-payment-standalone-ledger-head,
  .booking-confirmation-expanded-head,
  .booking-confirmation-expanded-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .booking-confirmation-expanded-actions {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

/* v8.6.2.46 — sticky booking confirmation header/navigation while scrolling. */
.owner-rental-booking-confirmation-sticky {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(255, 255, 255, .96);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(13, 73, 116, .12);
  box-shadow: 0 14px 28px rgba(25, 49, 94, .08);
}
.owner-rental-booking-confirmation-sticky .owner-rental-booking-confirmation-header,
.owner-rental-booking-confirmation-sticky .owner-rental-booking-confirmation-tabs {
  background: transparent;
}
.owner-rental-booking-summary-body [id],
.owner-rental-booking-summary-body [data-booking-summary-section] {
  scroll-margin-top: 210px;
}
@media (max-width: 1280px) {
  .owner-rental-booking-summary-body [id],
  .owner-rental-booking-summary-body [data-booking-summary-section] {
    scroll-margin-top: 250px;
  }
}
@media (max-width: 760px) {
  .owner-rental-booking-confirmation-sticky {
    max-height: 58vh;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .owner-rental-booking-summary-body [id],
  .owner-rental-booking-summary-body [data-booking-summary-section] {
    scroll-margin-top: 280px;
  }
}
/* v8.6.2.46 — only the section menu sticks; header scrolls normally; payment popup sits above summary. */
.owner-rental-booking-confirmation-header{position:relative;z-index:1;background:#fff}.owner-rental-booking-confirmation-sticky{position:static;top:auto;z-index:auto;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:0;box-shadow:none}.owner-rental-booking-confirmation-tabs{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid rgba(13,73,116,.08);border-bottom:1px solid rgba(13,73,116,.12);box-shadow:0 12px 24px rgba(25,49,94,.08)}.owner-rental-booking-summary-body [id],.owner-rental-booking-summary-body [data-booking-summary-section]{scroll-margin-top:92px}.owner-rental-booking-back-top{position:sticky;top:calc(100% - 78px);float:right;z-index:70;width:48px;height:48px;margin:0 28px -48px 0;border:1px solid rgba(162,212,238,.82);border-radius:999px;background:rgba(255,255,255,.96);color:#0569A2;font-size:1.45rem;font-weight:900;line-height:1;box-shadow:0 16px 36px rgba(13,73,116,.18);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .18s ease,transform .18s ease,background .18s ease}.owner-rental-booking-back-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.owner-rental-booking-back-top:hover,.owner-rental-booking-back-top:focus-visible{background:#f3f9fd;outline:3px solid rgba(19,136,200,.26);outline-offset:3px}.owner-payment-ledger-modal{z-index:12600}@media (max-width:760px){.owner-rental-booking-confirmation-tabs{top:0;overflow-x:auto}.owner-rental-booking-summary-body [id],.owner-rental-booking-summary-body [data-booking-summary-section]{scroll-margin-top:104px}.owner-rental-booking-back-top{margin-right:16px}}

/* PointCompass v8.6.2.47 — outstanding balance takes priority over original instalment. */
.booking-payment-balance-panel strong{color:#b91c1c}.booking-payment-balance-panel.is-paid strong{color:#047857}.booking-payment-balance-panel .booking-payment-financial-cta-row{min-width:260px}.booking-payment-balance-panel .booking-payment-cta{min-height:42px;padding-inline:18px;font-size:.95rem}

/* PointCompass v8.6.2.50 — CTA colour polish and live hero-payment refresh shell. */
.owner-rental-summary-hero-payment-shell{display:contents}.booking-payment-cta.is-primary{border-color:#a7f3d0!important;background:#ecfdf5!important;color:#166534!important;box-shadow:0 12px 26px rgba(4,120,87,.12)!important}.booking-payment-cta.is-primary:hover,.booking-payment-cta.is-primary:focus-visible{background:#d1fae5!important;border-color:#6ee7b7!important;color:#065f46!important}.booking-payment-cta.is-secondary{border-color:#fed7aa!important;background:#fff7ed!important;color:#9a3412!important;box-shadow:0 12px 26px rgba(194,65,12,.10)!important}.booking-payment-cta.is-secondary:hover,.booking-payment-cta.is-secondary:focus-visible{background:#ffedd5!important;border-color:#fdba74!important;color:#7c2d12!important}.booking-payment-cta:focus-visible{outline:3px solid rgba(19,136,200,.24);outline-offset:3px}.booking-payment-cta-feedback{margin-top:10px;font-size:.86rem;font-weight:760;color:#0d4974}
