/* 카페24 상품관리 모듈 전용 스타일. 전역(erp.css) 은 건드리지 않는다. 클래스 접두사: cf24- 색상은 erp.css 의 :root 토큰을 재사용한다. */ /* .erp-page 는 flex column + overflow-y:auto 다. 자식의 flex-shrink 기본값이 1 이라 내용이 화면보다 길면 카드가 눌려 잘리고(스크롤도 안 생긴다), 시스템 화면의 [카페24 연결] 버튼처럼 카드 아래쪽이 사라진다. 축소를 막아 넘친 만큼 .erp-page 가 스크롤하게 한다. 이 파일은 카페24 템플릿에서만 로드되므로 다른 모듈에는 영향이 없다. */ .erp-page > * { flex-shrink: 0; } /* 분할 화면은 편집 영역을 최대한 넓게 쓴다 — 이 페이지에서만 폭 제한을 푼다. box-sizing 을 함께 바꿔야 한다: .erp-page 는 width:100% + padding:24px 라서 max-width 를 풀면 padding 이 폭에 더해져 문서 전체에 가로 스크롤이 생긴다. */ .erp-page { max-width: none; box-sizing: border-box; } .cf24-card { margin-bottom: var(--sp-16, 16px); } /* ════════════════════════════════════════════════════════════ 좌우 분할: 왼쪽 목록(좁게) | 가운데 상세페이지 편집(넓게) | 오른쪽 정보 패널 (.cf24-split-3 — 아래 3분할 절). 각 칸이 따로 스크롤되고, 전체 높이는 화면에 맞춘다. ════════════════════════════════════════════════════════════ */ .cf24-split { display: grid; grid-template-columns: 550px minmax(0, 1fr); gap: var(--sp-12, 12px); align-items: stretch; } /* .erp-page 는 flex column 이다. 위 flex-shrink:0 규칙의 예외로, 분할 영역만은 남은 높이를 모두 차지하고 안에서 스크롤되게 한다(휴가/쿠팡 모듈과 같은 방식). */ .erp-page > .cf24-split { flex: 1 1 auto; min-height: 0; } .cf24-pane { min-height: 0; overflow: auto; margin-bottom: 0; padding: var(--sp-12, 12px); } .cf24-pane-list { display: flex; flex-direction: column; gap: var(--sp-8, 8px); overflow: hidden; /* 표만 스크롤 — 검색/필터는 고정 */ } .cf24-pane-editor { display: flex; flex-direction: column; gap: var(--sp-8, 8px); padding: var(--sp-16, 16px); } @media (max-width: 1100px) { .cf24-split { grid-template-columns: minmax(0, 1fr); } .cf24-pane { overflow: visible; } .cf24-pane-list { max-height: 45vh; } } /* ── 왼쪽: 검색·필터 ── */ .cf24-filters { display: flex; flex-direction: column; gap: var(--sp-8, 8px); flex: 0 0 auto; } .cf24-checks { display: flex; gap: var(--sp-12, 12px); font-size: var(--text-caption, 12px); } .cf24-checks label { display: flex; align-items: center; gap: 4px; cursor: pointer; } .cf24-list-count { font-size: var(--text-caption, 12px); color: var(--color-midtone-gray, #737373); } /* ── 왼쪽: 목록 표 (좁게) ── */ .cf24-list-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; } .cf24-list-table { font-size: 12px; table-layout: fixed; width: 100%; } .cf24-list-table thead th { position: sticky; top: 0; z-index: 1; padding: 6px 4px; white-space: nowrap; } .cf24-list-table tbody td { padding: 6px 4px; vertical-align: top; } /* 목록 폭 550px 기준. 고정폭을 뺀 나머지(약 290px)가 상품명 몫이다. 진열/판매 칸은 제목(2글자) + 정렬 화살표가 들어갈 만큼만. */ .cf24-col-no { width: 40px; text-align: right; color: var(--color-midtone-gray, #737373); } .cf24-col-flag { width: 40px; text-align: center; } .cf24-col-date { width: 78px; white-space: nowrap; color: var(--color-midtone-gray, #737373); } .cf24-col-name { word-break: break-word; } /* 긴 상품명은 2줄까지만 — 행 높이를 고르게 유지해 목록을 훑기 쉽게 한다. 전체 이름은 title 툴팁과 편집기 제목에서 확인한다. */ .cf24-col-name a { color: inherit; text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.4; } .cf24-row { cursor: pointer; } .cf24-row:hover { background: var(--color-ghost-gray, #f2f2f2); } .cf24-row.is-active { background: var(--color-rich-black, #0a0a0a); } /* 선택된 행은 마우스를 올려도 그대로 둔다. erp-shell.css 의 `.erp-table tbody tr:hover` 가 특이도가 더 높아 검은 배경을 덮어쓰므로 여기서 더 구체적인 선택자로 되돌린다. */ .cf24-list-table tbody tr.cf24-row.is-active:hover { background: var(--color-rich-black, #0a0a0a); } .cf24-row.is-active td, .cf24-row.is-active .cf24-col-name a { color: #fff; } /* 진열/판매 표시는 좁은 칸이라 배지 대신 점으로 */ .cf24-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--color-subtle-ash, #e5e5e5); } .cf24-dot-on { background: var(--color-success-green, #10c22b); } /* 제목행 클릭 정렬 */ .cf24-sortable { cursor: pointer; user-select: none; } .cf24-sortable::after { content: "↕"; opacity: 0.35; margin-left: 2px; } .cf24-sortable.is-asc::after { content: "▲"; opacity: 1; } .cf24-sortable.is-desc::after { content: "▼"; opacity: 1; } /* ── 오른쪽: 편집기 ── */ .cf24-editor-head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--sp-12, 12px); flex: 0 0 auto; } .cf24-editor-title { margin: 0; font-size: var(--text-heading, 18px); letter-spacing: -0.45px; } /* 상품명 수정 — 평소엔 제목, 연필을 누르면 입력칸으로 바뀐다 */ /* 입력칸이 남는 폭을 다 쓰게 한다(min-width:0 이 없으면 긴 이름이 배지를 밀어낸다) */ .cf24-name-box { flex: 1 1 auto; min-width: 0; } .cf24-name-box .is-hidden { display: none; } .cf24-name-edit { margin-left: var(--sp-6, 6px); padding: 0 4px; border: 0; border-radius: var(--r-sm, 4px); background: transparent; color: var(--color-midtone-gray, #737373); font-size: var(--text-body, 14px); line-height: 1.4; cursor: pointer; vertical-align: middle; } .cf24-name-edit:hover { background: var(--color-ghost-gray, #f2f2f2); color: var(--color-rich-black, #0a0a0a); } .cf24-name-form { display: flex; align-items: center; gap: var(--sp-6, 6px); } .cf24-name-input { flex: 1 1 auto; min-width: 200px; padding: var(--sp-6, 6px) var(--sp-8, 8px); border: 1px solid var(--color-subtle-ash, #e5e5e5); border-radius: var(--r-md, 6px); font-size: var(--text-heading, 18px); letter-spacing: -0.45px; } .cf24-name-input:focus { outline: none; border-color: var(--color-rich-black, #0a0a0a); } .cf24-editor-sub { margin: 4px 0 0; font-size: var(--text-caption, 12px); color: var(--color-midtone-gray, #737373); } .cf24-editor-badges { display: flex; gap: 4px; flex: 0 0 auto; } /* 편집기 단축키 안내 — 옅은 파랑으로 본문과 구분한다 */ .cf24-shortcuts { font-size: var(--text-caption, 12px); color: #79a6dd; white-space: nowrap; } /* 편집 폼과 코드 칸은 **줄어들지 않는다.** 아래 「예약 적용」·「버전 이력」을 펼치면 코드 칸이 눌리는 대신 내용이 아래로 밀리고 오른쪽 칸(.cf24-pane-editor)이 스크롤된다. flex: 1 1 auto 였을 때는 펼칠 때마다 편집기가 작아져 작업하던 위치를 잃었다. */ .cf24-editor-form { display: flex; flex-direction: column; flex: 0 0 auto; gap: var(--sp-8, 8px); } .cf24-editor-bar { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-8, 8px); flex-wrap: wrap; flex: 0 0 auto; } .cf24-editor-bar-right { display: flex; gap: var(--sp-8, 8px); align-items: center; } .cf24-check-inline { display: inline-flex; align-items: center; gap: 4px; margin-left: var(--sp-12, 12px); cursor: pointer; color: var(--color-rich-black, #0a0a0a); } .cf24-memo { width: 260px; padding: 6px var(--sp-10, 10px); border: 1px solid var(--color-subtle-ash, #e5e5e5); border-radius: var(--r-lg, 10px); font-size: 12px; } .cf24-html-main { flex: 1 1 auto; min-height: 340px; } /* ════════════════════════════════════════════════════════════ 문법 강조 편집기 투명한