/* Admin sub-navigation */
.admin-nav { gap: .5rem; }
.admin-nav .nav-link { color: var(--brand-700); border-radius: 999px; font-weight: 600; background: #fff; border: 1.5px solid var(--brand-100); }
.admin-nav .nav-link.active { color: #fff; background: var(--brand-gradient); border-color: transparent; }
.table > :not(caption) > * > * { background-color: transparent; }

/* Page hero (inner pages) */
.page-hero { position: relative; width: 100%; max-width: 1200px; margin-inline: auto; display: flex; flex-flow: column; align-items: center; text-align: center; padding: 2.5rem 1.25rem 1.75rem; }
/* Inner-page hero: watercolor backdrop like the Figma pages, event logos in their own colours. */
.page-hero { max-width: none; background: url('images/brand/hero-landscape.webp') center top / cover no-repeat; padding: 2.5rem 1.25rem 2rem; font-family: 'Montserrat', 'Poppins', system-ui, sans-serif; }
.page-hero-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.25rem 4rem; }
.page-hero-logos img { height: auto; max-width: 100%; }
.page-hero-logos img:first-child { width: min(70vw, 200px); }
.page-hero-logos img:last-child { width: min(70vw, 190px); }
.page-hero-ornament { width: 160px; height: auto; margin-block: 1rem; }
.page-hero .hero-info { font-size: 1rem; }
.page-hero .hero-info .icon-date { width: 22px; }
.page-hero .hero-info .icon-venue { width: 20px; }
.page-hero-title { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 800; color: var(--brand-900); margin: 1.25rem 0 0; }
.page-hero .gold-divider { width: min(100%, 420px); margin-block: 1.1rem; }
.page-hero .event-meta { font-size: 1rem; }
.page-hero .event-meta i { font-size: 1.2rem; }
.edition { font-size: 1.05rem; font-weight: 600; color: var(--brand-800); margin: 0 0 1rem; }
.edition small { display: block; font-weight: 500; color: var(--brand-500); }

.content-box { position: relative; background: #fff; width: 100%; max-width: 1200px; margin: 1rem auto 0; padding: 2rem; border-radius: 24px; border: 1px solid var(--brand-100); box-shadow: 0 30px 60px -30px rgb(3 23 91 / 28%); }

/* Programme */
.agenda { --agenda-time: 6.25rem; --agenda-rail: calc(var(--agenda-time) + .875rem); --agenda-gutter: 1.75rem; }
.agenda-nav-tabs { display: flex; flex-flow: wrap; justify-content: center; padding-bottom: 1rem; gap: 1rem; border-bottom: 0; }
.agenda-tab { color: var(--brand-700) !important; border-radius: 999px !important; padding: .75rem 1rem !important; font-size: .95rem !important; font-weight: 600; line-height: 1.75rem !important; border: 1.5px solid var(--brand-100) !important; background: var(--brand-50) !important; display: flex; align-items: center; justify-content: center; transition: all .25s ease; }
.agenda-tab i { font-size: 1.2rem; padding-inline-end: .5rem; }
.agenda-tab.active { background: var(--brand-gradient) !important; color: #fff !important; border-color: transparent !important; box-shadow: var(--brand-shadow); }
.agenda-tab:hover:not(.active) { background-color: var(--brand-100) !important; color: var(--brand-900) !important; border-color: var(--brand-300) !important; }
.agenda-empty { text-align: center; padding: 3rem 1rem; color: var(--brand-500); }
.agenda-empty i { font-size: 2.5rem; }
.agenda-empty p { margin: .5rem 0 0; font-weight: 500; }

.agenda-timeline, .agenda-session-items, .agenda-speakers, .agenda-workshops { list-style: none; margin: 0; padding: 0; }
.agenda-timeline { position: relative; display: flex; flex-flow: column; gap: .375rem; padding-block: .5rem; }
.agenda-timeline::before { content: ""; position: absolute; inset-block: 1.25rem; left: var(--agenda-rail); width: 2px; margin-left: -1px; border-radius: 2px; background: var(--brand-100); }
.agenda-row { position: relative; display: grid; grid-template-columns: var(--agenda-time) minmax(0, 1fr); align-items: start; }
.agenda-row::before { content: ""; position: absolute; left: var(--agenda-rail); top: 1.05rem; width: 11px; height: 11px; margin-left: -5.5px; border-radius: 50%; background: #fff; border: 2px solid var(--brand-300); }
.agenda-time { display: flex; flex-flow: column; align-items: flex-end; padding-block: .7rem; line-height: 1.25; font-variant-numeric: tabular-nums; }
.agenda-time-start { font-size: .95rem; font-weight: 600; color: var(--brand-900); }
.agenda-time-end { font-size: .8rem; color: var(--brand-500); }
.agenda-body, .agenda-session-head { margin-left: var(--agenda-gutter); }
.agenda-body > p:not(.agenda-talk) { display: flex; align-items: center; gap: .6rem; margin: 0; }
.agenda-body > p .bi { font-size: 1.05rem; line-height: 1; }

.agenda-session { display: flex; flex-flow: column; gap: .25rem; margin-block: .75rem .25rem; }
.is-session::before { top: 1.2rem; width: 15px; height: 15px; margin-left: -7.5px; background: var(--brand-gold); border: 3px solid #fff; box-shadow: 0 0 0 2px var(--brand-gold); }
.is-session .agenda-time { padding-top: .95rem; }
.is-session .agenda-time-start { font-size: 1.05rem; }
.agenda-session-head { padding: 1rem 1.25rem 1.1rem; border-radius: 1rem; background: var(--brand-900); color: #fff; }
.agenda-session-mark { margin: 0 0 .25rem; font-size: 1.05rem; font-weight: 600; color: var(--brand-gold-soft); }
.agenda-session-title { max-width: 62ch; margin: 0; font-size: 1.2rem; font-weight: 500; line-height: 1.4; color: #fff; }
.agenda-session-moderators { margin: .7rem 0 0; font-size: .9rem; line-height: 1.6; color: var(--brand-100); }
.agenda-session-moderators span { display: inline-block; white-space: nowrap; }
.agenda-session-moderators > span:first-child { margin-right: .4rem; padding: 0 .6rem; border-radius: 999px; background: var(--brand-gold); color: var(--brand-ink); font-size: .8rem; font-weight: 600; }
.agenda-session-items { display: flex; flex-flow: column; gap: .25rem; }

.is-talk .agenda-body { display: grid; grid-template-columns: minmax(0, 1fr) 14rem; gap: 1.5rem; padding-block: .7rem .8rem; border-top: 1px solid var(--brand-100); }
.agenda-session-items > .is-talk:first-child .agenda-body { border-top: 0; }
.agenda-talk { max-width: 64ch; margin: 0; line-height: 1.5; }
.agenda-speakers { display: flex; flex-flow: column; gap: .3rem; }
.agenda-speakers li { display: flex; flex-flow: column; line-height: 1.3; }
.agenda-speaker-name { font-weight: 600; color: var(--brand-900); }
.agenda-speaker-place { font-size: .8rem; color: var(--brand-500); }

.agenda-row:is(.is-symposium, .is-debate, .is-break, .is-event) .agenda-body { display: flex; align-items: center; min-height: 2.75rem; padding: .5rem 1rem; border-radius: .75rem; }
.is-symposium .agenda-body { justify-content: space-between; gap: 1rem; padding-block: .8rem; background: var(--brand-gold-soft); color: var(--brand-ink); }
.is-symposium::before { background: var(--brand-gold); border-color: var(--brand-gold); }
.agenda-symposium-text { flex: 1; min-width: 0; }
.agenda-symposium-name { display: flex; align-items: center; gap: .6rem; margin: 0; }
.agenda-symposium-theme { margin: .3rem 0 0 1.65rem; font-weight: 600; line-height: 1.45; color: var(--brand-900); }
.agenda-symposium-theme.is-pending { font-weight: 400; font-style: italic; color: var(--brand-800); }
.is-symposium .agenda-speakers { margin: .4rem 0 0 1.65rem; }
.agenda-symposium-logo { flex: none; width: 9.5rem; aspect-ratio: 2 / 1; position: relative; border: 1.5px solid var(--brand-gold); border-radius: 14px; background: #fff; box-shadow: 4px 5px 0 var(--brand-gold); overflow: hidden; }
.agenda-symposium-logo img { position: absolute; inset: 0; width: 100%; height: 100%; padding: .6rem .9rem; object-fit: contain; }
.is-debate .agenda-body { padding-inline: 0; font-weight: 600; color: var(--brand-700); }
.is-break .agenda-body { border: 1px solid var(--brand-100); background: var(--brand-50); color: var(--brand-800); font-weight: 500; }
.is-break .bi { color: var(--brand-500); }
.is-event .agenda-body { background: var(--brand-700); color: #fff; font-weight: 600; }
.is-event::before { background: var(--brand-700); border-color: var(--brand-700); }

.agenda-day-label h3 { margin: 1.25rem 0 .25rem calc(var(--agenda-time) + var(--agenda-gutter)); font-size: 1.05rem; font-weight: 600; color: var(--brand-900); }
.agenda-day-label:first-child h3 { margin-top: 0; }
.agenda-workshops { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr)); gap: .75rem; padding: .25rem 0 .75rem; }
.agenda-workshop { display: flex; flex-flow: column; gap: .45rem; padding: .9rem 1rem 1rem; border: 1px solid var(--brand-100); border-radius: .875rem; background: #fff; box-shadow: 0 10px 24px -20px rgb(3 23 91 / 30%); }
.agenda-workshop-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem .75rem; min-height: 2rem; }
.agenda-workshop-room { display: inline-flex; align-items: center; gap: .35rem; padding: .15rem .65rem; border-radius: 999px; background: var(--brand-50); color: var(--brand-700); font-size: .8rem; font-weight: 600; white-space: nowrap; }
.agenda-workshop-logo { max-width: 5rem; height: 2rem; object-fit: contain; }
.agenda-workshop-by { margin: 0; font-weight: 600; color: var(--brand-900); }
.agenda-workshop-title { margin: 0; line-height: 1.45; }
.agenda-workshop-moderator { margin: .15rem 0 0; font-size: .875rem; color: var(--brand-800); }
.agenda-workshop-moderator b { font-weight: 500; }
.agenda-workshop-moderator span { margin-right: .3rem; padding: 0 .55rem; border-radius: 999px; background: var(--brand-gold); color: var(--brand-ink); font-size: .75rem; font-weight: 600; }

@media (max-width: 991px) {
    .agenda { --agenda-time: 3.4rem; --agenda-gutter: 1.35rem; }
    .content-box { padding: 1.25rem .75rem; border-radius: 18px; }
    .agenda-nav-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
    .agenda-tab { padding: .6rem .75rem !important; line-height: 1.2 !important; font-size: .875rem !important; }
    .is-talk .agenda-body { grid-template-columns: 1fr; gap: .4rem; }
    .agenda-row.is-symposium .agenda-body { flex-direction: column; align-items: flex-start; }
}
