/* Interface de décision : compléments isolés, sans bibliothèque externe. */
:root{--muted:#51675e;--primary:#096b60;--primary2:#07564d;--shadow:0 8px 26px rgba(17,55,49,.055)}
:focus-visible{outline:3px solid var(--primary);outline-offset:4px}
h1:focus,h2:focus,main:focus{outline:none}
button,input,select,textarea{font:inherit}
button,.btn,summary{touch-action:manipulation}
.btn,.segmented button,.mode-btn,.decision-option,.step-link{min-height:44px}
.field input,.field select,td input,td select{min-height:44px}
input[type="checkbox"]{accent-color:var(--primary)}
.theme-switch input:focus-visible+span{outline:3px solid var(--primary);outline-offset:4px}
.hero h1{line-height:1.08;letter-spacing:-.045em;max-width:19ch;text-wrap:balance}
.hero p{max-width:64ch}
.journey-list{list-style:none;padding:0;margin-bottom:0}
.journey-list .journey-row{align-items:start}
.journey-list .journey-row>div{min-width:0}
.journey-list small{line-height:1.5}
.page-guide summary,.comparison-details summary{font-weight:800;cursor:pointer;padding-block:6px}
.page-guide[open] .page-guide-grid{margin-top:12px}
.text-button{border:0;background:transparent;color:var(--primary);padding:6px 2px;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:36px}
.calculation-status{padding:10px 18px;margin-block:12px;background:var(--surface2);border:1px solid var(--border);border-radius:12px;font-size:.87rem;line-height:1.5}
body[data-calculation="pending"] .calculation-status,body[data-calculation="invalid"] .calculation-status,body[data-calculation="error"] .calculation-status{border-color:var(--warn)}
body[data-calculation="invalid"] #resultats .compare,body[data-calculation="error"] #resultats .compare{opacity:.65}
[aria-invalid="true"]{border-color:var(--bad)!important;outline:2px solid var(--bad)}
.decision-options{align-items:stretch}
.decision-option[aria-pressed="true"]{border:2px solid var(--primary)}
.decision-card.selected{border:2px solid var(--primary);background:var(--surface)}
.comparison-details{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}
.project-alternative{margin-top:22px;padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--surface2)}
.project-alternative h3{margin-top:6px}
.decision-summary{margin-bottom:22px;border-left:4px solid var(--primary)}
.decision-summary h2{font-size:clamp(1.35rem,3vw,1.8rem)}
.decision-summary p,.decision-summary li{line-height:1.65}
.loan-contract-grid label{min-width:0}
.loan-contract-grid small{grid-column:1/-1}
.plan-title{gap:12px;flex-wrap:wrap}
body .runtime-warning{scroll-margin-top:130px}
html[data-theme="dark"]{--primary:#72d4c1;--primary2:#186c5b;--muted:#b8ccc5;--warn:#ebc183;--bad:#ffaaa2;--ok:#8bddb0}
html[data-theme="dark"] .btn:not(.secondary):not(.danger),html[data-theme="dark"] .segmented button.active{background:#186c5b;color:#fff}
html[data-theme="dark"] .decision-option,html[data-theme="dark"] .mode-btn{color:var(--text)}
@media(max-width:900px){
  .decision-options,.decision-compare{grid-template-columns:1fr}
  .decision-card{padding:16px}
  .decision-readout,.form-grid.decision-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .topbar .header-stats{display:none!important}
  .topbar .topbar-main{grid-template-columns:minmax(0,1fr) auto!important}
}
@media(max-width:760px){
  .topbar .navlinks.stepper{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;overflow:visible!important;padding:6px 12px 10px!important}
  .topbar .stepper .step-link{display:flex!important;align-items:center;min-width:0!important;min-height:44px!important;padding:8px 10px!important;white-space:normal!important;font-size:.84rem!important}
  .topbar .stepper .step-link span{font-size:.8rem!important;line-height:1.25!important;white-space:normal!important}
  .topbar .stepper .step-link b{flex-shrink:0}
  .simulator-brand .brand-copy small{white-space:normal!important;font-size:.68rem!important}
  .hero{padding-top:24px}
  .hero h1{font-size:clamp(2rem,9vw,3rem)}
  .page-guide-grid,.decision-readout,.form-grid.decision-fields{grid-template-columns:1fr}
  .optimization-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card{padding:18px}
  .field label,.field .help{line-height:1.5}
  .field input,.field select,td input,td select{font-size:16px!important}
  .loan-contract-grid{grid-template-columns:1fr!important}
  .mobile-cards td[data-label="Crédit"]{grid-column:1/-1}
  .mobile-cards td::before{line-height:1.4}
  .step-controls{padding-bottom:max(12px,env(safe-area-inset-bottom))}
  section[id]{scroll-margin-top:170px}
}
@media(max-width:380px){.optimization-overview,.mode-grid,.diagnostic-grid,.summary-grid{grid-template-columns:1fr}.topbar-main{padding-inline:10px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.calculation-status,.step-controls,.topbar,.text-button{display:none!important}.decision-summary{break-inside:avoid}}

/* Native hidden semantics keep inactive steps out of keyboard and accessibility navigation. */
[hidden]{display:none!important}
.visual-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:18px;margin-top:18px}.visual-card{min-width:0}.visual-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.visual-head h3{margin:.3rem 0 0}.chart{min-height:190px;margin-top:12px;border-radius:14px;background:color-mix(in srgb,var(--primary) 5%,var(--surface));padding:8px}.chart svg{display:block;width:100%;height:190px}.chart-axis{stroke:var(--border);stroke-width:1}.chart-line{fill:none;stroke:var(--primary);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:var(--accent);stroke:var(--surface);stroke-width:3}.chart-empty{display:grid;place-items:center;min-height:174px;color:var(--muted)}.option-bars{display:grid;gap:18px;padding:18px 10px}.option-bar{display:grid;grid-template-columns:78px 1fr auto;align-items:center;gap:9px;font-size:.85rem}.option-bar>div{height:14px;background:var(--border);border-radius:99px;overflow:hidden}.option-bar i{display:block;height:100%;background:var(--primary);border-radius:99px}.option-bar strong{min-width:78px;text-align:right}@media(max-width:760px){.visual-grid{grid-template-columns:1fr}.visual-head{display:block}.visual-head .badge{display:inline-block;margin-top:8px}}
.page-guide>summary{font-weight:700;cursor:pointer;min-height:44px;align-content:center}
.page-guide[open]>summary{margin-bottom:10px}
