.model-widget{--widget-width: 100%;--widget-height: 800px;--widget-border-radius: 8px;--widget-background: #000;--loading-color: #f85807;--hotspot-color: #ff6b6b;--hotspot-hover-color: #ff5252;--hotspot-size: 12px;--hotspot-hover-scale: 1.2;--hotspot-opacity: .8;--hotspot-hover-opacity: 1;--tooltip-background: rgba(0, 0, 0, .9);--tooltip-color: white;--tooltip-padding: 12px;--tooltip-border-radius: 6px;--tooltip-max-width: 250px;--tooltip-font-size: 14px;--tooltip-z-index: 1000;--nav-background: rgba(255, 255, 255, .95);--nav-color: #333;--nav-button-size: 40px;--nav-button-background: #f8f9fa;--nav-button-hover-background: #e9ecef;--nav-button-disabled-background: #f8f9fa;--nav-button-disabled-color: #ccc;--nav-border-radius: 8px;--nav-padding: 12px;--nav-z-index: 100;--animation-duration: .3s;--animation-easing: ease-out;--loading-color: #6c757d;--error-color: #dc3545;--error-background: #f8d7da;position:relative;width:var(--widget-width);height:var(--widget-height);border-radius:var(--widget-border-radius);background:var(--widget-background);overflow:hidden;display:flex;flex-direction:column}.model-widget .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.model-widget .widget-header{display:flex;align-items:center;gap:8px;padding:8px;background:var(--widget-background-header, var(--widget-background));z-index:10;flex-shrink:0;flex-wrap:wrap}.model-widget .widget-header .custom-button-slot{display:flex;flex:1;gap:4px;flex-wrap:wrap}.model-widget .widget-header .custom-button-slot:first-child{justify-content:flex-start}.model-widget .widget-header .custom-button-slot:last-child{justify-content:flex-end}.model-widget .widget-content{flex:1;position:relative;overflow:hidden;background:var(--widget-background, #000);border-block:1px solid var(--widget-background, #000)}.model-widget .zoom-controls{position:absolute;bottom:16px;right:16px;z-index:20;display:flex;flex-direction:column;gap:12px}.model-widget .zoom-controls--disabled{pointer-events:none}.model-widget .zoom-controls__button{display:flex;align-items:center;justify-content:center;padding:8px;background:transparent;border:none;color:inherit;cursor:pointer;line-height:0}.model-widget .zoom-controls__button:disabled{opacity:.4;cursor:not-allowed}.model-widget .widget-footer{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;background:var(--widget-background-footer, var(--widget-background));z-index:10;flex-shrink:0;min-height:56px;flex-wrap:wrap}.model-widget .widget-footer .custom-button-slot{display:flex;flex:1;gap:4px;justify-content:center;flex-wrap:wrap}.model-widget .model-widget-viewer{width:100%;height:100%}.model-widget .model-widget-canvas{width:100%;height:100%;display:block}.model-widget.loading{display:flex;align-items:center;justify-content:center}.model-widget.loading .loading-spinner{color:var(--loading-color);font-size:16px;text-align:center}.model-widget.loading .loading-spinner:after{content:"";display:block;width:24px;height:24px;margin:8px auto;border:2px solid var(--loading-color);border-radius:50%;border-top-color:transparent;animation:spin 1s linear infinite}.model-widget .loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#fffffff2;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.model-widget .loading-overlay .loading-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:280px}.model-widget .loading-overlay .loading-content .loading-spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #007cba;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.model-widget .loading-overlay .loading-content .loading-text{color:#333;font-size:16px;font-weight:500;margin-bottom:16px;min-height:24px;animation:fadeIn .3s ease-in-out}.model-widget .loading-overlay .loading-content .loading-progress{width:200px;height:4px;background:#e0e0e0;border-radius:2px;overflow:hidden;margin-bottom:8px}.model-widget .loading-overlay .loading-content .loading-progress .loading-progress-bar{height:100%;background:linear-gradient(90deg,#007cba,#00a0d2);transition:width .3s ease-out;border-radius:2px}.model-widget .loading-overlay .loading-content .loading-percentage{color:#666;font-size:14px;font-weight:600;min-height:20px}.model-widget.error{display:flex;align-items:center;justify-content:center;background:var(--error-background)}.model-widget.error .error-message{text-align:center;color:var(--error-color);padding:20px}.model-widget.error .error-message h3{margin:0 0 8px;font-size:18px}.model-widget.error .error-message p{margin:0;font-size:14px;opacity:.8}.hotspot-overlay-2d{position:absolute;width:var(--hotspot-size, 32px);height:var(--hotspot-size, 32px);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:var(--tooltip-z-index, 1000);padding:0;margin:0;-webkit-appearance:none;border:0;background:transparent}.hotspot-overlay-2d .hotspot-icon{font-size:inherit;line-height:1;pointer-events:none;width:100%;height:100%}.hotspot-overlay-2d .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hotspot-overlay-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .4s ease-in-out}.hotspot-overlay-container.visible{opacity:1}.hotspot-overlay-container.hidden{opacity:0}.hotspot-overlay-container.no-animation{transition:none}.hotspot-overlay-container.no-animation.visible{opacity:1}.hotspot-overlay-container.no-animation.hidden{opacity:0}.hotspot-overlay-container *{pointer-events:auto}.hotspot-tooltip-wrapper{position:absolute;pointer-events:none}.hotspot-tooltip-wrapper .hotspot-tooltip{pointer-events:auto}.hotspot-tooltip{position:relative;z-index:var(--tooltip-z-index);pointer-events:auto;opacity:0;transition:opacity var(--animation-duration) var(--animation-easing)}.hotspot-tooltip.visible{opacity:1}.hotspot-tooltip .hotspot-tooltip-content{position:relative}.hotspot-tooltip .hotspot-tooltip-close{position:absolute;top:12px;right:12px;width:24px;height:24px;border:none;background:transparent;color:#999;border-radius:4px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.hotspot-tooltip .hotspot-tooltip-close:hover{background:#0000000d;color:#333}.hotspot-tooltip .hotspot-tooltip-title{margin:0 0 16px;font-size:18px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#333;line-height:1.2;padding-right:32px}.hotspot-tooltip .hotspot-tooltip-description{margin:0 0 20px;line-height:1.6;color:#666;font-size:14px}.hotspot-tooltip .hotspot-tooltip-link{background:#ff6b35;color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.hotspot-tooltip .hotspot-tooltip-link:hover{background:#e55a2b;transform:translateY(-1px);box-shadow:0 4px 12px #ff6b354d}.hotspot-tooltip.hotspot-tooltip--right:after{top:50%;left:0;transform:translate(-100%,-50%);border:8px solid transparent;border-right-color:#fff;filter:drop-shadow(-2px 0 4px rgba(0,0,0,.1))}.hotspot-tooltip.hotspot-tooltip--left:after{top:50%;left:100%;transform:translateY(-50%);border:8px solid transparent;border-left-color:#fff;filter:drop-shadow(2px 0 4px rgba(0,0,0,.1))}.hotspot-tooltip.hotspot-tooltip--top:after{top:100%;left:50%;transform:translate(-50%);border:8px solid transparent;border-top-color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.hotspot-tooltip.hotspot-tooltip--bottom:after{top:0;left:50%;transform:translate(-50%,-100%);border:8px solid transparent;border-bottom-color:#fff;filter:drop-shadow(0 -2px 4px rgba(0,0,0,.1))}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:var(--hotspot-opacity);transform:scale(1)}50%{opacity:var(--hotspot-hover-opacity);transform:scale(var(--hotspot-hover-scale))}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.model-widget{--tooltip-max-width: 200px;--tooltip-font-size: 13px;--hotspot-size: 28px}.hotspot-overlay-2d{font-size:16px}}.view-navigation{display:flex;align-items:center;justify-content:space-between;background:transparent;color:var(--nav-color);padding:0;border-radius:var(--nav-border-radius);z-index:var(--nav-z-index)}.view-navigation .nav-button{width:var(--nav-button-size);height:var(--nav-button-size);border:none;border-radius:50%;background:var(--nav-button-background);color:var(--nav-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--animation-duration) var(--animation-easing);position:relative}.view-navigation .nav-button svg{width:20px;height:20px;transition:opacity var(--animation-duration) var(--animation-easing)}.view-navigation .nav-button:hover:not(.disabled){background:var(--nav-button-hover-background);transform:scale(1.05)}.view-navigation .nav-button.disabled{background:var(--nav-button-disabled-background);color:var(--nav-button-disabled-color);cursor:not-allowed;opacity:.5}.view-navigation .nav-button.disabled svg{opacity:.3}.view-navigation .nav-button.disabled[title*="Animation in progress"]{position:relative}.view-navigation .nav-button.disabled[title*="Animation in progress"]:after{content:"";position:absolute;width:16px;height:16px;border:2px solid transparent;border-top:2px solid var(--nav-color);border-radius:50%;animation:spin 1s linear infinite;opacity:.6}.view-navigation .nav-button.disabled[title*="Animation in progress"] svg{opacity:.2}.view-navigation .view-info{display:flex;flex-direction:column;align-items:center;flex:1;margin:0 16px}.view-navigation .view-info .view-name{font-weight:600;font-size:14px;margin-bottom:2px;text-align:center;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-navigation .view-info .view-counter{font-size:12px;opacity:.7;font-weight:500}@media (max-width: 768px){.model-widget{--tooltip-max-width: 200px;--tooltip-font-size: 13px;--nav-button-size: 36px;--nav-padding: 10px}.view-navigation .view-info{margin:0 12px}.view-navigation .view-info .view-name{font-size:13px;max-width:150px}.view-navigation .view-info .view-counter{font-size:11px}}@media (max-width: 480px){.model-widget{--tooltip-padding: 8px;--tooltip-max-width: 180px;--tooltip-font-size: 12px;--nav-button-size: 32px;--nav-padding: 8px;--hotspot-size: 24px}.hotspot-overlay-2d{font-size:14px}.view-navigation .view-info{margin:0 8px}.view-navigation .view-info .view-name{font-size:12px;max-width:120px}.view-navigation .view-info .view-counter{font-size:10px}}.custom-button-slot{display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px}.custom-button-slot button,.custom-button-slot .btn{border:none;background:var(--nav-button-background, #f8f9fa);color:var(--nav-color, #333);border-radius:6px;padding:8px 12px;font-size:14px;cursor:pointer;transition:all .2s ease-out;display:flex;align-items:center;gap:6px}.custom-button-slot button:hover,.custom-button-slot .btn:hover{background:var(--nav-button-hover-background, #e9ecef);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.custom-button-slot button:active,.custom-button-slot .btn:active{transform:translateY(0);box-shadow:0 1px 2px #0000001a}.custom-button-slot button.icon-only,.custom-button-slot .btn.icon-only{width:40px;height:40px;border-radius:50%;padding:0}.custom-button-slot button.icon-only svg,.custom-button-slot button.icon-only i,.custom-button-slot .btn.icon-only svg,.custom-button-slot .btn.icon-only i{width:20px;height:20px}.custom-button-slot .button-group{display:flex;gap:4px;align-items:center}.custom-button-slot:empty{display:none}.model-widget-lazy-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--widget-background)}.model-widget-lazy-placeholder .lazy-loading-indicator{text-align:center;color:var(--loading-color)}.model-widget-lazy-placeholder .lazy-loading-indicator .lazy-spinner{width:32px;height:32px;border:3px solid #f3f3f3;border-top:3px solid var(--loading-color);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}.model-widget-lazy-placeholder .lazy-loading-indicator p{margin:0;font-size:14px;opacity:.8}.model-manager-container{position:relative;width:100%;height:100%;aspect-ratio:1140/780}@media (max-width: 768px){.model-manager-container{aspect-ratio:430/910}}.model-manager-container.mobile{aspect-ratio:430/910}.model-manager-container .model-manager-canvas{position:absolute;top:0;left:0;width:100%;height:100%}.model-widget-wrapper{position:relative;width:100%;height:100%}.model-widget-wrapper .model-loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;--widget-background: #000;--loading-color: #f85807;background:var(--widget-background, #000);display:flex;align-items:center;justify-content:center;z-index:2000;opacity:1;transition:opacity .3s ease-out}.model-widget-wrapper .model-loading-overlay.fade-out{opacity:0}.model-widget-wrapper .model-loading-overlay .loading-content{text-align:center}.model-widget-wrapper .model-loading-overlay .loading-content .loading-spinner{width:48px;height:48px;border:4px solid #f3f3f3;border-top:4px solid var(--loading-color, #fff);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}.model-widget-wrapper .model-loading-overlay .loading-content .loading-text{color:var(--loading-color, #fff);font-size:16px;font-weight:500;opacity:.8}.model-widget-wrapper .widget-container{width:100%;height:100%;opacity:0;transition:opacity .5s ease-in}.model-widget-wrapper .widget-container.model-loaded{opacity:1}.model-widget-wrapper .widget-container .model-widget{width:100%;height:100%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
