/* viewer.css */ /* Widget container styling */ .ply-widget-container { position: relative; width: 100%; height: 0; /* padding-bottom is set dynamically inline for aspect ratio */ } /* When in fake fullscreen mode (iOS fallback) */ .ply-widget-container.fake-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; padding-bottom: 0 !important; z-index: 9999 !important; } /* GIF Preview styling */ .gif-preview-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 1px solid #474558; border-radius: 10px; overflow: hidden; cursor: pointer; } .gif-preview-container img { width: 100%; height: 100%; object-fit: cover; } /* Viewer Container styling */ .viewer-container { display: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: #FEFEFD; border: 1px solid #474558; border-radius: 10px; overflow: hidden; box-sizing: border-box; } /* Canvas fills the viewer container */ .ply-canvas { width: 100%; height: 100%; display: block; } /* Progress dialog styling (centered) */ .progress-dialog { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border: none; background: rgba(255,255,255,0.9); padding: 20px; border-radius: 5px; z-index: 1000; display: none; } /* Menu (instructions) content styling */ .menu-content { display: none; position: absolute; top: 70px; right: 15px; background: #FFFEF4; border: 1px solid #474558; border-radius: 5px; padding: 10px; font-size: 15px; line-height: 1.4; color: #474558; } /* Button styling */ .widget-button { position: absolute; width: 45px; height: 45px; background-color: #FFFEF4; border: 1px solid #474558; border-radius: 50%; cursor: pointer; font-size: 14px; color: #474558; display: flex; align-items: center; justify-content: center; } /* Specific button positions for desktop */ .close-btn { top: 17px; left: 15px; font-family: sans-serif; } .fullscreen-toggle { top: 17px; right: 15px; } .help-toggle { top: 17px; right: 70px; font-size: 22px; } /* Reset camera button repositioned */ .reset-camera-btn { top: 17px; right: 120px; font-size: 22px; line-height: normal; padding: 0; } /* New toggle-quality button: - Placed to the left of the reset camera button. - Longer horizontally to fit the text. - Maintains the same height and uses horizontal padding for extra space. */ .toggle-quality-btn { top: 17px; right: 170px; min-width: 170px; /* Ensures the text fits */ height: 45px; padding: 0 10px; border-radius: 22.5px; /* Half the height for a pill shape */ text-align: center; white-space: nowrap; } /* Adjust the reset icon position */ .reset-icon { display: inline-block; transform: translateY(-3px); } /* --- Mobile adjustments: when the widget container has the "mobile" class --- */ .ply-widget-container.mobile .widget-button { width: 30px; /* 45px scaled down */ height: 30px; font-size: 10px; } .ply-widget-container.mobile .help-toggle { font-size: 15px; /* Scaled down from 22px */ } /* Adjust button positions for mobile */ .ply-widget-container.mobile .close-btn { top: 11px; /* 17px scaled down */ left: 10px; /* 15px scaled down */ } .ply-widget-container.mobile .fullscreen-toggle { top: 11px; right: 10px; } .ply-widget-container.mobile .help-toggle { top: 11px; right: 47px; } /* Mobile reset camera button remains at right:82px */ .ply-widget-container.mobile .reset-camera-btn { top: 11px; right: 82px; } /* Mobile toggle-quality button: - Placed to the left of the reset camera button. - Has a longer (wider) layout to accommodate text. */ .ply-widget-container.mobile .toggle-quality-btn { top: 11px; right: 110px; min-width: 80px; height: 30px; padding: 0 5px; border-radius: 15px; text-align: center; white-space: nowrap; font-size: 10px; }