/**
 * Atlasia Bookings — AJAX Styles
 */
.atlasia-ajax-form { transition: all 0.3s ease }
.atlasia-ajax-form.submitting { opacity: 0.7; pointer-events: none }
.atlasia-ajax-form .cb-loading { display: none; text-align: center; padding: 20px }
.atlasia-ajax-form.submitting .cb-loading { display: block }
.atlasia-ajax-form .cb-success { display: none; background: var(--accent-50); border: 1px solid var(--accent); border-radius: var(--radius); padding: 24px; text-align: center }
.atlasia-ajax-form.submitting .cb-success { display: block }
.atlasia-ajax-form .cb-error { display: none; background: var(--warn-50); border: 1px solid var(--warn); border-radius: var(--radius); padding: 16px; color: var(--warn); margin-top: 12px }
.atlasia-ajax-form .cb-error.visible { display: block }

/* Departure calendar */
.bk-departures { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; margin: 16px 0 }
.bk-departure { padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); text-align: center; cursor: pointer; transition: all 0.2s }
.bk-departure:hover { border-color: var(--primary); transform: translateY(-2px) }
.bk-departure.available { background: var(--accent-50); border-color: var(--accent) }
.bk-departure.full { background: var(--bg); opacity: 0.5; cursor: not-allowed }
.bk-departure.active { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(50, 94, 135, 0.15) }
.bk-dep-date { display: block; font-weight: 700; font-size: 0.9rem; margin-bottom: 4px }
.bk-dep-status { display: block; font-size: 0.75rem; font-weight: 600; margin-bottom: 2px }
.bk-dep-status.available { color: var(--accent) }
.bk-dep-status.full { color: var(--warn) }
.bk-dep-spots { display: block; font-size: 0.7rem; color: var(--ink-3) }

/* Booking progress */
.bk-ajax-progress { display: flex; align-items: center; gap: 0; margin-bottom: 24px; padding: 0 4px }
.bk-step { display: flex; align-items: center; gap: 6px; font-size: 0.78rem; color: var(--ink-3); font-weight: 500 }
.bk-step-num { width: 24px; height: 24px; border-radius: 50%; background: var(--bg); border: 1px solid var(--line); color: var(--ink-3); display: flex; align-items: center; justify-content: center; font-size: 0.72rem; font-weight: 700; transition: all 0.3s }
.bk-step.done .bk-step-num { background: var(--accent); color: #fff; border-color: var(--accent) }
.bk-step.active .bk-step-num { background: var(--primary); color: #fff; border-color: var(--primary) }
.bk-step-line { flex: 1; height: 1px; background: var(--line); margin: 0 4px }

/* Inline validation */
.field-error { border-color: var(--warn) !important; box-shadow: 0 0 0 3px rgba(194, 65, 12, 0.1) !important }
.field-success { border-color: var(--accent) !important; box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.1) !important }
.field-hint { font-size: 0.78rem; margin-top: 4px; transition: all 0.2s }
.field-hint.error { color: var(--warn) }
.field-hint.success { color: var(--accent) }

/* WhatsApp preview */
.bk-wa-preview { background: #25d366; color: #fff; padding: 16px; border-radius: var(--radius); margin-top: 16px; text-align: center }
.bk-wa-preview strong { font-size: 1.1rem }
.bk-wa-preview p { margin: 4px 0 0; font-size: 0.85rem; opacity: 0.9 }
.bk-wa-preview a { color: #fff; text-decoration: underline }

/* Responsive */
@media (max-width: 600px) {
    .bk-departures { grid-template-columns: repeat(2, 1fr); gap: 6px }
    .bk-departure { padding: 8px }
    .bk-step { font-size: 0.7rem }
    .bk-ajax-progress { flex-wrap: wrap; gap: 8px }
    .bk-wa-preview { padding: 12px; font-size: 0.85rem }
    .bk-wa-preview strong { font-size: 0.95rem }
}
@media (min-width: 601px) and (max-width: 900px) {
    .bk-departures { grid-template-columns: repeat(3, 1fr); gap: 8px }
}
@media (min-width: 901px) {
    .bk-departures { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px }
    .bk-ajax-progress { justify-content: center; }
}
@media (hover: none) and (pointer: coarse) {
    .bk-departure { min-height: 60px; padding: 12px }
    .bk-step { min-height: 44px }
}
/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
    .bk-departure { padding: 4px 8px }
    .bk-dep-date { font-size: 0.8rem }
    .bk-step { font-size: 0.65rem }
    .bk-ajax-progress { margin-bottom: 12px }
}
/* Ultra mobile */
@media (max-width: 360px) {
    .bk-departures { grid-template-columns: 1fr 1fr; gap: 4px }
    .bk-departure { padding: 6px; font-size: 0.8rem }
}
/* High contrast touch */
@media (hover: none) and (pointer: coarse) and (max-width: 768px) {
    .bk-departure { min-height: 56px }
}

/* WhatsApp preview responsive */
.bk-wa-preview { word-wrap: break-word; overflow-wrap: break-word; }
.bk-wa-preview a { word-break: break-all; }

/* Print styles for booking */
@media print {
    .bk-departures { display: none }
    .bk-ajax-progress { display: none }
    .atlasia-ajax-form { opacity: 1 !important; pointer-events: auto !important }
}