/* =====================================================================
   BMT HEAVY REPORT SYSTEM (Final v1.5 - Viz + SOP Integrated)
   Includes: Chart Overlap Fix, Mobile Layout, Font Spacing, SOP Footer
   ===================================================================== */

/* 1. 기본 래퍼 & 폰트 */
.bmt-heavy-wrap .report-body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.7; color: #334155; font-size: 16px; max-width: 800px; margin: 0 auto; }
.bmt-heavy-wrap * { box-sizing: border-box; }

/* 2. 헤더 & 타이틀 */
.report-header-block { margin-bottom: 50px; }
.report-badge { background: #f1f5f9; color: #64748b; padding: 6px 10px; border-radius: 4px; font-weight: 800; font-size: 0.8em; text-transform: uppercase; letter-spacing: 0.5px; display: inline-block; margin-bottom: 20px; }
.bmt-author-line { display: flex; align-items: center; margin-bottom: 25px; padding-bottom: 25px; border-bottom: 1px solid #f1f5f9; }
.bmt-author-avatar { width: 48px; height: 48px; border-radius: 50%; margin-right: 15px; border: 1px solid #e2e8f0; }
.author-name { display: block; font-weight: 700; color: #0f172a; font-size: 1em; }
.author-meta { font-size: 0.85em; color: #64748b; margin-top: 2px; display: block; }
.report-main-title { font-size: 2.4em; line-height: 1.25; font-weight: 800; color: #0f172a; margin: 0 0 25px 0; letter-spacing: -0.5px; }
.intro-text { font-size: 1.15em; color: #334155; margin-bottom: 0; }

/* 3. 요약 콘솔 */
.bmt-summary-console { background: #ffffff; border: 2px solid #0f172a; border-radius: 10px; padding: 30px; margin-bottom: 50px; box-shadow: 6px 6px 0px rgba(15, 23, 42, 0.1); }
.console-title { margin: 0 0 20px 0; font-size: 1em; font-weight: 800; color: #0f172a; text-transform: uppercase; letter-spacing: 1px; display: flex; align-items: center; gap: 8px; }
.console-list { list-style: none; padding: 0; margin: 0; }
.console-list li { margin-bottom: 10px; font-size: 1em; color: #334155; padding-left: 18px; border-left: 3px solid #cbd5e1; line-height: 1.5; }
.console-list li:last-child { margin-bottom: 0; }
.console-list li strong { color: #2563eb; font-weight: 700; }

/* 4. 섹션 & 타이포그래피 */
.bmt-divider { margin: 50px 0; border: 0; border-top: 1px solid #e2e8f0; }
.protocol-kicker { margin-bottom: 15px; color: #64748b; font-size: 0.85em; text-transform: uppercase; letter-spacing: 1.5px; font-weight: 800; display: block; }
.report-body h2 { font-size: 1.8em; font-weight: 800; color: #0f172a; margin: 60px 0 25px 0; padding-bottom: 15px; border-bottom: 2px solid #e2e8f0; }
.section-subhead { font-size: 1.2em; font-weight: 700; color: #334155; margin: 40px 0 20px 0; border-left: 4px solid #cbd5e1; padding-left: 15px; line-height: 1.3; }

/* 5. 이미지 스타일 */
.content-image { width: 100%; height: auto; border-radius: 8px; margin: 30px 0 10px 0; border: 1px solid #e2e8f0; display: block; }
.image-caption { text-align: center; font-size: 0.85em; color: #64748b; margin-bottom: 30px; font-style: italic; display: block; }

/* 6. 박스 스타일 */
.info-box { padding: 25px; border-radius: 8px; margin: 35px 0; }
.box-title, .scenario-title { margin: 0 0 15px 0; font-size: 1.05em; font-weight: 800; text-transform: uppercase; letter-spacing: 0.5px; }
.box-check { background: #f0fdf4; border: 1px solid #bbf7d0; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05); }
.box-check .box-title { color: #166534; }
.check-list { margin: 0; padding-left: 20px; color: #15803d; font-weight: 500; }
.check-list li { margin-bottom: 8px; list-style-type: none; position: relative; }
.check-list li::before { content: "✓"; position: absolute; left: -20px; font-weight: 800; }
.box-scenario { background: #f8fafc; border: 2px dashed #cbd5e1; }
.scenario-title { color: #475569; }
.scenario-list { margin: 0; padding-left: 20px; line-height: 1.6; color: #334155; }
.scenario-list li { margin-bottom: 8px; }
.box-tip { background: #eff6ff; border-left: 5px solid #2563eb; }
.box-tip .box-title { color: #1e40af; }
.tip-warning { margin-top: 15px; font-size: 0.9em; color: #9f1239; background: #fff1f2; padding: 10px 14px; border-radius: 6px; border: 1px solid #fecdd3; display: block; font-weight: 600; }
.note-text { font-size: 0.9em; color: #64748b; margin-top: 10px; margin-bottom: 20px; display: block; font-style: italic; }

/* 7. VS Container & Cards */
.vs-container { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin: 35px 0; }
.vs-card { background: #fff; border: 1px solid #e2e8f0; padding: 30px; border-radius: 10px; position: relative; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05); }
.vs-good { border-color: #16a34a; background: #f0fdf4; }
.vs-title { margin: 0 0 15px 0; font-size: 1.1em; font-weight: 700; text-transform: uppercase; }
.user-employee { color: #2563eb; }
.user-employer { color: #16a34a; }
.vs-badge { position: absolute; top: -12px; right: 20px; background: #16a34a; color: #fff; font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 20px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.vs-list { padding: 0; margin: 0; list-style: none; font-size: 0.95em; color: #334155; }
.vs-list li { margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px dashed #e2e8f0; }
.vs-list li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

/* 8. Viz Charts (★ 복구된 차트 스타일 ★) */
.bmtviz-scope { margin: 40px 0; }
.bmtviz-bar-container { display: flex; flex-direction: column; gap: 12px; }
.bmtviz-bar-group { display: grid; grid-template-columns: 100px 1fr 60px; align-items: center; gap: 15px; }
.bmtviz-label { font-size: 13px; font-weight: 700; color: #1e293b; text-align: right; white-space: nowrap; }
.bmtviz-track { height: 12px; background: #e2e8f0; border-radius: 6px; width: 100%; overflow: hidden; position: relative; }
.bmtviz-fill { height: 100%; width: calc(var(--v, 50) * 1%); background-color: var(--c, #2563eb); border-radius: 6px; }
.bmtviz-value { font-size: 13px; font-weight: 800; color: #0f172a; text-align: left; }
.viz-desc { font-size: 0.9em; color: #64748b; margin-top: 10px; text-align: center; display: block; }

/* 9. Timeline */
.timeline { border-left: 3px solid #e2e8f0; margin-left: 15px; padding-left: 30px; margin-top: 30px; }
.timeline-item { margin-bottom: 40px; position: relative; }
.timeline-item:last-child { margin-bottom: 0; }
.timeline-item::before { content: ''; position: absolute; left: -38px; top: 4px; width: 16px; height: 16px; background: #ffffff; border: 4px solid #2563eb; border-radius: 50%; }
.timeline-title { margin: 0 0 8px 0; color: #0f172a; font-size: 1.15em; font-weight: 700; }
.timeline-desc { margin: 0; color: #64748b; font-size: 1em; line-height: 1.6; }

/* 10. Footer & Next Steps */
.next-steps-box { margin-top: 70px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; padding: 35px; }
.footer-title { font-size: 1.3em; color: #0f172a; margin-top: 0; margin-bottom: 20px; font-weight: 800; }
.next-steps-desc { margin-bottom: 25px; line-height: 1.6; }
.card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.bmt-card-link { text-decoration: none; display: block; background: #fff; padding: 25px; border: 1px solid #e2e8f0; border-radius: 8px; transition: transform 0.2s, border-color 0.2s; }
.bmt-card-link:hover { transform: translateY(-3px); border-color: #2563eb; box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05); }
.bmt-card-title { display: block; font-weight: 700; color: #2563eb; margin-bottom: 6px; font-size: 1.05em; }
.bmt-card-desc { font-size: 0.9em; color: #64748b; }

/* --- SOP Footer Styles (NEW) --- */
.bmt-references { margin-top: 40px; padding: 20px; background: #fff; border-top: 1px solid #e2e8f0; }
.bmt-references h4 { font-size: 0.95em; color: #64748b; text-transform: uppercase; margin: 0 0 10px 0; }
.bmt-references ul { list-style: none; padding: 0; margin: 0; font-size: 0.85em; color: #94a3b8; }
.bmt-references li { margin-bottom: 5px; }
.bmt-references li::before { content: "• "; color: #cbd5e1; }
.verification-badge { margin-top: 20px; padding: 15px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; font-size: 0.85em; color: #475569; display: flex; flex-direction: column; gap: 5px; font-family: monospace; }
.editorial-link-block { margin-top: 15px; font-size: 0.8em; text-align: center; }
.editorial-link-block a { color: #94a3b8; text-decoration: none; border-bottom: 1px dotted #cbd5e1; }
.report-footer-cta { margin-top: 20px; border-top: 1px solid #e2e8f0; padding-top: 20px; text-align: center; }
.disclaimer-text { font-size: 0.8em; color: #94a3b8; line-height: 1.5; }

/* 11. Mobile Optimization (★ 누락분 복구됨 ★) */
@media (max-width: 768px) {
    .vs-container, .card-grid { grid-template-columns: 1fr; }
    .bmtviz-bar-group { grid-template-columns: 80px 1fr 50px; gap: 10px; }
    .bmt-summary-console { padding: 20px; }
    .report-main-title { font-size: 1.8em; }
    .report-body { padding: 20px; }
    .next-steps-box { padding: 20px; }
}