  /* --------------------------------------------------
     Global sizing stability
  -------------------------------------------------- */
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  /* --------------------------------------------------
     Wrapper (no scrollbars)
  -------------------------------------------------- */
  .overview-schedule-wrapper {
    width: 100%;
    /* grid will expand naturally; page scrolls instead of inner scrollbars */
    overflow: hidden;
  }

  /* --------------------------------------------------
     Grid
  -------------------------------------------------- */
  .overview-schedule {
    display: grid;

    /* Time column + 4 equal day columns */
    grid-template-columns: 56px repeat(4, minmax(0, 1fr));
    grid-auto-rows: 0.85rem;

    width: 100%;
    position: relative;
  }

  /* --------------------------------------------------
     Headers (day headers + corner)
     -- NO sticky
  -------------------------------------------------- */
  .overview-schedule-header {
    background: #f4f4f4;
    font-weight: bold;
    text-align: center;
    padding: 0.3rem;
    z-index: 1;
    font-size: 0.9rem;

    box-shadow:
      inset -1px 0 0 #ccc,
      inset 0 -1px 0 #ccc;
  }

  /* --------------------------------------------------
     Time column
     -- NO sticky
  -------------------------------------------------- */
  .overview-schedule-time {
    background: #f4f4f4;
    font-weight: bold;
    padding-right: 0.3rem;
    z-index: 1;

    display: flex;
    /*align-items: center;*/
    align-items: flex-start;
    justify-content: flex-end;
    font-size: 0.9rem;

    box-shadow:
      inset -1px 0 0 #ccc,
      inset 0 -1px 0 #ccc;
  }

  /* --------------------------------------------------
     FIX: Time header alignment
  -------------------------------------------------- */
  .overview-schedule-time.overview-schedule-header {
    display: block;
    text-align: center;
    padding-left: 0.3rem;
    padding-right: 0.3rem;
    z-index: 1;
  }

  /* --------------------------------------------------
     Notes
  -------------------------------------------------- */
  .overview-schedule-note {
    margin: 0.1rem;
    padding: 0.3rem;
    border-radius: 6px;
    box-shadow: 2px 4px 6px rgba(0,0,0,0.25);
    font-size: 0.8rem;
    line-height: 1.2;
    z-index: 1;
  }

  .overview-schedule-note a {
    color: inherit;
    text-decoration: underline;
    cursor: pointer;
  }

  /* --------------------------------------------------
     Colors
  -------------------------------------------------- */
  .overview-schedule-yellow { background: #fdc745; }
  .overview-schedule-gray   { background: lightgray; }
  .overview-schedule-green  { background: #31d492; }
  .overview-schedule-blue   { background: #7c86ff; }
  .overview-schedule-pink   { background: #ff6467; }
  .overview-schedule-violet { background: #cfc4ee; }

  /* --------------------------------------------------
     Day columns
  -------------------------------------------------- */
  .tue { grid-column: 2; }
  .wed { grid-column: 3; }
  .thu { grid-column: 4; }
  .fri { grid-column: 5; }

  /* --------------------------------------------------
     Mobile tuning
  -------------------------------------------------- */
  @media (max-width: 600px) {
    .overview-schedule {
      grid-auto-rows: 1.2rem; /* taller rows on mobile */
    }

    .overview-schedule-header,
    .overview-schedule-time {
      font-size: 0.65rem;
      padding: 0.15rem;
    }

    .overview-schedule-note {
      font-size: 0.6rem;
    }
  }
  