:root{color-scheme:light;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#1f2937;background:linear-gradient(135deg,#f0f4ff,#f8fafc);--primary: #2563eb;--primary-hover: #1d4ed8;--success: #10b981;--warning: #f59e0b;--error: #ef4444}*{box-sizing:border-box}body{margin:0;min-height:100vh}#app{max-width:1200px;margin:0 auto;padding:32px 24px 64px}.header{text-align:center;margin-bottom:32px}.header h1{font-size:28px;margin:0 0 8px;background:linear-gradient(135deg,#2563eb,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{color:#64748b;font-size:15px;margin:0}h3{font-size:16px;margin:0 0 16px;color:#1e293b;display:flex;align-items:center;gap:8px}p{margin:0 0 16px;color:#4b5563}.card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:24px;margin-bottom:20px;box-shadow:0 4px 6px -1px #0f172a0d,0 2px 4px -2px #0f172a0d;transition:box-shadow .2s}.card:hover{box-shadow:0 10px 15px -3px #0f172a14,0 4px 6px -4px #0f172a0d}.row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.col{flex:1;min-width:200px}label{font-weight:600;font-size:13px;display:block;margin-bottom:6px;color:#374151}input,select,textarea{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #d1d5db;background:#fff;font-size:14px;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}textarea{min-height:200px;font-family:SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.5}.file-upload{position:relative;border:2px dashed #d1d5db;border-radius:12px;padding:32px 20px;text-align:center;background:#fafbfc;transition:all .2s;cursor:pointer}.file-upload:hover,.file-upload.dragover{border-color:var(--primary);background:#f0f4ff}.file-upload input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-upload-text{display:flex;flex-direction:column;align-items:center;gap:8px}.file-status{margin-top:8px;font-size:13px;min-height:20px}.file-status .success-icon{color:var(--success)}.file-status .error-icon{color:var(--error)}.file-icon{font-size:32px}button{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:10px 18px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}button:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}button.secondary{background:#f1f5f9;color:#475569}button.secondary:hover:not(:disabled){background:#e2e8f0}button.primary{background:linear-gradient(135deg,#2563eb,#7c3aed)}button.primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#6d28d9)}button:disabled{opacity:.6;cursor:not-allowed;transform:none}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.stat{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:12px;padding:16px;text-align:center}.stat-icon{font-size:24px;display:block;margin-bottom:8px}.stat strong{display:block;font-size:20px;color:#1e293b;margin-bottom:4px}.stat-label{font-size:12px;color:#64748b}.issue-text{margin-top:16px;padding:12px 16px;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;color:#92400e;font-size:13px;display:none}.warning-icon,.success-icon,.error-icon{margin-right:6px}.success-icon{color:var(--success)}.error-icon{color:var(--error)}.ai-status{margin-bottom:16px;font-size:14px}.loading{display:flex;align-items:center;gap:10px;color:#6366f1}.spinner{width:18px;height:18px;border:2px solid #e0e7ff;border-top-color:#6366f1;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.markdown{border:1px solid #e2e8f0;border-radius:12px;padding:20px;background:#fff;max-height:600px;overflow:auto;line-height:1.6}.markdown h1,.markdown h2,.markdown h3{color:#1e293b;margin-top:24px;margin-bottom:12px}.markdown h1:first-child,.markdown h2:first-child,.markdown h3:first-child{margin-top:0}.markdown table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13px}.markdown th{background:#f8fafc;font-weight:600;text-align:left}.markdown th,.markdown td{border:1px solid #e2e8f0;padding:8px 12px}.markdown tr:hover td{background:#f8fafc}.markdown code{background:#f1f5f9;padding:2px 6px;border-radius:4px;font-size:13px}.markdown pre{background:#1e293b;color:#e2e8f0;padding:16px;border-radius:8px;overflow-x:auto}.markdown pre code{background:none;padding:0;color:inherit}.error-detail{background:#fef2f2;color:#dc2626;padding:12px;border-radius:8px;font-size:12px;overflow-x:auto}.muted{color:#94a3b8;font-size:12px}details.collapsible{padding:0}details.collapsible summary{padding:20px 24px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}details.collapsible summary::-webkit-details-marker{display:none}details.collapsible summary h3{margin:0;display:flex;align-items:center;justify-content:space-between}details.collapsible summary .toggle-icon{font-size:12px;color:#94a3b8;transition:transform .2s}details.collapsible[open] summary .toggle-icon{transform:rotate(180deg)}details.collapsible summary p{margin:4px 0 0}details.collapsible .card-content{padding:20px 24px 24px;border-top:1px solid #e2e8f0;margin-top:0}.param-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.param-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px}.param-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.param-header label{margin:0;font-weight:600;color:#1e293b}.param-recommend{font-size:11px;color:#059669;background:#d1fae5;padding:2px 8px;border-radius:999px;font-weight:500}.param-item input{margin-bottom:8px}.param-desc{font-size:12px;color:#64748b;line-height:1.5}.tab-container{margin-top:16px}.tab-header{display:flex;gap:8px;border-bottom:2px solid #e2e8f0;margin-bottom:16px}.tab-btn{padding:10px 20px;background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s}.tab-btn:hover{color:var(--primary)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-pane{display:none}.tab-pane.active{display:block}.parse-status{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#f8fafc;border-radius:8px;margin-bottom:16px;font-size:14px}.parse-status .status-icon{font-size:16px}.parse-status .status-icon.success{color:var(--success)}.parse-status .status-icon.error{color:var(--error)}.parse-preview{margin-top:16px}.preview-table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.preview-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.preview-table th,.preview-table td{padding:8px 12px;text-align:left;border-bottom:1px solid #e2e8f0}.preview-table th{background:#f1f5f9;font-weight:600;color:#475569}.preview-table tr:last-child td{border-bottom:none}.preview-table tr:hover td{background:#f8fafc}.merge-summary{padding:16px;background:#f8fafc;border-radius:8px}.merge-summary .success{color:var(--success);font-weight:600;margin:0 0 12px}.merge-summary .error{color:var(--error)}.merge-summary .warning{color:var(--warning);font-size:13px;margin:12px 0 0}.merge-stats{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:#475569}.merge-stats span{display:flex;align-items:center;gap:4px}.stat-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.stat-item .stat-icon{font-size:20px}.stat-item .stat-value{font-size:18px;font-weight:600;color:#1e293b}.stat-item .stat-label{font-size:12px;color:#64748b}@media (max-width: 768px){.col{min-width:100%}.stats-grid{grid-template-columns:repeat(2,1fr)}.param-grid{grid-template-columns:1fr}.tab-header{flex-wrap:wrap}.merge-stats{flex-direction:column;gap:8px}}
