:root {
  --navy: #132a46;
  --blue: #235789;
  --teal: #0f766e;
  --gold: #c98b18;
  --plum: #8d3b72;
  --red: #b23a48;
  --ink: #182230;
  --muted: #637083;
  --line: #d8e0e9;
  --page: #f3f6fa;
  --white: #ffffff;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--page);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.45;
}

.program-shell { max-width: 1700px; margin: 0 auto; padding: 0 24px 48px; }

.program-header {
  margin: 0 -24px 24px;
  padding: 38px max(24px, calc((100vw - 1652px) / 2));
  color: var(--white);
  background: linear-gradient(120deg, #102943, #1d4d75);
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
}

.eyebrow { margin: 0 0 6px; color: #a9d7e6; font-size: .82rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
h1 { margin: 0; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.05; }
.subtitle { margin: 12px 0 0; color: #d4e0ec; font-size: 1rem; }

.download-link {
  flex: 0 0 auto;
  padding: 11px 16px;
  color: var(--navy);
  background: var(--white);
  border-radius: 999px;
  font-weight: 800;
  text-decoration: none;
}
.download-link:hover, .download-link:focus-visible { background: #dceefa; outline: none; }

.day-nav { display: none; gap: 8px; margin: 0 0 18px; overflow-x: auto; padding-bottom: 4px; }
.day-nav button {
  border: 1px solid var(--line); border-radius: 999px; padding: 9px 14px;
  color: var(--navy); background: var(--white); font: inherit; font-weight: 800; white-space: nowrap; cursor: pointer;
}
.day-nav button[aria-pressed="true"] { color: var(--white); background: var(--navy); border-color: var(--navy); }

.schedule { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; align-items: start; }
.day-column { min-width: 0; }
.day-heading {
  position: sticky; top: 8px; z-index: 2; margin: 0 0 12px; padding: 13px 15px;
  color: var(--white); background: var(--blue); border-radius: 12px; box-shadow: 0 5px 18px rgba(19,42,70,.14);
}
.day-column:first-child .day-heading, .day-column:last-child .day-heading { background: var(--teal); }
.day-name { display: block; font-size: .76rem; letter-spacing: .1em; }
.day-date { display: block; font-size: 1.12rem; }
.events { display: grid; gap: 9px; }

.event {
  position: relative; overflow: hidden; padding: 12px 12px 11px 16px;
  background: var(--white); border: 1px solid #e5eaf0; border-radius: 11px;
  box-shadow: 0 4px 15px rgba(20,40,65,.055);
}
.event::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--blue); }
.event-time { margin: 0 0 4px; color: var(--blue); font-size: .78rem; font-weight: 850; letter-spacing: .01em; }
.event-title { margin: 0; font-size: .9rem; line-height: 1.28; }
.event-venue { margin: 8px 0 0; color: var(--muted); font-size: .74rem; }

.event[data-category="registration"] { background: #eaf4fb; }
.event[data-category="registration"]::before { background: var(--navy); }
.event[data-category="keynote"] { background: #f7eaf3; }
.event[data-category="keynote"]::before { background: var(--plum); }
.event[data-category="keynote"] .event-time { color: var(--plum); }
.event[data-category="break"] { background: #f4f6f8; }
.event[data-category="break"]::before { background: #687585; }
.event[data-category="break"] .event-time { color: #687585; }
.event[data-category="meal"] { background: #fff5dd; }
.event[data-category="meal"]::before { background: var(--gold); }
.event[data-category="meal"] .event-time { color: #a86f00; }
.event[data-category="special"] { background: #e7f6f2; }
.event[data-category="special"]::before { background: var(--teal); }
.event[data-category="special"] .event-time { color: var(--teal); }
.event[data-category="award"] { background: #fdecee; }
.event[data-category="award"]::before { background: var(--red); }
.event[data-category="award"] .event-time { color: var(--red); }

.status { padding: 30px; text-align: center; color: var(--muted); background: var(--white); border-radius: 12px; }
.status-error { color: #842029; background: #fff0f1; }

@media (max-width: 1150px) {
  .schedule { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .program-shell { padding: 0 14px 30px; }
  .program-header { margin: 0 -14px 18px; padding: 28px 18px; align-items: start; flex-direction: column; }
  .download-link { padding: 9px 13px; }
  .day-nav { display: flex; }
  .schedule { display: block; }
  .day-column { display: none; }
  .day-column.is-active { display: block; }
  .day-heading { position: static; }
  .event { padding: 14px 14px 13px 18px; }
  .event-title { font-size: 1rem; }
  .event-time, .event-venue { font-size: .82rem; }
}

@media print {
  body { background: #fff; }
  .program-shell { max-width: none; padding: 0; }
  .program-header { margin: 0 0 18px; padding: 20px; print-color-adjust: exact; }
  .download-link, .day-nav { display: none; }
  .schedule { grid-template-columns: repeat(3, 1fr); }
  .day-heading, .event { break-inside: avoid; print-color-adjust: exact; }
}
