/* Committee switcher and merged venue column, kept inside the agenda table. */
.agenda-venue {
  margin-top: 23px;
}

.agenda-venue-label {
  margin: 0 0 8px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.agenda-venue-switch {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 2px;
}

.agenda-venue-switch legend {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.agenda-venue-radio {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.agenda-venue-switch label {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  padding: 12px 14px 13px;
  border-right: 1px solid var(--line);
  color: var(--muted);
  cursor: pointer;
  transition: background .25s ease, color .25s ease;
}

.agenda-venue-switch label:last-of-type {
  border-right: 0;
}

.agenda-venue-radio:focus-visible + label {
  outline: 2px solid var(--fx-accent);
  outline-offset: -3px;
}

.agenda-venue-switch label:hover {
  color: var(--ink);
  background: color-mix(in srgb, var(--fx-accent) 6%, transparent);
}

.agenda-venue-switch label > span {
  color: var(--fx-accent);
  font: 9px/1.4 Georgia, serif;
  letter-spacing: .16em;
}

.agenda-venue-switch label strong {
  overflow: hidden;
  color: var(--ink);
  font: 400 17px/1.2 Georgia, "Times New Roman", serif;
  letter-spacing: .02em;
  text-overflow: ellipsis;
}

.agenda-venue-switch label small {
  overflow: hidden;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.conference-agenda:has(#agenda-venue-01:checked) label[for="agenda-venue-01"],
.conference-agenda:has(#agenda-venue-02:checked) label[for="agenda-venue-02"],
.conference-agenda:has(#agenda-venue-03:checked) label[for="agenda-venue-03"],
.conference-agenda:has(#agenda-venue-04:checked) label[for="agenda-venue-04"] {
  color: var(--ink);
  background: color-mix(in srgb, var(--fx-accent) 10%, transparent);
  box-shadow: inset 0 2px 0 var(--fx-accent);
}

.conference-agenda:has(#agenda-venue-01:checked) label[for="agenda-venue-01"] strong,
.conference-agenda:has(#agenda-venue-02:checked) label[for="agenda-venue-02"] strong,
.conference-agenda:has(#agenda-venue-03:checked) label[for="agenda-venue-03"] strong,
.conference-agenda:has(#agenda-venue-04:checked) label[for="agenda-venue-04"] strong {
  color: var(--fx-accent);
}

.agenda-venue-panels {
  margin-top: 17px;
}

.agenda-venue-panel {
  display: none;
}

.conference-agenda:has(#agenda-venue-01:checked) [data-agenda-venue="01"],
.conference-agenda:has(#agenda-venue-02:checked) [data-agenda-venue="02"],
.conference-agenda:has(#agenda-venue-03:checked) [data-agenda-venue="03"],
.conference-agenda:has(#agenda-venue-04:checked) [data-agenda-venue="04"] {
  display: block;
}

.agenda-venue-summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.65;
}

.agenda-venue-summary strong {
  flex: 0 0 auto;
  color: var(--fx-accent);
  font: 400 13px/1.5 Georgia, "Times New Roman", serif;
  letter-spacing: .04em;
}

.agenda-venue-summary span {
  max-width: 70%;
  color: var(--muted);
  text-align: right;
}

/* A four-column schedule: date, time, programme and merged venue. */
.agenda-table.with-venue .agenda-col-date { width: 14%; }
.agenda-table.with-venue .agenda-col-time { width: 18%; }
.agenda-table.with-venue .agenda-col-program { width: 36%; }
.agenda-table.with-venue .agenda-col-venue { width: 32%; }

.agenda-table.with-venue .agenda-date {
  border-right: 1px solid var(--agenda-hairline);
}

.agenda-table.with-venue .agenda-location {
  position: relative;
  padding: 13px 15px;
  border-left: 2px solid var(--room-color);
  background: color-mix(in srgb, var(--room-color) 8%, transparent);
  color: var(--ink);
  font: 12px/1.55 "Songti SC", "SimSun", Georgia, serif;
  vertical-align: middle;
}

.agenda-location-dot {
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-right: 9px;
  border: 1px solid var(--room-color);
  border-radius: 50%;
  vertical-align: 2px;
}

.agenda-table.with-venue tbody tr.is-shared .agenda-program {
  color: var(--muted);
}

@media (max-width: 720px) {
  .agenda-venue {
    margin-top: 19px;
  }

  .agenda-venue-switch {
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    border: 0;
    background: var(--line);
  }

  .agenda-venue-switch label {
    min-height: 68px;
    padding: 10px 11px;
    border: 0;
    background: var(--card);
  }

  .agenda-venue-switch label small {
    font-size: 8px;
    white-space: normal;
  }

  .conference-agenda:has(#agenda-venue-01:checked) label[for="agenda-venue-01"],
  .conference-agenda:has(#agenda-venue-02:checked) label[for="agenda-venue-02"],
  .conference-agenda:has(#agenda-venue-03:checked) label[for="agenda-venue-03"],
  .conference-agenda:has(#agenda-venue-04:checked) label[for="agenda-venue-04"] {
    background: color-mix(in srgb, var(--fx-accent) 15%, var(--card));
  }

  .agenda-venue-summary {
    display: block;
  }

  .agenda-venue-summary span {
    display: block;
    max-width: none;
    margin-top: 3px;
    text-align: left;
  }

  /* Keep the row/rowspan structure; do not inherit the stacking agenda rule. */
  .agenda-table.with-venue {
    display: table;
    width: 100%;
    table-layout: fixed;
  }

  .agenda-table.with-venue colgroup {
    display: table-column-group;
  }

  .agenda-table.with-venue thead {
    display: none;
  }

  .agenda-table.with-venue tbody {
    display: table-row-group;
    padding: 0;
    border: 0;
  }

  .agenda-table.with-venue tbody::before {
    display: none;
  }

  .agenda-table.with-venue tr {
    display: table-row;
    padding: 0;
    border: 0;
  }

  .agenda-table.with-venue th,
  .agenda-table.with-venue td {
    display: table-cell;
    width: auto;
    padding: 9px 5px;
    border: 0;
    vertical-align: middle;
  }

  .agenda-table.with-venue .agenda-col-date { width: 9%; }
  .agenda-table.with-venue .agenda-col-time { width: 22%; }
  .agenda-table.with-venue .agenda-col-program { width: 36%; }
  .agenda-table.with-venue .agenda-col-venue { width: 33%; }

  .agenda-table.with-venue .agenda-date {
    display: table-cell;
    width: 9%;
    padding: 9px 3px;
    border-right: 1px solid var(--agenda-hairline);
  }

  .agenda-table.with-venue .agenda-date-day {
    margin-top: 2px;
    font-size: 24px;
  }

  .agenda-table.with-venue .agenda-date-year,
  .agenda-table.with-venue .agenda-date-month {
    display: none;
  }

  .agenda-table.with-venue .agenda-date-week {
    display: block;
    margin: 2px 0 0;
    font-size: 8px;
    letter-spacing: .04em;
  }

  .agenda-table.with-venue .agenda-time {
    font-size: 8.5px;
    line-height: 1.45;
    white-space: nowrap;
  }

  .agenda-table.with-venue .agenda-program {
    font-size: 12px;
    line-height: 1.55;
    padding-right: 3px;
  }

  .agenda-table.with-venue .agenda-program .agenda-dot {
    width: 3px;
    height: 3px;
    margin-right: 6px;
  }

  .agenda-table.with-venue .agenda-location {
    width: 30%;
    padding: 8px 6px;
    font-size: 10px;
    line-height: 1.45;
  }

  .agenda-location-dot {
    width: 4px;
    height: 4px;
    margin-right: 5px;
  }

  .agenda-table.with-venue tbody tr + tr > td {
    border-top: 1px solid var(--agenda-hairline);
  }

  .agenda-table.with-venue tbody + tbody tr:first-child > * {
    border-top: 1px solid var(--line);
  }

}
