.overview-card { min-width: 0; }
.overview-filters { display: grid; grid-template-columns: repeat(2, minmax(220px, 360px)); gap: 14px; margin: 20px 0; }
.overview-filters label { display: flex; flex-direction: column; gap: 7px; font-size: 13px; font-weight: 750; }
.overview-filters select { min-height: 42px; width: 100%; }
.overview-summary { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 10px; margin: 18px 0; }
.overview-summary > div { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; padding: 13px 15px; border: 1px solid #c7dfdb; border-radius: 11px; background: #f5fbf9; }
.overview-summary span { color: #557170; font-size: 12px; }
.overview-summary strong { color: #075f5b; font-size: 18px; }
.overview-summary .has-warning { border-color: #e5bd62; background: #fff8e7; }
.overview-summary .has-warning strong { color: #9b5e00; }
.overview-warning { margin: 16px 0; padding: 15px 18px; border-left: 4px solid #d59622; border-radius: 8px; background: #fff8e8; }
.overview-warning h3 { margin: 0 0 8px; color: #784e08; font-size: 15px; }
.overview-warning ul { margin: 0; padding-left: 20px; }
.overview-warning button { padding: 3px 0; border: 0; color: #6e4b0d; background: transparent; text-align: left; text-decoration: underline; cursor: pointer; font: inherit; }
.overview-ok { padding: 12px 15px; border-radius: 8px; color: #14665f; background: #eef9f5; font-size: 13px; }
.overview-legend { display: flex; gap: 8px; flex-wrap: wrap; margin: 18px 0 10px; }
.overview-legend span { padding: 4px 9px; border-radius: 999px; font-size: 11px; font-weight: 750; }
.overview-calendar { display: grid; grid-template-columns: repeat(7, minmax(118px, 1fr)); gap: 7px; min-width: 850px; }
#panel-monthly-overview .overview-card { overflow-x: auto; }
.overview-weekday { padding: 7px; text-align: center; color: #567170; font-size: 12px; font-weight: 750; }
.overview-weekday:first-child { color: #ad4c4c; }
.overview-weekday:nth-child(7) { color: #336a9b; }
.overview-empty { min-height: 110px; }
.overview-day { min-height: 142px; padding: 8px; border: 1px solid #c9e0dc; border-radius: 11px; background: #fff; scroll-margin: 100px; }
.overview-day:focus { outline: 3px solid #d49a2a; outline-offset: 2px; }
.overview-day.is-sunday { background: #fffafa; }
.overview-day.is-saturday { background: #f8fbff; }
.overview-day > header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; color: #244c4e; }
.overview-day > header strong { font-size: 15px; }
.overview-day > header span { font-size: 10px; color: #6d8583; }
.overview-day-items { display: flex; flex-direction: column; gap: 4px; }
.overview-item { width: 100%; padding: 5px 6px; border: 1px solid transparent; border-radius: 7px; color: #204a4c; text-align: left; cursor: pointer; font: inherit; }
.overview-item strong, .overview-item span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.overview-item strong { font-size: 11px; }
.overview-item span { margin-top: 2px; font-size: 9px; opacity: .82; }
.overview-item.is-absence, .overview-legend .is-absence { border-color: #e4bd69; background: #ffedbe; color: #6c4800; }
.overview-item.is-shift, .overview-legend .is-shift { border-color: #8fc9df; background: #e1f2f9; color: #125777; }
.overview-item.is-event, .overview-legend .is-event { border-color: #90cdbd; background: #e2f5ef; color: #165f55; }
.overview-item.is-recurring, .overview-legend .is-recurring { border-color: #b9abd9; background: #eee8fa; color: #56447e; }
.overview-item.is-cancelled, .overview-legend .is-cancelled { border-color: #cbd2d0; background: #f0f2f1; color: #78817f; text-decoration: line-through; }
.overview-more { width: 100%; padding: 4px; border: 0; color: #087a72; background: transparent; font-size: 10px; font-weight: 750; cursor: pointer; }
.overview-note { margin: 16px 0 0; color: #5d7776; font-size: 12px; }
@media (max-width: 760px) {
  .overview-filters { grid-template-columns: 1fr; }
  .overview-summary { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
  .overview-calendar { min-width: 760px; }
}
