/* Page « Votre projet » : planificateur de cuisine et configurateur de petit meuble */
.pj-wrap{max-width:1400px}
.pj-intro{padding:44px 0 18px}
.pj-intro h1{font-size:clamp(1.6rem,3vw,2.2rem)}
.pj-intro .section-intro{max-width:760px;margin:0 0 1.2em}
.pj-tabs{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:30px;padding:4px;gap:4px;flex-wrap:wrap}
.pj-tabs button{font:inherit;font-weight:600;border:0;background:transparent;padding:.5em 1.1em;border-radius:24px;cursor:pointer;color:var(--ink)}
.pj-tabs button[aria-selected="true"]{background:var(--wood);color:#fff}
.pj-app{padding:0 0 56px}
.pj-grid{display:grid;grid-template-columns:330px minmax(0,1fr);gap:22px;align-items:start}
.pj-side{display:grid;gap:14px}
.pj-box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.pj-box>summary{font-family:Georgia,serif;font-weight:700;font-size:1.05rem;cursor:pointer;margin:-2px 0 6px}
.pj-box label,.pj-full{display:grid;gap:4px;font-weight:600;font-size:.85rem;margin-top:8px}
.pj-box input[type=number],.pj-box input[type=text],.pj-box select,.pj-box textarea{font:inherit;font-weight:400;font-size:.95rem;padding:.45em .55em;border:1px solid #cfc4b5;border-radius:8px;background:#fffdf9;width:100%;min-width:0}
.pj-box input:focus,.pj-box select:focus,.pj-box textarea:focus{outline:2px solid var(--wood);border-color:var(--wood)}
.pj-row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pj-span2{grid-column:span 2}
.u{display:flex;align-items:center;gap:4px;font-weight:400;color:var(--ink-soft);font-size:.8rem}
.pj-open{border:1px solid var(--line);border-radius:8px;margin:10px 0 0;padding:4px 10px 10px}
.pj-open legend label{display:flex;align-items:center;gap:6px;margin:0;font-size:.9rem}
.pj-open:has(input[type=checkbox]:not(:checked)) .pj-row3{opacity:.45}
.pj-hint{font-size:.8rem;color:var(--ink-soft);margin:.6em 0 0;line-height:1.4}
.pj-warn{font-size:.85rem;color:#8a3b12;background:#fdf0e6;border-radius:6px;padding:.4em .6em;margin:.6em 0 0}
.pj-palette{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.pj-palette button{font:inherit;font-size:.8rem;font-weight:600;line-height:1.2;border:1px solid var(--line);background:#fffdf9;border-radius:8px;padding:.5em .3em;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--ink)}
.pj-palette button:hover{border-color:var(--wood)}
.pj-palette i{display:block;width:26px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.25)}
.pj-palette small{font-weight:400;color:var(--ink-soft);font-size:.72rem}
.pj-actions-row{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px}
.pj-link{font:inherit;font-size:.85rem;background:none;border:0;padding:0;color:var(--wood-dark);text-decoration:underline;cursor:pointer}
.pj-sel{border-color:var(--wood);box-shadow:0 0 0 2px rgba(122,74,37,.15)}
.pj-sel-title{margin:0;font-weight:700}
.pj-sel.is-empty{border-color:var(--line);box-shadow:none}
.pj-sel.is-empty .pj-sel-title{font-weight:400;color:var(--ink-soft);font-size:.9rem}
.pj-sel button:disabled,.pj-sel input:disabled{opacity:.45;cursor:default}
.pj-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pj-btn{font:inherit;font-size:.85rem;font-weight:600;border:1px solid var(--wood);background:#fff;color:var(--wood-dark);border-radius:8px;padding:.45em .8em;cursor:pointer}
.pj-btn:hover{background:var(--paper-alt)}
.pj-del{border-color:#b04a2a;color:#9a3a1d}
.pj-views{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.pj-view{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px}
.pj-view figcaption{margin:0 0 6px;font-weight:700;color:var(--ink);font-size:.95rem}
.pj-view figcaption small{font-weight:400;color:var(--ink-soft)}
.pj-canvas-wrap{position:relative;width:100%}
.pj-canvas-wrap canvas{display:block;width:100%;touch-action:none;border-radius:6px}
#plan{cursor:default}
.pj-3d{height:480px;background:#eef0f1;border-radius:6px;overflow:hidden}
.pj-3d canvas{height:100%}
.pj-3d-msg{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:var(--ink-soft);font-size:.9rem;text-align:center;padding:20px}
.pj-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.75rem;color:var(--ink-soft);margin:8px 0 0}
.pj-legend span{display:inline-flex;align-items:center;gap:4px}
.pj-legend i{width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.25);display:inline-block}
.pj-send-sec{padding:56px 0}
.pj-form{max-width:900px}
.pj-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pj-err{color:#9a3a1d;font-weight:600;margin:0}
.pj-done{background:var(--paper-alt);border-radius:8px;padding:14px 16px;line-height:1.5}
.pj-done p{margin:.3em 0}
.pj-done .btn{margin:.4em .4em 0 0}
@media (max-width:1180px){
  .pj-views{grid-template-columns:1fr}
  .pj-3d{height:420px}
}
@media (max-width:860px){
  .pj-grid{grid-template-columns:1fr}
  .pj-intro{padding:30px 0 14px}
}
@media (max-width:600px){
  .pj-3d{height:320px}
  .pj-form-grid{grid-template-columns:1fr}
  .pj-palette{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pj-tabs{display:flex}
  .pj-tabs button{flex:1 1 auto;padding:.5em .6em;font-size:.9rem}
}
.pj-float{position:absolute;top:8px;right:8px;display:flex;gap:6px}
.pj-float[hidden]{display:none}
.pj-float button{font:inherit;font-size:.85rem;font-weight:600;background:rgba(255,255,255,.95);border:1px solid var(--wood);color:var(--wood-dark);border-radius:20px;padding:.35em .8em;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.15)}
[hidden]{display:none!important}
/* Meuble composé (v2) et tables */
.pj-box-title{font-family:Georgia,serif;font-weight:700;font-size:1.05rem;margin:0 0 4px}
.pj-presets{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pj-presets button{font:inherit;font-size:.82rem;font-weight:600;line-height:1.25;border:1px solid var(--line);background:#fffdf9;border-radius:8px;padding:.55em .5em;cursor:pointer;color:var(--ink);text-align:left}
.pj-presets button:hover{border-color:var(--wood)}
.pj-presets button.on{border-color:var(--wood);background:var(--paper-alt);box-shadow:inset 0 0 0 1px var(--wood)}
.mb-mod{border:1px solid var(--line);border-radius:8px;padding:10px;margin:10px 0 0;background:#fffdf9}
.mb-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mb-head strong{font-size:.95rem}
.mb-head select{font:inherit;font-size:.85rem;padding:.3em .4em;border:1px solid #cfc4b5;border-radius:6px;background:#fff;flex:1 1 140px;min-width:0}
.mb-pos{font-size:.8rem;color:var(--ink-soft)}
.mb-del{margin-left:auto;font:inherit;font-size:1.1rem;line-height:1;width:30px;height:30px;border-radius:50%;border:1px solid #d8b4a6;background:#fff;color:#9a3a1d;cursor:pointer}
.mb-steps{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-end;margin-top:8px}
.mb-steps label{margin-top:0}
.mb-lab{display:grid;gap:4px;font-weight:600;font-size:.85rem}
.stp{display:inline-flex;align-items:center;border:1px solid #cfc4b5;border-radius:8px;background:#fff;overflow:hidden}
.stp button{font:inherit;font-size:1.1rem;width:36px;height:34px;border:0;background:#f6f1ea;color:var(--wood-dark);cursor:pointer;touch-action:manipulation}
.stp button:hover{background:var(--paper-alt)}
.stp b{min-width:30px;text-align:center;font-weight:700}
.mb-chk{display:flex!important;align-items:center;gap:8px;font-weight:500!important;font-size:.85rem;margin-top:10px!important;grid-template-columns:none}
.mb-chk input{width:18px;height:18px}
.mb-cols{display:grid;gap:8px;margin-top:8px}
.mb-col{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:flex-end;padding:8px;border-radius:6px;background:var(--paper-alt)}
.mb-col-t{flex:1 1 100%;font-weight:700;font-size:.85rem}
.mb-col-t small{font-weight:400;color:var(--ink-soft)}
.mb-col label{margin-top:0}
.mb-add{margin-top:10px;width:100%}
.mb-add:disabled{opacity:.5;cursor:default}
.mb-chk[hidden]{display:none!important}
/* Bouton WhatsApp en tête de page */
.pj-wa{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#25d366;color:#fff;text-decoration:none;font-weight:700;font-size:1.05rem;padding:.8em 1.4em;border-radius:40px;box-shadow:0 4px 14px rgba(37,211,102,.35);margin:0 0 18px;transition:background .2s}
.pj-wa:hover{background:#1ebe5a}
.pj-wa:focus-visible{outline:3px solid var(--wood-dark);outline-offset:3px}
.pj-wa svg{flex:0 0 auto}
@media (max-width:600px){.pj-wa{display:flex;width:100%;padding:.85em 1em}}
/* Charpente */
.pj-box-sub{font-weight:700;font-size:.85rem;margin:12px 0 0}
.ch-fermes{display:grid;gap:6px;margin-top:8px}
.ch-ferme{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:6px;background:var(--paper-alt);font-size:.85rem;font-weight:600}
.ch-ferme label{margin:0;flex:1 1 auto}
.ch-ferme input{max-width:90px}
.ch-ferme .mb-del{margin-left:0}
.ch-secs{display:grid;gap:6px;margin-top:6px}
.ch-sec{display:flex!important;justify-content:space-between;align-items:center;gap:8px;margin-top:0!important}
.ch-sec input{width:58px!important}
.ch-sec input:disabled{background:#f3efe8;color:#6b6259}
.ch-ferme label.u{display:flex!important;align-items:center;gap:4px;margin:0!important;font-size:.85rem}
.pj-views.is-ch{grid-template-columns:1fr}
/* Tables : piètements, dessin libre */
.t-bases{grid-template-columns:repeat(3,minmax(0,1fr))}
.t-bases button{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;font-size:.75rem;padding:.35em .25em}
.t-bases canvas{width:68px;height:40px}
.t-draw-btn{width:100%;margin-top:8px;border-style:dashed}
.t-draw-btn.on{background:var(--paper-alt);border-style:solid;box-shadow:inset 0 0 0 1px var(--wood)}
.t-pad-wrap{margin-top:8px;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fffdf9}
.t-pad-wrap .pj-hint{margin-top:0}
.t-pad-tools{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.t-pad-tools select{font:inherit;font-size:.85rem;padding:.4em;border:1px solid #cfc4b5;border-radius:8px;background:#fff;flex:1 1 140px}
#t-pad{border:1px solid var(--line);cursor:crosshair}
.t-pad-sel{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:8px}
.t-pad-sel label{flex:1 1 160px;margin-top:0}
.t-pad-pos{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-top:8px;font-size:.8rem}
.t-pad-pos label{display:flex!important;align-items:center;gap:4px;margin:0!important}
.t-pad-pos input{width:70px!important}
.t-adv{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.t-adv>summary{font-weight:700;font-size:.9rem;cursor:pointer;color:var(--wood-dark)}
#t-ralhex{height:36px;padding:2px;border:1px solid #cfc4b5;border-radius:8px;background:#fff;width:100%}
@media (max-width:600px){.t-bases{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pj-views.is-sticky{position:sticky;top:78px}
/* charpente : galerie de modèles */
.ch-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px}
.ch-gallery button{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:5px 5px 7px;border:1.5px solid #ddd3c6;border-radius:10px;background:#fff;cursor:pointer;font:inherit;font-size:.8rem;line-height:1.2;color:#3a3430;text-align:center}
.ch-gallery button:hover{border-color:#b98a5e}
.ch-gallery button.on{border-color:#8a5a2e;box-shadow:0 0 0 2px rgba(138,90,46,.25);background:#fbf6ef;font-weight:600}
.ch-gallery canvas{width:100%;height:auto;aspect-ratio:150/96;border-radius:6px;display:block}
.ch-model-name{font-weight:400;color:#7a6a5a;margin-left:6px}
.ch-pente output{font-weight:700;margin-left:6px;color:#7a4a25}
.ch-pente input[type=range]{width:100%;margin-top:6px}
.ch-np{grid-column:span 2;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
@media (max-width:420px){.ch-gallery{grid-template-columns:repeat(2,1fr)}}
.ch-pente input[type=range]{accent-color:#8a5a2e}
