diff --git a/app/modules/cupang/templates/cupang/box_rules.html b/app/modules/cupang/templates/cupang/box_rules.html index b4046b9..aa5596d 100644 --- a/app/modules/cupang/templates/cupang/box_rules.html +++ b/app/modules/cupang/templates/cupang/box_rules.html @@ -1,6 +1,6 @@ {% extends "erp_base.html" %} -{% block head_extra %}{% endblock %} +{% block head_extra %}{% endblock %} {% block content %}
diff --git a/app/modules/cupang/templates/cupang/centers.html b/app/modules/cupang/templates/cupang/centers.html index 9757e5e..33dc894 100644 --- a/app/modules/cupang/templates/cupang/centers.html +++ b/app/modules/cupang/templates/cupang/centers.html @@ -1,6 +1,6 @@ {% extends "erp_base.html" %} -{% block head_extra %}{% endblock %} +{% block head_extra %}{% endblock %} {% block content %}
diff --git a/app/modules/cupang/templates/cupang/detail.html b/app/modules/cupang/templates/cupang/detail.html index 3fd7f02..3a443b3 100644 --- a/app/modules/cupang/templates/cupang/detail.html +++ b/app/modules/cupang/templates/cupang/detail.html @@ -1,6 +1,6 @@ {% extends "erp_base.html" %} -{% block head_extra %}{% endblock %} +{% block head_extra %}{% endblock %} {% block content %}
diff --git a/app/modules/cupang/templates/cupang/form.html b/app/modules/cupang/templates/cupang/form.html index ce03f62..758f563 100644 --- a/app/modules/cupang/templates/cupang/form.html +++ b/app/modules/cupang/templates/cupang/form.html @@ -1,6 +1,6 @@ {% extends "erp_base.html" %} -{% block head_extra %}{% endblock %} +{% block head_extra %}{% endblock %} {% block content %}
@@ -109,4 +109,4 @@ {% endblock %} -{% block scripts %}{% endblock %} +{% block scripts %}{% endblock %} diff --git a/app/modules/cupang/templates/cupang/index.html b/app/modules/cupang/templates/cupang/index.html index 7ff67ec..b5ae84c 100644 --- a/app/modules/cupang/templates/cupang/index.html +++ b/app/modules/cupang/templates/cupang/index.html @@ -1,6 +1,6 @@ {% extends "erp_base.html" %} -{% block head_extra %}{% endblock %} +{% block head_extra %}{% endblock %} {% block content %}
diff --git a/app/modules/cupang/templates/cupang/products.html b/app/modules/cupang/templates/cupang/products.html index 95ffd23..924cb77 100644 --- a/app/modules/cupang/templates/cupang/products.html +++ b/app/modules/cupang/templates/cupang/products.html @@ -1,6 +1,6 @@ {% extends "erp_base.html" %} -{% block head_extra %}{% endblock %} +{% block head_extra %}{% endblock %} {% block content %}
diff --git a/app/modules/vacation/templates/vacation/detail.html b/app/modules/vacation/templates/vacation/detail.html index 2d417b7..72f13c1 100644 --- a/app/modules/vacation/templates/vacation/detail.html +++ b/app/modules/vacation/templates/vacation/detail.html @@ -1,6 +1,6 @@ {% extends "erp_base.html" %} -{% block head_extra %}{% endblock %} +{% block head_extra %}{% endblock %} {% block content %}
diff --git a/app/modules/vacation/templates/vacation/form.html b/app/modules/vacation/templates/vacation/form.html index 457a82b..12ea7cf 100644 --- a/app/modules/vacation/templates/vacation/form.html +++ b/app/modules/vacation/templates/vacation/form.html @@ -1,6 +1,6 @@ {% extends "erp_base.html" %} -{% block head_extra %}{% endblock %} +{% block head_extra %}{% endblock %} {% block content %}
@@ -68,4 +68,4 @@
{% endblock %} -{% block scripts %}{% endblock %} +{% block scripts %}{% endblock %} diff --git a/app/modules/vacation/templates/vacation/index.html b/app/modules/vacation/templates/vacation/index.html index bb50b18..b6f6912 100644 --- a/app/modules/vacation/templates/vacation/index.html +++ b/app/modules/vacation/templates/vacation/index.html @@ -1,6 +1,6 @@ {% extends "erp_base.html" %} -{% block head_extra %}{% endblock %} +{% block head_extra %}{% endblock %} {% block content %}
diff --git a/app/modules/vacation/templates/vacation/pending.html b/app/modules/vacation/templates/vacation/pending.html index 0292119..d7ac6d3 100644 --- a/app/modules/vacation/templates/vacation/pending.html +++ b/app/modules/vacation/templates/vacation/pending.html @@ -1,6 +1,6 @@ {% extends "erp_base.html" %} -{% block head_extra %}{% endblock %} +{% block head_extra %}{% endblock %} {% block content %}
diff --git a/app/modules/vacation/templates/vacation/settings.html b/app/modules/vacation/templates/vacation/settings.html index bcad6e5..2ce5384 100644 --- a/app/modules/vacation/templates/vacation/settings.html +++ b/app/modules/vacation/templates/vacation/settings.html @@ -1,6 +1,6 @@ {% extends "erp_base.html" %} -{% block head_extra %}{% endblock %} +{% block head_extra %}{% endblock %} {% block content %}
diff --git a/app/static/cupang.css b/app/static/cupang.css index 9d2ba80..efbea6c 100644 --- a/app/static/cupang.css +++ b/app/static/cupang.css @@ -101,14 +101,17 @@ .cpg-form-card { padding: 16px; margin-bottom: 16px; } /* 공통 헤더(좌) + 품목 라인(우) 2열 */ +/* form 이 .cpg(남은 높이) 안에서 세로로 채우도록 */ +.cpg > form { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; } .cpg-form-2col { - display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; + display: flex; flex-wrap: wrap; gap: 16px; align-items: stretch; + flex: 1 1 auto; min-height: 0; } /* 공통 헤더: 너비 450 고정 */ -.cpg-form-head { flex: 0 0 450px; width: 450px; min-width: 0; margin-bottom: 0; } -/* 품목 라인: 900x900 고정, 내부 스크롤 */ +.cpg-form-head { flex: 0 0 450px; width: 450px; min-width: 0; margin-bottom: 0; align-self: flex-start; } +/* 품목 라인: 너비 900 고정, 높이는 가용 영역 채움, 내부 스크롤 */ .cpg-form-lines { - flex: 0 0 900px; width: 900px; height: 900px; min-width: 0; margin-bottom: 0; + flex: 0 0 900px; width: 900px; height: 100%; min-width: 0; margin-bottom: 0; display: flex; flex-direction: column; overflow: hidden; } @media (max-width: 1400px) { diff --git a/app/static/erp-shell.css b/app/static/erp-shell.css index f4ccb45..51647bf 100644 --- a/app/static/erp-shell.css +++ b/app/static/erp-shell.css @@ -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); } diff --git a/app/static/vacation.css b/app/static/vacation.css index 8138c10..c0d5dd8 100644 --- a/app/static/vacation.css +++ b/app/static/vacation.css @@ -20,7 +20,7 @@ /* ── 페이지 액션 + 잔여 요약 ── */ .vac-actions { display: flex; align-items: center; justify-content: space-between; - gap: 12px; flex-wrap: wrap; + gap: 12px; flex-wrap: wrap; flex-shrink: 0; } .vac-actions-main { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .vac-mini { margin-left: 4px; } @@ -38,26 +38,36 @@ display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; - align-items: start; + align-items: stretch; + flex: 1 1 auto; min-height: 0; /* 남은 높이 채움 → 문서 스크롤 방지 */ } @media (max-width: 1100px) { .vac-layout { grid-template-columns: 1fr; } } /* ── 달력 카드 ── */ -.vac-cal-card { padding: 16px; } +.vac-cal-card { + padding: 16px; + display: flex; flex-direction: column; min-height: 0; overflow: hidden; +} .vac-cal-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; + flex-shrink: 0; } .vac-cal-title { font-size: 18pt; font-weight: 600; margin: 0; letter-spacing: -0.45px; } .vac-nav-btn { padding: 4px 12px; font-size: 18pt; line-height: 1; } .vac-today-btn { margin-left: auto; } -.vac-cal { border: 1px solid var(--vac-ash); border-radius: 10px; overflow: hidden; } +.vac-cal { + border: 1px solid var(--vac-ash); border-radius: 10px; overflow: hidden; + flex: 1 1 auto; min-height: 0; + display: flex; flex-direction: column; +} .vac-wd-row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); background: var(--vac-ghost); border-bottom: 1px solid var(--vac-ash); + flex-shrink: 0; } .vac-wd { text-align: center; padding: 8px 0; font-size: 15px; font-weight: 600; @@ -66,15 +76,20 @@ } .vac-wd:last-child { border-right: none; } -/* 주(week) — 정사각형 날짜 셀 위에 bar 레이어를 오버레이 */ -.vac-week { position: relative; border-bottom: 1px solid var(--vac-ash); } +/* 주(week) — 날짜 셀 위에 bar 레이어를 오버레이. 6주가 높이를 균등 분할(유동). */ +.vac-week { + position: relative; border-bottom: 1px solid var(--vac-ash); + flex: 1 1 0; min-height: 88px; + display: flex; flex-direction: column; +} .vac-week:last-child { border-bottom: none; } .vac-week-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); + flex: 1 1 auto; min-height: 0; } .vac-day { - height: 125px; + height: 100%; border-right: 1px solid var(--vac-ash); padding: 6px 8px; text-decoration: none; display: block; box-sizing: border-box; @@ -122,12 +137,14 @@ .vac-bar-cancel { background: #fff; border: 1px dashed var(--vac-ash); color: #bbb; opacity: 0.7; } /* 범례 */ -.vac-legend { display: flex; gap: 16px; margin-top: 10px; flex-wrap: wrap; } +.vac-legend { display: flex; gap: 16px; margin-top: 10px; flex-wrap: wrap; flex-shrink: 0; } .vac-leg { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--vac-muted); } .vac-dot { width: 14px; height: 12px; border-radius: 4px; display: inline-block; } /* ── 선택일 리스트 ── */ -.vac-list-card { padding: 16px; } +.vac-list-card { + padding: 16px; min-height: 0; overflow-y: auto; /* 긴 목록은 패널 내부 스크롤 */ +} .vac-list-head { display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px; } .vac-list-head h2 { font-size: 16px; font-weight: 600; margin: 0; } .vac-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; } diff --git a/app/templates/erp_base.html b/app/templates/erp_base.html index bfb4a87..c413d2b 100644 --- a/app/templates/erp_base.html +++ b/app/templates/erp_base.html @@ -4,8 +4,8 @@ {{ page_title or "ERP" }} — DBX Corporation - - + + {% block head_extra %}{% endblock %}