:root {
	--admin-ink: #14213d;
	--admin-ink-soft: #526079;
	--admin-paper: #f6f3ed;
	--admin-card: #fffdfa;
	--admin-line: #e8e2d8;
	--admin-coral: #e76f51;
	--admin-coral-dark: #c95136;
	--admin-teal: #197278;
	--admin-gold: #e9c46a;
	--admin-shadow: 0 18px 45px rgba(20, 33, 61, 0.08);
	--admin-shadow-small: 0 8px 22px rgba(20, 33, 61, 0.07);
}

body {
	font-family: "Avenir Next", "Trebuchet MS", sans-serif;
	color: var(--admin-ink);
	background: var(--admin-paper);
}

.admin-layout {
	grid-template-columns: 248px minmax(0, 1fr);
	background:
		radial-gradient(circle at 90% 0%, rgba(233, 196, 106, 0.18), transparent 27rem),
		var(--admin-paper);
}

@media (min-width: 769px) {
	.admin-layout {
		grid-template-columns: 272px minmax(0, 1fr);
		gap: 16px;
		padding: 16px;
	}

	.sidebar {
		align-self: start;
		top: 16px;
		height: calc(100vh - 32px);
		border: 1px solid rgba(255, 253, 250, 0.12);
		border-radius: 18px;
	}

	.main-content {
		min-width: 0;
		height: calc(100vh - 32px);
		min-height: calc(100vh - 32px);
		overflow: hidden;
		border: 1px solid var(--admin-line);
		border-radius: 18px;
		background: rgba(255, 253, 250, 0.55);
		box-shadow: var(--admin-shadow);
	}

	.top-bar { border-radius: 17px 17px 0 0; }
	.content { min-height: 0; }
}

.sidebar {
	background: var(--admin-ink);
	padding: 26px 16px;
	box-shadow: 10px 0 35px rgba(20, 33, 61, 0.12);
}

.sidebar-header {
	margin: 0 8px 24px;
	padding: 0 0 24px;
	border-bottom: 1px solid rgba(255, 253, 250, 0.14);
}

.sidebar-logo {
	color: #fffdfa;
	font-size: 0;
	letter-spacing: -0.02em;
	background: none;
	-webkit-text-fill-color: initial;
}

.sidebar-logo::before {
	content: "NS";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	margin-right: 9px;
	border: 1px solid rgba(255, 253, 250, 0.35);
	border-radius: 9px;
	color: #fffdfa;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	vertical-align: middle;
}

.sidebar-logo::after {
	content: "ADMIN OFFICE";
	color: #fffdfa;
	font-size: 1.05rem;
	font-weight: 750;
	letter-spacing: -0.02em;
	vertical-align: middle;
}

.sidebar-subtitle {
	color: #b8c1d2;
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sidebar-nav { padding: 0; }

.sidebar-nav-heading {
	margin: 17px 0 7px;
	padding: 12px 10px 0;
	border-top: 1px solid rgba(255, 253, 250, 0.12);
	color: #9eabc0;
	font-size: 0.64rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	line-height: 1.3;
	list-style: none;
	text-transform: uppercase;
}

.sidebar-nav-group-toggle {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-align: left;
	text-transform: inherit;
	cursor: pointer;
}

.sidebar-nav-group-toggle::after {
	content: "⌄";
	font-size: 0.9rem;
	transition: transform 0.18s ease;
}

.sidebar-nav-group-toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
.sidebar-nav-group-toggle:focus-visible { outline: 2px solid var(--admin-gold); outline-offset: 3px; }
.sidebar-nav-item[hidden] { display: none !important; }

.sidebar-nav-heading:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.sidebar .sidebar-nav-item { margin-bottom: 4px; }

.sidebar .sidebar-nav-link {
	min-height: 42px;
	padding: 9px 11px;
	gap: 10px;
	font-size: 0.84rem;
}

.sidebar-submenu {
	display: grid;
	gap: 7px;
	margin: 5px 0 8px 34px;
	padding: 9px 0 9px 11px;
	border-left: 1px solid rgba(255, 253, 250, 0.22);
}

.sidebar-submenu[hidden] { display: none !important; }

.sidebar .sidebar-submenu-action {
	display: flex;
	width: 100%;
	min-height: 36px;
	justify-content: flex-start;
	padding: 8px 10px;
	border: 1px solid rgba(255, 253, 250, 0.16);
	border-radius: 8px;
	background: rgba(255, 253, 250, 0.08);
	color: #fffdfa;
	font: inherit;
	font-size: 0.76rem;
	text-align: left;
	cursor: pointer;
}

.sidebar .sidebar-submenu-link {
	display: flex;
	width: 100%;
	min-height: 36px;
	align-items: center;
	padding: 8px 10px;
	border: 1px solid rgba(255, 253, 250, 0.12);
	border-radius: 8px;
	background: rgba(255, 253, 250, 0.06);
	color: #e8edf5;
	font-size: 0.75rem;
	line-height: 1.35;
	text-decoration: none;
	transition: background 0.16s ease, border-color 0.16s ease;
}

.sidebar .sidebar-submenu-link:hover,
.sidebar .sidebar-submenu-link:focus-visible {
	border-color: rgba(255, 253, 250, 0.3);
	background: rgba(255, 253, 250, 0.15);
	color: #fffdfa;
}

.sidebar .sidebar-submenu-action:hover {
	background: rgba(255, 253, 250, 0.15);
}

.sidebar .sidebar-submenu-add {
	border-color: var(--admin-coral);
	background: var(--admin-coral);
	font-weight: 700;
}

.sidebar .sidebar-submenu-add:hover {
	background: var(--admin-coral-dark);
}

.sidebar-nav-item { margin-bottom: 4px; }

.sidebar-nav-link {
	min-height: 44px;
	padding: 10px 12px;
	border-radius: 10px;
	color: #dce3ee;
	font-size: 0.88rem;
	gap: 12px;
}

.sidebar-nav-link:hover {
	background: rgba(255, 253, 250, 0.08);
	color: #fffdfa;
	transform: none;
}

.sidebar-nav-link.active {
	color: #fffdfa;
	background: var(--admin-coral);
	box-shadow: 0 8px 18px rgba(231, 111, 81, 0.24);
}

.sidebar-nav-icon {
	width: 24px;
	font-size: 0.95rem;
	text-align: center;
	filter: grayscale(0.35) saturate(0.72);
}

.top-bar {
	min-height: 78px;
	padding: 16px 30px;
	gap: 18px;
	background: rgba(255, 253, 250, 0.92);
	border-bottom: 1px solid var(--admin-line);
	box-shadow: none;
	backdrop-filter: blur(14px);
}

.top-bar-left { gap: 14px; }

.top-bar-announcement {
	flex: 1 1 260px;
	min-width: 180px;
}

.top-bar-left h1 {
	color: var(--admin-ink);
	font-size: 1.45rem;
	letter-spacing: -0.04em;
}

.top-bar-left h1::after {
	content: " / School operations";
	color: var(--admin-coral);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.top-bar-right { gap: 12px; }

.auto-refresh-controls {
	background: #f0ece4 !important;
	border: 1px solid var(--admin-line) !important;
	border-radius: 999px !important;
}

.user-profile {
	padding: 6px 10px 6px 6px;
	background: transparent;
	border: 1px solid var(--admin-line);
	border-radius: 999px;
}

.user-avatar {
	width: 34px;
	height: 34px;
	background: var(--admin-teal);
	font-size: 0.95rem;
}

.content {
	padding: 30px;
}

.content::before {
	content: "TERM 01  •  2026 / 2027";
	display: block;
	margin: 0 0 18px 2px;
	color: var(--admin-teal);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.16em;
}

.dashboard-stats {
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 24px;
}

.stat-box {
	min-height: 138px;
	padding: 20px;
	border: 1px solid var(--admin-line);
	border-left: 0;
	border-radius: 14px;
	background: var(--admin-card);
	box-shadow: var(--admin-shadow-small);
	position: relative;
	overflow: hidden;
}

.stat-box::after {
	content: "";
	position: absolute;
	right: -25px;
	bottom: -35px;
	width: 110px;
	height: 110px;
	border: 18px solid rgba(231, 111, 81, 0.12);
	border-radius: 50%;
}

.stat-box.green { border-left: 0; }
.stat-box.yellow { border-left: 0; }
.stat-box.red { border-left: 0; }
.stat-icon { font-size: 1.8rem; }
.stat-content h3 { color: var(--admin-ink-soft); font-size: 0.68rem; letter-spacing: 0.12em; }
.stat-value { color: var(--admin-ink); font-size: 2rem; letter-spacing: -0.05em; }
.stat-change { color: var(--admin-teal); }

#dashboardSection {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}

#dashboardSection .dashboard-actions {
	margin-top: 0 !important;
	margin-bottom: 26px;
	padding: 18px 20px;
	border: 1px solid var(--admin-line);
	border-radius: 14px;
	background: var(--admin-card);
	box-shadow: var(--admin-shadow-small);
}

#dashboardSection .attendance-details,
#dashboardSection > div[id*="Health"],
#dashboardSection > div[id*="Activity"] {
	padding: 24px;
	border: 1px solid var(--admin-line);
	border-radius: 16px;
	background: rgba(255, 253, 250, 0.9);
	box-shadow: var(--admin-shadow);
}

#dashboardSection .attendance-details h3 {
	margin-bottom: 18px !important;
	color: var(--admin-ink) !important;
	font-size: 1.05rem;
	letter-spacing: -0.02em;
}

.attendance-grid { gap: 12px; }

.attendance-card,
.health-card,
.activity-card {
	border: 1px solid var(--admin-line) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	background: #fffdfa !important;
}

.admin-section {
	padding: 26px;
	border: 1px solid var(--admin-line);
	border-radius: 16px;
	background: rgba(255, 253, 250, 0.9);
	box-shadow: var(--admin-shadow);
}

.section-header {
	margin-bottom: 22px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--admin-line);
}

.section-header h2 { color: var(--admin-ink); font-size: 1.35rem; letter-spacing: -0.035em; }

.section-header { flex-wrap: wrap; gap: 14px; }

.section-actions { flex-wrap: wrap; align-items: center; }

.section-actions input[type="text"] { max-width: 100%; }

.student-management-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin: -4px 0 22px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--admin-line);
}

.student-management-title { min-width: 240px; }
.student-management-kicker {
	display: block;
	margin-bottom: 8px;
	color: var(--admin-coral-dark);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.student-management-title h2 { margin: 0; color: var(--admin-ink); font-size: 1.5rem; letter-spacing: -0.04em; }
.student-management-title p { max-width: 520px; margin: 8px 0 0; color: var(--admin-ink-soft); font-size: 0.88rem; line-height: 1.5; }
.student-management-actions { display: flex; align-items: flex-end; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.student-filter-control, .student-search-control { position: relative; display: grid; gap: 6px; }
.student-filter-control > span { color: var(--admin-ink-soft); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.student-filter-control select, .student-search-control input { height: 42px; box-sizing: border-box; }
.student-filter-control select { min-width: 160px; padding: 0 34px 0 12px; }
.student-search-control { min-width: min(300px, 100%); }
.student-search-control input { width: 100%; padding: 0 14px 0 38px; }
.student-search-icon { position: absolute; left: 13px; bottom: 9px; color: var(--admin-ink-soft); font-size: 1.2rem; line-height: 1; pointer-events: none; }
.student-table-shell { overflow: hidden; border: 1px solid var(--admin-line); border-radius: 14px; background: var(--admin-card); box-shadow: var(--admin-shadow-small); }
.student-table-caption { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; border-bottom: 1px solid var(--admin-line); background: #fffaf4; }
.student-table-caption-label { color: var(--admin-ink); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.student-table-caption-note { color: var(--admin-teal); font-size: 0.75rem; font-weight: 700; }
.student-table-responsive { max-height: min(62vh, 680px); border: 0; border-radius: 0; box-shadow: none; }
.student-management-table { min-width: 980px !important; border-collapse: separate; border-spacing: 0; }
.student-management-table th { background: var(--admin-ink) !important; color: #fffaf4; }
.student-management-table th:first-child, .student-management-table td:first-child { padding-left: 20px; }
.student-management-table td { vertical-align: middle; color: var(--admin-ink); }
.student-management-table tbody tr { transition: background-color 0.16s ease; }
.student-management-table tbody tr:nth-child(even) { background: rgba(246, 240, 232, 0.42); }
.student-management-table tbody tr:hover { background: #fff0e7 !important; }
.student-management-table .student-avatar-cell { width: 64px; }
.student-pic-thumbnail, .student-avatar-fallback { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; object-fit: cover; }
.student-pic-thumbnail { border: 2px solid #fff; box-shadow: 0 0 0 1px #d8d0c5; cursor: pointer; }
.student-avatar-fallback { background: #e7f1ed; color: var(--admin-teal); font-size: 0.78rem; font-weight: 850; letter-spacing: 0.04em; }
.student-identity-cell, .student-guardian-cell { min-width: 180px; }
.student-identity-cell strong, .student-guardian-cell strong { display: block; color: var(--admin-ink); font-size: 0.85rem; }
.student-identity-cell span, .student-guardian-cell span { display: block; margin-top: 4px; color: var(--admin-ink-soft); font-size: 0.7rem; }
.student-identity-cell span { color: var(--admin-teal); font-weight: 800; letter-spacing: 0.04em; }
.student-class-label { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border: 1px solid #d7e8e2; border-radius: 999px; background: #f1f8f5; color: #236b5b; font-size: 0.74rem; font-weight: 800; white-space: nowrap; }
.student-contact-cell { color: var(--admin-ink-soft) !important; font-size: 0.8rem; white-space: nowrap; }
.student-management-table .action-buttons { display: flex; justify-content: flex-end; gap: 6px; min-width: 220px; }
.student-management-table .action-btn { min-height: 32px; padding: 6px 9px; border: 1px solid var(--admin-line); border-radius: 7px; background: #fffdfa; color: var(--admin-ink-soft); font-size: 0.7rem; font-weight: 750; cursor: pointer; transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease; }
.student-management-table .action-btn:hover { border-color: var(--admin-teal); background: #eff8f5; color: var(--admin-teal); }
.student-management-table .action-btn-delete:hover { border-color: #d77969; background: #fff0ec; color: #b44b3a; }
.student-management-table .badge-status { border: 1px solid #b8e3d0; border-radius: 999px; background: #e7f6ee; color: #236b4d; font-size: 0.7rem; letter-spacing: 0.04em; }
.student-empty-state { padding: 42px 20px !important; color: var(--admin-ink-soft) !important; text-align: center; }
.student-pagination { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; margin-top: 0; }
.student-pagination .btn { min-width: 36px; min-height: 34px; padding: 6px 10px; }
.student-pagination .btn.active { border-color: var(--admin-coral); background: var(--admin-coral); color: #fff; }
.student-pagination span { color: var(--admin-ink-soft); font-size: 0.78rem; }
.class-enrollment-metrics { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 8px; align-items: center; margin: 14px 0 8px; padding: 12px 10px; border-top: 1px solid var(--admin-line); border-bottom: 1px solid var(--admin-line); }
.class-enrollment-metrics > div { display: grid; gap: 3px; min-width: 0; }
.class-enrollment-metrics > div + div { padding-left: 10px; border-left: 1px solid var(--admin-line); }
.class-enrollment-metrics span { color: var(--admin-ink-soft); font-size: 0.65rem; font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase; }
.class-enrollment-metrics strong { color: var(--admin-ink); font-size: 1rem; font-variant-numeric: tabular-nums; }
.class-enrollment-total strong { color: var(--admin-teal); font-size: 1.3rem; }
.class-gender-unrecorded { margin: 0 0 9px !important; color: #8b6630; font-size: 0.72rem; }
.class-gender-unrecorded p { margin: 0 0 4px; font-weight: 700; }
.class-gender-unrecorded ul { margin: 0; padding-left: 18px; color: #694b1e; }
.class-gender-unrecorded li + li { margin-top: 2px; }
.teacher-management-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: -4px 0 22px; padding-bottom: 22px; border-bottom: 1px solid var(--admin-line); }
.teacher-search-control { min-width: min(320px, 100%); }
.teacher-table-shell { margin-top: 0; }
.teacher-management-table { min-width: 1100px !important; }
.teacher-identity-cell { display: flex; align-items: center; gap: 12px; min-width: 220px; }
.teacher-identity-cell > span:last-child { display: block; }
.teacher-identity-cell strong { display: block; color: var(--admin-ink); font-size: 0.85rem; }
.teacher-identity-cell small { display: block; margin-top: 4px; color: var(--admin-ink-soft); font-size: 0.7rem; }
.teacher-avatar-fallback { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 12px; background: #e8eef7; color: #3e5f8c; font-size: 0.78rem; font-weight: 850; letter-spacing: 0.04em; }
.teacher-subject-label { display: inline-flex; max-width: 180px; padding: 6px 10px; border: 1px solid #e2d8c8; border-radius: 7px; background: #fff8ed; color: #88653a; font-size: 0.74rem; font-weight: 750; }
.teacher-contact-cell { color: var(--admin-ink-soft) !important; font-size: 0.79rem; white-space: nowrap; }
.teacher-management-table .action-buttons { min-width: 290px; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.table-responsive {
	width: 100%;
	max-width: 100%;
	max-height: min(68vh, 760px);
	overflow: auto;
	border: 1px solid var(--admin-line);
	border-radius: 12px;
	background: var(--admin-card);
	box-shadow: var(--admin-shadow-small);
}

.table-responsive table { min-width: 760px; }
.table-responsive thead { position: sticky; top: 0; z-index: 2; background: var(--admin-ink); }
.table-responsive th { padding: 13px 16px; font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; }
.table-responsive td { padding: 14px 16px; border-bottom: 1px solid #eee9e1; }
.table-responsive tbody tr:hover { background: #fff5ef; }

@media (max-width: 768px) {
	.main-content {
		min-height: 100vh;
		overflow: visible;
		border: 0;
		border-radius: 0;
		box-shadow: none;
	}

	.sidebar-nav-heading { margin-top: 13px; }
	.section-header { align-items: stretch; }
	.section-actions { width: 100%; }
	.table-responsive { max-height: 65vh; }
	.table-responsive table { min-width: 700px; }
	.student-management-header { align-items: stretch; flex-direction: column; gap: 18px; }
	.teacher-management-header { align-items: stretch; flex-direction: column; gap: 18px; }
	.student-management-actions { align-items: stretch; justify-content: stretch; }
	.student-filter-control, .student-search-control { flex: 1 1 180px; }
	.student-search-control { min-width: 220px; }
	.teacher-search-control { min-width: 220px; width: 100%; }
}

button, .btn { border-radius: 9px; }
.btn-primary, button.primary { background: var(--admin-coral); box-shadow: 0 6px 14px rgba(231, 111, 81, 0.2); }
.btn-primary:hover, button.primary:hover { background: var(--admin-coral-dark); }
.btn-secondary, button.secondary { background: var(--admin-teal); }
.btn-outline { color: var(--admin-teal); border-color: var(--admin-teal); }
.btn-ghost { border-color: var(--admin-line); color: var(--admin-ink); background: transparent; }
.btn-ghost:hover { background: #f0ece4; border-color: #d6cec1; }

input, select, textarea {
	border-color: var(--admin-line) !important;
	border-radius: 9px !important;
	background: #fffdfa !important;
	color: var(--admin-ink) !important;
}

input:focus, select:focus, textarea:focus {
	border-color: var(--admin-coral) !important;
	box-shadow: 0 0 0 3px rgba(231, 111, 81, 0.13) !important;
	outline: none;
}

.modal-content, .card, .tile {
	border: 1px solid var(--admin-line);
	border-radius: 14px;
	box-shadow: var(--admin-shadow);
}

@media (max-width: 1100px) {
	.dashboard-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.top-bar { flex-wrap: wrap; }
	.top-bar-announcement { flex: 1 0 100%; order: 3; }
	.top-bar-right { order: 2; }
	.top-bar-left { order: 1; }
}

@media (max-width: 768px) {
	.admin-layout { grid-template-columns: 1fr; }
	.top-bar { min-height: 68px; padding: 12px 16px; }
	.top-bar-announcement { min-width: 0; }
	.top-bar-left h1 { font-size: 1.15rem; }
	.top-bar-left h1::after { display: none; }
	.content { padding: 20px 14px; }
	.content::before { margin-bottom: 14px; }
	.dashboard-stats { grid-template-columns: 1fr 1fr; gap: 10px; }
	.stat-box { min-height: 120px; padding: 14px; gap: 10px; }
	.stat-icon { font-size: 1.35rem; }
	.stat-value { font-size: 1.55rem; }
	.admin-section { padding: 18px 14px; border-radius: 12px; }
	.top-bar-right .user-profile { display: none !important; }
}

@media (max-width: 460px) {
	.dashboard-stats { grid-template-columns: 1fr; }
	.auto-refresh-controls { display: none !important; }
}

/* Staff, student, and administrator record dialogs */
#teacherModal { --record-accent: #197278; --record-accent-soft: #e7f4f3; }
#studentModal { --record-accent: #32816e; --record-accent-soft: #eaf5ef; }
#studentCredentialsModal { --record-accent: #32816e; --record-accent-soft: #eaf5ef; }
#studentExportModal { --record-accent: #32816e; --record-accent-soft: #eaf5ef; }
#adminModal { --record-accent: #5965a8; --record-accent-soft: #eef0fb; }

#teacherModal,
#studentModal,
#adminModal {
	z-index: 1400;
	padding: 20px;
	background: rgba(12, 21, 40, 0.62);
	backdrop-filter: blur(7px);
}

#studentCredentialsModal {
	z-index: 1401;
	padding: 20px;
	background: rgba(12, 21, 40, 0.62);
	backdrop-filter: blur(7px);
}

#studentExportModal {
	z-index: 1401;
	padding: 20px;
	background: rgba(12, 21, 40, 0.62);
	backdrop-filter: blur(7px);
}

body:has(#teacherModal.show),
body:has(#studentModal.show),
body:has(#studentCredentialsModal.show),
body:has(#studentExportModal.show),
body:has(#adminModal.show) { overflow: hidden; }

#teacherModal .record-modal,
#studentModal .record-modal,
#studentCredentialsModal .record-modal,
#studentExportModal .record-modal,
#adminModal .record-modal {
	display: flex;
	width: min(96vw, 980px);
	max-width: 980px;
	max-height: min(92vh, 980px);
	flex-direction: column;
	padding: 0;
	overflow: hidden;
	border: 1px solid rgba(255, 253, 250, 0.82);
	border-radius: 20px;
	background: #fffdfa;
	box-shadow: 0 28px 90px rgba(9, 18, 35, 0.32);
}

#studentModal .record-modal { width: min(94vw, 900px); }
#studentCredentialsModal .record-modal { width: min(94vw, 560px); }
#studentExportModal .record-modal { width: min(94vw, 520px); }
#adminModal .record-modal { width: min(94vw, 680px); }

#studentModal .record-modal-header {
	background: linear-gradient(118deg, #17243d 0%, var(--record-accent) 100%);
	color: #fffdfa;
}

#studentModal .record-modal-heading h3 { color: #fffdfa; }
#studentModal .record-modal-heading p { color: rgba(255, 255, 255, 0.82); }
#studentModal .record-modal-kicker { color: rgba(255, 255, 255, 0.76); }

.student-credential-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 12px;
	padding: 16px;
	border: 1px solid #dce8e4;
	border-radius: 12px;
	background: #fff;
}

.student-credential-row > div { display: grid; gap: 6px; }
.student-credential-label { color: #526875; font-size: 0.76rem; font-weight: 700; }
.student-credential-row code {
	color: #173b36;
	font-size: 1.05rem;
	font-weight: 750;
	letter-spacing: 0.04em;
}
.student-credentials-note {
	margin: 18px 0 0;
	color: #64748b;
	font-size: 0.82rem;
	line-height: 1.5;
}

.record-modal .record-modal-header {
	flex: 0 0 auto;
	align-items: flex-start;
	gap: 18px;
	margin: 0;
	padding: 24px 28px;
	border: 0;
	background: linear-gradient(118deg, #17243d 0%, var(--record-accent) 100%);
	color: #fffdfa;
}

.record-modal-heading {
	display: flex;
	min-width: 0;
	align-items: center;
	gap: 16px;
}

.record-modal-icon {
	display: grid;
	width: 54px;
	height: 54px;
	flex: 0 0 54px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.14);
	font-size: 1.7rem;
}

.record-modal-kicker {
	display: block;
	margin-bottom: 5px;
	color: rgba(255, 255, 255, 0.76);
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.16em;
}

.record-modal .record-modal-heading h3 {
	margin: 0;
	color: #fffdfa;
	font-size: 1.42rem;
	font-weight: 750;
	letter-spacing: -0.035em;
}

.record-modal .record-modal-heading p {
	margin: 6px 0 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.83rem;
	line-height: 1.45;
}

.record-modal .modal-close {
	display: grid;
	width: 36px;
	height: 36px;
	flex: 0 0 36px;
	place-items: center;
	margin: 0;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	font-size: 1.5rem;
	line-height: 1;
}

.record-modal .modal-close:hover {
	background: rgba(255, 255, 255, 0.24);
	color: #fff;
}

.record-modal .modal-body {
	min-height: 0;
	margin: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 24px 28px 28px;
}

.record-modal .modal-body form {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.record-modal .form-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
}

.record-modal .form-group {
	min-width: 0;
	margin: 0;
}

.record-modal .form-group label {
	margin: 0 0 1px;
	color: #42506a;
	font-size: 0.76rem;
	font-weight: 750;
	letter-spacing: 0.015em;
}

.record-modal .form-group input:not([type="checkbox"]):not([type="radio"]),
.record-modal .form-group select,
.record-modal .form-group textarea {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid #dce2eb !important;
	border-radius: 10px !important;
	background: #fff !important;
	color: var(--admin-ink) !important;
	font-size: 0.88rem;
	transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.record-modal .form-group input:focus,
.record-modal .form-group select:focus,
.record-modal .form-group textarea:focus {
	border-color: var(--record-accent) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--record-accent) 15%, transparent) !important;
}

.record-modal .form-group input[type="file"] {
	min-height: auto;
	padding: 8px;
	background: var(--record-accent-soft) !important;
}

.record-modal h4 {
	margin: 2px 0 0;
	padding: 0 0 10px;
	border-bottom: 1px solid #e7eaf0;
	color: var(--record-accent);
	font-size: 0.91rem;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.record-modal .modal-footer {
	position: static;
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin: 4px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid #e7eaf0;
	background: #fffdfa;
}

.record-modal .modal-footer .btn {
	min-height: 42px;
	padding: 10px 17px;
	font-weight: 750;
}

.record-modal .modal-footer .btn-primary {
	border-color: var(--record-accent);
	background: var(--record-accent);
	box-shadow: 0 6px 14px color-mix(in srgb, var(--record-accent) 20%, transparent);
}

.record-modal .modal-footer .btn-primary:hover {
	filter: brightness(0.94);
}

#studentForm .student-additional-fields {
	margin-top: 4px;
	padding: 20px;
	border: 1px solid #dce9e1;
	border-radius: 14px;
	background: linear-gradient(145deg, #f6fbf7, #fffdfa);
}

#studentForm .student-additional-fields h4 { margin: 0 0 18px; }


#teacherForm > h4,
#teacherForm #classTeacherSection h4 {
	margin-top: 2px;
	padding: 12px 14px;
	border: 0;
	border-left: 3px solid var(--record-accent);
	border-radius: 0 9px 9px 0;
	background: var(--record-accent-soft);
}

@media (max-width: 640px) {
	#teacherModal,
	#studentModal,
	#studentCredentialsModal,
	#studentExportModal,
	#adminModal { padding: 10px; }

	#teacherModal .record-modal,
	#studentModal .record-modal,
	#studentCredentialsModal .record-modal,
	#studentExportModal .record-modal,
	#adminModal .record-modal {
		width: 100%;
		max-height: 94vh;
		border-radius: 16px;
	}

	.record-modal .record-modal-header { padding: 18px; gap: 10px; }
	.record-modal-heading { align-items: flex-start; gap: 11px; }
	.record-modal-icon { width: 42px; height: 42px; flex-basis: 42px; border-radius: 12px; font-size: 1.35rem; }
	.record-modal .record-modal-heading h3 { font-size: 1.16rem; }
	.record-modal .record-modal-heading p { font-size: 0.75rem; }
	.record-modal .modal-body { padding: 18px; }
	.record-modal .form-row { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.record-modal .modal-footer { flex-wrap: wrap; }
	.record-modal .modal-footer .btn { flex: 1 1 auto; }
	#studentForm .student-additional-fields { padding: 15px; }
	.student-credential-row { align-items: flex-start; }
}

/* Attendance menu: read-only daily register */
#attendanceSection .section-header { align-items: flex-end; }

.attendance-readonly-note {
	margin: 6px 0 0;
	color: var(--admin-ink-soft);
	font-size: 0.84rem;
}

#attendanceSection .section-actions {
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px;
}

#attendanceSection .section-actions label {
	min-width: 175px;
	gap: 6px;
	color: var(--admin-ink-soft);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

#attendanceSection .section-actions input,
#attendanceSection .section-actions select {
	min-height: 42px;
}

.attendance-readonly-summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 18px;
}

.attendance-count-card {
	display: flex;
	min-height: 118px;
	align-items: center;
	gap: 16px;
	padding: 20px;
	border: 1px solid var(--admin-line);
	border-radius: 14px;
	background: var(--admin-card);
	box-shadow: var(--admin-shadow-small);
}

.attendance-count-icon {
	display: grid;
	width: 48px;
	height: 48px;
	flex: 0 0 48px;
	place-items: center;
	border-radius: 14px;
	background: #e8f5ef;
	color: #2d7a5f;
	font-size: 1.35rem;
	font-weight: 900;
}

.attendance-absent-card .attendance-count-icon {
	background: #fff0ed;
	color: #c95136;
}

.attendance-count-label {
	display: block;
	margin-bottom: 5px;
	color: var(--admin-ink-soft);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.attendance-count-card strong,
.attendance-date-card strong {
	display: block;
	color: var(--admin-ink);
	font-size: 1.85rem;
	font-weight: 800;
	letter-spacing: -0.05em;
}

.attendance-date-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	justify-content: center;
	padding: 18px 20px;
	border: 1px solid var(--admin-line);
	border-radius: 14px;
	background: linear-gradient(140deg, #fffdfa, #f2f5f8);
	box-shadow: var(--admin-shadow-small);
}

.attendance-date-card strong { font-size: 1.1rem; letter-spacing: -0.02em; }
.attendance-date-card small { margin-top: 5px; color: var(--admin-teal); font-weight: 700; }

.attendance-absent-card-list {
	margin: 0;
	padding: 22px;
	border: 1px solid var(--admin-line);
	border-radius: 14px;
	background: var(--admin-card);
	box-shadow: var(--admin-shadow-small);
}

.attendance-list-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--admin-line);
}

.attendance-list-heading h3 { margin: 0; color: var(--admin-ink); font-size: 1.08rem; }

.attendance-absent-total {
	padding: 7px 11px;
	border-radius: 999px;
	background: #fff0ed;
	color: #a84432;
	font-size: 0.78rem;
}

.attendance-absent-total strong { font-size: 0.9rem; }
#absentStudentsList { max-height: min(52vh, 560px); overflow-y: auto; }
.attendance-empty-state { margin: 0; padding: 34px 16px; color: var(--admin-ink-soft); text-align: center; }

@media (max-width: 768px) {
	#attendanceSection .section-header { align-items: stretch; }
	#attendanceSection .section-actions label { flex: 1 1 160px; }
	.attendance-readonly-summary { grid-template-columns: 1fr 1fr; }
	.attendance-date-card { grid-column: 1 / -1; }
}

@media (max-width: 460px) {
	.attendance-readonly-summary { grid-template-columns: 1fr; }
	.attendance-date-card { grid-column: auto; }
	.attendance-count-card { min-height: 96px; }
}
