/* LASAI 2026 — program styles (shared by index.html and program.html) */
#program {
    --prog-es: #b34a12;
    --prog-es-bg: #fff1e8;
    --prog-en: #0b5c99;
    --prog-en-bg: #e7f2fb;
    --prog-hybrid: #6B1212;
    --prog-hybrid-bg: #f8eaea;
    --prog-virtual: #1f6f4a;
    --prog-virtual-bg: #e6f4ec;
    --prog-line: #e6e9ef;
    --day: var(--primary);
    --day-soft: #eef3fb;
}
/* One colour per day: chips, banners, session titles and times */
#program .day-fri, #program #prog-fri { --day: #8c1d2b; --day-dark: #4d0d16; --day-soft: #fbecee; }
#program .day-sat, #program #prog-sat { --day: #3341a8; --day-dark: #1a2266; --day-soft: #eceffc; }
#program .day-mon, #program #prog-mon { --day: #167050; --day-dark: #0a3d2b; --day-soft: #e5f4ed; }
/* Compact one-line summary of the days (full view only) */
#program .prog-summary { display: flex; flex-wrap: wrap; gap: .25rem 1.1rem; margin: .45rem 0 0; font-size: .82rem; color: var(--gray); }
#program .prog-summary-day { display: inline-flex; align-items: center; gap: .3rem; white-space: nowrap; }
#program .prog-summary-day::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: var(--day); }
#program .prog-summary-day > span:first-child { font-weight: 700; color: var(--day); }
#program .prog-summary-total { white-space: nowrap; font-weight: 600; color: var(--text-light); }
#program.by-day .prog-summary { display: none; }

/* Day tabs: only in "by day" view (same pattern as the SIMBig 2026 program) */
#program .prog-daytabs { display: none; margin: 0 0 1rem; border-bottom: 2px solid var(--prog-line); }
#program.by-day .prog-daytabs { display: flex; }
#program .prog-daytab {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .05rem;
    padding: .5rem .4rem .45rem;
    margin-bottom: -2px;
    background: none;
    border: 0;
    border-bottom: 3px solid transparent;
    font: inherit;
    color: var(--text-light);
    cursor: pointer;
    transition: color .15s, border-color .15s, background .15s;
}
#program .prog-daytab-label { font-weight: 700; font-size: .92rem; }
#program .prog-daytab small { font-size: .74rem; color: var(--gray); }
#program .prog-daytab:hover { color: var(--day); background: var(--day-soft); }
#program .prog-daytab.active { color: var(--day); border-bottom-color: var(--day); }

#program .prog-legend {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    justify-content: flex-end;
    margin: 0 0 1rem;
}
#program .prog-detail .prog-legend .lang-badge,
#program .prog-detail .prog-legend .mode-badge { font-size: .74rem; padding: .2rem .55rem; }

#program .lang-badge,
#program .mode-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .25rem .65rem;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 600;
    white-space: nowrap;
}
#program .lang-badge abbr {
    text-decoration: none;
    font-size: .7rem;
    padding: .05rem .35rem;
    border-radius: 4px;
    color: #fff;
}
#program .lang-es { color: var(--prog-es); background: var(--prog-es-bg); }
#program .lang-es abbr { background: var(--prog-es); }
#program .lang-en { color: var(--prog-en); background: var(--prog-en-bg); }
#program .lang-en abbr { background: var(--prog-en); }
/* UK flag before English badges, same cue as the overview figure */
#program .lang-en::before {
    content: "";
    width: 1.5em; height: .75em; flex: none;
    margin-right: .1em;
    border-radius: 1px;
    box-shadow: 0 0 0 1px rgba(0,0,0,.15);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'%3E%3CclipPath id='c'%3E%3Crect width='60' height='30'/%3E%3C/clipPath%3E%3Cg clip-path='url(%23c)'%3E%3Crect width='60' height='30' fill='%23012169'/%3E%3Cpath d='M0,0 L60,30 M60,0 L0,30' stroke='%23fff' stroke-width='6'/%3E%3Cpath d='M0,0 L60,30 M60,0 L0,30' stroke='%23C8102E' stroke-width='2'/%3E%3Cpath d='M30,0 V30 M0,15 H60' stroke='%23fff' stroke-width='10'/%3E%3Cpath d='M30,0 V30 M0,15 H60' stroke='%23C8102E' stroke-width='6'/%3E%3C/g%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
#program .lang-tba { color: var(--gray); background: #f1f3f5; }
#program .mode-hybrid { color: var(--prog-hybrid); background: var(--prog-hybrid-bg); }
#program .mode-virtual { color: var(--prog-virtual); background: var(--prog-virtual-bg); }

#program .prog-days { display: flex; flex-direction: column; gap: 2rem; }
#program .prog-day {
    background: #fff;
    border: 1px solid var(--prog-line);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .06);
    overflow: hidden;
    scroll-margin-top: 90px;
}
#program .prog-day-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .9rem 1.5rem;
    background: linear-gradient(120deg, var(--day), var(--day-dark));
    color: #fff;
}
#program .prog-day-head h3 { font-size: 1.35rem; margin: 0 0 .35rem; color: #fff; }
#program .prog-day-head h3 i { margin-right: .35rem; opacity: .85; }
#program .prog-day-head .mode-badge { color: #fff; background: rgba(255, 255, 255, .18); }
#program .prog-day-total { display: flex; flex-direction: column; align-items: flex-end; font-size: .75rem; color: rgba(255, 255, 255, .8); text-transform: uppercase; letter-spacing: .04em; }
#program .prog-day-total strong { font-size: 1.5rem; line-height: 1.2; color: #fff; text-transform: none; letter-spacing: 0; }
#program .prog-day-total small { text-transform: none; letter-spacing: 0; font-size: .8rem; }

#program .prog-day-head + .prog-break { margin-top: 1rem; }
#program .prog-break + .prog-break { margin-top: .4rem; }
#program .prog-session { padding: 1.25rem 1.5rem 1.5rem; }
#program .prog-session + .prog-session { border-top: 1px dashed var(--prog-line); }
#program .prog-session-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
#program .prog-session-head h4 { font-size: 1.05rem; margin: 0; color: var(--day); }
#program .prog-total { font-size: .9rem; color: var(--text-light); }

#program .prog-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
#program .prog-table th {
    text-align: left;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--gray);
    padding: .5rem .75rem;
    border-bottom: 2px solid var(--prog-line);
}
#program .prog-table td { padding: .6rem .75rem; border-bottom: 1px solid var(--prog-line); vertical-align: top; }
#program .prog-table tr:last-child td { border-bottom: 0; }
#program .prog-table tbody tr:hover { background: #fafbfd; }
#program .col-time { width: 120px; white-space: nowrap; }
#program .col-speaker { width: 26%; }
#program .col-lang { width: 130px; }
#program .slot-time { display: block; font-weight: 700; color: var(--day); }
#program .slot-dur { display: block; font-size: .8rem; color: var(--gray); }
#program .slot-tbc { display: inline-block; margin-top: .3rem; padding: .05rem .5rem; border-radius: 999px; font-size: .72rem; font-weight: 700; color: #8a5a00; background: #fff4d6; border: 1px dashed #e0b44c; }
#program .speaker { display: block; font-weight: 600; }
#program .affil { display: block; font-size: .82rem; color: var(--gray); }
#program .talk-title { display: block; font-weight: 500; color: var(--text-dark); }
#program .talk-title.tba { font-style: italic; color: var(--gray); }
/* Compact abstracts: a small toggle; text opens below in a quiet box */
#program .talk-abstract { margin-top: .3rem; }
#program .talk-abstract summary { cursor: pointer; font-size: .78rem; font-weight: 600; color: var(--primary); width: fit-content; list-style: none; }
#program .talk-abstract summary::-webkit-details-marker { display: none; }
#program .talk-abstract summary::before { content: "+"; display: inline-block; width: 1em; font-weight: 700; }
#program .talk-abstract[open] summary::before { content: "−"; }
#program .talk-abstract[open] { background: #f7f8fb; border-left: 3px solid var(--prog-line); border-radius: 0 6px 6px 0; padding: .4rem .7rem .55rem; }
#program .talk-abstract p { font-size: .84rem; line-height: 1.5; color: var(--text-light); margin: .35rem 0 0; text-align: left; }
#program .prog-note { text-align: center; margin-top: 1.5rem; font-size: .9rem; color: var(--gray); }

@media screen and (max-width: 820px) {
    #program .prog-legend .mode-badge { white-space: normal; text-align: center; }
    #program .prog-session { padding: 1rem; }
    #program .prog-table thead { display: none; }
    #program .prog-table,
    #program .prog-table tbody,
    #program .prog-table tr,
    #program .prog-table td { display: block; width: 100%; }
    #program .prog-table tr { padding: .85rem 0; border-bottom: 1px solid var(--prog-line); }
    #program .prog-table tr:last-child { border-bottom: 0; }
    #program .prog-table td { border: 0; padding: .2rem 0; }
    #program .col-time .slot-time,
    #program .col-time .slot-dur { display: inline; margin-right: .5rem; }
    #program .col-time .slot-tbc { margin-top: 0; }
}

/* ---------- Buttons (index teaser + program page toolbar) ---------- */
#program .prog-cta,
#program .prog-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    justify-content: center;
    margin: 0 0 1.5rem;
}
#program .prog-toolbar { justify-content: space-between; align-items: center; margin-bottom: .75rem; }
#program .prog-detail .prog-toolbar .prog-btn { padding: .4rem .9rem; font-size: .85rem; }
#program .prog-view-toggle { display: flex; gap: .5rem; flex-wrap: wrap; }
#program .prog-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .55rem 1.1rem;
    border-radius: 8px;
    border: 2px solid var(--primary);
    background: #fff;
    color: var(--primary);
    font: inherit;
    font-size: .9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s, color .2s;
}
#program .prog-btn:hover { background: var(--prog-en-bg); }
#program .prog-btn.active,
#program .prog-btn-primary { background: var(--primary); color: #fff; }
#program .prog-btn-pdf { border-color: #6B1212; background: linear-gradient(135deg, #6B1212, #1f0606); color: #fff; }
#program .prog-btn-pdf:hover { opacity: .9; background: linear-gradient(135deg, #6B1212, #1f0606); }

/* ---------- Program page ---------- */
.prog-page .nav-links a.active { color: var(--primary); }
.prog-page main { padding-top: 70px; }
#program.prog-section { padding-top: 3rem; }
#program .prog-intro { text-align: center; color: var(--text-light); max-width: 760px; margin: -1rem auto 1rem; }
#program .prog-notice { max-width: 760px; margin: 0 auto 2rem; padding: .6rem .9rem; background: #fff8e1; border-left: 4px solid #f59e0b; border-radius: 4px; color: #5f2a00; font-size: .9rem; }
#program .prog-notice p { margin: 0; }
#program .prog-notice .prog-notice-sub, #program .prog-notice .prog-notice-tz { margin-top: .25rem; font-size: .85rem; }
#program .prog-notice .prog-notice-tz { font-weight: 700; font-style: italic; }

/* Program at a glance (figure first) */
#program .prog-glance { margin-bottom: 2.5rem; }
#program .prog-glance-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; margin-bottom: 1rem; }
#program .prog-glance-bar h2,
#program .prog-detail-title { margin: 0; font-size: 1.5rem; color: var(--text-dark); }
#program .prog-glance-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
#program .prog-detail { scroll-margin-top: 80px; padding-top: 2rem; border-top: 2px solid var(--prog-line); }
#program .prog-detail-head { margin-bottom: .9rem; }
#program .prog-detail-sub { color: var(--text-light); margin: .15rem 0 0; font-size: .88rem; }
#program .prog-detail .prog-detail-title { font-size: 1.25rem; }

/* Overview figure */
#program .prog-figure { margin: 0 0 2rem; text-align: center; }
#program .prog-figure img { width: 100%; height: auto; border: 1px solid var(--prog-line); border-radius: 12px; background: #fff; }
#program .prog-figure figcaption { margin-top: .5rem; font-size: .85rem; color: var(--gray); }
#program .prog-figure figcaption a { font-weight: 600; }

#program.by-day .prog-day { display: none; }
#program.by-day .prog-day.active { display: block; }

/* Break between sessions */
#program .prog-break {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin: 0 1.5rem;
    padding: .55rem 1rem;
    border-radius: 8px;
    background: #f1f3f5;
    color: var(--text-light);
    font-size: .88rem;
    font-weight: 600;
}

@media screen and (max-width: 820px) {
    #program .prog-toolbar { flex-direction: column; align-items: stretch; }
    #program .prog-view-toggle { display: grid; grid-template-columns: 1fr 1fr; }
    #program .prog-btn { justify-content: center; }
    #program .prog-break { margin: 0 1rem; }
    #program .prog-legend { justify-content: center; }
    #program .prog-toolbar { gap: .5rem; }
}
@media screen and (max-width: 480px) {
    #program .prog-summary { font-size: .76rem; gap: .2rem .8rem; }
    #program .prog-daytab-label { font-size: .8rem; }
    #program .prog-daytab small { font-size: .68rem; }
    #program .prog-day-head { padding: .8rem 1rem; }
    #program .prog-day-total { flex: none; }
    #program .prog-day-total > span:first-child { display: none; }
    #program .prog-day-total strong { font-size: 1.25rem; }
    #program .prog-day-total small { white-space: nowrap; }
    #program .prog-detail .prog-toolbar .prog-btn { padding: .4rem .5rem; font-size: .8rem; white-space: nowrap; }
    #program .prog-detail .prog-legend .lang-badge,
    #program .prog-detail .prog-legend .mode-badge { font-size: .68rem; padding: .15rem .45rem; }
    #program .prog-day-head h3 { font-size: 1.15rem; }
}

@page { size: A4; margin: 10mm; }
@media print {
    html { font-size: 11px; }
    .section-title { font-size: 1.6rem; margin-bottom: 1.2rem; }
    #program .prog-intro { margin: -.4rem auto .8rem; font-size: .85rem; }
    #program .prog-notice { margin: 0 auto .8rem; padding: .3rem .6rem; font-size: .8rem; }
    #program .prog-figure { margin-bottom: 0; }
    #program .prog-figure img { max-height: 225mm; width: auto; max-width: 100%; }
    #program .prog-figure figcaption, #program .prog-legend, #program .prog-note { display: none; }
    #program .prog-day-head, #program .prog-session { padding: .6rem .9rem; }
    #program .prog-table td { padding: .45rem .5rem; }
    #program .talk-abstract p { font-size: .78rem; }
    .nav, .footer, #program .prog-toolbar, #program .prog-daytabs, #program .prog-detail-head, #program .prog-cta, #program .prog-glance-actions, #program .prog-detail-title, #program .prog-detail-sub { display: none !important; }
    #program .prog-glance { margin-bottom: .6rem; }
    #program .prog-glance-bar { justify-content: center; margin-bottom: .4rem; }
    #program .prog-detail { border-top: 0; padding-top: 0; }
    #program .talk-abstract[open] { background: none; border: 0; padding: 0; }
    .prog-page main { padding-top: 0; }
    #program.prog-section { padding: 0; max-width: none; }
    #program .prog-day { display: block !important; box-shadow: none; break-before: page; }
    #program .prog-figure { display: block !important; }
    #program .prog-table tr { break-inside: avoid; }
    #program .prog-session-head, #program .prog-break, #program .prog-table thead { break-after: avoid; page-break-after: avoid; }
    #program .prog-session-head { break-inside: avoid; }
    #program .talk-abstract p { text-align: left; }
    #program .talk-abstract summary { display: none; }
    * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
#program .prog-eyebrow { display: block; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--gray); margin-bottom: .1rem; }
#program .prog-range { margin-left: .4rem; font-size: .85rem; font-weight: 500; color: var(--gray); }

/* ---------- Compact detailed program (screen only; the PDF keeps its own print layout) ---------- */
@media screen {
    #program .prog-days { gap: 1.1rem; }
    #program .prog-day { border-radius: 12px; border-left: 5px solid var(--day); box-shadow: 0 3px 12px rgba(0, 0, 0, .05); }
    /* Slim one-line day bar instead of the tall banner */
    #program .prog-day-head { padding: .45rem 1rem; gap: .75rem; }
    #program .prog-day-head > div { display: flex; align-items: center; flex-wrap: wrap; gap: .3rem .7rem; }
    #program .prog-day-head h3 { font-size: 1.02rem; margin: 0; line-height: 1.3; }
    #program .prog-day-head h3 i { margin-right: .25rem; font-size: .9em; }
    #program .prog-day-head .mode-badge { font-size: .72rem; padding: .12rem .55rem; }
    #program .prog-day-total { flex-direction: row; align-items: baseline; gap: .35rem; flex: none; white-space: nowrap; }
    #program .prog-day-total > span:first-child { display: none; }
    #program .prog-day-total strong { font-size: 1rem; }
    #program .prog-day-total strong::after { content: " ·"; font-weight: 400; color: rgba(255, 255, 255, .7); }
    #program .prog-day-total small { font-size: .78rem; }
    /* Sessions, breaks and rows */
    #program .prog-day-head + .prog-break { margin-top: .6rem; }
    #program .prog-break + .prog-break { margin-top: .3rem; }
    #program .prog-break { margin: .5rem 1rem 0; padding: .3rem .8rem; font-size: .8rem; border-radius: 6px; }
    #program .prog-session { padding: .55rem 1rem .6rem; }
    #program .prog-session-head { margin-bottom: .25rem; gap: .25rem .75rem; }
    #program .prog-eyebrow { font-size: .64rem; margin-bottom: 0; }
    #program .prog-session-head h4 { font-size: .95rem; }
    #program .prog-range { font-size: .78rem; }
    #program .prog-total { font-size: .78rem; }
    #program .prog-table { font-size: .88rem; }
    #program .prog-table th { padding: .25rem .55rem; font-size: .66rem; }
    #program .prog-table td { padding: .38rem .55rem; }
    #program .col-time { width: 105px; }
    #program .slot-time { font-size: .86rem; }
    #program .slot-dur { font-size: .72rem; }
    #program .slot-tbc { margin-top: .15rem; font-size: .66rem; }
    #program .speaker { font-size: .9rem; }
    #program .affil { font-size: .76rem; line-height: 1.35; }
    #program .talk-title { font-size: .88rem; line-height: 1.4; }
    #program .talk-abstract summary { font-size: .74rem; }
    #program .prog-table .lang-badge { font-size: .7rem; padding: .15rem .5rem; }
    #program .col-lang { width: 115px; }
}
@media screen and (max-width: 820px) {
    #program .prog-day-head { flex-direction: row; align-items: center; }
    #program .prog-session { padding: .5rem .75rem .6rem; }
    #program .prog-break { margin: .5rem .75rem 0; }
    /* Phone: time and language on one line, then speaker and talk */
    #program .prog-table tr { display: grid; grid-template-columns: 1fr auto; column-gap: .5rem; padding: .45rem 0; }
    #program .prog-table td { padding: .1rem 0; }
    #program .col-time { grid-column: 1; grid-row: 1; width: auto; }
    #program .col-lang { grid-column: 2; grid-row: 1; width: auto; text-align: right; }
    #program .col-speaker, #program .col-talk { grid-column: 1 / -1; }
}
@media screen and (max-width: 480px) {
    #program .prog-day-total small { display: none; }
    #program .prog-day-total strong::after { content: none; }
    #program .prog-day-head h3 { font-size: .98rem; }
}
