.openpms-booking-form, .openpms-booking-wrap { max-width: 800px; margin: 20px auto; }
.openpms-loading { padding: 40px; text-align: center; color: #666; }
.openpms-search { max-width: 100%; }
.openpms-search-fields { display: flex; flex-wrap: wrap; gap: 16px; background: #f8f9fa; padding: 24px; border-radius: 8px; }
.openpms-field { flex: 1; min-width: 150px; }
.openpms-field label { display: block; margin-bottom: 4px; font-weight: 600; font-size: 13px; color: #333; }
.openpms-field select, .openpms-field input, .openpms-input { width: 100%; padding: 8px 12px; border: 1px solid #dcdcde; border-radius: 4px; font-size: 14px; box-sizing: border-box; }
.openpms-field-submit { display: flex; align-items: flex-end; }
.openpms-search-btn, .openpms-btn { padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; font-size: 14px; font-weight: 500; }
.openpms-btn-primary, .openpms-search-btn { background: #0073aa; color: #fff; }
.openpms-btn-primary:hover, .openpms-search-btn:hover { background: #005a87; }
.openpms-search-results { margin-top: 24px; }

.openpms-booking-step { background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; padding: 24px; margin-bottom: 16px; }
.openpms-nav-buttons { display: flex; justify-content: space-between; margin-top: 16px; gap: 8px; }

.openpms-room-card { border: 1px solid #e0e0e0; border-radius: 6px; padding: 16px; margin-bottom: 12px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.openpms-room-card:hover { border-color: #0073aa; }
.openpms-room-card h4 { margin: 0 0 4px; }
.openpms-room-details { flex: 1; }
.openpms-room-price { font-size: 18px; font-weight: 700; color: #0073aa; }
.openpms-room-price-box { text-align: right; white-space: nowrap; }

.openpms-extra-item { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #f0f0f0; }
.openpms-extra-item label { flex: 1; }

.openpms-price-summary { background: #f8f9fa; border-radius: 6px; padding: 16px; margin-top: 16px; }
.openpms-price-row { display: flex; justify-content: space-between; padding: 4px 0; font-size: 14px; }
.openpms-price-total { font-size: 18px; font-weight: 700; border-top: 2px solid #333; padding-top: 8px; margin-top: 8px; }

.openpms-confirmation { text-align: center; padding: 40px; }
.openpms-confirmation-icon { font-size: 64px; color: #46b450; margin-bottom: 16px; }
.openpms-payment-option { display: block; padding: 12px; border: 1px solid #e0e0e0; border-radius: 4px; margin-bottom: 8px; cursor: pointer; }
.openpms-payment-option:hover { border-color: #0073aa; }

.openpms-guest-portal, .openpms-review-form { max-width: 600px; margin: 20px auto; }
.openpms-guest-portal .openpms-panel { background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; padding: 20px; }

.openpms-status { display: inline-block; padding: 2px 8px; border-radius: 3px; font-size: 12px; font-weight: 600; }
.status-pending { background: #fff3cd; color: #856404; }
.status-confirmed { background: #cce5ff; color: #004085; }
.status-checked_in { background: #d4edda; color: #155724; }
.status-checked_out { background: #d4edda; color: #155724; }
.status-cancelled { background: #f8d7da; color: #721c24; }
.status-refunded { background: #e2e3e5; color: #383d41; }
.status-no_show { background: #e2e3e5; color: #383d41; }

@media (max-width: 768px) {
    .openpms-search-fields { flex-direction: column; }
    .openpms-field { min-width: 100%; }
    .openpms-room-card { flex-direction: column; text-align: center; }
    .openpms-room-price-box { text-align: center; }
}
