.quiz-actions-dropdown {
	z-index: 50 !important;
}
/* --- Enhanced Quizzes Table --- */
.lms-table-wrap {
	box-shadow: 0 4px 24px -8px rgba(15,23,42,0.10);
	border-radius: 1rem;
	overflow: hidden;
}

.lms-table-wrap table {
	border-radius: 1rem;
	overflow: hidden;
}

.lms-table-wrap thead th {
	position: sticky;
	top: 0;
	z-index: 2;
	background: #f8fafc;
	box-shadow: 0 2px 0 0 #e2e8f0;
}

.lms-table-wrap tbody tr:nth-child(even) {
	background-color: #f3f6fa;
}

.lms-table-wrap tbody tr:hover {
	background-color: #e0f2fe;
	transition: background 0.2s;
}

.lms-table-wrap td, .lms-table-wrap th {
	vertical-align: middle;
}

/* Keep the Teacher Quizzes table area "full height" even with no/short content */
#quizTableWrap {
	height: clamp(22rem, 62vh, 46rem);
	overflow-y: auto;
}

/* Only center the placeholder message when the list is empty/loading/error. */
#quizTableWrap[data-empty="1"] table { height: 100%; }
#quizTableWrap[data-empty="1"] tbody,
#quizTableWrap[data-empty="1"] tbody tr { height: 100%; }
#quizTableWrap[data-empty="1"] tbody td { vertical-align: middle; }
:root {
	--lms-bg: #f1f5f9;
	--lms-surface: #ffffff;
	--lms-border: #e2e8f0;
	--lms-text: #0f172a;
	--lms-muted: #64748b;
	--lms-primary: #0284c7;
	--lms-primary-strong: #0369a1;
	--lms-danger: #dc2626;
	--lms-radius: 0.85rem;
}

* { box-sizing: border-box; }

body {
	font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	color: var(--lms-text);
	background: radial-gradient(1200px 500px at 10% -20%, #e0f2fe 0%, transparent 60%), var(--lms-bg);
}

main.flex-1 {
	min-width: 0;
}

.bg-white.rounded-xl {
	border: 1px solid var(--lms-border);
}

.shadow-sm {
	box-shadow: 0 10px 28px -20px rgba(15, 23, 42, 0.45), 0 2px 8px -6px rgba(15, 23, 42, 0.2) !important;
}

.text-slate-500,
.text-slate-400 {
	color: var(--lms-muted) !important;
}

input[type="text"],
input[type="number"],
input[type="date"],
input[type="password"],
input[type="email"],
select,
textarea {
	border: 1px solid var(--lms-border) !important;
	border-radius: 0.7rem !important;
	background-color: #fff;
	transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

input:focus,
select:focus,
textarea:focus {
	outline: none;
	border-color: #7dd3fc !important;
	box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.2);
}

button,
a,
.table-action-btn {
	transition: all .2s ease;
}

button:focus-visible,
a:focus-visible,
.table-action-btn:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.25);
}

button[id^="add"],
button.bg-sky-600,
.bg-sky-600 {
	border-radius: 0.7rem !important;
	box-shadow: 0 8px 18px -12px rgba(2, 132, 199, 0.8);
}

button.bg-sky-600:hover,
.bg-sky-600:hover {
	transform: translateY(-1px);
	background-color: var(--lms-primary-strong) !important;
}

table {
	border-collapse: separate;
	border-spacing: 0;
}

thead.bg-slate-100,
thead.text-left.bg-slate-100,
thead[class*="bg-slate-100"] {
	background-color: #f8fafc !important;
}

thead th {
	color: #334155;
	font-weight: 600;
	border-bottom: 1px solid var(--lms-border);
}

tbody tr {
	transition: background-color .15s ease;
}

tbody tr:hover {
	background-color: #f8fafc;
}

tbody td {
	border-bottom: 1px solid #edf2f7;
}

.overflow-x-auto {
	border-radius: 0.75rem;
	-webkit-overflow-scrolling: touch;
}

.table-action-btn {
	width: 2rem;
	height: 2rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 0.55rem;
	border: 1px solid transparent;
	font-size: 0.85rem;
	box-shadow: 0 2px 6px -4px rgba(15, 23, 42, 0.55);
}

.table-action-btn:hover {
	transform: translateY(-1px);
}

.table-action-edit { background-color: #0ea5e9; color: #fff; }
.table-action-key { background-color: #6366f1; color: #fff; }
.table-action-delete { background-color: #ef4444; color: #fff; }

.toast {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	background: #0f172a;
	color: #fff;
	padding: 0.65rem 0.9rem;
	border-radius: 0.7rem;
	border: 1px solid #1e293b;
	box-shadow: 0 14px 30px -18px rgba(2, 6, 23, 0.85);
	z-index: 60;
}

/* Admin-only helpers (scoped) */
.lms-admin .btn.btn-destructive,
.lms-admin .btn-destructive {
	background: var(--lms-danger);
	border-color: var(--lms-danger);
	color: #fff;
}

.lms-admin .btn.btn-destructive:hover,
.lms-admin .btn-destructive:hover {
	background: #b91c1c;
	border-color: #b91c1c;
}

.lms-admin [data-modal="true"] > .card,
.lms-admin [data-modal="true"] > div.card {
	max-height: calc(100vh - 2rem);
	overflow-y: auto;
}

@media (max-width: 768px) {
	.min-h-screen.flex > main.flex-1 {
		padding: 1rem !important;
	}

	.bg-white.rounded-xl.p-4.shadow-sm {
		padding: 0.9rem !important;
	}

	.bg-white.rounded-xl.p-5.shadow-sm {
		padding: 1rem !important;
	}

	.overflow-x-auto table {
		min-width: 640px;
	}

	.lms-admin .table :where(th, td) {
		padding: 0.55rem 0.65rem;
		font-size: 0.9rem;
		white-space: nowrap;
	}

	.lms-admin .table td:last-child,
	.lms-admin .table th:last-child {
		white-space: normal;
	}

	button[id^="add"],
	#saveAttendanceBtn,
	#addGradeBtn {
		min-height: 2.5rem;
	}
}

/* Reusable LMS UI components */
.lms-page-stack { display: flex; flex-direction: column; gap: 1rem; }

.lms-card {
	background: var(--lms-surface);
	border: 1px solid var(--lms-border);
	border-radius: var(--lms-radius);
	padding: 1rem;
	box-shadow: 0 10px 28px -20px rgba(15, 23, 42, 0.45), 0 2px 8px -6px rgba(15, 23, 42, 0.2);
}

.lms-card-sm { padding: 0.85rem; }

.lms-live-body {
	min-height: 100vh;
	background:
		radial-gradient(1200px 550px at 8% -10%, rgba(14, 165, 233, 0.18), transparent 64%),
		radial-gradient(1000px 500px at 100% -8%, rgba(59, 130, 246, 0.12), transparent 60%),
		linear-gradient(180deg, #f8fbff 0%, #eef6ff 45%, #f1f5f9 100%);
	color: #0f172a;
}

.lms-live-shell {
	min-height: 100vh;
	padding: 1.25rem;
}

.lms-live-frame {
	max-width: 1680px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.lms-live-avatar {
	width: 44px;
	height: 44px;
	border-radius: 0.9rem;
	overflow: hidden;
	background: #ffffff;
	border: 1px solid rgba(203, 213, 225, 0.9);
	box-shadow: 0 12px 30px -22px rgba(15, 23, 42, 0.45);
	flex-shrink: 0;
}

.lms-live-avatar-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lms-live-panel {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.95));
	border: 1px solid rgba(203, 213, 225, 0.75);
	border-radius: 1.5rem;
	padding: 1.25rem;
	box-shadow: 0 24px 60px -38px rgba(15, 23, 42, 0.55);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	color: #0f172a;
}

.lms-live-panel-soft {
	background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(248,250,252,0.92));
	color: #0f172a;
	border: 1px solid rgba(226, 232, 240, 0.95);
	border-radius: 1.5rem;
	padding: 1.25rem;
	box-shadow: 0 20px 60px -36px rgba(15, 23, 42, 0.85);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
}

.lms-live-metric {
	border-radius: 1.25rem;
	padding: 1rem 1.1rem;
	background: #f8fafc;
	border: 1px solid #dbeafe;
	box-shadow: inset 0 1px 0 rgba(255,255,255,0.9);
}

.lms-live-state {
	border-radius: 1.25rem;
	padding: 1.15rem 1.25rem;
	background: #f8fafc;
	border: 1px dashed #cbd5e1;
	font-size: 1rem;
	line-height: 1.6;
}

.lms-live-question-card {
	border-radius: 1.75rem;
	padding: 1.5rem;
	background: linear-gradient(135deg, #f8fafc 0%, #eff6ff 44%, #ecfeff 100%);
	box-shadow: 0 24px 64px -46px rgba(8, 47, 73, 0.35);
	color: #0f172a;
}

.lms-live-choice {
	border-radius: 1.25rem;
	padding: 1rem 1.1rem;
	border: 1px solid #cbd5e1;
	background: #ffffff;
	box-shadow: 0 16px 30px -26px rgba(15, 23, 42, 0.22);
}

.lms-live-roster {
	max-height: 27rem;
	overflow: auto;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	padding-right: 0.15rem;
}

.lms-live-roster-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.8rem;
	padding: 0.9rem 1rem;
	border-radius: 1rem;
	background: #f8fafc;
	border: 1px solid #dbeafe;
	font-size: 0.96rem;
}

.lms-live-chip {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	padding: 0.35rem 0.8rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	background: rgba(125, 211, 252, 0.16);
	color: #bae6fd;
	border: 1px solid rgba(125, 211, 252, 0.2);
}

.lms-live-leaderboard-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.9rem;
	padding: 0.95rem 1rem;
	border-radius: 1rem;
	background: #f8fafc;
	border: 1px solid #dbeafe;
}

.lms-live-body .text-white { color: #0f172a !important; }
.lms-live-body .text-slate-300,
.lms-live-body .text-slate-400,
.lms-live-body .text-sky-300 { color: #64748b !important; }
.lms-live-body .text-sky-700,
.lms-live-body .text-sky-800,
.lms-live-body .text-sky-900 { color: #0369a1 !important; }

.lms-live-student-choice {
	--live-accent: 16, 185, 129;
	--live-accent-strong: 4, 120, 87;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 1.1rem;
	overflow: hidden;
	border-radius: 1.5rem;
	padding: 1.15rem 1.25rem 1.2rem;
	border: 1px solid rgba(var(--live-accent), 0.16);
	background:
		radial-gradient(circle at top right, rgba(var(--live-accent), 0.16), transparent 32%),
		linear-gradient(180deg, rgba(255,255,255,0.98), rgba(var(--live-accent), 0.06));
	box-shadow: 0 22px 54px -36px rgba(15, 23, 42, 0.85);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.lms-live-student-choice[data-answer-option="A"] {
	--live-accent: 14, 165, 233;
	--live-accent-strong: 3, 105, 161;
}

.lms-live-student-choice[data-answer-option="B"] {
	--live-accent: 245, 158, 11;
	--live-accent-strong: 180, 83, 9;
}

.lms-live-student-choice[data-answer-option="C"] {
	--live-accent: 139, 92, 246;
	--live-accent-strong: 109, 40, 217;
}

.lms-live-student-choice[data-answer-option="D"] {
	--live-accent: 16, 185, 129;
	--live-accent-strong: 4, 120, 87;
}

.lms-live-student-choice.is-selected {
	border-color: rgba(var(--live-accent), 0.78);
	background:
		radial-gradient(circle at top right, rgba(var(--live-accent), 0.22), transparent 32%),
		linear-gradient(180deg, rgba(var(--live-accent), 0.14), rgba(255, 255, 255, 0.96));
	box-shadow: 0 28px 62px -34px rgba(var(--live-accent), 0.28);
}

.lms-live-student-choice:hover {
	transform: translateY(-2px);
	box-shadow: 0 28px 58px -34px rgba(var(--live-accent), 0.26);
	border-color: rgba(var(--live-accent), 0.48);
}

.lms-live-student-choice::after {
	content: '';
	position: absolute;
	inset: auto -1.8rem -2.8rem auto;
	width: 8rem;
	height: 8rem;
	border-radius: 999px;
	background: rgba(var(--live-accent), 0.12);
	pointer-events: none;
}

.lms-live-student-choice-top {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0.75rem;
}

.lms-live-student-choice-top::after {
	content: 'Answer Option';
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #64748b;
}

.lms-live-student-choice-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 3rem;
	min-width: 3rem;
	gap: 0.45rem;
	padding: 0 0.95rem;
	border-radius: 1rem;
	background: linear-gradient(135deg, rgb(var(--live-accent)), rgb(var(--live-accent-strong)));
	color: #ffffff;
	font-weight: 800;
	font-size: 1.15rem;
	box-shadow: 0 16px 34px rgba(var(--live-accent), 0.22);
}

.lms-live-student-choice-text {
	position: relative;
	font-size: 1.35rem;
	line-height: 1.45;
	font-weight: 700;
	color: #0f172a;
	z-index: 1;
	padding-right: 3rem;
}

.lms-live-answer-card {
	display: flex;
	align-items: center;
	gap: 1rem;
	width: min(100%, 42rem);
	padding: 1rem 1.15rem;
	border-radius: 1.75rem;
	background: linear-gradient(135deg, rgba(236, 253, 245, 0.98), rgba(255, 255, 255, 0.98));
	border: 1px solid rgba(16, 185, 129, 0.18);
	box-shadow: 0 24px 60px rgba(16, 185, 129, 0.12);
}

.lms-live-answer-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4.5rem;
	height: 4.5rem;
	flex-shrink: 0;
	border-radius: 1.4rem;
	background: linear-gradient(135deg, #10b981, #047857);
	color: #ffffff;
	font-size: 1.75rem;
	font-weight: 800;
	box-shadow: 0 18px 38px rgba(16, 185, 129, 0.28);
}

.lms-live-correct-student {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.7rem 1rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.94);
	border: 1px solid rgba(245, 158, 11, 0.22);
	color: #0f172a;
	box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08);
}

.lms-live-correct-empty {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 4rem;
	border-radius: 1.5rem;
	border: 1px dashed rgba(148, 163, 184, 0.5);
	background: rgba(255, 255, 255, 0.7);
	color: #475569;
}

.lms-live-student-result-note {
	margin-top: 1rem;
	color: #475569;
	font-size: 1.05rem;
	font-weight: 700;
}

.lms-live-student-result-note.is-correct {
	color: #047857;
}

.lms-live-student-feedback-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 7rem;
	height: 7rem;
	margin: 0 auto;
	border-radius: 999px;
	font-size: 3.5rem;
	box-shadow: 0 24px 60px rgba(15, 23, 42, 0.12);
}

.lms-live-student-feedback-icon.is-correct {
	background: radial-gradient(circle at 30% 30%, rgba(16, 185, 129, 0.2), rgba(16, 185, 129, 0.08));
	color: #059669;
	border: 1px solid rgba(16, 185, 129, 0.22);
}

.lms-live-student-feedback-icon.is-wrong {
	background: radial-gradient(circle at 30% 30%, rgba(239, 68, 68, 0.2), rgba(239, 68, 68, 0.08));
	color: #dc2626;
	border: 1px solid rgba(239, 68, 68, 0.22);
}

.lms-live-student-footer {
	display: flex;
	align-items: center;
	gap: 0.95rem;
	padding: 1rem 1.15rem;
	border-radius: 1.4rem;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(240, 249, 255, 0.92));
	border: 1px solid rgba(148, 163, 184, 0.18);
	box-shadow: 0 20px 44px -34px rgba(15, 23, 42, 0.32);
}

.lms-live-student-footer-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 1rem;
	background: linear-gradient(135deg, #0ea5e9, #0369a1);
	color: #ffffff;
	font-size: 1.2rem;
	box-shadow: 0 16px 34px rgba(14, 165, 233, 0.22);
}

@media (max-width: 768px) {
	#studentLiveStats {
		display: none !important;
	}

	.lms-live-shell {
		padding: 0.6rem;
	}

	.lms-live-panel,
	.lms-live-panel-soft {
		padding: 0.85rem;
		border-radius: 1.2rem;
	}

	.lms-live-question-card {
		padding: 0.85rem;
		border-radius: 1.3rem;
	}

	.lms-live-student-choice {
		padding: 0.8rem 0.85rem 0.85rem;
		gap: 0.65rem;
	}

	.lms-live-student-choice-text {
		font-size: 0.95rem;
		padding-right: 0;
	}

	.lms-live-student-choice-top::after {
		content: '';
	}

	.lms-live-student-choice-badge {
		height: 2.5rem;
		min-width: 2.5rem;
		padding: 0 0.75rem;
		border-radius: 0.9rem;
		font-size: 1rem;
	}

	.lms-live-student-choice-text {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
}

.lms-toolbar {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

@media (min-width: 768px) {
	.lms-toolbar {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}

.lms-muted {
	color: var(--lms-muted);
	font-size: 0.875rem;
}

.lms-input,
.lms-select,
.lms-textarea,
.lms-search-input {
	border: 1px solid var(--lms-border);
	border-radius: 0.7rem;
	background: #fff;
	padding: 0.55rem 0.8rem;
	width: 100%;
}

.lms-search-input { max-width: 20rem; }

.lms-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border-radius: 0.7rem;
	padding: 0.55rem 1rem;
	font-weight: 600;
	border: 1px solid transparent;
}

.lms-btn-primary {
	background: var(--lms-primary);
	color: #fff;
	box-shadow: 0 8px 18px -12px rgba(2, 132, 199, 0.8);
}

.lms-btn-primary:hover { background: var(--lms-primary-strong); transform: translateY(-1px); }

.lms-btn-soft {
	background: #f8fafc;
	color: #334155;
	border-color: var(--lms-border);
}

.lms-btn-soft:hover { background: #f1f5f9; }

.lms-btn-danger {
	background: #ef4444;
	color: #fff;
	border-color: #ef4444;
}
.lms-btn-danger:hover { background: #dc2626; transform: translateY(-1px); }

.lms-table-wrap {
	overflow-x: auto;
	overflow-y: visible;
	border: 1px solid #eef2f7;
	border-radius: 0.75rem;
}

.lms-student-quiz-card {
	position: relative;
	border-color: #dbe7f3;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
	box-shadow: 0 12px 26px -22px rgba(15, 23, 42, 0.45), 0 2px 10px -8px rgba(15, 23, 42, 0.2);
}

.lms-student-quiz-card:hover {
	box-shadow: 0 18px 36px -24px rgba(14, 116, 144, 0.35), 0 8px 18px -16px rgba(15, 23, 42, 0.35);
	transform: translateY(-1px);
}

.lms-quiz-modal-shell {
	max-height: min(92vh, 860px);
	overflow-y: auto;
}

.lms-quiz-modal-card {
	border: 1px solid #e2e8f0;
	border-radius: 0.8rem;
	padding: 0.75rem 0.85rem;
	background: #f8fafc;
}

.lms-data-table {
	width: 100%;
	font-size: 0.875rem;
	border-collapse: separate;
	border-spacing: 0;
}

.lms-data-table thead {
	background: #f8fafc;
	text-align: left;
}

.lms-data-table th,
.lms-data-table td { padding: 0.55rem; }

.lms-data-table th {
	color: #334155;
	font-weight: 600;
	border-bottom: 1px solid var(--lms-border);
}

.lms-data-table tbody tr:hover { background: #f8fafc; }

/* ── Gradebook compact grid cell ─────────────────────────────────── */
input.gb-cell-input {
    display: block !important;
    width: 100% !important;
    height: 26px !important;
    padding: 0 3px !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    font-size: 11px !important;
    text-align: center !important;
    color: #1e293b !important;
    outline: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: textfield !important;
}
input.gb-cell-input::-webkit-outer-spin-button,
input.gb-cell-input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}
input.gb-cell-input:focus {
    background: #eff6ff !important;
    box-shadow: inset 0 0 0 2px #93c5fd !important;
}
input.gb-cell-input:disabled,
input.gb-cell-input.gb-cell-disabled {
	background: #e2e8f0 !important;
	color: #94a3b8 !important;
	cursor: not-allowed !important;
	box-shadow: none !important;
}
input.gb-cell-input.bg-yellow-50 { background: #fefce8 !important; }
input.gb-cell-input.bg-yellow-50:focus { background: #fef9c3 !important; }

.lms-stat-grid {
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: 1rem;
}

@media (min-width: 768px) {
	.lms-stat-grid.lms-stat-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lms-stat-grid.lms-stat-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }    .lms-stat-grid.lms-stat-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }	.lms-stat-grid.lms-stat-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

.lms-stat-card {
	background: #fff;
	border: 1px solid var(--lms-border);
	border-radius: var(--lms-radius);
	padding: 1rem;
	box-shadow: 0 10px 28px -20px rgba(15, 23, 42, 0.45), 0 2px 8px -6px rgba(15, 23, 42, 0.2);
}

/* ── Assignment Picker ──────────────────────────────────────────────────── */
.asgn-picker-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.625rem;
	cursor: pointer;
	min-height: 2.75rem;
	text-align: left;
}
.asgn-picker-placeholder { color: #94a3b8; font-size: 0.875rem; }
.asgn-picker-chevron {
	color: #94a3b8;
	font-size: 0.7rem;
	flex-shrink: 0;
	transition: transform 0.2s ease;
}
#assignmentPickerSelected, #gradebookAssignmentPickerSelected, #quizAssignmentPickerSelected {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	min-width: 0;
	flex: 1;
}
.asgn-picker-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	padding: 0.625rem 0.875rem;
	text-align: left;
	background: transparent;
	border: none;
	cursor: pointer;
	transition: background-color 0.12s;
}
.asgn-picker-item:hover { background: #f8fafc; }
.asgn-badge {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0.75rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: #fff;
	font-weight: 700;
	font-size: 1rem;
	box-shadow: 0 4px 10px -3px rgba(0,0,0,.22);
	user-select: none;
}
.asgn-picked-badge {
	width: 2rem;
	height: 2rem;
	border-radius: 0.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: #fff;
	font-weight: 700;
	font-size: 0.75rem;
	box-shadow: 0 2px 6px -2px rgba(0,0,0,.18);
	user-select: none;
}
.asgn-item-text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}
.asgn-subject-name {
	font-size: 0.875rem;
	font-weight: 600;
	color: #1e293b;
	line-height: 1.35;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.asgn-subject-code { font-weight: 400; color: #94a3b8; }
.asgn-subtitle { font-size: 0.7rem; color: #64748b; margin-top: 0.125rem; }
.asgn-check { font-size: 0.7rem; color: #0284c7; flex-shrink: 0; transition: opacity 0.15s; }
.asgn-empty { padding: 1.5rem 1rem; text-align: center; color: #94a3b8; font-size: 0.875rem; }

/* ── Attendance Student Cards (Glass) ───────────────────────────────────── */
.attendance-student-card {
	width: 100%;
	padding: 1rem;
	border-radius: 1rem;
	border: 1px solid rgba(148, 163, 184, 0.32);
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.52), rgba(255, 255, 255, 0.18));
	backdrop-filter: blur(14px) saturate(120%);
	-webkit-backdrop-filter: blur(14px) saturate(120%);
	box-shadow: 0 10px 28px -22px rgba(15, 23, 42, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.62);
	transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, background-color 0.22s ease;
	cursor: pointer;
}

.attendance-student-card:hover {
	transform: translateY(-3px);
	border-color: rgba(56, 189, 248, 0.48);
	box-shadow: 0 16px 30px -22px rgba(2, 132, 199, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.attendance-student-card.is-present {
	border-color: rgba(16, 185, 129, 0.48);
	background: linear-gradient(145deg, rgba(236, 253, 245, 0.58), rgba(255, 255, 255, 0.22));
	box-shadow: 0 12px 28px -22px rgba(5, 150, 105, 0.36), inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.attendance-student-card.is-present:hover {
	border-color: rgba(5, 150, 105, 0.62);
	box-shadow: 0 18px 32px -24px rgba(5, 150, 105, 0.44), inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

/* ── Sidebar Theme Toggle ───────────────────────────────────────────────── */
.lms-sidebar-theme-toggle {
	display: inline-flex;
	width: 100%;
	align-items: center;
	border: 1px solid rgba(148, 163, 184, 0.22);
	border-radius: 0.85rem;
	padding: 0.2rem;
	background: rgba(15, 23, 42, 0.42);
	gap: 0.2rem;
}

.lms-sidebar-theme-btn {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	border: 0;
	border-radius: 0.7rem;
	padding: 0.55rem 0.75rem;
	background: transparent;
	color: #cbd5e1;
	font-size: 0.8rem;
	font-weight: 600;
	transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.lms-sidebar-theme-btn:hover {
	background: rgba(255, 255, 255, 0.06);
	color: #f8fafc;
}

.lms-sidebar-theme-btn.is-active {
	background: rgba(14, 165, 233, 0.18);
	color: #e0f2fe;
	box-shadow: inset 0 0 0 1px rgba(125, 211, 252, 0.2);
}

.lms-sidebar-theme-btn span:last-child {
	white-space: nowrap;
}

/* Sidebar light mode: sidebar only, page content stays unchanged */
#desktopSidebar.lms-sidebar-light,
#mobileNavDrawer.lms-sidebar-light {
	background: linear-gradient(180deg, #f8fbff 0%, #eff6ff 52%, #e2e8f0 100%);
	color: #0f172a;
	border-right-color: rgba(148, 163, 184, 0.35);
}

#desktopSidebar.lms-sidebar-light > div:first-child,
#mobileNavDrawer.lms-sidebar-light > div:first-child,
#desktopSidebar.lms-sidebar-light > div:last-child,
#mobileNavDrawer.lms-sidebar-light > div:last-child {
	border-color: rgba(148, 163, 184, 0.28);
}

#desktopSidebar.lms-sidebar-light > div:nth-child(2),
#mobileNavDrawer.lms-sidebar-light > div:nth-child(2) {
	color: #64748b;
}

#desktopSidebar.lms-sidebar-light h1,
#mobileNavDrawer.lms-sidebar-light h1 {
	color: #0f172a;
}

#desktopSidebar.lms-sidebar-light p,
#mobileNavDrawer.lms-sidebar-light p {
	color: #64748b;
}

#desktopSidebar.lms-sidebar-light .lms-sidebar-brand-icon,
#mobileNavDrawer.lms-sidebar-light .lms-sidebar-brand-icon {
	background: rgba(14, 165, 233, 0.12);
	color: #0284c7;
}

#desktopSidebar.lms-sidebar-light nav a,
#mobileNavDrawer.lms-sidebar-light nav a {
	color: #334155;
}

#desktopSidebar.lms-sidebar-light nav a:hover,
#mobileNavDrawer.lms-sidebar-light nav a:hover {
	background: rgba(226, 232, 240, 0.9);
	color: #0f172a;
}

#desktopSidebar.lms-sidebar-light nav a span:first-child,
#mobileNavDrawer.lms-sidebar-light nav a span:first-child {
	background: rgba(226, 232, 240, 0.95);
	color: #475569;
}

#desktopSidebar.lms-sidebar-light nav a:hover span:first-child,
#mobileNavDrawer.lms-sidebar-light nav a:hover span:first-child {
	background: rgba(203, 213, 225, 0.95);
	color: #0f172a;
}

#desktopSidebar.lms-sidebar-light nav a.lms-sidebar-link-active,
#mobileNavDrawer.lms-sidebar-light nav a.lms-sidebar-link-active {
	background: rgba(14, 165, 233, 0.12);
	color: #0c4a6e;
	border-color: rgba(56, 189, 248, 0.34);
	box-shadow: 0 10px 24px -16px rgba(14, 165, 233, 0.45);
}

#desktopSidebar.lms-sidebar-light nav a.lms-sidebar-link-active span:first-child,
#mobileNavDrawer.lms-sidebar-light nav a.lms-sidebar-link-active span:first-child {
	background: rgba(14, 165, 233, 0.14);
	color: #0369a1;
	box-shadow: inset 0 0 0 1px rgba(56, 189, 248, 0.22);
}

#desktopSidebar.lms-sidebar-light .lms-sidebar-user-card,
#mobileNavDrawer.lms-sidebar-light .lms-sidebar-user-card {
	background: rgba(255, 255, 255, 0.72);
	border-color: rgba(148, 163, 184, 0.3);
}

#desktopSidebar.lms-sidebar-light .lms-sidebar-user-card > div:first-child,
#mobileNavDrawer.lms-sidebar-light .lms-sidebar-user-card > div:first-child {
	color: #64748b;
}

#desktopSidebar.lms-sidebar-light .lms-sidebar-user-card > div:last-child,
#mobileNavDrawer.lms-sidebar-light .lms-sidebar-user-card > div:last-child {
	color: #0f172a;
}

#desktopSidebar.lms-sidebar-light .lms-sidebar-logout,
#mobileNavDrawer.lms-sidebar-light .lms-sidebar-logout {
	background: rgba(254, 242, 242, 0.9);
	border-color: rgba(248, 113, 113, 0.3);
	color: #b91c1c;
}

#desktopSidebar.lms-sidebar-light .lms-sidebar-logout:hover,
#mobileNavDrawer.lms-sidebar-light .lms-sidebar-logout:hover {
	background: rgba(254, 226, 226, 0.98);
}

#desktopSidebar.lms-sidebar-light .lms-sidebar-theme-toggle,
#mobileNavDrawer.lms-sidebar-light .lms-sidebar-theme-toggle {
	background: rgba(255, 255, 255, 0.8);
	border-color: rgba(148, 163, 184, 0.32);
}

#desktopSidebar.lms-sidebar-light .lms-sidebar-theme-btn,
#mobileNavDrawer.lms-sidebar-light .lms-sidebar-theme-btn {
	color: #475569;
}

#desktopSidebar.lms-sidebar-light .lms-sidebar-theme-btn:hover,
#mobileNavDrawer.lms-sidebar-light .lms-sidebar-theme-btn:hover {
	background: rgba(226, 232, 240, 0.9);
	color: #0f172a;
}

#desktopSidebar.lms-sidebar-light .lms-sidebar-theme-btn.is-active,
#mobileNavDrawer.lms-sidebar-light .lms-sidebar-theme-btn.is-active {
	background: rgba(14, 165, 233, 0.12);
	color: #0369a1;
	box-shadow: inset 0 0 0 1px rgba(56, 189, 248, 0.24);
}

/* ── Desktop Sidebar Collapse ─────────────────────────────────────────────── */
#desktopSidebar {
	transition: width 0.25s cubic-bezier(.4, 0, .2, 1);
	overflow: hidden;
	flex-shrink: 0;
}
#desktopSidebar.lms-sidebar-collapsed > div:first-child h1,
#desktopSidebar.lms-sidebar-collapsed > div:first-child p { display: none; }
#desktopSidebar.lms-sidebar-collapsed > div:first-child .lms-sidebar-brand-icon { display: none; }
#desktopSidebar.lms-sidebar-collapsed > div:first-child > div { justify-content: center; }
#desktopSidebar.lms-sidebar-collapsed > div:nth-child(2) { display: none; }
#desktopSidebar.lms-sidebar-collapsed nav { padding-left: 0; padding-right: 0; }
#desktopSidebar.lms-sidebar-collapsed nav a { justify-content: center; padding-left: 0; padding-right: 0; }
#desktopSidebar.lms-sidebar-collapsed nav a > span:last-child { display: none; }
#desktopSidebar.lms-sidebar-collapsed > div:last-child { display: none; }
#desktopSidebar.lms-sidebar-collapsed .lms-sidebar-theme-btn span:last-child { display: none; }

/* ── Mobile Sidebar Performance ──────────────────────────────────────────── */
@media (max-width: 767px) {
	#mobileNavDrawer .lms-sidebar-link {
		transition-property: background-color, color, border-color !important;
		transition-duration: 120ms !important;
		transform: none !important;
	}

	#mobileNavDrawer .lms-sidebar-link:hover,
	#mobileNavDrawer .lms-sidebar-link:active,
	#mobileNavDrawer .lms-sidebar-link.lms-sidebar-link-active {
		transform: none !important;
	}

	#mobileNavDrawer .lms-sidebar-link > span:first-child {
		transition-property: background-color, color !important;
		transition-duration: 120ms !important;
		transform: none !important;
	}

	#mobileNavDrawer .lms-sidebar-link:hover > span:first-child,
	#mobileNavDrawer .lms-sidebar-link:active > span:first-child,
	#mobileNavDrawer .lms-sidebar-link.lms-sidebar-link-active > span:first-child {
		transform: none !important;
	}
}
