/* DDEN 13 : fiches d'écoles, carte, formulaires */

:root {
	/* Alignes sur la palette globale du theme Astra, avec repli si le theme change */
	--dden-pub: var(--ast-global-color-0, #0067FF);
	--dden-pub-fonce: var(--ast-global-color-1, #005EE9);
	--dden-pri: #c2410c;
	--dden-bord: var(--ast-global-color-7, #D1DAE5);
	--dden-fond: var(--ast-global-color-5, #E7F6FF);
	--dden-texte-sec: var(--ast-global-color-3, #364151);
}

/* ── Fiche d'école ─────────────────────────────────────────── */

.dden-fiche { margin: 0 0 2.5rem; }

.dden-badges { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.2rem; }

.dden-badge {
	display: inline-block;
	padding: .18em .7em;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .01em;
	color: #fff;
	background: #6b7280;
}
.dden-badge-public { background: var(--dden-pub); }
.dden-badge-prive  { background: var(--dden-pri); }
.dden-badge-niveau { background: #374151; }
.dden-badge-info   { background: #0f766e; }

.dden-grille {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 1.6rem;
	align-items: start;
}

.dden-infos {
	border: 1px solid var(--dden-bord);
	border-radius: 10px;
	background: var(--dden-fond);
	padding: .3rem 1.1rem;
}

.dden-ligne {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem 1rem;
	padding: .65rem 0;
	border-bottom: 1px solid var(--dden-bord);
}
.dden-ligne:last-child { border-bottom: 0; }

.dden-label {
	flex: 0 0 11rem;
	font-size: .82rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--dden-texte-sec);
	padding-top: .12rem;
}
.dden-valeur { flex: 1 1 12rem; min-width: 0; overflow-wrap: anywhere; }
.dden-sec    { color: var(--dden-texte-sec); font-size: .9em; }

.dden-minicarte {
	height: 300px;
	border: 1px solid var(--dden-bord);
	border-radius: 10px;
	overflow: hidden;
}

.dden-note,
.dden-source {
	font-size: .85rem;
	color: var(--dden-texte-sec);
	margin: .8rem 0 0;
}
.dden-source { margin-top: 1rem; }

/* ── Carte générale ────────────────────────────────────────── */

.dden-carte-enveloppe { margin: 1.5rem 0 2.5rem; }

.dden-carte-filtres {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem 1.1rem;
	padding: .8rem 1rem;
	border: 1px solid var(--dden-bord);
	border-bottom: 0;
	border-radius: 10px 10px 0 0;
	background: var(--dden-fond);
	font-size: .9rem;
}
.dden-carte-filtres label { display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; }
.dden-sep { flex: 0 0 1px; height: 1.2em; background: var(--dden-bord); }
.dden-compteur { margin-left: auto; color: var(--dden-texte-sec); font-variant-numeric: tabular-nums; }

#dden-carte {
	border: 1px solid var(--dden-bord);
	border-radius: 0 0 10px 10px;
	overflow: hidden;
}

.dden-legende {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 1.2rem;
	margin-top: .7rem;
	font-size: .85rem;
	color: var(--dden-texte-sec);
}
.dden-legende span { display: inline-flex; align-items: center; gap: .4rem; }
.dden-legende .lg { display: inline-block; width: 13px; height: 13px; background: #6b7280; }
.dden-legende .lg-rond     { border-radius: 50%; }
.dden-legende .lg-carre    { border-radius: 2px; }
.dden-legende .lg-triangle { background: none; width: 0; height: 0; border-left: 7px solid transparent; border-right: 7px solid transparent; border-bottom: 13px solid #6b7280; }
.dden-legende .lg-pub { background: var(--dden-pub); border-radius: 50%; }
.dden-legende .lg-pri { background: var(--dden-pri); border-radius: 50%; }

.dden-puce { background: none; border: 0; }
.dden-puce svg { display: block; filter: drop-shadow(0 1px 1.5px rgba(0,0,0,.35)); }

.dden-pop-meta { color: var(--dden-texte-sec); font-size: .88em; }
.dden-pop-circ { color: var(--dden-texte-sec); font-size: .8em; font-style: italic; }
.dden-pop-lien { display: inline-block; margin-top: .45rem; font-weight: 600; }

.dden-erreur { padding: 2rem; text-align: center; color: var(--dden-pri); }

/* ── Formulaires (candidature, inscription, enquête) ───────── */

.dden-form { margin: 1.5rem 0; }

.dden-form .dden-champ { margin-bottom: 1.1rem; }

.dden-form label.dden-l {
	display: block;
	font-weight: 600;
	margin-bottom: .3rem;
	font-size: .92rem;
}

.dden-form input[type=text],
.dden-form input[type=email],
.dden-form input[type=tel],
.dden-form input[type=url],
.dden-form input[type=number],
.dden-form input[type=date],
.dden-form input[type=password],
.dden-form select,
.dden-form textarea {
	width: 100%;
	max-width: 100%;
	padding: .55rem .7rem;
	border: 1px solid var(--dden-bord);
	border-radius: 7px;
	font: inherit;
	background: #fff;
}
.dden-form textarea { min-height: 6.5rem; resize: vertical; }

.dden-aide { display: block; font-size: .82rem; color: var(--dden-texte-sec); margin-top: .25rem; }

.dden-form fieldset {
	border: 1px solid var(--dden-bord);
	border-radius: 10px;
	padding: 1rem 1.2rem 1.3rem;
	margin: 0 0 1.5rem;
}
.dden-form legend {
	font-weight: 700;
	padding: 0 .45rem;
	font-size: 1.02rem;
}

.dden-radios { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; }
.dden-radios label { display: inline-flex; align-items: center; gap: .3rem; font-size: .93rem; }

.dden-bouton {
	display: inline-block;
	padding: .6rem 1.3rem;
	border: 0;
	border-radius: 7px;
	background: var(--dden-pub);
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.dden-bouton:hover { background: var(--dden-pub-fonce, #005EE9); }
.dden-bouton-sec { background: #4b5563; }
.dden-bouton-sec:hover { background: #374151; }

.dden-message {
	padding: .9rem 1.1rem;
	border-radius: 8px;
	margin: 1rem 0;
	border: 1px solid;
}
.dden-message-ok  { background: #ecfdf5; border-color: #6ee7b7; color: #065f46; }
.dden-message-ko  { background: #fef2f2; border-color: #fca5a5; color: #991b1b; }
.dden-message-inf { background: #eff6ff; border-color: #93c5fd; color: #1e3a8a; }

/* ── Bloc enquête sur la fiche ─────────────────────────────── */

.dden-enquete {
	margin-top: 2.5rem;
	border-top: 3px solid var(--dden-pub);
	padding-top: 1.4rem;
}
.dden-enquete-titre { display: flex; align-items: baseline; gap: .7rem; flex-wrap: wrap; }
.dden-enquete-statut { font-size: .82rem; color: var(--dden-texte-sec); }

.dden-reserve {
	background: var(--dden-fond);
	border: 1px dashed var(--dden-bord);
	border-radius: 10px;
	padding: 1.2rem 1.3rem;
}

/* ── Responsive ────────────────────────────────────────────── */

@media (max-width: 860px) {
	.dden-grille { grid-template-columns: 1fr; }
	.dden-minicarte { height: 240px; }
	.dden-label { flex-basis: 100%; }
	.dden-compteur { margin-left: 0; flex-basis: 100%; }
}

/* ── Grille des effectifs de l'enquête ─────────────────────── */

.dden-grille-eff {
	width: 100%;
	border-collapse: collapse;
	font-size: .9rem;
}
.dden-grille-eff th,
.dden-grille-eff td {
	border: 1px solid var(--dden-bord);
	padding: .3rem .45rem;
	text-align: left;
}
.dden-grille-eff thead th {
	background: var(--dden-fond);
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--dden-texte-sec);
}
.dden-grille-eff tbody th { font-weight: 500; white-space: nowrap; }
.dden-grille-eff input { width: 100%; padding: .3rem .4rem; border: 1px solid var(--dden-bord); border-radius: 5px; font: inherit; }

.dden-enquete-form fieldset { background: #fff; }

@media (max-width: 640px) {
	.dden-grille-eff { font-size: .82rem; }
	.dden-grille-eff th, .dden-grille-eff td { padding: .2rem .25rem; }
}

@media print {
	.dden-carte-filtres, .dden-legende, .dden-bouton { display: none; }
}

.dden-badge-alerte { background: #b91c1c; }

/* ── Courbes d'évolution de la fiche ───────────────────────── */

.dden-graphes { margin: 2.2rem 0 0; }

.dden-bloc-graphe { margin: 0 0 2rem; }
.dden-bloc-graphe h3 { margin: 0 0 .35rem; }

.dden-resume {
	margin: 0 0 .7rem;
	color: var(--dden-texte-sec);
	font-size: .93rem;
}

.dden-graphe {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
	font-family: inherit;
}

.dden-graphe .dden-grille {
	stroke: var(--dden-bord);
	stroke-width: 1;
}
.dden-graphe .dden-axe {
	fill: var(--dden-texte-sec);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}
.dden-graphe .dden-bout {
	fill: var(--dden-texte-sec);
	font-size: 13px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.dden-legende-graphe {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem 1.1rem;
	margin: 0 0 .6rem;
	font-size: .86rem;
	color: var(--dden-texte-sec);
}
.dden-legende-graphe span { display: inline-flex; align-items: center; gap: .4rem; }
.dden-legende-graphe i { display: inline-block; width: 14px; height: 3px; border-radius: 2px; }

.dden-donnees { margin-top: .6rem; font-size: .88rem; }
.dden-donnees summary {
	cursor: pointer;
	color: var(--dden-texte-sec);
	padding: .2rem 0;
}
.dden-donnees table { width: auto; min-width: 16rem; border-collapse: collapse; margin-top: .5rem; }
.dden-donnees th,
.dden-donnees td {
	border: 1px solid var(--dden-bord);
	padding: .22rem .6rem;
	text-align: right;
	font-variant-numeric: tabular-nums;
}
.dden-donnees th { background: var(--dden-fond); font-weight: 600; text-align: right; }
.dden-donnees th:first-child, .dden-donnees td:first-child { text-align: left; }

@media (max-width: 640px) {
	.dden-graphe .dden-axe { font-size: 14px; }
	.dden-graphe .dden-bout { font-size: 15px; }
}
.dden-graphe .dden-cible { cursor: help; }

/* ── Filtre circonscription et liste sous la carte ─────────── */

.dden-choix-circo { display: inline-flex; align-items: center; gap: .4rem; }
.dden-choix-circo .dden-l-inline { color: var(--dden-texte-sec); }
.dden-choix-circo select {
	max-width: 15rem;
	padding: .25rem .4rem;
	border: 1px solid var(--dden-bord);
	border-radius: 6px;
	font: inherit;
	font-size: .9rem;
	background: #fff;
}
.dden-recherche input {
	padding: .25rem .5rem;
	border: 1px solid var(--dden-bord);
	border-radius: 6px;
	font: inherit;
	font-size: .9rem;
	min-width: 13rem;
}

.dden-liste-ecoles { margin-top: 1.6rem; }
.dden-liste-titre { margin: 0 0 .6rem; font-size: 1.1rem; }

.dden-liste-defile {
	max-height: 30rem;
	overflow-y: auto;
	border: 1px solid var(--dden-bord);
	border-radius: 10px;
}

.dden-table-ecoles {
	width: 100%;
	border-collapse: collapse;
	font-size: .88rem;
}
.dden-table-ecoles thead th {
	position: sticky;
	top: 0;
	z-index: 1;
	background: var(--dden-fond);
	text-align: left;
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--dden-texte-sec);
	padding: .5rem .7rem;
	border-bottom: 1px solid var(--dden-bord);
}
.dden-table-ecoles td {
	padding: .5rem .7rem;
	border-bottom: 1px solid var(--dden-bord);
	vertical-align: top;
	overflow-wrap: anywhere;
}
.dden-table-ecoles tbody tr:last-child td { border-bottom: 0; }
.dden-table-ecoles tbody tr:hover { background: var(--dden-fond); }

.dden-liste-nom { font-weight: 600; display: block; }
.dden-liste-meta { display: block; font-size: .8rem; color: var(--dden-texte-sec); }
.dden-vide { color: var(--dden-texte-sec); font-style: italic; }

/* Sur petit écran le tableau devient une suite de fiches */
@media (max-width: 820px) {
	.dden-liste-defile { max-height: none; border: 0; border-radius: 0; overflow: visible; }
	.dden-table-ecoles thead { display: none; }
	.dden-table-ecoles, .dden-table-ecoles tbody, .dden-table-ecoles tr, .dden-table-ecoles td { display: block; width: 100%; }
	.dden-table-ecoles tr {
		border: 1px solid var(--dden-bord);
		border-radius: 10px;
		margin-bottom: .7rem;
		padding: .3rem 0;
	}
	.dden-table-ecoles td { border-bottom: 0; padding: .25rem .8rem; }
	.dden-table-ecoles td[data-col]:not([data-col="École"])::before {
		content: attr(data-col) " : ";
		color: var(--dden-texte-sec);
		font-size: .8rem;
	}
	.dden-choix-circo select, .dden-recherche input { width: 100%; max-width: none; }
	.dden-choix-circo, .dden-recherche { flex-basis: 100%; }
}

.dden-liste-avert { font-size: .88rem; color: var(--dden-texte-sec); margin: 0 0 .6rem; }
.dden-lien-bouton {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: var(--dden-pub);
	text-decoration: underline;
	cursor: pointer;
}
