
/* 페이지 폭: 데이터 화면은 넓게 쓴다(공통 .page 의 1280 제한 해제) */
.ui.ps-page { max-width: none; }
.ui.ps-page a { color: inherit; }

/* ===== 판매·재고 (시안 b2: 검정 바탕 · 로고 오렌지 한 점 · 굵은 박스와 가는 선) =====
   색은 아래 토큰 한 곳에서만 정한다. 라이트/다크는 기존 구조(prefers-color-scheme + data-theme)를 그대로 따른다.
   오렌지 = 회사 로고 PNG 에서 뽑은 실제 값 #FF7701 (RGB 255,119,1). 쓰는 곳: 발주 필요 · 선택 상태(왼쪽 선) 둘뿐. */
/* 색·글꼴·nav 선택 표시 등 공통 토큰은 style.css / ui.css 로 올렸다(디자인기준_확정.md). 여기에는 판매·재고·부자재 전용 규칙만 둔다. */
.ui.ps-page { --ui-row-h: 44px; }
.ui.ps-page .ui-title { font-weight: 500; letter-spacing: -0.04em; line-height: 1.1; }
.ui.ps-page .ui-head { border-bottom: 1px solid var(--ps-hair); padding-bottom: 20px; margin-bottom: 4px; align-items: flex-end; }
.ui.ps-page :focus-visible { outline: 2px solid var(--ps-text); outline-offset: 2px; border-radius: 0; }

/* 버튼: 가는 선 버튼, 주 동작 하나만 글자색으로 채움 */
.ui.ps-page .ui-btn { font-weight: 500; min-height: 38px; background: transparent; border: 1px solid var(--ps-rule); color: var(--ps-text); transition: background-color .12s var(--ease-out), border-color .12s var(--ease-out), color .12s var(--ease-out); }
.ui.ps-page .ui-btn:hover { background: var(--ps-raised); border-color: var(--ps-text2); }
.ui.ps-page .ui-btn:active { background: var(--ps-hair); }
.ui.ps-page .ui-btn-primary { background: var(--ps-text); border-color: var(--ps-text); color: var(--ps-bg); filter: none; }
.ui.ps-page .ui-btn-primary:hover { background: var(--ps-text2); border-color: var(--ps-text2); filter: none; }
.ui.ps-page .ui-btn-primary:active { background: var(--ps-muted); filter: none; }
.ui.ps-page .ui-btn-ghost { color: var(--ps-text2); border-color: transparent; }
.ui.ps-page .ui-btn-ghost:hover { background: var(--ps-raised); border-color: transparent; }
.ui.ps-page .ui-btn-sm { min-height: 30px; }
.ui.ps-page .ui-input { background: transparent; border: 1px solid var(--ps-rule); border-radius: 2px; }
.ui.ps-page .ui-input:hover { border-color: var(--ps-text2); }
.ui.ps-page .ui-input:focus { outline: 2px solid var(--ps-text); outline-offset: 0; border-color: var(--ps-text); }
/* 뱃지: 알약 모양을 걷어내고 기호 + 글자만 */
.ui.ps-page .ui-badge { background: transparent; border: 0; padding: 0; font-weight: 500; font-size: var(--ui-fs-sm); color: var(--ps-text2); gap: 6px; }
.ui.ps-page .ui-badge-mark { font-size: .7em; }
.ui.ps-page .ui-help { color: var(--ps-muted); }
.ui.ps-page .ui-error { font-weight: 400; border-width: 1px; border-left-width: 2px; }
.ui.ps-page .ui-empty { border: 1px solid var(--ps-hair); background: transparent; }
.ui.ps-page .ui-skel { background: var(--ps-raised); animation: none; }
.ui.ps-page .ui-card { background: transparent; border: 0; border-top: 2px solid var(--ps-box); border-radius: 0; box-shadow: none; padding: 14px 0 0; }
.ui.ps-page .ui-card-title { font-size: 17px; font-weight: 500; letter-spacing: -0.02em; }
.ui.ps-page .ui-card-head { margin-bottom: 14px; }
.ui.ps-page a { color: inherit; }

.ui.ps-page .ps-notices { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.ui.ps-page .ps-rule { margin: 12px 0 0; max-width: 100ch; }
.ui.ps-page .ps-note { margin: 10px 0 0; font-size: var(--ui-fs-sm); color: var(--ps-text2); overflow-wrap: break-word; word-break: keep-all; }

/* 판정 표시(작은 기호 + 글자). 오렌지는 '발주 필요' 하나에만 */
.ui.ps-page .ps-st { display: inline-flex; align-items: center; gap: 8px; font-size: var(--ui-fs-sm); font-weight: 400; color: var(--ps-text2); white-space: nowrap; }
.ui.ps-page .ps-st-mark { width: 7px; height: 7px; flex: none; box-sizing: border-box; border: 1px solid var(--ps-muted); border-radius: 50%; }
.ui.ps-page .ps-st[data-s="발주 필요"] { color: var(--ps-brand-ink); font-weight: 500; }
.ui.ps-page .ps-st[data-s="발주 필요"] .ps-st-mark { background: var(--ps-brand); border-color: var(--ps-brand); }
.ui.ps-page .ps-st[data-s="발주 완료"] .ps-st-mark { background: var(--ps-text2); border-color: var(--ps-text2); }
.ui.ps-page .ps-st[data-s="정상"] { color: var(--ps-muted); }
.ui.ps-page .ps-st[data-s="정상"] .ps-st-mark { border-color: var(--ps-rule); }
.ui.ps-page .ps-st[data-s="단종 예정"] { color: var(--ps-muted); }
.ui.ps-page .ps-st[data-s="단종 예정"] .ps-st-mark { border-radius: 0; height: 1px; border-width: 1px 0 0 0; width: 9px; border-color: var(--ps-muted); }
.ui.ps-page .ps-st[data-s="수시 발주"] .ps-st-mark { border-radius: 0; transform: rotate(45deg); }

/* 자료 기준: 한 줄, 눌러서 4칸 자세히 */
.ui.ps-page .ps-fs { border-bottom: 1px solid var(--ps-hair); margin-bottom: 28px; }
.ui.ps-page .ps-fs-sum { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 28px; min-height: 52px; padding: 8px 0; cursor: pointer; list-style: none; font-size: var(--ui-fs-sm); }
.ui.ps-page .ps-fs-sum::-webkit-details-marker { display: none; }
.ui.ps-page .ps-fs-title { font-weight: 500; font-size: 13px; color: var(--ps-muted); }
.ui.ps-page .ps-fs-item { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.ui.ps-page .ps-fs-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ps-text2); flex: none; }
.ui.ps-page .ps-fs-item.ps-stale .ps-fs-dot { background: transparent; box-shadow: inset 0 0 0 1px var(--ps-text2); }
.ui.ps-page .ps-fs-item.ps-none .ps-fs-dot { background: transparent; box-shadow: inset 0 0 0 1px var(--ps-rule); }
.ui.ps-page .ps-fs-k { color: var(--ps-muted); }
.ui.ps-page .ps-fs-v { color: var(--ps-text); font-variant-numeric: tabular-nums; }
.ui.ps-page .ps-fs-flag { color: var(--ps-text); font-weight: 500; border-bottom: 1px solid var(--ps-text); line-height: 1.2; }
.ui.ps-page .ps-fs-note { color: var(--ps-muted); }
.ui.ps-page .ps-fs-more { margin-left: auto; color: var(--ps-muted); font-size: 13px; display: inline-flex; align-items: center; gap: 8px; }
.ui.ps-page .ps-fs-more::after { content: ""; width: 6px; height: 6px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s var(--ease-out); }
.ui.ps-page .ps-fs[open] .ps-fs-more::after { transform: translateY(2px) rotate(-135deg); }
.ui.ps-page .ps-fs-sum:hover .ps-fs-more { color: var(--ps-text); }
.ui.ps-page .ps-fs[open] > .ps-fresh-row, .ui.ps-page .ps-fs[open] > .ps-rule { animation: ps-in .2s var(--ease-out); }
.ui.ps-page .ps-fresh-row { display: grid; gap: 0; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); padding: 4px 0 0; }
.ui.ps-page .ps-fs > .ps-rule { padding: 0 0 18px; margin: 14px 0 0; }
.ui.ps-page .ps-fresh { background: transparent; border: 0; border-left: 1px solid var(--ps-hair); border-radius: 0; padding: 4px 16px 6px; min-width: 0; }
.ui.ps-page .ps-fresh:first-child { border-left: 0; padding-left: 0; }
.ui.ps-page .ps-fresh-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.ui.ps-page .ps-fresh-label { font-size: 13px; font-weight: 500; color: var(--ps-muted); }
.ui.ps-page .ps-fresh-main { font-size: 26px; font-weight: 400; letter-spacing: -0.03em; line-height: 1.2; margin: 6px 0 4px; }

/* 왼쪽 세로 요약 + 오른쪽 표 */
.ui.ps-page .ps-layout { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 28px; align-items: start; margin-bottom: 40px; }
.ui.ps-page .ps-listbox { min-width: 0; }
.ui.ps-page .ps-listbox.ps-enter .ps-cat { animation: ps-in .2s var(--ease-out); }
@keyframes ps-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@keyframes ps-slide { from { opacity: 0; transform: translateX(10px); } to { opacity: 1; transform: none; } }
@keyframes ps-bump { from { opacity: .25; transform: translateY(-5px); } to { opacity: 1; transform: none; } }
@keyframes ps-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ps-dx { from { transform: scaleX(0); } to { transform: none; } }
@keyframes ps-dy { from { transform: scaleY(0); } to { transform: none; } }

.ui.ps-page .ps-side { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; min-width: 0; }
.ui.ps-page .ps-side-in { animation: ps-side .22s var(--ease-out); }
@keyframes ps-side { from { opacity: 0; transform: translateX(-8px); } to { opacity: 1; transform: none; } }
.ui.ps-page .ps-back { margin: 0 0 12px -8px; }
.ui.ps-page .ps-rail { display: flex; flex-direction: column; border-top: 2px solid var(--ps-box); }
.ui.ps-page .ps-rail-item { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "label label" "val unit" "note note"; align-items: baseline; column-gap: 10px; padding: 16px 0 16px 18px; border-top: 1px solid var(--ps-hair); cursor: pointer; }
.ui.ps-page .ps-rail-item:first-child { border-top: 0; }
.ui.ps-page .ps-rail-item::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 2px; background: var(--ps-brand); transform: scaleY(0); transition: transform .24s var(--ease-out); }
.ui.ps-page .ps-rail-item.ps-on::before { transform: none; }
.ui.ps-page .ps-rail-item:focus-visible { outline-offset: -2px; }
.ui.ps-page .ps-rail-label { grid-area: label; font-size: 13px; font-weight: 500; color: var(--ps-muted); transition: color .16s var(--ease-out); }
.ui.ps-page .ps-rail-val { grid-area: val; font-size: 46px; line-height: 1.05; font-weight: 400; letter-spacing: -0.045em; font-variant-numeric: tabular-nums; color: var(--ps-text2); transition: color .16s var(--ease-out); }
.ui.ps-page .ps-rail-unit { grid-area: unit; font-size: 13px; color: var(--ps-muted); }
.ui.ps-page .ps-rail-note { grid-area: note; font-size: 13px; color: var(--ps-muted); margin-top: 6px; }
.ui.ps-page .ps-rail-item:hover .ps-rail-val, .ui.ps-page .ps-rail-item.ps-on .ps-rail-val { color: var(--ps-text); }
.ui.ps-page .ps-rail-item:hover .ps-rail-label, .ui.ps-page .ps-rail-item.ps-on .ps-rail-label { color: var(--ps-text); }
.ui.ps-page .ps-rail-item[data-kind="bad"] .ps-rail-val { color: var(--ps-brand-big); }
.ui.ps-page .ps-rail-val.ps-bump { animation: ps-bump .32s var(--ease-out); }

/* 표: 카테고리 박스(굵은 테두리) 안에 가는 줄의 행 */
.ui.ps-page .ps-wrap { position: relative; border: 0; border-radius: 0; background: transparent; overflow-x: hidden; overflow-y: auto; }
.ui.ps-page .ps-inner { position: relative; width: 100%; padding-bottom: 32px; }
.ui.ps-page .ps-head { position: sticky; top: 0; z-index: 8; background: var(--ps-bg); }
.ui.ps-page .ps-hrow { display: grid; grid-template-columns: var(--cols); }
.ui.ps-page .ps-gh { font-size: 12px; line-height: 26px; padding: 0 12px; color: var(--ps-muted); white-space: nowrap; }
.ui.ps-page .ps-gh.ps-gs { border-left: 1px solid var(--ps-hair); }
.ui.ps-page .ps-hc { font-size: 13px; line-height: 34px; padding: 0 12px; font-weight: 500; color: var(--ps-muted); white-space: nowrap; border-bottom: 1px solid var(--ps-rule); background: var(--ps-bg); }
.ui.ps-page .ps-hc.ps-gs { border-left: 1px solid var(--ps-hair); }

.ui.ps-page .ps-cat { position: relative; display: grid; grid-template-columns: var(--cols); margin-top: 12px; }
.ui.ps-page .ps-row { display: contents; --rb: var(--ps-bg); }
.ui.ps-page .ps-row.ps-sel { --rb: var(--ps-raised); }
.ui.ps-page .ps-row:focus-within { --rb: var(--ps-raised); }
.ui.ps-page .ps-c.ps-name:focus-visible { outline: 2px solid var(--ps-text); outline-offset: -2px; }
.ui.ps-page .ps-c { display: flex; align-items: center; min-width: 0; padding: 10px 12px; font-size: 15px; line-height: 1.35; background: var(--rb, var(--ps-bg)); border-bottom: 1px solid var(--ps-hair); cursor: pointer; transition: background-color .12s var(--ease-out); }
.ui.ps-page .ps-c.ui-num { justify-content: flex-end; }
.ui.ps-page .ps-c.ps-gs { border-left: 1px solid var(--ps-hair); }
.ui.ps-page .ps-lastrow .ps-c { border-bottom: 0; }
.ui.ps-page .ps-c.ps-name { padding-left: 20px; font-weight: 500; letter-spacing: -0.015em; }
.ui.ps-page .ps-c.ps-name .ps-pre { font-weight: 400; color: var(--ps-muted); }
.ui.ps-page .ps-c.ps-tot { font-weight: 500; }
.ui.ps-page .ps-c.ps-zero { color: var(--ps-muted); }
.ui.ps-page .ps-c.ui-clip > span { display: block; min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui.ps-page .ps-c.ps-memo, .ui.ps-page .ps-c.ps-note-col { max-width: none; color: var(--ps-text2); }
.ui.ps-page .ps-c.ps-stat { background: var(--rb, var(--ps-bg)); border-left: 1px solid var(--ps-rule); }
.ui.ps-page .ps-hc.ps-stat { border-left: 1px solid var(--ps-rule); }
.ui.ps-page .ps-catcell { grid-row: 1; align-items: flex-start; padding: 13px 12px 12px 12px; background: var(--ps-bg); border-bottom: 0; cursor: default; }
.ui.ps-page .ps-catname { font-size: 18px; font-weight: 500; line-height: 1.3; letter-spacing: -0.03em; word-break: keep-all; overflow-wrap: anywhere; color: var(--ps-text); }
.ui.ps-page .ps-row.ps-sel .ps-name::before { content: ""; position: absolute; left: 7px; top: 9px; bottom: 9px; width: 2px; background: var(--ps-brand); }
.ui.ps-page .ps-c.ps-name { position: sticky; }

/* 박스 테두리: 네 변이 차례로 그려진다 */
.ui.ps-page .ps-edge { position: absolute; background: var(--ps-box); pointer-events: none; z-index: 7; }
.ui.ps-page .ps-e-t { left: 0; right: 0; top: 0; height: 2px; transform-origin: left; }
.ui.ps-page .ps-e-r { top: 0; bottom: 0; right: 0; width: 2px; transform-origin: top; }
.ui.ps-page .ps-e-b { left: 0; right: 0; bottom: 0; height: 2px; transform-origin: right; }
.ui.ps-page .ps-e-l { top: 0; bottom: 0; left: 0; width: 2px; transform-origin: bottom; }
.ui.ps-page .ps-draw .ps-e-t { animation: ps-dx .16s var(--ease-out) both; animation-delay: var(--d); }
.ui.ps-page .ps-draw .ps-e-r { animation: ps-dy .16s var(--ease-out) both; animation-delay: calc(var(--d) + .1s); }
.ui.ps-page .ps-draw .ps-e-b { animation: ps-dx .16s var(--ease-out) both; animation-delay: calc(var(--d) + .2s); }
.ui.ps-page .ps-draw .ps-e-l { animation: ps-dy .16s var(--ease-out) both; animation-delay: calc(var(--d) + .3s); }
.ui.ps-page .ps-draw .ps-c, .ui.ps-page .ps-draw .ps-catname { animation: ps-fade .24s ease-out both; animation-delay: calc(var(--d) + .12s); }

/* 행 위를 움직이는 선 하나 */
.ui.ps-page .ps-hl { position: absolute; left: 0; top: 0; width: 2px; background: var(--ps-text); opacity: 0; z-index: 6; pointer-events: none; transition: transform .16s var(--ease-out), opacity .12s var(--ease-out); }
.ui.ps-page .ps-hl.ps-on { opacity: 1; }
.ui.ps-page .ps-hl.ps-snap { transition: opacity .12s var(--ease-out); }


/* 상세 */
.ui.ps-page .ps-detail .ui-help { font-size: 13px; }
.ui.ps-page .ps-d-sum { gap: 12px; }
.ui.ps-page .ps-h3 { margin: 24px 0 10px; font-size: 13px; font-weight: 500; color: var(--ps-muted); }
.ui.ps-page .ps-bars { display: flex; flex-direction: column; gap: 12px; }
.ui.ps-page .ps-bar-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) 70px; align-items: center; gap: 12px; font-size: var(--ui-fs-sm); }
.ui.ps-page .ps-bar-label { color: var(--ps-muted); }
.ui.ps-page .ps-bar-track { height: 2px; background: var(--ps-hair); display: block; }
.ui.ps-page .ps-bar-track i { display: block; height: 100%; background: var(--ps-text); }
.ui.ps-page .ps-bar-num { text-align: right; font-weight: 500; font-variant-numeric: tabular-nums; }
.ui.ps-page .ps-spark { display: flex; align-items: flex-end; gap: 3px; height: 56px; padding: 0; border-bottom: 1px solid var(--ps-rule); margin-bottom: 6px; }
.ui.ps-page .ps-spark i { flex: 1; background: var(--ps-rule); min-width: 4px; }
.ui.ps-page .ps-spark i:last-child { background: var(--ps-text); }
.ui.ps-page .ps-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 16px; border-top: 1px solid var(--ps-hair); }
.ui.ps-page .ps-nums > div { padding: 12px 10px 0 0; display: flex; flex-direction: column; font-size: 12px; color: var(--ps-muted); }
.ui.ps-page .ps-nums > div + div { padding-left: 12px; border-left: 1px solid var(--ps-hair); }
.ui.ps-page .ps-nums b { font-size: 26px; font-weight: 400; letter-spacing: -0.035em; color: var(--ps-text); font-variant-numeric: tabular-nums; line-height: 1.15; }
.ui.ps-page .ps-radios { display: flex; flex-direction: column; margin-bottom: 18px; border-top: 1px solid var(--ps-hair); }
.ui.ps-page .ps-radio { display: flex; align-items: center; gap: 12px; min-height: 42px; padding: 4px 2px; border: 0; border-bottom: 1px solid var(--ps-hair); cursor: pointer; font-size: var(--ui-fs); color: var(--ps-text2); transition: color .12s var(--ease-out), background-color .12s var(--ease-out); }
.ui.ps-page .ps-radio:hover { color: var(--ps-text); }
.ui.ps-page .ps-radio:has(input:checked) { color: var(--ps-text); font-weight: 500; }
.ui.ps-page .ps-radio input { width: 18px; height: 18px; accent-color: var(--ps-brand); margin: 0; }
.ui.ps-page .ps-detail .ui-field { margin-bottom: 14px; }

/* 아래 카드들 */
.ui.ps-page .ps-below { display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr); align-items: start; margin-bottom: 48px; }
@media (min-width: 1100px) { .ui.ps-page .ps-below { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); } }

/* 좁은 화면: 요약이 위로 올라가 가로로 넘기는 탭이 된다 */
@media (max-width: 899px) {
  .ui.ps-page .ps-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .ui.ps-page .ps-rail { position: static; flex-direction: row; gap: 4px; border-top: 0; overflow-x: auto; padding: 2px 0 0; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
  .ui.ps-page .ps-rail-item { flex: none; display: flex; align-items: baseline; gap: 8px; min-height: 44px; padding: 8px 14px; border: 0; border-bottom: 2px solid var(--ps-hair); scroll-snap-align: start; white-space: nowrap; }
  .ui.ps-page .ps-rail-item::before { display: none; }
  .ui.ps-page .ps-rail-item.ps-on { border-bottom-color: var(--ps-brand); }
  .ui.ps-page .ps-rail-val { font-size: 20px; }
  .ui.ps-page .ps-rail-unit, .ui.ps-page .ps-rail-note { display: none; }
  .ui.ps-page .ps-fs-more { margin-left: 0; }
  .ui.ps-page .ui-tablewrap { --ui-table-maxh: 70vh; }
}

/* ===== 부자재 ===== */

/* 좁은 화면(모바일): 왼쪽 메뉴를 위쪽 가로 띠로 (이 화면이 열려 있을 때만) */
@media (max-width: 860px) {
  .shell:has(.ps-page.on) > .nav { width: auto; height: auto; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 2px; overflow-x: auto; padding: 6px 10px; }
  .shell:has(.ps-page.on) > .nav .brand { display: none; }
  .shell:has(.ps-page.on) > .nav a { flex: none; min-height: 44px; padding: 8px 12px; justify-content: flex-start; }
  .shell:has(.ps-page.on) > .nav a > span:not(.ico) { display: inline; }
  .shell:has(.ps-page.on) > .nav .nav-foot { display: none; }
}

/* b2 좁은 화면: 표의 왼쪽 고정을 풀어 숫자 칸까지 넘길 수 있게 */
@media (max-width: 899px) {
  .ui.ps-page .ps-pre { display: none; }
}

/* ===== b2 2차: 가로 스크롤 없는 표 · 왼쪽 패널 상세 · 자료 받은 시각 ===== */
.ui.ps-page .ps-c { padding: 9px 6px; font-size: 14px; }
.ui.ps-page .ps-c.ps-name { padding-left: 14px; }
.ui.ps-page .ps-c.ps-gs { padding-left: 8px; }
.ui.ps-page .ps-c.ui-num.ps-gs { padding-left: 6px; }
.ui.ps-page .ps-c.ps-incoming { font-size: 13px; line-height: 1.3; }
.ui.ps-page .ps-c.ps-memo { font-size: 13px; }
.ui.ps-page .ps-fromnote { color: var(--ps-muted); }
.ui.ps-page .ps-gh { padding: 0 6px; }
.ui.ps-page .ps-gh.ps-gs { padding-left: 8px; }
.ui.ps-page .ps-hc { font-size: 12px; padding: 0 6px; }
.ui.ps-page .ps-hc.ps-gs { padding-left: 8px; }
.ui.ps-page .ps-hc.ps-name { padding-left: 14px; }
.ui.ps-page .ps-catcell { padding: 11px 6px 10px 12px; }
.ui.ps-page .ps-catname { font-size: 14px; letter-spacing: -0.04em; white-space: nowrap; }
.ui.ps-page .ps-c.ps-stat { padding-left: 10px; }
.ui.ps-page .ps-st { gap: 6px; font-size: 13px; }
.ui.ps-page .ps-row.ps-sel .ps-name::before { left: 5px; }

/* 상세는 왼쪽 패널(232px)에 들어간다 */
.ui.ps-page .ps-detailwrap .ui-card { padding-top: 12px; }
.ui.ps-page .ps-detail .ui-help { font-size: 12px; }
.ui.ps-page .ps-d-sum { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.ui.ps-page .ps-bar-row { grid-template-columns: 52px minmax(0, 1fr) 48px; gap: 8px; font-size: 13px; }
.ui.ps-page .ps-nums b { font-size: 20px; }
.ui.ps-page .ps-nums > div { font-size: 11px; padding-right: 6px; }
.ui.ps-page .ps-nums > div + div { padding-left: 8px; }
.ui.ps-page .ps-radio { font-size: 14px; min-height: 38px; }
.ui.ps-page .ps-h3 { margin-top: 20px; }

/* 자료 받은 시각 */
.ui.ps-page .ps-livebar { padding: 14px 0; border-bottom: 1px solid var(--ps-hair); margin-bottom: 20px; }
.ui.ps-page .ps-live { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; color: var(--ps-text2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ui.ps-page .ps-fs-sum > .ps-live { padding-right: 24px; border-right: 1px solid var(--ps-hair); }
.ui.ps-page .ps-live-dot { position: relative; width: 8px; height: 8px; border-radius: 50%; background: var(--ps-text2); flex: none; }
.ui.ps-page .ps-live.ps-none .ps-live-dot { background: transparent; box-shadow: inset 0 0 0 1px var(--ps-muted); }
.ui.ps-page .ps-live.ps-err .ps-live-dot { background: var(--ps-bad); }
.ui.ps-page .ps-live-dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; background: var(--ps-brand); opacity: 0; pointer-events: none; }
.ui.ps-page .ps-live-dot.ps-flash::after { animation: ps-flash .5s ease-out; }
@keyframes ps-flash { 0% { opacity: 0; transform: scale(.3); } 30% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0; transform: scale(1); } }

/* 노트북 폭(1440 이하)에서 이 화면만 왼쪽 메뉴를 아이콘 폭으로: 표가 가로 스크롤 없이 들어가게 */
@media (max-width: 899px) {
  .ui.ps-page .ps-side { position: static; max-height: none; }
}

/* ===== b2 3차: 문서 스크롤 없음(스크롤은 표 안에서만) · 넓힌 왼쪽 패널 · 한 화면 상세 ===== */
.ui.ps-page .ps-c.ps-incoming { font-size: 13px; line-height: 1.35; }
.ui.ps-page .ps-below { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 32px; margin: 28px 0 24px; padding: 0 2px; }
.ui.ps-page .ps-clip1 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ui.ps-page .ps-detailwrap .ui-card { padding-top: 8px; }
.ui.ps-page .ps-detailwrap .ui-card-title { font-size: 17px; }
.ui.ps-page .ps-detailwrap .ui-card-head { margin-bottom: 6px; }
.ui.ps-page .ps-back { margin: 0 0 8px -8px; min-height: 28px; }
.ui.ps-page .ps-d-sum { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 2px 10px; }
.ui.ps-page .ps-h3 { margin: 12px 0 6px; }
.ui.ps-page .ps-h3-row { display: flex; justify-content: space-between; align-items: baseline; }
.ui.ps-page .ps-h3-row span { font-weight: 400; font-size: 12px; }
.ui.ps-page .ps-bars { gap: 6px; }
.ui.ps-page .ps-bar-row { grid-template-columns: 56px minmax(0, 1fr) 52px; }
.ui.ps-page .ps-spark { height: 36px; margin-bottom: 0; }
.ui.ps-page .ps-nums { margin-top: 8px; }
.ui.ps-page .ps-nums > div { padding-top: 8px; }
.ui.ps-page .ps-nums b { font-size: 19px; }
.ui.ps-page .ps-note { margin: 6px 0 0; font-size: 12.5px; }
.ui.ps-page .ps-radios { display: grid; grid-template-columns: 1fr 1fr; column-gap: 12px; margin-bottom: 8px; }
.ui.ps-page .ps-radio { min-height: 28px; font-size: 13px; gap: 8px; padding: 2px 0; }
.ui.ps-page .ps-radio:first-child { grid-column: 1 / -1; }
.ui.ps-page .ps-radio input { width: 16px; height: 16px; }
.ui.ps-page .ps-detail .ui-field { margin-bottom: 8px; gap: 4px; }
.ui.ps-page .ps-detail .ui-input { min-height: 32px; }
.ui.ps-page .ps-detail .ui-btn { min-height: 34px; }
.ui.ps-page .ps-rail-item { padding: 11px 0 11px 18px; }
.ui.ps-page .ps-rail-val { font-size: 40px; }

@media (min-width: 900px) {
  .shell:has(.ps-page.on) { height: 100vh; min-height: 0; overflow: hidden; }
  .main:has(.ps-page.on) { height: 100vh; overflow: hidden; display: flex; flex-direction: column; padding: 14px 24px 14px; }
  .ui.ps-page.on { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
  .ui.ps-page .ui-head { padding-bottom: 10px; margin-bottom: 0; }
  .ui.ps-page .ui-title { font-size: 28px; }
  .ui.ps-page .ps-fs, .ui.ps-page .ps-livebar { margin-bottom: 10px; flex: none; }
  .ui.ps-page .ps-fs-sum { min-height: 40px; padding: 4px 0; }
  .ui.ps-page .ps-livebar { padding: 8px 0; }
  .ui.ps-page .ps-notices { margin: 6px 0; }
  .ui.ps-page .ps-layout { flex: 1 1 auto; min-height: 0; grid-template-columns: 282px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); align-items: stretch; margin-bottom: 0; }
  .ui.ps-page .ps-side { position: static; max-height: 100%; min-height: 0; overflow-y: auto; scrollbar-width: thin; }
  .ui.ps-page .ps-listbox, .ui.ps-page .ps-onlylist, .ui.ps-page .ps-onlylist > .ui-split-list { height: 100%; min-height: 0; margin-bottom: 0; }
  .ui.ps-page .ps-wrap { height: 100%; max-height: none; }
  .ui.ps-page .ui-empty { margin: 8px 0; }
}
@media (min-width: 900px) and (max-height: 800px) {
  .ui.ps-page .ui-title { font-size: 24px; }
  .ui.ps-page .ps-rail-item { padding: 8px 0 8px 18px; }
  .ui.ps-page .ps-rail-val { font-size: 34px; }
  .ui.ps-page .ps-h3 { margin: 8px 0 4px; }
  .ui.ps-page .ps-bars { gap: 3px; }
  .ui.ps-page .ps-spark { height: 28px; }
  .ui.ps-page .ps-radio { min-height: 24px; }
  .ui.ps-page .ps-nums > div { padding-top: 5px; }
  .ui.ps-page .ps-detail .ui-field { margin-bottom: 6px; }
  .ui.ps-page .ps-detail .ui-input { min-height: 30px; }
  .ui.ps-page .ps-detail .ui-btn { min-height: 30px; }
  .ui.ps-page .ps-note { margin-top: 3px; }
}
.ui.ps-page .ps-detailwrap .ui-card-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ui.ps-page .ps-detailwrap .ui-card-head { flex-wrap: nowrap; }
@media (min-width: 900px) and (max-height: 800px) {
  .ui.ps-page .ps-back { min-height: 24px; margin-bottom: 4px; }
  .ui.ps-page .ps-detailwrap .ui-card { padding-top: 4px; }
  .ui.ps-page .ps-d-sum { margin-top: -2px; }
  .ui.ps-page .ps-nums b { font-size: 17px; }
}
.ui.ps-page .ps-radios { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 6px; }
.ui.ps-page .ps-radio { font-size: 12.5px; gap: 6px; white-space: nowrap; }
.ui.ps-page .ps-radio:first-child { white-space: normal; }
.ui.ps-page .ps-nums > div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ui.ps-page .ps-nums > div span { overflow: hidden; text-overflow: ellipsis; }
.ui.ps-page .ps-h3 { margin: 10px 0 5px; }
.ui.ps-page .ps-spark { height: 32px; }
@media (min-width: 900px) and (max-height: 720px) {
  .main:has(.ps-page.on) { padding-top: 8px; padding-bottom: 8px; }
  .ui.ps-page .ui-title { font-size: 22px; }
  .ui.ps-page .ui-head { padding-bottom: 6px; }
  .ui.ps-page .ps-fs-sum { min-height: 32px; }
  .ui.ps-page .ps-fs, .ui.ps-page .ps-livebar { margin-bottom: 6px; }
  .ui.ps-page .ps-back { min-height: 22px; }
  .ui.ps-page .ps-h3 { margin: 6px 0 3px; }
  .ui.ps-page .ps-spark { height: 24px; }
  .ui.ps-page .ps-radio { min-height: 22px; }
  .ui.ps-page .ps-bars { gap: 2px; }
  .ui.ps-page .ps-detail .ui-input, .ui.ps-page .ps-detail .ui-btn { min-height: 28px; }
  .ui.ps-page .ps-rail-item { padding: 6px 0 6px 18px; }
  .ui.ps-page .ps-rail-val { font-size: 30px; }
}

/* ===== b2 4차: 최근 3개월 판매 열 · 좁은 폭 맞춤 ===== */
.ui.ps-page .ps-c.ui-num { padding-left: 3px; padding-right: 5px; }
.ui.ps-page .ps-c.ui-num.ps-gs { padding-left: 5px; }
.ui.ps-page .ps-hc.ui-num { padding-left: 3px; padding-right: 5px; }
.ui.ps-page .ps-hc.ui-num.ps-gs { padding-left: 5px; }
@media (min-width: 900px) and (max-width: 1440px) {
  .main:has(.ps-page.on) { padding-left: 16px; padding-right: 16px; }
  .ui.ps-page .ps-layout { grid-template-columns: 272px minmax(0, 1fr); gap: 20px; }
}

/* ===== b2 5차: 구획 세로선 · 한 줄 제품명 · 가운데 정렬 카테고리 · 부족분 빨강 ===== */
.ui.ps-page .ps-short-bad { font-weight: 700; color: var(--ps-bad); }
.ui.ps-page .ps-c { font-size: 13px; padding: 9px 3px 9px 4px; }
.ui.ps-page .ps-c.ui-num { padding-left: 2px; padding-right: 4px; }
.ui.ps-page .ps-c:not(.ps-catcell), .ui.ps-page .ps-hc:not(:first-child) { border-left: 1px solid var(--ps-hair); }
.ui.ps-page .ps-c.ps-sec, .ui.ps-page .ps-hc.ps-sec { border-left: 2px solid var(--ps-sec); }
.ui.ps-page .ps-c.ps-name { font-size: 13px; padding-left: 12px; white-space: nowrap; }
.ui.ps-page .ps-nm { display: block; flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui.ps-page .ps-c.ps-stat { padding-left: 8px; }
.ui.ps-page .ps-catcell { align-items: center; justify-content: center; text-align: center; padding: 0 4px; }
.ui.ps-page .ps-catname { white-space: normal; font-size: 14px; line-height: 1.25; }
.ui.ps-page .ps-hc { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; height: 38px; line-height: 1.15; font-size: 12px; padding: 0 4px; }
.ui.ps-page .ps-hc.ui-num { align-items: flex-end; }
.ui.ps-page .ps-hc.ps-name { padding-left: 12px; }
.ui.ps-page .ps-hc.ps-stat { padding-left: 8px; }
.ui.ps-page .ps-hcol { display: flex; flex-direction: column; align-items: flex-end; }
.ui.ps-page .ps-sub { display: block; font-size: 10px; font-weight: 400; color: var(--ps-muted); line-height: 1.1; }
.ui.ps-page .ps-gh { padding: 0 4px; line-height: 24px; }
.ui.ps-page .ps-gh.ps-gs { border-left: 2px solid var(--ps-sec); border-top: 2px solid var(--ps-sec); padding-left: 8px; }
.ui.ps-page .ps-nums > div { overflow: visible; text-overflow: clip; }
.ui.ps-page .ps-nums > div span { overflow: visible; white-space: nowrap; }
.ui.ps-page .ps-hc.ps-incoming { white-space: normal; }

/* ===== b2 6차: 가운데 정렬 · 오른쪽 선 잘림 방지 · 발주 필요 행 강조 ===== */
.ui.ps-page .ps-wrap { scrollbar-width: thin; }
.ui.ps-page .ps-inner { padding-left: 2px; padding-right: 2px; }
/* 수량 열과 판정 값은 칸 가운데, 제품명은 왼쪽 */
.ui.ps-page .ps-c.ui-num { justify-content: center; text-align: center; font-variant-numeric: tabular-nums; }
.ui.ps-page .ps-c.ps-stat { justify-content: center; padding-left: 2px; padding-right: 2px; }
.ui.ps-page .ps-c.ps-name { justify-content: flex-start; text-align: left; }
/* 머리 글자는 열·구획 폭 기준 가운데 (제품 머리만 왼쪽) */
.ui.ps-page .ps-hc, .ui.ps-page .ps-hc.ui-num { align-items: center; text-align: center; }
.ui.ps-page .ps-hc.ps-name { align-items: flex-start; text-align: left; }
.ui.ps-page .ps-hc.ps-stat { padding-left: 2px; padding-right: 2px; }
.ui.ps-page .ps-hcol { align-items: center; }
.ui.ps-page .ps-gh { text-align: center; }
.ui.ps-page .ps-gh:last-child { border-right: 2px solid var(--ps-sec); }
/* 선택 표시는 오렌지가 아니라 글자색(오렌지는 발주 필요 강조 전용) */
.ui.ps-page .ps-rail-item::before { background: var(--ps-text); }
.ui.ps-page .ps-rail-item.ps-on { }
.ui.ps-page .ps-row.ps-sel .ps-name::before { background: var(--ps-text); width: 3px; }
.ui.ps-page .ps-radio input { accent-color: var(--ps-text); }
.ui.ps-page .ps-rail-item[data-kind="bad"] .ps-rail-val { color: var(--ps-brand-big); }
/* 발주 필요 행: 은은한 오렌지 바탕 + 오렌지 테두리(카테고리 박스 바깥 선과 겹치지 않게 안쪽으로) */
.ui.ps-page .ps-row { --wt: 2px; --wb: 2px; }
.ui.ps-page .ps-row.ps-firstrow { --wt: 4px; }
.ui.ps-page .ps-row.ps-lastrow { --wb: 4px; }
.ui.ps-page .ps-row.ps-warn { --rb: color-mix(in srgb, var(--ps-brand) 13%, var(--ps-bg)); }
.ui.ps-page .ps-row.ps-warn.ps-sel { --rb: color-mix(in srgb, var(--ps-brand) 24%, var(--ps-bg)); }
.ui.ps-page .ps-row.ps-warn .ps-c { box-shadow: inset 0 var(--wt) 0 var(--ps-brand), inset 0 calc(var(--wb) * -1) 0 var(--ps-brand); }
.ui.ps-page .ps-row.ps-warn .ps-c.ps-name { box-shadow: inset 0 var(--wt) 0 var(--ps-brand), inset 0 calc(var(--wb) * -1) 0 var(--ps-brand), inset 2px 0 0 var(--ps-brand); }
.ui.ps-page .ps-row.ps-warn .ps-c.ps-memo { box-shadow: inset 0 var(--wt) 0 var(--ps-brand), inset 0 calc(var(--wb) * -1) 0 var(--ps-brand), inset -4px 0 0 var(--ps-brand); }
.ui.ps-page .ps-row.ps-warn .ps-st[data-s="발주 필요"] { color: var(--ps-warn-ink, var(--ps-brand-ink)); }
.ui.ps-page .ps-row.ps-warn:focus-within { --rb: color-mix(in srgb, var(--ps-brand) 24%, var(--ps-bg)); }
.ui.ps-page .ps-st { white-space: nowrap; }

/* ===== b2 7차: 제품명 열 넓힘 · 좌우 여백 · 입고 예정 두 줄 ===== */
.ui.ps-page .ps-c.ps-name { font-size: 12.5px; padding-left: 10px; padding-right: 2px; letter-spacing: -0.02em; }
.ui.ps-page .ps-hc.ps-name { padding-left: 10px; }
.ui.ps-page .ps-catname { font-size: 13px; letter-spacing: -0.04em; }
.ui.ps-page .ps-c.ui-num { padding-left: 1px; padding-right: 3px; }
.ui.ps-page .ps-c.ps-incoming { padding: 3px 1px; justify-content: center; text-align: center; font-size: 12px; line-height: 1.1; }
.ui.ps-page .ps-inc2 { display: flex; flex-direction: column; align-items: center; line-height: 1.12; font-variant-numeric: tabular-nums; }
.ui.ps-page .ps-inc-d { display: block; white-space: nowrap; }
.ui.ps-page .ps-inc-q { display: block; white-space: nowrap; }
.ui.ps-page .ps-more { font-size: 9.5px; margin-left: 2px; color: var(--ps-muted); }
.ui.ps-page .ps-hc.ps-incoming { white-space: normal; }
/* 좌우 여백: 왼쪽 패널 왼쪽과 표 오른쪽(스크롤바 바깥)이 비슷하게 */
@media (min-width: 900px) {
  .main:has(.ps-page.on) { padding-left: 24px; padding-right: 24px; }
  .ui.ps-page .ps-listbox { padding-right: 12px; }
}
.ui.ps-page .ps-hc.ps-incoming { word-break: keep-all; }

/* ===== b2 8차: 스크롤바 간격 · 머리 전체를 하나의 굵은 박스로 · +N 크기 ===== */
.ui.ps-page .ps-inner { padding-right: 12px; }
.ui.ps-page .ps-gh { border-top: 2px solid var(--ps-box); }
.ui.ps-page .ps-gh:first-child { border-left: 2px solid var(--ps-box); }
.ui.ps-page .ps-gh:last-child { border-right: 2px solid var(--ps-box); }
.ui.ps-page .ps-hrow:not(.ps-hgroup) .ps-hc:first-child { border-left: 2px solid var(--ps-box); }
.ui.ps-page .ps-hrow:not(.ps-hgroup) .ps-hc:last-child { border-right: 2px solid var(--ps-box); }
.ui.ps-page .ps-more { font-size: 11px; margin-left: 2px; }

/* 구획 머리 라벨이 좁은 화면에서 칸 밖으로 넘치지 않게 */
@media (max-width: 1700px) { .ui.ps-page .ps-gh { font-size: 11px; letter-spacing: -0.02em; word-spacing: -0.3em; padding-left: 2px; padding-right: 2px; } }

/* ===== b2 9차: 왼쪽 패널 위 굵은 선 없음 · 머리 박스 네 면 · 가운데 가로 구분선 ===== */
.ui.ps-page .ps-rail { border-top: 0; }
.ui.ps-page .ps-detailwrap .ui-card { border-top: 1px solid var(--ps-hair); }
.ui.ps-page .ps-hrow:not(.ps-hgroup) .ps-hc { border-bottom: 2px solid var(--ps-box); }
.ui.ps-page .ps-gh { border-bottom: 1px solid var(--ps-rule); line-height: 23px; }
.ui.ps-page .ps-hc.ps-name { align-items: center; text-align: center; padding-left: 4px; padding-right: 4px; }

/* ===== b2 10차: 상단 도구 버튼 왼쪽 · 쿠팡 붙여넣기 패널(겹쳐 뜸) ===== */
.ui.ps-page { position: relative; }
.ui.ps-page .ui-head { justify-content: flex-start; align-items: flex-end; gap: 10px 24px; }
.ui.ps-page .ui-head-text { flex: 0 0 auto; }
.ui.ps-page .ui-actions { flex: 0 1 auto; margin-left: 0; }
.ui.ps-page .ps-cp-anchor { position: relative; display: inline-flex; }
.ui.ps-page .ps-cp-panel { position: absolute; left: 0; top: calc(100% + 8px); z-index: 40; width: min(560px, calc(100vw - 120px)); max-height: calc(100vh - 140px); overflow-y: auto; padding: 14px 16px 16px; background: var(--ps-panel); border: 2px solid var(--ps-box); }
.ui.ps-page .ps-cp-panel[hidden] { display: none; }
.ui.ps-page .ps-cp-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ui.ps-page .ps-cp-title { margin: 0; font-size: 16px; font-weight: 500; letter-spacing: -0.02em; }
.ui.ps-page .ps-inner { padding-bottom: 12px; }

/* ===== b2 10차: 화면 위 겹침 기준(끌어다 놓기 표시는 매출 화면에서 없앴다) ===== */
.main:has(.ps-page.on) { position: relative; }

/* ===== 부자재(표 화면 공통 규칙에 더해 쓰는 것): 왼쪽 요약+트리, 안쪽 병합 칸, 마이너스 표시 ===== */
.ui.ps-page .ps-search { width: 260px; min-height: 38px; }
.ui.ps-page .ps-livebar { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.ui.ps-page .ps-livebar > .ps-live { padding-right: 24px; border-right: 1px solid var(--ps-hair); }
.ui.ps-page .ps-stats { margin-top: 0; border-top: 0; padding-bottom: 12px; border-bottom: 1px solid var(--ps-hair); }
.ui.ps-page .ps-stats > div { padding-top: 0; }
.ui.ps-page .ps-stats b { font-size: 26px; }
.ui.ps-page .ps-tree { display: flex; flex-direction: column; padding-top: 4px; }
.ui.ps-page .ps-tn { position: relative; display: flex; align-items: stretch; border-bottom: 1px solid var(--ps-hair); }
.ui.ps-page .ps-tn::before { content: ""; position: absolute; left: 0; top: 6px; bottom: 6px; width: 2px; background: var(--ps-text); transform: scaleY(0); transition: transform .24s var(--ease-out); }
.ui.ps-page .ps-tn.ps-on::before { transform: none; }
.ui.ps-page .ps-tpick { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 32px; padding: 3px 4px 3px 14px; border: 0; background: transparent; color: var(--ps-text2); font-size: 13px; text-align: left; cursor: pointer; transition: color .12s var(--ease-out); }
.ui.ps-page .ps-tn.ps-tl1 .ps-tpick { padding-left: 28px; font-size: 12.5px; }
.ui.ps-page .ps-tpick:hover, .ui.ps-page .ps-tn.ps-on .ps-tpick { color: var(--ps-text); }
.ui.ps-page .ps-tn.ps-on .ps-tname { font-weight: 500; }
.ui.ps-page .ps-tname { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui.ps-page .ps-tmeta { flex: none; font-size: 12px; color: var(--ps-muted); font-variant-numeric: tabular-nums; }
.ui.ps-page .ps-tedit { flex: none; width: 28px; border: 0; background: transparent; color: var(--ps-muted); font-size: 13px; cursor: pointer; transition: color .12s var(--ease-out); }
.ui.ps-page .ps-tedit:hover { color: var(--ps-text); }
.ui.ps-page .ps-faccell { display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 4px; background: var(--ps-bg); border-bottom: 0; cursor: default; font-size: 13px; line-height: 1.25; word-break: keep-all; overflow-wrap: anywhere; }
.ui.ps-page .ps-row.ps-subtop .ps-c, .ui.ps-page .ps-faccell.ps-subtop { box-shadow: inset 0 1px 0 var(--ps-rule); }
.ui.ps-page .ps-static .ps-c { cursor: default; }
.ui.ps-page .ps-c.ps-ctr { justify-content: center; text-align: center; color: var(--ps-text2); }
.ui.ps-page .ps-c.ps-code { justify-content: flex-start; padding-left: 10px; font-size: 12.5px; color: var(--ps-text2); }
.ui.ps-page .ps-hc.ps-code { align-items: center; }
.ui.ps-page .ps-st.ps-neg { color: var(--ps-bad); font-weight: 500; }
.ui.ps-page .ps-st.ps-neg .ps-st-mark { background: var(--ps-bad); border-color: var(--ps-bad); }
.ui.ps-page .ps-stats { grid-template-columns: 1fr 1.5fr 1fr; }
.ui.ps-page .ps-stats b.ps-short-bad { color: var(--ps-bad); }
/* 칸이 아주 길면(9줄 이상) 이름이 가운데에 숨지 않도록 머리 아래에 붙어 따라온다 */
.ui.ps-page .ps-tall { align-items: flex-start; }
.ui.ps-page .ps-tall > span { position: sticky; top: 78px; padding-top: 12px; }
.ui.ps-page .ps-facname { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.ui.ps-page .ps-facsum { font-size: 11px; font-weight: 400; color: var(--ps-muted); line-height: 1.2; white-space: nowrap; }
.ui.ps-page .ps-stats .ps-st { margin-top: 3px; font-size: 11px; gap: 5px; }
.ui.ps-page .ps-stats .ps-st:not(.ps-neg) { color: var(--ps-muted); }

/* ===== 매출(#page-ledger): 요약 숫자 띠 · 보기 전환/필터 · 막대 · 왼쪽 요약 패널 ===== */
.ui.ps-page .mx-view { display: contents; }
.ui.ps-page .ui-seg { border: 1px solid var(--ps-rule); border-radius: 0; background: transparent; padding: 0; gap: 0; overflow: hidden; }
.ui.ps-page .ui-seg-item { min-height: 34px; padding: 0 14px; border-radius: 0; font-size: 13px; font-weight: 500; color: var(--ps-text2); border-left: 1px solid var(--ps-hair); background: transparent; transition: background-color .12s var(--ease-out), color .12s var(--ease-out); }
.ui.ps-page .ui-seg-item:first-child { border-left: 0; }
.ui.ps-page .ui-seg-item:hover { background: var(--ps-raised); }
.ui.ps-page .ui-seg-item[aria-pressed="true"] { background: var(--ps-text); color: var(--ps-bg); box-shadow: none; font-weight: 500; }
.ui.ps-page .ui-chip { min-height: 34px; border: 1px solid var(--ps-rule); border-radius: 0; background: transparent; color: var(--ps-text2); font-size: 13px; padding: 0 12px; transition: background-color .12s var(--ease-out), color .12s var(--ease-out); }
.ui.ps-page .ui-chip:hover { background: var(--ps-raised); }
.ui.ps-page .ui-chip[aria-pressed="true"] { background: var(--ps-text); color: var(--ps-bg); border-style: solid; font-weight: 500; }
.ui.ps-page .ui-chip[aria-pressed="true"]::before { content: none; }
.ui.ps-page .mx-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); flex: none; border-bottom: 1px solid var(--ps-hair); margin-bottom: 12px; }
.ui.ps-page .mx-kpi { padding: 2px 16px 12px; border-left: 1px solid var(--ps-hair); min-width: 0; }
.ui.ps-page .mx-kpi:first-child { border-left: 0; padding-left: 0; }
.ui.ps-page .mx-kl { font-size: 12.5px; font-weight: 500; color: var(--ps-muted); }
.ui.ps-page .mx-kmain { display: flex; align-items: baseline; gap: 6px; margin: 2px 0 3px; white-space: nowrap; }
.ui.ps-page .mx-kv { font-size: 34px; line-height: 1.1; font-weight: 400; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.ui.ps-page .mx-ku { font-size: 13px; color: var(--ps-muted); }
.ui.ps-page .mx-kd { font-size: 13px; font-weight: 500; color: var(--ps-text2); margin-left: 4px; }
.ui.ps-page .mx-kn { font-size: 11.5px; color: var(--ps-muted); line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ui.ps-page .mx-main { display: flex; flex-direction: column; gap: 10px; }
.ui.ps-page .mx-bar2 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; flex: none; }
.ui.ps-page .mx-chips { display: flex; flex-wrap: wrap; gap: 6px; flex: none; }
.ui.ps-page .mx-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 28px; padding: 0 10px; border: 1px solid var(--ps-text2); background: transparent; color: var(--ps-text); font-size: 12.5px; cursor: pointer; }
.ui.ps-page .mx-chip:hover { background: var(--ps-raised); }
.ui.ps-page .mx-tablebox { flex: 1 1 auto; min-height: 0; }
.ui.ps-page .mx-tablebox > .ps-wrap { height: 100%; max-height: none; }
.ui.ps-page .mx-tablebox > .ui-empty { margin: 0; }
.ui.ps-page .mx-first { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.ui.ps-page .mx-tag { font-size: 12px; }
.ui.ps-page .ps-c.ps-left { justify-content: flex-start; padding-left: 10px; }
.ui.ps-page .ps-hc.ps-left { align-items: center; }
.ui.ps-page .mx-foot { justify-content: center; margin-top: 10px; gap: 12px; }
.ui.ps-page .mx-share { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.ui.ps-page .mx-bar { display: inline-block; width: 56px; height: 3px; background: var(--ps-hair); flex: none; }
.ui.ps-page .mx-bar > i { display: block; height: 100%; background: var(--ps-text2); }
.ui.ps-page .mx-pct { min-width: 40px; font-size: 12px; text-align: right; font-variant-numeric: tabular-nums; }
.ui.ps-page .mx-catlab { display: flex; flex-direction: column; align-items: center; gap: 2px; line-height: 1.25; }
.ui.ps-page .mx-catlab b { font-size: 14px; font-weight: 500; word-break: keep-all; overflow-wrap: anywhere; }
.ui.ps-page .mx-catlab small { font-size: 11px; color: var(--ps-muted); font-variant-numeric: tabular-nums; }
.ui.ps-page .mx-catcell.ps-sel { background: var(--ps-raised); box-shadow: inset 3px 0 0 var(--ps-text); }
.ui.ps-page .mx-chart { display: flex; align-items: flex-end; gap: 3px; flex: none; padding: 0 2px; }
.ui.ps-page .mx-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 2px 1px; border: 0; background: transparent; cursor: pointer; color: var(--ps-text2); transition: background-color .12s var(--ease-out); }
.ui.ps-page .mx-col:hover { background: var(--ps-raised); }
.ui.ps-page .mx-val { font-size: 10.5px; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--ps-text); }
.ui.ps-page .mx-track { display: flex; align-items: flex-end; width: 100%; height: 56px; border-bottom: 1px solid var(--ps-rule); }
.ui.ps-page .mx-track > i { display: block; width: 100%; background: var(--ps-rule); transform-origin: bottom; }
.ui.ps-page .mx-col:hover .mx-track > i { background: var(--ps-sec); }
.ui.ps-page .mx-col.mx-on .mx-track > i { background: var(--ps-text); }
.ui.ps-page .mx-col.mx-cur .mx-track > i { background: repeating-linear-gradient(135deg, var(--ps-text2) 0 5px, transparent 5px 9px); outline: 1px solid var(--ps-text2); }
.ui.ps-page .mx-lab { font-size: 11px; white-space: nowrap; }
.ui.ps-page .mx-lab2 { font-size: 10px; color: var(--ps-muted); white-space: pre; min-height: 1.3em; }
.ui.ps-page .ps-draw .mx-track > i { animation: mx-grow .32s var(--ease-out) both; animation-delay: calc(var(--i, 0) * 14ms); }
@keyframes mx-grow { from { transform: scaleY(0); } to { transform: none; } }
.ui.ps-page .mx-sidet { font-size: 13px; font-weight: 500; color: var(--ps-muted); margin-bottom: 8px; }
.ui.ps-page .mx-picks { display: flex; flex-direction: column; border-top: 1px solid var(--ps-hair); margin-bottom: 12px; }
.ui.ps-page .mx-pickrow { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: 6px; min-height: 34px; border-bottom: 1px solid var(--ps-hair); }
.ui.ps-page .mx-pk { font-size: 12px; color: var(--ps-muted); }
.ui.ps-page .mx-ptext { font-size: 13px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui.ps-page .mx-bigsum { display: flex; flex-direction: column; margin-bottom: 8px; }
.ui.ps-page .mx-bigsum b { font-size: 28px; font-weight: 400; letter-spacing: -0.04em; line-height: 1.15; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.ui.ps-page .mx-bigsum span { font-size: 12px; color: var(--ps-muted); }
.ui.ps-page .mx-dl { border-top: 1px solid var(--ps-hair); }
.ui.ps-page .mx-row { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; min-height: 30px; padding: 5px 0; border-bottom: 1px solid var(--ps-hair); font-size: 13px; }
.ui.ps-page .mx-rk { color: var(--ps-muted); white-space: nowrap; }
.ui.ps-page .mx-rv { text-align: right; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.ui.ps-page .mx-acts { margin: 10px 0; gap: 6px; }
.ui.ps-page .mx-mini { margin-top: 14px; }
.ui.ps-page .mx-minit { font-size: 12px; color: var(--ps-muted); margin-bottom: 4px; }
.ui.ps-page .mx-minirow { display: grid; grid-template-columns: minmax(0, 1fr) 44px auto; align-items: center; gap: 8px; width: 100%; min-height: 28px; padding: 0; border: 0; border-bottom: 1px solid var(--ps-hair); background: transparent; color: var(--ps-text); font-size: 12.5px; text-align: left; cursor: pointer; }
.ui.ps-page .mx-minirow:hover { background: var(--ps-raised); }
.ui.ps-page .mx-mini-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui.ps-page .mx-mini-val { min-width: 48px; text-align: right; font-size: 12px; font-variant-numeric: tabular-nums; }
.ui.ps-page .mx-minirow .mx-bar { width: 44px; }
.ui.ps-page .mx-notices { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; flex: none; }
.ui.ps-page .mx-notice { display: flex; align-items: center; gap: 10px; font-size: 13px; }

.ui.ps-page .mx-bar2 { justify-content: space-between; row-gap: 8px; }
.ui.ps-page .mx-grp { display: flex; align-items: center; gap: 8px; flex: none; }
.ui.ps-page .mx-row { min-height: 26px; padding: 3px 0; }
.ui.ps-page .mx-minirow { min-height: 24px; }
.ui.ps-page .mx-mini { margin-top: 10px; }
.ui.ps-page .mx-bigsum b { font-size: 26px; }
.ui.ps-page .mx-track { height: 48px; }

/* ===== 미수금(#page-recv): 요약 띠 6칸 · 점+글자 상태 · 이카운트 대조 표 · 왼쪽 상세 폼 ===== */
.ui.ps-page .mx-kpis { grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); }
.ui.ps-page .ps-layout.mx-wide { grid-template-columns: minmax(0, 1fr); }
.ui.ps-page .ps-layout.mx-wide > .ps-listbox { padding-right: 12px; }
.ui.ps-page .rv-st { gap: 6px; font-size: 12.5px; }
.ui.ps-page .rv-st.rv-good .ps-st-mark { background: var(--ps-text2); border-color: var(--ps-text2); }
.ui.ps-page .rv-st.rv-info .ps-st-mark { border-radius: 0; transform: rotate(45deg); background: var(--ps-text2); border-color: var(--ps-text2); width: 6px; height: 6px; }
.ui.ps-page .rv-st.rv-warn .ps-st-mark { border-radius: 0; background: var(--ps-text2); border-color: var(--ps-text2); }
.ui.ps-page .rv-st.rv-neu { color: var(--ps-muted); }
.ui.ps-page .rv-st.rv-neu .ps-st-mark { background: transparent; border-color: var(--ps-muted); }
.ui.ps-page .rv-st.ps-neg { color: var(--ps-bad); font-weight: 500; }
.ui.ps-page .rv-st.ps-neg .ps-st-mark { background: var(--ps-bad); border-color: var(--ps-bad); }
.ui.ps-page .rv-tags { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 2px 12px; }
.ui.ps-page .rv-chips { display: flex; flex-wrap: wrap; gap: 2px 14px; align-items: center; padding: 4px 0; }
.ui.ps-page .ps-c.ps-left { flex-wrap: wrap; }
.ui.ps-page .rv-totrow .ps-c { font-weight: 500; box-shadow: inset 0 2px 0 var(--ps-rule); }
.ui.ps-page .rv-totrow { cursor: default; }
.ui.ps-page .rv-deleted .ps-c { color: var(--ps-muted); }
.ui.ps-page .rv-done .ps-c:not(.ps-tot) { color: var(--ps-text2); }
.ui.ps-page .rv-subtabs { display: inline-flex; margin-left: 4px; }
.ui.ps-page .rv-bulk { display: flex; align-items: center; gap: 12px; padding: 0 0 10px; margin: 0; border: 0; background: transparent; flex: none; }
.ui.ps-page .rv-bulkinfo { flex: 1 1 auto; font-size: 13px; font-weight: 500; }
.ui.ps-page .rv-chk, .ui.ps-page .rv-chkall { width: 16px; height: 16px; accent-color: var(--ps-text); cursor: pointer; }
.ui.ps-page .rv-msel { display: flex; flex-direction: column; gap: 4px; margin-top: 16px; }
.ui.ps-page .rv-msel .ui-input { width: 100%; min-width: 0; min-height: 32px; font-size: 13px; }
.ui.ps-page .ps-detailwrap .ui-card { padding-top: 6px; }
.ui.ps-page .ps-detailwrap .rv-form { gap: 10px; }
.ui.ps-page .rv-form .ui-seg { display: flex; width: 100%; }
.ui.ps-page .rv-form .ui-seg-item { flex: 1; min-height: 30px; padding: 0 6px; font-size: 12.5px; }
.ui.ps-page .rv-two { grid-template-columns: 1fr 1fr; gap: 8px; }
.ui.ps-page .ps-side .rv-two { grid-template-columns: 1fr; gap: 10px; }
.ui.ps-page .rv-cust { font-size: 16px; font-weight: 500; }
.ui.ps-page .rv-amt { font-size: 22px; font-weight: 400; letter-spacing: -0.03em; }
.ui.ps-page .rv-big { font-size: 17px; font-weight: 500; }
.ui.ps-page .rv-gapwarn { border: 0; background: transparent; padding: 0; font-size: 13px; gap: 6px 10px; }
.ui.ps-page .rv-gapitems { border-top: 1px solid var(--ps-hair); padding-top: 10px; }
.ui.ps-page .rv-opt { border: 1px solid var(--ps-rule); border-radius: 0; background: transparent; padding: 8px 10px; box-shadow: none; }
.ui.ps-page .rv-opt:hover { background: var(--ps-raised); }
.ui.ps-page .rv-opt.rv-on { border-color: var(--ps-text); background: var(--ps-raised); box-shadow: inset 3px 0 0 var(--ps-text); }
.ui.ps-page .rv-opt.rv-off { background: transparent; opacity: .7; }
.ui.ps-page .rv-opt input { accent-color: var(--ps-text); width: 16px; height: 16px; }
.ui.ps-page .rv-sumbox { border: 1px solid var(--ps-hair); border-radius: 0; background: transparent; padding: 8px 10px; }
.ui.ps-page .rv-log { border-top: 1px solid var(--ps-hair); }
.ui.ps-page .lg-dl { gap: 4px 10px; }
.ui.ps-page .lg-dl dt { font-weight: 400; color: var(--ps-muted); font-size: 12.5px; }
.ui.ps-page .rv-diffpanel .rv-diffbody { align-items: stretch; gap: 6px; font-size: 13px; }
.ui.ps-page .rv-diffpanel { width: min(640px, calc(100vw - 120px)); }
.ui.ps-page .rv-diffbtn { margin-left: 4px; }
.ui.ps-page .rv-host dialog { color: var(--ps-text); }

.ui.ps-page .ps-tree + .mx-sidet { margin-top: 16px; }
.ui.ps-page .ps-side .ui-seg { margin-top: 2px; }
.ui.ps-page .ui-seg-item[aria-pressed="true"] .ui-seg-count { color: inherit; }
.ui.ps-page .mx-kd.ps-short-bad { color: var(--ps-bad); }

/* 비활성 버튼: 투명도 대신 글자·선 회색 단계로(글자 대비 4.5 이상 유지) */
.ui.ps-page .ui-btn[disabled], .ui.ps-page .ui-btn[aria-disabled="true"] { opacity: 1; cursor: not-allowed; color: var(--ps-muted); border-style: dashed; border-color: var(--ps-hair); background: transparent; }
.ui.ps-page .ui-btn[disabled]:hover, .ui.ps-page .ui-btn[aria-disabled="true"]:hover { background: transparent; border-color: var(--ps-hair); }
.ui.ps-page .ui-btn-primary[disabled], .ui.ps-page .ui-btn-primary[aria-disabled="true"] { background: transparent; color: var(--ps-muted); }
.ui.ps-page .ui-btn-danger[disabled] { color: var(--ps-muted); }

/* ===== 미수금: 이카운트 기준 자동 맞추기 · 역발행 월 합계 검증 · 참고 줄 (데스크 2026-10-04 신기능의 .ar-* 의도를 새 규칙으로) =====
   의도: 버튼 줄(미리보기·반영하기·진행 글자) / 결과 한 줄 / 4칸 숫자 / 월별 미리보기 표(처리 결과 상태 구분) / 안내 목록 / 최근 반영(되돌리기) / 확인창의 건수 줄 / 검증 표(합계 줄 포함). */
.ui.ps-page .mx-tablebox.rv-stack { overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; padding-right: 12px; padding-bottom: 12px; display: flex; flex-direction: column; gap: 20px; }
.ui.ps-page .mx-tablebox.rv-stack > .ps-wrap, .ui.ps-page .mx-tablebox.rv-stack > .ui-empty { height: auto; max-height: none; flex: none; }
.ui.ps-page .ps-wrap.ps-flat { overflow: visible; height: auto; max-height: none; }
.ui.ps-page .mx-tablebox.rv-stack > .ps-wrap .ps-inner { padding-bottom: 4px; }
.ui.ps-page .rv-auto, .ui.ps-page .rv-rev { flex: none; border: 2px solid var(--ps-box); }
.ui.ps-page .rv-sechead { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; padding: 8px 14px; border-bottom: 1px solid var(--ps-rule); }
.ui.ps-page .rv-sech2 { margin: 0; font-size: 16px; font-weight: 500; letter-spacing: -0.02em; }
.ui.ps-page .rv-secbody { display: flex; flex-direction: column; gap: 12px; padding: 12px 14px 14px; min-width: 0; }
.ui.ps-page .rv-secbody:empty { display: none; }
.ui.ps-page .ar-btns { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ui.ps-page .ar-busy { font-size: 13px; font-weight: 500; color: var(--ps-text); }
.ui.ps-page .ar-preview { display: flex; flex-direction: column; gap: 12px; min-width: 0; outline: none; }
.ui.ps-page .ar-preview .mx-kpis { margin-bottom: 0; }
.ui.ps-page .ar-preview .mx-kv { font-size: 28px; }
.ui.ps-page .ar-preview .mx-notice, .ui.ps-page .rv-secbody .mx-notice { font-size: 13px; flex-wrap: wrap; }
.ui.ps-page .ar-guide { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding-left: 10px; border-left: 2px solid var(--ps-box); }
.ui.ps-page .ar-list { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.ui.ps-page .ar-last { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; padding-top: 10px; border-top: 1px solid var(--ps-hair); font-size: 13px; }
.ui.ps-page .ar-last .mx-sidet { margin: 0; }
.ui.ps-page .ar-lastinfo { font-variant-numeric: tabular-nums; }
.ui.ps-page .ar-why { color: var(--ps-text2); }
.ui.ps-page .ar-revsum { gap: 4px 16px; flex-wrap: wrap; }
.ui.ps-page .ar-keep > summary { cursor: pointer; padding: 4px 0; list-style: none; }
.ui.ps-page .ar-keep > summary::-webkit-details-marker { display: none; }
.ui.ps-page .ar-keep > summary:focus-visible { outline: 2px solid var(--ps-text); outline-offset: 2px; }
.ui.ps-page .ar-keep[open] { max-height: 360px; overflow-y: auto; scrollbar-width: thin; }
.ui.ps-page .ar-dlines { align-items: stretch; width: 100%; gap: 4px; }
.ui.ps-page .ar-dline { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 6px 10px; border: 1px solid var(--ps-hair); font-size: 13px; }
.ui.ps-page .ar-dline b { font-weight: 500; font-variant-numeric: tabular-nums; }
.ui.ps-page .rv-dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 14px; margin: 0; width: 100%; }
.ui.ps-page .rv-dl dt { font-size: 12.5px; color: var(--ps-text2); white-space: nowrap; }
.ui.ps-page .rv-dl dd { margin: 0; text-align: right; font-size: 13px; overflow-wrap: anywhere; }

/* ===== 매출(새 역할): 핵심 지표 / 월별 추이 띠 / 채널별 월간 판매 표 ===== */
#page-ledger.ui.ps-page .lg-ynav { display: inline-flex; align-items: center; gap: 8px; }
#page-ledger.ui.ps-page .lg-year { min-width: 64px; text-align: center; font-size: 17px; font-weight: 500; font-variant-numeric: tabular-nums; }
#page-ledger.ui.ps-page .lg-msel { width: 92px; min-height: 38px; }
#page-ledger.ui.ps-page .lg-trend { flex: none; margin-bottom: 12px; }
#page-ledger.ui.ps-page .lg-trend .ps-inner { padding-bottom: 4px; }
#page-ledger.ui.ps-page .lg-main { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
#page-ledger.ui.ps-page .lg-main .mx-tablebox { flex: 1 1 auto; min-height: 0; }
#page-ledger.ui.ps-page .lg-mbtn { width: 100%; height: 100%; min-height: 34px; border: 0; background: transparent; color: inherit; font: inherit; font-weight: 500; cursor: pointer; padding: 0; }
#page-ledger.ui.ps-page .lg-mbtn:hover:not(:disabled) { background: var(--ps-raised); }
#page-ledger.ui.ps-page .lg-mbtn:disabled { color: var(--ps-muted); font-weight: 400; cursor: default; }
#page-ledger.ui.ps-page .lg-mbtn[aria-pressed="true"] { color: var(--ps-ac-ink, var(--ps-text)); box-shadow: inset 0 -3px 0 var(--ps-ac, var(--ps-text)); }
#page-ledger.ui.ps-page .ps-hc:has(> .lg-mbtn) { padding: 0; }
#page-ledger.ui.ps-page .ps-c.lg-cur, #page-ledger.ui.ps-page .ps-hc.lg-cur { background: var(--ps-ac-tint, var(--ps-raised)); }
#page-ledger.ui.ps-page .lg-sm { font-size: 12px; letter-spacing: -0.01em; padding-left: 2px; padding-right: 4px; }
#page-ledger.ui.ps-page .lg-sub .ps-c { font-weight: 500; background: var(--ps-head-tint, var(--ps-panel)); box-shadow: inset 0 1px 0 var(--ps-rule); }
#page-ledger.ui.ps-page .lg-sub .ps-c.lg-cur { background: var(--ps-ac-tint, var(--ps-raised)); }
#page-ledger.ui.ps-page .lg-plist { display: flex; flex-direction: column; gap: 4px; max-height: 240px; overflow-y: auto; scrollbar-width: thin; }
#page-ledger.ui.ps-page .lg-prow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 8px; border: 1px solid var(--ps-hair); }

/* ===== 실판매(새 페이지): 같은 틀 ===== */
#page-realsales.ui.ps-page .lg-ynav { display: inline-flex; align-items: center; gap: 8px; }
#page-realsales.ui.ps-page .lg-year { min-width: 64px; text-align: center; font-size: 17px; font-weight: 500; font-variant-numeric: tabular-nums; }
#page-realsales.ui.ps-page .lg-msel { width: 92px; min-height: 38px; }
#page-realsales.ui.ps-page .lg-main { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
#page-realsales.ui.ps-page .lg-main .mx-tablebox { flex: 1 1 auto; min-height: 0; }
#page-realsales.ui.ps-page .lg-mbtn { width: 100%; height: 100%; min-height: 34px; border: 0; background: transparent; color: inherit; font: inherit; font-weight: 500; cursor: pointer; padding: 0; }
#page-realsales.ui.ps-page .lg-mbtn:hover:not(:disabled) { background: var(--ps-raised); }
#page-realsales.ui.ps-page .lg-mbtn:disabled { color: var(--ps-muted); font-weight: 400; cursor: default; }
#page-realsales.ui.ps-page .lg-mbtn[aria-pressed="true"] { color: var(--ps-ac-ink, var(--ps-text)); box-shadow: inset 0 -3px 0 var(--ps-ac, var(--ps-text)); }
#page-realsales.ui.ps-page .ps-hc:has(> .lg-mbtn) { padding: 0; }
#page-realsales.ui.ps-page .ps-c.lg-cur, #page-realsales.ui.ps-page .ps-hc.lg-cur { background: var(--ps-ac-tint, var(--ps-raised)); }
#page-realsales.ui.ps-page .lg-sm { font-size: 12px; letter-spacing: -0.01em; padding-left: 2px; padding-right: 4px; }
#page-realsales.ui.ps-page .lg-sub .ps-c { font-weight: 500; background: var(--ps-head-tint, var(--ps-panel)); box-shadow: inset 0 1px 0 var(--ps-rule); }
#page-realsales.ui.ps-page .lg-sub .ps-c.lg-cur { background: var(--ps-ac-tint, var(--ps-raised)); }
#page-realsales.ui.ps-page .lg-plist { display: flex; flex-direction: column; gap: 4px; max-height: 240px; overflow-y: auto; scrollbar-width: thin; }
#page-realsales.ui.ps-page .lg-prow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 8px; border: 1px solid var(--ps-hair); }

/* 실판매(2026-10-04 다듬기): 위쪽은 얇은 한 줄 띠(핵심 지표 4칸 + 월 고르기) · 표가 남은 높이를 쓴다 · 상위 업체 구획 */
#page-realsales.ui.ps-page .rs-strip { display: flex; align-items: stretch; flex: none; border-top: 2px solid var(--ps-sec); border-bottom: 1px solid var(--ps-hair); margin-bottom: 10px; }
#page-realsales.ui.ps-page .rs-kpis { display: grid; grid-template-columns: repeat(4, auto); flex: none; }
#page-realsales.ui.ps-page .rs-k { padding: 5px 16px 5px 14px; border-left: 1px solid var(--ps-hair); min-width: 0; }
#page-realsales.ui.ps-page .rs-k:first-child { border-left: 0; padding-left: 0; }
#page-realsales.ui.ps-page .rs-kl { font-size: 11.5px; font-weight: 500; color: var(--ps-muted); line-height: 1.25; white-space: nowrap; }
#page-realsales.ui.ps-page .rs-kmain { display: flex; align-items: baseline; gap: 4px; white-space: nowrap; }
#page-realsales.ui.ps-page .rs-kv { font-size: 22px; line-height: 1.2; font-weight: 400; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
#page-realsales.ui.ps-page .rs-k:first-child .rs-kv { color: var(--ps-ac-ink, var(--ps-text)); }
#page-realsales.ui.ps-page .rs-ku { font-size: 12px; color: var(--ps-muted); }
#page-realsales.ui.ps-page .rs-kn { font-size: 11.5px; color: var(--ps-muted); line-height: 1.25; white-space: nowrap; }
#page-realsales.ui.ps-page .rs-months { display: grid; grid-template-columns: repeat(13, minmax(0, 1fr)); flex: 1 1 auto; min-width: 0; border-left: 2px solid var(--ps-sec); }
#page-realsales.ui.ps-page .rs-m { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; width: 100%; height: 100%; min-height: 0; padding: 5px 0; border: 0; border-left: 1px solid var(--ps-hair); background: transparent; color: var(--ps-text); font: inherit; font-weight: 400; font-variant-numeric: tabular-nums; line-height: 1.3; min-width: 0; }
#page-realsales.ui.ps-page .rs-m:first-child { border-left: 0; }
#page-realsales.ui.ps-page .rs-m[aria-pressed="true"] { background: var(--ps-ac-tint, var(--ps-raised)); }
#page-realsales.ui.ps-page .rs-m:disabled { color: var(--ps-muted); }
#page-realsales.ui.ps-page .rs-avg { border-left: 2px solid var(--ps-sec); background: var(--ps-head-tint, var(--ps-panel)); cursor: default; }
#page-realsales.ui.ps-page .rs-ml { font-size: 11.5px; font-weight: 500; color: var(--ps-text2); }
#page-realsales.ui.ps-page .rs-m:disabled .rs-ml { color: var(--ps-muted); font-weight: 400; }
#page-realsales.ui.ps-page .rs-mq { font-size: 12px; }
#page-realsales.ui.ps-page .rs-ma { font-size: 11.5px; color: var(--ps-muted); }
@media (max-width: 899px) {
  #page-realsales.ui.ps-page .rs-strip { flex-direction: column; }
  #page-realsales.ui.ps-page .rs-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-realsales.ui.ps-page .rs-k { padding-left: 10px; border-top: 1px solid var(--ps-hair); }
  #page-realsales.ui.ps-page .rs-k:nth-child(odd) { border-left: 0; padding-left: 0; }
  #page-realsales.ui.ps-page .rs-months { grid-template-columns: repeat(13, 56px); overflow-x: auto; border-left: 0; border-top: 1px solid var(--ps-hair); scrollbar-width: thin; }
  #page-realsales.ui.ps-page .rs-m { min-height: 56px; }
}
/* 폰(640 이하): 월 고르기를 가로로 밀지 않고 6칸씩 두 줄 + 월 평균 한 줄로 */
@media (max-width: 640px) {
  #page-realsales.ui.ps-page .rs-months { grid-template-columns: repeat(6, minmax(0, 1fr)); overflow-x: visible; }
  #page-realsales.ui.ps-page .rs-m { border-top: 1px solid var(--ps-hair); }
  #page-realsales.ui.ps-page .rs-m:nth-child(6n+1) { border-left: 0; }
  #page-realsales.ui.ps-page .rs-m:nth-child(-n+6) { border-top: 0; }
  #page-realsales.ui.ps-page .rs-avg { grid-column: 1 / -1; border-left: 0; flex-direction: row; gap: 12px; min-height: 36px; }
  #page-realsales.ui.ps-page .rs-avg .rs-src { display: none; }
}
#page-realsales.ui.ps-page .ps-c { cursor: default; }
#page-realsales.ui.ps-page .lg-band .ps-c { background: var(--ps-head-tint, var(--ps-panel)); box-shadow: inset 0 2px 0 var(--ps-sec); font-size: 12.5px; font-weight: 500; color: var(--ps-text2); justify-content: flex-start; padding-left: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#page-realsales.ui.ps-page .rs-nmrow { display: flex; align-items: baseline; gap: 8px; min-width: 0; width: 100%; }
#page-realsales.ui.ps-page .rs-rk { flex: none; width: 16px; text-align: right; font-size: 11.5px; color: var(--ps-muted); font-variant-numeric: tabular-nums; }

.ui.ps-page .ps-uplink { color: var(--ps-ac-ink, var(--ps-text)); font-size: 13px; text-decoration: underline; text-underline-offset: 3px; padding: 6px 4px; }
.ui.ps-page .ps-uplink:hover { color: var(--ps-text); }
.ui.ps-page .ps-uplink:focus-visible { outline: 2px solid var(--ps-text); outline-offset: 2px; }

/* 판매·재고: 재고 기준 줄(출처별 점+글자) · 입고 일정 앞 가는 세로 구분선 */
.ui.ps-page .ps-fs-sep { align-self: stretch; width: 1px; min-height: 18px; margin: 4px 0; background: var(--ps-hair); flex: none; }
.ui.ps-page .ps-fresh-row { grid-template-columns: repeat(auto-fit, minmax(176px, 1fr)); }
.ui.ps-page .ps-fresh-main { font-size: 22px; }
.ui.ps-page .ps-fresh-top { flex-direction: column; align-items: flex-start; gap: 2px; }
.ui.ps-page .ps-fs-sum { gap: 6px 16px; }
.ui.ps-page .ps-fs-sum > .ps-live { padding-right: 16px; }
.ui.ps-page .ps-fs-sum .ps-fs-item { gap: 6px; }
.ui.ps-page .ps-fs-sum .ps-fs-v { font-size: 13px; }

/* 판매·재고: 총판 일별 파일 4개 상태 줄(올림 ● / 없음 ○ / 읽지 못함 ■ 빨강) */
.ui.ps-page .ps-daily { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 24px; flex: none; padding: 2px 0 8px; font-size: 13px; color: var(--ps-text2); }
.ui.ps-page .ps-daily .ps-fs-item.ps-err { color: var(--ps-bad); }
.ui.ps-page .ps-daily .ps-fs-item.ps-err .ps-fs-v { font-weight: 500; }
.ui.ps-page .ps-fs-item.ps-err .ps-fs-dot { background: var(--ps-bad); border-radius: 0; box-shadow: none; }
@media (min-width: 900px) { .ui.ps-page .ps-daily { margin-bottom: 0; } }


/* ===== 미수금: 월 선택 줄(‹ 2026년 10월 › + 월 칩 1~12월; 자료 있는 달만 활성) ===== */
.ui.ps-page .rv-mbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; flex: none; margin: 0 0 10px; }
.ui.ps-page .rv-mnav { display: inline-flex; align-items: center; gap: 8px; }
.ui.ps-page .rv-mlabel { min-width: 118px; text-align: center; font-size: 17px; font-weight: 500; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.ui.ps-page .rv-mchips { display: flex; flex-wrap: nowrap; border: 1px solid var(--ps-rule); }
.ui.ps-page .rv-mchip { min-width: 46px; min-height: 34px; padding: 0 8px; border: 0; border-left: 1px solid var(--ps-hair); background: transparent; color: var(--ps-text2); font: inherit; font-size: 13px; cursor: pointer; }
.ui.ps-page .rv-mchip:first-child { border-left: 0; }
.ui.ps-page .rv-mchip:hover:not(:disabled) { background: var(--ps-raised); }
.ui.ps-page .rv-mchip:disabled { color: var(--ps-muted); cursor: default; text-decoration: line-through; text-decoration-color: var(--ps-hair); }
.ui.ps-page .rv-mchip[aria-pressed="true"] { background: var(--ps-ac-tint, var(--ps-raised)); color: var(--ps-text); font-weight: 500; box-shadow: inset 0 -3px 0 var(--ps-ac, var(--ps-text)); }

/* ===== 부자재(CS팀용): 카테고리 이름 + 코드 보조 글자, 재고 크게(가운데), 마이너스·0 강조 ===== */
#page-parts.ui.ps-page .ps-catcode, #page-parts.ui.ps-page .ps-tcode { display: block; font-size: 11px; font-weight: 400; letter-spacing: 0; color: var(--ps-muted); line-height: 1.2; }
#page-parts.ui.ps-page .ps-tcode { display: inline; margin-left: 6px; }
#page-parts.ui.ps-page .ps-catname { font-size: 14px; white-space: normal; line-height: 1.25; }
#page-parts.ui.ps-page .ps-c.ps-tot { font-size: 16px; }
#page-parts.ui.ps-page .ps-c.ps-tot b.ps-short-bad { font-size: 16px; }

#page-parts.ui.ps-page .ps-chk { font-size: 11px; flex: none; color: var(--ps-warn-ink, var(--ps-text2)); gap: 4px; }
#page-parts.ui.ps-page .ps-chk .ps-st-mark { border-radius: 0; background: currentColor; }

/* ===== 화면7 (2026-10-04): 자동 계산 표식 · 자료 없음 · 업체 줄 · 조용한 안내 줄. 새 색 없음(--ps-* 토큰만) ===== */
#page-realsales.ui.ps-page .rs-src { font-size: 10px; line-height: 1.3; color: var(--ps-muted); white-space: nowrap; font-weight: 400; }
#page-realsales.ui.ps-page .rs-src-open { color: var(--ps-ac-ink, var(--ps-text2)); }
#page-realsales.ui.ps-page .rs-src-closed { color: var(--ps-text2); font-weight: 500; }
#page-realsales.ui.ps-page .rs-ss { display: none; }
@media (max-width: 1599px) {
  #page-realsales.ui.ps-page .rs-sl { display: none; }
  #page-realsales.ui.ps-page .rs-ss { display: inline; }
}
#page-realsales.ui.ps-page .rs-note { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 18px; margin: -12px 0 8px; font-size: 12px; color: var(--ps-muted); line-height: 1.5; }
#page-realsales.ui.ps-page .rs-note .ps-fs-k { color: var(--ps-muted); }
#page-realsales.ui.ps-page .rs-asof b { font-weight: 500; color: var(--ps-text2); font-variant-numeric: tabular-nums; }
#page-realsales.ui.ps-page .rs-note2 { margin-top: 0; gap: 8px; color: var(--ps-text2); }
#page-realsales.ui.ps-page .rs-note2 .rs-src { font-size: 11px; font-weight: 500; border-bottom: 1px solid currentColor; }
#page-realsales.ui.ps-page .rs-warn { color: var(--ps-text); font-weight: 500; border-bottom: 1px solid var(--ps-text); display: inline-flex; align-items: center; gap: 6px; }
#page-realsales.ui.ps-page .rs-warn::before { content: ""; width: 6px; height: 6px; background: var(--ps-bad); flex: none; }
#page-realsales.ui.ps-page .rs-nmrow { align-items: center; }
#page-realsales.ui.ps-page .rs-nm2 { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
#page-realsales.ui.ps-page .rs-nm2 .ps-nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#page-realsales.ui.ps-page .rs-part { display: block; font-size: 10px; font-weight: 400; color: var(--ps-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.15; }
#page-realsales.ui.ps-page .ps-c.rs-nodata { justify-content: center; text-align: center; font-size: 11px; color: var(--ps-muted); white-space: nowrap; font-variant-numeric: normal; }
@media (max-width: 899px) {
  #page-realsales.ui.ps-page .rs-note { margin-top: -6px; }
}

/* 판매·재고: 표 아래 안내(못 맞춘 재고 줄 · 판정 제외 부속품) */
#page-sales.ui.ps-page .ps-calcnotes { flex: none; padding-top: 8px; font-size: 12px; color: var(--ps-muted); line-height: 1.5; }
#page-sales.ui.ps-page .ps-cn { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 14px; }
#page-sales.ui.ps-page .ps-cn-k { font-weight: 500; color: var(--ps-text2); }
#page-sales.ui.ps-page .ps-cn-sep { width: 1px; height: 12px; background: var(--ps-hair); align-self: center; }
#page-sales.ui.ps-page .ps-cn-list { display: flex; flex-wrap: wrap; gap: 0 14px; margin: 0; padding: 0; list-style: none; }
#page-sales.ui.ps-page .ps-cn-list li::before { content: "– "; }
#page-sales.ui.ps-page .ps-cn-warn { color: var(--ps-text); font-weight: 500; }
#page-sales.ui.ps-page .ps-cn-warn::before { content: ""; width: 6px; height: 6px; background: var(--ps-bad); align-self: center; flex: none; }
#page-sales.ui.ps-page .ps-calcmark { color: var(--ps-ac-ink, var(--ps-text2)); }
@media (min-width: 900px) {
  #page-sales.ui.ps-page .ps-onlylist { display: flex; flex-direction: column; }
  #page-sales.ui.ps-page .ps-onlylist > .ui-split-list { flex: 1 1 auto; min-height: 0; height: auto; }
}
@media (max-width: 1500px) {
  #page-sales.ui.ps-page .ps-sub.ps-calcmark { font-size: 9.5px; letter-spacing: -0.04em; }
}
@media (max-width: 899px) {
  #page-sales.ui.ps-page .ps-cn-sep { display: none; }
}

/* ===== 폰(640 이하) 판매·재고: 줄 아래에 펼쳐지는 상세 · 표 칸 정리. 새 색 없음 ===== */
@media (max-width: 640px) {
  #page-sales.ui.ps-page .ps-c { font-size: 13px; padding: 9px 4px; }
  #page-sales.ui.ps-page .ps-c.ps-name { padding-left: 10px; white-space: normal; line-height: 1.3; }
  #page-sales.ui.ps-page .ps-c.ps-name .ps-nm { white-space: normal; overflow-wrap: break-word; word-break: keep-all; }
  #page-sales.ui.ps-page .ps-hc { padding: 0 2px; font-size: 12px; }
  #page-sales.ui.ps-page .ps-gh { padding: 0 4px; }
  #page-sales.ui.ps-page .ps-c.ps-stat { padding-left: 8px; }
  #page-sales.ui.ps-page .ps-st { font-size: 12px; gap: 4px; white-space: nowrap; }
  #page-sales.ui.ps-page .ps-catcell { padding: 10px 4px 8px 8px; }
  #page-sales.ui.ps-page .ps-catname { font-size: 12.5px; white-space: normal; line-height: 1.25; }
  #page-sales.ui.ps-page .ps-hcol .ps-sub { display: none; }
  #page-sales.ui.ps-page .ps-c.ps-inl { display: block; cursor: default; padding: 4px 8px 10px 10px; background: var(--ps-raised); border-bottom: 1px solid var(--ps-hair); }
  #page-sales.ui.ps-page .ps-lastrow ~ .ps-inl { border-bottom: 0; }
  #page-sales.ui.ps-page .ps-inl .ui-card { padding: 0; border: 0; background: transparent; }
  #page-sales.ui.ps-page .ps-inl .ps-back { margin: 0 0 4px -8px; }
}

/* 폰 폭: 판정 탭(전체·발주 필요·…)이 오른쪽에서 잘리지 않게 줄바꿈 (2026-10-04, 폭 390 화면 점검에서 잘림 확인) */
@media (max-width: 640px) {
  #page-sales.ui.ps-page .ps-rail { flex-wrap: wrap; overflow-x: visible; }
  #page-sales.ui.ps-page .ps-rail-item { flex: 1 1 auto; min-width: 0; }
}
