/* 이미지 프레젠터 전체화면 오버레이 */
.image-presenter-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.95);
    z-index: 99999;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
}

/* 이미지 컨테이너 */
.image-presenter-container {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    /* 이미지가 절대 위치로 배치되므로 flex 속성은 백업용 */
}

/* 이미지 요소 */
.image-presenter-image {
    position: absolute; /* 일반 흐름에서 벗어나 부모 기준 위치 설정 */
    top: 50%;         /* 부모 높이의 50% 위치에 상단 모서리 배치 */
    left: 50%;        /* 부모 너비의 50% 위치에 좌측 모서리 배치 */
    transform: translate(-50%, -50%); /* 요소 자체 크기의 절반만큼 좌/상 이동하여 중앙 정렬 */
    /*max-width: 100%;
    max-height: 100%;
    object-fit: contain;*/
    display: none;
    cursor: pointer;
    transition: opacity 0.3s ease;
    z-index: 1; /* 다른 요소들보다 낮은 z-index로 배치 */
    margin: 0; /* 마진 제거로 다른 요소의 영향 방지 */
    padding: 0; /* 패딩 제거로 다른 요소의 영향 방지 */
}

/* 로딩 인디케이터 */
.image-presenter-loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    font-size: 18px;
    font-weight: bold;
    background-color: rgba(0, 0, 0, 0.7);
    padding: 20px 40px;
    border-radius: 10px;
    display: none;
    animation: spin 0.5s linear infinite;
}

@keyframes spin {
    from {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

/* 컨트롤 패널 */
.image-presenter-controls {
    position: absolute;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 1000;
}



/* 컨트롤 버튼 공통 스타일 */
.image-presenter-btn {
    background-color: rgba(0, 0, 0, 0.7);
    color: white;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    font-size: 20px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    justify-content: center;
    align-items: center;
    outline: none;
}

.image-presenter-btn:hover {
    background-color: rgba(0, 0, 0, 0.9);
    border-color: rgba(255, 255, 255, 0.8);
}

/* 좌우 화살표 버튼 */
.image-presenter-left-arrow {
    position: absolute;
    left: 20px;
    top: 50%;
    background-color: rgba(0, 0, 0, 0.5);
    border-color: rgba(255, 255, 255, 0.3);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 10;
}

.image-presenter-right-arrow {
    position: absolute;
    right: 20px;
    top: 50%;
    background-color: rgba(0, 0, 0, 0.5);
    border-color: rgba(255, 255, 255, 0.3);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 10;
}

.image-presenter-left-arrow:hover,
.image-presenter-right-arrow:hover {
    background-color: rgba(0, 0, 0, 0.8);
    border-color: rgba(255, 255, 255, 0.6);
}

/* 닫기 버튼 */
.image-presenter-close {
    background-color: rgba(120, 53, 69, 0.6);
    border-color: rgba(120, 53, 69, 0.4);
}

.image-presenter-close:hover {
    background-color: rgba(140, 53, 69, 0.8);
    border-color: rgba(140, 53, 69, 0.6);
}

/* 새로고침 버튼 */
.image-presenter-refresh {
    background-color: rgba(40, 167, 69, 0.8);
    border-color: rgba(40, 167, 69, 0.5);
    font-size: 30px;
    padding-bottom: 12px;
}

.image-presenter-refresh:hover {
    background-color: rgba(40, 167, 69, 1);
    border-color: rgba(40, 167, 69, 0.8);
}

/* 정보 버튼 */
.image-presenter-info-btn {
    position: absolute;
    bottom: 20px;
    left: calc(50% - 25px);
    background-color: rgba(0, 123, 255, 0.8);
    border-color: rgba(0, 123, 255, 0.5);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 10;
}

.image-presenter-info-btn:hover {
    background-color: rgba(0, 123, 255, 1);
    border-color: rgba(0, 123, 255, 0.8);
}

/* 전체화면 버튼 */
.image-presenter-fullscreen-btn {
    position: absolute;
    bottom: 20px;
    left: calc(50% + 25px);
    background-color: rgba(108, 117, 125, 0.8);
    border-color: rgba(108, 117, 125, 0.5);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 10;
}

.image-presenter-fullscreen-btn:hover {
    background-color: rgba(108, 117, 125, 1);
    border-color: rgba(108, 117, 125, 0.8);
}

/* 이미지 정보 표시 */
.image-presenter-info {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    font-size: 16px;
    font-weight: bold;
    background-color: rgba(0, 0, 0, 0.8);
    padding: 20px 30px;
    border-radius: 10px;
    opacity: 0;
    transition: opacity 0.3s ease;
    white-space: nowrap;
    max-width: 90%;
    overflow: hidden;
    text-overflow: ellipsis;
    z-index: 10;
    pointer-events: none;
    line-height: 1.5;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 반응형 디자인 */
@media (max-width: 768px) {
    .image-presenter-btn {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }
    
    .image-presenter-prev {
        left: 10px;
    }
    
    .image-presenter-next {
        right: 10px;
    }
    
    .image-presenter-controls {
        top: 10px;
        gap: 5px;
    }
    
    .image-presenter-info {
        bottom: 10px;
        font-size: 14px;
        padding: 8px 16px;
    }
}

/* 키보드 포커스 스타일 */
.image-presenter-overlay:focus {
    outline: none;
}

/* 애니메이션 효과 */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.image-presenter-overlay {
    animation: fadeIn 0.3s ease;
}

/* 이미지 로드 애니메이션 */
.image-presenter-image {
    animation: fadeIn 0.5s ease;
}

/* 터치 디바이스 최적화 */
@media (hover: none) and (pointer: coarse) {
    .image-presenter-controls {
        opacity: 1;
    }
    
    .image-presenter-info {
        opacity: 1;
    }
    
    .image-presenter-left-arrow,
    .image-presenter-right-arrow,
    .image-presenter-info-btn,
    .image-presenter-fullscreen-btn {
        opacity: 1;
    }
} 