/* HESTIA PMS V7.10 — Booking Voucher isolated runtime + deterministic export */
:root{
  --bvc-emerald:#0f372d;
  --bvc-emerald-2:#0b2b24;
  --bvc-gold:#c2a059;
  --bvc-gold-2:#e6c981;
  --bvc-paper:#faf8f2;
  --bvc-paper-2:#f1ede1;
  --bvc-schedule:#ece7db;
  --bvc-line:#e5e0d3;
  --bvc-line-strong:#dcd5c5;
  --bvc-text:#2d2a25;
  --bvc-muted:#6f6a60;
  --bvc-green:#15803d;
  --bvc-red:#dc2626;
}

/* Modal chrome only. Voucher itself is NOT scoped to the overlay so off-screen clones keep styles. */
#ov-booking-confirm .bc-modal{
  width:min(94vw,760px)!important;
  max-width:760px!important;
  max-height:min(94dvh,920px)!important;
  border-radius:18px!important;
  overflow:hidden!important;
  background:#f4f2ec!important;
  display:flex!important;
  flex-direction:column!important;
}
#ov-booking-confirm .bc-modal>.mh{
  flex:0 0 auto!important;
  min-height:52px!important;
  padding:8px 12px 8px 16px!important;
  background:#fffdfa!important;
  border-bottom:1px solid #e7e2d8!important;
}
#ov-booking-confirm .bc-modal>.mb{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  padding:16px!important;
  background:#e9ecea!important;
}
#ov-booking-confirm .bc-stage{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  display:flex!important;
  justify-content:center!important;
  align-items:flex-start!important;
}

/* ===== ISOLATED VOUCHER ===== */
.booking-voucher-container{
  box-sizing:border-box!important;
  width:420px!important;
  max-width:100%!important;
  margin:0 auto!important;
  overflow:hidden!important;
  border:1px solid rgba(15,55,45,.12)!important;
  border-radius:14px!important;
  background:var(--bvc-paper)!important;
  color:var(--bvc-text)!important;
  box-shadow:0 18px 44px rgba(20,35,31,.14)!important;
  font-family:'Be Vietnam Pro',Inter,system-ui,-apple-system,sans-serif!important;
  font-size:13px!important;
  line-height:1.45!important;
  -webkit-text-size-adjust:100%!important;
  text-size-adjust:100%!important;
  isolation:isolate!important;
}
.booking-voucher-container *,
.booking-voucher-container *::before,
.booking-voucher-container *::after{
  box-sizing:border-box!important;
  font-family:inherit!important;
}
.bvc-header{
  min-height:224px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  background:linear-gradient(155deg,var(--bvc-emerald),var(--bvc-emerald-2))!important;
  color:#fff!important;
  text-align:center!important;
  padding:22px 18px 22px!important;
  position:relative!important;
  overflow:hidden!important;
}
.bvc-header::after{
  content:""!important;
  position:absolute!important;
  left:0!important;right:0!important;bottom:0!important;
  height:3px!important;
  background:linear-gradient(90deg,transparent,var(--bvc-gold),var(--bvc-gold-2),var(--bvc-gold),transparent)!important;
}
.bvc-mark{width:48px!important;height:auto!important;margin:0 auto 7px!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:visible!important}
.bvc-mark-img{display:block!important;width:44px!important;max-width:100%!important;height:auto!important;object-fit:contain!important}
.bvc-brand{
  margin:0!important;color:#fff!important;font-family:Georgia,'Times New Roman',serif!important;
  font-size:29px!important;line-height:1!important;font-weight:700!important;letter-spacing:4px!important;
}
.bvc-tagline{margin:8px 0 0!important;color:#f0ddb2!important;font-size:9px!important;line-height:1.2!important;letter-spacing:2.4px!important;text-transform:uppercase!important}
.bvc-title{margin:18px 0 0!important;color:#fff!important;font-size:18px!important;line-height:1.25!important;font-weight:800!important;letter-spacing:.25px!important;text-transform:uppercase!important}
.bvc-subtitle{margin:4px 0 0!important;color:var(--bvc-gold-2)!important;font-size:11.5px!important;font-style:italic!important}

.bvc-body{background:var(--bvc-paper)!important;padding:16px 20px 18px!important}
.bvc-meta{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;gap:18px!important;padding-bottom:14px!important;border-bottom:1px solid var(--bvc-line)!important}
.bvc-meta__item{min-width:0!important;flex:1 1 0!important}
.bvc-meta__item:last-child{text-align:right!important}
.bvc-label{margin:0 0 4px!important;color:var(--bvc-muted)!important;font-size:8.5px!important;line-height:1.2!important;font-weight:700!important;letter-spacing:1.15px!important;text-transform:uppercase!important}
.bvc-meta__value{color:var(--bvc-emerald)!important;font-size:16px!important;line-height:1.2!important;font-weight:800!important;overflow-wrap:anywhere!important}

/* Customer block: explicit divider + phone aligned left/right */
.bvc-customer{padding:14px 0 12px!important;border-bottom:1px solid var(--bvc-line)!important;margin-bottom:12px!important}
.bvc-customer__name{color:var(--bvc-text)!important;font-size:14px!important;line-height:1.35!important;font-weight:800!important;overflow-wrap:anywhere!important}
.bvc-phone-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;margin-top:11px!important}
.bvc-phone-row .bvc-label{margin:0!important;flex:0 0 auto!important}
.bvc-phone-value{margin-left:auto!important;text-align:right!important;color:var(--bvc-text)!important;font-size:13px!important;line-height:1.25!important;font-weight:800!important;white-space:nowrap!important}

/* Room + guest square cards */
.room-guest-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:12px!important;margin:14px 0 16px!important}
.info-box{min-width:0!important;background:var(--bvc-paper-2)!important;border:1px solid rgba(15,55,45,.06)!important;border-radius:9px!important;padding:14px 12px!important;text-align:center!important}
.info-box .bvc-label{margin-bottom:6px!important}
.info-box__value{color:var(--bvc-emerald)!important;font-size:14px!important;line-height:1.3!important;font-weight:800!important;overflow-wrap:anywhere!important}

.bvc-schedule{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;align-items:center!important;gap:10px!important;margin:16px 0 14px!important;padding:12px 14px!important;border:1px solid var(--bvc-line-strong)!important;border-radius:10px!important;background:var(--bvc-schedule)!important}
.bvc-schedule__side{min-width:0!important}
.bvc-schedule__side:last-child{text-align:right!important}
.bvc-date{color:var(--bvc-emerald)!important;font-size:16px!important;line-height:1.15!important;font-weight:800!important;white-space:nowrap!important}
.bvc-date-meta{margin-top:4px!important;color:var(--bvc-muted)!important;font-size:8.5px!important;line-height:1.3!important;white-space:nowrap!important}
.bvc-schedule__mid{min-width:54px!important;text-align:center!important;color:var(--bvc-gold)!important}
.bvc-arrow{font-size:22px!important;line-height:1!important;font-weight:600!important}
.bvc-nights{margin-top:4px!important;color:var(--bvc-muted)!important;font-size:8px!important;line-height:1.2!important;font-weight:800!important;text-transform:uppercase!important;white-space:nowrap!important;letter-spacing:.6px!important}

.bvc-payment{margin-top:14px!important;border:1px solid var(--bvc-line-strong)!important;border-radius:9px!important;overflow:hidden!important;background:#fffdf8!important}
.bvc-payment__row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;min-height:42px!important;padding:10px 14px!important;border-bottom:1px solid var(--bvc-line-strong)!important;background:#fffdf8!important}
.bvc-payment__row:last-child{border-bottom:0!important}
.bvc-payment__label{color:#5e594f!important;font-size:11px!important;line-height:1.3!important;font-weight:700!important}
.bvc-payment__amount{color:var(--bvc-text)!important;font-size:13px!important;line-height:1.2!important;font-weight:800!important;white-space:nowrap!important;font-variant-numeric:tabular-nums!important}
.bvc-payment__row--deposit .bvc-payment__amount{color:var(--bvc-green)!important}
.bvc-payment__row--balance{background:#eee7d7!important}
.bvc-payment__row--balance .bvc-payment__label{color:var(--bvc-emerald)!important}
.bvc-payment__row--balance .bvc-payment__amount{color:var(--bvc-red)!important}
.bvc-payment__row--paid .bvc-payment__amount{color:var(--bvc-green)!important}
.bvc-payment__row--total{min-height:50px!important;background:var(--bvc-emerald)!important;border-bottom:0!important}
.bvc-payment__row--total .bvc-payment__label{color:#fff!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.45px!important}
.bvc-payment__row--total .bvc-payment__amount{color:var(--bvc-gold-2)!important;font-size:18px!important}

.bvc-note{margin-top:14px!important;padding:11px 12px!important;border:1px solid var(--bvc-line)!important;border-radius:9px!important;background:#fffdf8!important}
.bvc-note[hidden]{display:none!important}
.bvc-note__value{margin-top:4px!important;color:#4b463f!important;font-size:11px!important;line-height:1.5!important;font-style:italic!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important}

/* Footer is part of the same cream sheet; no boxed separator. */
.bvc-footer{padding:15px 20px 18px!important;border:0!important;background:var(--bvc-paper)!important;text-align:center!important}
.bvc-hotel-name{color:var(--bvc-emerald)!important;font-size:12.5px!important;font-weight:800!important}
.bvc-hotel-info{margin-top:3px!important;color:#555!important;font-size:8.8px!important;font-weight:400!important;line-height:1.5!important}
.bvc-thanks{margin:8px 0 0!important;color:var(--bvc-gold)!important;font-size:10.5px!important;font-style:italic!important}

/* Modal action bar */
#ov-booking-confirm .bc-modal>.mf{
  flex:0 0 auto!important;display:grid!important;grid-template-columns:.72fr 1.35fr 1fr!important;gap:8px!important;align-items:center!important;
  padding:10px 12px max(env(safe-area-inset-bottom),12px)!important;border-top:1px solid #ded9cf!important;background:#fffdfa!important;
}
#ov-booking-confirm .bc-toolbar-note{display:none!important}
#ov-booking-confirm .bc-modal>.mf>.btn{min-width:0!important;min-height:44px!important;margin:0!important;padding:0 8px!important;border-radius:11px!important;font-size:11px!important;line-height:1.15!important;font-weight:800!important;white-space:normal!important;text-align:center!important}
#ov-booking-confirm .bc-modal>.mf>#bc-pdf-btn{background:var(--bvc-emerald)!important;border-color:var(--bvc-emerald)!important;color:#fff!important}

/* iPhone/Safari runtime layout. Export uses bvc-export and ignores these reductions. */
@media (max-width:768px){
  #ov-booking-confirm{align-items:flex-end!important;padding:0!important}
  #ov-booking-confirm .bc-modal{width:100%!important;max-width:100%!important;max-height:96dvh!important;border-radius:22px 22px 0 0!important}
  #ov-booking-confirm .bc-modal>.mh{min-height:48px!important;padding-left:14px!important}
  #ov-booking-confirm .bc-modal>.mb{padding:10px 8px 12px!important;background:#e8ebe8!important}
  .booking-voucher-container:not(.bvc-export){width:min(420px,100%)!important;border-radius:12px!important;box-shadow:0 10px 24px rgba(20,35,31,.12)!important}
  .booking-voucher-container:not(.bvc-export) .bvc-header{min-height:194px!important;padding:18px 12px 18px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-mark{width:40px!important;height:auto!important;margin-bottom:5px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-mark-img{width:36px!important;height:auto!important}
  .booking-voucher-container:not(.bvc-export) .bvc-brand{font-size:24px!important;letter-spacing:3px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-tagline{font-size:8px!important;letter-spacing:1.9px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-title{font-size:15px!important;margin-top:13px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-subtitle{font-size:10px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-body{padding:13px 14px 15px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-label{font-size:7.4px!important;letter-spacing:.9px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-meta__value{font-size:13.5px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-customer__name{font-size:12px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-phone-value{font-size:11.5px!important}
  .booking-voucher-container:not(.bvc-export) .info-box{padding:11px 8px!important}
  .booking-voucher-container:not(.bvc-export) .info-box__value{font-size:12px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-schedule{gap:6px!important;margin:13px 0 12px!important;padding:10px 9px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-date{font-size:13px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-date-meta{font-size:7.4px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-schedule__mid{min-width:46px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-arrow{font-size:18px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-nights{font-size:7px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-payment__row{min-height:39px!important;padding:9px 11px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-payment__label{font-size:10px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-payment__amount{font-size:11.5px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-payment__row--total .bvc-payment__amount{font-size:15px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-note__value{font-size:10px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-hotel-info{font-size:7.8px!important}
  #ov-booking-confirm .bc-modal>.mf{grid-template-columns:.64fr 1.38fr .98fr!important;gap:6px!important;padding:8px 8px max(env(safe-area-inset-bottom),12px)!important}
  #ov-booking-confirm .bc-modal>.mf>.btn{min-height:42px!important;padding:0 5px!important;font-size:10px!important}
}
@media (max-width:360px){
  .booking-voucher-container:not(.bvc-export) .bvc-body{padding-left:10px!important;padding-right:10px!important}
  .booking-voucher-container:not(.bvc-export) .room-guest-grid{gap:8px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-date{font-size:11.5px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-date-meta{font-size:6.8px!important}
  .booking-voucher-container:not(.bvc-export) .bvc-schedule{padding-left:6px!important;padding-right:6px!important}
  #ov-booking-confirm .bc-modal>.mf>.btn{font-size:9.2px!important}
}

/* ===== EXPORT MODE ===== */
.bvc-export-host{
  position:fixed!important;
  top:0!important;
  left:-10000px!important;
  width:420px!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:none!important;
  z-index:-2147483648!important;
  background:transparent!important;
}
.booking-voucher-container.bvc-export{
  width:420px!important;
  max-width:420px!important;
  min-width:420px!important;
  height:auto!important;
  margin:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
  transform:none!important;
  zoom:1!important;
}
.booking-voucher-container.bvc-export .bvc-header{min-height:224px!important;padding:22px 18px!important}
.booking-voucher-container.bvc-export .bvc-mark{width:48px!important;height:auto!important;margin-bottom:7px!important}
.booking-voucher-container.bvc-export .bvc-mark-img{width:44px!important;height:auto!important}
.booking-voucher-container.bvc-export .bvc-brand{font-size:29px!important;letter-spacing:4px!important}
.booking-voucher-container.bvc-export .bvc-tagline{font-size:9px!important;letter-spacing:2.4px!important}
.booking-voucher-container.bvc-export .bvc-title{font-size:18px!important;margin-top:18px!important}
.booking-voucher-container.bvc-export .bvc-subtitle{font-size:11.5px!important}
.booking-voucher-container.bvc-export .bvc-body{padding:16px 20px 18px!important}
.booking-voucher-container.bvc-export .bvc-label{font-size:8.5px!important;letter-spacing:1.15px!important}
.booking-voucher-container.bvc-export .bvc-meta__value{font-size:16px!important}
.booking-voucher-container.bvc-export .bvc-customer__name{font-size:14px!important}
.booking-voucher-container.bvc-export .bvc-phone-value{font-size:13px!important}
.booking-voucher-container.bvc-export .room-guest-grid{grid-template-columns:1fr 1fr!important;gap:12px!important}
.booking-voucher-container.bvc-export .info-box{padding:14px 12px!important}
.booking-voucher-container.bvc-export .info-box__value{font-size:14px!important}
.booking-voucher-container.bvc-export .bvc-schedule{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;gap:10px!important;padding:12px 14px!important}
.booking-voucher-container.bvc-export .bvc-date{font-size:16px!important}
.booking-voucher-container.bvc-export .bvc-date-meta{font-size:8.5px!important}
.booking-voucher-container.bvc-export .bvc-schedule__mid{min-width:54px!important}
.booking-voucher-container.bvc-export .bvc-arrow{font-size:22px!important}
.booking-voucher-container.bvc-export .bvc-nights{font-size:8px!important}
.booking-voucher-container.bvc-export .bvc-payment__row{min-height:42px!important;padding:10px 14px!important}
.booking-voucher-container.bvc-export .bvc-payment__label{font-size:11px!important}
.booking-voucher-container.bvc-export .bvc-payment__amount{font-size:13px!important}
.booking-voucher-container.bvc-export .bvc-payment__row--total .bvc-payment__amount{font-size:18px!important}
.booking-voucher-container.bvc-export .bvc-note__value{font-size:11px!important}
.booking-voucher-container.bvc-export .bvc-hotel-info{font-size:8.8px!important}
