.jbd-root {
	--jbd-teal: #0F6E56;
	--jbd-teal-dark: #085041;
	--jbd-blue: #185FA5;
	--jbd-border: #e2e2e2;
	--jbd-text-muted: #6b6b6b;
	font-family: inherit;
	max-width: 1200px;
	margin: 0 auto;
}
.jbd-listings-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; align-items: stretch; }
.jbd-listing-card { border: 1px solid var(--jbd-border); border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; height: 100%; }
.jbd-listing-photo { width: 100%; height: 160px; object-fit: cover; display: block; }
.jbd-listing-body { padding: 12px 14px; display: flex; flex-direction: column; flex-grow: 1; }
.jbd-listing-body h4 { margin: 0 0 4px; font-size: 15px; min-height: 44px; }
.jbd-listing-body p { margin: 0 0 10px; color: var(--jbd-text-muted); font-size: 13px; }
.jbd-select-listing { margin-top: auto; }
.jbd-button { display: inline-block; border: none; border-radius: 6px; padding: 10px 16px; font-size: 14px; cursor: pointer; }
.jbd-button-primary { background: var(--jbd-teal); color: #fff; }
.jbd-button-primary:hover { background: var(--jbd-teal-dark); }
.jbd-back-link { background: none; border: none; color: var(--jbd-blue); cursor: pointer; font-size: 13px; padding: 0 0 12px; }
.jbd-date-row { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 16px; }
.jbd-date-row label, #jbd-step-checkout label { display: flex; flex-direction: column; font-size: 13px; color: var(--jbd-text-muted); gap: 4px; }
.jbd-date-row input, #jbd-step-checkout input { border: 1px solid var(--jbd-border); border-radius: 6px; padding: 8px 10px; font-size: 14px; }
.jbd-quote-box { border: 1px solid var(--jbd-border); border-radius: 10px; padding: 14px 16px; margin-top: 8px; }
.jbd-quote-line { display: flex; justify-content: space-between; font-size: 14px; padding: 4px 0; }
.jbd-quote-total { border-top: 1px solid var(--jbd-border); margin-top: 6px; padding-top: 10px; font-weight: 600; }
.jbd-payment-element { margin: 16px 0; }
.jbd-payment-message { color: #b3261e; font-size: 13px; }
.jbd-error { color: #b3261e; font-size: 14px; }
.jbd-loading { color: var(--jbd-text-muted); font-size: 14px; }
.jbd-detail-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-top: 16px; }
.jbd-detail-photo { width: 100%; height: 160px; object-fit: cover; border-radius: 8px; }
