:root{--text: #1e293b;--text-secondary: #64748b;--bg: #f8fafc;--card-bg: #ffffff;--border: #e2e8f0;--primary: #4f46e5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;color-scheme:light}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}:root{--bg: #f8fafc;--card-bg: #ffffff;--text: #1e293b;--text-secondary: #64748b;--border: #e2e8f0;--primary: #4f46e5;--sci: #4f46e5;--ei: #06b6d4;--core: #f59e0b;--other: #6b7280}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.app{max-width:1600px;margin:0 auto;padding:24px 16px}.header{text-align:center;margin-bottom:24px}.header h1{font-size:28px;font-weight:700;margin-bottom:4px}.subtitle{color:var(--text-secondary);font-size:14px}.report-card{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border-radius:12px;padding:24px 32px;margin-bottom:24px}.report-card h2{font-size:20px;margin-bottom:12px}.report-content p{margin-bottom:8px;font-size:14px;line-height:1.8}.report-stats{font-size:16px!important}.report-detail{color:#ffffffd9;font-size:13px!important}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:24px}.stat-card{background:var(--card-bg);border-radius:10px;padding:20px;text-align:center;border:1px solid var(--border);transition:transform .15s}.stat-card:hover{transform:translateY(-2px)}.stat-value{font-size:32px;font-weight:700}.stat-label{font-size:13px;color:var(--text-secondary);margin-top:4px}.stat-card.total .stat-value{color:var(--primary)}.stat-card.sci .stat-value{color:var(--sci)}.stat-card.ei .stat-value{color:var(--ei)}.stat-card.core .stat-value{color:var(--core)}.stat-card.other .stat-value{color:var(--other)}.stat-card.author .stat-value{color:var(--primary);font-size:24px}.charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.chart-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:16px}.chart-panel h3{font-size:15px;margin-bottom:12px}.chart-panel.full-width{grid-column:1 / -1}.table-section{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:24px}.table-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.table-header-row h3{font-size:16px;margin:0}.table-buttons{display:flex;align-items:center;gap:8px}.edited-count{font-size:13px;color:var(--text-secondary);font-weight:500}.btn-dedup{padding:8px 16px;background:#f59e0b;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer;font-weight:500}.btn-dedup:hover{opacity:.9}.btn-download{padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer;font-weight:500}.btn-download:hover{opacity:.9}.btn-edit{padding:4px 10px;background:#f1f5f9;color:var(--text);border:1px solid var(--border);border-radius:4px;font-size:12px;cursor:pointer;white-space:nowrap;margin-right:4px}.btn-edit:hover{background:#e2e8f0}.btn-delete{padding:4px 10px;background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:4px;font-size:12px;cursor:pointer;white-space:nowrap}.btn-delete:hover{background:#fee2e2}.btn-pending{padding:4px 10px;background:#fffbeb;color:#d97706;border:1px solid #fde68a;border-radius:4px;font-size:12px;cursor:pointer;white-space:nowrap;font-weight:600;margin-right:4px}.btn-pending:hover{background:#fef3c7}.btn-extract{padding:6px 12px;background:#ede9fe;color:#7c3aed;border:1px solid #c4b5fd;border-radius:6px;font-size:12px;cursor:pointer;font-weight:600;white-space:nowrap;align-self:flex-start;margin-top:2px}.btn-extract:hover{background:#ddd6fe}.btn-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary);line-height:1}.btn-cancel{padding:8px 20px;background:#f1f5f9;color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:14px;cursor:pointer}.btn-save{padding:8px 20px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;font-weight:500}.btn-save:hover{opacity:.9}.filters{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.search-input{flex:1;min-width:200px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;outline:none}.search-input:focus{border-color:var(--primary)}.filters select{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.table-container{overflow-x:auto;position:relative}table{width:100%;border-collapse:collapse;font-size:13px;min-width:1750px}th{background:#f1f5f9;padding:10px 12px;text-align:left;font-weight:600;white-space:nowrap;border-bottom:2px solid var(--border);position:sticky;top:0;z-index:2}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{background:#e2e8f0}td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top}tr:hover td{background:#f8fafc}tr.row-edited:hover td,tr.row-edited td,tr.row-edited .col-action-sticky{background:#f0fdf4}.col-index{width:45px;min-width:45px}.col-edited{width:65px;min-width:65px}.col-title{min-width:300px}.col-authors-cn,.col-authors-en,.col-journal{min-width:200px}.col-year{width:65px;min-width:65px}.col-db{width:85px;min-width:85px}.col-role{width:80px;min-width:80px}.col-volume{min-width:150px}.col-doi{min-width:130px}.col-action-sticky{width:120px;min-width:120px;position:sticky;right:0;z-index:3;background:#fff}thead .col-action-sticky{background:#f1f5f9;z-index:4}tbody .col-action-sticky{background:#fff}tr:hover .col-action-sticky{background:#f8fafc}.cell-wrap{white-space:normal!important;word-break:break-word;line-height:1.5}.text-muted{color:var(--text-secondary)}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;margin:1px 2px}.badge-SCI{background:#eef2ff;color:var(--sci)}.badge-EI{background:#ecfeff;color:var(--ei)}.badge-中文核心{background:#fffbeb;color:var(--core)}.badge-其他{background:#f3f4f6;color:var(--other)}.badge-first{background:#ecfdf5;color:#059669}.badge-corr{background:#fef3c7;color:#d97706}.badge-edited{background:#dbeafe;color:#1d4ed8}.badge-pending{background:#fef3c7;color:#d97706;font-weight:700}.similar-warning{margin-top:8px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;font-size:12px;color:#dc2626;display:flex;flex-direction:column;gap:4px}.badge-src-group_table{background:#ede9fe;color:#7c3aed}.badge-src-wos{background:#eef2ff;color:#4f46e5}.badge-src-engineering_village{background:#ecfeff;color:#0891b2}.badge-src-cnki_bib{background:#fef3c7;color:#d97706}.badge-src-orcid_list{background:#f0fdf4;color:#16a34a}.toast{position:fixed;top:24px;left:50%;transform:translate(-50%);background:#059669;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;z-index:2000;box-shadow:0 4px 12px #00000026;animation:toast-in .3s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.btn-nav{padding:6px 12px;background:#f1f5f9;color:var(--text);border:1px solid var(--border);border-radius:4px;font-size:12px;cursor:pointer}.btn-nav:hover{background:#e2e8f0}.btn-save-next{padding:8px 20px;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;font-weight:500}.btn-save-next:hover{opacity:.9}.row-edited{background:#f0fdf4}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 50px #00000026}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:18px}.modal-body{padding:24px;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--border)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group.full{grid-column:1 / -1}.form-group label{font-size:13px;font-weight:500;color:var(--text-secondary)}.form-group input[type=text],.form-group input[type=number],.form-group select,.form-group textarea{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit;outline:none;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary)}.form-group label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px;font-size:14px;font-weight:400;color:var(--text);cursor:pointer}.form-group input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.footer{text-align:center;padding:16px;color:var(--text-secondary);font-size:12px}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:18px;color:var(--text-secondary)}@media (max-width: 768px){.charts{grid-template-columns:1fr}.stat-cards{grid-template-columns:repeat(3,1fr)}.report-card{padding:16px}.filters{flex-direction:column}.search-input{min-width:unset}.form-grid{grid-template-columns:1fr}}
