/* ── Booking modal styles ──────────────────────────────────────────────────── */

#reserva-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9999;display:none;align-items:center;justify-content:center;padding:16px}
#reserva-overlay.active{display:flex}
#reserva-modal{background:#fff;border-radius:12px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;padding:32px;position:relative}
#reserva-modal h4{font-size:18px;font-weight:700;margin-bottom:4px}
.reserva-steps{display:flex;gap:6px;margin-bottom:24px}
.reserva-steps span{flex:1;height:4px;border-radius:2px;background:#eee;transition:background .3s}
.reserva-steps span.done{background:#E91E8C}
.reserva-step{display:none}.reserva-step.active{display:block}
.reserva-label{font-size:13px;font-weight:600;color:#444;margin-bottom:6px;display:block}
.reserva-input{width:100%;border:1px solid #ddd;border-radius:8px;padding:10px 12px;font-size:14px;outline:none;transition:border .2s;background:#fff!important;color:#333!important;box-shadow:none!important}
.reserva-input:focus{border-color:#E91E8C}
#reserva-modal input,#reserva-modal textarea,#reserva-modal select{background:#fff!important;color:#333!important;box-shadow:none!important}
#reserva-modal input[type="date"]::-webkit-calendar-picker-indicator{filter:none;opacity:.6}
.slot-btn{border:2px solid #ddd;border-radius:8px;padding:10px 16px;background:#fff;cursor:pointer;font-size:14px;transition:all .2s;text-align:left;width:100%}
.slot-btn:hover:not(:disabled){border-color:#E91E8C}
.slot-btn.selected{border-color:#E91E8C;background:#fff0f7}
.slot-btn:disabled{opacity:.4;cursor:not-allowed}
.unit-btn{border:2px solid #ddd;border-radius:8px;padding:8px 20px;background:#fff;cursor:pointer;font-size:15px;font-weight:600;transition:all .2s}
.unit-btn:hover{border-color:#E91E8C}
.unit-btn.selected{border-color:#E91E8C;background:#fff0f7}
.route-btn{border:2px solid #ddd;border-radius:8px;padding:10px;background:#fff;cursor:pointer;font-size:14px;text-align:center;transition:all .2s;flex:1}
.route-btn:hover:not(:disabled){border-color:#E91E8C}
.route-btn.selected{border-color:#E91E8C;background:#fff0f7}
.route-btn:disabled{opacity:.4;cursor:not-allowed;background:#f8f8f8}
.extra-card{border:2px solid #ddd;border-radius:8px;padding:12px;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:center}
.extra-card:hover{border-color:#E91E8C}
.extra-card.selected{border-color:#E91E8C;background:#fff0f7}
.extra-qty-btn{width:26px;height:26px;border-radius:50%;border:1px solid #ddd;background:#fff;font-size:16px;line-height:1;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}
.extra-qty-btn:hover:not(:disabled){border-color:#E91E8C;color:#E91E8C}
.extra-qty-btn:disabled{opacity:.3;cursor:not-allowed}
.pay-option-btn{flex:1;border:2px solid #ddd;border-radius:8px;padding:10px 8px;background:#fff;cursor:pointer;text-align:center;transition:all .2s}
.pay-option-btn:hover{border-color:#E91E8C}
.pay-option-btn.selected{border-color:#E91E8C;background:#fff0f7}
.price-row{display:flex;justify-content:space-between;font-size:14px;padding:4px 0}
.price-row.total{font-weight:700;font-size:16px;border-top:1px solid #eee;margin-top:8px;padding-top:12px}
.price-row.anticipo{color:#E91E8C;font-weight:600}
.btn-reserva-next{background:#E91E8C;color:#fff;border:none;border-radius:8px;padding:12px 28px;font-size:15px;font-weight:600;cursor:pointer;width:100%;margin-top:16px;transition:background .2s}
.btn-reserva-next:hover{background:#c41770}
.btn-reserva-back{background:transparent;color:#666;border:1px solid #ddd;border-radius:8px;padding:10px 20px;font-size:14px;cursor:pointer;margin-top:8px;width:100%;transition:all .2s}
.btn-reserva-back:hover{border-color:#aaa;color:#333}
#reserva-close{position:absolute;top:16px;right:20px;background:none;border:none;font-size:22px;cursor:pointer;color:#999;line-height:1}
#reserva-close:hover{color:#333}
.reserva-error{color:#c0392b;font-size:13px;margin-top:6px;display:none}
.avail-badge{display:inline-block;font-size:12px;font-weight:600;border-radius:4px;padding:2px 7px;margin-left:6px}
.avail-badge.ok{background:#e8f5e9;color:#2e7d32}
.avail-badge.low{background:#fff3e0;color:#e65100}
.avail-badge.none{background:#fce4ec;color:#b71c1c}
#timer-bar{height:4px;background:#E91E8C;border-radius:2px;transition:width 1s linear}
#timer-txt{font-size:12px;color:#888;margin-top:4px}
.msi-btn{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 14px;border:2px solid #ddd;border-radius:8px;background:#fff;cursor:pointer;font-size:13px;text-align:left;transition:border-color .15s,background .15s}
.msi-btn:hover{border-color:#E91E8C}
.msi-btn.selected{border-color:#E91E8C;background:#fff0f7}
.msi-tag{font-size:11px;font-weight:600;color:#E91E8C;white-space:nowrap;margin-left:8px}
.msi-tag-free{color:#2e7d32}
