.availability-editor{margin-top:32px;border:1px solid #dce5db;border-radius:24px;overflow:hidden;background:#fff}.calendar-heading{padding:24px 28px;background:#edf3e7}.calendar-heading h3{font-size:26px;margin:8px 0}.calendar-heading p{margin-bottom:0}.availability-columns{display:grid;grid-template-columns:minmax(250px,1fr) minmax(270px,1fr);gap:28px;padding:24px}.hour-panel{padding:20px;background:#f8faf5;border-radius:18px}.hour-panel h4{font-size:19px;margin:0 0 10px}.hour-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:20px 0}.hour-choice{min-height:48px;border:1px solid #cddbc9;background:white;color:#254c3d;border-radius:12px;font-weight:600;cursor:pointer}.hour-choice.selected{background:#315c49;color:white;border-color:#315c49;box-shadow:0 2px 5px #315c4920}.hour-choice:disabled{opacity:.45;cursor:not-allowed}.hour-choice small{display:block;font-size:9px}.availability-editor .calendar-day{min-height:48px}.availability-editor .calendar-day.selected{background:#315c49;color:white}.availability-editor .calendar-day:disabled{opacity:.3}.appointment-card{padding:22px;margin:18px 0;border:1px solid #dce5db;border-radius:18px;background:#fafcf7}.appointment-card h3{margin:14px 0 8px}.booking-result{margin-top:18px}.hour-choice:focus-visible,.calendar-day:focus-visible{outline:3px solid #a3bc7d;outline-offset:3px}.public-calendar-grid .slot-line{gap:12px;flex-wrap:wrap}@media(max-width:740px){.availability-columns{grid-template-columns:1fr;padding:16px;gap:18px}.calendar-heading{padding:20px}.hour-panel{padding:16px}.hour-grid{gap:7px}}
.availability-editor .actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.availability-editor button.text-link{border:0;background:transparent;padding:7px 0;color:#315e4f;font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.availability-editor button.text-link:hover{color:#173c2e}
