ui(shell): 뷰포트(1883x938) 고정 — 문서 세로 스크롤 제거

- erp 셸 height:100vh + body overflow:hidden, .erp-page 가 남은 높이 채우고 내부 스크롤
- 휴가 달력: 6주 행이 가용 높이 균등 분할(유동), 날짜 셀 height:100%, 선택일 패널 내부 스크롤
- 쿠팡 출고 폼: 라인 패널 고정 900px 높이 → 가용 높이 채움
- CORM/Order 는 별도 창이라 해당 없음

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-05-30 18:12:41 +09:00
parent fde2c9c2e9
commit 9f361c4e6a
15 changed files with 61 additions and 33 deletions
+13 -5
View File
@@ -9,13 +9,15 @@
--erp-topbar-h: 56px;
}
/* ── 페이지 전체 컨테이너 ── */
body.erp-app-body { background: var(--color-canvas-white); min-height: 100vh; }
/* ── 페이지 전체 컨테이너 ──
뷰포트(예: 1883×938)에 고정 — 문서 전체 세로 스크롤 제거.
넘치는 콘텐츠는 .erp-page 내부에서만 처리한다(CORM/Order 는 별도 창이라 무관). */
body.erp-app-body { background: var(--color-canvas-white); height: 100vh; overflow: hidden; }
.erp-app {
display: grid;
grid-template-columns: var(--erp-sidebar-w) 1fr;
min-height: 100vh;
height: 100vh;
transition: grid-template-columns .18s ease;
}
.erp-app:has(.erp-sidebar[data-collapsed="true"]) {
@@ -127,10 +129,10 @@ body.erp-app-body { background: var(--color-canvas-white); min-height: 100vh; }
}
/* ── 콘텐츠 영역 ── */
.erp-content { display: flex; flex-direction: column; min-width: 0; }
.erp-content { display: flex; flex-direction: column; min-width: 0; height: 100vh; min-height: 0; }
.erp-topbar {
height: var(--erp-topbar-h);
height: var(--erp-topbar-h); flex-shrink: 0;
position: sticky; top: 0; z-index: 30;
background: var(--color-canvas-white);
border-bottom: 1px solid var(--color-subtle-ash);
@@ -159,7 +161,13 @@ body.erp-app-body { background: var(--color-canvas-white); min-height: 100vh; }
.erp-page {
padding: var(--sp-24);
max-width: 1550px; width: 100%; margin: 0 auto;
flex: 1 1 auto; min-height: 0;
overflow-y: auto; /* 넘치면 페이지 영역만 스크롤(문서 전체 X) */
display: flex; flex-direction: column;
}
/* 달력 등 "한 화면 채움" 페이지: 첫 섹션이 남은 높이를 모두 차지 */
.erp-page > .vac,
.erp-page > .cpg { flex: 1 1 auto; min-height: 0; }
/* ── 홈 대시보드 타일 ── */
.erp-hero { margin: var(--sp-8) 0 var(--sp-24); }