.appointment-calendar{position:relative;overflow:visible;padding:22px 24px;color:#0c203b}.calendar-toolbar{align-items:center;margin-bottom:18px}.calendar-toolbar h2{font-size:25px;margin:0}.calendar-navigation{flex-wrap:nowrap}.calendar-navigation select,.calendar-controls select{width:auto;min-width:104px;padding:8px 11px}.calendar-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.calendar-controls>div{display:flex;align-items:center;gap:13px}.calendar-legend{font-size:13px;flex-wrap:wrap}.calendar-legend .confirmed{color:#0ca875}.calendar-legend .pending{color:#eda80d}.calendar-legend .rescheduled{color:#ef4774}.calendar-legend .cancelled{color:#9eacc0}.view-switch{display:flex!important;gap:0!important;border:1px solid #cddbea;border-radius:8px;overflow:hidden}.view-switch button{border:0;border-right:1px solid #dce6ef;background:#fff;color:#344b63;padding:9px 16px;font-weight:650}.view-switch button:last-child{border:0}.view-switch button.active{background:#087cf0;color:#fff}.calendar-weekday{grid-template-columns:repeat(7,minmax(100px,1fr));border-color:#dce6ef}.calendar-weekday b{padding:9px 13px;background:#f7faff;color:#32475f}.calendar-week.calendar-month{height:clamp(510px,62vh,680px);grid-template-columns:repeat(7,minmax(100px,1fr));grid-template-rows:repeat(6,minmax(0,1fr));overflow:hidden;background:#dce6ef}.calendar-month .calendar-day{min-height:0;min-width:0;overflow:hidden;background:#fff;cursor:pointer}.calendar-month .calendar-day:hover{background:#f8fbff}.calendar-month .calendar-day.outside{opacity:.55;background:#f6f8fb}.calendar-month .calendar-day>header{height:31px;border:0;padding:5px 9px}.calendar-month .calendar-day>header b{display:block;width:auto;height:auto;background:none;color:#10243d;font-size:14px}.calendar-month .calendar-day.today>header b{display:grid;width:24px;height:24px;background:#087cf0;color:#fff}.calendar-month .calendar-day>header small{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-slots{gap:3px;padding:2px 7px 6px;overflow:hidden}.calendar-booking{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:6px;width:100%;min-height:27px;border:0;border-left:3px solid #087cf0;border-radius:6px;background:#eaf4ff;color:#10243d;padding:4px 7px;box-shadow:none}.calendar-booking time,.calendar-booking strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#10243d}.calendar-booking small{grid-column:1/-1;font-size:11px;color:#5f7287}.calendar-month .calendar-booking small{display:none}.calendar-booking.status-confirmed{border-left-color:#10b981;background:#e7f8f1}.calendar-booking.status-pending{border-left-color:#f3ae1b;background:#fff5df}.calendar-booking.status-rescheduled{border-left-color:#f04470;background:#ffebf1}.calendar-booking.status-cancelled{border-left-color:#a8b5c8;background:#eef2f6;color:#68798b}.calendar-more{height:23px;border:0;border-radius:5px;background:#edf5ff;color:#174b86;text-align:left;padding:2px 8px;font-size:11px;font-weight:750}.calendar-count{text-align:right;color:#60758b;font-size:12px;padding-top:12px}.appointment-drawer{position:fixed;z-index:1000;top:0;right:0;width:min(440px,100vw);height:100vh;background:#fff;border-left:1px solid #d8e4ef;box-shadow:-18px 0 46px #1233522e;padding:26px 24px;overflow:auto;animation:drawer-in .2s ease-out}.appointment-drawer h2{font-size:22px;margin:4px 36px 3px 0}.appointment-drawer>p{margin:0 0 18px;color:#60758b}.drawer-close{position:absolute;right:22px;top:20px;border:0;background:none;font-size:30px}.appointment-drawer>div{display:grid;gap:8px}.drawer-appointment{display:grid;grid-template-columns:82px minmax(0,1fr) auto 12px;align-items:center;gap:10px;width:100%;border:1px solid #d9e4ee;border-left:4px solid #10b981;border-radius:9px;background:#fff;padding:11px 10px;text-align:left;color:#10243d}.drawer-appointment.status-pending{border-left-color:#f3ae1b}.drawer-appointment.status-rescheduled{border-left-color:#f04470}.drawer-appointment.status-cancelled{border-left-color:#a8b5c8}.drawer-appointment time{font-size:12px;font-weight:800}.drawer-appointment span{min-width:0}.drawer-appointment strong,.drawer-appointment small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-appointment small{font-size:12px;color:#60758b}.drawer-appointment em{font-size:10px;font-style:normal;font-weight:750;border-radius:6px;padding:5px 7px;color:#087b59;background:#e4f7ef}.drawer-appointment.status-pending em{color:#b26e00;background:#fff3d6}.drawer-appointment.status-rescheduled em{color:#ca2450;background:#ffe8ef}.drawer-appointment.status-cancelled em{color:#607087;background:#edf1f5}.calendar-agenda{display:grid;gap:10px;min-height:510px;max-height:62vh;overflow:auto;background:#f7faff;border:1px solid #dce6ef;border-radius:12px;padding:12px}.calendar-agenda.week{grid-template-columns:repeat(7,minmax(150px,1fr))}.calendar-agenda.day{grid-template-columns:minmax(360px,720px);justify-content:center}.calendar-agenda>section{background:#fff;border:1px solid #dce6ef;border-radius:9px;padding:10px;display:flex;flex-direction:column;gap:8px}.calendar-agenda>section>header{display:grid;gap:2px;padding-bottom:8px;border-bottom:1px solid #e4ebf2}.calendar-agenda .calendar-booking{grid-template-columns:74px minmax(0,1fr)}@keyframes drawer-in{from{transform:translateX(100%)}to{transform:translateX(0)}}@media(max-width:1050px){.calendar-toolbar,.calendar-controls{align-items:flex-start;flex-direction:column}.calendar-navigation{flex-wrap:wrap;justify-content:flex-start}.calendar-week.calendar-month,.calendar-weekday{grid-template-columns:repeat(7,125px);overflow-x:auto}}@media(max-width:760px){.appointment-calendar{padding:16px}.calendar-controls>div{flex-wrap:wrap}.calendar-week.calendar-month{height:580px}.appointment-drawer{padding:22px 16px}.drawer-appointment{grid-template-columns:70px minmax(0,1fr) auto 10px}}
