.staff-calendar-view-switch { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:14px; }
.staff-calendar-colleagues { max-width:100%; min-width:0; margin:0 0 12px; border:1px solid #dce6f0; border-radius:7px; background:#fff; }
.staff-calendar-colleagues > summary { padding:10px 12px; color:#4b6f8e; cursor:pointer; font-size:12px; }
.staff-calendar-colleagues > summary > span { margin-left:6px; color:#7a8ea2; font-variant-numeric:tabular-nums; }
.staff-calendar-colleague-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); gap:10px 20px; padding:4px 12px 14px; max-height:260px; overflow:auto; }
.staff-calendar-colleague-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:7px; }
.staff-calendar-colleague-options > label { display:flex; align-items:center; flex-wrap:wrap; gap:7px; min-width:0; color:#486c89; font-size:12px; cursor:pointer; }
.staff-calendar-colleague-options > label > input { flex:0 0 17px; width:17px; height:17px; }
.staff-calendar-colleague-options > label > span { flex:1 1 100px; min-width:0; overflow-wrap:anywhere; }
.staff-calendar-colleague-options small { color:#8194a6; }
.staff-calendar-selection { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:6px; padding:10px 12px; border:1px solid #cfe1f2; border-radius:7px; background:#f4f9ff; min-width:0; }
.staff-calendar-selection-copy { display:grid; gap:4px; min-width:0; color:#436b8d; font-size:12px; overflow-wrap:anywhere; }
.staff-calendar-selected-range, .staff-calendar-selection-copy small, .staff-calendar-view-help { color:#768ba0; font-size:11px; line-height:1.6; }
.staff-calendar-selection > div:last-child { display:flex; flex-wrap:wrap; gap:6px; min-width:0; }
.staff-calendar-selection [aria-pressed=true] { border-color:#2385d0; background:#e0f0ff; color:#1668a5; }
.staff-calendar-view-help { margin:6px 0 10px; }
.staff-calendar-cell.is-range-selected > button { background:#eaf4ff; box-shadow:inset 0 0 0 1px #b5d6f3; }
.staff-calendar-cell > button { touch-action:pan-y; user-select:none; }
.staff-calendar-layout.is-week { grid-template-columns:minmax(0,1fr); }
.staff-calendar-layout.is-week > .staff-calendar-agenda ol { grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); }
.staff-calendar-type-badge { display:inline-flex; align-items:center; padding:2px 7px; border:1px solid #d4cbed; border-radius:9px; font-size:10px; line-height:1.5; }
.staff-calendar-type-badge.is-sick-leave, .staff-calendar-day-events > .is-sick-leave { color:#77528b; background:#f3ebfa; }
.staff-calendar-type-badge.is-on-site, .staff-calendar-day-events > .is-on-site { color:#347c80; background:#e9f7f7; border-color:#b8dddd; }
.staff-calendar-event.is-sick-leave { border-left-color:#9b79b4; }
.staff-calendar-event.is-on-site { border-left-color:#59a6aa; }
@media(max-width:600px) {
  .staff-calendar-view-switch .button { flex:1 1 80px; min-height:42px; }
  .staff-calendar-selection { padding:10px; }
  .staff-calendar-selection > div:last-child { width:100%; }
  .staff-calendar-selection > div:last-child .button { flex:1 1 80px; min-height:42px; padding:7px; font-size:11px; }
  .staff-calendar-colleague-actions .button { flex:1 1 110px; min-height:42px; }
  .staff-calendar-colleague-options > label { min-height:34px; }
}
