.mse-schedule {
  --mse-accent: #EC2323;
  --mse-dark: #030303;
  --mse-surface: #FCFCFC;
  --mse-muted: #F2F2F2;
  --mse-time-width: 150px;
  --mse-gap: 18px;
  position: relative;
}

.mse-item {
  position: relative;
  display: grid;
  grid-template-columns: var(--mse-time-width) 28px minmax(0, 1fr);
  gap: 0 18px;
  align-items: start;
  padding-bottom: var(--mse-gap);
}

.mse-item:not(:last-child)::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 22px;
  bottom: -4px;
  left: calc(var(--mse-time-width) + 31px);
  width: 2px;
  background: color-mix(in srgb, var(--mse-accent) 34%, transparent);
}

.mse-time { padding-top: 19px; text-align: right; color: var(--mse-dark); }
.mse-time-start { display: block; font-size: 17px; font-weight: 750; line-height: 1.2; }
.mse-time-end { display: block; margin-top: 4px; color: #686868; font-size: 13px; line-height: 1.2; }
.mse-time-end::before { content: "to "; }

.mse-marker {
  position: relative;
  z-index: 1;
  display: block;
  width: 14px;
  height: 14px;
  margin: 23px auto 0;
  border: 4px solid var(--mse-surface);
  border-radius: 50%;
  background: var(--mse-accent);
  box-shadow: 0 0 0 2px var(--mse-accent);
}

.mse-card {
  display: flex;
  gap: 28px;
  min-width: 0;
  padding: 24px 28px;
  border: 1px solid #E4E4E4;
  border-left: 4px solid var(--mse-accent);
  border-radius: 14px;
  background: var(--mse-surface);
  box-shadow: 0 8px 28px rgba(3, 3, 3, .07);
}

.mse-card-main { flex: 1 1 auto; min-width: 0; }
.mse-heading-row { display: flex; align-items: flex-start; gap: 16px; }
.mse-heading-copy { flex: 1 1 auto; min-width: 0; }
.mse-type-label { display: inline-flex; margin-bottom: 9px; padding: 4px 9px; border-radius: 999px; background: rgba(236, 35, 35, .1); color: var(--mse-accent); font-size: 11px; font-weight: 800; line-height: 1.2; letter-spacing: .07em; text-transform: uppercase; }
.mse-title { margin: 0; color: var(--mse-dark); font-size: clamp(20px, 2vw, 27px); font-weight: 720; line-height: 1.22; }
.mse-subtitle { margin-top: 7px; color: #5B5B5B; font-size: 15px; line-height: 1.45; }
.mse-notes { margin-top: 17px; color: #404040; font-size: 15px; line-height: 1.65; }
.mse-notes > :first-child { margin-top: 0; }
.mse-notes > :last-child { margin-bottom: 0; }

.mse-toggle { flex: 0 0 auto; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; background: var(--mse-muted); color: var(--mse-dark); cursor: pointer; transition: background .2s ease, color .2s ease, transform .2s ease; }
.mse-toggle:hover, .mse-toggle:focus-visible { background: var(--mse-accent); color: #FCFCFC; }
.mse-toggle:focus-visible { outline: 3px solid color-mix(in srgb, var(--mse-accent) 30%, transparent); outline-offset: 3px; }
.mse-toggle svg { width: 21px; height: 21px; fill: currentColor; transition: transform .25s ease; }
.mse-item.is-open .mse-toggle svg { transform: rotate(180deg); }

.mse-image { overflow: hidden; margin-top: 20px; border-radius: 10px; }
.mse-image img { display: block; width: 100%; height: auto; }
.mse-sponsor { flex: 0 0 160px; align-self: center; padding-left: 24px; border-left: 1px solid #E4E4E4; }
.mse-sponsor-label { display: block; margin-bottom: 9px; color: #686868; font-size: 11px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.mse-sponsor img { display: block; width: auto; max-width: 140px; max-height: 62px; object-fit: contain; }

.mse-type-break .mse-card, .mse-type-networking .mse-card { background: var(--mse-muted); box-shadow: none; }
.mse-type-break .mse-title, .mse-type-networking .mse-title { font-size: 19px; }
.mse-type-meal .mse-card { background: var(--mse-dark); border-color: var(--mse-dark); color: #FCFCFC; }
.mse-type-meal .mse-title, .mse-type-meal .mse-subtitle, .mse-type-meal .mse-notes { color: #FCFCFC; }
.mse-type-meal .mse-sponsor { border-left-color: rgba(252, 252, 252, .2); }
.mse-type-meal .mse-sponsor-label { color: #CECECE; }
.mse-type-keynote .mse-card { border-left-width: 7px; }

@media (max-width: 767px) {
  .mse-item { grid-template-columns: 20px minmax(0, 1fr); gap: 0 12px; }
  .mse-item:not(:last-child)::before { top: 17px; bottom: -3px; left: 9px; }
  .mse-time { grid-column: 2; grid-row: 1; padding: 0 0 8px; text-align: left; }
  .mse-time-start, .mse-time-end { display: inline; font-size: 14px; }
  .mse-time-end { margin: 0 0 0 4px; }
  .mse-time-end::before { content: "– "; }
  .mse-marker { grid-column: 1; grid-row: 1 / span 2; width: 11px; height: 11px; margin-top: 4px; border-width: 3px; }
  .mse-card { grid-column: 2; grid-row: 2; display: block; padding: 20px; }
  .mse-sponsor { margin-top: 20px; padding: 18px 0 0; border-top: 1px solid #E4E4E4; border-left: 0; }
  .mse-type-meal .mse-sponsor { border-top-color: rgba(252, 252, 252, .2); }
}

@media (prefers-reduced-motion: reduce) {
  .mse-toggle, .mse-toggle svg { transition: none; }
}

