.viewer-section>.viewer-controls,.viewer-section>.accessories-status{display:none}
.has-compact-viewer>.mobile-viewer-dock{max-width:760px;margin:0 auto 20px;border:1px solid #e3e5e7;border-radius:14px;width:calc(100% - 32px)}
.has-compact-viewer>.mobile-viewer-dock button,.has-compact-viewer>.mobile-viewer-dock select{font:600 14px/1.3 'DM Sans',Arial,sans-serif;color:#242a31}
.has-compact-viewer>.mobile-viewer-dock button[aria-pressed=true],.has-compact-viewer>.mobile-viewer-dock button[aria-expanded=true]{color:#a5111a;background:#fff0f1;border-color:#d71920}
.has-compact-viewer>.mobile-viewer-dock button:focus-visible,.has-compact-viewer>.mobile-viewer-dock select:focus-visible{outline:3px solid #d71920;outline-offset:-3px}
.has-compact-viewer>.mobile-viewer-launch{display:block;width:calc(100% - 32px);max-width:760px;min-height:44px;margin:0 auto 12px;padding:10px 16px;border:1px solid #d7dde1;border-radius:8px;background:#fff;color:#242a31;font:600 14px/1.5 'DM Sans',Arial,sans-serif}
.viewer-preview{position:absolute;inset:0;z-index:1;background:#fff;display:grid;place-items:center;pointer-events:none}
.viewer-preview img{width:100%;height:100%;max-height:100%;object-fit:contain;min-height:0}
.box-3d[data-artwork-ready=true]>.viewer-preview{display:none}

/* Painted with the HTML, before the model or its controls module downloads. */
.viewer-loading{position:relative;width:min(330px,calc(100% - 32px));margin:12px auto 16px;flex:none;padding:14px 18px;border:1px solid #eadfe0;border-radius:12px;background:#fffffff5;box-shadow:0 4px 20px #17212b10;text-align:center;font:600 14px/1.5 'DM Sans',Arial,sans-serif;color:#242a31;pointer-events:none}
.viewer-loading[hidden]{display:none}.viewer-loading p{margin:0 0 9px}
.viewer-loading-track{height:6px;border-radius:4px;background:#f6e4e5;overflow:hidden}
.viewer-loading-fill{display:block;width:0;height:100%;background:#d71920;border-radius:4px;transition:width .2s linear}
.viewer-loading-percent{font-variant-numeric:tabular-nums;white-space:nowrap}
.viewer-loading p{display:flex;justify-content:space-between;gap:12px;text-align:left}
.viewer-status[hidden]{display:none!important}
.box-3d[data-load-state=error] .viewer-loading-track{display:none}
.box-3d[data-artwork-error=true]>.viewer-preview{display:none}
.mobile-viewer-dock button:disabled,.mobile-viewer-dock select:disabled{opacity:.6;cursor:wait}
@media(prefers-reduced-motion:reduce){.viewer-loading-fill{transition:none}}

/* Keep loading feedback in its own row, outside the canvas and preview. */
.mobile-viewer-stage{display:grid;grid-template-rows:minmax(0,1fr) auto}
.mobile-viewer-stage>.box-3d{min-height:0;grid-row:1}
.mobile-viewer-stage>.viewer-loading{grid-row:2}
