/* IsoFind, explorateur. Mêmes jetons que l'Atlas (atlas.css) ; tout est
   rangé sous .ife pour ne rien hériter du thème WordPress. Les polices sont
   celles que la page charge déjà : aucune requête vers un service tiers. */
.ife {
  --paper: #FFFFFF; --paper-2: #F7F8FA; --line: #E2E4EA; --line-soft: #EDEFF3;
  --ink: #14151A; --text-2: #565A66; --text-3: #868C99; --navy: #0F3474; --accent: #2563EB;
  --ok: #196C3C; --warn: #A15C07; --err: #82321E;
  --sans: 'Inter', system-ui, -apple-system, sans-serif; --mono: 'JetBrains Mono', ui-monospace, Menlo, monospace;
  font-family: var(--sans); font-size: 16px; line-height: 1.6; color: var(--ink); background: var(--paper);
  max-width: 1600px; margin: 0 auto; padding: 56px 32px 80px; -webkit-font-smoothing: antialiased;
}
.ife *, .ife *::before, .ife *::after { box-sizing: border-box; }
.ife h1, .ife h2, .ife h3, .ife p, .ife ul { margin: 0; }
.ife button, .ife input, .ife select, .ife textarea { font: inherit; color: inherit; }
.ife a { color: var(--accent); }
.ife :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.ife-eyebrow { display: block; font-family: var(--mono); font-size: .72rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); margin-bottom: 14px; }
.ife h1 { font-size: clamp(2rem, 3.6vw, 2.9rem); font-weight: 800; letter-spacing: -.035em; line-height: 1.08; color: var(--navy); }
.ife h1 em { font-style: normal; color: var(--accent); }
.ife-lede { font-size: 1.04rem; line-height: 1.7; color: var(--text-2); max-width: 74ch; margin-top: 16px !important; }
.ife h2 { font-size: 1.15rem; font-weight: 700; letter-spacing: -.015em; margin: 36px 0 12px; }
.ife h3 { font-size: .95rem; font-weight: 600; margin: 18px 0 6px; }
.ife-aide { font-size: .86rem; color: var(--text-2); line-height: 1.6; margin-top: 8px !important; max-width: 90ch; }
.ife-gris { color: var(--text-3); }

.ife-reglages { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px 18px; margin: 36px 0 18px; padding: 20px 22px; background: var(--paper-2); border: 1px solid var(--line); border-radius: 4px; }
.ife-champ { display: flex; flex-direction: column; gap: 4px; font-size: .78rem; font-weight: 500; color: var(--text-2); }
.ife select, .ife textarea { width: 100%; padding: 8px 10px; border: 1px solid var(--line); border-radius: 2px; background: #fff; font-size: .9rem; color: var(--ink); }
.ife textarea { font-family: var(--mono); font-size: .82rem; resize: vertical; }
.ife-crit { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px 18px; border: 0; padding: 0; margin: 4px 0 0; font-size: .86rem; }
.ife-crit legend { font-size: .78rem; font-weight: 500; color: var(--text-2); margin-bottom: 4px; padding: 0; }
.ife-crit label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }

.ife-etat { font-size: .92rem; min-height: 3em; }
.ife-etat p + p { margin-top: 4px; }
.ife-attente { color: var(--text-3); }
.ife-alerte { color: var(--err); }

.ife-grille { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: start; margin-top: 12px; }
.ife-graphe svg { display: block; overflow: visible; }
.ife-axe-g { stroke: var(--line-soft); stroke-width: 1; }
.ife-axe-t { font-size: 11px; fill: var(--text-3); font-family: var(--mono); }
.ife-base { stroke: var(--line); stroke-width: 1; }
.ife-nom { font-size: 13px; font-weight: 600; fill: var(--ink); }
.ife-sous { font-size: 11px; fill: var(--text-3); font-weight: 400; }
.ife-masque { font-size: 11.5px; fill: var(--text-3); font-style: italic; }
.ife-ech { stroke: #14151A; stroke-width: 1.4; }
.ife-ech-bande { fill: #14151A; fill-opacity: .06; }
.ife-ech-t { font-size: 11px; font-weight: 600; fill: #14151A; }

.ife-defile { overflow-x: auto; }
.ife-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.ife-table th, .ife-table td { padding: 8px 10px; border-bottom: 1px solid var(--line-soft); text-align: left; vertical-align: top; }
.ife-table thead th { font-weight: 600; color: var(--text-2); font-size: .78rem; border-bottom-color: var(--line); white-space: nowrap; }
.ife-table .n { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ife-table tbody th { font-weight: 600; }
.ife-matrice td { min-width: 64px; }
.ife-pastille { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 7px; vertical-align: 0; }
.ife-faible { display: inline-block; font-size: .72rem; font-weight: 500; color: var(--warn); background: #FFF4D6; border-radius: 2px; padding: 0 5px; margin-left: 4px; }
.ife-ok { color: var(--ok); }
.ife-marge { color: var(--warn); }
.ife-ko { color: var(--err); }
.ife-p { font-size: .76rem; color: var(--text-3); }
.ife-resume { padding-left: 18px; font-size: .9rem; margin-bottom: 12px !important; }
.ife-resume li { margin: 3px 0; }

.ife-cote { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 16px; }
.ife-boite { padding: 20px 22px; border: 1px solid var(--line); border-radius: 4px; background: var(--paper-2); }
.ife-boite h2 { margin: 0 0 4px; font-size: 1rem; }
.ife-boite textarea { margin-top: 12px; }
.ife-boite .ife-champ { margin-top: 10px; }
.ife-actions { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.ife .ife-btn { display: inline-flex; align-items: center; padding: 9px 16px; border: 1px solid transparent; border-radius: 2px; background: var(--navy); color: #fff; font-size: .86rem; font-weight: 600; cursor: pointer; }
.ife .ife-btn:hover { background: #16458F; }
.ife .ife-btn-g { background: #fff; color: var(--ink); border-color: var(--line); }
.ife .ife-btn-g:hover { background: var(--paper-2); }
.ife-erreurs { font-size: .8rem; color: var(--err); margin-top: 8px !important; }
#ife-citation { font-family: var(--mono); font-size: .76rem; word-break: break-word; margin-bottom: 12px !important; }

.ife-sources summary, .ife-methode summary { cursor: pointer; font-weight: 600; margin-top: 32px; }
.ife-sources ul { padding-left: 18px; font-size: .86rem; }
.ife-sources li { margin: 3px 0; }
.ife-methode { margin-top: 24px; max-width: 90ch; }
.ife-methode p { font-size: .9rem; color: var(--text-2); margin-top: 10px; }

@media (max-width: 1100px) {
  .ife-grille { grid-template-columns: minmax(0, 1fr); }
  .ife-cote { position: static; order: -1; }
}
@media (max-width: 640px) {
  .ife { padding: 36px 16px 56px; }
  .ife-reglages { grid-template-columns: 1fr 1fr; padding: 16px; }
  .ife-crit { flex-direction: column; }
}
@media (max-width: 420px) {
  .ife-reglages { grid-template-columns: 1fr; }
}
.ife .ife-fichier { position: relative; cursor: pointer; }
.ife .ife-fichier input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.ife-survol { outline: 2px dashed var(--accent); outline-offset: 4px; }
.ife .ife-lien { border: 1px solid var(--line); background: #fff; border-radius: 2px; padding: 2px 8px; margin: 4px 4px 0 0; font-size: .8rem; cursor: pointer; color: var(--accent); }
.ife .ife-lien:hover { border-color: var(--accent); }
#ife-saisie-info { margin-top: 8px !important; }
.ife-detail { display: block; margin-top: 4px; font-family: var(--mono); font-size: .76rem; color: var(--text-2); }
.ife-legende { list-style: none; padding: 0; margin: 10px 0 0 !important; display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: .84rem; }
.ife-combo { position: relative; display: block; }
.ife-combo input { width: 100%; padding: 8px 10px; border: 1px solid var(--line); border-radius: 2px; background: #fff; font-size: .9rem; color: var(--ink); }
.ife-combo-l { position: absolute; z-index: 30; top: calc(100% + 4px); left: 0; min-width: 100%; width: max-content; max-width: min(420px, 90vw); max-height: 320px; overflow: auto; margin: 0; padding: 4px; list-style: none; background: #fff; border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 12px 28px -12px rgba(15,52,116,.3); }
.ife-combo-l li { display: flex; align-items: baseline; gap: 8px; padding: 7px 9px; border-radius: 3px; cursor: pointer; font-size: .88rem; font-weight: 400; color: var(--ink); }
.ife-combo-l li span { color: var(--text-2); }
.ife-combo-l li small { margin-left: auto; padding-left: 12px; color: var(--text-3); font-size: .76rem; white-space: nowrap; }
.ife-combo-l li[aria-selected=true], .ife-combo-l li:hover { background: var(--paper-2); }
.ife-combo-l .ife-combo-vide { color: var(--text-3); cursor: default; }

/* Carte des lacunes : la colonne de côté (vos échantillons) n'y sert pas. */
.ife-vue-lacunes .ife-grille { grid-template-columns: minmax(0, 1fr); }
.ife-vue-lacunes .ife-cote { display: none; }
.ife-lac-cadre { max-height: 78vh; overflow: auto; border: 1px solid var(--line); border-radius: 4px; }
.ife-lac { border-collapse: separate; border-spacing: 0; font-size: .8rem; }
.ife-lac th, .ife-lac td { border-bottom: 1px solid #fff; border-right: 1px solid #fff; }
.ife-lac thead th { position: sticky; top: 0; z-index: 2; background: #fff; }
.ife-lac-col { height: 200px; min-width: 38px; vertical-align: bottom; padding: 0 0 6px; font-weight: 500; color: var(--text-2); }
.ife-lac-col span { display: inline-block; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; max-height: 190px; overflow: hidden; text-overflow: ellipsis; }
.ife-lac-col .ife-pastille { margin: 0 0 6px; }
.ife-lac-coin { position: sticky; left: 0; z-index: 3 !important; background: #fff; }
.ife-lac-ligne { position: sticky; left: 0; z-index: 1; background: #fff; text-align: left; padding: 6px 12px 6px 10px; white-space: nowrap; font-weight: 600; border-right: 1px solid var(--line) !important; }
.ife-lac-case, .ife-lac-vide, .ife-lac-tot { min-width: 38px; height: 30px; text-align: center; font-variant-numeric: tabular-nums; padding: 0 4px; }
.ife-lac-case { cursor: pointer; }
.ife-lac-case:hover { outline: 2px solid var(--accent); outline-offset: -2px; }
.ife-lac-faible { box-shadow: inset 0 0 0 1px rgba(161,92,7,.7); }
.ife-lac-vide { background: repeating-linear-gradient(135deg, #F7F8FA 0 4px, #EEF0F4 4px 5px); }
.ife-lac-tot { color: var(--text-2); font-weight: 600; background: var(--paper-2); }
.ife-lac-totaux th, .ife-lac-totaux td { border-top: 1px solid var(--line); }