@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&family=Inter:wght@400;500;600&family=Roboto:wght@400;500&display=swap");.font-montserrat{font-family:Montserrat,sans-serif}.font-inter{font-family:Inter,sans-serif}.font-roboto{font-family:Roboto,sans-serif}:root{--color-bg-light:#EEF4FA;--color-bg-gray:#F5F5F5;--color-text-primary:#243A5A;--color-text-secondary:#1A2E45;--color-cta:#2973F4;--color-cta-hover:#2563EB;--color-success:#2BDE73;--color-warning:#FCD446;--color-error:#FF754B;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1)}.bg-light{background-color:var(--color-bg-light)}.bg-gray{background-color:var(--color-bg-gray)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.btn-cta{background-color:var(--color-cta);color:white;font-family:Inter,sans-serif;font-weight:600;padding:12px 24px;border-radius:8px;transition:all .2s;border:none;cursor:pointer}.btn-cta:hover{background-color:var(--color-cta-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-cta:disabled{background-color:#D1D5DB;color:#9CA3AF;cursor:not-allowed;transform:none}.btn-success{background-color:var(--color-success);color:white}.btn-warning{background-color:var(--color-warning);color:var(--color-text-primary)}.btn-error{background-color:var(--color-error);color:white}.flex-booking-card{background:white;border:1px solid var(--color-bg-light);border-radius:12px;padding:24px;box-shadow:var(--shadow-sm);transition:all .3s}.flex-booking-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.time-selector-hour{padding:12px;border-radius:8px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;transition:all .2s;cursor:pointer;border:1px solid transparent}.time-selector-hour.available{background-color:var(--color-bg-gray);color:var(--color-text-primary)}.time-selector-hour.available:hover{background-color:var(--color-bg-light);color:var(--color-cta);border-color:var(--color-cta)}.time-selector-hour.selected{background-color:var(--color-cta);color:white;box-shadow:var(--shadow-md)}.time-selector-hour.disabled{background-color:#E5E7EB;color:#9CA3AF;cursor:not-allowed;opacity:.5}.time-range-segment{transition:all .2s;cursor:pointer}.time-range-segment.available{background-color:var(--color-success);opacity:.6}.time-range-segment.booked{background-color:var(--color-error);opacity:.5}.time-range-segment.selected{background-color:var(--color-cta);opacity:.9}.time-range-segment:hover{opacity:1;transform:scaleY(1.1)}.alert-warning{background-color:rgba(252,212,70,.1);border:1px solid var(--color-warning);border-radius:8px}.alert-error,.alert-warning{padding:12px;color:var(--color-text-secondary)}.alert-error{background-color:rgba(255,117,75,.1);border:1px solid var(--color-error);border-radius:8px}.alert-success{background-color:rgba(43,222,115,.1);border:1px solid var(--color-success);border-radius:8px;padding:12px;color:var(--color-text-secondary)}.loading-spinner{border:2px solid var(--color-bg-light);border-top-color:var(--color-cta);border-radius:50%;width:24px;height:24px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){.flex-booking-card{padding:16px}.time-selector-hour{padding:8px;font-size:12px}.btn-cta{padding:10px 20px;font-size:14px}}.fade-in{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-in{animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.rounded-lg{border-radius:12px}.rounded-md{border-radius:8px}.rounded-sm{border-radius:4px}.transition-all{transition:all .2s ease}.transition-colors{transition:background-color .2s,color .2s,border-color .2s}.transition-shadow{transition:box-shadow .2s}.hover-scale:hover{transform:scale(1.05)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.focus-ring:focus{outline:none;ring:2px solid var(--color-cta);ring-offset:2px}@media print{.no-print{display:none}.flex-booking-card{box-shadow:none;border:1px solid #000}}