/*
 * Composants des maquettes TRAME (26 septembre 2026, maquettes/assets/base.css et trame.css), repris sans leur portée
 * `#ln26` et avec leurs valeurs « trame » : panneaux, repères, étiquettes, rangées à icône, replis, lignes chiffrées,
 * cycles, documents, onglets du compte, bande « continuer », passage à Linuen. Chargé après 2-workspace.css.
 */

.ln-icon { display: inline-block; flex: none; vertical-align: -0.15em; }
.button .ln-icon { width: 16px; height: 16px; }

.ln-kicker { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 11px; line-height: 1.6; letter-spacing: 1.5px; font-weight: 600; text-transform: uppercase; color: var(--ln-accent); }
.ln-kicker .ln-icon { width: 14px; height: 14px; }
.ln-panel p.ln-kicker, .ln-continue p.ln-kicker, .ln-handoff p.ln-kicker, .focus-panel p.ln-kicker { color: var(--ln-accent); font-size: 11px; line-height: 1.6; margin: 0; }
.ln-sub { font-size: var(--ln-text-sm); color: var(--ln-muted); }

.ln-tag { display: inline-flex; align-items: center; gap: 6px; width: fit-content; padding: 5px 8px; border-radius: 2px; background: var(--ln-sky); color: var(--ln-accent); font-size: 11px; font-weight: 500; line-height: 1.5; }
.ln-tag .ln-icon { width: 12px; height: 12px; }
.ln-tag--warn { background: var(--ln-warn-bg); color: var(--ln-warn); }
.ln-tag--good { background: var(--ln-good-bg); color: var(--ln-good); }
.ln-tag--danger { background: var(--ln-danger-bg); color: var(--ln-danger); }
.ln-tag--neutral { background: var(--ln-soft); color: var(--ln-muted); }

.ln-plain { display: inline-flex; align-items: center; gap: 7px; padding: 6px 0; border: 0; background: transparent; color: var(--ln-accent); font: inherit; font-size: 13px; font-weight: 600; text-decoration: none; cursor: pointer; }
.ln-plain:hover { color: var(--ln-accent-strong); text-decoration: underline; }
.ln-plain--muted { color: var(--ln-muted); }

.ln-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; }
.ln-panel .ln-actions { margin-top: 16px; }

.ln-panel { background: var(--ln-page); border: 1px solid var(--ln-line); border-radius: var(--ln-radius); padding: 27px; min-width: 0; }
.ln-panel > :last-child { margin-bottom: 0; }
.ln-panel h2 { font-size: 23px; line-height: 1.3; letter-spacing: -0.4px; font-weight: 500; margin: 12px 0; overflow-wrap: anywhere; }
.ln-panel h3 { font-size: 16px; font-weight: 500; margin: 0 0 4px; }
.ln-panel p { font-size: var(--ln-text-sm); line-height: 1.7; color: var(--ln-muted); margin: 0 0 var(--sp-2); }
.ln-panel > .ln-tag + h2 { margin-top: 14px; }

/* `minmax(0, …)` et `min-width: 0` (27 septembre 2026) : une colonne `fr` s'élargit sinon jusqu'au contenu le plus large
   — un schéma de 1 900 px poussait la colonne voisine et sortait de l'écran. Une grille ne s'élargit jamais sur son
   contenu : le contenu large défile dans son propre cadre. */
.ln-subgrid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 23px; align-items: start; }
.ln-two-options { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 17px; margin-top: 17px; }
.ln-subgrid > *, .ln-two-options > *, .tr-status-grid > * { min-width: 0; }

.ln-feature-row { display: flex; align-items: flex-start; gap: 12px; padding: 16px 0; border-top: 1px solid var(--ln-line); }
.ln-feature-row:first-of-type { margin-top: 17px; }
.ln-feature-row > .ln-icon { width: 16px; height: 16px; margin-top: 3px; color: var(--ln-accent); }
.ln-feature-row > div { min-width: 0; flex: 1; }
.ln-feature-row strong { display: block; font-size: 15px; font-weight: 500; color: var(--ln-ink); overflow-wrap: anywhere; }
.ln-feature-row strong a { color: inherit; text-decoration: none; }
.ln-feature-row strong a:hover { color: var(--ln-accent); text-decoration: underline; }
.ln-feature-row p { font-size: 13px; margin: 2px 0 0; }
.ln-feature-row__side { flex: none; margin-left: auto; }

.ln-detail { margin-top: 15px; padding-top: 12px; border-top: 1px solid var(--ln-line); color: var(--ln-muted); font-size: 13px; }
.ln-detail > summary { cursor: pointer; color: var(--ln-accent); font-weight: 600; }
.ln-detail > summary::marker { color: var(--ln-accent); }
.ln-detail[open] > summary { margin-bottom: 11px; }

.ln-question { border-top: 1px solid var(--ln-line); padding-top: 13px; margin-top: 14px; }
.ln-question strong, .ln-question label { display: block; font-size: 14px; font-weight: 500; color: var(--ln-ink); margin-bottom: 4px; }
.ln-source { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ln-line); font-size: 12px; color: var(--ln-muted); }

.ln-warning { margin-top: 17px; padding: 16px; border: 1px solid var(--ln-warn-line); border-radius: 2px; background: var(--ln-warn-bg); color: var(--ln-warn); font-size: 13px; line-height: 1.7; }
.ln-warning p { color: inherit; margin: 0; }
.tr-danger { padding: 18px; border: 1px solid var(--ln-danger-line); border-radius: var(--ln-radius); background: var(--ln-danger-bg); color: var(--ln-danger); font-size: 13px; }
.tr-danger p { color: inherit; margin: 4px 0 0; }
.tr-success { padding: 18px; border: 1px solid var(--ln-good-line); border-radius: var(--ln-radius); background: var(--ln-good-bg); color: var(--ln-good); font-size: 13px; }

.ln-budget-value { margin: 17px 0 2px; font-size: 40px; line-height: 1.15; letter-spacing: -1px; font-weight: 500; color: var(--ln-ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.ln-budget-value--pending { color: var(--ln-warn); }
.ln-budget-rows { margin: 18px 0 0; }
.ln-budget-row { display: flex; justify-content: space-between; gap: 14px; padding: 14px 0; border-top: 1px solid var(--ln-line); color: var(--ln-muted); font-size: var(--ln-text-sm); }
.ln-budget-row dt, .ln-budget-row dd { margin: 0; }
.ln-budget-row strong, .ln-budget-row dd { color: var(--ln-ink); font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }

.ln-cycle { list-style: none; margin: 20px 0 0; padding: 0; }
.ln-cycle > li { position: relative; display: flex; gap: 14px; margin: 0 0 18px; }
.ln-cycle > li:not(:last-child)::after { content: ""; position: absolute; left: 13px; top: 29px; bottom: -15px; width: 1px; background: var(--ln-line); }
.ln-cycle__mark { flex: 0 0 27px; width: 27px; height: 27px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--ln-sky); color: var(--ln-accent); font-size: 11px; }
.ln-cycle__mark--done { background: var(--ln-good-bg); color: var(--ln-good); }
.ln-cycle__mark--failed { background: var(--ln-danger-bg); color: var(--ln-danger); }
.ln-cycle strong { display: block; font-size: 15px; font-weight: 500; color: var(--ln-ink); }
.ln-cycle p { font-size: 13px; margin: 2px 0 0; }
.ln-cycle small { font-size: 12px; color: var(--ln-muted); }

.ln-document-row { display: flex; align-items: center; gap: 13px; padding: 21px 0; border-top: 1px solid var(--ln-line); }
.ln-document-row:first-of-type { margin-top: 17px; }
/* En tête d'un panneau, la première ligne de document ne porte ni filet ni marge au-dessus : une bande vide s'ouvrait
   sous le bord du panneau (relecture du 5 octobre 2026). */
.ln-panel > .ln-document-row:first-child { margin-top: 0; padding-top: 4px; border-top: 0; }
.ln-document-row > .ln-icon { width: 23px; height: 23px; color: var(--ln-accent); }
.ln-document-row > div { flex: 1; min-width: 0; }
.ln-document-row strong { display: block; font-size: 15px; font-weight: 500; color: var(--ln-ink); }
.ln-document-row p { margin: 2px 0 0; }
.ln-document-row__side { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }

.ln-account-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 17px; padding: 0; list-style: none; }
.ln-account-tabs li { margin: 0; }
.ln-account-tabs a { display: inline-block; padding: 10px 16px; border: 1px solid var(--ln-line); border-radius: var(--ln-radius); background: var(--ln-page); color: var(--ln-muted); font-size: 13px; text-decoration: none; }
.ln-account-tabs a:hover { color: var(--ln-ink); border-color: var(--ln-line-strong); }
.ln-account-tabs a[aria-current="page"] { background: var(--ln-sky); color: var(--ln-accent); border-color: var(--ln-accent); }

.ln-continue { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: 30px; padding: 25px; border: 1px solid var(--ln-line); border-top: 2px solid var(--ln-navy-active); border-radius: var(--ln-radius); background: var(--ln-page); }
.ln-continue__icon { flex: none; width: 45px; height: 45px; display: flex; align-items: center; justify-content: center; border-radius: var(--ln-radius); background: var(--ln-sky); color: var(--ln-accent); }
.ln-continue__icon .ln-icon { width: 20px; height: 20px; }
.ln-continue__content { flex: 1; min-width: 0; }
.ln-continue h2, .ln-continue h3 { font-size: 21px; font-weight: 500; margin: 0 0 4px; }
.ln-continue p { font-size: 13px; color: var(--ln-muted); margin: 0; max-width: 650px; }
.ln-continue .ln-actions { flex: none; }

.ln-handoff { padding: 37px; border: 1px solid var(--ln-line); border-radius: var(--ln-radius); background: var(--ln-sky); }
.ln-handoff h2 { font-size: 39px; line-height: 1.15; letter-spacing: -1.3px; font-weight: 500; margin: 12px 0; }
.ln-handoff > p { font-size: var(--ln-text-base); color: var(--ln-muted); max-width: 700px; line-height: 1.75; }
.ln-handoff .ln-actions { margin-top: 19px; }
.ln-session-note { margin-top: 16px; padding: 12px; border: 1px solid var(--ln-line); border-radius: var(--ln-radius); background: var(--ln-page); color: var(--ln-muted); font-size: 13px; }

.ln-work-legend { margin-top: 16px; font-size: 12px; color: var(--ln-muted); }
.tr-quote-total { display: flex; align-items: baseline; gap: 10px; margin: 22px 0; }
.tr-quote-total strong { color: var(--ln-ink); font-size: 44px; line-height: 1.2; font-weight: 500; font-variant-numeric: tabular-nums; }
.tr-quote-total span { color: var(--ln-muted); }
.tr-help { font-size: 13px; color: var(--ln-muted); margin: 10px 0; }
.tr-status-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }

@media (max-width: 800px) {
  .ln-subgrid, .ln-two-options, .tr-status-grid { grid-template-columns: 1fr; }
  .ln-continue { flex-wrap: wrap; }
  .ln-continue__icon { display: none; }
  .ln-document-row { flex-wrap: wrap; }
  .ln-document-row__side { margin-left: 36px; justify-content: flex-start; }
}
@media (max-width: 620px) {
  .ln-panel { padding: 22px; }
  .ln-panel h2 { font-size: 22px; }
  .ln-continue { padding: 23px; }
  .ln-continue h2, .ln-continue h3 { font-size: 22px; }
  .ln-budget-value { font-size: 32px; }
  .ln-budget-row { font-size: 13px; }
  .ln-budget-row strong, .ln-budget-row dd { max-width: 52%; }
  .ln-handoff { padding: 25px; }
  .ln-handoff h2 { font-size: 32px; }
  .ln-account-tabs a { font-size: 12px; padding: 8px 12px; }
  .tr-quote-total strong { font-size: 36px; }
}
.list-plain { list-style: none; margin: 0 0 var(--sp-2); padding: 0; }
.list-plain li { margin: 0 0 4px; }

/* Solution (maquette 06) */
.architecture-head { padding: 27px 27px 8px; }
.architecture-head h2 { font-size: 23px; font-weight: 500; letter-spacing: -0.4px; margin: 14px 0 8px; }
.architecture-head p { font-size: var(--ln-text-sm); color: var(--ln-muted); line-height: 1.7; }
/* Solution proposée (Aurore V3, maquette 02, 1er octobre 2026) : l'approche en tête, la vue d'ensemble dans sa carte à
   gauche avec les points à préciser, les décisions à droite ; replis à filet sous la carte. */
.solution-head { margin: 0 0 var(--sp-5); }
.solution-head .tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.solution-head__date { font-size: 12px; color: var(--ln-muted); }
.solution-title { font-size: 19px; font-weight: 600; letter-spacing: -0.2px; margin: var(--sp-5) 0 6px; color: var(--ln-title); }
.solution-head__summary { max-width: 72ch; font-size: var(--ln-text-sm); color: var(--ln-muted); line-height: 1.7; margin: 0; }
.solution-empty { margin-top: var(--sp-4); }
.solution-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 400px); gap: var(--sp-5); align-items: start; }
.solution-main { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); align-content: start; }
.diagram-card { margin: 0 0 var(--sp-5); border: 1px solid var(--ln-diagram-line); border-radius: var(--ln-radius-lg); background: var(--ln-diagram-bg); padding: 20px 20px 14px; min-width: 0; }
.diagram-card__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--sp-3); margin-bottom: 14px; font-size: 11px; letter-spacing: 1.3px; text-transform: uppercase; color: var(--ln-muted); font-weight: 600; }
.diagram-card__link { font-size: 12px; letter-spacing: 0; text-transform: none; font-weight: 500; }
.diagram-card .diagram-wrap { background: transparent; border: 0; padding: 0; margin-bottom: 12px; }
.diagram-card .diagram-legend { margin: 0; font-size: 12px; }
.question-box { border: 1px solid var(--ln-warn-line); border-left: 3px solid var(--ln-question-mark, #d39b3a); background: var(--ln-warn-bg); border-radius: var(--ln-radius-sm); padding: 14px 16px; color: var(--ln-warn); }
.question-box h3 { font-size: 14px; font-weight: 600; margin: 0 0 6px; color: var(--ln-warn); }
.question-box ul { margin: 0; padding-left: 1.1rem; font-size: 13px; }
.question-box .fine { margin: 8px 0 0; color: var(--ln-warn); }
.question-box a { color: inherit; text-decoration: underline; }
.solution-fold { margin: 0; padding: 0; border: 1px solid var(--ln-line); border-radius: var(--ln-radius); background: var(--ln-page); color: var(--ln-ink); font-size: var(--ln-text-sm); }
.solution-fold > summary { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3); padding: 13px 16px; color: var(--ln-title); font-weight: 600; list-style: none; }
.solution-fold > summary::-webkit-details-marker { display: none; }
.solution-fold > summary > span:first-child { display: inline-flex; align-items: center; gap: 8px; }
.solution-fold > summary .ln-icon { width: 15px; height: 15px; color: var(--ln-accent); }
.solution-fold__hint { font-weight: 500; font-size: 12px; color: var(--ln-accent); }
.solution-fold__hint::after { content: " +"; }
.solution-fold[open] .solution-fold__hint::after { content: " −"; }
.solution-fold[open] > summary { margin: 0; border-bottom: 1px solid var(--ln-line); }
.solution-fold > ul, .solution-fold > p, .solution-fold > .table-wrap, .solution-fold__body { margin: 0; padding: 12px 16px; }
.solution-fold > ul { padding-left: 34px; }
.solution-main > .proofbar { margin: 0; border: 0; padding: 0 2px; }
.solution-decisions { min-width: 0; }
.solution-decisions > .panel__head { display: flex; justify-content: space-between; align-items: center; }
.solution-decisions > .panel__head h2 { font-size: 15px; margin: 0; }
.solution-decision { padding: 16px 18px; border-bottom: 1px solid var(--ln-line); display: grid; gap: 4px; justify-items: start; }
.solution-decision__id { font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--ln-muted); font-weight: 600; }
.solution-decision b { font-size: 14px; color: var(--ln-title); font-weight: 600; }
.solution-decision b a { color: inherit; text-decoration: none; }
.solution-decision b a:hover { text-decoration: underline; }
.solution-decision .fine { margin: 0; }
.solution-decision .badge { margin-top: 6px; }
.solution-decisions__empty, .solution-decisions__more { padding: 14px 18px; margin: 0; font-size: var(--ln-text-sm); }
.solution-decisions .review-column { padding: 16px 18px 18px; }
@media (max-width: 1100px) { .solution-grid { grid-template-columns: minmax(0, 1fr); } }
.architecture-responsibilities .table-wrap { margin-top: 0; }
.architecture-side .review-column { padding: 16px 0 0; margin-top: 20px; border-top: 1px solid var(--ln-line); }
.solution-decisions.architecture-side .review-column { margin-top: 0; border-top: 0; padding: 16px 18px 18px; }
.architecture-detail > * + * { margin-top: 22px; }
.architecture-grid > .panel { min-width: 0; }
.architecture-diagrams { margin-top: 23px; min-width: 0; }

/* Budget (maquette 07) : le résumé du calcul lu comme la maquette — le chiffre en grand, puis des lignes à filet. */
.budget-panel .summary { border: 0; padding: 0; margin: 0; }
.budget-panel .summary__headline { display: block; margin: 6px 0 0; }
.budget-panel .summary__label { display: block; font-size: 13px; color: var(--ln-muted); }
.budget-panel .summary__value { display: block; margin-top: 6px; font-size: 40px; line-height: 1.15; letter-spacing: -1px; font-weight: 500; font-variant-numeric: tabular-nums; }
.budget-panel .summary__value--pending { font-size: 32px; color: var(--ln-warn); }
.budget-panel .summary__aside { font-size: 13px; color: var(--ln-muted); }
.budget-panel .summary__lines { margin-top: 18px; gap: 0; }
.budget-panel .summary__lines > div { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 14px 0; border-top: 1px solid var(--ln-line); }
.budget-panel .summary__lines dt { font-size: var(--ln-text-sm); color: var(--ln-muted); }
.budget-panel .summary__lines dd { font-size: var(--ln-text-sm); font-weight: 600; color: var(--ln-ink); text-align: right; }
.budget-panel .summary__lines dd .fine, .budget-panel .summary__lines dd a { display: block; font-weight: 400; }
@media (max-width: 620px) { .budget-panel .summary__value { font-size: 32px; } .budget-panel .summary__lines dd { max-width: 55%; } }
#budget-summary + .block-title-row + .panel.estimate { margin-top: 0; }

/* Étapes d'une analyse lues comme le cycle des maquettes : pastille ronde, filet vertical, état écrit à côté. */
.review-step { position: relative; display: flex; gap: 14px; padding-bottom: 18px; font-size: var(--ln-text-sm); }
.review-step:not(:last-child)::after { content: ""; position: absolute; left: 13px; top: 29px; bottom: 3px; width: 1px; background: var(--ln-line); }
.review-step__mark { flex: 0 0 27px; width: 27px; height: 27px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--ln-sky); color: var(--ln-accent); font-size: 12px; line-height: 1; }
.review-step--done .review-step__mark { background: var(--ln-good-bg); color: var(--ln-good); }
.review-step--failed .review-step__mark { background: var(--ln-danger-bg); color: var(--ln-danger); }
.review-step--warn .review-step__mark { background: var(--ln-warn-bg); color: var(--ln-warn); }
.review-step--pending .review-step__mark, .review-step--none .review-step__mark { background: var(--ln-soft); color: var(--ln-muted); }
.review-step > div { padding-top: 3px; color: var(--ln-ink); }
.review-steps { margin-top: 20px; }
.deliverables-options { margin-top: 26px; }
.credits-detail { margin-top: 22px; }
.credits-detail > h2 { font-size: 19px; }
.suite-form { margin-top: 22px; }
.suite-form > h2 { font-size: 28px; letter-spacing: -0.8px; }
.quote-layout { margin-top: 0; }
.tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ln-document-row .list-plain { font-size: 13px; color: var(--ln-muted); margin: 4px 0 0; }
.ln-document-row strong a { color: var(--ln-ink); text-decoration: none; }
.ln-document-row strong a:hover { color: var(--ln-accent); text-decoration: underline; }
.ln-document-row .notice-inline { margin: 10px 0 0; }

/* Nouveau dossier en étapes (maquette 03) */
.form--steps .form-step > .ln-tag + h2 { font-size: 23px; font-weight: 500; letter-spacing: -0.4px; margin: 14px 0 8px; }
.form--steps .form-step > p { font-size: var(--ln-text-sm); color: var(--ln-muted); margin: 0 0 25px; }
.form--steps .form-step + .form-step { margin-top: 32px; padding-top: 32px; border-top: 1px solid var(--ln-line); }
.form--steps .form-step[hidden] + .form-step, .form--steps .form-step + .form-step:not([hidden]):first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.form--steps h2:focus { outline: none; }
.upload-drop { border: 1px dashed #8a9eb8; background: var(--ln-soft); padding: 23px; border-radius: var(--ln-radius); }
.upload-drop input[type="file"] { max-width: 100%; font-size: 13px; background: var(--ln-page); }
.upload-drop .hint { margin-top: 10px; }
.field-error { color: var(--ln-danger); font-size: var(--ln-text-sm); margin: 6px 0 0; }
.form-step__actions { margin-top: 8px; }
#operation-issues { margin-block: 12px 24px; }
.solution-decisions > .panel__head h2 { display: inline-flex; align-items: center; gap: 8px; }
.solution-decisions__sub { margin: 0; padding: 12px 18px 4px; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--ln-muted); font-weight: 600; }
.solution-decisions .decisions-note { padding: 10px 18px; margin: 0; font-size: var(--ln-text-sm); color: var(--ln-muted); }
.deliverables-options-fold > summary { cursor: pointer; list-style-position: inside; margin-top: var(--sp-5); }

/* Vue d'ensemble (refaite le 4 octobre 2026) : bandeau d'étape, coût et effort, architecture. */
.overview { display: grid; gap: 22px; }

/* Note sous le titre d'une rubrique (4 octobre 2026) : une phrase, discrète. */
.dossier-header__note { margin: 6px 0 0; max-width: 72ch; color: var(--ln-muted); font-size: var(--ln-text-sm); line-height: 1.6; }
.dossier-header__note .ln-plain { display: inline-flex; margin-left: 6px; }

/* « Votre besoin », version client (4 octobre 2026) : une phrase par point, trois gestes sur place. */
.client-need { padding: 26px; margin-bottom: 22px; }
.client-need h2 { font-size: 20px; margin: 0 0 6px; }
.client-need__all { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 12px 0; }
.understood-list { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 0; }
.understood { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; padding: 14px 0; border-top: 1px solid var(--ln-line, #e3e8ef); }
.understood__text { flex: 1 1 380px; min-width: 0; }
.understood__kind { color: var(--ln-muted); font-size: 12px; }
.understood__label { margin: 2px 0 0; line-height: 1.55; }
.understood--rejected .understood__label { color: var(--ln-muted); text-decoration: line-through; }
.understood__source { margin-top: 6px; font-size: var(--ln-text-sm); color: var(--ln-muted); }
.understood__source blockquote { margin: 6px 0; padding-left: 10px; border-left: 2px solid var(--ln-line, #e3e8ef); }
.understood__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.understood__actions form { margin: 0; }
.understood__state { display: inline-flex; align-items: center; gap: 6px; color: var(--ln-good); font-size: var(--ln-text-sm); }
.understood__state .icon { width: 16px; height: 16px; }
.understood__state--muted { color: var(--ln-muted); }
.understood__source, .understood__edit { display: inline-block; vertical-align: top; margin-right: 18px; }
.understood__source[open], .understood__edit[open] { display: block; }
.understood__edit[open] form { margin-top: 8px; display: grid; gap: 6px; max-width: 640px; }
.client-need__add { margin: 14px 0 0; }
.question-form { display: grid; gap: 14px; margin-top: 12px; }
.question-card { border: 1px solid var(--ln-line, #e3e8ef); border-radius: 10px; padding: 14px 16px; margin: 0; }
.question-card legend { font-weight: 600; padding: 0 4px; line-height: 1.5; }
.question-card__choice { display: flex; align-items: flex-start; gap: 8px; margin: 6px 0; font-size: var(--ln-text-sm); }
.question-card__choice input { margin-top: 3px; }
.question-card__text { width: 100%; margin: 2px 0 4px 24px; max-width: calc(100% - 24px); }
.client-need__answered { margin-top: 14px; }
details.client-need > summary { cursor: pointer; list-style: revert; }
.client-need__fold { display: inline; font-size: 18px; }

/* « M'aider à répondre » (5 octobre 2026) : l'aide de l'assistant DANS la carte d'une question. Bulles simples, le
   client à droite ; réponses d'un clic ; réponse rédigée dans un champ modifiable. */
.qhelp-hint { display: flex; align-items: center; gap: 6px; }
.qhelp-frame { display: block; margin-top: 10px; }
.qhelp__open-form { margin: 0; }
.qhelp__open { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.qhelp { margin-top: 6px; padding: 14px 16px; border: 1px solid var(--ln-sky-line); border-radius: 12px; background: var(--ln-sky); }
.qhelp__title { display: flex; align-items: center; gap: 6px; margin: 0 0 10px; font-weight: 600; color: var(--ln-title); }
.qhelp__messages { margin: 0 0 12px; }
.qhelp__refusal, .qhelp__error { margin: 8px 0; }
.qhelp__answer { display: grid; gap: 6px; margin: 0 0 12px; padding: 12px; border: 1px solid var(--ln-accent); border-radius: 10px; background: var(--ln-page); }
.qhelp__answer-title { font-weight: 600; color: var(--ln-title); }
.qhelp__answer textarea { width: 100%; }
.qhelp__answer .button { justify-self: start; }
.qhelp__form { display: flex; gap: 8px; margin: 0 0 6px; }
.qhelp__form input[type=text] { flex: 1 1 auto; min-width: 0; }
.qhelp__close { margin-top: 4px; font-size: var(--ln-text-sm); }
.chat__messages { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.chat__message { max-width: min(560px, 92%); padding: 10px 12px; border-radius: 12px; background: var(--ln-page); border: 1px solid var(--ln-line); }
.chat__message--client { align-self: flex-end; background: var(--ln-page); border-color: var(--ln-accent); }
.chat__message--waiting { opacity: .7; font-style: italic; }
.chat__who { display: block; font-size: 12px; font-weight: 600; color: var(--ln-muted); margin-bottom: 2px; }
.chat__text p { margin: 0 0 6px; }
.chat__text p:last-child { margin-bottom: 0; }
.chat__choices { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; }
.chat__choice-form { margin: 0; }
.chat__choice { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 7px 12px; border: 1px solid var(--ln-sky-line);
  border-radius: 14px; background: var(--ln-page); color: var(--ln-accent-strong); font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.chat__choice:hover, .chat__choice:focus-visible { background: var(--ln-soft); }
.chat__choice--suggested { border-color: var(--ln-accent); }
.chat__choice-tag { font-size: 12px; font-weight: 500; color: var(--ln-muted); }
.chat__choice--muted { color: var(--ln-muted); font-weight: 500; }

/* Raccourci flottant vers les questions ouvertes : en bas à droite, la page garde un espace pour lui. */
.questions-shortcut { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 40;
  display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; border-radius: 999px; background: var(--ln-accent); color: #fff;
  font-weight: 600; text-decoration: none; box-shadow: 0 6px 20px rgba(21, 36, 72, .22); }
.questions-shortcut:hover, .questions-shortcut:focus-visible { background: var(--ln-accent-strong); color: #fff; }
.questions-shortcut:focus-visible { outline: 3px solid var(--ln-navy-mark); outline-offset: 2px; }
.questions-shortcut .ln-icon { width: 20px; height: 20px; }
.app__main:has(.questions-shortcut) .workspace { padding-bottom: 88px; }
@media (max-width: 560px) { .questions-shortcut { padding: 10px 14px; font-size: 14px; } }
@media print { .questions-shortcut { display: none !important; } }
