/* ============================================================
   MESH PREVIEW — the model drawn on a canvas
   ============================================================ */
.meshblock{margin-top:20px}
.meshblock + .meshblock{padding-top:20px;border-top:1px solid var(--fg-hairline)}
.meshfile{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}
.meshfile__n{font-size:14px;color:var(--fg-ink);overflow-wrap:anywhere}
.meshfile__i{font-family:var(--font-mono);font-size:12px;color:var(--fg-steel-500);white-space:nowrap}
.scan-more{font-size:13.5px;line-height:1.7;color:var(--fg-ink-muted);margin-top:14px;
  padding:12px 14px;background:var(--fg-mist-100);border-radius:var(--r-sm)}
.meshview{position:relative;margin:18px 0 4px;border:1px solid var(--fg-hairline);
  border-radius:var(--r-sm);overflow:hidden;background:var(--fg-mist-100)}
.meshview canvas{display:block;width:100%;height:auto;cursor:grab;touch-action:none}
.meshview canvas.turning{cursor:grabbing}
.meshview.is-drawing::after{content:"";position:absolute;inset:0;background:var(--fg-mist-100)}
.meshview__views{position:absolute;inset-block-start:10px;inset-inline-start:12px;display:flex;gap:6px}
.meshview__views button{font-family:inherit;font-size:12.5px;padding:6px 12px;cursor:pointer;
  background:rgba(255,255,255,.9);border:1px solid var(--fg-hairline);border-radius:100px;
  color:var(--fg-ink-muted);transition:background .15s,color .15s,border-color .15s}
.meshview__views button:hover{border-color:var(--fg-navy-600);color:var(--fg-navy-800)}
.meshview__views button.on{background:var(--fg-navy-800);border-color:var(--fg-navy-800);color:#fff}
.meshview__hint{position:absolute;inset-block-end:10px;inset-inline-end:12px;
  font-size:12px;color:var(--fg-steel-500);background:rgba(255,255,255,.86);
  border:1px solid var(--fg-hairline);border-radius:100px;padding:4px 10px;pointer-events:none}
