/**
 * booking-ui.css — CSS unico de reservar-cita (sin CDN Tailwind).
 * Utilidades + ajustes de formulario/tipografia.
 */
*,*::before,*::after{box-sizing:border-box}
.container{width:100%;margin-left:auto;margin-right:auto}
.mx-auto{margin-left:auto;margin-right:auto}
.block{display:block}.inline-flex{display:inline-flex}.flex{display:flex}.grid{display:grid}.hidden{display:none!important}
.flex-1{flex:1 1 0%}.flex-col{flex-direction:column}
.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}
.relative{position:relative}.fixed{position:fixed}.inset-0{inset:0}.mt-auto{margin-top:auto}
.w-full{width:100%}.h-full{height:100%}.h-\[90vh\]{height:90vh}.min-h-\[120px\]{min-height:120px}
.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cursor-pointer{cursor:pointer}.outline-none{outline:2px solid transparent;outline-offset:2px}
.text-left{text-align:left}.text-center{text-align:center}.uppercase{text-transform:uppercase}
.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:500}.font-bold{font-weight:500}
.font-sans{font-family:ui-sans-serif,system-ui,sans-serif}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.leading-relaxed{line-height:1.625}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}
.line-clamp-3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}
.border{border-width:1px;border-style:solid}.border-2{border-width:2px;border-style:solid}.border-4{border-width:4px;border-style:solid}
.border-b{border-bottom-width:1px;border-bottom-style:solid}.border-t{border-top-width:1px;border-top-style:solid}
.shadow-sm{box-shadow:0 1px 2px 0 rgb(0 0 0/.05)}.shadow-lg{box-shadow:0 10px 15px -3px rgb(0 0 0/.1),0 4px 6px -4px rgb(0 0 0/.1)}.shadow-2xl{box-shadow:0 25px 50px -12px rgb(0 0 0/.25)}
.transition,.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.duration-300{transition-duration:300ms}.duration-500{transition-duration:500ms}.transform{transform:translateZ(0)}
.backdrop-blur-sm{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.backdrop-blur-md{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.z-\[50\]{z-index:50}.z-\[60\]{z-index:60}.z-\[100\]{z-index:100}.z-\[120\]{z-index:120}
.max-w-md{max-width:28rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.col-span-full{grid-column:1 / -1}
.space-y-2>*+*{margin-top:.5rem}.space-y-3>*+*{margin-top:.75rem}.space-y-4>*+*{margin-top:1rem}.space-y-6>*+*{margin-top:1.5rem}
@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}
@keyframes booking-slide-in{from{transform:translateX(100%)}to{transform:translateX(0)}}.animate-slide-in{animation:booking-slide-in .3s ease-out}
@keyframes fadeInUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeInUp .35s ease-out}
.hover\:underline:hover{text-decoration:underline}
.hover\:scale-\[1\.01\]:hover{transform:scale(1.01)}.hover\:scale-\[1\.02\]:hover{transform:scale(1.02)}
.hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgb(0 0 0/.1),0 2px 4px -2px rgb(0 0 0/.1)}
.focus\:ring-1:focus{box-shadow:0 0 0 1px #1e40af}.focus\:ring-2:focus{box-shadow:0 0 0 2px #1e40af}
.focus\:ring-blue-800:focus{--tw-ring-color:#1e40af}.focus\:border-blue-800:focus{border-color:#1e40af}.focus\:border-slate-800:focus{border-color:#1e293b}
.loader{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.w-3{width:0.75rem}
.h-3{height:0.75rem}
.w-4{width:1rem}
.h-4{height:1rem}
.w-6{width:1.5rem}
.h-6{height:1.5rem}
.w-8{width:2rem}
.h-8{height:2rem}
.w-12{width:3rem}
.h-12{height:3rem}
.w-16{width:4rem}
.h-16{height:4rem}
.w-20{width:5rem}
.h-20{height:5rem}
.w-full{width:100%}
.h-full{height:100%}
.p-0{padding:0}
.px-0{padding-left:0;padding-right:0}
.py-0{padding-top:0;padding-bottom:0}
.pt-0{padding-top:0}.pb-0{padding-bottom:0}
.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mr-0{margin-right:0}
.gap-0{gap:0}
.p-0\.5{padding:0.125rem}
.px-0\.5{padding-left:0.125rem;padding-right:0.125rem}
.py-0\.5{padding-top:0.125rem;padding-bottom:0.125rem}
.pt-0\.5{padding-top:0.125rem}.pb-0\.5{padding-bottom:0.125rem}
.mt-0\.5{margin-top:0.125rem}.mb-0\.5{margin-bottom:0.125rem}.mr-0\.5{margin-right:0.125rem}
.gap-0\.5{gap:0.125rem}
.p-1{padding:0.25rem}
.px-1{padding-left:0.25rem;padding-right:0.25rem}
.py-1{padding-top:0.25rem;padding-bottom:0.25rem}
.pt-1{padding-top:0.25rem}.pb-1{padding-bottom:0.25rem}
.mt-1{margin-top:0.75rem}.mb-1{margin-bottom:0.25rem}.mr-1{margin-right:0.25rem}
.gap-1{gap:0.25rem}
.p-1\.5{padding:0.375rem}
.px-1\.5{padding-left:0.375rem;padding-right:0.375rem}
.py-1\.5{padding-top:0.375rem;padding-bottom:0.375rem}
.pt-1\.5{padding-top:0.375rem}.pb-1\.5{padding-bottom:0.375rem}
.mt-1\.5{margin-top:0.375rem}.mb-1\.5{margin-bottom:0.375rem}.mr-1\.5{margin-right:0.375rem}
.gap-1\.5{gap:0.375rem}
.p-2{padding:0.5rem}
.px-2{padding-left:0.5rem;padding-right:0.5rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.pt-2{padding-top:0.5rem}.pb-2{padding-bottom:0.5rem}
.mt-2{margin-top:0.5rem}.mb-2{margin-bottom:0.5rem}.mr-2{margin-right:0.5rem}
.gap-2{gap:0.5rem}
.p-3{padding:0.75rem}
.px-3{padding-left:0.75rem;padding-right:0.75rem}
.py-3{padding-top:0.75rem;padding-bottom:0.75rem}
.pt-3{padding-top:0.75rem}.pb-3{padding-bottom:0.75rem}
.mt-3{margin-top:0.75rem}.mb-3{margin-bottom:0.75rem}.mr-3{margin-right:0.75rem}
.gap-3{gap:0.75rem}
.p-4{padding:1rem}
.px-4{padding-left:1rem;padding-right:1rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.pt-4{padding-top:1rem}.pb-4{padding-bottom:1rem}
.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.mr-4{margin-right:1rem}
.gap-4{gap:1rem}
.p-5{padding:1.25rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.py-5{padding-top:1.25rem;padding-bottom:1.25rem}
.pt-5{padding-top:1.25rem}.pb-5{padding-bottom:1.25rem}
.mt-5{margin-top:1.25rem}.mb-5{margin-bottom:1.25rem}.mr-5{margin-right:1.25rem}
.gap-5{gap:1.25rem}
.p-6{padding:1.5rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem}
.pt-6{padding-top:1.5rem}.pb-6{padding-bottom:1.5rem}
.mt-6{margin-top:1.5rem}.mb-6{margin-bottom:1.5rem}.mr-6{margin-right:1.5rem}
.gap-6{gap:1.5rem}
.p-8{padding:2rem}
.px-8{padding-left:2rem;padding-right:2rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.pt-8{padding-top:2rem}.pb-8{padding-bottom:2rem}
.mt-8{margin-top:2rem}.mb-8{margin-bottom:2rem}.mr-8{margin-right:2rem}
.gap-8{gap:2rem}
.p-10{padding:2.5rem}
.px-10{padding-left:2.5rem;padding-right:2.5rem}
.py-10{padding-top:2.5rem;padding-bottom:2.5rem}
.pt-10{padding-top:2.5rem}.pb-10{padding-bottom:2.5rem}
.mt-10{margin-top:2.5rem}.mb-10{margin-bottom:2.5rem}.mr-10{margin-right:2.5rem}
.gap-10{gap:2.5rem}
.text-xs{font-size:0.75rem;line-height:1.25}
.text-sm{font-size:0.875rem;line-height:1.25}
.text-base{font-size:1rem;line-height:1.25}
.text-lg{font-size:1.125rem;line-height:1.25}
.text-xl{font-size:1.25rem;line-height:1.25}
.text-2xl{font-size:1.5rem;line-height:1.25}
.text-3xl{font-size:1.875rem;line-height:1.25}
.text-\[10px\]{font-size:10px;line-height:1.25}
.text-\[11px\]{font-size:11px;line-height:1.25}
.bg-white{background-color:#fff}
.text-white{color:#fff}
.border-white{border-color:#fff}
.hover\:bg-white:hover{background-color:#fff}
.hover\:text-white:hover{color:#fff}
.hover\:border-white:hover{border-color:#fff}
.bg-black{background-color:#000}
.text-black{color:#000}
.border-black{border-color:#000}
.hover\:bg-black:hover{background-color:#000}
.hover\:text-black:hover{color:#000}
.hover\:border-black:hover{border-color:#000}
.bg-slate-50{background-color:#f8fafc}
.text-slate-50{color:#f8fafc}
.border-slate-50{border-color:#f8fafc}
.hover\:bg-slate-50:hover{background-color:#f8fafc}
.hover\:text-slate-50:hover{color:#f8fafc}
.hover\:border-slate-50:hover{border-color:#f8fafc}
.bg-slate-100{background-color:#f1f5f9}
.text-slate-100{color:#f1f5f9}
.border-slate-100{border-color:#f1f5f9}
.hover\:bg-slate-100:hover{background-color:#f1f5f9}
.hover\:text-slate-100:hover{color:#f1f5f9}
.hover\:border-slate-100:hover{border-color:#f1f5f9}
.bg-slate-200{background-color:#e2e8f0}
.text-slate-200{color:#e2e8f0}
.border-slate-200{border-color:#e2e8f0}
.hover\:bg-slate-200:hover{background-color:#e2e8f0}
.hover\:text-slate-200:hover{color:#e2e8f0}
.hover\:border-slate-200:hover{border-color:#e2e8f0}
.bg-slate-300{background-color:#cbd5e1}
.text-slate-300{color:#cbd5e1}
.border-slate-300{border-color:#cbd5e1}
.hover\:bg-slate-300:hover{background-color:#cbd5e1}
.hover\:text-slate-300:hover{color:#cbd5e1}
.hover\:border-slate-300:hover{border-color:#cbd5e1}
.bg-slate-400{background-color:#94a3b8}
.text-slate-400{color:#94a3b8}
.border-slate-400{border-color:#94a3b8}
.hover\:bg-slate-400:hover{background-color:#94a3b8}
.hover\:text-slate-400:hover{color:#94a3b8}
.hover\:border-slate-400:hover{border-color:#94a3b8}
.bg-slate-500{background-color:#64748b}
.text-slate-500{color:#64748b}
.border-slate-500{border-color:#64748b}
.hover\:bg-slate-500:hover{background-color:#64748b}
.hover\:text-slate-500:hover{color:#64748b}
.hover\:border-slate-500:hover{border-color:#64748b}
.bg-slate-600{background-color:#475569}
.text-slate-600{color:#475569}
.border-slate-600{border-color:#475569}
.hover\:bg-slate-600:hover{background-color:#475569}
.hover\:text-slate-600:hover{color:#475569}
.hover\:border-slate-600:hover{border-color:#475569}
.bg-slate-700{background-color:#334155}
.text-slate-700{color:#334155}
.border-slate-700{border-color:#334155}
.hover\:bg-slate-700:hover{background-color:#334155}
.hover\:text-slate-700:hover{color:#334155}
.hover\:border-slate-700:hover{border-color:#334155}
.bg-slate-800{background-color:#1e293b}
.text-slate-800{color:#1e293b}
.border-slate-800{border-color:#1e293b}
.hover\:bg-slate-800:hover{background-color:#1e293b}
.hover\:text-slate-800:hover{color:#1e293b}
.hover\:border-slate-800:hover{border-color:#1e293b}
.bg-slate-900{background-color:#0f172a}
.text-slate-900{color:#0f172a}
.border-slate-900{border-color:#0f172a}
.hover\:bg-slate-900:hover{background-color:#0f172a}
.hover\:text-slate-900:hover{color:#0f172a}
.hover\:border-slate-900:hover{border-color:#0f172a}
.bg-gray-50{background-color:#f9fafb}
.text-gray-50{color:#f9fafb}
.border-gray-50{border-color:#f9fafb}
.hover\:bg-gray-50:hover{background-color:#f9fafb}
.hover\:text-gray-50:hover{color:#f9fafb}
.hover\:border-gray-50:hover{border-color:#f9fafb}
.bg-gray-100{background-color:#f3f4f6}
.text-gray-100{color:#f3f4f6}
.border-gray-100{border-color:#f3f4f6}
.hover\:bg-gray-100:hover{background-color:#f3f4f6}
.hover\:text-gray-100:hover{color:#f3f4f6}
.hover\:border-gray-100:hover{border-color:#f3f4f6}
.bg-gray-200{background-color:#e5e7eb}
.text-gray-200{color:#e5e7eb}
.border-gray-200{border-color:#e5e7eb}
.hover\:bg-gray-200:hover{background-color:#e5e7eb}
.hover\:text-gray-200:hover{color:#e5e7eb}
.hover\:border-gray-200:hover{border-color:#e5e7eb}
.bg-gray-300{background-color:#d1d5db}
.text-gray-300{color:#d1d5db}
.border-gray-300{border-color:#d1d5db}
.hover\:bg-gray-300:hover{background-color:#d1d5db}
.hover\:text-gray-300:hover{color:#d1d5db}
.hover\:border-gray-300:hover{border-color:#d1d5db}
.bg-gray-400{background-color:#9ca3af}
.text-gray-400{color:#9ca3af}
.border-gray-400{border-color:#9ca3af}
.hover\:bg-gray-400:hover{background-color:#9ca3af}
.hover\:text-gray-400:hover{color:#9ca3af}
.hover\:border-gray-400:hover{border-color:#9ca3af}
.bg-gray-500{background-color:#6b7280}
.text-gray-500{color:#6b7280}
.border-gray-500{border-color:#6b7280}
.hover\:bg-gray-500:hover{background-color:#6b7280}
.hover\:text-gray-500:hover{color:#6b7280}
.hover\:border-gray-500:hover{border-color:#6b7280}
.bg-gray-600{background-color:#4b5563}
.text-gray-600{color:#4b5563}
.border-gray-600{border-color:#4b5563}
.hover\:bg-gray-600:hover{background-color:#4b5563}
.hover\:text-gray-600:hover{color:#4b5563}
.hover\:border-gray-600:hover{border-color:#4b5563}
.bg-blue-50{background-color:#eff6ff}
.text-blue-50{color:#eff6ff}
.border-blue-50{border-color:#eff6ff}
.hover\:bg-blue-50:hover{background-color:#eff6ff}
.hover\:text-blue-50:hover{color:#eff6ff}
.hover\:border-blue-50:hover{border-color:#eff6ff}
.bg-blue-100{background-color:#dbeafe}
.text-blue-100{color:#dbeafe}
.border-blue-100{border-color:#dbeafe}
.hover\:bg-blue-100:hover{background-color:#dbeafe}
.hover\:text-blue-100:hover{color:#dbeafe}
.hover\:border-blue-100:hover{border-color:#dbeafe}
.bg-blue-200{background-color:#bfdbfe}
.text-blue-200{color:#bfdbfe}
.border-blue-200{border-color:#bfdbfe}
.hover\:bg-blue-200:hover{background-color:#bfdbfe}
.hover\:text-blue-200:hover{color:#bfdbfe}
.hover\:border-blue-200:hover{border-color:#bfdbfe}
.bg-blue-300{background-color:#9bcaff}
.text-blue-300{color:#9bcaff}
.border-blue-300{border-color:#9bcaff}
.hover\:bg-blue-300:hover{background-color:#9bcaff}
.hover\:text-blue-300:hover{color:#9bcaff}
.hover\:border-blue-300:hover{border-color:#9bcaff}
.bg-blue-600{background-color:#2563eb}
.text-blue-600{color:#2563eb}
.border-blue-600{border-color:#2563eb}
.hover\:bg-blue-600:hover{background-color:#2563eb}
.hover\:text-blue-600:hover{color:#2563eb}
.hover\:border-blue-600:hover{border-color:#2563eb}
.bg-blue-700{background-color:#1d4ed8}
.text-blue-700{color:#1d4ed8}
.border-blue-700{border-color:#1d4ed8}
.hover\:bg-blue-700:hover{background-color:#1d4ed8}
.hover\:text-blue-700:hover{color:#1d4ed8}
.hover\:border-blue-700:hover{border-color:#1d4ed8}
.bg-blue-800{background-color:#1e40af}
.text-blue-800{color:#1e40af}
.border-blue-800{border-color:#1e40af}
.hover\:bg-blue-800:hover{background-color:#1e40af}
.hover\:text-blue-800:hover{color:#1e40af}
.hover\:border-blue-800:hover{border-color:#1e40af}
.bg-blue-900{background-color:#1e3a8a}
.text-blue-900{color:#1e3a8a}
.border-blue-900{border-color:#1e3a8a}
.hover\:bg-blue-900:hover{background-color:#1e3a8a}
.hover\:text-blue-900:hover{color:#1e3a8a}
.hover\:border-blue-900:hover{border-color:#1e3a8a}
.bg-amber-50{background-color:#fffbeb}
.text-amber-50{color:#fffbeb}
.border-amber-50{border-color:#fffbeb}
.hover\:bg-amber-50:hover{background-color:#fffbeb}
.hover\:text-amber-50:hover{color:#fffbeb}
.hover\:border-amber-50:hover{border-color:#fffbeb}
.bg-amber-100{background-color:#fef3c7}
.text-amber-100{color:#fef3c7}
.border-amber-100{border-color:#fef3c7}
.hover\:bg-amber-100:hover{background-color:#fef3c7}
.hover\:text-amber-100:hover{color:#fef3c7}
.hover\:border-amber-100:hover{border-color:#fef3c7}
.bg-amber-600{background-color:#d97706}
.text-amber-600{color:#d97706}
.border-amber-600{border-color:#d97706}
.hover\:bg-amber-600:hover{background-color:#d97706}
.hover\:text-amber-600:hover{color:#d97706}
.hover\:border-amber-600:hover{border-color:#d97706}
.bg-red-400{background-color:#f87171}
.text-red-400{color:#f87171}
.border-red-400{border-color:#f87171}
.hover\:bg-red-400:hover{background-color:#f87171}
.hover\:text-red-400:hover{color:#f87171}
.hover\:border-red-400:hover{border-color:#f87171}
.bg-red-600{background-color:#dc2626}
.text-red-600{color:#dc2626}
.border-red-600{border-color:#dc2626}
.hover\:bg-red-600:hover{background-color:#dc2626}
.hover\:text-red-600:hover{color:#dc2626}
.hover\:border-red-600:hover{border-color:#dc2626}
.bg-red-700{background-color:#b91c1c}
.text-red-700{color:#b91c1c}
.border-red-700{border-color:#b91c1c}
.hover\:bg-red-700:hover{background-color:#b91c1c}
.hover\:text-red-700:hover{color:#b91c1c}
.hover\:border-red-700:hover{border-color:#b91c1c}
.bg-green-100{background-color:#dcfce7}
.text-green-100{color:#dcfce7}
.border-green-100{border-color:#dcfce7}
.hover\:bg-green-100:hover{background-color:#dcfce7}
.hover\:text-green-100:hover{color:#dcfce7}
.hover\:border-green-100:hover{border-color:#dcfce7}
.bg-green-600{background-color:#16a34a}
.text-green-600{color:#16a34a}
.border-green-600{border-color:#16a34a}
.hover\:bg-green-600:hover{background-color:#16a34a}
.hover\:text-green-600:hover{color:#16a34a}
.hover\:border-green-600:hover{border-color:#16a34a}
.bg-green-700{background-color:#15803d}
.text-green-700{color:#15803d}
.border-green-700{border-color:#15803d}
.hover\:bg-green-700:hover{background-color:#15803d}
.hover\:text-green-700:hover{color:#15803d}
.hover\:border-green-700:hover{border-color:#15803d}
.bg-cyan-50{background-color:#ecfeff}
.text-cyan-50{color:#ecfeff}
.border-cyan-50{border-color:#ecfeff}
.hover\:bg-cyan-50:hover{background-color:#ecfeff}
.hover\:text-cyan-50:hover{color:#ecfeff}
.hover\:border-cyan-50:hover{border-color:#ecfeff}
.bg-cyan-200{background-color:#a5f3fc}
.text-cyan-200{color:#a5f3fc}
.border-cyan-200{border-color:#a5f3fc}
.hover\:bg-cyan-200:hover{background-color:#a5f3fc}
.hover\:text-cyan-200:hover{color:#a5f3fc}
.hover\:border-cyan-200:hover{border-color:#a5f3fc}
.bg-cyan-400{background-color:#22d3ee}
.text-cyan-400{color:#22d3ee}
.border-cyan-400{border-color:#22d3ee}
.hover\:bg-cyan-400:hover{background-color:#22d3ee}
.hover\:text-cyan-400:hover{color:#22d3ee}
.hover\:border-cyan-400:hover{border-color:#22d3ee}
.bg-cyan-600{background-color:#0891b2}
.text-cyan-600{color:#0891b2}
.border-cyan-600{border-color:#0891b2}
.hover\:bg-cyan-600:hover{background-color:#0891b2}
.hover\:text-cyan-600:hover{color:#0891b2}
.hover\:border-cyan-600:hover{border-color:#0891b2}
.bg-purple-50{background-color:#faf5ff}
.text-purple-50{color:#faf5ff}
.border-purple-50{border-color:#faf5ff}
.hover\:bg-purple-50:hover{background-color:#faf5ff}
.hover\:text-purple-50:hover{color:#faf5ff}
.hover\:border-purple-50:hover{border-color:#faf5ff}
.bg-purple-200{background-color:#e9d5ff}
.text-purple-200{color:#e9d5ff}
.border-purple-200{border-color:#e9d5ff}
.hover\:bg-purple-200:hover{background-color:#e9d5ff}
.hover\:text-purple-200:hover{color:#e9d5ff}
.hover\:border-purple-200:hover{border-color:#e9d5ff}
.bg-purple-400{background-color:#c084fc}
.text-purple-400{color:#c084fc}
.border-purple-400{border-color:#c084fc}
.hover\:bg-purple-400:hover{background-color:#c084fc}
.hover\:text-purple-400:hover{color:#c084fc}
.hover\:border-purple-400:hover{border-color:#c084fc}
.bg-purple-700{background-color:#7e22ce}
.text-purple-700{color:#7e22ce}
.border-purple-700{border-color:#7e22ce}
.hover\:bg-purple-700:hover{background-color:#7e22ce}
.hover\:text-purple-700:hover{color:#7e22ce}
.hover\:border-purple-700:hover{border-color:#7e22ce}
.bg-black\/80{background-color:rgb(0 0 0/.8)}
.bg-slate-900\/60{background-color:rgb(15 23 42/.6)}
.bg-slate-900\/90{background-color:rgb(15 23 42/.9)}
.bg-white\/90{background-color:rgb(255 255 255/.9)}
.border-t-blue-800{border-top-color:#1e40af}.border-t-slate-500{border-top-color:#64748b}
.text-white{color:#fff}
@media (min-width:640px){.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:p-8{padding:2rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}}

/* --- Ajustes formulario (tipografia / bordes / layout) — alineado a LEGAZY-RESERVA --- */

/* Tipografia de campos (NO aplicar color a todos los buttons: rompe slots seleccionados) */
#main-card input,
#main-card optgroup,
#main-card select,
#main-card textarea {
    font-family: "Morales", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 0.875rem;
    line-height: 1.4;
    font-weight: 400;
    color: #1e293b;
    margin: 0;
}

#main-card button {
    font-family: "Morales", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    margin: 0;
}

#main-card input::placeholder,
#main-card textarea::placeholder {
    font-family: "Morales", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 0.875rem;
    font-weight: 400;
    font-style: normal;
    letter-spacing: normal;
    color: #94a3b8;
    opacity: 1;
}

#main-card input::-webkit-input-placeholder,
#main-card textarea::-webkit-input-placeholder {
    font-family: "Morales", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: #94a3b8;
    font-style: normal;
}

#main-card input::-moz-placeholder,
#main-card textarea::-moz-placeholder {
    font-family: "Morales", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: #94a3b8;
    font-style: normal;
    opacity: 1;
}

#main-card textarea {
    font-family: "Morales", "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    resize: vertical;
    min-height: 4.5rem;
    vertical-align: top;
    margin-top: 1rem;
}

/* Bordes visibles pese a * { border: 0 } del sitio */
#main-card input[type="text"],
#main-card input[type="tel"],
#main-card input[type="email"],
#main-card input[type="date"],
#main-card select,
#main-card textarea {
    border-width: 1px !important;
    border-style: solid !important;
    background-clip: padding-box;
    -webkit-appearance: none;
    appearance: none;
}

#main-card .border-slate-300 { border-color: #cbd5e1 !important; }
#main-card .border-slate-200 { border-color: #e2e8f0 !important; }
#main-card .border-blue-300 { border-color: #9bcaff !important; }
#main-card .border-blue-200 { border-color: #bfdbfe !important; }
#main-card .border-blue-100 { border-color: #dbeafe !important; }

#main-card select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.65rem center;
    background-size: 1rem;
    padding-right: 2.25rem;
}

/* Datos personales: layout LEGAZY (2 columnas en desktop) */
@media (min-width: 768px) {
    #bloqueConfirmacion .space-y-4 > .grid.md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

#bloqueConfirmacion .grid.grid-cols-2 {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 0.5rem;
}

#bloqueConfirmacion .flex.gap-2 {
    display: flex;
    gap: 0.5rem;
    align-items: stretch;
}

#bloqueConfirmacion #prefijo_pais {
    width: 5rem;
    flex-shrink: 0;
}

#bloqueConfirmacion #numero_visual {
    flex: 1 1 auto;
    min-width: 0;
}

/* Horarios: grid + estados (como LEGAZY + Tailwind) */
#slotsContainer {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

@media (min-width: 640px) {
    #slotsContainer {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

#main-card .slot-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.5rem 0.75rem;
    background-color: #fff !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 0.25rem;
    color: #334155 !important;
    font-family: "Morales", "Segoe UI", Roboto, sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.25;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

#main-card .slot-btn:hover {
    background-color: #eff6ff !important;
    border-color: #3b82f6 !important;
    color: #1d4ed8 !important;
}

#main-card .slot-btn.bg-blue-800,
#main-card .slot-btn.text-white {
    background-color: #1e40af !important;
    border-color: #1e40af !important;
    color: #ffffff !important;
}

#main-card .slot-btn.bg-blue-800:hover,
#main-card .slot-btn.text-white:hover {
    background-color: #1e3a8a !important;
    border-color: #1e3a8a !important;
    color: #ffffff !important;
}

/* Título de página */
main.container > .text-center h1 {
    font-family: "Morales", "Segoe UI", Roboto, sans-serif;
    font-weight: 500;
    color: #0f172a;
}

main.container > .text-center .color-azul {
    color: #1e40af;
}

/* Card */
#main-card.form-card {
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.2);
    overflow: hidden;
}

#main-card .bg-slate-50 {
    background-color: #f8fafc;
}

#main-card .mensaje {
    font-family: "Morales", "Segoe UI", Roboto, sans-serif;
    font-style: italic;
    font-size: 0.9rem;
    background-color: #fffadf;
    border: 1px solid #ffeeba;
    text-align: left;
    padding: 0.8rem;
    border-radius: 5px;
    color: #333;
}

@media (min-width: 769px) {
    #main-card .mensaje {
        max-width: 800px;
        margin-left: auto;
        margin-right: auto;
    }
}

#main-card #paymentLabel {
    letter-spacing: 0.02em;
}

#btnSubmit {
    font-family: "Morales", "Segoe UI", Roboto, sans-serif;
    letter-spacing: 0.02em;
    color: #fff;
}

main.container.max-w-4xl {
    max-width: 56rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

#main-card #btnSubmit{
    margin-top: 1rem;
}

#btnBack{
    background-color: transparent;
}

/* ==========================================================================
   Pasarela de pago embebida (Mercado Pago Bricks — sin redirección)
   ========================================================================== */
.pay-modal {
    position: fixed;
    inset: 0;
    z-index: 130;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(15, 23, 42, 0.6);
    backdrop-filter: blur(5px);
}

.pay-modal.is-open {
    display: flex;
}

.pay-modal[hidden] {
    display: none !important;
}

.pay-modal__dialog {
    width: min(100%, 460px);
    max-height: min(90vh, 700px);
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.35);
    font-family: "Morales", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.pay-modal__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.2rem;
    background: #0f172a;
    color: #fff;
}

.pay-modal__head h3 {
    margin: 0 0 0.2rem;
    font-size: 1.15rem;
    font-weight: 500;
    color: #fff;
}

.pay-modal__head p {
    margin: 0;
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.86rem;
}

.pay-modal__head strong {
    color: #9bcaff;
}

.pay-modal__close {
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.85;
    padding: 0.1rem 0.3rem;
}

.pay-modal__close:hover {
    opacity: 1;
}

.pay-modal__body {
    padding: 1.15rem 1.2rem 1.25rem;
    overflow-y: auto;
}

.pay-modal__intro {
    margin: 0 0 0.9rem;
    color: #475569;
    font-size: 0.9rem;
}

.pay-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.4rem;
    margin-bottom: 1rem;
}

.pay-tab {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 0.65rem 0.4rem;
    border: 1px solid #e2e8f0;
    border-radius: 0.5rem;
    background: #f8fafc;
    color: #1e40af;
    font-size: 0.78rem;
    font-weight: 500;
    cursor: pointer;
    transition: 0.2s ease;
}

.pay-tab:hover {
    border-color: #1e40af;
}

.pay-tab.is-active {
    border-color: #1e40af;
    background: rgba(30, 64, 175, 0.08);
    box-shadow: 0 0 0 1px #1e40af;
}

.pay-tab__icon {
    width: 28px;
    height: 28px;
    border-radius: 0.5rem;
    background: #1e40af;
    color: #fff;
    display: grid;
    place-items: center;
    font-weight: 800;
    font-size: 0.95rem;
    overflow: hidden;
}

.pay-tab__icon--yape,
.pay-tab__icon--cip {
    background: #fff;
    border: 1px solid #e5e7eb;
    padding: 3px;
}

.pay-tab__icon--yape img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 4px;
}

.pay-tab__icon--cip img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.pay-panel__hint {
    margin: 0 0 0.85rem;
    color: #475569;
    font-size: 0.85rem;
    line-height: 1.45;
}

.pay-field {
    margin-bottom: 0.75rem;
}

.pay-field label {
    display: block;
    font-size: 0.8rem;
    font-weight: 500;
    color: #1e293b;
    margin-bottom: 0.3rem;
}

.pay-field input {
    width: 100%;
    padding: 0.65rem 0.75rem;
    border: 1px solid #cbd5e1;
    border-radius: 0.4rem;
    font-size: 0.9rem;
}

.pay-panel__submit {
    width: 100%;
    justify-content: center;
    padding: 0.8rem 1rem;
    border: 0;
    border-radius: 0.6rem;
    background: #1e40af;
    color: #fff;
    font-weight: 500;
    font-size: 0.95rem;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.pay-panel__submit:hover {
    background: #1e3a8a;
}

.pay-panel__submit:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.pay-panel__result {
    margin-top: 0.85rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.5rem;
    background: #0f172a;
    color: #fff;
    font-size: 0.85rem;
}

.pay-panel__result a {
    color: #9bcaff;
    font-weight: 500;
}

.cip-voucher {
    text-align: center;
}

.cip-voucher__label {
    margin: 0 0 0.15rem;
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.75);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.cip-voucher__code {
    margin: 0 0 0.6rem;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #fff;
}

.cip-voucher__copy {
    border: 1px solid #9bcaff;
    background: transparent;
    color: #9bcaff;
    font-weight: 500;
    font-size: 0.8rem;
    padding: 0.35rem 0.9rem;
    border-radius: 999px;
    cursor: pointer;
    margin-bottom: 0.85rem;
}

.cip-voucher__meta {
    display: grid;
    gap: 0.35rem;
    margin: 0 0 0.75rem;
    text-align: left;
}

.cip-voucher__meta div {
    display: flex;
    justify-content: space-between;
    font-size: 0.85rem;
}

.cip-voucher__meta dt {
    color: rgba(255, 255, 255, 0.75);
}

.cip-voucher__meta dd {
    margin: 0;
    font-weight: 500;
    color: #fff;
}

.cip-voucher__hint {
    margin: 0 0 0.5rem;
    font-size: 0.8rem;
    line-height: 1.4;
    color: rgba(255, 255, 255, 0.85);
    text-align: left;
}

.cip-voucher__link {
    display: inline-block;
    font-size: 0.8rem;
}

.pay-modal__status {
    margin: 0 0 0.85rem;
    padding: 0.6rem 0.75rem;
    border-radius: 0.5rem;
    font-size: 0.85rem;
    text-align: center;
}

.pay-modal__status.is-info {
    background: #f1f5f9;
    color: #1e40af;
}

.pay-modal__status.is-error {
    background: rgba(220, 38, 38, 0.1);
    color: #b91c1c;
}

.pay-modal__note {
    margin: 0.75rem 0 0;
    color: #64748b;
    font-size: 0.75rem;
    text-align: center;
    line-height: 1.4;
}

button.svelte-11b9rht{
font-weight: 500 !important;
}