/* Feuillets Contrôles, Couverture et Données brutes. Jetons dans app.css, couleurs du feuillet dans product.css. */

/* Contrôles : une liste à filets sur papier blanc, groupée par niveau. */
.check-group + .check-group { margin-top: 20px; }
.check-group h4 { margin-bottom: 8px; }
.check-rules { border-top: 1px solid var(--sheet-rule, var(--rule-strong)); border-bottom: 1px solid var(--sheet-rule, var(--rule-strong)); }
.check-rule { padding: 8px 0; }
.check-rule + .check-rule { border-top: 1px solid var(--rule); }
.check-rule summary { color: var(--ink); }
.check-list { list-style: none; margin: 6px 0 0; padding: 0; }
/* Une règle sans dépliable aligne son texte sur celui des titres à chevron. */
.check-rule > .check-list:only-child { margin: 0; padding-left: 20px; }
.check-item { display: flex; gap: 12px; align-items: baseline; padding: 4px 0; border-bottom: 1px solid var(--rule); }
.check-item:last-child { border-bottom: 0; }
.check-message { flex: 1; min-width: 0; }
.check-link { white-space: nowrap; }

/* Couverture */
.cov-toggle { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-sm); }
.cov-list { margin: 8px 0 0; padding-left: 18px; font-size: var(--fs-sm); }
.cov-list li { padding: 2px 0; }
details.block > summary { color: var(--ink); font-weight: 600; }
.sheet-body > details.block { border-top: 1px solid var(--sheet-rule, var(--rule)); padding-top: 12px; margin-top: 16px; }
.sheet-body .scroll-x { border-top: 1px solid var(--sheet-rule, var(--rule-strong)); }

/* Données brutes : l'arbre JSON. */
.jt { font-family: var(--font-mono); font-size: var(--fs-sm); }
.jt-tree, .jt-request { max-height: 70vh; overflow: auto; padding: 8px 0; border-top: 1px solid var(--sheet-rule, var(--rule)); border-bottom: 1px solid var(--sheet-rule, var(--rule)); }
.jt-children { margin-left: 7px; border-left: 1px dotted var(--rule-strong); padding-left: 10px; }
.jt .disclosure-caret { width: 14px; height: 14px; margin-right: 4px; }
.jt-leaf { padding-left: 18px; overflow-wrap: anywhere; }
.jt-key { color: var(--ink); }
.jt-meta { color: var(--muted); }
.jt-string { color: var(--ok-ink); }
.jt-number { color: var(--accent-ink); }
.jt-boolean, .jt-null { color: var(--warning-ink); }
.jt-hit { background: var(--warning-soft); outline: 1px solid var(--warning); border-radius: 2px; }
.raw-selected td { background: var(--yellow-pale); }
.data-table tbody tr.raw-selected:hover td { background: var(--yellow-pale); }

/* L'attribut hidden doit l'emporter sur le display des boutons. */
.jt [hidden], .block > .btn[hidden] { display: none !important; }
/* Boutons et champs gardent la police de l'interface dans l'arbre à chasse fixe. */
.jt .btn, .jt .input, .jt h4, .jt-request > summary { font-family: var(--font); }
.jt-request > summary { color: var(--ink); font-weight: 550; }
.jt .input[type="search"] { flex: 1; min-width: 280px; max-width: 480px; }
.raw-detail > td { padding: 8px 0 12px; background: var(--surface); }
.data-table tbody tr.raw-detail:hover td { background: var(--surface); }
.cov-section-link { color: var(--accent-ink); }
.block-head .input[type="search"] { min-width: 280px; }
