/* ═══════════════════════════════════════════════════════════════════════════════════════════════════════════
   VUES D'EXPLOITATION du volet « Voir mes analyses » : BFR et cycle de cash, point mort, structure de charges, santé
   financière, concentration client. Refonte du rendu le 2026-09-14, dans la grammaire de la vue LBO (lbo.css) : tuiles de
   chiffres clés, lignes de lecture, cartes, tableaux à négatifs entre parenthèses, graphiques SVG dessinés en Razor.
   Classes préfixées aex- ; jetons globaux de tokens.css. Sombre par défaut, clair sous html[data-theme="light"].
   Les vues sont aussi rendues dans le parcours live (largeur variable) : chaque racine .aex est un conteneur, toutes les
   adaptations passent par des requêtes de conteneur, jamais par la largeur de la fenêtre.
   ═══════════════════════════════════════════════════════════════════════════════════════════════════════════ */
.aex{
  --aex-tp:var(--color-text-primary); --aex-t2:var(--color-text-secondary); --aex-mut:var(--color-text-muted); --aex-dim:var(--color-text-dim);
  --aex-line:var(--color-border-medium); --aex-line-2:var(--color-border-bright);
  --aex-up:var(--st-green); --aex-dn:var(--st-red); --aex-amber:var(--st-amber);
  /* Feux (mêmes valeurs que --f-vert / --f-orange / --f-rouge de lbo.css) et négatifs des tableaux */
  --aex-ok:#34d399; --aex-mid:#fb923c; --aex-ko:#f87171; --aex-neg:#ff8f7a;
  /* Séries catégorielles, ordre fixe validé (écart de couleur, daltonisme) : bleu, orange, vert d'eau, jaune, magenta ; neutre */
  --aex-s1:#3987e5; --aex-s2:#d95926; --aex-s3:#199e70; --aex-s4:#c98500; --aex-s5:#d55181; --aex-s0:#6f8793;
  /* Encre posée sur une série colorée, anneau de surface autour des points */
  --aex-ink:#04121a; --aex-ring:var(--surf-1);
  font-family:var(--font-family); color:var(--aex-tp); font-size:12px; line-height:1.4; text-align:left;
  container-type:inline-size; display:grid; gap:14px; min-width:0;
}
html[data-theme="light"] .aex{
  --aex-ok:#047857; --aex-mid:#c2410c; --aex-ko:#dc2626; --aex-neg:#c4432c;
  --aex-s1:#2a78d6; --aex-s2:#eb6834; --aex-s3:#1baf7a; --aex-s4:#eda100; --aex-s5:#e87ba4; --aex-s0:#8a9aa2;
}
.aex *{box-sizing:border-box}
.aex .iku-ico{width:13px;height:13px;flex:none;vertical-align:-2px}
.aex b{font-weight:600}
.aex p{margin:0}

/* ── En-tête ────────────────────────────────────────────────────────────────────────────────────────────────── */
.aex-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:6px 16px}
.aex-head-t{min-width:0;flex:1 1 320px}
.aex-h{display:flex;align-items:center;gap:9px;margin:0;font:700 18px/1.25 var(--font-family);letter-spacing:-.01em;color:var(--aex-tp)}
.aex-h .iku-ico{width:18px;height:18px;color:var(--brand-strong)}
.aex-sub{margin:3px 0 0;font-size:12px;line-height:1.45;color:var(--aex-mut)}
.aex-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;border:1px solid var(--aex-line-2);font-size:11px;font-weight:600;color:var(--aex-t2);white-space:nowrap}
.aex-chip.is-prev{border-style:dashed}
.aex-chip .iku-ico{width:12px;height:12px;color:var(--aex-mut)}

/* ── Chiffres clés ──────────────────────────────────────────────────────────────────────────────────────────── */
.aex-kpis{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row dense}
.aex-kpis.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.aex-kpis.c5{grid-template-columns:1.25fr repeat(4,minmax(0,1fr))}
/* Groupe de tuiles qui porte sa propre clé data-blk à l'intérieur d'une rangée : trois colonnes de la rangée, mêmes largeurs. */
.aex-kpis-in{grid-column:span 3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-width:0}
.aex-kpi{padding:9px 12px;border-radius:12px;border:1px solid var(--color-border-medium);background:color-mix(in srgb,var(--color-text-primary) 3%,transparent);display:grid;gap:2px;align-content:start;min-width:0}
.aex-kpi-l{font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--color-text-muted);line-height:1.3}
.aex-kpi-v{font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.15;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--aex-tp)}
.aex-kpi-v small{font-size:12px;font-weight:600;color:var(--aex-mut);margin-left:4px;letter-spacing:0}
.aex-kpi-v.is-txt{font-size:14px;line-height:1.3;white-space:normal;letter-spacing:-.005em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.aex-kpi-v.up{color:var(--aex-up)}
.aex-kpi-v.dn{color:var(--aex-dn)}
.aex-kpi-s{font-size:10.5px;color:var(--color-text-muted);line-height:1.4}
.aex-kpi-s b{color:var(--aex-t2);font-weight:600}
.aex-kpi-s .aex-pill{margin:2px 6px 0 0}
.aex-kpi .aex-gauge{margin-top:6px}
.aex-kpi.is-hero{background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 14%,transparent),color-mix(in srgb,var(--brand) 3%,transparent));border-color:color-mix(in srgb,var(--brand) 34%,transparent)}
.aex-kpi.is-hero .aex-kpi-v{font-size:26px;color:var(--brand-strong)}
.aex-kpi[data-tip]{cursor:help}

/* ── Pastilles d'état, tendances ───────────────────────────────────────────────────────────────────────────── */
.aex-pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;line-height:1.25;padding:2px 8px 2px 7px;border-radius:99px;white-space:nowrap;color:var(--aex-t2);background:color-mix(in srgb,var(--aex-tp) 7%,transparent);vertical-align:1px}
.aex-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.aex-pill[data-level="ok"]{color:var(--aex-ok);background:color-mix(in srgb,var(--aex-ok) 13%,transparent)}
.aex-pill[data-level="mid"]{color:var(--aex-mid);background:color-mix(in srgb,var(--aex-mid) 13%,transparent)}
.aex-pill[data-level="ko"]{color:var(--aex-ko);background:color-mix(in srgb,var(--aex-ko) 13%,transparent)}
.aex-pill.is-lg{font-size:11.5px;padding:3px 10px 3px 9px}
.aex-trend{display:inline-flex;align-items:baseline;gap:3px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.aex-trend.up{color:var(--aex-up)}
.aex-trend.dn{color:var(--aex-dn)}
.aex-trend.eq{color:var(--aex-mut);font-weight:600}

/* ── Lignes de lecture ─────────────────────────────────────────────────────────────────────────────────────── */
.aex-read{display:grid;grid-template-columns:16px minmax(0,1fr);gap:10px;align-items:start;padding:9px 14px;border-radius:12px;border:1px solid var(--aex-line);background:color-mix(in srgb,var(--aex-tp) 2%,transparent);font-size:12.5px;line-height:1.55;color:var(--aex-t2)}
.aex-read b{color:var(--aex-tp);font-weight:700;white-space:nowrap}
.aex-read b.w{white-space:normal}
.aex-read>.iku-ico{width:15px;height:15px;color:var(--brand-strong);margin-top:3px}
.aex-read.is-lever{border-color:color-mix(in srgb,var(--aex-amber) 30%,transparent);background:color-mix(in srgb,var(--aex-amber) 5%,transparent)}
.aex-read.is-lever>.iku-ico{color:var(--aex-amber)}
.aex-read.is-ko{border-color:color-mix(in srgb,var(--aex-ko) 34%,transparent);background:color-mix(in srgb,var(--aex-ko) 6%,transparent)}
.aex-read.is-ko>.iku-ico{color:var(--aex-ko)}
.aex-read.is-ok>.iku-ico{color:var(--aex-ok)}
.aex-read-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}

/* ── Actions ───────────────────────────────────────────────────────────────────────────────────────────────── */
.aex-btn{appearance:none;display:inline-flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--brand) 14%,transparent);border:1px solid color-mix(in srgb,var(--brand) 38%,transparent);color:var(--aex-tp);border-radius:99px;padding:5px 11px;font:600 11.5px/1.2 var(--font-family);white-space:nowrap;cursor:pointer;transition:border-color .15s,background .15s}
.aex-btn:hover{border-color:color-mix(in srgb,var(--brand) 75%,transparent);background:color-mix(in srgb,var(--brand) 20%,transparent)}
.aex-btn:focus-visible,.aex-btn-ghost:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px}
.aex-btn .iku-ico{color:var(--brand-strong)}
.aex-btn-ghost{appearance:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--aex-line-2);background:transparent;color:var(--aex-t2);border-radius:99px;padding:5px 11px;font:600 11.5px/1.2 var(--font-family);white-space:nowrap;cursor:pointer}
.aex-btn-ghost:hover{color:var(--aex-tp);border-color:color-mix(in srgb,var(--aex-tp) 40%,transparent)}

/* ── Cartes, sections, légendes ────────────────────────────────────────────────────────────────────────────── */
.aex-stack{display:grid;gap:12px;min-width:0}
.aex-duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;min-width:0}
.aex-duo.w{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}
.aex-duo>.aex-card{display:flex;flex-direction:column}
.aex-mid{flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0}
.aex-card{border:1px solid var(--aex-line);border-radius:12px;background:color-mix(in srgb,var(--aex-tp) 2.5%,transparent);padding:12px 14px;min-width:0}
.aex-card-t{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 10px;margin:0 0 10px}
.aex-card-t h3{font:700 13px/1.3 var(--font-family);margin:0;color:var(--aex-tp)}
.aex-card-t small{font-size:11px;color:var(--aex-mut)}
.aex-card-t .r{margin-left:auto;align-self:center}
.aex-note{font-size:11px;line-height:1.55;color:var(--aex-mut);margin:10px 0 0}
.aex-note b{color:var(--aex-t2);font-weight:600}
.aex-sec{display:grid;gap:10px;min-width:0}
.aex-sec-t{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;margin:4px 0 0;font:700 14px/1.3 var(--font-family);color:var(--aex-tp)}
.aex-sec-t small{font-size:11.5px;font-weight:500;color:var(--aex-mut)}
.aex-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:10.5px;color:var(--aex-mut);margin:0 0 8px}
.aex-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.aex-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--c)}
.aex-legend i.line{height:2px;width:14px;border-radius:1px}
.aex-legend i.dash{height:0;width:14px;border-top:2px dashed var(--c);border-radius:0;background:none}
.aex-legend i.wash{background:color-mix(in srgb,var(--c) 22%,transparent);border:1px solid color-mix(in srgb,var(--c) 55%,transparent)}
.aex-empty{display:grid;justify-items:center;gap:6px;text-align:center;padding:28px 20px;border:1px dashed var(--aex-line-2);border-radius:12px;color:var(--aex-mut);font-size:12.5px;line-height:1.5}
.aex-empty .iku-ico{width:22px;height:22px;color:var(--aex-mut);margin-bottom:2px}
.aex-empty b{color:var(--aex-tp);font-size:13.5px;font-weight:700}

/* ── Graphiques SVG ────────────────────────────────────────────────────────────────────────────────────────────
   Chaque graphique est dessiné à deux ou trois largeurs de repère ; la requête de conteneur de .aex-chart garde celle qui
   tombe près de l'échelle 1, pour que les textes restent lisibles du mobile au plein écran. */
.aex-chart{container-type:inline-size;min-width:0}
.aex-chart>svg.aex-svg{width:100%;height:auto;margin:0 auto;overflow:visible}
.aex-chart>svg.aex-v-l{display:block;max-width:640px}
.aex-chart.tri>svg.aex-v-l{max-width:1000px}
.aex-chart>svg.aex-v-m,.aex-chart>svg.aex-v-c{display:none}
@container (max-width:760px){
  .aex-chart.tri>svg.aex-v-l{display:none}
  .aex-chart.tri>svg.aex-v-m{display:block;max-width:760px}
}
@container (max-width:430px){
  .aex-chart>svg.aex-v-l,.aex-chart.tri>svg.aex-v-m{display:none}
  .aex-chart>svg.aex-v-c{display:block}
}
.aex svg.aex-svg text{font-family:var(--font-family)}
.aex-g-grid{stroke:color-mix(in srgb,var(--aex-tp) 8%,transparent);stroke-width:1}
.aex-g-base{stroke:color-mix(in srgb,var(--aex-tp) 26%,transparent);stroke-width:1}
.aex-g-ax{fill:var(--aex-mut);font-size:10px;font-variant-numeric:tabular-nums}
.aex-g-lbl{fill:var(--aex-t2);font-size:10.5px}
.aex-g-lbl.b{fill:var(--aex-tp);font-weight:700}
.aex-g-val{fill:var(--aex-tp);font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}
.aex-g-val.m{fill:var(--aex-mut);font-weight:600}
.aex-g-note{fill:var(--aex-mut);font-size:9.5px}
.aex-g-halo{paint-order:stroke;stroke:var(--aex-ring);stroke-width:4px;stroke-linejoin:round}
.aex-g-sel{fill:color-mix(in srgb,var(--brand) 9%,transparent)}
.aex-g-hit{fill:transparent;cursor:help}
.aex-g-hit:hover{fill:color-mix(in srgb,var(--aex-tp) 5%,transparent)}
.aex-f1{fill:var(--aex-s1)}.aex-f2{fill:var(--aex-s2)}.aex-f3{fill:var(--aex-s3)}.aex-f4{fill:var(--aex-s4)}.aex-f5{fill:var(--aex-s5)}.aex-f0{fill:var(--aex-s0)}
.aex-fb{fill:var(--brand)}
.aex-soft{fill-opacity:.55}
.aex-prev{opacity:.62}
.aex-w-ok{fill:color-mix(in srgb,var(--aex-ok) 13%,transparent)}
.aex-w-ko{fill:color-mix(in srgb,var(--aex-ko) 13%,transparent)}
.aex-ln-b{fill:none;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.aex-ln-i{fill:none;stroke:var(--aex-t2);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.aex-ln-ref{fill:none;stroke:var(--aex-mut);stroke-width:1.5;stroke-dasharray:4 3}
.aex-ln-mk{fill:none;stroke:color-mix(in srgb,var(--aex-tp) 45%,transparent);stroke-width:1;stroke-dasharray:3 3}
.aex-ln-dash{stroke-dasharray:5 4}
.aex-ln-link{stroke:color-mix(in srgb,var(--aex-tp) 32%,transparent);stroke-width:1;stroke-dasharray:2 2}
.aex-dt-b{fill:var(--brand);stroke:var(--aex-ring);stroke-width:2}
.aex-dt-i{fill:var(--aex-tp);stroke:var(--aex-ring);stroke-width:2}
.aex-dt-o{fill:var(--aex-ring);stroke:var(--aex-t2);stroke-width:2}

/* ── Cycle de cash : deux pistes sur une même échelle de jours ─────────────────────────────────────────────── */
.aex-ccc{display:grid;gap:9px}
.aex-ccc-row{display:grid;grid-template-columns:128px minmax(0,1fr);gap:4px 12px;align-items:center}
.aex-ccc-l{font-size:11.5px;color:var(--aex-t2);line-height:1.3}
.aex-ccc-l small{display:block;font-size:10px;color:var(--aex-mut)}
.aex-ccc-track{position:relative;height:24px;border-radius:5px;background:color-mix(in srgb,var(--aex-tp) 5%,transparent)}
.aex-ccc-seg{position:absolute;top:0;bottom:0;border-radius:4px;font-style:normal;background:var(--c);display:flex;align-items:center;justify-content:center;overflow:visible;color:var(--aex-ink);font-size:10.5px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;cursor:help}
.aex-ccc-seg.is-gap{background:color-mix(in srgb,var(--brand) 16%,transparent);border:1.5px dashed color-mix(in srgb,var(--brand) 70%,transparent);color:var(--aex-tp)}
.aex-ccc-seg.is-gap.is-neg{background:color-mix(in srgb,var(--aex-ok) 14%,transparent);border-color:color-mix(in srgb,var(--aex-ok) 70%,transparent)}
.aex-ccc-axis{position:relative;height:14px;margin-left:140px;font-size:9.5px;color:var(--aex-mut);font-variant-numeric:tabular-nums}
.aex-ccc-axis span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.aex-ccc-axis span:first-child{transform:none}
.aex-ccc-f{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;font-size:12px;color:var(--aex-t2)}
.aex-ccc-f .op{color:var(--aex-dim);font-weight:600}
.aex-ccc-t{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:99px;background:color-mix(in srgb,var(--aex-tp) 5%,transparent);white-space:nowrap;font-variant-numeric:tabular-nums}
.aex-ccc-t i{width:8px;height:8px;border-radius:2px;background:var(--c)}
.aex-ccc-t.is-res{background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--aex-tp);font-weight:700}

/* ── Jauges : une valeur sur son échelle, zones d'alerte, seuils écrits sous la piste ─────────────────────── */
.aex-gauge{position:relative;min-width:0}
.aex-gauge[data-tip]{cursor:help}
.aex-gauge-track{position:relative;height:8px;border-radius:99px;background:color-mix(in srgb,var(--aex-tp) 7%,transparent)}
.aex-gauge-z{position:absolute;top:0;bottom:0}
.aex-gauge-z:first-child{border-radius:99px 0 0 99px}
.aex-gauge-z:nth-child(3){border-radius:0 99px 99px 0}
.aex-gauge-z[data-level="ok"]{background:color-mix(in srgb,var(--aex-ok) 34%,transparent)}
.aex-gauge-z[data-level="mid"]{background:color-mix(in srgb,var(--aex-mid) 34%,transparent)}
.aex-gauge-z[data-level="ko"]{background:color-mix(in srgb,var(--aex-ko) 34%,transparent)}
.aex-gauge-m{position:absolute;top:-5px;bottom:-5px;width:4px;margin-left:-2px;border-radius:2px;background:var(--aex-tp);box-shadow:0 0 0 2px var(--aex-ring)}
.aex-gauge.is-under .aex-gauge-m,.aex-gauge.is-over .aex-gauge-m{width:0;margin-left:0;background:none;box-shadow:none;border:6px solid transparent;top:-2px;bottom:auto}
.aex-gauge.is-under .aex-gauge-m{border-right-color:var(--aex-tp);margin-left:-6px}
.aex-gauge.is-over .aex-gauge-m{border-left-color:var(--aex-tp);margin-left:-6px}
.aex-gauge.is-na .aex-gauge-track{opacity:.4}
.aex-gauge-ticks{position:relative;height:13px;margin-top:4px;font-size:9.5px;color:var(--aex-mut);font-variant-numeric:tabular-nums}
.aex-gauge-ticks:empty{display:none}
.aex-gauge-ticks span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}

/* ── Santé : note, ratios sur leur échelle, positionnement sectoriel ───────────────────────────────────────── */
.aex-score{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center}
svg.aex-ring{display:block;width:96px;height:96px}
.aex-ring .bg{fill:none;stroke:color-mix(in srgb,var(--aex-tp) 9%,transparent);stroke-width:8}
.aex-ring .fg{fill:none;stroke:var(--aex-ok);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .5s ease}
.aex-ring[data-level="mid"] .fg{stroke:var(--aex-mid)}
.aex-ring[data-level="ko"] .fg{stroke:var(--aex-ko)}
.aex-ring .g{fill:var(--aex-tp);font-size:30px;font-weight:700}
.aex-ring .s{fill:var(--aex-mut);font-size:10.5px}
.aex-score-t{display:grid;gap:6px;min-width:0}
.aex-score-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font:700 15px/1.3 var(--font-family);color:var(--aex-tp);margin:0}
.aex-score-p{font-size:12.5px;line-height:1.55;color:var(--aex-t2)}
.aex-score-p b{color:var(--aex-tp);font-weight:700}
.aex-rgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 26px}
.aex-rgrp{display:grid;align-content:start;min-width:0}
.aex-rgrp-t{font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--aex-mut);margin:0 0 2px}
.aex-rrow{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(96px,1fr) minmax(86px,auto);gap:6px 14px;align-items:center;padding:9px 0 7px;border-top:1px solid color-mix(in srgb,var(--aex-tp) 7%,transparent)}
.aex-rrow-l{font-size:12px;font-weight:600;color:var(--aex-tp);line-height:1.3;min-width:0}
.aex-rrow-l small{display:block;font-size:10.5px;font-weight:500;color:var(--aex-mut);margin-top:1px}
.aex-rrow-g{min-width:0;padding-top:4px}
.aex-rrow-v{display:grid;justify-items:end;gap:3px;text-align:right}
.aex-rrow-v b{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aex-tp)}
.aex-sect-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 10px;margin:0 0 10px}
.aex-sect-h small{font-size:11px;color:var(--aex-mut);border-bottom:1px dotted color-mix(in srgb,var(--aex-tp) 30%,transparent);cursor:help}
.aex-fams{display:grid;gap:10px}
.aex-fam{display:grid;grid-template-columns:150px minmax(0,1fr) 40px;gap:4px 12px;align-items:center}
.aex-fam-l{font-size:12px;color:var(--aex-t2)}
.aex-fam-bar{position:relative;height:10px;border-radius:3px;background:color-mix(in srgb,var(--aex-tp) 6%,transparent)}
.aex-fam-fill{position:absolute;top:0;bottom:0;background:var(--c)}
.aex-fam-fill.is-up{border-radius:0 3px 3px 0}
.aex-fam-fill.is-dn{border-radius:3px 0 0 3px}
.aex-fam-mid{position:absolute;left:50%;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:1px;background:color-mix(in srgb,var(--aex-tp) 55%,transparent)}
.aex-fam-v{font-size:12.5px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums;color:var(--aex-tp)}
.aex [data-tone="ok"]{--c:var(--aex-ok)}
.aex [data-tone="mid"]{--c:var(--aex-amber)}
.aex [data-tone="warn"]{--c:var(--aex-mid)}
.aex [data-tone="ko"]{--c:var(--aex-ko)}
.aex-tone{white-space:nowrap}
.aex-tone::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--c);margin-right:6px;vertical-align:1px}
.aex-fam-ax{display:grid;grid-template-columns:150px minmax(0,1fr) 40px;gap:12px;font-size:9.5px;color:var(--aex-mut)}
.aex-fam-ax>span:nth-child(2){display:flex;justify-content:space-between;gap:8px}
.aex-fw{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:14px}
.aex-fw-col{border:1px solid var(--aex-line);border-radius:10px;padding:10px 12px;display:grid;gap:7px;align-content:start;background:color-mix(in srgb,var(--aex-tp) 2%,transparent)}
.aex-fw-h{display:flex;align-items:center;gap:6px;font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--aex-mut)}
.aex-fw-h .iku-ico{width:12px;height:12px}
.aex-fw-it{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12px;color:var(--aex-t2)}
.aex-fw-it span[data-tip]{cursor:help;border-bottom:1px dotted color-mix(in srgb,var(--aex-tp) 30%,transparent)}
.aex-fw-it b{font-variant-numeric:tabular-nums;color:var(--aex-tp);font-weight:700}

/* ── Tableaux : chiffres à droite en chasse fixe ; un négatif entre parenthèses, en corail ; un zéro en tiret ─────────
   Les montants positifs gardent la place d'une parenthèse fermante invisible, pour rester alignés sur les négatifs. */
.aex-tw{overflow-x:auto;border:1px solid var(--aex-line);border-radius:10px;background:color-mix(in srgb,var(--aex-tp) 1.5%,transparent);scrollbar-width:thin}
.aex-tw.is-scroll{max-height:330px;overflow:auto;overscroll-behavior:contain}
.aex-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:11.5px;line-height:1.35;font-variant-numeric:tabular-nums}
.aex-tbl th,.aex-tbl td{padding:6px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid color-mix(in srgb,var(--aex-tp) 6%,transparent);color:var(--aex-tp);font-weight:500;vertical-align:middle}
.aex-tbl thead th{position:sticky;top:0;z-index:1;padding-top:7px;padding-bottom:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--aex-mut);background:color-mix(in srgb,var(--aex-tp) 4%,var(--surf-1b));border-bottom-color:color-mix(in srgb,var(--aex-tp) 14%,transparent)}
.aex-tbl .l{text-align:left}
.aex-tbl .c{text-align:center}
.aex-tbl td.l{white-space:normal;min-width:150px}
.aex-tbl tbody tr:last-child>*{border-bottom:0}
.aex-tbl tbody tr:hover>*{background:color-mix(in srgb,var(--aex-tp) 4%,transparent)}
.aex-tbl td.neg{color:var(--aex-neg)}
.aex-tbl td.z{color:color-mix(in srgb,var(--aex-mut) 60%,transparent)}
.aex-tbl td.amt:not(.neg)::after{content:")";visibility:hidden}
.aex-tbl td.up{color:var(--aex-up);font-weight:600}
.aex-tbl td.dn{color:var(--aex-dn);font-weight:600}
.aex-tbl td.eq{color:var(--aex-mut)}
.aex-tbl td.dim,.aex-tbl th.dim{color:var(--aex-mut)}
.aex-tbl td.bar{width:30%;min-width:96px}
.aex-tbl tr.is-tot>td{border-top:1px solid color-mix(in srgb,var(--aex-tp) 22%,transparent);background:color-mix(in srgb,var(--aex-tp) 3%,transparent)}
.aex-tbl tr.is-tot b{font-weight:700;color:inherit}
.aex-comp{align-items:center}
.aex-comp-g{min-width:0}
.aex-tbl tr.is-on>td{background:color-mix(in srgb,var(--brand) 6%,transparent)}
.aex-tbl tr.is-on:hover>td{background:color-mix(in srgb,var(--brand) 10%,transparent)}
.aex-tbl .aex-cell-l{display:flex;align-items:center;gap:8px;min-width:0}
.aex-tbl .aex-cell-l span{min-width:0;overflow-wrap:anywhere}
.aex-tbl .aex-cell-l small{display:block;font-size:10px;color:var(--aex-mut);margin-top:1px}
.aex-tbl [data-tip]{cursor:help}
.aex-sw{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--c,var(--aex-s0));flex:none}
.aex-bar{display:block;height:8px;border-radius:0 4px 4px 0;background:var(--c,var(--brand));min-width:2px;max-width:100%}
.aex-flag{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--aex-amber);margin-left:6px;vertical-align:2px}
.aex-chk{appearance:none;-webkit-appearance:none;width:16px;height:16px;margin:0;border-radius:4px;border:1.5px solid var(--color-border-hover);background:var(--color-bg-input);display:inline-grid;place-items:center;cursor:pointer;vertical-align:middle}
.aex-chk::after{content:"";width:8px;height:4px;border-left:2px solid var(--brand-contrast,#04121a);border-bottom:2px solid var(--brand-contrast,#04121a);transform:translateY(-1px) rotate(-45deg);opacity:0}
.aex-chk:checked{background:var(--brand);border-color:var(--brand)}
.aex-chk:checked::after{opacity:1}
.aex-chk:focus-visible{outline:2px solid var(--brand-strong);outline-offset:2px}

/* ── Composition en une barre (variables et fixes, poids des premiers clients) ─────────────────────────────── */
.aex-strip{display:flex;gap:2px;height:14px;border-radius:4px;overflow:hidden;margin:2px 0 8px}
.aex-strip i{display:block;min-width:2px;background:var(--c);cursor:help}
.aex-strip.is-lg{height:22px}

/* ── Simulateurs : leviers à pas, résultat en tuiles ───────────────────────────────────────────────────────── */
.aex-levers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.aex-levers.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.aex-lever{display:grid;gap:7px;align-content:start;padding:9px 12px 10px;border-radius:12px;border:1px solid var(--aex-line);background:color-mix(in srgb,var(--aex-tp) 2%,transparent);min-width:0}
.aex-lever-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 8px;font-size:11.5px;font-weight:700;color:var(--aex-tp)}
.aex-lever-h small{font-size:10.5px;font-weight:500;color:var(--aex-mut);white-space:nowrap}
.aex-lever-e{font-size:10.5px;color:var(--aex-mut);line-height:1.35}
.aex-lever-e b{font-weight:700;color:var(--aex-t2);font-variant-numeric:tabular-nums}
.aex-lever-e b.up{color:var(--aex-up)}
.aex-lever-e b.dn{color:var(--aex-dn)}
.aex-step{display:grid;grid-template-columns:32px minmax(0,1fr) auto 32px;align-items:stretch;height:32px;border:1px solid var(--color-border-hover);border-radius:8px;overflow:hidden;background:var(--color-bg-input)}
.aex-step:focus-within{border-color:var(--brand-strong);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 25%,transparent)}
.aex-step-b{appearance:none;border:0;margin:0;padding:0;background:color-mix(in srgb,var(--aex-tp) 5%,transparent);color:var(--aex-t2);font:600 16px/1 var(--font-family);cursor:pointer;transition:background .12s,color .12s}
.aex-step-b:hover{background:color-mix(in srgb,var(--brand) 20%,transparent);color:var(--aex-tp)}
.aex-step-b:focus-visible{outline:2px solid var(--brand-strong);outline-offset:-2px}
.aex-step .num-stepper{height:100%;min-width:0}
.aex-step .num-stepper-input{height:100%;width:100%;border:0;margin:0;background:transparent;text-align:right;color:var(--aex-tp);font:700 13.5px/1 var(--font-family);font-variant-numeric:tabular-nums;padding:0 2px 0 6px;outline:none;box-shadow:none}
.aex-step .num-stepper-btns{display:none}
.aex-step-u{display:flex;align-items:center;padding:0 8px 0 3px;font-size:11px;font-weight:600;color:var(--aex-mut)}
.aex-res{margin-top:10px}
.aex-kv{display:grid;margin-top:10px}
.aex-kv>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid color-mix(in srgb,var(--aex-tp) 7%,transparent)}
.aex-kv>div>span{font-size:12px;font-weight:600;color:var(--aex-tp);min-width:0}
.aex-kv>div>span>small{display:block;font-size:10.5px;font-weight:500;color:var(--aex-mut);margin-top:2px}
.aex-kv>div>span>small .aex-pill{margin-top:2px}
.aex-kv>div>b{font-size:16px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aex-tp)}

/* ── Largeurs réduites (requêtes sur la vue) ────────────────────────────────────────────────────────────────── */
@container (max-width:900px){
  .aex-duo,.aex-duo.w{grid-template-columns:minmax(0,1fr)}
  .aex-rgrid{grid-template-columns:minmax(0,1fr)}
}
@container (max-width:760px){
  .aex-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .aex-kpis.c5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .aex-kpis.c5>.is-hero{grid-column:span 2}
  .aex-levers{grid-template-columns:minmax(0,1fr)}
  .aex-fw{grid-template-columns:minmax(0,1fr)}
}
@container (max-width:560px){
  .aex{gap:12px}
  .aex-h{font-size:16px}
  .aex-kpis.c5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .aex-kpis.c5>.is-hero,.aex-kpis>.is-wide,.aex-kpis-in{grid-column:1/-1}
  .aex-kpi-v{font-size:18px}
  .aex-kpi.is-hero .aex-kpi-v{font-size:22px}
  .aex-kpis-in{grid-template-columns:minmax(0,1fr)}
  .aex-kpi-s .aex-trend{white-space:normal}
  /* Tuiles empilées : le libellé en tête, le chiffre à gauche, ses précisions à droite. */
  .aex-kpis-in .aex-kpi{grid-template-columns:auto minmax(0,1fr);column-gap:14px;align-items:center}
  .aex-kpis-in .aex-kpi-l{grid-column:1/-1}
  .aex-kpis-in .aex-kpi-v{grid-column:1;grid-row:2/span 2}
  .aex-kpis-in .aex-kpi-s{grid-column:2;text-align:right}
  .aex-card{padding:11px 12px}
  .aex-read{padding:8px 12px;gap:8px;font-size:12px}
  .aex-ccc-row{grid-template-columns:minmax(0,1fr)}
  .aex-ccc-axis{margin-left:0}
  .aex-rrow{grid-template-columns:minmax(0,1fr) auto}
  .aex-rrow-g{grid-column:1/-1;grid-row:2}
  .aex-fam,.aex-fam-ax{grid-template-columns:minmax(0,1fr) 40px}
  .aex-fam-bar{grid-column:1/-1;grid-row:2}
  .aex-fam-ax>span:first-child,.aex-fam-ax>span:last-child{display:none}
  .aex-fam-ax>span:nth-child(2){grid-column:1/-1}
  .aex-tbl th,.aex-tbl td{padding:5px 7px}
  .aex-tbl td.l{min-width:120px}
  .aex-tbl .hide-s{display:none}
}
@media (prefers-reduced-motion:reduce){
  .aex *{transition:none!important}
}
