.o-bilan { display: grid; gap: 12px; margin-block: 18px; }
.bl-etape { display: grid; gap: 12px; }
.bl-etape[hidden] { display: none; }
.bl-etape h2 { margin: 0; font-size: clamp(1.7rem, 5.5vw, 2.2rem); }
.bl-etape p { margin: 0; }
.bl-etape form { display: grid; gap: 14px; }
.bl-etape fieldset { min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.bl-etape legend { padding: 0; margin-block-end: 6px; font-weight: 750; }
.bl-choix { display: flex; flex-wrap: wrap; gap: 6px; }
.bl-choix label { display: inline-flex; align-items: center; gap: 8px; min-block-size: 44px; padding: 6px 12px; border-radius: 8px; background: var(--asphalte); cursor: pointer; font-weight: 650; }
.bl-choix label:has(input:checked) { background: var(--orange); color: var(--encre); }
.bl-choix input { accent-color: var(--encre); inline-size: 18px; block-size: 18px; }
.bl-liste { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; counter-reset: bl; }
.bl-liste li { counter-increment: bl; }
.bl-liste li[hidden] { display: none; }
.bl-liste a { display: grid; grid-template-columns: 34px 1fr; gap: 0 10px; align-items: center; min-block-size: 56px; padding: 8px 12px; border-radius: 10px; background: var(--nuit); color: var(--papier); text-decoration: none; }
.bl-liste a::before { content: counter(bl); grid-row: span 2; display: grid; place-items: center; inline-size: 34px; block-size: 34px; border-radius: 6px; background: var(--orange); color: var(--encre); font-family: var(--titre); font-weight: 800; font-size: 1.3rem; }
.bl-liste li[data-fait] a::before { content: "V"; background: var(--vert); }
.bl-liste strong { font-weight: 750; }
.bl-liste span { color: var(--gris); font-size: .92rem; }
