/* doc-project | public/assets/css/components/modal-3d.css | Met en page la modal 3D, son canvas manipulable, la longueur réelle superposée et la barre viewer-toolbar. | Expose: modal 3D, longueur réelle, curseurs grab/grabbing | Dépend de: modal.css | Impacte: configurateur et interaction caméra tactile/souris | Tables: aucune */
.modal--3d{width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:none}.modal--3d .modal__panel{height:100%;max-height:none}.viewer-3d{position:relative;display:grid;place-items:center;min-height:520px;overflow:hidden;border-radius:.8rem;background:radial-gradient(circle,#394650,#151c21);color:#fff}.viewer-3d canvas{width:100%;height:100%;min-height:520px}.viewer-3d__toolbar{position:absolute;left:1rem;top:1rem;display:flex;gap:.4rem;z-index:2}
.viewer-3d__length{position:absolute;right:1rem;top:1rem;z-index:3;margin:0;padding:.55rem .75rem;border:1px solid rgba(255,255,255,.25);border-radius:.45rem;background:rgba(15,21,25,.82);color:#fff;font-size:.82rem;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.2);pointer-events:none}.viewer-3d__toolbar button{padding:.5rem .7rem;border:1px solid rgba(255,255,255,.28);border-radius:.4rem;background:rgba(255,255,255,.12);color:#fff}.viewer-3d__fallback{display:grid;place-items:center;width:80%;height:75%;perspective:1000px}.viewer-3d__solid{width:65%;height:35%;border:2px solid rgba(255,255,255,.5);background:linear-gradient(145deg,#dfe4e7,#63717b);transform:rotateX(58deg) rotateZ(-30deg);box-shadow:30px 35px 45px rgba(0,0,0,.35)}

/* Le template place le viewer-3d puis viewer-toolbar dans modal__panel. */
.modal--3d .modal__panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.modal--3d .viewer-3d{min-height:420px;height:100%}
.modal--3d canvas{display:block;width:100%;height:100%;min-height:420px;border-radius:.8rem;background:radial-gradient(circle,#394650,#151c21);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.modal--3d canvas.is-dragging{cursor:grabbing}
.viewer-toolbar{display:flex;justify-content:center;gap:.4rem;flex-wrap:wrap;padding-top:.7rem}
.viewer-toolbar button{min-width:42px;padding:.5rem .7rem;border:1px solid var(--ink-300);border-radius:.4rem;background:#fff;color:var(--ink-800)}
.viewer-toolbar button:hover,.viewer-toolbar button:focus-visible{border-color:var(--accent);background:var(--accent-soft)}
@media(max-width:620px){.modal--3d .viewer-3d,.modal--3d canvas{min-height:300px}}