/* Chantier 26 (réalisation de la maquette du 15 octobre 2026, avec 21 et 27) : vue d'ensemble, barre latérale, « À préciser » et le tableau
   des décisions, Solution proposée, Budget, Scénarios alternatifs, Mes documents. Jetons --ln-* seulement : aucune couleur nouvelle. Ce
   fichier passe APRÈS 2d-ledger.css (ordre alphabétique) : une règle qui corrige un composant Ledger vit ici. */

/* ---- Menu du dossier ---------------------------------------------------------------------------------------- */
.dossier-side__list a { position: relative; }
.dossier-side__count { margin-left: auto; min-width: 22px; padding: 1px 7px; border-radius: 999px; background: var(--ln-accent); color: #fff; font-size: 12px; font-weight: 600; line-height: 1.5; text-align: center; }
/* « Notre proposition » porte en sous-titre le nom court du scénario affiché (décision du 15 octobre 2026). */
.dossier-side__label small, .dossier-side__scenario { display: block; margin-top: 2px; font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ln-side-active-text); overflow-wrap: anywhere; }
.code-faint { color: var(--ln-faint); font-size: 12px; font-weight: 500; letter-spacing: 0; white-space: nowrap; }

/* ---- En-tête de page du client ----------------------------------------------------------------------------- */
.dossier-header--home .dossier-header__sub { margin-top: 4px; font-size: var(--ln-text-sm); }
.dossier-header--home .dossier-header__note { max-width: 70ch; }

/* ---- Vue d'ensemble ----------------------------------------------------------------------------------------- */
.overview-cost { margin: 0 0 16px; }
.overview-cost .ld-kpis { margin-bottom: 8px; }
.ld-kpis--client { grid-template-columns: minmax(0, 1.25fr); grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; }
.ld-kpis--client .ld-kpi--main strong { font-size: 30px; }
.ld-kpis--client .ld-kpi--quiet strong { font-size: 20px; white-space: normal; }
.ld-kpis--client .ld-kpi--quiet { padding: 14px 16px; }
.ld-kpis__why { margin: 0 2px 16px; font-size: 12.5px; color: var(--ln-muted); max-width: 90ch; }
.overview-lastversion { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 16px; padding: 10px 14px; background: var(--ln-page); border: 1px solid var(--ln-line); border-radius: var(--ln-radius); }
.overview-specify-line { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 16px 18px; border-left: 3px solid var(--ln-accent); }
.overview-specify-line__icon { width: 40px; height: 40px; flex: none; display: grid; place-items: center; border-radius: 10px; background: var(--ln-sky); color: var(--ln-accent); }
.overview-specify-line__icon .ln-icon { width: 20px; height: 20px; }
.overview-specify-line__text { flex: 1 1 18rem; min-width: 0; }
.overview-specify-line__text p { margin: 0; }
.overview-specify-line__text .help { margin-top: 2px; }
.overview-changes__list { margin: 0 0 10px; }
.overview-changes .overview-relaunch { margin-top: 12px; }
.overview-changes .help { margin: 0 0 4px; }
.overview-architecture__title { margin: 0 0 12px; font-size: 13px; font-weight: 500; color: var(--ln-muted); letter-spacing: 0; }
/* L'annonce de fin d'analyse tient sur une ligne à l'écran large : le titre et sa phrase, puis les deux boutons (maquette 01a). */
@media (min-width: 981px) {
  .overview .analysis-notice--large { align-items: center; padding: 18px 22px; }
  .overview .analysis-notice--large .analysis-notice__body { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 24px; align-items: center; width: 100%; }
  .overview .analysis-notice--large h2 { grid-column: 1; font-size: 18px; margin: 0 0 2px; }
  .overview .analysis-notice--large p { grid-column: 1; margin: 0; font-size: 13.5px; }
  .overview .analysis-notice--large .ln-actions { grid-column: 2; grid-row: 1 / span 3; margin: 0; flex-wrap: nowrap; }
}
.analysis-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 var(--sp-4, 16px); font-size: 14px; }
.analysis-line--good { color: var(--ln-good); }
.analysis-line--danger { color: var(--ln-danger); }
.analysis-notice .ln-actions { margin-top: 12px; }

/* ---- Composants du fil « À préciser » et du tableau des décisions ------------------------------------------- */
.body--app .button--quiet { border-style: dashed; color: var(--ln-muted); background: transparent; }
.body--app .button--quiet:hover { background: var(--ln-soft); color: var(--ln-ink); }
.body--app .button--big { min-height: 44px; padding: 0 20px; font-size: 14px; }
.warn-line { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 0 0 16px; padding: 12px 14px; background: var(--ln-warn-bg); border: 1px solid var(--ln-warn-line); border-radius: var(--ln-radius); font-size: 13px; color: #7c4a0e; }
.warn-line .ln-icon { color: var(--ln-warn); }
.warn-line > span { flex: 1 1 18rem; min-width: 0; }
.todo-page { max-width: 760px; }
.todo-progress { margin: 0 0 14px; }
.todo-progress__line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 0 0 8px; font-size: 13px; color: var(--ln-muted); }
.todo-progress__line strong { color: var(--ln-ink); font-size: 14px; }
.todo-segs { display: flex; gap: 3px; list-style: none; padding: 0; margin: 0; }
.todo-segs li { flex: 1; height: 6px; border-radius: 3px; background: var(--ln-line-strong); }
.todo-segs li.todo-segs__done { background: var(--ln-accent); }
.todo-segs li.todo-segs__now { background: var(--ln-accent); box-shadow: 0 0 0 2px var(--ln-sky-line); }
.todo-card { background: var(--ln-page); border: 1px solid var(--ln-line); border-radius: 16px; padding: 26px; box-shadow: 0 10px 30px -18px rgba(15, 23, 42, .28); margin: 0 0 16px; }
.todo-card__kicker { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ln-faint); }
.todo-card__title { margin: 6px 0 6px; font-size: 22px; line-height: 1.25; }
.todo-card__why { margin: 0 0 18px; color: var(--ln-muted); }
.todo-form { margin: 0; }
.todo-label { display: block; margin: 4px 0 6px; font-size: 13px; font-weight: 600; }
.todo-card textarea { width: 100%; min-height: 72px; font: inherit; border: 1px solid var(--ln-line-strong); border-radius: var(--ln-radius-sm); padding: 10px; }
.todo-suggestion { border: 1px dashed #9db4ee; background: var(--ln-sky); border-radius: var(--ln-radius); padding: 14px 16px; margin: 0 0 18px; }
.todo-suggestion__title { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 13px; font-weight: 700; color: var(--ln-accent-strong); }
.todo-suggestion__text { margin: 0 0 4px; font-size: 16px; font-weight: 600; color: var(--ln-ink); overflow-wrap: anywhere; }
.todo-suggestion__text p { margin: 0 0 6px; font-weight: 500; font-size: 15px; }
.todo-suggestion__note { margin: 0 0 10px; font-size: 12.5px; color: var(--ln-muted); }
.todo-suggestion__placed { margin: 10px 0 0; font-size: 12.5px; color: var(--ln-good); font-weight: 600; }
.todo-suggestion .button { margin-top: 2px; }
.todo-actions { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-top: 18px; }
.todo-actions__group { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.todo-help { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ln-line); }
.todo-help--empty { display: none; }
.todo-saved { display: flex; align-items: center; gap: 8px; margin: 14px 2px 0; font-size: 13px; color: var(--ln-good); font-weight: 600; }
.todo-decisions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 18px 2px 0; font-size: 13px; color: var(--ln-muted); }
.todo-decisions > span { flex: 1 1 16rem; }
.todo-answer-read { margin: 0 0 12px; padding: 10px 12px; background: var(--ln-soft); border: 1px solid var(--ln-line); border-radius: var(--ln-radius-sm); }
.todo-done .ld-card__body > :last-child { margin-bottom: 0; }
.todo-all { margin-top: 18px; font-size: 13px; }
.todo-all ul { margin: 8px 0 0; padding-left: 18px; }
.todo-all__item--done { color: var(--ln-muted); }
/* Le glissement d'une carte à l'autre : seulement sans préférence de mouvement réduit ; l'information reste entière sans. */
@media (prefers-reduced-motion: no-preference) {
  .todo-card { animation: todo-in .32s ease-out both; }
  @keyframes todo-in { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
}
.decision-card .todo-card__title { margin-bottom: 10px; }
.decision-proposal .todo-suggestion__text { font-size: 15px; }
.decision-reasons { margin: 6px 0 0; padding-left: 1.1rem; font-size: 13.5px; }
.decision-options { list-style: none; margin: 0 0 16px; padding: 0; border: 1px solid var(--ln-line); border-radius: var(--ln-radius-sm); }
.decision-options li { padding: 10px 12px; border-bottom: 1px solid var(--ln-line); font-size: 13px; }
.decision-options li:last-child { border-bottom: 0; }
.decision-actions .inline-form { display: inline; }
.decision-other { display: inline-block; }
.decision-other > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; }
.decision-other > summary::-webkit-details-marker { display: none; }
.decision-other[open] { display: block; flex-basis: 100%; margin-top: 8px; }
#decisions-board .decisions-counter { margin: 0 0 12px; }

/* ---- Solution proposée (lecture) ---------------------------------------------------------------------------- */
.solution--client { display: flex; flex-direction: column; gap: 16px; }
.solution--client > * { margin: 0; }
.solution-schema .solution-head__summary { margin: 0 0 12px; }
.solution-schema .diagram-card { margin: 0; }
.solution-pieces .ld-card__body { padding: 0; }
.solution-pieces__table th[scope="row"] { font-weight: 600; }
.solution-pieces__origin { color: var(--ln-muted); white-space: nowrap; }
.solution-guarantees__list { list-style: none; margin: 0; padding: 0; }
.solution-guarantees__list li { padding: 12px 0; border-bottom: 1px solid var(--ln-line); }
.solution-guarantees__list li:last-child { border-bottom: 0; }
.solution-guarantees__list .help { margin: 2px 0 0; }
.solution-decisions-list__rows { list-style: none; margin: 0; padding: 0; }
.solution-decision-row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 12px 18px; border-bottom: 1px solid var(--ln-line); }
.solution-decision-row:last-child { border-bottom: 0; }
.solution-decision-row__title { font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.solution-decision-row__title .fine { display: block; font-weight: 400; }
.solution-decision-row__state { flex: none; font-size: 13px; font-weight: 600; color: var(--ln-muted); white-space: nowrap; }
.solution-decision-row__state--todo { color: var(--ln-accent); }
.solution-decisions-list__export { margin: 0; padding: 10px 18px 14px; }
.solution-reading { font-size: 13px; color: var(--ln-muted); }
.solution-reading details { margin: 6px 0; }
/* Sur téléphone, « Les pièces de votre solution » se lit AVANT le schéma, qui est très petit à 375 px (décision du 15 octobre 2026) ;
   le schéma s'ouvre en plein écran au toucher (Stimulus `diagram-fullscreen`). */
@media (max-width: 860px) {
  .solution--client .solution-pieces { order: -1; }
  .solution--client .solution-schema { order: 0; }
}
.body--app .diagram-fullscreen__open { display: none; margin: 8px 0 0; }
@media (max-width: 860px) { .body--app .diagram-fullscreen__open { display: inline-flex; } }
.diagram-fullscreen__dialog { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0; background: var(--ln-page); }
.diagram-fullscreen__dialog::backdrop { background: rgba(15, 23, 42, .6); }
.diagram-fullscreen__bar { position: sticky; top: 0; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 14px; background: var(--ln-page); border-bottom: 1px solid var(--ln-line); z-index: 2; }
.diagram-fullscreen__body { overflow: auto; padding: 12px; touch-action: pan-x pan-y pinch-zoom; }
.diagram-fullscreen__body svg { display: block; width: 900px; max-width: none; height: auto; }

/* ---- Budget estimatif (lecture) ----------------------------------------------------------------------------- */
.budget-detail--client { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.budget-detail--client > * { margin: 0; }
.budget-lines .ld-card__head { justify-content: space-between; }
.budget-lines__rate { font-size: 12.5px; color: var(--ln-muted); }
.budget-lines__note { margin: 0; padding: 10px 18px 0; }
.budget-lines__empty { margin: 0; padding: 14px 18px; }
.budget-lines .table-wrap { margin: 0; }
.budget-table td small, .budget-table th small { display: block; margin-top: 2px; font-size: 12px; font-weight: 400; color: var(--ln-muted); }
.budget-table .budget-table__action { text-align: right; white-space: nowrap; }
.budget-table .budget-table__action .scope-toggle { display: inline-block; text-align: left; }
.budget-table tfoot th { font-weight: 700; background: #fbfcfe; border-top: 1px solid var(--ln-line); }
@media (max-width: 640px) {
  .budget-table.table--responsive thead { display: none; }
  .budget-table.table--responsive, .budget-table.table--responsive tbody, .budget-table.table--responsive tfoot { display: block; }
  .budget-table.table--responsive tr { display: block; padding: 12px 16px; border-bottom: 1px solid var(--ln-line); }
  .budget-table.table--responsive td, .budget-table.table--responsive th { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 3px 0; border: 0; text-align: left; background: transparent; }
  .budget-table.table--responsive td::before { content: attr(data-label); position: static; width: auto; font-size: 12px; color: var(--ln-muted); flex: none; }
  .budget-table.table--responsive td:not([data-label])::before { content: none; }
  .budget-table.table--responsive td.table__code { padding-bottom: 0; }
  .budget-table.table--responsive td:not([data-label]):not(.table__code):not(.budget-table__action) { display: block; }
  .budget-table.table--responsive td.num { text-align: right; }
  .budget-table.table--responsive td[colspan], .budget-table.table--responsive th[colspan] { display: flex; }
  .budget-table.table--responsive .budget-table__action { justify-content: flex-start; padding-top: 6px; }
  .budget-table.table--responsive tfoot tr { display: flex; justify-content: space-between; gap: 12px; }
  .budget-table.table--responsive tfoot td:empty { display: none; }
}
/* ---- Postes compacts (16 octobre 2026) : un poste = deux lignes de texte au plus. Le poste prend la place libre (titre sur une ligne,
   description coupée par une ellipse) ; heures, montant et geste de retrait restent à leur largeur. Un clic déplie le poste : description
   entière, heures de référence, facteur et heures retenues. ---------------------------------------------------------------- */
details.budget-lines__note { margin: 0; padding: 8px 18px 2px; font-size: 12.5px; color: var(--ln-muted); }
details.budget-lines__note > summary { cursor: pointer; list-style: none; }
details.budget-lines__note > summary::-webkit-details-marker { display: none; }
details.budget-lines__note > summary::after { content: " ▾"; color: var(--ln-faint); }
details.budget-lines__note[open] > summary::after { content: " ▴"; }
details.budget-lines__note > .help { margin: 4px 0 6px; max-width: 70ch; }
.budget-table--compact td, .budget-table--compact th { white-space: nowrap; }
.budget-table.budget-table--compact tbody td { padding-top: 4px; padding-bottom: 4px; line-height: 1.2; }
.budget-table--compact td.budget-row__item { width: 100%; max-width: 0; white-space: normal; }
.budget-table--compact .budget-row__details > summary { list-style: none; cursor: pointer; position: relative; padding-left: 16px; font-weight: 400; }
.budget-table--compact .budget-row__details > summary::-webkit-details-marker { display: none; }
.budget-table--compact .budget-row__details > summary::before { content: ""; position: absolute; left: 1px; top: 4px; border-style: solid; border-width: 4px 0 4px 6px; border-color: transparent transparent transparent var(--ln-faint); transition: none; }
.budget-table--compact .budget-row__details[open] > summary::before { transform: rotate(90deg); }
.budget-table--compact .budget-row__details > summary:focus-visible { outline: 2px solid var(--ln-accent); outline-offset: 2px; border-radius: 3px; }
.budget-row__title, .budget-row__desc { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.budget-row__details[open] .budget-row__desc { display: none; }
.budget-row__title { display: flex; align-items: baseline; gap: 6px; }
.budget-row__title strong { font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.budget-row__title .code-faint, .budget-row__title .badge { flex: none; }
.budget-row__desc { font-size: 12px; font-weight: 400; line-height: 1.2; color: var(--ln-muted); }
.budget-row__more { padding: 6px 0 8px 16px; font-size: 13px; line-height: 1.45; }
.budget-row__more p { margin: 0 0 6px; max-width: 72ch; }
.budget-row__more .budget-row__fulltitle { display: none; }
.budget-row__figures { display: flex; flex-wrap: wrap; gap: 6px 28px; margin: 6px 0 0; }
.budget-row__figures > div { min-width: 0; }
.budget-row__figures dt { font-size: 12px; font-weight: 500; color: var(--ln-muted); }
.budget-row__figures dd { margin: 0; font-variant-numeric: tabular-nums; }
.budget-row__hours strong, .budget-row__amount strong { display: block; font-size: 14px; font-weight: 600; }
.budget-table--compact td.budget-row__hours small, .budget-table--compact td.budget-row__amount small { margin-top: 0; font-size: 11.5px; line-height: 1.2; }
.budget-row__marks { margin: 6px 0 0; }
.budget-row__marks:not(:has(.badge)) { display: none; }
.budget-row__more .notice-inline { margin: 6px 0 0; max-width: 72ch; }
.budget-table--compact .budget-table__action a.button-link { display: inline-block; padding: 1px 9px; border: 1px solid var(--ln-line); border-radius: 6px; font-size: 12.5px; text-decoration: none; background: #fff; }
.budget-table--compact .budget-table__action a.button-link:hover { border-color: var(--ln-accent); }
.budget-table--compact .budget-table__action { font-size: 12.5px; }
.budget-table--compact .budget-table__action .scope-toggle > summary { list-style: none; display: inline-block; cursor: pointer; padding: 1px 9px; border: 1px solid var(--ln-line); border-radius: 6px; font-size: 12.5px; text-decoration: none; background: #fff; }
.budget-table--compact .budget-table__action .scope-toggle > summary::-webkit-details-marker { display: none; }
.budget-table--compact .budget-table__action .scope-toggle > summary:hover { border-color: var(--ln-accent); }
.budget-table--compact .budget-table__action form.scope-toggle .button-link { padding: 1px 9px; border: 1px solid var(--ln-line); border-radius: 6px; font-size: 12.5px; text-decoration: none; background: #fff; }
.budget-table--compact .budget-table__action .scope-toggle[open] .inline-form { display: grid; gap: 6px; width: 16rem; margin-top: 6px; white-space: normal; text-align: left; }
@media (max-width: 640px) {
  /* Une carte par poste : le titre, les heures et le montant sur une ligne ; le reste (description, heures de référence, facteur,
     retrait) est replié avec le poste. */
  .budget-table--compact.table--responsive tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: start; padding: 8px 14px; column-gap: 12px; }
  .budget-table--compact.table--responsive td { display: block; padding: 0; line-height: 1.25; }
  .budget-table--compact.table--responsive td::before { content: none; }
  .budget-table.budget-table--compact.table--responsive tbody td { padding-top: 0; padding-bottom: 0; }
  .budget-table--compact.table--responsive td.budget-row__item { grid-column: 1 / -1; grid-row: 1; max-width: none; }
  .budget-table--compact.table--responsive td.budget-row__hours { grid-column: 2; grid-row: 1; text-align: right; pointer-events: none; z-index: 1; }
  .budget-table--compact.table--responsive td.budget-row__amount { grid-column: 3; grid-row: 1; text-align: right; pointer-events: none; z-index: 1; min-width: 4.5rem; }
  .budget-table--compact.table--responsive td.budget-row__hours small, .budget-table--compact.table--responsive td.budget-row__amount small { display: none; }
  .budget-table--compact.table--responsive td.budget-row__hours strong, .budget-table--compact.table--responsive td.budget-row__amount strong { font-size: 13px; }
  .budget-table--compact .budget-row__title { padding-right: 8.5rem; }
  .budget-table--compact .budget-row__more .budget-row__fulltitle { display: block; }
  .budget-table--compact.table--responsive td.budget-table__action { grid-column: 1 / -1; grid-row: 2; padding-top: 4px; text-align: right; }
  .budget-table--compact.table--responsive tr:not(:has(.budget-row__details[open])) td.budget-table__action { display: none; }
}
.budget-rates { list-style: none; margin: 0; padding: 12px 18px; }
.budget-alt-line { margin: 0 2px; font-size: 13px; color: var(--ln-muted); }

/* ---- Scénarios alternatifs ----------------------------------------------------------------------------------- */
.alt-page h2 { font-size: 16px; margin: 20px 0 10px; }
.alt-page > section:first-of-type h2 { margin-top: 4px; }
.alt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 8px; }
.alt-card { display: flex; flex-direction: column; background: var(--ln-page); border: 1px solid var(--ln-line); border-radius: var(--ln-radius-lg, 12px); padding: 18px 20px; }
.alt-card--shown { border-color: var(--ln-accent); box-shadow: inset 3px 0 0 var(--ln-accent); }
.alt-card__label { margin: 0 0 6px; font-size: 12.5px; color: var(--ln-muted); }
.alt-card__title { margin: 0 0 4px; font-size: 18px; }
.alt-card__shown { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 10px; color: var(--ln-accent-strong); font-weight: 600; font-size: 13px; }
.alt-card__facts { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 0 0 12px; font-size: 13px; }
.alt-card__facts > div { display: contents; }
.alt-card__facts dt { color: var(--ln-muted); }
.alt-card__facts dd { margin: 0; font-weight: 600; }
.alt-card__stale { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 12px; font-size: 12.5px; color: var(--ln-warn); }
.alt-card__stale .ln-icon { margin-top: 2px; flex: none; }
.alt-card__foot { margin-top: auto; }
.alt-card__foot form { margin: 0; }
.alt-lead { margin: 0 0 12px; max-width: 72ch; }
.alt-pistes { padding: 4px 22px; }
.piste { border-top: 1px solid var(--ln-line); padding: 18px 0; }
.piste:first-child { border-top: 0; }
.piste__head { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; margin: 0 0 6px; }
.piste h3 { margin: 0; font-size: 16px; }
.piste__kind { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--ln-muted); }
.piste__kind--ai { color: var(--ln-accent-strong); }
.piste p { max-width: 72ch; margin: 0 0 10px; }
.piste__facts { display: grid; grid-template-columns: 150px 1fr; gap: 6px 14px; margin: 0 0 12px; font-size: 13px; max-width: 72ch; }
.piste__facts > div { display: contents; }
.piste__facts dt { color: var(--ln-muted); }
.piste__facts dd { margin: 0; }
.piste__order { font-size: 13px; background: var(--ln-soft); border: 1px solid var(--ln-line); border-radius: var(--ln-radius-sm); padding: 8px 12px; }
.alt-more > summary { cursor: pointer; margin: 12px 0; }
@media (max-width: 860px) {
  .alt-grid { grid-template-columns: 1fr; }
  .piste__facts { grid-template-columns: 1fr; gap: 0; }
  .piste__facts dt { margin-top: 6px; }
}

/* ---- Confirmation d'un nouveau scénario ---------------------------------------------------------------------- */
.variant-confirm { max-width: 640px; }
.variant-confirm .relaunch__head h1 { margin-bottom: 4px; }
.variant-confirm__what ul { margin: 0; }
.variant-confirm .tr-quote-total { margin: 0 0 8px; font-size: 16px; }
.variant-confirm .tr-quote-total strong { font-size: 32px; font-weight: 800; letter-spacing: -.03em; }
.variant-confirm .ld-card { margin-bottom: 16px; }
.variant-confirm__balance { margin: 0 0 8px; }

/* ---- Mes documents ------------------------------------------------------------------------------------------- */
.docs-page { max-width: 1100px; display: grid; gap: 16px; }
.docs-page > * { margin: 0; }
.docs-pdf__actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0 0 10px; }
.docs-history .ld-card__head { justify-content: space-between; }
.docs-history__order { font-size: 12.5px; color: var(--ln-muted); }
.docs-history__table td, .docs-history__table th { vertical-align: top; }
.docs-history__checked { font-size: 13px; font-weight: 600; }
.docs-page__how { padding: 14px 18px; }
.docs-page__how > summary { cursor: pointer; font-weight: 600; }
.docs-page__how ol { margin: 10px 0 0; }
#deliverables .docs-page { margin-bottom: 16px; }
@media (max-width: 640px) {
  .docs-history__table thead { display: none; }
  .docs-history__table, .docs-history__table tbody, .docs-history__table tr, .docs-history__table td { display: block; width: 100%; }
  .docs-history__table tr { padding: 10px 18px; border-bottom: 1px solid var(--ln-line); }
  .docs-history__table td { border: 0; padding: 3px 0; text-align: left; }
  .docs-history__table td[data-l]::before { content: attr(data-l) " : "; color: var(--ln-muted); font-size: 12px; }
}

/* ---- Téléphone ------------------------------------------------------------------------------------------------ */
@media (max-width: 980px) { .ld-kpis--client { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-columns: auto; grid-auto-flow: row; } .ld-kpis--client .ld-kpi--main { grid-column: 1 / -1; } }
@media (max-width: 560px) {
  .ld-kpis--client { grid-template-columns: 1fr; }
  .todo-card { padding: 18px; }
  .todo-card__title { font-size: 19px; }
  .todo-actions { flex-direction: column-reverse; align-items: stretch; }
  .todo-actions__group { justify-content: space-between; }
  .todo-actions__group .button { flex: 1 1 auto; }
  .solution-decision-row { flex-direction: column; gap: 4px; }
  .overview-specify-line .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .todo-card, .todo-card * { animation: none !important; transition: none !important; } }
/* « Et ensuite ? » en bas de « Mes documents » : sur téléphone, le texte reprend toute la largeur au lieu d'être écrasé par le bouton. */
@media (max-width: 640px) {
  .ln-continue__content { flex: 1 1 100%; }
  .ln-continue .ln-actions { flex: 1 1 100%; }
  .ln-continue .ln-actions .button { width: 100%; }
}
