/* Public-facing module pages: bookings, forms, quotes.
 * Loaded on /afspraken/<slug>, /formulieren/<slug>, /offerte/<token>.
 */

/* ─── Bookings public type picker ─────────────────────────────────── */
.booking-page .slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 1rem; margin: 1rem 0; }
.booking-page .slot-day h4 { margin: 0 0 0.5rem; font-size: 0.9rem; text-transform: capitalize; }
.booking-page .slot-option { display: block; padding: 0.4rem 0.6rem; margin-bottom: 0.3rem; border: 1px solid var(--color-border, #ccc); border-radius: 4px; cursor: pointer; }
.booking-page .slot-option:has(input:checked) { background: var(--color-primary, #2563eb); color: #fff; }
.booking-page .slot-option input { display: none; }

/* ─── Public form layout ──────────────────────────────────────────── */
.public-form label { display: block; margin-bottom: 1rem; }
.public-form input[type=text],
.public-form input[type=email],
.public-form input[type=tel],
.public-form input[type=url],
.public-form input[type=number],
.public-form input[type=date],
.public-form textarea,
.public-form select { width: 100%; max-width: 520px; }

/* ─── Public quote viewer ─────────────────────────────────────────── */
.quote-public { max-width: 800px; }
.quote-actions { display: flex; gap: 1rem; margin-top: 1.5rem; }
.quote-public td.text-right,
.quote-public th.text-right { text-align: right; }

/* ─── Shared utilities ────────────────────────────────────────────── */
.grid-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.i-am-human { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; }

@media (max-width: 700px) {
  .grid-2col { grid-template-columns: 1fr; }
}
