/* Réalisations : preuves visibles, schéma de principe et essai du reporting. */
.project-proof{margin:24px 0;border-top:1px solid var(--border)}
.project-proof>div{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}
.project-proof dt{font-size:.875rem;font-weight:750;color:var(--accent-text)}
.project-proof dd{margin:0;font-size:.9375rem;line-height:1.6;color:var(--text)}
.demo-jump{margin:0 16px 14px 0}
.project-experience{grid-column:1/-1;min-width:0;scroll-margin-top:calc(var(--header-height) + 24px)}
.power-experience{background:var(--ink);color:var(--on-dark);padding:42px;display:grid;grid-template-columns:1fr 1.15fr;gap:48px;border-top:4px solid var(--accent)}
.experience-intro .eyebrow{color:#c1c8bc;font-size:.875rem}
.experience-intro h3,.reporting-heading h3{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.15;margin-bottom:22px;text-wrap:balance}
.experience-intro>p:not(.eyebrow){color:#c1c8bc;margin-bottom:24px}
.power-controls{display:flex;gap:8px;margin:26px 0}
.power-controls button{flex:1;display:flex;flex-direction:column;align-items:start;gap:6px;min-height:72px;border:1px solid #677360;background:transparent;color:#c1c8bc;padding:12px;font-size:.875rem;text-align:left;transition:background .2s,border-color .2s}
.power-controls button span{font-weight:750;color:var(--on-dark)}
.power-controls button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.power-controls button[aria-pressed=true] span{color:var(--ink)}
.power-controls button:hover{border-color:var(--accent)}
.power-explanation{border-left:2px solid var(--accent);padding-left:18px;min-height:210px}
.power-explanation h4{font-size:1.0625rem;line-height:1.5;margin:0 0 12px}
.power-explanation p{font-size:.9375rem;color:#c1c8bc;line-height:1.65;margin-bottom:12px}
.power-explanation .mode-detail{color:#ffac8d;font-size:.875rem}
.power-experience .text-link{color:var(--on-dark);margin-top:12px}
.power-experience :focus-visible{outline:3px solid #ffac8d;outline-offset:4px}
.power-figure{min-width:0;margin:0;align-self:center}
.power-canvas{position:relative;height:480px;width:100%;isolation:isolate}
.power-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:-1}
.wire{fill:none;stroke:#53604e;stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:4 6}
.wire-load,.power-canvas[data-mode=normal] .wire-input,.power-canvas[data-mode=normal] .wire-output,.power-canvas[data-mode=backup] .wire-output,.power-canvas[data-mode=maintenance] .wire-bypass{stroke:var(--accent);stroke-width:3;stroke-dasharray:10 6;animation:energy-flow 1.8s linear infinite}
@keyframes energy-flow{to{stroke-dashoffset:-32}}
.power-node{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:3px;padding:8px;background:#242c20;border:1px solid #9ba992;line-height:1.35;width:50%;left:25%;height:70px}
.power-node strong{font-size:1rem;letter-spacing:-.02em}
.power-node>span{font-size:.875rem;color:#c1c8bc}
.power-node .node-kicker{font-size:.875rem;color:#c1c8bc}
.power-source{top:0}
.power-asi{top:130px;height:90px;width:36%;border-color:var(--accent)}
.power-asi-one{left:6%}.power-asi-two{left:58%}
.power-cabinet{top:280px;border-color:var(--accent)}
.power-load{top:410px;border-color:var(--accent)}
.power-canvas[data-mode=backup] .power-source,.power-canvas[data-mode=maintenance] .power-asi{border-style:dashed;border-color:#677360;background:var(--ink)}
.power-canvas[data-mode=backup] .power-asi>span:last-child{color:#ffac8d}
.bypass-label{position:absolute;right:7%;top:241px;padding:2px 5px;background:var(--ink);font-size:.875rem;line-height:1.4;color:#c1c8bc}
.power-canvas[data-mode=maintenance] .bypass-label{color:#ffac8d}
.power-figure figcaption{font-size:.875rem;color:#c1c8bc;margin-top:22px;line-height:1.5}
.wire-key{display:inline-block;width:22px;height:3px;background:var(--accent);vertical-align:middle;margin-right:8px}
.reporting-experience{padding:38px;background:#fff;border:1px solid var(--border);border-top:4px solid var(--accent)}
.reporting-heading{display:flex;justify-content:space-between;align-items:start;gap:20px}
.reporting-heading .eyebrow{font-size:.875rem;margin-bottom:12px}
.reporting-heading h3{margin-bottom:16px}
.demo-badge{display:inline-flex;white-space:nowrap;border:1px solid var(--border);padding:7px 12px;font-size:.875rem;color:var(--text-muted)}
.demo-description{max-width:800px;color:var(--text-muted)}
.reporting-controls{display:flex;align-items:end;flex-wrap:wrap;gap:16px 24px;margin:28px 0}
.reporting-controls label{display:block;font-size:.875rem;font-weight:750;margin-bottom:8px}
.reporting-controls select{display:block;min-height:52px;padding:12px 38px 12px 14px;background:#fff;border:1px solid var(--border);color:var(--text);font:inherit;max-width:100%}
.reporting-controls .text-link{min-height:52px;align-items:center}
.reporting-controls button:disabled{cursor:not-allowed;opacity:.5;transform:none}
.report-summary{font-size:.9375rem;font-weight:700;margin:0 0 18px}
.report-table-wrap{overflow-x:auto}
.report-table{border-collapse:collapse;width:100%;font-size:.9375rem;line-height:1.65;text-align:left}
.report-table caption{text-align:left;font-size:.875rem;color:var(--text-muted);padding-bottom:12px}
.report-table thead{background:#f1f2ec}
.report-table th,.report-table td{padding:16px 14px;border-bottom:1px solid var(--border);vertical-align:top}
.report-table thead th{font-size:.875rem;font-weight:750}
.report-table tbody th{font-weight:600;min-width:180px;width:30%}
.report-table td:nth-child(2){white-space:nowrap;width:125px}
.report-table td:last-child{color:var(--text-muted);min-width:230px}
.report-empty{padding:24px;border:1px dashed var(--border);color:var(--text-muted)}
.report-dialog{width:980px;background:#fff}
.report-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px;padding:8px 36px 28px;border-bottom:1px solid var(--border)}
.generated-report{padding:36px;color:var(--text);background:white}
.generated-report header{border-bottom:3px solid var(--accent);padding-bottom:20px;margin-bottom:24px}
.generated-report h2{font-size:2rem;margin:14px 0}
.report-overline{font-size:.875rem;color:var(--text-muted)}
.report-period{font-size:1.25rem;margin-bottom:0}
.report-disclaimer{font-size:.875rem;padding:12px;background:#f1f2ec}
.report-reference{display:block;font-size:.875rem;color:var(--text-muted);font-weight:400}
.generated-report footer{margin-top:28px;font-size:.875rem;color:var(--text-muted)}
.testimonial-section{border-top:1px solid var(--border)}
.testimonial-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:60px}
.testimonial{margin:0;padding-left:28px;border-left:3px solid var(--accent)}
.testimonial blockquote{font-size:clamp(1.2rem,2vw,1.65rem);line-height:1.6;margin:0 0 24px;white-space:pre-line}
.testimonial figcaption{display:flex;flex-direction:column;gap:6px;font-size:.9375rem}
.testimonial figcaption span{color:var(--text-muted)}
@media(max-width:1100px){.power-experience{gap:28px;padding:30px;grid-template-columns:1fr 1fr}.power-controls{flex-wrap:wrap}.power-controls button{min-width:100px}.power-node strong{font-size:.9375rem}}
@media(max-width:850px){.power-experience{grid-template-columns:1fr}.power-controls button{flex-direction:row;gap:10px;min-height:48px;align-items:center}.power-explanation{min-height:0}.power-figure{width:100%;max-width:570px;justify-self:center}.power-node strong{font-size:1rem}.testimonial-layout{grid-template-columns:1fr;gap:28px}}
@media(max-width:580px){.project-proof>div{grid-template-columns:1fr;gap:3px}.power-experience,.reporting-experience{padding:24px 18px}.power-controls{gap:6px}.power-controls button{flex-direction:column;align-items:start;min-width:0;padding:10px 8px;font-size:.875rem}.power-node{width:62%;left:19%;padding:7px 3px}.power-asi{width:40%}.power-asi-one{left:4%}.power-asi-two{left:56%}.power-node strong{font-size:.9375rem}.power-node .node-kicker{font-size:.875rem}.bypass-label{right:1%;top:241px}.reporting-heading{flex-direction:column;gap:0}.demo-badge{margin-bottom:20px}.reporting-controls{align-items:stretch;flex-direction:column}.reporting-controls select{width:100%}.reporting-controls .text-link{align-self:start}.report-table{font-size:.875rem}.report-table th,.report-table td{padding:12px 10px}.report-actions{padding:8px 20px 24px}.generated-report{padding:24px 18px}.generated-report .report-table{table-layout:fixed}.generated-report .report-table th,.generated-report .report-table td{min-width:0;width:auto;white-space:normal;overflow-wrap:anywhere;padding:10px 5px}.generated-report .report-table th:nth-child(2),.generated-report .report-table td:nth-child(2){width:85px}.generated-report h2{font-size:1.6rem}}
@media(prefers-reduced-motion:reduce){.wire{animation:none!important}.power-controls button{transition:none}}
@media print{
  @page{size:A4;margin:16mm}
  body:has(#report-dialog[open]){background:white!important;overflow:visible!important}
  body:has(#report-dialog[open])>*:not(#report-dialog){display:none!important}
  #report-dialog[open]{display:block!important;position:static!important;width:100%!important;max-width:none!important;max-height:none!important;height:auto!important;overflow:visible!important;margin:0!important;border:0!important;padding:0!important}
  #report-dialog::backdrop{display:none}
  #report-dialog .dialog-close,#report-dialog .report-actions{display:none!important}
  #report-dialog .generated-report{padding:0;font-size:11pt}
  #report-dialog .report-table{font-size:10pt;table-layout:fixed}
  #report-dialog .report-table th,#report-dialog .report-table td{min-width:0;overflow-wrap:anywhere;padding:10px 8px}
  #report-dialog .report-table td:nth-child(2){width:100px;white-space:normal}
  #report-dialog tr{break-inside:avoid}
  #report-dialog thead{display:table-header-group}
}
