#PublicSchedulingButton { background: #1769e0; border: 0; border-radius: 50%; bottom: 24px; box-shadow: 0 9px 24px rgba(23,105,224,.38); color: #fff; cursor: pointer; height: 62px; left: 24px; position: fixed; right: auto; width: 62px; z-index: 1040; }
#PublicSchedulingButton:hover { background: #0f56ba; transform: translateY(-2px); }
#PublicSchedulingButton i { font-size: 26px; }
#PublicSchedulingButton .public-scheduling-pulse { animation: publicSchedulingPulse 2.4s infinite; border: 2px solid rgba(23,105,224,.35); border-radius: 50%; inset: -7px; position: absolute; }
#PublicSchedulingButton .public-scheduling-label { background: #fff; border-radius: 7px; box-shadow: 0 4px 14px rgba(23,43,71,.2); color: #1d3859; direction: rtl; font-size: 12px; font-weight: bold; left: 72px; opacity: 0; padding: 7px 10px; pointer-events: none; position: absolute; top: 50%; transform: translateX(-5px) translateY(-50%); transition: opacity .2s ease, transform .2s ease, visibility .2s ease; visibility: hidden; white-space: nowrap; }
#PublicSchedulingButton:hover .public-scheduling-label, #PublicSchedulingButton:focus .public-scheduling-label { opacity: 1; transform: translateX(0) translateY(-50%); visibility: visible; }
@keyframes publicSchedulingPulse { 0% { opacity: .9; transform: scale(.82); } 70%,100% { opacity: 0; transform: scale(1.28); } }
.public-scheduling-modal .modal-dialog { max-width: 570px; }
.public-scheduling-modal .modal-content { border: 0; border-radius: 18px; overflow: hidden; }
.public-scheduling-modal .modal-header { background: linear-gradient(135deg,#145fcb,#2785ed); border: 0; color: #fff; padding: 19px 22px; }
.public-scheduling-modal .close { color: #fff; opacity: .9; text-shadow: none; }
.public-scheduling-modal .modal-body { background: #f7f9fc; min-height: 480px; padding: 18px; }
.public-scheduling-modal .modal-body.public-scheduling-form-body { min-height: 0; }
.public-scheduling-step { color: #7a8796; font-size: 13px; margin-bottom: 16px; text-align: center; }
.public-scheduling-step b { color: #1769e0; }
.public-scheduling-nav { align-items: center; display: flex; justify-content: space-between; margin-bottom: 13px; }
.public-scheduling-nav strong { color: #25364a; font-size: 19px; }
.public-scheduling-nav button, .public-scheduling-back { background: #fff; border: 1px solid #dce5ef; border-radius: 8px; color: #1769e0; height: 34px; min-width: 36px; }
.public-scheduling-weekdays, .public-scheduling-days { display: grid; grid-template-columns: repeat(7,1fr); gap: 6px; }
.public-scheduling-weekdays span { color: #7b8794; font-size: 12px; padding: 5px 0; text-align: center; }
.public-scheduling-day { background: #fff; border: 1px solid transparent; border-radius: 9px; color: #233348; font-size: 14px; height: 45px; }
.public-scheduling-day.is-unavailable { background: transparent; color: #b7c0ca; cursor: default; }
.public-scheduling-day.is-available { border-color: #c9dbf4; color: #1769e0; font-weight: bold; }
.public-scheduling-day.is-available:hover { background: #1769e0; border-color: #1769e0; color: #fff; }
.public-scheduling-day.is-today { box-shadow: inset 0 0 0 1px #1769e0; }
.public-scheduling-loader, .public-scheduling-empty { color: #748294; padding: 76px 15px; text-align: center; }
.public-scheduling-times { display: grid; gap: 9px; grid-template-columns: repeat(3,1fr); margin-top: 18px; }
.public-scheduling-time { background: #fff; border: 1px solid #c9dbf4; border-radius: 9px; color: #1769e0; font-weight: bold; padding: 10px 5px; }
.public-scheduling-time:hover { background: #1769e0; color: #fff; }
.public-scheduling-time.is-occupied { background: #f0f3f6; border-color: #e0e5eb; color: #9da8b5; cursor: not-allowed; opacity: .8; }
.public-scheduling-time.is-occupied i { margin-left: 5px; }
.public-scheduling-selected-date { color: #25364a; font-size: 18px; font-weight: bold; margin: 12px 0 0; text-align: center; }
.public-scheduling-form { margin-top: 22px; }
.public-scheduling-form-fields { display: flex; flex-wrap: wrap; gap: 12px; }
.public-scheduling-form-half { flex: 1 1 calc(50% - 6px); margin-bottom: 0; }
.public-scheduling-form-full { flex: 0 0 100%; margin-bottom: 0; }
.public-scheduling-form label { color: #4f6074; font-size: 13px; font-weight: bold; }
.public-scheduling-input { position: relative; }
.public-scheduling-input > i { color: #6f88a4; font-size: 16px; pointer-events: none; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); z-index: 2; }
.public-scheduling-input.is-textarea > i { top: 15px; transform: none; }
.public-scheduling-form .form-control { border-color: #d7e1ed; border-radius: 9px; min-height: 44px; padding-right: 42px; }
.public-scheduling-form textarea.form-control { min-height: 62px; }
.public-scheduling-submit { background: #1769e0; border: 0; border-radius: 9px; color: #fff; font-weight: bold; margin-top: 8px; min-height: 47px; width: 100%; }
.public-scheduling-submit:hover { background: #0f56ba; }
.public-scheduling-note { color: #7d8998; font-size: 12px; margin-top: 12px; text-align: center; }
@media (max-width: 575px) { #PublicSchedulingButton { bottom: 18px; height: 56px; left: 18px; right: auto; width: 56px; } .public-scheduling-modal .modal-dialog { margin: 9px; } .public-scheduling-modal .modal-body { min-height: calc(100vh - 130px); } .public-scheduling-form-fields { display: block; } .public-scheduling-form-half, .public-scheduling-form-full { margin-bottom: 14px; width: 100%; } }


