.modal-overlay{z-index:9999;background-color:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;position:relative;overflow-y:auto;box-shadow:0 20px 40px #0000004d}.modal-content.modal-content--wide{max-width:720px}.modal-overlay.modal-overlay--appointment{-webkit-overflow-scrolling:touch;box-sizing:border-box;-webkit-backdrop-filter:blur(6px);background-color:#0f172a94;justify-content:center;align-items:center;padding:clamp(16px,4vh,32px) 16px;overflow-y:auto}.modal-content.modal-content--appointment{border:1px solid #2563eb24;border-radius:14px;width:100%;max-width:min(1040px,96vw);max-height:none;overflow:hidden;box-shadow:0 4px 6px -1px #0f172a14,0 24px 48px -12px #0f172a47,inset 0 0 0 1px #ffffff0f}.modal-content.modal-content--appointment .modal-header{background:linear-gradient(#f8fafc 0%,#f1f5f9 100%);border-bottom:1px solid #2563eb1f;border-radius:14px 14px 0 0;flex-shrink:0;align-items:flex-start;gap:12px;padding:16px 18px 16px 20px;position:relative}.modal-content.modal-content--appointment .modal-header:before{content:"";background:linear-gradient(#3b82f6 0%,#2563eb 100%);border-radius:0 4px 4px 0;width:4px;position:absolute;top:12px;bottom:12px;left:0}.modal-content.modal-content--appointment .modal-header h3{letter-spacing:-.02em;word-break:break-word;color:#0f172a;flex:1;min-width:0;padding-left:10px;padding-right:8px;font-size:1.2rem;font-weight:600;line-height:1.4}.modal-content.modal-content--appointment .modal-header .close-btn{color:#64748b;border:1px solid #0000;flex-shrink:0;width:36px;height:36px;margin-top:2px;font-size:1.35rem;line-height:1;transition:color .2s,background .2s,border-color .2s,transform .15s}.modal-content.modal-content--appointment .modal-header .close-btn:hover{color:#1e40af;background:#2563eb14;border-color:#2563eb33}.modal-content.modal-content--appointment .modal-header .close-btn:active{transform:scale(.96)}.modal-content.modal-content--appointment .modal-body{background:#fafbfc;padding:18px 20px 20px}.appointment-form-compact .form-label{color:#334155;letter-spacing:.01em;margin-bottom:.28rem;font-size:.8rem;font-weight:600}.appointment-form-compact .form-control,.appointment-form-compact select.form-control{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.5rem .65rem;font-size:.875rem;line-height:1.4;transition:border-color .2s,box-shadow .2s}.appointment-form-compact input.form-control{min-height:calc(1.4em + 1rem + 2px)}.appointment-form-compact .form-control:hover,.appointment-form-compact select.form-control:hover{border-color:#cbd5e1}.appointment-form-compact .form-control:focus,.appointment-form-compact select.form-control:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}.appointment-form-compact select.appointment-select{appearance:none;cursor:pointer;box-sizing:border-box;color:#0f172a;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%232563eb' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right .55rem center;background-repeat:no-repeat;background-size:1rem;height:calc(1.4em + 1.55rem + 2px);min-height:calc(1.4em + 1.55rem + 2px);max-height:calc(1.4em + 1.55rem + 2px);padding:1rem 2.65rem 1rem .65rem;font-size:.875rem;font-weight:500;line-height:1.4}.appointment-form-compact select.appointment-select:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%231e40af' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 9l6 6 6-6'/%3E%3C/svg%3E");border-color:#93c5fd}.appointment-form-compact select.appointment-select--placeholder{color:#94a3b8;font-weight:400}.appointment-form-compact select.appointment-select--error{border-color:#f87171;box-shadow:0 0 0 1px #f8717159}.appointment-form-compact select.appointment-select--error:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef444433}.appointment-form-compact textarea.form-control{resize:vertical;min-height:auto;padding:.5rem .65rem}.appointment-form-compact .alert{border:1px solid #0000;border-radius:8px;margin-bottom:.65rem;padding:.5rem .75rem;font-size:.85rem}.appointment-form-compact .alert-success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.appointment-form-compact .alert-danger{color:#991b1b;background:#fef2f2;border-color:#fecaca}.appointment-form-compact .appointment-form-footer,.appointment-form-compact .col-12.text-end{border-top:1px solid #e8eef4;margin-top:.35rem;padding-top:1rem}.appointment-form-compact .appointment-form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;width:100%;display:flex}.appointment-form-compact .btn-appointment-cancel{letter-spacing:.04em;text-transform:uppercase;color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin:0;padding:.5rem 1.2rem;font-size:.8125rem;font-weight:600;transition:background .2s,border-color .2s,color .2s,box-shadow .2s}.appointment-form-compact .btn-appointment-cancel:hover:not(:disabled){color:#334155;background:#f8fafc;border-color:#cbd5e1}.appointment-form-compact .btn-appointment-cancel:disabled{opacity:.55;cursor:not-allowed}.appointment-form-compact .btn-appointment-submit{letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:linear-gradient(#2563eb 0%,#1d4ed8 100%);border:none;border-radius:8px;min-width:11rem;margin:0;padding:.55rem 1.5rem;font-size:.875rem;font-weight:600;transition:transform .15s,box-shadow .2s,filter .2s;box-shadow:0 2px 8px #2563eb61;color:#fff!important}.appointment-form-compact .btn-appointment-submit:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 4px 16px #2563eb7a}.appointment-form-compact .btn-appointment-submit:active:not(:disabled){transform:translateY(1px)}.appointment-form-compact .btn-appointment-submit:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.2);box-shadow:0 1px 3px #0f172a1f}@media (max-width:575px){.appointment-form-compact .appointment-form-actions{flex-direction:column;align-items:stretch}.appointment-form-compact .btn-appointment-cancel,.appointment-form-compact .btn-appointment-submit{text-align:center;width:100%;min-width:0}}.appointment-form-compact .btn-main-md{letter-spacing:.04em;border-radius:8px;padding:.55rem 1.5rem;font-size:.875rem;font-weight:600;box-shadow:0 2px 8px #2563eb61}.appointment-form-compact .btn-main-md:hover:not(:disabled){box-shadow:0 4px 16px #2563eb73}.appointment-form-compact .btn-main-md:disabled{opacity:.55;cursor:not-allowed}.modal-header{background:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3{color:#2c3e50;margin:0;font-size:1.5rem;font-weight:600}.close-btn{color:#6c757d;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:24px;transition:all .2s;display:flex}.close-btn:hover{color:#495057;background-color:#e9ecef}.modal-body{padding:24px}.modal-content:not(.modal-content--appointment) .btn{cursor:pointer;border:none;border-radius:8px;padding:12px 24px;font-size:1rem;font-weight:600;text-decoration:none;transition:all .2s}.modal-content:not(.modal-content--appointment) .btn-main-md{color:#fff;background-color:#007bff}.modal-content:not(.modal-content--appointment) .btn-main-md:hover{background-color:#0056b3;transform:translateY(-1px)}.modal-overlay--login-prompt{-webkit-backdrop-filter:blur(6px);background-color:#0f172aa6;justify-content:center;align-items:center;padding:20px 16px}.modal-content--login-prompt{border:1px solid #2563eb24;border-radius:16px;width:100%;max-width:380px;overflow:hidden;box-shadow:0 24px 48px -12px #0f172a4d}.modal-header--login-prompt{background:linear-gradient(#f8fafc 0%,#f1f5f9 100%);border-bottom:1px solid #2563eb1f;border-radius:16px 16px 0 0;padding:14px 16px 14px 20px;position:relative}.modal-header--login-prompt:before{content:"";background:linear-gradient(#3b82f6 0%,#2563eb 100%);border-radius:0 4px 4px 0;width:4px;position:absolute;top:10px;bottom:10px;left:0}.modal-body--login-prompt{text-align:center;background:#fff;padding:28px 24px 24px}.login-prompt-icon{background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%);border:2px solid #2563eb26;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 16px;display:flex}.login-prompt-icon .fa{color:#2563eb;font-size:1.6rem}.login-prompt-text{color:#374151;margin-bottom:8px;font-size:.975rem;line-height:1.5}.login-prompt-service{color:#6b7280;margin-bottom:24px;font-size:.85rem}.login-prompt-service strong{color:#1e3a8a}.login-prompt-actions{flex-direction:column;gap:10px;display:flex}@media (max-width:768px){.modal-content{max-height:95vh;margin:10px}.modal-content.modal-content--appointment{max-height:none;overflow:visible}.modal-header{padding:16px 20px}.modal-body{padding:20px}.modal-content.modal-content--appointment .modal-body{padding:12px 14px 14px}}
