.calendar-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.calendar-month-navigation,.calendar-view-controls{display:flex;align-items:center;gap:10px}
.calendar-month-navigation h2{font-size:1.3rem;margin:0 5px;text-transform:capitalize;min-width:170px;text-align:center}
.calendar-view-toggle{display:flex;border:1px solid #d5dde1;border-radius:10px;background:#fff;padding:3px;gap:3px}
.calendar-view-toggle button{border:0;min-height:38px;padding:7px 12px;font-size:.875rem}
.calendar-view-toggle button[aria-pressed=true]{background:#193c44;color:#fff}
.calendar-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}
.calendar-filters label{flex:1;min-width:145px;font-size:.8125rem;color:#526c76}
.calendar-filters input,.calendar-filters select{display:block;margin-top:6px;min-width:0;width:100%;font-size:.875rem}
.calendar-summary{font-size:.875rem;color:#526c76;margin:16px 0}
.calendar-month-panel{padding:16px}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-weekdays span{text-align:center;padding:6px 0 12px;font-size:.8125rem;color:#6a7d87}
.calendar-weekdays span:nth-last-child(-n+2){color:#916020}
.calendar-day{position:relative;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:7px;min-width:0;min-height:113px;border-color:#e0e7ea;border-radius:8px;padding:8px;text-align:left;font-weight:400}
.calendar-day-number{align-self:flex-start;display:grid;place-items:center;min-width:25px;height:25px;border-radius:6px;font-size:.875rem;font-weight:600}
.calendar-today .calendar-day-number{background:#156b67;color:#fff}
.calendar-other{background:#f6f8f8;color:#84969d}
.calendar-selected{border:2px solid #156b67;background:#edf6f3;padding:7px}
.calendar-day-count{position:absolute;right:7px;top:10px;font-size:.6875rem;line-height:20px;padding:0 5px;color:#526c76;background:#eaf0f2;border-radius:5px}
.calendar-day-previews{display:flex;flex-direction:column;gap:4px;min-width:0}
.calendar-day-preview{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding:2px 4px;border-radius:4px;font-size:.6875rem;background:#e9f1fa;color:#35678e;line-height:1.4}
.calendar-day-preview.completed{background:#e7f3ed;color:#2d6d55}
.calendar-day-preview.rescheduled{background:#fff1d8;color:#835a22}
.calendar-day-preview.missed,.calendar-day-preview.overdue{background:#fbeaec;color:#9c3543}
.calendar-more{font-size:.6875rem;color:#6a7d87}
.calendar-dots{display:none}
.calendar-agenda{padding-bottom:12px}
.calendar-agenda>h2,.calendar-agenda-day h2{font-size:1.05rem}
.calendar-agenda-day+.calendar-agenda-day{margin-top:26px;padding-top:20px;border-top:1px solid #dce3e6}
.calendar-event{display:flex;align-items:flex-start;width:100%;text-align:left;gap:12px;border:1px solid #dce3e6;border-radius:10px;margin-bottom:10px;padding:16px;font-weight:400;min-width:0}
.calendar-event-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;overflow-wrap:anywhere}
.calendar-event-copy strong{font-size:.95rem;font-weight:600}
.calendar-event-copy>span{font-size:.8125rem;color:#63767f}
.calendar-event-copy .calendar-reason{font-size:.75rem}
.calendar-event-mark{width:5px;align-self:stretch;min-height:38px;flex-shrink:0;border-radius:4px;background:#5b91bb}
.calendar-event-mark.completed,.calendar-dots .completed{background:#439779}
.calendar-event-mark.rescheduled,.calendar-dots .rescheduled{background:#d49c40}
.calendar-event-mark.missed,.calendar-event-mark.overdue,.calendar-dots .missed,.calendar-dots .overdue{background:#c75b66}
.calendar-dots .scheduled{background:#5b91bb}
.calendar-event-state{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.calendar-tag.scheduled{background:#e9f1fa;color:#35678e}
.calendar-tag.rescheduled{background:#fff1d8;color:#835a22}
.calendar-tag.missed,.calendar-tag.overdue{background:#fbeaec;color:#9c3543}
.calendar-overdue{font-size:.75rem;color:#9c3543}
.calendar-highlight{outline:2px solid #43938a;outline-offset:5px;border-radius:6px;scroll-margin-top:25px}
@media(max-width:760px){
  .mobile-nav button:first-child{flex:1.35}
  .mobile-nav button{font-size:.625rem}
  .calendar-controls{gap:12px}
  .calendar-month-navigation{width:100%;justify-content:space-between;gap:5px}
  .calendar-month-navigation h2{min-width:0;font-size:1.1rem}
  .calendar-view-controls{width:100%;justify-content:space-between}
  .calendar-filters{gap:10px}
  .calendar-filters label{flex-basis:calc(50% - 5px);min-width:0}
  .calendar-filters label:first-child{flex-basis:100%}
  .calendar-filters input,.calendar-filters select{font-size:.8125rem}
  .calendar-month-panel{padding:12px 8px}
  .calendar-weekdays,.calendar-grid{gap:3px}
  .calendar-day{min-height:59px;padding:5px 2px;gap:3px;align-items:center;border-radius:6px}
  .calendar-selected{padding:4px 1px}
  .calendar-day-number{align-self:center;min-width:23px;height:23px;font-size:.8125rem}
  .calendar-day-count{position:static;font-size:.625rem;line-height:15px;padding:0 4px}
  .calendar-day-previews{display:none}
  .calendar-dots{display:flex;justify-content:center;gap:2px;min-height:4px}
  .calendar-dots i{width:4px;height:4px;border-radius:50%}
  .calendar-event{flex-wrap:wrap;padding:12px 10px;gap:8px}
  .calendar-event-copy strong{font-size:.875rem}
  .calendar-event-state{flex-direction:row;align-items:center;margin-left:13px;flex-basis:100%;flex-wrap:wrap}
  .calendar-summary{line-height:1.6}
}
