/**
 * MY ALL COURSES – Home Class Manager
 * Même langage visuel que le thème MY HOME CLASS ; fonctionne aussi seul
 * (polices et couleurs embarquées, variables de repli).
 */

@font-face {
	font-family: "Oswald";
	src: url("../fonts/oswald.woff2") format("woff2");
	font-weight: 200 700;
	font-display: swap;
}

@font-face {
	font-family: "Source Sans 3";
	src: url("../fonts/source-sans-3.woff2") format("woff2");
	font-weight: 200 900;
	font-display: swap;
}

.macfr,
.macfr-admin {
	--mac-orange: var(--mhc-orange, #d5570a);
	--mac-orange-deep: var(--mhc-orange-deep, #b04606);
	--mac-orange-soft: var(--mhc-orange-soft, #fbeadf);
	--mac-blue: var(--mhc-blue, #004aad);
	--mac-blue-soft: var(--mhc-blue-soft, #e5eefa);
	--mac-green: var(--mhc-green, #365907);
	--mac-green-soft: var(--mhc-green-soft, #ebf1e1);
	--mac-ink: var(--mhc-ink, #16120f);
	--mac-muted: var(--mhc-muted, #6a635c);
	--mac-line: var(--mhc-line, #e7e1d9);
	--mac-tint: var(--mhc-tint, #f8f4ee);
	--mac-display: var(--mhc-display, "Oswald", "Arial Narrow", sans-serif);
	--mac-body: var(--mhc-body, "Source Sans 3", -apple-system, "Segoe UI", sans-serif);
	--mac-radius: 16px;
	color: var(--mac-ink);
	font-family: var(--mac-body);
}

.macfr *,
.macfr *::before,
.macfr *::after {
	box-sizing: border-box;
}

.macfr h2,
.macfr h3,
.macfr h4 {
	font-family: var(--mac-display);
	font-weight: 600;
	color: var(--mac-ink);
	line-height: 1.1;
}

.macfr h2 {
	font-size: clamp(1.7rem, 3vw, 2.2rem);
	margin: 40px 0 14px;
}

.macfr h3 {
	font-size: 1.3rem;
	font-weight: 500;
	margin: 34px 0 12px;
}

.macfr-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 8px;
	font-family: var(--mac-display);
	font-size: 0.8rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--mac-orange-deep);
}

.macfr-eyebrow::before {
	content: "";
	width: 24px;
	height: 3px;
	border-radius: 2px;
	background: var(--mac-orange);
}

.macfr-muted {
	color: var(--mac-muted);
	font-size: 0.95em;
}

.macfr-section {
	margin-top: 48px;
	padding-top: 40px;
	border-top: 1px solid var(--mac-line);
}

.macfr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 10px 22px;
	border: 2px solid transparent;
	border-radius: 999px;
	background: var(--mac-orange);
	color: #fff;
	font: 700 1rem/1.2 var(--mac-body);
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.18s ease, color 0.18s ease;
}

.macfr-btn:hover,
.macfr-btn:focus-visible {
	background: var(--mac-orange-deep);
	color: #fff;
}

.macfr-btn[disabled] {
	opacity: 0.45;
	cursor: not-allowed;
}

.macfr-btn-alt {
	background: var(--mac-blue);
}

.macfr-btn-alt:hover {
	background: #00377f;
}

.macfr-btn-ghost {
	background: transparent;
	border-color: var(--mac-ink);
	color: var(--mac-ink);
}

.macfr-btn-ghost:hover {
	background: var(--mac-ink);
	color: #fff;
}

.macfr-link {
	background: none;
	border: 0;
	padding: 0;
	color: var(--mac-blue);
	text-decoration: underline;
	font: inherit;
	cursor: pointer;
}

.macfr :focus-visible,
.macfr-admin :focus-visible {
	outline: 3px solid var(--mac-blue);
	outline-offset: 2px;
}

.macfr-stats,
.macfr-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
	margin: 18px 0;
}

.macfr-stat,
.macfr-card {
	display: flex;
	flex-direction: column-reverse;
	justify-content: flex-end;
	gap: 4px;
	padding: 18px 20px;
	border-radius: var(--mac-radius);
	background: #fff;
	border: 1px solid var(--mac-line);
}

.macfr-stat span,
.macfr-card-label {
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--mac-muted);
}

.macfr-stat strong,
.macfr-card strong {
	font-family: var(--mac-display);
	font-size: 2.1rem;
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.macfr-stat-main {
	background: var(--mac-green);
	border-color: var(--mac-green);
}

.macfr-stat-main span,
.macfr-stat-main strong {
	color: #fff;
}

.macfr-stat-main strong {
	font-size: 2.8rem;
}

.macfr-stat-warn {
	background: var(--mac-orange-soft);
	border-color: var(--mac-orange);
}

.macfr-stat-warn strong {
	color: var(--mac-orange-deep);
}

.macfr-session-card,
.macfr-child {
	position: relative;
	padding: 22px 24px;
	margin-bottom: 18px;
	border-radius: var(--mac-radius);
	background: #fff;
	border: 1px solid var(--mac-line);
	border-left: 6px solid var(--mac-orange);
}

.macfr-session-head {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 14px;
}

.macfr-session-head strong {
	display: block;
	font-family: var(--mac-display);
	font-size: 1.3rem;
	font-weight: 500;
}

.macfr-session-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.macfr-qr-box {
	display: inline-block;
	padding: 16px;
	background: #fff;
	border: 1px solid var(--mac-line);
	border-radius: var(--mac-radius);
}

.macfr-qr-panel {
	margin: 12px 0 16px;
}

#macfr-reader {
	max-width: 440px;
	margin: 14px 0;
	border-radius: var(--mac-radius);
	overflow: hidden;
}

.macfr-scan-result {
	margin: 14px 0;
	padding: 16px 18px;
	border-radius: 12px;
	background: var(--mac-tint);
	border-left: 6px solid var(--mac-line);
	font-weight: 600;
	min-height: 1.2em;
}

.macfr-scan-result.is-ok {
	border-left-color: var(--mac-green);
	background: var(--mac-green-soft);
}

.macfr-scan-result.is-error {
	border-left-color: var(--mac-orange);
	background: var(--mac-orange-soft);
}

.macfr-table {
	width: 100%;
	border-collapse: collapse;
	margin: 10px 0 22px;
}

.macfr-table th,
.macfr-table td {
	text-align: left;
	padding: 12px 10px;
	border-bottom: 1px solid var(--mac-line);
	vertical-align: top;
}

.macfr-table th {
	font-family: var(--mac-display);
	font-size: 0.78rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--mac-muted);
}

.macfr-tag {
	display: inline-block;
	padding: 3px 11px;
	border-radius: 999px;
	font-size: 0.82rem;
	font-weight: 700;
	background: var(--mac-tint);
	border: 1px solid var(--mac-line);
}

.macfr-tag-present,
.macfr-tag-ok {
	background: var(--mac-green-soft);
	border-color: var(--mac-green);
	color: var(--mac-green);
}

.macfr-tag-late {
	background: var(--mac-orange-soft);
	border-color: var(--mac-orange);
	color: var(--mac-orange-deep);
}

.macfr-tag-absent {
	background: #fbeaea;
	border-color: #b3261e;
	color: #b3261e;
}

.macfr-tag-excused {
	background: var(--mac-blue-soft);
	border-color: var(--mac-blue);
	color: var(--mac-blue);
}

.macfr-formulas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 12px;
	margin: 14px 0;
}

.macfr-formula {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 20px;
	border-radius: var(--mac-radius);
	background: #fff;
	border: 1.5px solid var(--mac-line);
}

.macfr-formula-size {
	font-family: var(--mac-display);
	font-size: 1.2rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.macfr-formula-system {
	font-size: 0.88rem;
	color: var(--mac-muted);
}

.macfr-formula strong {
	font-family: var(--mac-display);
	font-size: 1.9rem;
	font-weight: 600;
	margin: 6px 0 0;
}

.macfr-formula .macfr-btn {
	margin-top: 12px;
}

.macfr-recap-card {
	padding: 16px 20px;
	margin-bottom: 10px;
	border-radius: 12px;
	background: #fff;
	border: 1px solid var(--mac-line);
	border-left: 6px solid var(--mac-blue);
}

.macfr-recap-head {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

.macfr-recap-head strong {
	font-family: var(--mac-display);
	font-weight: 500;
	font-size: 1.12rem;
}

.macfr-recap-card dl {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 6px 16px;
	margin: 12px 0 0;
}

.macfr-recap-card dt {
	font-family: var(--mac-display);
	font-size: 0.76rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mac-muted);
	padding-top: 3px;
}

.macfr-recap-card dd {
	margin: 0;
}

.macfr-recap {
	padding: 18px;
	margin: 6px 0 16px;
	border-radius: 12px;
	background: var(--mac-tint);
}

.macfr-recap label {
	display: block;
	margin-bottom: 12px;
	font-weight: 700;
}

.macfr-recap textarea,
.macfr-pay-amount {
	display: block;
	width: 100%;
	margin-top: 6px;
	padding: 10px 12px;
	border: 1.5px solid var(--mac-line);
	border-radius: 10px;
	font: 500 1rem var(--mac-body);
	background: #fff;
}

.macfr-docs {
	list-style: none;
	padding: 0;
	margin: 0 0 22px;
}

.macfr-docs li {
	padding: 12px 0;
	border-bottom: 1px solid var(--mac-line);
}

/* Espace diagnostic */
.macfr-diag {
	margin-top: 8px;
}

.macfr-diag-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 16px;
}

.macfr-diag-tabs [role="tab"] {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 18px 10px 10px;
	border-radius: 999px;
	border: 1.5px solid var(--mac-line);
	background: #fff;
	font: 700 1rem var(--mac-body);
	color: var(--mac-ink);
	cursor: pointer;
}

.macfr-diag-tab-no {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--mac-tint);
	font-family: var(--mac-display);
	font-size: 0.85rem;
	font-weight: 500;
}

.macfr-diag-tabs [role="tab"][aria-selected="true"] {
	background: var(--mac-blue);
	border-color: var(--mac-blue);
	color: #fff;
}

.macfr-diag-tabs [role="tab"][aria-selected="true"] .macfr-diag-tab-no {
	background: var(--mac-orange);
	color: #fff;
}

.macfr-diag-panel {
	padding: clamp(20px, 3vw, 34px);
	border-radius: var(--mac-radius);
	background: #fff;
	border: 1px solid var(--mac-line);
}

.macfr-diag-intro {
	margin: 0 0 6px;
	font-size: 1.08rem;
	font-weight: 600;
}

.macfr-diag-notice {
	margin: 0 0 16px;
	color: var(--mac-muted);
	font-size: 0.95rem;
}

.macfr-diag-progress {
	height: 6px;
	margin: 16px 0 6px;
	border-radius: 6px;
	background: var(--mac-tint);
	overflow: hidden;
}

.macfr-diag-progress span {
	display: block;
	width: 0;
	height: 100%;
	background: var(--mac-orange);
	transition: width 0.25s ease;
}

.macfr-diag-list {
	list-style: none;
	counter-reset: q;
	margin: 0 0 22px;
	padding: 0;
}

.macfr-diag-list li {
	counter-increment: q;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px 20px;
	align-items: center;
	padding: 14px 0;
	border-bottom: 1px solid var(--mac-line);
}

.macfr-diag-list li p {
	margin: 0;
	font-weight: 600;
}

.macfr-diag-list li p::before {
	content: counter(q) ". ";
	font-family: var(--mac-display);
	color: var(--mac-orange-deep);
}

.macfr-diag-scale,
.macfr-diag-choice {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.macfr-diag-scale label,
.macfr-diag-choice label {
	position: relative;
}

.macfr-diag-scale input,
.macfr-diag-choice input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.macfr-diag-scale label span,
.macfr-diag-choice label span {
	display: inline-block;
	padding: 8px 14px;
	border-radius: 999px;
	border: 1.5px solid var(--mac-line);
	background: #fff;
	font-weight: 600;
	font-size: 0.93rem;
	cursor: pointer;
	user-select: none;
}

.macfr-diag-scale label:hover span,
.macfr-diag-choice label:hover span {
	border-color: var(--mac-ink);
}

.macfr-diag-scale input:checked + span,
.macfr-diag-choice input:checked + span {
	background: var(--mac-ink);
	border-color: var(--mac-ink);
	color: #fff;
}

.macfr-diag-scale input:focus-visible + span,
.macfr-diag-choice input:focus-visible + span {
	outline: 3px solid var(--mac-blue);
	outline-offset: 2px;
}

.macfr-diag-volume fieldset {
	margin: 0 0 18px;
	padding: 0;
	border: 0;
}

.macfr-diag-volume legend {
	margin-bottom: 8px;
	font-weight: 700;
}

.macfr-diag-result {
	outline: none;
}

.macfr-diag-kicker {
	display: block;
	margin: 0 0 6px;
	font-family: var(--mac-display);
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--mac-orange-deep);
}

.macfr-diag-result h4 {
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	margin: 0 0 14px;
}

.macfr-diag-tips {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: grid;
	gap: 10px;
}

.macfr-diag-tips li {
	padding: 14px 18px;
	border-radius: 12px;
	background: var(--mac-tint);
	border-left: 5px solid var(--mac-green);
}

.macfr-diag-tips strong {
	display: block;
	font-family: var(--mac-display);
	font-weight: 500;
	font-size: 1.08rem;
	margin-bottom: 2px;
}

.macfr-diag-bars {
	display: grid;
	gap: 8px;
	margin: 6px 0 18px;
}

.macfr-diag-bar {
	display: grid;
	grid-template-columns: minmax(150px, 220px) 1fr;
	gap: 12px;
	align-items: center;
	font-size: 0.93rem;
}

.macfr-diag-bar-track {
	height: 10px;
	border-radius: 10px;
	background: var(--mac-tint);
	overflow: hidden;
}

.macfr-diag-bar-fill {
	display: block;
	height: 100%;
	border-radius: 10px;
	background: var(--mac-blue);
}

.macfr-diag-offer {
	display: grid;
	gap: 4px;
	margin: 16px 0;
	padding: 18px 22px;
	border-radius: var(--mac-radius);
	background: var(--mac-blue);
	color: #fff;
}

.macfr-diag-offer strong {
	font-family: var(--mac-display);
	font-size: 1.6rem;
	font-weight: 600;
}

.macfr-diag-offer span {
	opacity: 0.92;
}

.macfr-diag-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.macfr-diag-save {
	margin-top: 22px;
	padding: 18px 20px;
	border-radius: 12px;
	border: 1.5px dashed var(--mac-line);
}

.macfr-diag-save select {
	margin: 0 0 10px;
	padding: 8px 10px;
	border-radius: 8px;
	border: 1.5px solid var(--mac-line);
	font: inherit;
}

.macfr-diag-consent {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 0 0 12px;
	font-size: 0.95rem;
}

.macfr-diag-consent input {
	margin-top: 4px;
}

.macfr-diag-saved {
	display: grid;
	gap: 8px;
	margin: 8px 0 14px;
}

.macfr-diag-saved-item {
	padding: 12px 16px;
	border-radius: 10px;
	background: var(--mac-blue-soft);
	font-size: 0.95rem;
}

.macfr-diag-saved-item p {
	margin: 2px 0 4px;
}

/* Back-office */
.macfr-admin .macfr-grid-2 {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 26px;
}

.macfr-admin .macfr-inline-form {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	padding: 14px;
	margin-bottom: 18px;
	border-radius: 12px;
	background: var(--mac-tint);
	border: 1px solid var(--mac-line);
}

.macfr-admin .macfr-list {
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
}

.macfr-admin .macfr-list li {
	padding: 6px 0;
	border-bottom: 1px solid var(--mac-line);
}

.macfr-admin .macfr-danger {
	color: #b3261e;
}

.macfr-admin .macfr-detail-row td {
	background: var(--mac-tint);
}

.macfr-admin .macfr-cards .macfr-card strong {
	font-size: 1.8rem;
}

.macfr-badges {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
	gap: 14px;
	margin-top: 12px;
}

.macfr-badge {
	text-align: center;
	padding: 14px;
	border-radius: 12px;
	background: #fff;
	border: 1px solid var(--mac-line);
	border-top: 5px solid var(--mac-blue);
}

.macfr-badge span {
	display: block;
	margin-top: 8px;
	font-weight: 700;
}

.macfr-receipt {
	max-width: 540px;
	padding: 24px;
	border-radius: var(--mac-radius);
	border: 1px solid var(--mac-line);
	border-top: 6px solid var(--mac-orange);
}

.macfr-receipt table {
	width: 100%;
	border-collapse: collapse;
}

.macfr-receipt th {
	width: 40%;
	padding: 6px 0;
	text-align: left;
	color: var(--mac-muted);
}

.macfr-receipt-no {
	font-family: var(--mac-display);
	letter-spacing: 0.08em;
	color: var(--mac-orange-deep);
}

.macfr-receipt-footer {
	margin-top: 18px;
	font-family: var(--mac-display);
	font-size: 0.8rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--mac-muted);
}

.macfr-login form {
	max-width: 420px;
	padding: 28px;
	border-radius: var(--mac-radius);
	border: 1px solid var(--mac-line);
	background: #fff;
}

.macfr-login input[type="text"],
.macfr-login input[type="password"] {
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	border: 1.5px solid var(--mac-line);
	border-radius: 10px;
	font: inherit;
}

.macfr-login input[type="submit"] {
	min-height: 46px;
	padding: 10px 24px;
	border: 0;
	border-radius: 999px;
	background: var(--mac-orange);
	color: #fff;
	font: 700 1rem var(--mac-body);
	cursor: pointer;
}

@media (max-width: 640px) {
	.macfr-diag-list li {
		grid-template-columns: 1fr;
	}

	.macfr-diag-scale {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.macfr-diag-scale label span {
		display: block;
		text-align: center;
		padding: 9px 2px;
		font-size: 0.88rem;
	}

	.macfr-diag-bar {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.macfr-session-head {
		flex-direction: column;
	}

	.macfr-btn {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.macfr * {
		transition: none !important;
		animation: none !important;
	}
}

/* ------------------------------------------------------------------------
   Notifications : cloche et page « Mes notifications »
   ------------------------------------------------------------------------ */

.macfr-bell {
	position: relative;
}

.macfr-bell-btn {
	position: relative;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1.5px solid var(--mac-line);
	border-radius: 50%;
	background: #fff;
	color: var(--mac-ink);
	cursor: pointer;
}

.macfr-bell-btn:hover,
.macfr-bell-btn[aria-expanded="true"] {
	border-color: var(--mac-ink);
}

.macfr-bell-count {
	position: absolute;
	top: -4px;
	right: -6px;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--mac-orange);
	color: #fff;
	font: 700 0.72rem/20px var(--mac-body);
	text-align: center;
	box-shadow: 0 0 0 2px #fff;
}

.macfr-bell-count[hidden] {
	display: none;
}

.macfr-bell-panel {
	position: absolute;
	right: 0;
	top: calc(100% + 10px);
	z-index: 60;
	width: min(380px, calc(100vw - 24px));
	max-height: min(70vh, 560px);
	overflow: auto;
	border-radius: var(--mac-radius);
	background: #fff;
	border: 1px solid var(--mac-line);
	box-shadow: 0 12px 40px rgba(22, 18, 15, 0.16);
}

.macfr-bell-head {
	position: sticky;
	top: 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	padding: 14px 16px;
	background: #fff;
	border-bottom: 1px solid var(--mac-line);
}

.macfr-bell-head strong {
	font-family: var(--mac-display);
	font-weight: 500;
	font-size: 1.1rem;
}

.macfr-bell-list,
.macfr-notif-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.macfr-bell-list a,
.macfr-notif a {
	display: grid;
	gap: 2px;
	padding: 12px 16px 12px 22px;
	color: var(--mac-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--mac-line);
	position: relative;
}

.macfr-bell-list a:hover,
.macfr-notif a:hover {
	background: var(--mac-tint);
}

.macfr-bell-list span,
.macfr-notif span {
	font-size: 0.92rem;
	color: var(--mac-muted);
}

.macfr-bell-list time,
.macfr-notif time {
	font-size: 0.78rem;
	color: var(--mac-muted);
}

.is-unread > a::before {
	content: "";
	position: absolute;
	left: 8px;
	top: 19px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--mac-orange);
}

.is-unread > a strong {
	font-weight: 800;
}

.macfr-bell-empty {
	padding: 22px 16px;
	color: var(--mac-muted);
}

.macfr-bell-more {
	display: block;
	padding: 12px 16px;
	text-align: center;
	font-weight: 700;
	color: var(--mac-blue);
}

.macfr-notif-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}

.macfr-notif-list {
	margin: 10px 0 30px;
	border-top: 1px solid var(--mac-line);
}

.macfr-notif a {
	border-left: 4px solid transparent;
}

.macfr-notif-paiements a {
	border-left-color: var(--mac-orange);
}

.macfr-notif-seances a {
	border-left-color: var(--mac-blue);
}

.macfr-notif-suivi a {
	border-left-color: var(--mac-green);
}

.macfr-notif-prefs input[type="checkbox"] {
	width: 20px;
	height: 20px;
	accent-color: var(--mac-blue);
}

/* ------------------------------------------------------------------------
   Pointage v1.6 : l'élève affiche son QR de séance, le professeur le scanne
   ------------------------------------------------------------------------ */

.macfr-scanblock {
	margin: 4px 0 16px;
	padding: 16px 18px;
	border-radius: 14px;
	background: var(--mac-blue-soft);
	border: 1px solid #cfdcf3;
}

.macfr-steps-mini {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
	counter-reset: st;
	font-weight: 600;
	font-size: 0.92rem;
}

.macfr-steps-mini li {
	counter-increment: st;
	display: flex;
	align-items: center;
	gap: 8px;
}

.macfr-steps-mini li::before {
	content: counter(st);
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--mac-blue);
	color: #fff;
	font-size: 0.78rem;
}

.macfr-reader {
	max-width: 380px;
	margin: 12px 0;
	border-radius: 14px;
	overflow: hidden;
	background: #000;
}

.macfr-code-form {
	margin-top: 12px;
}

.macfr-code-form label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--mac-muted);
}

.macfr-code-form div {
	display: flex;
	gap: 8px;
	max-width: 320px;
}

.macfr-code-form input {
	flex: 1;
	min-width: 0;
	min-height: 46px;
	padding: 8px 12px;
	border: 1.5px solid var(--mac-line);
	border-radius: 12px;
	font: 700 1.2rem "Courier New", monospace;
	letter-spacing: 0.25em;
	text-align: center;
	background: #fff;
}

.macfr-scanblock .macfr-scan-result:empty {
	display: none;
}

/* QR de séance de l'élève */
.macfr-myqr {
	margin: 10px 0 22px;
}

.macfr-myqr h3 {
	margin-top: 0;
}

.macfr-myqr-card {
	display: grid;
	justify-items: center;
	gap: 8px;
	max-width: 360px;
	margin: 0 0 12px;
	padding: 20px;
	border-radius: 18px;
	background: #fff;
	border: 1px solid var(--mac-line);
	border-top: 6px solid var(--mac-orange);
	text-align: center;
}

.macfr-myqr-card.is-done {
	border-top-color: var(--mac-green);
}

.macfr-myqr-info {
	display: grid;
	gap: 2px;
}

.macfr-myqr-info strong {
	font-family: var(--mac-display);
	font-weight: 500;
	font-size: 1.3rem;
}

.macfr-myqr-code {
	padding: 10px;
	background: #fff;
	border-radius: 12px;
	min-height: 60px;
}

.macfr-myqr-code img,
.macfr-myqr-code canvas {
	display: block;
	margin: 0 auto;
}

.macfr-myqr-digits {
	margin: 0;
	font: 700 1.6rem "Courier New", monospace;
	letter-spacing: 0.12em;
	color: var(--mac-blue);
}

.macfr-myqr-digits span {
	display: block;
	font: 600 0.75rem var(--mac-body);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--mac-muted);
}

.macfr-myqr-ok {
	margin: 4px 0;
	font-weight: 700;
	color: var(--mac-green);
}

/* Code à 6 chiffres : le champ garde sa largeur à côté du bouton, même sur téléphone. */
.macfr-code-form .macfr-btn {
	width: auto;
	flex: none;
	min-height: 46px;
}

.macfr-code-form input {
	min-width: 140px;
}
