
        * { margin: 0; padding: 0; box-sizing: border-box; }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
            background: #f0f2f5;
            min-height: 100vh;
        }

        .container {
            max-width: 900px;
            margin: 30px auto;
            padding: 0 20px;
        }

        .card {
            background: white;
            border-radius: 12px;
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
            padding: 30px;
            margin-bottom: 20px;
        }

        .card-title {
            font-size: 20px;
            font-weight: 600;
            color: #1f2937;
            text-align: center;
            margin-bottom: 20px;
        }

        .card-hint {
            font-size: 14px;
            color: #6b7280;
            text-align: center;
            margin-bottom: 20px;
        }

        .input-area {
            margin-bottom: 20px;
        }

        .input-area textarea {
            width: 100%;
            min-height: 320px;
            padding: 16px;
            border: 1px solid #e5e7eb;
            border-radius: 8px;
            font-size: 14px;
            line-height: 1.8;
            resize: vertical;
            font-family: inherit;
        }

        .input-area textarea:focus {
            outline: none;
            border-color: var(--c-accent);
            box-shadow: 0 0 0 3px var(--c-accent-soft);
        }

        .char-count {
            text-align: right;
            font-size: 12px;
            color: #9ca3af;
            margin-top: 8px;
        }

        .footer-hint {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-top: 20px;
        }

        .footer-hint .tip {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 14px;
            color: #10b981;
        }

        .footer-hint .tip-icon {
            width: 20px;
            height: 20px;
            background: #10b981;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 12px;
        }

        .btn {
            padding: 12px 32px;
            border: none;
            border-radius: 8px;
            font-size: 15px;
            font-weight: 500;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            transition: all 0.2s;
        }

        .btn-primary {
            background: linear-gradient(135deg, var(--c-accent) 0%, var(--c-cyan) 100%);
            color: white;
        }

        .btn-primary:hover {
            transform: translateY(-1px);
            box-shadow: 0 4px 12px color-mix(in srgb, var(--c-accent) 30%, transparent);
        }

        .btn:disabled {
            opacity: 0.6;
            cursor: not-allowed;
        }

        .progress-section {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 16px 20px;
            background: #f9fafb;
            border-radius: 8px;
            margin-bottom: 24px;
        }

        .progress-label {
            font-size: 14px;
            color: #6b7280;
        }

        .progress-numbers {
            font-size: 14px;
            color: var(--c-accent);
            font-weight: 600;
        }

        .progress-bar {
            flex: 1;
            height: 6px;
            background: #e5e7eb;
            border-radius: 3px;
            margin: 0 20px;
            overflow: hidden;
        }

        .progress-fill {
            height: 100%;
            background: var(--c-accent);
            border-radius: 3px;
            transition: width 0.3s;
        }

        .dialog-container {
            min-height: 300px;
            max-height: 450px;
            overflow-y: auto;
            padding: 20px;
            background: #f9fafb;
            border-radius: 12px;
            margin-bottom: 20px;
        }

        .dialog-message {
            margin-bottom: 16px;
            display: flex;
            flex-direction: column;
        }

        .dialog-message.ai {
            align-items: flex-start;
        }

        .dialog-message.user {
            align-items: flex-end;
        }

        .message-bubble {
            max-width: 75%;
            padding: 14px 18px;
            border-radius: 12px;
            font-size: 14px;
            line-height: 1.6;
        }

        .dialog-message.ai .message-bubble {
            background: white;
            border: 1px solid #e5e7eb;
            color: #374151;
            border-bottom-left-radius: 4px;
        }

        .dialog-message.user .message-bubble {
            background: var(--c-accent);
            color: white;
            border-bottom-right-radius: 4px;
        }

        .dialog-message.ai .message-bubble.fixed {
            border-left: 3px solid #10b981;
        }

        .dialog-message.ai .message-bubble.dynamic {
            border-left: 3px solid var(--c-violet);
        }

        .quick-options {
            margin-bottom: 16px;
        }

        .quick-options label {
            font-size: 14px;
            color: #6b7280;
            margin-bottom: 10px;
            display: block;
        }

        .options-row {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-bottom: 12px;
        }

        .option-btn {
            padding: 8px 16px;
            background: #f3f4f6;
            border: 1px solid #e5e7eb;
            border-radius: 6px;
            font-size: 13px;
            color: #4b5563;
            cursor: pointer;
            transition: all 0.2s;
        }

        .option-btn:hover, .option-btn.selected {
            background: var(--c-accent);
            color: white;
            border-color: var(--c-accent);
        }

        .answer-input {
            display: flex;
            gap: 12px;
        }

        .answer-input textarea {
            flex: 1;
            padding: 14px;
            border: 1px solid #e5e7eb;
            border-radius: 8px;
            font-size: 14px;
            resize: none;
            min-height: 50px;
            font-family: inherit;
        }

        .answer-input textarea:focus {
            outline: none;
            border-color: var(--c-accent);
        }

        .complete-section {
            text-align: center;
            padding: 40px 20px;
        }

        .complete-icon {
            width: 64px;
            height: 64px;
            background: #10b981;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 20px;
            color: white;
            font-size: 28px;
        }

        .complete-title {
            font-size: 22px;
            font-weight: 600;
            color: #1f2937;
            margin-bottom: 10px;
        }

        .complete-desc {
            font-size: 14px;
            color: #6b7280;
            margin-bottom: 30px;
        }

        .review-section {
            margin-bottom: 24px;
        }

        .review-section h4 {
            font-size: 14px;
            color: #6b7280;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .review-section h4::before {
            content: '';
            display: inline-block;
            width: 4px;
            height: 14px;
            background: var(--c-accent);
            border-radius: 2px;
        }

        /* Bug-2 (2026-05-15): "对话汇总" 区块去掉前置蓝色分隔条 */
        .review-section.conversation-summary-section h4::before {
            display: none;
        }

        .review-content {
            background: #f9fafb;
            padding: 14px 16px;
            border-radius: 8px;
            font-size: 13px;
            color: #4b5563;
            line-height: 1.55;
            max-height: 110px;
            overflow-y: auto;
        }

        .summary-content {
            background: var(--c-accent-soft);
            border: 1px solid color-mix(in srgb, var(--c-accent) 22%, var(--c-border));
            padding: 14px 16px;
            border-radius: 8px;
            font-size: 13px;
            color: var(--c-accent-hover);
            line-height: 1.6;
            max-height: 180px;
            overflow-y: auto;
        }

        .summary-content .summary-title {
            font-weight: 600;
            margin-bottom: 10px;
            color: var(--c-accent-hover);
        }

        /* 回答内容滚动条样式 - 每个回答独立滚动 */

        .analysis-settings {
            margin-bottom: 24px;
        }

        .analysis-settings h4 {
            font-size: 16px;
            color: #374151;
            margin-bottom: 16px;
        }

        .settings-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 20px;
        }

        .upload-section h4 {
            font-size: 16px;
            color: #374151;
            margin-bottom: 16px;
        }

        .upload-box {
            border: 2px dashed #d1d5db;
            border-radius: 12px;
            padding: 40px;
            text-align: center;
            cursor: pointer;
            transition: all 0.2s;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }

        .upload-box:hover {
            border-color: var(--c-accent);
            background: #f0f9ff;
        }

        .upload-box .icon {
            font-size: 40px;
            color: #9ca3af;
            margin-bottom: 12px;
        }

        .upload-box p {
            font-size: 14px;
            color: #6b7280;
        }

        .upload-box .formats {
            font-size: 12px;
            color: #9ca3af;
            margin-top: 8px;
        }

        .file-info {
            margin-top: 12px;
            padding: 12px;
            background: #f0fdf4;
            border: 1px solid #bbf7d0;
            border-radius: 8px;
            font-size: 14px;
            color: #166534;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .file-info .file-icon {
            font-size: 20px;
        }

        .file-info .file-name {
            flex: 1;
            font-weight: 500;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        .file-info .file-remove {
            cursor: pointer;
            color: #dc2626;
            font-size: 16px;
        }

        .file-info .file-remove:hover {
            color: #b91c1c;
        }

        .analysis-progress {
            margin-top: 20px;
            padding: 20px;
            background: var(--c-accent-soft);
            border: 1px solid color-mix(in srgb, var(--c-accent) 22%, var(--c-border));
            border-radius: 8px;
            text-align: center;
        }

        .progress-spinner {
            width: 32px;
            height: 32px;
            border: 3px solid #e5e7eb;
            border-top-color: var(--c-accent);
            border-radius: 50%;
            animation: spin 0.8s linear infinite;
            margin: 0 auto 12px;
        }

        .analysis-progress p {
            font-size: 14px;
            color: var(--c-accent-hover);
            margin: 0;
        }

        .analysis-progress .progress-detail {
            font-size: 12px;
            color: #6b7280;
            margin-top: 8px;
        }

        /* 结果页面样式 */

        .result-icon {
            font-size: 48px;
            margin-bottom: 16px;
        }

        .stat-number {
            font-size: 36px;
            font-weight: 700;
            color: #1f2937;
            margin-bottom: 8px;
        }

        .stat-label {
            font-size: 14px;
            color: #6b7280;
        }

        .result-actions {
            text-align: center;
            margin-bottom: 30px;
        }

        .btn-large {
            padding: 16px 40px;
            font-size: 16px;
        }

        .btn-secondary {
            background: #f3f4f6;
            color: #374151;
            border: 1px solid #e5e7eb;
        }

        .btn-secondary:hover {
            background: #e5e7eb;
        }

        .btn-warning {
            background: #f59e0b;
            color: white;
        }

        .btn-warning:hover {
            background: #d97706;
        }

        .btn-success {
            background: #10b981;
            color: white;
        }

        .btn-success:hover {
            background: #059669;
        }

        .btn-danger {
            background: #ef4444;
            color: white;
        }

        .btn-danger:hover {
            background: #dc2626;
        }

        .result-tables {
            margin-bottom: 30px;
        }

        .table-section {
            margin-bottom: 24px;
        }

        .table-section h4 {
            font-size: 16px;
            color: #374151;
            margin-bottom: 12px;
            padding-left: 12px;
            border-left: 3px solid var(--c-accent);
        }

        .table-container {
            overflow-x: auto;
            border: 1px solid #e5e7eb;
            border-radius: 8px;
            max-height: 400px;
            overflow-y: auto;
        }

        .table-container table {
            width: 100%;
            border-collapse: collapse;
            font-size: 14px;
            min-width: 600px;
        }

        .table-container thead {
            position: sticky;
            top: 0;
            z-index: 10;
        }

        .table-container th {
            background: #f9fafb;
            padding: 12px 16px;
            text-align: left;
            font-weight: 600;
            color: #374151;
            border-bottom: 2px solid #e5e7eb;
            white-space: nowrap;
        }

        .table-container tbody {
            display: block;
            max-height: 320px;
            overflow-y: auto;
        }

        .table-container tbody tr {
            display: table;
            width: 100%;
            table-layout: fixed;
        }

        .table-container td {
            padding: 12px 16px;
            color: #6b7280;
            border-bottom: 1px solid #f3f4f6;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

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

        .table-container tbody tr:hover td {
            background: #f9fafb;
        }

        .risk-high {
            color: #dc2626;
            font-weight: 500;
        }

        .risk-suspect {
            color: var(--c-risk-suspect);
            font-weight: 500;
        }

        .risk-medium {
            color: #f59e0b;
            font-weight: 500;
        }

        .risk-low {
            color: #10b981;
            font-weight: 500;
        }

        .loading-cell {
            text-align: center;
            color: #9ca3af;
        }

        .result-footer {
            text-align: center;
            padding-top: 20px;
            border-top: 1px solid #e5e7eb;
        }

        .hidden {
            display: none !important;
        }

        .loading {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 40px;
            color: #6b7280;
        }

        .loading::after {
            content: '';
            width: 20px;
            height: 20px;
            border: 2px solid #e5e7eb;
            border-top-color: var(--c-accent);
            border-radius: 50%;
            animation: spin 0.8s linear infinite;
            margin-left: 10px;
        }

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

        .error-message {
            background: #fef2f2;
            border: 1px solid #fecaca;
            color: #dc2626;
            padding: 12px;
            border-radius: 8px;
            margin-bottom: 16px;
        }

        .success-message {
            background: #f0fdf4;
            border: 1px solid #bbf7d0;
            color: #166534;
            padding: 12px;
            border-radius: 8px;
            margin-bottom: 16px;
        }
    

/* ===== separator ===== */



* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* 模板预留的 footer / tooltip / 备案 / 公司信息样式已删除（无对应 DOM） */

        /* 进度页面样式 */
        .progress-page-header {
            text-align: center;
            padding: 30px 20px;
            margin-bottom: 30px;
        }

        .progress-page-header .progress-icon {
            font-size: 48px;
            margin-bottom: 16px;
        }

        .progress-page-header h2 {
            font-size: 24px;
            color: #1f2937;
            margin-bottom: 8px;
        }

        .progress-page-header p {
            font-size: 14px;
            color: #6b7280;
        }

        .progress-main-content {
            margin-bottom: 30px;
        }

        @keyframes shimmer {
            0% { transform: translateX(-100%); }
            100% { transform: translateX(100%); }
        }

        @keyframes pulse {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.05); }
        }

        .summary-icon {
            font-size: 24px;
            margin-bottom: 8px;
        }

        .summary-info {
            display: flex;
            flex-direction: column;
        }

        .summary-number {
            font-size: 28px;
            font-weight: 700;
            color: #1f2937;
            line-height: 1.2;
        }

        .summary-label {
            font-size: 13px;
            color: #6b7280;
            margin-top: 4px;
        }

        .progress-controls {
            display: flex;
            justify-content: center;
            gap: 16px;
            padding: 20px 0;
            border-top: 1px solid #e5e7eb;
        }

        .btn-control {
            padding: 10px 24px;
            border-radius: 8px;
            font-size: 14px;
            font-weight: 500;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            transition: all 0.2s;
            border: none;
        }

        .btn-cancel {
            background: #fee2e2;
            color: #991b1b;
            border: 1px solid #fca5a5;
        }

        .btn-cancel:hover {
            background: #fecaca;
        }

        .progress-message {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 16px;
            background: var(--c-accent-soft);
            border: 1px solid color-mix(in srgb, var(--c-accent) 22%, var(--c-border));
            border-radius: 8px;
            margin-top: 16px;
        }

        .progress-message.warning {
            background: #fef3c7;
            border-color: #fcd34d;
        }

        .progress-message.error {
            background: #fee2e2;
            border-color: #fca5a5;
        }

        .progress-message.success {
            background: #d1fae5;
            border-color: #6ee7b7;
        }

        .message-icon {
            font-size: 20px;
        }

        .message-text {
            flex: 1;
            font-size: 14px;
            color: var(--c-accent-hover);
        }

        .progress-message.warning .message-text {
            color: #92400e;
        }

        .progress-message.error .message-text {
            color: #991b1b;
        }

        .progress-message.success .message-text {
            color: #065f46;
        }

        /* 响应式 */
        @media (max-width: 768px) {
            .progress-summary {
                grid-template-columns: 1fr;
            }

            .stage-header {
                flex-wrap: wrap;
            }

            .stage-status {
                width: 100%;
                margin-top: 8px;
            }
        }

        /* 摘要页面样式 */
        .summary-title {
  font-size: 16px;
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--c-accent);
}

.qa-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.qa-item {
  margin-bottom: 16px;
  padding: 14px 16px;
  background: #f9fafb;
  border-radius: 8px;
  border-left: 3px solid var(--c-accent);
}

.qa-question {
  font-size: 13px;
  color: #6b7280;
  margin-bottom: 8px;
  line-height: 1.5;
}

.qa-answer {
  font-size: 14px;
  color: #374151;
  line-height: 1.6;
  word-break: break-word;
}
