/* V177 exact approved room/bed views. No legacy balls. */
:root{--pm24-navy:#08275c;--pm24-pink:#f70b78;--pm24-blue:#1671f5;--pm24-green:#1eae62;--pm24-orange:#ff8500;--pm24-grey:#7b8799}
.pgm-bed-board-launch{display:none!important}
/* PG/Co-living: compact floor -> room -> bed cards */
.pgco-v107-dashboard{max-width:1600px;margin:0 auto}.pgco-v107-workspace{grid-template-columns:minmax(0,1fr) 350px!important;gap:16px!important}.pgco-v107-board-card{padding:16px!important}.pgco-v107-board-head{margin-bottom:12px!important}.pgco-v108-floor-tabs{padding:0 0 12px!important;border-bottom:1px solid #e7edf6!important}.pgco-v107-floor-list{max-height:calc(100vh - 270px)!important;overflow:auto!important;padding-right:5px!important}.pgco-v107-floor{display:none!important;border:0!important;background:transparent!important}.pgco-v107-floor.is-open{display:block!important}.pgco-v107-floor-head{display:none!important}.pgco-v107-floor-body{display:block!important;padding:0!important}.pgco-v108-room-list{display:grid!important;grid-template-columns:repeat(4,minmax(210px,1fr))!important;gap:12px!important}.pgco-v108-room{display:block!important;border:1px solid #dfe7f3!important;border-radius:13px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 7px 18px rgba(10,39,87,.05)!important}.pgco-v108-room-head{padding:12px 12px 8px!important;background:#fff!important;border:0!important;cursor:default!important}.pgco-v108-room-head>span:first-child{display:grid!important;grid-template-columns:auto 1fr!important;column-gap:8px!important}.pgco-v108-room-head>span:first-child i{grid-row:1/3;width:38px;height:38px;border-radius:10px;background:#eef5ff;color:#1671f5;display:grid;place-items:center;font-style:normal;font-weight:900}.pgco-v108-room-head b{font-size:15px!important}.pgco-v108-room-head small{font-size:10px!important}.pgco-v108-room-counts strong{display:none!important}.pgco-v108-room-body{display:block!important;padding:4px 10px 10px!important}.pgco-v108-bed-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}.pgco-v108-bed-ball{width:100%!important;height:58px!important;min-width:0!important;border-radius:9px!important;padding:6px!important;box-shadow:none!important;border-width:1px!important}.pgco-v108-bed-ball b{font-size:13px!important}.pgco-v108-bed-ball span{font-size:10px!important;max-width:100%!important}.pgco-v108-bed-ball small{font-size:9px!important}.pgco-v107-tip{display:none!important}.pgco-v107-member-panel{border-radius:16px!important;overflow:hidden!important}.pgco-v107-payments-card{display:block!important}.pgco-v107-payments-card>div:last-child{max-height:245px!important}.pgco-v107-panel-actions{display:grid!important;grid-template-columns:1.4fr .8fr .9fr!important}.pgco-v107-panel-actions .primary{grid-column:1/-1!important}
/* Hotel/Lodge/Resort exact premium cards */
.fd-compact-shell{max-width:1600px;margin:0 auto}.fd-compact-stats{grid-template-columns:repeat(6,minmax(125px,1fr))!important}.fd-compact-stats article{position:relative;min-height:96px;padding:14px 12px 12px 62px!important}.fd-stat-icon{position:absolute;left:13px;top:17px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#edf4ff;color:var(--pm24-blue);font-weight:900;font-size:18px}.fd-compact-stats article small{display:block;font-size:11px;color:#66738a}.fd-compact-stats article b{font-size:26px!important;line-height:1.1}.fd-compact-stats article em{display:block;font-style:normal;font-size:10px;color:#8a96a8}.fd-compact-stats .occupied .fd-stat-icon{background:#fff0f5;color:var(--pm24-pink)}.fd-compact-stats .reserved .fd-stat-icon{background:#edf4ff;color:var(--pm24-blue)}.fd-compact-stats .cleaning .fd-stat-icon{background:#fff3e7;color:var(--pm24-orange)}.fd-compact-stats .maintenance .fd-stat-icon{background:#eef1f5;color:#667085}.fd-compact-workspace{grid-template-columns:minmax(0,1fr) 330px!important}.fd-floor-stack{max-height:calc(100vh - 350px)!important}.fd-ac-pair{display:block!important}.fd-ac-column{border:0!important;padding:0!important;background:transparent!important}.fd-ac-heading{display:none!important}.fd-ball-grid{grid-template-columns:repeat(4,minmax(170px,1fr))!important;gap:10px!important;margin-bottom:10px}.fd-room-ball{min-height:164px!important;border-radius:12px!important;background:#fff!important}.fd-room-ball>a,.fd-room-ball>button,.fd-room-ball>span,.fd-room-ball form,.fd-room-ball form button{min-height:162px!important;align-items:stretch!important;justify-content:flex-start!important;padding:12px!important;text-align:left!important}.fd-room-card-top{display:flex;justify-content:space-between;align-items:center}.fd-room-card-top strong{font-size:22px!important}.fd-room-card-top i{font-style:normal}.fd-room-type{font-size:12px;font-weight:800;color:#273956;margin-top:8px}.fd-room-mode{font-size:11px;color:#637089;margin-top:3px}.fd-room-status{display:block!important;text-align:center;margin-top:10px;padding:6px 7px;border-radius:5px;color:#fff!important;font-size:10px!important}.fd-room-ball em{display:block!important;font-style:normal;font-size:10px;margin-top:7px;line-height:1.45}.fd-room-ball.available{border-color:#aee4c5!important}.fd-room-ball.available .fd-room-status{background:var(--pm24-green)}.fd-room-ball.occupied,.fd-room-ball.due{border-color:#ffabc9!important}.fd-room-ball.occupied .fd-room-status,.fd-room-ball.due .fd-room-status{background:var(--pm24-pink)}.fd-room-ball.cleaning{border-color:#ffc486!important}.fd-room-ball.cleaning .fd-room-status{background:var(--pm24-orange)}.fd-room-ball.maintenance{border-color:#ccd3de!important}.fd-room-ball.maintenance .fd-room-status{background:#6f7b8d}.fd-active-guests{border-radius:16px!important}.fd-stay-dialog[open]{width:min(390px,100vw)!important}.fd-day-report-mini{margin-top:14px!important}
@media(max-width:1350px){.pgco-v108-room-list,.fd-ball-grid{grid-template-columns:repeat(3,minmax(180px,1fr))!important}}
@media(max-width:1100px){.pgco-v107-workspace,.fd-compact-workspace{grid-template-columns:1fr!important}.pgco-v107-member-panel,.fd-active-guests{position:static!important;max-height:none!important}.pgco-v108-room-list,.fd-ball-grid{grid-template-columns:repeat(3,minmax(180px,1fr))!important}}
@media(max-width:760px){.pgco-v108-room-list,.fd-ball-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.fd-compact-stats{grid-template-columns:repeat(2,1fr)!important}.pgco-v107-floor-list,.fd-floor-stack{max-height:none!important}}
@media(max-width:480px){.pgco-v108-room-list,.fd-ball-grid{grid-template-columns:1fr!important}.pgco-v108-bed-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

/* V178 hotfix — prevent legacy circular-room dimensions from crushing premium cards. */
body.app-frontdesk .fd-room-board,
body.app-frontdesk .fd-floor-stack,
body.app-frontdesk .fd-floor-section,
body.app-frontdesk .fd-ac-pair,
body.app-frontdesk .fd-ac-column,
body.app-frontdesk .fd-ball-grid{min-width:0!important;width:100%!important}
body.app-frontdesk .fd-ball-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(220px,1fr))!important;
  gap:14px!important;
  align-items:stretch!important;
}
body.app-frontdesk .fd-room-ball{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  height:auto!important;
  aspect-ratio:auto!important;
  justify-self:stretch!important;
  align-self:stretch!important;
  overflow:hidden!important;
}
body.app-frontdesk .fd-room-ball>a,
body.app-frontdesk .fd-room-ball>button,
body.app-frontdesk .fd-room-ball>span,
body.app-frontdesk .fd-room-ball>form,
body.app-frontdesk .fd-room-ball>form>button{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  height:auto!important;
  min-height:172px!important;
  white-space:normal!important;
  overflow:visible!important;
}
body.app-frontdesk .fd-room-card-top,
body.app-frontdesk .fd-room-type,
body.app-frontdesk .fd-room-mode,
body.app-frontdesk .fd-room-status,
body.app-frontdesk .fd-room-ball em{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
body.app-frontdesk .fd-room-card-top strong{white-space:nowrap!important}
body.app-frontdesk .fd-room-type{line-height:1.35!important;min-height:32px!important}
body.app-frontdesk .fd-room-mode{line-height:1.35!important}
body.app-frontdesk .fd-room-ball em{line-height:1.45!important}
@media(max-width:1450px){body.app-frontdesk .fd-ball-grid{grid-template-columns:repeat(3,minmax(220px,1fr))!important}}
@media(max-width:1120px){body.app-frontdesk .fd-compact-workspace{grid-template-columns:1fr!important}body.app-frontdesk .fd-ball-grid{grid-template-columns:repeat(3,minmax(210px,1fr))!important}}
@media(max-width:820px){body.app-frontdesk .fd-ball-grid{grid-template-columns:repeat(2,minmax(210px,1fr))!important}}
@media(max-width:520px){body.app-frontdesk .fd-ball-grid{grid-template-columns:1fr!important}body.app-frontdesk .fd-room-ball>a,body.app-frontdesk .fd-room-ball>button,body.app-frontdesk .fd-room-ball>span,body.app-frontdesk .fd-room-ball>form,body.app-frontdesk .fd-room-ball>form>button{min-height:150px!important}}

/* V179 hotfix — make Front Desk filters actually hide non-matching cards.
   Legacy styles force .fd-room-ball to display:grid!important, which overrides
   the HTML hidden attribute unless we explicitly restore hidden behavior. */
body.app-frontdesk .fd-room-ball[hidden],
body.app-frontdesk [data-fd-room][hidden]{
  display:none!important;
}
body.app-frontdesk .fd-no-mode-rooms[hidden]{
  display:none!important;
}
