/* =============================================
   설계 원칙
   =============================================
   1. 테마는 유연하게: width, height 등 크기는 테마에 고정하지 않는다.
      크기는 사용처(부모 요소 또는 인라인 스타일)에서 결정한다.
   2. 스타일은 따르되 속성은 맹목적으로 복사하지 않는다.
      원본(popup.css, common.css)의 시각적 의도를 파악하고,
      custom-select 구조에 맞는 더 나은 방식으로 구현한다.
   ============================================= */

/* =============================================
   CSS 변수 기본값 선언
   ============================================= */
:root {
    --cs-option-height: 38px;
}

/* =============================================
   공통 구조 (data-custom-select)
   ============================================= */

/* 커스텀 셀렉트 루트 요소 (position, size 등 최상위 레이아웃) */
/* =============================================
   공통 구조 (data-custom-select)
   ============================================= */
[data-custom-select] {
    position: relative;
    width: 100%;
    height: 100%;
}

[data-custom-select] [data-cs-wrap] {
    width: 100%;
    height: 100%;
}

[data-custom-select] [data-cs-trigger] {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}

[data-custom-select] [data-cs-trigger]:after {
    content: "";
    display: block;
    flex-shrink: 0;
    background-repeat: no-repeat;
    background-position: center;
}

[data-custom-select] [data-cs-trigger]:has(+ [data-cs-dropdown][data-state="open"]):after {
    transform: rotate(180deg);
}

[data-custom-select] [data-cs-label] {
    display: block;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    text-align: left;
}

[data-custom-select] [data-cs-dropdown] {
    display: none;
    position: absolute;
    left: 0;
    width: 100%;
    z-index: 1;
    box-sizing: border-box;
    top: calc(100% + 6px);
}

[data-custom-select] [data-cs-dropdown][data-position="up"] {
    top: auto;
    bottom: calc(100% + 6px);
}

[data-custom-select] [data-cs-dropdown][data-state="open"] {
    display: block;
}

[data-custom-select] [data-cs-list] {
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

[data-custom-select] [data-cs-item] {
    width: 100%;
}

[data-custom-select] [data-cs-option] {
    width: 100%;
    height: var(--cs-option-height, auto);
    display: block;
    background: none;
    border: none;
    cursor: pointer;
}

/* =============================================
   공통 스크롤 모드 (data-cs-scroll 속성 부여 시)
   사용법: <div data-custom-select="admin" data-cs-scroll>
   ============================================= */
[data-custom-select][data-cs-scroll] [data-cs-list] {
    overflow: auto;
    scrollbar-width: none;
    padding-right: 14px;
}

[data-custom-select][data-cs-scroll] [data-cs-list]::-webkit-scrollbar {
    display: none;
}

[data-cs-scroll-track] {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 2px;
    height: calc(100% - 20px);
    background: #d4d4d4;
}

[data-cs-scroll-thumb] {
    width: 100%;
    background: #1c1c1c;
    cursor: pointer;
    user-select: none;
}

/* 드롭다운 열림 시 z-index (공통) */
[data-custom-select]:has([data-cs-dropdown][data-state="open"]) {
    z-index: 2;
}

/* =============================================
   admin 테마 (data-custom-select="admin")
   ============================================= */

/* admin 루트 */
[data-custom-select="admin"] {
    /*display: inline-flex;*/
    display:flex;
}

/* admin 트리거 버튼 */
[data-custom-select="admin"] [data-cs-trigger] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 0 10px 0 12px;
    background-color: #fff;
    color: #374151;
    font-size: 0.9375rem;
    gap: 6px;
    transition: border-color 0.15s;
}

[data-custom-select="admin"] [data-cs-trigger]:hover {
    border-color: #2563EA;
}

/* admin 트리거 화살표 아이콘 */
[data-custom-select="admin"] [data-cs-trigger]:after {
    width: 16px;
    min-width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6L8 10L12 6' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    transition: transform 0.15s;
}

/* admin 드롭다운 패널 */
[data-custom-select="admin"] [data-cs-dropdown] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

/* admin 스크롤 모드 옵션 목록 */
[data-custom-select="admin"][data-cs-scroll] [data-cs-list] {
    max-height: 200px;
}

/* admin 옵션 버튼 */
[data-custom-select="admin"] [data-cs-option] {
    padding: 0 12px;
    height: var(--cs-option-height, 38px);
    text-align: left;
    font-size: 0.9375rem;
    color: #374151;
    border-bottom: 1px solid #f3f4f6;
    transition: background-color 0.1s;
}

[data-custom-select="admin"] [data-cs-item]:last-child [data-cs-option] {
    border-bottom: 0;
}

/* admin 선택된 옵션 */
[data-custom-select="admin"] [data-cs-item][data-state="selected"] [data-cs-option] {
    background: #eff6ff;
    color: #2563EA;
    font-weight: 500;
}

/* admin 옵션 호버/포커스 */
[data-custom-select="admin"] [data-cs-option]:hover,
[data-custom-select="admin"] [data-cs-option]:focus-visible {
    background: #f9fafb;
    color: #2563EA;
}

/* =============================================
   user 테마 (data-custom-select="user")
   출처: publishing/html/sub/board_list.html .board_Search .select
        + static/libs/gioSelect/gioSelect-1.0.1.css (마크업 구조는 무시, 시각 스타일만 참고)
   ============================================= */

/* user 루트 */
[data-custom-select="user"] {
    display: inline-flex;
    height: 43px;
    border: 0;
}

/* user 트리거 버튼 */
[data-custom-select="user"] [data-cs-trigger] {
    border: 1px solid #C6C6C6;
    border-radius: 8px;
    padding: 0 12px;
    background-color: #fff;
    position: relative;
    z-index: 2;
}

/* user 드롭다운이 열려있는 동안 트리거 아래쪽 모서리를 펴서 드롭다운과 하나의 박스로 이어붙인다.
   보더는 지우지 않는다 — 드롭다운과 겹치는 -1px 자리에서 두 보더가 그대로 포개져 하나의 구분선으로 보인다. */
[data-custom-select="user"] [data-cs-trigger]:has(+ [data-cs-dropdown][data-state="open"]) {
    border-radius: 8px 8px 0 0;
}

/* user 트리거 라벨 텍스트 */
[data-custom-select="user"] [data-cs-label] {
    color: #1D1D1D;
    font-size: 15px;
    font-weight: 400;
    line-height: 150%;
}

/* user 트리거 화살표 아이콘 */
[data-custom-select="user"] [data-cs-trigger]:after {
    width: 16px;
    min-width: 16px;
    height: 16px;
    background-image: url(/static/home/images/sub/icon_down_gray.svg);
}

/* user 드롭다운 패널 — 트리거 바로 아래에 붙여서 하나의 박스처럼 보이게 한다 */
[data-custom-select="user"] [data-cs-dropdown] {
    top: 100%;
    margin-top: -1px;
    border: 1px solid #C6C6C6;
    background: #fbfbfc;
    box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
    border-radius: 0 0 8px 8px;
    overflow: hidden;
}

[data-custom-select="user"] [data-cs-dropdown][data-position="up"] {
    top: auto;
    bottom: 100%;
    margin-top: 0;
    margin-bottom: -1px;
    border-radius: 8px 8px 0 0;
}

/* user 스크롤 모드 옵션 목록 */
[data-custom-select="user"][data-cs-scroll] [data-cs-list] {
    max-height: 203px;
}

/* user 옵션 버튼 */
[data-custom-select="user"] [data-cs-option] {
    height: var(--cs-option-height, 40px);
    padding: 0 12px;
    text-align: left;
    background: #fff;
    border-bottom: 1px solid #D2D2D2;
    font-size: 15px;
    color: #1D1D1D;
}

[data-custom-select="user"] [data-cs-item]:last-child [data-cs-option] {
    border-bottom: 0;
}

/* user 선택된 옵션 */
[data-custom-select="user"] [data-cs-item][data-state="selected"] [data-cs-option] {
    background: #F8F8F8;
    color: #0A484A;
    font-weight: 500;
}

/* user 옵션 호버 / 포커스 */
[data-custom-select="user"] [data-cs-option]:hover,
[data-custom-select="user"] [data-cs-option]:focus-visible {
    background: #F8F8F8;
    color: #0A484A;
}