.dyn-tool{margin:42px 0 54px;padding:30px;border:1px solid #c9ccbd;border-radius:6px;background:#faf8f1;scroll-margin-top:28px;color:#263c43}
.dyn-tool h2{margin:0 0 14px;font-size:clamp(25px,3vw,34px);line-height:1.15;letter-spacing:-.6px}
.dyn-tool h3{margin:22px 0 12px;font-size:21px;line-height:1.25}
.dyn-tool p{max-width:780px;line-height:1.65}
.dyn-tool .dyn-intro{font-size:18px;margin-bottom:24px}
.dyn-tool .dyn-note{font-size:15px;line-height:1.55;color:#4e605f}
.dyn-columns{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(350px,1.6fr);gap:28px;align-items:start}
.dyn-tool form{margin:0;min-width:0}
.dyn-tool fieldset{border:0;padding:0;margin:0 0 22px;min-width:0}
.dyn-tool legend{font-weight:700;font-size:17px;margin-bottom:14px}
.dyn-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
.dyn-fields label{font-size:15px;font-weight:650;line-height:1.35;display:block}
.dyn-fields input,.dyn-fields select{display:block;width:100%;min-height:45px;margin:7px 0 0;border:1px solid #71817d;background:white;border-radius:3px;padding:9px 10px;color:#203b43;font:inherit;font-size:17px;box-sizing:border-box}
.dyn-fields small{font-size:13px;font-weight:400;display:block;line-height:1.4;margin-top:5px}
.dyn-fields [aria-invalid=true]{border:2px solid #a33e24;background:#fff4ef}
.dyn-tool button{font:inherit;font-size:15px;min-height:44px;padding:10px 15px;border:1px solid #536866;background:white;color:#223c43;border-radius:3px;cursor:pointer}
.dyn-tool button:hover{background:#e9eee6}
.dyn-tool :focus-visible{outline:3px solid #b96a40;outline-offset:4px}
.dyn-error{font-size:16px;color:#9a351e;font-weight:650}
.dyn-tool [hidden]{display:none!important}
.dyn-tool figure{margin:0}
.dyn-tool figure svg{display:block;width:100%;height:auto;background:#f0ecdf;border-radius:3px;border:1px solid #ddd8c8}
.dyn-tool figure svg text{font-size:28px}
.dyn-tool figcaption{font-size:15px;line-height:1.5;margin:10px 0 15px;color:#4e605f}
.dyn-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0 16px}
.dyn-result{padding:17px 16px;background:white;border:1px solid #d2d9ce;border-radius:3px;min-width:0}
.dyn-result span{display:block;font-size:15px;line-height:1.35}
.dyn-result strong{display:block;margin-top:8px;font-size:clamp(25px,3vw,34px);font-weight:750;line-height:1.2;letter-spacing:-.7px}
.dyn-result small{display:block;margin-top:8px;font-size:13px;line-height:1.4;color:#4e605f}
.dyn-reading{padding:15px 18px;background:#eaf0e5;border-left:3px solid #708565;font-size:17px}
.dyn-tool .lecture-table{width:100%;margin:20px 0 12px}
.dyn-tool .lecture-table td,.dyn-tool .lecture-table th{font-size:16px}
.dyn-formula{font-size:15px;line-height:1.6}
.dyn-tool details{border-top:1px solid #ccd2c7;margin-top:20px;padding-top:15px}
.dyn-tool summary{font-weight:650;font-size:16px;cursor:pointer;min-height:35px}
.dyn-tool details li{font-size:15px;line-height:1.55;margin:7px 0}
.dyn-diagrams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.dyn-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:20px 0}
.dyn-steps li{display:flex;align-items:flex-start;gap:9px;font-size:16px;line-height:1.4}
.dyn-step-number{background:#2d5967;color:white;flex:0 0 25px;border-radius:50%;text-align:center;font-weight:700;line-height:25px}
.dyn-step-number.extract{background:#965333}
.vmc-flow .fresh{stroke:#376d80}.vmc-flow .extract{stroke:#9b5836}
.vmc-flow .flow-base{fill:none;stroke-width:13;opacity:.18;stroke-linecap:round}
.vmc-flow .flow-dots{fill:none;stroke-width:6;stroke-dasharray:2 22;stroke-linecap:round;animation:air-travel 1.5s linear infinite}
.vmc-flow .heat-transfer{stroke:#ba944c;fill:none;stroke-width:4;stroke-dasharray:2 8;animation:air-travel 1.6s linear infinite}
.vmc-flow .heat-arrow{fill:#ba944c}
.vmc-flow.is-paused .flow-dots,.vmc-flow.is-paused .heat-transfer{animation-play-state:paused}
.vmc-flow .vmc-temp{font-size:28px;font-weight:700;fill:#223c43}
.dyn-tool .vmc-flow{max-width:860px;margin:0 auto}
.vmc-flow.no-heat .heat-transfer,.vmc-flow.no-heat .heat-arrow{visibility:hidden}
.vmc-flow.no-air .flow-dots{animation-play-state:paused;opacity:.3}
#outil-vmc .dyn-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.vmc-controls{display:grid;grid-template-columns:auto minmax(240px,1fr);align-items:center;gap:24px;max-width:860px;margin:18px auto 24px}
.vmc-controls label{font-size:16px;line-height:1.5;font-weight:650}
.vmc-controls input{display:block;width:100%;min-height:44px;accent-color:#376d80;cursor:pointer}
.dyn-tool:not(.dyn-ready) .vmc-controls{display:none}
.dyn-unavailable{border-left:3px solid #b96a40;padding:10px 16px;font-size:16px}
.dyn-ready .dyn-unavailable{display:none}
.dyn-tool:not(.dyn-ready) form,.dyn-tool:not(.dyn-ready) [data-pause]{display:none}
.solar-opening{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;margin:32px 0}
.solar-opening img{width:100%;height:auto;border:1px solid #d8d4c8;border-radius:4px}
.solar-opening p{font-size:19px;line-height:1.6}
.solar-article-content{max-width:760px;margin:0 auto}
.solar-article-content h2{margin-top:44px}
.lecture-list .solar-thumb img{object-fit:contain}
@keyframes air-travel{to{stroke-dashoffset:-48}}
@media(prefers-reduced-motion:reduce){.vmc-flow:not(.motion-allowed) .flow-dots,.vmc-flow:not(.motion-allowed) .heat-transfer{animation:none}}
@media(max-width:800px){.dyn-columns{grid-template-columns:1fr}.dyn-diagrams{grid-template-columns:1fr 1fr;gap:14px}.solar-opening{gap:20px}.dyn-tool{padding:24px}.dyn-results{gap:8px}.dyn-result{padding:15px 12px}.dyn-steps{gap:14px}}
@media(max-width:600px){#outil-vmc .dyn-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.vmc-controls{grid-template-columns:1fr;gap:14px}.vmc-controls button{justify-self:start}}
@media(max-width:600px){.dyn-tool{padding:20px 14px;margin:32px 0 42px}.dyn-tool .dyn-intro{font-size:17px}.dyn-columns{gap:24px}.dyn-diagrams{grid-template-columns:1fr}.dyn-results{grid-template-columns:1fr}.dyn-result{display:grid;grid-template-columns:1fr auto;gap:8px 14px;padding:15px}.dyn-result strong{margin:0;font-size:28px}.dyn-result small{grid-column:1/-1;margin:0}.dyn-steps{grid-template-columns:1fr}.dyn-tool figure svg text{font-size:32px}.dyn-tool .vmc-flow text,.dyn-tool .vmc-flow .vmc-temp{font-size:34px}.dyn-tool .lecture-table td,.dyn-tool .lecture-table th{font-size:15px;padding:10px 8px}.solar-opening{grid-template-columns:1fr}.solar-opening p{font-size:18px}.dyn-reading{font-size:16px;padding:14px}.dyn-tool .dyn-note{font-size:14px}.dyn-fields{gap:15px 12px}}
