/* Nos Réussites - Travailler au Canada/Québec : portail candidat et espace formateurs

   Même langage que la Salle de classe FLE (1.64) : une barre blanche en haut
   avec la marque, les rubriques en pilules et les initiales de la personne ;
   un tableau de bord en panneaux ; une carte à la une, seul aplat sombre de
   l'écran ; des cartes blanches très arrondies.

   Les variables viennent de form.css (bloc .nrtc-wrap). */

.nrtc-wrap h1, .nrtc-wrap h2, .nrtc-wrap h3, .nrtc-wrap h4 {
	font-family: inherit;
	color: var(--nrtc-ink);
	letter-spacing: -.01em;
}
/* Sur les aplats sombres, le titre reste blanc (la règle ci-dessus pèse plus lourd que .nrtc-header h2). */
.nrtc-wrap .nrtc-header h2,
.nrtc-wrap .nrtc-tdb-une__titre { color: #fff; }
.nrtc-wrap p { margin: 0; }

/* =========================================================================
   LA BARRE DU HAUT
   ====================================================================== */
.nrtc-entete {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 30;
	background: var(--nrtc-fond);
	padding-bottom: 2px;
}
.nrtc-nav {
	background: #fff;
	border-radius: 20px;
	box-shadow: var(--nrtc-ombre-1);
}
.nrtc-nav__barre {
	display: flex;
	align-items: center;
	gap: 4px;
	padding: 8px 10px 8px 12px;
}
.nrtc-nav__marque { display: flex; align-items: center; gap: 10px; margin-right: 12px; min-width: 0; flex: 0 1 auto; }
.nrtc-nav__logo {
	width: 38px; height: 38px; border-radius: 12px; flex: 0 0 auto;
	display: grid; place-items: center;
	background: var(--nrtc-accent-plein); color: #fff;
}
.nrtc-nav__logo svg { width: 22px; height: 22px; display: block; }
.nrtc-nav__marque-texte { min-width: 0; line-height: 1.2; }
.nrtc-nav__marque-texte strong { display: block; font-size: 15.5px; font-weight: 700; color: var(--nrtc-ink); white-space: nowrap; }
.nrtc-nav__marque-texte small { display: block; font-size: 12.5px; color: var(--nrtc-muted); white-space: nowrap; }

.nrtc-nav__menu {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	gap: 2px;
	min-width: 0;
	/* Remet à plat les règles d'onglets génériques plus bas. */
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}
.nrtc-wrap .nrtc-nav__lien {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 15px;
	margin: 0;
	border: 0;
	border-radius: var(--nrtc-pilule);
	font-size: 14.5px;
	font-weight: 600;
	white-space: nowrap;
	text-decoration: none;
	color: var(--nrtc-ink);
	background: none;
}
.nrtc-wrap .nrtc-nav__lien:hover { background: var(--nrtc-lavis); color: var(--nrtc-primary); }
.nrtc-wrap .nrtc-nav__lien.active,
.nrtc-wrap .nrtc-nav__lien.active:hover { background: var(--nrtc-primary); color: #fff; }
.nrtc-nav__picto { display: inline-flex; }
.nrtc-nav__picto svg { width: 18px; height: 18px; display: block; }
.nrtc-nav__moi {
	width: 40px; height: 40px; border-radius: 50%; flex: 0 0 auto; margin-left: 6px;
	display: grid; place-items: center;
	background: var(--nrtc-lavis-fort); color: var(--nrtc-primary);
	font-size: 14px; font-weight: 700; letter-spacing: .02em;
}
.nrtc-nav__burger { display: none; }
.nrtc-nav--sans-menu .nrtc-nav__barre { padding: 10px 14px; }

/* La ligne sous la barre : le dossier, son statut, la sortie. */
.nrtc-ligne {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 10px 6px 4px;
	font-size: 13.5px;
	color: var(--nrtc-muted);
}
.nrtc-ligne strong { color: var(--nrtc-ink); font-weight: 650; }
.nrtc-ligne__sortie { margin: 0 0 0 auto; }
.nrtc-ligne__sortie .nrtc-btn-outline { display: inline-flex; align-items: center; gap: 7px; padding: 7px 15px; font-size: 13.5px; }
.nrtc-ligne__sortie svg { width: 16px; height: 16px; }

.nrtc-wrap .nrtc-corps { padding: 18px 6px 6px; }

/* Le compteur rouge « messages non lus » : un signal, donc rouge, et un
   nombre, donc lisible sans la couleur. */
.nrtc-tab-badge {
	display: inline-block;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: var(--nrtc-pilule);
	background: var(--nrtc-danger);
	color: #fff;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 20px;
	text-align: center;
	vertical-align: middle;
}

/* =========================================================================
   BOUTONS
   ====================================================================== */
.nrtc-wrap .nrtc-btn-outline {
	display: inline-block;
	background: #fff;
	border: 0;
	color: var(--nrtc-primary);
	padding: 9px 18px;
	border-radius: var(--nrtc-pilule);
	cursor: pointer;
	font-family: inherit;
	font-size: 14px;
	font-weight: 650;
	line-height: 1.3;
	text-decoration: none;
	box-shadow: inset 0 0 0 1.5px var(--nrtc-line), var(--nrtc-ombre-1);
	transition: box-shadow .15s ease;
}
.nrtc-wrap .nrtc-btn-outline:hover { box-shadow: inset 0 0 0 1.5px var(--nrtc-accent), var(--nrtc-ombre-1); background: #fff; }
.nrtc-wrap .nrtc-btn-outline.active { background: var(--nrtc-ink); color: #fff; box-shadow: none; }
.nrtc-wrap .nrtc-submit-btn-small { padding: 10px 22px; font-size: 14.5px; white-space: nowrap; }
.nrtc-wrap .button,
.nrtc-wrap button.button {
	background: #fff;
	border: 0;
	color: var(--nrtc-primary);
	padding: 8px 16px;
	border-radius: var(--nrtc-pilule);
	cursor: pointer;
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 650;
	box-shadow: inset 0 0 0 1.5px var(--nrtc-line);
}
.nrtc-wrap .button:hover { box-shadow: inset 0 0 0 1.5px var(--nrtc-accent); }

/* =========================================================================
   TABLEAU DE BORD
   ====================================================================== */
.nrtc-tdb-bonjour { display: block; margin: 2px 4px 18px; }
.nrtc-tdb-bonjour .nrtc-tdb-bonjour__titre {
	margin: 0;
	font-size: clamp(26px, 3vw, 38px);
	font-weight: 560;
	letter-spacing: -.02em;
	line-height: 1.12;
}
.nrtc-soustitre { margin-top: 6px; font-size: 15px; color: var(--nrtc-muted); }

.nrtc-tdb-grille {
	display: grid;
	gap: 18px;
	align-items: start;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}
.nrtc-tdb-colonne { display: grid; gap: 18px; align-content: start; min-width: 0; }

.nrtc-tdb-panneau {
	background: var(--nrtc-panneau);
	border-radius: var(--nrtc-r-l);
	padding: 18px;
	margin: 0;
	min-width: 0;
}
.nrtc-tdb-panneau__tete { display: flex; align-items: center; gap: 10px; margin: 0 4px 14px; flex-wrap: wrap; }
.nrtc-tdb-panneau__titre { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -.01em; }
.nrtc-tdb-panneau__compte { margin-left: auto; font-size: 13px; color: var(--nrtc-muted); }
.nrtc-tdb-vide {
	margin: 0;
	padding: 16px;
	border-radius: var(--nrtc-r-m);
	background: #fff;
	color: var(--nrtc-muted);
	font-size: 14.5px;
}

/* Une ligne cliquable : pictogramme, titre, pastille, flèche. */
.nrtc-tdb-ligne {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 14px;
	width: 100%;
	text-align: left;
	text-decoration: none;
	color: var(--nrtc-ink);
	background: #fff;
	border: 0;
	border-radius: var(--nrtc-r-m);
	padding: 14px 16px;
	box-shadow: var(--nrtc-ombre-1);
	transition: box-shadow .15s ease;
}
.nrtc-wrap a.nrtc-tdb-ligne { color: var(--nrtc-ink); }
.nrtc-tdb-ligne + .nrtc-tdb-ligne { margin-top: 10px; }
.nrtc-tdb-ligne:hover { box-shadow: var(--nrtc-ombre-2); }
.nrtc-tdb-ligne__titre { display: block; font-size: 15.5px; font-weight: 650; }
.nrtc-tdb-ligne__sous { display: block; margin-top: 2px; font-size: 13px; color: var(--nrtc-muted); }
.nrtc-tdb-icone {
	width: 46px; height: 46px; border-radius: 14px; flex: 0 0 auto;
	display: grid; place-items: center;
	background: var(--nrtc-lavis-fort); color: var(--nrtc-primary);
}
.nrtc-tdb-icone svg { width: 24px; height: 24px; display: block; }
.nrtc-tdb-icone--alerte { background: color-mix(in srgb, var(--nrtc-alerte) 14%, #fff); color: var(--nrtc-alerte); }
.nrtc-tdb-pastille {
	border-radius: var(--nrtc-pilule); padding: 3px 10px; white-space: nowrap;
	font-size: 12.5px; font-weight: 650;
	background: var(--nrtc-lavis-fort); color: var(--nrtc-primary);
}
.nrtc-tdb-fleche {
	width: 38px; height: 38px; border-radius: 50%; flex: 0 0 auto;
	display: grid; place-items: center; background: var(--nrtc-lavis); color: var(--nrtc-primary);
}
.nrtc-tdb-fleche svg { width: 18px; height: 18px; display: block; }

/* La carte à la une. */
.nrtc-tdb-une {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-height: 210px;
	padding: 22px;
	border-radius: var(--nrtc-r-l);
	color: #fff;
	background: linear-gradient(150deg, #155F5F 0%, #0C3534 60%, #0A2928 100%);
}
.nrtc-tdb-une::after {
	content: "";
	position: absolute; right: -60px; top: -60px; width: 220px; height: 220px;
	border-radius: 50%; pointer-events: none;
	background: radial-gradient(circle, rgba(27,138,138,.55), transparent 70%);
}
.nrtc-tdb-une__sur { position: relative; z-index: 1; font-size: 13px; font-weight: 600; color: #A9D3D2; padding-right: 52px; }
.nrtc-tdb-une__titre { position: relative; z-index: 1; margin: 0; font-size: 26px; font-weight: 560; line-height: 1.15; letter-spacing: -.01em; color: #fff; max-width: 18ch; }
.nrtc-tdb-une__chiffre { position: relative; z-index: 1; font-size: clamp(44px, 5vw, 60px); font-weight: 700; line-height: 1; letter-spacing: -.02em; }
.nrtc-tdb-une__note { position: relative; z-index: 1; font-size: 13.5px; color: #CFE6E5; }
.nrtc-tdb-une__pied { position: relative; z-index: 1; margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.nrtc-wrap .nrtc-tdb-une__bouton {
	display: inline-block;
	border: 0; border-radius: var(--nrtc-pilule); padding: 10px 20px;
	background: #fff; color: #0F5F60; font-size: 14px; font-weight: 650; text-decoration: none;
	margin: 0; cursor: pointer; font-family: inherit;
}
.nrtc-wrap a.nrtc-tdb-une__bouton:hover { color: #0F5F60; text-decoration: underline; text-underline-offset: 2px; }
.nrtc-wrap .nrtc-tdb-une__bouton--voile { background: rgba(255,255,255,.12); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.3); }
.nrtc-wrap a.nrtc-tdb-une__bouton--voile:hover { color: #fff; }
.nrtc-tdb-une :focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.nrtc-tdb-une__coin {
	position: absolute; top: 18px; right: 18px; z-index: 1;
	width: 42px; height: 42px; border-radius: 50%;
	display: grid; place-items: center; background: #fff; color: #0F5F60;
}
.nrtc-tdb-une__coin svg { width: 20px; height: 20px; display: block; }

/* Le bouton « Rejoindre ma classe » : actif (blanc, sur la carte sombre) ou
   éteint (« Pas inscrit »). Le libellé change, pas seulement la couleur. */
.nrtc-btn-classe-inactif { cursor: not-allowed; pointer-events: none; }

/* Niveau visé, contact : des cartes blanches. */
.nrtc-tdb-niveau {
	display: flex; align-items: center; gap: 16px;
	background: #fff; border-radius: var(--nrtc-r-m); padding: 16px; box-shadow: var(--nrtc-ombre-1);
}
.nrtc-tdb-niveau__lettre {
	width: 72px; height: 72px; border-radius: 20px; flex: 0 0 auto;
	display: grid; place-items: center;
	background: var(--nrtc-lavis-fort); color: var(--nrtc-primary); font-size: 26px; font-weight: 750;
}
.nrtc-tdb-niveau h3 { margin: 0; font-size: 16px; font-weight: 650; }
.nrtc-tdb-niveau p { margin: 4px 0 0; font-size: 14px; line-height: 1.45; color: var(--nrtc-muted); }
.nrtc-tdb-niveau p strong { color: var(--nrtc-ink); font-weight: 600; }

/* =========================================================================
   LA FRISE DU DOSSIER
   ====================================================================== */
.nrtc-timeline {
	display: flex;
	justify-content: space-between;
	margin: 0;
	padding: 20px 12px 16px;
	background: #fff;
	border-radius: var(--nrtc-r-m);
	box-shadow: var(--nrtc-ombre-1);
}
.nrtc-timeline-step { position: relative; text-align: center; flex: 1 1 0; min-width: 0; }
/* Chaque étape trace le tronçon qui la relie à la précédente. */
.nrtc-timeline-step + .nrtc-timeline-step::before {
	content: "";
	position: absolute;
	top: 13px;
	right: 50%;
	width: 100%;
	height: 3px;
	border-radius: 3px;
	background: var(--nrtc-line);
}
.nrtc-timeline-step.done + .nrtc-timeline-step.done::before { background: var(--nrtc-accent); }
.nrtc-timeline-dot {
	position: relative;
	z-index: 1;
	display: block;
	width: 28px; height: 28px;
	border-radius: 50%;
	background: #fff;
	margin: 0 auto 10px;
	box-shadow: inset 0 0 0 3px var(--nrtc-line);
}
.nrtc-timeline-step.done .nrtc-timeline-dot { background: var(--nrtc-accent-plein); box-shadow: none; }
.nrtc-timeline-step.done .nrtc-timeline-dot::after {
	content: "";
	position: absolute;
	left: 10px; top: 6px;
	width: 6px; height: 12px;
	border: solid #fff;
	border-width: 0 2.5px 2.5px 0;
	transform: rotate(45deg);
}
.nrtc-timeline-step.nrtc-timeline-step--courant .nrtc-timeline-dot {
	box-shadow: 0 0 0 5px color-mix(in srgb, var(--nrtc-accent) 22%, transparent);
}
.nrtc-timeline-label { display: block; font-size: 13px; color: var(--nrtc-muted); max-width: 130px; margin: 0 auto; line-height: 1.35; }
.nrtc-timeline-step.done .nrtc-timeline-label { color: var(--nrtc-ink); font-weight: 600; }

/* =========================================================================
   CARTES, ANNONCES, TITRES
   ====================================================================== */
.nrtc-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; margin-bottom: 18px; }
.nrtc-card {
	background: #fff;
	border: 0;
	border-radius: var(--nrtc-r-m);
	padding: clamp(15px, 1.8vw, 21px);
	box-shadow: var(--nrtc-ombre-1);
	min-width: 0;
}
.nrtc-card h3 { margin: 0 0 10px; font-size: 16px; font-weight: 650; }
.nrtc-card h4 { margin: 0 0 10px; font-size: 15.5px; font-weight: 650; }
.nrtc-card p { margin: 4px 0; font-size: 14.5px; }
.nrtc-card form + form, .nrtc-card p + form { margin-top: 10px; }

.nrtc-section-title { margin: 24px 4px 12px; font-size: 19px; font-weight: 600; letter-spacing: -.01em; }
.nrtc-portal-content > .nrtc-section-title:first-child { margin-top: 4px; }

.nrtc-announcement {
	background: #fff;
	border-radius: var(--nrtc-r-m);
	box-shadow: var(--nrtc-ombre-1);
	padding: 14px 16px;
}
.nrtc-announcement + .nrtc-announcement { margin-top: 10px; }
.nrtc-announcement strong { font-size: 15.5px; font-weight: 650; }
.nrtc-announcement-date { color: var(--nrtc-muted); font-size: 12.5px; margin-left: 8px; }
.nrtc-announcement p { margin: 6px 0 0; font-size: 14.5px; color: var(--nrtc-ink); }

.nrtc-wrap .description { color: var(--nrtc-muted); font-size: 13.5px; margin: 10px 4px 0; }

/* =========================================================================
   DOCUMENTS ET TABLEAUX
   ====================================================================== */
.nrtc-upload-form {
	background: #fff;
	border-radius: var(--nrtc-r-m);
	box-shadow: var(--nrtc-ombre-1);
	padding: 18px 20px;
	margin-bottom: 18px;
	display: grid;
	grid-template-columns: 1fr 1fr auto;
	gap: 14px;
	align-items: end;
}

.nrtc-wrap table.nrtc-doc-table,
.nrtc-wrap table.nrtc-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: #fff;
	border: 0;
	border-radius: var(--nrtc-r-m);
	box-shadow: var(--nrtc-ombre-1);
	overflow: hidden;
	margin: 0 0 16px;
}
.nrtc-wrap .nrtc-doc-table th,
.nrtc-wrap .nrtc-doc-table td,
.nrtc-wrap .nrtc-table th,
.nrtc-wrap .nrtc-table td {
	padding: 13px 16px;
	text-align: left;
	font-size: 14.5px;
	vertical-align: middle;
	border: 0;
	border-bottom: 1px solid color-mix(in srgb, var(--nrtc-line) 60%, #fff);
	background: transparent;
	color: var(--nrtc-ink);
}
.nrtc-wrap .nrtc-doc-table thead th,
.nrtc-wrap .nrtc-table thead th {
	background: var(--nrtc-lavis);
	color: var(--nrtc-muted);
	font-size: 12.5px;
	font-weight: 650;
	letter-spacing: .02em;
	white-space: nowrap;
}
.nrtc-wrap .nrtc-doc-table tbody tr:last-child td,
.nrtc-wrap .nrtc-table tbody tr:last-child td,
.nrtc-wrap .nrtc-table tbody tr:last-child th { border-bottom: 0; }
.nrtc-wrap .nrtc-table tbody tr:hover td { background: var(--nrtc-lavis); }
/* La fiche d'un dossier : un libellé, une valeur. */
.nrtc-wrap .nrtc-table--fiche tbody th {
	width: 36%;
	color: var(--nrtc-muted);
	font-weight: 600;
	background: transparent;
	border-bottom: 1px solid color-mix(in srgb, var(--nrtc-line) 60%, #fff);
}
.nrtc-wrap .nrtc-table--fiche tbody tr:hover td,
.nrtc-wrap .nrtc-table--fiche tbody tr:hover th { background: var(--nrtc-lavis); }

/* Pastilles de statut : un libellé, toujours, et une couleur en plus. */
.nrtc-doc-status,
.nrtc-wrap .nrtc-badge {
	display: inline-block;
	padding: 3px 11px;
	border-radius: var(--nrtc-pilule);
	font-size: 12.5px;
	font-weight: 650;
	white-space: nowrap;
	background: var(--nrtc-lavis-gris, #EEF0F0);
	color: #3F4B4A;
}
.nrtc-doc-status-ok, .nrtc-wrap .nrtc-badge-complet { background: var(--nrtc-success-bg); color: var(--nrtc-succes); }
.nrtc-doc-status-wait, .nrtc-wrap .nrtc-badge-nouveau { background: var(--nrtc-lavis-fort); color: var(--nrtc-primary); }
.nrtc-doc-status-warn { background: var(--nrtc-error-bg); color: var(--nrtc-danger); }
.nrtc-wrap .nrtc-badge-en_cours { background: #FBF0DC; color: var(--nrtc-alerte); }
.nrtc-wrap .nrtc-badge-traite { background: #ECEEEE; color: #4B5857; }

/* =========================================================================
   MESSAGERIE
   ====================================================================== */
.nrtc-chat {
	display: flex;
	flex-direction: column;
	height: min(560px, 70vh);
	background: #fff;
	border-radius: var(--nrtc-r-l);
	box-shadow: var(--nrtc-ombre-1);
	overflow: hidden;
}
.nrtc-chat-messages { flex: 1; overflow-y: auto; padding: 20px; display: flex; flex-direction: column; gap: 12px; background: var(--nrtc-lavis); }
.nrtc-chat-empty { color: var(--nrtc-muted); text-align: center; margin: 40px auto 0; max-width: 36ch; }

.nrtc-msg { max-width: min(560px, 78%); padding: 11px 15px; border-radius: 18px; font-size: 14.5px; line-height: 1.5; box-shadow: var(--nrtc-ombre-1); }
.nrtc-msg-me { align-self: flex-end; background: var(--nrtc-accent-plein); color: #fff; border-bottom-right-radius: 5px; }
.nrtc-msg-team { align-self: flex-start; background: #fff; color: var(--nrtc-ink); border-bottom-left-radius: 5px; }
.nrtc-msg-label { font-size: 12px; font-weight: 700; margin-bottom: 3px; }
.nrtc-msg-time { font-size: 11.5px; margin-top: 4px; text-align: right; }

.nrtc-chat-form { display: flex; align-items: flex-end; gap: 10px; padding: 14px; background: #fff; border-top: 1px solid color-mix(in srgb, var(--nrtc-line) 60%, #fff); }
.nrtc-chat-form textarea {
	flex: 1;
	border: 1px solid color-mix(in srgb, var(--nrtc-line) 55%, #fff);
	border-radius: 14px;
	padding: 10px 14px;
	font-family: inherit;
	font-size: 14.5px;
	resize: none;
	box-shadow: inset 0 2px 5px -3px rgba(15,60,58,.22);
}
.nrtc-chat-form textarea:focus { outline: none; border-color: var(--nrtc-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--nrtc-accent) 22%, transparent); }
.nrtc-chat-form select {
	border: 1px solid color-mix(in srgb, var(--nrtc-line) 55%, #fff);
	border-radius: var(--nrtc-pilule);
	padding: 9px 12px;
	font-family: inherit;
	font-size: 13.5px;
	background: #fff;
}

.nrtc-portal-content { margin-top: 6px; }

/* =========================================================================
   CONNEXION
   ====================================================================== */
.nrtc-login-form { max-width: 460px; margin: 0 auto 16px; }
.nrtc-login-form .nrtc-field { margin-bottom: 14px; }
.nrtc-login-form .nrtc-field input { width: 100%; }
.nrtc-login-form .nrtc-submit-row { margin-top: 20px; }
.nrtc-formateur-login {
	max-width: 440px;
	margin: 16px auto;
	background: #fff;
	border-radius: var(--nrtc-r-l);
	padding: clamp(24px, 4vw, 36px);
	box-shadow: var(--nrtc-ombre-2);
	text-align: center;
}
.nrtc-formateur-badge {
	display: inline-block;
	background: var(--nrtc-lavis-fort);
	color: var(--nrtc-primary);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	padding: 5px 14px;
	border-radius: var(--nrtc-pilule);
	margin-bottom: 14px;
}
.nrtc-formateur-login h2 { margin: 0 0 6px; font-size: 22px; font-weight: 600; }
.nrtc-formateur-sub { color: var(--nrtc-muted); font-size: 14px; margin: 0 0 22px; }
.nrtc-formateur-login .nrtc-field { text-align: left; margin-bottom: 14px; }
.nrtc-formateur-login .nrtc-field input { width: 100%; }
.nrtc-formateur-login .nrtc-alert { text-align: left; margin-bottom: 18px; }
.nrtc-formateur-lost { margin-top: 16px; font-size: 13.5px; }

/* =========================================================================
   ESPACE FORMATEURS
   ====================================================================== */
.nrtc-formateur-workspace .nrtc-portal-header { align-items: center; }
.nrtc-formateur-add-form { background: #fff; border-radius: var(--nrtc-r-m); box-shadow: var(--nrtc-ombre-1); padding: 16px 20px; margin-bottom: 24px; }
.nrtc-formateur-add-form textarea { width: 100%; margin: 10px 0; }

/* Recherche et filtres par statut. */
.nrtc-wrap .nrtc-search-form { margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.nrtc-wrap .nrtc-search-form input[type=search] {
	flex: 1 1 260px;
	min-width: 0;
	border: 1px solid color-mix(in srgb, var(--nrtc-line) 55%, #fff);
	border-radius: var(--nrtc-pilule);
	padding: 10px 16px;
	font-family: inherit;
	font-size: 14.5px;
	background: #fff;
	box-shadow: inset 0 2px 5px -3px rgba(15,60,58,.22);
}
.nrtc-wrap .nrtc-search-form input[type=search]:focus { outline: none; border-color: var(--nrtc-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--nrtc-accent) 22%, transparent); }
.nrtc-tdb-filtres { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.nrtc-wrap .nrtc-tdb-filtre {
	display: inline-block;
	border: 0; border-radius: var(--nrtc-pilule); padding: 6px 14px;
	font-size: 13px; font-weight: 600; text-decoration: none;
	background: #fff; color: var(--nrtc-muted); box-shadow: var(--nrtc-ombre-1);
}
.nrtc-wrap .nrtc-tdb-filtre:hover { color: var(--nrtc-primary); }
.nrtc-wrap .nrtc-tdb-filtre[aria-current="true"] { background: var(--nrtc-ink); color: #fff; }

.nrtc-wrap .nrtc-pagination { margin: 14px 0 4px; display: flex; flex-wrap: wrap; gap: 6px; }
.nrtc-wrap .nrtc-pagination .nrtc-btn-outline { padding: 7px 14px; }

/* L'en-tête d'un dossier : retour, titre, statut. */
.nrtc-dossier-tete { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 4px 4px 14px; }
.nrtc-dossier-tete h3 { margin: 0; font-size: clamp(22px, 2.4vw, 30px); font-weight: 560; letter-spacing: -.015em; }
.nrtc-dossier-retour { display: inline-flex; align-items: center; gap: 6px; margin: 2px 4px 10px; font-size: 14px; font-weight: 600; text-decoration: none; }
.nrtc-dossier-retour svg { width: 16px; height: 16px; }

/* Les sous-onglets : une rangée de pilules, la courante en sarcelle. */
.nrtc-portal-content .nrtc-portal-tabs,
.nrtc-portal-tabs.nrtc-soustabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 18px;
	padding: 0;
	border: 0;
}
.nrtc-wrap .nrtc-soustabs .nrtc-tab {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 8px 16px;
	border: 0;
	border-radius: var(--nrtc-pilule);
	background: #fff;
	box-shadow: var(--nrtc-ombre-1);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	color: var(--nrtc-muted);
	margin: 0;
}
.nrtc-wrap .nrtc-soustabs .nrtc-tab:hover { color: var(--nrtc-primary); }
.nrtc-wrap .nrtc-soustabs .nrtc-tab.active { background: var(--nrtc-primary); color: #fff; }

.nrtc-wrap .nrtc-detail-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; }

/* =========================================================================
   CRÉNEAUX D'ENTRETIEN
   ====================================================================== */
.nrtc-slot-grid { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 22px; }
.nrtc-slot-pick { margin: 0; }
.nrtc-wrap .nrtc-slot-btn {
	background: #fff;
	border: 0;
	color: var(--nrtc-primary);
	font-family: inherit;
	font-weight: 700;
	font-size: 14.5px;
	padding: 10px 20px;
	border-radius: var(--nrtc-pilule);
	cursor: pointer;
	box-shadow: inset 0 0 0 1.5px var(--nrtc-accent), var(--nrtc-ombre-1);
	transition: background .15s ease, color .15s ease;
}
.nrtc-wrap .nrtc-slot-btn:hover { background: var(--nrtc-accent-plein); color: #fff; box-shadow: var(--nrtc-ombre-1); }

.nrtc-slot-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin-top: 10px; }
.nrtc-slot-form label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; color: var(--nrtc-ink); }
.nrtc-slot-form input[type=date],
.nrtc-slot-form input[type=time] {
	border: 1px solid color-mix(in srgb, var(--nrtc-line) 55%, #fff);
	border-radius: 11px;
	padding: 9px 11px;
	font-size: 14.5px;
	font-family: inherit;
	background: #fff;
	box-shadow: inset 0 2px 5px -3px rgba(15,60,58,.22);
}

/* =========================================================================
   TABLETTE ET TÉLÉPHONE
   ====================================================================== */
/* Sous 1 180 px, cinq rubriques et le nom ne tiennent plus sur une ligne : elles passent derrière « Menu ». */
@media (max-width: 1180px) {
	.nrtc-nav__barre { flex-wrap: wrap; }
	.nrtc-js .nrtc-nav__burger {
		display: inline-flex; align-items: center; gap: 8px; margin-left: auto;
		border: 0; border-radius: var(--nrtc-pilule); box-shadow: inset 0 0 0 1px var(--nrtc-line);
		padding: 9px 15px; background: #fff; color: var(--nrtc-primary); font-family: inherit; font-size: 14.5px; font-weight: 650; cursor: pointer;
	}
	.nrtc-nav__moi { order: 3; }
	.nrtc-nav__menu { order: 10; flex: 1 1 100%; flex-direction: column; align-items: stretch; gap: 4px; padding: 8px 0 4px; }
	.nrtc-js .nrtc-nav__menu { display: none; }
	.nrtc-js .nrtc-nav__menu.nrtc-nav__menu--ouvert { display: flex; }
	.nrtc-wrap .nrtc-nav__lien { border-radius: 12px; justify-content: flex-start; }
	.nrtc-nav__menu .nrtc-tab-badge { margin-left: auto; }
}
@media (max-width: 900px) {
	.nrtc-tdb-grille { grid-template-columns: minmax(0, 1fr); }
	/* Une seule colonne : les blocs se suivent dans l'ordre du balisage. La
	   carte à la une remonte en tête quand elle porte l'action du moment
	   (classe ouverte, messages à lire). */
	.nrtc-tdb-colonne { display: contents; }
	.nrtc-tdb-grille--une-dabord .nrtc-tdb-une { order: -1; }
}
@media (max-width: 680px) {
	.nrtc-cards { grid-template-columns: 1fr; }
	.nrtc-upload-form { grid-template-columns: minmax(0, 1fr); }
	.nrtc-entete { position: static; }
	.nrtc-nav__marque-texte small { display: none; }
	.nrtc-tdb-panneau { padding: 12px; border-radius: 22px; }
	.nrtc-tdb-ligne { gap: 12px; padding: 12px; }
	.nrtc-tdb-ligne { grid-template-columns: auto minmax(0, 1fr); }
	.nrtc-tdb-ligne > .nrtc-tdb-pastille { grid-column: 2; justify-self: start; }
	.nrtc-tdb-ligne > .nrtc-tdb-fleche { display: none; }
	.nrtc-tdb-icone { width: 40px; height: 40px; border-radius: 12px; }
	.nrtc-tdb-une { min-height: 0; }
	.nrtc-tdb-une__titre { font-size: 22px; }
	.nrtc-timeline { padding: 16px 4px 12px; }
	.nrtc-timeline-label { font-size: 11.5px; }
	.nrtc-ligne { gap: 8px; }
	.nrtc-ligne__sortie { margin-left: auto; }
	.nrtc-slot-grid { gap: 8px; }
	.nrtc-wrap .nrtc-slot-btn { flex: 1 1 calc(33% - 8px); text-align: center; padding: 10px 8px; }
	.nrtc-slot-form { flex-direction: column; align-items: stretch; }
	.nrtc-msg { max-width: 90%; }
	.nrtc-chat-form { flex-wrap: wrap; }
	.nrtc-chat-form select { flex: 1 1 100%; max-width: none !important; }
	.nrtc-tdb-bonjour { margin-bottom: 14px; }
}
@media (max-width: 420px) {
	.nrtc-nav__marque-texte { display: none; }
}

/* =========================================================================
   MOUVEMENT, CONTRASTE, IMPRESSION
   ====================================================================== */
@media (prefers-contrast: more) {
	.nrtc-nav, .nrtc-card, .nrtc-tdb-ligne, .nrtc-tdb-niveau, .nrtc-timeline, .nrtc-announcement,
	.nrtc-upload-form, .nrtc-chat, .nrtc-formateur-login, .nrtc-wrap table.nrtc-table, .nrtc-wrap table.nrtc-doc-table { box-shadow: none; border: 2px solid var(--nrtc-line); }
	.nrtc-tdb-une { border: 2px solid var(--nrtc-accent); }
	.nrtc-tdb-une::after { display: none; }
	.nrtc-msg { box-shadow: none; border: 2px solid var(--nrtc-line); }
	.nrtc-wrap .nrtc-btn-outline { box-shadow: inset 0 0 0 2px var(--nrtc-gris); }
}
@media (forced-colors: active) {
	.nrtc-tdb-une, .nrtc-card, .nrtc-nav, .nrtc-chat { border: 2px solid; }
	.nrtc-tdb-une::after { display: none; }
	.nrtc-timeline-step.done .nrtc-timeline-dot { forced-color-adjust: none; }
}
@media print {
	.nrtc-entete { position: static; }
	.nrtc-nav__burger, .nrtc-nav__menu, .nrtc-ligne__sortie, .nrtc-tdb-une__coin, .nrtc-tdb-filtres, .nrtc-search-form, .nrtc-chat-form { display: none !important; }
	.nrtc-tdb-une { background: none; color: inherit; border: 1px solid #999; }
	.nrtc-tdb-une__sur, .nrtc-tdb-une__note, .nrtc-tdb-une__titre { color: inherit; }
	.nrtc-tdb-une::after { display: none; }
	.nrtc-card, .nrtc-tdb-ligne, .nrtc-announcement { box-shadow: none; border: 1px solid #ccc; break-inside: avoid; }
}

/* Texte réservé aux lecteurs d'écran : hors de l'écran mais lisible. */
.nrtc-wrap .nrtc-invisible {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip-path: inset(50%); white-space: nowrap; margin: -1px; padding: 0; border: 0;
}
.nrtc-wrap ol.nrtc-timeline { list-style: none; }
.nrtc-slot-jour { margin: 14px 4px 8px; font-size: 15px; font-weight: 650; color: var(--nrtc-ink); }
.nrtc-tdb-panneau .nrtc-slot-grid { margin: 0 0 6px; }
form.nrtc-section:not(.nrtc-login-form) { max-width: 620px; }
form.nrtc-section .nrtc-field { margin-bottom: 14px; }
.nrtc-upload-form .nrtc-field input { width: 100%; min-width: 0; }

/* Liste des dossiers : la colonne de droite reste étroite pour laisser sa place au tableau. */
.nrtc-tdb-grille--liste { grid-template-columns: minmax(0, 1fr) 300px; }
/* Sous 1 100 px, le tableau des dossiers a besoin de toute la largeur : la colonne de droite passe dessous
   (ou dessus quand des messages attendent). */
@media (max-width: 1100px) {
	.nrtc-tdb-grille--liste { grid-template-columns: minmax(0, 1fr); }
	.nrtc-tdb-grille--liste > .nrtc-tdb-colonne { display: contents; }
	.nrtc-tdb-grille--liste.nrtc-tdb-grille--une-dabord .nrtc-tdb-une { order: -1; }
}
.nrtc-cellule-sous { font-size: 12.5px; color: var(--nrtc-muted); }

/* Champs hors .nrtc-field (fiche, documents, chat, créneaux) : même matière. */
.nrtc-wrap select,
.nrtc-wrap input[type=url],
.nrtc-wrap input[type=text],
.nrtc-wrap input[type=password],
.nrtc-wrap textarea {
	border: 1px solid color-mix(in srgb, var(--nrtc-line) 55%, #fff);
	border-radius: 11px;
	padding: 9px 12px;
	font-family: inherit;
	font-size: 14.5px;
	color: var(--nrtc-ink);
	background-color: #fff;
	box-shadow: inset 0 2px 5px -3px rgba(15,60,58,.22);
	max-width: 100%;
}
.nrtc-wrap select {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 34px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%230F5F60' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.5 6 6l4.5-4.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}
.nrtc-wrap select:focus,
.nrtc-wrap input:focus,
.nrtc-wrap textarea:focus { outline: none; border-color: var(--nrtc-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--nrtc-accent) 22%, transparent); }
/* Un libellé qui enveloppe son champ : le champ passe dessous. */
.nrtc-field label input,
.nrtc-field label select { display: block; width: 100%; margin-top: 6px; font-weight: 400; }
.nrtc-card.nrtc-card--formulaire, form.nrtc-card { width: 100%; }

/* Vue équipe (espace formateurs et administration) : l'équipe est « moi »,
   donc ses réponses à droite en sarcelle, celles du candidat à gauche en
   blanc. Les classes de messages ne changent pas : c'est la boîte du fil
   qui inverse les côtés, sans toucher au script. */
.nrtc-chat--equipe .nrtc-msg-team { align-self: flex-end; background: var(--nrtc-accent-plein); color: #fff; border-bottom-left-radius: 18px; border-bottom-right-radius: 5px; }
.nrtc-chat--equipe .nrtc-msg-me { align-self: flex-start; background: #fff; color: var(--nrtc-ink); border-bottom-right-radius: 18px; border-bottom-left-radius: 5px; }

/* Tablette étroite et téléphone : les tableaux deviennent des listes de cartes,
   chaque cellule portant son libellé (attribut data-label). */
@media (max-width: 860px) {
	.nrtc-wrap table.nrtc-doc-table:not(.nrtc-table--fiche),
	.nrtc-wrap table.nrtc-table:not(.nrtc-table--fiche) { display: block; background: none; box-shadow: none; overflow: visible; }
	.nrtc-wrap .nrtc-doc-table:not(.nrtc-table--fiche) thead,
	.nrtc-wrap .nrtc-table:not(.nrtc-table--fiche) thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.nrtc-wrap .nrtc-doc-table:not(.nrtc-table--fiche) tbody,
	.nrtc-wrap .nrtc-table:not(.nrtc-table--fiche) tbody { display: grid; gap: 10px; }
	.nrtc-wrap .nrtc-doc-table:not(.nrtc-table--fiche) tr,
	.nrtc-wrap .nrtc-table:not(.nrtc-table--fiche) tr { display: block; background: #fff; border-radius: var(--nrtc-r-m); box-shadow: var(--nrtc-ombre-1); padding: 6px 14px; }
	.nrtc-wrap .nrtc-doc-table:not(.nrtc-table--fiche) td,
	.nrtc-wrap .nrtc-table:not(.nrtc-table--fiche) td { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid color-mix(in srgb, var(--nrtc-line) 50%, #fff); text-align: right; }
	.nrtc-wrap .nrtc-doc-table:not(.nrtc-table--fiche) td:last-child,
	.nrtc-wrap .nrtc-table:not(.nrtc-table--fiche) td:last-child { border-bottom: 0; }
	.nrtc-wrap .nrtc-doc-table:not(.nrtc-table--fiche) td::before,
	.nrtc-wrap .nrtc-table:not(.nrtc-table--fiche) td::before { content: attr(data-label); flex: 0 0 auto; font-size: 12.5px; font-weight: 650; color: var(--nrtc-muted); text-align: left; }
	.nrtc-wrap .nrtc-doc-table:not(.nrtc-table--fiche) td[colspan],
	.nrtc-wrap .nrtc-table:not(.nrtc-table--fiche) td[colspan] { display: block; text-align: left; }
	.nrtc-wrap .nrtc-doc-table:not(.nrtc-table--fiche) td[colspan]::before,
	.nrtc-wrap .nrtc-table:not(.nrtc-table--fiche) td[colspan]::before { content: none; }
	.nrtc-wrap .nrtc-table--fiche tbody th { width: 42%; }
}
.nrtc-cellule { display: block; }
@media (max-width: 860px) { .nrtc-cellule { text-align: right; } }
.nrtc-tdb { min-width: 0; }

/* =========================================================================
   PIÈCES ATTENDUES ET POINTS D'ATTENTION (travail au Canada ou au Québec)
   ====================================================================== */
.nrtc-pieces { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.nrtc-piece {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px 12px;
	background: #fff;
	border-radius: var(--nrtc-r-m);
	padding: 12px 16px;
	box-shadow: var(--nrtc-ombre-1);
}
.nrtc-piece__nom { min-width: 0; font-size: 15px; font-weight: 600; }
.nrtc-tdb-panneau + .nrtc-upload-form,
.nrtc-tdb-panneau + .nrtc-card,
.nrtc-tdb-panneau + .nrtc-section-title { margin-top: 18px; }
.nrtc-points { margin: 0 0 6px; padding-left: 18px; }
.nrtc-points li { margin: 5px 0; line-height: 1.45; }
.nrtc-card--orientation { box-shadow: var(--nrtc-ombre-1), inset 4px 0 0 var(--nrtc-accent); }
.nrtc-table td[data-label="Voie"] { min-width: 150px; }
.nrtc-table td[data-label="Voie"] strong { white-space: nowrap; }
.nrtc-etape-detail { margin: 2px 8px 6px; font-size: 14px; line-height: 1.5; color: var(--nrtc-muted); }
.nrtc-etape-detail strong { color: var(--nrtc-ink); }
