.scientific-programme {
    --program-navy: #102a4c;
    --program-blue: #1269a6;
    --program-teal: #087b75;
    --program-cyan: #48c7d5;
    --program-violet: #7158bd;
    --program-gold: #e9a928;
    --program-coral: #df654f;
    --program-magenta: #aa447d;
    --program-card: #ffffff;
    --program-soft: #f1f7fb;
    --program-ink: #17253a;
    --program-muted: #607086;
    background: #f6f9fc;
    color: var(--program-ink);
}

body[data-theme="dark"] .scientific-programme {
    --program-card: #292929;
    --program-soft: #222b31;
    --program-ink: #f4f8fb;
    --program-muted: #bfccd7;
    background: #1e1e1e;
}

.programme-hero {
    position: relative;
    overflow: hidden;
    min-height: 34rem;
    display: flex;
    align-items: center;
    color: #fff;
    background:
        radial-gradient(circle at 18% 15%, rgba(72,199,213,.18) 0 2px, transparent 3px) 0 0/26px 26px,
        radial-gradient(circle at 75% 45%, rgba(255,255,255,.1), transparent 24rem),
        linear-gradient(125deg, #0c2445 0%, #124b7e 54%, #0b776f 100%);
}
.programme-hero::before { content: ""; position: absolute; inset: 0; opacity: .22; background: linear-gradient(115deg, transparent 0 46%, rgba(255,255,255,.12) 46.2% 46.5%, transparent 46.7%), linear-gradient(25deg, transparent 0 68%, rgba(72,199,213,.2) 68.2% 68.6%, transparent 68.8%); }
.programme-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 5rem; background: #f6f9fc; clip-path: polygon(0 70%, 14% 82%, 31% 55%, 48% 78%, 67% 46%, 84% 69%, 100% 48%, 100% 100%, 0 100%); }
body[data-theme="dark"] .programme-hero::after { background: #1e1e1e; }
.programme-hero-inner { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0,1.4fr) minmax(19rem,.6fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; padding-top: 4.8rem; padding-bottom: 7rem; }
.programme-eyebrow { display: inline-flex; align-items: center; gap: .45rem; padding: .38rem .7rem; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; color: #a9f3e9; background: rgba(255,255,255,.08); font-size: .72rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.programme-hero h1 { max-width: 10ch; margin: 1.25rem 0 .8rem; font-size: clamp(3.5rem, 8vw, 7.5rem); font-weight: 880; line-height: .84; letter-spacing: -.07em; }
.programme-hero h1 em { color: #71e4d8; font-family: Georgia, serif; font-weight: 500; }
.programme-hero-copy > p { max-width: 47rem; margin: 1.6rem 0; color: rgba(255,255,255,.8) !important; font-size: clamp(1rem, 2vw, 1.15rem); line-height: 1.72; }
.programme-hero-meta { display: flex; flex-wrap: wrap; gap: .65rem; }
.programme-hero-meta span { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .75rem; border-radius: .6rem; background: rgba(0,0,0,.16); font-size: .86rem; font-weight: 650; }
.programme-hero-meta i { color: #71e4d8; }
.programme-format-note { display: inline-flex; align-items: center; gap: .5rem; margin-top: .75rem; color: rgba(255,255,255,.72); font-size: .78rem; }
.programme-format-note i { color: #f8c452; }
.programme-hero-panel { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: 1.4rem; background: rgba(6,28,54,.45); box-shadow: 0 25px 70px rgba(0,0,0,.2); backdrop-filter: blur(14px); }
.programme-hero-panel > div { min-height: 8rem; display: flex; flex-direction: column; justify-content: center; padding: 1.25rem; border-right: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); }
.programme-hero-panel strong { font-size: clamp(2rem, 5vw, 3.25rem); font-weight: 850; line-height: 1; }
.programme-hero-panel span { margin-top: .35rem; color: rgba(255,255,255,.65); font-size: .72rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.programme-hero-mark { position: relative; display: grid !important; grid-template-columns: 1fr 1fr; place-items: center; color: #71e4d8; font-size: 2.4rem; }
.programme-hero-mark i:last-child { grid-column: 1 / -1; margin-top: -1.5rem; color: #f8c452; font-size: 1.2rem; }
.programme-molecule { position: absolute; z-index: 1; width: 9rem; height: 9rem; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }
.programme-molecule::before, .programme-molecule::after { content: ""; position: absolute; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: #71e4d8; box-shadow: 0 0 0 .5rem rgba(113,228,216,.1); }
.programme-molecule::before { left: -.5rem; top: 45%; }.programme-molecule::after { right: .4rem; top: 8%; }
.molecule-a { left: -4rem; top: 6rem; }.molecule-b { right: 8%; bottom: -2rem; transform: scale(.7); }

.programme-controls { position: sticky; top: 64px; z-index: 20; border-bottom: 1px solid rgba(18,105,166,.12); background: rgba(246,249,252,.92); backdrop-filter: blur(16px); }
body[data-theme="dark"] .programme-controls { background: rgba(30,30,30,.92); }
.programme-day-tabs { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 44rem; margin: -2.7rem auto 0; border: 1px solid rgba(255,255,255,.15); border-radius: 1rem; background: var(--program-card); box-shadow: 0 15px 40px rgba(14,52,86,.16); }
.programme-day-tabs button { position: relative; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: .7rem; align-items: center; padding: .85rem 1.2rem; border: 0; border-right: 1px solid rgba(18,105,166,.1); color: var(--program-muted); background: transparent; text-align: left; }
.programme-day-tabs button:last-child { border-right: 0; }
.programme-day-tabs button::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: 0; height: 3px; border-radius: 99px 99px 0 0; background: transparent; }
.programme-day-tabs button.active { color: var(--program-blue); }
.programme-day-tabs button.active::after { background: linear-gradient(90deg, var(--program-blue), var(--program-teal)); }
.programme-day-tabs span { grid-row: 1 / 3; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: .75rem; background: var(--program-soft); font-size: .75rem; font-weight: 800; }
.programme-day-tabs button.active span { color: #fff; background: var(--program-blue); }
.programme-day-tabs strong { color: var(--program-ink); font-size: .95rem; }.programme-day-tabs small { font-size: .72rem; }
.programme-tools { display: grid; grid-template-columns: minmax(15rem,1fr) auto auto; gap: 1rem; align-items: center; padding: 1rem 0; }
.programme-search-box { position: relative; max-width: 34rem; }
.programme-search-box > i { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--program-muted); }
.programme-search-box input { width: 100%; min-height: 2.85rem; padding: .7rem 3rem .7rem 2.7rem; border: 1px solid rgba(18,105,166,.17); border-radius: 999px; background: var(--program-card); color: var(--program-ink); outline: none; }
.programme-search-box input:focus { border-color: var(--program-cyan); box-shadow: 0 0 0 .2rem rgba(72,199,213,.15); }
.programme-search-box kbd { position: absolute; right: .8rem; top: 50%; transform: translateY(-50%); padding: .15rem .4rem; border: 1px solid rgba(18,105,166,.16); border-radius: .3rem; color: var(--program-muted); background: var(--program-soft); font-family: inherit; }
.programme-type-filters { display: flex; gap: .25rem; overflow-x: auto; }
.programme-type-filters button { border: 0; border-radius: 999px; padding: .48rem .7rem; color: var(--program-muted); background: transparent; font-size: .76rem; font-weight: 750; white-space: nowrap; }
.programme-type-filters button.active { color: #fff; background: var(--program-blue); }
.programme-print { display: inline-flex; align-items: center; gap: .35rem; border: 1px solid rgba(18,105,166,.18); border-radius: .6rem; padding: .55rem .7rem; color: var(--program-blue); background: var(--program-card); font-weight: 700; }

.programme-body { min-height: 40rem; padding: 2.2rem 0 6rem; }
.programme-day-panel { display: none; }.programme-day-panel.active { display: block; animation: programmeFade .32s ease; }
@keyframes programmeFade { from { opacity: 0; transform: translateY(6px); } }
.programme-day-heading { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; margin-bottom: 1.4rem; }
.programme-day-heading > div:first-child { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; place-items: center; min-width: 5rem; min-height: 5rem; border-radius: 1rem; color: #fff; background: linear-gradient(145deg, #1269a6, #087b75); box-shadow: 0 10px 25px rgba(18,105,166,.2); }
.programme-day-heading > div:first-child span { grid-column: 1 / 3; align-self: end; font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.programme-day-heading > div:first-child strong { grid-column: 1 / 3; align-self: start; font-size: 1.8rem; line-height: 1; }
.programme-day-heading p { margin: 0; color: var(--program-teal) !important; font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.programme-day-heading h2 { margin: .2rem 0 0; color: var(--program-ink); font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 850; letter-spacing: -.035em; }
.programme-timezone { display: inline-flex; align-items: center; gap: .4rem; color: var(--program-muted); font-size: .75rem; }
.programme-session-grid { columns: 2 28rem; column-gap: 1.15rem; }
.programme-session-card { position: relative; isolation: isolate; display: inline-block; width: 100%; margin: 0 0 1.15rem; overflow: hidden; break-inside: avoid; border: 1px solid rgba(15,44,66,.12); border-radius: 1.15rem; background: var(--program-card); box-shadow: 0 22px 46px rgba(7,31,53,.15), 0 6px 14px rgba(7,31,53,.08), inset 0 1px 0 rgba(255,255,255,.72); vertical-align: top; transition: box-shadow .25s ease, transform .25s ease; }
.programme-session-card.is-live { box-shadow: 0 0 0 2px var(--program-teal), 0 24px 54px rgba(4,47,52,.23), 0 6px 16px rgba(7,31,53,.1); }
.programme-session-card.is-past { opacity: .74; }
.programme-ipc-art { position: absolute; z-index: 0; top: -.9rem; right: -1rem; width: 10rem; height: 7.6rem; overflow: hidden; color: #0d3852; opacity: .075; pointer-events: none; transform: rotate(-4deg); }
.programme-ipc-art::before { content: ""; position: absolute; top: .45rem; right: .65rem; width: 6.6rem; height: 6.6rem; border: .12rem solid currentColor; border-radius: 50%; box-shadow: 0 0 0 .8rem rgba(13,56,82,.08), inset 0 0 0 1.35rem rgba(13,56,82,.055); }
.programme-ipc-art::after { content: ""; position: absolute; top: 3.55rem; right: .15rem; width: 9rem; height: 1px; background: currentColor; transform: rotate(-26deg); transform-origin: center; }
.programme-ipc-art i { position: absolute; z-index: 1; display: grid; place-items: center; border-radius: 50%; background: var(--program-card); box-shadow: 0 0 0 .16rem currentColor; }
.programme-ipc-art i:nth-child(1) { top: 1.35rem; right: 2.35rem; width: 3.35rem; height: 3.35rem; font-size: 2.4rem; }
.programme-ipc-art i:nth-child(2) { top: 1.05rem; right: 6.65rem; width: 1.85rem; height: 1.85rem; font-size: 1.25rem; }
.programme-ipc-art i:nth-child(3) { top: 5.15rem; right: 1.15rem; width: 1.65rem; height: 1.65rem; font-size: 1.05rem; }
.programme-session-header { position: relative; z-index: 1; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 1rem; align-items: center; padding: 1.15rem 1.25rem; }
.programme-session-icon { display: grid; place-items: center; width: 3.15rem; height: 3.15rem; border-radius: .9rem; color: #fff; background: #1269a6; font-size: 1.25rem; box-shadow: 0 8px 18px rgba(18,105,166,.22); }
.type-oral .programme-session-icon { background: #6447a3; }.type-special .programme-session-icon { background: #b84b3a; }.type-poster .programme-session-icon { background: #875707; }.type-break .programme-session-icon, .type-meal .programme-session-icon { background: #087b75; }.type-ceremony .programme-session-icon { background: #80315e; }
.programme-session-labels { display: flex; flex-wrap: wrap; gap: .35rem; }.programme-session-labels span { display: inline-flex; padding: .2rem .48rem; border-radius: 999px; color: var(--program-blue); background: rgba(18,105,166,.09); font-size: .61rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }.programme-session-labels .programme-live-state { color: var(--program-muted); background: var(--program-soft); }.is-live .programme-live-state { color: #fff; background: #087b75; animation: programmePulse 1.6s infinite; }
@keyframes programmePulse { 50% { box-shadow: 0 0 0 .3rem rgba(15,155,145,.08); } }
.programme-session-main h3 { margin: .45rem 0 .4rem; color: var(--program-ink); font-size: clamp(1rem, 2vw, 1.22rem); font-weight: 820; line-height: 1.3; }
.programme-session-meta { display: flex; flex-wrap: wrap; gap: .7rem; color: var(--program-muted); font-size: .76rem; }.programme-session-meta > * { display: inline-flex; align-items: center; gap: .35rem; }.programme-session-meta i { color: var(--program-teal); }
.programme-book-action button, .programme-booked { display: inline-flex; align-items: center; gap: .35rem; border: 1px solid rgba(18,105,166,.2); border-radius: .65rem; padding: .5rem .65rem; color: var(--program-blue); background: transparent; font-size: .75rem; font-weight: 800; }.programme-booked { color: #087b71; border-color: rgba(15,155,145,.2); background: rgba(15,155,145,.08); }
.programme-theme { display: flex; gap: .75rem; margin: 0 1.25rem 1rem; padding: .8rem; border-radius: .75rem; background: var(--program-soft); }.programme-theme > i { color: var(--program-gold); }.programme-theme p { margin: 0; color: var(--program-muted) !important; font-size: .78rem; line-height: 1.5; }.programme-theme p span { display: block; margin-bottom: .1rem; color: var(--program-ink); font-size: .62rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.programme-slot-list { border-top: 1px solid rgba(18,105,166,.1); }
.programme-slot { display: grid; grid-template-columns: 4.3rem 1.8rem minmax(0,1fr); gap: .4rem; padding: 1rem 1.2rem 1rem 1rem; border-bottom: 1px solid rgba(18,105,166,.09); }.programme-slot:last-child { border-bottom: 0; }
.programme-slot-time { display: flex; flex-direction: column; padding-top: .1rem; color: var(--program-blue); font-variant-numeric: tabular-nums; }.programme-slot-time strong { font-size: .86rem; }.programme-slot-time span { margin-top: .15rem; color: var(--program-muted); font-size: .62rem; }
.programme-detail-label { color: var(--program-violet); font-size: .7rem !important; letter-spacing: .04em; text-transform: uppercase; }
.programme-slot.slot-detail { background: color-mix(in srgb, var(--program-violet) 5%, transparent); }
.programme-slot-line { position: relative; display: flex; justify-content: center; }.programme-slot-line::after { content: ""; position: absolute; top: 1.6rem; bottom: -1.1rem; width: 1px; background: rgba(18,105,166,.16); }.programme-slot:last-child .programme-slot-line::after { display: none; }.programme-slot-line > span { position: relative; z-index: 1; display: grid; place-items: center; width: 1.55rem; height: 1.55rem; border-radius: 50%; color: var(--program-blue); background: var(--program-soft); font-size: .7rem; }
.programme-slot-content { min-width: 0; }.programme-slot-type { display: inline-block; color: var(--program-teal); font-size: .58rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }.programme-slot-content h4 { margin: .22rem 0 .35rem; color: var(--program-ink); font-size: .9rem; font-weight: 700; line-height: 1.42; }.programme-slot-content h4 button { border: 0; padding: 0; color: inherit; background: transparent; font: inherit; text-align: left; }.programme-slot-content p { display: flex; align-items: flex-start; gap: .35rem; margin: 0; color: var(--program-muted) !important; font-size: .74rem; }.programme-slot-content p i { color: var(--program-violet); }.programme-download { display: inline-flex; align-items: center; gap: .3rem; margin-top: .5rem; color: var(--program-teal); font-size: .7rem; font-weight: 750; text-decoration: none; }
.programme-title-link { display: inline-flex; align-items: flex-start; gap: .45rem; color: var(--program-ink); text-decoration-color: color-mix(in srgb, var(--program-teal) 55%, transparent); text-decoration-thickness: 1px; text-underline-offset: .18em; }
.programme-title-link:hover { color: var(--program-blue); text-decoration-color: currentColor; }
.programme-title-link i { flex: 0 0 auto; display: grid; place-items: center; width: 1.55rem; height: 1.55rem; margin-top: -.05rem; border-radius: 50%; color: #fff; background: linear-gradient(145deg, #1269a6, #087b75); font-size: .72rem; box-shadow: 0 4px 10px rgba(18,105,166,.18); }
.programme-title-link:focus-visible, .programme-presenter-link:focus-visible, .programme-abstract-link:focus-visible { border-radius: .25rem; outline: 3px solid color-mix(in srgb, var(--program-cyan) 65%, transparent); outline-offset: 3px; }
.programme-presenter-block { margin-top: .42rem; }
.programme-presenter-link { display: inline-grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .42rem; align-items: center; max-width: 100%; min-height: 2.25rem; padding: .34rem .5rem; border: 1px solid color-mix(in srgb, var(--program-violet) 24%, transparent); border-radius: .65rem; color: var(--program-ink); background: color-mix(in srgb, var(--program-violet) 7%, var(--program-card)); font-size: .75rem; font-weight: 760; line-height: 1.3; text-align: left; }
.programme-presenter-link:hover { border-color: color-mix(in srgb, var(--program-violet) 48%, transparent); color: var(--program-violet); background: color-mix(in srgb, var(--program-violet) 11%, var(--program-card)); }
.programme-presenter-link > i { color: var(--program-violet); font-size: .94rem; }
.programme-presenter-link > span { min-width: 0; }
.programme-presenter-link > small { padding: .16rem .35rem; border-radius: 999px; color: var(--program-violet); background: color-mix(in srgb, var(--program-violet) 11%, transparent); font-size: .56rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.programme-slot-content .programme-source-speaker { display: block; margin-top: .38rem; padding-left: .55rem; border-left: 2px solid color-mix(in srgb, var(--program-violet) 30%, transparent); line-height: 1.45; }
.programme-source-speaker > span { display: block; margin-bottom: .08rem; color: var(--program-violet); font-size: .54rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.programme-speaker-plain { line-height: 1.45; }
.programme-abstract-link { display: inline-flex; align-items: center; gap: .3rem; margin-top: .48rem; padding: .2rem 0; border: 0; color: var(--program-teal); background: transparent; font-size: .68rem; font-weight: 780; }
.programme-abstract-link:hover { color: var(--program-blue); text-decoration: underline; text-underline-offset: .16em; }
.slot-break, .slot-meal { background: rgba(15,155,145,.04); }.slot-poster { background: rgba(233,169,40,.05); }.slot-ceremony { background: rgba(170,68,125,.04); }
.programme-no-results, .programme-empty { grid-column: 1 / -1; padding: 4rem 1rem; border: 1px dashed rgba(18,105,166,.2); border-radius: 1rem; color: var(--program-muted); text-align: center; }.programme-no-results i, .programme-empty i { color: var(--program-cyan); font-size: 2.5rem; }.programme-no-results h3, .programme-empty h2 { margin: .7rem 0 .2rem; color: var(--program-ink); }.programme-no-results button { border: 0; border-radius: 999px; padding: .45rem .8rem; color: #fff; background: var(--program-blue); font-weight: 700; }
.programme-back-top { position: fixed; z-index: 15; right: 1rem; bottom: 1rem; display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: 50%; color: #fff; background: var(--program-blue); box-shadow: 0 8px 20px rgba(18,105,166,.25); }

body[data-theme="dark"] .programme-day-tabs button.active { color: #79d9ff; }
body[data-theme="dark"] .programme-session-labels span { color: #8cddff; background: rgba(72,199,213,.1); }
body[data-theme="dark"] .programme-print,
body[data-theme="dark"] .programme-slot-line > span { color: #8cddff; }
body[data-theme="dark"] .programme-day-heading p,
body[data-theme="dark"] .programme-session-meta i,
body[data-theme="dark"] .programme-slot-type,
body[data-theme="dark"] .programme-download,
body[data-theme="dark"] .programme-abstract-link { color: #7ce6d9; }
body[data-theme="dark"] .programme-detail-label,
body[data-theme="dark"] .programme-slot-content p i,
body[data-theme="dark"] .programme-presenter-link > i,
body[data-theme="dark"] .programme-presenter-link > small,
body[data-theme="dark"] .programme-source-speaker > span { color: #c6b5ff; }
body[data-theme="dark"] .programme-slot-time { color: #81ddff; }
body[data-theme="dark"] .programme-book-action button { color: #8cddff; border-color: rgba(140,221,255,.25); }
body[data-theme="dark"] .programme-booked { color: #7ce6d9; }
body[data-theme="dark"] .programme-title-link { color: #f4f8fb; }
body[data-theme="dark"] .programme-title-link:hover { color: #8cddff; }
body[data-theme="dark"] .programme-presenter-link { color: #f4f8fb; border-color: rgba(198,181,255,.28); }
body[data-theme="dark"] .programme-presenter-link:hover { color: #c6b5ff; border-color: rgba(198,181,255,.58); }
body[data-theme="dark"] .programme-abstract-link:hover { color: #8cddff; }
body[data-theme="dark"] .programme-session-card { border-color: rgba(159,202,220,.13); box-shadow: 0 24px 56px rgba(0,0,0,.52), 0 7px 18px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.045); }
body[data-theme="dark"] .programme-session-card.is-live { box-shadow: 0 0 0 2px #38bbae, 0 25px 58px rgba(0,0,0,.56), 0 7px 20px rgba(0,0,0,.38); }
body[data-theme="dark"] .programme-ipc-art { color: #9bd8d1; opacity: .09; }
body[data-theme="dark"] .programme-ipc-art::before { box-shadow: 0 0 0 .8rem rgba(155,216,209,.07), inset 0 0 0 1.35rem rgba(155,216,209,.045); }

@media (hover: hover) and (pointer: fine) {
    .programme-session-card:not(.is-past):hover { transform: translateY(-2px); box-shadow: 0 29px 62px rgba(7,31,53,.21), 0 8px 18px rgba(7,31,53,.1), inset 0 1px 0 rgba(255,255,255,.75); }
    body[data-theme="dark"] .programme-session-card:not(.is-past):hover { box-shadow: 0 30px 66px rgba(0,0,0,.62), 0 9px 22px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.055); }
}

.programme-presenter-modal .modal-content { overflow: hidden; border: 1px solid rgba(18,105,166,.16); border-radius: 1.25rem; color: #17253a; background: #fff; box-shadow: 0 28px 80px rgba(9,31,54,.28); }
.programme-presenter-modal-header { align-items: flex-start; padding: 1.15rem 1.35rem; border: 0; color: #fff; background: linear-gradient(125deg, #102a4c, #1269a6 58%, #0f9b91); }
.programme-presenter-modal-header > div > span { display: block; margin-bottom: .15rem; color: #a9f3e9; font-size: .62rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.programme-presenter-modal-header h2 { margin: 0; color: #fff; font-size: clamp(1.2rem, 3vw, 1.65rem); font-weight: 820; letter-spacing: -.025em; }
.programme-presenter-modal-header .btn-close { margin: 0; filter: brightness(0) invert(1); opacity: .9; }
.programme-presenter-profile { display: grid; grid-template-columns: minmax(10rem, 13rem) minmax(0,1fr); gap: 1.5rem; padding: clamp(1.15rem, 4vw, 2rem); }
.programme-presenter-photo-frame { overflow: hidden; align-self: start; aspect-ratio: 4 / 5; display: grid; place-items: center; border: 1px solid rgba(18,105,166,.14); border-radius: 1rem; color: #1269a6; background: linear-gradient(145deg, #eef7fb, #e4f3f1); box-shadow: 0 12px 30px rgba(18,69,105,.12); }
.programme-presenter-photo-frame img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.programme-presenter-photo-frame > span { font-size: 4rem; opacity: .42; }
.programme-presenter-profile-copy { min-width: 0; }
.programme-presenter-organization { display: inline-flex; margin: 0 0 1rem; padding: .35rem .58rem; border-radius: .45rem; color: #087b71; background: rgba(15,155,145,.1); font-size: .75rem; font-weight: 760; }
.programme-presenter-profile-copy h3 { margin: 0 0 .55rem; color: #17253a; font-size: .72rem; font-weight: 880; letter-spacing: .09em; text-transform: uppercase; }
.programme-presenter-bio { max-height: min(52vh, 28rem); overflow-y: auto; margin: 0; padding-right: .35rem; color: #52657a; font-size: .92rem; line-height: 1.72; white-space: pre-line; }
body[data-theme="dark"] .programme-presenter-modal .modal-content { border-color: rgba(140,221,255,.16); color: #f4f8fb; background: #292929; }
body[data-theme="dark"] .programme-presenter-profile-copy h3 { color: #f4f8fb; }
body[data-theme="dark"] .programme-presenter-bio { color: #c5d1da; }
body[data-theme="dark"] .programme-presenter-organization { color: #8be9dc; background: rgba(72,199,213,.1); }
body[data-theme="dark"] .programme-presenter-photo-frame { border-color: rgba(140,221,255,.16); color: #8cddff; background: linear-gradient(145deg, #24313b, #1e3837); }

@media (max-width: 991.98px) {
    .programme-hero { min-height: auto; }.programme-hero-inner { grid-template-columns: 1fr; padding-top: 4rem; }.programme-hero-panel { max-width: 34rem; }
    .programme-tools { grid-template-columns: 1fr auto; }.programme-type-filters { grid-row: 2; grid-column: 1 / -1; }.programme-search-box { max-width: none; }
    .programme-session-grid { columns: 1; }
}

@media (max-width: 767.98px) {
    .programme-hero { min-height: 31rem; }.programme-hero-inner { padding-top: 3rem; padding-bottom: 6rem; }.programme-hero h1 { font-size: clamp(3.2rem, 18vw, 5rem); }.programme-hero-copy > p { margin-top: 1.1rem; }
    .programme-controls { top: 58px; }.programme-day-tabs { margin-top: -2.3rem; }.programme-day-tabs button { display: flex; flex-direction: column; gap: .1rem; padding: .65rem .35rem; text-align: center; }.programme-day-tabs span { width: auto; height: auto; padding: .2rem .45rem; border-radius: .4rem; }.programme-day-tabs strong { font-size: .82rem; }.programme-day-tabs small { font-size: .66rem; }
    .programme-tools { gap: .6rem; }.programme-print span, .programme-search-box kbd { display: none; }.programme-search-box input { padding-right: 1rem; }.programme-type-filters { margin: 0 -12px; padding: 0 12px; }
    .programme-body { padding-top: 1.4rem; }.programme-day-heading { grid-template-columns: auto 1fr; }.programme-timezone { grid-column: 1 / -1; }.programme-day-heading > div:first-child { min-width: 4rem; min-height: 4rem; }.programme-day-heading h2 { font-size: 1.45rem; }
    .programme-session-header { grid-template-columns: auto 1fr; padding: 1rem; }.programme-session-icon { width: 2.8rem; height: 2.8rem; }.programme-book-action { grid-column: 2; }.programme-theme { margin: 0 .9rem .9rem; }.programme-slot { grid-template-columns: 3.6rem 1.5rem minmax(0,1fr); padding: .9rem .85rem .9rem .65rem; }.programme-slot-content h4 { font-size: .86rem; }
    .programme-presenter-profile { grid-template-columns: 8rem minmax(0,1fr); gap: 1rem; }
}

@media (max-width: 420px) {
    .programme-hero-panel > div { min-height: 6.5rem; padding: .9rem; }.programme-hero-panel strong { font-size: 2rem; }.programme-hero-meta { flex-direction: column; align-items: flex-start; }.programme-session-labels span:nth-child(2) { display: none; }.programme-session-meta span { line-height: 1.35; }.programme-book-action button span { display: none; }
    .programme-presenter-link { grid-template-columns: auto minmax(0,1fr); width: 100%; }.programme-presenter-link > small { display: none; }
    .programme-presenter-profile { grid-template-columns: 1fr; }.programme-presenter-photo-frame { width: min(10rem, 52vw); margin: 0 auto; }
}

@page {
    size: A4 portrait;
    margin: 10mm 9mm 12mm;
}

@media print {
    html,
    body,
    body.public-theme {
        display: block !important;
        min-height: 0 !important;
        background: #fff !important;
        color: #111 !important;
        color-scheme: light;
        font-size: 9pt;
    }

    .site-navbar,
    .programme-controls,
    footer,
    .programme-back-top,
    .programme-book-action,
    .programme-print,
    .programme-abstract-link,
    .programme-download,
    .programme-live-state,
    .programme-ipc-art,
    .programme-title-link i,
    .programme-presenter-link > small,
    .modal,
    #ajax-navigation-progress {
        display: none !important;
    }

    body.public-theme .scientific-programme {
        --program-card: #fff;
        --program-soft: #f1f6f8;
        --program-ink: #17253a;
        --program-muted: #53657a;
        width: 100% !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        color: var(--program-ink) !important;
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }

    .scientific-programme .container {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    .programme-hero {
        min-height: 0;
        overflow: visible;
        border-bottom: .6pt solid #bfd0db;
        color: var(--program-ink);
        background: #fff !important;
        break-after: avoid;
        page-break-after: avoid;
    }

    .programme-hero::before,
    .programme-hero::after,
    .programme-hero-panel,
    .programme-molecule {
        display: none !important;
    }

    .programme-hero-inner {
        display: block;
        padding: 0 0 4mm;
    }

    .programme-eyebrow {
        padding: 0;
        border: 0;
        color: #087b75;
        background: transparent;
        font-size: 7pt;
        letter-spacing: .09em;
    }

    .programme-hero h1 {
        max-width: none;
        margin: 1.5mm 0 1mm;
        color: var(--program-ink);
        font-size: 19pt;
        line-height: 1.05;
        letter-spacing: -.04em;
    }

    .programme-hero h1 br {
        display: none;
    }

    .programme-hero h1 em {
        color: var(--program-ink);
    }

    .programme-hero-copy > p {
        max-width: none;
        margin: 1.5mm 0;
        color: #364758 !important;
        font-size: 8pt;
        line-height: 1.35;
    }

    .programme-hero-meta {
        gap: 4mm;
    }

    .programme-hero-meta span {
        padding: 0;
        color: #263849 !important;
        background: transparent;
        font-size: 7.5pt;
    }

    .programme-hero-meta i,
    .programme-format-note i {
        color: #087b75;
    }

    .programme-format-note {
        margin-top: 1.5mm;
        color: #53657a;
        font-size: 7pt;
    }

    .programme-body {
        min-height: 0;
        padding: 4mm 0 0;
        background: #fff;
    }

    .programme-day-panel,
    .programme-day-panel.active {
        display: block !important;
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
        break-before: auto;
        page-break-before: auto;
    }

    .programme-day-panel + .programme-day-panel {
        margin-top: 4mm;
        padding-top: 4mm;
        border-top: .8pt solid #bfd0db;
        break-before: auto;
        page-break-before: auto;
    }

    .programme-day-heading {
        grid-template-columns: 14mm minmax(0, 1fr) auto;
        gap: 3mm;
        margin: 0 0 3mm;
        break-inside: avoid;
        break-after: avoid;
        page-break-inside: avoid;
        page-break-after: avoid;
    }

    .programme-day-heading > div:first-child {
        min-width: 14mm;
        min-height: 14mm;
        border-radius: 2mm;
        box-shadow: none;
    }

    .programme-day-heading > div:first-child span {
        font-size: 5.5pt;
    }

    .programme-day-heading > div:first-child strong {
        font-size: 14pt;
    }

    .programme-day-heading p {
        font-size: 6.5pt;
    }

    .programme-day-heading h2 {
        margin-top: .5mm;
        font-size: 15pt;
    }

    .programme-timezone {
        font-size: 6.5pt;
    }

    .programme-session-grid {
        display: block !important;
        columns: auto !important;
        column-count: auto !important;
        column-width: auto !important;
    }

    .programme-session-card,
    .programme-session-card[hidden] {
        display: block !important;
        width: 100%;
        overflow: visible;
        margin: 0 0 3mm;
        border-width: .6pt;
        border-top-width: .6pt;
        border-radius: 2mm;
        opacity: 1 !important;
        background: #fff !important;
        box-shadow: none !important;
        break-inside: auto;
        page-break-inside: auto;
        box-decoration-break: clone;
        -webkit-box-decoration-break: clone;
    }

    .programme-session-header {
        grid-template-columns: 9mm minmax(0, 1fr);
        gap: 2.5mm;
        padding: 2.5mm 3mm;
        break-inside: avoid;
        break-after: avoid;
        page-break-inside: avoid;
        page-break-after: avoid;
    }

    .programme-session-icon {
        width: 9mm;
        height: 9mm;
        border-radius: 2mm;
        font-size: 10pt;
        box-shadow: none;
    }

    .programme-session-labels {
        gap: 1mm;
    }

    .programme-session-labels span {
        padding: .5mm 1.3mm;
        font-size: 5.2pt;
    }

    .programme-session-main h3 {
        margin: 1mm 0 .8mm;
        font-size: 10pt;
        line-height: 1.2;
    }

    .programme-session-meta {
        gap: 2.5mm;
        font-size: 6.5pt;
    }

    .programme-theme {
        gap: 2mm;
        margin: 0 3mm 2mm;
        padding: 1.5mm 2mm;
        border-radius: 1.5mm;
        break-inside: avoid;
        break-after: avoid;
        page-break-inside: avoid;
        page-break-after: avoid;
    }

    .programme-theme p {
        font-size: 6.5pt;
        line-height: 1.3;
    }

    .programme-theme p span {
        font-size: 5.2pt;
    }

    .programme-slot-list {
        break-inside: auto;
        page-break-inside: auto;
    }

    .programme-slot {
        grid-template-columns: 13mm 5mm minmax(0, 1fr);
        gap: 1mm;
        padding: 1.8mm 2.5mm;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .programme-slot-time strong {
        font-size: 7.5pt;
    }

    .programme-slot-time span,
    .programme-detail-label {
        font-size: 5.5pt !important;
    }

    .programme-slot-line::after {
        top: 5mm;
        bottom: -3mm;
    }

    .programme-slot-line > span {
        width: 5mm;
        height: 5mm;
        font-size: 5.5pt;
    }

    .programme-slot-type {
        font-size: 5.2pt;
    }

    .programme-slot-content h4 {
        margin: .5mm 0 .8mm;
        font-size: 8.5pt;
        line-height: 1.28;
    }

    .programme-slot-content p {
        font-size: 7pt;
        line-height: 1.35;
    }

    .programme-presenter-block {
        margin-top: 1mm;
    }

    .programme-presenter-link {
        display: inline-flex;
        min-height: 0;
        padding: 0;
        border: 0;
        color: var(--program-muted);
        background: transparent;
        font-size: 7pt;
    }

    .programme-presenter-link > i {
        font-size: 7pt;
    }

    .programme-source-speaker > span {
        font-size: 5pt;
    }

    .programme-no-results {
        display: none !important;
    }

    /* Print must remain legible when the saved site preference is dark. */
    body[data-theme="dark"] .programme-day-heading h2,
    body[data-theme="dark"] .programme-session-main h3,
    body[data-theme="dark"] .programme-theme p span,
    body[data-theme="dark"] .programme-slot-content h4,
    body[data-theme="dark"] .programme-title-link {
        color: #17253a !important;
    }

    body[data-theme="dark"] .programme-session-meta,
    body[data-theme="dark"] .programme-theme p,
    body[data-theme="dark"] .programme-slot-time span,
    body[data-theme="dark"] .programme-slot-content p,
    body[data-theme="dark"] .programme-presenter-link {
        color: #53657a !important;
    }

    body[data-theme="dark"] .programme-day-heading p,
    body[data-theme="dark"] .programme-session-meta i,
    body[data-theme="dark"] .programme-slot-type {
        color: #087b75 !important;
    }

    body[data-theme="dark"] .programme-session-labels span,
    body[data-theme="dark"] .programme-slot-time,
    body[data-theme="dark"] .programme-slot-line > span {
        color: #1269a6 !important;
    }

    body[data-theme="dark"] .programme-detail-label,
    body[data-theme="dark"] .programme-slot-content p i,
    body[data-theme="dark"] .programme-presenter-link > i,
    body[data-theme="dark"] .programme-source-speaker > span {
        color: #7158bd !important;
    }

    body[data-theme="dark"] .programme-presenter-link {
        border-color: transparent !important;
        background: transparent !important;
    }
}
