/*!
 * SUE Faculty of Engineering — Material Design 3 styles (design language of the SUE module plugins).
 * Every rule is scoped to .seng-root so the module never leaks into (or depends on) the theme.
 * Logical properties (inline-start / inline-end) mirror the layout automatically for Arabic (RTL).
 */

/* ------------------------------------------------------------------ */
/* Tokens                                                              */
/* ------------------------------------------------------------------ */
.seng-root {
	/* Brand */
	--seng-primary: #1A2956;
	--seng-primary-hover: #22356E;
	--seng-on-primary: #FFFFFF;
	--seng-primary-container: #DDE2F6;
	--seng-on-primary-container: #0E1740;
	--seng-secondary: #9B8444;
	--seng-secondary-strong: #7D6829;
	--seng-on-secondary: #FFFFFF;
	--seng-secondary-container: #F3EAD0;
	--seng-on-secondary-container: #3A2F0B;
	--seng-gold-text: #735F27;

	/* Surfaces (tonal) */
	--seng-surface: #F6F7FB;
	--seng-surface-lowest: #FFFFFF;
	--seng-surface-low: #F1F3F9;
	--seng-surface-container: #EBEEF5;
	--seng-surface-high: #E4E7F0;
	--seng-on-surface: #1A1C23;
	--seng-on-surface-variant: #464A57;
	--seng-outline: #767A89;
	--seng-outline-variant: #D3D6E1;
	--seng-divider: #E6E8EF;

	/* Status */
	--seng-error: #B3261E;
	--seng-error-container: #FCE8E6;
	--seng-success: #1E6B3A;
	--seng-success-container: #DFF3E6;

	/* Elevation (navy-tinted shadows) */
	--seng-elev-1: 0 1px 2px rgba(20, 30, 70, .10), 0 1px 3px 1px rgba(20, 30, 70, .06);
	--seng-elev-2: 0 2px 4px rgba(20, 30, 70, .10), 0 4px 12px 2px rgba(20, 30, 70, .08);
	--seng-elev-3: 0 6px 12px rgba(20, 30, 70, .12), 0 10px 28px 4px rgba(20, 30, 70, .10);

	/* Shape */
	--seng-r-s: 8px;
	--seng-r-m: 12px;
	--seng-r-l: 16px;
	--seng-r-xl: 20px;
	--seng-r-xxl: 28px;
	--seng-r-full: 999px;

	/* Motion */
	--seng-ease: cubic-bezier(.2, 0, 0, 1);
	--seng-ease-emph: cubic-bezier(.05, .7, .1, 1);
	--seng-dur: .25s;

	/* Type */
	--seng-font: 'Roboto', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;

	font-family: var(--seng-font);
	font-size: 16px;
	line-height: 1.7;
	color: var(--seng-on-surface);
	background: var(--seng-surface);
	text-align: start;
	-webkit-font-smoothing: antialiased;
}

.seng-root[dir="rtl"] {
	--seng-font: 'Cairo', 'Segoe UI', Tahoma, Arial, sans-serif;
	line-height: 1.85;
}

/* ------------------------------------------------------------------ */
/* Scoped reset (neutralize theme styles)                              */
/* ------------------------------------------------------------------ */
.seng-root *,
.seng-root *::before,
.seng-root *::after { box-sizing: border-box; }

.seng-root [hidden] { display: none !important; }

.seng-root h1, .seng-root h2, .seng-root h3, .seng-root h4,
.seng-root p, .seng-root ul, .seng-root ol, .seng-root figure, .seng-root blockquote {
	margin: 0;
	padding: 0;
	font-family: var(--seng-font);
	letter-spacing: normal;
	text-transform: none;
	color: inherit;
	background: none;
	border: 0;
	quotes: none;
}
.seng-root h1::before, .seng-root h1::after,
.seng-root h2::before, .seng-root h3::before, .seng-root h3::after,
.seng-root blockquote::before, .seng-root blockquote::after { content: none; }
.seng-root ul, .seng-root ol { list-style: none; }
.seng-root li { margin: 0; padding: 0; }
.seng-root li::before { content: none; }
.seng-root img { max-width: 100%; height: auto; border: 0; box-shadow: none; }
.seng-root a { color: var(--seng-primary); text-decoration: none; box-shadow: none; transition: color var(--seng-dur) var(--seng-ease); }
.seng-root a:hover { color: var(--seng-primary-hover); }
.seng-root button {
	font: inherit;
	color: inherit;
	letter-spacing: normal;
	text-transform: none;
	background: none;
	border: 0;
	margin: 0;
	padding: 0;
	min-height: 0;
	min-width: 0;
	height: auto;
	width: auto;
	max-width: 100%;
	line-height: inherit;
	box-shadow: none;
	cursor: pointer;
	border-radius: 0;
	text-align: inherit;
	white-space: normal;
	text-decoration: none;
}
.seng-root button:hover, .seng-root button:focus { background-color: transparent; color: inherit; }
.seng-root a:hover, .seng-root a:focus { text-decoration: none; }
.seng-root table, .seng-root th, .seng-root td { border: 0; background: none; }
.seng-root table { margin: 0; }
.seng-root input, .seng-root textarea, .seng-root select { font: inherit; }
.seng-root :focus-visible { outline: 3px solid var(--seng-secondary); outline-offset: 2px; }
.seng-root .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* Material Symbols */
.seng-root .material-symbols-rounded {
	font-family: 'Material Symbols Rounded';
	font-weight: normal;
	font-style: normal;
	font-size: 22px;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	display: inline-block;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	flex-shrink: 0;
	-webkit-font-smoothing: antialiased;
	font-feature-settings: 'liga';
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
	user-select: none;
}
.seng-root[dir="rtl"] .seng-flip { transform: scaleX(-1); }

/* ------------------------------------------------------------------ */
/* Typography                                                          */
/* ------------------------------------------------------------------ */
.seng-root .seng-headline {
	position: relative;
	font-size: 26px;
	line-height: 1.35;
	font-weight: 800;
	color: var(--seng-primary);
	padding-bottom: 12px;
}
.seng-root .seng-headline::after {
	content: '';
	position: absolute;
	inset-inline-start: 0;
	bottom: 0;
	width: 56px;
	height: 4px;
	border-radius: var(--seng-r-full);
	background: linear-gradient(90deg, var(--seng-secondary), #C9B070);
}
.seng-root .seng-headline--on-primary { color: var(--seng-on-primary); }
.seng-root .seng-title-xl { font-size: 22px; line-height: 1.4; font-weight: 800; color: var(--seng-primary); }
.seng-root .seng-title-l { font-size: 19px; line-height: 1.45; font-weight: 700; color: var(--seng-primary); }
.seng-root .seng-title-m { font-size: 17px; line-height: 1.5; font-weight: 700; color: var(--seng-on-surface); }
.seng-root .seng-overline { font-size: 12.5px; font-weight: 700; letter-spacing: .6px; color: var(--seng-gold-text); }
.seng-root .seng-lead { color: var(--seng-on-surface-variant); margin: 4px 0 24px; max-width: 70ch; }
.seng-root .seng-muted { color: var(--seng-on-surface-variant); }
.seng-root .seng-link { display: inline-block; margin-top: 6px; font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* ------------------------------------------------------------------ */
/* ------------------------------------------------------------------ */
/* Generic components                                                  */
/* ------------------------------------------------------------------ */
.seng-root .seng-section { display: block; }
.seng-root .seng-section__head { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 16px; margin-bottom: 8px; }
.seng-root .seng-section__head .seng-headline { flex: 1 1 auto; }

.seng-root .seng-badge {
	display: inline-grid;
	place-items: center;
	min-width: 30px;
	height: 30px;
	padding: 0 10px;
	border-radius: var(--seng-r-full);
	background: var(--seng-primary-container);
	color: var(--seng-on-primary-container);
	font-size: 13.5px;
	font-weight: 800;
}

.seng-root .seng-card { position: relative; border-radius: var(--seng-r-xl); padding: 24px; }
.seng-root .seng-card--elevated { background: var(--seng-surface-lowest); box-shadow: var(--seng-elev-1); border: 1px solid rgba(26, 41, 86, .05); }
.seng-root .seng-card--filled { background: var(--seng-surface-low); }
.seng-root .seng-card--outlined { background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); }
.seng-root .seng-card--primary {
	color: var(--seng-on-primary);
	background: radial-gradient(500px 220px at 100% 0%, rgba(155, 132, 68, .35), transparent 60%), linear-gradient(135deg, var(--seng-primary), #2A3F7E);
	box-shadow: var(--seng-elev-2);
}
.seng-root .seng-card--gold {
	color: var(--seng-on-secondary-container);
	background: radial-gradient(500px 220px at 0% 0%, rgba(255, 255, 255, .55), transparent 60%), var(--seng-secondary-container);
	border: 1px solid #E6D6A8;
}

.seng-root .seng-grid { display: grid; gap: 16px; }
.seng-root .seng-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.seng-root .seng-grid--3 { grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); }
.seng-root .seng-grid--albums { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; }

.seng-root .seng-avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
	background: var(--seng-surface-container);
	box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--seng-secondary);
	flex-shrink: 0;
}
.seng-root .seng-avatar--xl { width: 116px; height: 116px; box-shadow: 0 0 0 4px #fff, 0 0 0 7px var(--seng-secondary), var(--seng-elev-2); }

/* Chips */
.seng-root .seng-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.seng-root .seng-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 32px;
	padding: 4px 12px;
	border-radius: var(--seng-r-s);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	white-space: normal;
}
.seng-root .seng-chip .material-symbols-rounded { font-size: 18px; }
.seng-root .seng-chip--gold { background: var(--seng-secondary-container); color: var(--seng-on-secondary-container); }
.seng-root .seng-chip--gold .material-symbols-rounded { color: var(--seng-secondary-strong); }
.seng-root .seng-chip--tonal { background: var(--seng-primary-container); color: var(--seng-on-primary-container); }
.seng-root .seng-chip--assist,
.seng-root .seng-chip--filter {
	border: 1px solid var(--seng-outline-variant);
	background: var(--seng-surface-lowest);
	color: var(--seng-on-surface-variant);
	transition: background-color var(--seng-dur) var(--seng-ease), border-color var(--seng-dur) var(--seng-ease);
}
.seng-root .seng-chip--assist .material-symbols-rounded { color: var(--seng-secondary-strong); }
.seng-root .seng-chip--assist:hover, .seng-root .seng-chip--filter:hover { background: var(--seng-surface-low); color: var(--seng-primary); }
.seng-root .seng-chip--filter .seng-chip__check { display: none; }
.seng-root .seng-chip--filter.is-selected { background: var(--seng-secondary-container); border-color: transparent; color: var(--seng-on-secondary-container); }
.seng-root .seng-chip--filter.is-selected .seng-chip__check { display: inline-block; }
.seng-root .seng-chip--status-open { background: var(--seng-success-container); color: var(--seng-success); }
.seng-root .seng-chip--status-closed { background: var(--seng-surface-container); color: var(--seng-on-surface-variant); }

/* Buttons */
.seng-root .seng-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: auto;
	height: auto;
	min-height: 40px;
	margin: 0;
	padding: 6px 22px 6px 18px;
	border: 1px solid transparent;
	border-radius: var(--seng-r-full);
	background: transparent;
	color: var(--seng-primary);
	box-shadow: none;
	text-shadow: none;
	text-transform: none;
	letter-spacing: .1px;
	font-family: var(--seng-font);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	isolation: isolate;
	transition: box-shadow var(--seng-dur) var(--seng-ease), background-color var(--seng-dur) var(--seng-ease), transform var(--seng-dur) var(--seng-ease);
}
.seng-root[dir="rtl"] .seng-btn { padding: 6px 18px 6px 22px; }
.seng-root .seng-btn::before {
	content: '';
	position: absolute;
	inset: 0;
	background: currentColor;
	opacity: 0;
	z-index: -1;
	transition: opacity var(--seng-dur) var(--seng-ease);
}
.seng-root .seng-btn:hover::before { opacity: .08; }
.seng-root .seng-btn:active::before, .seng-root .seng-btn:focus-visible::before { opacity: .14; }
.seng-root .seng-btn .material-symbols-rounded { font-size: 20px; }
.seng-root .seng-btn--filled, .seng-root .seng-btn--filled:hover, .seng-root .seng-btn--filled:focus { background: var(--seng-primary); border-color: var(--seng-primary); color: var(--seng-on-primary); }
.seng-root .seng-btn--filled:hover { box-shadow: var(--seng-elev-1); }
.seng-root .seng-btn--gold, .seng-root .seng-btn--gold:hover, .seng-root .seng-btn--gold:focus { background: var(--seng-secondary-strong); border-color: var(--seng-secondary-strong); color: #fff; }
.seng-root .seng-btn--gold:hover { box-shadow: var(--seng-elev-1); }
.seng-root .seng-btn--tonal, .seng-root .seng-btn--tonal:hover, .seng-root .seng-btn--tonal:focus { background: var(--seng-secondary-container); border-color: var(--seng-secondary-container); color: var(--seng-on-secondary-container); }
.seng-root .seng-btn--outlined, .seng-root .seng-btn--outlined:hover, .seng-root .seng-btn--outlined:focus { background: var(--seng-surface-lowest); border-color: var(--seng-outline); color: var(--seng-primary); }
.seng-root .seng-btn--outlined:hover { border-color: var(--seng-primary); }
.seng-root .seng-btn--text, .seng-root .seng-btn--text:hover, .seng-root .seng-btn--text:focus { background: transparent; border-color: transparent; color: var(--seng-primary); padding-inline: 14px; }
.seng-root .seng-btn--text-on-primary, .seng-root .seng-btn--text-on-primary:hover, .seng-root .seng-btn--text-on-primary:focus { background: transparent; border-color: rgba(255, 255, 255, .35); color: #fff; }
.seng-root .seng-btn--sm { min-height: 36px; padding-block: 5px; padding-inline: 14px 16px; font-size: 13.5px; }
.seng-root .seng-btn--sm .material-symbols-rounded { font-size: 18px; }
.seng-root .seng-btn--lg { min-height: 50px; padding-inline: 26px 30px; font-size: 15.5px; }
.seng-root .seng-btn[disabled], .seng-root .seng-btn.is-busy { opacity: .55; cursor: not-allowed; box-shadow: none; }
.seng-root .seng-btn__meta {
	font-size: 11.5px;
	font-weight: 600;
	opacity: .85;
	padding-inline-start: 8px;
	margin-inline-start: 2px;
	border-inline-start: 1px solid currentColor;
}
.seng-root .seng-icon-btn {
	display: inline-grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	box-shadow: none;
	flex-shrink: 0;
	transition: background-color var(--seng-dur) var(--seng-ease);
}
.seng-root .seng-icon-btn:hover, .seng-root .seng-icon-btn:focus { background: rgba(26, 41, 86, .08); color: inherit; }

.seng-root .seng-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 36px 20px;
	border-radius: var(--seng-r-l);
	background: var(--seng-surface-low);
	color: var(--seng-on-surface-variant);
	text-align: center;
}
.seng-root .seng-empty .material-symbols-rounded { font-size: 28px; color: var(--seng-secondary); }

.seng-root .seng-note {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin-top: 16px;
	padding: 12px 16px;
	border-radius: var(--seng-r-m);
	background: var(--seng-secondary-container);
	color: var(--seng-on-secondary-container);
	font-size: 14.5px;
}
.seng-root .seng-note .material-symbols-rounded { color: var(--seng-secondary-strong); margin-top: 3px; }

/* Tables */
.seng-root .seng-table-card { padding: 0; overflow: hidden; }
.seng-root .seng-table-wrap { overflow-x: auto; border: 1px solid var(--seng-outline-variant); border-radius: var(--seng-r-l); margin-top: 16px; }
.seng-root .seng-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15px; }
.seng-root .seng-table th {
	background: var(--seng-surface-container);
	color: var(--seng-primary);
	font-size: 13.5px;
	font-weight: 800;
	text-align: start;
	padding: 14px 18px;
	border-bottom: 1px solid var(--seng-outline-variant);
	white-space: nowrap;
}
.seng-root .seng-table td { padding: 16px 18px; border-bottom: 1px solid var(--seng-divider); vertical-align: middle; text-align: start; }
.seng-root .seng-table tbody tr:last-child td { border-bottom: 0; }
.seng-root .seng-table tbody tr { transition: background-color var(--seng-dur) var(--seng-ease); }
.seng-root .seng-table tbody tr:hover td { background: #FAFAFD; }
.seng-root .seng-table--compact td, .seng-root .seng-table--compact th { padding: 12px 16px; }
.seng-root .seng-table__num { width: 48px; font-weight: 800; color: var(--seng-gold-text); }
.seng-root .seng-table__title { font-weight: 600; }
.seng-root .seng-table__desc { color: var(--seng-on-surface-variant); font-size: 14.5px; max-width: 560px; }
.seng-root .seng-table__actions { text-align: end !important; }
.seng-root td.seng-table__actions .seng-btn + .seng-btn { margin-inline-start: 6px; }
.seng-root td.seng-table__actions .seng-link { display: block; }
.seng-root .seng-month { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; color: var(--seng-primary); }
.seng-root .seng-month .material-symbols-rounded { color: var(--seng-secondary); }

/* ------------------------------------------------------------------ */
/* ------------------------------------------------------------------ */
/* Lightbox & snackbar                                                 */
/* ------------------------------------------------------------------ */
.seng-root .seng-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) 72px;
	grid-template-rows: auto minmax(0, 1fr) auto;
	background: rgba(8, 12, 30, .95);
	color: #fff;
	animation: seng-fade .2s var(--seng-ease);
}
@keyframes seng-fade { from { opacity: 0; } to { opacity: 1; } }
.seng-root .seng-lightbox__bar { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; padding: 10px 16px; }
.seng-root .seng-lightbox__title { flex: 1; min-width: 0; font-size: 15px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.seng-root .seng-lightbox__count { font-size: 13px; opacity: .8; font-variant-numeric: tabular-nums; }
.seng-root .seng-lightbox .seng-icon-btn { color: #fff; }
.seng-root .seng-lightbox .seng-icon-btn:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.seng-root .seng-lightbox__stage { grid-column: 2; grid-row: 2; position: relative; display: grid; place-items: center; min-height: 0; padding: 4px; margin: 0; }
.seng-root .seng-lightbox__stage img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 10px; box-shadow: 0 20px 60px rgba(0, 0, 0, .5); transition: opacity .2s; }
.seng-root .seng-lightbox.is-loading .seng-lightbox__stage img { opacity: .25; }
.seng-root .seng-lightbox__spinner { position: absolute; width: 40px; height: 40px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .25); border-top-color: var(--seng-secondary); animation: seng-spin .8s linear infinite; display: none; }
.seng-root .seng-lightbox.is-loading .seng-lightbox__spinner { display: block; }
@keyframes seng-spin { to { transform: rotate(360deg); } }
.seng-root .seng-lightbox__nav { grid-row: 2; align-self: center; justify-self: center; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; transition: background-color var(--seng-dur); }
.seng-root .seng-lightbox__nav:hover { background: rgba(255, 255, 255, .2); }
.seng-root .seng-lightbox__nav .material-symbols-rounded { font-size: 32px; }
.seng-root .seng-lightbox__nav--prev { grid-column: 1; }
.seng-root .seng-lightbox__nav--next { grid-column: 3; }
.seng-root .seng-lightbox.is-single .seng-lightbox__nav, .seng-root .seng-lightbox.is-single .seng-lightbox__thumbs, .seng-root .seng-lightbox.is-single .seng-lightbox__count { visibility: hidden; }
.seng-root .seng-lightbox__thumbs { grid-column: 1 / -1; display: flex; justify-content: center; gap: 8px; padding: 12px 16px 16px; overflow-x: auto; }
.seng-root .seng-lightbox__thumbs button { padding: 0; border: 0; background: transparent; width: 64px; height: 48px; border-radius: 8px; overflow: hidden; opacity: .5; flex-shrink: 0; transition: opacity var(--seng-dur); }
.seng-root .seng-lightbox__thumbs button.is-active { opacity: 1; outline: 2px solid var(--seng-secondary); outline-offset: 2px; }
.seng-root .seng-lightbox__thumbs img { width: 100%; height: 100%; object-fit: cover; }

/* ------------------------------------------------------------------ */
/* View-only PDF viewer (dialog + inline)                              */
/* ------------------------------------------------------------------ */
.seng-root .seng-pdfview {
	position: fixed;
	inset: 0;
	z-index: 100001;
	display: flex;
	flex-direction: column;
	background: #0B1028;
	color: #fff;
	animation: seng-fade .2s var(--seng-ease);
}
.seng-root .seng-pdfview[hidden] { display: none; }
.seng-root .seng-pdfview__bar { display: flex; align-items: center; gap: 6px; padding: 10px 16px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.seng-root .seng-pdfview__badge { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--seng-secondary-strong); flex-shrink: 0; }
.seng-root .seng-pdfview__badge .material-symbols-rounded { font-size: 22px; }
.seng-root .seng-pdfview__title { flex: 1; min-width: 0; margin: 0 6px; font-size: 15px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.seng-root .seng-pdfview__count { font-size: 13px; opacity: .8; white-space: nowrap; margin-inline-end: 6px; }
.seng-root .seng-pdfview .seng-icon-btn { color: #fff; }
.seng-root .seng-pdfview .seng-icon-btn:hover, .seng-root .seng-pdfview .seng-icon-btn:focus { background: rgba(255, 255, 255, .14); color: #fff; }
.seng-root .seng-pdfview__pages {
	flex: 1;
	min-height: 0;
	overflow: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	padding: 20px max(16px, calc((100% - 980px) / 2));
	outline: none;
}
.seng-root .seng-pdfview__pages.is-zoomed { align-items: flex-start; }
.seng-root .seng-pdfview__foot { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 0; padding: 8px 16px 10px; font-size: 12.5px; opacity: .7; }
.seng-root .seng-pdfview__foot .material-symbols-rounded { font-size: 16px; }

.seng-root .seng-pdf-page {
	position: relative;
	flex-shrink: 0;
	max-width: none;
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, .35);
	overflow: hidden;
	user-select: none;
	-webkit-user-select: none;
	-webkit-touch-callout: none;
}
.seng-root .seng-pdf-page:not(.is-ready)::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 34px;
	height: 34px;
	margin: -17px 0 0 -17px;
	border-radius: 50%;
	border: 3px solid rgba(26, 41, 86, .15);
	border-top-color: var(--seng-secondary);
	animation: seng-spin .8s linear infinite;
}
.seng-root .seng-pdf-page canvas { display: block; width: 100%; height: auto; pointer-events: none; }
.seng-root .seng-pdf-inline__status { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0; padding: 40px 16px; font-weight: 600; }
.seng-root .seng-pdf-inline__status[hidden] { display: none; }
.seng-root .is-error > .seng-pdf-inline__status { color: #FFB4AB; }
.seng-root .seng-pdf-inline.is-error > .seng-pdf-inline__status { color: #B3261E; }
.seng-root .seng-pdfview__spinner { width: 22px; height: 22px; border-radius: 50%; border: 3px solid rgba(155, 132, 68, .3); border-top-color: var(--seng-secondary); animation: seng-spin .8s linear infinite; flex-shrink: 0; }
.seng-root .is-error .seng-pdfview__spinner { display: none; }

.seng-root .seng-pdf-inline {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	margin-top: 20px;
	padding: 16px;
	max-height: 85vh;
	overflow: auto;
	background: var(--seng-surface-container);
}
.seng-root .seng-pdf-inline .seng-pdf-page { box-shadow: var(--seng-elev-2); }


/* ================================================================== */
/* Faculty of Engineering layer                                        */
/* ================================================================== */
.seng-root {
	--seng-max: 1240px;
	--seng-sticky: 0px; /* Height of a sticky site header, if any (the tab bar sticks below it). */
	--seng-blue: #2C6BC8;
	--seng-grid-line: rgba(255, 255, 255, .07);
}
.seng-root .seng-small { font-size: 13.5px; }
.seng-root .seng-prose { color: var(--seng-on-surface-variant); font-size: 16.5px; margin-bottom: 14px; max-width: 72ch; }
.seng-root .seng-avatar--l { width: 88px; height: 88px; box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--seng-secondary); }
.seng-root .seng-flip { display: inline-block; }

/* ------------------------------------------------------------------ */
/* Hero (blueprint grid)                                               */
/* ------------------------------------------------------------------ */
.seng-root .seng-hero {
	position: relative;
	overflow: hidden;
	color: var(--seng-on-primary);
	background:
		radial-gradient(900px 420px at 92% -20%, rgba(155, 132, 68, .42), transparent 62%),
		radial-gradient(700px 360px at -5% 120%, rgba(44, 107, 200, .35), transparent 60%),
		linear-gradient(135deg, #101A3D 0%, var(--seng-primary) 48%, #24387A 100%);
	padding: 34px 24px 84px;
}
.seng-root[dir="rtl"] .seng-hero {
	background:
		radial-gradient(900px 420px at 8% -20%, rgba(155, 132, 68, .42), transparent 62%),
		radial-gradient(700px 360px at 105% 120%, rgba(44, 107, 200, .35), transparent 60%),
		linear-gradient(225deg, #101A3D 0%, var(--seng-primary) 48%, #24387A 100%);
}
.seng-root .seng-hero__grid {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		linear-gradient(var(--seng-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--seng-grid-line) 1px, transparent 1px),
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
	background-size: 96px 96px, 96px 96px, 24px 24px, 24px 24px;
	mask-image: linear-gradient(to bottom, #000 20%, transparent 95%);
	-webkit-mask-image: linear-gradient(to bottom, #000 20%, transparent 95%);
}
.seng-root .seng-hero__grid::after {
	/* Drafting circle + crosshair motif */
	content: '';
	position: absolute;
	width: 420px;
	height: 420px;
	inset-inline-end: -110px;
	top: -150px;
	border-radius: 50%;
	border: 1px dashed rgba(233, 217, 166, .35);
	box-shadow: 0 0 0 60px rgba(255, 255, 255, .02), 0 0 0 61px rgba(233, 217, 166, .12);
}
.seng-root .seng-hero__inner { position: relative; max-width: var(--seng-max); margin: 0 auto; }
.seng-root .seng-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: 13.5px; margin-bottom: 22px; color: rgba(255, 255, 255, .78); }
.seng-root .seng-breadcrumb a { display: inline-flex; align-items: center; gap: 6px; color: rgba(255, 255, 255, .92); padding: 4px 10px; border-radius: var(--seng-r-full); background: rgba(255, 255, 255, .08); }
.seng-root .seng-breadcrumb a:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.seng-root .seng-breadcrumb .material-symbols-rounded { font-size: 18px; }
.seng-root .seng-breadcrumb [aria-current] { color: #E9D9A6; font-weight: 600; }
.seng-root .seng-hero__row { display: flex; align-items: center; gap: 22px; }
.seng-root .seng-hero__text { flex: 1 1 auto; min-width: 0; }
.seng-root .seng-hero__icon {
	display: grid;
	place-items: center;
	width: 76px;
	height: 76px;
	border-radius: 22px;
	background: linear-gradient(145deg, #B39B57, var(--seng-secondary-strong));
	box-shadow: 0 10px 24px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255, 255, 255, .3);
	flex-shrink: 0;
}
.seng-root .seng-hero__icon .material-symbols-rounded { font-size: 40px; color: #fff; font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 40; }
.seng-root .seng-hero__photo { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 4px rgba(255, 255, 255, .9), 0 0 0 7px var(--seng-secondary), 0 12px 28px rgba(0, 0, 0, .3); flex-shrink: 0; }
.seng-root .seng-hero__eyebrow { font-size: 14px; font-weight: 600; color: #E9D9A6; letter-spacing: .3px; }
.seng-root .seng-hero__title { font-size: clamp(27px, 3.6vw, 42px); line-height: 1.22; font-weight: 800; color: #fff; margin: 2px 0 8px; }
.seng-root .seng-hero__desc { color: rgba(255, 255, 255, .84); max-width: 70ch; font-size: 15.5px; }
.seng-root .seng-hero__media {
	flex: 0 0 min(40%, 440px);
	aspect-ratio: 4 / 3;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .18), 0 24px 48px rgba(0, 0, 0, .35);
	transform: rotate(-1.5deg);
}
.seng-root[dir="rtl"] .seng-hero__media { transform: rotate(1.5deg); }
.seng-root .seng-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.seng-root .seng-hero--home { padding-bottom: 104px; }
.seng-root .seng-hero--home .seng-hero__title { font-size: clamp(32px, 4.6vw, 54px); }

/* ------------------------------------------------------------------ */
/* Tab bar (the Faculty's main pages)                                  */
/* ------------------------------------------------------------------ */
.seng-root .seng-tabs {
	position: sticky;
	top: var(--seng-sticky);
	z-index: 50;
	max-width: var(--seng-max);
	margin: -40px auto 0;
	padding: 0 24px;
}
.admin-bar .seng-root .seng-tabs { top: calc(var(--seng-sticky) + 32px); }
.seng-root .seng-tabs__inner {
	display: flex;
	gap: 6px;
	padding: 8px;
	overflow-x: auto;
	scrollbar-width: none;
	background: rgba(255, 255, 255, .96);
	backdrop-filter: saturate(1.4) blur(10px);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	border: 1px solid rgba(26, 41, 86, .08);
	border-radius: 20px;
	box-shadow: var(--seng-elev-2);
}
.seng-root .seng-tabs__inner::-webkit-scrollbar { display: none; }
.seng-root .seng-tab {
	flex: 1 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 52px;
	padding: 8px 16px;
	border-radius: 14px;
	color: var(--seng-on-surface-variant);
	font-weight: 700;
	font-size: 14.5px;
	white-space: nowrap;
	position: relative;
	transition: background var(--seng-dur) var(--seng-ease), color var(--seng-dur) var(--seng-ease);
}
.seng-root .seng-tab .material-symbols-rounded { font-size: 22px; color: var(--seng-secondary-strong); transition: color var(--seng-dur) var(--seng-ease); }
.seng-root .seng-tab:hover { background: var(--seng-surface-low); color: var(--seng-primary); }
.seng-root .seng-tab.is-active {
	background: linear-gradient(135deg, var(--seng-primary), #27408A);
	color: #fff;
	box-shadow: 0 6px 16px rgba(26, 41, 86, .28);
}
.seng-root .seng-tab.is-active .material-symbols-rounded { color: #E9D9A6; font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24; }
.seng-root .seng-tab.is-active::after {
	content: '';
	position: absolute;
	bottom: 6px;
	inset-inline: 30%;
	height: 3px;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--seng-secondary), #E0CC8E);
}
.seng-root .seng-tabs.is-stuck .seng-tabs__inner { border-radius: 0 0 20px 20px; }

/* ------------------------------------------------------------------ */
/* Main content                                                        */
/* ------------------------------------------------------------------ */
.seng-root .seng-main { max-width: var(--seng-max); margin: 0 auto; padding: 40px 24px 96px; }
.seng-root .seng-section { margin-bottom: 64px; scroll-margin-top: calc(var(--seng-sticky) + 100px); }
.seng-root .seng-section:last-child { margin-bottom: 0; }
.seng-root [id] { scroll-margin-top: calc(var(--seng-sticky) + 100px); }
.seng-root .seng-sec-head { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 22px; }
.seng-root .seng-sec-head .seng-lead { margin: 10px 0 0; }
.seng-root .seng-sec-head__icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	background: var(--seng-primary-container);
	color: var(--seng-primary);
	flex-shrink: 0;
}
.seng-root .seng-sec-head__icon .material-symbols-rounded { font-size: 26px; font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24; }
.seng-root .seng-sec-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.seng-root .seng-sec-row > .seng-sec-head { flex: 1 1 420px; }
.seng-root .seng-sec-row__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.seng-root .seng-count { font-size: 13.5px; font-weight: 700; color: var(--seng-gold-text); background: var(--seng-secondary-container); padding: 6px 12px; border-radius: var(--seng-r-full); }
.seng-root .seng-label { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 800; color: var(--seng-primary); margin-bottom: 12px; text-transform: none; }
.seng-root .seng-label .material-symbols-rounded { font-size: 20px; color: var(--seng-secondary-strong); }
.seng-root .seng-label--lg { font-size: 18px; margin: 8px 0 16px; }
.seng-root .seng-callout { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 20px 22px; border-radius: var(--seng-r-xl); background: var(--seng-surface-lowest); border: 1px dashed var(--seng-outline-variant); }
.seng-root .seng-callout > .material-symbols-rounded { font-size: 34px; color: var(--seng-secondary-strong); }
.seng-root .seng-callout > div { flex: 1 1 280px; }
.seng-root .seng-grid--vm { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.seng-root .seng-vm { padding: 28px; }
.seng-root .seng-vm p { margin-top: 8px; }
.seng-root .seng-card--primary .seng-title-l { color: #fff; }
.seng-root .seng-vm__icon { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: rgba(255, 255, 255, .14); margin-bottom: 12px; }
.seng-root .seng-card--gold .seng-vm__icon { background: var(--seng-secondary-strong); color: #fff; }
.seng-root .seng-card--primary .seng-vm__icon { color: #E9D9A6; }

/* About + facts */
.seng-root .seng-about__grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.seng-root .seng-facts { display: grid; gap: 12px; }
.seng-root .seng-facts--row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.seng-root .seng-fact {
	display: grid;
	grid-template-columns: 48px 1fr;
	grid-template-rows: auto auto;
	column-gap: 14px;
	align-items: center;
	padding: 16px 18px;
	border-radius: var(--seng-r-l);
	background: var(--seng-surface-lowest);
	border: 1px solid var(--seng-outline-variant);
}
.seng-root .seng-fact__icon { grid-row: span 2; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--seng-secondary-container); color: var(--seng-secondary-strong); }
.seng-root .seng-fact__value { font-size: 22px; font-weight: 800; color: var(--seng-primary); line-height: 1.2; }
.seng-root .seng-fact__label { font-size: 13.5px; color: var(--seng-on-surface-variant); line-height: 1.4; }

/* Dean */
.seng-root .seng-dean { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 36px; padding: 32px; overflow: hidden; }
.seng-root .seng-dean__person { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 24px 16px; border-radius: var(--seng-r-xl); background: linear-gradient(180deg, var(--seng-surface-low), transparent); }
.seng-root .seng-dean__person .seng-avatar--xl { width: 132px; height: 132px; margin-bottom: 10px; }
.seng-root .seng-dean__actions { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-top: 8px; }
.seng-root .seng-dean__text { position: relative; }
.seng-root .seng-dean__quote .material-symbols-rounded { font-size: 56px; color: var(--seng-secondary); opacity: .55; }
.seng-root .seng-dean__greeting { font-weight: 700; color: var(--seng-primary); font-size: 17px; margin-bottom: 10px; }
.seng-root .seng-dean__body p { margin-bottom: 12px; color: var(--seng-on-surface-variant); }
.seng-root .seng-dean__body:not(.is-open) { max-height: 21em; overflow: hidden; mask-image: linear-gradient(to bottom, #000 60%, transparent); -webkit-mask-image: linear-gradient(to bottom, #000 60%, transparent); }
.seng-root .seng-more-btn .material-symbols-rounded { transition: transform var(--seng-dur) var(--seng-ease); }
.seng-root .seng-more-btn[aria-expanded="true"] .material-symbols-rounded { transform: rotate(180deg); }
.seng-root .seng-dean__sign { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--seng-divider); color: var(--seng-on-surface-variant); font-size: 14px; }
.seng-root .seng-dean__sign strong { color: var(--seng-primary); font-size: 16px; }

/* Objectives */
.seng-root .seng-objectives { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; counter-reset: none; }
.seng-root .seng-objective {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 18px 20px;
	border-radius: var(--seng-r-l);
	background: var(--seng-surface-lowest);
	border: 1px solid var(--seng-outline-variant);
	transition: border-color var(--seng-dur) var(--seng-ease), box-shadow var(--seng-dur) var(--seng-ease), transform var(--seng-dur) var(--seng-ease);
}
.seng-root .seng-objective:hover { border-color: var(--seng-secondary); box-shadow: var(--seng-elev-1); transform: translateY(-2px); }
.seng-root .seng-objective__num { font-size: 13px; font-weight: 800; color: var(--seng-gold-text); background: var(--seng-secondary-container); border-radius: 10px; padding: 4px 8px; flex-shrink: 0; font-family: 'Roboto', sans-serif; }
.seng-root .seng-objective__icon { color: var(--seng-primary); flex-shrink: 0; }
.seng-root .seng-objective p { color: var(--seng-on-surface); }
.seng-root .seng-objective strong { color: var(--seng-primary); }

/* Stats */
.seng-root .seng-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.seng-root .seng-stat {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 22px;
	border-radius: var(--seng-r-xl);
	color: var(--seng-on-primary);
	background: radial-gradient(260px 140px at 100% 0%, rgba(155, 132, 68, .4), transparent 70%), linear-gradient(140deg, var(--seng-primary), #27408A);
	box-shadow: var(--seng-elev-2);
	overflow: hidden;
	transition: transform var(--seng-dur) var(--seng-ease), box-shadow var(--seng-dur) var(--seng-ease);
}
.seng-root .seng-stat:hover { color: #fff; transform: translateY(-3px); box-shadow: var(--seng-elev-3); }
.seng-root .seng-stat__icon .material-symbols-rounded { font-size: 30px; color: #E9D9A6; }
.seng-root .seng-stat__num { font-size: 40px; font-weight: 900; line-height: 1.1; font-family: 'Roboto', var(--seng-font); }
.seng-root .seng-stat__label { font-weight: 600; color: rgba(255, 255, 255, .86); }
.seng-root .seng-stat__go { position: absolute; bottom: 18px; inset-inline-end: 18px; opacity: .6; }
.seng-root .seng-program-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }

/* News */
.seng-root .sbl-root--embed { background: transparent; font-size: 16px; }
.seng-root .seng-news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.seng-root .seng-news { padding: 0; overflow: hidden; }
.seng-root .seng-news__media { display: block; aspect-ratio: 16 / 9; background: var(--seng-surface-container); }
.seng-root .seng-news__media img { width: 100%; height: 100%; object-fit: cover; }
.seng-root .seng-news__placeholder { display: grid; place-items: center; height: 100%; color: var(--seng-outline); }
.seng-root .seng-news__body { padding: 16px 18px; }
.seng-root .seng-news__date { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--seng-on-surface-variant); margin-top: 6px; }

/* ------------------------------------------------------------------ */
/* Administration                                                      */
/* ------------------------------------------------------------------ */
.seng-root .seng-leaders { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.seng-root .seng-leader { display: flex; align-items: center; gap: 16px; }
.seng-root .seng-leader--dean { background: linear-gradient(135deg, var(--seng-surface-lowest), var(--seng-secondary-container)); border-color: #E6D6A8; }
.seng-root .seng-leader__icon { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 18px; background: var(--seng-primary-container); color: var(--seng-primary); flex-shrink: 0; }
.seng-root .seng-leader__icon .material-symbols-rounded { font-size: 32px; }
.seng-root .seng-leader .seng-title-l a { color: var(--seng-primary); }
.seng-root .seng-gov { display: flex; flex-direction: column; gap: 6px; }
.seng-root .seng-gov__icon { color: var(--seng-secondary-strong); }
.seng-root .seng-gov__icon .material-symbols-rounded { font-size: 30px; }
.seng-root .seng-orgchart {
	position: relative;
	display: block;
	width: 100%;
	padding: 14px;
	margin-bottom: 24px;
	border-radius: var(--seng-r-xl);
	background: var(--seng-surface-lowest);
	border: 1px solid var(--seng-outline-variant);
	box-shadow: var(--seng-elev-1);
	cursor: zoom-in;
}
.seng-root .seng-orgchart img { width: 100%; border-radius: var(--seng-r-m); }
.seng-root .seng-orgchart__zoom { position: absolute; top: 24px; inset-inline-end: 24px; display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: var(--seng-r-full); background: var(--seng-primary); color: #fff; font-weight: 700; font-size: 13.5px; box-shadow: var(--seng-elev-2); }
.seng-root .seng-tree { display: flex; flex-direction: column; align-items: center; gap: 0; }
.seng-root .seng-tree > li { position: relative; padding-bottom: 26px; display: flex; justify-content: center; width: 100%; }
.seng-root .seng-tree > li:not(:last-child)::after { content: ''; position: absolute; bottom: 4px; left: 50%; width: 2px; height: 20px; background: var(--seng-outline-variant); }
.seng-root .seng-tree__node { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: var(--seng-r-m); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); font-weight: 700; color: var(--seng-primary); text-align: center; }
.seng-root .seng-tree__node .material-symbols-rounded { color: var(--seng-secondary-strong); }
.seng-root .seng-tree__node--top { background: #0F5C55; color: #fff; border-color: transparent; }
.seng-root .seng-tree__node--top .material-symbols-rounded { color: #BFE7DE; }
.seng-root .seng-tree__node--dean { background: var(--seng-primary); color: #fff; border-color: transparent; }
.seng-root .seng-tree__node--dean .material-symbols-rounded { color: #E9D9A6; }
.seng-root .seng-tree__split { gap: 12px; flex-wrap: wrap; }
.seng-root .seng-tree__node--depts { background: var(--seng-secondary-container); border-color: #E6D6A8; color: var(--seng-on-secondary-container); }
.seng-root .seng-committees__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.seng-root .seng-committees__head h3, .seng-root .seng-doc__text, .seng-root .seng-leader > div { min-width: 0; overflow-wrap: break-word; }
.seng-root .seng-block__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--seng-primary); color: #E9D9A6; flex-shrink: 0; }
.seng-root .seng-list li { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--seng-divider); }
.seng-root .seng-list li:last-child { border-bottom: 0; }
.seng-root .seng-list .material-symbols-rounded { color: var(--seng-secondary-strong); }
.seng-root .seng-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; counter-reset: step; }
.seng-root .seng-step { position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 22px 14px; border-radius: var(--seng-r-l); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); text-align: center; font-weight: 700; color: var(--seng-primary); }
.seng-root .seng-step:first-child { background: var(--seng-primary); color: #fff; border-color: transparent; }
.seng-root .seng-step__icon .material-symbols-rounded { font-size: 32px; color: var(--seng-secondary-strong); }
.seng-root .seng-step:first-child .seng-step__icon .material-symbols-rounded { color: #E9D9A6; }
.seng-root .seng-quality { display: flex; gap: 18px; align-items: flex-start; }
.seng-root .seng-quality__links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

/* ------------------------------------------------------------------ */
/* Programs                                                            */
/* ------------------------------------------------------------------ */
.seng-root .seng-programs { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 20px; }
.seng-root .seng-program {
	display: flex;
	flex-direction: column;
	border-radius: var(--seng-r-xl);
	background: var(--seng-surface-lowest);
	border: 1px solid var(--seng-outline-variant);
	overflow: hidden;
	transition: transform var(--seng-dur) var(--seng-ease), box-shadow var(--seng-dur) var(--seng-ease), border-color var(--seng-dur) var(--seng-ease);
}
.seng-root .seng-program:hover { transform: translateY(-4px); box-shadow: var(--seng-elev-3); border-color: transparent; }
.seng-root .seng-program__media { position: relative; display: block; aspect-ratio: 16 / 8; background: linear-gradient(135deg, var(--seng-primary), #27408A); overflow: hidden; }
.seng-root .seng-program__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--seng-ease); }
.seng-root .seng-program:hover .seng-program__media img { transform: scale(1.05); }
.seng-root .seng-program__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(16, 26, 61, .75), transparent 60%); }
.seng-root .seng-program__icon { position: absolute; z-index: 1; bottom: -1px; inset-inline-start: 18px; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 16px 16px 0 0; background: var(--seng-surface-lowest); color: var(--seng-primary); }
.seng-root .seng-program__icon .material-symbols-rounded { font-size: 30px; font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24; }
.seng-root .seng-program__body { display: flex; flex-direction: column; gap: 6px; padding: 16px 20px 20px; flex: 1; }
.seng-root .seng-program__body .seng-title-l a { color: var(--seng-primary); }
.seng-root .seng-program__actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 10px; }

/* Documents (bylaws) */
.seng-root .seng-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: 12px; }
.seng-root .seng-doc { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 14px; padding: 14px 16px; border-radius: var(--seng-r-l); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); }
.seng-root .seng-doc__text { flex: 1 1 160px; }
.seng-root .seng-doc .seng-btn { flex: 0 0 auto; }
.seng-root .seng-doc .seng-btn__meta { display: none; }
.seng-root .seng-doc__icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: var(--seng-primary-container); color: var(--seng-primary); flex-shrink: 0; }
.seng-root .seng-doc__text { flex: 1; min-width: 0; }

/* Program page */
.seng-root .seng-localnav {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	scrollbar-width: none;
	margin: -10px 0 32px;
	padding: 6px;
	border-radius: var(--seng-r-full);
	background: var(--seng-surface-container);
	width: fit-content;
	max-width: 100%;
}
.seng-root .seng-localnav a { padding: 8px 16px; border-radius: var(--seng-r-full); font-weight: 700; font-size: 14px; color: var(--seng-on-surface-variant); white-space: nowrap; }
.seng-root .seng-localnav a:hover, .seng-root .seng-localnav a.is-current { background: var(--seng-surface-lowest); color: var(--seng-primary); box-shadow: var(--seng-elev-1); }
.seng-root .seng-overview__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 32px; align-items: center; }
.seng-root .seng-overview__media { border-radius: 24px; overflow: hidden; box-shadow: var(--seng-elev-2); aspect-ratio: 4 / 3; }
.seng-root .seng-overview__media img { width: 100%; height: 100%; object-fit: cover; }
.seng-root .seng-keyfacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.seng-root .seng-keyfacts li { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--seng-r-m); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); font-weight: 700; color: var(--seng-primary); }
.seng-root .seng-keyfacts .material-symbols-rounded { color: var(--seng-secondary-strong); }
.seng-root .seng-keyfacts small { display: block; font-size: 12px; font-weight: 600; color: var(--seng-on-surface-variant); }
.seng-root .seng-table--courses code { font-family: ui-monospace, Consolas, monospace; font-weight: 700; color: var(--seng-primary); background: var(--seng-primary-container); padding: 2px 6px; border-radius: 6px; }
.seng-root .seng-pager { display: flex; justify-content: space-between; gap: 12px; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--seng-divider); }
.seng-root .seng-pager__item { display: inline-flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: var(--seng-r-l); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); font-weight: 700; max-width: 48%; }
.seng-root .seng-pager__item small { display: block; font-size: 12px; color: var(--seng-on-surface-variant); font-weight: 600; }
.seng-root .seng-pager__item--next { text-align: end; margin-inline-start: auto; }

/* ------------------------------------------------------------------ */
/* Departments                                                         */
/* ------------------------------------------------------------------ */
.seng-root .seng-dept-index { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.seng-root .seng-dept-index__item { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: var(--seng-r-l); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); font-weight: 700; color: var(--seng-primary); transition: all var(--seng-dur) var(--seng-ease); }
.seng-root .seng-dept-index__item .material-symbols-rounded { color: var(--seng-secondary-strong); }
.seng-root .seng-dept-index__item:hover { background: var(--seng-primary); color: #fff; border-color: transparent; }
.seng-root .seng-dept-index__item:hover .material-symbols-rounded { color: #E9D9A6; }
.seng-root .seng-dept { padding: 28px; border-radius: 24px; background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); box-shadow: var(--seng-elev-1); margin-bottom: 24px; }
.seng-root .seng-dept__head { display: flex; align-items: flex-start; gap: 18px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--seng-divider); }
.seng-root .seng-dept__head > div { flex: 1; }
.seng-root .seng-dept__icon { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 18px; background: linear-gradient(145deg, var(--seng-primary), #27408A); color: #E9D9A6; flex-shrink: 0; }
.seng-root .seng-dept__icon .material-symbols-rounded { font-size: 32px; }
.seng-root .seng-dept__counts { display: flex; gap: 8px; }
.seng-root .seng-dept__counts li { display: flex; flex-direction: column; align-items: center; min-width: 70px; padding: 8px 10px; border-radius: var(--seng-r-m); background: var(--seng-surface-low); }
.seng-root .seng-dept__counts strong { font-size: 22px; color: var(--seng-primary); line-height: 1.2; }
.seng-root .seng-dept__counts span { font-size: 12px; color: var(--seng-on-surface-variant); font-weight: 600; }
.seng-root .seng-dept__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.seng-root .seng-linklist li + li { margin-top: 6px; }
.seng-root .seng-linklist a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--seng-r-m); background: var(--seng-surface-low); font-weight: 700; }
.seng-root .seng-linklist a > span:not(.material-symbols-rounded) { flex: 1; min-width: 0; }
.seng-root .seng-linklist a > .material-symbols-rounded { flex: 0 0 auto; color: var(--seng-secondary-strong); }
.seng-root .seng-linklist a:hover { background: var(--seng-primary-container); }
.seng-root .seng-linklist__go { opacity: .5; font-size: 18px; }
.seng-root .seng-people { display: flex; flex-direction: column; gap: 6px; }
.seng-root .seng-people--grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.seng-root .seng-person-mini { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--seng-r-m); color: var(--seng-on-surface); transition: background var(--seng-dur) var(--seng-ease); }
.seng-root .seng-people--grid .seng-person-mini { background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); }
.seng-root .seng-person-mini:hover { background: var(--seng-surface-low); color: var(--seng-primary); }
.seng-root .seng-person-mini img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.seng-root .seng-person-mini strong { display: block; font-size: 14px; line-height: 1.35; }
.seng-root .seng-person-mini small { font-size: 12.5px; color: var(--seng-on-surface-variant); }
.seng-root .seng-initials { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(145deg, var(--seng-primary), #27408A); color: #E9D9A6; font-weight: 800; font-size: 14px; letter-spacing: .5px; flex-shrink: 0; font-family: 'Roboto', sans-serif; }
.seng-root .seng-initials--l { width: 104px; height: 104px; font-size: 30px; }
.seng-root .seng-initials--xl { width: 220px; height: 220px; font-size: 56px; border-radius: 28px; }
.seng-root .seng-tags { display: flex; flex-wrap: wrap; gap: 6px; }

/* ------------------------------------------------------------------ */
/* Members                                                             */
/* ------------------------------------------------------------------ */
.seng-root .seng-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.seng-root .seng-search { flex: 1 1 320px; display: flex; align-items: center; gap: 8px; padding: 0 14px; height: 50px; border-radius: var(--seng-r-full); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); }
.seng-root .seng-search:focus-within { border-color: var(--seng-primary); box-shadow: 0 0 0 3px var(--seng-primary-container); }
.seng-root .seng-search .material-symbols-rounded { color: var(--seng-outline); }
.seng-root .seng-search input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; font-size: 15px; color: var(--seng-on-surface); box-shadow: none; padding: 0; }
.seng-root .seng-select select { height: 50px; padding: 0 40px 0 16px; border-radius: var(--seng-r-full); border: 1px solid var(--seng-outline-variant); background-color: var(--seng-surface-lowest); font-size: 14.5px; font-weight: 600; color: var(--seng-primary); max-width: 100%; }
.seng-root[dir="rtl"] .seng-select select { padding: 0 16px 0 40px; background-position: left 12px center; }
.seng-root .seng-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.seng-root .seng-members { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.seng-root .seng-member { animation: seng-in .3s var(--seng-ease); }
.seng-root .seng-member__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
	height: 100%;
	padding: 24px 18px 16px;
	border-radius: var(--seng-r-xl);
	background: var(--seng-surface-lowest);
	border: 1px solid var(--seng-outline-variant);
	color: var(--seng-on-surface);
	position: relative;
	overflow: hidden;
	transition: transform var(--seng-dur) var(--seng-ease), box-shadow var(--seng-dur) var(--seng-ease), border-color var(--seng-dur) var(--seng-ease);
}
.seng-root .seng-member__link::before { content: ''; position: absolute; inset: 0 0 auto; height: 74px; background: linear-gradient(135deg, var(--seng-primary-container), var(--seng-secondary-container)); }
.seng-root .seng-member__link:hover { transform: translateY(-4px); box-shadow: var(--seng-elev-3); border-color: transparent; color: var(--seng-on-surface); }
.seng-root .seng-member__photo { position: relative; margin-bottom: 6px; }
.seng-root .seng-member__photo img { width: 104px; height: 104px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--seng-secondary); }
.seng-root .seng-member__photo .seng-initials { box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--seng-secondary); }
.seng-root .seng-member__rank { font-size: 12.5px; font-weight: 800; color: var(--seng-gold-text); text-transform: uppercase; letter-spacing: .5px; }
.seng-root[dir="rtl"] .seng-member__rank { text-transform: none; letter-spacing: 0; }
.seng-root .seng-member__name { font-size: 16px; line-height: 1.4; color: var(--seng-primary); }
.seng-root .seng-member__spec { font-size: 13.5px; color: var(--seng-on-surface-variant); line-height: 1.5; }
.seng-root .seng-member__role { font-size: 12.5px; }
.seng-root .seng-member__foot { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: auto; padding-top: 12px; width: 100%; border-top: 1px dashed var(--seng-divider); }
.seng-root .seng-member__dept, .seng-root .seng-member__tag { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 700; color: var(--seng-on-surface-variant); }
.seng-root .seng-member__dept .material-symbols-rounded, .seng-root .seng-member__tag .material-symbols-rounded { font-size: 16px; color: var(--seng-secondary-strong); }
.seng-root .seng-member__tag { color: var(--seng-blue); }

/* Profile */
.seng-root .seng-profile { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 32px; align-items: start; }
.seng-root .seng-profile__card { position: sticky; top: calc(var(--seng-sticky) + 100px); text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 28px 22px; }
.seng-root .seng-profile__photo img { width: 220px; height: 220px; border-radius: 28px; object-fit: cover; box-shadow: var(--seng-elev-2); }
.seng-root .seng-profile__photo { margin-bottom: 8px; }
.seng-root .seng-profile__facts { width: 100%; text-align: start; margin: 10px 0; }
.seng-root .seng-profile__facts li { display: flex; align-items: flex-start; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--seng-divider); font-size: 14px; word-break: break-word; }
.seng-root .seng-profile__facts .material-symbols-rounded { color: var(--seng-secondary-strong); font-size: 20px; }
.seng-root .seng-profile__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.seng-root .seng-btn__ext { font-size: 15px !important; opacity: .6; }
.seng-root .seng-timeline { position: relative; padding-inline-start: 34px; }
.seng-root .seng-timeline::before { content: ''; position: absolute; top: 10px; bottom: 10px; inset-inline-start: 15px; width: 2px; background: linear-gradient(var(--seng-secondary), var(--seng-outline-variant)); }
.seng-root .seng-timeline__item { position: relative; padding: 16px 20px; margin-bottom: 14px; border-radius: var(--seng-r-l); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); }
.seng-root .seng-timeline__dot { position: absolute; top: 18px; inset-inline-start: -34px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--seng-primary); color: #E9D9A6; box-shadow: 0 0 0 4px var(--seng-surface); }
.seng-root .seng-timeline__dot .material-symbols-rounded { font-size: 18px; }
.seng-root .seng-timeline__thesis { display: flex; gap: 8px; margin-top: 8px; padding: 10px 12px; border-radius: var(--seng-r-m); background: var(--seng-surface-low); font-size: 14.5px; color: var(--seng-on-surface-variant); }
.seng-root .seng-timeline__thesis .material-symbols-rounded { color: var(--seng-secondary-strong); font-size: 20px; }
.seng-root .seng-timeline__thesis em { font-style: normal; font-weight: 700; color: var(--seng-primary); }
.seng-root .seng-timeline__orig { margin-top: 4px; font-size: 13px; font-style: italic; color: var(--seng-outline); text-align: left; }
.seng-root .seng-pubs { counter-reset: pub; display: flex; flex-direction: column; gap: 10px; }
.seng-root .seng-pubs li { position: relative; counter-increment: pub; padding: 14px 18px 14px 58px; border-radius: var(--seng-r-l); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); font-size: 14.5px; line-height: 1.65; }
.seng-root .seng-pubs li::before { content: counter(pub); position: absolute; left: 16px; top: 14px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: var(--seng-secondary-container); color: var(--seng-gold-text); font-weight: 800; font-size: 13px; }
.seng-root .seng-link { display: inline-flex; align-items: center; gap: 4px; }
.seng-root .seng-link .material-symbols-rounded { font-size: 16px; }

/* ------------------------------------------------------------------ */
/* Labs                                                                */
/* ------------------------------------------------------------------ */
.seng-root .seng-labgroup { margin-bottom: 40px; }
.seng-root .seng-labs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 22px; }
.seng-root .seng-lab {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	border-radius: var(--seng-r-xl);
	background: var(--seng-surface-lowest);
	border: 1px solid var(--seng-outline-variant);
	overflow: hidden;
	animation: seng-in .3s var(--seng-ease);
	transition: box-shadow var(--seng-dur) var(--seng-ease), transform var(--seng-dur) var(--seng-ease), border-color var(--seng-dur) var(--seng-ease);
}
.seng-root .seng-lab:hover { box-shadow: var(--seng-elev-3); transform: translateY(-4px); border-color: transparent; }
.seng-root .seng-lab__media {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	background: linear-gradient(135deg, var(--seng-primary), #27408A);
	overflow: hidden;
}
.seng-root .seng-lab__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .6s var(--seng-ease); }
.seng-root .seng-lab:hover .seng-lab__media img { transform: scale(1.06); }
.seng-root .seng-lab__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(16, 26, 61, .55), transparent 45%); pointer-events: none; }
.seng-root .seng-lab__placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255, 255, 255, .7); }
.seng-root .seng-lab__placeholder .material-symbols-rounded { font-size: 48px; }
.seng-root .seng-lab__count { position: absolute; z-index: 1; bottom: 12px; inset-inline-end: 12px; display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: var(--seng-r-full); background: rgba(16, 26, 61, .82); color: #fff; font-size: 13px; font-weight: 700; line-height: 1.4; }
.seng-root .seng-lab__count .material-symbols-rounded { font-size: 16px; }
.seng-root .seng-lab__body { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 16px; flex: 1; min-width: 0; }
.seng-root .seng-lab__body .seng-title-m a { color: var(--seng-primary); }
.seng-root .seng-lab__body .seng-title-m a::after { content: ''; position: absolute; inset: 0; } /* Whole card clickable. */
.seng-root .seng-lab__desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.seng-root .seng-lab__facs { display: flex; flex-wrap: wrap; gap: 6px; }
.seng-root .seng-lab__facs li { padding: 3px 10px; border-radius: var(--seng-r-full); background: var(--seng-surface-low); border: 1px solid var(--seng-divider); font-size: 12.5px; font-weight: 600; color: var(--seng-on-surface-variant); line-height: 1.6; }
.seng-root .seng-lab__facs .seng-lab__more { background: var(--seng-secondary-container); border-color: transparent; color: var(--seng-gold-text); }
.seng-root .seng-lab__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 12px; border-top: 1px dashed var(--seng-divider); }
.seng-root .seng-lab__tag { display: inline-flex; align-items: center; gap: 6px; min-width: 0; font-size: 12.5px; font-weight: 700; color: var(--seng-on-surface-variant); }
.seng-root .seng-lab__tag span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.seng-root .seng-lab__tag .material-symbols-rounded { font-size: 18px; color: var(--seng-secondary-strong); }
.seng-root .seng-lab__go { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 4px; font-size: 13.5px; font-weight: 800; color: var(--seng-primary); white-space: nowrap; }
.seng-root .seng-lab__go .material-symbols-rounded { font-size: 18px; transition: transform var(--seng-dur) var(--seng-ease); }
.seng-root .seng-lab:hover .seng-lab__go .material-symbols-rounded { transform: translateX(3px); }
.seng-root[dir="rtl"] .seng-lab:hover .seng-lab__go .material-symbols-rounded { transform: scaleX(-1) translateX(3px); }
.seng-root .seng-mini-stats { display: flex; gap: 8px; }
.seng-root .seng-mini-stats li { display: flex; flex-direction: column; align-items: center; min-width: 88px; padding: 8px 14px; border-radius: var(--seng-r-l); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); }
.seng-root .seng-mini-stats strong { font-size: 22px; line-height: 1.2; color: var(--seng-primary); }
.seng-root .seng-mini-stats span { font-size: 12.5px; font-weight: 600; color: var(--seng-on-surface-variant); }

/* Lab page: gallery */
.seng-root .seng-mosaic { display: grid; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 190px; border-radius: 24px; overflow: hidden; }
.seng-root .seng-mosaic__item {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	padding: 0;
	overflow: hidden;
	background: var(--seng-surface-container);
	cursor: zoom-in;
	border-radius: 6px;
}
.seng-root .seng-mosaic__item img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .6s var(--seng-ease); }
.seng-root .seng-mosaic__item:hover img { transform: scale(1.05); }
.seng-root .seng-mosaic__item::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(16, 26, 61, .7), transparent 50%); opacity: 0; transition: opacity var(--seng-dur) var(--seng-ease); }
.seng-root .seng-mosaic__item:hover::after, .seng-root .seng-mosaic__item:focus-visible::after { opacity: 1; }
.seng-root .seng-mosaic__caption { position: absolute; z-index: 1; bottom: 12px; inset-inline: 14px; color: #fff; font-weight: 700; font-size: 14px; text-align: start; line-height: 1.4; opacity: 0; transform: translateY(6px); transition: all var(--seng-dur) var(--seng-ease); }
.seng-root .seng-mosaic__item:hover .seng-mosaic__caption, .seng-root .seng-mosaic__item:focus-visible .seng-mosaic__caption { opacity: 1; transform: none; }
.seng-root .seng-mosaic__item:first-child .seng-mosaic__caption { opacity: 1; transform: none; font-size: 16px; }
.seng-root .seng-mosaic__item:first-child::after { opacity: 1; }
.seng-root .seng-mosaic__more { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 8px; background: rgba(16, 26, 61, .62); color: #fff; font-size: 26px; font-weight: 800; }
.seng-root .seng-mosaic__more .material-symbols-rounded { font-size: 30px; }
.seng-root .seng-mosaic--1 { grid-template-columns: minmax(0, 1fr); grid-auto-rows: 420px; }
.seng-root .seng-mosaic--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 380px; }
.seng-root .seng-mosaic--3 .seng-mosaic__item:first-child { grid-column: span 2; grid-row: span 2; }
.seng-root .seng-mosaic--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.seng-root .seng-mosaic--4 .seng-mosaic__item:first-child { grid-column: span 2; grid-row: span 2; }
.seng-root .seng-mosaic--4 .seng-mosaic__item:nth-child(2) { grid-column: span 2; }
.seng-root .seng-mosaic--5 .seng-mosaic__item:first-child { grid-column: span 2; grid-row: span 2; }
.seng-root .seng-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 14px; }
.seng-root .seng-photos__item { position: relative; display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; padding: 0; border-radius: var(--seng-r-m); overflow: hidden; background: var(--seng-surface-container); cursor: zoom-in; }
.seng-root .seng-photos__item img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .5s var(--seng-ease); }
.seng-root .seng-photos__item:hover img { transform: scale(1.08); }
.seng-root .seng-photos__caption { position: absolute; inset-inline: 0; bottom: 0; padding: 18px 8px 6px; background: linear-gradient(to top, rgba(16, 26, 61, .8), transparent); color: #fff; font-size: 11.5px; font-weight: 600; line-height: 1.35; text-align: start; opacity: 0; transition: opacity var(--seng-dur) var(--seng-ease); }
.seng-root .seng-photos__item:hover .seng-photos__caption, .seng-root .seng-photos__item:focus-visible .seng-photos__caption { opacity: 1; }

/* Lab page: content + side */
.seng-root .seng-labpage { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; margin-bottom: 56px; }
.seng-root .seng-labpage__side { position: sticky; top: calc(var(--seng-sticky) + 100px); display: flex; flex-direction: column; gap: 14px; }
.seng-root .seng-side-card { padding: 20px; }
.seng-root .seng-checklist li { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--seng-divider); font-weight: 600; font-size: 14.5px; }
.seng-root .seng-checklist li:last-child { border-bottom: 0; }
.seng-root .seng-checklist .material-symbols-rounded { color: var(--seng-secondary-strong); font-size: 20px; font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24; }
.seng-root .seng-btn--block { display: flex; width: 100%; }

/* Content written in the WordPress editor */
.seng-root .seng-content { font-size: 16.5px; color: var(--seng-on-surface); }
.seng-root .seng-content > * + * { margin-top: 14px; }
.seng-root .seng-content p { color: var(--seng-on-surface-variant); }
.seng-root .seng-content h2, .seng-root .seng-content h3, .seng-root .seng-content h4 { color: var(--seng-primary); font-weight: 800; line-height: 1.4; margin-top: 26px; }
.seng-root .seng-content h2 { font-size: 22px; }
.seng-root .seng-content h3 { font-size: 18px; display: flex; align-items: center; gap: 10px; }
.seng-root .seng-content h3::before { content: ''; width: 10px; height: 10px; border-radius: 3px; background: var(--seng-secondary); transform: rotate(45deg); flex-shrink: 0; }
.seng-root .seng-content h4 { font-size: 16px; }
.seng-root .seng-content ul, .seng-root .seng-content ol { padding-inline-start: 22px; }
.seng-root .seng-content ul { list-style: disc; }
.seng-root .seng-content ol { list-style: decimal; }
.seng-root .seng-content li { margin: 6px 0; color: var(--seng-on-surface-variant); }
.seng-root .seng-content li::marker { color: var(--seng-secondary-strong); }
.seng-root .seng-content a { text-decoration: underline; text-underline-offset: 3px; }
.seng-root .seng-content img { border-radius: var(--seng-r-l); height: auto; }
.seng-root .seng-content figure { margin: 18px 0; }
.seng-root .seng-content figcaption { font-size: 13px; color: var(--seng-on-surface-variant); text-align: center; margin-top: 6px; }
.seng-root .seng-content blockquote { padding: 14px 18px; border-inline-start: 4px solid var(--seng-secondary); background: var(--seng-surface-low); border-radius: var(--seng-r-m); }
.seng-root .seng-content table { width: 100%; border-collapse: collapse; }
.seng-root .seng-content th, .seng-root .seng-content td { padding: 10px 12px; border: 1px solid var(--seng-outline-variant); text-align: start; }
.seng-root .seng-content th { background: var(--seng-surface-low); color: var(--seng-primary); }
.seng-root .seng-content .alignleft { float: left; margin: 0 18px 12px 0; }
.seng-root .seng-content .alignright { float: right; margin: 0 0 12px 18px; }
.seng-root .seng-content .aligncenter { display: block; margin-inline: auto; }
.seng-root .seng-content::after { content: ''; display: table; clear: both; }
.seng-root .seng-content iframe { max-width: 100%; border-radius: var(--seng-r-l); }

/* ------------------------------------------------------------------ */
/* Students (guide)                                                    */
/* ------------------------------------------------------------------ */
.seng-root .seng-glance { display: grid; gap: 18px; }
.seng-root .seng-guide { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 28px; align-items: start; }
.seng-root .seng-guide__toc { position: sticky; top: calc(var(--seng-sticky) + 100px); padding: 18px; border-radius: var(--seng-r-xl); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); max-height: calc(100vh - 140px); overflow: auto; }
.seng-root .seng-guide__toc ol { counter-reset: toc; }
.seng-root .seng-guide__toc li a { display: block; padding: 7px 10px; border-radius: var(--seng-r-s); font-size: 14px; font-weight: 600; color: var(--seng-on-surface-variant); line-height: 1.4; }
.seng-root .seng-guide__toc li a:hover, .seng-root .seng-guide__toc li a.is-current { background: var(--seng-primary-container); color: var(--seng-primary); }
.seng-root .seng-chapter { border-radius: var(--seng-r-xl); background: var(--seng-surface-lowest); border: 1px solid var(--seng-outline-variant); margin-bottom: 12px; overflow: hidden; }
.seng-root .seng-chapter[open] { box-shadow: var(--seng-elev-1); }
.seng-root .seng-chapter summary { display: flex; align-items: center; gap: 14px; padding: 16px 20px; cursor: pointer; list-style: none; }
.seng-root .seng-chapter summary::-webkit-details-marker { display: none; }
.seng-root .seng-chapter__num { display: grid; place-items: center; min-width: 52px; height: 40px; padding: 0 8px; border-radius: 12px; background: var(--seng-primary); color: #E9D9A6; font-weight: 800; font-size: 13px; }
.seng-root .seng-chapter__title { flex: 1; font-weight: 800; color: var(--seng-primary); font-size: 16.5px; }
.seng-root .seng-chapter__title small { display: block; font-size: 12px; font-weight: 700; color: var(--seng-gold-text); text-transform: uppercase; letter-spacing: .6px; }
.seng-root .seng-chapter__chev { transition: transform var(--seng-dur) var(--seng-ease); color: var(--seng-outline); }
.seng-root .seng-chapter[open] .seng-chapter__chev { transform: rotate(180deg); }
.seng-root .seng-chapter__content { padding: 4px 24px 22px; border-top: 1px solid var(--seng-divider); }
.seng-root .seng-chapter__content h3 { margin: 18px 0 8px; color: var(--seng-primary); }
.seng-root .seng-chapter__content h4 { margin: 12px 0 6px; font-size: 15px; font-weight: 700; color: var(--seng-on-surface); }
.seng-root .seng-chapter__content p { margin-bottom: 10px; color: var(--seng-on-surface-variant); }
.seng-root .seng-bullets { margin: 0 0 12px; }
.seng-root .seng-bullets li { position: relative; padding-inline-start: 22px; margin-bottom: 6px; color: var(--seng-on-surface-variant); }
.seng-root .seng-bullets li::before { content: ''; position: absolute; inset-inline-start: 6px; top: .75em; width: 7px; height: 7px; border-radius: 2px; background: var(--seng-secondary); transform: rotate(45deg); }
.seng-root .seng-chapter .seng-table-wrap { margin: 8px 0 14px; }

/* ------------------------------------------------------------------ */
/* Floating navigation                                                 */
/* ------------------------------------------------------------------ */
/* Menu button: always bottom-LEFT in both languages (the site's chat widgets sit on the right). */
.seng-root .seng-fab,
.seng-root .seng-fab:hover,
.seng-root .seng-fab:focus {
	position: fixed;
	z-index: 9990;
	bottom: 20px;
	left: 16px;
	right: auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 54px;
	padding: 0 20px 0 16px;
	border-radius: 18px;
	background: linear-gradient(135deg, var(--seng-primary), #27408A);
	color: #fff;
	font-family: var(--seng-font);
	font-weight: 700;
	font-size: 14.5px;
	line-height: 1;
	box-shadow: 0 10px 28px rgba(16, 26, 61, .38), inset 0 1px 0 rgba(255, 255, 255, .15);
	transition: transform var(--seng-dur) var(--seng-ease), box-shadow var(--seng-dur) var(--seng-ease);
}
.seng-root .seng-fab:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(16, 26, 61, .45); }
.seng-root .seng-fab .material-symbols-rounded { color: #E9D9A6; }
.seng-root .seng-scrim { position: fixed; inset: 0; z-index: 99998; background: rgba(10, 14, 30, .5); animation: seng-fade .2s; }
.seng-root .seng-drawer {
	position: fixed;
	z-index: 99999;
	top: 0;
	bottom: 0;
	inset-inline-start: 0;
	width: min(380px, 92vw);
	display: flex;
	flex-direction: column;
	background: var(--seng-surface-lowest);
	box-shadow: 12px 0 40px rgba(10, 14, 30, .25);
	border-start-end-radius: 24px;
	border-end-end-radius: 24px;
	animation: seng-drawer-in .3s var(--seng-ease-emph);
}
.seng-root[dir="rtl"] .seng-drawer { animation-name: seng-drawer-in-rtl; box-shadow: -12px 0 40px rgba(10, 14, 30, .25); }
.seng-root .seng-drawer__head { display: flex; align-items: center; gap: 12px; padding: 20px 18px; background: linear-gradient(135deg, var(--seng-primary), #27408A); color: #fff; border-start-end-radius: 24px; }
.seng-root .seng-drawer__head .seng-title-l { color: #fff; }
.seng-root .seng-drawer__head .seng-overline { color: #E9D9A6; }
.seng-root .seng-drawer__head .seng-icon-btn { margin-inline-start: auto; color: #fff; }
.seng-root .seng-drawer__badge { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: linear-gradient(145deg, #B39B57, var(--seng-secondary-strong)); }
.seng-root .seng-drawer__badge .material-symbols-rounded { color: #fff; font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24; }
.seng-root .seng-drawer__nav { flex: 1; overflow-y: auto; padding: 12px; overscroll-behavior: contain; }
.seng-root .seng-drawer__group { border-radius: var(--seng-r-l); margin-bottom: 4px; }
.seng-root .seng-drawer__group[open] { background: var(--seng-surface-low); }
.seng-root .seng-drawer__group summary { display: flex; align-items: center; gap: 4px; list-style: none; cursor: pointer; border-radius: var(--seng-r-l); }
.seng-root .seng-drawer__group summary::-webkit-details-marker { display: none; }
.seng-root .seng-drawer__page { flex: 1; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--seng-r-l); font-weight: 700; color: var(--seng-on-surface); }
.seng-root .seng-drawer__page .material-symbols-rounded { color: var(--seng-secondary-strong); }
.seng-root .seng-drawer__page:hover { background: var(--seng-surface-container); color: var(--seng-primary); }
.seng-root .seng-drawer__page.is-active { color: var(--seng-primary); }
.seng-root .seng-drawer__page.is-active .material-symbols-rounded { font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24; }
.seng-root .seng-drawer__toggle { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: var(--seng-outline); transition: transform var(--seng-dur) var(--seng-ease); }
.seng-root .seng-drawer__group[open] .seng-drawer__toggle { transform: rotate(180deg); }
.seng-root .seng-drawer__list { padding: 0 8px 10px; }
.seng-root .seng-drawer__list a { display: flex; align-items: center; gap: 10px; padding: 8px 12px 8px 14px; border-radius: var(--seng-r-m); font-size: 14px; color: var(--seng-on-surface-variant); line-height: 1.4; }
.seng-root .seng-drawer__list a .material-symbols-rounded { font-size: 18px; color: var(--seng-outline); }
.seng-root .seng-drawer__list a:hover { background: var(--seng-surface-lowest); color: var(--seng-primary); }
.seng-root .seng-drawer__list a.is-current { background: var(--seng-surface-lowest); color: var(--seng-primary); font-weight: 700; box-shadow: inset 3px 0 0 var(--seng-secondary); }
.seng-root[dir="rtl"] .seng-drawer__list a.is-current { box-shadow: inset -3px 0 0 var(--seng-secondary); }
.seng-root .seng-drawer__list a.is-current .material-symbols-rounded { color: var(--seng-secondary-strong); }
.seng-root .seng-drawer__dot { font-size: 16px !important; }
.seng-root .seng-drawer__foot { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-top: 1px solid var(--seng-divider); color: var(--seng-on-surface-variant); font-size: 13px; font-weight: 600; }
.seng-root .seng-drawer__foot img { width: 36px; height: 36px; object-fit: contain; }
.seng-root.is-nav-open .seng-fab { opacity: 0; pointer-events: none; }

/* The site's "To Top" plugin button sits bottom-left like the menu button: lift it above. */
body.seng-module-page #to_top_scrollup { bottom: 88px !important; }

@keyframes seng-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes seng-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes seng-drawer-in { from { transform: translateX(-100%); } to { transform: none; } }
@keyframes seng-drawer-in-rtl { from { transform: translateX(100%); } to { transform: none; } }

/* ------------------------------------------------------------------ */
/* Responsive                                                          */
/* ------------------------------------------------------------------ */
@media (max-width: 1100px) {
	.seng-root .seng-tab span { font-size: 13.5px; }
	.seng-root .seng-tab { padding: 8px 12px; }
	.seng-root .seng-dept__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.seng-root .seng-leaders { grid-template-columns: minmax(0, 1fr); }
	.seng-root .seng-dept-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.seng-root .seng-labpage { grid-template-columns: minmax(0, 1fr); }
	.seng-root .seng-labpage__side { position: static; }
	.seng-root .seng-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 160px; }
	.seng-root .seng-mosaic--3, .seng-root .seng-mosaic--4, .seng-root .seng-mosaic--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.seng-root .seng-mosaic--3 .seng-mosaic__item:first-child, .seng-root .seng-mosaic--4 .seng-mosaic__item:first-child, .seng-root .seng-mosaic--5 .seng-mosaic__item:first-child { grid-column: span 2; grid-row: span 1; }
	.seng-root .seng-mosaic--1, .seng-root .seng-mosaic--2 { grid-auto-rows: 260px; }
	.seng-root .seng-hero__row { flex-wrap: wrap; }
	.seng-root .seng-hero__media { flex: 1 1 100%; transform: none !important; aspect-ratio: 16 / 9; order: 3; }
	.seng-root .seng-about__grid, .seng-root .seng-overview__grid, .seng-root .seng-profile, .seng-root .seng-guide { grid-template-columns: minmax(0, 1fr); }
	.seng-root .seng-dean { grid-template-columns: minmax(0, 1fr); padding: 22px; gap: 18px; }
	.seng-root .seng-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.seng-root .seng-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.seng-root .seng-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.seng-root .seng-profile__card, .seng-root .seng-guide__toc { position: static; max-height: none; }
	.seng-root .seng-guide__toc ol { columns: 2; }
	.seng-root .seng-facts--row { grid-template-columns: minmax(0, 1fr); }
	.seng-root .seng-dept__head { flex-wrap: wrap; }
	.seng-root .seng-dept__counts { width: 100%; }
}
@media (max-width: 680px) {
	.seng-root .seng-mosaic { grid-auto-rows: 130px; border-radius: 18px; gap: 6px; }
	.seng-root .seng-mosaic__item:first-child { grid-row: span 2 !important; }
	.seng-root .seng-mosaic__caption { opacity: 1; transform: none; font-size: 12.5px; bottom: 8px; inset-inline: 10px; }
	.seng-root .seng-mosaic__item::after { opacity: 1; }
	.seng-root .seng-photos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
	.seng-root .seng-photos__caption { display: none; }
	.seng-root .seng-mini-stats { width: 100%; }
	.seng-root .seng-mini-stats li { flex: 1; }
	.seng-root .seng-doc { padding: 14px; }
	.seng-root .seng-doc .seng-btn { width: 100%; }
	.seng-root .seng-program__actions .seng-btn__meta { display: none; }
	.seng-root .seng-hero { padding: 24px 16px 72px; }
	.seng-root .seng-hero__icon { width: 58px; height: 58px; border-radius: 18px; }
	.seng-root .seng-hero__icon .material-symbols-rounded { font-size: 30px; }
	.seng-root .seng-tabs { padding: 0 10px; margin-top: -34px; }
	.seng-root .seng-tabs__inner { padding: 6px; border-radius: 16px; }
	.seng-root .seng-tab { flex: 0 0 auto; min-height: 44px; padding: 6px 12px; }
	.seng-root .seng-tab.is-active::after { bottom: 4px; }
	.seng-root .seng-main { padding: 28px 16px 96px; }
	.seng-root .seng-section { margin-bottom: 48px; }
	.seng-root .seng-grid--2, .seng-root .seng-grid--3 { grid-template-columns: minmax(0, 1fr); }
	.seng-root .seng-grid--vm, .seng-root .seng-dept__cols, .seng-root .seng-news-grid, .seng-root .seng-keyfacts, .seng-root .seng-dept-index { grid-template-columns: minmax(0, 1fr); }
	.seng-root .seng-programs, .seng-root .seng-docs, .seng-root .seng-objectives { grid-template-columns: minmax(0, 1fr); }
	.seng-root .seng-stat__num { font-size: 32px; }
	.seng-root .seng-dept { padding: 18px; }
	.seng-root .seng-sec-head__icon { width: 40px; height: 40px; }
	.seng-root .seng-headline { font-size: 22px; }
	.seng-root .seng-members { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.seng-root .seng-member__link { padding: 18px 10px 12px; }
	.seng-root .seng-member__photo img, .seng-root .seng-initials--l { width: 80px; height: 80px; font-size: 24px; }
	.seng-root .seng-member__name { font-size: 14.5px; }
	.seng-root .seng-guide__toc ol { columns: 1; }
	.seng-root .seng-chapter__content { padding: 4px 16px 18px; }
	.seng-root .seng-pubs li { padding-left: 50px; }
	.seng-root .seng-pager { flex-direction: column; }
	.seng-root .seng-pager__item { max-width: 100%; }
	.seng-root .seng-fab, .seng-root .seng-fab:hover, .seng-root .seng-fab:focus { height: 48px; font-size: 14px; bottom: 16px; left: 12px; }
	.seng-root .seng-select, .seng-root .seng-select select { width: 100%; }
}
@media (max-width: 420px) {
	.seng-root .seng-members { grid-template-columns: minmax(0, 1fr); }
	.seng-root .seng-stats, .seng-root .seng-steps { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.seng-root *, .seng-root *::before, .seng-root *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

@media print {
	.seng-root .seng-tabs, .seng-root .seng-fab, .seng-root .seng-drawer, .seng-root .seng-hero__grid, .seng-root .seng-localnav { display: none !important; }
	.seng-root .seng-chapter { break-inside: avoid; }
	.seng-root .seng-dean__body { max-height: none !important; mask-image: none !important; -webkit-mask-image: none !important; }
}
