EENE Dashboard upload to Gitea

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
EENE Dashboard
2026-06-17 16:59:34 +09:00
parent cf72281c6d
commit b3f2da203b
138 changed files with 13013 additions and 1929 deletions

View File

@@ -32,6 +32,17 @@
--conn-line-width: 4;
--text-primary: #1a2b3c;
--text-muted: #5a6b7d;
/* 헤더 상태 통계(stat-*)와 동일 — 프로젝트 제목 불릿 */
--status-in-progress: #10b981;
--status-hold: #ff9f0a;
--status-done: #b0b0b0;
--status-issue: #ff5252;
/* 부서 카드 헤드 — 샴페인 골드 */
--dept-head-bg-top: #faf6ef;
--dept-head-bg-bottom: #f0e6d4;
--dept-head-text: #4a3d2e;
--dept-head-accent: #9a7b4f;
--dept-head-line: rgba(180, 152, 108, 0.32);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
@@ -188,7 +199,7 @@
.poly-click-stat {
display: inline;
padding: 2px 6px;
border-radius: 4px;
border-radius: 0;
line-height: 21px;
color: #fffc;
font-size: 18px;
@@ -255,7 +266,8 @@
flex: 1;
min-height: 0;
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(320px, 360px) minmax(0, 1fr);
/* 중앙 허브 확대(다이아몬드 1.1×) — 좌·우 부문 카드 열은 1fr로 자동 축소 */
grid-template-columns: minmax(0, 1fr) minmax(320px, 396px) minmax(0, 1fr);
grid-template-rows: 1fr 1fr;
gap: 12px 24px;
width: 100%;
@@ -360,9 +372,30 @@
.dept-card--ex { grid-column: 1; grid-row: 2; }
.dept-card--ga { grid-column: 3; grid-row: 2; }
/* 아이콘 숨김 (HTML은 BACKUP용으로 유지) */
.dept-icon {
display: none;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 36px;
height: 36px;
margin-right: 8px;
border-radius: 10px;
background: rgba(255, 255, 255, 0.48);
border: 1px solid rgba(180, 152, 108, 0.24);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.62),
0 1px 2px rgba(92, 74, 50, 0.06);
color: var(--dept-head-accent);
align-self: center;
}
.dept-icon svg {
width: 32px;
height: 32px;
stroke: currentColor;
fill: none;
stroke-width: 1.75;
}
.dept-head {
@@ -373,15 +406,32 @@
justify-content: space-between;
gap: 12px;
margin-bottom: 0;
padding: 16px 16px 10px;
border-bottom: 1px solid #d8e8e0;
background: linear-gradient(180deg, #fcfefd 0%, #f7fbf9 100%);
padding: 9px 16px 9px;
border-bottom: none;
background: linear-gradient(180deg, var(--dept-head-bg-top) 0%, var(--dept-head-bg-bottom) 100%);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
flex-shrink: 0;
}
.dept-head::after {
content: "";
position: absolute;
left: 14px;
right: 14px;
bottom: 0;
height: 1px;
background: linear-gradient(
90deg,
transparent 0%,
var(--dept-head-line) 18%,
var(--dept-head-line) 82%,
transparent 100%
);
}
.dept-head-main {
display: flex;
align-items: baseline;
align-items: center;
gap: 0;
min-width: 0;
flex: 1;
@@ -411,13 +461,13 @@
}
.dept-card .board-dept-title {
color: #0a2e24;
color: var(--dept-head-text);
}
.dept-card .dept-head-count .poly-stat-val,
.dept-card .dept-head-count .poly-stat-unit,
.dept-card .board-dept-title-en {
color: var(--dept-accent);
color: var(--dept-head-accent);
}
.board-dept-header-main {
@@ -452,14 +502,30 @@
/* ─── 프로젝트 목록 — 종이 메모 리스트 ─── */
.board-project-list {
position: relative;
min-height: 0;
flex: 1;
display: flex;
flex-direction: column;
gap: 0;
overflow-y: auto;
padding: 8px 14px 10px;
background: transparent;
padding: 10px 14px 10px;
background: linear-gradient(180deg, #f8fbfa 0%, rgba(248, 251, 250, 0) 20px);
}
.board-project-list::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(
180deg,
rgba(92, 74, 50, 0.04) 0%,
transparent 100%
);
pointer-events: none;
}
.project-sub-card {
@@ -482,16 +548,41 @@
.project-sub-body {
display: grid;
grid-template-columns: 1fr auto;
gap: 14px;
grid-template-columns: 1fr auto auto;
column-gap: 12px;
align-items: center;
}
.project-sub-divider {
display: block;
width: 1px;
align-self: stretch;
margin: 6px 0;
background: linear-gradient(
180deg,
transparent 0%,
#c8d9d0 14%,
#c8d9d0 86%,
transparent 100%
);
}
.progress-col {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 93px;
}
.project-fields {
display: flex;
flex-direction: column;
gap: 7px;
min-width: 0;
/* 불릿(10px) + gap(10px) — 하위 필드는 제목 글자 시작선과 정렬 */
--project-title-indent: 20px;
}
.project-field {
@@ -499,19 +590,43 @@
grid-template-columns: 96px 1fr;
gap: 8px;
align-items: baseline;
padding-left: var(--project-title-indent);
}
.project-sub-title {
display: flex;
align-items: flex-start;
gap: 10px;
font-size: 24px;
font-weight: 600;
color: #0a2e24;
line-height: 1.35;
}
.project-sub-title::before {
content: "";
flex-shrink: 0;
width: 10px;
height: 10px;
margin-top: 9px;
border-radius: 50%;
background: var(--status-bullet, var(--status-in-progress));
}
.project-sub-title-text {
flex: 1;
min-width: 0;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.project-sub-title--in-progress { --status-bullet: var(--status-in-progress); }
.project-sub-title--hold { --status-bullet: var(--status-hold); }
.project-sub-title--done { --status-bullet: var(--status-done); }
.project-sub-title--issue { --status-bullet: var(--status-issue); }
.project-field-label {
font-size: 20px;
font-weight: 600;
@@ -532,19 +647,6 @@
text-overflow: ellipsis;
}
.project-sub-divider {
display: none;
}
.progress-col {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 93px;
}
.dept-card .donut {
--color: var(--dept-accent);
background: conic-gradient(var(--color) calc(var(--pct) * 1%), #d4ddd8 0);
@@ -598,8 +700,9 @@
width: 100%;
z-index: 2;
--hub-row-h: calc((100% - 12px) / 2);
--hub-band-h: min(calc(var(--hub-row-h) * 0.52), 188px);
--hub-slogan-band-h: min(calc(var(--hub-row-h) * 0.624), 226px);
--hub-band-h: min(calc(var(--hub-row-h) * 0.473), 171px);
/* 슬로건·일정 밴드 — 다이아몬드 1.1×에 맞춰 높이 축소 (0.624→0.567, 226→205) */
--hub-slogan-band-h: min(calc(var(--hub-row-h) * 0.567), 205px);
/* 일정: 박스 top → 제목 (플래너·헤더 띠에서 역산) */
--hub-title-top: 20px;
/* 슬로건: 바깥(그리드→포스트잇) + 안(핀 아래→제목). 일정 플래너 14px과 같은 호흡 */
@@ -611,7 +714,7 @@
--hub-head-pad-bottom: 7px;
--hub-card-pad-x: 12px;
--hub-card-pad-bottom: 10px;
--hub-diamond-scale: 0.9;
--hub-diamond-scale: 0.99;
}
.hub-box--message {
@@ -677,7 +780,7 @@
border: 1px solid #d8e2ea;
}
/* 분기 슬로건 — 2장 겹친 sage 포스트잇 */
/* 분기 중점 과제 — 2장 겹친 sage 포스트잇 */
.hub-box--message {
background: transparent;
border: none;
@@ -985,14 +1088,20 @@
color: #0a2e24;
}
.hub-column .board-project-desc,
.hub-column .hub-routine-item {
.hub-column .board-project-desc {
font-size: 20px;
font-weight: 500;
line-height: 1.45;
font-family: inherit;
}
.hub-column .hub-routine-item {
font-size: 24px;
font-weight: 600;
line-height: 1.35;
font-family: inherit;
}
.hub-column .hub-schedule-month {
font-size: 20px;
font-weight: 600;
@@ -1180,30 +1289,25 @@
}
.hub-diamond-icon {
width: 36px;
height: 36px;
border: 2px solid var(--hrm);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: var(--hrm);
font-size: 18px;
font-weight: 700;
flex-shrink: 0;
line-height: 0;
}
.hub-diamond-icon svg {
width: 22px;
height: 22px;
stroke: #6eecc8;
fill: none;
stroke-width: 2.4;
stroke-linecap: round;
stroke-linejoin: round;
}
.hub-diamond {
flex-shrink: 0;
transform: rotate(45deg);
background: var(--hub-diamond-bg);
border: 2.5px solid var(--hub-diamond-border);
border-radius: 10px;
box-shadow: 0 6px 22px rgba(7, 65, 46, 0.28);
background: #fff;
border: 2.5px solid var(--hrm);
box-shadow: 0 4px 18px rgba(7, 65, 46, 0.1);
display: flex;
align-items: center;
justify-content: center;
@@ -1211,77 +1315,52 @@
.hub-diamond-inner {
transform: rotate(-45deg);
width: 92%;
max-height: 92%;
text-align: center;
padding: 0 8px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 4px;
overflow: hidden;
}
.hub-diamond-head {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
width: 100%;
}
.hub-diamond-head .board-project-title {
text-align: left;
color: #fff;
margin: 0;
font-size: 24px;
font-weight: 600;
line-height: 1.35;
}
.hub-diamond-divider {
width: 88%;
height: 1px;
background: rgba(255, 255, 255, 0.22);
margin: 2px 0 4px;
flex-shrink: 0;
text-align: center;
padding: 0 4px;
}
.hub-routine-grid {
display: grid;
grid-template-columns: 1fr 1fr;
column-gap: 10px;
row-gap: 2px;
width: 100%;
max-width: 100%;
justify-items: center;
.hub-diamond-icon {
width: 38px;
height: 38px;
margin: 0 auto 6px;
border: 2px solid var(--hrm);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: var(--hrm);
font-size: 20px;
font-weight: 700;
}
.hub-routine-item {
appearance: none;
background: none;
border: none;
padding: 2px 4px;
margin: 0;
color: #8fd4bc;
cursor: pointer;
border-radius: 4px;
transition: color 0.18s ease, opacity 0.18s ease, text-shadow 0.18s ease;
.hub-diamond-title {
font-size: 18px;
font-weight: 800;
color: #1e3a5f;
margin-bottom: 6px;
line-height: 1.3;
}
.hub-routine-item:hover {
color: #b4ecd6;
text-shadow: 0 0 10px rgba(143, 212, 188, 0.28);
.hub-diamond ul {
list-style: none;
text-align: center;
font-size: 14px;
line-height: 1.5;
color: #334155;
font-weight: 500;
overflow: visible;
padding: 0;
}
.hub-routine-item:active {
opacity: 0.82;
.hub-diamond li {
padding: 1px 0;
}
.hub-routine-item:focus-visible {
outline: 1px solid rgba(143, 212, 188, 0.45);
outline-offset: 2px;
.hub-diamond li::before {
content: "• ";
color: var(--hrm);
font-weight: 700;
}
@media (max-width: 1200px) {
@@ -1405,7 +1484,10 @@
<article class="project-sub-card project-sub-card--hrm">
<div class="project-sub-body">
<div class="project-fields">
<div class="project-sub-title">상반기 채용 운영</div>
<div class="project-field">
<span class="project-field-label">프로젝트명</span>
<span class="project-field-value">상반기 채용 운영</span>
</div>
<div class="project-field">
<span class="project-field-label">작업 기간</span>
<span class="project-field-value">2026.04 ~ 2026.06</span>
@@ -1424,9 +1506,12 @@
<article class="project-sub-card project-sub-card--hrm">
<div class="project-sub-body">
<div class="project-fields">
<div class="project-sub-title">평가제도 개선</div>
<div class="project-field">
<span class="project-field-label">작업 기간</span>
<span class="project-field-label">프로젝트명</span>
<span class="project-field-value">평가제도 개선</span>
</div>
<div class="project-field">
<span class="project-field-label">기간</span>
<span class="project-field-value">2026.03 ~ 2026.07</span>
</div>
<div class="project-field">
@@ -1436,7 +1521,8 @@
</div>
<div class="project-sub-divider" aria-hidden="true"></div>
<div class="progress-col">
<div class="donut" style="--pct:60"><span>60%</span></div>
<span class="progress-label">진행/달성률</span>
<div class="donut" style="--pct:60; --color:#ff9f0a"><span style="color:#ff9f0a">보류</span></div>
</div>
</div>
</article>
@@ -1465,9 +1551,12 @@
<article class="project-sub-card project-sub-card--hrd">
<div class="project-sub-body">
<div class="project-fields">
<div class="project-sub-title">신규입사자 온보딩 프로그램</div>
<div class="project-field">
<span class="project-field-label">작업 기간</span>
<span class="project-field-label">프로젝트명</span>
<span class="project-field-value">신규입사자 온보딩 프로그램</span>
</div>
<div class="project-field">
<span class="project-field-label">기간</span>
<span class="project-field-value">2026.04 ~ 2026.06</span>
</div>
<div class="project-field">
@@ -1477,6 +1566,7 @@
</div>
<div class="project-sub-divider" aria-hidden="true"></div>
<div class="progress-col">
<span class="progress-label">진행/달성률</span>
<div class="donut" style="--pct:85"><span>85%</span></div>
</div>
</div>
@@ -1484,9 +1574,12 @@
<article class="project-sub-card project-sub-card--hrd">
<div class="project-sub-body">
<div class="project-fields">
<div class="project-sub-title">팀장 리더십 교육</div>
<div class="project-field">
<span class="project-field-label">작업 기간</span>
<span class="project-field-label">프로젝트명</span>
<span class="project-field-value">팀장 리더십 교육</span>
</div>
<div class="project-field">
<span class="project-field-label">기간</span>
<span class="project-field-value">2026.05 ~ 2026.06</span>
</div>
<div class="project-field">
@@ -1496,7 +1589,8 @@
</div>
<div class="project-sub-divider" aria-hidden="true"></div>
<div class="progress-col">
<div class="donut" style="--pct:100"><span>100%</span></div>
<span class="progress-label">진행/달성률</span>
<div class="donut" style="--pct:100; --color:#b0b0b0"><span style="color:#b0b0b0">완료</span></div>
</div>
</div>
</article>
@@ -1505,7 +1599,7 @@
<!-- 중앙 허브 -->
<div class="hub-column" id="hub-column">
<!-- 분기 슬로건 -->
<!-- 분기 중점 과제 -->
<div class="hub-box hub-box--message">
<div class="hub-postit-stack">
<div class="hub-postit-sheet hub-postit-sheet--back" aria-hidden="true"></div>
@@ -1517,17 +1611,12 @@
<div class="hub-box-title-row">
<span class="hub-message-icon" aria-hidden="true">
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M12 4v5"/>
<path d="M12 15v5"/>
<path d="M4 12h5"/>
<path d="M15 12h5"/>
<path d="M18 5v2"/>
<path d="M17 6h2"/>
<path d="M5 17v2"/>
<path d="M4 18h2"/>
<circle cx="12" cy="12" r="10"/>
<circle cx="12" cy="12" r="6"/>
<circle cx="12" cy="12" r="2"/>
</svg>
</span>
<div class="board-project-title">분기 슬로건</div>
<div class="board-project-title">분기 중점 과제</div>
</div>
</div>
<div class="hub-postit-message">
@@ -1554,12 +1643,11 @@
</div>
<div class="hub-diamond-divider" aria-hidden="true"></div>
<div class="hub-routine-grid">
<button type="button" class="hub-routine-item">채용</button>
<button type="button" class="hub-routine-item">교육</button>
<button type="button" class="hub-routine-item">소통</button>
<button type="button" class="hub-routine-item">시설</button>
<button type="button" class="hub-routine-item">자산</button>
<button type="button" class="hub-routine-item">행정</button>
<button type="button" class="hub-routine-item">채용 운영</button>
<button type="button" class="hub-routine-item">교육 운영</button>
<button type="button" class="hub-routine-item">직원 소통</button>
<button type="button" class="hub-routine-item">자산·시설</button>
<button type="button" class="hub-routine-item">문서·행정</button>
</div>
</div>
</div>
@@ -1623,9 +1711,12 @@
<article class="project-sub-card project-sub-card--ex">
<div class="project-sub-body">
<div class="project-fields">
<div class="project-sub-title">조직문화 진단</div>
<div class="project-field">
<span class="project-field-label">작업 기간</span>
<span class="project-field-label">프로젝트명</span>
<span class="project-field-value">조직문화 진단</span>
</div>
<div class="project-field">
<span class="project-field-label">기간</span>
<span class="project-field-value">2026.04 ~ 2026.05</span>
</div>
<div class="project-field">
@@ -1635,6 +1726,7 @@
</div>
<div class="project-sub-divider" aria-hidden="true"></div>
<div class="progress-col">
<span class="progress-label">진행/달성률</span>
<div class="donut" style="--pct:100"><span>100%</span></div>
</div>
</div>
@@ -1642,9 +1734,12 @@
<article class="project-sub-card project-sub-card--ex">
<div class="project-sub-body">
<div class="project-fields">
<div class="project-sub-title">복리후생제도 개선</div>
<div class="project-field">
<span class="project-field-label">작업 기간</span>
<span class="project-field-label">프로젝트명</span>
<span class="project-field-value">복리후생제도 개선</span>
</div>
<div class="project-field">
<span class="project-field-label">기간</span>
<span class="project-field-value">2026.05 ~ 2026.08</span>
</div>
<div class="project-field">
@@ -1654,7 +1749,8 @@
</div>
<div class="project-sub-divider" aria-hidden="true"></div>
<div class="progress-col">
<div class="donut" style="--pct:50"><span>50%</span></div>
<span class="progress-label">진행/달성률</span>
<div class="donut" style="--pct:50; --color:#ff9f0a"><span style="color:#ff9f0a">보류</span></div>
</div>
</div>
</article>
@@ -1683,9 +1779,12 @@
<article class="project-sub-card project-sub-card--ga">
<div class="project-sub-body">
<div class="project-fields">
<div class="project-sub-title">사무공간 재배치</div>
<div class="project-field">
<span class="project-field-label">작업 기간</span>
<span class="project-field-label">프로젝트명</span>
<span class="project-field-value">사무공간 재배치</span>
</div>
<div class="project-field">
<span class="project-field-label">기간</span>
<span class="project-field-value">2026.04 ~ 2026.07</span>
</div>
<div class="project-field">
@@ -1695,6 +1794,7 @@
</div>
<div class="project-sub-divider" aria-hidden="true"></div>
<div class="progress-col">
<span class="progress-label">진행/달성률</span>
<div class="donut" style="--pct:70"><span>70%</span></div>
</div>
</div>
@@ -1702,9 +1802,12 @@
<article class="project-sub-card project-sub-card--ga">
<div class="project-sub-body">
<div class="project-fields">
<div class="project-sub-title">안전·보안 점검 강화</div>
<div class="project-field">
<span class="project-field-label">작업 기간</span>
<span class="project-field-label">프로젝트명</span>
<span class="project-field-value">안전·보안 점검 강화</span>
</div>
<div class="project-field">
<span class="project-field-label">기간</span>
<span class="project-field-value">2026.04 ~ 2026.06</span>
</div>
<div class="project-field">
@@ -1714,6 +1817,7 @@
</div>
<div class="project-sub-divider" aria-hidden="true"></div>
<div class="progress-col">
<span class="progress-label">진행/달성률</span>
<div class="donut" style="--pct:85"><span>85%</span></div>
</div>
</div>