.schema{margin:18px 0;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:12px}
.schema svg{width:100%;height:auto;display:block;max-height:320px}
.schema figcaption{font-size:.88rem;color:var(--muted);margin-top:6px;text-align:center}
.sk-t{font:13px system-ui,-apple-system,Segoe UI,Roboto,sans-serif;fill:var(--text)}.sk-c{text-anchor:middle}.sk-r{text-anchor:end}.sk-acc{fill:var(--accent);font-weight:700}.sk-mut{fill:var(--muted)}
.sk-f{fill:var(--text)}.sk-l{stroke:var(--text);stroke-width:1.5;fill:none}
.sk-dim{stroke:var(--text);stroke-width:1.5;fill:none}.sk-dim2{stroke:var(--accent);stroke-width:2;fill:none}
.sk-dash{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:6 5;fill:none}
.sk-step{fill:none;stroke:var(--accent);stroke-width:4;stroke-linejoin:round}
.sk-wall{fill:#8a8f98}.sk-beton{fill:#b9bcc2}.sk-steel{stroke:#d9622b;fill:#d9622b;stroke-width:2.5}.sk-steelbar{fill:#9aa0a8;stroke:#d9622b;stroke-width:2}
.sk-poly{fill:#3a414d}.sk-grav{fill:#d8cbb4}.sk-stone{fill:#a99a80}.sk-soil{fill:#8b6b4a}.sk-wood{fill:#b07a48}
.sk-roof{fill:var(--accent-soft);stroke:var(--border)}.sk-rafter{stroke:var(--accent);stroke-width:6;stroke-linecap:round}
.sk-floor{fill:#e9d3b2}.sk-plank0{fill:#e3c79d;stroke:#b88c5f;stroke-width:1}.sk-plank1{fill:#dcbc8f;stroke:#b88c5f;stroke-width:1}
.sk-gap{fill:none;stroke:var(--accent);stroke-width:3;stroke-dasharray:4 3}.sk-mark{stroke:var(--accent);stroke-width:3}
.sk-block{fill:#c4c7cc;stroke:#8a8f98;stroke-width:3}.sk-lab{fill:var(--card)}
:root{--wood1:#f7ecdd;--wood2:#f1e2cd;--grid:rgba(40,90,160,.07);--grid-major:rgba(40,90,160,.13);--bg:#f7f6f2;--card:#fff;--text:#1f2328;--muted:#5b616b;--accent:#d9622b;--accent-soft:#fbe9df;--border:#e4e1d8}
@media (prefers-color-scheme:dark){:root{--bg:#16181c;--card:#1f2228;--text:#eceae4;--muted:#a3a8b0;--accent:#f0864f;--accent-soft:#3a2a21;--border:#30343b;--wood1:#2b231c;--wood2:#241d17;--grid:rgba(120,170,230,.06);--grid-major:rgba(120,170,230,.11)}}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22480%22%20height%3D%2296%22%3E%3Cg%20stroke%3D%22%23b88c5f%22%20stroke-opacity%3D%22.28%22%20stroke-width%3D%221.5%22%3E%3Cpath%20d%3D%22M0%20.75h480M0%2048.75h480%22/%3E%3Cpath%20d%3D%22M180%200v48M420%200v48M60%2048v48M300%2048v48%22/%3E%3C/g%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23c49a6c%22%20stroke-opacity%3D%22.13%22%3E%3Cpath%20d%3D%22M0%2016c80%204%20160-4%20240%200s160%206%20240%202M0%2032c90-3%20170%205%20260%201s150-4%20220%201M0%2064c70%205%20160-3%20240%201s170%204%20240-1M0%2080c100-4%20170%204%20250%200s150-3%20230%202%22/%3E%3C/g%3E%3C/svg%3E"),linear-gradient(var(--wood1),var(--wood2));background-size:480px 96px,auto;background-attachment:scroll;color:var(--text);line-height:1.6}
header{background:linear-gradient(160deg,#3a414d,#262b33);border-bottom:3px solid var(--accent);padding:12px 16px}
.home header,header{display:flex;align-items:center}
.logo{font-weight:800;font-size:1.2rem;color:#fff;text-decoration:none;display:flex;align-items:center;gap:8px}
nav{display:flex;gap:6px;overflow-x:auto;margin-top:8px;padding-bottom:4px}
nav a{white-space:nowrap;padding:5px 11px;border-radius:999px;background:var(--accent-soft);color:var(--text);text-decoration:none;font-size:.9rem}
main{max-width:980px;margin:0 auto;padding:12px 16px 40px}
main>p,main>h2,main>h1,.lead{max-width:760px}
h1{font-size:1.6rem;line-height:1.25;margin:.3em 0}
h2{font-size:1.2rem;margin-top:1.8em}
.lead{color:var(--muted);font-size:1rem;margin:.3em 0 .8em}
a{color:var(--accent)}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0}
.calc-card{display:flex;flex-direction:column;gap:12px;background:linear-gradient(160deg,#3a414d,#262b33);border-radius:20px;padding:14px;text-decoration:none;color:#e9ecef;box-shadow:0 6px 16px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.08);transition:transform .15s,box-shadow .15s}
.calc-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.25)}
.screen{background:linear-gradient(#d3e4c6,#bcd2ad);color:#1f2a17;border-radius:10px;padding:10px 12px;text-align:right;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-weight:700;font-size:1.15rem;letter-spacing:.02em;box-shadow:inset 0 2px 4px rgba(0,0,0,.25)}
.ic{display:flex;justify-content:center;color:#e9ecef}
.ic svg{width:64px;height:64px}
.calc-card p{margin:0;font-size:.9rem;line-height:1.4;color:#c4cad1;text-align:center;min-height:2.8em}
.keys{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:auto}
.keys i{height:14px;border-radius:5px;background:#4a525f;box-shadow:inset 0 -2px 0 rgba(0,0,0,.25)}
.keys i.eq{background:var(--accent)}
@media (min-width:760px){.grid{grid-template-columns:repeat(3,1fr);gap:18px}}
@media (max-width:420px){.screen{font-size:.95rem;padding:8px 10px}.calc-card p{font-size:.82rem}}
.home main{max-width:1380px;padding-top:8px}
.home h1{margin:.2em 0}
.home .lead{margin:.2em 0 .6em}
.home .grid{gap:12px;margin:6px 0 14px}
.cat h2{font-size:1.05rem;margin:14px 0 4px;color:var(--text)}
@media (min-width:760px){.home .grid{grid-template-columns:repeat(4,1fr)}}
@media (min-width:1100px){.home .grid{grid-template-columns:repeat(5,1fr)}}
.home .calc-card{gap:6px;padding:10px}
.home .screen{padding:6px 10px;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home .ic svg{width:38px;height:38px}
.home .calc-card p{font-size:.8rem;min-height:2.6em;line-height:1.3}
.home .keys i{height:10px}
.home .keys i:nth-child(-n+4){display:none}
.pads{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 24px}
@media (min-width:760px){.pads{grid-template-columns:repeat(3,1fr);gap:14px}}
@media (min-width:1100px){.pads{grid-template-columns:repeat(6,1fr)}}
.pad{display:flex;flex-direction:column;gap:6px;background:linear-gradient(160deg,#3a414d,#262b33);border-radius:18px;padding:10px;box-shadow:0 6px 16px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.08)}
.pad h2{margin:0 0 4px;background:linear-gradient(#d3e4c6,#bcd2ad);color:#1f2a17;border-radius:9px;padding:7px 8px;font:700 .8rem ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;text-align:center;box-shadow:inset 0 2px 4px rgba(0,0,0,.25)}
.key{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:10px;background:#4a525f;color:#fff;text-decoration:none;font-weight:600;font-size:.86rem;line-height:1.2;box-shadow:inset 0 -3px 0 rgba(0,0,0,.25);transition:background .12s,transform .12s}
.key:hover{background:var(--accent);transform:translateY(-1px)}
.key:active{transform:translateY(1px);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}
.key svg{width:22px;height:22px;flex:none;color:#e9ecef}
.key:hover svg{--accent:#fff}
@media (max-width:600px){.promo{padding:8px 12px;margin:6px 0 0;gap:10px}.promo small{display:none}.promo .pi svg{width:28px;height:28px}.home .lead{display:none}.home h1{font-size:1.25rem}.home main{padding-top:4px}.pads{margin-top:8px}}
@media (max-width:420px){.pad{padding:8px;border-radius:15px}.pad h2{font-size:.68rem;padding:6px 4px}.key{font-size:.76rem;padding:5px 6px;gap:6px}.key svg{width:17px;height:17px}.pad{gap:5px}.pads{gap:8px}}
.addl{display:block;width:100%;margin-top:6px;padding:9px 12px;border:0;border-radius:10px;background:#3a414d;color:#fff;font:600 .9rem system-ui,sans-serif;cursor:pointer;box-shadow:inset 0 -3px 0 rgba(0,0,0,.3)}
.acts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}.acts .addl{margin:0;padding:9px 4px;font-size:.85rem;white-space:nowrap}
.budget{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:4px 18px 14px;margin:0 0 16px}
.budget h2{margin:12px 0 2px;font-size:1.1rem}.bhint{color:var(--muted);font-size:.88rem;margin:2px 0 8px}
.brow{display:grid;grid-template-columns:1fr auto 110px 90px;gap:8px;align-items:center;padding:7px 0;border-bottom:1px dashed var(--border)}
.bq{color:var(--muted);font-variant-numeric:tabular-nums}.bp{display:flex;align-items:center;gap:4px}.bp input{padding:6px 8px;text-align:right}
.bs{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.btot{text-align:right;margin-top:10px;font-size:1.05rem}.btot b{color:var(--accent);font-size:1.25rem}
@media (max-width:520px){.brow{grid-template-columns:1fr auto;row-gap:4px}.bp{grid-column:1}.bs{grid-column:2}}
.fiche{display:none}
@media print{body.pf>*:not(.fiche){display:none!important}body.pf .fiche{display:block!important;color:#000;font:11pt/1.45 system-ui,sans-serif}
.fiche .fh{display:flex;gap:12px;align-items:center;border-bottom:3px solid #d9622b;padding-bottom:8px;margin-bottom:6px}.fiche .fh img{width:44px;height:44px}.fiche .fh b{display:block;font-size:18pt}.fiche .fh span{color:#444}
.fiche h2{font-size:13pt;margin:16px 0 6px;color:#d9622b}.fiche table{width:100%;border-collapse:collapse}.fiche th,.fiche td{border:1px solid #bbb;padding:5px 8px;text-align:left}.fiche th{background:#f3f3f3;width:45%}
.fiche table.bt th{width:auto}.fiche table.bt td:nth-child(n+2),.fiche table.bt th:nth-child(n+2){white-space:nowrap;text-align:right;width:1%}.fiche table.bt .tt td:first-child{text-align:left}.fiche .tt td{font-weight:700;background:#fbe9df}.fiche .fres{border:1px solid #bbb;padding:8px 12px;border-radius:6px}.fiche .fres .big{font-size:14pt;font-weight:700}
.fiche .lines{height:120px;background:repeating-linear-gradient(#fff 0 27px,#ccc 27px 28px)}.fiche .fft{font-size:8.5pt;color:#555;margin-top:14px}}
.addl:hover{background:var(--accent)}.shr{background:var(--card);color:var(--text);box-shadow:0 2px 6px rgba(0,0,0,.08);border:1px solid var(--border)}.shr:hover{color:#fff}.addl.ok{background:#2e7d32}
nav.top{margin:0 0 0 auto;display:flex;gap:6px;padding:0;align-items:center}
nav.top a{background:#4a525f;color:#fff;box-shadow:inset 0 -2px 0 rgba(0,0,0,.25);padding:6px 12px;border-radius:999px;text-decoration:none;font-size:.88rem;font-weight:600;white-space:nowrap}
nav.top a:hover,nav.top .nb:hover{background:var(--accent);color:#fff}
nav.top .nb{border:0;cursor:pointer;background:#4a525f;color:#fff;box-shadow:inset 0 -2px 0 rgba(0,0,0,.25);padding:6px 12px;border-radius:999px;font:600 .88rem system-ui,-apple-system,Segoe UI,Roboto,sans-serif;white-space:nowrap}
nav.top .dk{display:none}@media (min-width:980px){nav.top .dk{display:inline-block}}
@media (max-width:600px){nav.top .lb{display:none}nav.top a,nav.top .nb{padding:7px 11px;font-size:1rem}}
.noscroll{overflow:hidden}
.drawer{position:fixed;inset:0;z-index:60}.dback{position:absolute;inset:0;background:rgba(15,18,22,.45)}
.dpanel{position:absolute;top:0;right:0;bottom:0;width:min(320px,86vw);background:var(--card);box-shadow:-10px 0 30px rgba(0,0,0,.25);overflow-y:auto;animation:din .18s ease-out}
@keyframes din{from{transform:translateX(30px);opacity:.4}to{transform:none;opacity:1}}
.dhead{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:linear-gradient(160deg,#3a414d,#262b33);color:#fff;border-bottom:3px solid var(--accent)}
.dclose{border:0;background:none;color:inherit;font-size:1.2rem;cursor:pointer;padding:4px 8px}
.dnav{display:flex;flex-direction:column;padding:8px;margin:0;gap:2px;overflow:visible}.dnav a{background:transparent;white-space:normal;font-size:1rem;padding:12px 12px;border-radius:10px;text-decoration:none;color:var(--text);font-weight:600}.dnav a:hover{background:var(--accent-soft)}
.dnav hr{border:0;border-top:1px solid var(--border);margin:6px 4px}
.search{position:fixed;inset:0;z-index:60;background:rgba(15,18,22,.45);display:flex;justify-content:center;align-items:flex-start;padding:60px 12px 12px}
.sbox{width:min(620px,100%);background:var(--card);border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.35);overflow:hidden;max-height:calc(100vh - 80px);display:flex;flex-direction:column}
.srow{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:3px solid var(--accent)}
.srow input{flex:1;border:0;background:transparent;font-size:1.1rem;padding:8px 4px;outline:none;color:var(--text)}
.sres{overflow-y:auto;padding:6px}.sres a{display:flex;gap:12px;align-items:flex-start;padding:10px;border-radius:10px;text-decoration:none;color:var(--text)}
.sres a:hover,.sres a:focus{background:var(--accent-soft)}.sres b{display:block}.sres small{display:block;color:var(--muted);font-size:.85rem;margin-top:2px}
.shint{color:var(--muted);font-size:.85rem;margin:6px 10px}
.faq details{background:var(--card);border:1px solid var(--border);border-radius:12px;margin:8px 0;padding:0 14px}
.faq summary{cursor:pointer;font-weight:600;padding:12px 0;list-style:none;display:flex;justify-content:space-between;gap:10px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 12px;color:var(--muted)}
.faqcat{margin-top:22px}.faqcat h2 a{text-decoration:none}
.notfound{text-align:center;margin:10px auto 6px}
.notfound .lead{margin-left:auto;margin-right:auto}
.notfound .cta{justify-content:center}
.nf-screen{display:inline-block;background:linear-gradient(#d3e4c6,#bcd2ad);color:#1f2a17;font:700 1.6rem ui-monospace,Menlo,Consolas,monospace;padding:10px 26px;border-radius:12px;box-shadow:inset 0 2px 4px rgba(0,0,0,.25),0 0 0 10px #2b3038;margin:18px 0 8px}
.ioshelp{position:fixed;left:12px;right:12px;bottom:12px;z-index:50;background:linear-gradient(160deg,#3a414d,#262b33);color:#fff;border-radius:16px;padding:14px 16px;box-shadow:0 10px 30px rgba(0,0,0,.35);border-bottom:3px solid var(--accent);max-width:460px;margin:0 auto}
.ioshelp p{margin:6px 0 10px;color:#d6dbe1}.ioshelp button{border:0;background:var(--accent);color:#fff;font-weight:700;border-radius:9px;padding:7px 16px}
[hidden]{display:none!important}
.tblwrap{overflow-x:auto;margin:10px 0}
table.cmp{width:100%;border-collapse:collapse;font-size:.95rem;min-width:520px}
table.cmp th,table.cmp td{padding:9px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
table.cmp thead th{background:linear-gradient(160deg,#3a414d,#262b33);color:#fff}
table.cmp thead th:first-child{border-top-left-radius:10px}table.cmp thead th:last-child{border-top-right-radius:10px}
table.cmp tbody th{width:30%;color:var(--muted);font-weight:600}
.choix{display:grid;grid-template-columns:1fr;gap:12px;margin:16px 0}
@media (min-width:700px){.choix{grid-template-columns:1fr 1fr}}
.choix>div{background:var(--accent-soft);border-radius:12px;padding:4px 16px 8px}
.choix h3{margin:12px 0 4px;color:var(--accent)}
ul.check{list-style:none;padding-left:0}ul.check li{padding-left:28px;position:relative}ul.check li::before{content:"☐";position:absolute;left:4px;color:var(--accent)}
.note{font-size:.9rem;color:var(--muted);border-top:1px dashed var(--border);padding-top:10px}
.moisnav{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.moisnav a{text-decoration:none;font-weight:600}
.sub{grid-column:1/-1;font-weight:800;color:var(--accent);margin:6px 0 2px;padding-top:8px;border-top:1px dashed var(--border)}
.sub:first-child{border-top:0;padding-top:0}
.rs{font-size:.9rem;color:var(--muted);margin-bottom:6px!important}
.promo{display:flex;align-items:center;gap:14px;background:linear-gradient(160deg,#3a414d,#262b33);color:#fff;text-decoration:none;border-radius:16px;padding:12px 16px;margin:10px 0 4px;border-bottom:3px solid var(--accent);box-shadow:0 6px 16px rgba(0,0,0,.15)}
.promo:hover{transform:translateY(-1px)}
.promo .pi{flex:none;background:#4a525f;border-radius:12px;padding:6px;display:flex}.promo .pi svg{width:40px;height:40px;color:#e9ecef}
.promo b{display:block}.promo small{display:block;color:#c9d0d8;font-size:.85rem;margin-top:2px}
.promo .go{margin-left:auto;font-size:1.6rem;color:var(--accent)}
.lettres{display:flex;flex-wrap:wrap;gap:6px}.lettres a{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:4px 10px;text-decoration:none;font-weight:700}
.gloss h2{margin:22px 0 6px;color:var(--accent)}.gloss dt{font-weight:700;margin-top:12px}.gloss dd{margin:2px 0 0;color:var(--muted)}.gloss dd a{white-space:nowrap;text-decoration:none;font-weight:600}
.guide-link{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:10px;padding:10px 14px;font-weight:600}
.guide-link a{text-decoration:none}
.article{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:8px 22px 18px;margin:12px 0}
.article li{margin:6px 0}
.cta{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.cta a{background:var(--accent);color:#fff;text-decoration:none;padding:9px 14px;border-radius:10px;font-weight:600}
.glist{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:12px 0 24px}
.glist a{display:block;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;text-decoration:none;color:var(--text)}
.glist a:hover{border-color:var(--accent)}
.glist b{color:var(--accent);display:block;margin-bottom:4px}
.glist span{font-size:.9rem;color:var(--muted)}
.lst{list-style:none;padding:0}
.lst li{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin:10px 0;display:flex;gap:10px;align-items:flex-start}
.lst li div{flex:1}.lst li b{color:var(--accent)}
.lst li small{display:block;color:var(--muted);margin-top:2px}
.hist a{text-decoration:none}.hago{font-style:italic}.hopen{white-space:nowrap;font-weight:700;text-decoration:none;align-self:center}
.lst button.del{border:0;background:none;font-size:1.1rem;cursor:pointer;color:var(--muted)}
.lbtn{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.lbtn button{border:0;border-radius:10px;padding:10px 14px;font:600 .95rem system-ui,sans-serif;cursor:pointer;background:#3a414d;color:#fff}
.lbtn button.pri{background:var(--accent)}
@media print{header,footer,.lbtn,.back,.del,nav{display:none!important}body{background:#fff!important}.lst li{border:1px solid #999}}
@media (max-width:360px){.logo{font-size:0;gap:0}}
.back{display:inline-block;margin:4px 0 0;font-size:.9rem;text-decoration:none;color:var(--muted)}
.back:hover{color:var(--accent)}
.card{display:block;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;text-decoration:none;color:var(--text);transition:transform .15s,border-color .15s}
.card:hover{transform:translateY(-2px);border-color:var(--accent)}
.card h2{margin:0 0 4px;color:var(--accent)}
.card p{margin:0;color:var(--muted);font-size:.95rem}
.calc{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px;margin:12px 0 20px}
.fields{display:grid;grid-template-columns:1fr;gap:0 16px}
.field{margin-bottom:10px}
label{display:block;font-weight:600;font-size:.95rem;margin-bottom:4px}
.inp{display:flex;align-items:center;gap:8px}
input,select{width:100%;font-size:1rem;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text)}
input:focus,select:focus{outline:2px solid var(--accent);border-color:transparent}
.unit{color:var(--muted);min-width:42px}
.side{position:sticky;bottom:8px;margin-top:8px;z-index:2}
.result{padding:14px 16px;border-radius:12px;background:var(--accent-soft);border:1px solid var(--accent);box-shadow:0 4px 18px rgba(0,0,0,.12)}
@media (min-width:760px){.calc{display:grid;grid-template-columns:1fr 280px;gap:20px;align-items:start}.fields{grid-template-columns:1fr 1fr}.side{margin-top:0;position:sticky;top:16px;bottom:auto}}
.result div{margin:3px 0}
.big{font-size:1.4rem;font-weight:800;color:var(--accent)}
.warn{color:#b3261e;font-weight:600}
footer{border-top:1px solid var(--border);padding:20px 16px;text-align:center;font-size:.9rem;color:var(--muted)}
footer a{margin:0 8px;color:var(--muted)}
@media (max-width:600px){.home .promo{display:none}}
