/* ================================================================
   核子GEO — 报告正文样式 v2
   现代简约 · 可读性优先
   ================================================================ */

.report-body {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 40px 48px;
    box-shadow: var(--shadow);
    line-height: 1.85;
    font-size: 1rem;
    overflow-wrap: break-word;
    word-break: break-word;
    max-width: 100%;
    color: var(--text-secondary);
}

.report-body h1 {
    font-size: 1.75rem;
    font-weight: 800;
    margin: 36px 0 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--border);
    color: var(--text);
}

.report-body h2 {
    font-size: 1.35rem;
    font-weight: 700;
    margin: 32px 0 14px;
    color: var(--text);
}

.report-body h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 24px 0 10px;
    color: var(--text);
}

.report-body h4 {
    font-size: 1rem;
    font-weight: 600;
    margin: 18px 0 8px;
    color: var(--text-secondary);
}

.report-body p { margin: 10px 0; }

/* Blockquote - Warning blocks */
.report-body blockquote {
    margin: 16px 0;
    padding: 16px 24px;
    background: var(--card-bg)beb;
    border-left: 4px solid var(--warning);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    color: #92400e;
    font-size: 0.95rem;
}

.report-body blockquote p { margin: 4px 0; }

/* Tables */
.report-body table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    font-size: 0.9rem;
    border-radius: var(--radius-sm);
    overflow: hidden;
    border: 1px solid var(--border);
}

.report-body table thead { background: var(--bg-alt); }

.report-body table th {
    padding: 12px 16px;
    text-align: left;
    font-weight: 700;
    font-size: 0.8rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    border-bottom: 2px solid var(--border);
    white-space: nowrap;
}

.report-body table td {
    padding: 11px 16px;
    border-bottom: 1px solid var(--border-light);
    vertical-align: top;
}

.report-body table tbody tr { transition: background var(--transition); }
.report-body table tbody tr:hover { background: var(--card-hover); }
.report-body table tbody tr:last-child td { border-bottom: none; }

/* Code blocks */
.report-body pre {
    background: #1e293b;
    color: #e2e8f0;
    padding: 20px;
    border-radius: var(--radius);
    overflow-x: auto;
    font-size: 0.85rem;
    font-family: var(--font-mono, monospace);
    line-height: 1.7;
    margin: 16px 0;
    max-height: 400px;
    overflow-y: auto;
    position: relative;
}

.report-body pre.large-code {
    max-height: 200px;
    overflow: hidden;
}

.report-body pre.large-code::after {
    content: "▼ 点击展开完整代码";
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 50px;
    background: linear-gradient(transparent, #1e293b 80%);
    color: #38bdf8;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 8px;
    font-size: 0.8rem;
    cursor: pointer;
    font-weight: 600;
    pointer-events: auto;
}

.report-body pre.large-code.expanded { max-height: none; }
.report-body pre.large-code.expanded::after {
    content: "▲ 收起";
    height: 30px;
    padding-bottom: 4px;
}

.report-body code {
    background: var(--bg-alt);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.85rem;
    color: var(--danger);
    font-family: var(--font-mono, monospace);
}

.report-body pre code {
    background: none;
    color: #e2e8f0;
    padding: 0;
}

/* Lists */
.report-body ul, .report-body ol {
    margin: 10px 0;
    padding-left: 1.5em;
}

.report-body li { margin: 6px 0; }

/* 移动端列表减小缩进 */
@media (max-width: 768px) {
    .report-body ul, .report-body ol {
        padding-left: 1.2em;
    }
    .report-body li {
        margin: 4px 0;
    }
}

/* HR */
.report-body hr {
    border: none;
    border-top: 1px solid var(--border);
    margin: 32px 0;
}

/* Strong */
.report-body strong { color: var(--text); }

/* Links */
.report-body a { color: var(--primary); font-weight: 500; }
.report-body a:hover { color: var(--primary-dark); }

/* ================================================================
   ROAST / WARNING SECTIONS
   ================================================================ */
.roast-section {
    margin: 32px 0;
    padding: 32px 36px;
    border-radius: var(--radius-lg);
    border: 2px solid;
    position: relative;
    word-break: break-word;
    overflow-wrap: break-word;
}

.roast-critical {
    background: linear-gradient(135deg, #fff5f5, #fee2e2);
    border-color: #dc2626;
    box-shadow: 0 0 40px rgba(220, 38, 38, 0.15);
}

.roast-critical h2 {
    font-size: 2.5rem !important;
    font-weight: 900 !important;
    color: #dc2626 !important;
    text-align: center;
    margin: 0 0 20px !important;
    letter-spacing: 3px;
    border: none !important;
    animation: shake 0.5s ease-in-out;
}

.roast-critical p, .roast-critical strong {
    font-size: 1.05rem !important;
    line-height: 1.9 !important;
    color: #991b1b !important;
}

.roast-warning {
    background: linear-gradient(135deg, #fffbeb, #fef3c7);
    border-color: #f59e0b;
    box-shadow: 0 0 30px rgba(245, 158, 11, 0.15);
}

.roast-warning h2 {
    font-size: 2rem !important;
    font-weight: 800 !important;
    color: #d97706 !important;
    text-align: center;
    margin: 0 0 16px !important;
    border: none !important;
}

.roast-warning p, .roast-warning strong {
    font-size: 1rem !important;
    color: #92400e !important;
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    10%, 50%, 90% { transform: translateX(-4px); }
    30%, 70% { transform: translateX(4px); }
}

/* ================================================================
   REPORT HEADER
   ================================================================ */
.report-main-title {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--text);
    margin: 16px 0 4px;
    text-align: center;
}

.report-subtitle {
    text-align: center;
    font-size: 0.9rem;
    color: var(--text-muted);
    margin: 0 0 24px;
}

/* ================================================================
   TRUNCATE NOTICE
   ================================================================ */
.truncate-notice {
    margin: 16px 0;
    padding: 14px 20px;
    background: #fefce8;
    border: 2px solid #facc15;
    border-radius: var(--radius);
    font-size: 0.9rem;
    color: #854d0e;
    line-height: 1.7;
}

.truncate-notice strong { color: #ca8a04; font-size: 0.95rem; }

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 768px) {
    .report-body {
        padding: 24px 16px;
        font-size: 0.95rem;
    }

    .report-body table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        font-size: 0.8rem;
    }

    .report-body pre {
        padding: 14px;
        font-size: 0.75rem;
    }

    .report-body h1 { font-size: 1.35rem !important; }
    .report-body h2 { font-size: 1.15rem !important; }
    .report-body h3 { font-size: 1rem !important; }

    .roast-critical h2 { font-size: 1.5rem !important; }
    .roast-warning h2 { font-size: 1.3rem !important; }
    .roast-section { padding: 20px 16px; }

    .report-main-title { font-size: 1.35rem !important; }
    .report-meta { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* FAQ 区块 */
.report-faq {
    margin: 40px 0 20px;
    padding: 24px 28px;
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
}
.faq-heading {
    font-size: 1.3rem;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--primary-light);
}
.faq-item {
    margin-bottom: 18px;
    padding: 14px 16px;
    background: var(--bg-alt);
    border-radius: var(--radius);
    border-left: 3px solid var(--primary);
}
.faq-item h3 {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 8px 0;
    color: var(--text);
}
.faq-item p {
    font-size: 0.9rem;
    line-height: 1.6;
    margin: 0;
    color: var(--text-secondary);
}
.faq-item a {
    color: var(--primary);
    font-weight: 600;
}
@media (max-width: 768px) {
    .report-faq { padding: 16px 14px; }
    .faq-item { padding: 12px; }
    .faq-item h3 { font-size: 0.9rem; }
}

/* 相关报告推荐区块 */
.related-reports {
    margin: 40px 0 24px;
    padding: 0;
}
.related-reports h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text);
    margin: 0 0 16px 0;
    padding: 0;
    border: none;
}
.related-reports ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 10px;
}
.related-reports li {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 12px 14px;
    transition: border-color 0.2s, box-shadow 0.2s;
    display: flex;
    align-items: center;
    gap: 8px;
}
.related-reports li::before {
    content: "📋";
    font-size: 0.85rem;
    flex-shrink: 0;
}
.related-reports li:hover {
    border-color: var(--primary);
    box-shadow: 0 2px 8px rgba(99,102,241,0.1);
}
.related-reports li a {
    color: var(--text);
    font-weight: 600;
    text-decoration: none;
    font-size: 0.88rem;
}
.related-reports li a:hover { color: var(--primary); }
.related-reports li span {
    font-size: 0.75rem;
    color: var(--text-muted);
    white-space: nowrap;
}


/* 评论系统 */
.comments-section {
    margin: 40px 0 24px;
    padding: 0;
}
.comments-section h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text);
    margin: 0 0 16px 0;
    padding: 0;
}
.comment-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.comment-item {
    background: var(--card-bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px 16px;
}
.comment-item strong {
    color: var(--text);
    font-size: 0.88rem;
}
.comment-item span.muted {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-left: 8px;
}
.comment-item p {
    margin: 8px 0 0;
    font-size: 0.9rem;
    line-height: 1.65;
    color: var(--text-secondary);
}


/* ===== 移动端适配 ===== */
@media (max-width: 768px) {
    .related-reports ul {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .related-reports li {
        padding: 10px 12px;
    }
    .related-reports li a {
        font-size: 0.82rem;
    }
    .comment-item {
        padding: 12px;
    }
    .comment-item p {
        font-size: 0.85rem;
    }
    .score-overview {
        grid-template-columns: 1fr 1fr !important;
    }
    .score-overview-7 {
        grid-template-columns: 1fr 1fr !important;
        grid-template-rows: auto !important;
    }
    .score-overview-7 .score-card.score-total {
        grid-column: 1 / -1 !important;
        grid-row: auto !important;
    }
    .score-card.score-total {
        grid-column: 1 / -1;
    }
    .report-nav {
        overflow-x: auto;
        flex-wrap: nowrap !important;
        padding-bottom: 8px;
    }
    .report-nav .nav-link {
        white-space: nowrap;
    }
    .report-main-title {
        font-size: 1.4rem !important;
    }
    .score-card .score-number {
        font-size: 2rem !important;
    }
    .score-card.score-total .score-number {
        font-size: 2.8rem !important;
    }
}

/* ===== 评分总览卡片 ===== */
.score-overview {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 1fr;
    gap: 16px;
    margin: 24px 0;
}
/* 7 卡片布局：综合 + 6 维度（AEO/GEO/SEO/语义/权威/语料库） */
.score-overview-7 {
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    grid-template-rows: auto auto;
}
.score-overview-7 .score-card.score-total {
    grid-row: 1 / 3;
    grid-column: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.score-card {
    background: var(--card-bg, #fff);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 24px 16px;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
    position: relative;
    overflow: hidden;
}
.score-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.score-card.score-total {
    background: linear-gradient(135deg, var(--primary), #818cf8);
    color: #fff;
    border: none;
}
.score-card.score-total .score-number,
.score-card.score-total .score-unit,
.score-card.score-total .score-label,
.score-card.score-total .score-grade {
    color: #fff;
}
.score-card .score-number {
    font-size: 2.4rem;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 2px;
}
.score-card.score-total .score-number {
    font-size: 3.2rem;
}
.score-card .score-unit {
    font-size: 0.8rem;
    color: var(--text-muted);
    margin-bottom: 8px;
}
.score-card .score-label {
    font-size: 0.85rem;
    color: var(--text-muted);
    margin-bottom: 12px;
}
.score-card .score-grade {
    display: inline-block;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
    background: rgba(255,255,255,0.2);
}
.score-card .score-bar {
    height: 6px;
    background: var(--bg-alt, #f0f0f0);
    border-radius: 3px;
    overflow: hidden;
    margin-top: 4px;
}
.score-card .bar-fill {
    height: 100%;
    border-radius: 3px;
    transition: width 0.8s ease;
}
.score-card .bar-fill.excellent { background: linear-gradient(90deg, #10b981, #34d399); }
.score-card .bar-fill.good { background: linear-gradient(90deg, #3b82f6, #60a5fa); }
.score-card .bar-fill.warning { background: linear-gradient(90deg, #f59e0b, #fbbf24); }
.score-card .bar-fill.critical { background: linear-gradient(90deg, #ef4444, #f87171); }
.score-card.excellent { border-color: #10b981; }
.score-card.good { border-color: #3b82f6; }
.score-card.warning { border-color: #f59e0b; }
.score-card.critical { border-color: #ef4444; }

/* ===== 快速导航 ===== */
.report-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 20px 0;
    padding: 8px;
    background: var(--bg-alt, #f8f9fa);
    border-radius: 12px;
    position: sticky;
    top: 0;
    z-index: 50;
    backdrop-filter: blur(8px);
}
.report-nav .nav-link {
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 0.85rem;
    color: var(--text-muted);
    text-decoration: none;
    transition: all 0.2s;
    white-space: nowrap;
}
.report-nav .nav-link:hover {
    background: var(--card-bg, #fff);
    color: var(--primary);
}
.report-nav .nav-link.active {
    background: var(--primary);
    color: #fff;
}
.report-nav .nav-cta {
    margin-left: auto;
    background: var(--primary);
    color: #fff;
}
.report-nav .nav-cta:hover {
    background: #4f46e5;
    color: #fff;
}

/* ===== 报告头部 ===== */
.report-header {
    margin-bottom: 12px;
}
.report-main-title {
    font-size: 1.8rem;
    font-weight: 800;
    margin-bottom: 6px;
    word-break: break-all;
}
.report-subtitle {
    color: var(--text-muted);
    font-size: 0.95rem;
    margin-bottom: 8px;
}
.report-meta {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}
.report-meta .meta-item {
    font-size: 0.85rem;
    color: var(--text-muted);
}
.report-meta .meta-link {
    font-size: 0.85rem;
    color: var(--primary);
    text-decoration: none;
}
.report-meta .meta-link:hover {
    text-decoration: underline;
}

/* ===== 报告正文增强 ===== */
.report-body h2 {
    font-size: 1.25rem;
    margin-top: 32px;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--border);
    scroll-margin-top: 80px;
}
.report-body h3 {
    font-size: 1.05rem;
    margin-top: 20px;
    margin-bottom: 8px;
    color: var(--text);
}
.report-body table {
    width: 100%;
    border-collapse: collapse;
    margin: 12px 0;
    font-size: 0.88rem;
}
.report-body table th {
    background: var(--bg-alt, #f8f9fa);
    padding: 8px 12px;
    text-align: left;
    border: 1px solid var(--border);
    font-weight: 600;
}
.report-body table td {
    padding: 8px 12px;
    border: 1px solid var(--border);
}
.report-body table tr:nth-child(even) {
    background: var(--bg-alt, #f8f9fa);
}

/* ===== 严重问题警告增强 ===== */
.roast-section {
    border-radius: 12px;
    padding: 20px;
    margin: 16px 0;
}
.roast-section.roast-critical {
    border-left: 4px solid #ef4444;
    background: linear-gradient(135deg, rgba(239,68,68,0.05), transparent);
}
.roast-section.roast-warning {
    border-left: 4px solid #f59e0b;
    background: linear-gradient(135deg, rgba(245,158,11,0.05), transparent);
}
.roast-section h2 {
    margin-top: 0 !important;
    border-bottom: none !important;
}

/* ===== 阅读进度条 ===== */
.reading-progress {
    position: sticky;
    top: 0;
    height: 3px;
    background: transparent;
    z-index: 50;
    margin-bottom: 8px;
}
.reading-progress .rp-bar {
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--primary, #6366f1), #818cf8);
    border-radius: 0 3px 3px 0;
    transition: width 0.1s linear;
}

/* ===== 关键发现摘要（钩子#1）===== */
.executive-summary {
    background: linear-gradient(135deg, #f8fafc, #eef2ff);
    border: 1px solid #c7d2fe;
    border-radius: 16px;
    padding: 24px;
    margin: 24px 0;
}
.es-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}
.es-header h2 {
    margin: 0 !important;
    border-bottom: none !important;
    font-size: 1.3rem;
}
.es-badge {
    background: #6366f1;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 10px;
    letter-spacing: 0.5px;
}
.es-intro {
    color: #475569;
    font-size: 0.95rem;
    margin-bottom: 12px;
}
.es-highlight {
    color: var(--primary, #6366f1);
    font-weight: 700;
}
.es-findings {
    list-style: none;
    padding: 0;
    margin: 0;
}
.es-findings li {
    padding: 10px 14px;
    margin-bottom: 8px;
    border-radius: 8px;
    font-size: 0.95rem;
    line-height: 1.6;
    border-left: 3px solid;
}
.finding-good { background: #f0fdf4; border-color: #22c55e; color: #15803d; }
.finding-warn { background: var(--card-bg)beb; border-color: #f59e0b; color: #b45309; }
.finding-bad  { background: #fef2f2; border-color: #ef4444; color: #b91c1c; }
.finding-info { background: #f0f9ff; border-color: #0ea5e9; color: #0369a1; }
.es-cta {
    margin-top: 16px;
    padding: 12px 16px;
    background: rgba(99,102,241,0.08);
    border-radius: 8px;
    text-align: center;
    font-size: 0.9rem;
}
.es-cta a {
    color: var(--primary, #6366f1);
    font-weight: 600;
    text-decoration: underline;
}
.es-arrow {
    display: inline-block;
    animation: bounce 1.5s infinite;
}
@keyframes bounce {
    0%,100% { transform: translateY(0); }
    50% { transform: translateY(4px); }
}

/* ===== 维度解读卡片（钩子#2）===== */
.dimension-guide {
    margin: 32px 0;
}
.dimension-guide h2 {
    font-size: 1.3rem;
    margin-bottom: 8px;
}
.dg-intro {
    color: #64748b;
    font-size: 0.92rem;
    margin-bottom: 16px;
}
.dg-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.dim-guide-card {
    border-radius: 12px;
    padding: 16px;
    border: 1px solid var(--border, #e2e8f0);
    background: var(--card-bg, #fff);
    transition: transform 0.2s, box-shadow 0.2s;
}
.dim-guide-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.06);
}
.dgc-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}
.dgc-name {
    font-weight: 700;
    font-size: 1rem;
    color: var(--text-primary, #1e293b);
}
.dgc-score {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
}
.dgc-score small {
    font-size: 0.7rem;
    font-weight: 400;
    color: var(--text-muted, #94a3b8);
}
.dgc-fullname {
    font-size: 0.82rem;
    color: var(--text-muted, #64748b);
    margin-bottom: 6px;
}
.dgc-desc {
    font-size: 0.82rem;
    color: #64748b;
    line-height: 1.5;
    margin-bottom: 8px;
}
.dgc-verdict {
    font-size: 0.82rem;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 6px;
    display: inline-block;
    margin-bottom: 6px;
}
.dim-verdict-excellent { background: #dcfce7; color: #15803d; }
.dim-verdict-good { background: #e0e7ff; color: #4338ca; }
.dim-verdict-warn { background: #fef3c7; color: #b45309; }
.dim-verdict-bad { background: #fee2e2; color: #b91c1c; }
.dim-verdict-untracked { background: #f1f5f9; color: #64748b; }
.dgc-advice {
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.5;
    padding-top: 6px;
    border-top: 1px dashed var(--border, #e2e8f0);
}
/* 维度卡片颜色编码 */
.dim-excellent { border-left: 3px solid #22c55e; }
.dim-good { border-left: 3px solid #6366f1; }
.dim-warn { border-left: 3px solid #f59e0b; }
.dim-bad { border-left: 3px solid #ef4444; }
.dim-untracked { border-left: 3px solid #cbd5e1; }
.dim-excellent .dgc-score { color: #22c55e; }
.dim-good .dgc-score { color: #6366f1; }
.dim-warn .dgc-score { color: #f59e0b; }
.dim-bad .dgc-score { color: #ef4444; }
.dim-untracked .dgc-score { color: #cbd5e1; }
.dg-cta {
    margin-top: 16px;
    text-align: center;
    font-size: 0.9rem;
    color: #64748b;
    padding: 12px;
    background: #f8fafc;
    border-radius: 8px;
}
.dg-cta a { color: var(--primary, #6366f1); font-weight: 600; }

/* ===== 行动清单（钩子#3）===== */
.action-checklist {
    margin: 32px 0;
    background: #f8fafc;
    border-radius: 16px;
    padding: 24px;
}
.action-checklist h2 {
    font-size: 1.3rem;
    margin-bottom: 8px;
}
.ac-intro {
    color: #64748b;
    font-size: 0.92rem;
    margin-bottom: 16px;
}
.ac-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
.checklist-section {
    border-radius: 12px;
    padding: 16px;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border, #e2e8f0);
}
.checklist-section h3 {
    font-size: 1rem;
    margin: 0 0 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.cl-count {
    font-size: 0.75rem;
    background: #f1f5f9;
    color: #64748b;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 500;
}
.checklist-section ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.checklist-section li {
    padding: 6px 0;
    font-size: 0.85rem;
    line-height: 1.5;
    border-bottom: 1px solid #f1f5f9;
}
.checklist-section li:last-child { border-bottom: none; }
.cl-dim {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 4px;
    background: #e0e7ff;
    color: #4338ca;
    margin-right: 4px;
}
.cl-empty {
    color: #22c55e;
    font-size: 0.85rem;
    text-align: center;
    padding: 12px;
}
.cl-p0 { border-left: 3px solid #ef4444; }
.cl-p1 { border-left: 3px solid #f59e0b; }
.cl-p2 { border-left: 3px solid #0ea5e9; }
.cl-p0 .cl-count { background: #fee2e2; color: #b91c1c; }
.cl-p1 .cl-count { background: #fef3c7; color: #b45309; }
.cl-p2 .cl-count { background: #e0f2fe; color: #0369a1; }
.ac-cta {
    margin-top: 16px;
    text-align: center;
    padding: 14px;
    background: linear-gradient(135deg, #eef2ff, #f0f9ff);
    border-radius: 10px;
}
.ac-cta p { margin: 4px 0; font-size: 0.9rem; }
.ac-cta a { color: var(--primary, #6366f1); font-weight: 600; }

/* ===== 阅读钩子 ===== */
.reading-hook {
    text-align: center;
    margin: 20px 0 8px;
    padding: 10px 16px;
    background: linear-gradient(90deg, transparent, #eef2ff, transparent);
    border-radius: 8px;
}
.rh-text {
    font-size: 0.88rem;
    color: #6366f1;
    font-weight: 500;
    line-height: 1.5;
}
.rh-text strong { color: #4338ca; }

/* ===== 报告正文优化 ===== */
.report-body h2 {
    font-size: 1.35rem;
    margin-top: 36px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--border, #e2e8f0);
    color: var(--text-primary, #1e293b);
}
.report-body h3 {
    font-size: 1.1rem;
    margin-top: 24px;
    color: #334155;
}
.report-body p {
    line-height: 1.8;
    margin-bottom: 12px;
    color: #334155;
}
.report-body table {
    width: 100%;
    border-collapse: collapse;
    margin: 12px 0;
    font-size: 0.9rem;
}
.report-body th {
    background: #f8fafc;
    padding: 8px 12px;
    border: 1px solid var(--border, #e2e8f0);
    text-align: left;
    font-weight: 600;
}
.report-body td {
    padding: 8px 12px;
    border: 1px solid var(--border, #e2e8f0);
}
.report-body tr:nth-child(even) td {
    background: #fafbfc;
}
.report-body blockquote {
    border-left: 3px solid var(--primary, #6366f1);
    margin: 12px 0;
    padding: 8px 16px;
    background: #f8fafc;
    border-radius: 0 8px 8px 0;
    color: #475569;
}
.report-body code {
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.88rem;
}
.report-body pre {
    background: #1e293b;
    color: #e2e8f0;
    padding: 14px;
    border-radius: 8px;
    overflow-x: auto;
    font-size: 0.85rem;
    line-height: 1.6;
}
.report-body pre code {
    background: transparent;
    padding: 0;
}

/* ===== 移动端适配（新增组件）===== */
@media (max-width: 768px) {
    .dg-grid {
        grid-template-columns: 1fr 1fr;
    }
    .ac-grid {
        grid-template-columns: 1fr;
    }
    .executive-summary {
        padding: 16px;
    }
    .action-checklist {
        padding: 16px;
    }
    .reading-hook .rh-text {
        font-size: 0.82rem;
    }
    /* 导航链接触摸目标优化 */
    .report-nav .nav-link {
        padding: 8px 12px;
        min-height: 36px;
        display: inline-flex;
        align-items: center;
    }
    .report-nav .nav-cta {
        padding: 8px 14px;
    }
    /* 维度解读卡片 */
    .dim-guide-card { padding: 14px 12px; }
    .dgc-score { font-size: 1.3rem; }
    /* 行动清单 */
    .checklist-section { padding: 14px 12px; }
    .checklist-section li { font-size: 0.82rem; }
    /* 关键发现 */
    .es-findings li { padding: 8px 12px; font-size: 0.88rem; }
    .es-header h2 { font-size: 1.15rem; }
    .es-intro { font-size: 0.88rem; }
}
@media (max-width: 480px) {
    .dg-grid {
        grid-template-columns: 1fr;
    }
    /* 评分总览在超小屏下单列 */
    .score-overview {
        grid-template-columns: 1fr !important;
    }
    .score-overview-7 {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto !important;
    }
    .score-overview-7 .score-card.score-total {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
    .score-card { padding: 16px 12px; }
    .score-card .score-number { font-size: 1.8rem !important; }
    .score-card.score-total .score-number { font-size: 2.4rem !important; }
    /* 维度解读单列 */
    .dim-guide-card { padding: 12px 10px; }
    .dgc-header { flex-wrap: wrap; gap: 4px; }
    .dgc-score { font-size: 1.2rem; }
    /* 执行摘要收紧 */
    .executive-summary { padding: 12px; }
    .es-findings li { padding: 8px 10px; font-size: 0.82rem; line-height: 1.55; }
    /* 行动清单收紧 */
    .action-checklist { padding: 12px; }
    .checklist-section { padding: 12px 10px; }
    .checklist-section h3 { font-size: 0.9rem; }
    /* 报告正文表格更小字号 */
    .report-body table { font-size: 0.75rem; }
    .report-body th, .report-body td { padding: 6px 8px; }
    .report-body pre { font-size: 0.7rem; padding: 10px; }
    /* roast 区域 */
    .roast-critical h2 { font-size: 1.3rem !important; letter-spacing: 1px; }
    .roast-warning h2 { font-size: 1.15rem !important; }
    .roast-section { padding: 16px 12px; }
    /* 报告导航 */
    .report-nav { padding: 6px; }
    .report-nav .nav-link { padding: 6px 10px; font-size: 0.78rem; }
    /* 相关报告 */
    .related-reports li { padding: 8px 10px; }
    .related-reports li a { font-size: 0.78rem; }
    /* 评论 */
    .comment-item { padding: 10px; }
    .comment-item p { font-size: 0.8rem; }
    /* 报告标题 */
    .report-main-title { font-size: 1.2rem !important; }
    .report-subtitle { font-size: 0.78rem; }
}

/* ---- 360px 极窄屏 ---- */
@media (max-width: 360px) {
    .report-body { padding: 16px 10px; font-size: 0.88rem; }
    .report-body h1 { font-size: 1.2rem !important; }
    .report-body h2 { font-size: 1.05rem !important; }
    .report-body h3 { font-size: 0.95rem !important; }
    .score-card .score-number { font-size: 1.5rem !important; }
    .score-card.score-total .score-number { font-size: 2rem !important; }
    .report-main-title { font-size: 1.1rem !important; }
}
