.appointment-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem;animation:fadeIn .3s ease-out}.appointment-popup-container{background:white;border-radius:1rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .3s ease-out}.appointment-popup-close{position:absolute;top:1rem;right:1rem;background:#f3f4f6;border:none;border-radius:50%;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;transition:all .2s ease-in-out;z-index:10}.appointment-popup-close:hover{background:#e5e7eb;color:#374151}.appointment-popup-icon{display:flex;justify-content:center;padding:2rem 2rem 1rem;animation:bounceIn .6s ease-out}.appointment-popup-content{padding:0 2rem 2rem;text-align:center}.appointment-popup-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:1rem;line-height:1.3}.appointment-popup-message{font-size:1rem;color:#6b7280;margin-bottom:1.5rem;line-height:1.5}.appointment-popup-details{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem;text-align:left}.appointment-detail-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid #e2e8f0}.appointment-detail-item:last-child{border-bottom:none;padding-bottom:0}.appointment-detail-item:first-child{padding-top:0}.appointment-detail-label{font-size:.875rem;color:#6b7280;font-weight:500}.appointment-detail-value{font-size:.875rem;color:#1f2937;font-weight:600}.appointment-popup-whatsapp{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:1px solid #10b981;border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem;display:flex;align-items:flex-start;gap:1rem}.whatsapp-icon{flex-shrink:0;margin-top:.25rem}.whatsapp-message{flex:1 1;text-align:left}.whatsapp-text{font-size:1rem;font-weight:600;color:#065f46;margin-bottom:.5rem}.whatsapp-details{font-size:.875rem;color:#047857;margin-bottom:.5rem;line-height:1.4}.whatsapp-note{font-size:.8rem;color:#059669;font-style:italic;margin:0}.appointment-popup-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.appointment-popup-button{padding:.75rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease-in-out;border:none;min-width:120px}.appointment-popup-button.primary{background:#3b82f6;color:white}.appointment-popup-button.primary:hover{background:#2563eb;transform:translateY(-1px)}.appointment-popup-button.secondary{background:#10b981;color:white}.appointment-popup-button.secondary:hover{background:#059669;transform:translateY(-1px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (max-width:640px){.appointment-popup-container{margin:1rem;max-width:calc(100% - 2rem)}.appointment-popup-content{padding:0 1.5rem 1.5rem}.appointment-popup-icon{padding:1.5rem 1.5rem 1rem}.appointment-popup-title{font-size:1.25rem}.appointment-popup-details{padding:1rem}.appointment-popup-whatsapp{padding:1rem;flex-direction:column;text-align:center;gap:.75rem}.whatsapp-message{text-align:center}.appointment-popup-actions{flex-direction:column}.appointment-popup-button{width:100%}}@media (max-width:480px){.appointment-popup-overlay{padding:.5rem}.appointment-popup-container{margin:.5rem;max-width:calc(100% - 1rem)}.appointment-popup-content{padding:0 1rem 1rem}.appointment-popup-icon{padding:1rem 1rem .5rem}}.appointment-container{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.appointment-header{text-align:center;margin-bottom:3rem;padding:2rem 0}.appointment-title{font-size:3rem;font-weight:800;color:#1f2937;margin-bottom:1rem;letter-spacing:-.025em}.appointment-subtitle{font-size:1.25rem;color:#6b7280;margin-bottom:2rem;font-weight:400;line-height:1.6}.appointment-info-card{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:1px solid #93c5fd;border-radius:.75rem;padding:1.5rem;margin-top:1.5rem;box-shadow:0 2px 4px rgba(59,130,246,.1)}.appointment-info-text{font-size:1rem;color:#1e40af;font-weight:600;line-height:1.6;margin:0}.appointment-form-card{background:white;border-radius:1rem;box-shadow:0 10px 25px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);padding:2.5rem;max-width:1000px;margin:0 auto;border:1px solid #e5e7eb}.appointment-form-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:2rem;padding-bottom:.75rem;border-bottom:2px solid #e5e7eb}.form-group{margin-bottom:1.75rem}.form-label{display:block;font-size:.9rem;font-weight:600;color:#374151;margin-bottom:.75rem;letter-spacing:.025em}.form-input{width:100%;padding:1rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;color:#1f2937;transition:all .3s ease-in-out;background-color:#fafafa}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 4px rgba(59,130,246,.1);background-color:white}.form-input:hover{border-color:#9ca3af;background-color:white}.form-textarea{width:100%;padding:1rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;color:#1f2937;resize:vertical;min-height:100px;transition:all .3s ease-in-out;background-color:#fafafa;font-family:inherit}.form-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 4px rgba(59,130,246,.1);background-color:white}.form-textarea:hover{border-color:#9ca3af;background-color:white}.form-select{width:100%;padding:1rem;border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;color:#1f2937;background-color:#fafafa;transition:all .3s ease-in-out;cursor:pointer}.form-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 4px rgba(59,130,246,.1);background-color:white}.form-select:hover{border-color:#9ca3af;background-color:white}.time-slot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:.75rem;gap:.75rem;margin-top:1rem}.time-slot-button{padding:1rem .75rem;border:2px solid #e5e7eb;border-radius:.5rem;background:white;color:#374151;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease-in-out;text-align:center;min-height:50px;display:flex;align-items:center;justify-content:center}.time-slot-button:hover{background:#f8fafc;border-color:#3b82f6;color:#1e40af;transform:translateY(-1px);box-shadow:0 4px 8px rgba(59,130,246,.15)}.time-slot-button.selected{background:#3b82f6;color:white;border-color:#3b82f6;transform:translateY(-1px);box-shadow:0 4px 12px rgba(59,130,246,.3)}.time-slot-button:disabled{opacity:.4;cursor:not-allowed;background:#f3f4f6;color:#9ca3af}.submit-button{width:100%;background:linear-gradient(135deg,#3b82f6,#2563eb);color:white;padding:1.25rem 2rem;border:none;border-radius:.75rem;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease-in-out;text-transform:uppercase;letter-spacing:.05em;margin-top:2rem;box-shadow:0 4px 12px rgba(59,130,246,.3)}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-2px);box-shadow:0 8px 20px rgba(59,130,246,.4)}.submit-button:active:not(:disabled){transform:translateY(0);box-shadow:0 4px 12px rgba(59,130,246,.3)}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:0 2px 4px rgba(59,130,246,.2)}.appointment-summary-card{background:white;border-radius:1rem;box-shadow:0 10px 25px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);padding:2rem;margin-bottom:2rem;border:1px solid #e5e7eb}.appointment-summary-title{font-size:1.25rem;font-weight:700;color:#1f2937;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid #e5e7eb}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid #f3f4f6}.summary-item:last-child{border-bottom:none}.summary-label{color:#6b7280;font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.summary-value{font-weight:700;color:#1f2937;font-size:1rem}.important-notes-card{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:1rem;padding:2rem;box-shadow:0 4px 12px rgba(245,158,11,.15)}.important-notes-title{font-size:1.25rem;font-weight:700;color:#92400e;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:2px solid #f59e0b}.important-notes-list{list-style:none;padding:0;margin:0}.important-notes-item{color:#92400e;font-size:.95rem;margin-bottom:1rem;padding-left:1.5rem;position:relative;line-height:1.6;font-weight:500}.important-notes-item:before{content:"▶";position:absolute;left:0;color:#f59e0b;font-weight:700;font-size:.8rem;top:.1rem}.important-notes-item:last-child{margin-bottom:0}.loading-spinner{display:inline-block;width:1.5rem;height:1.5rem;border-radius:50%;border:2px solid #e5e7eb;border-top-color:#3b82f6;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(1turn)}}.success-message{background:#d1fae5;border:1px solid #10b981;color:#065f46;border-radius:.5rem}.error-message,.success-message{padding:1rem;margin-bottom:1.5rem}.error-message{background:#fee2e2;border:1px solid #ef4444;color:#991b1b;border-radius:.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.5rem;gap:1.5rem;margin-bottom:1.75rem}.form-row .form-group{margin-bottom:0}.form-section{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid #e5e7eb}.form-section:last-child{border-bottom:none;margin-bottom:0}@media (max-width:1280px){.form-row{grid-template-columns:1fr;gap:0}.form-row .form-group{margin-bottom:1.75rem}}@media (max-width:768px){.appointment-container{padding:1rem 0}.appointment-header{margin-bottom:2rem;padding:1rem 0}.appointment-title{font-size:2.25rem}.appointment-subtitle{font-size:1.1rem}.appointment-info-card{padding:1.25rem;margin-top:1rem}.time-slot-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.appointment-form-card,.appointment-summary-card,.important-notes-card{padding:1.5rem}.form-row{grid-template-columns:1fr;gap:0}.form-group{margin-bottom:1.5rem}}@media (max-width:480px){.appointment-title{font-size:1.875rem}.appointment-subtitle{font-size:1rem}.time-slot-grid{grid-template-columns:1fr}.appointment-form-card,.appointment-summary-card,.important-notes-card{padding:1.25rem}.submit-button{padding:1rem 1.5rem;font-size:1rem}}