.glbv{max-width:920px;margin:0 auto}.glbv-drop{border:2px dashed var(--dv-violet-light);border-radius:16px;padding:48px 24px;text-align:center;cursor:pointer;background:var(--dv-bg-soft);transition:border-color .15s,background .15s}.glbv-drop:hover,.glbv-drop.is-over{border-color:var(--dv-violet);background:#EFEBFE}.glbv-drop.is-done{padding:16px 24px}.glbv-drop-title{font-weight:600;margin:0 0 8px}.glbv-drop-hint{color:var(--dv-grey);margin:0;font-size:.95em}.glbv-error{margin-top:16px;padding:12px 16px;border-radius:10px;background:#FDE8E8;color:#9B1C1C;font-size:.95em}.glbv-wrap{margin-top:24px;display:grid;gap:16px}.glbv-canvas{width:100%;height:420px;border-radius:16px;overflow:hidden;background:var(--dv-bg-soft)}.glbv-canvas canvas{display:block;width:100%;height:100%}.glbv-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.glbv-toolbar-actions{display:flex;gap:8px}.glbv-scene-presets{display:flex;gap:8px}.glbv-scene-presets button[aria-pressed="true"],#glbRotateToggle[aria-pressed="true"]{background:var(--dv-violet);color:#fff;border-color:var(--dv-violet)}.glbv-rotate{display:grid;gap:8px;padding:12px 16px;border-radius:12px;background:var(--dv-bg-soft)}.glbv-rotate-row{display:flex;align-items:center;gap:10px}.glbv-rotate-label{flex:1 1 auto;font-size:.92em}.glbv-rotate-row button{flex:0 0 auto;padding:4px 12px}.glbv-pieces{display:grid;gap:4px;max-height:220px;overflow-y:auto;padding:8px 4px}.glbv-piece-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px}.glbv-piece-row:hover{background:var(--dv-bg-soft)}.glbv-piece-row.is-hidden .glbv-piece-label{color:var(--dv-grey-light);text-decoration:line-through}.glbv-piece-eye{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:50%;background:transparent;color:var(--dv-violet-dark);cursor:pointer}.glbv-piece-row.is-hidden .glbv-piece-eye{color:var(--dv-grey-light)}.glbv-piece-eye:hover{background:#EFEBFE}.glbv-piece-label{font-size:.92em}.glbv-info{display:flex;flex-wrap:wrap;gap:24px;padding:16px 20px;border-radius:12px;background:var(--dv-bg-soft)}.glbv-info-row{display:flex;flex-direction:column;gap:2px}.glbv-info-key{font-size:.82em;color:var(--dv-grey)}.glbv-info-val{font-weight:600}.glbv-info-note{flex:1 1 100%;margin:0;font-size:.85em;color:var(--dv-grey)}.glbv-report{margin-top:8px;padding:16px 20px;border-radius:12px;border:1px solid #E6E1FA}.glbv-report-summary{font-weight:600;margin-bottom:8px}.glbv-report-summary.is-ok{color:#1B7A3D}.glbv-report-summary.is-issue{color:#9B1C1C}.glbv-report-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:280px;overflow-y:auto}.glbv-report-item{display:flex;gap:8px;align-items:baseline;font-size:.92em}.glbv-report-tag{flex:0 0 auto;font-size:.78em;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:#EFEBFE;color:var(--dv-violet-dark)}.glbv-report-item.sev-0 .glbv-report-tag{background:#FDE8E8;color:#9B1C1C}.glbv-report-item.sev-1 .glbv-report-tag{background:#FEF3C7;color:#92400E}.glbv-report-more{color:var(--dv-grey);font-size:.9em}.glbv-download{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.glbv-download-note{font-size:.9em;color:var(--dv-grey)}.glbv-dark .glbv-canvas{background:var(--dv-violet-bg)}.glbv-step{background:#fff;border-radius:16px;padding:28px 24px;text-align:center}.glbv-step .dv-icon{margin:0 auto 16px}