/* Timetable typography follows card space, independently of viewport breakpoints. */
/* Apply at every viewport: mobile also has short, time-scaled cards. */
  .week-body .event-card {
    container-type:inline-size;
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:8px;
    line-height:1.25;
  }
  .week-body .event-card > * {flex-shrink:0}
  .week-body .event-card .event-top {display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;line-height:1.25}
  .week-body .event-card .event-time {font-size:16px;font-weight:800;line-height:20px;white-space:nowrap;letter-spacing:0}
  .week-body .event-card .event-end {font-size:12px;color:inherit}
  .week-body .event-card .event-names {display:block;margin:0;min-height:0;font-size:14px;font-weight:750;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .week-body .event-card .event-title {display:block;margin:0;min-height:0;font-size:12px;line-height:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .week-body .event-card .event-footer {display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin:0;font-size:12px;line-height:16px;white-space:normal}
  .week-body .event-card .event-form {display:none}
  .week-body .event-card .room-link {display:block;flex:none;font-size:12px;line-height:16px;white-space:nowrap;overflow-wrap:normal;letter-spacing:0}
  .week-body .event-card[data-density="compact"] {padding:5px 8px;gap:2px}
  .week-body .event-card[data-density="tight"] {display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:18px 14px 14px;gap:1px 6px;padding:4px 6px}
  .week-body .event-card[data-density="tight"] .event-top {display:contents}
  .week-body .event-card[data-density="tight"] .event-time {grid-column:1;grid-row:1;font-size:14px;line-height:18px}
  .week-body .event-card[data-density="tight"] .event-names {grid-column:2;grid-row:1;align-self:center;font-size:12px;line-height:18px}
  .week-body .event-card[data-density="tight"] .event-title {grid-column:1/-1;grid-row:2;font-size:11px;line-height:14px}
  .week-body .event-card[data-density="tight"] .event-footer {grid-column:1/-1;grid-row:3;font-size:11px;line-height:14px}
  .week-body .event-card[data-density="tight"] .room-link {font-size:11px;line-height:14px}
  .week-body .event-card[data-density="tight"] .event-end,
  .week-body .event-card[data-density="tight"] .live-badge {display:none}
  .week-body .event-card[data-density="tiny"] {display:flex;flex-direction:row;gap:6px;align-items:center;padding:1px 4px}
  .week-body .event-card[data-density="tiny"] .event-top {display:contents}
  .week-body .event-card[data-density="tiny"] .event-time {font-size:14px;line-height:18px}
  .week-body .event-card[data-density="tiny"] .event-names,
  .week-body .event-card[data-density="tiny"] .event-title,
  .week-body .event-card[data-density="tiny"] .event-end,
  .week-body .event-card[data-density="tiny"] .live-badge {display:none}
  @container (max-width:190px) {
    .event-top .live-badge {font-size:0;padding:3px;gap:0}
  }
  @container (max-width:145px) {
    .event-time .event-end {display:none}
  }

.week-body .event-card .replay-link{display:inline-flex;align-items:center;justify-content:center;width:24px;height:20px;flex:none;border:1px solid #ffffff80;border-radius:6px;color:inherit;font-size:12px;line-height:1;text-decoration:none}.week-body .event-card .event-footer:has(.replay-link){flex-wrap:nowrap}

#dialog-content .detail-actions{align-items:stretch}#dialog-content .detail-actions>.button{min-height:38px;line-height:18px;white-space:nowrap}

/* Smaller play mark, preserving the replay link hit area. */
.replay-link .replay-glyph{display:inline-block;font-size:.7em;line-height:1;vertical-align:middle}

/* Replay is a quiet corner action in both timetable and compact views. */
.event-card .event-replays{position:absolute;top:5px;right:5px;display:flex;gap:3px;align-items:center;z-index:1}
.event-card .event-replays:empty{display:none}
.event-card:has(.event-replays:not(:empty)) .event-top{padding-right:24px}
.event-card .event-replays .replay-link{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:1px solid #ffffff65;border-radius:6px;background:#ffffff12;color:inherit;text-decoration:none;line-height:1}
.event-card .event-replays .replay-glyph{font-size:8px;line-height:1;transform:translateX(.5px)}
.event-card .event-replays .replay-link:hover{background:#ffffff30;border-color:#ffffffbb}
.event-card .event-replays .replay-link:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.week-body .event-card[data-density="tight"]:has(.event-replays:not(:empty)),
.week-body .event-card[data-density="tiny"]:has(.event-replays:not(:empty)){padding-right:29px}
