/* 키워드 분석 보고서 전용 CSS - 다크모드 적용 */ /* CSS 변수 정의 (라이트모드) */ :root { --primary-color: #FB7F0D; --text-color: #333; --bg-color: #f8f9fa; --card-bg: #ffffff; --border-color: #ecf0f1; --section-bg: #ffffff; --insight-bg: #fff5e6; --warning-bg: #fff3cd; --warning-text: #856404; --checklist-bg: #fff3cd; --cross-sell-bg: #f8f9fa; --cross-sell-border: #17a2b8; --cross-sell-text: #0c5460; --product-bg: white; --trend-bg: #e3f2fd; --trend-border: #2196f3; --metric-bg: #f8f9fa; --metric-border: #dee2e6; --highlight-bg: #fff3cd; } /* 다크모드 색상 변수 (자동 감지) */ @media (prefers-color-scheme: dark) { :root { --text-color: #e5e5e5; --bg-color: #1a1a1a; --card-bg: #2d2d2d; --border-color: #404040; --section-bg: #2d2d2d; --insight-bg: #3d2817; --warning-bg: #3d3317; --warning-text: #d4b75f; --checklist-bg: #3d3317; --cross-sell-bg: #1a1a1a; --cross-sell-border: #17a2b8; --cross-sell-text: #4dd0e1; --product-bg: #2d2d2d; --trend-bg: #1a2332; --trend-border: #2196f3; --metric-bg: #2d2d2d; --metric-border: #404040; --highlight-bg: #3d3317; } } /* 수동 다크모드 클래스 */ [data-theme="dark"], .dark, .gr-theme-dark { --text-color: #e5e5e5; --bg-color: #1a1a1a; --card-bg: #2d2d2d; --border-color: #404040; --section-bg: #2d2d2d; --insight-bg: #3d2817; --warning-bg: #3d3317; --warning-text: #d4b75f; --checklist-bg: #3d3317; --cross-sell-bg: #1a1a1a; --cross-sell-border: #17a2b8; --cross-sell-text: #4dd0e1; --product-bg: #2d2d2d; --trend-bg: #1a2332; --trend-border: #2196f3; --metric-bg: #2d2d2d; --metric-border: #404040; --highlight-bg: #3d3317; } .keyword-analysis-report { font-family: 'Pretendard', 'Noto Sans KR', sans-serif; line-height: 1.6; color: var(--text-color); margin: 0; padding: 0; background-color: var(--bg-color); transition: background-color 0.3s ease, color 0.3s ease; } .report-container { max-width: 900px; margin: 20px auto; padding: 0; background: transparent; } .report-title { text-align: center; font-size: 2.2em; margin-bottom: 30px; color: var(--text-color); font-weight: 700; border-bottom: 3px solid var(--primary-color); padding-bottom: 15px; } /* 각 분석 항목별 섹션 블록 */ .analysis-section-block { background-color: var(--section-bg); padding: 25px 30px; margin-bottom: 25px; border-radius: 12px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); border-left: 5px solid var(--primary-color); color: var(--text-color); transition: background-color 0.3s ease, color 0.3s ease; } .analysis-section-block:nth-child(1) { border-left-color: #3498db; } .analysis-section-block:nth-child(2) { border-left-color: #e74c3c; } .analysis-section-block:nth-child(3) { border-left-color: #f39c12; } .analysis-section-block:nth-child(4) { border-left-color: #9b59b6; } .analysis-section-block:nth-child(5) { border-left-color: #1abc9c; } .analysis-section-block:nth-child(6) { border-left-color: #34495e; } .analysis-section-block:nth-child(7) { border-left-color: #e67e22; } .analysis-section-title { margin: 0 0 20px 0; color: var(--text-color); font-size: 1.6em; font-weight: 700; display: flex; align-items: center; border-bottom: 2px solid var(--border-color); padding-bottom: 10px; } .section-icon { font-size: 1.3em; margin-right: 12px; vertical-align: middle; } /* 아이콘 색상 */ .analysis-section-block:nth-child(1) .section-icon { color: #3498db; } .analysis-section-block:nth-child(2) .section-icon { color: #e74c3c; } .analysis-section-block:nth-child(3) .section-icon { color: #f39c12; } .analysis-section-block:nth-child(4) .section-icon { color: #9b59b6; } .analysis-section-block:nth-child(5) .section-icon { color: var(--primary-color); } .analysis-section-block:nth-child(6) .section-icon { color: #34495e; } .analysis-section-block:nth-child(7) .section-icon { color: #e67e22; } .subsection-title { color: var(--text-color); margin: 20px 0 10px 0; font-size: 1.1em; font-weight: 600; } .key-insight { background-color: var(--insight-bg); padding: 15px 20px; border-left: 5px solid var(--primary-color); margin: 20px 0; border-radius: 5px; font-weight: 500; color: var(--text-color); transition: background-color 0.3s ease; } /* 텍스트 스타일 - 기본은 일반, 중요한 부분만 볼드 */ .analysis-content { color: var(--text-color); font-weight: normal; line-height: 1.7; } .analysis-content strong { color: var(--text-color); font-weight: 600; } .analysis-content p { margin-bottom: 15px; font-weight: normal; color: var(--text-color); } .analysis-list { list-style: none; padding: 0; margin-bottom: 20px; } .analysis-list li { position: relative; padding-left: 25px; margin-bottom: 12px; line-height: 1.8; font-weight: normal; color: var(--text-color); } .analysis-list li:before { content: '▶'; color: var(--primary-color); position: absolute; left: 0; font-weight: bold; font-size: 1.1em; } .concern-list { list-style: none; padding: 0; margin-bottom: 20px; } .concern-list li { position: relative; padding-left: 25px; margin-bottom: 12px; line-height: 1.8; font-weight: normal; color: var(--text-color); } .concern-list li:before { content: '⚠️'; position: absolute; left: 0; font-size: 1.1em; } .solution-list { list-style: none; padding: 0; margin-bottom: 20px; } .solution-list li { position: relative; padding-left: 25px; margin-bottom: 12px; line-height: 1.8; font-weight: normal; color: var(--text-color); } .solution-list li:before { content: '✅'; position: absolute; left: 0; font-size: 1.1em; } .checklist { background-color: var(--checklist-bg); padding: 20px; border-radius: 8px; border-left: 5px solid #ffc107; margin: 20px 0; transition: background-color 0.3s ease; } .checklist-title { font-weight: 700; color: var(--warning-text); margin-bottom: 15px; font-size: 1.2em; } .checklist-items { list-style: none; padding: 0; } .checklist-items li { position: relative; padding-left: 25px; margin-bottom: 10px; line-height: 1.6; font-weight: normal; color: var(--warning-text); } .checklist-items li:before { content: '📋'; position: absolute; left: 0; font-size: 1.1em; } .cross-sell-section { background-color: var(--cross-sell-bg); padding: 20px; border-radius: 8px; border-left: 5px solid var(--cross-sell-border); margin: 20px 0; transition: background-color 0.3s ease; } .cross-sell-title { font-weight: 700; color: var(--cross-sell-text); margin-bottom: 15px; font-size: 1.2em; } .product-suggestion { background-color: var(--product-bg); padding: 15px; border-radius: 6px; margin-bottom: 15px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); transition: background-color 0.3s ease; } .product-name { font-weight: 600; color: var(--text-color); margin-bottom: 8px; font-size: 1.1em; } .product-reason { color: var(--text-color); font-size: 0.95em; line-height: 1.5; font-weight: normal; opacity: 0.8; } .final-recommendation { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 12px; color: white; padding: 25px; } .final-recommendation h3 { color: white; font-size: 1.8em; margin-bottom: 20px; font-weight: 700; } .recommendation-content { font-size: 1.1em; line-height: 1.7; text-align: left; font-weight: normal; color: white; } .recommendation-content strong { font-weight: 600; color: white; } .trend-insight { background-color: var(--trend-bg); padding: 15px 20px; border-left: 5px solid var(--trend-border); margin: 20px 0; border-radius: 5px; color: var(--text-color); transition: background-color 0.3s ease; } .market-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; margin: 20px 0; } .metric-card { background-color: var(--metric-bg); padding: 20px; border-radius: 8px; text-align: center; border: 1px solid var(--metric-border); transition: background-color 0.3s ease, border-color 0.3s ease; } .metric-value { font-size: 2em; font-weight: 700; color: var(--primary-color); margin-bottom: 5px; } .metric-label { color: var(--text-color); font-size: 0.9em; font-weight: normal; opacity: 0.8; } .highlight-text { background-color: var(--highlight-bg); padding: 2px 6px; border-radius: 3px; font-weight: 600; color: var(--warning-text); transition: background-color 0.3s ease, color 0.3s ease; } /* 다크모드에서 그라데이션 배경 조정 */ @media (prefers-color-scheme: dark) { .final-recommendation { background: linear-gradient(135deg, #4a5568 0%, #553c9a 100%); } } [data-theme="dark"] .final-recommendation, .dark .final-recommendation, .gr-theme-dark .final-recommendation { background: linear-gradient(135deg, #4a5568 0%, #553c9a 100%); } /* 전환 애니메이션 */ * { transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease; }