/* Scoped timetable presentation; conference-program.js remains the source of all slots. */
body[data-page="conference-program"] { background: #fff; }
.conference-program {
  width: min(1200px, calc(100% - 64px));
  padding: 56px 0 80px;
  color: #163752;
  font: 16px/1.75 Inter, "Microsoft YaHei", sans-serif;
}
.program-status { margin-bottom: 26px; }
.program-status strong { color: #082650; font-size: 28px; font-weight: 800; line-height: 1.4; }
.program-status p { max-width: 950px; margin-top: 10px; color: #61758c; font-size: 16px; line-height: 1.8; }
.program-date-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 52px; }
.program-date-nav a {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 20px;
  padding: 23px 28px;
  border: 1px solid #d7e4f0;
  border-left: 3px solid #087df4;
  background: #f4f8fd;
  color: #082650;
  text-decoration: none;
  transition: border-color .18s, background .18s;
}
.program-date-nav a:hover { border-color: #087df4; background: #eaf3ff; }
.program-date-label { grid-column: 1 / -1; color: #0870cc; font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.program-date-nav strong { font-size: 22px; font-weight: 700; line-height: 1.6; }
.program-date-hours { display: flex; align-items: center; gap: 16px; color: #61758c; font-size: 14px; font-variant-numeric: tabular-nums; }
.program-date-hours i { color: #087df4; font-size: 13px; }
.program-days { gap: 64px; }
.program-day { scroll-margin-top: 30px; }
.program-day > header { position: relative; padding: 0 0 22px; border-top: 0; border-bottom: 1px solid #d7e4ef; }
.program-day > header::after { content: ""; position: absolute; bottom: -1px; left: 0; width: 54px; height: 3px; background: #ef5b3c; }
.program-day > header > div > .program-day-number { margin: 0 0 9px; color: #0870cc; font-size: 13px; font-weight: 700; letter-spacing: .1em; }
.program-day > header h3 { color: #082650; font: 800 32px/1.35 "Roboto Condensed", "Microsoft YaHei", sans-serif; }
.program-day > header .program-day-subtitle { padding: 0 0 3px; color: #61758c; font-size: 14px; }
.conference-program .program-table { margin-top: 22px; border: 1px solid #d9e5ef; border-collapse: collapse; background: #fff; }
.program-time-column { width: 19%; }
.program-session-column { width: 30%; }
.program-details-column { width: 51%; }
.conference-program .program-table th:first-child, .conference-program .program-table th:last-child { width: auto; }
.conference-program .program-table thead th { padding: 13px 24px; border-bottom: 1px solid #d9e5ef; color: #4c6580; background: #edf4fc; font-size: 14px; font-weight: 600; }
.conference-program .program-table td { padding: 20px 24px; border-bottom: 1px solid #e0e8f0; vertical-align: middle; }
.conference-program .program-table .program-time { border-left: 3px solid #9ac7f5; color: #315777; font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; }
.program-time-divider { margin: 0 4px; color: #8aa0b5; }
.conference-program .program-table .program-session strong { color: #082650; font-size: 18px; font-weight: 700; line-height: 1.55; }
.conference-program .program-table .program-details { color: #61758c; font-size: 16px; line-height: 1.75; overflow-wrap: anywhere; }
.conference-program .program-table tr.keynote td { background: #f1f7ff; }
.conference-program .program-table tr.keynote .program-time { border-left-color: #087df4; color: #086dca; }
.conference-program .program-table tr.break td { color: #5c7981; background: #f3f9f8; }
.conference-program .program-table tr.break .program-time { border-left-color: #90c4bc; }
.conference-program .program-table tr.break .program-session strong { color: #3b696d; font-weight: 600; }
.conference-program .program-table tr.service .program-time { border-left-color: #c5d2df; }
.program-notes { display: block; margin-top: 64px; padding: 30px 0 0; border-top: 1px solid #d7e4ef; border-bottom: 0; }
.program-notes h2 { color: #082650; font: 800 28px/1.4 "Roboto Condensed", "Microsoft YaHei", sans-serif; }
.program-venue-line { display: flex; align-items: baseline; gap: 12px; margin: 16px 0 26px; padding: 14px 20px; background: #f4f8fd; color: #4f6c86; }
.program-venue-line i { flex: 0 0 auto; color: #087df4; font-size: 16px; }
.program-venue-line p { font-size: 16px; }
.program-guidance-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.program-guidance-grid article { position: relative; padding: 18px 0; border-top: 1px solid #d7e4ef; }
.program-guidance-number { display: block; margin-bottom: 9px; color: #087df4; font: 700 13px/1.4 "Roboto Condensed", sans-serif; letter-spacing: .1em; }
.program-guidance-grid h3 { margin-bottom: 10px; color: #082650; font-size: 19px; font-weight: 700; line-height: 1.55; }
.program-guidance-grid p { color: #61758c; font-size: 15px; line-height: 1.8; }
.program-related { gap: 26px; margin-top: 28px; padding-top: 24px; border-top: 1px solid #d7e4ef; }
.program-related a { display: inline-flex; align-items: center; gap: 14px; color: #0870cc; font-size: 16px; }
.program-related a i { font-size: 13px; }
.program-date-nav a:focus-visible, .program-related a:focus-visible { outline: 2px solid #087df4; outline-offset: 4px; }
@media (max-width: 1000px) {
  .program-date-nav a { grid-template-columns: 1fr; gap: 6px; padding: 20px 24px; }
  .program-date-label { grid-column: auto; }
  .program-date-hours { justify-content: space-between; }
  .conference-program .program-table thead th, .conference-program .program-table td { padding-right: 18px; padding-left: 18px; }
  .program-time-column { width: 22%; }
  .program-session-column { width: 30%; }
  .program-details-column { width: 48%; }
}
@media (max-width: 800px) {
  .conference-program { width: calc(100% - 40px); padding: 36px 0 56px; }
  .program-status strong { font-size: 25px; }
  .program-date-nav { gap: 14px; margin-bottom: 40px; }
  .program-day > header { display: block; padding-bottom: 20px; }
  .program-day > header h3 { font-size: 28px; }
  .program-day > header .program-day-subtitle { margin-top: 8px; text-align: left; }
  .conference-program .program-table { display: block; width: 100%; border: 1px solid #d9e5ef; }
  .conference-program .program-table colgroup, .conference-program .program-table thead { display: none; }
  .conference-program .program-table tbody { display: block; width: 100%; }
  .conference-program .program-table tr { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 20px 22px; border-left: 3px solid #9ac7f5; border-bottom: 1px solid #e0e8f0; }
  .conference-program .program-table tbody tr:last-child { border-bottom: 0; }
  .conference-program .program-table tr.keynote { border-left-color: #087df4; background: #f1f7ff; }
  .conference-program .program-table tr.break { border-left-color: #90c4bc; background: #f3f9f8; }
  .conference-program .program-table tr.service { border-left-color: #c5d2df; }
  .conference-program .program-table td { display: block; grid-column: 1; grid-row: auto; min-width: 0; padding: 0; border: 0 !important; background: transparent !important; }
  .conference-program .program-table .program-time { font-size: 15px; }
  .conference-program .program-table .program-session strong { font-size: 18px; }
  .conference-program .program-table .program-details { margin-top: 0; font-size: 16px; }
  .program-days { gap: 48px; }
  .program-notes { margin-top: 44px; }
  .program-guidance-grid { grid-template-columns: 1fr; gap: 0; }
  .program-guidance-grid article { padding: 20px 0; }
}
@media (max-width: 480px) {
  .conference-program { width: calc(100% - 32px); }
  .program-status strong { font-size: 24px; }
  .program-status p { font-size: 15px; }
  .program-date-nav { gap: 10px; }
  .program-date-nav a { padding: 15px 12px; gap: 8px; }
  .program-date-nav strong { font-size: 17px; line-height: 1.5; }
  .program-date-label { font-size: 11px; }
  .program-date-hours { gap: 8px; font-size: 12px; }
  .program-date-hours i { font-size: 10px; }
  .program-day > header h3 { font-size: 25px; }
  .conference-program .program-table tr { padding: 18px 16px; }
  .conference-program .program-table .program-details { font-size: 15px; }
  .program-notes h2 { font-size: 25px; }
  .program-venue-line { padding: 14px 16px; }
  .program-venue-line p { font-size: 15px; }
  .program-related { gap: 20px; }
}
@media (prefers-reduced-motion: reduce) { .program-date-nav a { transition: none; } }
