.availability{margin:22px 0;padding:18px;border:1px solid #dbe5ef;border-radius:12px;background:#f8fbfe}.availability h2{margin-top:0;color:#102a43}.availability h3{margin:16px 0 8px;color:#163b61}.availability .slot{margin:0 7px 7px 0;min-width:68px}.availability .slot.selected{background:#16866b;color:#fff;border-color:#16866b}
.schedule-tabs{display:flex;gap:8px;margin:18px 0 0}.schedule-tab{border:1px solid #b8c9d9;background:#eef4f8;color:#102a43;padding:11px 16px;border-radius:10px 10px 0 0;cursor:pointer;font-weight:700}.schedule-tab.active{background:#102a43;color:#fff;border-color:#102a43}.schedule-panel{display:none;border:1px solid #dbe5ef;padding:18px;border-radius:0 12px 12px;background:#f8fbfe}.schedule-panel.active{display:block}.doctor-results{display:grid;gap:12px;margin-top:15px}.doctor-card{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px;background:#fff;border:1px solid #dbe5ef;border-radius:10px}.doctor-card h3,.doctor-card p{margin:0 0 5px}.doctor-card.selected{border:2px solid #16866b;background:#f0fffa}@media(max-width:700px){.doctor-card{align-items:flex-start;flex-direction:column}.schedule-tabs{flex-wrap:wrap}}
.doctor-card{display:block}.doctor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.specialty-schedule{margin-top:12px;padding-top:12px;border-top:1px solid #dbe5ef}.specialty-date{margin:12px 0 7px;color:#163b61;font-size:1rem}.specialty-slot{margin:0 7px 7px 0}.specialty-slot.selected{background:#16866b;color:#fff;border-color:#16866b}@media(max-width:700px){.doctor-header{flex-direction:column}}
.appointment-dialog{width:min(460px,calc(100% - 30px));border:0;border-radius:14px;padding:22px;box-shadow:0 20px 60px #071a2d55;color:#102a43}.appointment-dialog::backdrop{background:#071a2d99}.appointment-dialog .dialog-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.appointment-dialog h2{margin:0}.appointment-dialog label{display:block;font-weight:700;margin:14px 0 6px}.dialog-close{border:0;background:transparent;font-size:30px;color:#526b80;cursor:pointer}.field-error{color:#b42318;font-weight:700;min-height:20px}
.access-schedule{display:grid;gap:10px;margin-top:16px}.access-day{display:grid;grid-template-columns:minmax(170px,1fr) 1fr 1fr;gap:14px;align-items:end;padding:13px;border:1px solid #dbe5ef;border-radius:10px;background:#fff}.access-day-name{align-self:center;font-weight:700}.access-day span{display:block;font-size:.85rem;font-weight:700;margin-bottom:5px}.access-schedule.disabled{opacity:.45;pointer-events:none}@media(max-width:700px){.access-day{grid-template-columns:1fr}.access-day-name{margin-bottom:4px}}
.availability-date{border:0;background:transparent;padding:6px 0;color:#075f91;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer}.availability-date:hover{color:#0b806d}.availability-dialog{max-height:80vh}.availability-modal-slots{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0;min-height:54px}.availability-slot{min-width:78px;text-align:center}.no-vacancies{width:100%;padding:22px;border-radius:10px;background:#fff3f2;color:#a51d16;font-size:1.15rem;font-weight:800;text-align:center}
.availability-status{display:inline-block;padding:6px 10px;border-radius:999px;font-size:.85rem;font-weight:800;white-space:nowrap}.has-vacancies{background:#d9f7e8;color:#126b45;border:1px solid #83d5ad}.no-vacancies-status{background:#ffe2df;color:#a51d16;border:1px solid #f1a19a}

.month-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.month-tabs .btn{white-space:nowrap}
