/* pass-next — 커스텀 스타일 (Bootstrap 5.3 Dark Mode 오버라이드) */

/* ===== 전역 ===== */
:root {
    --pm-navbar-height: 56px;
    --pm-bottom-bar-height: 60px;
    --pm-fab-bottom: 76px;
}

body {
    padding-top: var(--pm-navbar-height);   /* 고정 Navbar 여백 */
    padding-bottom: var(--pm-bottom-bar-height); /* 모바일 하단 탭바 여백 */
    font-size: 1rem;
}

/* ===== 모바일 하단 탭바 ===== */
.bottom-tabbar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: var(--pm-bottom-bar-height);
    z-index: 1030;
    border-top: 1px solid var(--bs-border-color);
}

/* 태블릿 이상에서 하단 탭바 숨김 */
@media (min-width: 768px) {
    body {
        padding-bottom: 0;
    }
    .bottom-tabbar {
        display: none !important;
    }
}

/* ===== FAB (Floating Action Button) ===== */
.fab {
    position: fixed;
    bottom: var(--pm-fab-bottom);
    right: 1rem;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    z-index: 1020;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

@media (min-width: 768px) {
    .fab {
        display: none !important;
    }
}

/* ===== 패스워드 카드 ===== */
.password-card {
    cursor: pointer;
    transition: border-color 0.15s;
}

.password-card:hover {
    border-color: var(--bs-primary);
}

.password-card .card-copy-btn {
    min-width: 44px;
    min-height: 44px;   /* 터치 타겟 최소 44px */
}

/* ===== 카테고리 필터 칩 (수평 스크롤) ===== */
.category-filter-bar {
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 0.25rem;
}
.category-filter-bar::-webkit-scrollbar {
    display: none;
}

/* ===== 바텀 시트 모달 ===== */
@media (max-width: 767px) {
    .modal-bottom-sheet .modal-dialog {
        margin: 0;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        max-width: 100%;
    }
    .modal-bottom-sheet .modal-content {
        border-radius: 1rem 1rem 0 0;
    }
}

/* ===== 폼 ===== */
.form-control,
.form-select {
    font-size: 1rem; /* iOS 자동 확대 방지 (16px 이상) */
}

/* ===== 세션 만료 배너 ===== */
#session-warning {
    position: fixed;
    top: var(--pm-navbar-height);
    left: 0;
    right: 0;
    z-index: 1050;
}

/* ===== 패스워드 강도 바 ===== */
.strength-bar .progress {
    height: 6px;
}
.strength-weak   { --bs-progress-bar-bg: var(--bs-danger); }
.strength-fair   { --bs-progress-bar-bg: var(--bs-warning); }
.strength-strong { --bs-progress-bar-bg: var(--bs-info); }
.strength-great  { --bs-progress-bar-bg: var(--bs-success); }

/* ===== 유틸리티 ===== */
.fw-mono { font-family: 'Consolas', 'Menlo', monospace; }

/* ===== 바텀 시트 모달 ===== */
@media (max-width: 767px) {
    .modal-bottom-sheet > .modal-dialog {
        margin: 0;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        max-width: 100%;
    }
    .modal-bottom-sheet > .modal-dialog > .modal-content {
        border-radius: 1rem 1rem 0 0;
    }
}
