
:root{--blue:#1f4e79;--blue-l:#eaf2fa;--border:#dde4ec;--text:#22303f;--muted:#6b7a8c;
--warn:#b45309;--ok:#047857;--bg:#f4f6f9;}
*{box-sizing:border-box;}
body{margin:0;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;
background:var(--bg);color:var(--text);font-size:14px;}
a{color:var(--blue);text-decoration:none;}a:hover{text-decoration:underline;}
.topbar{display:flex;align-items:center;gap:24px;background:var(--blue);padding:0 24px;
height:52px;color:#fff;flex-wrap:wrap;}
.brand{font-size:17px;font-weight:700;white-space:nowrap;}
.topbar nav{display:flex;gap:4px;flex-wrap:wrap;}
.topbar nav a{color:#d8e4f0;padding:6px 13px;border-radius:6px;}
.topbar nav a:hover{background:rgba(255,255,255,.12);text-decoration:none;}
.topbar nav a.active{background:rgba(255,255,255,.2);color:#fff;font-weight:600;}
.topbar .ro{margin-left:auto;font-size:12px;color:#bcd2e6;}
main{max-width:1500px;margin:20px auto;padding:0 20px 40px;}
h1{font-size:20px;margin:6px 0 16px;} h2{font-size:15px;margin:0 0 10px;color:var(--blue);}
.count{font-size:13px;color:var(--muted);font-weight:normal;}
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:18px;}
.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px;text-align:center;}
.card .num{font-size:26px;font-weight:700;color:var(--blue);} .card.warn .num{color:var(--warn);}
.card .lbl{color:var(--muted);margin-top:4px;}
.panel{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:14px;}
table{border-collapse:collapse;width:100%;background:#fff;}
th,td{border-bottom:1px solid var(--border);padding:7px 9px;text-align:left;vertical-align:top;}
th{background:var(--blue-l);font-weight:600;white-space:nowrap;}
tr:hover td{background:#fafcff;} tr.pending td{background:#fffbeb;}
td.t{max-width:360px;} td.t .sub,.sub{display:block;color:var(--muted);font-size:12px;}
td.doi{font-size:12px;color:var(--muted);max-width:170px;word-break:break-all;}
td.empty{text-align:center;color:var(--muted);padding:26px;}
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:#fff;}
.filter-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#fff;
border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:12px;}
.filter-bar input[type=text]{padding:6px 8px;border:1px solid var(--border);border-radius:6px;width:230px;}
.filter-bar input[type=number]{padding:6px 8px;border:1px solid var(--border);border-radius:6px;width:96px;}
select,input{font-size:13px;font-family:inherit;}
select{padding:6px;border:1px solid var(--border);border-radius:6px;background:#fff;}
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:1000px){.chart-grid{grid-template-columns:1fr;}}
.chart-panel canvas{max-height:320px;margin-bottom:10px;}
.chip{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;border:1px solid var(--border);}
.chip.sci{background:#eef7ff;border-color:#bcd9f5;color:#1f4e79;}
.chip.ei{background:#eefaf1;border-color:#bff0cf;color:#047857;}
.chip.pending{background:#fff7e6;border-color:#f5dca6;color:#b45309;}
.chip.ok{background:#ecfdf5;border-color:#a7f3d0;color:#047857;}
.nowrap{white-space:nowrap;}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 10px;}
.toolbar .hint{color:var(--warn);font-size:12px;}
.linkbtn{border:none;background:none;cursor:pointer;font-size:14px;padding:0 3px;}
.modal-mask{position:fixed;inset:0;background:rgba(20,30,40,.45);display:flex;
align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto;z-index:99;}
.modal{background:#fff;border-radius:12px;padding:18px 20px;max-width:900px;width:100%;}
.modal h2{margin:0 0 12px;}
.mform{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 14px;}
.mform label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);}
.mform input,.mform select{padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-size:13px;}
.modal-actions{display:flex;gap:10px;margin-top:14px;}
@media(max-width:900px){.mform{grid-template-columns:1fr;}}
.lk{cursor:pointer;color:#1f4e79;border-bottom:1px dashed rgba(31,78,121,.45);}
.lk:hover{color:#12395c;border-bottom-style:solid;}
#tip{position:fixed;display:none;max-width:560px;background:#fff;border:1px solid var(--border);
border-radius:10px;box-shadow:0 8px 24px rgba(15,30,50,.18);padding:10px 13px;font-size:12.5px;
line-height:1.65;z-index:300;pointer-events:none;}
#tip .tt{font-weight:700;color:var(--blue);margin-bottom:4px;}
#tip .row{margin:2px 0;color:var(--text);word-break:break-word;}
#tip .k{color:var(--muted);}
footer{text-align:center;color:var(--muted);font-size:12px;padding:16px;}
