.rbt-area-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
	margin: 20px 0;
}

.rbt-area-card {
	border: 1px solid #ddd;
	border-radius: 10px;
	padding: 16px;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0,0,0,.06);
}

.rbt-booking-app {
	position: relative;
	margin: 24px 0;
}

.rbt-main-availability-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: 12px;
	padding: 16px;
	margin: 18px 0;
	background: #f7f7f7;
	border: 1px solid #ddd;
	border-radius: 10px;
}

.rbt-filter-field label {
	font-weight: 700;
}

.rbt-filter-field input {
	min-width: 150px;
	margin-top: 4px;
}

.rbt-filter-action {
	padding-bottom: 1px;
}

.rbt-refresh-availability,
.rbt-book-button,
.rbt-cancel-booking {
	border: 0;
	border-radius: 6px;
	padding: 10px 14px;
	background: #2271b1;
	color: #fff;
	cursor: pointer;
}

.rbt-refresh-availability:hover,
.rbt-book-button:hover,
.rbt-cancel-booking:hover {
	background: #135e96;
}

.rbt-availability-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 12px 0 18px;
	font-size: 14px;
}

.rbt-legend-dot {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	margin-right: 6px;
	vertical-align: -1px;
}

.rbt-legend-available {
	background: #2ecc71;
}

.rbt-legend-partial {
	background: #f1c40f;
}

.rbt-legend-booked {
	background: #e74c3c;
}

.rbt-map-wrap {
	position: relative;
	width: 100%;
	overflow: hidden;
	border: 1px solid #ddd;
	border-radius: 12px;
	background: #f7f7f7;
}

.rbt-map-image {
	display: block;
	width: 100%;
	height: auto;
}

.rbt-map-item {
	position: absolute;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	padding: 4px;
	border: 2px solid var(--rbt-color, #2271b1);
	background: color-mix(in srgb, var(--rbt-color, #2271b1) 25%, transparent);
	color: #111;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	border-radius: 6px;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
}

.rbt-map-item-title {
	display: block;
	pointer-events: none;
}

.rbt-map-item-status {
	display: block;
	font-size: 10px;
	font-weight: 700;
	background: rgba(255,255,255,.85);
	padding: 2px 5px;
	border-radius: 999px;
	pointer-events: none;
}

.rbt-map-item:hover,
.rbt-map-item:focus {
	transform: scale(1.03);
	box-shadow: 0 3px 14px rgba(0,0,0,.2);
	outline: none;
}

.rbt-map-item.rbt-is-loading {
	opacity: .7;
}

.rbt-map-item.rbt-is-available {
	--rbt-color: #2ecc71;
	background: rgba(46, 204, 113, .28);
	border-color: #2ecc71;
}

.rbt-map-item.rbt-is-partial {
	--rbt-color: #f1c40f;
	background: rgba(241, 196, 15, .38);
	border-color: #f1c40f;
}

.rbt-map-item.rbt-is-booked {
	--rbt-color: #e74c3c;
	background: rgba(231, 76, 60, .38);
	border-color: #e74c3c;
}

.rbt-booking-panel {
	position: fixed;
	z-index: 99999;
	top: 50%;
	left: 50%;
	width: min(520px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	overflow: auto;
	transform: translate(-50%, -50%);
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 10px 40px rgba(0,0,0,.3);
	padding: 24px;
}

.rbt-close-panel {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 50%;
	background: #f0f0f0;
	cursor: pointer;
	font-size: 22px;
	line-height: 1;
}

.rbt-panel-current-status {
	font-weight: 700;
}

.rbt-booking-form input,
.rbt-booking-form textarea {
	width: 100%;
	max-width: 100%;
}

.rbt-booking-message {
	margin-top: 12px;
	font-weight: 700;
}

.rbt-booking-message.rbt-success {
	color: #16803a;
}

.rbt-booking-message.rbt-error {
	color: #c0392b;
}

.rbt-table {
	width: 100%;
	border-collapse: collapse;
}

.rbt-table th,
.rbt-table td {
	border: 1px solid #ddd;
	padding: 10px;
	text-align: left;
}

@media (max-width: 700px) {
	.rbt-main-availability-filter {
		display: block;
	}

	.rbt-filter-field {
		margin-bottom: 12px;
	}

	.rbt-filter-field input {
		width: 100%;
	}

	.rbt-map-item {
		font-size: 10px;
	}

	.rbt-map-item-status {
		font-size: 9px;
	}
}
/* 0.5.0 application shell */
.rbt-professional-app{background:#fff;border:1px solid #dce5e9;border-radius:18px;overflow:hidden;box-shadow:0 16px 40px rgba(31,49,58,.08)}
.rbt-app-tabs{display:flex;gap:8px;padding:14px 18px;border-bottom:1px solid #e7eef1;background:#f8fbfc}
.rbt-app-tab{appearance:none;border:0;background:transparent;padding:10px 16px;border-radius:10px;font-weight:700;cursor:pointer;color:#52636b}
.rbt-app-tab.is-active{background:#118f84;color:#fff}
.rbt-app-view{display:none;padding:24px}.rbt-app-view.is-active{display:block}
.rbt-section-head h2{margin:4px 0 8px}.rbt-section-head p{color:#667981}.rbt-back-link{display:inline-block;margin-bottom:12px;text-decoration:none;font-weight:650}
.rbt-area-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.rbt-area-list .rbt-section-head{grid-column:1/-1}
a.rbt-area-card{display:block;padding:22px;border:1px solid #dbe6e9;border-radius:16px;text-decoration:none;background:#fff;transition:.15s ease}a.rbt-area-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(31,49,58,.09)}a.rbt-area-card h3{margin:0 0 8px;color:#14242c}a.rbt-area-card span{color:#118f84;font-weight:700}
.rbt-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rbt-booking-form label{display:block;margin:0 0 12px;font-weight:650}.rbt-booking-form input,.rbt-booking-form select,.rbt-booking-form textarea{box-sizing:border-box;width:100%;margin-top:6px;padding:10px 12px;border:1px solid #cbd8dd;border-radius:10px;background:#fff}.rbt-booking-form .rbt-check{display:flex;align-items:center;gap:8px}.rbt-booking-form .rbt-check input{width:auto;margin:0}.rbt-mode-options{padding:14px;margin:8px 0 14px;background:#f4f9f9;border-radius:12px}.rbt-table-wrap{overflow:auto}
@media(max-width:720px){.rbt-app-view{padding:16px}.rbt-form-grid{grid-template-columns:1fr}.rbt-app-tabs{overflow:auto}}
.rbt-map-warning{padding:16px 18px;margin:16px 0;border:1px solid #e7c36a;border-radius:12px;background:#fff8e6;color:#5d4714}

/* 0.5.1 SPA area navigation: no URL/query navigation required */
button.rbt-area-card{display:block;width:100%;padding:22px;border:1px solid #dbe6e9;border-radius:16px;text-align:left;background:#fff;cursor:pointer;transition:.15s ease;color:inherit;font:inherit}
button.rbt-area-card:hover,button.rbt-area-card:focus-visible{transform:translateY(-2px);box-shadow:0 10px 26px rgba(31,49,58,.09);outline:2px solid rgba(17,143,132,.25);outline-offset:2px}
button.rbt-area-card h3{margin:0 0 8px;color:#14242c}button.rbt-area-card span{color:#118f84;font-weight:700}
.rbt-area-detail[hidden],.rbt-area-selector[hidden]{display:none!important}
button.rbt-back-link{appearance:none;border:0;background:transparent;padding:0;color:#118f84;cursor:pointer;font:inherit;font-weight:650}


/* 0.5.2: native, cache-independent area opening */
.rbt-area-disclosures{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;align-items:start}
.rbt-area-disclosure{border:0;margin:0;min-width:0}
.rbt-area-disclosure>summary{list-style:none}
.rbt-area-disclosure>summary::-webkit-details-marker{display:none}
.rbt-area-disclosure .rbt-area-card{display:flex;width:100%;align-items:center;justify-content:space-between;gap:18px;padding:22px;border:1px solid #dbe6e9;border-radius:16px;background:#fff;cursor:pointer;transition:.15s ease;box-sizing:border-box}
.rbt-area-disclosure .rbt-area-card:hover,.rbt-area-disclosure .rbt-area-card:focus-visible{transform:translateY(-2px);box-shadow:0 10px 26px rgba(31,49,58,.09);outline:2px solid rgba(17,143,132,.25);outline-offset:2px}
.rbt-area-disclosure .rbt-area-card strong{display:block;color:#14242c;font-size:1.05rem}
.rbt-area-disclosure .rbt-area-card small{display:block;margin-top:7px;color:#118f84;font-size:.9rem;font-weight:700}
.rbt-area-chevron{font-size:1.5rem;color:#118f84;transition:transform .15s ease}
.rbt-area-disclosure[open] .rbt-area-chevron{transform:rotate(180deg)}
.rbt-area-disclosure[open]{grid-column:1/-1}
.rbt-area-disclosure-content{margin-top:16px;padding:20px;border:1px solid #dbe6e9;border-radius:16px;background:#fff}
.rbt-area-inline-head{margin-bottom:10px}
@media(max-width:720px){.rbt-area-disclosures{grid-template-columns:1fr}.rbt-area-disclosure-content{padding:12px}}

/* 0.5.4 map diagnostics */
.rbt-map-diagnostic{margin-top:10px;padding:9px 12px;border:1px dashed #9fb6bf;border-radius:9px;background:#f7fafb;color:#52636b;font-size:12px}

/* 0.5.7: cleaned layout rules */
.rbt-professional-app,
.rbt-app-view,
.rbt-area-disclosures,
.rbt-area-disclosure,
.rbt-area-disclosure-content,
.rbt-booking-app {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
}

/* Avoid grid track constraints when a location is opened. */
.rbt-area-disclosures {
    display: flex !important;
    flex-flow: row wrap !important;
    align-items: flex-start !important;
    gap: 16px !important;
    width: 100% !important;
}

.rbt-area-disclosure {
    flex: 1 1 280px !important;
    width: auto !important;
    min-width: 260px !important;
}

.rbt-area-disclosure[open] {
    flex: 1 0 100% !important;
    width: 100% !important;
    min-width: 0 !important;
}

.rbt-area-disclosure-content {
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
}

/* One continuous horizontal availability row. */
.rbt-booking-app .rbt-main-availability-filter {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 18px 0 !important;
    padding: 14px 16px !important;
    box-sizing: border-box !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
}

.rbt-booking-app .rbt-main-availability-filter .rbt-filter-label {
    display: inline-block !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    font-weight: 650 !important;
    line-height: 40px !important;
    white-space: nowrap !important;
}

.rbt-booking-app .rbt-main-availability-filter input[type="date"] {
    display: block !important;
    flex: 0 0 150px !important;
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
    height: 40px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

.rbt-booking-app .rbt-main-availability-filter input[type="time"] {
    display: block !important;
    flex: 0 0 108px !important;
    width: 108px !important;
    min-width: 108px !important;
    max-width: 108px !important;
    height: 40px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

.rbt-booking-app .rbt-main-availability-filter .rbt-refresh-availability {
    display: block !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-height: 40px !important;
    margin: 0 !important;
    white-space: nowrap !important;
}

/* Availability legend, including outside office hours. */
.rbt-availability-legend > span {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}

.rbt-legend-outside-hours {
    background: #3498db !important;
}

.rbt-map-item.rbt-is-outside-hours,
.rbt-map-item.rbt-is-outside-hours:hover,
.rbt-map-item.rbt-is-outside-hours:focus {
    --rbt-color: #3498db !important;
    background: rgba(52, 152, 219, .24) !important;
    border-color: #3498db !important;
    color: #173b55 !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
    opacity: .9 !important;
}

.rbt-map-item.rbt-is-outside-hours .rbt-map-item-status {
    background: rgba(255,255,255,.92) !important;
    color: #173b55 !important;
}

.rbt-booking-form .rbt-meeting-only[hidden],
.rbt-booking-form .rbt-clock-field[hidden],
.rbt-booking-form [hidden] {
    display: none !important;
}

@media (max-width: 760px) {
    .rbt-area-disclosures {
        flex-direction: column !important;
    }

    .rbt-area-disclosure,
    .rbt-area-disclosure[open] {
        flex: 1 0 auto !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .rbt-booking-app .rbt-main-availability-filter {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
    }
}


/* 0.5.8: structural availability toolbar. The outer box is deliberately not
   used as the layout engine; the inner row owns the horizontal layout so
   third-party/theme grid rules cannot stack the controls vertically. */
.rbt-booking-app .rbt-main-availability-filter {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 18px 0 !important;
    padding: 14px 16px !important;
    box-sizing: border-box !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
}
.rbt-booking-app .rbt-main-availability-filter > .rbt-availability-filter-row {
    grid-column: 1 / -1 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    width: max-content !important;
    min-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
}
.rbt-booking-app .rbt-inline-filter-control {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 7px !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
}
.rbt-booking-app .rbt-inline-filter-control .rbt-filter-label {
    display: inline-block !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    line-height: 40px !important;
    white-space: nowrap !important;
}
.rbt-booking-app .rbt-inline-filter-control input[type="date"] {
    flex: 0 0 150px !important;
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
    height: 40px !important;
    margin: 0 !important;
}
.rbt-booking-app .rbt-inline-filter-control input[type="time"] {
    flex: 0 0 108px !important;
    width: 108px !important;
    min-width: 108px !important;
    max-width: 108px !important;
    height: 40px !important;
    margin: 0 !important;
}
.rbt-booking-app .rbt-availability-filter-row > .rbt-refresh-availability {
    flex: 0 0 auto !important;
    width: auto !important;
    margin: 0 !important;
    white-space: nowrap !important;
}

/* 0.6.1 resource search and richer resource presentation */
.rbt-resource-search{margin:0 0 26px;padding:20px;border:1px solid #dbe6e9;border-radius:16px;background:#f8fbfc}
.rbt-resource-search-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.rbt-resource-search-head>div{display:flex;flex-direction:column;gap:3px}.rbt-resource-search-head strong{font-size:1.05rem;color:#14242c}.rbt-resource-search-head span{color:#667981;font-size:.9rem}
.rbt-search-reset{border:0;background:transparent;color:#118f84;font-weight:700;cursor:pointer;white-space:nowrap}
.rbt-resource-search-grid{display:grid;grid-template-columns:1.4fr 1.4fr .8fr 1.15fr .8fr 1.15fr .8fr;gap:12px;align-items:end}
.rbt-resource-search-grid label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:700;color:#52636b;min-width:0}
.rbt-resource-search-grid input,.rbt-resource-search-grid select{width:100%;min-width:0;height:42px;box-sizing:border-box;border:1px solid #cbd8dd;border-radius:9px;background:#fff;padding:7px 9px;color:#14242c}
.rbt-search-features{margin:14px 0}.rbt-search-features summary{cursor:pointer;color:#118f84;font-weight:700}.rbt-search-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:8px 14px;margin-top:12px;padding:14px;border-radius:10px;background:#fff;border:1px solid #e0e9ec}.rbt-search-feature-grid label{font-size:.9rem;color:#34464e}.rbt-search-feature-grid input{margin-right:6px}
.rbt-resource-search-button{border:0;border-radius:9px;padding:11px 16px;background:#118f84;color:#fff;font-weight:750;cursor:pointer}.rbt-resource-search-button:disabled{opacity:.6;cursor:wait}.rbt-resource-search-message{margin-left:12px;color:#52636b;font-size:.9rem}
.rbt-area-result-count{margin-left:auto;padding:5px 9px;border-radius:999px;background:#e2f4f1;color:#08776e;font-size:.78rem;font-weight:800;white-space:nowrap}.rbt-area-card em{display:block;margin-top:4px;color:#71828a;font-style:normal;font-size:.82rem}.rbt-search-result-summary{margin:8px 0 0;padding:8px 11px;border-radius:9px;background:#eaf7f5;color:#176d66;font-weight:650}.rbt-no-area-results{padding:18px;border:1px dashed #cbd8dd;border-radius:12px;text-align:center;color:#667981;background:#fafcfd}
.rbt-map-item-hover{display:none;position:absolute;z-index:30;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);width:max-content;max-width:240px;padding:9px 11px;border-radius:9px;background:#14242c;color:#fff;text-align:left;font-size:11px;font-weight:500;line-height:1.35;box-shadow:0 8px 24px rgba(0,0,0,.24);pointer-events:none}.rbt-map-item-hover strong,.rbt-map-item-hover span{display:block}.rbt-map-item-hover strong{margin-bottom:3px}.rbt-map-item:hover .rbt-map-item-hover,.rbt-map-item:focus-visible .rbt-map-item-hover{display:block}
.rbt-map-item.rbt-is-restricted,.rbt-map-item.rbt-is-restricted:hover,.rbt-map-item.rbt-is-restricted:focus{--rbt-color:#8999a1!important;background:rgba(137,153,161,.25)!important;border-color:#8999a1!important;color:#45545b!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important;opacity:.9!important}.rbt-legend-restricted{background:#8999a1!important}
.rbt-map-item[hidden]{display:none!important}.rbt-panel-image{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:11px;margin:0 0 15px}.rbt-panel-image[hidden]{display:none!important}.rbt-panel-resource-meta{margin:-5px 0 10px;color:#667981;font-size:.88rem}.rbt-participant-resource[hidden]{display:none!important}
@media(max-width:1180px){.rbt-resource-search-grid{grid-template-columns:repeat(4,minmax(145px,1fr))}}
@media(max-width:760px){.rbt-resource-search-head{align-items:flex-start}.rbt-resource-search-grid{grid-template-columns:repeat(2,minmax(135px,1fr));overflow-x:auto}.rbt-resource-search{padding:15px}.rbt-resource-search-message{display:block;margin:10px 0 0}.rbt-map-item-hover{display:none!important}}
