/* ══════════════════════════════════════════════════════════
   features-sales.css — 영업 (품절 현황)
   네임스페이스: .sls-  (sales-oos.js)
   탭/필터바/테이블 골격은 features-cs-work.css(.csw-) 관례 준용
   ══════════════════════════════════════════════════════════ */

/* ── 탭 ── */
.sls-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:12px;flex-wrap:wrap;}
.sls-tab{padding:6px 12px;border:none;background:none;border-radius:8px 8px 0 0;color:var(--text2);cursor:pointer;font-size:13px;white-space:nowrap;font-family:inherit;}
.sls-tab:hover{background:var(--surface2);}
.sls-tab.on{background:var(--surface);border:1px solid var(--border);border-bottom:1px solid var(--surface);margin-bottom:-1px;font-weight:700;color:var(--accent-text);}
.sls-tab-cnt{font-size:11px;color:var(--text3);margin-left:4px;}

/* ── 필터바 ── */
.sls-fbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;align-items:center;}
.sls-fsel{width:auto;min-width:130px;}
.sls-fsearch{max-width:260px;}
.sls-count{font-size:12px;color:var(--text3);margin-left:auto;white-space:nowrap;}

/* ── 테이블 ── */
.sls-tblwrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);}
.sls-table{border-collapse:collapse;width:100%;font-size:12.5px;}
.sls-table th{background:var(--surface2);padding:8px 10px;text-align:left;font-weight:700;color:var(--text2);border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;}
.sls-table td{padding:7px 10px;border-bottom:1px solid var(--surface2);vertical-align:top;font-variant-numeric:tabular-nums;}
.sls-table tbody tr{cursor:pointer;}
.sls-table tbody tr:hover{background:var(--accent-light);}
.sls-table tbody tr:last-child td{border-bottom:none;}
.sls-nowrap{white-space:nowrap;}
.sls-dim{color:var(--text3);}
.sls-mono{font-family:monospace;font-size:12px;}
.sls-prod{min-width:200px;max-width:340px;font-weight:600;}
.sls-chipcell{min-width:150px;max-width:280px;}
.sls-unlinked{display:inline-block;font-size:10.5px;background:var(--amber-light);color:var(--amber);border-radius:6px;padding:0 6px;font-weight:700;vertical-align:middle;}

/* ── 재고 상태 pill ── */
.sls-stock{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap;line-height:1.6;}
.sls-stock-out{background:#fde8d7;color:#b45309;}   /* 품절 (노션 brown) */
.sls-stock-in{background:var(--green-light);color:var(--green);}
.sls-stock-disc{background:var(--red-light);color:#e11d48;}

/* ── 처리상태 ── */
.sls-status{display:inline-block;font-size:11.5px;font-weight:700;white-space:nowrap;}
.sls-status.done{color:#2563eb;}
.sls-status.undone{color:#e11d48;}

/* ── 스토어 칩 (색상 = 담당자 그룹, 노션 파스텔 유지) ── */
.sls-chip{display:inline-block;font-size:11px;border-radius:6px;padding:1px 7px;margin:1px 3px 1px 0;white-space:nowrap;line-height:1.7;}
.sls-c-purple{background:#f1e7fd;color:#6940a5;}
.sls-c-blue{background:#e0edfb;color:#1d4ed8;}
.sls-c-green{background:#dcf2e3;color:#15803d;}
.sls-c-orange{background:#fde8d7;color:#c2560f;}
.sls-c-red{background:#fde3e3;color:#dc2626;}
.sls-c-gray{background:var(--surface2);color:var(--text2);}

/* ── 모달 폼 ── */
.sls-mrow{display:flex;gap:10px;flex-wrap:wrap;}
.sls-mrow .form-group{flex:1;min-width:130px;}
.sls-ac{position:relative;}
.sls-ac-drop{position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,.12);max-height:240px;overflow-y:auto;z-index:30;}
.sls-ac-op{padding:7px 12px;font-size:13px;cursor:pointer;}
.sls-ac-op:hover{background:var(--accent-light);}
.sls-ac-op small{color:var(--text3);font-family:monospace;margin-left:6px;}
.sls-ac-meta{font-size:11.5px;color:var(--text3);margin-top:4px;min-height:16px;}
.sls-legend{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;flex-wrap:wrap;}
.sls-legend-hint{font-size:11px;color:var(--text3);font-weight:400;margin-left:6px;}
.sls-status-live{font-size:12px;}

/* ── 스토어 배치 그리드 ── */
.sls-sgroup{margin-bottom:10px;}
.sls-sgroup-head{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--text2);margin-bottom:5px;}
.sls-dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
.sls-dot.sls-c-purple{background:#a78bfa;}
.sls-dot.sls-c-blue{background:#60a5fa;}
.sls-dot.sls-c-green{background:#4ade80;}
.sls-dot.sls-c-orange{background:#fb923c;}
.sls-dot.sls-c-red{background:#f87171;}
.sls-dot.sls-c-gray{background:var(--text3);}
.sls-sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:5px;}
.sls-store{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:5px 9px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;font-family:inherit;text-align:left;transition:border-color .12s,background .12s;}
.sls-store:hover:not(:disabled){border-color:var(--accent);}
.sls-store:disabled{cursor:default;opacity:.7;}
.sls-store-name{font-size:12px;font-weight:600;color:var(--text);}
.sls-store-state{font-size:10.5px;color:var(--text3);}
.sls-store.on.st-soldout{background:#fde8d7;border-color:#f0b98a;}
.sls-store.on.st-soldout .sls-store-state{color:#b45309;font-weight:700;}
.sls-store.on.st-unregistered{background:#e0edfb;border-color:#93bdf0;}
.sls-store.on.st-unregistered .sls-store-state{color:#1d4ed8;font-weight:700;}
.sls-store.on.st-blocked{background:#fde3e3;border-color:#f3a6a6;}
.sls-store.on.st-blocked .sls-store-state{color:#dc2626;font-weight:700;}

/* ══════════════════════════════════════════════════════════
   출고 관리 (.slp- — sales-shipments.js)
   ══════════════════════════════════════════════════════════ */

/* 세그먼트 (도매/대형) */
.slp-seg{display:inline-flex;gap:0;border:1px solid var(--border);border-radius:9px;overflow:hidden;margin-bottom:12px;background:var(--surface);}
.slp-seg-btn{padding:7px 22px;border:none;background:none;font-size:13px;font-weight:600;color:var(--text2);cursor:pointer;font-family:inherit;}
.slp-seg-btn + .slp-seg-btn{border-left:1px solid var(--border);}
.slp-seg-btn.on{background:var(--accent);color:#fff;}

/* 상태 pill */
.slp-st{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap;line-height:1.6;}
.slp-st-todo{background:var(--surface2);color:var(--text3);}
.slp-st-prog{background:#dbeafe;color:#2563eb;}
.slp-st-done{background:var(--amber-light,#fef3c7);color:#b45309;}
.slp-st-need{background:var(--red-light);color:#e11d48;}
.slp-st-skip{background:var(--surface2);color:var(--text2);}

/* 인라인 상태 편집 (리스트 pill 클릭 순환) */
.slp-cycle{display:inline-block;cursor:pointer;border-radius:99px;}
.slp-cycle:hover .slp-st{outline:1.5px solid var(--accent);outline-offset:1px;}
.slp-st-empty{min-width:34px;text-align:center;color:var(--text3);background:var(--surface2);}

/* 지연여부 */
.slp-delay{display:inline-block;font-size:11px;font-weight:700;white-space:nowrap;}
.slp-delay.ok{color:var(--green);}
.slp-delay.bad{color:#e11d48;}

.slp-vendor{display:inline-block;font-size:11.5px;font-weight:700;background:var(--accent-light);color:var(--accent-text);border-radius:6px;padding:1px 8px;white-space:nowrap;}
.slp-memo{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2);}
.slp-kind-badge{display:inline-block;font-size:11px;font-weight:700;background:var(--accent-light);color:var(--accent-text);border-radius:6px;padding:1px 8px;vertical-align:middle;margin-left:6px;}

/* 출고 이슈 차트 */
.slp-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px;}
.slp-chart-empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center;color:var(--text3);font-size:12.5px;margin-bottom:12px;}
.slp-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.slp-bar-label{width:90px;font-size:12px;font-weight:600;color:var(--text2);text-align:right;white-space:nowrap;}
.slp-bar-track{flex:1;background:var(--surface2);border-radius:99px;height:14px;overflow:hidden;}
.slp-bar{height:100%;background:#f87171;border-radius:99px;min-width:4px;}
.slp-bar-cnt{width:32px;font-size:12px;font-weight:700;color:var(--text2);font-variant-numeric:tabular-nums;}

/* 이슈 토글 칩 (모달) */
.slp-issue-chips{display:flex;gap:6px;flex-wrap:wrap;}
.slp-issue-chip{padding:4px 12px;border:1px solid var(--border);border-radius:99px;background:var(--surface);font-size:12px;color:var(--text2);cursor:pointer;font-family:inherit;}
.slp-issue-chip:hover:not(:disabled){border-color:#f3a6a6;}
.slp-issue-chip:disabled{cursor:default;opacity:.7;}
.slp-issue-chip.on{background:#fde3e3;border-color:#f3a6a6;color:#dc2626;font-weight:700;}

/* 공용 거래처 관리 모달 행 (.slc-) */
.slc-crow{display:grid;grid-template-columns:1fr 260px 60px;gap:6px;align-items:center;margin-bottom:6px;}
.slc-crow-head{font-size:11px;font-weight:700;color:var(--text3);margin-bottom:2px;}
.slc-crow .form-input{padding:5px 8px;font-size:12.5px;}
.slc-crow-tags{display:flex;gap:10px;flex-wrap:wrap;}
.slc-crow-tags label{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text2);white-space:nowrap;}

/* 옵션 관리 모달 행 */
.slp-orow{display:grid;grid-template-columns:18px 1fr 60px;gap:6px;align-items:center;margin-bottom:6px;}
.slp-orow .form-input{padding:5px 8px;font-size:12.5px;}

/* ── 스토어 관리 모달 ── */
.sls-srow{display:grid;grid-template-columns:18px 1fr 92px 110px 60px;gap:6px;align-items:center;margin-bottom:6px;}
/* 옵션류 모달 공용 — 드래그 정렬 그립 */
.sls-grip{cursor:grab;color:var(--text3);font-size:15px;text-align:center;user-select:none;}
.sls-grip:active{cursor:grabbing;}
.slp-orow.sortable-ghost,.sls-srow.sortable-ghost,.slr-chrow.sortable-ghost,.sle-irow.sortable-ghost{opacity:.4;}
.sls-srow-head .sls-grip{visibility:hidden;}
.sls-srow-head{font-size:11px;font-weight:700;color:var(--text3);margin-bottom:2px;}
.sls-srow .form-input,.sls-srow .form-select{padding:5px 8px;font-size:12.5px;}
.sls-srow-active{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text2);white-space:nowrap;}

/* ══════════════════════════════════════════════════════════
   매출 입력 (.slr- — sales-revenue.js)
   ══════════════════════════════════════════════════════════ */

/* 주차 네비게이터 (주차 입력·주간 리포트 공용 — seg 패턴 문법) */
.slr-weeknav{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.slr-weeknav-box{display:inline-flex;align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:9px;overflow:hidden;}
.slr-weeknav-arrow{display:flex;align-items:center;justify-content:center;width:36px;border:none;background:none;cursor:pointer;color:var(--text2);padding:0;font-family:inherit;transition:background .12s,color .12s;}
.slr-weeknav-arrow svg{width:16px;height:16px;display:block;}
.slr-weeknav-arrow:hover{background:var(--surface2);color:var(--text);}
.slr-weeknav-arrow:active{background:var(--accent-light);color:var(--accent-text);}
.slr-weeknav-arrow:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.slr-weeknav-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:6px 18px;min-width:230px;text-align:center;border-left:1px solid var(--border);border-right:1px solid var(--border);}
.slr-weeklabel{font-size:15px;font-weight:800;line-height:1.25;color:var(--text);font-variant-numeric:tabular-nums;}
.slr-weekrange{font-size:11.5px;color:var(--text3);line-height:1.3;white-space:nowrap;}
.slr-weeknav-today{padding:6px 12px;font-size:12.5px;font-weight:600;font-family:inherit;color:var(--accent-text);background:none;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s,border-color .12s;}
.slr-weeknav-today:hover{background:var(--accent-light);border-color:var(--accent-light);}
.slr-weeknav-today:active{background:var(--accent-light);border-color:var(--accent);}
.slr-weeknav-today:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}

/* 툴바 보조 버튼 공통 (엑셀 업로드·채널 관리·예외 건·채널 추가·월마감) */
.slr-btn{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;font-size:12.5px;font-weight:600;font-family:inherit;line-height:1;color:var(--text2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:border-color .12s,color .12s,background .12s;}
.slr-btn:hover{border-color:var(--accent);color:var(--accent-text);}
.slr-btn:active{background:var(--accent-light);border-color:var(--accent);color:var(--accent-text);}
.slr-btn:disabled{opacity:.45;cursor:default;border-color:var(--border);color:var(--text2);background:var(--surface);}
.slr-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.slr-mine{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text2);white-space:nowrap;cursor:pointer;}

/* 배치 입력 그리드 */
.slr-table td{vertical-align:middle;}
.slr-table tfoot td{background:var(--surface2);font-weight:700;border-top:2px solid var(--border);position:sticky;bottom:0;}
.slr-in{width:100%;padding:5px 8px;font-size:12.5px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);text-align:right;font-variant-numeric:tabular-nums;font-family:inherit;}
.slr-in:focus{outline:none;border-color:var(--accent);}
.slr-in:disabled{background:var(--surface2);color:var(--text3);cursor:not-allowed;}
.slr-in-fee{max-width:64px;}
.slr-in-memo{text-align:left;}
.slr-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.slr-none{color:var(--text3);}
.slr-neg{color:#e11d48;font-weight:700;}
.slr-row-empty td{opacity:.62;}
.slr-row-empty td input{opacity:1;}
.slr-chname{font-weight:600;}
.slr-chname[onclick]:hover{text-decoration:underline;color:var(--accent-text);}
.slr-mgr{font-size:11px;color:var(--text3);margin-left:5px;}
.slr-manual{color:#b45309;font-weight:700;cursor:help;}

/* 행 저장 인디케이터 */
.slr-sst{text-align:center;font-size:12px;width:36px;}
.slr-sst .ok{color:var(--green);font-weight:700;}
.slr-sst .saving{color:var(--text3);animation:slr-pulse 1s infinite;}
.slr-sst .err{color:#e11d48;cursor:help;}
@keyframes slr-pulse{0%,100%{opacity:.3}50%{opacity:1}}

/* 예외 건 리스트 */
.slr-exc{margin-top:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;}
.slr-exc-head{font-size:11.5px;font-weight:700;color:var(--text3);margin-bottom:6px;}
.slr-exc-row{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:5px 4px;border-radius:7px;cursor:pointer;}
.slr-exc-row:hover{background:var(--accent-light);}

/* 월마감 경고 박스 */
.slr-warnbox{background:var(--amber-light,#fef3c7);color:#92400e;border-radius:8px;padding:9px 12px;font-size:12px;line-height:1.7;margin-bottom:12px;max-height:160px;overflow-y:auto;}

/* 주간 리포트 */
.slr-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px;}
.slr-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;}
.slr-kpi-label{font-size:11.5px;color:var(--text3);font-weight:700;margin-bottom:4px;}
.slr-kpi-val{font-size:19px;font-weight:800;font-variant-numeric:tabular-nums;}
.slr-kpi-sub{font-size:11.5px;margin-top:3px;min-height:15px;}
.slr-diff{font-weight:700;font-size:11.5px;}
.slr-diff.up{color:var(--green);}
.slr-diff.down{color:#e11d48;}
.slr-missing{color:#b45309;font-weight:700;cursor:help;}
.slr-rep-sec{font-size:13px;font-weight:700;color:var(--text2);margin:16px 0 8px;}
.slr-rep-sec:first-of-type{margin-top:4px;}

/* 채널 관리 모달 */
.slr-chrow{display:grid;grid-template-columns:18px 1fr 70px 66px 150px 58px;gap:6px;align-items:center;margin-bottom:6px;}
.slr-chrow .form-input,.slr-chrow .form-select{padding:5px 8px;font-size:12.5px;}
.slr-chrow-head{font-size:11px;font-weight:700;color:var(--text3);margin-bottom:2px;}

/* ══════════════════════════════════════════════════════════
   지출 입력 (.sle- — sales-expense.js)
   ══════════════════════════════════════════════════════════ */
.sle-group{margin-bottom:14px;}
.sle-group-head{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text);
  padding:7px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:9px;
  margin-bottom:6px;cursor:pointer;user-select:none;}
.sle-group-head:hover{border-color:var(--accent);}
.sle-fold{font-size:11px;color:var(--text3);width:12px;}
.sle-group-sum{margin-left:auto;font-size:12px;color:var(--text2);font-variant-numeric:tabular-nums;font-weight:600;}
.sle-empty{font-size:12px;color:var(--text3);padding:8px 14px;}
.sle-dup{border:1px solid var(--border);background:var(--surface);border-radius:6px;
  font-size:13px;line-height:1;padding:4px 7px;cursor:pointer;color:var(--text2);font-family:inherit;}
.sle-dup:hover{border-color:var(--accent);color:var(--accent-text);}

/* 항목 관리 모달 행 */
.sle-irow{display:grid;grid-template-columns:18px 1fr 120px 58px;gap:6px;align-items:center;margin-bottom:6px;}
.sle-irow .form-input,.sle-irow .form-select{padding:5px 8px;font-size:12.5px;}
.sle-irow-head{font-size:11px;font-weight:700;color:var(--text3);margin-bottom:2px;}

/* ══════════════════════════════════════════════════════════
   월 결산 (.smc- — sales-close.js, 읽기 전용)
   ══════════════════════════════════════════════════════════ */
.smc-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;}
@media(max-width:900px){.smc-2col{grid-template-columns:1fr;}}
.smc-total td{background:var(--surface2);font-weight:700;border-top:2px solid var(--border);}
.smc-special td{background:var(--surface2);color:var(--text2);}
.smc-foot{font-size:11.5px;color:var(--text3);margin:6px 2px 16px;}
.slr-kpi.smc-prov{border-style:dashed;}
.slr-kpi.smc-prov .slr-kpi-val{color:var(--text2);}
.slr-kpi.smc-net .slr-kpi-val{color:var(--accent-text);}
