.viewer-container { position: relative; display: flex; align-items: stretch; justify-content: center; /* Centrage horizontal */ max-width: 100vw; /* Prend toute la largeur de la fenêtre */ max-height: 100vh; /* Prend toute la hauteur de la fenêtre */ background-color: var(--bg-color); overflow: hidden; /* Empêche les débordements */ position: relative; /* Nécessaire pour un positionnement interne */ box-sizing: border-box; margin: 20px; } #viewspacecontainer { display: flex; align-items: center; /* Centre le contenu verticalement */ justify-content: center; /* Centre le contenu horizontalement */ width: 100%; /* Adapte à la largeur du conteneur */ height: 100%; /* Adapte à la hauteur du conteneur */ box-sizing: border-box; } .view { flex: 1; /* S'étend pour occuper tout l'espace restant */ min-width: 100svw; min-height:100svh; width: 100%; /* Adapte à la largeur */ height: 100%; /* Adapte à la hauteur */ object-fit: cover; /* Remplit l'espace en respectant le ratio */ background-color: var(--neutral-color); border-radius: 10px; border: 1px solid whitesmoke } .viewspace { display: flex; align-items: stretch; justify-content: center; width: 100svw; /* Adapte à la largeur */ height: 100svh; /* Adapte à la hauteur */ background-color: rgba(253, 253, 253, 1); border-radius: var(--border-radius); box-shadow: var(--box-shadow); overflow: hidden; /* Cache le contenu qui dépasse */ } #Loading { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background-color: rgba(0, 0, 0, 0.5); color: var(--neutral-color); z-index: 10; /* Au-dessus des autres éléments */ } #loading-container { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); /* Centre le conteneur de chargement */ width: 100px; height: 100px; } #image-progress { background: rgba(0, 0, 0, 0.8); color: #fff; padding: 10px; border-radius: var(--border-radius); } #error { display: none; position: fixed; top: 20px; left: 20px; right: 20px; bottom: 20px; background: #444; padding: 8px; white-space: pre; color: #fff; font-family: monospace; font-weight: bold; } #benchmark-stats { position: absolute; top: 0px; right: 0px; display: none; } #loading-container { display: none; width: 150px; height: 150px; padding: 0px; margin: -40px 0 0 -40px; position: absolute; top: 50%; left: 50%; } #Loading h4 { display: none; margin: 0px; } .loading-bgbox { display: none; position: absolute; width: 65px; height: 65px; background-color: #DDD; width: 65px; height: 65px; } #topleft { top: 5px; left: 5px; } #bottomleft { bottom: 5px; left: 5px; } #topright { top: 5px; right: 5px; } #bottomright { bottom: 5px; right: 5px; } #loading-indicator { position: absolute; top: 5px; left: 5px; width: 65px; height: 65px; background-color: #999; animation-name: indicator; animation-duration: 5s; animation-iteration-count: infinite; } @keyframes indicator { 0% {top: 5px; left: 5px; } 25% {top: 5px; left: 80px; } 50% {top: 80px; left: 80px; } 75% {top: 80px; left: 5px; } } #shader-editor { display: none; margin-top: 10px; margin-left: auto; margin-right: auto; }