/* Entryvent Agenda Builder — front end.
   Everything is scoped under .evab; colours, radii and fonts come from the --evab-* tokens
   (defaults below, overridden from Agenda settings / each Faculty listing). Mobile-first. */

.evab {
	--evab-color-primary: #1f5eff;
	--evab-color-text: #1a1a1f;
	--evab-color-muted: #6b6f78;
	--evab-color-surface: #ffffff;
	--evab-color-surface-2: #f4f5f7;
	--evab-color-border: #e4e6ea;
	--evab-color-fav: #e5397a;
	--evab-color-now: #0f9d58;
	/* per-thing colours (Agenda settings); they follow the base colours unless set */
	--evab-filters-bg: var(--evab-color-surface-2);
	--evab-filters-text: var(--evab-color-text);
	--evab-days-bg: var(--evab-color-surface);
	--evab-days-text: var(--evab-color-text);
	--evab-days-border: var(--evab-color-border);
	--evab-days-active-bg: var(--evab-color-primary);
	--evab-days-active-text: #ffffff;
	--evab-session-bg: var(--evab-color-surface);
	--evab-session-border: var(--evab-color-border);
	--evab-card-bg: var(--evab-color-surface);
	--evab-card-border: var(--evab-color-border);
	--evab-radius: 12px;
	--evab-photo-radius: 50%;
	--evab-photo-size: 5.5rem;
	--evab-font-heading: inherit;
	--evab-font-body: inherit;
	--evab-font-size: 16px;
	--evab-accent: var(--evab-session-border);
	--evab-tag: #6b6f78;

	font-family: var(--evab-font-body);
	font-size: var(--evab-font-size);
	line-height: 1.45;
	color: var(--evab-color-text);
	box-sizing: border-box;
}
.evab *, .evab *::before, .evab *::after { box-sizing: inherit; }
.evab h2, .evab h3, .evab h4, .evab p { margin: 0; font-family: inherit; }
.evab h2, .evab h3, .evab h4 { font-family: var(--evab-font-heading); line-height: 1.25; }
.evab button { font: inherit; color: inherit; }
.evab [hidden] { display: none !important; }
.evab .evab-icon { width: 1.25em; height: 1.25em; flex: none; }

/* ---------- buttons & chips ---------- */
.evab .evab-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.55em 1em;
	border: 1px solid var(--evab-color-border);
	border-radius: 999px;
	background: var(--evab-color-surface);
	cursor: pointer;
	font-size: 0.9375em;
	font-weight: 600;
	line-height: 1.2;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.evab .evab-btn:hover { border-color: var(--evab-color-text); }
.evab .evab-btn:focus-visible { outline: 2px solid var(--evab-color-primary); outline-offset: 2px; }
.evab .evab-btn--ghost { border-color: transparent; background: var(--evab-color-surface-2); }
.evab .evab-btn--ghost:hover { background: var(--evab-color-border); border-color: transparent; }
.evab .evab-btn[aria-expanded="true"] { background: var(--evab-color-text); color: var(--evab-color-surface); border-color: var(--evab-color-text); }
.evab .evab-btn__badge {
	min-width: 1.5em;
	padding: 0 0.4em;
	border-radius: 999px;
	background: var(--evab-color-primary);
	color: #fff;
	font-size: 0.75em;
	text-align: center;
}
.evab .evab-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.4em 0.85em;
	border: 1px solid var(--evab-color-border);
	border-radius: 999px;
	background: var(--evab-color-surface);
	cursor: pointer;
	font-size: 0.875em;
	line-height: 1.2;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.evab .evab-chip:hover { border-color: var(--evab-color-text); }
.evab .evab-chip[aria-pressed="true"] { background: var(--evab-color-text); color: var(--evab-color-surface); border-color: var(--evab-color-text); }
.evab .evab-chip__dot { width: 0.6em; height: 0.6em; border-radius: 50%; background: var(--evab-tag); }

/* ---------- toolbar ---------- */
.evab .evab-agenda__toolbar { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1.5rem; }
.evab .evab-days {
	display: flex;
	gap: 0.5rem;
	overflow-x: auto;
	padding-bottom: 0.25rem;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.evab .evab-days::-webkit-scrollbar { display: none; }
.evab .evab-days--center { justify-content: safe center; }
.evab .evab-days__day {
	flex: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 3.75rem;
	padding: 0.5rem 0.75rem 0.4rem;
	border: 1px solid var(--evab-days-border);
	border-radius: var(--evab-radius);
	background: var(--evab-days-bg);
	color: var(--evab-days-text);
	cursor: pointer;
	line-height: 1.1;
	transition: background 0.15s, border-color 0.15s, color 0.15s, transform 0.15s;
}
.evab .evab-days__day:hover { border-color: var(--evab-color-text); }
.evab .evab-days__day:focus-visible { outline: 2px solid var(--evab-color-primary); outline-offset: 2px; }
.evab .evab-days__day[aria-selected="true"] { background: var(--evab-days-active-bg); border-color: var(--evab-days-active-bg); color: var(--evab-days-active-text); }
.evab .evab-days__wd, .evab .evab-days__mon { font-size: 0.7em; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.75; }
.evab .evab-days__num { font-size: 1.5em; font-weight: 700; margin: 0.1em 0; }
.evab .evab-days__day--all .evab-days__num { font-size: 1em; margin: 0.45em 0 0.3em; }
.evab .evab-days__day.is-today::after { content: ""; width: 0.35em; height: 0.35em; border-radius: 50%; background: currentColor; margin-top: 0.25em; }

.evab .evab-agenda__controls { display: flex; gap: 0.6rem; align-items: stretch; width: 100%; }
.evab .evab-search {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 0.6em;
	padding: 0 0.6em 0 1em;
	border: 1px solid transparent;
	border-radius: 999px;
	background: var(--evab-filters-bg);
	color: var(--evab-color-muted);
	transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}
.evab .evab-search:hover { background: var(--evab-color-border); }
.evab .evab-search:focus-within { background: var(--evab-filters-bg); border-color: var(--evab-color-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--evab-color-primary) 18%, transparent); color: var(--evab-color-text); }
/* !important on the metrics: themes style input[type="search"] with higher
   specificity than a class (The7: .content input[type="search"] sets font-size,
   padding, line-height, min-height and a 10px margin-bottom), which pushes the
   text off-centre and grows the pill. */
.evab .evab-search__input, .evab .evab-search__input:focus {
	flex: 1;
	min-width: 0;
	width: auto;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0.5em 0 !important;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	font: inherit !important;
	line-height: 1.3 !important;
	color: var(--evab-filters-text);
	-webkit-appearance: none;
	appearance: none;
}
.evab .evab-search__input::placeholder { color: var(--evab-color-muted); opacity: 1; }
.evab .evab-search__input:focus { outline: none; }
.evab .evab-search__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.evab .evab-search__clear {
	display: none;
	width: 1.75em;
	height: 1.75em;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	background: var(--evab-color-border);
	color: var(--evab-color-text);
	cursor: pointer;
	flex: none;
}
.evab .evab-search.has-value .evab-search__clear { display: inline-flex; }
.evab .evab-search__clear .evab-icon { width: 0.9em; height: 0.9em; }
.evab .evab-btn--filter { flex: none; background: var(--evab-filters-bg); border-color: transparent; color: var(--evab-filters-text); }
.evab .evab-btn--filter:hover { border-color: var(--evab-filters-text); }

.evab .evab-filters {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1rem;
	border: 1px solid var(--evab-color-border);
	border-radius: var(--evab-radius);
	background: var(--evab-filters-bg);
	color: var(--evab-filters-text);
}
.evab .evab-filters__group { border: 0; padding: 0; margin: 0; min-width: 0; }
.evab .evab-filters__label { padding: 0; margin-bottom: 0.4rem; font-size: 0.75em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--evab-color-muted); }
.evab .evab-filters__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.evab .evab-filters__actions { display: flex; justify-content: flex-end; }

/* ---------- days & sessions ---------- */
.evab .evab-day { margin-bottom: 1.5rem; }
.evab .evab-day__title {
	font-size: 0.8em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--evab-color-muted);
	margin: 0 0 0.6rem;
	padding: 0.25rem 0;
}
.evab .evab-day__title--small { margin-top: 0.75rem; }
.evab .evab-agenda__section { font-size: 0.8em; text-transform: uppercase; letter-spacing: 0.08em; color: var(--evab-color-muted); margin-top: 1rem; }

.evab .evab-session {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 0.25rem 0.6rem;
	align-items: start;
	margin-bottom: 0.5rem;
	padding: 0.75rem 0.5rem 0.75rem 0.6rem;
	border: 1px solid var(--evab-session-border);
	border-left: 4px solid var(--evab-accent);
	border-radius: var(--evab-radius);
	background: var(--evab-session-bg);
	transition: box-shadow 0.15s, opacity 0.2s;
}
.evab .evab-session:hover { box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06); }
.evab .evab-session.has-talks { cursor: pointer; }
.evab .evab-session__time { display: flex; flex-direction: column; align-items: center; align-self: stretch; min-width: 3.25rem; font-variant-numeric: tabular-nums; line-height: 1.2; text-align: center; }
.evab .evab-session__start { font-weight: 700; line-height: 1.6; }
.evab .evab-session__end { font-size: 0.8em; color: var(--evab-color-muted); }
.evab .evab-session.is-repeat .evab-session__time { visibility: hidden; }
.evab .evab-session__body { min-width: 0; }
.evab .evab-session__title { font-size: 1.1em; font-weight: 700; }
.evab .evab-session__subtitle { font-size: 0.9em; color: var(--evab-color-muted); margin-top: 0.1rem; }
.evab .evab-session__desc { font-size: 0.9em; margin-top: 0.35rem; color: var(--evab-color-muted); }
.evab .evab-session__desc p { margin: 0 0 0.35em; }
.evab .evab-session__people { font-size: 0.875em; margin-top: 0.35rem; }
.evab .evab-session__label { color: var(--evab-color-muted); }
.evab .evab-name.is-highlight { color: var(--evab-color-primary); }
.evab .evab-tags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.5rem; }
.evab .evab-tag {
	display: inline-block;
	padding: 0.15em 0.6em;
	border-radius: 999px;
	background: var(--evab-color-surface-2);
	color: var(--evab-color-muted);
	font-size: 0.72em;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	line-height: 1.6;
}
.evab .evab-tag--colored { background: var(--evab-tag); color: #fff; }
.evab .evab-session__actions { display: flex; align-items: center; gap: 0.1rem; margin: -0.35rem -0.2rem 0 0; }
.evab .evab-fav, .evab .evab-expand {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.2em;
	min-width: 2.1rem;
	height: 2.1rem;
	padding: 0 0.4rem;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--evab-color-muted);
	cursor: pointer;
	transition: color 0.15s, background 0.15s, transform 0.15s;
}
.evab .evab-fav:hover, .evab .evab-expand:hover { background: var(--evab-color-surface-2); color: var(--evab-color-text); }
.evab .evab-fav:focus-visible, .evab .evab-expand:focus-visible { outline: 2px solid var(--evab-color-primary); outline-offset: 1px; }
.evab .evab-fav[aria-pressed="true"] { color: var(--evab-color-fav); }
.evab .evab-fav[aria-pressed="true"] .evab-icon { fill: currentColor; }
.evab .evab-fav.is-pop .evab-icon { animation: evab-pop 0.3s ease; }
@keyframes evab-pop { 0% { transform: scale(1); } 40% { transform: scale(1.35); } 100% { transform: scale(1); } }
.evab .evab-expand__count { font-size: 0.8em; font-weight: 700; }
.evab .evab-expand .evab-icon { transition: transform 0.2s; }
.evab .evab-expand[aria-expanded="true"] .evab-icon { transform: rotate(180deg); }

/* speaker agenda (collapsible) */
.evab.evab-agenda--speaker { margin-top: 0.75rem; }
.evab .evab-agenda__summary {
	display: flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.6em 0.9em;
	border: 1px solid var(--evab-color-border);
	border-radius: 999px;
	background: var(--evab-color-surface-2);
	cursor: pointer;
	font-weight: 600;
	font-size: 0.9375em;
	list-style: none;
	width: fit-content;
	user-select: none;
}
.evab .evab-agenda__summary::-webkit-details-marker { display: none; }
.evab .evab-agenda__summary .evab-icon--chevron { transition: transform 0.2s; }
.evab.evab-agenda--speaker[open] .evab-agenda__summary .evab-icon--chevron { transform: rotate(180deg); }
.evab .evab-agenda__panel { margin-top: 0.75rem; }
.evab.evab-agenda--speaker .evab-expand { display: none; }

/* now / next: a small pill at the bottom of the time column (::before is the spacer that pushes it down) */
.evab .evab-session__time[data-marker]::before { content: ""; order: 1; flex: 1 0 0.4em; }
.evab .evab-session__time[data-marker]::after {
	content: attr(data-marker);
	order: 2;
	padding: 0.15em 0.55em;
	border-radius: 999px;
	background: var(--evab-color-now);
	color: #fff;
	font-size: 0.62em;
	font-weight: 700;
	line-height: 1.5;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	animation: evab-pulse 2.4s ease-out infinite;
}
.evab .evab-session.is-next .evab-session__time[data-marker]::after { background: transparent; color: var(--evab-color-muted); box-shadow: inset 0 0 0 1px var(--evab-color-border); animation: none; }
@keyframes evab-pulse {
	0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--evab-color-now) 45%, transparent); }
	70%, 100% { box-shadow: 0 0 0 0.55em transparent; }
}

/* talks */
.evab .evab-talks { grid-column: 1 / -1; display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.25s ease; }
.evab .evab-talks.is-open { grid-template-rows: 1fr; }
.evab .evab-talks__inner { min-height: 0; overflow: hidden; }
.evab .evab-talks.is-open .evab-talks__inner { overflow: visible; }
.evab .evab-talk {
	display: grid;
	grid-template-columns: 3.25rem 1fr auto;
	gap: 0.25rem 0.6rem;
	align-items: start;
	padding: 0.6rem 0;
	border-top: 1px dashed var(--evab-color-border);
	cursor: default;
}
.evab .evab-talks__inner > .evab-talk:first-child { margin-top: 0.6rem; border-top: 1px solid var(--evab-color-border); }
.evab .evab-talk.evab-talk--notime { grid-template-columns: 1fr auto; }
.evab .evab-talk--notime .evab-talk__time { display: none; }
.evab .evab-talk__time { display: flex; flex-direction: column; align-items: center; text-align: center; font-size: 0.85em; font-variant-numeric: tabular-nums; line-height: 1.25; color: var(--evab-color-muted); }
.evab .evab-talk__start { font-weight: 700; color: var(--evab-color-text); line-height: 1.54; }
.evab .evab-talk__title { font-size: 0.9em; font-weight: 600; }
.evab .evab-talk__speakers { font-size: 0.85em; color: var(--evab-color-muted); margin-top: 0.1rem; }
.evab .evab-talk__desc { font-size: 0.85em; margin-top: 0.25rem; color: var(--evab-color-muted); }
.evab .evab-talk.is-highlight { background: var(--evab-color-surface-2); border-radius: calc(var(--evab-radius) / 2); padding-left: 0.5rem; padding-right: 0.5rem; }
.evab .evab-talk.is-fav .evab-talk__title { color: var(--evab-color-fav); }
.evab .evab-fav--talk { min-width: 2rem; height: 2rem; }

.evab .evab-empty {
	padding: 2rem 1rem;
	text-align: center;
	color: var(--evab-color-muted);
	border: 1px dashed var(--evab-color-border);
	border-radius: var(--evab-radius);
}
.evab .evab-empty a { color: var(--evab-color-primary); }

/* favourites layout: a favourite session and only its favourite talks */
.evab.evab-agenda--favorites .evab-session:not(.is-fav):not(.has-fav-talk) { display: none; }
.evab.evab-agenda--favorites .evab-talk:not(.is-fav) { display: none; }
.evab.evab-agenda--favorites .evab-expand { display: none; }
.evab.evab-agenda--favorites .evab-session { cursor: default; }

/* kiosk: the agenda (or the abstract listing, below) owns the screen. The body is hidden from <head>
   (Shortcodes::kiosk_head) so the theme never paints; the root sits fixed
   over the viewport at the highest z-index there is, and frontend.js
   re-parents it to <body> so no theme wrapper (transform, opacity,
   z-index) can trap it under a header. body.evab-kiosk is the hook for
   per-site CSS. */
body.evab-kiosk { overflow: hidden; }
.evab.evab-agenda--kiosk, .evab.evab-abstracts--kiosk {
	--evab-font-size: 18px;
	position: fixed;
	inset: 0;
	z-index: 2147483647;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	margin: 0;
	padding: 1.5rem clamp(1rem, 4vw, 3rem) 3rem;
	background: var(--evab-color-surface);
	visibility: visible;
}
/* inside the WPBakery front-end editor (Shortcodes::in_builder): the kiosk look, in place */
.evab.evab-kiosk-preview { position: relative; inset: auto; z-index: auto; overflow: visible; padding: 0; }
.evab.evab-agenda--kiosk > * { max-width: 1400px; margin-left: auto; margin-right: auto; }
.evab.evab-agenda--kiosk .evab-session__actions .evab-fav { display: none; }

/* ---------- faculty ---------- */
.evab.evab-faculty { container-type: inline-size; }
.evab .evab-faculty__grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.evab .evab-card {
	display: grid;
	grid-template-columns: var(--evab-photo-size) 1fr;
	gap: 0.25rem 1rem;
	align-items: start;
	padding: 1rem;
	border: 1px solid var(--evab-card-border);
	border-radius: var(--evab-radius);
	background: var(--evab-card-bg);
}
.evab.evab-faculty--noborder .evab-card { border-color: transparent; padding: 0.75rem; }
.evab .evab-card__photo, .evab .evab-modal__photo {
	width: var(--evab-photo-size);
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: var(--evab-photo-radius);
	background: var(--evab-color-surface-2);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--evab-color-muted);
}
.evab .evab-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.evab .evab-card__placeholder { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
.evab .evab-card__placeholder .evab-icon { width: 42%; height: 42%; stroke-width: 1.5; }
.evab.evab-faculty--photo-round { --evab-photo-radius: 50%; }
.evab.evab-faculty--photo-rounded { --evab-photo-radius: calc(var(--evab-radius) / 2); }
.evab.evab-faculty--photo-square { --evab-photo-radius: 0; }
.evab.evab-faculty--photo-s { --evab-photo-size: 4.25rem; }
.evab.evab-faculty--photo-l { --evab-photo-size: 7rem; }
.evab.evab-faculty--photo-none .evab-card { grid-template-columns: 1fr; }
.evab.evab-faculty--photo-none .evab-card__photo { display: none; }
.evab .evab-card__body { min-width: 0; }
/* each text line reads its own --evab-card-<line>-* (set per listing), else the defaults here;
   -gap = space below the line, so a listing can pull name + position together and push the rest apart */
.evab .evab-card__name { font-size: var(--evab-card-name-size, 1.05em); font-weight: var(--evab-card-name-weight, 700); font-style: var(--evab-card-name-style, normal); color: var(--evab-card-name-color, inherit); margin-bottom: var(--evab-card-name-gap, 0.15rem); }
.evab .evab-card__position { font-size: var(--evab-card-position-size, 0.9em); font-weight: var(--evab-card-position-weight, 400); font-style: var(--evab-card-position-style, normal); color: var(--evab-card-position-color, inherit); margin-bottom: var(--evab-card-position-gap, 0); }
.evab .evab-card__institution { font-size: var(--evab-card-institution-size, 0.875em); font-weight: var(--evab-card-institution-weight, 400); font-style: var(--evab-card-institution-style, normal); color: var(--evab-card-institution-color, var(--evab-color-muted)); margin-bottom: var(--evab-card-institution-gap, 0.2rem); }
.evab .evab-card__place { display: flex; align-items: center; gap: 0.3em; font-size: var(--evab-card-place-size, 0.8em); font-weight: var(--evab-card-place-weight, 400); font-style: var(--evab-card-place-style, normal); color: var(--evab-card-place-color, var(--evab-color-muted)); margin-bottom: var(--evab-card-place-gap, 0); }
.evab .evab-card__agenda { grid-column: 1 / -1; min-width: 0; align-self: end; }
.evab .evab-card__agenda .evab-agenda--speaker { margin-top: 0.5rem; }
.evab .evab-card__agenda .evab-agenda__summary { white-space: nowrap; font-size: 0.875em; padding: 0.5em 0.85em; }
.evab .evab-card__agenda .evab-session { font-size: 0.9em; }
/* cards in one row share a height: the agenda pill sits at the bottom of every card */
.evab.evab-faculty--text-right .evab-card { grid-template-rows: 1fr auto; }
.evab.evab-faculty--text-bottom .evab-card { grid-template-rows: auto 1fr auto; }
.evab.evab-faculty--text-bottom .evab-card__agenda { text-align: left; justify-self: stretch; }
.evab.evab-faculty--text-bottom .evab-card__agenda .evab-agenda__summary { margin: 0 auto; }
.evab.evab-faculty--shadow .evab-card { box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 6px 16px rgba(16, 24, 40, 0.06); }
.evab .evab-faculty__toolbar { display: flex; margin-bottom: 1rem; }
.evab .evab-faculty__toolbar .evab-search { flex: 1; }
.evab .evab-card.is-hidden { display: none; }
.evab .evab-card__place .evab-icon { width: 1em; height: 1em; }
.evab .evab-card__more { margin-top: 0.6rem; }
.evab .evab-card__body > :last-child { margin-bottom: 0; }
.evab.evab-faculty--text-bottom .evab-card { grid-template-columns: 1fr; text-align: center; justify-items: center; }
.evab.evab-faculty--text-bottom .evab-card__photo { width: calc(var(--evab-photo-size) * 1.45); }
.evab.evab-faculty--text-bottom .evab-card__place { justify-content: center; }
.evab.evab-faculty--text-bottom .evab-card__more { justify-self: center; }
.evab.evab-faculty--single { grid-template-columns: 1fr; }
.evab .evab-bio { margin-top: 1rem; font-size: 0.95em; }
.evab .evab-bio p { margin: 0 0 0.75em; }

/* modal */
.evab .evab-modal {
	position: fixed;
	inset: 0;
	margin: auto;
	width: min(42rem, calc(100vw - 2rem));
	max-height: min(85vh, 60rem);
	padding: 0;
	border: 0;
	border-radius: var(--evab-radius);
	background: var(--evab-color-surface);
	color: var(--evab-color-text);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
	font-family: var(--evab-font-body);
	font-size: var(--evab-font-size);
	line-height: 1.45;
}
.evab .evab-modal::backdrop { background: rgba(10, 10, 20, 0.5); backdrop-filter: blur(2px); }
.evab .evab-modal[open] { animation: evab-modal-in 0.2s ease; }
@keyframes evab-modal-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.evab .evab-modal__close {
	position: absolute;
	top: 0.6rem;
	right: 0.6rem;
	display: inline-flex;
	width: 2.25rem;
	height: 2.25rem;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	background: var(--evab-color-surface-2);
	color: var(--evab-color-text);
	cursor: pointer;
}
.evab .evab-modal__body { padding: 1.5rem; overflow: auto; max-height: inherit; }
.evab .evab-modal__head { display: flex; gap: 1rem; align-items: center; padding-right: 2.5rem; margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--evab-color-border); }
.evab .evab-modal__photo { width: 4.5rem; flex: none; --evab-photo-size: 4.5rem; }
.evab .evab-modal__name { font-size: 1.15em; font-weight: 700; }
.evab .evab-modal__position, .evab .evab-modal__place { font-size: 0.875em; color: var(--evab-color-muted); }
.evab .evab-modal .evab-agenda--speaker { margin-top: 1rem; }

/* ---------- abstracts (ePoster listing) ---------- */
/* --evab-abs-* are the listing's own tokens (Abstracts Listing › Settings); each follows the globals unless set */
.evab.evab-abstracts {
	--evab-abs-filters-bg: var(--evab-filters-bg);
	--evab-abs-filters-text: var(--evab-filters-text);
	--evab-abs-row-bg: var(--evab-color-surface);
	--evab-abs-row-border: var(--evab-color-border);
	--evab-abs-row-text: var(--evab-color-text);
	--evab-abs-bar-width: 6px;
	--evab-abs-radius: var(--evab-radius);
	--evab-abs-btn-bg: var(--evab-color-primary);
	--evab-abs-btn-text: #ffffff;
	container-type: inline-size;
}
.evab .evab-abstracts__toolbar { display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 1.25rem; }
.evab .evab-abstracts__controls { display: flex; justify-content: flex-end; gap: 0.6rem; align-items: stretch; }
/* position of search + Filters (controls_align) and of the tour bar (tours_align); on phones the search fills the line anyway */
.evab.evab-abstracts--controls-left .evab-abstracts__controls { justify-content: flex-start; }
.evab.evab-abstracts--controls-center .evab-abstracts__controls { justify-content: center; }
.evab.evab-abstracts--tours-center .evab-abstracts__tours { justify-content: center; }
.evab.evab-abstracts--tours-right .evab-abstracts__tours { justify-content: flex-end; }
.evab .evab-abstracts__controls .evab-search { flex: 1 1 auto; max-width: 24rem; }
.evab .evab-abstracts__controls .evab-search, .evab .evab-abstracts__controls .evab-btn--filter { background: var(--evab-abs-filters-bg); color: var(--evab-abs-filters-text); }
.evab .evab-abstracts__controls .evab-search:hover { background: var(--evab-color-border); }
.evab .evab-abstracts__controls .evab-btn--filter[aria-expanded="true"] { background: var(--evab-color-text); color: var(--evab-color-surface); }
.evab .evab-abstracts__filters { padding: 0.75rem; background: var(--evab-abs-filters-bg); color: var(--evab-abs-filters-text); }
.evab .evab-abstracts__filters.is-open { padding: 0; border: 0; background: none; }
.evab .evab-abstracts__filters.is-open .evab-filters__chips { justify-content: flex-end; }
/* chips sit on the surface colour: they keep the global text colour whatever the filters text is */
.evab .evab-abstracts__filters .evab-chip:not([aria-pressed="true"]) { color: var(--evab-color-text); }
/* filter style "list" (the default, Abstracts Listing › Settings): one full-width button per category,
   stacked, the category colour as a thick leading bar (like the old posters page); made for phones and
   the kiosk. The buttons carry the filters background / text; selected = a darker shade of it + bold.
   The bar is an inset shadow, not a border, so the chips' hover border rules never recolour it.
   Its width is --evab-abs-filter-bar-width (Settings › Search & filters), unset = 10px here, 12px on the kiosk. */
.evab .evab-abstracts__filters--list, .evab .evab-abstracts__filters--list.is-open { padding: 0; border: 0; border-radius: 0; background: none; }
.evab .evab-abstracts__filters--list .evab-filters__chips { flex-direction: column; flex-wrap: nowrap; gap: 0.45rem; }
.evab .evab-abstracts__filters--list.is-open .evab-filters__chips { justify-content: flex-start; }
.evab .evab-abstracts__filters--list .evab-chip,
.evab .evab-abstracts__filters--list .evab-chip:not([aria-pressed="true"]) {
	display: flex;
	justify-content: flex-start;
	width: 100%;
	min-height: 2.9em;
	padding: 0.8em 1em 0.8em calc(var(--evab-abs-filter-bar-width, 10px) + 0.9em);
	border: 0;
	border-radius: var(--evab-abs-radius);
	background: var(--evab-abs-filters-bg);
	box-shadow: inset var(--evab-abs-filter-bar-width, 10px) 0 0 var(--evab-color-border);
	color: var(--evab-abs-filters-text);
	font-size: 1em;
	font-weight: 500;
	line-height: 1.3;
	text-align: left;
	overflow-wrap: anywhere;
}
.evab .evab-abstracts__filters--list .evab-chip[data-abstract-category] { box-shadow: inset var(--evab-abs-filter-bar-width, 10px) 0 0 var(--evab-tag); }
.evab .evab-abstracts__filters--list .evab-chip:hover { background: color-mix(in srgb, var(--evab-abs-filters-bg) 94%, var(--evab-abs-filters-text)); }
.evab .evab-abstracts__filters--list .evab-chip[aria-pressed="true"] { background: color-mix(in srgb, var(--evab-abs-filters-bg) 85%, var(--evab-abs-filters-text)); color: var(--evab-abs-filters-text); font-weight: 700; }
.evab .evab-abstracts__filters--list .evab-chip:focus-visible { outline: 2px solid var(--evab-color-primary); outline-offset: 2px; }
.evab .evab-abstracts__filters--list .evab-chip__dot { display: none; }

/* tour bar (tours=on, TECH-SPEC §14.4): All tours + one button per tour, wrapping; same family as the
   full-width filter buttons (filters background / text, listing radius); the active one is inverted */
.evab .evab-abstracts__tours { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-bottom: 0.9rem; }
.evab .evab-abstracts__tours--sticky {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 3;
	padding: 0.6rem 0;
	background: var(--evab-color-surface);
}
.evab .evab-tour {
	display: inline-flex;
	align-items: center;
	min-height: 2.6em;
	margin: 0;
	padding: 0.55em 1.1em;
	border: 0;
	border-radius: var(--evab-abs-radius);
	background: var(--evab-abs-filters-bg);
	color: var(--evab-abs-filters-text);
	font: inherit;
	font-size: 1em;
	font-weight: 600;
	line-height: 1.25;
	text-align: left;
	cursor: pointer;
	overflow-wrap: anywhere;
}
.evab .evab-tour:hover { background: color-mix(in srgb, var(--evab-abs-filters-bg) 90%, var(--evab-abs-filters-text)); }
.evab .evab-tour[aria-pressed="true"] { background: var(--evab-abs-filters-text); color: var(--evab-abs-filters-bg); }
.evab .evab-tour:focus-visible { outline: 2px solid var(--evab-color-primary); outline-offset: 2px; }
/* the tour colour as a dot before the name (like the category chips); it keeps its colour on the active button */
.evab .evab-tour .evab-chip__dot { flex: none; width: 0.65em; height: 0.65em; margin-right: 0.5em; }
/* a tour with a single category: no category filter (frontend.js sets the class and hides the other chips) */
.evab.evab-abstracts.is-tour-single .evab-btn--filter, .evab.evab-abstracts.is-tour-single .evab-abstracts__filters { display: none; }
.evab .evab-abstracts__filters .evab-chip[hidden] { display: none; }

.evab .evab-abstracts__list { display: flex; flex-direction: column; gap: 0.6rem; }
.evab .evab-abstract {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.25rem 0.75rem;
	align-items: start;
	padding: 0.85rem 0.9rem 0.85rem 0.75rem;
	border: 1px solid var(--evab-abs-row-border);
	border-left: var(--evab-abs-bar-width) solid var(--evab-tag);
	border-radius: var(--evab-abs-radius);
	background: var(--evab-abs-row-bg);
	color: var(--evab-abs-row-text);
}
.evab .evab-abstract__number { min-width: 2.75rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.35; color: var(--evab-color-muted); }
.evab .evab-abstract__body { grid-column: -2; min-width: 0; }
.evab .evab-abstract__title { font-size: 1.05em; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
/* category (Category colour: Chip) and tour (Show tour) as the agenda's topic tags, under the title */
.evab .evab-abstract__tags { margin-top: 0.35rem; }
/* Category colour: Chip, so no colour bar on the leading edge */
.evab.evab-abstracts--category-chip .evab-abstract { border-left: 1px solid var(--evab-abs-row-border); }
.evab .evab-abstract__author, .evab .evab-abstract__coauthors { font-size: 0.9em; margin-top: 0.3rem; }
.evab .evab-abstract__coauthors { margin-top: 0.1rem; }
.evab .evab-abstract__label { color: var(--evab-color-muted); }
.evab .evab-abstract__place { color: var(--evab-color-muted); }
.evab .evab-abstract__more { margin-top: 0.4rem; font-size: 0.9em; }
.evab .evab-abstract__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
	width: fit-content;
	cursor: pointer;
	list-style: none;
	font-weight: 600;
	color: var(--evab-color-primary);
	user-select: none;
}
.evab .evab-abstract__toggle::-webkit-details-marker { display: none; }
.evab .evab-abstract__toggle .evab-icon { width: 1em; height: 1em; transition: transform 0.2s; }
.evab .evab-abstract__more[open] .evab-abstract__toggle .evab-icon { transform: rotate(180deg); }
.evab .evab-abstract__toggle-less, .evab .evab-abstract__more[open] .evab-abstract__toggle-more { display: none; }
.evab .evab-abstract__more[open] .evab-abstract__toggle-less { display: inline; }
.evab .evab-abstract__desc { margin-top: 0.35rem; color: var(--evab-color-muted); }
.evab .evab-abstract__desc p { margin: 0 0 0.5em; }
.evab .evab-abstract__actions { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.65rem; }
/* View poster / Contact author: compact unless Settings › Buttons sets --evab-abs-btn-font-size / -padding (px;
   no default here, like the filter bar width): text 0.85em (about the author line), padding 0.4em, sides twice that */
.evab .evab-abstract__actions .evab-btn {
	padding: var(--evab-abs-btn-padding, 0.4em) calc(var(--evab-abs-btn-padding, 0.425em) * 2);
	border-color: var(--evab-abs-btn-bg);
	background: var(--evab-abs-btn-bg);
	color: var(--evab-abs-btn-text);
	font-size: var(--evab-abs-btn-font-size, 0.85em);
	text-decoration: none;
	-webkit-user-select: none;
	user-select: none;
}
.evab .evab-abstract__actions .evab-btn:hover { border-color: var(--evab-abs-btn-bg); background: color-mix(in srgb, var(--evab-abs-btn-bg) 86%, #000); }
.evab .evab-abstract__actions .evab-icon { width: 1.1em; height: 1.1em; }
.evab .evab-abstract[hidden] { display: none; }
.evab.evab-abstracts .evab-empty { margin-top: 0.6rem; }
@container (max-width: 419px) {
	.evab .evab-abstract { padding: 0.75rem 0.75rem 0.75rem 0.6rem; gap: 0.2rem 0.55rem; }
	.evab .evab-abstract__number { min-width: 2.25rem; }
	.evab .evab-abstracts__controls .evab-search { max-width: none; }
}

/* poster viewer: full screen, dark stage, image fit to width; zoom = image width, pan = scroll */
.evab .evab-poster {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: #16171b;
	color: #fff;
	font-family: var(--evab-font-body);
	font-size: var(--evab-font-size);
	line-height: 1.4;
	overflow: hidden;
}
.evab .evab-poster::backdrop { background: #16171b; }
.evab .evab-poster__bar {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 0.4rem;
	height: 3.25rem;
	padding: 0 0.5rem 0 1rem;
	background: rgba(22, 23, 27, 0.92);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.evab .evab-poster__title { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 0.9em; font-weight: 600; opacity: 0.85; }
.evab .evab-poster__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35em;
	flex: none;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.7rem;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	cursor: pointer;
	font-size: 0.875em;
	font-weight: 600;
}
.evab .evab-poster__btn:hover { background: rgba(255, 255, 255, 0.2); }
.evab .evab-poster__btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.evab .evab-poster__btn:disabled { opacity: 0.35; cursor: default; }
.evab .evab-poster__close { background: #fff; color: #16171b; }
.evab .evab-poster__close:hover { background: rgba(255, 255, 255, 0.85); }
.evab .evab-poster__stage {
	position: absolute;
	top: 3.25rem;
	left: 0;
	right: 0;
	bottom: 0;
	overflow: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}
/* !important on transition / transform: sites style images with an id selector (mrc2026:
   #main img { transition: 0.5s } and #main img:hover { transform: scale(1.2) }), which makes the
   zoom slide, breaks the re-centring of the scroll position and blows the poster up on hover */
.evab .evab-poster__img { display: block; width: 100%; max-width: none; height: auto; margin: 0 auto; transition: none !important; transform: none !important; }
/* no iOS long-press callout (Open in new tab / Save image) on the poster */
.evab .evab-poster__img { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; -webkit-user-drag: none; }
.evab .evab-poster.is-loading .evab-poster__img, .evab .evab-poster.is-error .evab-poster__img { visibility: hidden; }
.evab .evab-poster.is-error [data-zoom] { display: none; }
.evab .evab-poster__loader {
	display: none;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 2.5rem;
	height: 2.5rem;
	margin: -1.25rem 0 0 -1.25rem;
	border: 3px solid rgba(255, 255, 255, 0.2);
	border-top-color: #fff;
	border-radius: 50%;
	animation: evab-spin 0.8s linear infinite;
}
.evab .evab-poster.is-loading .evab-poster__loader { display: block; }
@keyframes evab-spin { to { transform: rotate(360deg); } }
.evab .evab-poster__error { position: absolute; top: 50%; left: 0; right: 0; padding: 0 1.5rem; transform: translateY(-50%); text-align: center; font-weight: 600; opacity: 0.85; }
/* the dialog sits in the top layer: its size is the viewport's, so a media query, not the listing's container */
@media (max-width: 479px) {
	.evab .evab-poster__btn span { display: none; }
	.evab .evab-poster__title { font-size: 0.8em; }
}

/* ---------- abstracts kiosk (TECH-SPEC §13.7): unattended touch screen ---------- */
/* the root fills the screen with the agenda kiosk rule above; dialogs stay full screen */
.evab.evab-abstracts--kiosk > :not(dialog) { max-width: 1400px; margin-left: auto; margin-right: auto; }
/* no text selection, iOS long-press callout or tap flash; the search field stays editable */
.evab.evab-abstracts--kiosk, .evab.evab-abstracts--kiosk dialog {
	-webkit-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
	-webkit-tap-highlight-color: transparent;
}
.evab.evab-abstracts--kiosk .evab-search__input { -webkit-user-select: text; user-select: text; }
/* touch targets of at least 3em (54px at the kiosk's 18px) */
.evab.evab-abstracts--kiosk .evab-search { min-height: 3em; padding-left: 1.2em; }
.evab.evab-abstracts--kiosk .evab-abstracts__controls .evab-search { max-width: 32rem; }
.evab.evab-abstracts--kiosk .evab-search__clear { width: 2.5em; height: 2.5em; }
.evab.evab-abstracts--kiosk .evab-btn--filter { min-height: 3em; padding: 0.6em 1.4em; font-size: 1em; }
.evab.evab-abstracts--kiosk .evab-chip { min-height: 3em; padding: 0.6em 1.25em; font-size: 1em; }
.evab.evab-abstracts--kiosk .evab-filters__chips { gap: 0.6rem; }
.evab.evab-abstracts--kiosk .evab-abstracts__filters--list .evab-chip { min-height: 3.25em; padding: 0.9em 1.25em 0.9em calc(var(--evab-abs-filter-bar-width, 12px) + 1em); box-shadow: inset var(--evab-abs-filter-bar-width, 12px) 0 0 var(--evab-color-border); }
.evab.evab-abstracts--kiosk .evab-abstracts__filters--list .evab-chip[data-abstract-category] { box-shadow: inset var(--evab-abs-filter-bar-width, 12px) 0 0 var(--evab-tag); }
.evab.evab-abstracts--kiosk .evab-abstract__toggle { min-height: 3em; padding-right: 1em; }
.evab.evab-abstracts--kiosk .evab-abstracts__tours { gap: 0.6rem; margin-bottom: 1.1rem; }
.evab.evab-abstracts--kiosk .evab-abstracts__tours--sticky { top: 0; padding: 1rem 0; }
/* the full-screen root is the scroll container and its 1.5rem top padding counts as sticky inset: pull the bar into it */
.evab.evab-abstracts--kiosk:not(.evab-kiosk-preview) .evab-abstracts__tours--sticky { margin-top: -1.5rem; top: -1.5rem; }
.evab.evab-abstracts--kiosk .evab-tour { min-height: 3em; padding: 0.6em 1.4em; }
.evab.evab-abstracts--kiosk .evab-abstract__actions { gap: 0.75rem; margin-top: 0.85rem; }
/* a 44px touch target with the listing's text size and a modest padding (not the filters' size); a set Button
   padding applies here too and lifts the 44px (Style writes --evab-abs-btn-min-height: 0 with it) */
.evab.evab-abstracts--kiosk .evab-abstract__actions .evab-btn { min-height: var(--evab-abs-btn-min-height, 44px); padding: var(--evab-abs-btn-padding, 0.4em) calc(var(--evab-abs-btn-padding, 0.5em) * 2); }
.evab.evab-abstracts--kiosk .evab-poster__bar { height: 4.5rem; }
.evab.evab-abstracts--kiosk .evab-poster__stage { top: 4.5rem; }
.evab.evab-abstracts--kiosk .evab-poster__btn { min-width: 3.25rem; height: 3.25rem; padding: 0 1.1rem; font-size: 1em; }
/* no hover looks: on a touch screen they stick after a tap */
.evab.evab-abstracts--kiosk .evab-abstracts__controls .evab-search:not(:focus-within):hover { background: var(--evab-abs-filters-bg); }
.evab.evab-abstracts--kiosk .evab-btn--filter:hover { border-color: transparent; }
.evab.evab-abstracts--kiosk .evab-chip:not([aria-pressed="true"]):hover { border-color: var(--evab-color-border); }
.evab.evab-abstracts--kiosk .evab-abstracts__filters--list .evab-chip:not([aria-pressed="true"]):hover { background: var(--evab-abs-filters-bg); }
.evab.evab-abstracts--kiosk .evab-tour:not([aria-pressed="true"]):hover { background: var(--evab-abs-filters-bg); }
.evab.evab-abstracts--kiosk .evab-abstract__actions .evab-btn:hover { background: var(--evab-abs-btn-bg); }
.evab.evab-abstracts--kiosk .evab-poster__btn:hover { background: rgba(255, 255, 255, 0.1); }
.evab.evab-abstracts--kiosk .evab-poster__close:hover { background: #fff; }

/* Contact author on the kiosk: dark full screen, a large QR of the mailto, a tap anywhere closes it */
.evab .evab-qr {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 1.5rem;
	border: 0;
	background: #16171b;
	color: #fff;
	font-family: var(--evab-font-body);
	font-size: var(--evab-font-size);
	line-height: 1.35;
	text-align: center;
	cursor: pointer;
}
.evab .evab-qr[open] { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.25rem; }
.evab .evab-qr::backdrop { background: #16171b; }
.evab .evab-qr p { margin: 0; }
.evab .evab-qr__name { font-family: var(--evab-font-heading); font-size: 1.75em; font-weight: 700; overflow-wrap: anywhere; }
/* the SVG carries its own white quiet zone (4 modules) */
.evab .evab-qr__code { width: min(62vmin, 40rem); line-height: 0; }
.evab .evab-qr__code svg { display: block; width: 100%; height: auto; }
.evab .evab-qr__email { font-size: 1.5em; font-weight: 600; overflow-wrap: anywhere; }
.evab .evab-qr__hint { font-size: 1.35em; font-weight: 600; }
.evab .evab-qr__close { font-size: 0.95em; opacity: 0.6; }

/* ---------- wider screens ---------- */
@media (min-width: 640px) {
	.evab .evab-session { padding: 0.85rem 0.6rem 0.85rem 0.75rem; gap: 0.25rem 0.9rem; }
	.evab .evab-session__time { min-width: 3.75rem; }
	.evab .evab-session__end { font-size: 0.85em; }
	.evab .evab-talk { grid-template-columns: 3.75rem 1fr auto; gap: 0.25rem 0.9rem; }
}
/* faculty columns follow the container, not the viewport (shortcodes land in any column width) */
@container (min-width: 420px) {
	.evab.evab-faculty--cols-2 .evab-faculty__grid, .evab.evab-faculty--cols-3 .evab-faculty__grid, .evab.evab-faculty--cols-4 .evab-faculty__grid, .evab.evab-faculty--cols-5 .evab-faculty__grid, .evab.evab-faculty--cols-6 .evab-faculty__grid { grid-template-columns: repeat(2, 1fr); }
}
@container (min-width: 680px) {
	.evab.evab-faculty--cols-3 .evab-faculty__grid { grid-template-columns: repeat(3, 1fr); }
	.evab.evab-faculty--cols-4 .evab-faculty__grid, .evab.evab-faculty--cols-5 .evab-faculty__grid, .evab.evab-faculty--cols-6 .evab-faculty__grid { grid-template-columns: repeat(3, 1fr); }
}
@container (min-width: 900px) {
	.evab.evab-faculty--cols-4 .evab-faculty__grid { grid-template-columns: repeat(4, 1fr); }
	.evab.evab-faculty--cols-5 .evab-faculty__grid { grid-template-columns: repeat(5, 1fr); }
	.evab.evab-faculty--cols-6 .evab-faculty__grid { grid-template-columns: repeat(6, 1fr); }
}
@container (max-width: 419px) {
	.evab.evab-faculty--text-right:not(.evab-faculty--photo-none) .evab-card { grid-template-columns: calc(var(--evab-photo-size) * 0.82) 1fr; }
	.evab.evab-faculty--text-right .evab-card__photo { width: calc(var(--evab-photo-size) * 0.82); }
}
@media (prefers-reduced-motion: reduce) {
	.evab *, .evab *::before, .evab *::after { transition: none !important; animation: none !important; }
}
@media print {
	.evab .evab-agenda__controls, .evab .evab-filters, .evab .evab-fav, .evab .evab-expand, .evab .evab-abstracts__toolbar, .evab .evab-abstracts__tours, .evab .evab-abstract__actions { display: none !important; }
	.evab .evab-talks { grid-template-rows: 1fr !important; }
	.evab .evab-session { break-inside: avoid; }
}
