/*
 * Jeu d'icônes minimal (SVG en masque CSS) pour les boutons générés par
 * lien_icon() (icône seule) et lien() (icône + libellé) — includes/pages.php.
 * Les icônes héritent de la couleur du texte du bouton (currentColor) via
 * mask-image, pas de sprite/police à charger. À compléter au fur et à
 * mesure des besoins des futures pages.
 */

.ag-icon {
	display: inline-block;
	width: 14px;
	height: 14px;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	vertical-align: -2px;
	flex-shrink: 0;
}

.ag-icon-pencil {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M13.5 3.5l3 3L6 17l-4 1 1-4L13.5 3.5z' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M13.5 3.5l3 3L6 17l-4 1 1-4L13.5 3.5z' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.ag-icon-trash {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 6h12M8 6V4h4v2M6 6l1 10h6l1-10' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 6h12M8 6V4h4v2M6 6l1 10h6l1-10' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.ag-icon-plus {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M10 4v12M4 10h12' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M10 4v12M4 10h12' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* Même corps que .ag-icon-plus, sans la barre verticale — état "réduire"
   d'une bascule +/- (ex. data-ag-toggle-enfants, admin_utilisateurs.php). */
.ag-icon-minus {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 10h12' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 10h12' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
}

.ag-icon-check {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5l4 4 8-9' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5l4 4 8-9' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.ag-icon-close {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M5 5l10 10M15 5L5 15' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M5 5l10 10M15 5L5 15' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
}

.ag-icon-lock {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect x='5' y='9' width='10' height='7' rx='1.5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M7 9V6.5a3 3 0 0 1 6 0V9' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect x='5' y='9' width='10' height='7' rx='1.5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M7 9V6.5a3 3 0 0 1 6 0V9' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E");
}

/* Cadenas ouvert — état "déverrouillé" (bascule verrouiller/déverrouiller,
   ex. treso_depenses.php/treso_recettes.php) : même corps que .ag-icon-lock,
   anse relevée/ouverte plutôt que fermée sur le corps. */
.ag-icon-unlock {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect x='5' y='9' width='10' height='7' rx='1.5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M7 9V6.5a3 3 0 0 1 5.7-1.4' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect x='5' y='9' width='10' height='7' rx='1.5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M7 9V6.5a3 3 0 0 1 5.7-1.4' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* Maillon de chaîne — état "non rapprochée" du bouton de rapprochement
   bancaire (comptabilite.php : clic = relier/rapprocher la ligne avec le
   relevé bancaire). Remplace l'icône "euro" utilisée initialement, jugée
   trop proche visuellement d'une icône de banque/devise générique — le
   symbole du maillon représente plus clairement l'action de "rapprocher"
   (relier deux éléments) que l'icône "check" déjà utilisée pour l'état
   "rapprochée". Dessiné en deux capsules disjointes reliées par une barre
   (plutôt que deux anneaux se chevauchant, qui se confondaient avec un
   symbole "infini" à la taille réduite d'une icône de bouton). */
.ag-icon-link {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M8 13.5H6.3a3.3 3.3 0 1 1 0-6.6H8M12 6.9h1.7a3.3 3.3 0 1 1 0 6.6H12M7 10.2h6' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M8 13.5H6.3a3.3 3.3 0 1 1 0-6.6H8M12 6.9h1.7a3.3 3.3 0 1 1 0 6.6H12M7 10.2h6' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.ag-icon-download {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M10 3v9m0 0l-3.5-3.5M10 12l3.5-3.5M4 15h12' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M10 3v9m0 0l-3.5-3.5M10 12l3.5-3.5M4 15h12' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.ag-icon-file {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M6 3h6l3 3v11H6V3z' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M12 3v3h3' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M6 3h6l3 3v11H6V3z' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M12 3v3h3' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.ag-icon-more {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle cx='4' cy='10' r='1.6' fill='%23000'/%3E%3Ccircle cx='10' cy='10' r='1.6' fill='%23000'/%3E%3Ccircle cx='16' cy='10' r='1.6' fill='%23000'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle cx='4' cy='10' r='1.6' fill='%23000'/%3E%3Ccircle cx='10' cy='10' r='1.6' fill='%23000'/%3E%3Ccircle cx='16' cy='10' r='1.6' fill='%23000'/%3E%3C/svg%3E");
}

/*
 * "repeat"/"roundabout" (retour utilisateur du 21/08/2026, biblio_retours.php
 * — "utiliser celles que j'ai déjà dans la version actuellement") : reprend
 * le tracé vectoriel EXACT des glyphes Halflings "repeat" (Rendre) et
 * "roundabout" (Renouveler) de l'ancien thème (common/theme/fonts/
 * glyphicons-regular.svg, police au format SVG — un <glyph> y contient son
 * propre attribut d="..." en clair, donc pas besoin de rendre la police
 * pour en extraire le tracé). Système de coordonnées de police SVG :
 * origine sur la ligne de base, axe Y vers le HAUT.
 *
 * Correctif (retour utilisateur du 21/08/2026, "la partie en haut [des
 * icônes Rendre/Renouveler] est coupée") : le premier essai calait le
 * viewBox/transform sur les métriques déclarées du <font-face>
 * (unitsPerEm=2400, ascent=1920) en supposant que le tracé de chaque glyphe
 * restait dans ces bornes — hypothèse fausse pour des glyphes-icônes (par
 * opposition à des glyphes de texte), qui dépassent largement l'ascent
 * "typographique" du fichier. Vérifié en calculant la bbox réelle de
 * chaque tracé (bibliothèque svgpathtools) : "repeat" atteint y=2419.2 en
 * espace police, largement au-delà de l'ascent (1920) déclaré — d'où le
 * haut du glyphe rejeté hors du viewBox 0 0 2400 2400 et rogné par le
 * clip SVG implicite. Corrigé en calculant un viewBox/transform propre à
 * CHAQUE glyphe à partir de sa bbox réelle (pas des métriques globales du
 * fichier de police), avec une marge de 15 unités de chaque côté :
 * transform="translate(0, ymax_bbox+15) scale(1,-1)", viewBox="xmin_bbox-15
 * 0 largeur_bbox+30 hauteur_bbox+30" — garantit que le tracé entier tient
 * dans le viewBox quelle que soit sa position par rapport aux métriques
 * déclarées de la police.
 */
.ag-icon-repeat {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='-1 0 2276.2 2450.2'%3E%3Cg transform='translate(0,2434.2) scale(1,-1)'%3E%3Cpath fill='%23000' d='M14 1200q0 183 57 365.5t169 337.5q138 192 337 315t415.5 163t446.5 -4t428 -173l6 -4l148 204q12 17 25 15t19 -22l193 -621q6 -20 -4.5 -34t-30.5 -14l-650 -12q-20 0 -26.5 12t5.5 28l145 200q-198 127 -428 142t-439 -82.5t-347 -288.5q-169 -234 -169 -527q0 -175 68 -342.5t195 -294.5q126 -126 290 -193.5t337 -69.5q189 -2 365.5 70t318.5 235q42 48 113 153q18 26 54.5 27.5t70.5 -21.5l83 -56q34 -22 46 -57.5t-5 -60.5q-18 -27 -68 -93.5t-69 -89.5q-112 -135 -273.5 -230t-322.5 -137t-313 -41q-232 2 -450 91t-389 259q-99 99 -170.5 214t-109 228t-54.5 213t-17 196z'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='-1 0 2276.2 2450.2'%3E%3Cg transform='translate(0,2434.2) scale(1,-1)'%3E%3Cpath fill='%23000' d='M14 1200q0 183 57 365.5t169 337.5q138 192 337 315t415.5 163t446.5 -4t428 -173l6 -4l148 204q12 17 25 15t19 -22l193 -621q6 -20 -4.5 -34t-30.5 -14l-650 -12q-20 0 -26.5 12t5.5 28l145 200q-198 127 -428 142t-439 -82.5t-347 -288.5q-169 -234 -169 -527q0 -175 68 -342.5t195 -294.5q126 -126 290 -193.5t337 -69.5q189 -2 365.5 70t318.5 235q42 48 113 153q18 26 54.5 27.5t70.5 -21.5l83 -56q34 -22 46 -57.5t-5 -60.5q-18 -27 -68 -93.5t-69 -89.5q-112 -135 -273.5 -230t-322.5 -137t-313 -41q-232 2 -450 91t-389 259q-99 99 -170.5 214t-109 228t-54.5 213t-17 196z'/%3E%3C/g%3E%3C/svg%3E");
}

.ag-icon-roundabout {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='-15.5 0 2647 2626.4'%3E%3Cg transform='translate(0,2414.3) scale(1,-1)'%3E%3Cpath fill='%23000' d='M43 882q-87 316 0 631l271 -155q-36 -201 18 -396q52 -190 175.5 -337t294.5 -231q21 151 31 207q12 62 61 16q24 -23 212 -211t216 -217q27 -29 25.5 -42.5t-28.5 -29.5q-28 -17 -272 -151t-275 -149q-33 -18 -46 -13t-9 38l37 245q-257 103 -446 310.5t-265 484.5z M214 1650q17 547 23 609q7 71 63 23l164 -136q192 149 418 211q326 84 631 1t530 -306l-271 -159q-167 138 -377.5 185t-432.5 -10q-138 -38 -260 -120q143 -117 173 -142q15 -13 21 -25t-0.5 -22.5t-24.5 -15.5q-38 -10 -285 -71.5t-292 -71.5q-51 -13 -66 -4.5t-14 54.5z M1498 38v314q154 53 278 156.5t206 246.5q134 235 114 507q-179 -78 -215 -92q-27 -11 -37 0t-3 42q18 74 52.5 222t63 269.5t29.5 124.5q10 40 48 18q30 -16 561 -316q21 -12 21.5 -29.5t-16.5 -23.5l-215 -92q32 -204 -5.5 -404t-136.5 -375q-116 -204 -303 -351.5t-423 -211.5q-3 -1 -9.5 -2.5t-9.5 -2.5z'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='-15.5 0 2647 2626.4'%3E%3Cg transform='translate(0,2414.3) scale(1,-1)'%3E%3Cpath fill='%23000' d='M43 882q-87 316 0 631l271 -155q-36 -201 18 -396q52 -190 175.5 -337t294.5 -231q21 151 31 207q12 62 61 16q24 -23 212 -211t216 -217q27 -29 25.5 -42.5t-28.5 -29.5q-28 -17 -272 -151t-275 -149q-33 -18 -46 -13t-9 38l37 245q-257 103 -446 310.5t-265 484.5z M214 1650q17 547 23 609q7 71 63 23l164 -136q192 149 418 211q326 84 631 1t530 -306l-271 -159q-167 138 -377.5 185t-432.5 -10q-138 -38 -260 -120q143 -117 173 -142q15 -13 21 -25t-0.5 -22.5t-24.5 -15.5q-38 -10 -285 -71.5t-292 -71.5q-51 -13 -66 -4.5t-14 54.5z M1498 38v314q154 53 278 156.5t206 246.5q134 235 114 507q-179 -78 -215 -92q-27 -11 -37 0t-3 42q18 74 52.5 222t63 269.5t29.5 124.5q10 40 48 18q30 -16 561 -316q21 -12 21.5 -29.5t-16.5 -23.5l-215 -92q32 -204 -5.5 -404t-136.5 -375q-116 -204 -303 -351.5t-423 -211.5q-3 -1 -9.5 -2.5t-9.5 -2.5z'/%3E%3C/g%3E%3C/svg%3E");
}

.ag-icon-arrow-right {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 10h11M10 5l5 5-5 5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M4 10h11M10 5l5 5-5 5' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.ag-icon-copy {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect x='4' y='7' width='10' height='10' rx='1.3' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M7 7V4.5A1.5 1.5 0 0 1 8.5 3H15a1.5 1.5 0 0 1 1.5 1.5V13a1.5 1.5 0 0 1-1.5 1.5H14' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect x='4' y='7' width='10' height='10' rx='1.3' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M7 7V4.5A1.5 1.5 0 0 1 8.5 3H15a1.5 1.5 0 0 1 1.5 1.5V13a1.5 1.5 0 0 1-1.5 1.5H14' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.ag-icon-print {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M6 8V3h8v5' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3Crect x='3' y='8' width='14' height='6.5' rx='1' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M6 12h8v5H6z' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M6 8V3h8v5' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3Crect x='3' y='8' width='14' height='6.5' rx='1' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M6 12h8v5H6z' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/*
 * Icônes du menu latéral (affiche_menus(), includes/functions.php) — ajoutées
 * pour reprendre les icônes de l'application d'origine (police Glyphicons,
 * common/theme/css/glyphicons.css), ici en SVG masqué comme le reste du jeu
 * d'icônes ci-dessus plutôt qu'en police propriétaire. Correspondance retrouvée
 * dans le CSS d'origine (classe .glyphicons.<clé> ↔ nom du glyphe) :
 * accueil=home, mon_profil=parents, enfants=group, activites=wallet,
 * treso=€ (glyphe euro), ecole=briefcase, biblio=book_open, admin=settings,
 * kiosque=folder_open.
 * Déclarées en variables CSS (plutôt qu'en dur comme les icônes ci-dessus)
 * pour être réutilisées telles quelles par assets/css/components/nav.css
 * (icônes du menu, mêmes SVG) sans dupliquer les data URI.
 */
:root {
	--ag-icon-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M3 10L10 4l7 6' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5 8.5V16h10V8.5' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M8 16v-4.5h4V16' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E");
	--ag-icon-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='7' r='3' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M4 17c0-3.3 2.7-6 6-6s6 2.7 6 6' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
	--ag-icon-family: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle cx='7' cy='7' r='2.3' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3Ccircle cx='13' cy='7' r='2.3' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3Cpath d='M2.5 16c0-2.6 2-4.7 4.5-4.7s4.5 2.1 4.5 4.7' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'/%3E%3Cpath d='M8.5 16c0-2.6 2-4.7 4.5-4.7s4.5 2.1 4.5 4.7' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E");
	--ag-icon-wallet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M3 8V6.5A1.5 1.5 0 0 1 4.5 5h8A1.5 1.5 0 0 1 14 6.5V8' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3Crect x='3' y='8' width='14' height='8' rx='1.3' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Ccircle cx='13.5' cy='12' r='1.1' fill='%23000'/%3E%3C/svg%3E");
	--ag-icon-euro: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M13 6.2a5.5 5.5 0 1 0 0 7.6' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M3.5 8.3h8M3.5 11.3h7' stroke='%23000' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
	--ag-icon-briefcase: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Crect x='3' y='7' width='14' height='9' rx='1.3' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M7.5 7V5.5A1.5 1.5 0 0 1 9 4h2a1.5 1.5 0 0 1 1.5 1.5V7' fill='none' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M3 11h14' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E");
	--ag-icon-book-open: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M10 6c-1.5-1.3-3.6-2-6-2v10c2.4 0 4.5.7 6 2V6z' fill='none' stroke='%23000' stroke-width='1.3' stroke-linejoin='round'/%3E%3Cpath d='M10 6c1.5-1.3 3.6-2 6-2v10c-2.4 0-4.5.7-6 2V6z' fill='none' stroke='%23000' stroke-width='1.3' stroke-linejoin='round'/%3E%3C/svg%3E");
	/*
	 * Correctif (retour utilisateur du 21/08/2026, "l'icône du menu
	 * Administration n'est pas idéale, mettre un engrenage au lieu du
	 * soleil") : l'ancien dessin (cercle + 8 traits fins radiants) est
	 * littéralement l'icône "soleil" d'un jeu météo — remplacé par un vrai
	 * engrenage (anneau + 8 dents pleines rectangulaires + trou central),
	 * même langage visuel (traits fins pour l'anneau/le trou, petits aplats
	 * pour les dents — comme le point plein de l'icône wallet ci-dessus).
	 */
	--ag-icon-gear: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='6.2' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3Ccircle cx='10' cy='10' r='2.2' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3Crect x='8.9' y='2.4' width='2.2' height='2.4' rx='0.5' fill='%23000'/%3E%3Crect x='8.9' y='2.4' width='2.2' height='2.4' rx='0.5' fill='%23000' transform='rotate(45 10 10)'/%3E%3Crect x='8.9' y='2.4' width='2.2' height='2.4' rx='0.5' fill='%23000' transform='rotate(90 10 10)'/%3E%3Crect x='8.9' y='2.4' width='2.2' height='2.4' rx='0.5' fill='%23000' transform='rotate(135 10 10)'/%3E%3Crect x='8.9' y='2.4' width='2.2' height='2.4' rx='0.5' fill='%23000' transform='rotate(180 10 10)'/%3E%3Crect x='8.9' y='2.4' width='2.2' height='2.4' rx='0.5' fill='%23000' transform='rotate(225 10 10)'/%3E%3Crect x='8.9' y='2.4' width='2.2' height='2.4' rx='0.5' fill='%23000' transform='rotate(270 10 10)'/%3E%3Crect x='8.9' y='2.4' width='2.2' height='2.4' rx='0.5' fill='%23000' transform='rotate(315 10 10)'/%3E%3C/svg%3E");
	--ag-icon-folder-open: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M3 6.5A1.5 1.5 0 0 1 4.5 5H8l1.5 2H16a1.5 1.5 0 0 1 1.5 1.5V9H3V6.5z' fill='none' stroke='%23000' stroke-width='1.3' stroke-linejoin='round'/%3E%3Cpath d='M3 9h15l-1.4 6.2a1.5 1.5 0 0 1-1.46 1.3H5.86a1.5 1.5 0 0 1-1.46-1.3L3 9z' fill='none' stroke='%23000' stroke-width='1.3' stroke-linejoin='round'/%3E%3C/svg%3E");
	/*
	 * Dossier fermé — pendant de --ag-icon-folder-open ci-dessus, ajouté le
	 * 23/08/2026 pour l'arborescence de kiosque.php (retour utilisateur :
	 * "Améliorer les icons qui montrent si une entrée est ouverte ou
	 * fermée") : même onglet en haut à gauche que la version ouverte, mais
	 * un corps rectangulaire simple plutôt que le pan balayé en biais — se
	 * distingue clairement au premier coup d'oeil, plutôt que le simple
	 * triangle pivotant utilisé jusqu'ici (assets/css/components/kiosque.css).
	 */
	--ag-icon-folder-closed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M3 8.5V6.5A1.5 1.5 0 0 1 4.5 5H8l1.5 2H16a1.5 1.5 0 0 1 1.5 1.5' fill='none' stroke='%23000' stroke-width='1.3' stroke-linejoin='round'/%3E%3Crect x='3' y='8.5' width='14.5' height='7.5' rx='1.3' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3C/svg%3E");
}

.ag-icon-home {
	-webkit-mask-image: var(--ag-icon-home);
	mask-image: var(--ag-icon-home);
}

.ag-icon-user {
	-webkit-mask-image: var(--ag-icon-user);
	mask-image: var(--ag-icon-user);
}

.ag-icon-family {
	-webkit-mask-image: var(--ag-icon-family);
	mask-image: var(--ag-icon-family);
}

.ag-icon-wallet {
	-webkit-mask-image: var(--ag-icon-wallet);
	mask-image: var(--ag-icon-wallet);
}

.ag-icon-euro {
	-webkit-mask-image: var(--ag-icon-euro);
	mask-image: var(--ag-icon-euro);
}

.ag-icon-briefcase {
	-webkit-mask-image: var(--ag-icon-briefcase);
	mask-image: var(--ag-icon-briefcase);
}

.ag-icon-book-open {
	-webkit-mask-image: var(--ag-icon-book-open);
	mask-image: var(--ag-icon-book-open);
}

.ag-icon-gear {
	-webkit-mask-image: var(--ag-icon-gear);
	mask-image: var(--ag-icon-gear);
}

.ag-icon-folder-open {
	-webkit-mask-image: var(--ag-icon-folder-open);
	mask-image: var(--ag-icon-folder-open);
}

.ag-icon-folder-closed {
	-webkit-mask-image: var(--ag-icon-folder-closed);
	mask-image: var(--ag-icon-folder-closed);
}
