/*
 * 구독 관련 페이지 전용 스타일
 * 페이지: /WEB-INF/jsp/vasanta/mber/subscribe/*.jsp
 */

/* 구독 목록 아이템 z-index (hover 시 transform으로 인한 스태킹 컨텍스트 문제 해결) */
.subscription-list-item {
    position: relative;
    z-index: 1;
}

.subscription-list-item:hover {
    z-index: 1040 !important;
}

/* 구독 관리 드롭다운 메뉴 z-index (푸터보다 높게) */
.subscription-actions .dropdown-menu {
    z-index: 1050 !important;
}

/* ========================================
   모바일 모달 표준 스타일 (390px 이하)
   문서: /docs/hr/03_MOBILE_MODAL.md
   ======================================== */

/* PC (390px 초과): 상단 X버튼 숨김 */
#paymentHistoryModal .modal-header .modal-close-btn-mobile,
#subscribeGuideModal .modal-header .modal-close-btn-mobile,
#privacyModal .modal-header .modal-close-btn-mobile,
#modalRefundConfirm .modal-header .modal-close-btn-mobile,
#modalRefundDetail .modal-header .modal-close-btn-mobile,
#cardChangeModal .modal-header .modal-close-btn-mobile {
    display: none !important;
}


/* customAlert 모달 버튼 순서 - PC (모든 화면) */
.modal-type-alert .modal-footer {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
}

.modal-type-alert .modal-footer .btn-label-secondary {
    order: 1 !important;
}

.modal-type-alert .modal-footer .btn-primary {
    order: 2 !important;
}

/* 모바일 (390px 이하): 모달 표준 스타일 */
@media (max-width: 430px) {
    /* 모달 정중앙 배치 */
    #paymentHistoryModal.modal.show,
    #subscribeGuideModal.modal.show,
    #privacyModal.modal.show,
    #modalRefundConfirm.modal.show,
    #modalRefundDetail.modal.show,
    #cardChangeModal.modal.show {
        display: flex !important;
        align-items: center;
        justify-content: center;
    }

    #paymentHistoryModal .modal-dialog,
    #subscribeGuideModal .modal-dialog,
    #privacyModal .modal-dialog,
    #modalRefundConfirm .modal-dialog,
    #modalRefundDetail .modal-dialog,
    #cardChangeModal .modal-dialog {
        margin: 0;
        width: 90% !important;
        max-width: 100% !important;
    }

    /* 모달 컨텐츠 스타일 */
    #paymentHistoryModal .modal-content,
    #privacyModal .modal-content,
    #modalRefundConfirm .modal-content,
    #modalRefundDetail .modal-content,
    #cardChangeModal .modal-content {
        border-radius: 11px;
        height: 55vh !important;
        max-height: 85vh !important;
    }

    /* 구독관리 가이드 모달 - 70vh */
    #subscribeGuideModal .modal-content {
        border-radius: 11px;
        height: 70vh !important;
    }

    /* 모달 헤더 스타일 */
    #paymentHistoryModal .modal-header,
    #subscribeGuideModal .modal-header,
    #privacyModal .modal-header,
    #modalRefundConfirm .modal-header,
    #modalRefundDetail .modal-header,
    #cardChangeModal .modal-header {
        border-bottom: 1px solid #dee2e6;
        padding: 14px 16px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    /* 상단 X버튼 표시 */
    #paymentHistoryModal .modal-header .modal-close-btn-mobile,
    #subscribeGuideModal .modal-header .modal-close-btn-mobile,
    #privacyModal .modal-header .modal-close-btn-mobile,
    #modalRefundConfirm .modal-header .modal-close-btn-mobile,
    #modalRefundDetail .modal-header .modal-close-btn-mobile,
    #cardChangeModal .modal-header .modal-close-btn-mobile {
        display: block !important;
        background: none;
        border: none;
        font-size: 24px;
        color: #6c757d;
        cursor: pointer;
        padding: 0;
        line-height: 1;
    }

    #paymentHistoryModal .modal-header .modal-close-btn-mobile:hover,
    #subscribeGuideModal .modal-header .modal-close-btn-mobile:hover,
    #privacyModal .modal-header .modal-close-btn-mobile:hover,
    #modalRefundConfirm .modal-header .modal-close-btn-mobile:hover,
    #modalRefundDetail .modal-header .modal-close-btn-mobile:hover,
    #cardChangeModal .modal-header .modal-close-btn-mobile:hover {
        color: #333;
    }

    /* 하단 닫기버튼 숨김 */
    #paymentHistoryModal .modal-footer .modal-close-btn-pc,
    #subscribeGuideModal .modal-footer .modal-close-btn-pc,
    #privacyModal .modal-footer .modal-close-btn-pc,
    #modalRefundConfirm .modal-footer .modal-close-btn-pc,
    #modalRefundDetail .modal-footer .modal-close-btn-pc,
    #cardChangeModal .modal-footer .modal-close-btn-pc {
        display: none !important;
    }

    /* 모달 타이틀 스타일 */
    #paymentHistoryModal .modal-title,
    #subscribeGuideModal .modal-title,
    #privacyModal .modal-title,
    #modalRefundConfirm .modal-title,
    #modalRefundDetail .modal-title,
    #cardChangeModal .modal-title {
        font-weight: 600;
        font-size: 1.1rem;
    }

    /* 모달 푸터 스타일 */
    #paymentHistoryModal .modal-footer,
    #privacyModal .modal-footer,
    #modalRefundConfirm .modal-footer,
    #modalRefundDetail .modal-footer,
    #cardChangeModal .modal-footer {
        display: flex;
        flex-direction: row-reverse;
        gap: 8px;
        padding: 1rem;
    }

    #paymentHistoryModal .modal-footer .btn,
    #privacyModal .modal-footer .btn,
    #modalRefundConfirm .modal-footer .btn,
    #modalRefundDetail .modal-footer .btn,
    #cardChangeModal .modal-footer .btn {
        flex: 1;
        margin: 0;
    }

    /* 닫기 버튼만 있는 모달은 footer 구분선 제거 */
    #paymentHistoryModal .modal-footer,
    #privacyModal .modal-footer,
    #modalRefundDetail .modal-footer {
        border-top: none !important;
    }

    /* 가이드 모달 - footer 전체 숨김 */
    #subscribeGuideModal .modal-footer {
        display: none !important;
    }

    /* 딤 영역 드래그 방지 + iOS 대응 */
    #paymentHistoryModal.modal,
    #subscribeGuideModal.modal,
    #privacyModal.modal,
    #modalRefundConfirm.modal,
    #modalRefundDetail.modal,
    #cardChangeModal.modal {
        overflow: hidden;
        touch-action: none;
        position: fixed !important;
        width: 100% !important;
        height: 100% !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
    }

    /* ========================================
       customAlert 모달 (동적 생성) 스타일
       ======================================== */

    /* customAlert 모달 - 모바일 */
    .modal-type-alert.modal.show {
        display: flex !important;
        align-items: center;
        justify-content: center;
    }

    .modal-type-alert .modal-dialog {
        margin: 0;
        width: 90%;
        max-width: 320px;
    }

    .modal-type-alert .modal-content {
        border-radius: 11px;
        height: auto !important;
    }

    /* 모바일에서도 헤더 숨김 */
    .modal-type-alert .modal-header {
        display: none !important;
    }

    .modal-type-alert .modal-body {
        text-align: center;
        padding: 24px 20px 12px;
    }

    .modal-type-alert .modal-body p {
        margin: 0;
        font-size: 15px;
        line-height: 1.6;
        color: #566a7f;
    }

    /* 버튼 순서: 회색(왼쪽) - 파랑(오른쪽) */
    .modal-type-alert .modal-footer {
        display: flex;
        flex-direction: row;
        justify-content: center;
        gap: 8px;
        padding: 12px 20px 20px;
        border-top: none !important;
        margin-top: 0 !important;
    }

    .modal-type-alert .modal-footer .btn {
        flex: 1;
        margin: 0;
        max-width: 120px;
    }

    .modal-type-alert.modal {
        overflow: hidden;
        touch-action: none;
        position: fixed !important;
        width: 100% !important;
        height: 100% !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
    }

    /* ----- 구독 아이템 레이아웃 ----- */
    .subscription-list-item > .d-flex.align-items-center.justify-content-between {
        flex-direction: column !important;
        align-items: flex-start !important;
    }

    /* 제목과 구독중 태그 가로 정렬 유지 */
    .subscription-list-item .flex-grow-1 > .d-flex.align-items-center.mb-2 {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
    }

    .subscription-list-item .flex-grow-1 > .d-flex.align-items-center.mb-2 h6 {
        margin-right: 8px !important;
        margin-bottom: 0 !important;
    }

    .subscription-list-item .flex-grow-1 > .d-flex.align-items-center.mb-2 .badge {
        flex-shrink: 0 !important;
    }

    /* 관리 버튼 오른쪽 정렬 */
    .subscription-actions {
        width: 100% !important;
        display: flex !important;
        justify-content: flex-end !important;
        margin-top: 12px !important;
    }

    /* ----- 관리 버튼 (white-bt 스타일) ----- */
    .subscription-actions .dropdown .btn-outline-primary {
        background-color: #fff !important;
        border: 1px solid #d0d0d0 !important;
        color: #333 !important;
        border-radius: 8px !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 4px !important;
        padding: 6px 10px !important;
        font-size: 13px !important;
        font-weight: 500 !important;
    }

    .subscription-actions .dropdown .btn-outline-primary:hover,
    .subscription-actions .dropdown .btn-outline-primary:focus {
        background-color: #f8f9fa !important;
        border-color: #c0c0c0 !important;
    }

    /* 아이콘에 파란색 원 배경 */
    .subscription-actions .dropdown .btn-outline-primary i.bx-cog {
        background-color: #696cff !important;
        color: #fff !important;
        width: 20px !important;
        height: 20px !important;
        border-radius: 50% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 12px !important;
        flex-shrink: 0 !important;
        margin: 0 !important;
    }

    /* ----- 환불 상세 정보 모달 레이아웃 ----- */
    #modalRefundDetail .modal-body {
        overflow-y: scroll !important;
        -webkit-overflow-scrolling: touch !important;
        max-height: calc(55vh - 120px) !important;
        padding: 16px !important;
        box-sizing: border-box !important;
    }

    #modalRefundDetail .row {
        width: 100% !important;
        margin: 0 !important;
        display: flex !important;
        flex-wrap: wrap !important;
    }

    #modalRefundDetail .col-md-6 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        margin-bottom: 12px !important;
        padding: 0 !important;
    }

    #modalRefundDetail .col-12 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin-bottom: 12px !important;
    }

    #modalRefundDetail .card {
        margin: 0 !important;
        width: 100% !important;
    }

    #modalRefundDetail .card-body {
        padding: 12px !important;
    }

    #modalRefundDetail h6.card-title {
        font-size: 14px !important;
        margin-bottom: 12px !important;
    }

    #modalRefundDetail .card-body > div {
        margin-bottom: 8px !important;
        font-size: 13px !important;
    }

    #modalRefundDetail .card-body > div:last-child {
        margin-bottom: 0 !important;
    }

    #modalRefundDetail .fw-semibold {
        word-break: break-all !important;
    }

    /* ----- 결제 히스토리 모달 테이블 카드 스타일 ----- */
    #paymentHistoryModal .table-responsive {
        overflow: visible !important;
    }

    #paymentHistoryModal .table thead {
        display: none !important;
    }

    #paymentHistoryModal .table tbody {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
    }

    #paymentHistoryModal .table tbody tr {
        display: block !important;
        background: #f8f9fa !important;
        border: 1px solid #e9ecef !important;
        border-radius: 8px !important;
        padding: 12px !important;
    }

    #paymentHistoryModal .table tbody tr td {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding: 6px 0 !important;
        border: none !important;
    }

    #paymentHistoryModal .table tbody tr td::before {
        font-weight: 600 !important;
        color: #566a7f !important;
        font-size: 13px !important;
        margin-right: 12px !important;
    }

    #paymentHistoryModal .table tbody tr td:nth-child(1)::before {
        content: '결제일시' !important;
    }

    #paymentHistoryModal .table tbody tr td:nth-child(2)::before {
        content: '금액' !important;
    }

    #paymentHistoryModal .table tbody tr td:nth-child(3)::before {
        content: '상태' !important;
    }

    #paymentHistoryModal .table tbody tr td:nth-child(4)::before {
        content: '결제타입' !important;
    }

    #paymentHistoryModal .table tbody tr td:nth-child(5)::before {
        content: '상품명' !important;
    }

    /* ----- 상품보기 버튼 (white-bt 스타일) ----- */
    .card-header #productListBtn {
        background-color: #fff !important;
        border: 1px solid #d0d0d0 !important;
        color: #333 !important;
        border-radius: 8px !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 4px !important;
        padding: 6px 10px !important;
        font-size: 13px !important;
        font-weight: 500 !important;
    }

    .card-header #productListBtn:hover,
    .card-header #productListBtn:focus {
        background-color: #f8f9fa !important;
        border-color: #c0c0c0 !important;
    }

    /* 아이콘에 파란색 원 배경 */
    .card-header #productListBtn i.bx-store {
        background-color: #696cff !important;
        color: #fff !important;
        width: 20px !important;
        height: 20px !important;
        border-radius: 50% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 12px !important;
        flex-shrink: 0 !important;
        margin: 0 !important;
    }
}
