/* Custom accordion styles to avoid Bootstrap collapse conflicts with badges */
.rm-accordion{border-radius:6px;}
.rm-accordion .rm-item{border:1px solid #c2c1c1;margin-bottom:8px;border-radius:6px;overflow:visible;background:#fff}
.rm-accordion .rm-header{display:block; border-bottom:1px solid #c2c1c1 !important;}
.rm-accordion .rm-header-btn{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;border:0;background:transparent}
.rm-accordion .rm-header-btn .me-2{flex:1;text-align:left}
.rm-accordion .rm-header-btn.open{background:#f8f9fa}
.rm-accordion .rm-header-btn:focus{outline:2px solid rgba(0,123,255,0.25);outline-offset:2px}
.rm-accordion .rm-header-btn .position-absolute{position:static;margin-left:12px}

/* Floor label: hide when the dropdown is hovered, focused, or open.
   Use !important so this takes precedence over inline JS visibility toggles. */
.rm-accordion .dropdown .rm-floor-label{
	/* default: label is visible */
	display: block;
}
.rm-accordion .dropdown:hover .rm-floor-label,
.rm-accordion .dropdown.show .rm-floor-label,
.rm-accordion .dropdown:focus-within .rm-floor-label{
	/* simply hide the label when the dropdown is hovered, focused, or open */
	display: none !important;
}

/* Floating controls (floor label / dropdown) positioned on the left, vertically centered */
.rm-accordion .rm-header-btn .rm-floating-left{position:absolute;left:12px;top:50%;transform:translateY(-50%);z-index:2100}
.rm-accordion .rm-header-btn .rm-floating-left .dropdown-menu{z-index:2150}

/* left-group spacing so title doesn't sit under floating control */
.rm-accordion .rm-header-btn {padding-left:56px}
.rm-accordion .rm-collapse{
	max-height:0;
	overflow:hidden;
	transition:max-height .45s cubic-bezier(.2,.9,.2,1);
}
.rm-accordion .rm-collapse.open{max-height:1200px}
.rm-accordion .rm-collapse .accordion-body{padding:12px 16px;margin:0}

/* animate inner content (opacity/translate) to avoid layout shift while collapsing */
.rm-accordion .rm-body-content{
	opacity:0;
	transform:translateY(-6px);
	transition:opacity .28s ease, transform .28s ease;
}
.rm-accordion .rm-collapse.open .rm-body-content{
	opacity:1;
	transform:none;
}

/* room cards grid adjustments */
.room-grid .room-card{border-radius:6px;min-height:90px;display:flex;flex-direction:column;justify-content:space-between}
.room-card .room-action-target{padding:8px}

/* spinner center fallback */
.rm-accordion .loading-center{min-height:120px;display:flex;align-items:center;justify-content:center}

/* Close button (right-center) styling for accordion headers */
.rm-status-close{
	position:absolute;
	right:.5rem;
	top:50%;
	transform:translateY(-50%);
	z-index:5;
	display:none; /* shown by JS when header opens */
	width:32px;
	height:32px;
	padding:0;
	border-radius:50%;
	border:1px solid rgba(0,0,0,0.06);
	background:rgba(0,0,0,0.04);
	display:flex;
	align-items:center;
	justify-content:center;
	transition:background .14s ease, border-color .14s ease, transform .08s ease;
	cursor:pointer;
}
.rm-status-close i.ph-x{ font-size:14px; color:rgba(33,37,41,0.9); line-height:1 }
.rm-status-close:hover{ background:rgba(0,0,0,0.08); border-color:rgba(0,0,0,0.12); transform:translateY(-50%) scale(1.03) }

/* When header isn't positioned relative, ensure item is */
.rm-item .rm-header{ position:relative }

/* Status button visual states */
.rm-status-active{ opacity:1 !important; }
.rm-status-inactive{ opacity:0.45; transition:opacity .12s ease; }
