.availability-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 15px;font-size:11px;color:#61747c}
.availability-legend strong{font-size:12px;color:#263b44;margin-right:4px}
.availability-legend>span{display:inline-flex;align-items:center;gap:6px}
.availability-legend b{width:10px;height:10px;border:2px solid #a7b4ba;border-radius:2px}
.availability-legend .av-available b{border-color:#29815b}.availability-legend .av-unavailable b{border-color:#b13b4b}
#schedule .schedule-day.availability-available,#schedule .month-day-detail.availability-available{outline:2px solid #29815b;outline-offset:-2px}
#schedule .schedule-day.availability-unavailable,#schedule .month-day-detail.availability-unavailable{outline:2px solid #b13b4b;outline-offset:-2px}
#schedule .availability-summary{display:grid;gap:5px;width:100%;margin-top:7px;min-width:0}
#schedule .day-heading:has(.availability-summary){flex-wrap:wrap}
#schedule .availability-summary>span{font-size:10px;line-height:1.5;overflow-wrap:anywhere;white-space:normal}
.av-available{color:#237b54}.av-unavailable{color:#aa3447}.av-unknown{color:#71838c}
#schedule button.shift.availability-available{outline:2px solid #29815b;outline-offset:-2px}
#schedule button.shift.availability-unavailable{outline:2px solid #b13b4b;outline-offset:-2px;background:var(--shift-background,#fff0f2)}
#schedule .availability-shift-state{display:block;font-size:10px;font-weight:600;margin-top:6px;line-height:1.4}
#schedule .av-month-dot{display:block;width:8px;height:8px;border-radius:50%;font-size:0;margin:5px auto 0}
#schedule .av-month-dot.available{background:#29815b}#schedule .av-month-dot.unavailable{background:#b13b4b}
.availability-legend[hidden],.availability-calendar-tools[hidden]{display:none!important}
.absence-plan.unpaid{background:#f8e8ed;color:#9a344e}
#schedule.assignment-mode button.shift.is-assigned-person:not(.availability-available):not(.availability-unavailable){outline:2px solid #007da0;outline-offset:-2px;background:var(--shift-background,#eef8fc)}
.availability-calendar-tools{border-top:1px solid #dfe5e8;border-bottom:1px solid #dfe5e8;padding:14px 0;margin:0 0 22px}
.calendar-save-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
#calendarSelectionCount{font-size:12px;color:#526974;margin-right:6px}
.calendar-selection-dates{font-size:11px;color:#61747c;line-height:1.6;margin:10px 0 0;max-height:64px;overflow-y:auto;overflow-wrap:anywhere}
.calendar-selection-dates:empty{display:none}
.calendar-availability-status{font-size:12px;min-height:18px;margin:8px 0 0;color:#237b54}
.calendar-availability-status.error{color:#aa3447}
.workforce #newAvailability.is-active{background:#e2f3f8;border-color:#007da0;color:#007593;box-shadow:inset 0 0 0 1px #007da0}
#schedule.availability-calendar-mode button.shift{position:relative;padding-right:36px;cursor:pointer}
#schedule.availability-calendar-mode button.shift.availability-selected{outline:3px solid #007da0;outline-offset:-3px}
.shift-availability-check{position:absolute;right:9px;top:10px;width:20px;height:20px;border:1px solid #91a6af;border-radius:3px;background:#fff;display:flex;align-items:center;justify-content:center}
.shift-availability-check.is-checked{border-color:#29815b;background:#29815b;color:#fff}
.shift-availability-check svg{width:16px;height:16px}
.availability-calendar-tools,.availability-calendar-tools *,.availability-legend,.availability-summary{letter-spacing:0}
@media(max-width:700px){
 .is-month .availability-summary{display:none!important}
 .month-day-detail .availability-summary{display:grid!important;padding:10px;font-size:12px}
 .calendar-save-actions{justify-content:flex-start}
 .calendar-save-actions .primary{flex:1;min-height:46px}
 #calendarSelectionCount{width:100%;margin:0 0 2px}
}
@media print{.availability-legend,#newAvailability,.availability-calendar-tools,.shift-availability-check{display:none!important}}
