/* NGM Department Profile — front-end styles
 * All colours/sizes are CSS variables (set globally from Settings, or per Elementor widget).
 */
:root {
	--ngm-dp-primary: #0b3d6e;
	--ngm-dp-accent: #f2a900;
}

.ngm-dp {
	--ngm-dp-text: #1f2937;
	--ngm-dp-muted: #5b6472;
	--ngm-dp-card: #ffffff;
	--ngm-dp-border: #e3e7ee;
	--ngm-dp-soft: #f3f6fa;
	--ngm-dp-radius: 12px;
	--ngm-dp-gap: 24px;
	--ngm-dp-hero-overlay: rgba(6, 26, 52, 0.8);
	--ngm-dp-shadow: 0 1px 2px rgba(16, 24, 40, 0.05), 0 4px 16px rgba(16, 24, 40, 0.06);
	color: var(--ngm-dp-text);
	font-size: 16px;
	line-height: 1.65;
	box-sizing: border-box;
}
.ngm-dp *, .ngm-dp *::before, .ngm-dp *::after { box-sizing: inherit; }
.ngm-dp img { max-width: 100%; height: auto; }
.ngm-dp a { color: var(--ngm-dp-primary); }
.ngm-dp [hidden] { display: none !important; }

.ngm-dp-container { max-width: 1240px; margin: 0 auto; padding: 32px 20px 64px; }
.ngm-dp-main { width: 100%; }

.ngm-dp-icon { flex: none; vertical-align: -3px; }

/* ---------- Hero ---------- */
.ngm-dp-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 240px;
	padding: 40px;
	margin-bottom: var(--ngm-dp-gap);
	border-radius: var(--ngm-dp-radius);
	overflow: hidden;
	color: #fff;
	background: var(--ngm-dp-primary);
	isolation: isolate;
}
.ngm-dp-hero.has-bg { background-image: var(--ngm-dp-hero-bg); background-size: cover; background-position: center; }
.ngm-dp-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(100deg, var(--ngm-dp-hero-overlay) 0%, var(--ngm-dp-hero-overlay) 45%, rgba(0, 0, 0, 0.25) 100%);
}
.ngm-dp-hero:not(.has-bg)::before { background: linear-gradient(120deg, rgba(255,255,255,0.06), rgba(0,0,0,0.18)); }
.ngm-dp-hero::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 5px;
	background: var(--ngm-dp-accent);
}
.ngm-dp-hero__inner { display: flex; align-items: center; gap: 24px; }
.ngm-dp-hero__logo {
	flex: none;
	width: 104px; height: 104px;
	border-radius: 50%;
	background: #fff;
	padding: 10px;
	display: grid;
	place-items: center;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}
.ngm-dp-hero__logo img { width: 100%; height: 100%; object-fit: contain; }
.ngm-dp-hero__eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ngm-dp-accent);
	margin-bottom: 4px;
}
.ngm-dp .ngm-dp-hero__title { margin: 0; color: #fff; font-size: clamp(26px, 3.4vw, 40px); line-height: 1.15; font-weight: 700; }
.ngm-dp-hero__intro { margin: 10px 0 0; max-width: 760px; color: rgba(255, 255, 255, 0.88); font-size: 17px; }
.ngm-dp-hero__stats { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; }
.ngm-dp-hero__stats li {
	display: flex; align-items: baseline; gap: 8px;
	padding: 8px 16px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.2);
	backdrop-filter: blur(4px);
	font-size: 14px;
	margin: 0;
}
.ngm-dp-hero__stats strong { font-size: 20px; color: var(--ngm-dp-accent); }

/* ---------- Tabs ---------- */
.ngm-dp-tabs { display: grid; gap: var(--ngm-dp-gap); align-items: start; }
.ngm-dp--tabs-left .ngm-dp-tabs { grid-template-columns: 260px minmax(0, 1fr); }
.ngm-dp-tabs__nav {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 8px;
	background: var(--ngm-dp-card);
	border: 1px solid var(--ngm-dp-border);
	border-radius: var(--ngm-dp-radius);
	position: sticky;
	top: calc(var(--ngm-dp-sticky-top, 24px) + var(--wp-admin--admin-bar--height, 0px));
}
.ngm-dp .ngm-dp-tabs__tab {
	all: unset;
	box-sizing: border-box;
	display: block;
	width: 100%;
	padding: 11px 14px 11px 16px;
	border-radius: calc(var(--ngm-dp-radius) - 4px);
	color: var(--ngm-dp-text);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.35;
	cursor: pointer;
	position: relative;
	transition: background 0.15s, color 0.15s;
}
.ngm-dp .ngm-dp-tabs__tab:hover { background: var(--ngm-dp-soft); color: var(--ngm-dp-primary); }
.ngm-dp .ngm-dp-tabs__tab:focus-visible { outline: 2px solid var(--ngm-dp-primary); outline-offset: 1px; }
.ngm-dp .ngm-dp-tabs__tab.is-active { background: var(--ngm-dp-primary); color: #fff; font-weight: 600; }
.ngm-dp--tabs-left .ngm-dp-tabs__tab.is-active::before {
	content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 4px; border-radius: 4px; background: var(--ngm-dp-accent);
}

.ngm-dp--tabs-top .ngm-dp-tabs { grid-template-columns: minmax(0, 1fr); }
.ngm-dp--tabs-top .ngm-dp-tabs__nav { flex-direction: row; flex-wrap: wrap; position: static; }
.ngm-dp--tabs-top .ngm-dp-tabs__tab { width: auto; }

.ngm-dp-tabs__panel,
.ngm-dp-stack > .ngm-dp-section,
.ngm-dp--single > .ngm-dp-section {
	background: var(--ngm-dp-card);
	border: 1px solid var(--ngm-dp-border);
	border-radius: var(--ngm-dp-radius);
	padding: 32px;
	min-width: 0;
}
.ngm-dp-tabs__panel.is-active { animation: ngm-dp-fade 0.25s ease; }
@keyframes ngm-dp-fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.ngm-dp-stack { display: grid; gap: var(--ngm-dp-gap); }

.ngm-dp .ngm-dp-section__title {
	margin: 0 0 22px;
	padding-bottom: 12px;
	font-size: 26px;
	line-height: 1.25;
	color: var(--ngm-dp-primary);
	border-bottom: 1px solid var(--ngm-dp-border);
	position: relative;
}
.ngm-dp .ngm-dp-section__title::after {
	content: ""; position: absolute; left: 0; bottom: -2px; width: 56px; height: 3px; border-radius: 3px; background: var(--ngm-dp-accent);
}
.ngm-dp .ngm-dp-subtitle { font-size: 18px; margin: 28px 0 12px; color: var(--ngm-dp-primary); }
.ngm-dp .ngm-dp-subtitle:first-child { margin-top: 0; }

/* Sub-tabs */
.ngm-dp-subtabs__nav { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; margin-bottom: 20px; background: var(--ngm-dp-soft); border-radius: 999px; }
.ngm-dp .ngm-dp-subtabs__tab {
	all: unset; box-sizing: border-box; cursor: pointer;
	padding: 7px 16px; border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--ngm-dp-muted);
}
.ngm-dp .ngm-dp-subtabs__tab:hover { color: var(--ngm-dp-primary); }
.ngm-dp .ngm-dp-subtabs__tab:focus-visible { outline: 2px solid var(--ngm-dp-primary); }
.ngm-dp .ngm-dp-subtabs__tab.is-active { background: var(--ngm-dp-card); color: var(--ngm-dp-primary); box-shadow: 0 1px 3px rgba(0,0,0,0.12); }

/* ---------- Generic ---------- */
.ngm-dp-card {
	background: var(--ngm-dp-card);
	border: 1px solid var(--ngm-dp-border);
	border-radius: var(--ngm-dp-radius);
	box-shadow: var(--ngm-dp-shadow);
}
.ngm-dp-grid {
	--ngm-dp-cols: 3;
	--ngm-dp-min: 240px;
	display: grid;
	gap: var(--ngm-dp-gap);
	grid-template-columns: repeat(auto-fill, minmax(max(var(--ngm-dp-min), calc((100% - (var(--ngm-dp-cols) - 1) * var(--ngm-dp-gap)) / var(--ngm-dp-cols))), 1fr));
}
.ngm-dp-grid--2 { --ngm-dp-cols: 2; --ngm-dp-min: 280px; }
.ngm-dp-grid--3 { --ngm-dp-cols: 3; }

.ngm-dp-rich > :first-child { margin-top: 0; }
.ngm-dp-rich > :last-child { margin-bottom: 0; }
.ngm-dp-rich ul, .ngm-dp-rich ol { padding-left: 1.3em; }
.ngm-dp-rich li { margin: 0.35em 0; }
.ngm-dp-rich table { width: 100%; border-collapse: collapse; }
.ngm-dp-rich td, .ngm-dp-rich th { border: 1px solid var(--ngm-dp-border); padding: 8px 10px; }

.ngm-dp-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ngm-dp-chip {
	display: inline-block;
	padding: 3px 12px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.6;
	background: var(--ngm-dp-soft);
	color: var(--ngm-dp-primary);
	border: 1px solid var(--ngm-dp-border);
	text-decoration: none;
}
.ngm-dp a.ngm-dp-chip:hover { background: var(--ngm-dp-primary); color: #fff; border-color: var(--ngm-dp-primary); }
.ngm-dp-chip--online { background: #e8f6ee; color: #146c43; border-color: #bfe5cf; }
.ngm-dp-chip--offline { background: #eef2fb; color: #2b4b8a; }

.ngm-dp-badge {
	display: inline-block; padding: 2px 10px; border-radius: 999px;
	font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
	background: var(--ngm-dp-accent); color: #1a1a1a;
}

.ngm-dp-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.ngm-dp .ngm-dp-btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 9px 18px;
	border-radius: 999px;
	background: var(--ngm-dp-primary);
	color: #fff;
	font-size: 14px; font-weight: 600; line-height: 1.3;
	text-decoration: none;
	border: 1px solid var(--ngm-dp-primary);
	transition: filter 0.15s, background 0.15s;
}
.ngm-dp .ngm-dp-btn:hover { filter: brightness(1.15); color: #fff; }
.ngm-dp .ngm-dp-btn--ghost { background: transparent; color: var(--ngm-dp-primary); }
.ngm-dp .ngm-dp-btn--ghost:hover { background: var(--ngm-dp-primary); color: #fff; filter: none; }
.ngm-dp .ngm-dp-link { font-size: 14px; font-weight: 600; text-decoration: none; color: var(--ngm-dp-primary); }
.ngm-dp .ngm-dp-link:hover { text-decoration: underline; }

.ngm-dp-meta { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; font-size: 14px; color: var(--ngm-dp-muted); }
.ngm-dp-meta li { display: flex; gap: 8px; align-items: flex-start; margin: 0; overflow-wrap: anywhere; }
.ngm-dp-meta .ngm-dp-icon { margin-top: 4px; color: var(--ngm-dp-primary); }
.ngm-dp-meta a { color: inherit; }

.ngm-dp-empty { color: var(--ngm-dp-muted); font-style: italic; }

.ngm-dp-details { margin-top: 12px; border-top: 1px dashed var(--ngm-dp-border); padding-top: 10px; }
.ngm-dp-details summary { cursor: pointer; font-weight: 600; font-size: 14px; color: var(--ngm-dp-primary); }
.ngm-dp-details[open] summary { margin-bottom: 8px; }

/* Files */
.ngm-dp-files { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ngm-dp-files li { margin: 0; }
.ngm-dp .ngm-dp-file {
	display: flex; align-items: center; gap: 12px;
	padding: 12px 14px;
	border: 1px solid var(--ngm-dp-border);
	border-radius: calc(var(--ngm-dp-radius) - 4px);
	background: var(--ngm-dp-card);
	color: var(--ngm-dp-text);
	text-decoration: none;
	transition: border-color 0.15s, box-shadow 0.15s;
	height: 100%;
}
.ngm-dp .ngm-dp-file:hover { border-color: var(--ngm-dp-primary); box-shadow: var(--ngm-dp-shadow); }
.ngm-dp-file__icon {
	flex: none; width: 42px; height: 42px; border-radius: 8px;
	display: grid; place-items: center;
	background: #fdecea; color: #c0392b;
	font-size: 11px; font-weight: 800; letter-spacing: 0.03em;
}
.ngm-dp-file__name { font-weight: 600; font-size: 14px; line-height: 1.4; }

/* Tables */
.ngm-dp-table-wrap { overflow-x: auto; border: 1px solid var(--ngm-dp-border); border-radius: calc(var(--ngm-dp-radius) - 4px); }
.ngm-dp-table { width: 100%; border-collapse: collapse; margin: 0; font-size: 15px; }
.ngm-dp-table th { background: var(--ngm-dp-primary); color: #fff; text-align: left; font-weight: 600; }
.ngm-dp-table th, .ngm-dp-table td { padding: 10px 14px; border: 0; border-bottom: 1px solid var(--ngm-dp-border); vertical-align: top; }
.ngm-dp-table tbody tr:nth-child(even) { background: var(--ngm-dp-soft); }
.ngm-dp-table tbody tr:last-child td { border-bottom: 0; }

/* Embeds */
.ngm-dp-embed { position: relative; border-radius: calc(var(--ngm-dp-radius) - 4px); overflow: hidden; border: 1px solid var(--ngm-dp-border); background: var(--ngm-dp-soft); }
.ngm-dp-embed iframe { display: block; width: 100%; border: 0; }
.ngm-dp-embed--doc iframe { height: 560px; }

/* Field lists */
.ngm-dp-fields { display: grid; gap: 14px 24px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin: 0; }
.ngm-dp-field { margin: 0; padding: 14px 16px; background: var(--ngm-dp-soft); border-radius: calc(var(--ngm-dp-radius) - 4px); }
.ngm-dp-field.is-wide { grid-column: 1 / -1; }
.ngm-dp-field dt { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ngm-dp-muted); margin-bottom: 4px; }
.ngm-dp-field dd { margin: 0; }
.ngm-dp-swatch { display: inline-block; width: 14px; height: 14px; border-radius: 3px; vertical-align: -2px; }
.ngm-dp-list { margin: 0; padding-left: 1.2em; }

/* ---------- Overview ---------- */
.ngm-dp-overview.has-aside { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; align-items: start; }
.ngm-dp-overview__progs { margin-top: 24px; }
.ngm-dp-overview__progs h3 { font-size: 16px; margin: 0 0 10px; }
.ngm-dp .ngm-dp-overview__aside-title { font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ngm-dp-muted); margin: 0 0 10px; }

/* ---------- Vision & Mission ---------- */
.ngm-dp-vm { display: grid; gap: var(--ngm-dp-gap); grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.ngm-dp-vm__item { padding: 28px; border-top: 4px solid var(--ngm-dp-primary); }
.ngm-dp-vm__item--mission { border-top-color: var(--ngm-dp-accent); }
.ngm-dp-vm__icon { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--ngm-dp-soft); color: var(--ngm-dp-primary); margin-bottom: 12px; }
.ngm-dp-vm__icon .ngm-dp-icon { width: 22px; height: 22px; }
.ngm-dp .ngm-dp-vm__item h3 { margin: 0 0 10px; font-size: 20px; color: var(--ngm-dp-primary); }

/* Highlights: tick bullets */
.ngm-dp-highlights ul { list-style: none; padding-left: 0; }
.ngm-dp-highlights ul li { position: relative; padding-left: 30px; }
.ngm-dp-highlights ul li::before {
	content: ""; position: absolute; left: 0; top: 0.3em; width: 18px; height: 18px; border-radius: 50%;
	background: var(--ngm-dp-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 11px no-repeat;
}

/* ---------- Courses ---------- */
.ngm-dp-course { padding: 22px; display: flex; flex-direction: column; }
.ngm-dp-course__head { display: flex; gap: 14px; align-items: center; }
.ngm-dp-course__icon { flex: none; width: 52px; height: 52px; border-radius: 12px; overflow: hidden; background: var(--ngm-dp-soft); display: grid; place-items: center; color: var(--ngm-dp-primary); }
.ngm-dp-course__icon img { width: 100%; height: 100%; object-fit: contain; }
.ngm-dp-course__icon .ngm-dp-icon { width: 26px; height: 26px; }
.ngm-dp .ngm-dp-course__title { margin: 0; font-size: 18px; line-height: 1.3; }
.ngm-dp .ngm-dp-course__title a { text-decoration: none; color: var(--ngm-dp-text); }
.ngm-dp .ngm-dp-course__title a:hover { color: var(--ngm-dp-primary); }
.ngm-dp-course__meta { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 8px; }
.ngm-dp-course__meta li { display: flex; justify-content: space-between; gap: 12px; margin: 0; padding-bottom: 8px; border-bottom: 1px solid var(--ngm-dp-border); font-size: 14px; }
.ngm-dp-course__meta span { color: var(--ngm-dp-muted); }
.ngm-dp-course__meta strong { text-align: right; }
.ngm-dp-course .ngm-dp-actions { margin-top: auto; padding-top: 16px; }
.ngm-dp-course .ngm-dp-files { grid-template-columns: 1fr; }

/* ---------- People ---------- */
.ngm-dp-people { --ngm-dp-min: 230px; }
.ngm-dp-person { display: flex; flex-direction: column; overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; }
.ngm-dp-person:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(16, 24, 40, 0.12); }
.ngm-dp-person.is-head { border-color: var(--ngm-dp-accent); }
.ngm-dp-avatar {
	display: block;
	aspect-ratio: 1 / 1;
	background: linear-gradient(135deg, var(--ngm-dp-soft), #dde5f0);
	overflow: hidden;
	position: relative;
}
.ngm-dp-person .ngm-dp-avatar { aspect-ratio: 4 / 4.2; }
.ngm-dp-avatar__img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; }
.ngm-dp-avatar__ini {
	position: absolute; inset: 0; display: grid; place-items: center;
	font-size: 56px; font-weight: 700; color: var(--ngm-dp-primary); opacity: 0.55;
}
.ngm-dp-person__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.ngm-dp-person__body .ngm-dp-badge { align-self: flex-start; margin-bottom: 4px; }
.ngm-dp .ngm-dp-person__name { margin: 0; font-size: 18px; line-height: 1.3; }
.ngm-dp .ngm-dp-person__name a { color: var(--ngm-dp-text); text-decoration: none; }
.ngm-dp .ngm-dp-person__name a:hover { color: var(--ngm-dp-primary); }
.ngm-dp-person__role { margin: 0; font-weight: 600; color: var(--ngm-dp-primary); font-size: 14px; }
.ngm-dp-person__edu { margin: 0; font-size: 14px; color: var(--ngm-dp-muted); }
.ngm-dp-person__spec, .ngm-dp-person__exp { margin: 4px 0 0; font-size: 14px; }
.ngm-dp-person__spec span, .ngm-dp-person__exp span { color: var(--ngm-dp-muted); }
.ngm-dp-person__links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.ngm-dp-person__links .ngm-dp-chip { font-size: 12px; padding: 2px 10px; }
.ngm-dp-person .ngm-dp-link { margin-top: auto; padding-top: 12px; }

.ngm-dp-person.is-compact { flex-direction: row; align-items: center; gap: 0; }
.ngm-dp-person.is-compact:hover { transform: none; }
.ngm-dp-person.is-compact .ngm-dp-avatar { width: 96px; flex: none; aspect-ratio: 1; align-self: stretch; }
.ngm-dp-person.is-compact .ngm-dp-avatar__ini { font-size: 32px; }
.ngm-dp-person.is-compact .ngm-dp-person__body { padding: 14px 16px; }
.ngm-dp-person.is-compact .ngm-dp-person__name { font-size: 16px; }
.ngm-dp-overview__aside .ngm-dp-person.is-compact { flex-direction: column; align-items: stretch; }
.ngm-dp-overview__aside .ngm-dp-person.is-compact .ngm-dp-avatar { width: 100%; aspect-ratio: 4 / 3.4; }

/* Filter */
.ngm-dp-filter { margin-bottom: 18px; }
.ngm-dp .ngm-dp-filter__input {
	width: 100%; max-width: 460px;
	padding: 11px 16px 11px 42px;
	border: 1px solid var(--ngm-dp-border);
	border-radius: 999px;
	font-size: 15px;
	background: var(--ngm-dp-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6472' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 15px center / 18px no-repeat;
	color: var(--ngm-dp-text);
}
.ngm-dp .ngm-dp-filter__input:focus { outline: none; border-color: var(--ngm-dp-primary); box-shadow: 0 0 0 3px rgba(11, 61, 110, 0.15); }

/* ---------- Events ---------- */
.ngm-dp-event { overflow: hidden; display: flex; flex-direction: column; }
.ngm-dp-event__media { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--ngm-dp-soft); overflow: hidden; }
.ngm-dp-event__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.ngm-dp-event:hover .ngm-dp-event__media img { transform: scale(1.04); }
.ngm-dp-event__ph { position: absolute; inset: 0; display: grid; place-items: center; color: var(--ngm-dp-primary); opacity: 0.4; }
.ngm-dp-event__ph .ngm-dp-icon { width: 48px; height: 48px; }
.ngm-dp-event__date {
	position: absolute; left: 12px; top: 12px;
	display: flex; flex-direction: column; align-items: center;
	min-width: 58px; padding: 6px 8px;
	border-radius: 10px;
	background: var(--ngm-dp-card); color: var(--ngm-dp-muted);
	font-size: 11px; font-weight: 700; text-transform: uppercase; line-height: 1.2;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.ngm-dp-event__date strong { font-size: 22px; color: var(--ngm-dp-primary); }
.ngm-dp-event__body { padding: 16px 18px 18px; }
.ngm-dp .ngm-dp-event__title { font-size: 17px; line-height: 1.35; margin: 0 0 4px; }
.ngm-dp .ngm-dp-event__title a { color: var(--ngm-dp-text); text-decoration: none; }
.ngm-dp .ngm-dp-event__title a:hover { color: var(--ngm-dp-primary); }
.ngm-dp-event .ngm-dp-chip { margin-top: 10px; }

/* ---------- Publications ---------- */
.ngm-dp-pubs { margin: 0; padding-left: 1.4em; display: grid; gap: 14px; }
.ngm-dp-pub { padding-left: 6px; }
.ngm-dp-pub__meta { font-size: 13px; color: var(--ngm-dp-muted); margin-top: 2px; }

/* ---------- Gallery ---------- */
.ngm-dp-gallery { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(max(180px, calc((100% - (var(--ngm-dp-cols, 4) - 1) * 12px) / var(--ngm-dp-cols, 4))), 1fr)); }
.ngm-dp-gallery__item { margin: 0; }
.ngm-dp-gallery__item a { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: calc(var(--ngm-dp-radius) - 4px); background: var(--ngm-dp-soft); }
.ngm-dp-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.ngm-dp-gallery__item a:hover img { transform: scale(1.05); }
.ngm-dp-gallery__item figcaption { font-size: 13px; color: var(--ngm-dp-muted); margin-top: 6px; }

.ngm-dp-lightbox {
	position: fixed; inset: 0; z-index: 999999;
	display: flex; align-items: center; justify-content: center;
	background: rgba(8, 12, 20, 0.92);
	padding: 60px 70px;
}
.ngm-dp-lightbox figure { margin: 0; max-width: 100%; max-height: 100%; text-align: center; }
.ngm-dp-lightbox img { max-width: 100%; max-height: calc(100vh - 150px); border-radius: 6px; box-shadow: 0 10px 40px rgba(0,0,0,0.5); }
.ngm-dp-lightbox figcaption { color: #e5e7eb; margin-top: 12px; font-size: 14px; }
.ngm-dp-lightbox button {
	all: unset; cursor: pointer; position: absolute;
	width: 46px; height: 46px; border-radius: 50%;
	display: grid; place-items: center;
	background: rgba(255, 255, 255, 0.12); color: #fff; font-size: 26px; line-height: 1;
}
.ngm-dp-lightbox button:hover, .ngm-dp-lightbox button:focus-visible { background: rgba(255, 255, 255, 0.25); }
.ngm-dp-lightbox__close { top: 14px; right: 14px; }
.ngm-dp-lightbox__prev { left: 14px; top: 50%; transform: translateY(-50%); }
.ngm-dp-lightbox__next { right: 14px; top: 50%; transform: translateY(-50%); }
.ngm-dp-lightbox__count { position: absolute; top: 24px; left: 24px; color: #cbd5e1; font-size: 14px; }

/* ---------- Directory ---------- */
.ngm-dp .ngm-dp-dept-card { display: flex; flex-direction: column; overflow: hidden; text-decoration: none; color: var(--ngm-dp-text); transition: transform 0.2s, box-shadow 0.2s; }
.ngm-dp .ngm-dp-dept-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(16, 24, 40, 0.12); }
.ngm-dp-dept-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--ngm-dp-soft); }
.ngm-dp-dept-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ngm-dp-dept-card__body { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; flex: 1; position: relative; }
.ngm-dp-dept-card__logo { width: 56px; height: 56px; border-radius: 50%; background: #fff; padding: 6px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
.ngm-dp-dept-card__media + .ngm-dp-dept-card__body .ngm-dp-dept-card__logo { margin-top: -46px; }
.ngm-dp-dept-card__logo img { width: 100%; height: 100%; object-fit: contain; }
.ngm-dp-dept-card__title { font-size: 18px; line-height: 1.3; }
.ngm-dp-dept-card__excerpt { font-size: 14px; color: var(--ngm-dp-muted); }
.ngm-dp-dept-card .ngm-dp-link { margin-top: auto; }

/* ---------- Staff profile ---------- */
.ngm-dp-staff { display: grid; gap: var(--ngm-dp-gap); }
.ngm-dp-staff__head { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 32px; padding: 28px; align-items: start; }
.ngm-dp-avatar--lg { border-radius: var(--ngm-dp-radius); aspect-ratio: 4 / 5; }
.ngm-dp .ngm-dp-staff__name { margin: 0 0 6px; font-size: clamp(24px, 3vw, 34px); line-height: 1.2; color: var(--ngm-dp-text); }
.ngm-dp-staff__head .ngm-dp-person__role { font-size: 16px; }
.ngm-dp-staff__head .ngm-dp-person__edu { font-size: 15px; margin-top: 4px; }
.ngm-dp-staff__head .ngm-dp-meta { margin-top: 14px; }
.ngm-dp-stats { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
.ngm-dp-stats li { margin: 0; padding: 18px; display: flex; flex-direction: column; gap: 4px; border-left: 4px solid var(--ngm-dp-accent); }
.ngm-dp-stats strong { font-size: 28px; line-height: 1; color: var(--ngm-dp-primary); }
.ngm-dp-stats span { font-size: 13px; color: var(--ngm-dp-muted); line-height: 1.35; }
.ngm-dp-staff > .ngm-dp-section { background: var(--ngm-dp-card); border: 1px solid var(--ngm-dp-border); border-radius: var(--ngm-dp-radius); padding: 28px; }

/* Editor notice */
.ngm-dp-editor-notice { padding: 14px 18px; border: 1px dashed #c3c4c7; border-radius: 8px; background: #f6f7f7; color: #50575e; font-size: 14px; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.ngm-dp--tabs-left .ngm-dp-tabs { grid-template-columns: 220px minmax(0, 1fr); }
	.ngm-dp-overview.has-aside { grid-template-columns: minmax(0, 1fr); }
	.ngm-dp-overview__aside { max-width: 420px; }
	.ngm-dp-overview__aside .ngm-dp-person.is-compact { flex-direction: row; }
	.ngm-dp-overview__aside .ngm-dp-person.is-compact .ngm-dp-avatar { width: 120px; aspect-ratio: 1; }
}
@media (max-width: 820px) {
	.ngm-dp { --ngm-dp-gap: 16px; }
	.ngm-dp-hero { padding: 28px 20px; min-height: 200px; }
	.ngm-dp-hero__inner { flex-direction: column; align-items: flex-start; gap: 14px; }
	.ngm-dp-hero__logo { width: 76px; height: 76px; padding: 8px; }
	.ngm-dp-hero__intro { font-size: 15px; }

	.ngm-dp--tabs-left .ngm-dp-tabs { grid-template-columns: minmax(0, 1fr); }
	.ngm-dp-tabs__nav {
		position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 5;
		flex-direction: row; flex-wrap: nowrap;
		overflow-x: auto; scrollbar-width: none;
		padding: 6px; gap: 4px;
		box-shadow: 0 4px 12px rgba(16, 24, 40, 0.08);
	}
	.ngm-dp-tabs__nav::-webkit-scrollbar { display: none; }
	.ngm-dp .ngm-dp-tabs__tab { width: auto; white-space: nowrap; flex: none; padding: 9px 14px; font-size: 14px; }
	.ngm-dp--tabs-left .ngm-dp-tabs__tab.is-active::before { display: none; }

	.ngm-dp-tabs__panel, .ngm-dp-stack > .ngm-dp-section, .ngm-dp--single > .ngm-dp-section, .ngm-dp-staff > .ngm-dp-section { padding: 20px 16px; }
	.ngm-dp .ngm-dp-section__title { font-size: 22px; }

	.ngm-dp-staff__head { grid-template-columns: minmax(0, 1fr); padding: 20px; gap: 20px; }
	.ngm-dp-staff__head .ngm-dp-avatar--lg { max-width: 220px; }
	.ngm-dp-embed--doc iframe { height: 440px; }

	.ngm-dp-table-wrap { border: 0; overflow: visible; }
	.ngm-dp-table thead { display: none; }
	.ngm-dp-table, .ngm-dp-table tbody, .ngm-dp-table tr, .ngm-dp-table td { display: block; width: 100%; }
	.ngm-dp-table tr { border: 1px solid var(--ngm-dp-border); border-radius: 8px; margin-bottom: 10px; padding: 6px 0; background: var(--ngm-dp-card) !important; }
	.ngm-dp-table td { border: 0; padding: 4px 14px; display: flex; gap: 12px; }
	.ngm-dp-table td::before { content: attr(data-label); flex: 0 0 40%; font-weight: 600; color: var(--ngm-dp-muted); font-size: 13px; }
	.ngm-dp-lightbox { padding: 60px 12px; }
	.ngm-dp-lightbox__prev, .ngm-dp-lightbox__next { top: auto; bottom: 14px; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	.ngm-dp *, .ngm-dp *::before { animation: none !important; transition: none !important; }
}
@media print {
	.ngm-dp-tabs__nav, .ngm-dp-filter, .ngm-dp-subtabs__nav { display: none !important; }
	.ngm-dp-tabs__panel[hidden], .ngm-dp-subtabs__panel[hidden] { display: block !important; }
	.ngm-dp--tabs-left .ngm-dp-tabs { grid-template-columns: 1fr; }
}
.ngm-dp-lightbox[hidden] { display: none !important; }

/* ---------- Theme-proofing: many themes style every <button> with high specificity ---------- */
.ngm-dp .ngm-dp-rich p { margin: 0 0 1em; }
.ngm-dp .ngm-dp-rich p:last-child { margin-bottom: 0; }
.ngm-dp button.ngm-dp-tabs__tab,
.ngm-dp button.ngm-dp-subtabs__tab {
	background: transparent !important;
	color: var(--ngm-dp-text) !important;
	border: 0 !important;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	text-decoration: none !important;
	min-height: 0 !important;
	font-family: inherit !important;
	text-align: left;
}
.ngm-dp button.ngm-dp-subtabs__tab { color: var(--ngm-dp-muted) !important; }
.ngm-dp button.ngm-dp-tabs__tab:hover,
.ngm-dp button.ngm-dp-tabs__tab:focus-visible { background: var(--ngm-dp-soft) !important; color: var(--ngm-dp-primary) !important; }
.ngm-dp button.ngm-dp-tabs__tab.is-active { background: var(--ngm-dp-primary) !important; color: #fff !important; }
.ngm-dp button.ngm-dp-subtabs__tab:hover,
.ngm-dp button.ngm-dp-subtabs__tab:focus-visible { color: var(--ngm-dp-primary) !important; }
.ngm-dp button.ngm-dp-subtabs__tab.is-active { background: var(--ngm-dp-card) !important; color: var(--ngm-dp-primary) !important; box-shadow: 0 1px 3px rgba(0,0,0,0.12) !important; }
.ngm-dp-lightbox button { background: rgba(255, 255, 255, 0.12) !important; color: #fff !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }
.ngm-dp-lightbox button:hover, .ngm-dp-lightbox button:focus-visible { background: rgba(255, 255, 255, 0.25) !important; }
.ngm-dp input.ngm-dp-filter__input { border: 1px solid var(--ngm-dp-border) !important; border-radius: 999px !important; padding-left: 42px !important; }
.ngm-dp .ngm-dp-event__media img,
.ngm-dp .ngm-dp-gallery__item a img,
.ngm-dp .ngm-dp-dept-card__media img,
.ngm-dp .ngm-dp-avatar img,
.ngm-dp .ngm-dp-course__icon img,
.ngm-dp .ngm-dp-hero__logo img,
.ngm-dp .ngm-dp-dept-card__logo img { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important; margin: 0 !important; object-fit: cover; }
.ngm-dp .ngm-dp-course__icon img, .ngm-dp .ngm-dp-hero__logo img, .ngm-dp .ngm-dp-dept-card__logo img { object-fit: contain; }
.ngm-dp-course__icon, .ngm-dp-hero__logo, .ngm-dp-dept-card__logo { position: relative; }
.ngm-dp .ngm-dp-hero__logo img { inset: 10px !important; width: calc(100% - 20px) !important; height: calc(100% - 20px) !important; }
.ngm-dp .ngm-dp-dept-card__logo img { inset: 6px !important; width: calc(100% - 12px) !important; height: calc(100% - 12px) !important; }
.ngm-dp .ngm-dp-field dd { margin: 0; padding: 0; }
.ngm-dp .ngm-dp-field dt { margin: 0 0 4px; }
.ngm-dp-rich + .ngm-dp-fields { margin-top: 18px; }
.ngm-dp-gallery__item a, .ngm-dp-dept-card__media { position: relative; }

/* ---------- Container queries: adapt to the space we get (narrow theme content, Elementor columns) ---------- */
.ngm-dp { container-type: inline-size; container-name: ngm-dp; }
.ngm-dp-tabs__panels, .ngm-dp-stack, .ngm-dp--single > .ngm-dp-section { container-type: inline-size; }
@container ngm-dp (max-width: 820px) {
	.ngm-dp--tabs-left .ngm-dp-tabs { grid-template-columns: minmax(0, 1fr); }
	.ngm-dp-tabs__nav { position: static; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 6px; gap: 4px; }
	.ngm-dp .ngm-dp-tabs__tab { width: auto; white-space: nowrap; flex: none; padding: 9px 14px; font-size: 14px; }
	.ngm-dp--tabs-left .ngm-dp-tabs__tab.is-active::before { display: none; }
	.ngm-dp-hero { padding: 28px 22px; }
	.ngm-dp-hero__inner { flex-direction: column; align-items: flex-start; gap: 14px; }
	.ngm-dp-staff__head { grid-template-columns: minmax(0, 1fr); }
	.ngm-dp-staff__head .ngm-dp-avatar--lg { max-width: 220px; }
}
@container (max-width: 680px) {
	.ngm-dp-overview.has-aside { grid-template-columns: minmax(0, 1fr); }
	.ngm-dp-overview__aside { max-width: 420px; }
	.ngm-dp-overview__aside .ngm-dp-person.is-compact { flex-direction: row; }
	.ngm-dp-overview__aside .ngm-dp-person.is-compact .ngm-dp-avatar { width: 120px; aspect-ratio: 1; }
}

/* ---------- 1.1: edit buttons, card footer, publications ---------- */
.ngm-dp-hero__edit { position: absolute; top: 16px; right: 16px; display: flex; gap: 8px; z-index: 2; }
.ngm-dp .ngm-dp-hero__edit-btn {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 7px 14px; border-radius: 999px;
	font-size: 13px; font-weight: 600; line-height: 1.2; text-decoration: none;
	color: #fff; background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.35);
	backdrop-filter: blur(4px);
}
.ngm-dp .ngm-dp-hero__edit-btn.is-primary { background: var(--ngm-dp-accent); border-color: var(--ngm-dp-accent); color: #1a1a1a; }
.ngm-dp .ngm-dp-hero__edit-btn:hover { filter: brightness(1.1); color: inherit; }
.ngm-dp .ngm-dp-hero__edit-btn.is-primary:hover { color: #1a1a1a; }
.ngm-dp .ngm-dp-hero__edit-btn::before {
	content: ""; width: 13px; height: 13px; flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ngm-dp-person__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; padding-top: 12px; }
.ngm-dp-person .ngm-dp-person__foot .ngm-dp-link { margin-top: 0; padding-top: 0; }
.ngm-dp .ngm-dp-link--edit { font-size: 13px; color: var(--ngm-dp-muted); }
.ngm-dp .ngm-dp-pub__type { font-size: 11px; padding: 1px 8px; margin-left: 4px; vertical-align: 1px; }
.ngm-dp a.ngm-dp-pub__author { font-weight: 600; text-decoration: none; }
.ngm-dp .ngm-dp-pub__title a { color: inherit; text-decoration: none; }
.ngm-dp .ngm-dp-pub__title a:hover { color: var(--ngm-dp-primary); text-decoration: underline; }
/* Staff Profile Directory output inside a department tab */
.ngm-dp .spd-widget, .ngm-dp .spd-directory { margin: 0; max-width: none; }
@container ngm-dp (max-width: 820px) {
	.ngm-dp-hero__edit { position: static; margin-bottom: 14px; order: -1; }
}
/* Staff Profile Directory blocks inside a department page use the department colour. */
.ngm-dp .spd-widget, .ngm-dp .spd-directory, .ngm-dp .spd-publications { --a: var(--ngm-dp-primary); }
.ngm-dp .ngm-dp-hero__edit-btn.is-pending { background: #fff4e0; border-color: #f0c36d; color: #7a4b00; }
.ngm-dp .ngm-dp-hero__edit-btn.is-pending::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
	        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

/* ---------- 1.3: My Department dashboard & forms ---------- */
.ngm-dp-dash { max-width: 1180px; margin: 0 auto; }
.ngm-dp-dash__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.ngm-dp .ngm-dp-dash__title { margin: 2px 0 0; font-size: clamp(22px, 3vw, 30px); color: var(--ngm-dp-primary); }
.ngm-dp-dash__switch select { padding: 8px 12px; border: 1px solid var(--ngm-dp-border); border-radius: 8px; background: var(--ngm-dp-card); }
.ngm-dp-dash__nav { display: flex; gap: 4px; flex-wrap: wrap; border-bottom: 1px solid var(--ngm-dp-border); margin-bottom: 20px; }
.ngm-dp .ngm-dp-dash__nav a { padding: 10px 16px; text-decoration: none; color: var(--ngm-dp-muted); font-weight: 600; font-size: 15px; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.ngm-dp .ngm-dp-dash__nav a:hover { color: var(--ngm-dp-primary); }
.ngm-dp .ngm-dp-dash__nav a.is-active { color: var(--ngm-dp-primary); border-bottom-color: var(--ngm-dp-accent); }
.ngm-dp-dash__stats { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); margin-bottom: 20px; }
.ngm-dp .ngm-dp-dash__stat { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border-left: 4px solid var(--ngm-dp-primary); text-decoration: none; color: var(--ngm-dp-text); }
.ngm-dp .ngm-dp-dash__stat strong { font-size: 30px; line-height: 1; color: var(--ngm-dp-primary); }
.ngm-dp .ngm-dp-dash__stat span { font-size: 13px; color: var(--ngm-dp-muted); }
.ngm-dp .ngm-dp-dash__stat.is-warn { border-left-color: #d97706; }
.ngm-dp .ngm-dp-dash__stat.is-warn strong { color: #b45309; }
.ngm-dp .ngm-dp-dash__stat.is-ok { border-left-color: #16a34a; }
.ngm-dp a.ngm-dp-dash__stat:hover { box-shadow: 0 6px 18px rgba(16,24,40,.1); }
.ngm-dp-dash__cols { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.ngm-dp-dash__panel { padding: 20px 22px; }
.ngm-dp .ngm-dp-dash__panel h3 { margin: 0 0 10px; font-size: 17px; color: var(--ngm-dp-primary); }
.ngm-dp .ngm-dp-dash__panel h3 + .ngm-dp-actions { margin-top: 6px; }
.ngm-dp .ngm-dp-dash__panel .ngm-dp-actions + h3 { margin-top: 22px; }
.ngm-dp-dash__todo { margin: 0; padding-left: 1.2em; }
.ngm-dp-dash__todo li { margin: 6px 0; }
.ngm-dp-dash__ok { color: #15803d; font-weight: 600; }
.ngm-dp-warn { color: #b45309; }
.ngm-dp-hint { color: var(--ngm-dp-muted); font-size: 14px; margin: 6px 0 12px; }
.ngm-dp-dash__acts { white-space: nowrap; font-size: 14px; }
.ngm-dp-dash__ayform { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.ngm-dp-dash__ayform select { padding: 6px 10px; border: 1px solid var(--ngm-dp-border); border-radius: 8px; }
.ngm-dp-dash--login { max-width: 460px; }
.ngm-dp-dash__login { padding: 26px; }
.ngm-dp-dash__login input[type=text], .ngm-dp-dash__login input[type=password] { width: 100%; padding: 10px 12px; border: 1px solid var(--ngm-dp-border); border-radius: 8px; }
.ngm-dp-chip--publish { background: #e8f6ee; color: #146c43; border-color: #bfe5cf; }
.ngm-dp-chip--pending { background: #fff4e0; color: #7a4b00; border-color: #f0c36d; }
.ngm-dp-chip--draft { background: #fdecec; color: #9f1d1d; border-color: #f3b4b4; }
.ngm-dp-meter { display: inline-block; width: 70px; height: 8px; border-radius: 99px; background: var(--ngm-dp-soft); overflow: hidden; vertical-align: middle; border: 1px solid var(--ngm-dp-border); }
.ngm-dp-meter span { display: block; height: 100%; width: var(--p); background: #16a34a; }
.ngm-dp-meter.is-mid span { background: #d97706; }
.ngm-dp-meter.is-low span { background: #dc2626; }
.ngm-dp-alert { padding: 12px 16px; border-radius: 10px; margin: 0 0 16px; background: #eef4fb; border: 1px solid #c9dcf2; color: #123a63; }
.ngm-dp-alert.is-ok { background: #ecf8f0; border-color: #bfe5cf; color: #14532d; }
.ngm-dp-alert.is-warn { background: #fff7e8; border-color: #f0c36d; color: #6b4000; }

.ngm-dp-form { background: var(--ngm-dp-card); border: 1px solid var(--ngm-dp-border); border-radius: var(--ngm-dp-radius); padding: 24px; }
.ngm-dp-form__grid { display: grid; gap: 14px 18px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.ngm-dp-form__grid > label, .ngm-dp-form__grid > div, .ngm-dp-form__grid > fieldset { display: flex; flex-direction: column; gap: 6px; margin: 0; min-width: 0; }
.ngm-dp-form__grid .is-wide { grid-column: 1 / -1; }
.ngm-dp-form__grid label > span, .ngm-dp-form__label, .ngm-dp-form__check legend { font-weight: 600; font-size: 14px; }
.ngm-dp .ngm-dp-form input[type=text], .ngm-dp .ngm-dp-form input[type=date], .ngm-dp .ngm-dp-form input[type=time], .ngm-dp .ngm-dp-form input[type=number], .ngm-dp .ngm-dp-form select, .ngm-dp .ngm-dp-form textarea {
	width: 100%; padding: 10px 12px; border: 1px solid var(--ngm-dp-border); border-radius: 8px; font: inherit; background: #fff; color: var(--ngm-dp-text);
}
.ngm-dp .ngm-dp-form input:focus, .ngm-dp .ngm-dp-form select:focus, .ngm-dp .ngm-dp-form textarea:focus { outline: none; border-color: var(--ngm-dp-primary); box-shadow: 0 0 0 3px rgba(11,61,110,.15); }
.ngm-dp-form__check { border: 0; padding: 0; flex-direction: row !important; flex-wrap: wrap; align-items: center; gap: 14px !important; }
.ngm-dp-form__check legend { width: 100%; margin-bottom: 4px; }
.ngm-dp-form__check label { display: inline-flex; gap: 6px; align-items: center; }
.ngm-dp-form small { color: var(--ngm-dp-muted); }
.ngm-dp-form__current { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--ngm-dp-muted); }
.ngm-dp-form__current img { width: 64px; height: 64px; object-fit: cover; border-radius: 6px; }
.ngm-dp-form__photos { display: flex; flex-wrap: wrap; gap: 10px; }
.ngm-dp-form__photos label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; }
.ngm-dp-form__photos img { width: 92px; height: 92px; object-fit: cover; border-radius: 8px; }
.ngm-dp button.ngm-dp-btn { cursor: pointer; font: inherit; font-size: 14px; font-weight: 600; }
.ngm-dp-event-report { margin-top: 32px; }
.ngm-dp-event-report .ngm-dp-hero__stats li { background: var(--ngm-dp-soft); border-color: var(--ngm-dp-border); color: var(--ngm-dp-text); backdrop-filter: none; }
.ngm-dp-table { background: var(--ngm-dp-card); }
.ngm-dp button.ngm-dp-btn, .ngm-dp .ngm-dp-form button.ngm-dp-btn {
	background: var(--ngm-dp-primary) !important; color: #fff !important; border: 1px solid var(--ngm-dp-primary) !important;
	border-radius: 999px !important; padding: 9px 18px !important; text-transform: none !important; letter-spacing: normal !important; box-shadow: none !important; line-height: 1.3 !important; min-height: 0 !important;
}
.ngm-dp button.ngm-dp-btn:hover { filter: brightness(1.15); }

/* ---------- 1.4: registration, tickets, check-in, feedback ---------- */
.ngm-dp-qr { width: var(--qr, 180px); height: var(--qr, 180px); margin: 0 auto; background: #fff; }
.ngm-dp-qr svg { width: 100%; height: 100%; display: block; }
.ngm-dp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.ngm-dp-register { margin: 0 0 28px; }
.ngm-dp-register .ngm-dp-section { background: var(--ngm-dp-card); border: 2px solid var(--ngm-dp-accent); border-radius: var(--ngm-dp-radius); padding: 24px; }
.ngm-dp-form--flat { border: 0; padding: 0; background: transparent; }
.ngm-dp-form__reg { border: 1px dashed var(--ngm-dp-border); border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; margin: 0; }
.ngm-dp-form__reg legend { font-weight: 700; padding: 0 6px; color: var(--ngm-dp-primary); }
.ngm-dp-form__inline { display: flex !important; flex-direction: row !important; align-items: center; gap: 8px; font-size: 14px; }
.ngm-dp-inline { display: inline; margin: 0; }
.ngm-dp .ngm-dp-btn--danger { color: #b91c1c !important; border-color: #fca5a5 !important; background: #fff !important; }
.ngm-dp-dash__stat small { font-size: 15px; color: var(--ngm-dp-muted); font-weight: 600; }
.ngm-dp-dash__search { margin: 18px 0 10px; }
.ngm-dp-dash__panel.ngm-dp-details { padding: 14px 18px; margin: 0 0 14px; }
.ngm-dp-dash__panel.ngm-dp-details summary { font-size: 15px; }
.ngm-dp-dash__sign { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ngm-dp-dash__sign small { width: 100%; color: var(--ngm-dp-muted); }
.ngm-dp-dash__signimg img { max-height: 56px; width: auto; background: #fff; border: 1px solid var(--ngm-dp-border); border-radius: 6px; padding: 4px; }

.ngm-dp-standalone { margin: 0; background: #eef2f7; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", "Noto Sans Tamil", "Latha", sans-serif; color: #1f2937; min-height: 100vh; }
.ngm-dp-standalone__bar { background: var(--ngm-dp-primary, #0b3d6e); padding: 12px 18px; }
.ngm-dp-standalone__bar a { display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font-weight: 700; font-size: 16px; }
.ngm-dp-standalone__bar img { border-radius: 6px; background: #fff; }
.ngm-dp-standalone__main { max-width: 560px; margin: 24px auto; padding: 0 16px 40px; }
.ngm-dp-ticket, .ngm-dp-checkin, .ngm-dp-feedback { padding: 28px 24px; text-align: center; }
.ngm-dp-feedback { text-align: left; }
.ngm-dp .ngm-dp-ticket h1, .ngm-dp .ngm-dp-checkin h1, .ngm-dp-ticket__event { font-size: 24px; line-height: 1.25; margin: 4px 0 6px; color: var(--ngm-dp-primary); }
.ngm-dp-ticket__when { color: var(--ngm-dp-muted); margin: 0 0 16px; }
.ngm-dp-ticket__qr { padding: 14px; border: 1px solid var(--ngm-dp-border); border-radius: 14px; display: inline-block; background: #fff; }
.ngm-dp-ticket__name { font-size: 22px; font-weight: 700; margin: 14px 0 2px; }
.ngm-dp-ticket__code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 20px; letter-spacing: 3px; color: var(--ngm-dp-muted); margin: 0 0 10px; }
.ngm-dp-ticket__actions { justify-content: center; }
.ngm-dp-checkin__mark { width: 84px; height: 84px; margin: 0 auto 10px; border-radius: 50%; display: grid; place-items: center; font-size: 46px; font-weight: 700; color: #fff; background: #16a34a; }
.ngm-dp-checkin.is-again .ngm-dp-checkin__mark { background: #d97706; }
.ngm-dp-checkin.is-undo .ngm-dp-checkin__mark { background: #dc2626; }
.ngm-dp-checkin.is-ok { border-top: 6px solid #16a34a; }
.ngm-dp-checkin.is-again { border-top: 6px solid #d97706; }
.ngm-dp-checkin.is-undo { border-top: 6px solid #dc2626; }
.ngm-dp-checkin__status { font-size: 18px; font-weight: 600; }
.ngm-dp-checkin__count { font-size: 15px; background: var(--ngm-dp-soft); border-radius: 999px; display: inline-block; padding: 6px 14px; }
.ngm-dp-checkin form { margin-top: 12px; }
.ngm-dp-verify { text-align: left; margin: 16px 0 0; display: grid; gap: 8px; }
.ngm-dp-verify div { display: grid; grid-template-columns: 40% 1fr; gap: 10px; border-bottom: 1px solid var(--ngm-dp-border); padding-bottom: 8px; }
.ngm-dp-verify dt { color: var(--ngm-dp-muted); font-size: 14px; }
.ngm-dp-verify dd { margin: 0; font-weight: 600; }
.ngm-dp-rate { border: 0; margin: 0 0 16px; padding: 0; }
.ngm-dp-rate legend { font-weight: 600; margin-bottom: 6px; }
.ngm-dp-rate__opts { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; }
.ngm-dp-rate__opts input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ngm-dp-rate__opts label { font-size: 34px; line-height: 1; color: #d1d5db; cursor: pointer; transition: color .1s; }
.ngm-dp-rate__opts input:checked ~ label, .ngm-dp-rate__opts label:hover, .ngm-dp-rate__opts label:hover ~ label { color: #f59e0b; }
.ngm-dp-rate__opts input:focus-visible + label { outline: 2px solid var(--ngm-dp-primary); border-radius: 4px; }
.ngm-dp-rate__comment { display: flex; flex-direction: column; gap: 6px; font-weight: 600; }
.ngm-dp-rate__comment textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--ngm-dp-border); border-radius: 8px; font: inherit; }
.ngm-dp-fbsum__bars { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.ngm-dp-fbsum__bars li { display: grid; grid-template-columns: minmax(0, 1fr) 140px 36px; gap: 10px; align-items: center; font-size: 14px; margin: 0; }
.ngm-dp-fbsum__bar { height: 10px; border-radius: 99px; background: var(--ngm-dp-soft); overflow: hidden; border: 1px solid var(--ngm-dp-border); }
.ngm-dp-fbsum__bar span { display: block; height: 100%; background: #f59e0b; }
.ngm-dp-fbsum__comments { margin: 8px 0 0; padding-left: 1.2em; font-size: 14px; }
.ngm-dp-fbsum__comments li { margin: 6px 0; }
@media (max-width: 600px) { .ngm-dp-fbsum__bars li { grid-template-columns: 1fr 70px 30px; } }
.ngm-dp button.ngm-dp-btn.ngm-dp-btn--ghost, .ngm-dp .ngm-dp-form button.ngm-dp-btn.ngm-dp-btn--ghost { background: #fff !important; color: var(--ngm-dp-primary) !important; }
.ngm-dp button.ngm-dp-btn.ngm-dp-btn--danger { color: #b91c1c !important; border-color: #fca5a5 !important; background: #fff !important; }

/* ---------- 1.5: Department Stats ---------- */
.ngm-dp-stats { display: grid; grid-template-columns: repeat(var(--ngm-dp-cols, 4), minmax(0, 1fr)); gap: var(--ngm-dp-gap); }
.ngm-dp-stats__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; padding: 24px 16px; background: var(--ngm-dp-card); border: 1px solid var(--ngm-dp-border); border-radius: var(--ngm-dp-radius); }
.ngm-dp-stats__icon { display: inline-flex; align-items: center; justify-content: center; width: 2.2em; height: 2.2em; font-size: 26px; border-radius: 50%; background: var(--ngm-dp-soft); color: var(--ngm-dp-primary); }
.ngm-dp-stats__icon svg { width: 1em; height: 1em; fill: currentColor; }
.ngm-dp-stats__text { display: flex; flex-direction: column; align-items: inherit; }
.ngm-dp-stats__num { font-size: 40px; font-weight: 800; line-height: 1.1; color: var(--ngm-dp-primary); font-variant-numeric: tabular-nums; }
.ngm-dp-stats__suffix { font-size: 28px; font-weight: 800; color: var(--ngm-dp-primary); margin-left: 2px; }
.ngm-dp-stats__val { white-space: nowrap; }
.ngm-dp-stats__label { margin-top: 4px; font-size: 14px; font-weight: 600; color: var(--ngm-dp-muted); text-transform: uppercase; letter-spacing: .05em; }
.ngm-dp-stats--inline .ngm-dp-stats__item { flex-direction: row; justify-content: flex-start; text-align: left; }
.ngm-dp-stats--inline .ngm-dp-stats__text { align-items: flex-start; }
.ngm-dp-stats--minimal .ngm-dp-stats__item { background: transparent; border: 0; border-radius: 0; }
.ngm-dp-stats--minimal .ngm-dp-stats__item + .ngm-dp-stats__item { border-left: 1px solid var(--ngm-dp-border); }
@container (max-width: 640px) {
	.ngm-dp-stats { grid-template-columns: repeat(min(var(--ngm-dp-cols, 4), 2), minmax(0, 1fr)); }
	.ngm-dp-stats__num { font-size: 30px; }
	.ngm-dp-stats--minimal .ngm-dp-stats__item { border-left: 0 !important; }
}

/* ---------- 1.5: Certificate verification box ---------- */
.ngm-dp-verifybox__card { padding: 24px !important; }
.ngm-dp-verifybox__title { margin: 0 0 6px !important; }
.ngm-dp-verifybox__text { margin: 0 0 14px; color: var(--ngm-dp-muted); }
.ngm-dp-verifybox__form { display: flex; gap: 8px; }
.ngm-dp-verifybox__form input[type="text"] { flex: 1; min-width: 0; height: 44px !important; padding: 8px 12px !important; border: 1px solid var(--ngm-dp-border) !important; border-radius: 8px !important; font: inherit; letter-spacing: .04em; text-transform: uppercase; }
.ngm-dp-verifybox__form .ngm-dp-btn { height: 44px; }
.ngm-dp-verifybox__result { margin-top: 16px; padding: 14px 16px; border-radius: 10px; }
.ngm-dp-verifybox__result.is-ok { background: #e9f7ef; border: 1px solid #b7e4c7; }
.ngm-dp-verifybox__result.is-ok > strong { color: #146c43; }
.ngm-dp-verifybox__result.is-bad { background: #fdecec; border: 1px solid #f5c2c2; }
.ngm-dp-verifybox__result.is-bad > strong { color: #b42318; }
.ngm-dp-verifybox__result p { margin: 6px 0 0; }
.ngm-dp-verifybox__result dl { margin: 10px 0; display: grid; gap: 6px; }
.ngm-dp-verifybox__result dl > div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 8px; }
.ngm-dp-verifybox__result dt { color: var(--ngm-dp-muted); font-size: 14px; }
.ngm-dp-verifybox__result dd { margin: 0; font-weight: 600; }
