/* Prix d'atelier — calculateur du tableau de bord (2026-09-25). Polices hébergées : /polices/. */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url("/polices/barlow-condensed-600-latin.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url("/polices/barlow-condensed-700-latin.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/polices/ibm-plex-mono-400-latin.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/polices/ibm-plex-mono-500-latin.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400 600;font-display:swap;src:url("/polices/source-serif-4-variable-latin.woff2") format("woff2")}
/* L'identité biobâtir « bois et écologie » : kraft, encre, écorce, craie rouge seul accent, mousse = vérifié.
   Une seule ambiance, choisie : la feuille d'atelier sur papier kraft. */
:root{
  color-scheme:light;
  --kraft:#f2ecdf;--kraft-2:#e7dcc8;--aubier:#fbf8f1;--blanc:#ffffff;
  --encre:#1d2621;--encre-2:#4a544d;--ecorce:#5b3a24;--ecorce-2:#44291a;
  --craie:#b23a26;--mousse:#4f6b45;--mousse-fond:#e9efe4;--craie-fond:#f6e7e2;--ambre-fond:#f5ecd3;--ambre:#7a5a12;
  --titre:"Barlow Condensed","Arial Narrow",sans-serif;
  --texte:"Source Serif 4",Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
body{background:var(--kraft);color:var(--encre);font:400 1rem/1.55 var(--texte);padding-inline:16px;padding-block:24px 48px}
.page{max-width:68rem;margin-inline:auto;display:grid;gap:28px}
h1,h2,h3{font-family:var(--titre);font-weight:700;line-height:1.05;margin:0;text-wrap:balance}
h1{font-size:clamp(2rem,1.4rem + 2.4vw,2.8rem)}
h2{font-size:1.45rem;margin-bottom:12px}
h3{font-size:1.1rem;letter-spacing:.04em;text-transform:uppercase}
p{margin:0}
.entete{display:grid;gap:10px}
.entete::after{content:"";display:block;width:min(100%,22rem);height:3px;background:var(--craie);border-radius:2px;transform:rotate(-.4deg)}
.chapeau{color:var(--encre-2);max-width:62ch}
.chapeau .pastille{vertical-align:.1em}
.etiquette{font:600 .78rem/1.2 var(--titre);letter-spacing:.14em;text-transform:uppercase;color:var(--encre-2)}
.grille{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:start}
@media (max-width:52rem){.grille{grid-template-columns:1fr}}
.bloc{background:var(--aubier);border:1px solid var(--kraft-2);border-top:5px solid var(--encre);padding:18px;display:grid;gap:16px}
.commande{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:30rem){.commande{grid-template-columns:1fr}}
.produit{border:1px solid var(--kraft-2);background:var(--blanc);padding:12px;display:grid;gap:8px;align-content:start}
.produit .nom{font:700 1.15rem/1 var(--titre)}
.produit .pieces{font:400 .82rem/1.35 var(--mono);color:var(--encre-2)}
.qte{display:flex;align-items:center;gap:8px}
.qte button{font:700 1.1rem/1 var(--titre);width:2.2rem;height:2.2rem;border:1.5px solid var(--encre);background:transparent;color:var(--encre);border-radius:3px;cursor:pointer}
.qte button:hover{background:var(--encre);color:var(--blanc)}
.qte output{font:600 1.5rem/1 var(--mono);min-width:2ch;text-align:center}
details{border-top:1px solid var(--kraft-2);padding-top:10px}
summary{cursor:pointer;font:600 1rem/1.2 var(--titre);letter-spacing:.06em;text-transform:uppercase}
summary:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--craie);outline-offset:2px}
.champs{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:12px;margin-top:12px}
.champ{display:grid;gap:4px;grid-template-rows:minmax(2.4em,auto) auto auto;align-content:start}
.champ label{font:600 .95rem/1.2 var(--titre);letter-spacing:.02em;display:flex;justify-content:space-between;gap:8px;align-items:flex-end}
.champ .aide{font-size:.82rem;color:var(--encre-2);line-height:1.35}
.champ input{font:500 1rem/1.2 var(--mono);padding:.5rem .6rem;border:1.5px solid #c9b99d;border-radius:3px;background:var(--blanc);color:var(--encre);width:100%}
.pastille{font:600 .68rem/1 var(--titre);letter-spacing:.1em;text-transform:uppercase;padding:.2rem .4rem;border-radius:2px;white-space:nowrap}
.pastille.hyp{background:var(--ambre-fond);color:var(--ambre)}
.pastille.tien{background:var(--mousse-fond);color:var(--mousse)}
.case{display:flex;gap:8px;align-items:center;font-size:.95rem}
.case input{accent-color:var(--ecorce);width:1.1rem;height:1.1rem}
.resultat{position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px)}
@media (max-width:52rem){.resultat{position:static}}
.prix{display:grid;gap:4px}
.prix .gros{font:700 clamp(2.4rem,1.8rem + 2.5vw,3.3rem)/1 var(--titre);font-variant-numeric:tabular-nums}
.prix .sous{color:var(--encre-2);font-size:.95rem}
table{width:100%;border-collapse:collapse;font-size:.93rem}
td{padding:.35rem 0;border-bottom:1px solid var(--kraft-2);vertical-align:top}
td:last-child{text-align:right;font:500 .92rem/1.4 var(--mono);white-space:nowrap;padding-left:12px}
tr.total td{font-weight:600;border-bottom:2px solid var(--encre)}
tr.total td:last-child{font-weight:600}
.detail{color:var(--encre-2);font-size:.82rem}
.acompte{background:var(--blanc);border:1px dashed var(--ecorce);padding:12px;display:grid;gap:4px}
.acompte strong{font:700 1.3rem/1 var(--titre)}
.detecteur{display:grid;gap:10px}
.verdict{padding:12px;border-left:5px solid;font-weight:600;line-height:1.4}
.verdict.ok{background:var(--mousse-fond);border-color:var(--mousse);color:#2f4229}
.verdict.moins{background:var(--ambre-fond);border-color:var(--ambre);color:var(--ambre)}
.verdict.perte{background:var(--craie-fond);border-color:var(--craie);color:var(--craie)}
.reinit{justify-self:start;font:600 .9rem/1 var(--titre);letter-spacing:.08em;text-transform:uppercase;background:transparent;border:1.5px solid var(--encre-2);color:var(--encre-2);padding:.55rem .8rem;border-radius:3px;cursor:pointer}
.reinit:hover{border-color:var(--craie);color:var(--craie)}
.note{font-size:.85rem;color:var(--encre-2);max-width:70ch}
.case-taxes{margin-top:12px}
.retour{font:600 .9rem/1 var(--titre);letter-spacing:.08em;text-transform:uppercase;color:var(--encre);border-bottom:2px solid var(--craie);text-decoration:none}
.haut{margin-bottom:-12px}
.haut .retour{justify-self:start}

/* --- Prix d'atelier des cadres (2026-10-16) : inventaire, opérations et temps --- */
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.action{font:700 1rem/1 var(--titre);letter-spacing:.08em;text-transform:uppercase;background:var(--ecorce);color:var(--blanc);border:0;border-radius:3px;padding:.8rem 1.2rem;cursor:pointer}
.action:hover{background:var(--ecorce-2)}.action:disabled{opacity:.55;cursor:wait}
.etat{font-size:.92rem;color:var(--encre-2)}.etat.non{color:var(--craie);font-weight:600}.etat.ok{color:var(--mousse);font-weight:600}
.puces{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:10px}
.puce{background:var(--blanc);border:1px solid var(--kraft-2);padding:10px 12px;display:grid;gap:2px}
.puce b{font:700 1.7rem/1 var(--titre);font-variant-numeric:tabular-nums}.puce span{font-size:.8rem;color:var(--encre-2);letter-spacing:.04em;text-transform:uppercase}
.defile{overflow-x:auto}
table.ops td,table.ops th{padding:.4rem .5rem;border-bottom:1px solid var(--kraft-2);text-align:left;vertical-align:top}
table.ops th{font:600 .8rem/1.2 var(--titre);letter-spacing:.08em;text-transform:uppercase;color:var(--encre-2)}
table.ops td.n,table.ops th.n{text-align:right;font-family:var(--mono);white-space:nowrap}
table.ops td:last-child{padding-left:.5rem}
table.ops input{font:500 1rem/1.2 var(--mono);padding:.35rem .45rem;border:1.5px solid #c9b99d;border-radius:3px;background:var(--blanc);width:6.5rem;text-align:right}
table.ops tr.sans-temps td{background:var(--ambre-fond)}
table.ops .sous-detail{color:var(--encre-2);font-size:.8rem;margin:2px 0 0;padding:0;list-style:none}
table.ops tr.total td{font-weight:700;border-top:2px solid var(--encre)}
.aide-bloc{font-size:.9rem;color:var(--encre-2);max-width:75ch}
#t-bois td,#t-debit td{padding:.3rem .5rem}#t-bois td.n,#t-debit td.n{text-align:right;font-family:var(--mono);white-space:nowrap}
.champ select{font:500 1rem/1.2 var(--mono);padding:.5rem .6rem;border:1.5px solid #c9b99d;border-radius:3px;background:var(--blanc);color:var(--encre);width:100%}
