/* Hotel Booking Manager Pro — Public CSS */
:root {
	--hbm-gold: #C9A84C;
	--hbm-gold-light: #F5E6C3;
	--hbm-gold-dark: #9C7A28;
	--hbm-dark: #1a1a1a;
	--hbm-dark-2: #2d2d2d;
	--hbm-gray: #6b7280;
	--hbm-gray-light: #f9fafb;
	--hbm-border: #e5e7eb;
	--hbm-radius: 12px;
	--hbm-shadow: 0 2px 16px rgba(0,0,0,0.08);
	--hbm-shadow-lg: 0 8px 40px rgba(0,0,0,0.14);
	--hbm-transition: all 0.25s ease;
}

/* CONTAINER */
.hbm-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* ROOM HERO */
.hbm-room-hero { position: relative; height: 520px; overflow: hidden; }
.hbm-hero-slide { width: 100%; height: 100%; background-size: cover; background-position: center; background-repeat: no-repeat; }
.hbm-gallery-slider { width: 100%; height: 100%; }
.hbm-hero-no-image { width: 100%; height: 100%; background: linear-gradient(135deg, var(--hbm-dark) 0%, #333 100%); }
.hbm-room-hero__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.1) 60%); display: flex; align-items: flex-end; pointer-events: none; }
.hbm-room-hero__content { padding: 40px; pointer-events: all; }
.hbm-room-hero__breadcrumb { color: rgba(255,255,255,0.7); font-size: 13px; margin-bottom: 12px; }
.hbm-room-hero__breadcrumb a { color: rgba(255,255,255,0.7); text-decoration: none; }
.hbm-room-hero__breadcrumb a:hover { color: var(--hbm-gold); }
.hbm-room-hero__title { color: #fff; font-size: 36px; font-weight: 800; margin: 0 0 14px; line-height: 1.2; text-shadow: 0 2px 8px rgba(0,0,0,0.4); }
.hbm-room-hero__meta { display: flex; flex-wrap: wrap; gap: 10px; }
.hbm-hero-tag { background: rgba(255,255,255,0.15); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.2); color: #fff; padding: 5px 14px; border-radius: 999px; font-size: 13px; display: flex; align-items: center; gap: 6px; }
.hbm-hero-tag i { font-size: 14px; }
.swiper-button-next, .swiper-button-prev { color: #fff !important; background: rgba(0,0,0,0.4); width: 44px !important; height: 44px !important; border-radius: 50%; }
.swiper-button-next::after, .swiper-button-prev::after { font-size: 16px !important; }
.swiper-pagination-bullet-active { background: var(--hbm-gold) !important; }

/* ROOM LAYOUT */
.hbm-room-layout { display: grid; grid-template-columns: 1fr 380px; gap: 40px; padding-top: 48px; padding-bottom: 48px; align-items: start; }
.hbm-room-main { min-width: 0; }
.hbm-room-sidebar { position: sticky; top: 80px; }
@media (max-width: 1024px) { .hbm-room-layout { grid-template-columns: 1fr; } .hbm-room-sidebar { position: static; } }

/* SECTIONS */
.hbm-room-section { margin-bottom: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--hbm-border); }
.hbm-room-section:last-child { border-bottom: none; }
.hbm-section-title-sm { font-size: 22px; font-weight: 700; color: var(--hbm-dark); margin: 0 0 20px; position: relative; padding-bottom: 12px; }
.hbm-section-title-sm::after { content: ''; position: absolute; bottom: 0; left: 0; width: 40px; height: 3px; background: var(--hbm-gold); border-radius: 2px; }
.hbm-section-header { text-align: center; margin-bottom: 40px; }
.hbm-section-title { font-size: 28px; font-weight: 800; color: var(--hbm-dark); margin: 0 0 16px; }
.hbm-section-divider { display: flex; align-items: center; justify-content: center; }
.hbm-section-divider span { display: block; width: 60px; height: 3px; background: var(--hbm-gold); border-radius: 2px; }

/* DESCRIPTION */
.hbm-room-description { color: #374151; line-height: 1.8; font-size: 16px; }
.hbm-room-quick-info { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; margin-top: 24px; }
.hbm-quick-info-item { background: var(--hbm-gray-light); border-radius: 8px; padding: 14px; }
.hbm-quick-info-label { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--hbm-gray); margin-bottom: 4px; font-weight: 600; }
.hbm-quick-info-value { display: block; font-size: 15px; font-weight: 700; color: var(--hbm-dark); }

/* AMENITIES */
.hbm-amenities-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
.hbm-amenity-item { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--hbm-gray-light); border-radius: 8px; font-size: 14px; color: var(--hbm-dark); }
.hbm-amenity-item .dashicons { color: var(--hbm-gold); font-size: 18px; width: 18px; height: 18px; flex-shrink: 0; }
.hbm-amenity-icon { font-size: 20px; flex-shrink: 0; }

/* STICKY BOOKING CARD */
.hbm-sticky-booking-card { background: #fff; border-radius: var(--hbm-radius); box-shadow: var(--hbm-shadow-lg); border: 1px solid var(--hbm-border); overflow: hidden; }
.hbm-sticky-booking-card__header { background: var(--hbm-dark); padding: 20px 24px; }
.hbm-sticky-price { display: flex; align-items: baseline; gap: 8px; }
.hbm-sticky-price__amount { font-size: 32px; font-weight: 800; color: var(--hbm-gold); }
.hbm-sticky-price__per { color: rgba(255,255,255,0.6); font-size: 14px; }
.hbm-weekend-price { display: block; color: rgba(255,255,255,0.5); font-size: 12px; margin-top: 4px; }
.hbm-sticky-booking-card__body { padding: 24px; }

/* BOOKING FORM */
.hbm-booking-form-wrapper { }
.hbm-date-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.hbm-date-field { display: flex; flex-direction: column; gap: 5px; }
.hbm-field-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--hbm-gray); }
.hbm-date-input { border: 1.5px solid var(--hbm-border); border-radius: 8px; padding: 10px 12px; font-size: 14px; background: #fff; cursor: pointer; transition: var(--hbm-transition); }
.hbm-date-input:focus { border-color: var(--hbm-gold); outline: none; box-shadow: 0 0 0 3px rgba(201,168,76,0.12); }
.hbm-guest-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.hbm-guest-field { display: flex; flex-direction: column; gap: 5px; }
.hbm-counter { display: flex; align-items: center; border: 1.5px solid var(--hbm-border); border-radius: 8px; overflow: hidden; }
.hbm-counter__btn { background: var(--hbm-gray-light); border: none; width: 36px; height: 38px; cursor: pointer; font-size: 18px; font-weight: 700; color: var(--hbm-dark); transition: var(--hbm-transition); }
.hbm-counter__btn:hover { background: var(--hbm-gold-light); }
.hbm-counter__input { flex: 1; border: none; text-align: center; font-size: 15px; font-weight: 700; color: var(--hbm-dark); padding: 0; min-width: 0; }
.hbm-counter__input:focus { outline: none; }
.hbm-availability-result { margin-top: 10px; font-size: 13px; }
.hbm-availability-result--success { color: #065f46; background: #d1fae5; padding: 8px 12px; border-radius: 6px; }
.hbm-availability-result--error { color: #991b1b; background: #fee2e2; padding: 8px 12px; border-radius: 6px; }

/* PRICING SUMMARY */
.hbm-pricing-summary { border-top: 1px solid var(--hbm-border); padding-top: 16px; margin-top: 16px; }
.hbm-pricing-breakdown { margin-bottom: 14px; }
.hbm-pricing-row { display: flex; justify-content: space-between; padding: 6px 0; font-size: 14px; color: var(--hbm-gray); }
.hbm-pricing-row--total { font-size: 18px; font-weight: 800; color: var(--hbm-dark); border-top: 2px solid var(--hbm-border); margin-top: 8px; padding-top: 12px; }
.hbm-coupon-row { display: flex; gap: 8px; margin-bottom: 6px; }
.hbm-coupon-input { flex: 1; border: 1.5px solid var(--hbm-border); border-radius: 6px; padding: 8px 12px; font-size: 13px; letter-spacing: 1px; }
.hbm-coupon-input:focus { border-color: var(--hbm-gold); outline: none; }
.hbm-coupon-msg { font-size: 13px; padding: 6px 10px; border-radius: 4px; }
.hbm-coupon-msg--success { background: #d1fae5; color: #065f46; }
.hbm-coupon-msg--error { background: #fee2e2; color: #991b1b; }

/* BOOKING FORM FULL */
.hbm-booking-form { }
.hbm-form-section-title { font-size: 16px; font-weight: 700; color: var(--hbm-dark); margin: 20px 0 14px; padding-bottom: 8px; border-bottom: 1px solid var(--hbm-border); }
.hbm-form-grid { display: grid; gap: 12px; }
.hbm-form-grid--2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 600px) { .hbm-form-grid--2 { grid-template-columns: 1fr; } .hbm-date-row, .hbm-guest-row { grid-template-columns: 1fr; } }
.hbm-field { display: flex; flex-direction: column; gap: 5px; }
.hbm-field-error { font-size: 11px; color: #ef4444; min-height: 14px; }
.hbm-required { color: #ef4444; }
.hbm-input { border: 1.5px solid var(--hbm-border); border-radius: 8px; padding: 10px 12px; font-size: 14px; width: 100%; box-sizing: border-box; transition: var(--hbm-transition); background: #fff; color: var(--hbm-dark); }
.hbm-input:focus { border-color: var(--hbm-gold); outline: none; box-shadow: 0 0 0 3px rgba(201,168,76,0.1); }
.hbm-textarea { resize: vertical; min-height: 80px; }

/* SERVICES */
.hbm-services-grid { display: grid; grid-template-columns: 1fr; gap: 8px; margin-bottom: 14px; }
.hbm-service-item { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; background: var(--hbm-gray-light); border-radius: 8px; cursor: pointer; border: 1.5px solid transparent; transition: var(--hbm-transition); }
.hbm-service-item:hover { border-color: var(--hbm-gold-light); }
.hbm-service-item:has(.hbm-service-checkbox:checked) { border-color: var(--hbm-gold); background: var(--hbm-gold-light); }
.hbm-service-checkbox { margin-top: 2px; accent-color: var(--hbm-gold); transform: scale(1.2); }
.hbm-service-info { flex: 1; }
.hbm-service-name { display: block; font-weight: 600; font-size: 14px; color: var(--hbm-dark); }
.hbm-service-price { display: block; font-size: 13px; color: var(--hbm-gold); font-weight: 700; }
.hbm-service-desc { display: block; font-size: 12px; color: var(--hbm-gray); margin-top: 2px; }

/* SUBMIT */
.hbm-booking-form__submit { margin-top: 20px; }
.hbm-booking-terms { font-size: 11px; color: var(--hbm-gray); text-align: center; margin-top: 8px; }
.hbm-booking-summary-final { background: var(--hbm-gray-light); border-radius: 8px; padding: 14px; margin-bottom: 14px; font-size: 13px; }

/* SUCCESS */
.hbm-booking-success { text-align: center; padding: 30px 20px; }
.hbm-success-icon { width: 64px; height: 64px; background: linear-gradient(135deg, var(--hbm-gold) 0%, var(--hbm-gold-dark) 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 28px; color: #fff; margin: 0 auto 16px; box-shadow: 0 4px 20px rgba(201,168,76,0.4); }
.hbm-success-title { font-size: 22px; font-weight: 800; color: var(--hbm-dark); margin-bottom: 8px; }
.hbm-success-msg { color: var(--hbm-gray); margin-bottom: 20px; }
.hbm-success-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* BUTTONS */
.hbm-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 22px; border-radius: 8px; font-size: 14px; font-weight: 700; cursor: pointer; border: none; text-decoration: none; transition: var(--hbm-transition); white-space: nowrap; line-height: 1.4; font-family: inherit; }
.hbm-btn--gold { background: linear-gradient(135deg, var(--hbm-gold) 0%, var(--hbm-gold-dark) 100%); color: var(--hbm-dark); box-shadow: 0 4px 14px rgba(201,168,76,0.35); }
.hbm-btn--gold:hover { background: linear-gradient(135deg, var(--hbm-gold-dark) 0%, var(--hbm-gold) 100%); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(201,168,76,0.5); color: var(--hbm-dark); text-decoration: none; }
.hbm-btn--outline { background: transparent; border: 2px solid var(--hbm-gold); color: var(--hbm-gold); }
.hbm-btn--outline:hover { background: var(--hbm-gold); color: var(--hbm-dark); text-decoration: none; }
.hbm-btn--dark { background: var(--hbm-dark); color: #fff; }
.hbm-btn--dark:hover { background: var(--hbm-dark-2); color: #fff; }
.hbm-btn--lg { padding: 14px 32px; font-size: 16px; }
.hbm-btn--sm { padding: 6px 14px; font-size: 12px; }
.hbm-btn--block { width: 100%; }
.hbm-btn-spinner { width: 16px; height: 16px; border: 2px solid rgba(255,255,255,0.3); border-top-color: #fff; border-radius: 50%; animation: hbmSpin 0.7s linear infinite; display: inline-block; }
@keyframes hbmSpin { to { transform: rotate(360deg); } }

/* STATUS BADGES */
.hbm-status-badge { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; }
.hbm-status-badge--success { background: #d1fae5; color: #065f46; }
.hbm-status-badge--warning { background: #fef3c7; color: #92400e; }
.hbm-status-badge--danger { background: #fee2e2; color: #991b1b; }
.hbm-status-badge--info { background: #dbeafe; color: #1e40af; }
.hbm-status-badge--secondary { background: #e5e7eb; color: #374151; }

/* ROOMS GRID (search results) */
.hbm-rooms-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.hbm-room-card { background: #fff; border-radius: var(--hbm-radius); box-shadow: var(--hbm-shadow); overflow: hidden; transition: var(--hbm-transition); border: 1px solid var(--hbm-border); text-decoration: none; color: inherit; display: block; }
.hbm-room-card:hover { transform: translateY(-4px); box-shadow: var(--hbm-shadow-lg); text-decoration: none; color: inherit; }
.hbm-room-card__image { position: relative; height: 220px; overflow: hidden; background: var(--hbm-gray-light); }
.hbm-room-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.hbm-room-card:hover .hbm-room-card__image img { transform: scale(1.05); }
.hbm-room-card__image-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.hbm-room-card__image-placeholder .dashicons { font-size: 48px; width: 48px; height: 48px; color: #d1d5db; }
.hbm-room-card__badge { position: absolute; top: 12px; left: 12px; }
.hbm-room-card__wishlist { position: absolute; top: 12px; right: 12px; background: rgba(255,255,255,0.9); border: none; border-radius: 50%; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: var(--hbm-transition); }
.hbm-room-card__wishlist:hover { background: #fff; }
.hbm-room-card__body { padding: 20px; }
.hbm-room-card__type { font-size: 12px; text-transform: uppercase; letter-spacing: 0.8px; color: var(--hbm-gold); font-weight: 700; margin-bottom: 6px; }
.hbm-room-card__title { font-size: 18px; font-weight: 700; color: var(--hbm-dark); margin: 0 0 10px; }
.hbm-room-card__meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.hbm-room-card__meta-tag { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--hbm-gray); background: var(--hbm-gray-light); padding: 4px 10px; border-radius: 6px; }
.hbm-room-card__meta-tag .dashicons { font-size: 13px; width: 13px; height: 13px; }
.hbm-room-card__footer { display: flex; align-items: center; justify-content: space-between; padding-top: 14px; border-top: 1px solid var(--hbm-border); }
.hbm-room-card__price { display: flex; align-items: baseline; gap: 4px; }
.hbm-room-card__price-amount { font-size: 22px; font-weight: 800; color: var(--hbm-gold); }
.hbm-room-card__price-per { font-size: 12px; color: var(--hbm-gray); }

/* FEATURED ROOMS SECTION */
.hbm-featured-rooms { padding: 60px 0; }

/* AVAILABILITY CALENDAR */
.hbm-calendar-wrapper { background: #fff; border-radius: var(--hbm-radius); border: 1px solid var(--hbm-border); overflow: hidden; }
.hbm-calendar-nav { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; background: var(--hbm-dark); color: #fff; }
.hbm-calendar-nav h4 { margin: 0; font-size: 16px; color: #fff; }
.hbm-cal-nav-btn { background: rgba(255,255,255,0.15); border: none; color: #fff; padding: 6px 12px; border-radius: 6px; cursor: pointer; transition: var(--hbm-transition); }
.hbm-cal-nav-btn:hover { background: var(--hbm-gold); color: var(--hbm-dark); }
.hbm-calendar-grid { display: grid; grid-template-columns: repeat(7,1fr); text-align: center; }
.hbm-calendar-day-header { padding: 10px 0; font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--hbm-gray); background: var(--hbm-gray-light); }
.hbm-calendar-day { padding: 12px 0; font-size: 14px; position: relative; border: 1px solid var(--hbm-border); cursor: default; transition: var(--hbm-transition); }
.hbm-calendar-day--available { cursor: pointer; }
.hbm-calendar-day--available:hover { background: var(--hbm-gold-light); color: var(--hbm-gold-dark); }
.hbm-calendar-day--booked { background: #fee2e2; color: #9ca3af; }
.hbm-calendar-day--today { font-weight: 800; color: var(--hbm-gold); }
.hbm-calendar-day--past { color: #d1d5db; }
.hbm-calendar-day--empty { background: #fafafa; }
.hbm-calendar-legend { display: flex; gap: 16px; padding: 12px 20px; flex-wrap: wrap; }
.hbm-legend-item { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--hbm-gray); }
.hbm-legend-dot { width: 12px; height: 12px; border-radius: 3px; flex-shrink: 0; }

/* PRICING TABLE */
.hbm-pricing-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.hbm-pricing-table th { background: var(--hbm-dark); color: #fff; padding: 12px 16px; text-align: left; font-size: 12px; text-transform: uppercase; }
.hbm-pricing-table td { padding: 12px 16px; border-bottom: 1px solid var(--hbm-border); }
.hbm-pricing-table tr:hover td { background: var(--hbm-gray-light); }
.hbm-pricing-table .hbm-price-val { font-weight: 700; color: var(--hbm-gold); }

/* FAQ */
.hbm-faq-list { display: flex; flex-direction: column; gap: 12px; }
.hbm-faq-item { border: 1px solid var(--hbm-border); border-radius: 8px; overflow: hidden; }
.hbm-faq-question { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; font-weight: 600; cursor: pointer; color: var(--hbm-dark); background: #fff; transition: var(--hbm-transition); gap: 12px; user-select: none; }
.hbm-faq-question:hover { background: var(--hbm-gray-light); }
.hbm-faq-question.active { background: var(--hbm-dark); color: #fff; }
.hbm-faq-icon { font-size: 20px; flex-shrink: 0; transition: transform 0.3s; }
.hbm-faq-question.active .hbm-faq-icon { transform: rotate(45deg); }
.hbm-faq-answer { display: none; padding: 16px 20px; color: var(--hbm-gray); line-height: 1.7; font-size: 14px; background: #fafafa; border-top: 1px solid var(--hbm-border); }

/* REVIEWS */
.hbm-reviews-list { display: flex; flex-direction: column; gap: 20px; }
.hbm-review-card { background: var(--hbm-gray-light); border-radius: var(--hbm-radius); padding: 20px; }
.hbm-review-header { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.hbm-review-avatar { border-radius: 50%; }
.hbm-review-author { font-weight: 700; color: var(--hbm-dark); margin-bottom: 2px; }
.hbm-review-date { font-size: 12px; color: var(--hbm-gray); }
.hbm-review-stars { display: flex; gap: 2px; }
.hbm-star-filled { color: var(--hbm-gold); }
.hbm-star-empty { color: #d1d5db; }
.hbm-review-text { color: #374151; line-height: 1.7; font-size: 14px; margin: 0; }

/* SEARCH FILTER */
.hbm-search-filter { background: #fff; border-radius: var(--hbm-radius); box-shadow: var(--hbm-shadow-lg); padding: 28px; margin-bottom: 40px; border: 1px solid var(--hbm-border); }
.hbm-search-grid { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 16px; align-items: end; }
@media (max-width: 900px) { .hbm-search-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .hbm-search-grid { grid-template-columns: 1fr; } }
.hbm-search-field { display: flex; flex-direction: column; gap: 6px; }
.hbm-search-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--hbm-gray); display: flex; align-items: center; gap: 5px; }
.hbm-search-input { border: 1.5px solid var(--hbm-border); border-radius: 8px; padding: 11px 14px; font-size: 14px; background: #fff; transition: var(--hbm-transition); width: 100%; box-sizing: border-box; }
.hbm-search-input:focus { border-color: var(--hbm-gold); outline: none; box-shadow: 0 0 0 3px rgba(201,168,76,0.1); }
.hbm-guest-input { border: 1.5px solid var(--hbm-border); border-radius: 8px; padding: 11px 14px; font-size: 14px; cursor: pointer; display: flex; align-items: center; justify-content: space-between; position: relative; background: #fff; }
.hbm-guest-dropdown { position: absolute; top: 100%; left: 0; right: 0; background: #fff; border: 1px solid var(--hbm-border); border-radius: 8px; padding: 16px; box-shadow: var(--hbm-shadow-lg); z-index: 100; margin-top: 4px; }
.hbm-guest-row { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; }
.hbm-mini-counter { display: flex; align-items: center; gap: 12px; }
.hbm-mini-counter .hbm-counter__btn { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--hbm-border); background: #fff; font-size: 16px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.hbm-search-results__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.hbm-search-results__count { font-size: 18px; font-weight: 700; color: var(--hbm-dark); }

/* DASHBOARD */
.hbm-dashboard { display: grid; grid-template-columns: 260px 1fr; gap: 32px; align-items: start; max-width: 1200px; margin: 0 auto; padding: 40px 20px; }
@media (max-width: 900px) { .hbm-dashboard { grid-template-columns: 1fr; } }
.hbm-dashboard__sidebar { background: #fff; border-radius: var(--hbm-radius); box-shadow: var(--hbm-shadow); overflow: hidden; position: sticky; top: 80px; }
.hbm-dashboard__user { padding: 28px 20px; text-align: center; background: var(--hbm-dark); }
.hbm-dashboard__avatar { border-radius: 50%; border: 3px solid var(--hbm-gold); }
.hbm-dashboard__name { color: #fff; font-size: 18px; font-weight: 700; margin: 12px 0 4px; }
.hbm-dashboard__email { color: rgba(255,255,255,0.6); font-size: 13px; margin: 0 0 12px; word-break: break-all; }
.hbm-loyalty-badge { background: rgba(201,168,76,0.15); border: 1px solid var(--hbm-gold); color: var(--hbm-gold); padding: 6px 14px; border-radius: 999px; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; gap: 5px; }
.hbm-dashboard__nav { padding: 12px 0; }
.hbm-dash-nav-item { display: flex; align-items: center; gap: 10px; padding: 12px 20px; color: var(--hbm-dark); text-decoration: none; font-size: 14px; font-weight: 500; transition: var(--hbm-transition); }
.hbm-dash-nav-item:hover { background: var(--hbm-gray-light); color: var(--hbm-gold); text-decoration: none; }
.hbm-dash-nav-item.active { background: var(--hbm-gold-light); color: var(--hbm-gold-dark); font-weight: 700; border-right: 3px solid var(--hbm-gold); }
.hbm-dash-nav-item--logout { color: #ef4444; border-top: 1px solid var(--hbm-border); margin-top: 8px; }
.hbm-dash-nav-item--logout:hover { background: #fee2e2; color: #dc2626; }
.hbm-dash-nav-count { margin-left: auto; background: var(--hbm-gold); color: var(--hbm-dark); font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 999px; }
.hbm-dashboard__main { }
.hbm-dash-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-bottom: 24px; }
@media (max-width: 700px) { .hbm-dash-stats { grid-template-columns: repeat(2,1fr); } }
.hbm-dash-stat { background: #fff; border-radius: var(--hbm-radius); box-shadow: var(--hbm-shadow); padding: 20px; text-align: center; }
.hbm-dash-stat__value { display: block; font-size: 24px; font-weight: 800; color: var(--hbm-gold); }
.hbm-dash-stat__label { display: block; font-size: 11px; color: var(--hbm-gray); text-transform: uppercase; letter-spacing: 0.5px; margin-top: 4px; }
.hbm-dash-section { background: #fff; border-radius: var(--hbm-radius); box-shadow: var(--hbm-shadow); padding: 28px; margin-bottom: 24px; }
.hbm-dash-section-title { font-size: 20px; font-weight: 800; color: var(--hbm-dark); margin: 0 0 20px; padding-bottom: 14px; border-bottom: 1px solid var(--hbm-border); }
.hbm-booking-card-dash { display: flex; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--hbm-border); align-items: flex-start; }
.hbm-booking-card-dash:last-child { border-bottom: none; }
.hbm-booking-card-dash__image { width: 80px; height: 80px; border-radius: 8px; overflow: hidden; flex-shrink: 0; background: var(--hbm-gray-light); }
.hbm-booking-card-dash__image img { width: 100%; height: 100%; object-fit: cover; }
.hbm-booking-card-dash__image-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.hbm-booking-card-dash__body { flex: 1; min-width: 0; }
.hbm-booking-card-dash__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.hbm-booking-card-dash__room { font-size: 15px; font-weight: 700; color: var(--hbm-dark); margin: 0; }
.hbm-booking-card-dash__meta { display: flex; flex-wrap: wrap; gap: 8px; font-size: 12px; color: var(--hbm-gray); margin-bottom: 8px; }
.hbm-booking-card-dash__meta span { display: flex; align-items: center; gap: 4px; }
.hbm-booking-card-dash__footer { display: flex; align-items: center; gap: 12px; }
.hbm-booking-id { font-size: 11px; color: var(--hbm-gray); font-family: monospace; }
.hbm-booking-total { font-weight: 700; color: var(--hbm-gold); font-size: 16px; }
.hbm-booking-card-dash__actions { display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }

/* INVOICE */
.hbm-invoice-page { max-width: 900px; margin: 0 auto; padding: 40px 20px; }
.hbm-invoice-page__actions { display: flex; gap: 12px; margin-bottom: 24px; }
.hbm-invoice-content { background: #fff; border-radius: var(--hbm-radius); box-shadow: var(--hbm-shadow); overflow: hidden; border: 1px solid var(--hbm-border); }
.hbm-invoice { padding: 48px; font-family: 'Georgia', serif; }
.hbm-invoice-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 40px; padding-bottom: 28px; border-bottom: 2px solid var(--hbm-gold); }
.hbm-invoice-logo { font-size: 28px; font-weight: 800; color: var(--hbm-gold); }
.hbm-invoice-title { text-align: right; }
.hbm-invoice-title h1 { font-size: 40px; color: var(--hbm-dark); margin: 0 0 8px; font-weight: 800; letter-spacing: -1px; }
.hbm-invoice-number { color: var(--hbm-gray); font-size: 14px; font-family: monospace; }
.hbm-invoice-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-bottom: 36px; }
.hbm-invoice-meta h4 { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--hbm-gray); margin: 0 0 10px; font-family: -apple-system, sans-serif; }
.hbm-invoice-meta p { margin: 0 0 4px; font-size: 15px; color: var(--hbm-dark); }
.hbm-invoice-items { width: 100%; border-collapse: collapse; margin-bottom: 32px; }
.hbm-invoice-items th { background: var(--hbm-dark); color: #fff; padding: 12px 16px; text-align: left; font-size: 11px; text-transform: uppercase; font-family: -apple-system, sans-serif; }
.hbm-invoice-items td { padding: 14px 16px; border-bottom: 1px solid var(--hbm-border); font-size: 14px; }
.hbm-invoice-items tr:last-child td { border-bottom: none; }
.hbm-invoice-totals { display: flex; justify-content: flex-end; }
.hbm-invoice-totals-table { width: 280px; }
.hbm-invoice-total-row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--hbm-border); font-size: 14px; }
.hbm-invoice-total-row:last-child { border-bottom: none; font-size: 20px; font-weight: 800; color: var(--hbm-gold); margin-top: 8px; padding-top: 12px; border-top: 2px solid var(--hbm-gold); }
.hbm-invoice-footer { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--hbm-border); text-align: center; color: var(--hbm-gray); font-size: 12px; font-family: -apple-system, sans-serif; }

/* EMPTY STATES */
.hbm-empty-state { text-align: center; padding: 60px 20px; }
.hbm-empty-icon { font-size: 48px !important; width: 48px !important; height: 48px !important; opacity: 0.25; margin: 0 auto 16px; display: block; }
.hbm-empty-state h3 { font-size: 22px; margin-bottom: 8px; color: var(--hbm-dark); }
.hbm-empty-state p { color: var(--hbm-gray); margin-bottom: 24px; }

/* NOTICES */
.hbm-notice { padding: 14px 18px; border-radius: 8px; margin-bottom: 16px; border-left: 4px solid; }
.hbm-notice--error { background: #fee2e2; border-color: #ef4444; color: #991b1b; }
.hbm-notice p { margin: 0; }
.hbm-login-required { text-align: center; padding: 60px 20px; }
.hbm-login-required a { color: var(--hbm-gold); font-weight: 700; }

/* SKELETONS */
.hbm-skeleton-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.hbm-skeleton-card { background: #fff; border-radius: var(--hbm-radius); overflow: hidden; }
.hbm-skeleton { background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); background-size: 400px 100%; animation: hbmShimmer 1.4s ease infinite; border-radius: 4px; }
.hbm-skeleton--image { height: 220px; border-radius: 0; }
.hbm-skeleton--title { height: 20px; margin: 16px 16px 10px; }
.hbm-skeleton--text { height: 14px; margin: 0 16px 8px; }
.hbm-skeleton--short { width: 60%; }
@keyframes hbmShimmer { 0% { background-position: -400px 0; } 100% { background-position: 400px 0; } }

/* FLATPICKR OVERRIDES */
.flatpickr-calendar { box-shadow: var(--hbm-shadow-lg) !important; border-radius: var(--hbm-radius) !important; border: 1px solid var(--hbm-border) !important; font-family: inherit !important; }
.flatpickr-day.selected, .flatpickr-day.selected:hover { background: var(--hbm-gold) !important; border-color: var(--hbm-gold) !important; color: var(--hbm-dark) !important; }
.flatpickr-day.inRange { background: var(--hbm-gold-light) !important; border-color: var(--hbm-gold-light) !important; }
.flatpickr-day.startRange, .flatpickr-day.endRange { background: var(--hbm-gold) !important; border-color: var(--hbm-gold) !important; color: var(--hbm-dark) !important; }
.flatpickr-months { background: var(--hbm-dark) !important; border-radius: var(--hbm-radius) var(--hbm-radius) 0 0 !important; }
.flatpickr-month, .flatpickr-prev-month, .flatpickr-next-month { color: #fff !important; fill: #fff !important; }
.flatpickr-weekday { color: var(--hbm-gray) !important; font-weight: 600 !important; }

/* QR CODE */
.hbm-qr-section { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 24px; background: var(--hbm-gray-light); border-radius: var(--hbm-radius); }
.hbm-qr-section img { border-radius: 12px; box-shadow: var(--hbm-shadow); border: 4px solid #fff; }
.hbm-qr-section p { color: var(--hbm-gray); font-size: 13px; text-align: center; margin: 0; }

/* MAP */
.hbm-map-embed iframe { border-radius: var(--hbm-radius); width: 100%; height: 300px; border: none; }

/* LOYALTY */
.hbm-loyalty-card { background: linear-gradient(135deg, var(--hbm-dark) 0%, #2d2d2d 100%); color: #fff; border-radius: var(--hbm-radius); padding: 32px; display: flex; gap: 32px; align-items: center; margin-bottom: 24px; box-shadow: var(--hbm-shadow-lg); }
.hbm-loyalty-card__points { text-align: center; min-width: 160px; }
.hbm-loyalty-card__points .dashicons { font-size: 40px; width: 40px; height: 40px; color: var(--hbm-gold); }
.hbm-loyalty-card__value { display: block; font-size: 48px; font-weight: 800; color: var(--hbm-gold); line-height: 1; margin: 8px 0 4px; }
.hbm-loyalty-card__label { font-size: 12px; color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 1px; }
.hbm-loyalty-card__info p { margin-bottom: 12px; font-size: 15px; color: rgba(255,255,255,0.85); }
.hbm-loyalty-row { display: flex; align-items: center; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--hbm-border); font-size: 13px; }
.hbm-loyalty-earned { margin-left: auto; color: #10b981; font-weight: 700; }

/* INVOICE LIST */
.hbm-invoice-row-dash { display: flex; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--hbm-border); flex-wrap: wrap; font-size: 13px; }
.hbm-invoice-row-dash:last-child { border-bottom: none; }
.hbm-invoice-row-dash__info { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 200px; }
.hbm-invoice-row-dash__info strong { font-size: 14px; font-family: monospace; }
.hbm-invoice-row-dash__total { font-weight: 700; color: var(--hbm-gold); font-size: 16px; }

/* PROFILE */
.hbm-profile-card { display: flex; gap: 24px; align-items: flex-start; padding: 24px; background: var(--hbm-gray-light); border-radius: var(--hbm-radius); }
.hbm-profile-avatar { border-radius: 50%; flex-shrink: 0; }
.hbm-profile-info p { margin: 0 0 10px; font-size: 15px; }
