/* Table des cas du banc (étape banc) — forme Black Friday, dictée Luc du 29/09 (action O5T87kYs) : groupes de colonnes repliables, filtres, détail par cas. */

/* Un groupe replié, une ligne filtrée, un détail fermé : masqués pour de bon
   (le contrôleur bench-table pose l'attribut hidden). */
.bench-lecture [hidden] { display: none !important; }

/* Le titre vertical et les valeurs partagent le centre de leur colonne.
   Les filets restent visibles sur grand écran pour suivre une donnée. */
.bench-cases.bench-lecture th[data-bench-table-col="input"],
.bench-cases.bench-lecture th[data-bench-table-col="output"],
.bench-cases.bench-lecture td[data-bench-table-col="input"],
.bench-cases.bench-lecture td[data-bench-table-col="output"],
.bench-cases.bench-lecture .bench-lecture__cond,
.bench-cases.bench-lecture .bench-lecture__classes {
  text-align: center;
  border-left: var(--border-width-1) solid var(--border);
}
.bench-cases.bench-lecture .bench-cases__vhead {
  display: block;
  width: fit-content;
  margin: 0 auto;
  text-align: left;
  vertical-align: bottom;
}
.bench-cases.bench-lecture td[data-bench-table-col="input"],
.bench-cases.bench-lecture td[data-bench-table-col="output"] {
  font-variant-numeric: tabular-nums;
}
.bench-cases.bench-lecture .bench-lecture__why-head--classes { text-align: center; }

/* Barre de lecture au-dessus de la table : compte affiché, filtre par
   classe, détail de tous les cas. */
.bench-lecture__bar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; margin-bottom: .5rem; font-size: 11px; color: var(--text-secondary); }
.bench-lecture__bar strong { color: var(--text-primary); font-variant-numeric: tabular-nums; }
.bench-lecture__class-filter select { margin-left: .35rem; padding: .1rem .4rem; border: var(--border-width-1) solid var(--border); border-radius: .3rem; background: var(--surface); font: inherit; color: var(--text-primary); }
.bench-lecture__details { display: inline-flex; gap: .35rem; margin-left: auto; }
.bench-lecture__details button, .bench-lecture__reset { padding: 0 .45rem; border: var(--border-width-1) solid var(--border); border-radius: .3rem; background: var(--surface); font-size: 10.5px; line-height: 1.6; color: var(--text-secondary); }
.bench-lecture__details button:hover, .bench-lecture__reset:not(:disabled):hover { background: var(--surface-raised); color: var(--text-primary); }
.bench-lecture__reset:disabled { opacity: .45; cursor: default; }

/* Ligne des en-têtes fusionnés : Conditions | Entrées | Sorties | Pourquoi
   ce cas — le lecteur sait à quel groupe appartient chaque colonne. */
.bench-lecture__groups th { padding: .3rem .4rem; border-bottom: 2px solid var(--border); font-size: 10.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; text-align: left; vertical-align: middle; white-space: nowrap; }
.bench-lecture__group--conditions { background: color-mix(in srgb, #7c3aed 7%, var(--surface)); color: #5b21b6; border-bottom-color: #c4b5fd !important; }
.bench-lecture__group--conditions .bench-lecture__reset { margin-left: .5rem; text-transform: none; letter-spacing: 0; font-weight: 500; }
.bench-lecture__group--input { background: color-mix(in srgb, #0284c7 7%, var(--surface)); color: #075985; border-bottom-color: #7dd3fc !important; }
.bench-lecture__group--output { background: color-mix(in srgb, #059669 7%, var(--surface)); color: #065f46; border-bottom-color: #6ee7b7 !important; }
.bench-lecture__group--pourquoi { background: var(--surface-raised); color: var(--text-secondary); }
.bench-lecture__group-toggle { display: inline-flex; align-items: center; gap: .3rem; padding: 0; border: 0; background: none; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; cursor: pointer; }
.bench-lecture__group-toggle::after { content: "▾"; font-size: 10px; }
th[aria-expanded="false"] > .bench-lecture__group-toggle::after { content: "▸"; }
.bench-lecture__group-toggle:hover { text-decoration: underline; }
.bench-lecture__group-toggle:focus-visible, .bench-lecture__filter:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; border-radius: 2px; }

/* Colonne témoin d'un groupe replié : étroite, hachurée, rien à lire. */
.bench-lecture__stub { width: 1.1rem; min-width: 1.1rem; padding: 0; background: repeating-linear-gradient(135deg, var(--surface-raised) 0 3px, var(--surface) 3px 6px); }

/* Filtre d'une condition, sous son nom : · (indifférent), V, F. */
.bench-lecture__cond .bench-ref { display: block; margin-bottom: .2rem; }
.bench-lecture__filter { display: inline-block; min-width: 1.2rem; height: 1.1rem; padding: 0 .2rem; border: var(--border-width-1) solid var(--border); border-radius: .25rem; background: var(--surface); font: 600 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--text-secondary); cursor: pointer; }
.bench-lecture__filter[data-state="true"] { border-color: #059669; background: color-mix(in srgb, #059669 14%, var(--surface)); color: #047857; }
.bench-lecture__filter[data-state="false"] { border-color: #78716c; background: color-mix(in srgb, #78716c 14%, var(--surface)); color: #44403c; }

/* Pourquoi ce cas : l'expression de la branche atteinte et la raison
   d'être en quelques mots ; ni l'une ni l'autre n'impose de largeur. */
.bench-lecture__why-head { font-size: 10.5px; font-weight: 600; vertical-align: bottom; white-space: nowrap; }
.bench-lecture__expr { min-width: 6.5rem; max-width: 13rem; vertical-align: top; }
.bench-lecture__expr-text { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10.5px; line-height: 1.35; overflow-wrap: anywhere; color: var(--text-primary); }
.bench-lecture__why { min-width: 9rem; max-width: 17rem; vertical-align: top; font-size: 10.5px; line-height: 1.4; color: var(--text-primary); }
.bench-lecture__why-label { font-size: 9.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--text-secondary); }
.bench-lecture__pair { white-space: nowrap; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.bench-lecture__why-seul { margin-top: .15rem; overflow-wrap: anywhere; }
.bench-lecture__classes { vertical-align: top; }
.bench-lecture__detail-toggle { min-width: 1.6rem; padding: 0 .3rem; border: var(--border-width-1) solid var(--border); border-radius: .3rem; background: var(--surface); font: 600 10.5px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--text-secondary); cursor: pointer; }
.bench-lecture__detail-toggle::after { content: " ▸"; }
.bench-lecture__detail-toggle[aria-expanded="true"]::after { content: " ▾"; }
.bench-lecture__detail-toggle:hover { background: var(--surface-raised); color: var(--text-primary); }

/* Détail d'un cas, déplié sous sa ligne. */
.bench-cases tbody tr[data-case-row]:has(+ tr.bench-lecture__detail:not([hidden])) { border-bottom-width: 0; }
.bench-lecture__detail > td { background: color-mix(in srgb, var(--surface-raised) 60%, var(--surface)); }
.bench-lecture__detail-grid { display: grid; gap: .35rem 1.5rem; grid-template-columns: minmax(0, 1fr); font-size: 11px; line-height: 1.45; color: var(--text-secondary); }
@media (min-width: 900px) { .bench-lecture__detail-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.2fr) minmax(0, 1fr); } }
.bench-lecture__detail-title { display: block; font-size: 10px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--text-secondary); }
.bench-lecture__detail-list { margin: 0; padding-left: 1rem; list-style: disc; overflow-wrap: anywhere; color: var(--text-primary); }
.bench-lecture__detail-expr { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10.5px; white-space: pre-line; overflow-wrap: anywhere; color: var(--text-primary); }

/* « n.c. » : la phrase du client en bulle, l'abréviation se lit comme une valeur. */
abbr.bench-cases__not-computed { display: inline; font-style: italic; font-size: 10.5px; color: var(--text-secondary); text-decoration: underline dotted; cursor: help; }
