/* PM24 V311 — Front Desk, duty and payment regression fixes */

/* Compact, readable drawer headers; remove restored blank white zones. */
body.app-frontdesk dialog.fd-dialog .fd-dialog-head{
  position:sticky!important;
  top:0!important;
  z-index:20!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  width:auto!important;
  min-height:62px!important;
  height:auto!important;
  margin:0!important;
  padding:12px 15px!important;
  border-bottom:1px solid #dfe9f6!important;
  background:rgba(255,255,255,.98)!important;
  backdrop-filter:blur(12px)!important;
}
body.app-frontdesk dialog.fd-dialog .fd-dialog-head>div{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  min-width:0!important;
}
body.app-frontdesk dialog.fd-dialog .fd-dialog-head .section-kicker{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  margin:0!important;
  color:#0877ff!important;
  font-size:9px!important;
  line-height:1.2!important;
}
body.app-frontdesk dialog.fd-dialog .fd-dialog-head h2{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  margin:3px 0 0!important;
  color:#0b2b60!important;
  font-size:19px!important;
  line-height:1.18!important;
  overflow-wrap:anywhere!important;
}
body.app-frontdesk dialog.fd-dialog .fd-dialog-close{
  display:grid!important;
  place-items:center!important;
  flex:0 0 38px!important;
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  min-height:38px!important;
  border:1px solid #dce7f5!important;
  border-radius:50%!important;
  background:#eef4fc!important;
  color:#17345f!important;
  opacity:1!important;
  font-size:23px!important;
  line-height:1!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
body.app-frontdesk #fd-stay-dialog[open],
body.app-frontdesk #fd-checkin-dialog[open]{
  scroll-padding-top:72px!important;
}


.fd-v311-payment-success{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:12px 14px 0;
  padding:11px 12px;
  border:1px solid #bce9cf;
  border-radius:13px;
  background:#effcf4;
  color:#14633a;
}
.fd-v311-payment-success>div{display:grid;gap:2px;min-width:0}
.fd-v311-payment-success b{font-size:13px}
.fd-v311-payment-success span{font-size:10.5px;overflow-wrap:anywhere}
.fd-v311-payment-success a{
  flex:0 0 auto;
  padding:8px 10px;
  border-radius:10px;
  background:#0877ff;
  color:#fff;
  text-decoration:none;
  font-size:10.5px;
  font-weight:900;
}

/* The room tariff is a protected room configuration, not a billing override. */
body.app-frontdesk [data-fd-tariff][readonly],
body.app-frontdesk [data-fd-extra-adult][readonly],
body.app-frontdesk [data-fd-extra-bed-rate][readonly]{
  background:#f2f6fb!important;
  border-color:#dce6f3!important;
  color:#17345f!important;
  cursor:not-allowed!important;
  box-shadow:none!important;
}

/* Room selection guidance and genuine no-result state. */
.fd-room-choice-hint{
  display:grid;
  gap:3px;
  margin:0 0 12px;
  padding:11px 13px;
  border:1px solid #bcd8ff;
  border-radius:13px;
  background:linear-gradient(135deg,#eef6ff,#fff7fb);
  color:#0c3979;
}
.fd-room-choice-hint b{font-size:13px}
.fd-room-choice-hint span{font-size:11px;color:#5c7395}
.fd-no-search-results{
  display:grid;
  gap:5px;
  margin:14px 0 2px;
  padding:22px 15px;
  border:1px dashed #c8d8eb;
  border-radius:15px;
  background:#f8fbff;
  text-align:center;
  color:#657a98;
}
.fd-no-search-results b{color:#173c75;font-size:16px}
.fd-no-search-results[hidden]{display:none!important}
body.app-frontdesk .fd-room-board.is-v311-searching .fd-floor-tabs{display:none!important}
body.app-frontdesk .fd-room-board.is-v311-searching .fd-floor-section.is-v311-search-match{
  margin-bottom:12px!important;
}

/* Mobile filter chips remain fully reachable instead of clipping Double/Suite. */
@media(max-width:760px){
  body.app-frontdesk .fd-filter-row,
  body.app-frontdesk .fd-floor-tabs{
    display:flex!important;
    width:100%!important;
    max-width:100%!important;
    gap:8px!important;
    padding:3px 14px 7px 1px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
  }
  body.app-frontdesk .fd-filter-row button,
  body.app-frontdesk .fd-floor-tabs button{
    flex:0 0 auto!important;
    min-width:max-content!important;
    scroll-snap-align:start;
  }
  body.app-frontdesk dialog.fd-dialog .fd-dialog-head{
    min-height:60px!important;
    padding:11px 13px!important;
  }
}

/* Payment action clearly communicates progress. */
body.app-frontdesk [data-v311-payment-submit][aria-busy="true"]{
  opacity:.76!important;
  cursor:wait!important;
}

/* Duty feedback is inline and never covers fields/buttons. */
body.app-staff-duty .page>.toast,
body.app-staff-duty .owner-page>.toast{
  position:static!important;
  inset:auto!important;
  width:auto!important;
  max-width:none!important;
  margin:0 0 14px!important;
  transform:none!important;
  box-shadow:0 10px 25px rgba(8,38,95,.09)!important;
  transition:opacity .24s ease,transform .24s ease!important;
}
body.app-staff-duty .toast.pm24-v311-toast-leave{
  opacity:0!important;
  transform:translateY(-6px)!important;
}
body.app-staff-duty [data-v311-duty-end-time],
body.app-staff-duty [data-v311-duty-end-note]{
  scroll-margin-top:90px;
}

/* Check-in success uses its own compact workflow navigation. */
body.app-guest-checkin-success{
  padding-bottom:env(safe-area-inset-bottom)!important;
}
