/* ICDM 2026 Program · 2026-10-30. All screen styles are scoped to the page body. */
.icdm-program {
  --program-blue: #3157a2;
  --program-line: #dce3ed;
  --program-time-unit: 12px;
  background: #fff;
  padding: 22px 0 30px;
}
.icdm-program .container { width: 100%; max-width: 1290px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
.icdm-program .program-intro { color: #607087; text-align: center; margin-bottom: 12px; font-size: 15px; line-height: 1.6; }
.icdm-program .program-section { width: 100%; max-width: 1000px; margin: 0 auto 18px; }
.icdm-program section[aria-labelledby="room-title"] { width: 100%; max-width: 1250px; margin: 0 auto; }
.icdm-program h2 { color: var(--program-blue); font-size: 25px; font-weight: 700; text-align: center; margin: 18px 0 10px; line-height: 1.4; }
.icdm-program .program-section-heading { display: block; }
.icdm-program .program-table-wrapper { width: 100%; max-width: 100%; box-sizing: border-box; overflow-x: auto; background: #fff; border: 1px solid var(--program-line); border-radius: 7px; }
.icdm-program .program-table-wrapper:focus-visible { outline: 3px solid #7898d3; outline-offset: 3px; }
.icdm-program table { border-collapse: separate; border-spacing: 0; width: 100%; max-width: 1250px; table-layout: fixed; color: #2f3d50; font-size: 14px; line-height: 1.6; }
.icdm-program th, .icdm-program td { padding: 12px; border-right: 1px solid var(--program-line); border-bottom: 1px solid var(--program-line); vertical-align: middle; text-align: center; overflow-wrap: normal; word-break: normal; hyphens: none; }
.icdm-program tr > :last-child { border-right: 0; }
.icdm-program tbody tr:last-child > * { border-bottom: 0; }
.icdm-program thead th { background: #f3f5f8; color: #345074; font-weight: 600; font-size: 13px; }
.icdm-program table .day-table-title { background: #315b87; color: #fff; font-size: 15px; font-weight: 700; padding: 14px 12px; letter-spacing: .01em; }
.icdm-program .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.icdm-program .time-cell { position: sticky; left: 0; background: #f3f5f8; color: #43536b; font-size: 12px; font-weight: 600; white-space: nowrap; z-index: 2; }
.icdm-program thead .time-cell { background: #f3f5f8; color: #345074; z-index: 3; }
/* A single column for each day replaces the old narrow parallel subcolumns. */
.icdm-program .overview-table { min-width: 900px; max-width: 1000px; }
.icdm-program .overview-time-col { width: 112px; }
.icdm-program .overview-table col:not(:first-child) { width: calc((100% - 112px) / 4); }
.icdm-program .overview-table th, .icdm-program .overview-table td { padding: 9px 12px; }
.icdm-program .overview-table thead .event-label { font-size: 13px; }
.icdm-program .overview-table thead .event-detail { margin-top: 2px; font-size: 11px; color: #61738b; }
.icdm-program .overview-table tbody .event-label { font-size: 12px; line-height: 1.45; }
.icdm-program .overview-table tbody .event-label + .event-label { margin-top: 4px; }
.icdm-program .overview-table .event-detail { color: #455a76; font-size: 12px; font-weight: 600; }
.icdm-program table thead tr { height: 36px; }
.icdm-program table thead th { padding: 4px 8px; line-height: 1.35; }
.icdm-program table thead .event-detail { line-height: 1.3; }
.icdm-program table .day-table-title { padding: 4px 8px; line-height: 1.35; }
.icdm-program .timed-row { height: calc(var(--slot-units) * var(--program-time-unit)); }
/* Main-day cells retain the parallel layout shown in main-days.png. */
.icdm-program .compact-day-table { min-width: 760px; max-width: 1250px; }
.icdm-program .compact-time-col { width: 120px; }
.icdm-program .compact-day-2 { min-width: 760px; }
.icdm-program .compact-event { font-weight: 600; font-size: 13px; line-height: 1.5; }
.icdm-program .compact-event + .compact-event { margin-top: 10px; }
.icdm-program .event-label { display: block; font-weight: 600; }
.icdm-program .event-detail { display: block; color: #536781; font-size: 12px; font-weight: 400; line-height: 1.65; margin-top: 4px; }
/* Soft colors retain the categories used in the provided schedule images. */
.icdm-program .event-registration { background: #e7f0f8; }
.icdm-program .event-opening { background: #e9f0da; }
.icdm-program .event-keynote { background: #fbecec; }
.icdm-program .event-break { background: #f9d6b6; color: #624b3a; }
.icdm-program .event-lunch { background: #eaf3e2; }
.icdm-program .event-social { background: #e6edf8; }
.icdm-program .event-paper { background: #deedf8; }
.icdm-program .event-workshop { background: #fff7df; }
.icdm-program .event-tutorial { background: #f0ebf7; }
.icdm-program .event-forum { background: #e5f0d8; }
.icdm-program .event-poster, .icdm-program .event-demo { background: #f8e2e2; }
.icdm-program .event-teen { background: #f2e1f9; }
.icdm-program .empty-cell { background: #fff; color: #8994a5; }
/* Time + parallel workshop list: 2 table columns instead of 12 narrow columns. */
.icdm-program .workshop-table { min-width: 760px; }
.icdm-program .workshop-table .compact-time-col { width: 112px; }
.icdm-program .workshop-table .workshop-list-cell { padding: 0; }
.icdm-program .workshop-table .workshop-afternoon-block { background: #fbe8e8; }
.icdm-program .workshop-table .workshop-late-block { background: #e3f2fb; }
.icdm-program .workshop-room-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(0, 1fr); flex: 1; list-style: none; margin: 0; padding: 0; }
.icdm-program .workshop-room-grid li { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; min-height: 0; padding: 0 4px; border-bottom: 1px solid rgb(92 110 134 / 13%); border-right: 1px solid rgb(92 110 134 / 13%); }
.icdm-program .workshop-room-grid .workshop-original { background: #fff7df; }
.icdm-program .workshop-room-grid .workshop-afternoon { background: #fbe8e8; }
.icdm-program .workshop-room-grid .workshop-late { background: #e3f2fb; }
.icdm-program .workshop-room-grid li:nth-child(4n) { border-right: 0; }
.icdm-program .workshop-room-grid li:nth-last-child(-n+3) { border-bottom: 0; }
.icdm-program .workshop-name { color: #354963; font-weight: 600; font-size: 12px; line-height: 1.2; }
.icdm-program .workshop-location { display: block; margin-top: 1px; }
.icdm-program .workshop-room-grid .program-location { line-height: 1.2; }
.icdm-program .program-location { font-family: inherit; font-size: 12px; font-weight: 400; line-height: 1.35; color: #536781; }
/* Fixed time proportions; compact text fits without internal scrolling.
   Narrow screens retain table width rather than stacking workshop entries. */
.icdm-program table tbody .timed-row > .time-cell { padding: 0 8px; line-height: 18px; box-sizing: border-box; }
.icdm-program table tbody .timed-row > td { position: relative; padding: 0; box-sizing: border-box; }
.icdm-program .program-slot-content { position: absolute; inset: 0; display: flex; flex-direction: column; overflow: visible; padding: 2px 6px; box-sizing: border-box; }
.icdm-program .program-slot-body { flex: 0 0 auto; width: 100%; margin: auto 0; }
.icdm-program .timed-row[data-duration-minutes="20"] .program-slot-content { padding-top: 2px; padding-bottom: 2px; }
.icdm-program .timed-row[data-duration-minutes="20"] .compact-event { font-size: 12px; line-height: 1.3; }
.icdm-program .timed-row[data-duration-minutes="20"] .program-location { font-size: 11px; line-height: 1.3; }
.icdm-program table tbody .timed-row[data-duration-minutes="10"] > .time-cell { font-size: 9px; line-height: 10px; }
.icdm-program .workshop-list-cell .program-slot-content { padding: 0; }
.icdm-program .workshop-list-cell .program-slot-body { display: flex; flex-direction: column; flex: 1 0 auto; margin: 0; min-height: 100%; }
.icdm-program table .timed-poster-cell { background: #fff; }
.icdm-program .timed-poster-cell .program-slot-content { padding: 0; }
.icdm-program .timed-poster-cell .program-slot-body { position: relative; min-height: 100%; margin: 0; }
.icdm-program .program-event-window { position: absolute; top: calc(var(--event-offset) * var(--program-time-unit)); left: 0; right: 0; height: calc(var(--event-units) * var(--program-time-unit)); max-height: calc(100% - var(--event-offset) * var(--program-time-unit)); display: flex; align-items: center; justify-content: center; overflow: visible; padding: 4px 6px; box-sizing: border-box; background: #f8e2e2; }
.icdm-program .program-slot-content:focus-visible { outline: 2px solid #7898d3; outline-offset: -2px; }
.icdm-program .program-help { color: #627087; font-size: 12px; line-height: 1.7; margin: 10px 0 0; }
.icdm-program .day-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.icdm-program .day-tab { color: var(--program-blue); background: #fff; border: 1px solid #cbd7e8; border-radius: 5px; padding: 7px 12px; text-decoration: none; font-weight: 600; font-size: 13px; text-align: center; line-height: 1.5; }
.icdm-program .day-tab small { display: block; font-size: 12px; font-weight: 400; margin-top: 3px; }
.icdm-program .day-tab[aria-selected="true"] { color: #fff; background: #456aa5; border-color: #456aa5; }
.icdm-program .day-tab:hover { box-shadow: inset 0 0 0 1px #9ab1d4; }
.icdm-program .day-tab:focus-visible { outline: 3px solid #7898d3; outline-offset: 3px; }
.icdm-program .program-day { scroll-margin-top: 104px; margin-bottom: 20px; }
.icdm-program [hidden] { display: none !important; }
.icdm-program .program-footer-note { max-width: 1250px; margin: 0 auto; padding-top: 18px; border-top: 1px solid var(--program-line); color: #627087; font-size: 12px; line-height: 1.8; }
.icdm-program .program-downloads { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 10px; margin: 0 0 12px; }
.icdm-program .program-downloads a { display: inline-block; max-width: 100%; padding: 5px 10px; border: 1px solid #cfdaeb; border-radius: 5px; background: #f2f6fc; color: #3157a2; font-size: 12px; font-weight: 600; line-height: 1.5; text-align: center; text-decoration: none; }
.icdm-program .program-downloads a:hover { background: #e9f0fb; text-decoration: underline; text-underline-offset: 3px; }
.icdm-program .program-downloads a:focus-visible { outline: 3px solid #7898d3; outline-offset: 3px; }
.icdm-program .program-download-help { margin: 0 0 6px; color: #627087; font-size: 12px; text-align: center; }
/* The shared timeline fits within the 1250px daily section, including its border. */
.icdm-program .combined-main-table { min-width: 1200px; max-width: 1250px; }
/* Balance parallel lanes, allowing Poster details to stack compactly. */
.icdm-program .combined-time-col { width: calc(100% * 108 / 1248); }
.icdm-program .main-day-1-col { width: calc(100% * 125 / 1248); }
.icdm-program .main-day-2-col { width: calc(100% * 125 / 1248); }
.icdm-program .main-day-1-poster-col { width: calc(100% * 125 / 1248); }
.icdm-program .main-day-2-poster-col { width: calc(100% * 115 / 1248); }
.icdm-program .main-day-2-forum-col { width: calc(100% * 125 / 1248); }
.icdm-program .main-day-2-teen-col { width: calc(100% * 135 / 1248); }
.icdm-program .main-day-3-col { width: calc(100% * 132.5 / 1248); }
.icdm-program .poster-label { display: block; white-space: nowrap; }
.icdm-program .poster-meta { display: flex; align-items: baseline; justify-content: center; gap: 4px; margin-top: 1px; white-space: nowrap; color: #536781; font-size: 10.5px; font-weight: 400; line-height: 1.25; }
.icdm-program .poster-meta > span { flex: 0 0 auto; white-space: nowrap; }
.icdm-program .combined-main-table .combined-demo-poster-cell .compact-event + .compact-event { margin-top: 4px; }
.icdm-program .combined-main-table .main-day-start { border-left: 2px solid #bac9de; }
.icdm-program .combined-main-table .compact-event { font-size: 11.5px; line-height: 1.4; }
.icdm-program .combined-main-table .program-location { font-size: 10.5px; line-height: 1.35; }
.icdm-program .combined-main-table .event-detail { margin-top: 2px; }
.icdm-program .combined-main-table .compact-event + .compact-event { margin-top: 8px; }
.icdm-program .combined-main-table .teen-opening-cell .compact-event { white-space: nowrap; }
.icdm-program .combined-main-table .combined-demo-poster-cell .compact-event:first-child { white-space: nowrap; }
.icdm-program .combined-main-table .event-forum .compact-event { white-space: normal; overflow-wrap: normal; word-break: normal; }
/* Keep each paper/session code with its own venue; explicit list breaks remain. */
.icdm-program .combined-main-table .event-paper .compact-event { font-size: 11.5px; line-height: 1.4; white-space: nowrap; }
.icdm-program .combined-main-table .event-paper .program-location { font-size: 10.5px; line-height: 1.35; }
/* A spanning workshop cell keeps its own typography, independent of its first time row. */
.icdm-program .combined-main-table .event-workshop[data-day="3"] .compact-event { font-size: 11.5px; line-height: 1.4; white-space: nowrap; }
.icdm-program .combined-main-table .event-workshop[data-day="3"] .program-location { font-size: 10.5px; line-height: 1.35; }
.icdm-program .combined-main-table .program-slot-content { padding: 2px 4px; }
.icdm-program .combined-main-table .timed-poster-cell .program-slot-content { padding: 0; }
.icdm-program .combined-main-table .program-event-window { padding: 2px 4px; }
.icdm-program .combined-main-table thead .event-detail { font-size: 11px; font-weight: 400; margin-top: 0; }
.icdm-program .combined-main-table thead tr:nth-child(2) { height: 42px; }
.icdm-program .combined-main-table thead tr:last-child th { font-size: 11.5px; line-height: 1.35; }
/* Overview Poster titles and times stay together; the standalone Poster 1 block may stack. */
.icdm-program .poster-single-line { white-space: nowrap; }
.icdm-program .poster-single-line .poster-time { display: inline; color: #536781; font-size: 10.5px; font-weight: 400; }
.icdm-program .poster-stacked > span { display: block; }
.icdm-program .combined-main-table .poster-stacked > .poster-time,
.icdm-program .combined-main-table .poster-stacked > .program-location { font-family: inherit; color: #536781; font-size: 10.5px; font-weight: 400; line-height: 1.3; letter-spacing: normal; }
.icdm-program .program-mobile-picker { display: none; }
@media (max-width: 768px) {
  .icdm-program { padding: 22px 0 30px; }
  .icdm-program .container { padding: 0 14px; }
  .icdm-program h2 { font-size: 22px; }
  .icdm-program .day-tabs { grid-template-columns: 1fr 1fr; }
  .icdm-program .day-tab { padding: 9px 10px; }
  .icdm-program .workshop-table .compact-time-col { width: 102px; }
}
@media (max-width: 480px) {
  .icdm-program .workshop-table .time-cell { font-size: 11px; }
}
/* On phones, keep real text readable instead of shrinking the full timeline.
   Only program content changes; the site's header and navigation are untouched. */
@media screen and (max-width: 768px) {
  .icdm-program.program-mobile-ready .container { padding: 0 12px; min-width: 0; }
  .icdm-program.program-mobile-ready h2 { font-size: 21px; }
  .icdm-program.program-mobile-ready .program-intro { font-size: 13px; }
  .icdm-program.program-mobile-ready .program-mobile-picker { display: block; margin: 0 0 8px; color: #536781; font-size: 12px; }
  .icdm-program.program-mobile-ready .program-mobile-picker > span { display: block; margin-bottom: 4px; }
  .icdm-program.program-mobile-ready .program-mobile-picker select { display: block; width: 100%; max-width: 100%; box-sizing: border-box; padding: 9px 8px; border: 1px solid #cbd7e8; border-radius: 5px; background: #fff; color: #345074; font: inherit; font-size: 14px; }
  .icdm-program.program-mobile-ready .program-mobile-picker select:focus-visible { outline: 2px solid #7898d3; outline-offset: 2px; }
  .icdm-program.program-mobile-ready .program-table-wrapper { overflow: visible; border: 0; border-radius: 0; }
  .icdm-program.program-mobile-ready table { display: block; width: 100%; min-width: 0; max-width: 100%; }
  .icdm-program.program-mobile-ready table colgroup,
  .icdm-program.program-mobile-ready table thead { display: none; }
  .icdm-program.program-mobile-ready table tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .icdm-program.program-mobile-ready table .timed-row { display: contents; height: auto; }
  .icdm-program.program-mobile-ready table tbody .timed-row > .time-cell { display: none; }
  .icdm-program.program-mobile-ready table tbody .timed-row > td { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--program-line); border-radius: 5px; padding: 0; }
  .icdm-program.program-mobile-ready table tbody td[data-mobile-time]::before { content: attr(data-mobile-time) attr(data-mobile-context); display: block; padding: 5px 7px; border-bottom: 1px solid rgb(92 110 134 / 13%); color: #43536b; font-size: 12px; font-weight: 600; line-height: 1.4; text-align: left; }
  .icdm-program.program-mobile-ready table tbody .timed-row > td[data-mobile-active="false"],
  .icdm-program.program-mobile-ready table tbody .timed-row > .empty-cell { display: none; }
  .icdm-program.program-mobile-ready .overview-table tbody { grid-template-columns: minmax(0, 1fr); }
  .icdm-program.program-mobile-ready .combined-main-table .event-registration,
  .icdm-program.program-mobile-ready .combined-main-table .event-opening,
  .icdm-program.program-mobile-ready .combined-main-table .event-keynote,
  .icdm-program.program-mobile-ready .combined-main-table .event-break,
  .icdm-program.program-mobile-ready .combined-main-table .event-lunch,
  .icdm-program.program-mobile-ready .combined-main-table .event-social,
  .icdm-program.program-mobile-ready .combined-main-table .event-forum,
  .icdm-program.program-mobile-ready .combined-main-table .event-teen,
  .icdm-program.program-mobile-ready .combined-main-table .event-poster { grid-column: 1 / -1; }
  .icdm-program.program-mobile-ready .program-slot-content { position: static; inset: auto; width: 100%; min-width: 0; padding: 8px; }
  .icdm-program.program-mobile-ready .program-slot-body { width: 100%; min-width: 0; min-height: 0; margin: 0; }
  .icdm-program.program-mobile-ready .compact-event,
  .icdm-program.program-mobile-ready .combined-main-table .compact-event,
  .icdm-program.program-mobile-ready .combined-main-table .event-paper .compact-event,
  .icdm-program.program-mobile-ready .combined-main-table .event-workshop[data-day="3"] .compact-event { font-size: 13px; line-height: 1.5; white-space: normal; }
  .icdm-program.program-mobile-ready .program-location,
  .icdm-program.program-mobile-ready .combined-main-table .program-location,
  .icdm-program.program-mobile-ready .combined-main-table .event-paper .program-location,
  .icdm-program.program-mobile-ready .combined-main-table .event-workshop[data-day="3"] .program-location,
  .icdm-program.program-mobile-ready .combined-main-table .poster-stacked > .poster-time,
  .icdm-program.program-mobile-ready .combined-main-table .poster-stacked > .program-location { font-size: 12px; line-height: 1.5; }
  .icdm-program.program-mobile-ready .overview-table tbody .event-label { font-size: 13px; line-height: 1.5; }
  .icdm-program.program-mobile-ready .poster-single-line { white-space: normal; }
  .icdm-program.program-mobile-ready .poster-single-line .poster-time { font-size: 12px; white-space: nowrap; }
  .icdm-program.program-mobile-ready table .timed-poster-cell { background: #f8e2e2; }
  .icdm-program.program-mobile-ready .program-event-window { position: static; width: 100%; height: auto; max-height: none; padding: 0; }
  .icdm-program.program-mobile-ready .workshop-table tbody { display: block; }
  .icdm-program.program-mobile-ready .workshop-table .timed-row { display: block; margin-bottom: 8px; }
  .icdm-program.program-mobile-ready .workshop-table tbody .timed-row > .time-cell { position: static; display: block; padding: 5px 8px; font-size: 12px; line-height: 1.4; border: 1px solid var(--program-line); border-bottom: 0; border-radius: 5px 5px 0 0; text-align: left; }
  .icdm-program.program-mobile-ready .workshop-table tbody .timed-row > td { border-radius: 0 0 5px 5px; }
  .icdm-program.program-mobile-ready .workshop-list-cell .program-slot-content { padding: 0; }
  .icdm-program.program-mobile-ready .workshop-room-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; }
  .icdm-program.program-mobile-ready .workshop-room-grid li { padding: 7px 5px; border-right: 1px solid rgb(92 110 134 / 13%); border-bottom: 1px solid rgb(92 110 134 / 13%); }
  .icdm-program.program-mobile-ready .workshop-room-grid li:nth-child(2n) { border-right: 0; }
  .icdm-program.program-mobile-ready .workshop-name { font-size: 12px; line-height: 1.45; }
  .icdm-program.program-mobile-ready .workshop-room-grid .program-location { font-size: 12px; line-height: 1.45; }
  .icdm-program.program-mobile-ready .program-help { display: none; }
  .icdm-program.program-mobile-ready .day-tab { padding: 7px 5px; font-size: 12px; }
  .icdm-program.program-mobile-ready .day-tab small { font-size: 11px; }
}
@media print {
  .icdm-program { padding: 0; }
  .icdm-program .day-tabs, .icdm-program .program-downloads, .icdm-program .program-download-help { display: none !important; }
  .icdm-program .program-day[hidden] { display: block !important; }
  .icdm-program .program-table-wrapper { overflow: visible; }
  .icdm-program table { min-width: 0; font-size: 10px; }
  .icdm-program .time-cell { position: static; }
  .icdm-program .program-day { break-before: page; }
  .icdm-program .compact-event, .icdm-program .workshop-name { font-size: 10px; }
  .icdm-program .program-location, .icdm-program .event-detail { font-size: 9px; }
}
