/**
 * PMC 审稿报告样式
 * 
 * 按照 CDR-2025-132_PMC审稿报告.md 的格式设计
 */

@keyframes spin { to { transform: rotate(360deg); } }

/* ==================== 基础样式 ==================== */

.pmc-report-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    line-height: 1.6;
    color: #1f2937;
    background: #ffffff;
}

/* Large screen optimization */
@media (min-width: 1440px) {
    .pmc-report-container {
        max-width: 1600px;
        padding: 24px;
    }
}

@media (min-width: 1920px) {
    .pmc-report-container {
        max-width: 1800px;
        padding: 32px;
    }
}

/* ==================== 报告头部 ==================== */

.report-header {
    border-bottom: 3px solid #3b82f6;
    padding-bottom: 20px;
    margin-bottom: 30px;
}

.report-header h1 {
    color: #1e40af;
    font-size: 28px;
    margin-bottom: 16px;
}

.header-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 12px;
}

.meta-item {
    padding: 8px 12px;
    background: #f3f4f6;
    border-radius: 6px;
    font-size: 14px;
}

.meta-item strong {
    color: #4b5563;
}

/* ==================== 章节样式 ==================== */

.report-section {
    margin-bottom: 24px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.section-header {
    padding: 16px 20px;
    background: linear-gradient(to right, #f9fafb, #ffffff);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background-color 0.2s;
}

.section-header:hover {
    background: linear-gradient(to right, #f3f4f6, #f9fafb);
}

.section-header.expanded {
    background: linear-gradient(to right, #eff6ff, #ffffff);
    border-bottom: 2px solid #3b82f6;
}

.section-header h2 {
    margin: 0;
    font-size: 20px;
    color: #1e40af;
    font-weight: 600;
}

.toggle-icon {
    font-size: 16px;
    color: #6b7280;
    transition: transform 0.2s;
}

.section-header.expanded .toggle-icon {
    color: #3b82f6;
}

.section-content {
    padding: 20px;
}

.section-summary {
    color: #6b7280;
    font-style: italic;
    margin-bottom: 16px;
    padding: 12px;
    background: #f9fafb;
    border-left: 3px solid #3b82f6;
    border-radius: 4px;
}

/* ==================== 表格样式 ==================== */

.info-table,
.data-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 12px;
    margin-bottom: 16px;
}

.info-table th,
.info-table td,
.data-table th,
.data-table td {
    padding: 12px 16px;
    text-align: left;
    border-bottom: 1px solid #e5e7eb;
}

.info-table th,
.data-table th {
    background: #f9fafb;
    font-weight: 600;
    color: #374151;
    border-bottom: 2px solid #d1d5db;
}

.info-table tbody tr:hover,
.data-table tbody tr:hover {
    background: #f9fafb;
}

.data-table tbody tr:last-child td {
    border-bottom: none;
}

/* ==================== 问题卡片 ==================== */

.issue-card {
    padding: 16px;
    margin-bottom: 16px;
    border-radius: 6px;
    border-left: 4px solid;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.issue-card h4 {
    margin: 0 0 12px 0;
    font-size: 16px;
    color: #1f2937;
}

.issue-card .issue-content {
    font-size: 14px;
    line-height: 1.8;
}

.issue-card .issue-content p {
    margin: 8px 0;
}

.issue-critical {
    background: #fef2f2;
    border-color: #ef4444;
}

.issue-major {
    background: #fffbeb;
    border-color: #f59e0b;
}

.issue-minor {
    background: #f0fdf4;
    border-color: #10b981;
}

/* ==================== 结论框 ==================== */

.conclusion-box {
    padding: 20px;
    background: #f9fafb;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.conclusion-box h3 {
    color: #1e40af;
    font-size: 18px;
    margin-top: 20px;
    margin-bottom: 12px;
}

.conclusion-box h3:first-child {
    margin-top: 0;
}

/* ==================== Figure 卡片 ==================== */

.figures-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.figure-card {
    padding: 16px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.figure-card h4 {
    margin: 0 0 12px 0;
    color: #1e40af;
    font-size: 16px;
}

.figure-card p {
    margin: 8px 0;
    font-size: 14px;
}

.figure-issues {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #e5e7eb;
}

/* ==================== 评估框 ==================== */

.evaluation-box {
    padding: 16px;
    background: #f0fdf4;
    border-radius: 6px;
    border-left: 4px solid #10b981;
    margin-top: 16px;
}

/* ==================== 总体评分 ==================== */

.overall-box {
    padding: 24px;
    background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
    border-radius: 8px;
    border: 2px solid #3b82f6;
    margin-top: 20px;
}

.overall-box h3 {
    color: #1e40af;
    font-size: 20px;
    margin-bottom: 16px;
}

.overall-score {
    text-align: center;
    margin: 24px 0;
}

.score-number {
    font-size: 64px;
    font-weight: bold;
    color: #3b82f6;
    line-height: 1;
}

.score-label {
    font-size: 24px;
    color: #6b7280;
    margin-left: 8px;
}

/* ==================== 优先级块 ==================== */

.priority-block {
    padding: 20px;
    margin-bottom: 20px;
    border-radius: 8px;
    border-left: 5px solid;
}

.priority-block h3 {
    margin: 0 0 16px 0;
    font-size: 18px;
}

.priority-block ol {
    margin: 0;
    padding-left: 24px;
}

.priority-block li {
    margin-bottom: 8px;
    line-height: 1.6;
}

.priority-critical {
    background: linear-gradient(to right, #fef2f2, #ffffff);
    border-color: #ef4444;
}

.priority-critical h3 {
    color: #dc2626;
}

.priority-major {
    background: linear-gradient(to right, #fffbeb, #ffffff);
    border-color: #f59e0b;
}

.priority-major h3 {
    color: #d97706;
}

.priority-minor {
    background: linear-gradient(to right, #f0fdf4, #ffffff);
    border-color: #10b981;
}

.priority-minor h3 {
    color: #059669;
}

/* ==================== 无问题提示 ==================== */

.no-issues {
    color: #10b981;
    font-style: italic;
    padding: 16px;
    background: #f0fdf4;
    border-radius: 6px;
    border-left: 4px solid #10b981;
    font-size: 16px;
}

/* ==================== 提示文本 ==================== */

.hint {
    color: #6b7280;
    font-size: 14px;
    margin-top: 12px;
    padding: 8px 12px;
    background: #f9fafb;
    border-radius: 4px;
}

/* ==================== 引用块 ==================== */

blockquote {
    margin: 16px 0;
    padding: 16px 20px;
    background: #f9fafb;
    border-left: 4px solid #3b82f6;
    border-radius: 4px;
    font-style: italic;
    color: #4b5563;
}

/* ==================== 错误框 ==================== */

.error-box {
    padding: 24px;
    background: #fef2f2;
    border: 2px solid #ef4444;
    border-radius: 8px;
    text-align: center;
}

.error-box h3 {
    color: #dc2626;
    margin-bottom: 12px;
}

.error-box p {
    color: #7f1d1d;
}

/* ==================== 报告尾部 ==================== */

.report-footer {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 2px solid #e5e7eb;
    text-align: center;
    color: #6b7280;
}

.report-footer em {
    font-size: 14px;
}

.footer-meta {
    margin-top: 12px;
    font-size: 13px;
    color: #9ca3af;
}

/* ==================== 响应式设计 ==================== */

@media (max-width: 768px) {
    .pmc-report-container {
        padding: 12px;
    }
    
    .report-header h1 {
        font-size: 22px;
    }
    
    .header-meta {
        grid-template-columns: 1fr;
    }
    
    .section-header h2 {
        font-size: 18px;
    }
    
    .info-table th,
    .info-table td,
    .data-table th,
    .data-table td {
        padding: 8px 12px;
        font-size: 14px;
    }
    
    .figures-grid {
        grid-template-columns: 1fr;
    }
    
    .score-number {
        font-size: 48px;
    }
    
    /* ===== Tab 导航栏 · 移动端紧凑 + 横滑提示 ===== */
    .pmc-tabs-nav-wrapper {
        border-radius: 8px;
    }
    .pmc-tab-btn {
        padding: 0 11px;
        min-height: 46px;
        font-size: 12px;
        gap: 4px;
    }
    .pmc-tab-icon {
        width: 14px;
        height: 14px;
    }
    .pmc-tab-count {
        min-width: 18px;
        height: 18px;
        font-size: 10px;
        padding: 0 4px;
    }
    /* 右侧渐隐遮罩：提示还有更多章节可横滑 */
    .pmc-tabs-nav-clip {
        -webkit-mask-image: linear-gradient(to right, #000 92%, transparent 100%);
        mask-image: linear-gradient(to right, #000 92%, transparent 100%);
    }
    
    /* ===== 报告正文 · 移动端表格与卡片自适应 ===== */
    .tab-panel .section-body {
        padding: 16px 12px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    /* 表格填满容器、单元格允许换行，所有列可见，不再被横向裁切 */
    .tab-panel .section-body > table {
        width: 100%;
        border-collapse: collapse;
    }
    .tab-panel .section-body th,
    .tab-panel .section-body td {
        white-space: normal;
        word-break: break-word;
        vertical-align: top;
    }
    /* 章节头在窄屏收紧，避免标题溢出 */
    .report-section-card .pmc-section-header {
        padding: 12px 14px;
        min-height: 0;
    }
    .pmc-section-title {
        font-size: 17px;
    }
    /* 综合评分框：分数与建议文字在窄屏换行，避免挤压被遮 */
    .overall-box {
        flex-wrap: wrap;
        gap: 12px !important;
    }
    .overall-score {
        width: 64px !important;
        height: 64px !important;
    }
    .overall-score .score-number {
        font-size: 24px !important;
    }
    /* 修改优先级卡片头部在窄屏允许换行 */
    .priority-card-header {
        flex-wrap: wrap;
        gap: 6px;
    }
}

/* ==================== Tab 导航栏 ==================== */

.pmc-tabs-nav-wrapper {
    display: flex;
    align-items: stretch;
    position: relative !important;
    z-index: 1;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px 8px 0 0;
    margin-bottom: 0;
    overflow: hidden;
}

.pmc-tabs-nav-clip {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.pmc-tabs-nav {
    display: flex;
    gap: 0;
    overflow-x: auto;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    padding: 0 4px;
    position: relative;
    min-width: 0;
    scrollbar-width: none;
    -ms-overflow-style: none;
    background: #fafafa;
    border-bottom: 2px solid #e5e7eb;
}

.pmc-tabs-nav::-webkit-scrollbar { display: none; }

.pmc-tab-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 54px;
    padding: 0 18px;
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    color: #6b7280;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    font-family: inherit;
    position: relative;
    flex-shrink: 0;
    letter-spacing: 0;
    box-sizing: border-box;
    margin-bottom: -2px;
}

.pmc-tab-btn:hover {
    color: #1f2937;
    background: #f9fafb;
}

.pmc-tab-btn.active {
    color: #dc2626;
    border-bottom-color: #dc2626;
    background: #ffffff;
    box-shadow: inset 0 1px 0 rgba(220, 38, 38, 0.08);
}

.pmc-tab-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
    stroke: currentColor;
}

.pmc-tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 10px;
    background: #fef2f2;
    color: #dc2626;
    font-size: 11px;
    font-weight: 700;
}

.pmc-tab-btn.active .pmc-tab-count {
    background: #dc2626;
    color: #ffffff;
}

/* 导航箭头 */
.pmc-nav-arrow {
    display: none;
    align-items: center;
    justify-content: center;
    width: 32px;
    flex-shrink: 0;
    background: #ffffff;
    border: none;
    border-bottom: 2px solid #e5e7eb;
    cursor: pointer;
    color: #6b7280;
    transition: color 0.2s;
    padding: 0;
    z-index: 1;
}

.pmc-nav-left { border-right: 1px solid #e5e7eb; }
.pmc-nav-right { border-left: 1px solid #e5e7eb; }

.pmc-nav-arrow:hover { color: #1f2937; }

.pmc-nav-arrow svg {
    width: 18px;
    height: 18px;
}

.pmc-tabs-nav-wrapper.show-left .pmc-nav-left { display: flex; }
.pmc-tabs-nav-wrapper.show-right .pmc-nav-right { display: flex; }

/* 激活指示器 */
.tab-indicator {
    pointer-events: none;
}

/* ==================== Tab 面板 ==================== */

.tab-panel {
    display: none;
}

.tab-panel.active {
    display: block;
}

.tab-panel .section-body {
    padding: 24px 20px;
}

/* ==================== 报告章节卡片 ==================== */

.report-section-card {
    background: #ffffff;
}

.report-section-card .pmc-section-header {
    min-height: 72px;
    padding: 18px 24px;
    background: linear-gradient(to right, #f0f4ff, #ffffff);
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    margin-bottom: 0;
    cursor: default;
    box-sizing: border-box;
}

.pmc-section-title-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.pmc-section-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    background: #dc2626;
    color: #ffffff;
    font-size: 16px;
    font-weight: 700;
    flex-shrink: 0;
}

.pmc-section-title {
    font-size: 20px;
    font-weight: 600;
    color: #1f2937;
    margin: 0;
    line-height: 1.35;
}

/* ==================== 综合评分框 ==================== */

.overall-box {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    margin-top: 16px;
}

.overall-score {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    border: 2px solid #dc2626;
}

.score-number {
    font-family: 'Times New Roman', serif;
    font-size: 32px;
    font-weight: 800;
    color: #1f2937;
    line-height: 1;
}

/* ==================== 最终审稿意见 ==================== */

.final-opinion-section {
    margin-top: 24px;
    padding: 24px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
}

.final-opinion-section h3 {
    font-family: 'Times New Roman', serif;
    font-size: 18px;
    font-weight: 700;
    color: #1f2937;
    margin-bottom: 16px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.final-opinion-content {
    font-family: 'Times New Roman', serif;
    font-size: 14px;
    line-height: 1.8;
    color: #374151;
    white-space: pre-wrap;
}

/* ==================== 报告容器整体 ==================== */

.report-header {
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 2px solid #d1d5db;
}

.report-header h1 {
    font-family: 'Times New Roman', serif;
    font-size: 28px;
    font-weight: 700;
    color: #1f2937;
    margin: 0 0 16px 0;
    letter-spacing: 0.3px;
}

/* ==================== 报告尾部 ==================== */

.report-footer {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 2px solid #e5e7eb;
}

.report-footer p {
    font-style: italic;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.6;
}

.footer-meta {
    font-size: 12px;
    color: #9ca3af;
    margin-top: 8px;
}

/* ==================== PDF 导出辅助样式 ==================== */
/* 离屏容器中的 Tab 面板强制全部展开 */
.pdf-export-mode .tab-panel {
    display: block !important;
    page-break-inside: avoid;
}
.pdf-export-mode .pmc-tabs-nav-wrapper {
    display: none !important;
}
.pdf-export-mode .report-section-card {
    border: none;
    margin-bottom: 24px;
}
.pdf-export-mode .pmc-nav-arrow {
    display: none !important;
}

/* ==================== 审稿详情（task-detail）原版样式 ==================== */
.td-hero { animation: fadeUp 0.5s var(--ease-expo) both; }
.td-back { display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--ink-muted);font-weight:500;margin-bottom:var(--sp-6);transition:color 150ms; }
.td-back:hover { color:var(--coral); }
.td-meta-row { display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-3); }
.td-badge { display:inline-flex;align-items:center;gap:4px;padding:3px 12px;border-radius:var(--r-full);font-size:var(--text-xs);font-weight:600; }
.td-badge.pending { background:#FEF3C7;color:#92400E; }
.td-badge.processing { background:#DBEAFE;color:#1E40AF; }
.td-badge.completed { background:var(--teal-ghost);color:var(--teal); }
.td-badge.failed { background:var(--coral-ghost);color:var(--coral); }
.td-badge.queued { background:#E0E7FF;color:#4338CA; }
.td-meta { font-size:var(--text-xs);color:var(--ink-muted); }
.td-meta strong { color:var(--ink);font-weight:600; }
.td-detail-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-3);margin-top:var(--sp-5); }
.td-detail-item { background:#FFF;border:1px solid var(--paper-border);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4); }
.td-detail-label { display:block;font-size:11px;color:var(--ink-muted);font-weight:700;text-transform:uppercase;letter-spacing:0.4px;margin-bottom:4px; }
.td-detail-value { display:block;font-size:var(--text-sm);color:var(--ink);font-weight:700;line-height:1.45;word-break:break-word; }

.td-card { background:#FFF;border:1px solid var(--paper-border);border-radius:var(--r-2xl);overflow:hidden;animation:fadeUp 0.6s 0.1s var(--ease-expo) both; }
.td-card-head { padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--paper-border);display:flex;align-items:center;justify-content:space-between; }
.td-card-head h3 { font-family:var(--font-display);font-size:var(--text-base);font-weight:700; }
.td-card-body { padding:var(--sp-6); }

.td-pipeline { padding:var(--sp-6) var(--sp-8); }
.td-stage { display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;font-size:var(--text-sm);color:var(--ink-muted);transition:all 200ms; }
.td-stage .s-icon { width:24px;text-align:center;font-size:14px;display:flex;align-items:center;justify-content:center; }
.td-stage .s-name { flex:1; }
.td-stage .s-bar { width:100px;height:4px;background:var(--paper-alt);border-radius:2px;overflow:hidden; }
.td-stage .s-bar-fill { height:100%;background:var(--teal);border-radius:2px;transition:width 0.6s var(--ease-expo); }
.td-stage.done { color:var(--teal); }
.td-stage.done .s-bar-fill { background:var(--teal); }
.td-stage.active { color:var(--night);font-weight:600;padding:var(--sp-3) var(--sp-4);background:var(--coral-ghost);border-radius:var(--r-md);margin:2px 0; }
.td-stage.active .s-icon { color:var(--coral);animation:spin 1.5s linear infinite; }
.td-stage.pending { color:#CBD5E1; }

.td-ring-wrap { display:flex;justify-content:center;padding:var(--sp-6) 0; }
.td-ring-inner { position:relative;width:130px;height:130px; }
.td-ring-inner svg { transform:rotate(-90deg); }
.td-ring-bg { fill:none;stroke:var(--paper-alt);stroke-width:10; }
.td-ring-fg { fill:none;stroke:var(--teal);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset 0.6s var(--ease-expo);filter:drop-shadow(0 0 6px rgba(13,148,136,0.3)); }
.td-ring-pct { position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center; }
.td-ring-pct .num { font-family:var(--font-display);font-size:var(--text-3xl);font-weight:800;color:var(--night);line-height:1; }
.td-ring-pct .lbl { font-size:var(--text-xs);color:var(--ink-muted);font-weight:500;margin-top:2px; }

.score-grid { display:grid;grid-template-columns:1.2fr 0.8fr 1fr 1fr;gap:var(--sp-6);animation:fadeUp 0.7s 0.1s var(--ease-expo) both;margin-bottom:var(--sp-6);margin-top:var(--sp-6); }
.score-card { background:#FFF;border:1px solid #e5e7eb;border-radius:0;padding:var(--sp-6); }
.score-hero { border:2px solid #dc2626;position:relative;overflow:hidden; }
.sc-label { font-family:'Times New Roman', serif;font-size:11px;color:#6b7280;font-weight:700;text-transform:uppercase;letter-spacing:0.5px; }
.sc-value { font-family:'Times New Roman', serif;font-size:var(--text-4xl);font-weight:800;color:#1f2937;line-height:1;margin-top:var(--sp-2); }
.sc-sub { font-family:'Times New Roman', serif;font-size:var(--text-sm);color:#6b7280;margin-top:var(--sp-1);font-weight:600; }

.author-panel { background:#FFF;border:1px solid #dbe3ea;border-radius:var(--r-lg);margin:var(--sp-6) 0;overflow:hidden;animation:fadeUp 0.65s 0.15s var(--ease-expo) both; }
.author-panel-head { display:flex;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);border-bottom:1px solid #e5e7eb;background:#f8fafc; }
.author-panel-head > div:not(.author-panel-actions) { flex:1 1 auto;min-width:0; }
.author-panel-title { font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;color:var(--night);margin:0; }
.author-panel-sub { font-size:var(--text-xs);color:var(--ink-muted);margin-top:4px;line-height:1.6; }
.author-panel-actions { display:flex;gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end;margin-left:auto; }
.mini-btn { border:1px solid #cbd5e1;background:#FFF;color:#334155;border-radius:var(--r-full);padding:7px 12px;font-size:12px;font-weight:700;cursor:pointer;transition:all 150ms;white-space:nowrap; }
.mini-btn:hover { border-color:var(--coral);color:var(--coral);transform:translateY(-1px); }
.quality-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3);padding:var(--sp-5) var(--sp-6); }
.quality-item { border:1px solid #e5e7eb;background:#FFF;border-radius:var(--r-md);padding:var(--sp-4); }
.quality-value { font-family:var(--font-display);font-size:var(--text-2xl);font-weight:800;color:#1f2937;line-height:1; }
.quality-label { font-size:11px;color:#64748b;font-weight:700;text-transform:uppercase;letter-spacing:0.4px;margin-top:var(--sp-2); }
.quality-note { padding:0 var(--sp-6) var(--sp-5);font-size:var(--text-xs);color:#64748b;line-height:1.7; }
.revision-stats { display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--sp-3);padding:var(--sp-5) var(--sp-6);border-bottom:1px solid #e5e7eb; }
.revision-stat { border:1px solid #e5e7eb;border-radius:var(--r-md);padding:var(--sp-4);background:#FFF; }
.revision-stat strong { display:block;font-family:var(--font-display);font-size:var(--text-2xl);line-height:1;color:#111827; }
.revision-stat span { display:block;margin-top:var(--sp-2);font-size:12px;color:#64748b;font-weight:700; }
.revision-list { padding:var(--sp-2) var(--sp-6) var(--sp-6); }
.revision-group-title { font-family:var(--font-display);font-size:var(--text-base);font-weight:800;color:#1f2937;margin:var(--sp-5) 0 var(--sp-3); }
.revision-item { border:1px solid #e5e7eb;border-radius:var(--r-md);padding:var(--sp-4);margin-bottom:var(--sp-3);background:#FFF; }
.revision-item-head { display:flex;justify-content:space-between;gap:var(--sp-3);align-items:flex-start;margin-bottom:var(--sp-2); }
.revision-location { font-size:12px;color:#64748b;font-weight:700;line-height:1.5; }
.revision-severity { flex-shrink:0;border-radius:var(--r-full);font-size:11px;font-weight:800;padding:3px 9px; }
.revision-severity.must { background:#fee2e2;color:#991b1b; }
.revision-severity.suggested { background:#fef3c7;color:#92400e; }
.revision-severity.minor { background:#dcfce7;color:#166534; }
.revision-severity.uncertain { background:#e0e7ff;color:#3730a3; }
.revision-issue { color:#1f2937;font-size:var(--text-sm);line-height:1.7;font-weight:600; }
.revision-suggestion { margin-top:var(--sp-2);padding:var(--sp-3);background:#f0fdfa;border-left:3px solid var(--teal);font-size:var(--text-sm);color:#115e59;line-height:1.65; }
.revision-evidence { margin-top:var(--sp-2);font-size:12px;color:#64748b;line-height:1.6; }
.revision-status { display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-3); }
.revision-status button { border:1px solid #cbd5e1;background:#FFF;border-radius:var(--r-full);padding:5px 10px;font-size:11px;font-weight:700;color:#475569;cursor:pointer; }
.revision-status button.active { background:#0f172a;color:#FFF;border-color:#0f172a; }

.td-actions { display:flex;gap:var(--sp-3);padding:var(--sp-6);flex-wrap:wrap; }
.td-actions .btn { display:inline-flex;align-items:center;gap:var(--sp-2); }
.td-download-link { transition:all 150ms; }
.td-download-link:hover { color:var(--coral-deep) !important;text-decoration:underline !important;transform:translateY(-1px); }
.td-error { padding:var(--sp-6);background:var(--coral-ghost);border-radius:var(--r-xl);margin:var(--sp-4) var(--sp-6);font-size:var(--text-sm);color:var(--coral-deep);line-height:1.65; }
.td-error h4 { color:var(--coral);margin-bottom:var(--sp-2); }
.td-loading { text-align:center;padding:var(--sp-16); }
.td-loading .spinner { display:inline-block;width:40px;height:40px;border:3px solid var(--paper-border);border-top-color:var(--coral);border-radius:50%;animation:spin 0.8s linear infinite;margin-bottom:var(--sp-4); }

.td-toc { position: sticky; top: var(--header-h, 64px); z-index: 40; background: rgba(251,250,247,0.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border:1px solid var(--paper-border); border-radius:var(--r-lg); padding:var(--sp-2) var(--sp-3); margin-bottom:var(--sp-6); display:flex; align-items:center; gap:var(--sp-2); }
.td-toc-title { flex:0 0 auto; font-size:11px; font-weight:800; color:var(--ink-muted); text-transform:uppercase; letter-spacing:0.08em; padding-right:var(--sp-2); border-right:1px solid var(--paper-border); margin-right:var(--sp-1); white-space:nowrap; }
.td-toc ul { display:flex; align-items:center; gap:var(--sp-2); list-style:none; margin:0; padding:0; flex:1; min-width:0; overflow-x:auto; scrollbar-width:none; }
.td-toc ul::-webkit-scrollbar { display:none; }
.td-toc li { flex:0 0 auto; }
.td-toc a { display:inline-block; white-space:nowrap; font-size:var(--text-xs); font-weight:600; color:var(--ink-soft); padding:5px 12px; border-radius:var(--r-full); background:#FFF; border:1px solid var(--paper-border); text-decoration:none; transition:all 150ms; }
.td-toc a:hover { border-color:var(--coral); color:var(--coral); }
.td-toc a.active { background:var(--coral); color:#FFF; border-color:var(--coral); }

.report-warning-banner { background:linear-gradient(135deg,#fffbeb 0%,#fef2f2 100%); border:1px solid #fde68a; border-radius:var(--r-md); padding:12px 16px; margin-bottom:16px; display:flex; align-items:center; gap:10px; font-size:13px; color:#92400e; line-height:1.5; }
.exec-summary { background:#fff; border:1px solid #e5e7eb; border-left:4px solid #dc2626; border-radius:var(--r-md); padding:18px 20px; margin-bottom:16px; }
.exec-summary .es-label { font-size:11px; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px; }

.pmc-sections-container { margin-top:var(--sp-8); animation:fadeUp 0.7s 0.2s var(--ease-expo) both; }
.pmc-tab-content-area { position:relative; min-height:400px; z-index:0; clear:both; }
.tab-panel { display:none; opacity:0; transform:translateY(10px); transition:opacity 0.3s ease, transform 0.3s ease; }
.tab-panel.active { display:block; opacity:1; transform:translateY(0); animation:fadeInUp 0.3s ease; }
@keyframes fadeInUp { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.report-section-card { background:white; border:1px solid #e5e7eb; border-radius:0; margin-bottom:var(--sp-6); box-shadow:none; transition:border-color 0.2s ease; }
.report-section-card:hover { border-color:#d1d5db; }
.report-section-card .pmc-section-header { min-height:72px; padding:var(--sp-6) var(--sp-6); background:linear-gradient(to right,#f0f4ff,#ffffff); border-bottom:1px solid #e5e7eb; display:flex; justify-content:space-between; align-items:center; margin-bottom:0; cursor:default; box-sizing:border-box; }
.report-section-card .pmc-section-title-wrap { display:flex; align-items:center; gap:var(--sp-3); min-width:0; }
.report-section-card .pmc-section-number { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:6px; background:#dc2626; color:#ffffff; font-family:'Times New Roman', serif; font-size:16px; font-weight:700; flex-shrink:0; }
.report-section-card .pmc-section-title { font-family:'Times New Roman', serif; font-size:18px; font-weight:700; color:#1f2937; margin:0; letter-spacing:0.2px; line-height:1.35; }
.section-body { padding:0 var(--sp-8) var(--sp-6); display:block; background:white; }
.section-chevron { margin-left:auto; color:var(--ink-muted); transition:transform 0.2s var(--ease-expo); display:inline-flex; align-items:center; }
.section-chevron svg { width:18px; height:18px; display:block; }
.report-section-card.collapsed .section-body { display:none; }
.report-section-card.collapsed .section-chevron { transform:rotate(-90deg); }
.author-panel.collapsed > *:not(.author-panel-head) { display:none; }
.author-panel.collapsed .section-chevron { transform:rotate(-90deg); }
.author-panel-head.collapsible .section-chevron { margin-left:0; margin-right:var(--sp-3); }
.pmc-section-header.collapsible, .author-panel-head.collapsible { cursor:pointer; user-select:none; }

.info-table { width:100%; border-collapse:collapse; font-size:14px; font-family:'Times New Roman', serif; margin-top:var(--sp-4); }
.info-table th, .info-table td { padding:var(--sp-3) var(--sp-4); text-align:left; border-bottom:1px solid #e5e7eb; vertical-align:top; line-height:1.6; }
.info-table th { background:#f9fafb; font-weight:600; color:#374151; font-size:12px; text-transform:uppercase; letter-spacing:0.5px; border-bottom:2px solid #d1d5db; }
.info-table td:first-child { font-weight:600; color:#1f2937; min-width:200px; }
.info-table td:last-child { color:#374151; }
.info-table tr:hover { background:#fafafa; }
.data-table { width:100%; border-collapse:collapse; font-size:13px; font-family:'Times New Roman', serif; margin-top:var(--sp-4); border:1px solid #d1d5db; }
.data-table th, .data-table td { padding:var(--sp-3) var(--sp-4); text-align:left; border:1px solid #e5e7eb; vertical-align:top; line-height:1.6; }
.data-table th { background:#f9fafb; font-weight:700; color:#1f2937; font-size:12px; text-transform:uppercase; letter-spacing:0.5px; border-bottom:2px solid #d1d5db; }
.data-table tr:nth-child(even) { background:#fafafa; }
.data-table tr:hover { background:#f3f4f6; }
.section-summary { font-size:var(--text-sm); color:var(--ink-soft); line-height:1.7; margin-bottom:var(--sp-4); padding:var(--sp-3); background:#f8fafc; border-radius:var(--r-md); border-left:3px solid var(--coral); }
.no-issues { color:var(--ink-muted); font-style:italic; padding:var(--sp-4); text-align:center; background:#f8fafc; border-radius:var(--r-md); }
.hint { font-size:var(--text-xs); color:var(--ink-muted); margin-top:var(--sp-3); padding:var(--sp-2); background:#f8fafc; border-radius:var(--r-md); }
.conclusion-box { padding:var(--sp-4); }
.conclusion-box h3 { font-family:var(--font-display); font-size:var(--text-base); font-weight:700; color:var(--night); margin-top:var(--sp-4); margin-bottom:var(--sp-3); }
.conclusion-box h3:first-child { margin-top:0; }
.evaluation-box { padding:var(--sp-4); background:#f8fafc; border-radius:var(--r-md); margin-top:var(--sp-4); }
.overall-box { display:flex; align-items:center; gap:var(--sp-6); padding:var(--sp-4); background:#f9fafb; border-radius:0; margin-top:var(--sp-4); border:1px solid #e5e7eb; }
.overall-score { flex-shrink:0; width:80px; height:80px; display:flex; align-items:center; justify-content:center; background:white; border:2px solid #dc2626; border-radius:0; }
.score-number { font-family:'Times New Roman', serif; font-size:32px; font-weight:800; color:#1f2937; line-height:1; }
.final-opinion-section { margin-top:var(--sp-6); padding:var(--sp-6); background:white; border-radius:0; border:1px solid #e5e7eb; }
.final-opinion-section h3 { font-family:'Times New Roman', serif; font-size:18px; font-weight:700; color:#1f2937; margin-bottom:var(--sp-4); text-transform:uppercase; letter-spacing:0.3px; }
.final-opinion-content { font-family:'Times New Roman', serif; font-size:14px; line-height:1.8; color:#374151; white-space:pre-wrap; }

.priority-filter-bar { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.priority-filter-chip { font-size:12px; padding:5px 12px; border:1px solid #d1d5db; background:#fff; border-radius:999px; cursor:pointer; color:#374151; }
.priority-card { margin-bottom:var(--sp-4); border-radius:var(--r-md); overflow:hidden; background:#fff; }
.priority-card-header { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid; }
.priority-card-body { padding:8px 0; }
.priority-item { display:flex; gap:12px; padding:12px 18px; border-bottom:1px solid #f3f4f6; }
.priority-item-index { flex-shrink:0; width:28px; height:28px; display:flex; align-items:center; justify-content:center; background:#f3f4f6; color:#374151; border-radius:999px; font-size:13px; font-weight:700; line-height:1; }
.priority-item-body { flex:1; min-width:0; }
.priority-item-location { font-size:12px; color:#64748b; font-weight:700; }
.priority-item-issue { font-size:14px; color:#1f2937; line-height:1.6; }
.priority-item-suggestion { margin-top:4px; font-size:13px; color:#115e59; }
.priority-item-evidence { margin-top:4px; font-size:12px; color:#6b7280; font-style:italic; }
.priority-item-meta { margin-top:4px; font-size:12px; color:#64748b; }

.report-header { margin-bottom:var(--sp-8); padding-bottom:var(--sp-6); border-bottom:2px solid #d1d5db; }
.report-header h1 { font-family:'Times New Roman', serif; font-size:28px; font-weight:700; color:#1f2937; margin:0 0 var(--sp-4) 0; letter-spacing:0.3px; }
.report-footer { margin-top:var(--sp-8); padding-top:var(--sp-6); border-top:2px solid #e5e7eb; }
.disclaimer-box { background:#fffbeb; border:1px solid #fde68a; border-radius:var(--r-md); padding:16px 20px; margin-bottom:16px; }
.disclaimer-box h4 { margin:0 0 6px 0; font-size:14px; font-weight:700; color:#92400e; }
.disclaimer-box p { margin:0; font-size:13px; color:#92400e; line-height:1.7; }
.footer-meta { font-size:12px; color:#9ca3af; margin-top:var(--sp-2); }

.rev-sev-dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:4px; }

.td-svc-panel { margin-top:var(--sp-4); }
.td-svc-card { background:#FFF; border:1px solid var(--paper-border); border-radius:var(--r-xl); overflow:hidden; margin-bottom:var(--sp-3); }
.td-svc-head { display:flex; align-items:center; gap:var(--sp-3); padding:var(--sp-4) var(--sp-5); border-bottom:1px solid var(--paper-border); }
.td-svc-icon { width:32px; height:32px; border-radius:var(--r-lg); display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; }
.td-svc-icon.complete { background:var(--teal-ghost); color:var(--teal); }
.td-svc-icon.processing { background:#DBEAFE; color:#1E40AF; }
.td-svc-icon.pending { background:#FEF3C7; color:#92400E; }
.td-svc-icon.waiting { background:#E0E7FF; color:#4338CA; }
.td-svc-title { font-family:var(--font-display); font-size:var(--text-sm); font-weight:700; flex:1; }
.td-svc-badge { font-size:10px; font-weight:600; padding:3px 10px; border-radius:var(--r-full); }
.td-svc-badge.complete { background:var(--teal-ghost); color:var(--teal); }
.td-svc-badge.processing { background:#DBEAFE; color:#1E40AF; }
.td-svc-badge.pending { background:#FEF3C7; color:#92400E; }
.td-svc-badge.waiting { background:#E0E7FF; color:#4338CA; }
.td-svc-body { padding:var(--sp-4) var(--sp-5); }
.td-svc-hint { font-size:var(--text-xs); color:var(--ink-muted); margin-bottom:var(--sp-3); }
.td-reviewer { display:flex; align-items:center; gap:var(--sp-3); padding:var(--sp-3) 0; border-bottom:1px solid var(--paper-border); }
.td-reviewer:last-child { border-bottom:none; }
.td-reviewer-avatar { width:36px; height:36px; border-radius:50%; background:var(--paper-alt); display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; color:var(--ink-muted); flex-shrink:0; }
.td-reviewer-info { flex:1; min-width:0; }
.td-reviewer-name { font-size:var(--text-sm); font-weight:600; color:var(--ink); }
.td-reviewer-meta { font-size:var(--text-xs); color:var(--ink-muted); margin-top:2px; }
.td-reviewer-stats { display:flex; gap:var(--sp-3); margin-top:4px; font-size:var(--text-xs); color:var(--ink-muted); }
.td-reviewer-stats span { display:flex; align-items:center; gap:3px; }
.td-reviewer-status { text-align:right; flex-shrink:0; }
.td-reviewer-badge { font-size:10px; font-weight:600; padding:2px 8px; border-radius:var(--r-full); display:inline-block; }
.td-reviewer-badge.accepted { background:#DBEAFE; color:#1E40AF; }
.td-reviewer-badge.completed { background:var(--teal-ghost); color:var(--teal); }
.td-reviewer-badge.pending { background:#FEF3C7; color:#92400E; }
.td-reviewer-badge.declined { background:var(--coral-ghost); color:var(--coral); }
.td-reviewer-time { font-size:10px; color:var(--ink-muted); margin-top:4px; }
.td-cost-breakdown { display:flex; gap:var(--sp-4); flex-wrap:wrap; padding:var(--sp-3) var(--sp-5); background:var(--paper-alt); border-radius:var(--r-md); margin-top:var(--sp-3); }
.td-cost-item { font-size:var(--text-xs); color:var(--ink-muted); }
.td-cost-item strong { font-family:var(--font-mono); color:var(--coral); font-weight:700; }

.hidden { display:none !important; }

/* ==================== 审稿详情 · 移动端适配 ==================== */
@media (max-width: 960px) {
  .score-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .td-pipeline { padding: var(--sp-5); }
  .td-toc { top: 56px; }
  .td-card-head, .td-svc-head { flex-wrap: wrap; gap: var(--sp-2); }
  .author-panel-head { flex-wrap: wrap; gap: var(--sp-3); }
}
@media (max-width: 768px) {
  .score-grid { grid-template-columns: 1fr !important; gap: var(--sp-4); }
  .td-hero h1 { font-size: var(--text-xl); }
  .td-card-head { padding: var(--sp-4); }
  .td-card-body { padding: var(--sp-4); }
  .td-pipeline { padding: var(--sp-4); }
  .td-pipeline .td-stage .s-bar { width: 56px; }
  .td-svc-head { padding: var(--sp-3) var(--sp-4); }
  .td-actions { padding: var(--sp-4); }
  .td-toc { top: 52px; padding: var(--sp-2); margin-bottom: var(--sp-4); }
  .td-toc-title { display: none; }
  .section-body { overflow-x: auto; }
  .pmc-section-title { font-size: var(--text-lg); }
}
@media (max-width: 480px) {
  .score-grid { grid-template-columns: 1fr !important; }
  .td-toc a { padding: 4px 10px; font-size: 11px; }
  .td-meta-row { gap: var(--sp-2); }
  .td-detail-grid { grid-template-columns: 1fr 1fr; }
  .td-ring-inner, .td-ring-inner svg { width: 110px; height: 110px; }
}

/* ── 报告增强面板（版本 / 批注 / 评价） ── */
.re-block { border: 1px solid #e5e7eb; border-radius: var(--r-md, 12px); padding: 18px 20px; margin-top: 24px; background: #fff; }
.re-title { font-size: 18px; font-weight: 700; color: #1f2937; margin: 0 0 12px; }
.re-sub { border-top: 1px solid #f1f5f9; padding: 14px 0; }
.re-sub:first-of-type { border-top: none; }
.re-sub-head { display: flex; align-items: center; justify-content: space-between; font-weight: 600; color: #374151; margin-bottom: 10px; }
.re-form { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.re-input { width: 100%; padding: 8px 10px; border: 1px solid #d1d5db; border-radius: 8px; font-size: 13px; font-family: inherit; box-sizing: border-box; }
textarea.re-input { resize: vertical; }
.re-colors { display: flex; gap: 12px; font-size: 13px; color: #374151; }
.re-stars { font-size: 22px; color: #d1d5db; cursor: pointer; user-select: none; }
.re-stars .re-star.on { color: #f59e0b; }
.re-list { display: flex; flex-direction: column; gap: 8px; }
.re-item { border: 1px solid #f1f5f9; border-radius: 8px; padding: 10px 12px; background: #fcfcfd; }
.re-item-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.re-tag { font-size: 12px; font-weight: 600; color: #475569; background: #f1f5f9; padding: 1px 8px; border-radius: 999px; }
.re-del { border: none; background: none; color: #9ca3af; cursor: pointer; font-size: 13px; }
.re-del:hover { color: #ef4444; }
.re-quote { font-size: 12px; color: #6b7280; font-style: italic; margin-bottom: 4px; }
.re-note { font-size: 13px; color: #374151; line-height: 1.5; white-space: pre-wrap; word-break: break-word; }
.re-time { font-size: 11px; color: #9ca3af; margin-top: 4px; }
.re-empty { font-size: 13px; color: #9ca3af; text-align: center; padding: 8px 0; }
.re-compare { display: flex; align-items: center; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.re-vs { font-size: 12px; color: #9ca3af; }
.re-diff-row { display: flex; justify-content: space-between; font-size: 13px; color: #374151; padding: 6px 0; border-bottom: 1px dashed #f1f5f9; }
.re-diff-table { width: 100%; border-collapse: collapse; margin-top: 8px; font-size: 13px; }
.re-diff-table th, .re-diff-table td { border: 1px solid #e5e7eb; padding: 6px 8px; text-align: left; }
.re-diff-table th { background: #f9fafb; color: #475569; }
.re-block .hidden { display: none; }
