﻿body, html {
    font-size: 14px;
}

.filter-item {
    width: 112px;
    min-width: 112px;
    margin-right: 4px;
    display: flex;
    flex-direction: column;
}

    .filter-item.filter-date-range {
        min-width: 230px;
    }

    /* 고객목록 경로·상태: 이름 옆에 [포함|제외] 가 붙어 조금 넓다 (2026-10-26) */
    .filter-item.filter-pick {
        width: 130px;
        min-width: 130px;
    }

    .filter-mode {
        display: inline-flex;
        margin-left: 4px;
        border: 1px solid #d9d9d9;
        border-radius: 3px;
        overflow: hidden;
        vertical-align: middle;
        font-size: 11px;
        line-height: 16px;
    }

        .filter-mode > a {
            padding: 0 5px;
            color: #595959;
        }

            .filter-mode > a.is-on {
                background: #1890ff;
                color: #fff;
            }

            .filter-mode > a.is-on.is-exclude {
                background: #ff4d4f;
            }

    /* 검색 줄 라벨: 작게 (filter-row 는 filter-item 없이 라벨+입력칸을 나란히 두는 검색 줄) */
    .filter-item > label,
    .filter-row label {
        font-size: 12px;
        margin-bottom: 1px;
    }

    .filter-item > div:last-child {
        flex-grow: 1;
    }


/* 입력칸 아래 안내 문구: 회색 12px. 예전에는 대화상자마다 하늘색(text-info)에 "*", "-", "★" 를 제각각 붙였다 */
.form-hint {
    display: block;
    margin-top: 2px;
    color: #667085;
    font-size: 12px;
    line-height: 1.5;
}

/* 입력 폼 라벨: 보안 정책 화면(.policy-field)과 같은 13px 굵게. 예전의 "#" 아이콘은 이 화면들에만 있어 뺐다 */
.form-group > label {
    margin-bottom: 3px;
    font-size: 13px;
    font-weight: 600;
}

.filter-zone {
    overflow-x: auto;
    overflow-y: hidden;
}

    .filter-zone > div:not(.filter-item) > a {
        white-space: nowrap;
    }


.customer-state {
    font-weight: bold;
}

.text-blank {
    color: #6b7280; /* "미입력"·"[없음]": 기울임으로 구분하고 글자는 읽히게 (전에는 1.7:1) */
    font-style: italic;
}


hr {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}


.button-space {
    margin-left: .25rem !important;
}

/* 상세 필터 접기/펼치기 링크는 입력칸 높이에 맞춰 아래 정렬 */
.filter-item.filter-more-toggle {
    width: auto;
    min-width: 90px;
    justify-content: flex-end;
    padding-bottom: 6px;
    white-space: nowrap;
}

.filter-zone-more {
    border-top: 1px dashed #e8e8e8;
    margin-top: 6px;
    padding-top: 6px;
}

/* 고객 항목 화면: 처음 쓰는 사람을 위한 단계 안내·구획 번호·빈 화면 (docs/customer-fields.md 13절) */
.cf-steps { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 1rem; }
.cf-step { flex: 1 1 220px; border: 1px solid #d6e4ff; background: #f0f5ff; border-radius: 6px; padding: 8px 12px; }
.cf-step-arrow { align-self: center; color: #8c8c8c; }
.cf-title { display: inline-flex; align-items: center; gap: 6px; }
.cf-num { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 20px; height: 20px; border-radius: 50%; background: #1890ff; color: #fff; font-size: 12px; font-weight: 600; }
.cf-empty { text-align: center; padding: 1.5rem 1rem; margin-bottom: .5rem; border: 1px dashed #d9d9d9; border-radius: 6px; background: #fcfcfc; }
.cf-empty-icon { font-size: 26px; color: #bfbfbf; }
.cf-warn { display: block; margin-top: 4px; color: #d48806; }
/* 랜딩 항목 이름 보기: 건수·예시. 고른 줄(진한 파랑)에서도 읽히게 밝게 */
.cf-land-meta { color: #8c8c8c; }
.e-list-item.e-active .cf-land-meta { color: rgba(255, 255, 255, .85); }
/* 고객 항목 화면 위쪽 미리보기 (docs/customer-fields.md 14절). PC 에서는 내려도 위에 붙어 따라온다 */
.cf-preview { background: #fff; border: 1px solid #e8e8e8; border-radius: 8px; padding: 8px 12px; margin-bottom: 1rem; }
.cf-preview-body { margin-top: 8px; padding: 8px 10px; border-radius: 6px; background: #fafafa; }
.cf-chip { display: inline-block; padding: 1px 8px; margin: 2px 3px 2px 0; border: 1px solid #d9d9d9; border-radius: 4px; background: #fff; font-size: 12px; }
.cf-chip.is-added { border-color: #91d5ff; background: #e6f7ff; }
.cf-preview-table { overflow-x: auto; background: #fff; border: 1px solid #f0f0f0; border-radius: 4px; }
.cf-preview-table table { border-collapse: collapse; font-size: 13px; }
.cf-preview-table th, .cf-preview-table td { padding: 5px 12px; white-space: nowrap; border-bottom: 1px solid #f0f0f0; text-align: left; }
.cf-preview-table th { background: #fafafa; font-weight: 500; color: #595959; }
.cf-preview-table th.is-added { background: #e6f7ff; }
@media (min-width: 768px) {
    .cf-preview { position: sticky; top: 8px; z-index: 20; box-shadow: 0 4px 14px rgba(0, 0, 0, .12); }
}
@media (max-width: 767.98px) {
    .cf-step-arrow { display: none; }
}

/* 끌어 옮기기 목록 (Components/SortList.razor, wwwroot/js/sort-list.js). 놓을 자리는 흐린 파란 칸, 끄는 칸은 그림자 */
.sl-item { cursor: grab; }
.sl-grip { display: inline-flex; color: #bfbfbf; cursor: grab; }
.sl-item:hover .sl-grip { color: #8c8c8c; }
.sl-ghost { opacity: .5; outline: 1px dashed #1890ff; background: #e6f7ff !important; }
.sl-drag { box-shadow: 0 6px 16px rgba(0, 0, 0, .18); cursor: grabbing; }

/* 고객 항목 열·필터 상자 (docs/customer-fields.md 15절) */
.cf-box { border: 1px solid #e8e8e8; border-radius: 6px; background: #fff; margin-bottom: 10px; }
.cf-box.is-off { background: #fafafa; border-style: dashed; }
.cf-box-head { padding: 6px 10px; border-bottom: 1px solid #f0f0f0; font-size: 13px; }
.cf-box-list { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px; min-height: 48px; align-items: center; }
.cf-box-empty { color: #bfbfbf; font-size: 12px; }
.cf-box-list:has(.sl-ghost) .cf-box-empty { display: none; }
.cf-dchip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 7px; border: 1px solid #d9d9d9; border-radius: 4px; background: #fff; font-size: 13px; line-height: 20px; user-select: none; -webkit-user-select: none; }
.cf-dchip.is-added { background: #e6f7ff; border-color: #91d5ff; }
.cf-dchip.is-locked { background: #fafafa; color: #8c8c8c; padding-left: 10px; }
.cf-dchip-lock { color: #bfbfbf; font-size: 12px; }
.cf-field-table .sl-grip { padding: 6px 8px; }
