
table, table th, table td,
.store-table, .store-table th, .store-table td{
    font-family:'Pretendard Variable','Pretendard','Apple SD Gothic Neo','Malgun Gothic',sans-serif !important;
}

.store-table thead th{font-size:11px !important;padding:10px !important;}
.store-table tbody td{font-size:11px !important;padding:10px !important;}

.store-table tbody,
.store-table tbody *{
    font-size:11px !important;
    font-weight:normal !important;
}

.store-table tfoot, .store-table tfoot *{
    font-size:11px !important;
    font-weight:600 !important;
}

.store-table thead, .store-table thead *{
    font-size:11.5px !important;
}

.rp-total-row, .rp-total-row td, .rp-total-row *,
.wd-total-row, .wd-total-row td, .wd-total-row *{
    font-weight:600 !important;
}

.filter-label, .sub-filter-label{
    display:inline-flex !important;
    align-items:center;
    margin-bottom:0 !important;
    white-space:nowrap;
    flex-shrink:0;
}

.filter-bar .filter-group{
    flex-direction:row;
    align-items:center;
    gap:8px;
}
.filter-bar .filter-group > label + *{
    flex:1 1 auto;
    min-width:0;
}

/* ==========================================================================
      [요구] 모바일 : 검색영역을 컴팩트하게 + 표시개수 셀렉트 숨김 + 페이징 축소
      대상 : .filter-bar 를 쓰는 서브페이지(지점별 재고 현황 / 매장 목록 / 매장 공지)와
                  .pagesize-select 를 쓰는 모든 서브페이지 공통.
      ========================================================================== */
@media (max-width:640px){
    /* 한 줄에 하나씩 쌓이되, 줄 간격을 크게 줄여 세로 길이를 압축한다
          (컨트롤 높이 32px 는 위 공통 규칙 그대로 쓴다) */
    .filter-bar{gap:8px 10px;}
    .filter-bar .filter-group{flex:1 1 100%;min-width:0;gap:8px;}
    /* 라벨은 왼쪽 고정폭으로 세워 라벨/입력이 한 줄에 나란히 오게 한다
          (.sub-filter-label 은 원래 display:block + margin-bottom:7px 라 줄바꿈·여백이 생긴다) */
    .filter-bar .sub-filter-label{
        flex:0 0 52px;margin-bottom:0;font-size:11.5px;line-height:1.2;
    }
    /* 검색어 칸이 최소폭(200px)에 묶여 버튼과 함께 넘치지 않도록 푼다 */
    .filter-bar .search-field{min-width:0;max-width:none;}
    .filter-bar .search-row{flex-wrap:nowrap;gap:6px;}
    /* 상세 검색 버튼은 한 줄 전체를 쓰게 해서 어중간한 여백을 없앤다 */
    .filter-bar .le_adv_btn{width:100%;justify-content:center;}

    /* [요구] "통합 검색" 라벨은 숨겨 검색 줄의 폭을 확보한다(입력창만으로 뜻이 통한다) */
    .le_search_label{display:none !important;}
    /* 조회기간 : 날짜 두 칸이 한 줄을 반씩 나눠 갖고, 퀵버튼은 그 아래 줄에 균등 분할.
          (.filter-date 가 width:120px !important 로 고정돼 있어 풀어 준다) */
    .filter-bar .date-range{flex:1 1 100%;min-width:0;gap:6px;}
    .filter-bar .date-range .filter-date{width:auto !important;flex:1 1 0;min-width:0;}
    .filter-bar .quick-date{flex:1 1 100%;gap:4px;}
    .filter-bar .quick-date button{flex:1 1 0;min-width:0;padding:6px 2px;font-size:11px;}
    /* 검색 줄 : [분류 셀렉트][검색어][검색] 이 한 줄에 넘치지 않게 각자 몫을 정해 준다.
          버튼 글자가 두 줄로 접히던 문제도 nowrap 으로 막는다. */
    .filter-bar .search-row .filter-select{flex:0 0 84px;min-width:0;padding:0 8px !important;}
    .filter-bar .search-row .search-field{flex:1 1 0;min-width:0;}
    .filter-bar .search-row .btn-search{flex:0 0 auto;white-space:nowrap;}

    /* ---- .search-card 패턴(매출·예약·고객·직원 등 나머지 서브페이지 전부) ----
          위 .filter-bar 패턴(지점별 재고 현황)과 같은 모양으로 맞춘다.
          라벨은 왼쪽 고정폭, 입력은 남은 폭을 채우고, 줄 간격을 좁힌다. */
    .search-card{padding:10px 12px;}
    /* Bootstrap .row.g-3 의 기본 세로 여백(16px)이 모바일에서 지나치게 벌어진다 */
    .search-card .row.g-3{--bs-gutter-y:8px;--bs-gutter-x:8px;}
    .search-card .row.g-3 > [class*="col-"]{gap:8px;flex-wrap:wrap;}
    /* 라벨은 왼쪽 고정폭으로 세워 라벨/입력이 한 줄에 나란히 오게 한다.
          ※ 매장 선택·조회기간 라벨(.le_store_label/.le_period_label)은 이미 1280px 이하에서
              숨겨지므로 여기 폭 지정은 담당자·사용여부처럼 남아 있는 라벨에만 적용된다. */
    .search-card .filter-label{flex:0 0 52px;font-size:11.5px;line-height:1.2;}

    /* ---- col-12 안에 그룹들이 가로로 늘어선 검색영역(지점별 고객 현황 / 매장 정보) ----
          위 col-md-* 대상 공통 규칙이 닿지 않는 구조라 따로 잡아 준다.
          .gap-3(16px) 이 모바일에서 줄 간격을 너무 벌려서 8px 로 줄인다. */
    .search-card .row.g-3 > .col-12 > .d-flex{gap:8px !important;}
    /* 안쪽 그룹(라벨+컨트롤 묶음)은 한 줄을 통째로 쓰게 해 반쪽짜리 줄이 생기지 않게 한다 */
    .search-card .row.g-3 > .col-12 > .d-flex > .d-flex{flex:1 1 100%;min-width:0;}


    /* 조회기간 : 시작/종료일이 남은 폭을 반씩 나눠 갖게 한다
          (.filter-date 가 width:120px !important 로 고정돼 있어 풀어 준다) */
    .search-card .filter-date{width:auto !important;flex:1 1 0;min-width:0;}
    .search-card .date-sep{flex:0 0 auto;}

    /* 기간 퀵버튼(오늘·일주일·…)은 한 줄을 통째로 쓰고 균등 분할 */
    .search-card .quick-date{flex:1 1 100%;gap:4px;}
    .search-card .quick-date button{flex:1 1 0;min-width:0;padding:6px 2px;font-size:11px;}

    /* 검색 / 차트 접기 버튼은 남은 줄을 나눠 채운다(어중간한 여백 제거) */
    .search-card .btn-search{flex:1 1 auto;}
    .search-card .btn-chart-toggle{margin-left:0;flex:1 1 auto;justify-content:center;}

    /* [요구] 표시개수(20개씩) 셀렉트는 모바일에서 숨긴다.
          renderPagingUI 가 인라인 style.display 로 표시를 제어하므로 !important 로 덮는다. */
    .pagesize-select{display:none !important;}
}

.search-card .row.g-3 > [class*="col-"]{
    display:flex;
    align-items:center;
    gap:8px;
}
.search-card .row.g-3 > [class*="col-"] > .filter-label + select,
.search-card .row.g-3 > [class*="col-"] > .filter-label + div{
    flex:1 1 auto;
    min-width:0;
    width:auto !important;
}

.filter-date, .filter-select, .search-input-wrap input,
.btn-search, .btn-reset{
    height:32px !important;
    font-size:12px !important;
}

.btn-search{
    padding:0 10px !important;
}

.btn-chart-toggle{
    margin-left:auto;flex:0 0 auto;height:32px;padding:0 12px;
    display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
    font-size:12px;font-weight:700;color:#475569;
    background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;
    cursor:pointer;transition:all .15s;
}
.btn-chart-toggle:hover{background:#eef2ff;color:var(--brand);border-color:#e0e7ff;}
.btn-chart-toggle.off{background:var(--brand);color:#fff;border-color:var(--brand);}
.btn-chart-toggle i{font-size:12px;}

body[data-page="store/store_compare"] .le_sc_hint{
    font-size:11.5px;color:#94a3b8;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;
}

.le_sc_pick{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:900px){.le_sc_pick{grid-template-columns:1fr;}}
.le_sc_pick_col{padding:14px 16px;}
.le_sc_pick_head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.le_sc_pick_head b{font-size:13.5px;color:#0f172a;}
.le_sc_side{
    width:22px;height:22px;border-radius:7px;color:#fff;font-size:11.5px;font-weight:800;
    display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
}
.le_sc_side.a{background:#4f46e5;}
.le_sc_side.b{background:#0d9488;}
.le_sc_cnt{font-size:11.5px;color:#64748b;font-weight:700;}
.le_sc_pick_act{margin-left:auto;display:flex;gap:6px;}
.le_sc_pick_act button{
    font-size:11px;font-weight:700;color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;
    border-radius:7px;padding:4px 9px;cursor:pointer;transition:all .15s;
}
.le_sc_pick_act button:hover{background:#eef2ff;color:var(--brand);border-color:#e0e7ff;}
.le_sc_search{
    width:100%;height:32px;font-size:12px;border:1px solid #e2e8f0;border-radius:8px;
    padding:0 10px;margin-bottom:8px;
}
.le_sc_search:focus{outline:none;border-color:#c7d2fe;box-shadow:0 0 0 3px rgba(79,70,229,.10);}
.le_sc_list{max-height:185px;overflow-y:auto;border:1px solid #eef2f7;border-radius:9px;padding:4px;}
.le_sc_list::-webkit-scrollbar{width:6px;}
.le_sc_list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px;}
.le_sc_item{
    display:flex;align-items:center;gap:8px;padding:5px 9px;border-radius:7px;
    font-size:12.5px;color:#334155;cursor:pointer;transition:background .12s;
}
.le_sc_item:hover{background:#f8fafc;}
.le_sc_item input{width:14px;height:14px;accent-color:#4f46e5;flex:0 0 auto;cursor:pointer;}
.le_sc_pick_col[data-side="B"] .le_sc_item input{accent-color:#0d9488;}
.le_sc_item.on{background:#eef2ff;color:#312e81;font-weight:700;}
.le_sc_pick_col[data-side="B"] .le_sc_item.on{background:#ecfdf5;color:#115e59;}
.le_sc_item.taken{opacity:.55;}
.le_sc_nm{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.le_sc_take{font-size:10px;font-weight:700;color:#94a3b8;background:#f1f5f9;border-radius:5px;padding:2px 6px;flex:0 0 auto;}
.le_sc_empty{padding:22px 10px;text-align:center;font-size:12px;color:#94a3b8;}

.le_sc_guide{
    display:flex;flex-direction:column;align-items:center;gap:6px;
    padding:44px 20px;text-align:center;color:#64748b;
}
.le_sc_guide i{font-size:30px;color:#cbd5e1;}
.le_sc_guide b{font-size:14.5px;color:#334155;}
.le_sc_guide span{font-size:12.5px;}
.le_sc_guide em{font-style:normal;font-weight:700;color:var(--brand);}

.le_sc_head{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:stretch;}
@media (max-width:900px){.le_sc_head{grid-template-columns:1fr;}}
.le_sc_ab{border-radius:16px;padding:16px 20px;color:#fff;box-shadow:var(--card-shadow);}
.le_sc_ab.a{background:linear-gradient(135deg,#4f46e5,#6366f1);}
.le_sc_ab.b{background:linear-gradient(135deg,#0d9488,#14b8a6);}
.le_sc_ab .tag{font-size:11px;font-weight:800;letter-spacing:.08em;opacity:.85;}
.le_sc_ab .nm{font-size:16px;font-weight:800;letter-spacing:-.02em;}
.le_sc_ab .big{font-size:24px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;}
.le_sc_ab .big small{font-size:13px;font-weight:600;opacity:.9;}

.le_sc_ab .sub{
    display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:12px;
}
.le_sc_badge{
    display:inline-flex;align-items:baseline;gap:5px;
    background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);
    border-radius:8px;padding:4px 10px;
    font-size:11.5px;font-weight:400;color:#fff;font-variant-numeric:tabular-nums;
    backdrop-filter:blur(2px);
}
.le_sc_badge b{font-size:10.5px;font-weight:700;opacity:.8;}
.le_sc_badge em{font-style:normal;font-size:10.5px;font-weight:600;opacity:.8;}

.le_sc_ab_top{display:flex;gap:20px;align-items:flex-start;}
.le_sc_ab_main{flex:1;min-width:0;}

.le_sc_kinds{
    flex:0 0 340px;
    display:grid;grid-template-columns:1fr 1fr;column-gap:18px;row-gap:2px;
    border-left:1px solid rgba(255,255,255,.22);padding-left:16px;
}
.le_sc_kind{
    display:flex;align-items:baseline;justify-content:space-between;gap:8px;
    padding:2px 0;font-variant-numeric:tabular-nums;
}
.le_sc_kind .k{font-size:11px;font-weight:600;color:#fff;opacity:.78;white-space:nowrap;}
.le_sc_kind .v{font-size:12.5px;font-weight:800;color:#fff;white-space:nowrap;}
.le_sc_kind .v small{font-size:10px;font-weight:600;opacity:.75;margin-left:2px;}

@media (max-width:700px){
    .le_sc_ab_top{display:block;}
    .le_sc_kinds{
        border-left:none;padding-left:0;
        margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.22);
    }
}
@media (max-width:400px){
    .le_sc_kinds{grid-template-columns:1fr;}
}
.le_sc_vs{
    background:#fff;border-radius:16px;padding:14px 22px;min-width:180px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    box-shadow:var(--card-shadow);
}
.le_sc_vs .k{font-size:11px;font-weight:800;color:#94a3b8;letter-spacing:.05em;}
.le_sc_vs .k.mt{margin-top:8px;}
.le_sc_vs .v{font-size:16px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.le_sc_vs .v.sm{font-size:14px;}

.le_sc_vs .v.up,   .le_sc_diff.up{color:#e11d48;}
.le_sc_vs .v.down, .le_sc_diff.down{color:#2563eb;}
.le_sc_vs .v.flat, .le_sc_diff.flat{color:#94a3b8;}

.le_sc_diff.le_sc_diff-red{color:#e11d48;}

.le_sc_table td.le_sc_metric.le_sc_ind{padding-left:26px;}

.le_sc_table td.td-num.le_sc_minus,
.le_sc_table td.td-num.le_sc_minus small{color:#e11d48;}

.le_sc_charts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media (max-width:1200px){.le_sc_charts{grid-template-columns:1fr;}}

.le_sc_chart_box{height:200px;position:relative;padding:4px 2px 0;}

.le_sc_donuts{display:grid;grid-template-columns:1fr 1fr;gap:10px;height:200px;}
.le_sc_donut{position:relative;min-width:0;}

.le_sc_donut canvas{position:absolute;inset:0;z-index:2;}

.le_sc_donut_mid{
    position:absolute;inset:0;pointer-events:none;z-index:1;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
    font-variant-numeric:tabular-nums;line-height:1.25;
}
.le_sc_donut_mid b{font-size:15px;font-weight:800;color:#334155;letter-spacing:.02em;}
.le_sc_donut_mid span{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:700;}
.le_sc_donut_mid span.m{color:#3b82f6;}
.le_sc_donut_mid span.f{color:#ec4899;}
.le_sc_donut_mid span.n{color:#94a3b8;font-size:11px;font-weight:400;}
.le_sc_donut_mid span i{font-size:12px;}
.le_sc_donut_mid em{font-style:normal;font-size:10px;font-weight:600;opacity:.75;margin-left:1px;}

.le_sc_ablg{display:inline-flex;align-items:center;gap:9px;margin-left:auto;}
.le_sc_ablg span{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;color:#64748b;}
.le_sc_ablg i{width:9px;height:9px;border-radius:2px;border:1px solid;display:inline-block;}

.le_sc_tip{
    position:fixed;left:0;top:0;z-index:11000;pointer-events:none;
    opacity:0;visibility:hidden;transition:opacity .12s ease;
    background:#1e293b;color:#fff;border-radius:8px;padding:8px 11px;
    font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap;
    box-shadow:0 6px 20px rgba(15,23,42,.25);
}
.le_sc_tip.on{opacity:1;visibility:visible;}
.le_sc_tip b{display:block;font-size:11.5px;font-weight:700;opacity:.75;margin-bottom:3px;}
.le_sc_tip .r{display:flex;align-items:center;gap:6px;}
.le_sc_tip .r i{width:9px;height:9px;border-radius:2px;display:inline-block;flex:0 0 auto;}

.le_sc_seg{display:flex;background:#eef1f7;border-radius:9px;padding:3px;gap:2px;margin-right:8px;}
.le_sc_seg button{
    font-size:12px;font-weight:700;color:#64748b;background:none;border:none;
    padding:5px 14px;border-radius:6px;cursor:pointer;transition:all .15s;
}
.le_sc_seg button.on{background:#fff;color:var(--brand);box-shadow:0 1px 3px rgba(15,23,42,.10);}

.le_sc_table{table-layout:fixed;width:100%;min-width:860px;}

.le_sc_table th{white-space:normal;word-break:keep-all;}

.le_sc_table td small{font-size:10.5px;color:#94a3b8;font-weight:500;margin-left:2px;}

.le_sc_table td.le_sc_grp{
    background:#f8fafc;font-weight:600;font-size:12px;color:#0f172a;letter-spacing:.02em;
    text-align:center;vertical-align:middle;border-right:1px solid #eef1f6;
}
.le_sc_table td.le_sc_grp small{
    display:block;text-align:right;font-size:10px;font-weight:500;color:#333;letter-spacing:0;margin-top:3px;
}

.le_sc_table td.le_sc_metric{color:#0f172a;}

body[data-page="store/store_compare"] .le_sc_table td.le_sc_grp,
body[data-page="store/store_compare"] .le_sc_table td.le_sc_metric{
    font-weight:600 !important;color:#111;
}
.le_sc_table tr.le_sc_strong td{background:#fcfdff;font-weight:500;color:#0f172a;}

.le_sc_table tr.le_sc_hl td:not(.le_sc_grp){background:#eceff9 !important;font-size:13px;color:#111;}
.le_sc_table tr.le_sc_hl td:not(.le_sc_grp),
.le_sc_table tr.le_sc_hl td:not(.le_sc_grp) *{color:#111 !important;}

.le_sc_table tr.le_sc_hl td.le_sc_bignum{font-size:13px !important;    color: #0058ff !important;}

.le_sc_table tr.le_sc_hl td.le_sc_bignum.le_sc_vb{color:#16a34a !important;}
.le_sc_low{font-size:10px;font-weight:700;color:#94a3b8;background:#f1f5f9;border-radius:5px;padding:2px 6px;margin-left:5px;}
.le_sc_diff{font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;}
.le_sc_diff i{font-size:11px;margin-right:1px;}
.le_sc_diff em{font-style:normal;font-size:11px;opacity:.75;margin-left:3px;}

.le_sc_table thead th:nth-child(2){background:#dbeafe;color:#1d4ed8;}
.le_sc_table thead th:nth-child(3){background:#d1fae5;color:#047857;}
.le_sc_table thead th:nth-child(4){background:#ffedd5;color:#c2410c;}
.le_sc_table tbody tr td:nth-child(5){background:#fff;}
.le_sc_table tbody tr.le_sc_strong td:nth-child(5){background:#fff;}
.le_sc_table td.le_sc_total{color:#6d28d9;font-variant-numeric:tabular-nums;}
.le_sc_table td.le_sc_total small{color:#a78bfa;}

body[data-page="store/store_compare"] .le_sc_table tbody td.td-num,
body[data-page="store/store_compare"] .le_sc_table tbody td.td-num *,
body[data-page="store/store_compare"] .le_sc_table tr.le_sc_strong td.td-num,
body[data-page="store/store_compare"] .le_sc_table tr.le_sc_strong td.td-num *{
    font-weight:600 !important;
}

.le_dash4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0 0 18px;align-items:stretch;}
@media (max-width:1200px){.le_dash4{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.le_dash4{grid-template-columns:1fr;}}

.le_dash4 > .le_total_card,
.le_dash4 > .rp-chart-card{
    height:242px;
}

.le_total_card{
    position:relative;overflow:hidden;border-radius:14px;padding:20px 22px;
    background:linear-gradient(135deg,#4f46e5 0%,#6366f1 100%);
    color:#fff;box-shadow:var(--card-shadow);display:flex;flex-direction:column;justify-content:center;gap:10px;
}
.le_total_card::after{
    content:'';position:absolute;top:-40px;right:-40px;width:140px;height:140px;border-radius:50%;
    background:rgba(255,255,255,.10);pointer-events:none;
}
.le_total_label{font-size:12.5px;font-weight:700;color:rgba(255,255,255,.85);}
.le_total_val{font-size:28px;font-weight:600;letter-spacing:-.5px;line-height:1;}
.le_total_val small{font-size:14px;font-weight:600;color:rgba(255,255,255,.75);margin-left:3px;}

.le_total_sub{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;position:relative;z-index:1;}
.le_total_sub_item{background:rgba(255,255,255,.12);border-radius:10px;padding:8px 12px;min-width:0;}
.le_total_sub_item span{display:block;font-size:12px;color:rgba(255,255,255,.75);font-weight:600;margin-bottom:2px;}

.le_total_sub_item b{font-size:13px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.le_total_sub_item b i{font-size:11px;font-weight:600;color:rgba(255,255,255,.75);font-style:normal;margin-left:2px;}

.le_chart_box_sm{height:150px;flex:0 0 150px;margin:10px 0 5px;}

.le_chart_box_sm canvas{width:100%!important;max-width:100%;}

.le_dash4{align-items:stretch;}

.le_pay_body{display:flex;align-items:center;gap:12px;height:155px;margin-top:0;}
.le_pay_legend{flex:1 1 auto;min-width:0;max-height:210px;overflow-y:auto;gap:7px;margin:0;padding-right:4px;}
.le_pay_legend li{font-size:11.5px;gap:6px;}
.le_pay_legend .lg-nm{white-space:nowrap;}
.le_pay_legend .lg-amt{min-width:0;font-size:10.5px;}
.le_pay_legend::-webkit-scrollbar{width:5px;}
.le_pay_legend::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px;}
.le_pay_donut{position:relative;flex:0 0 130px;width:130px;height:130px;}
.le_pay_donut canvas{width:130px!important;height:130px!important;}
.le_pay_donut .rp-center-name{font-size:15px;}
.le_pay_donut .rp-center-pct{font-size:13px;}

.le_type_list{max-height:150px;overflow-y:auto;}

.le_peak_badge{
    display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#4f46e5;
    background:#eef2ff;border:1px solid #e0e7ff;border-radius:20px;padding:6px 12px;margin-top:auto;
}
.le_peak_badge i{color:#f59e0b;}
.le_peak_badge span{color:#64748b;font-weight:600;margin-left:auto;}

.le_type_ic{display:inline-flex;gap:2px;margin-right:2px;vertical-align:middle;}
.le_type_ic i{display:inline-block;width:7px;height:14px;background:#e2e8f0;}
.le_type_ic i:first-child{border-radius:4px 0 0 4px;}
.le_type_ic i:last-child{border-radius:0 4px 4px 0;}

.le_type_bar{display:flex;width:100%;height:14px;border-radius:8px;overflow:hidden;background:#f1f5f9;margin:14px 0 14px;}
.le_type_seg{height:100%;transition:opacity .15s;}
.le_type_seg:hover{opacity:.85;}
.le_type_list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.le_type_list li{display:flex;align-items:center;gap:9px;font-size:12.5px;}
.le_type_cnt{font-size:11px;color:#94a3b8;font-weight:600;margin-left:auto;}

.le_type_list .lg-dot{width:11px;height:11px;border-radius:3px;flex-shrink:0;}

.rp-pay.pay-npay{color:#16a34a;}
.rp-pay.pay-easy{color:#7c3aed;}
.rp-pay.pay-gcard{color:#be185d;}
.rp-pay.pay-bank{color:#a855f7;}
.rp-pay.pay-pre{color:#0891b2;}

.le_store_row{cursor:pointer;}

#billModal .modal-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:nowrap;}
.le_modal_hd_actions{margin-left:auto;flex-shrink:0;}

.le_modal_body{padding:16px;}
.le_modal_scroll{border:1px solid #f1f5f9;border-radius:10px;overflow:hidden;}

#billModal .modal-content{height:85vh;}
#billModal .modal-body{
    overflow-y:hidden;
    display:flex;flex-direction:column;min-height:0;
}
#billModal .le_bill_summary{flex:0 0 auto;}
#billModal .le_modal_scroll{
    flex:1 1 auto;min-height:0;
    max-height:none;overflow-y:auto;
}

.le_modal_hd_title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0;}
.le_modal_sub{font-size:12px;color:#94a3b8;font-weight:600;}

.le_bill_emp_sel{
    height:34px;min-width:150px;max-width:220px;
    border:1px solid #e2e8f0;border-radius:8px;background:#fff;
    padding:0 30px 0 11px;font-size:12.5px;font-weight:600;color:#334155;
    outline:none;-webkit-appearance:none;appearance:none;cursor:pointer;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 9px center;background-size:14px 14px;
}
.le_bill_emp_sel:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(79,70,229,.12);}
.le_bill_emp_sel:disabled{background-color:#f8fafc;color:#94a3b8;cursor:default;}
@media (max-width:640px){
    .le_bill_emp_sel{min-width:120px;font-size:12px;}
}
.le_bill_summary{list-style:none;display:flex;gap:0;margin:0 0 14px;padding:14px 16px;border:1px solid #f1f5f9;border-radius:10px;background:#f8fafc;}
.le_bill_summary li{flex:1;text-align:center;padding:0 10px;border-right:1px solid #e2e8f0;}
.le_bill_summary li:last-child{border-right:none;}
.le_bill_summary li span{display:block;font-size:11.5px;color:#94a3b8;font-weight:600;margin-bottom:4px;}
.le_bill_summary li b{font-size:16px;font-weight:600;color:#0f172a;}
.le_bill_summary li b.le_brand{color:#4f46e5;}
.le_bill_summary li b.red{color:#dc2626;}
.le_bill_no{font-family:monospace;font-size:12px;color:#64748b;}

.le_popup_table thead th{
    background:#e0e7ff;
    color:#4338ca!important;
    border-bottom:1px solid #dfe3f5!important;
}

.le_receipt_btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:#eef2ff;color:#4f46e5;border:1px solid #e0e7ff;cursor:pointer;transition:all .15s;}
.le_receipt_btn:hover{background:#4f46e5;color:#fff;border-color:#4f46e5;}

.le_receipt_overlay{
    display:none;position:fixed;inset:0;z-index:1090;background:rgba(15,23,42,.55);
    flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;
}
.le_receipt_overlay.show{display:flex;}

.le_receipt{
    position:relative;width:100%;max-width:380px;
    background:#fff;border-radius:0;padding:26px 22px 22px;box-shadow:0 20px 60px rgba(0,0,0,.35);
    font-family:'Courier New',monospace;
}
.le_receipt_scroll{max-height:calc(88vh - 48px);overflow-y:auto;}
.le_receipt::before,
.le_receipt::after{
    content:"";
    position:absolute;
    left:0; right:0;
    height:9px;
    background:
        linear-gradient(135deg, #fff 33%, transparent 33%) 0 0 / 12px 12px,
        linear-gradient(225deg, #fff 33%, transparent 33%) 0 0 / 12px 12px,
        transparent;
    background-color:transparent;
    filter:drop-shadow(0 1px 0 rgba(0,0,0,.05));
}
.le_receipt::before{ top:-9px; }
.le_receipt::after{ bottom:-9px; transform:scaleY(-1); }

.le_receipt *{font-weight:400;}
.le_receipt b{color:#111;}

.le_receipt_bottom_actions{
    display:flex;align-items:center;gap:4px;background:#fff;border-radius:999px;
    padding:8px 10px;box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.le_receipt_act{display:inline-flex;align-items:center;gap:4px;font-family:inherit;font-size:11.5px;font-weight:700;color:#4f46e5;background:transparent;border:none;border-radius:999px;padding:7px 14px;cursor:pointer;}
.le_receipt_close_text{font-family:inherit;font-size:11.5px;font-weight:700;color:#64748b;background:transparent;border:none;padding:7px 17px;cursor:pointer;}

.le_receipt_head{text-align:center;margin-bottom:0;}
.le_receipt_store{font-size:15px;font-weight:700;color:#0f172a;margin-bottom:6px;}
.le_receipt_biz,.le_receipt_addr,.le_receipt_tel{font-size:10.5px;color:#555;line-height:1.6;}
.le_receipt_row{display:flex;justify-content:space-between;font-size:11px;color:#334155;padding:3px 0;}
.le_receipt_row span{color:#333;}
.le_receipt_row.discount b{color:#dc2626;}
.le_receipt_row.sub{padding-left:10px;}
.le_receipt_row.sub span{color:#333;}
.le_receipt_row .red{color:#dc2626;}
.le_receipt_divider{border-top:1px dashed #cbd5e1;margin:10px 0;}
.le_receipt_items_table{width:100%;border-collapse:collapse;font-size:11.5px;}
.le_receipt_items_table thead th{color:#94a3b8;font-weight:600;text-align:left;padding-bottom:6px;border-bottom:1px solid #f1f5f9;}
.le_receipt_items_table tbody td{padding:5px 0;color:#0f172a;font-weight:400;}
.le_receipt_items_table .text-center{text-align:center;}
.le_receipt_items_table .text-end{text-align:right;}
.le_receipt_item_nm{font-weight:700;}
.le_receipt_total{display:flex;justify-content:space-between;align-items:center;background:#eef2ff;padding:5px 14px;margin:10px 0;font-size:12px;font-weight:600;color:#4f46e5;}
.le_receipt_total b{font-weight:600;color:#4f46e5;}
.le_receipt_paysec_title{text-align:center;font-size:11px;color:#94a3b8;margin-bottom:6px;}

@media (max-width:640px){

    .le_dash4{gap:12px;}
    .le_chart_box_sm{height:200px;}
    .le_chart_box_sm canvas{width:100%!important;}

    .le_total_card{padding:16px 18px;}
    .le_total_val{font-size:24px;}
    .le_total_sub{gap:8px;}

    .le_bill_summary{flex-wrap:wrap;gap:10px 0;padding:14px 14px;}
    .le_bill_summary li{flex:0 0 50%;border-right:none;}
    .le_bill_summary li b{font-size:14px;}
}
@media (max-width:360px){

    .le_receipt{max-width:100%;padding:22px 16px 18px;}
    .le_receipt_items_table{font-size:10.5px;}
    .le_total_val{font-size:22px;}
    .le_total_sub_item{padding:7px 10px;}
    .le_total_sub_item b{font-size:13px;}
}

@media print{
    body.le_printing *{visibility:hidden;}
    body.le_printing #receiptOverlay,
    body.le_printing #receiptOverlay *{visibility:visible;}
    body.le_printing #receiptOverlay{position:absolute;inset:0;display:flex!important;background:#fff;padding:0;}
    body.le_printing .le_receipt{box-shadow:none;max-width:360px;margin:0 auto;}
    body.le_printing .le_receipt_bottom_actions{display:none!important;}
}

.store-table.cust-table{min-width:2500px;}

.cust-table thead th.th-c{text-align:center;}
.cust-table tbody td.td-c{text-align:center;}
.cust-table .cust-memo{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.pg-list li.pg-ellipsis span{cursor:default;color:#94a3b8;background:transparent;border-color:transparent;}
.pg-list li.pg-ellipsis span:hover{background:transparent;color:#94a3b8;border-color:transparent;}

body[data-page="sales/period_sales"] .rp-table .rp-amt.net{
    font-size:11px !important;
}

body[data-page="sales/yearly_sales"] #billModal .le_modal_scroll{overflow-x:auto;}
.le_emp_month_table{min-width:1180px;}
.le_emp_month_table th,
.le_emp_month_table td{white-space:nowrap;}

.le_emp_month_table .le_rank_badge{
    display:inline-flex;align-items:center;justify-content:center;
    width:18px;height:18px;border-radius:50%;font-weight:800;font-size:10px;line-height:20px;
}
.le_emp_month_table .le_rank_badge.r1{background:linear-gradient(135deg,#fde68a,#d97706);color:#fff;box-shadow:0 0 0 1px rgba(217,119,6,.35);}
.le_emp_month_table .le_rank_badge.r2{background:linear-gradient(135deg,#f1f5f9,#94a3b8);color:#fff;box-shadow:0 0 0 1px rgba(100,116,139,.35);}
.le_emp_month_table .le_rank_badge.r3{background:linear-gradient(135deg,#fdba8c,#b45309);color:#fff;box-shadow:0 0 0 1px rgba(180,83,9,.35);}

body[data-page="sales/yearly_sales"] #billModal .modal-dialog{max-width:1400px;}

body[data-page="sales/yearly_sales"] .le_emp_month_table{table-layout:fixed;}
body[data-page="sales/yearly_sales"] .le_emc_rank{width:56px;}
body[data-page="sales/yearly_sales"] .le_emc_nm{width:120px;}
body[data-page="sales/yearly_sales"] .le_emc_m{width:84px;}
body[data-page="sales/yearly_sales"] .le_emc_total{width:118px;}

body[data-page="sales/branch_sales"] .le_emp_month_table tbody tr.le_emp_focus,
body[data-page="sales/branch_sales"] .le_emp_month_table tbody tr.le_emp_focus:hover{
    background:#eef2ff;
    box-shadow:inset 3px 0 0 #4f46e5;
}

body[data-page="store/store_manage"] .branch-table td.tel-line{
    display:table-cell;
}

body[data-page="store/store_manage"] .use-badge.y{background:#dcfce7;color:#15803d;}
body[data-page="store/store_manage"] .use-badge.y::before{background:#22c55e;}

body[data-page="sales/daily_sales_by_weekday"] .le_wd_sun{color:#dc2626;}
body[data-page="sales/daily_sales_by_weekday"] .le_wd_sat{color:#2563eb;}

body[data-page="sales/hourly_sales"] .rp-grid{grid-template-columns:1fr;}

body[data-page="sales/hourly_sales"] .hr-chart-box{height:260px;flex:0 0 260px;}
/* [요구] 모바일 최적화 : 차트는 가로 100% 를 유지하고 넘치지 않게 한다.
      (칸이 많아 좁아지는 문제는 스크립트가 2~3시간 단위로 묶어 해결한다) */
body[data-page="sales/hourly_sales"] .hr-chart-box{width:100%;max-width:100%;overflow:hidden;}
body[data-page="sales/hourly_sales"] .hr-chart-box canvas{max-width:100% !important;}
/* 표시 구간(예: 04~15시) 안내 — 피크 앞에 옅게 */
body[data-page="sales/hourly_sales"] .hr-range{color:#94a3b8;font-weight:600;}
@media (max-width:640px){
    body[data-page="sales/hourly_sales"] .hr-chart-box{height:220px;flex:0 0 220px;}
}

body[data-page="sales/hourly_sales"] .le_hr_ampm{
    display:inline-block;min-width:32px;text-align:center;margin-right:8px;
    font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;vertical-align:1px;
}
body[data-page="sales/hourly_sales"] .le_hr_ampm.am{color:#b45309;background:#fef3c7;}
body[data-page="sales/hourly_sales"] .le_hr_ampm.pm{color:#6d28d9;background:#ede9fe;}

body[data-page="sales/hourly_sales"] .le_hr_peak_badge{
    display:inline-block;margin-right:8px;font-size:11px;font-weight:700;
    padding:2px 8px;border-radius:20px;vertical-align:1px;color:#1d4ed8;background:#dbeafe;
}

body[data-page="sales/hourly_sales"] .rp-table tbody tr.le_hr_peak_row,
body[data-page="sales/hourly_sales"] .rp-table tbody tr.le_hr_peak_row:hover{
    background:#f5f5f5 !important;
}

@media(max-width:1100px){
    body[data-page="sales/hourly_sales"] .rp-grid{grid-template-columns:1fr;}
}

.le_ym_select{width:90px;flex:0 0 90px;}

.le_cal_title{display:flex;align-items:center;gap:10px;}
.le_cal_title_ic{
    width:34px;height:34px;border-radius:10px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;font-size:16px;
    background:#eef2ff;color:#4f46e5;
}
.le_cal_title_txt{display:flex;flex-direction:column;line-height:1.35;}
.le_cal_title_txt b{font-size:15.5px;font-weight:700;color:#0f172a;letter-spacing:-.2px;}
.le_cal_title_txt small{font-size:11px;font-weight:600;color:#94a3b8;}

.le_cal_wrap{overflow-x:auto;}
.le_cal_grid{
    display:grid;grid-template-columns:repeat(8,minmax(100px,1fr));
    gap:1px;background:#e2e8f0;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;
    min-width:960px;
}
.le_cal_head{background:#f8fafc;padding:10px 6px;text-align:center;font-weight:700;font-size:13px;color:#334155;}
.le_cal_head.le_cal_sun{color:#dc2626;}
.le_cal_head.le_cal_sat{color:#2563eb;}
.le_cal_head.le_cal_weekhead{background:#fef9c3;color:#a16207;}

.le_cal_cell{background:#fff;padding:8px;min-height:112px;display:flex;flex-direction:column;gap:3px;}
.le_cal_cell.le_cal_empty{background:#f8fafc;}
.le_cal_cell.le_cal_sun{background:#fef2f2;}
.le_cal_cell.le_cal_sat{background:#eff6ff;}

.le_cal_cell.le_cal_best{background:#ffdfe9;box-shadow:inset 0 0 0 2px #fb563a;}
.le_cal_cell.le_cal_worst{background:#ddf5ff;box-shadow:inset 0 0 0 2px #4497ef;}

.le_cal_daynum{display:flex;align-items:center;gap:6px;font-weight:600;font-size:13px;color:#0f172a;margin-bottom:0;}
.le_cal_badge{font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:10px;color:#fff;}
.le_cal_badge.best{background:#f10000;}
.le_cal_badge.worst{background:#288cf5;}

.le_cal_badge.total{background:#4f46e5;font-weight:600;margin-left:auto;}

.le_cal_weektotal .le_cal_badge.total{background:#333;}

.le_cal_badge.staff{background:#14b8a6;font-weight:600;}

.le_cal_stat{display:flex;justify-content:space-between;gap:6px;font-size:10.5px;}
.le_cal_stat span{color:#94a3b8;font-weight:600;white-space:nowrap;}
.le_cal_stat b{font-weight:600;color:#333;white-space:nowrap;}

.le_cal_weektotal,.le_cal_footcell,.le_cal_monthtotal{background:#fefce8;}
.le_cal_weektotal .le_cal_daynum,.le_cal_footcell .le_cal_daynum{color:#a16207;}
.le_cal_monthtotal{background:#fef3c7;}
.le_cal_monthtotal .le_cal_daynum{color:#92400e;}
.le_cal_grandtotal{margin-top:auto;padding-top:5px;border-top:1px dashed #fbbf24;font-weight:700;font-size:12.5px;color:#333;text-align: right;}

.le_cal_loading{padding:40px 0;}

@media(max-width:640px){
    .le_ym_select{width:78px;flex:0 0 78px;}
}

.le_year_table .le_rank_badge{
    display:inline-flex;align-items:center;justify-content:center;
    width:18px;height:18px;border-radius:50%;font-weight:800;font-size:10px;line-height:20px;
}
.le_year_table .le_rank_badge.r1{background:linear-gradient(135deg,#fde68a,#d97706);color:#fff;box-shadow:0 0 0 1px rgba(217,119,6,.35);}
.le_year_table .le_rank_badge.r2{background:linear-gradient(135deg,#f1f5f9,#94a3b8);color:#fff;box-shadow:0 0 0 1px rgba(100,116,139,.35);}
.le_year_table .le_rank_badge.r3{background:linear-gradient(135deg,#fdba8c,#b45309);color:#fff;box-shadow:0 0 0 1px rgba(180,83,9,.35);}

.le_year_table td:nth-child(2){white-space:nowrap;}

.le_year_table{table-layout:fixed;}
.le_year_table th:nth-child(1),.le_year_table td:nth-child(1){width:50px;}
.le_year_table th:nth-child(2),.le_year_table td:nth-child(2){width:200px;}
.le_year_table th:nth-child(n+3):nth-child(-n+14),
.le_year_table td:nth-child(n+3):nth-child(-n+14){
    width:100px;
}
.le_year_table th:nth-child(15),.le_year_table td:nth-child(15){width:110px;}

.le_year_table th:nth-child(1),.le_year_table td:nth-child(1){text-align:center;}

.le_year_table .le_year_total_col{background:#eef2ff;}
.le_year_table tfoot .le_year_total_col{background:#e0e7ff;}

.le_rsv_time{
    font-variant-numeric:tabular-nums;
    font-weight:700;color:#334155;white-space:nowrap;
}

body[data-page="reservation/branch_reservations"] .rp-table td{
    white-space:nowrap;
}

.le_rsv_item{
    max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.le_rsv_memo,
body[data-page="reservation/branch_reservations"] .rp-table td.le_rsv_memo{
    max-width:260px;color:#64748b;font-size:12px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.le_rsv_badge,.le_pay_badge{
    display:inline-block;font-size:12px;font-weight:700;
    border-radius:20px;padding:3px 11px;white-space:nowrap;
}

.le_rsv_badge.le_st_booked{background:#f0fdf4;color:#15803d;}
.le_rsv_badge.le_st_wait  {background:#fffbeb;color:#b45309;}
.le_rsv_badge.le_st_doing {background:#fff7ed;color:#c2410c;}
.le_rsv_badge.le_st_done  {background:#eff6ff;color:#1d4ed8;}
.le_rsv_badge.le_st_noshow{background:#fef2f2;color:#b91c1c;}
.le_rsv_badge.le_st_cancel{background:#fdf2f8;color:#be185d;}

.rp-cnt-badge.le_type_naver{background:#f0fdf4;color:#15803d;}
.rp-cnt-badge.le_type_normal{background:#eff6ff;color:#1d4ed8;}

.le_pay_badge.le_pay_done{background:#eff6ff;color:#1d4ed8;}
.le_pay_badge.le_pay_pre {background:#fffbeb;color:#b45309;}
.le_pay_badge.le_pay_none{background:#f8fafc;color:#94a3b8;}

body[data-page="reservation/branch_reservations"] .le_type_list{gap:1px;}

.le_emp_status{
    display:inline-block;font-size:12px;font-weight:700;
    border-radius:20px;padding:3px 11px;white-space:nowrap;
}
.le_emp_status.active{background:#f0fdf4;color:#15803d;}
.le_emp_status.resigned{background:#f8fafc;color:#94a3b8;}

body[data-page="staff/branch_staff"] .rp-table td{white-space:nowrap;}

body[data-page="staff/branch_staff"] .rp-sum-card,
body[data-page="inventory/branch_stock"] .rp-sum-card{padding:16px 18px;}
body[data-page="staff/branch_staff"] .rp-sum-val,
body[data-page="inventory/branch_stock"] .rp-sum-val{font-size:26px;margin-top:2px;}

.le_naver_badge{
    display:inline-flex;align-items:center;justify-content:center;
    width:16px;height:16px;border-radius:50%;
    background:#03c75a;color:#fff;font-size:10px;font-weight:800;
    line-height:1;vertical-align:middle;
}

.le_staff_table .le_rank_badge{
    display:inline-flex;align-items:center;justify-content:center;
    width:18px;height:18px;border-radius:50%;font-weight:800;font-size:10px;
}
.le_staff_table .le_rank_badge.r1{background:linear-gradient(135deg,#fde68a,#d97706);color:#fff;box-shadow:0 0 0 1px rgba(217,119,6,.35);}
.le_staff_table .le_rank_badge.r2{background:linear-gradient(135deg,#f1f5f9,#94a3b8);color:#fff;box-shadow:0 0 0 1px rgba(100,116,139,.35);}
.le_staff_table .le_rank_badge.r3{background:linear-gradient(135deg,#fdba8c,#b45309);color:#fff;box-shadow:0 0 0 1px rgba(180,83,9,.35);}
.le_staff_table th:nth-child(1),.le_staff_table td:nth-child(1){text-align:center;width:50px;}

.le_staff_table .rp-cnt-badge.le_cnt_badge_red{background:#fef2f2;color:#dc2626;}

.le_staff_table .rp-cnt-badge.le_contrib_badge{background:#f5f3ff;color:#7c3aed;}

.le_staff_table .rp-cnt-badge.le_valid_badge{background:#fff7ed;color:#ea580c;}

.le_bs_table .le_rank_badge{
    display:inline-flex;align-items:center;justify-content:center;
    width:18px;height:18px;border-radius:50%;font-weight:800;font-size:10px;
}
.le_bs_table .le_rank_badge.r1{background:linear-gradient(135deg,#fde68a,#d97706);color:#fff;box-shadow:0 0 0 1px rgba(217,119,6,.35);}
.le_bs_table .le_rank_badge.r2{background:linear-gradient(135deg,#f1f5f9,#94a3b8);color:#fff;box-shadow:0 0 0 1px rgba(100,116,139,.35);}
.le_bs_table .le_rank_badge.r3{background:linear-gradient(135deg,#fdba8c,#b45309);color:#fff;box-shadow:0 0 0 1px rgba(180,83,9,.35);}
.le_bs_table th:nth-child(1),.le_bs_table td:nth-child(1){text-align:center;width:50px;}

.le_period_table .le_rank_badge{
    display:inline-flex;align-items:center;justify-content:center;
    width:18px;height:18px;border-radius:50%;font-weight:800;font-size:10px;
}
.le_period_table .le_rank_badge.r1{background:linear-gradient(135deg,#fde68a,#d97706);color:#fff;box-shadow:0 0 0 1px rgba(217,119,6,.35);}
.le_period_table .le_rank_badge.r2{background:linear-gradient(135deg,#f1f5f9,#94a3b8);color:#fff;box-shadow:0 0 0 1px rgba(100,116,139,.35);}
.le_period_table .le_rank_badge.r3{background:linear-gradient(135deg,#fdba8c,#b45309);color:#fff;box-shadow:0 0 0 1px rgba(180,83,9,.35);}
.le_period_table th:nth-child(1),.le_period_table td:nth-child(1){text-align:center;width:50px;}

.le_wd_table .le_rank_badge{
    display:inline-flex;align-items:center;justify-content:center;
    width:18px;height:18px;border-radius:50%;font-weight:800;font-size:10px;
}
.le_wd_table .le_rank_badge.r1{background:linear-gradient(135deg,#fde68a,#d97706);color:#fff;box-shadow:0 0 0 1px rgba(217,119,6,.35);}
.le_wd_table .le_rank_badge.r2{background:linear-gradient(135deg,#f1f5f9,#94a3b8);color:#fff;box-shadow:0 0 0 1px rgba(100,116,139,.35);}
.le_wd_table .le_rank_badge.r3{background:linear-gradient(135deg,#fdba8c,#b45309);color:#fff;box-shadow:0 0 0 1px rgba(180,83,9,.35);}
.le_wd_table th:nth-child(1),.le_wd_table td:nth-child(1){text-align:center;width:50px;}

.le_pathsales_table .le_rank_badge{
    display:inline-flex;align-items:center;justify-content:center;
    width:18px;height:18px;border-radius:50%;font-weight:800;font-size:10px;
}
.le_pathsales_table .le_rank_badge.r1{background:linear-gradient(135deg,#fde68a,#d97706);color:#fff;box-shadow:0 0 0 1px rgba(217,119,6,.35);}
.le_pathsales_table .le_rank_badge.r2{background:linear-gradient(135deg,#f1f5f9,#94a3b8);color:#fff;box-shadow:0 0 0 1px rgba(100,116,139,.35);}
.le_pathsales_table .le_rank_badge.r3{background:linear-gradient(135deg,#fdba8c,#b45309);color:#fff;box-shadow:0 0 0 1px rgba(180,83,9,.35);}
.le_pathsales_table th:nth-child(1),.le_pathsales_table td:nth-child(1){text-align:center;width:50px;}

.le_bs_table .rp-cnt-badge.le_contrib_badge{background:#f5f3ff;color:#7c3aed;}

.rp-sum-ic.custcancel{background:linear-gradient(135deg,#ec4899,#f472b6);}

.rp-sum-ic.gender{background:linear-gradient(135deg,#8b5cf6,#a78bfa);}
.rp-sum-ic.repeat{background:linear-gradient(135deg,#14b8a6,#2dd4bf);}

.rp-gender-val{display:flex;flex-direction:column;gap:3px;font-size:13.5px;line-height:1.3;}
.rp-gender-item{display:inline-flex;align-items:center;gap:3px;white-space:nowrap;}
.rp-gender-item.f{color:#ec4899;}
.rp-gender-item.m{color:#2563eb;}
.rp-gender-item i{font-size:12px;}

.rp-gender-none{margin-left:3px;font-size:11.5px;font-weight:600;color:#94a3b8;}

body[data-page="customer/branch_customers"] .le_op_select{width:60px;padding:0 10px 0 5px;}

body[data-page="customer/branch_customers"] .le_num_input{width:81px !important;}
body[data-page="customer/branch_customers"] #valVisitCnt{width:48px !important;}

body[data-page="customer/branch_customers"] .le_store_select{width:180px;}
@media (min-width:1301px){
    body[data-page="customer/branch_customers"] .le_store_select{width:280px;}
}

body[data-page="customer/branch_customers"] .search-card .row.g-3 > .col-12{
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding-bottom:2px;
}
body[data-page="customer/branch_customers"] .search-card .row.g-3 > .col-12 > .d-flex{
    flex-wrap:nowrap !important;
    gap:10px !important;
    width:100%;
}
body[data-page="customer/branch_customers"] .search-card .row.g-3 > .col-12 > .d-flex > div{
    flex:0 0 auto;min-width:0;
}
body[data-page="customer/branch_customers"] .search-card .btn-search{flex:0 0 auto;}

@media (max-width:1300px){
    body[data-page="customer/branch_customers"] .search-card .row.g-3 > .col-12 > .d-flex{
        flex-wrap:wrap !important;
    }
}

body[data-page="customer/branch_customers"] .le_cust_kw{
    flex:1 1 auto !important;min-width:180px;max-width:320px;
}

.le_adv_btn{
    flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
    height:32px;padding:0 14px;
    background:#fff;color:var(--brand);border:1px solid #c7d2fe;border-radius:10px;
    font-size:12.5px;font-weight:500;cursor:pointer;transition:all .15s;
}
.le_adv_btn:hover{background:#eef2ff;border-color:#a5b4fc;}
.le_adv_btn.on{background:#eef2ff;border-color:#a5b4fc;}
.le_adv_cnt{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:18px;height:18px;padding:0 5px;border-radius:9px;
    background:var(--brand);color:#fff;font-size:11px;font-weight:700;
}
.le_adv_cnt[hidden]{display:none;}
body[data-page="customer/branch_customers"] .le_adv_caret{font-size:13px;}

.le_staff_off{
    background:#f8fafc;color:#94a3b8;cursor:not-allowed;
}
body[data-page="customer/branch_customers"] .le_staff_select{width:150px;}

body[data-page="customer/branch_customers"] .le_sex_select{width:80px;}
body[data-page="customer/branch_customers"] .le_grade_select{width:130px;}

body[data-page="customer/branch_customers"] .le_adv_panel{
    margin-top:12px;padding-top:12px;border-top:1px dashed #e2e8f0;
}
body[data-page="customer/branch_customers"] .le_adv_panel[hidden]{display:none;}
body[data-page="customer/branch_customers"] .le_adv_clear{
    margin-left:auto;height:36px;padding:0 14px;font-size:12.5px;
}

body[data-page="customer/branch_customers"] .le_adv_chips{
    display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;
}
body[data-page="customer/branch_customers"] .le_adv_chips[hidden]{display:none;}
body[data-page="customer/branch_customers"] .le_chip{
    display:inline-flex;align-items:center;gap:4px;
    background:#eef2ff;color:#3730a3;border:1px solid #e0e7ff;border-radius:20px;
    padding:4px 6px 4px 12px;font-size:12px;font-weight:600;white-space:nowrap;
}
body[data-page="customer/branch_customers"] .le_chip_x{
    display:inline-flex;align-items:center;justify-content:center;
    width:18px;height:18px;border:none;border-radius:50%;
    background:transparent;color:#6366f1;font-size:13px;cursor:pointer;padding:0;
}
body[data-page="customer/branch_customers"] .le_chip_x:hover{background:#c7d2fe;color:#312e81;}

body[data-page="customer/branch_customers"] .rp-table td{white-space:nowrap;}

body[data-page="customer/branch_customers"] .le_num_input::-webkit-outer-spin-button,
body[data-page="customer/branch_customers"] .le_num_input::-webkit-inner-spin-button{
    -webkit-appearance:none;margin:0;
}

body[data-page="customer/branch_customers"] .le_num_input{-moz-appearance:textfield;appearance:textfield;}

.le_stock_table td.td-c{text-align:center;}
.le_stock_table thead th{text-align:center;}

.le_stock_table thead tr:first-child th{vertical-align:middle;}
.le_stock_table .rp-amt.cancel{color:#dc2626;font-weight:700;}

body[data-page="inventory/branch_stock"] .use-badge.y{background:#dcfce7;color:#15803d;}
body[data-page="inventory/branch_stock"] .use-badge.y::before{background:#22c55e;}

body[data-page="inventory/branch_stock"] .le_adv_panel{
    margin-top:12px;padding-top:12px;border-top:1px dashed #e2e8f0;
}
body[data-page="inventory/branch_stock"] .le_adv_panel[hidden]{display:none;}
body[data-page="inventory/branch_stock"] .le_adv_caret{font-size:13px;}

body[data-page="inventory/branch_stock"] .le_num_input{width:81px !important;}
body[data-page="inventory/branch_stock"] .le_op_select{width:60px;padding:0 10px 0 5px;}

body[data-page="inventory/branch_stock"] .le_num_input::-webkit-outer-spin-button,
body[data-page="inventory/branch_stock"] .le_num_input::-webkit-inner-spin-button{
    -webkit-appearance:none;margin:0;
}
body[data-page="inventory/branch_stock"] .le_num_input{-moz-appearance:textfield;appearance:textfield;}

body[data-page="inventory/branch_stock"] .le_adv_clear{
    margin-left:auto;height:36px;padding:0 14px;font-size:12.5px;
}

body[data-page="inventory/branch_stock"] .le_adv_chips{
    display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;
}
body[data-page="inventory/branch_stock"] .le_adv_chips[hidden]{display:none;}
body[data-page="inventory/branch_stock"] .le_chip{
    display:inline-flex;align-items:center;gap:4px;
    background:#eef2ff;color:#3730a3;border:1px solid #e0e7ff;border-radius:20px;
    padding:4px 6px 4px 12px;font-size:12px;font-weight:600;white-space:nowrap;
}
body[data-page="inventory/branch_stock"] .le_chip_x{
    display:inline-flex;align-items:center;justify-content:center;
    width:18px;height:18px;border:none;border-radius:50%;
    background:transparent;color:#6366f1;font-size:13px;cursor:pointer;padding:0;
}
body[data-page="inventory/branch_stock"] .le_chip_x:hover{background:#c7d2fe;color:#312e81;}

body[data-page="store/notice"] .le_mock_notice{
    display:flex;align-items:center;gap:8px;
    background:#fffbeb;border:1px solid #fde68a;color:#92400e;
    font-size:12.5px;font-weight:600;border-radius:10px;padding:10px 14px;margin:0 0 14px;
}
body[data-page="store/notice"] .le_mock_notice i{color:#d97706;font-size:14px;}

body[data-page="store/notice"] .le_notice_grid{
    display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start;
}
@media (max-width:1100px){
    body[data-page="store/notice"] .le_notice_grid{grid-template-columns:1fr;}
}

.le_ntc_badge{display:inline-block;font-size:11.5px;font-weight:500;padding:2px 10px;border-radius:5px;white-space:nowrap;}
.le_ntc_badge.notice{background:#fef2f2;color:#dc2626;}
.le_ntc_badge.normal{background:#f1f5f9;color:#64748b;}

.le_notice_table{table-layout:fixed;}
.le_notice_table th:nth-child(1),.le_notice_table td:nth-child(1){width:56px;}
.le_notice_table th:nth-child(2),.le_notice_table td:nth-child(2){width:200px;}

.le_notice_table th:nth-child(4),.le_notice_table td:nth-child(4){width:70px;}
.le_notice_table th:nth-child(5),.le_notice_table td:nth-child(5){width:88px;}
.le_notice_table th:nth-child(6),.le_notice_table td:nth-child(6){width:120px;}
.le_notice_table th:nth-child(7),.le_notice_table td:nth-child(7){width:120px;}

.le_ntc_read{
    display:inline-flex;align-items:center;gap:4px;
    font-size:11.5px;font-weight:500;padding:2px 10px;border-radius:5px;
    white-space:nowrap;cursor:default;vertical-align:middle;
}
.le_ntc_read i{font-size:10.5px;line-height:normal;}

.le_ntc_read_hint{
    display:flex;align-items:center;gap:4px;
    font-size:12px;color:#6663a9;font-weight:400;line-height:1.4;

}
.le_ntc_read_hint i{ font-size:12px;color:#6663a9;}

.le_ntc_read_hint .le_ntc_read{font-size:11px;padding:1px 7px;}
.le_ntc_read.on{background:#ecfdf5;color:#059669;}
.le_ntc_read.off{background:#fef2f2;color:#dc2626;}

.le_notice_table .le_ntc_title_cell{
    display:flex;align-items:center;gap:7px;min-width:0;max-width:100%;
    font-weight:600;color:#1e293b;
}
.le_notice_table .le_ntc_title_cell .le_ntc_badge{flex-shrink:0;}
.le_notice_table .le_ntc_title_cell .le_ntc_title_txt{
    flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

.le_ntc_confirm{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:20px;white-space:nowrap;}
.le_ntc_confirm.miss{background:#fef2f2;color:#dc2626;}
.le_ntc_confirm.ok{background:#f0fdf4;color:#15803d;}

.le_notice_table .le_ntc_preview_cell{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#64748b;}
.le_notice_table tbody tr:hover{background:#f8fafc;}

.le_confirm_card{padding:16px 16px 10px;display:flex;flex-direction:column;height:100%;}
.le_confirm_head{margin-bottom:10px;}
.le_confirm_title{font-size:14.5px;font-weight:800;color:#1e293b;display:flex;align-items:center;gap:7px;}
.le_confirm_title i{color:var(--brand);}
.le_confirm_sub{font-size:12px;color:#64748b;font-weight:600;margin-top:4px;}
.le_confirm_sub b{color:#1e293b;font-weight:800;}
.le_confirm_sub b.miss{color:#dc2626;}
.le_confirm_scroll{max-height:520px;overflow-y:auto;border-top:1px solid #f1f5f9;}
.le_confirm_table{width:100%;border-collapse:collapse;font-size:12px;}
.le_confirm_table thead th{position:sticky;top:0;background:#f8fafc;color:#64748b;font-weight:700;padding:8px 10px;text-align:left;border-bottom:1px solid #f1f5f9;}
.le_confirm_table tbody td{padding:8px 10px;border-bottom:1px solid #f8fafc;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;}
.le_confirm_table .th-c{text-align:center;}

.le_ntc_row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:14px;}
.le_ntc_label{font-size:12.5px;font-weight:700;color:#334155;margin-bottom:6px;}
.le_ntc_label.mt{margin-top:14px;}
.le_ntc_target{display:flex;gap:16px;align-items:center;}
.le_ntc_radio{display:flex;align-items:center;gap:6px;font-size:13px;color:#334155;font-weight:600;cursor:pointer;}

.le_ntc_store_readonly{display:flex;align-items:center;background:#f8fafc;color:#334155;font-weight:700;}

.le_ntc_row2.mt{margin-top:16px;}

#noticeModal{z-index:1055;}
#noticeDetailModal, #nbNoticeModal{z-index:1075;}

#legalModal, #privacyModal{z-index:1075;}

#legalModal .modal-title, #privacyModal .modal-title{color:#1e293b;}
#legalModal .modal-content, #privacyModal .modal-content{height:90vh;}
#legalModal .modal-body.le_legal_body, #privacyModal .modal-body.le_legal_body{
    display:flex;padding:0;flex:1 1 auto;min-height:0;overflow:hidden;
}

#legalModal .modal-body.le_legal_body.le_legal_static,
#privacyModal .modal-body.le_legal_body.le_legal_static{
    overflow-y:auto;overflow-x:hidden;padding:26px 28px;margin-bottom:35px;
}
.le_legal_static .contents_box{max-width:100%;}

.le_legal_static .foot_tit{display:none;}
.le_legal_static .foot_agree_cont{
    font-size:13.5px;line-height:1.85;color:#334155;word-break:break-word;
}

.le_legal_static .agree_h3{
    margin:32px 0 14px;padding:9px 14px;
    font-size:15.5px;font-weight:700;color:#1e293b;
    background:#f8fafc;border-left:4px solid var(--brand,#4f46e5);border-radius:0 8px 8px 0;
}
.le_legal_static .foot_agree_cont > .agree_h3:first-child{margin-top:0;}
.le_legal_static .foot_agree_cont strong{
    display:block;margin:22px 0 8px;font-size:14.5px;font-weight:700;color:#1e293b;
}
.le_legal_static .foot_agree_cont strong:first-of-type{margin-top:0;}
.le_legal_static .agree_view{
    margin:0 0 4px;padding:14px 16px;
    background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px;
    color:#475569;font-size:13px;line-height:1.8;
}

#noticeModal .modal-content, #noticeDetailModal .modal-content, #nbNoticeModal .modal-content{height:85vh;}

#noticeDetailModal .modal-body, #nbNoticeModal .modal-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;}
#noticeModal .modal-body.le_ntc_modal_body{display:flex;align-items:stretch;padding:0;flex:1 1 auto;min-height:0;overflow:hidden;}
.le_ntc_modal_main{flex:1 1 auto;min-width:0;padding:20px 22px;overflow-y:auto;}
#ntcStoreEditWrap{margin-bottom:16px;}

.le_ntc_modal_side{
    width:280px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;
    border-left:1px solid #eef0f4;background:#fafbfc;
}
.le_ntc_side_head{
    display:flex;align-items:center;justify-content:space-between;
    padding:20px 16px 10px;flex-shrink:0;
}
.le_ntc_store_all{display:flex;align-items:center;gap:5px;font-size:12px;color:#4f46e5;font-weight:700;cursor:pointer;}
.le_ntc_side_search{padding:0 16px 10px;flex-shrink:0;}
.le_ntc_side_search input{
    width:100%;height:30px;border:1px solid #e2e8f0;border-radius:8px;
    padding:0 10px;font-size:12px;color:#1e293b;outline:none;background:#fff;
}
.le_ntc_side_search input:focus{border-color:var(--brand);}

.le_ntc_store_pick{
    flex:1 1 auto;overflow-y:auto;min-height:0;
    border-top:1px solid #eef0f4;padding:4px 16px;
}
.le_ntc_store_pick label{
    display:flex;align-items:center;gap:7px;padding:7px 0;
    font-size:12.5px;color:#334155;font-weight:600;cursor:pointer;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    border-bottom:1px solid #f4f5f7;
}
.le_ntc_store_pick label:last-child{border-bottom:none;}
.le_ntc_store_selcnt{
    flex-shrink:0;padding:9px 16px;border-top:1px solid #eef0f4;
    font-size:11px;color:#94a3b8;
}

.le_ntc_editor{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;}

.le_ntc_file_chip.pending{background:#f1f5f9;color:#64748b;border:1px dashed #cbd5e1;cursor:default;}
.le_ntc_file_chip.pending em{font-style:normal;margin-left:6px;font-size:11px;color:#94a3b8;}

.le_ntc_editor .ql-toolbar.ql-snow{border:none;border-bottom:1px solid #e2e8f0;background:#f8fafc;}
.le_ntc_editor .ql-container.ql-snow{border:none;font-family:inherit;font-size:13px;}
.le_ntc_editor .ql-editor{min-height:255px;max-height:400px;overflow-y:auto;padding:14px;color:#1e293b;line-height:1.6;}
.le_ntc_editor .ql-editor.ql-blank::before{color:#94a3b8;font-style:normal;left:14px;right:14px;}
.le_ntc_editor .ql-editor img{max-width:100%;}

.le_ntc_toolbar{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;}
.le_ntc_toolbar button{width:28px;height:28px;border:none;background:transparent;border-radius:6px;color:#475569;font-size:13px;cursor:pointer;}
.le_ntc_toolbar button:hover{background:#e2e8f0;}
.le_ntc_tb_sel{border:1px solid #e2e8f0;border-radius:6px;background:#fff;font-size:12px;padding:3px 6px;color:#334155;}
.le_ntc_tb_sel.sm{width:60px;}
.le_ntc_tb_sep{width:1px;height:18px;background:#e2e8f0;margin:0 2px;}

.le_ntc_textarea{width:100%;min-height:255px;max-height:400px;overflow-y:auto;border:none;outline:none;padding:14px;font-size:13px;color:#1e293b;font-family:inherit;line-height:1.6;}
.le_ntc_textarea:empty:before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none;}
.le_ntc_textarea img{max-width:100%;}
.le_ntc_textarea table td{min-width:40px;}
.le_ntc_charcount{text-align:right;font-size:11.5px;color:#94a3b8;padding:0 12px 8px;}
.le_ntc_charcount.over{color:#dc2626;font-weight:700;}

.le_ntc_bytes{font-size:11px;font-weight:600;color:#94a3b8;margin-left:4px;}
.le_ntc_bytes.over{color:#dc2626;}

.le_ntc_color_input{position:absolute;width:0;height:0;opacity:0;pointer-events:none;}

.le_ntc_file_row{display:flex;align-items:center;justify-content:space-between;margin-top:16px;}
.le_ntc_file_add{border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:6px 14px;font-size:12.5px;font-weight:700;color:#334155;cursor:pointer;}
.le_ntc_file_add:hover{background:#f8fafc;}
.le_ntc_file_add:disabled{opacity:.5;cursor:not-allowed;}
.le_ntc_file_hint{margin-top:8px;padding:10px 12px;background:#f8fafc;border-radius:8px;color:#94a3b8;font-size:12px;display:flex;align-items:center;gap:6px;}

.le_ntc_file_list{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;}
.le_ntc_file_chip.removable{padding-right:5px;}
.le_ntc_file_x{border:none;background:transparent;color:#94a3b8;font-size:14px;line-height:1;cursor:pointer;padding:0 2px;margin-left:2px;}
.le_ntc_file_x:hover{color:#dc2626;}
.le_ntc_file_hint2{color:#94a3b8;font-size:12px;}
a.le_ntc_file_chip{text-decoration:none;cursor:pointer;}
a.le_ntc_file_chip:hover{background:#e2e8f0;}

.qa-btn.preview{background:#fff;color:#334155;border:1px solid #e2e8f0;display:inline-flex;align-items:center;gap:5px;}
.qa-btn.preview:hover{background:#f8fafc;}

#noticeModal .qa-footer .qa-btn.preview{margin-right:auto;}

#noticeModal .qa-footer .qa-btn, #noticeDetailModal .qa-footer .qa-btn, #nbNoticeModal .qa-footer .qa-btn{
    min-width:104px;justify-content:center;
}

.qa-btn.print{background:#fff;color:#334155;border:1px solid #e2e8f0;display:inline-flex;align-items:center;gap:5px;}
.qa-btn.print:hover{background:#f8fafc;}
#noticeDetailModal .qa-footer .qa-btn.print, #nbNoticeModal .qa-footer .qa-btn.print{margin-right:auto;}

.qa-btn.danger{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;display:inline-flex;align-items:center;gap:5px;}
.qa-btn.danger:hover{background:#fee2e2;}

.le_ntc_row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.le_ntc_author_row{display:flex;gap:6px;}
.le_ntc_author_row .qa-input{flex:1 1 auto;min-width:0;}
.le_ntc_author_row .qa-input:disabled{background:#f8fafc;color:#64748b;}
.le_ntc_author_btn{
    flex:0 0 auto;border:1px solid #e2e8f0;background:#fff;color:#334155;
    border-radius:9px;padding:0 14px;font-size:12.5px;font-weight:700;cursor:pointer;
}
.le_ntc_author_btn:hover{background:#f8fafc;}
.le_ntc_author_btn.locked{background:var(--brand);color:#fff;border-color:var(--brand);}
.le_ntc_author_btn.locked:hover{background:var(--brand-2);}

@media (min-width:992px){
    .modal-dialog.le_ntc_modal{max-width:1100px;}
}

@media (min-width:992px){
    .modal-dialog.le_legal_modal{max-width:900px;}
}

.le_ntc_file_chip{
    display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:500;
    padding:3px 9px;border-radius:20px;background:#f1f5f9;color:#475569;white-space:nowrap;
}
.le_ntc_file_max{font-weight:600;color:#94a3b8;font-size:11.5px;}

.le_drawer_dim{
    position:fixed;inset:0;background:rgba(15,23,42,.45);
    opacity:0;visibility:hidden;transition:opacity .25s;z-index:1050;
}
.le_drawer_dim.show{opacity:1;visibility:visible;}
.le_drawer{
    position:fixed;top:0;right:0;width:560px;max-width:92vw;height:100vh;
    background:#fff;box-shadow:-8px 0 32px rgba(15,23,42,.18);
    display:flex;flex-direction:column;
    transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);
    z-index:1051;
}
.le_drawer.open{transform:translateX(0);}
.le_drawer_head{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 22px;border-bottom:1px solid #f1f5f9;flex-shrink:0;
}
.le_drawer_title{font-size:15.5px;font-weight:800;color:#1e293b;display:flex;align-items:center;gap:8px;}
.le_drawer_title i{color:var(--brand);}
.le_drawer_close{
    width:32px;height:32px;border:none;background:#f8fafc;border-radius:8px;
    color:#64748b;font-size:14px;cursor:pointer;
}
.le_drawer_close:hover{background:#f1f5f9;color:#334155;}
.le_drawer_body{flex:1 1 auto;overflow-y:auto;padding:20px 22px;}
.le_drawer_foot{
    display:flex;justify-content:flex-end;gap:8px;
    padding:14px 22px;border-top:1px solid #f1f5f9;flex-shrink:0;
}

.le_ntc_detail_head{
    flex:0 0 auto;
    display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
    padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid #f1f5f9;
}
.le_ntc_detail_store{font-size:12.5px;color:#64748b;margin-bottom:6px;}

.le_ntc_detail_more{font-size:11px;font-weight:700;color:#64748b;background:#f1f5f9;border-radius:5px;padding:1px 7px;margin-left:4px;}
.le_ntc_detail_title{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:600;color:#1e293b;}
.le_ntc_detail_meta{font-size:12px;color:#94a3b8;white-space:nowrap;flex-shrink:0;padding-top:2px;}
.le_ntc_detail_content{
    flex:1 1 auto;min-height:0;overflow-y:auto;
    padding:4px 2px;font-size:13.5px;line-height:1.7;color:#334155;
    word-break:break-word;
}
.le_ntc_detail_content p{margin:0 0 10px;}
.le_ntc_detail_files{
    flex:0 0 auto;
    margin-top:18px;padding-top:14px;border-top:1px solid #f1f5f9;
}
.le_ntc_detail_files .le_ntc_file_chip{margin-right:6px;margin-bottom:6px;}

/* ==========================================================================
      [요구] 매장 공지 팝업(등록·수정 / 상세보기) 모바일 최적화
      문제 : 등록·수정 팝업이 좌우 2단(본문 + 매장선택 280px 고정)이라, 좁은 화면에서
                  오른쪽 280px 이 자리를 그대로 차지하고 왼쪽 본문이 130px 남짓으로 찌그러져
                  에디터 툴바가 세로로 접히고 입력칸을 쓸 수 없었다.
      해결 : 세로 2단으로 쌓고, 매장 선택은 높이를 제한해 본문이 충분한 폭을 갖게 한다.
      ========================================================================== */
@media (max-width:768px){
    /* 화면을 최대한 쓰도록 팝업을 넓히고 여백을 줄인다 */
    #noticeModal .modal-dialog, #noticeDetailModal .modal-dialog{margin:8px;max-width:none;}
    #noticeModal .modal-content, #noticeDetailModal .modal-content{height:92vh;}
    #noticeModal .modal-hd, #noticeDetailModal .modal-hd{padding:12px 14px;}
    #noticeModal .modal-title, #noticeDetailModal .modal-title{font-size:15px;}

    /* ---- 등록·수정 팝업 : 좌우 2단 → 위아래 2단 ---- */
    #noticeModal .modal-body.le_ntc_modal_body{flex-direction:column;overflow-y:auto;}
    .le_ntc_modal_main{flex:0 0 auto;padding:14px;overflow:visible;}
    .le_ntc_modal_side{
        width:auto;flex:0 0 auto;
        border-left:none;border-top:1px solid #eef0f4;
    }
    .le_ntc_side_head{padding:14px 14px 8px;}
    .le_ntc_side_search{padding:0 14px 8px;}
    /* 매장 목록이 화면을 다 먹지 않도록 높이를 제한하고 그 안에서만 스크롤 */
    .le_ntc_store_pick{padding:4px 14px;max-height:34vh;}
    .le_ntc_store_selcnt{padding:8px 14px;}

    /* 작성자/중요도는 한 줄에 둘씩이면 좁아서 위아래로 쌓는다 */
    .le_ntc_row2{grid-template-columns:1fr;gap:10px;}

    /* 에디터 : 높이를 줄여 아래 첨부파일·매장선택이 화면 안에 들어오게 한다 */
    .le_ntc_editor .ql-editor{min-height:150px;max-height:240px;padding:12px;}
    .le_ntc_editor .ql-toolbar.ql-snow{padding:6px 8px;}
    .le_ntc_editor .ql-toolbar.ql-snow button{width:26px;height:26px;padding:2px;}

    /* 첨부파일 줄 : 라벨/버튼이 서로 밀지 않게 줄바꿈 허용 */
    .le_ntc_file_row{flex-wrap:wrap;gap:8px;}

    /* ---- 상세보기 팝업 ---- */
    #noticeDetailModal .modal-body{padding:14px;}
    /* 제목과 등록정보가 한 줄에서 서로 밀어내던 것을 위아래로 */
    .le_ntc_detail_head{flex-direction:column;gap:6px;padding-bottom:10px;margin-bottom:10px;}
    .le_ntc_detail_title{font-size:15px;}
    .le_ntc_detail_meta{white-space:normal;padding-top:0;}

    /* ---- 두 팝업 공통 : 하단 버튼이 넘치지 않게 ---- */
    #noticeModal .qa-footer, #noticeDetailModal .qa-footer{
        flex-wrap:wrap;gap:6px;padding:10px 12px;
    }
    #noticeModal .qa-btn, #noticeDetailModal .qa-btn{
        flex:1 1 auto;justify-content:center;padding:9px 10px;font-size:12.5px;
    }
}

body[data-page="store/store_info"] .le_si_store{width:260px;}
body[data-page="store/store_info"] .le_si_kw{flex:1 1 auto !important;min-width:180px;max-width:300px;}

.le_si_grid{display:grid;grid-template-columns:0.7fr 1fr;gap:14px;align-items:start;}
.le_si_left{display:flex;flex-direction:column;gap:14px;min-width:0;}
@media (max-width:1100px){ .le_si_grid{grid-template-columns:1fr;} }

.le_si_card{padding:18px 20px;border:1px solid #eceff4;border-radius:14px;background:#fff;}

.le_si_tit{display:flex;align-items:center;gap:9px;font-size:15.5px;font-weight:600;color:#0f172a;margin-bottom:10px;}
.le_si_tit::before{content:"";width:3px;height:15px;border-radius:2px;background:var(--brand,#4f46e5);}

.le_si_tit_hint{font-size:12px;font-weight:400;color:#6663a9;padding-top:2px;
  line-height:1.4;}

.le_si_tel_row{display:flex;align-items:center;gap:12px;}
.le_si_tel_ic{width:36px;height:36px;border-radius:10px;background:#f0f1fe;color:var(--brand,#4f46e5);
    display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}

.le_si_tel_body{min-width:0;display:flex;align-items:center;flex-wrap:wrap;column-gap:14px;row-gap:6px;}
.le_si_tel{font-size:19px;font-weight:600;color:#0f172a;font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap;letter-spacing: -0.03em;}

.le_si_tel_sub{font-size:13px;font-weight:600;color:#64748b;margin-left:8px;white-space:nowrap;}
.le_si_tel_sub i{font-size:12px;color:#94a3b8;margin-right:2px;}

.le_si_meta{display:flex;flex-wrap:wrap;gap:6px;}
.le_si_badge{display:inline-flex;align-items:center;gap:6px;
    background:#f8fafc;border:1px solid #eceff4;border-radius:7px;
    padding:4px 10px;font-size:12px;color:#334155;white-space:nowrap;}
.le_si_badge b{font-size:11px;font-weight:600;color:#94a3b8;}
.le_si_badge span{font-variant-numeric:tabular-nums;font-weight:600;}

.le_si_hour{display:flex;align-items:center;justify-content:space-between;gap:12px;background: #f8fafc;border-radius: 6px;
    padding:4px 10px;border-bottom:2px solid #fff;flex-wrap:wrap;}
.le_si_hour:last-child{border-bottom:none;}
.le_si_hour_days{display:flex;flex-wrap:wrap;gap:3px;}

.le_si_day{display:inline-flex;align-items:center;justify-content:center;
    min-width:24px;height:24px;padding:0 6px;border-radius:6px;
    background:#fff;border:1px solid #e6eaf0;
    font-size:12px;font-weight:700;line-height:1;}
.le_si_day.wd{color:#334155;}
.le_si_day.sat{color:#2563eb;}
.le_si_day.sun{color:#dc2626;}
.le_si_day_none{font-size:12px;color:#cbd5e1;}

.le_si_time{font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:600;color:#334155;white-space:nowrap;}

.le_si_tblwrap{overflow-x:auto;}

.le_si_table{width:100%;border-collapse:collapse;table-layout:fixed;}
.le_si_table thead th{font-size:11.5px;font-weight:600;color:#64748b;text-align:left;
    padding:0 12px 11px;border-bottom:1px solid #eceff4;white-space:nowrap;}
.le_si_table tbody td{padding:12px;border-bottom:1px solid #f4f6f9;vertical-align:middle;}
.le_si_table tbody tr:last-child td{border-bottom:none;}
.le_si_col_photo{width:98px;}
.le_si_col_nm{width:150px;}
.le_si_col_time{width:150px;}
.le_si_th_photo{width:98px;}
.le_si_th_time{text-align:center !important;}
.le_si_td_time{text-align:right;}

.le_si_line{padding:5px 0;}
.le_si_line.le_si_multi + .le_si_line.le_si_multi{border-top:1px dashed #e6eaf0;}

.le_si_nm{font-size:13px;font-weight:600;color:#0f172a;white-space:normal;word-break:keep-all;line-height:1.3;}
.le_si_rank{display:none;font-size:11.5px;color:#94a3b8;margin-top:2px;}

.le_si_hp{display:flex;align-items:center;gap:4px;font-size:11.5px;color:#5c79a1;margin-top:3px;white-space:nowrap;font-variant-numeric:tabular-nums;}
.le_si_hp i{font-size:11px;color:#cbd5e1;}

.le_si_badges{display:flex;align-items:stretch;gap:4px;margin-bottom:4px;}

.le_si_work_badge{display:inline-flex;align-items:center;font-size:10px;font-weight:700;
    padding:2px 7px;border-radius:5px;line-height:1.4;}
.le_si_work_badge.on{background:#e2edff;color:#4476ab;}
.le_si_work_badge.off{background:#f1f5f9;color:#94a3b8;}

.le_si_duty_badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;
    padding:2px 7px;border-radius:5px;line-height:1.4;}
.le_si_duty_dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.le_si_duty_badge.on{background:#dcfce7;color:#59c983;}
.le_si_duty_badge.on .le_si_duty_dot{background:#22c55e;}
.le_si_duty_badge.off{background:#f1f5f9;color:#94a3b8;}
.le_si_duty_badge.off .le_si_duty_dot{background:#cbd5e1;}
.le_si_out{font-size:10.5px;font-weight:700;color:#94a3b8;background:#f1f5f9;border-radius:4px;padding:2px 5px;}

.le_si_photo_wrap{position:relative;width:64.8px;}
.le_si_photo{width:64.8px;height:86.4px;border-radius:7px;object-fit:cover;
    border:1px solid #e8edf3;background:#f1f4f8;display:block;}
.le_si_photo_empty{display:flex;align-items:center;justify-content:center;
    color:#cbd5e1;font-size:24px;border:1.5px dashed #d4dce6;background:#fbfcfd;}
.le_si_cam{position:absolute;right:-6px;bottom:-6px;width:26px;height:26px;border-radius:50%;
    background:var(--brand,#4f46e5);color:#fff;border:2px solid #fff;padding:0;cursor:pointer;
    display:flex;align-items:center;justify-content:center;font-size:12px;transition:background .15s;}
.le_si_cam:hover{background:#4338ca;}

.le_si_mapcard{position:sticky;top:calc(var(--topbar-h, 54px) + 8px);display:flex;flex-direction:column;}

.le_si_map{position:relative;border-radius:10px;overflow:hidden;height:550px;background:#eef1f6;}
.le_si_map_canvas{position:absolute;inset:0;width:100%;height:100%;}

.le_si_map_ph{position:absolute;inset:0;z-index:400;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
    color:#94a3b8;font-size:12.5px;text-align:center;padding:16px;
    background:#eef1f6;
    background-image:linear-gradient(#e4e8ef 1px,transparent 1px),linear-gradient(90deg,#e4e8ef 1px,transparent 1px);
    background-size:24px 24px;}
.le_si_map_ph[hidden]{display:none;}
.le_si_map_ph i{font-size:30px;color:#cbd5e1;}

.le_si_pin{background:none;border:none;line-height:0;}

.le_si_pop{
    background:#fff;
    border:1.5px solid var(--brand,#4f46e5);
    border-radius:12px;
    box-shadow:0 6px 18px rgba(15,23,42,.13);
    padding:11px 14px;
    font-family:inherit;
    line-height:1.4;
}
.le_si_pop_nm{font-size:13px;font-weight:600;color:#0f172a;white-space:nowrap;}
.le_si_pop_ad{font-size:11.5px;color:#566a87;margin-top:3px;white-space:nowrap;}

.le_si_map_foot{margin-top:14px;}
.le_si_map_nm{font-size:13.5px;font-weight:600;color:#0f172a;margin-bottom:4px;}
.le_si_map_addr{font-size:12.5px;color:#64748b;line-height:1.6;word-break:break-word;}
.le_si_map_foot .btn-search{display:flex;align-items:center;gap:6px;}

.le_si_empty{padding:22px 8px;text-align:center;color:#94a3b8;font-size:12.5px;}
.le_si_empty.le_si_err{color:#dc2626;}

.le_si_tel_row{position:relative;}

.le_si_addr_btn{height:30px;padding:0 11px;font-size:11.5px;flex-shrink:0;}

.le_si_tit_btns{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end;}

.le_si_map_btn{
    height:32px !important;padding:0 11px !important;font-size:11.5px !important;
    display:inline-flex;align-items:center;gap:5px;border-radius:10px;
}

.le_si_addr_btn.le_si_addr_need{background:#fff5f5;border-color:#fecaca;color:#dc2626;}
.le_si_addr_btn.le_si_addr_need:hover{background:#fee2e2;color:#b91c1c;}

.le_si_addr_dlg{max-width:520px;transition:max-width .2s ease;}
.le_si_addr_dlg.le_si_wide{max-width:940px;}

.le_si_addr_body{padding:18px 20px;display:flex;align-items:flex-start;gap:18px;}
.le_si_addr_fields{flex:1 1 auto;min-width:0;}
.le_si_fld{margin-bottom:14px;}
.le_si_fld:last-child{margin-bottom:0;}
.le_si_fld .filter-label{display:block;margin-bottom:6px;}
.le_si_fld .form-control{border:1px solid #e2e8f0;border-radius:8px;height:36px;font-size:13px;color:#0f172a;}
.le_si_fld .form-control:focus{border-color:var(--brand,#4f46e5);box-shadow:0 0 0 3px rgba(79,70,229,.12);}
.le_si_fld .form-control[readonly]{background:#f8fafc;color:#475569;}

.le_si_zip{max-width:160px;height:32px !important;}

.le_si_postwrap{flex:0 0 400px;width:400px;border:1px solid #eceff4;border-radius:10px;overflow:hidden;}
.le_si_postwrap[hidden]{display:none;}
.le_si_postbar{display:flex;align-items:center;justify-content:space-between;
    padding:8px 10px;background:#f8fafc;border-bottom:1px solid #eceff4;
    font-size:12.5px;font-weight:600;color:#475569;}
.le_si_postbar .btn-reset{height:28px;padding:0 10px;font-size:11.5px;}
.le_si_postbox{height:420px;}

.le_si_addr_foot{justify-content:center;gap:3px;}
.le_si_addr_foot > *{margin:0;min-width:60px;}

@media (max-width:900px){
    .le_si_addr_dlg.le_si_wide{max-width:520px;}
    .le_si_addr_body{flex-direction:column;}
    .le_si_postwrap{flex:1 1 auto;width:100%;}
}

@media (max-width:1280px){

    .le_si_tit_hint{display:none!important;}

    .le_si_tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
    .le_si_table{min-width:600px;}
}

@media (max-width:1280px){

    .tbl-result-bar .res-sub,
    .le_ntc_read_hint{display:none!important;}

    .tbl-actions .btn-reset{
        font-size:0 !important;gap:0;padding:0 !important;width:32px;flex-shrink:0;justify-content:center;
    }
    .tbl-actions .btn-reset i{font-size:15px !important;}

    .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
    .table-scroll .store-table.rp-table,
    .table-scroll .store-table.branch-table,
    .table-scroll .store-table.rsv-table{min-width:1300px;}

    .ledger-head .page-breadcrumb{display:none!important;}

    .le_period_label,
    .le_store_label{display:none!important;}

    .sidebar{width:100%;min-width:100%;}

    .ledger-head .lh-title{font-size:14px;font-weight:500;}
    .ledger-head .lh-title .en{font-size:11px;font-weight:400;}
}


/* ==========================================================================
      [요구] 모바일 검색영역 — 페이지 전용 보정
      ※ 이 블록은 파일 "맨 끝"에 있어야 한다. 지점별 고객 현황·매장 정보의
          고정폭(.le_store_select{width:180px} 등)이 파일 뒤쪽에 선언돼 있어서,
          같은 우선순위라면 나중에 온 쪽이 이기기 때문이다.
          (앞쪽 미디어블록에 두면 고정폭에 밀려 적용되지 않는다)
      ========================================================================== */
@media (max-width:640px){
    /* ---- 매장 정보 : 매장 셀렉트 100%, 검색어+검색 버튼 한 줄 ---- */
    body[data-page="store/store_info"] .le_si_store{width:100%;flex:1 1 auto;min-width:0;}
    body[data-page="store/store_info"] .le_si_kw{flex:1 1 0 !important;min-width:0;max-width:none;}
    body[data-page="store/store_info"] .search-card .btn-search{flex:0 0 auto;white-space:nowrap;}

    /* ---- 지점별 고객 현황 ---- */
    /* [요구] 매장 선택(전체 매장)은 한 줄 전체 폭.
          ※ 위쪽에 `... .col-12 > .d-flex > div{flex:0 0 auto}` 라는 선택자가 있는데
              클래스가 6개라 우선순위가 훨씬 높다. 같은 형태로 써야 이길 수 있어서
              선택자를 길게 맞춘다(단순히 뒤에 둔다고 이기지 않는다). */
    body[data-page="customer/branch_customers"] .search-card .row.g-3 > .col-12 > .d-flex > .le_store_group{
        flex:1 1 100%;min-width:0;
    }
    body[data-page="customer/branch_customers"] .le_store_select{width:100%;flex:1 1 auto;min-width:0;}
    /* [요구] 날짜 : "최근 방문일" 라벨을 숨기고 시작/종료일이 폭을 반씩 나눠 갖는다
          (.filter-date 가 width:120px !important 라 풀어 줘야 늘어난다) */
    body[data-page="customer/branch_customers"] .le_visit_label{display:none !important;}
    /* 날짜 줄은 grid 로 [시작일 | ~ | 종료일] 트랙을 못박는다.
          flex 로만 두면 브라우저가 input[type=date] 에 최소 폭을 강제해
          두 번째 칸이 카드 밖으로 밀려나가는 일이 생긴다. */
    /* ※ display 는 부트스트랩 .d-flex{display:flex!important} 를 이겨야 해서 !important 가 필요하다.
          flex 는 위와 같은 이유로 선택자를 길게 맞춘다. */
    body[data-page="customer/branch_customers"] .search-card .row.g-3 > .col-12 > .d-flex > .le_visit_group{
        flex:1 1 100%;min-width:0;
    }
    body[data-page="customer/branch_customers"] .le_visit_group{
        display:grid !important;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;
    }
    body[data-page="customer/branch_customers"] .le_visit_group .filter-date{
        width:100% !important;min-width:0;padding:0 6px;font-size:11.5px !important;
    }
    body[data-page="customer/branch_customers"] .le_visit_group .date-sep{
        justify-self:center;font-size:12px;
    }
    /* 검색어는 남은 폭을 채워 검색 버튼과 한 줄, 상세 검색은 한 줄 전체 */
    body[data-page="customer/branch_customers"] .search-card .row.g-3 > .col-12 > .d-flex > .le_cust_kw{
        flex:1 1 0 !important;min-width:0;max-width:none;
    }
    body[data-page="customer/branch_customers"] .search-card .btn-search{flex:0 0 auto;}
    body[data-page="customer/branch_customers"] .search-card .row.g-3 > .col-12 > .d-flex > .le_adv_btn{
        flex:1 1 100%;margin-left:0 !important;justify-content:center;
    }
    /* 상세 검색 패널 : 고정폭 셀렉트들이 좁은 화면에서 넘치므로 한 줄씩 나눠 준다 */
    body[data-page="customer/branch_customers"] .le_adv_panel > .d-flex{gap:8px !important;}
    body[data-page="customer/branch_customers"] .le_adv_panel .d-flex.align-items-center{flex:1 1 100%;min-width:0;}
    body[data-page="customer/branch_customers"] .le_staff_select,
    body[data-page="customer/branch_customers"] .le_sex_select,
    body[data-page="customer/branch_customers"] .le_grade_select{width:auto;flex:1 1 auto;min-width:0;}
    body[data-page="customer/branch_customers"] .le_op_select{width:auto;flex:0 0 68px;}
    body[data-page="customer/branch_customers"] .le_num_input,
    body[data-page="customer/branch_customers"] #valVisitCnt{width:auto !important;flex:1 1 0;min-width:0;}
}


/* ==========================================================================
      [요구] 좁은 화면(320px 포함)에서 카드/차트가 브라우저 밖으로 넘치지 않게 한다.
      원인 : 단일 컬럼으로 바뀌는 그리드들이 `1fr` 인데, 그리드 트랙의 자동 최소값은
                  min-content 라서 안쪽 카드가 넓으면 트랙이 화면보다 커진다.
                  (실측: 320px 화면에서 .rp-grid 트랙이 340px 로 부풀어 32px 넘침)
      해결 : minmax(0,1fr) 로 최소값을 0 으로 낮춰 트랙이 화면 안에서 줄어들게 한다.
      ========================================================================== */
@media (max-width:1200px){
    .rp-grid,
    .le_dash4,
    .le_sc_charts,
    .le_sc_pick,
    .le_sc_head,
    .le_si_grid{
        grid-template-columns:minmax(0,1fr);
    }
}
@media (max-width:1200px) and (min-width:641px){
    /* 4패널은 이 구간에서 2열을 유지하던 기존 동작을 그대로 둔다 */
    .le_dash4{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
}
/* 차트 캔버스가 컨테이너를 넘지 않게 하는 안전망.
      Chart.js 는 컨테이너 크기에 맞춰 인라인 width 를 직접 넣으므로 이 규칙에 잘리지 않는다.
      다만 초기화 전에는 캔버스 기본비율(300x150)이 적용돼 CSS 높이만 준 경우
      가로가 400px 까지 늘어나 화면을 넘긴다(대시보드 도넛에서 실측). */
#content canvas{max-width:100%;}


/* ==========================================================================
      [요구] 상세 검색 패널이 카드 밖으로 나오던 문제 (지점별 고객 현황)
      원인 : 패널이 세로 flex 컨테이너(.col-12)의 아이템이라, 안쪽 행들의 내용 폭에
                  끌려 늘어나 카드 안쪽(312px)보다 넓어졌다(실측 323px, 11px 초과).
                  min-width:0 만으로는 줄지 않아 폭을 명시해야 한다.
      ========================================================================== */
@media (max-width:640px){
    .le_adv_panel{
        width:100%;max-width:100%;min-width:0;box-sizing:border-box;
    }
    .le_adv_panel > .d-flex{min-width:0;}
    .le_adv_panel > .d-flex > .d-flex{min-width:0;}
}

/* ===== [2026-10-20 PJW] 시스템관리 > 사용자 관리 : 목록 안내·등록/수정 팝업 폼 ===== */
.le_um_hint{font-size:12px;color:#64748b;margin-left:12px;}
.le_user_dlg{max-width:860px;}
.le_user_body{max-height:70vh;overflow:auto;}
.le_user_section{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:800;color:#1e293b;margin:6px 0 10px;padding-bottom:6px;border-bottom:1px solid #eef2f7;}
.le_user_section i{color:var(--brand);}
.le_user_grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin-bottom:16px;}
.le_user_fld{display:flex;flex-direction:column;gap:5px;min-width:0;}
.le_user_w100{grid-column:1 / -1;}
.le_user_row{display:flex;gap:6px;align-items:center;}
.le_user_row .form-control,.le_user_row .filter-select{min-width:0;}
.le_user_msg{font-size:11.5px;color:#94a3b8;min-height:14px;}
.le_user_radio{display:flex;gap:16px;align-items:center;min-height:38px;font-size:13px;}
.le_user_radio label{display:flex;align-items:center;gap:5px;cursor:pointer;}
.le_user_tags{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;}
.le_user_tags .tag{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:4px 8px;font-size:12px;}
.le_user_tags .tag_type{font-weight:700;color:var(--brand);}
.le_user_tags .tag_del{border:none;background:none;color:#94a3b8;padding:0 2px;line-height:1;}
.le_user_tags .tag_del:hover{color:#dc2626;}
.le_user_tags .tag_empty{font-size:12px;color:#94a3b8;}
.le_user_table .badge{font-weight:600;}
@media (max-width:640px){.le_user_grid{grid-template-columns:1fr;}}

/* ===== [2026-10-20 PJW] 매장관리 > 매장 목록 : 매장 로그인 버튼 ===== */
.btn-store-login{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;border:1px solid var(--brand);border-radius:8px;background:#fff;color:var(--brand);font-size:12px;font-weight:600;white-space:nowrap;transition:all .15s;}
.btn-store-login:hover{background:var(--brand);color:#fff;}
.btn-store-login:disabled{border-color:#e2e8f0;color:#cbd5e1;background:#f8fafc;cursor:not-allowed;}

/* ===== [2026-10-24 PJW] 쿠폰관리 > 브랜드 쿠폰 : 안내·영역 제목·관리 버튼·발급 팝업 요약 ===== */
.le_cpn_notice{display:flex;gap:10px;align-items:flex-start;background:#f0f7ff;border:1px solid #d6e6fb;border-radius:12px;padding:12px 14px;margin-bottom:16px;font-size:12.5px;color:#334155;line-height:1.6;}
.le_cpn_notice > i{color:var(--brand);font-size:16px;line-height:1.4;}
.le_cpn_title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;color:#1e293b;margin:4px 0 10px;scroll-margin-top:calc(var(--topbar-h, 64px) + 12px);}
.le_cpn_title i{color:var(--brand);}
.le_cpn_table .badge{font-weight:600;}
.le_cpn_btns{white-space:nowrap;}
.le_cpn_btns .btn{font-size:11.5px;padding:2px 8px;}
.le_cpn_barcode{font-family:Consolas, monospace;letter-spacing:.04em;}
.le_cpn_issue_dlg{max-width:520px;}
.le_cpn_summary{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;margin:0;padding:12px 14px;background:#f8fafc;border:1px solid #eef2f7;border-radius:10px;font-size:13px;}
.le_cpn_summary dt{font-weight:700;color:#64748b;}
.le_cpn_summary dd{margin:0;color:#1e293b;word-break:keep-all;}
