/* Pages d'outils (mission 20261016-outils-geo) : variables du design seulement (jetons.css). Zones tactiles de 44 px au moins. */
.outil-form { margin: var(--s-16) 0; padding: var(--s-16); border: 1px solid var(--line); border-radius: var(--r-card); background: var(--c-white); }
.outil-champs { display: grid; gap: var(--s-16); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.outil-champ label { display: flex; align-items: center; min-height: 44px; font-weight: var(--fw-600); margin-bottom: var(--s-4); }
.outil-unite { font-weight: var(--fw-body); }
.outil-saisie { box-sizing: border-box; width: 100%; min-height: 44px; padding: var(--s-8) var(--s-12); font: inherit; border: 1px solid var(--line); border-radius: var(--r-input); background: var(--c-white); color: inherit; }
.outil-saisie:focus-visible, .outil-choix input:focus-visible, .outil-bouton:focus-visible { outline: 3px solid currentColor; outline-offset: 2px; }
.outil-aide { margin: var(--s-4) 0 0; font-size: var(--fs-14); }
.outil-mode { margin: var(--s-16) 0 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: var(--s-8) var(--s-16); }
.outil-mode legend { font-weight: var(--fw-600); padding: 0; margin-bottom: var(--s-4); }
.outil-choix { position: relative; display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; padding: 0 var(--s-12); border: 1px solid var(--line); border-radius: var(--r-input); cursor: pointer; }
.outil-choix input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.outil-choix span::before { content: ""; display: inline-block; width: 18px; height: 18px; margin-right: var(--s-8); vertical-align: middle; border: 2px solid currentColor; border-radius: var(--r-circle); box-sizing: border-box; }
.outil-choix input:checked + span::before { background: currentColor; }
.outil-choix:has(input:checked) { font-weight: var(--fw-700); }
.outil-choix:has(input:focus-visible) { outline: 3px solid currentColor; outline-offset: 2px; }
.outil-actions { display: flex; flex-wrap: wrap; gap: var(--s-12); margin-top: var(--s-16); }
.outil-bouton { min-height: 44px; min-width: 44px; }
.outil-etat { min-height: 1.5em; font-weight: var(--fw-600); }
.outil-groupe[hidden], tr[hidden] { display: none; }
.outil-table .col-verdict { display: none; }
.outil-table.est-actif .col-verdict { display: table-cell; }
.outil-table td, .outil-table th { padding: var(--s-8) var(--s-12); text-align: left; vertical-align: top; }
.outil-table th[scope="row"] a { display: inline-block; min-height: 44px; line-height: 44px; }
.outil-table tr[data-statut="passe-limite"] [data-verdict] { font-weight: var(--fw-700); }
.outil-table tr[data-statut="passe-limite"] [data-verdict]::before { content: "\26A0\FE0E "; }
.outil-suite a { display: inline-block; min-height: 44px; line-height: 44px; }
@media (prefers-reduced-motion: reduce) { .outil-form *, .outil-table * { transition: none !important; animation: none !important; } }
.outil-table { width: 100%; table-layout: fixed; }
.outil-table td, .outil-table th { overflow-wrap: anywhere; font-size: var(--fs-14); padding: var(--s-8); }
