body {
  font-size: 14px;
}

.month-grid {
  display: grid;
  grid-template-columns: repeat(6, auto);
  gap: .35rem;
}

.calendar {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
}

.calendar th,
.calendar td {
  border: 1px solid #dee2e6;
  padding: .35rem;
  text-align: center;
  vertical-align: top;
  min-width: 64px;
}

.calendar thead th {
  position: sticky;
  top: 0;
  background: #f8f9fa;
  z-index: 3;
}

.sticky-col {
  position: sticky;
  left: 0;
  background: #fff;
  z-index: 2;
}

.calendar thead .sticky-col {
  z-index: 4;
  background: #f8f9fa;
}

.calendar th.name,
.calendar td.name {
  min-width: 180px;
  text-align: left;
  font-weight: 600;
}

.cell {
  cursor: pointer;
  background: #fff;
}

.cell:hover {
  background: #eef6ff;
}

.holiday,
.weekend {
  background: #faf5f5;
}

.today {
  outline: 2px solid #0d6efd;
  outline-offset: -2px;
}

.month-border {
  border-right: 3px solid #6c757d !important;
}

.shift-badge {
  border-radius: .35rem;
  padding: .15rem .35rem;
  margin-bottom: .2rem;
  font-size: .75rem;
  line-height: 1.2;
  color: #fff;
  font-weight: 600;
}

.shift-badge.frueh { background: #0d6efd; }
.shift-badge.spaet { background: #198754; }
.shift-badge.hotline { background: #dc3545; }
.shift-badge.vacation { background: #6c757d; }
.shift-badge.absence { background: #495057; }

.coverage-cell {
  font-weight: 600;
  vertical-align: middle !important;
}

.coverage-cell.ok {
  background: #d1e7dd;
  color: #0f5132;
}

.coverage-cell.partial {
  background: #fff3cd;
  color: #664d03;
}

.coverage-cell.missing {
  background: #f8d7da;
  color: #842029;
}

.coverage-cell.disabled {
  background: #f1f3f5;
  color: #6c757d;
}

.toolbar .btn.active {
  color: #fff;
  background: #0d6efd;
  border-color: #0d6efd;
}
