/* Salle de bains express (préfixe px-) : copie de piscine.css (Piscine 3D express) + compléments en fin de fichier */
@font-face{font-family:"Plus Jakarta Sans";src:url(plus-jakarta-sans-latin.woff2) format("woff2");font-weight:200 800;font-display:swap}
:root{--navy:#052e64;--teal:#0a7a99;--cyan:#0cc0df;--soft:#e3f7fb;--ok:#2e9e3e;--ok-soft:#e8f6ea;--orange:#e67700;--orange-soft:#fff1e0;--ink:#0f1f38;--muted:#5a6b84;--line:#e2e8f1;--bg:#f3f6fb;--bois:#c8964f;--eau:#1d9fc6}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:16.5px;color:var(--ink);background:var(--bg);display:flex;flex-direction:column;overflow:hidden}
svg.i{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
button{font:inherit;cursor:pointer;color:inherit}
/* en-tête */
.px-tete{display:flex;align-items:center;gap:12px;padding:8px 16px;min-height:68px;background:linear-gradient(120deg,var(--navy),#001635 85%);color:#fff;z-index:50;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.px-burger{display:none;width:44px;height:44px;border:0;border-radius:12px;background:rgba(255,255,255,.1);color:#fff;place-items:center}
.px-logo{height:48px;width:auto;border-radius:8px;display:block;background:#fff}
.px-titre{flex:1;min-width:0;display:grid;gap:2px}
.px-titre h1{margin:0;font-size:20px;line-height:1.2;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.px-titre>span{font-size:13.5px;color:#bfe9f2}
.px-gratuit{background:#16a34a;color:#fff;font-weight:800;font-size:11.5px;border-radius:99px;padding:3px 9px;letter-spacing:.3px}
.px-tete-actions{display:flex;gap:8px}
.px-tete-btn{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#dff7fb;border-radius:999px;padding:8px 14px;font-size:14.5px;font-weight:700}
.px-tete-btn svg{color:var(--cyan)}
.px-tete-btn:hover{background:rgba(12,192,223,.18);border-color:var(--cyan)}
/* corps */
.px-corps{flex:1;display:flex;min-height:0;position:relative}
.px-gauche{width:390px;flex:none;display:flex;flex-direction:column;background:var(--bg);border-right:1px solid var(--line);z-index:40;min-height:0}
.px-voile-menu{display:none}
.px-etapes{display:flex;list-style:none;margin:0;padding:8px 8px;gap:3px;background:#fff;border-bottom:1px solid var(--line)}
.px-etapes li{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:12.5px;color:var(--muted);padding:6px 2px;border-radius:10px;white-space:nowrap;cursor:pointer;font-weight:600}
.px-etapes li b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--line);color:var(--muted);font-size:13px}
.px-etapes li:hover{background:var(--soft)}
.px-etapes li.actif{background:var(--soft);color:var(--navy);font-weight:800}
.px-etapes li.actif b{background:var(--teal);color:#fff}
.px-panneau{flex:1;overflow-y:auto;padding:14px 16px 28px;display:grid;gap:14px;align-content:start}
.px-carte{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:12px}
.px-carte h2{margin:0;font-size:17.5px;color:var(--navy);display:flex;align-items:center;gap:8px}
.px-carte h2 svg{color:var(--teal)}
.px-carte p{margin:0}
.px-note{font-size:14px;color:var(--muted);line-height:1.45}
.px-ligne{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.px-champ{display:grid;gap:4px;font-size:14.5px;font-weight:700;color:var(--navy)}
.px-champ .px-saisie{display:flex;align-items:center;border:2px solid #cfd8e3;border-radius:12px;background:#fff;overflow:hidden}
.px-champ .px-saisie:focus-within{outline:3px solid var(--cyan);border-color:var(--teal)}
.px-champ input[type=number]{font:inherit;font-size:18px;font-weight:700;border:0;outline:0;padding:9px 4px 9px 12px;width:100%;min-width:0;color:var(--ink);background:none}
.px-champ .px-unite{padding:0 12px 0 2px;color:var(--muted);font-weight:700;font-size:15px}
.px-champ small{font-weight:500;color:var(--muted);font-size:13px}
/* choix en pastilles (mêmes tailles) */
.px-choix{display:grid;grid-template-columns:repeat(var(--n,2),1fr);gap:8px}
.px-choix button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px solid var(--line);background:#fff;border-radius:14px;padding:10px 6px;font-weight:800;font-size:14.5px;color:var(--navy);min-height:52px;text-align:center;line-height:1.2}
.px-choix button small{font-weight:600;color:var(--muted);font-size:12px}
.px-choix button svg.fig{width:64px;height:34px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.px-choix button:hover{border-color:var(--cyan)}
.px-choix button[aria-pressed="true"]{border-color:var(--teal);background:var(--soft);box-shadow:inset 0 0 0 1px var(--teal)}
.px-puces{display:flex;flex-wrap:wrap;gap:6px}
.px-puces button{border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:6px 12px;font-weight:700;font-size:14px;color:var(--navy)}
.px-puces button[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff}
.px-curseur{display:grid;gap:6px}
.px-curseur-t{display:flex;justify-content:space-between;align-items:baseline;font-weight:700;color:var(--navy);font-size:14.5px}
.px-curseur-t b{font-size:20px}
.px-curseur-t span{color:var(--muted);font-weight:600;font-size:13.5px}
input[type=range]{width:100%;accent-color:var(--teal);height:28px}
.px-info{margin:0;padding:10px 12px;border-radius:12px;font-weight:600;font-size:14.5px;line-height:1.45}
.px-info.ok{background:var(--ok-soft);color:#1d5f28}
.px-info.ko{background:var(--orange-soft);color:#8a4a00}
.px-info.bleu{background:#eaf2fd;color:#123c73;font-weight:500;border-left:4px solid #2f6fd6}
.px-info.bleu b{font-weight:800}
.px-info.bleu small{display:block;margin-top:4px;color:#5a6b84;font-size:12.5px}
.px-chiffres{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.px-chiffre{background:var(--soft);border-radius:14px;padding:10px 6px;display:grid;gap:1px;text-align:center}
.px-chiffre b{font-size:22px;color:var(--navy);line-height:1.15}
.px-chiffre span{font-size:12.5px;color:var(--muted);font-weight:700}
.px-chiffre.bois{background:#f7eedf}
.px-chiffre.bois b{color:#7a4b12}
.px-plan{width:100%;height:auto;display:block;background:#fbfcfe;border:1px solid var(--line);border-radius:12px}
.px-liste{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.px-liste li{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;line-height:1.4}
.px-liste li i{flex:none;width:22px;height:22px;border-radius:50%;background:var(--teal);color:#fff;font-style:normal;font-weight:800;font-size:12.5px;display:grid;place-items:center;margin-top:1px}
.px-liste.pose li{cursor:pointer;border-radius:10px;padding:4px 6px;margin:0 -6px}
.px-liste.pose li:hover{background:var(--soft)}
.px-liste.pose li.actif{background:var(--soft);font-weight:700;color:var(--navy)}
.px-table{width:100%;border-collapse:collapse;font-size:14.5px}
.px-table td{padding:7px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.px-table td:last-child{text-align:right;font-weight:800;color:var(--navy);white-space:nowrap}
.px-table tr.titre td{font-weight:800;color:var(--teal);font-size:13px;text-transform:uppercase;letter-spacing:.4px;border-bottom:2px solid var(--soft);padding-top:12px}
.px-table td small{display:block;color:var(--muted);font-size:12.5px;font-weight:500}
.px-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;border-radius:14px;background:var(--teal);color:#fff;font-weight:800;font-size:16px;padding:13px 12px;text-align:center}
.px-btn.sec{background:#fff;color:var(--teal);border:2px solid var(--teal)}
.px-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.px-sources{font-size:12px;color:var(--muted);line-height:1.5}
.px-sources a{color:inherit}
/* 3D */
.px-scene{position:relative;flex:1;min-width:0;background:linear-gradient(#cfe6f7,#eef5fb 65%);touch-action:none;overflow:hidden}
.px-scene canvas{display:block;width:100%;height:100%}
.px-vues{position:absolute;top:12px;left:12px;display:flex;gap:6px;flex-wrap:wrap}
.px-vues button{border:1px solid var(--line);background:rgba(255,255,255,.95);border-radius:99px;padding:7px 13px;font-weight:700;font-size:13.5px;color:var(--navy);box-shadow:0 2px 6px rgba(0,0,0,.08)}
.px-vues button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.px-zoom{position:absolute;right:12px;top:12px;display:grid;gap:6px}
.px-zoom button{width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--navy);font-size:22px;font-weight:800;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.12)}
/* barre de pose (étapes du chantier) */
.px-pose{position:absolute;left:12px;right:12px;bottom:12px;max-width:760px;margin:0 auto;background:rgba(255,255,255,.97);border-radius:18px;padding:10px 14px 12px;box-shadow:0 6px 24px rgba(5,46,100,.18);display:grid;gap:6px}
.px-pose-t{display:flex;align-items:center;gap:10px}
.px-lecture{width:42px;height:42px;border-radius:50%;border:0;background:var(--teal);color:#fff;display:grid;place-items:center;flex:none}
.px-lecture svg{width:18px;height:18px;fill:currentColor;stroke:none}
.px-pose-nom{flex:1;min-width:0;display:grid}
.px-pose-nom b{color:var(--navy);font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.px-pose-nom span{color:var(--muted);font-size:13.5px;line-height:1.35}
.px-pose-num{font-weight:800;color:var(--teal);font-size:14px;white-space:nowrap}
.px-crans{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);font-weight:700;padding:0 6px;margin-top:-4px}
.px-voile{position:fixed;inset:0;background:rgba(5,20,45,.55);display:grid;place-items:center;padding:16px;z-index:100}
.px-voile[hidden]{display:none}
.px-fenetre{background:#fff;border-radius:18px;max-width:520px;width:100%;max-height:90vh;overflow:auto;padding:18px;display:grid;gap:12px}
.px-fenetre h2{margin:0;color:var(--navy);font-size:20px}
.px-fenetre ol{margin:0;padding-left:22px;display:grid;gap:6px}
/* téléphone et petite tablette */
@media (max-width:880px){
  .px-burger{display:grid}
  .px-tete{gap:8px;padding:6px 10px;min-height:60px}
  .px-logo{height:40px}
  .px-titre h1{font-size:17px}
  .px-titre>span{display:none}
  .px-tete-btn{padding:9px}
  .px-tete-btn span{display:none}
  .px-gauche{position:fixed;top:60px;bottom:0;left:0;width:min(92vw,410px);transform:translateX(-100%);transition:transform .25s ease;box-shadow:0 10px 30px rgba(0,0,0,.25)}
  .px-gauche.ouvert{transform:none}
  .px-voile-menu.ouvert{display:block;position:fixed;inset:60px 0 0 0;background:rgba(5,20,45,.45);z-index:35}
  .px-pose{left:8px;right:8px;bottom:8px;padding:8px 10px 10px}
  .px-pose-nom span{display:none}
  .px-vues{top:8px;left:8px}
  .px-vues button{padding:6px 10px;font-size:13px}
  .px-zoom{top:auto;bottom:118px;right:8px}
}
@media (max-width:400px){.px-logo{height:34px}.px-titre h1{font-size:15.5px}.px-tete-actions{gap:4px}.px-tete-btn{padding:7px}}
@media print{
  body{display:block;overflow:visible;height:auto}
  .px-tete,.px-scene,.px-etapes,.px-actions,.px-voile-menu{display:none!important}
  .px-gauche{position:static;width:auto;transform:none;box-shadow:none;border:0}
  .px-panneau{overflow:visible}
}

a.px-btn{text-decoration:none}
.px-pose-nom span b{color:var(--navy)}
.px-vues button[data-a=coupe][aria-pressed="true"]{background:var(--orange);border-color:var(--orange);color:#fff}
.px-lien{background:none;border:0;padding:0;color:inherit;text-decoration:underline;font:inherit;font-weight:800}
.px-scene{background:linear-gradient(#bcdcf3,#e3eef7 62%)}

.px-tete-btn.px-rapport{background:#16a34a;border-color:#16a34a;color:#fff}
.px-tete-btn.px-rapport svg{color:#fff}
.px-tete-btn.px-rapport:hover{background:#12873d;border-color:#12873d}
.px-etapes li.fait b{background:var(--ok);color:#fff}
.px-bandeau{position:absolute;left:12px;right:12px;top:56px;max-width:560px;margin:0 auto;background:rgba(5,46,100,.92);color:#fff;border-radius:12px;padding:10px 14px;font-size:15.5px;font-weight:700;text-align:center;pointer-events:none}
.px-bandeau:empty{display:none}
.px-lien-bas{background:none;border:0;color:var(--muted);text-decoration:underline;font-size:14px;justify-self:center;padding:4px}
/* téléphone : titre sur une ligne, pastille dessous, « Nouveau » reste en bas de la Liste */
@media (max-width:880px){
  .px-titre h1{white-space:nowrap;font-size:16px;flex-direction:column;align-items:flex-start;gap:3px}
  .px-gratuit{white-space:nowrap;font-size:10.5px;padding:2px 8px}
  .px-tete-btn[data-a=nouveau]{display:none}
}

/* 31 oct. 2026 : boutons de vue de 40 px au doigt, sur une seule ligne qui défile */
@media (max-width:880px){.px-vues{flex-wrap:nowrap;overflow-x:auto;max-width:calc(100% - 66px);scrollbar-width:none}.px-vues button{min-height:40px;flex:none}}
/* 4 nov. 2026 : sens du toit, bouts pignon / croupe */
.px-q{margin:12px 0 6px}
.px-bouts{display:grid;gap:6px}
.px-bouts>div{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:center}
.px-bouts span{font-weight:700;color:var(--navy);font-size:14px}
.px-bouts button{border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:6px 12px;font-weight:700;font-size:14px;color:var(--navy)}
.px-bouts button[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff}
@media (max-width:420px){.px-titre h1{white-space:normal;font-size:14.5px}.px-titre{overflow:hidden}}

/* Piscine 3D express (5 nov. 2026) */
.px-scene{background:linear-gradient(180deg,#cfe6f7 0%,#eef5fa 55%,#e8efe4 100%);transition:background .4s}
.px-scene.nuit{background:linear-gradient(180deg,#050d1f 0%,#0b1a36 60%,#101f2b 100%)}
.px-vues .px-bascule[aria-pressed="true"].eau{background:#0a7a99;border-color:#0a7a99;color:#fff}
.px-vues .px-bascule[aria-pressed="true"].nuit{background:#1b2a4a;border-color:#1b2a4a;color:#ffd75e}
.px-teintes{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px}
.px-teintes button{display:grid;grid-template-columns:26px 1fr;column-gap:8px;align-items:center;text-align:left;border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:6px 8px;font-weight:700;font-size:13.5px;color:var(--navy);line-height:1.2}
.px-teintes button i{grid-row:span 2;width:26px;height:26px;border-radius:7px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.px-teintes button small{font-weight:600;font-size:11.5px;color:var(--muted)}
.px-teintes button[aria-pressed="true"]{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal) inset;background:var(--soft)}
.px-svg{width:100%;height:auto;display:block;background:#fff;border-radius:10px}
.px-legende{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12.5px;font-weight:700;color:var(--muted)}
.px-legende span{display:inline-flex;align-items:center;gap:5px}
.px-legende i{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;color:#fff;font-style:normal;font-size:9.5px;font-weight:800}
.px-legende i.o{background:#fff;box-shadow:inset 0 0 0 1.6px #052e64}
.px-etapes li{font-size:12px}
@media (max-width:880px){.px-vues{gap:4px}.px-vues button{padding:6px 9px;font-size:12.5px}}
/* pose des équipements (5 nov. 2026) */
.px-outils{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.px-outils button{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:8px;text-align:left;border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:7px 9px;font-weight:800;font-size:14px;color:var(--navy);line-height:1.2}
.px-outils button i,.px-eq i{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#fff;font-style:normal;font-weight:800;font-size:13px}
.px-outils button small{display:block;font-weight:600;font-size:11.5px;color:var(--muted)}
.px-outils button[aria-pressed="true"]{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange) inset;background:var(--orange-soft)}
.px-eqliste{display:grid;gap:4px}
.px-eq{display:grid;grid-template-columns:28px 1fr 30px;gap:8px;align-items:center;padding:5px 6px;border-radius:10px;background:#f7f9fc}
.px-eq span{display:grid;font-size:13.5px;color:var(--navy);line-height:1.25}
.px-eq small{color:var(--muted);font-size:12px;font-weight:600}
.px-eq em{font-style:normal;color:#8a4a00;font-size:12px;font-weight:700}
.px-eq.alerte{background:var(--orange-soft)}
.px-eq button{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:18px;color:var(--muted);line-height:1}
#pxPlanSvg{touch-action:none}
#pxPlanSvg .px-sym{cursor:grab}
.px-scene.pose canvas{cursor:crosshair}
.px-bandeau:empty{display:none}
#pxPlanSvg .px-sym:hover circle,#pxPlanSvg .px-sym.allume circle{stroke:#22d3ee;stroke-width:6}
.px-eq:hover{box-shadow:0 0 0 2px #22d3ee inset}

/* Salle de bains express : compléments (6 nov. 2026) */
.px-infobulle{position:absolute;z-index:6;pointer-events:none;max-width:270px;background:#fff;border:1px solid #d5dee9;border-radius:10px;padding:8px 10px;box-shadow:0 6px 20px rgba(15,31,56,.14);font-size:13px;line-height:1.35;display:grid;gap:2px}
.px-infobulle[hidden]{display:none}
.px-infobulle b{color:#0f1f38}.px-infobulle span{color:#5a6b84}
.px-infobulle .st-ok{color:#1d7a2c;font-weight:800}.px-infobulle .st-cond{color:#b35c00;font-weight:800}.px-infobulle .st-ko{color:#c62828;font-weight:800}
.px-ligne3{grid-template-columns:1fr 1fr 1fr}
.px-ligne3 .px-champ input[type=number]{font-size:17px;padding-left:9px}
.px-v{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-style:normal;font-weight:800;font-size:12px;flex:none;color:#fff}
.px-v.v0{background:#e53935}.px-v.v1{background:#fb8c00}.px-v.v2{background:#fdd835;color:#3d2f00}.px-v.v3{background:#e9f1fa;color:#052e64;box-shadow:inset 0 0 0 1.5px #9fb3cc}.px-v.vc{background:#8bc79a}
.px-legende-v{gap:6px 14px}
.px-legende-v span{gap:6px;font-size:13px;color:var(--navy)}
.px-vol{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:4px}
.px-vol-t{display:flex;align-items:center;gap:8px}.px-vol-t b{color:var(--navy);font-size:15px}.px-vol-t small{margin-left:auto;font-weight:800;color:var(--teal);font-size:13px}
.px-vol p{font-size:14px;line-height:1.4;color:var(--ink)}
.px-vol p.px-vol-a{color:var(--muted);font-size:13.5px}
.px-outils button{min-height:46px}
.px-eq{grid-template-columns:28px 1fr 30px;align-items:start;cursor:pointer;border:1.5px solid transparent}
.px-eq i{margin-top:2px}
.px-eq b{font-size:14px}
.px-eq small b{font-size:12px;color:var(--navy)}
.px-eq em{color:var(--muted);font-weight:600}
.px-eq.st-ok{background:#f1f8f2}.px-eq.st-cond{background:#fff4e6}.px-eq.st-ko{background:#fdecec}
.px-eq.st-ko em{color:#a32020}.px-eq.st-cond em{color:#8a4a00}
.px-eq.sel{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal) inset}
.px-opt{font-weight:700;color:var(--teal);font-size:12px}
.px-mini-choix{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.px-mini-choix button{border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:5px 10px;font-weight:700;font-size:13px;color:var(--navy)}
.px-mini-choix button[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff}
.px-haut{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:13px;font-weight:700;color:var(--navy)}
.px-haut input{width:74px;font:inherit;font-size:15px;border:1.5px solid #cfd8e3;border-radius:8px;padding:4px 6px}
.px-coches{list-style:none;padding:0;margin:0}
.px-coches li{padding:7px 0 7px 30px;position:relative;font-size:14px;line-height:1.4;border-top:1px dashed #edf1f6}
.px-coches li:first-child{border-top:0}
.px-coches li:before{content:"";position:absolute;left:4px;top:9px;width:16px;height:16px;border-radius:50%;background:#2e9e3e}
.px-coches li.ko:before{background:#d32f2f}.px-coches li.cond:before{background:#e67700}.px-coches li.av:before{background:#fff;box-shadow:inset 0 0 0 3px #2f6fd6}
.px-legende-c{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12.5px;color:var(--muted);font-weight:700;margin:0}
.px-legende-c span{display:inline-flex;align-items:center;gap:5px}
.px-legende-c i{width:12px;height:12px;border-radius:50%;background:#2e9e3e}
.px-legende-c i.ko{background:#d32f2f}.px-legende-c i.cond{background:#e67700}.px-legende-c i.av{background:#fff;box-shadow:inset 0 0 0 2.5px #2f6fd6}
.px-fin{text-align:center}
.px-pose{gap:6px}
.px-pose-msg{margin:0;font-size:14px;line-height:1.4;color:var(--muted)}
.px-pose-msg b{color:var(--navy)}
.px-pose-msg.st-ok b{color:#1d7a2c}.px-pose-msg.st-cond b{color:#b35c00}.px-pose-msg.st-ko b{color:#c62828}
.px-scene{background:linear-gradient(180deg,#dfe9f3 0%,#eef3f8 60%,#f4f6f9 100%)}
.px-vues .px-bascule[aria-pressed="false"]{background:rgba(255,255,255,.95);color:var(--muted)}
.px-vues .px-bascule[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff}
@media (max-width:880px){
  .px-pose-msg{font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .px-legende-v span{font-size:12px}
  .px-zoom{bottom:130px}
}
@media (max-width:480px){
  .px-legende-v{flex-wrap:nowrap;gap:8px}
  .px-legende-v span{font-size:11.5px;gap:4px;white-space:nowrap}
  .px-legende-v .px-v{width:18px;height:18px;font-size:10.5px}
}

/* retours du test du 6 nov. 2026 : téléphone */
.px-panneau .px-carte{min-width:0;max-width:100%;box-sizing:border-box}
.px-choix,.px-choix button{min-width:0}
canvas.px-plan{display:block;max-width:100%;height:auto}
@media (pointer:coarse){
  .px-lien{min-height:44px;padding:10px 8px}
  .px-panneau button:not(.px-mini){min-height:40px}
}
.px-panneau{grid-template-columns:minmax(0,1fr)}.px-carte{grid-template-columns:minmax(0,1fr)}.px-legende{flex-wrap:wrap}
/* Agencement express (6 nov. 2026) */
.ag-cat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ag-cat button{border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:9px 10px;text-align:left;font-weight:700;color:var(--navy);font-size:14px;display:grid;gap:2px;min-height:48px;cursor:pointer}
.ag-cat button:hover{border-color:var(--teal)}
.ag-cat small{font-weight:600;color:var(--muted);font-size:12px}
.ag-autres summary{cursor:pointer;font-weight:700;color:var(--teal);padding:8px 0}
.ag-liste{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ag-liste li{display:flex;align-items:center;gap:6px;border-radius:10px;padding:2px 4px}
.ag-liste li.sel{background:#e3f7fb}
.ag-liste li.ko i{color:#d32f2f;font-style:normal;font-size:12px}
.ag-liste li button:first-child{flex:1;text-align:left;border:0;background:none;font-weight:600;color:var(--navy);padding:8px 4px;cursor:pointer;font-size:14.5px}
.ag-outils{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 24px rgba(5,46,100,.18);padding:10px 12px;display:flex;flex-direction:column;gap:8px;z-index:5;width:min(440px,calc(100% - 24px))}
.ag-outils[hidden]{display:none}
.ag-o-tete{display:flex;align-items:baseline;gap:8px;min-width:0}
.ag-o-tete b{color:var(--navy);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-o-tete small{color:#5b6b7f;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.ag-x{border:0;background:none;font-size:22px;line-height:1;color:#5b6b7f;cursor:pointer;padding:0 4px;margin-left:auto}
.ag-params{display:flex;flex-direction:column;gap:6px}.ag-params[hidden]{display:none}
.ag-par{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13.5px;color:var(--navy);font-weight:600}
.ag-par .px-saisie{max-width:130px}
.ag-seg{display:flex;border:1.5px solid var(--line);border-radius:99px;overflow:hidden}
.ag-seg button{border:0;background:#fff;padding:7px 12px;font-weight:700;color:var(--navy);cursor:pointer;min-height:36px;font-size:13px}
.ag-seg button[aria-pressed="true"]{background:var(--navy);color:#fff}
.ag-o-act{display:flex;gap:6px}
.ag-o-act button{flex:1;border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:8px 10px;font-weight:700;color:var(--navy);cursor:pointer;min-height:40px;white-space:nowrap}
.ag-o-act button.ko{color:#d32f2f}
.ag-mod{flex-wrap:wrap;border-radius:12px}.ag-mod button{flex:1 1 auto}

/* 7 nov. 2026, retours de Samir : catalogue en miniatures, croix propres, fiche à gauche, couleur du meuble */
.ag-cat{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.ag-cat button{padding:5px 5px 8px;text-align:center;align-content:start;gap:2px;font-size:12.5px;line-height:1.2;min-height:0}
.ag-cat button span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ag-cat button small{font-size:11px}
.ag-cat img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;border-radius:8px;background:linear-gradient(180deg,#f7f9fc,#edf1f6);margin-bottom:4px;opacity:.35;transition:opacity .25s}
.ag-cat img.ok{opacity:1}
.ag-cat button:hover img{background:linear-gradient(180deg,#eef9fc,#e1f3f8)}
.ag-x,.ag-liste .px-mini{display:grid;place-items:center;flex:none;width:30px;height:30px;min-height:0!important;padding:0;margin:0;border:0;border-radius:50%;background:#eef2f7;color:#5b6b7f;cursor:pointer;transition:background .15s,color .15s}
.ag-x svg,.ag-liste .px-mini svg{width:14px;height:14px;stroke-width:2.4}
.ag-x{margin-left:auto}
.ag-x:hover{background:var(--soft);color:var(--navy)}
.ag-liste .px-mini:hover{background:#fdecec;color:#d32f2f}
.ag-o-tete{align-items:center}
.ag-o-act button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.ag-o-act button svg{width:17px;height:17px}
.ag-outils.ag-gauche{position:static;transform:none;left:auto;bottom:auto;width:auto;flex:none;margin:12px 16px 0;border:1.5px solid var(--teal);box-shadow:0 4px 14px rgba(5,46,100,.10);max-height:52vh;overflow-y:auto}
.ag-par-col{flex-direction:column;align-items:flex-start;gap:6px}
.ag-coul{display:flex;flex-wrap:wrap;gap:6px}
.ag-coul button{width:28px;height:28px;padding:0;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1.5px #cfd8e3;cursor:pointer;min-height:0!important}
.ag-coul button:hover{box-shadow:0 0 0 2px var(--cyan)}
.ag-coul button[aria-pressed="true"]{box-shadow:0 0 0 2.5px var(--teal)}
.ag-coul .ag-orig{background:linear-gradient(135deg,#fff 44%,#d32f2f 44%,#d32f2f 56%,#fff 56%)}

/* champs chiffrés de la fiche (Longueur, Largeur, Hauteur, allège) : même habillage que les dimensions de la pièce */
.ag-par .px-saisie{display:flex;align-items:center;flex:none;width:122px;max-width:122px;border:2px solid #cfd8e3;border-radius:10px;background:#fff;overflow:hidden}
.ag-par .px-saisie:focus-within{outline:3px solid var(--cyan);border-color:var(--teal)}
.ag-par input[type=number]{font:inherit;font-size:16px;font-weight:700;color:var(--ink);border:0;outline:0;background:none;padding:6px 2px 6px 10px;width:100%;min-width:0}
.ag-par .px-unite{padding:0 10px 0 2px;color:var(--muted);font-weight:700;font-size:14px}
