.calendar-view {
      display: flex;
      flex-direction: column;
      flex: 0 0 430px;
      min-height: 0;
      overflow: hidden;
      padding: 8px;
      background: white;
    }

    .calendar-view.hidden {
      display: none;
    }

    .calendar {
      width: 100%;
      display: grid;
      grid-template-rows: 24px minmax(0, 1fr);
      flex: 0 0 auto;
      height: 100%;
      border: 1px solid var(--line);
      border-radius: 8px;
      overflow: hidden;
      background: white;
    }

    .calendar-headers,
    .calendar-days {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .calendar-days {
      grid-template-rows: repeat(5, minmax(0, 1fr));
      min-height: 0;
    }

    .calendar-head {
      background: white;
      color: #667085;
      padding: 3px 6px;
      border-bottom: 1px solid var(--line);
      border-right: 1px solid #edf0f5;
      font-size: 10px;
      letter-spacing: 0;
      text-transform: uppercase;
      display: grid;
      place-items: center;
    }

    .calendar-head:nth-child(5) {
      border-right: 0;
    }

    .calendar-cell {
      border-right: 1px solid #edf0f5;
      border-bottom: 1px solid #edf0f5;
      background: white;
      padding: 8px;
      cursor: pointer;
      overflow: hidden;
      font-size: 11px;
    }

    .calendar-days .calendar-cell:nth-child(5n) {
      border-right: 0;
    }

    .calendar-days .calendar-cell:nth-last-child(-n + 5) {
      border-bottom: 0;
    }

    .calendar-cell.other-month {
      background: #fbfcfe;
      color: #b7bfcc;
      cursor: default;
    }

    .calendar-cell.blank {
      cursor: default;
    }

    .calendar-cell.selected {
      outline: 2px solid #cfe0f5;
      outline-offset: -2px;
      background: #f8fbff;
    }

    .day {
      display: inline-grid;
      place-items: center;
      min-width: 18px;
      height: 18px;
      border-radius: 999px;
      font-weight: 700;
      margin-bottom: 4px;
    }

    .calendar-cell.selected .day {
      background: #2f6fcf;
      color: white;
    }

    .event {
      margin-top: 4px;
      padding: 2px 5px;
      border: 1px solid #9bd6ad;
      border-radius: 3px;
      background: #dcf5e3;
      color: #14532d;
      line-height: 1.2;
      font-size: 10px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .event strong {
      color: inherit;
      display: inline;
      font-weight: 800;
    }

    .event .teacher-name {
      font-weight: 700;
      color: inherit;
    }

    .event .course-name {
      font-weight: 700;
      color: inherit;
    }
