feat: 운영 일관성(OCI) 지표 도입 및 분석 UI/UX 정밀 복구
- analysis_service.py: 운영 일관성(OCI) 산출 로직 구현 및 장기 정체 패널티(100일 기준) 적용 - js/analysis.js: OCI 통합, 아코디언 심층 분석 텍스트 보강, SWOT 사분면 및 스크롤 로직 정밀 복구 - style/*.css: 유색 border-left/top 스타일 제거 및 흑백/그레이 계열로 디자인 정제 - templates/analysis.html: 분석 모델 명칭 원복 및 지표 정의 UI 업데이트 - ANALYSIS_REPORT.md: OCI 지표 정의 추가 및 가치 기여도(VCI) 등급 설명 정제 (야구 용어 삭제)
This commit is contained in:
@@ -204,7 +204,7 @@
|
||||
.step-title { font-size: 12px; font-weight: 700; color: var(--text-main); margin-bottom: 4px; }
|
||||
.math-logic { font-family: 'Consolas', monospace; background: var(--bg-muted); padding: 4px 8px; border-radius: 4px; font-weight: 700; color: var(--text-main); font-size: 12px; display: inline-block; }
|
||||
|
||||
.final-result-area { margin-top: 20px; padding-top: 15px; border-top: 2px solid var(--primary-color); display: flex; justify-content: space-between; align-items: center; }
|
||||
.final-result-area { margin-top: 20px; padding-top: 15px; display: flex; justify-content: space-between; align-items: center; }
|
||||
|
||||
/* Modal Analysis Specific */
|
||||
.modal-footer {
|
||||
|
||||
@@ -87,6 +87,7 @@ button { cursor: pointer; border: none; transition: all 0.2s ease; }
|
||||
.nav-item {
|
||||
padding: 4px 12px; border-radius: var(--radius-sm);
|
||||
color: rgba(255, 255, 255, 0.8); font-size: 14px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.nav-item:hover { background: var(--primary-lv-8); color: #fff; }
|
||||
.nav-item.active { background: var(--primary-lv-0); color: var(--primary-color) !important; font-weight: 700; }
|
||||
|
||||
@@ -43,10 +43,10 @@ header {
|
||||
display: flex; flex-direction: column; justify-content: center; gap: 2px; border-left: 5px solid transparent;
|
||||
}
|
||||
.activity-card:hover { transform: translateY(-2px); box-shadow: var(--box-shadow); }
|
||||
.activity-card.active { background: #e8f5e9; border-left-color: #4DB251; }
|
||||
.activity-card.warning { background: #fff8e1; border-left-color: #FFBF00; }
|
||||
.activity-card.stale { background: #ffebee; border-left-color: var(--error-color); }
|
||||
.activity-card.unknown { background: #f5f5f5; border-left-color: #9e9e9e; }
|
||||
.activity-card.active { background: #e8f5e9; }
|
||||
.activity-card.warning { background: #fff8e1; }
|
||||
.activity-card.stale { background: #ffebee; }
|
||||
.activity-card.unknown { background: #f5f5f5; }
|
||||
.activity-card .label { font-size: 11px; font-weight: 600; opacity: 0.7; }
|
||||
.activity-card .count { font-size: 20px; font-weight: 800; }
|
||||
|
||||
@@ -98,7 +98,7 @@ header {
|
||||
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
|
||||
.detail-section h4 {
|
||||
font-size: 13px; margin-bottom: 12px; color: var(--text-main);
|
||||
border-left: 3px solid var(--primary-color); padding-left: 10px; font-weight: 700;
|
||||
padding-left: 10px; font-weight: 700;
|
||||
}
|
||||
|
||||
/* Personnel & Activity Tables */
|
||||
|
||||
@@ -49,17 +49,17 @@
|
||||
.stat-value { font-size: 18px; font-weight: 700; color: #333; }
|
||||
|
||||
/* Status Border Colors */
|
||||
.stat-item.total { border-top: 3px solid #1e5149; }
|
||||
.stat-item.total { }
|
||||
.stat-item.total .stat-value { color: #1e5149; }
|
||||
.stat-item.complete { border-top: 3px solid #2e7d32; }
|
||||
.stat-item.complete { }
|
||||
.stat-item.complete .stat-value { color: #2e7d32; }
|
||||
.stat-item.working { border-top: 3px solid #1565c0; }
|
||||
.stat-item.working { }
|
||||
.stat-item.working .stat-value { color: #1565c0; }
|
||||
.stat-item.checking { border-top: 3px solid #ef6c00; }
|
||||
.stat-item.checking { }
|
||||
.stat-item.checking .stat-value { color: #ef6c00; }
|
||||
.stat-item.pending { border-top: 3px solid #673ab7; }
|
||||
.stat-item.pending { }
|
||||
.stat-item.pending .stat-value { color: #673ab7; }
|
||||
.stat-item.unconfirmed { border-top: 3px solid #9e9e9e; }
|
||||
.stat-item.unconfirmed { }
|
||||
.stat-item.unconfirmed .stat-value { color: #9e9e9e; }
|
||||
|
||||
/* 3. Filters & Notice */
|
||||
@@ -185,7 +185,6 @@
|
||||
|
||||
.detail-container {
|
||||
padding: 24px;
|
||||
border-left: 6px solid #1e5149;
|
||||
background: #f9fafb;
|
||||
box-shadow: inset 0 4px 15px rgba(0,0,0,0.08);
|
||||
position: relative;
|
||||
@@ -223,7 +222,7 @@
|
||||
.detail-label { font-weight: 700; color: #888; margin-right: 8px; }
|
||||
|
||||
.detail-q-section { background: #f8f9fa; padding: 20px; border-radius: 8px; }
|
||||
.detail-a-section { background: #f1f8f7; padding: 20px; border-radius: 8px; border-left: 5px solid #1e5149; }
|
||||
.detail-a-section { background: #f1f8f7; padding: 20px; border-radius: 8px; }
|
||||
|
||||
/* 6. Image Preview & Foldable Section */
|
||||
.img-thumbnail { width: 32px; height: 32px; border-radius: 4px; object-fit: cover; border: 1px solid #ddd; cursor: pointer; transition: transform 0.2s; }
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
display: flex; align-items: flex-start; transition: 0.2s;
|
||||
}
|
||||
.mail-item:hover { background: var(--bg-muted); }
|
||||
.mail-item.active { background: var(--primary-lv-0); border-left: 4px solid var(--primary-color); }
|
||||
.mail-item.active { background: var(--primary-lv-0); }
|
||||
|
||||
.mail-item-checkbox { width: 16px; height: 16px; cursor: pointer; margin-right: 12px; margin-top: 2px; }
|
||||
.mail-item-content { flex: 1; min-width: 0; }
|
||||
|
||||
Reference in New Issue
Block a user