/* 통합 소모임 메뉴 */
#unified-group-menu {
    margin-bottom: 1rem;
    width: 100%;
    max-width: 100%;
    min-width: 0; /* 부모 컨테이너 크기 준수 */
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
    contain: layout; /* 레이아웃 격리 */
}

/* 컨테이너 폭 고정 - 확장 방지 강화 */
#unified-group-menu .mb-3 {
    width: 100%;
    max-width: 100%;
    min-width: 0; /* 내부 요소 확장 방지 */
    box-sizing: border-box;
    position: relative;
}

/* 검색 영역 */
#unified-group-menu .input-group-sm {
    border-radius: 0.375rem;
    overflow: hidden;
}

#unified-group-search {
    border: 1px solid var(--bs-border-color);
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

#unified-group-search:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
}

#unified-group-search::placeholder {
    opacity: 0.6;
}

/* 검색 버튼들 - 단순한 스타일 */
.input-group-text,
#unified-clear-search {
    border: 1px solid var(--bs-border-color);
    background-color: var(--bs-gray-50);
    transition: background-color 0.15s ease-in-out;
}

[data-bs-theme="dark"] .input-group-text,
[data-bs-theme="dark"] #unified-clear-search {
    background-color: var(--bs-gray-800);
}

#unified-clear-search:hover {
    background-color: var(--bs-gray-100);
}

[data-bs-theme="dark"] #unified-clear-search:hover {
    background-color: var(--bs-gray-700);
}

/* 그룹 헤더 - 단순함 */
.unified-group-header {
    font-size: 0.875rem;
    font-weight: 600;
    opacity: 0.8;
    margin-bottom: 0.5rem;
}

/* 메인 메뉴 링크 - 모던한 디자인 */
.unified-group-main-menu .nav-link {
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    background-color: transparent;
    border: 1px solid transparent;
    position: relative;
}

.unified-group-main-menu .nav-link:hover {
    color: var(--bs-primary);
    background-color: rgba(var(--bs-primary-rgb), 0.05);
    border-color: rgba(var(--bs-primary-rgb), 0.1);
}

.unified-group-main-menu .nav-link[aria-expanded="true"] {
    background-color: rgba(var(--bs-primary-rgb), 0.1);
    border-color: rgba(var(--bs-primary-rgb), 0.2);
    color: var(--bs-primary);
}

/* 드롭다운 화살표 제거 */
.unified-group-main-menu .dropdown-toggle::after {
    display: none;
}

[data-bs-theme="dark"] .unified-group-main-menu .nav-link:hover {
    background-color: rgba(var(--bs-primary-rgb), 0.15);
    border-color: rgba(var(--bs-primary-rgb), 0.25);
}

[data-bs-theme="dark"] .unified-group-main-menu .nav-link[aria-expanded="true"] {
    background-color: rgba(var(--bs-primary-rgb), 0.2);
    border-color: rgba(var(--bs-primary-rgb), 0.3);
}

/* 3열 그리드 컨테이너 - 폭 고정 및 확장 방지 */
.unified-grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    padding: 0.75rem 0;
    width: 100%;
    max-width: 100%;
    min-width: 0; /* 그리드 아이템이 부모보다 커지는 것 방지 */
    box-sizing: border-box;
    overflow: hidden;
    position: relative; /* 컨테이너 위치 고정 */
}

/* 소모임 메뉴 아이템 - 깔끔하고 단순한 디자인 */
.unified-group-menu-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.375rem;
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.4;
    min-height: 2.5rem;
    text-align: center;
    transition: all 0.15s ease-in-out;
    min-width: 0; /* 아이템이 그리드 셀보다 커지는 것 방지 */
    width: 100%; /* 그리드 셀 전체 폭 사용 */
    box-sizing: border-box;
}

.unified-group-menu-item:hover {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    color: white;
    text-decoration: none;
}

.unified-menu-text {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

/* 더보기/접기 버튼 영역 - 폭 고정 */
.unified-buttons-container {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--bs-border-color);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* 소모임 컨테이너 전체 폭 제한 - 강화된 제한 */
.unified-group-items-container {
    width: 100%;
    max-width: 100%;
    min-width: 0; /* flexbox/grid 컨테이너 내부에서 축소 허용 */
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
    contain: layout; /* 레이아웃 격리로 외부 영향 방지 */
}

/* 콜랩스 컨테이너 폭 고정 - 확장 방지 강화 */
.nav-collapse {
    width: 100%;
    max-width: 100%;
    min-width: 0; /* 내부 요소가 부모를 초과하지 않도록 */
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
    contain: layout style; /* 레이아웃과 스타일 격리 */
}

.unified-show-more-btn,
.unified-show-less-btn {
    width: 100%;
    font-size: 0.875rem;
    padding: 0.5rem;
    border-radius: 0.375rem;
    font-weight: 500;
    transition: all 0.15s ease-in-out;
}

div a mark.unified-search-highlight::before {
    width: 0px;
    background-image: unset;
}

.unified-initially-show {
    display: flex !important;
}

/* 숨겨진 항목 */
.unified-initially-hidden:not(.unified-initially-show) {
    display: none;
}

/* 검색 하이라이트 - 부드러운 스타일 */
.unified-search-highlight {
    background-color: #fff3cd;
    color: #856404;
    padding: 1px 3px;
    border-radius: 2px;
    font-weight: 500;
}

[data-bs-theme="dark"] .unified-search-highlight {
    background-color: #ffc107;
    color: #000;
}

/* 검색 상태 표시 - 단순화 */
.unified-search-active .input-group-text {
    background-color: rgba(var(--bs-success-rgb), 0.1);
    border-color: var(--bs-success);
}

.unified-no-results .input-group-text {
    background-color: rgba(var(--bs-warning-rgb), 0.1);
    border-color: var(--bs-warning);
}

/* 포커스 상태 - 접근성 */
.unified-group-menu-item:focus,
.unified-show-more-btn:focus,
.unified-show-less-btn:focus,
#unified-group-search:focus {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

/* 반응형 디자인 */
@media (max-width: 576px) {
    .unified-grid-container {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.4rem;
    }

    .unified-group-menu-item {
        font-size: 0.8125rem;
        padding: 0.4rem 0.6rem;
        min-height: 2.25rem;
    }
}

@media (max-width: 768px) and (min-width: 577px) {
    .unified-grid-container {
        gap: 0.45rem;
    }

    .unified-group-menu-item {
        font-size: 0.8125rem;
        padding: 0.45rem 0.65rem;
    }
}

[data-bs-theme="dark"] .unified-group-menu-item {
    background-color: var(--bs-gray-900);
    border-color: var(--bs-gray-700);
}

[data-bs-theme="dark"] .unified-buttons-container {
    border-top-color: var(--bs-gray-700);
}
