.page-hero{padding:145px 0 70px;background:linear-gradient(135deg,#06192f,#124b82);color:#fff}.section-sm{padding:55px 0}.pro-card{background:#fff;border-radius:28px;padding:30px;box-shadow:0 18px 60px rgba(7,29,54,.12)}.detail-img{width:100%;height:430px;object-fit:cover;border-radius:30px}.form-control,.form-select{border-radius:14px;padding:12px 14px}.price{color:#d8a03b;font-weight:900}@media(max-width:768px){.page-hero{padding:120px 0 45px}.detail-img{height:260px}.pro-card{padding:22px}}

.booking-room-list{display:grid;gap:12px}.booking-room-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #e6edf5;border-radius:18px;padding:14px;background:#fff}.section-sm{padding:55px 0}.page-hero{padding:130px 0 60px;background:linear-gradient(135deg,#071d36,#0e3a66);color:#fff}
@media(max-width:600px){.booking-room-row{align-items:flex-start}.booking-room-row>div:first-child{flex:1}}

/* Professional Booking Engine */
.booking-engine-hero{padding-bottom:58px}.booking-engine-page .pro-card{border:1px solid #eef2f7}.engine-search{margin-top:-28px;position:relative;z-index:4}.engine-room-grid{display:grid;grid-template-columns:1fr;gap:18px}.engine-room-card{display:grid;grid-template-columns:220px 1fr;border:1px solid #e7edf5;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 12px 38px rgba(7,29,54,.07)}.engine-room-card img{width:100%;height:100%;min-height:205px;object-fit:cover}.engine-room-body{padding:20px}.engine-kind{display:inline-block;background:#fff8ed;color:#0e3a66;border:1px solid #f1d59a;border-radius:999px;padding:4px 10px;font-weight:800;font-size:12px;margin-bottom:8px}.engine-room-body h5{font-weight:900;color:#071d36;margin:0 0 6px}.engine-price{font-weight:900;color:#d8a03b;text-align:right;font-size:20px;white-space:nowrap}.engine-price small{display:block;color:#607086;font-size:12px;font-weight:700}.engine-desc{color:#65758b;min-height:44px;margin:10px 0 16px}.engine-room-footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.availability{font-weight:900;color:#0d8a55}.availability.soldout{color:#b42318}.qty-control{display:flex;align-items:center;background:#f5f8fc;border:1px solid #e0e8f2;border-radius:999px;padding:5px}.qty-control input{width:64px;border:0;background:transparent;text-align:center;font-weight:900;padding:8px}.qty-btn{width:38px;height:38px;border:0;border-radius:999px;background:#fff;color:#071d36;font-size:24px;line-height:1;font-weight:900;box-shadow:0 2px 8px rgba(7,29,54,.1)}.qty-btn:disabled{opacity:.35}.sticky-summary{position:sticky;top:105px}.selected-rooms{display:grid;gap:12px;min-height:44px}.selected-row{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e8eef6;border-radius:16px;background:#f8fbff}.selected-row small{display:block;color:#73849a;margin-top:3px}.summary-line{display:flex;justify-content:space-between;align-items:center;margin:10px 0;color:#5f6f84}.summary-line.total{font-size:22px;color:#071d36}.policy-mini{font-size:14px;color:#607086}.policy-mini p{margin-bottom:6px}@media(max-width:992px){.sticky-summary{position:static}.engine-room-card{grid-template-columns:1fr}.engine-room-card img{height:220px}.engine-room-footer{align-items:flex-start;flex-direction:column}.qty-control{width:100%;justify-content:space-between}.qty-control input{flex:1}.engine-price{text-align:left}}

/* Booking engine date/adult/child search */
.engine-search .form-control{height:54px}.engine-search .btn{height:54px;display:flex;align-items:center;justify-content:center}


/* VIP booking success page */
.booking-success-hero{padding:135px 0 70px;background:linear-gradient(135deg,#06192f,#124b82);color:#fff}.success-pill{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:8px 14px;font-weight:900;margin-bottom:14px}.booking-success-hero h1{font-weight:950;font-size:clamp(34px,5vw,58px);letter-spacing:-1px}.booking-success-hero p{font-size:18px;opacity:.9;max-width:720px}.booking-success-page{background:linear-gradient(180deg,#f7f9fc,#fff)}.success-shell{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:26px;align-items:start}.success-main-card,.success-payment-card{background:#fff;border:1px solid #e9eff7;border-radius:30px;padding:28px;box-shadow:0 22px 70px rgba(7,29,54,.10)}.success-payment-card{position:sticky;top:105px}.success-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:22px}.muted-label{text-transform:uppercase;color:#718198;font-size:12px;font-weight:900;letter-spacing:.06em}.success-head h2{color:#0d8a55;font-weight:950;margin:0;font-size:32px}.success-status{background:#fff4d8;color:#8a5a00;border-radius:999px;padding:8px 14px;font-weight:900}.success-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}.info-tile{border:1px solid #e7eef7;border-radius:20px;background:#f8fbff;padding:16px}.info-tile span{display:block;color:#65758b;font-weight:800;font-size:13px;margin-bottom:5px}.info-tile b{font-size:18px;color:#071d36}.section-mini-title{font-weight:950;color:#071d36;margin:8px 0 14px}.success-items{display:grid;gap:10px}.success-item-row{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid #e5edf6;border-radius:18px;padding:14px 16px;background:#fff}.success-item-row small{display:block;color:#73849a;margin-top:4px}.success-payment-card h4{font-weight:950;margin-bottom:18px}.pay-line{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px dashed #dbe5f0;color:#5d6d82}.pay-line b{color:#071d36}.pay-line.total{font-size:20px;color:#071d36;font-weight:900;border-top:2px solid #edf2f8;margin-top:6px}.pay-line.remaining b{color:#e11d48;font-size:22px}@media(max-width:992px){.success-shell{grid-template-columns:1fr}.success-payment-card{position:static}.success-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.success-grid{grid-template-columns:1fr}.success-main-card,.success-payment-card{padding:20px;border-radius:24px}.success-head{flex-direction:column}.success-head h2{font-size:25px}.success-item-row{align-items:flex-start;flex-direction:column}.booking-success-hero{padding:115px 0 45px}}


/* Room detail VIP upgrade */
.room-detail-hero{padding-top:120px;padding-bottom:70px}
.room-photo-card{border-radius:30px;overflow:hidden;box-shadow:0 25px 70px rgba(7,29,54,.16);background:#06192f}
.room-photo-card .detail-img{width:100%;height:440px;object-fit:cover;display:block}
.room-info-card h2{font-weight:900;color:#071d36}
.room-longtext{font-size:1.05rem;line-height:1.75;color:#4a5d75;border-top:1px solid #e6edf5;margin-top:18px;padding-top:18px}
.room-spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.room-spec{background:#f5f8fc;border:1px solid #e3edf8;border-radius:20px;padding:16px;min-height:110px}
.room-spec span{font-size:24px;display:block;margin-bottom:8px}
.room-spec small{display:block;color:#667892;font-weight:700;margin-bottom:4px}
.room-spec b{color:#071d36;font-size:1.02rem}
.room-price-mini{background:linear-gradient(135deg,#d8a03b,#ffe09a);color:#071d36;border-radius:999px;padding:10px 16px;font-weight:900;white-space:nowrap}
.amenity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.amenity-item{border:1px solid #e3edf8;background:#f8fbff;border-radius:18px;padding:13px 14px;font-weight:700;color:#1b2f48;display:flex;align-items:center;gap:10px}
.amenity-item span{background:#0f8b4c;color:#fff;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px}
.booking-side-card{box-shadow:0 30px 90px rgba(7,29,54,.14)}
.amenity-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.amenity-check{display:flex;gap:8px;align-items:center;border:1px solid #dfe8f3;border-radius:14px;padding:10px 12px;background:#fff;cursor:pointer;font-weight:700}
.amenity-check input{width:18px;height:18px}
@media(max-width:992px){.room-spec-grid,.amenity-grid,.amenity-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-photo-card .detail-img{height:330px}}
@media(max-width:576px){.room-spec-grid,.amenity-grid,.amenity-admin-grid{grid-template-columns:1fr}.room-photo-card .detail-img{height:260px}}


/* Agoda-style compact amenities */
.room-detail-page .amenity-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px 12px;
}
.room-detail-page .amenity-item{
  border:0;
  background:transparent;
  border-radius:12px;
  padding:7px 4px;
  font-weight:700;
  color:#0b1b31;
  display:flex;
  align-items:center;
  gap:9px;
  min-height:34px;
  box-shadow:none;
}
.room-detail-page .amenity-item span{
  background:#0f9f63;
  color:#fff;
  width:18px;
  height:18px;
  min-width:18px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  line-height:1;
}
.room-detail-page .pro-card h3{
  margin-bottom:14px!important;
}
.datepicker{background:#fff!important;cursor:pointer}
@media(max-width:992px){
  .room-detail-page .amenity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:576px){
  .room-detail-page .amenity-grid{grid-template-columns:1fr}
}


/* Payment Pro UI */
.payment-pro-card{
  border:1px solid rgba(13,43,74,.10);
  border-radius:28px;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
  box-shadow:0 24px 70px rgba(13,43,74,.10);
  overflow:hidden;
}
.payment-pro-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 20px;border-bottom:1px solid rgba(13,43,74,.08);
}
.payment-pro-title{display:flex;align-items:center;gap:12px;font-weight:900;color:#08213d;margin:0}
.payment-pro-icon{width:44px;height:44px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;background:#fff2c7;color:#08213d;box-shadow:0 10px 30px rgba(225,170,55,.16)}
.payment-pro-body{padding:20px}
.payment-method-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width: 992px){.payment-method-grid{grid-template-columns:1fr 1fr}}
.method-card{
  border:1px solid rgba(13,43,74,.10);border-radius:24px;background:#fff;
  padding:18px;min-height:100%;box-shadow:0 16px 38px rgba(13,43,74,.08)
}
.method-card h5{font-weight:900;color:#08213d;margin-bottom:6px}
.method-card .sub{color:#63748a;font-size:14px;margin-bottom:14px}
.bank-pro-layout{display:grid;grid-template-columns:170px 1fr;gap:16px;align-items:center}
@media (max-width: 575px){.bank-pro-layout{grid-template-columns:1fr}.bank-pro-layout .bank-qr-img{margin:auto}}
.bank-qr-img{max-width:170px;width:100%;border-radius:20px;border:1px solid rgba(13,43,74,.10);padding:10px;background:#fff}
.bank-info-small{display:grid;gap:8px}
.bank-info-small div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed rgba(13,43,74,.14);padding-bottom:7px}
.bank-info-small span{color:#63748a;font-size:13px}
.bank-info-small b{text-align:right;color:#08213d}
.pay-actions{display:grid;gap:10px;margin-top:14px}
.pay-actions .btn{font-weight:900}
.btn-9pay{background:linear-gradient(135deg,#176BFF,#0B4ED9);color:#fff!important;border:0}
.btn-9pay:hover{filter:brightness(.98);transform:translateY(-1px)}
.pay-summary-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
@media(max-width:575px){.pay-summary-mini{grid-template-columns:1fr}}
.pay-summary-mini .mini{background:#f3f7fb;border:1px solid rgba(13,43,74,.08);border-radius:18px;padding:12px}
.pay-summary-mini span{display:block;color:#63748a;font-size:13px}
.pay-summary-mini b{display:block;color:#08213d;font-size:18px;margin-top:2px}
.payment-safe-note{font-size:13px;color:#63748a;margin-top:10px}


/* Payment layout fixed - The Bok */
.success-payment-card{overflow:visible!important;}
.success-payment-card .payment-pro-card{
  margin-top:20px;
  border-radius:26px;
  overflow:visible!important;
}
.success-payment-card .payment-pro-head{
  padding:16px;
  flex-wrap:wrap;
}
.success-payment-card .payment-pro-title{
  font-size:22px;
  line-height:1.15;
}
.success-payment-card .payment-pro-body{padding:16px;}
.success-payment-card .payment-method-grid{
  grid-template-columns:1fr!important;
  gap:14px;
}
.success-payment-card .method-card{
  padding:16px;
  border-radius:22px;
  box-shadow:0 12px 32px rgba(13,43,74,.07);
}
.success-payment-card .method-card h5{
  font-size:18px;
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:6px;
}
.success-payment-card .bank-pro-layout{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:14px;
}
.success-payment-card .bank-qr-img{
  max-width:230px!important;
  width:100%!important;
  margin:0 auto;
  display:block;
}
.success-payment-card .bank-info-small{
  width:100%;
  gap:0;
}
.success-payment-card .bank-info-small div{
  display:grid!important;
  grid-template-columns:95px minmax(0,1fr)!important;
  gap:10px;
  align-items:start;
  padding:9px 0;
}
.success-payment-card .bank-info-small span{
  font-size:12px;
  color:#718198;
}
.success-payment-card .bank-info-small b{
  text-align:left!important;
  font-size:13px;
  line-height:1.35;
  word-break:break-word;
  overflow-wrap:anywhere;
}
.success-payment-card .pay-actions .btn{
  white-space:normal;
  line-height:1.25;
  padding:11px 14px;
}
.success-payment-card .pay-summary-mini{
  grid-template-columns:1fr!important;
}
.success-payment-card .payment-safe-note{
  line-height:1.35;
}
.btn-9pay{
  background:linear-gradient(135deg,#176BFF,#0B4ED9)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 12px 26px rgba(23,107,255,.18);
}
@media(min-width:1100px){
  .success-shell{grid-template-columns:minmax(0,1fr) 430px!important;}
}
@media(max-width:992px){
  .payment-method-grid{grid-template-columns:1fr!important;}
  .bank-pro-layout{grid-template-columns:1fr!important;}
}


/* Compact selectable payment UI - The Bok */
.payment-compact-card{
  border:1px solid rgba(13,43,74,.10);
  border-radius:24px;
  background:#fff;
  box-shadow:0 18px 50px rgba(13,43,74,.08);
  overflow:hidden;
}
.payment-compact-head{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:16px;
  border-bottom:1px solid rgba(13,43,74,.08);
  background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);
}
.payment-compact-head h4{
  margin:0;
  color:#08213d;
  font-size:20px;
  font-weight:900;
  line-height:1.15;
}
.payment-compact-head p{
  margin:6px 0 0;
  color:#66778d;
  font-size:13px;
  line-height:1.35;
}
.payment-eyebrow{
  color:#d89b24;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:11px;
  font-weight:900;
  margin-bottom:4px;
}
.payment-amount-pill{
  flex:0 0 auto;
  min-width:116px;
  align-self:flex-start;
  border-radius:18px;
  padding:10px 12px;
  background:#fff2c7;
  color:#08213d;
  text-align:right;
  box-shadow:inset 0 0 0 1px rgba(225,170,55,.18);
}
.payment-amount-pill span{
  display:block;
  font-size:11px;
  color:#7a6a38;
  font-weight:800;
}
.payment-amount-pill b{
  display:block;
  font-size:17px;
  font-weight:950;
}
.payment-choice-list{
  display:grid;
  gap:10px;
  padding:14px;
}
.payment-choice{
  width:100%;
  border:1px solid rgba(13,43,74,.12);
  border-radius:18px;
  background:#fff;
  padding:12px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 24px;
  align-items:center;
  gap:10px;
  text-align:left;
  transition:.18s ease;
}
.payment-choice:hover,
.payment-choice.active{
  border-color:#e6b64b;
  background:#fffaf0;
  box-shadow:0 10px 28px rgba(225,170,55,.13);
}
.payment-choice .choice-icon{
  width:42px;
  height:42px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f2f6fb;
  font-size:20px;
}
.payment-choice.active .choice-icon{
  background:#ffeab0;
}
.payment-choice .choice-text b{
  display:block;
  color:#08213d;
  font-weight:900;
  font-size:15px;
}
.payment-choice .choice-text small{
  display:block;
  margin-top:2px;
  color:#69798f;
  font-size:12px;
  line-height:1.3;
}
.payment-choice .choice-arrow{
  color:#8996a8;
  font-weight:900;
  transition:.18s ease;
}
.payment-choice.active .choice-arrow{
  transform:rotate(180deg);
  color:#d89b24;
}
.payment-select-hint{
  margin:0 14px 14px;
  padding:10px 12px;
  border-radius:14px;
  background:#f4f8fc;
  color:#66778d;
  font-size:13px;
  text-align:center;
}
.payment-panel{
  display:none;
  padding:0 14px 16px;
}
.payment-panel.active{
  display:block;
}
.bank-compact-layout{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:14px;
  border-radius:20px;
  background:#f8fbff;
  border:1px solid rgba(13,43,74,.08);
}
.bank-qr-box{
  text-align:center;
}
.bank-qr-box img{
  width:150px;
  max-width:100%;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(13,43,74,.10);
  padding:8px;
}
.bank-qr-box span{
  display:block;
  margin-top:6px;
  color:#69798f;
  font-size:12px;
  font-weight:800;
}
.bank-detail-box{
  min-width:0;
}
.bank-row{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:8px;
  padding:7px 0;
  border-bottom:1px dashed rgba(13,43,74,.14);
}
.bank-row span{
  color:#718198;
  font-size:12px;
  font-weight:800;
}
.bank-row b{
  color:#08213d;
  font-size:13px;
  line-height:1.3;
  word-break:break-word;
  overflow-wrap:anywhere;
}
.bank-row.highlight b{
  color:#0b7a46;
  font-weight:950;
}
.hotel-pay-box{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:14px;
  padding:16px;
  border-radius:20px;
  background:#fffaf0;
  border:1px solid rgba(225,170,55,.22);
}
.hotel-icon{
  width:54px;
  height:54px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#ffeab0;
  font-size:26px;
}
.hotel-pay-box h5{
  margin:0 0 4px;
  color:#08213d;
  font-weight:950;
}
.hotel-pay-box p{
  margin:0 0 12px;
  color:#66778d;
  font-size:13px;
  line-height:1.4;
}
.hotel-mini-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-bottom:10px;
}
.hotel-mini-grid div{
  border-radius:14px;
  background:#fff;
  padding:9px;
  border:1px solid rgba(13,43,74,.08);
}
.hotel-mini-grid span{
  display:block;
  color:#718198;
  font-size:11px;
  font-weight:800;
}
.hotel-mini-grid b{
  display:block;
  color:#08213d;
  font-size:13px;
  font-weight:950;
  margin-top:2px;
}
.hotel-pay-box small{
  color:#8a6f2d;
  font-weight:700;
  line-height:1.35;
}
@media(max-width:575px){
  .payment-compact-head{display:block}
  .payment-amount-pill{margin-top:12px;text-align:left}
  .bank-compact-layout{grid-template-columns:1fr}
  .hotel-pay-box{grid-template-columns:1fr}
  .hotel-mini-grid{grid-template-columns:1fr}
  .bank-row{grid-template-columns:86px minmax(0,1fr)}
}

/* Booking payment moved below room list */
.booking-success-page .success-main-card .payment-compact-card{margin-top:28px;border:1px solid #dbe7f5;box-shadow:0 18px 45px rgba(11,35,66,.08)}
.booking-success-page .success-payment-card{height:max-content;position:sticky;top:96px}
@media(max-width:991px){.booking-success-page .success-payment-card{position:static}.booking-success-page .success-shell{display:block}.booking-success-page .success-payment-card{margin-top:22px}}

/* Admin action buttons */
.admin-action-pill-group{display:flex;gap:8px;flex-wrap:wrap;align-items:center;grid-column:1/-1}.admin-action-pill-group .btn{font-weight:800;min-width:86px}.vip-booking-actions{align-items:center}.vip-booking-actions .form-control,.vip-booking-actions .form-select{min-height:48px;border-radius:16px}.cancel-request-box{background:#fff6e4!important;border:1px solid #f4ca74!important;color:#2b2209}.cancel-request-box small{color:#b77900!important}.booking-detail-main .cancel-request-box .form-control{border-radius:999px;min-height:46px}
@media(max-width:768px){.admin-action-pill-group .btn{flex:1 1 calc(50% - 8px)}.vip-booking-actions{display:block}.vip-booking-actions>*{margin-bottom:8px;width:100%}.vip-booking-actions .admin-action-pill-group{display:grid;grid-template-columns:1fr 1fr}.vip-booking-actions .admin-action-pill-group .btn{width:100%;min-width:0}}

/* Customer confirm + compact admin actions */
.booking-confirm-action .btn{box-shadow:0 12px 26px rgba(222,168,61,.22)}
.admin-action-pill-group{display:flex!important;gap:8px!important;flex-wrap:wrap!important;align-items:center!important;justify-content:flex-start!important;grid-column:1/-1!important}
.admin-action-pill-group .btn{min-width:92px!important;padding:.72rem 1rem!important}
@media(min-width:992px){.vip-booking-actions{grid-template-columns:1fr 1fr 1fr 1fr 1.2fr 1.2fr!important}.vip-booking-actions .admin-action-pill-group{grid-column:1/-1!important}.vip-booking-actions .admin-action-pill-group .btn{flex:0 0 auto!important}}

/* Trip/eBooking-like customer booking flow */
.trip-booking-steps{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:-18px 0 24px;background:#fff;border:1px solid #e6edf5;border-radius:999px;padding:10px 14px;box-shadow:0 14px 40px rgba(7,29,54,.08);width:max-content;max-width:100%}
.trip-booking-steps span{display:flex;align-items:center;gap:8px;color:#64748b;font-weight:900;font-size:14px}
.trip-booking-steps i{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#eaf1f9;color:#0b4a88;font-style:normal;font-weight:950}
.trip-booking-steps .active{color:#071d36}.trip-booking-steps .active i{background:#0d6efd;color:#fff}.trip-booking-steps .done i{background:#0f9f63;color:#fff}
.trip-saving-note{background:#e9fbff;border:1px solid #c4edf8;border-radius:14px;padding:14px 18px;margin-bottom:18px;font-weight:800;color:#07536b}
.engine-search.pro-card{border-radius:18px;padding:22px 24px}.engine-search h4{font-size:18px}
.engine-room-grid{gap:14px}.engine-room-card{grid-template-columns:260px minmax(0,1fr);border-radius:14px;box-shadow:none;border:1px solid #dfe7f1}.engine-room-card:hover{box-shadow:0 12px 34px rgba(7,29,54,.10);border-color:#c9d8ea}.engine-room-card img{min-height:210px}.engine-room-body{padding:18px 18px 16px}.engine-kind{background:#e9fbff;border:0;color:#08708c}.engine-room-body h5{font-size:21px}.engine-desc{min-height:0;margin:8px 0 12px}.trip-room-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;border-top:1px solid #edf2f7;padding-top:12px;margin-top:10px;color:#24364d;font-weight:750;font-size:13px}.trip-room-features span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.engine-room-footer{border-top:1px solid #edf2f7;margin-top:14px;padding-top:14px}.availability{background:#e8fff4;border-radius:999px;padding:6px 10px;font-size:14px}.availability.soldout{background:#fff0f0}.engine-price{font-size:23px;color:#071d36}.engine-price:before{content:'Giá hôm nay';display:block;color:#64748b;font-size:12px;font-weight:800;margin-bottom:2px}.sticky-summary{border-radius:16px}.selected-row{border-radius:12px;background:#fff}.trip-form-subtitle{font-size:22px;font-weight:950;color:#071d36;margin:18px 0 8px}.trip-form-subtitle small{font-size:13px;color:#64748b;font-weight:800}
@media(max-width:992px){.trip-booking-steps{border-radius:18px;width:100%}.engine-room-card{grid-template-columns:1fr}.trip-room-features{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.trip-room-features{grid-template-columns:1fr}.trip-booking-steps span{font-size:12px}.engine-search.pro-card{padding:18px}}
/* place payment below room list instead of a tall right column */
.booking-success-page .success-shell{grid-template-columns:minmax(0,1fr);max-width:1120px;margin:0 auto}.booking-success-page .success-payment-card{position:static;max-width:520px;justify-self:end;width:100%;padding:24px;border-radius:24px}

/* Compact room information cards */
.room-spec-grid-compact{
  grid-template-columns:minmax(150px,.85fr) minmax(260px,1.45fr) minmax(150px,.85fr);
  gap:14px;
}
.room-spec-compact{
  min-height:86px;
  padding:16px 18px;
  border-radius:20px;
  display:flex;
  align-items:center;
  gap:14px;
  background:linear-gradient(180deg,#ffffff 0%,#f7f9fd 100%);
  border:1px solid #e4ecf6;
  box-shadow:0 12px 28px rgba(7,29,54,.055);
}
.room-spec-compact .room-spec-icon{
  width:46px;
  height:46px;
  margin:0;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff3d8;
  font-size:23px;
  flex:0 0 46px;
}
.room-spec-compact small{
  display:block;
  margin:0 0 4px;
  font-size:12px;
  line-height:1.15;
  color:#6b7a90;
  font-weight:800;
}
.room-spec-compact b{
  display:block;
  font-size:17px;
  line-height:1.22;
  color:#071d36;
  word-break:normal;
}
.room-spec-grid-compact .room-spec-compact:nth-child(2) b{
  font-size:18px;
  line-height:1.22;
}
@media(max-width:992px){
  .room-spec-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr));}
  .room-spec-grid-compact .room-spec-compact:nth-child(2){grid-column:span 2;}
}
@media(max-width:768px){
  .room-spec-grid-compact{grid-template-columns:1fr;}
  .room-spec-grid-compact .room-spec-compact:nth-child(2){grid-column:auto;}
  .room-spec-compact{min-height:72px;}
}


/* Featured amenity icon cards - Booking/Trip style */
.featured-amenities-card{padding:26px!important}
.section-title-clean{display:flex;align-items:center;gap:12px}
.section-title-clean span{width:5px;height:28px;border-radius:999px;background:linear-gradient(180deg,#d8a03b,#f6d98b);display:inline-block}
.section-title-clean h3{margin:0;font-weight:950;color:#071d36;letter-spacing:-.02em}
.amenity-icon-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.amenity-icon-card{
  min-height:74px;
  border:1px solid #edf2f7;
  background:linear-gradient(180deg,#fff,#fbfcff);
  border-radius:18px;
  padding:14px 16px;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  text-align:left;
  gap:12px;
  box-shadow:0 12px 28px rgba(7,29,54,.055);
  transition:.18s ease;
}
.amenity-icon-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(7,29,54,.095);border-color:#f1d59a}
.amenity-icon-card .amenity-icon{width:42px;height:42px;border-radius:15px;display:inline-flex;align-items:center;justify-content:center;background:#fff7e5;color:#071d36;font-size:22px;box-shadow:inset 0 0 0 1px rgba(216,160,59,.20);flex:0 0 42px}
.amenity-icon-card b{font-size:15px;line-height:1.25;color:#10243e;font-weight:850}
@media(max-width:1199px){.amenity-icon-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:992px){.amenity-icon-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:768px){.amenity-icon-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.amenity-icon-card{min-height:64px;border-radius:16px;padding:12px 12px}.amenity-icon-card .amenity-icon{width:36px;height:36px;font-size:19px;flex-basis:36px}.amenity-icon-card b{font-size:13px}}


/* Admin amenity icon checklist */
.amenity-check-icon{gap:10px!important;align-items:center!important}
.amenity-check-emoji{width:30px;height:30px;border-radius:12px;background:#fff7e5;display:inline-flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px rgba(216,160,59,.22);font-size:17px;flex:0 0 30px}


/* Compact amenities override */
.amenity-icon-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.amenity-icon-card{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e7edf5;border-radius:14px;padding:12px 14px;min-height:52px;overflow:hidden}.amenity-icon-card .amenity-icon{width:28px;height:28px;min-width:28px;display:flex;align-items:center;justify-content:center}.amenity-icon-card b{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-spec-grid-compact{grid-template-columns:1fr 1.6fr 1fr}@media(max-width:768px){.amenity-icon-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* =========================================================
   THE BOK - Amenity text full display fix
   3 cột desktop, 2 cột tablet/mobile, chữ hiện đủ không bị ...
   ========================================================= */
.amenity-icon-grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:12px!important;
}
.amenity-icon-card{
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
    background:#fff!important;
    border:1px solid #e7edf5!important;
    border-radius:16px!important;
    padding:12px 16px!important;
    min-height:58px!important;
    overflow:visible!important;
    box-shadow:0 8px 20px rgba(7,29,54,.035)!important;
}
.amenity-icon-card:hover{
    transform:translateY(-2px)!important;
    box-shadow:0 12px 26px rgba(7,29,54,.08)!important;
    border-color:#f1d59a!important;
}
.amenity-icon-card .amenity-icon{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    flex:0 0 34px!important;
    border-radius:50%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#fff7e5!important;
    color:#071d36!important;
    font-size:18px!important;
    box-shadow:inset 0 0 0 1px rgba(216,160,59,.20)!important;
}
.amenity-icon-card b{
    display:block!important;
    color:#10243e!important;
    font-size:14px!important;
    line-height:1.25!important;
    font-weight:800!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:unset!important;
    word-break:normal!important;
}
@media(max-width:992px){
    .amenity-icon-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:10px!important;
    }
}
@media(max-width:480px){
    .amenity-icon-card{
        min-height:54px!important;
        padding:10px 12px!important;
        gap:9px!important;
    }
    .amenity-icon-card .amenity-icon{
        width:30px!important;
        height:30px!important;
        min-width:30px!important;
        flex-basis:30px!important;
        font-size:16px!important;
    }
    .amenity-icon-card b{
        font-size:13px!important;
    }
}


/* =========================================================
   THE BOK - AGENT / TA PRICE SYSTEM
   ========================================================= */
.agent-login-card{
    max-width:520px;
    margin:0 auto;
    background:#fff;
    border:1px solid #e7edf5;
    border-radius:28px;
    padding:34px;
    box-shadow:0 18px 50px rgba(15,35,65,.10);
}
.agent-login-logo{text-align:center;margin-bottom:18px}
.agent-login-logo img{max-height:74px;max-width:190px}
.agent-login-card h2{font-weight:900;color:#071d38;margin-bottom:8px;text-align:center}
.agent-login-card p{color:#667085;text-align:center;margin-bottom:22px}
.agent-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
    background:#fff;
    border:1px solid #e7edf5;
    border-radius:24px;
    padding:22px;
    margin-bottom:22px;
    box-shadow:0 12px 34px rgba(15,35,65,.06);
}
.agent-toolbar h2{font-weight:900;color:#071d38}
.agent-price-grid{display:grid;grid-template-columns:1fr;gap:20px}
.agent-room-card{
    display:grid;
    grid-template-columns:280px 1fr;
    gap:0;
    overflow:hidden;
    background:#fff;
    border:1px solid #e7edf5;
    border-radius:26px;
    box-shadow:0 14px 38px rgba(15,35,65,.08);
}
.agent-room-img{
    position:relative;
    min-height:230px;
    background:#edf2f7;
}
.agent-room-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.agent-room-img span{
    position:absolute;
    left:14px;
    top:14px;
    background:rgba(255,255,255,.92);
    color:#071d38;
    font-weight:800;
    padding:7px 12px;
    border-radius:999px;
    font-size:13px;
}
.agent-room-body{padding:22px}
.agent-room-head{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:flex-start;
    margin-bottom:16px;
}
.agent-room-head h3{font-size:24px;font-weight:900;color:#071d38;margin:0 0 5px}
.agent-room-head p{color:#667085;margin:0;font-weight:600}
.agent-price-box{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-bottom:12px;
}
.agent-price-box>div{
    background:#f8fafc;
    border:1px solid #e7edf5;
    border-radius:18px;
    padding:14px;
}
.agent-price-box span{
    display:block;
    color:#667085;
    font-weight:700;
    font-size:13px;
    margin-bottom:6px;
}
.agent-price-box b{
    display:block;
    color:#071d38;
    font-size:20px;
    font-weight:900;
}
.agent-price-box .ta-price{
    background:#fff8e8;
    border-color:#f0cf88;
}
.agent-price-box .ta-price b{color:#d08a00}
.agent-note-line{
    display:inline-flex;
    align-items:center;
    background:#eef9f1;
    color:#157347;
    border:1px solid #ccebd6;
    border-radius:999px;
    padding:7px 12px;
    font-weight:800;
    font-size:13px;
    margin-bottom:14px;
}
.agent-request-box{
    border:1px dashed #d9e2ef;
    border-radius:18px;
    padding:13px 15px;
    background:#fbfdff;
}
.agent-request-box summary{
    cursor:pointer;
    color:#0d6efd;
    font-weight:900;
}
.agent-gallery-section{
    background:#fff;
    border:1px solid #e7edf5;
    border-radius:26px;
    padding:24px;
    margin-bottom:24px;
    box-shadow:0 14px 38px rgba(15,35,65,.07);
}
.agent-gallery-title{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:flex-start;
    flex-wrap:wrap;
    margin-bottom:18px;
}
.agent-gallery-title h2{
    font-weight:900;
    color:#071d38;
    margin:0 0 6px;
}
.agent-gallery-title p{margin:0;color:#667085;font-weight:600}
.agent-gallery-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}
.agent-gallery-img{
    display:block;
    height:190px;
    border-radius:18px;
    overflow:hidden;
    background:#edf2f7;
}
.agent-gallery-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.25s;
}
.agent-gallery-img:hover img{transform:scale(1.05)}
@media(max-width:992px){
    .agent-room-card{grid-template-columns:1fr}
    .agent-room-img{height:240px}
    .agent-price-box{grid-template-columns:1fr}
    .agent-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:576px){
    .agent-login-card{padding:24px;border-radius:22px}
    .agent-room-body{padding:18px}
    .agent-room-head{display:block}
    .agent-room-head .btn{margin-top:12px}
    .agent-gallery-grid{grid-template-columns:1fr}
    .agent-gallery-img{height:220px}
}


/* ===== Agent page: auto account identity ===== */
.agent-welcome{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:#ecfdf5;
    color:#047857;
    border:1px solid #bbf7d0;
    border-radius:999px;
    padding:8px 14px;
    font-weight:700;
    margin-bottom:10px;
}
.agent-welcome span{color:#0f766e;font-weight:600;}
.agent-form-identity{
    background:#f8fafc;
    border:1px solid #e2e8f0;
    color:#0f172a;
    border-radius:16px;
    padding:12px 16px;
    font-weight:600;
}
.agent-request-box .form-control{
    min-height:50px;
    border-radius:16px;
}
@media(max-width:768px){
  .agent-welcome{border-radius:16px;align-items:flex-start;flex-direction:column;}
}

/* OTA room selection compact layout - The Bok */
.ota-booking-page{background:#fff}.ota-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}.ota-room-list{display:grid;gap:18px}.ota-note{font-size:17px;color:#06f;font-style:italic;margin:0 0 2px}.ota-room-card{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;background:#f5f6fa;border:1px solid #e7edf5;border-radius:22px;padding:18px}.ota-room-media img{width:100%;height:210px;object-fit:cover;border-radius:10px;display:block}.ota-room-media{position:relative}.ota-photo-count{position:absolute;right:12px;top:176px;background:#071d36;color:#fff;border-radius:8px;padding:5px 8px;font-size:12px;font-weight:900}.ota-spec-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:12px;color:#071d36;font-size:14px}.ota-spec-row.big{font-size:15px;margin-bottom:14px}.ota-capacity{margin-top:14px;color:#071d36;font-weight:700}.ota-bracket{display:block;margin-top:12px;color:#071d36}.ota-room-media h6{margin:18px 0 8px;font-weight:900;color:#071d36}.ota-amenity-list{list-style:none;padding:0;margin:0;display:grid;gap:7px}.ota-amenity-list li{color:#071d36}.ota-more-btn{margin-top:18px;width:100%;border:0;background:#e9edf4;color:#071d36;border-radius:7px;padding:12px 14px;font-weight:900}.ota-more-btn:hover{background:#dfe6f0}.ota-rate-card{background:#fff;border-radius:8px;padding:24px;display:flex;flex-direction:column;min-height:100%}.ota-rate-head{display:flex;align-items:start;justify-content:space-between;gap:14px}.ota-rate-head h3{font-size:22px;line-height:1.18;color:#071d36;font-weight:950;margin:0;max-width:380px}.ota-avail{color:#0a9b59;font-weight:950;white-space:nowrap}.ota-sold{color:#b42318;font-weight:950}.ota-divider{height:1px;background:#e6edf5;margin:18px 0}.ota-policy-lines{display:grid;gap:10px;color:#071d36;font-size:15px}.ota-policy-lines .gold{color:#f2a300;font-weight:900}.ota-room-desc{margin:12px 0 0;color:#65758b;font-size:14px}.ota-rate-bottom{margin-top:auto;display:flex;align-items:end;justify-content:space-between;gap:16px}.ota-pricebox{text-align:right;margin-left:auto}.ota-price-main{color:#e00022;font-size:30px;font-weight:950;line-height:1.1}.ota-pricebox small{display:block;color:#65758b;margin-top:4px}.ota-pricebox em{display:block;font-style:normal;color:#071d36;font-size:13px;margin-top:10px}.ota-select-wrap{min-width:150px;margin:0}.ota-select-wrap span{display:block;font-size:12px;color:#65758b;font-weight:800;margin-bottom:5px}.ota-room-select{width:100%;border:1px solid #dbe5f0;border-radius:8px;padding:12px 14px;background:#fff;color:#071d36;font-weight:800}.ota-summary-card{border:1px solid #e2eaf4;border-radius:24px;background:#fff;padding:20px;box-shadow:0 14px 45px rgba(7,29,54,.08);max-height:calc(100vh - 118px);overflow:auto}.ota-summary-card h3{font-size:26px;font-weight:950;margin-bottom:16px;color:#071d36}.ota-summary-top{border-bottom:1px solid #e6edf5;padding-bottom:12px;margin-bottom:12px;display:grid;gap:6px}.ota-summary-top b{color:#071d36}.ota-summary-top strong{font-size:17px;color:#071d36}.ota-summary-top small{color:#65758b}.ota-mini-lines{display:grid;gap:7px;border-bottom:1px dashed #dbe5f0;padding-bottom:12px;margin-bottom:12px}.ota-mini-lines div,.ota-total-line{display:flex;justify-content:space-between;gap:10px;color:#65758b}.ota-mini-lines b{color:#071d36}.ota-selected-rooms{display:grid;gap:8px;max-height:160px;overflow:auto}.ota-selected-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;background:#f4f6fb;border-radius:10px;padding:12px}.ota-selected-row b{color:#071d36}.ota-selected-row small{display:block;color:#65758b;margin-top:4px}.ota-selected-row strong{color:#071d36;white-space:nowrap}.ota-total-line{border-top:1px solid #e6edf5;margin-top:12px;padding-top:12px;align-items:center}.ota-total-line span{font-size:20px;font-weight:950;color:#65758b}.ota-total-line b{font-size:24px;color:#071d36}.ota-tax-note{text-align:right;color:#a0aabc;font-weight:800;font-size:13px;margin-top:4px}.ota-promo{margin-top:14px}.ota-promo label{font-weight:900;margin-bottom:6px;color:#071d36}.ota-book-btn{margin-top:14px;border-radius:10px!important;font-weight:950;text-transform:uppercase}.ota-modal{position:fixed;inset:0;display:none;z-index:9999}.ota-modal.show{display:block}.ota-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.52)}.ota-modal-dialog{position:relative;background:#fff;max-width:920px;margin:28px auto;border-radius:4px;box-shadow:0 20px 80px rgba(0,0,0,.35);max-height:calc(100vh - 56px);display:flex;flex-direction:column}.ota-modal-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e6edf5;padding:14px 18px}.ota-modal-head h4{margin:0;font-weight:900;color:#071d36}.ota-modal-head button{border:0;background:transparent;font-size:28px;line-height:1;color:#071d36}.ota-modal-body{padding:18px;overflow:auto;display:grid;grid-template-columns:420px 1fr;gap:22px}.ota-main-img{width:100%;height:245px;object-fit:cover;border-radius:4px}.ota-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:6px}.ota-thumbs img{height:66px;width:100%;object-fit:cover;opacity:.55;cursor:pointer;border:2px solid transparent}.ota-thumbs img.active{opacity:1;border-color:#071d36}.ota-modal-info h2{font-weight:950;color:#071d36;font-size:24px}.ota-modal-info p{color:#53647a;line-height:1.6}.ota-modal-amenities{grid-column:1/-1;border-top:1px solid #e6edf5;padding-top:16px}.ota-modal-amenities h5{font-weight:950;color:#071d36;margin-bottom:12px}.ota-modal-amenity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 18px}.ota-modal-amenity-grid span{color:#071d36}.ota-modal-foot{border-top:1px solid #e6edf5;padding:12px 18px;text-align:right}.ota-modal-open{overflow:hidden}@media(max-width:1100px){.ota-layout{grid-template-columns:1fr}.ota-summary-card{position:static!important;max-height:none}.ota-room-card{grid-template-columns:240px 1fr}}@media(max-width:768px){.ota-room-card{grid-template-columns:1fr}.ota-rate-bottom{align-items:stretch;flex-direction:column}.ota-pricebox{text-align:left;margin-left:0}.ota-select-wrap{width:100%}.ota-modal-dialog{margin:0;max-height:100vh;height:100vh;border-radius:0}.ota-modal-body{grid-template-columns:1fr}.ota-modal-amenity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ota-main-img{height:230px}.ota-summary-card h3{font-size:22px}.ota-total-line span{font-size:18px}.ota-total-line b{font-size:22px}}



/* The Bok OTA 3-step compact booking summary */
.ota-steps-clean{
  justify-content:flex-start;
  gap:14px;
  margin-bottom:22px;
}
.ota-steps-clean span{
  text-transform:uppercase;
  letter-spacing:.02em;
  color:#9aa6b8;
}
.ota-steps-clean span.active{
  color:#006edc;
}
.ota-summary-compact{
  padding:18px;
  border-radius:12px;
  max-height:none;
  overflow:visible;
}
.ota-summary-compact h3{
  font-size:22px;
  line-height:1.2;
  margin-bottom:18px;
}
.ota-summary-date{
  display:grid;
  gap:4px;
  padding-bottom:12px;
  border-bottom:1px solid #e7edf5;
}
.ota-summary-date strong{
  color:#071d36;
  font-size:15px;
  line-height:1.35;
}
.ota-summary-date small{
  color:#637083;
  font-weight:500;
}
.ota-summary-meta{
  display:flex;
  flex-wrap:wrap;
  gap:4px 8px;
  color:#006edc;
  font-weight:700;
  font-size:14px;
  padding:10px 0 12px;
}
.ota-summary-room-title{
  display:flex;
  justify-content:space-between;
  font-size:14px;
  color:#071d36;
  margin:0 0 8px;
}
.ota-selected-rooms.compact{
  max-height:145px;
  overflow:auto;
  margin-bottom:10px;
}
.ota-selected-row.compact{
  padding:12px;
  border-radius:8px;
  background:#f4f6fb;
}
.ota-selected-row.compact strong{
  display:none;
}
.ota-selected-row.compact b{
  font-size:14px;
}
.ota-selected-row.compact small{
  font-size:12px;
}
.ota-total-line.compact{
  border-top:1px dashed #dbe5f0;
  margin-top:10px;
  padding-top:12px;
}
.ota-total-line.compact span{
  font-size:16px;
  color:#071d36;
}
.ota-total-line.compact b{
  font-size:18px;
}
.ota-summary-compact .ota-tax-note{
  text-align:right;
  font-size:12px;
  color:#a0aabc;
}
.ota-promo.compact{
  margin-top:12px;
}
.ota-summary-compact .ota-book-btn{
  height:48px;
  margin-top:14px;
  border-radius:6px!important;
  background:#080fae!important;
  border-color:#080fae!important;
  color:#fff!important;
  box-shadow:none!important;
}
.ota-policy-lines .gold{
  color:#e89a00;
}
@media(max-width:1100px){
  .ota-summary-compact{
    position:sticky!important;
    bottom:0;
    z-index:10;
    border-radius:16px 16px 0 0;
  }
}
@media(max-width:768px){
  .ota-steps-clean{
    overflow:auto;
    white-space:nowrap;
    padding-bottom:4px;
  }
  .ota-summary-compact{
    padding:14px;
  }
  .ota-summary-compact h3{
    font-size:20px;
  }
  .ota-summary-date small,
  .ota-summary-room-title,
  .ota-selected-rooms.compact,
  .ota-promo.compact{
    display:none;
  }
  .ota-total-line.compact{
    margin-top:6px;
    padding-top:8px;
  }
}


/* The Bok final booking flow fixes */
.booking-summary-compact h4{font-size:24px}
.summary-date-compact{border-bottom:1px solid #e7edf5;padding-bottom:12px;margin-bottom:12px}
.summary-date-compact b{display:block;color:#0f172a;font-size:15px;line-height:1.35}
.summary-date-compact small{display:block;color:#0b74de;font-weight:700;margin-top:6px}
.summary-room-box{background:#f4f6fa;border-radius:12px;padding:12px;margin:10px 0 12px}
.summary-room-box b{display:block;color:#0f172a}
.summary-room-box small{display:block;color:#64748b;margin-top:4px}
.tax-note{display:block;text-align:center;color:#98a2b3;font-weight:600;margin-top:4px}
.booking-summary-compact .summary-line{display:flex;justify-content:space-between;gap:10px;margin:8px 0}
.booking-summary-compact .summary-line.total{border-top:1px dashed #d9e2ef;margin-top:14px;padding-top:14px;font-size:20px;font-weight:900}
.booking-summary-compact .summary-line.total b{font-size:22px}
@media(max-width:991px){.booking-summary-compact{position:static!important}.booking-summary-compact h4{font-size:22px}}

/* Agent PRO portal - The Bok */
.agent-pro-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 18% 10%,rgba(255,214,122,.32),transparent 30%),linear-gradient(135deg,#071d38 0%,#0e3158 52%,#071d38 100%);color:#fff;padding:72px 0 54px;margin-top:-1px}
.agent-pro-hero:after{content:"";position:absolute;right:-90px;top:-120px;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.08);filter:blur(1px)}
.agent-pro-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.5fr) 390px;gap:28px;align-items:center}
.agent-pro-eyebrow{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);padding:8px 13px;border-radius:999px;font-size:12px;font-weight:900;letter-spacing:.08em;color:#ffd979;margin-bottom:18px}
.agent-pro-hero h1{font-size:clamp(36px,5vw,64px);font-weight:950;line-height:1.02;margin:0 0 16px;letter-spacing:-.04em;color:#fff}
.agent-pro-hero p{font-size:18px;line-height:1.7;color:rgba(255,255,255,.82);max-width:760px;margin:0}
.agent-pro-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.agent-pro-panel{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:30px;padding:26px;box-shadow:0 28px 70px rgba(0,0,0,.18);backdrop-filter:blur(14px)}
.agent-pro-avatar{width:72px;height:72px;border-radius:24px;background:linear-gradient(135deg,#ffd36a,#fff1bf);display:grid;place-items:center;color:#071d38;font-size:34px;font-weight:950;box-shadow:0 18px 42px rgba(255,211,106,.28);margin-bottom:14px}
.agent-pro-panel h3{margin:0;font-weight:950;color:#fff;font-size:26px}.agent-pro-panel p{font-size:14px;color:rgba(255,255,255,.72);margin:5px 0 18px}
.agent-pro-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.agent-pro-mini-grid div{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:12px}.agent-pro-mini-grid b{display:block;font-size:18px;color:#fff}.agent-pro-mini-grid span{display:block;font-size:11px;color:rgba(255,255,255,.68);font-weight:700;margin-top:3px}
.agent-pro-logout{display:inline-flex;color:#ffd979;font-weight:900;text-decoration:none;margin-top:4px}.agent-pro-page{margin-top:-28px;position:relative;z-index:2}.agent-pro-search{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:12px;align-items:end;background:#fff;border:1px solid #e6eef7;border-radius:28px;padding:18px;box-shadow:0 22px 58px rgba(7,29,56,.1);margin-bottom:22px}.agent-pro-search label{display:block;font-size:12px;font-weight:900;color:#071d38;margin:0 0 6px}.agent-pro-search .form-control,.agent-pro-search .form-select{height:50px;border-radius:16px;font-weight:800;border-color:#dbe7f3}
.agent-pro-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}.agent-pro-benefits>div{background:linear-gradient(180deg,#fff,#f9fbff);border:1px solid #e7eef7;border-radius:24px;padding:20px;box-shadow:0 16px 38px rgba(7,29,56,.06)}.agent-pro-benefits span{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:14px;background:#071d38;color:#ffd979;font-weight:950;margin-bottom:10px}.agent-pro-benefits b{display:block;color:#071d38;font-size:18px}.agent-pro-benefits p{margin:6px 0 0;color:#64748b;font-weight:600;line-height:1.55}
.agent-pro-section-head{display:flex;justify-content:space-between;gap:16px;align-items:end;margin:28px 0 16px}.agent-pro-section-head h2{font-weight:950;color:#071d38;margin:0 0 4px;font-size:34px}.agent-pro-section-head p{margin:0;color:#64748b;font-weight:700}.agent-pro-tabs{display:flex;gap:8px;background:#f1f5fa;border:1px solid #e3ebf5;border-radius:999px;padding:6px}.agent-pro-tabs a{display:inline-flex;padding:9px 16px;border-radius:999px;text-decoration:none;color:#43566d;font-weight:900}.agent-pro-tabs a.active{background:#071d38;color:#fff;box-shadow:0 10px 26px rgba(7,29,56,.18)}
.agent-pro-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.agent-pro-room-card{background:#fff;border:1px solid #e5edf7;border-radius:30px;overflow:hidden;box-shadow:0 18px 48px rgba(7,29,56,.08);display:flex;flex-direction:column}.agent-pro-room-media{position:relative;height:250px;overflow:hidden;background:#eaf0f8}.agent-pro-room-media img{width:100%;height:100%;object-fit:cover;transition:.45s}.agent-pro-room-card:hover .agent-pro-room-media img{transform:scale(1.04)}.agent-pro-badges{position:absolute;left:16px;right:16px;top:16px;display:flex;gap:8px;flex-wrap:wrap}.agent-pro-badges span{background:rgba(7,29,56,.82);backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900}.agent-pro-badges .gold{background:#ffd36a;color:#071d38}.agent-pro-badges .warn{background:#fff3cd;color:#8a5a00}
.agent-pro-room-content{padding:22px}.agent-pro-room-title{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:15px}.agent-pro-room-title h3{font-size:24px;font-weight:950;color:#071d38;margin:0 0 5px;letter-spacing:-.02em}.agent-pro-room-title p{margin:0;color:#64748b;font-weight:700}.agent-pro-price-row{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:10px;margin:14px 0}.agent-pro-price-row>div{border:1px solid #e5edf7;background:#f8fbff;border-radius:18px;padding:14px}.agent-pro-price-row small{display:block;color:#64748b;font-weight:900;text-transform:uppercase;font-size:11px;letter-spacing:.04em}.agent-pro-price-row b{display:block;margin-top:5px;color:#071d38;font-size:18px;font-weight:950}.agent-pro-price-row .main{background:linear-gradient(135deg,#fff8df,#fff);border-color:#f4d28a}.agent-pro-price-row .main b{color:#b46f00;font-size:22px}.agent-pro-note{border:1px dashed #d7e4f2;background:#f9fcff;border-radius:16px;padding:10px 12px;color:#52657a;font-weight:800;font-size:13px}.agent-pro-note.is-muted{background:#fff8e7;border-color:#f4d38a;color:#9a6200}.agent-pro-request{margin-top:14px;border:1px solid #e5edf7;border-radius:20px;background:#fff}.agent-pro-request summary{cursor:pointer;padding:15px 17px;font-weight:950;color:#071d38}.agent-pro-request form{padding:0 17px 17px}.agent-pro-request .form-control{border-radius:15px;border-color:#dce7f3;font-weight:700}.agent-pro-request textarea.form-control{font-weight:600}
@media(max-width:992px){.agent-pro-hero-grid{grid-template-columns:1fr}.agent-pro-search{grid-template-columns:repeat(2,minmax(0,1fr))}.agent-pro-search button{grid-column:1/-1}.agent-pro-benefits,.agent-pro-room-grid{grid-template-columns:1fr}.agent-pro-section-head{align-items:flex-start;flex-direction:column}.agent-pro-tabs{width:100%;overflow:auto}}
@media(max-width:576px){.agent-pro-hero{padding:46px 0 38px}.agent-pro-panel{border-radius:24px;padding:20px}.agent-pro-mini-grid{grid-template-columns:1fr}.agent-pro-search{grid-template-columns:1fr;border-radius:22px}.agent-pro-benefits>div{border-radius:20px}.agent-pro-room-media{height:220px}.agent-pro-room-title{display:block}.agent-pro-room-title .btn{margin-top:10px}.agent-pro-price-row{grid-template-columns:1fr}.agent-pro-section-head h2{font-size:28px}}

/* Agent history/current requests */
.agent-pro-section-head.compact{margin-top:24px}.agent-history-card{background:#fff;border:1px solid #e5edf7;border-radius:26px;box-shadow:0 18px 48px rgba(7,29,56,.08);overflow:hidden;margin-bottom:26px}.agent-history-card .table{font-weight:700}.agent-history-card thead th{background:#f7fbff;color:#071d38;font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e5edf7;padding:14px}.agent-history-card td{padding:14px;border-color:#edf2f8;color:#24364a}.agent-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:950}.agent-status-badge.pending{background:#fff3cd;color:#8a5a00}.agent-status-badge.success{background:#dcfce7;color:#166534}.agent-status-badge.muted{background:#edf2f7;color:#64748b}.agent-empty-history{text-align:center;padding:34px 18px;color:#64748b}.agent-empty-history b{display:block;color:#071d38;font-size:20px}.agent-empty-history p{margin:8px auto 0;max-width:520px;font-weight:700}

.agent-pro-badges .available{background:#dcfce7;color:#166534;border-color:rgba(22,101,52,.15)}
.agent-pro-badges .soldout{background:#fee2e2;color:#991b1b;border-color:rgba(153,27,27,.18)}
.agent-availability-line{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:16px;padding:11px 13px;margin:10px 0 10px;border:1px solid;font-weight:800}
.agent-availability-line b{font-size:15px}.agent-availability-line span{font-size:12px;color:inherit;opacity:.78;text-align:right}.agent-availability-line.is-available{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.agent-availability-line.is-soldout{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.agent-pro-request[data-disabled="1"]{background:#f8fafc}.agent-pro-request[data-disabled="1"] summary{color:#9f1239}
@media(max-width:576px){.agent-availability-line{align-items:flex-start;flex-direction:column}.agent-availability-line span{text-align:left}}

/* =========================================================
   THE BOK - OTA mobile room detail compact meta
   Số khách / giường / diện tích hiển thị 1 dòng gọn kiểu OTA
   ========================================================= */
.room-ota-meta-strip{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-top:12px;
}
.room-ota-meta-chip{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-width:0;
    max-width:100%;
    padding:9px 12px;
    border:1px solid #e5edf7;
    border-radius:999px;
    background:#f8fbff;
    color:#17324d;
    font-size:14px;
    font-weight:850;
    line-height:1.2;
    box-shadow:0 8px 18px rgba(7,29,54,.035);
}
.room-ota-meta-chip span:last-child{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.room-ota-meta-icon{
    flex:0 0 auto;
    font-size:16px;
    line-height:1;
}
.room-ota-meta-bed{
    flex:1 1 220px;
}
@media(max-width:768px){
    .room-info-card{padding:18px!important;border-radius:18px!important;}
    .room-info-card .d-flex.align-items-start.justify-content-between{margin-bottom:10px!important;}
    .room-info-card h2{font-size:20px!important;line-height:1.25!important;margin-bottom:6px!important;}
    .room-info-card .fs-5{font-size:14px!important;line-height:1.45!important;}
    .room-price-mini{font-size:13px!important;padding:8px 10px!important;border-radius:12px!important;}
    .room-longtext{font-size:14px!important;line-height:1.55!important;margin-top:12px!important;}
    .room-ota-meta-strip{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:8px;
    }
    .room-ota-meta-chip{
        width:100%;
        padding:8px 10px;
        font-size:13px;
        border-radius:14px;
        justify-content:flex-start;
    }
    .room-ota-meta-bed{
        grid-column:1/-1;
        flex:initial;
    }
    .featured-amenities-card{padding:18px!important;border-radius:18px!important;}
    .featured-amenities-card .section-title-clean h3{font-size:18px!important;}
    .booking-side-card{border-radius:18px!important;padding:18px!important;}
}
@media(max-width:420px){
    .room-ota-meta-strip{grid-template-columns:1fr;}
    .room-ota-meta-bed{grid-column:auto;}
    .room-gallery-thumbs{gap:6px!important;}
    .room-gallery-thumb{height:46px!important;min-width:62px!important;}
}
