/* Root wrapper */
.gps-sphere-viewer {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: 100%;
}

/* Main and fullscreen viewer containers */
.gps-windowed-viewer,
.gps-fullscreen-viewer {
    position: relative;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #111111;
}

/* Pseudo fullscreen takes the whole viewport */
.gps-fullscreen-viewer.pseudo-fullscreen {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    z-index: 9999;
}

/* Images inside viewer: responsive and centered */
.gps-windowed-viewer .gps-viewer-image,
.gps-fullscreen-viewer .gps-viewer-image-fullscreen {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* Preloader overlay (blocks clicks visually but not controls because of pointer-events: none on root) */
.gps-preloader {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.35);
    z-index: 20;
    pointer-events: none;
}

.gps-progress-circle {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gps-progress-value {
    font-size: 14px;
    font-weight: 600;
}

/* Controls */
.gps-windowed-viewer .control-icons,
.gps-fullscreen-viewer .control-icons-fullscreen {
    position: absolute;
    left: 50%;
    bottom: 12px;
    transform: translateX(-50%);
    z-index: 15;
    display: flex;
    gap: 16px;
    color: #ffffff;
    font-size: 18px;
}

.gps-windowed-viewer .control-icons i,
.gps-fullscreen-viewer .control-icons-fullscreen i {
    cursor: pointer;
}

/* Fullscreen / shrink icons */
.gps-windowed-viewer .extend-icon,
.gps-fullscreen-viewer .shrink-icon {
    position: absolute;
    right: 12px;
    top: 12px;
    z-index: 15;
    color: #ffffff;
    font-size: 18px;
    cursor: pointer;
}

/* 360 icon overlays */
.gps-vector-overlay,
.gps-vector-overlay-fullscreen {
    position: absolute;
    left: 12px;
    bottom: 12px;
    z-index: 15;
}

.gps-vector-overlay img,
.gps-vector-overlay-fullscreen img {
    display: block;
    max-width: 60px;
    height: auto;
}

/* Microscope lens */
.gps-magnifier {
    position: absolute;
    width: 160px;
    height: 160px;
    border-radius: 50%;
    overflow: hidden;
    pointer-events: none;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 30;
    display: none;
}

/* Hidden frame list container */
.gps-frame-list {
    display: none;
}
