  /* ─── Pilotage : la console de l'exploitant ────────────────────── */
  /* Volontairement pauvre en style : c'est un instrument, pas une
     vitrine. Il reprend .panel, .esp-bloc, .esp-ligne et .esp-btn — un
     écran d'administration qui invente sa propre langue visuelle est un
     écran de plus à maintenir. Seule la BANDE D'ÉTAT est propre à lui. */
  #pilotage h3 .pil-muet {
    text-transform: none; letter-spacing: 0; font-weight: 400; opacity: .75;
  }
  .pil-quand { font-size: var(--t-note); color: var(--muted); margin: -6px 0 14px; }

  /* LA BANDE : une ligne quand tout va bien, un bloc quand ça casse. Ce
     n'est pas la couleur qui alerte — c'est la place que ça prend d'un
     coup, et l'œil le voit avant d'avoir lu. Une pastille ne se voit
     pas ; un bandeau permanent devient du décor. */
  .pil-bande {
    border-radius: 12px; padding: 11px 13px; margin-bottom: 18px;
    border: 1px solid var(--line2); background: var(--panel2);
  }
  .pil-bande .pil-titre {
    display: flex; align-items: center; gap: 9px;
    font-weight: var(--p-appuye); font-size: var(--t-lu);
  }
  .pil-bande .pil-compte { margin-left: auto; font-size: var(--t-note); color: var(--muted); font-weight: 400; }
  .pil-point { width: 9px; height: 9px; border-radius: 50%; flex: none; background: var(--muted); }
  .pil-ok .pil-point { background: var(--etat-bon); }
  .pil-att .pil-point { background: var(--etat-att); }
  .pil-casse .pil-point { background: var(--etat-mal); }
  .pil-ok { border-color: color-mix(in srgb, var(--etat-bon) 35%, transparent); }
  .pil-att { border-color: color-mix(in srgb, var(--etat-att) 40%, transparent); }
  .pil-casse { border-color: color-mix(in srgb, var(--etat-mal) 55%, transparent); }
  .pil-ok .pil-titre { color: var(--etat-bon); }
  .pil-att .pil-titre { color: var(--etat-att); }
  .pil-casse .pil-titre { color: var(--etat-mal); }
  .pil-panne { margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--line); }
  .pil-panne .pil-quoi { font-size: var(--t-corps); font-weight: var(--p-appuye); }
  .pil-panne .pil-phrase { font-size: var(--t-note); color: var(--muted); }
  /* LE GESTE, et pas seulement l'alarme : être prévenu sans pouvoir agir
     est le pire des deux mondes (A9).
     Il est au CORPS et non à la note, seule entorse à la règle d'arrondi
     du 30/08 (12,5 → 12) : c'est la ligne qui dit quoi corriger quand une
     promesse casse. La ranger avec les notes secondaires contredirait la
     raison même de son existence. */
  .pil-geste {
    margin-top: 7px; font-size: var(--t-corps); line-height: 1.45;
    background: var(--panel); border-radius: var(--r-fin); padding: 8px 10px;
  }
  .pil-vide { font-size: var(--t-corps); color: var(--muted); }
  .pil-genre {
    display: inline-block; font-size: var(--t-etiquette); padding: 1px 6px;
    border-radius: var(--r-fin);
    background: var(--panel2); color: var(--muted); margin-left: 6px;
  }
  .pil-grave { background: color-mix(in srgb, var(--etat-mal) 16%, transparent); color: var(--etat-mal); }
  #pil-argent table { width: 100%; border-collapse: collapse; font-size: var(--t-corps); }
  /* La graisse était 500, retirée le 30/08 : Segoe UI l'arrondissait à
     400 ou 600 selon le poste. DM Sans la rend (01/10), mais l'échelle
     la réserve à la navigation et aux boutons : un en-tête reste à 600. */
  #pil-argent th {
    text-align: right; font-weight: var(--p-appuye);
    font-size: var(--t-etiquette); color: var(--muted);
    padding-bottom: 6px; border-bottom: 1px solid var(--line);
  }
  #pil-argent th:first-child, #pil-argent td:first-child { text-align: left; }
  #pil-argent td { padding: 8px 0; text-align: right; border-bottom: 1px solid var(--line); }
  #pil-argent tr:last-child td { border-bottom: 0; }
  #pil-argent .pil-num { font-variant-numeric: tabular-nums; }
  #pil-argent .pil-total td { border-top: 1px solid var(--line2); font-weight: 600; }
  #pil-argent .pil-attente { font-size: var(--t-etiquette); color: var(--etat-att); }
  .pil-stat { display: flex; gap: 9px; padding: 7px 0; border-bottom: 1px solid var(--line); }
  .pil-stat:last-child { border-bottom: 0; }
  .pil-stat b { font-variant-numeric: tabular-nums; flex: none; }
  .pil-stat span { color: var(--muted); font-size: var(--t-corps); }
  /* Le compte API et la machine (02/09) : des lignes label/valeur. */
  .pil-ligne { display: flex; justify-content: space-between;
    align-items: baseline; gap: 10px; padding: 7px 0;
    border-bottom: 1px solid var(--line); font-size: var(--t-corps); }
  .pil-ligne:last-child { border-bottom: 0; }
  .pil-ligne .pil-num { font-variant-numeric: tabular-nums; text-align: right; }
  .pil-label { color: var(--muted); }
  .pil-fort { font-weight: var(--p-appuye); }
  .pil-alerte { color: var(--etat-att); }
  .pil-jauge { height: 5px; border-radius: var(--r-plein); background: var(--line);
    margin: 2px 0 4px; overflow: hidden; }
  .pil-jauge i { display: block; height: 100%; background: var(--etat-bon); }
  .pil-jauge.pil-alerte-fond i { background: var(--etat-att); }
  .pil-tranche { font-size: var(--t-corps); color: var(--etat-att);
    padding: 7px 0 0; }
  /* La série : quatorze barres, le jour courant se distingue. Des
     RECTANGLES, pas une courbe — A13 l'écartait, Adam l'a rouvert le
     02/09 en validant la maquette. */
  .pil-serie { display: flex; align-items: flex-end; gap: 3px; height: 44px;
    padding: 6px 0 2px; }
  .pil-serie i { flex: 1;
    background: color-mix(in srgb, var(--muted) 38%, transparent);
    min-height: 2px; }
  .pil-serie i.pil-jour { background: var(--accent); }
  .pil-serie-legende { display: flex; justify-content: space-between;
    font-size: var(--t-etiquette); color: var(--muted); padding-bottom: 7px;
    border-bottom: 1px solid var(--line); }
  .pil-vital { font-size: var(--t-etiquette); letter-spacing: .05em;
    text-transform: uppercase; border: 1px solid currentColor;
    border-radius: var(--r-plein); padding: 0 7px; margin-left: 8px; }
  .pil-depuis { font-size: var(--t-note); color: var(--muted); }
  #pilotage .user-msg[hidden] { display: none; }
