/* Student Nexus Modern: native Tutor LMS 4 dashboard skin */
.tutor-dashboard-layout {
	display: flex;
	margin: 0 !important;
	align-items: stretch;
	width: 100%;
	min-height: 100vh;
	background: #f8fafc;
	color: #172033;
	min-height: 100vh;
}
.tutor-dashboard-nav-mobile { display: none; }
body.snm-messages-page .tutor-dashboard-sidebar,
body.snm-messages-page .tutor-dashboard-nav-mobile { display: none !important; }
body.snm-messages-page .tutor-dashboard-layout { display: block; }
body.snm-messages-page .tutor-dashboard-main { width: 100%; min-width: 0; }
.tutor-dashboard-sidebar {
	flex: 0 0 260px;
	margin: 0 !important;
	width: 260px;
	min-height: 100vh;
	position: relative;
	z-index: 2;
	background: #ffffff;
	border-right: 1px solid #e8edf4;
	box-shadow: 8px 0 24px rgba(17, 35, 66, .03);
}
.tutor-dashboard-sidebar-logo {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin: 0 !important;
	overflow: visible !important;
	white-space: nowrap;
	min-height: 96px;
	padding: 22px 28px;
	border-bottom: 1px solid #eef1f5;
}
.tutor-dashboard-sidebar-logo img { max-height: 42px; width: auto; }
.tutor-dashboard-sidebar-logo .site-title { display: block; max-width: none; overflow: visible; white-space: nowrap; font-weight: 700; font-size: 20px; color: #172033; }
.tutor-dashboard-sidebar-nav { padding: 26px 16px; }
.tutor-dashboard-sidebar-nav ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.tutor-dashboard-sidebar-nav li { margin: 0; padding: 0; list-style: none; }
.tutor-dashboard-sidebar-nav a { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.tutor-dashboard-sidebar-nav a {
	border-radius: 11px;
	color: #3e495b;
	font-weight: 600;
	padding: 13px 16px;
	transition: background .2s ease, color .2s ease, transform .2s ease;
}
.tutor-dashboard-sidebar-nav a:hover { background: #f1f5ff; color: #3867d6; transform: translateX(2px); }
.tutor-dashboard-sidebar-nav a.active { background: #e8edff; color: #3867d6; }
.tutor-dashboard-sidebar-nav a svg { color: currentColor; }
.tutor-dashboard-main { flex: 1 1 auto; min-width: 0; background: #f8fafc; }
.tutor-dashboard-header {
	position: relative;
	margin: 0 !important;
	z-index: 1000;
	overflow: visible;
	background: rgba(255,255,255,.96);
	border-bottom: 1px solid #e8edf4;
	backdrop-filter: blur(8px);
}
.tutor-dashboard-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; max-width: none; min-height: 92px; padding: 20px 34px; overflow: visible; }
.tutor-dashboard-header-left .tutor-h5 { display: none !important; }
.tutor-dashboard-header-left { min-width: 0; }
.tutor-dashboard-header-right > div:first-child { position: relative; z-index: 100001; display: flex; align-items: center; flex: 0 0 auto; min-width: 0; overflow: visible; }
.tutor-dashboard-body { padding: 30px 34px 56px; }
.tutor-dashboard-page { max-width: 1180px; margin: 0 auto; }
.snm-native-landing-heading { margin-bottom: 3px; }
.snm-native-landing-heading h2 { color: #172033; font-size: 28px; font-weight: 750; }
.snm-native-landing-heading p { color: #728096; }
.snm-native-course-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}
.snm-native-course-grid .tutor-progress-card {
	background: #fff;
	border: 1px solid #e7ebf1;
	border-radius: 16px;
	box-shadow: 0 7px 20px rgba(17, 35, 66, .05);
	overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease;
}
.snm-native-course-grid .tutor-progress-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(17,35,66,.1); }
.snm-native-course-grid .tutor-progress-card-inner { display: block; }
.snm-native-course-grid .tutor-progress-card-thumbnail { min-height: 156px; }
.snm-native-course-grid .tutor-progress-card-content { padding: 17px 18px 18px; }
.snm-native-course-grid .tutor-progress-card-actions { padding: 0 18px 18px; }
.snm-native-pagination { margin-top: 8px; }
.tutor-dashboard-home-sort .tutor-btn,
.tutor-dashboard-header .tutor-btn { border-radius: 9px; }
.tutor-dashboard-header-right { display: flex; align-items: center; flex-wrap: nowrap; gap: 12px; min-width: 0; }
.tutor-dashboard-header-right > div:first-child { display: flex; align-items: center; flex: 0 0 auto; min-width: 0; }
.tutor-dashboard-header-user { flex: 0 0 auto; }
.snm-tutor-header-tools { display: flex; align-items: center; flex-wrap: nowrap; gap: 8px; margin: 0; white-space: nowrap; }
.snm-tutor-tool, .snm-tutor-profile-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-width: 38px;
	height: 38px;
	border: 1px solid #e6ebf2;
	border-radius: 10px;
	background: #fff;
	color: #526176;
	text-decoration: none;
	font-size: 13px;
	font-weight: 700;
	transition: border-color .2s, color .2s, background .2s;
}
.snm-tutor-tool:hover, .snm-tutor-profile-link:hover { color: #3867d6; border-color: #b8c8f1; background: #f5f7ff; }
.snm-tool-icon { display: inline-flex; align-items: center; justify-content: center; width: 19px; height: 19px; font-size: 18px; line-height: 1; }
.snm-tool-icon svg { display: block; width: 18px; height: 18px; }
.snm-tutor-tool b { position: absolute; top: -5px; right: -5px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: #f04d65; color: #fff; font-size: 10px; line-height: 17px; text-align: center; }
.snm-tutor-profile-link { padding: 0 12px; }
.snm-notification-wrap { position: relative; flex: 0 0 auto; z-index: 10020; }
.snm-notification-toggle { cursor: pointer; font: inherit; padding: 0; }
.snm-notification-toggle[aria-expanded="true"] { color: #3867d6; background: #eef2ff; border-color: #9eb2ed; box-shadow: 0 0 0 3px rgba(56,103,214,.12); }
.snm-notification-panel {
	position: absolute; top: calc(100% + 12px); right: 0; z-index: 10050; width: min(310px, calc(100vw - 30px));
	padding: 17px; border: 1px solid #dfe6f0; border-radius: 13px; background: #fff; color: #172033;
	box-shadow: 0 18px 44px rgba(10,24,48,.18); text-align: left;
}
.snm-notification-panel[hidden] { display: none !important; }
.snm-notification-panel::before { content: ''; position: absolute; top: -7px; right: 16px; width: 12px; height: 12px; border-top: 1px solid #dfe6f0; border-left: 1px solid #dfe6f0; background: #fff; transform: rotate(45deg); }
.snm-notification-panel-title { position: relative; font-size: 15px; font-weight: 750; margin-bottom: 8px; }
.snm-notification-panel p { position: relative; margin: 0 0 13px; color: #728096; font-size: 13px; }
.snm-notification-panel-link { position: relative; display: inline-flex; align-items: center; padding: 8px 11px; border-radius: 8px; background: #eef2ff; color: #3867d6; font-size: 12px; font-weight: 700; text-decoration: none; }
.snm-notification-panel-link:hover { background: #dfe7ff; }
.snm-message-counter { display: inline-flex; align-items: center; }
.snm-message-counter .better-messages-unread-counter { min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: #f04d65; color: #fff; font-size: 10px; line-height: 17px; text-align: center; }
.snm-message-counter .better-messages-unread-counter:empty { display: none; }
.snm-live-message-toast {
	position: fixed; z-index: 99999; right: 22px; bottom: 22px; max-width: 320px;
	padding: 14px 18px; border-radius: 13px; background: #172033; color: #fff;
	box-shadow: 0 18px 44px rgba(10,24,48,.25); font-size: 14px; font-weight: 600;
	animation: snm-toast-in .25s ease-out;
}
.snm-live-message-toast a { color: #d9e3ff; text-decoration: underline; }
@keyframes snm-toast-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 900px) {
	html, body { max-width: 100%; overflow-x: hidden; }
	.tutor-dashboard-layout, .tutor-dashboard-main, .tutor-dashboard-content, .tutor-dashboard-content-inner, .tutor-dashboard-body, .tutor-dashboard-page { width: 100%; max-width: 100%; min-width: 0; overflow-x: hidden; }
		.tutor-dashboard-sidebar { display: none; }
		.tutor-dashboard-nav-mobile { position: fixed; left: 0; right: 0; bottom: 0; z-index: 10000; display: block; width: 100%; max-width: 100vw; overflow: hidden; box-shadow: 0 -8px 24px rgba(17,35,66,.08); border-top: 1px solid #e7ebf1; }
		.tutor-dashboard-nav-mobile-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); width: 100%; max-width: 100%; min-width: 0; gap: 0; margin: 0; padding: 0; list-style: none; }
		.tutor-dashboard-nav-mobile-list > li { min-width: 0; max-width: 100%; list-style: none; }
		.tutor-dashboard-nav-mobile-list > li > a, .tutor-dashboard-nav-mobile-list > li > button { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; min-width: 0; max-width: 100%; padding-left: 2px; padding-right: 2px; overflow: hidden; text-decoration: none; }
		.tutor-dashboard-main { width: 100%; }
	.tutor-dashboard-header-inner { display: flex; align-items: center; width: 100%; min-height: 78px; padding: 16px 18px; gap: 10px; overflow: visible; }
	.tutor-dashboard-header-left { flex: 1 1 auto; min-width: 0; max-width: 100%; overflow: hidden; }
	.tutor-dashboard-header-left > div { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.tutor-dashboard-header-left .tutor-h5 { font-size: 18px; }
	.tutor-dashboard-header-right { flex: 0 1 auto; min-width: 0; max-width: 100%; overflow: visible; }
	.tutor-dashboard-body { width: 100%; max-width: 100%; min-width: 0; padding: 22px 18px 88px; overflow-x: hidden; }
	.tutor-dashboard-body table, .tutor-table-responsive { max-width: 100%; overflow-x: auto; }
	.tutor-dashboard-body img, .tutor-dashboard-body video, .tutor-dashboard-body iframe, .tutor-dashboard-body canvas { max-width: 100%; }
	.tutor-dashboard-body pre, .tutor-dashboard-body code { max-width: 100%; white-space: pre-wrap; overflow-wrap: anywhere; }
	.tutor-dashboard-body a, .tutor-dashboard-body button, .tutor-dashboard-body input, .tutor-dashboard-body select, .tutor-dashboard-body textarea { max-width: 100%; }
	.tutor-dashboard-body *, .tutor-dashboard-header * { min-width: 0; }
	.snm-native-course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
	.snm-tutor-header-tools { gap: 6px; margin-right: 3px; }
	.snm-tutor-profile-link { display: none; }
}
@media (max-width: 580px) {
	.tutor-dashboard-header-inner { align-items: center; gap: 7px; padding-left: 12px; padding-right: 12px; overflow: visible; }
	.tutor-dashboard-header-left { flex: 1 1 auto; min-width: 0; max-width: 42%; }
	.tutor-dashboard-header-left > div { white-space: normal; line-height: 1.2; }
	.tutor-dashboard-header-left > .tutor-flex { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
	.tutor-dashboard-header-left > .tutor-flex > * { white-space: nowrap; }
	.tutor-dashboard-header-right { flex: 0 1 auto; min-width: 0; margin-left: auto; gap: 4px; }
	.tutor-dashboard-header-right > div:first-child { display: flex; align-items: center; }
	.snm-tutor-header-tools { gap: 5px; }
	.snm-tutor-tool { min-width: 32px; width: 32px; height: 32px; border-radius: 8px; }
	.snm-tutor-profile-link { min-width: 0; width: auto; max-width: 62px; padding-left: 8px; padding-right: 8px; overflow: hidden; text-overflow: ellipsis; }
	.snm-notification-panel { position: fixed; top: 64px; right: 12px; left: 12px; width: auto; max-width: none; }
	.snm-tool-icon { width: 17px; height: 17px; font-size: 16px; }
	.snm-tool-icon svg { width: 17px; height: 17px; }
	.snm-native-landing-heading { display: block; }
	.snm-native-landing-heading .tutor-btn { margin-top: 12px; }
	.snm-native-course-grid { grid-template-columns: 1fr; }
	.tutor-dashboard-nav-mobile { position: fixed; left: 0; right: 0; bottom: 0; z-index: 10000; width: 100%; max-width: 100vw; overflow: hidden; box-shadow: 0 -8px 24px rgba(17,35,66,.08); border-top: 1px solid #e7ebf1; }
	.tutor-dashboard-nav-mobile-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); width: 100%; max-width: 100%; min-width: 0; gap: 0; }
	.tutor-dashboard-nav-mobile-list > li { min-width: 0; max-width: 100%; }
	.tutor-dashboard-nav-mobile-list > li > a, .tutor-dashboard-nav-mobile-list > li > button { width: 100%; min-width: 0; max-width: 100%; padding-left: 2px; padding-right: 2px; overflow: hidden; }
	.tutor-dashboard-nav-mobile-text { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.snm-live-message-toast { left: 14px; right: 14px; bottom: 78px; max-width: none; }
	.snm-notification-panel { top: 64px; right: 12px; }
	.tutor-dashboard-notification-offcanvas { z-index: 100000 !important; }
	.tutor-dashboard-notification-offcanvas-panel { max-width: 100vw; overflow-x: hidden; }
}

/* Rihle Akademi dashboard branding */
.tutor-dashboard-sidebar-logo .snm-dashboard-brand-mark { display: block; flex: 0 0 42px; width: 42px; height: 42px; max-width: 42px; max-height: 42px; object-fit: contain; }
.tutor-dashboard-sidebar-logo .site-title { color: #172033; }
@media (max-width: 900px) {
	.tutor-dashboard-sidebar-logo .snm-dashboard-brand-mark { width: 36px; height: 36px; flex-basis: 36px; }
}

/* Shared Rihle Akademi dashboard brand for routes where the desktop sidebar is hidden */
.snm-dashboard-mobile-brand { display: none; align-items: center; flex: 0 0 auto; height: 42px; text-decoration: none; }
.snm-dashboard-mobile-brand img { display: block; width: auto; max-width: 190px; height: 42px; object-fit: contain; }
@media (max-width: 900px) {
	.snm-dashboard-mobile-brand { display: inline-flex; height: 48px; }
	.snm-dashboard-mobile-brand img { max-width: 170px; height: 48px; }
	.tutor-dashboard-header-inner { min-height: 64px; padding-top: 8px; padding-bottom: 8px; }
	.tutor-dashboard-header-left { display: flex; align-items: center; gap: 8px; max-width: 46%; }
	.tutor-dashboard-header-left > .tutor-flex { display: none !important; }
}
@media (max-width: 580px) {
	.snm-dashboard-mobile-brand { height: 44px; }
	.snm-dashboard-mobile-brand img { max-width: 145px; height: 44px; }
	.tutor-dashboard-header-left { max-width: 44%; }
	.tutor-dashboard-header-inner { min-height: 58px; padding-top: 6px; padding-bottom: 6px; }
	.tutor-dashboard-nav-mobile-text { font-size: 11px; letter-spacing: -0.01em; }
	.tutor-dashboard-nav-mobile-list > li > a, .tutor-dashboard-nav-mobile-list > li > button { padding-left: 0; padding-right: 0; }
}

/* Mobile dashboard brand scale and edge alignment */
@media (max-width: 900px) {
	.snm-dashboard-mobile-brand { height: 58px; margin-left: -4px; }
	.snm-dashboard-mobile-brand img { max-width: 210px; height: 58px; }
}
@media (max-width: 580px) {
	.snm-dashboard-mobile-brand { height: 52px; margin-left: -6px; }
	.snm-dashboard-mobile-brand img { max-width: 190px; height: 52px; }
	.tutor-dashboard-header-left { max-width: 52%; }
}

/* Final dashboard header containment */
.tutor-dashboard-header-inner, .tutor-dashboard-header-left, .tutor-dashboard-header-right { min-width: 0; }
.snm-dashboard-mobile-brand { min-width: 0; max-width: 100%; overflow: hidden; }
.snm-dashboard-mobile-brand img { width: 100%; max-width: 210px; height: auto; max-height: 58px; object-fit: contain; object-position: left center; }
@media (max-width: 900px) {
	.tutor-dashboard-header-left { flex: 1 1 0; max-width: 58%; overflow: hidden; }
	.snm-dashboard-mobile-brand { width: min(210px, 100%); }
	.snm-dashboard-mobile-brand img { max-width: 100%; max-height: 52px; }
	.tutor-dashboard-header-right { flex: 0 1 auto; max-width: 42%; }
}
@media (max-width: 580px) {
	.tutor-dashboard-header-inner { padding-left: 6px; padding-right: 6px; gap: 5px; }
	.tutor-dashboard-header-left { max-width: 55%; }
	.snm-dashboard-mobile-brand { width: min(180px, 100%); margin-left: 0; }
	.snm-dashboard-mobile-brand img { max-height: 46px; }
	.tutor-dashboard-header-right { max-width: 45%; }
}
