.calendar-week table {
  min-width: 1320px;
}

.calendar-week thead > tr:first-child th {
  position: sticky;
  top: 0;
  z-index: 2;
}

.calendar-overview-row th {
  height: 150px;
  padding: 7px !important;
  vertical-align: top;
  background: #f8faf8;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
}

.calendar-overview-row .overview-label {
  text-align: center;
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.calendar-day-overview {
  transition: background .15s ease, box-shadow .15s ease;
}

.calendar-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 5px;
  padding: 6px 7px;
  border: 1px solid #c9d8d0;
  border-radius: 7px;
  background: #e1ece6;
  color: var(--ink);
  overflow: hidden;
  text-align: left;
}

.calendar-item > span {
  color: var(--green);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.calendar-item > strong {
  font-size: 11px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.calendar-item > small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 600;
}

.macro-item {
  border-color: #d8c88f;
  background: #f4edcf;
}

.macro-item > span {
  color: #756128;
}

.type-holiday {
  border-color: #dfb5a8;
  background: #f4dfd8;
}

.type-holiday > span {
  color: #944734;
}

.type-meeting {
  border-color: #bacbe0;
  background: #e1eaf4;
}

.type-meeting > span {
  color: #365d86;
}

.type-excursion {
  border-color: #b8d9d0;
  background: #ddf0eb;
}

.type-deadline {
  border-color: #e1c29f;
  background: #f7e8d6;
}

.readonly-item {
  opacity: .78;
}

.empty-day {
  display: block;
  padding: 9px 2px;
  color: #9aa39f;
  font-size: 9px;
  font-weight: 500;
}

.calendar-cell {
  position: relative;
  vertical-align: top;
  transition: background .15s ease, box-shadow .15s ease;
}

.calendar-cell.out-of-field {
  background: #fff6df;
  border-color: #e7ca85;
}

.calendar-cell.out-of-field .calendar-lesson {
  border-left-color: #d29a2f;
}

.foreign-label {
  color: #8a641e !important;
}

.foreign-dot {
  background: #e9c56f;
}

.foreign-pill {
  margin-left: 6px;
  background: #fff0c9;
  color: #7c5a17;
}

.timed-event {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin: 3px 1px;
  padding: 5px 6px;
  border: 1px solid #b9ccdb;
  border-radius: 6px;
  background: #e3edf4;
  color: #294658;
}

.timed-event strong {
  font-size: 10px;
  line-height: 1.2;
}

.timed-event small {
  font-size: 8px;
}

.calendar-draggable {
  cursor: grab;
}

.calendar-draggable:active {
  cursor: grabbing;
}

.calendar-draggable.dragging {
  opacity: .35;
}

.calendar-drop-zone.drag-over {
  box-shadow: inset 0 0 0 3px #4b8d75;
  background: #e3f2e9 !important;
}

.calendar-status {
  min-height: 0;
  margin-bottom: 0;
  color: var(--green);
  font-size: 12px;
  font-weight: 750;
}

.calendar-status:not(:empty) {
  min-height: 34px;
  margin-bottom: 10px;
  padding: 8px 11px;
  border-radius: 8px;
  background: var(--sage);
}

.calendar-status.error {
  color: var(--red);
  background: #f3dddd;
}

.event-row[href]:hover,
.timeline-card[href]:hover {
  background: #f7faf8;
}

@media (max-width: 850px) {
  .calendar-week table {
    min-width: 1160px;
  }

  .calendar-overview-row th {
    height: 130px;
  }
}
