/* UATStudent — responsive (mobile-first) — v2025-10-15 */



html.uat-viewport-mobile body.uat-student-app {

	overflow-x: hidden;

}



html.uat-viewport-mobile body.uat-student-app #uat-chrome {

	position: sticky;

	top: 0;

	z-index: 950;

}



html.uat-viewport-mobile body.uat-student-app #uat-topbar {

	flex-wrap: wrap;

	align-items: center;

	gap: 8px;

	padding: 8px 10px;

	padding-top: max(8px, env(safe-area-inset-top));

}



html.uat-viewport-mobile body.uat-student-app .uat-student-nav-open {

	display: inline-flex !important;

	order: 0;

	flex-shrink: 0;

}



html.uat-viewport-mobile body.uat-student-app .uat-brand {

	order: 1;

	flex: 1 1 auto;

	min-width: 0;

	gap: 10px;

}



html.uat-viewport-mobile body.uat-student-app .uat-brand img {

	width: 44px;

	height: 44px;

}



html.uat-viewport-mobile body.uat-student-app .uat-brand-text strong {

	font-size: 1.05rem;

}



html.uat-viewport-mobile body.uat-student-app .uat-brand-text span,

html.uat-viewport-mobile body.uat-student-app .uat-brand-text small {

	display: none;

}



html.uat-viewport-mobile body.uat-student-app .uat-topbar-actions {

	order: 2;

	flex: 0 1 auto;

	margin-left: auto;

	gap: 6px;

	width: auto;

}



html.uat-viewport-mobile body.uat-student-app .uat-topbar-search-wrap {

	order: 4;

	flex: 1 1 100%;

	max-width: none;

	margin: 0;

}



html.uat-viewport-mobile body.uat-student-app .uat-pwa-install-topbar .uat-btn-label,

html.uat-viewport-mobile body.uat-student-app .uat-theme-toggle .uat-btn-label,

html.uat-viewport-mobile body.uat-student-app .uat-lang-label,

html.uat-viewport-mobile body.uat-student-app .uat-student-nav-open-label {

	display: none;

}



html.uat-viewport-mobile body.uat-student-app .uat-userbox {

	order: 3;

	flex: 1 1 100%;

}



html.uat-viewport-mobile body.uat-student-app #page {

	margin: 8px auto 16px;

	max-width: 100%;

}



html.uat-viewport-mobile body.uat-student-app #container {

	display: block !important;

	padding: 0 10px;

	width: 100%;

	box-sizing: border-box;

}



html.uat-viewport-mobile body.uat-student-app #sidebar {

	position: fixed !important;

	top: 0;

	left: 0;

	bottom: 0;

	z-index: 920;

	width: min(300px, 88vw) !important;

	max-width: none !important;

	margin: 0;

	padding-top: max(12px, env(safe-area-inset-top));

	padding-bottom: env(safe-area-inset-bottom);

	border-radius: 0;

	transform: translateX(-105%);

	transition: transform 0.22s ease;

	visibility: hidden;

	pointer-events: none;

	max-height: 100dvh;

	overflow-y: auto;

	-webkit-overflow-scrolling: touch;

	box-shadow: none;

}



html.uat-viewport-mobile body.uat-student-app.uat-nav-open #sidebar {

	transform: translateX(0);

	visibility: visible;

	pointer-events: auto;

	box-shadow: 4px 0 24px rgba(0, 0, 0, 0.35);

}



html.uat-viewport-mobile body.uat-student-app #content {

	width: 100% !important;

	max-width: 100%;

	padding: 14px 12px 24px;

	box-sizing: border-box;

	overflow-x: hidden;

	-webkit-overflow-scrolling: touch;

}



html.uat-viewport-mobile body.uat-student-app .uat-dash-quick-grid,

html.uat-viewport-mobile body.uat-student-app .uat-useful-links {

	grid-template-columns: 1fr !important;

}



html.uat-viewport-mobile body.uat-student-app .uat-dash-layout {

	grid-template-columns: 1fr !important;

}



html.uat-viewport-mobile body.uat-student-app .uat-dash-quote {

	display: none;

}



html.uat-viewport-mobile body.uat-student-app .uat-sidebar-collapse {

	display: none !important;

}



html.uat-viewport-desktop body.uat-student-app .uat-student-nav-open {

	display: none !important;

}



html.uat-viewport-desktop body.uat-student-app #container {

	display: grid !important;

	grid-template-columns: var(--uat-sidebar-w) minmax(0, 1fr);

	align-items: start;

}



html.uat-viewport-desktop body.uat-student-app #sidebar {

	position: sticky !important;

	transform: none !important;

	visibility: visible !important;

	pointer-events: auto !important;

	width: var(--uat-sidebar-w) !important;

	max-width: var(--uat-sidebar-w) !important;

}



html.uat-viewport-desktop body.uat-student-app #content {

	grid-column: 2;

	min-width: 0;

}



/* ── Notes : cartes empilées (plus de colonnes coupées à droite) ── */

html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root,

html.uat-viewport-mobile body.uat-student-app.uat-academic-marks-page .uat-academic-page-root {

	max-width: 100%;

	overflow-x: hidden;

}



html.uat-viewport-mobile body.uat-student-app #content:has(.uat-academic-page-root) {

	overflow-x: hidden;

	padding-top: 10px;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root #uat-topbar .uat-topbar-search-wrap,

html.uat-viewport-mobile body.uat-student-app.uat-academic-marks-page #uat-topbar .uat-topbar-search-wrap {

	display: none;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-academic-scroll--stacked,

html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-table-search-scroll:has(.uat-academic-table--mobile-stack),

html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-academic-table-scroll:has(.uat-academic-table--mobile-stack) {

	overflow-x: visible !important;

	max-width: 100% !important;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack {

	display: block !important;

	width: 100% !important;

	min-width: 0 !important;

	max-width: 100% !important;

	box-shadow: none;

	border: none;

	background: transparent;

	font-size: 0.72rem !important;

	line-height: 1.25;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack thead,

html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack tr.tableStyle-header {

	display: none !important;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack tbody {

	display: block;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack tr.tableStyle-oddRow,

html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack tr.tableStyle-evenRow {

	display: block !important;

	margin: 0 0 10px;

	padding: 8px 10px;

	border: 1px solid var(--uat-border, #cbd5e1);

	border-radius: 10px;

	background: var(--uat-surface, #fff);

	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack td {

	display: flex !important;

	justify-content: space-between;

	align-items: flex-start;

	gap: 8px;

	padding: 4px 0 !important;

	border: none !important;

	max-width: none !important;

	min-width: 0 !important;

	width: auto !important;

	white-space: normal !important;

	text-align: right !important;

	font-size: 0.72rem !important;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack td::before {

	content: attr(data-label);

	flex: 0 1 46%;

	text-align: left;

	font-size: 0.62rem;

	font-weight: 700;

	text-transform: uppercase;

	letter-spacing: 0.03em;

	color: var(--uat-muted, #64748b);

	line-height: 1.25;

	padding-right: 4px;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack td.uat-academic-mobile-title {

	display: block !important;

	text-align: left !important;

	font-weight: 700;

	font-size: 0.78rem !important;

	line-height: 1.3;

	padding: 0 0 8px !important;

	margin-bottom: 4px;

	border-bottom: 1px solid var(--uat-border, #e2e8f0);

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack td.uat-academic-mobile-title::before {

	display: none !important;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack td .uat-acad-badge {

	font-size: 0.65rem !important;

	max-width: 100%;

}

html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack td.uat-academic-mobile-moyenne,
html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root td.uat-academic-moyenne-cell {
	font-weight: 700;
}

html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack td.uat-academic-mobile-moyenne .uat-acad-badge-text {
	font-size: 0.78rem !important;
	font-weight: 700;
}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-table-search-wrap {

	margin: 0 0 10px;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-table-search-bar {

	padding: 8px 10px;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-table-search-field {

	flex: 1 1 100%;

	max-width: none;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-table-search-title {

	display: none;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-academic-table-tools {

	flex-direction: column;

	align-items: stretch;

	font-size: 0.72rem;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-academic-table-tools select {

	width: 100%;

	margin-left: 0;

	box-sizing: border-box;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-student-identity-card {

	margin-bottom: 0.65rem;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-academic-page-title {

	font-size: 1.1rem;

	margin: 0 0 6px;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-academic-page-intro {

	font-size: 0.8rem;

	margin: 0 0 8px;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-academic-inline-viz {

	margin-bottom: 0.65rem;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-academic-inline-viz .uat-academic-section {

	padding: 0.6rem 0.75rem;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root .uat-academic-card-grid {

	grid-template-columns: repeat(2, minmax(0, 1fr));

	gap: 6px;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root tr.uat-academic-row--numeric_pass td:first-child,

html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root tr.uat-academic-row--numeric_fail td:first-child {

	box-shadow: none;

	border-left: 3px solid #22c55e;

	padding-left: 8px !important;

}



html.uat-viewport-mobile body.uat-student-app .uat-academic-page-root tr.uat-academic-row--numeric_fail td.uat-academic-mobile-title {

	border-left-color: #ef4444;

}



html[data-theme="dark"].uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack tr.tableStyle-oddRow,

html[data-theme="dark"].uat-viewport-mobile body.uat-student-app .uat-academic-page-root table.uat-academic-table--mobile-stack tr.tableStyle-evenRow {

	background: var(--uat-surface, #1e293b);

	border-color: #334155;

}


