/* newspulse 共享设计系统（B 信号舱风格）2026-08-03
   主页（functions/index.js）与历史报告页（functions/reports/[id].js）共用。
   改样式只改这里，两处同步生效。 */

:root { color-scheme: dark; }
* { margin:0; padding:0; box-sizing:border-box; }
body {
  font-family: "Inter", -apple-system, "Segoe UI", "PingFang SC", sans-serif;
  background:#0a0e14;
  color:#e8edf4;
  min-height:100vh;
  line-height:1.5;
}
.topbar {
  display:flex; align-items:center; gap:16px;
  padding:14px 24px; border-bottom:1px solid #1d2633;
  background:rgba(10,14,20,.9); position:sticky; top:0; z-index:10;
}
.logo { font-weight:800; font-size:18px; letter-spacing:.5px; color:#e8edf4; text-decoration:none; }
.logo .dot { color:#4cd6a0; }
.home-btn { margin-left:auto; color:#4cd6a0; font-size:14px; font-weight:600; text-decoration:none; border:1px solid #263244; border-radius:8px; padding:8px 16px; }
.home-btn:hover { background:rgba(76,214,160,.12); }
.topbar .status { margin-left:auto; display:flex; gap:8px; align-items:center; font-size:12px; color:#7d8a9b; }
.status .pulse { width:8px; height:8px; border-radius:50%; background:#4cd6a0; box-shadow:0 0 8px #4cd6a0; animation:blink 1.6s infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.35} }
.status .off { background:#5c6b7c; box-shadow:none; animation:none; }

main { max-width:880px; margin:0 auto; padding:28px 20px 60px; }

.hero { margin:8px 0 28px; }
.hero h1 { font-size:34px; font-weight:800; letter-spacing:-.5px; }
.hero h1 span { color:#4cd6a0; }
.hero p { color:#8fa0b3; font-size:15px; margin-top:8px; }

.query {
  background:#0f1520; border:1px solid #1d2633; border-radius:14px;
  padding:20px; margin-bottom:36px;
  display:flex; gap:12px; flex-wrap:wrap;
}
.query input, .query select {
  background:#0a0e14; border:1px solid #263244; border-radius:8px;
  color:#e8edf4; padding:12px 16px; font-size:15px; outline:none;
}
.query input:focus, .query select:focus { border-color:#4cd6a0; }
.query input { flex:2; min-width:200px; }
.query select { flex:1; min-width:130px; }
.query button {
  background:#4cd6a0; color:#0a0e14; border:none; border-radius:8px;
  padding:12px 24px; font-size:15px; font-weight:700; cursor:pointer;
  transition:background .15s; min-width:130px;
}
.query button:hover { background:#5ee5b0; }
.query button:disabled { background:#263244; color:#7d8a9b; cursor:wait; }

/* 最近报告区块（仅首页） */
.recent {
  background:#0f1520; border:1px solid #1d2633; border-radius:14px;
  padding:24px; margin-top:28px;
}
.recent h2 { font-size:13px; color:#7d8a9b; text-transform:uppercase; letter-spacing:1px; font-weight:700; margin-bottom:16px; }
.recent-list { list-style:none; }
.recent-list li { padding:10px 0; border-bottom:1px dashed #1d2633; display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.recent-list li:last-child { border-bottom:none; }
.recent-list a { color:#e8edf4; text-decoration:none; font-size:15px; font-weight:600; }
.recent-list a:hover { color:#4cd6a0; }
.recent-date { color:#5c6b7c; font-size:12px; flex-shrink:0; }
.recent-empty { color:#5c6b7c; font-size:14px; }

.loading { display:none; text-align:center; padding:60px 0; color:#8fa0b3; }
.loading .spinner {
  width:32px; height:32px; margin:0 auto 16px;
  border:3px solid #1d2633; border-top-color:#4cd6a0; border-radius:50%;
  animation:spin 1s linear infinite;
}
@keyframes spin { to { transform:rotate(360deg); } }

/* ===== 报告卡片（用户查询结果 + 历史报告页共用）===== */
.report-card {
  background:#0f1520; border:1px solid #1d2633; border-radius:14px;
  padding:28px; margin-bottom:16px;
}
.report-head { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
.report-head .name { font-size:22px; font-weight:800; }
.report-head .code { color:#7d8a9b; font-size:14px; font-weight:500; }
.report-head .meta { font-size:12px; color:#7d8a9b; text-align:right; }

.section-title { font-size:13px; color:#7d8a9b; text-transform:uppercase; letter-spacing:1px; font-weight:700; margin:22px 0 12px; }
.verdict-box {
  border-left:3px solid #4cd6a0; background:#0a0e14; border-radius:0 10px 10px 0;
  padding:18px 20px; font-size:16px; line-height:1.7;
}

table { width:100%; border-collapse:collapse; font-size:14px; }
.table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
th, td { padding:12px 14px; text-align:left; border-bottom:1px solid #1d2633; vertical-align:top; word-break:break-word; overflow-wrap:break-word; }
.timeline-table td:first-child { white-space:nowrap; }
.timeline-table td:nth-child(2) { white-space:nowrap; }
th { color:#7d8a9b; font-size:12px; text-transform:uppercase; letter-spacing:.5px; font-weight:600; }
td .src { color:#5c6b7c; font-size:12px; }
.tl-link { color:#6db3f2; text-decoration:none; border-bottom:1px dashed #6db3f2; }
.tl-link:hover { color:#8fc7ff; border-bottom-color:#8fc7ff; }
.weight { font-weight:700; }
.weight.w30 { color:#ff6b6b; }
.weight.w25 { color:#ffb86b; }
.weight.w20 { color:#e8edf4; }
.weight.w15 { color:#8fa0b3; }
.weight.w10 { color:#5c6b7c; }

.chip { display:inline-block; padding:4px 12px; border-radius:999px; font-size:12px; font-weight:600; white-space:nowrap; }
.chip-h { background:rgba(76,214,160,.12); color:#4cd6a0; }
.chip-m { background:rgba(255,184,107,.12); color:#ffb86b; }
.chip-l { background:rgba(255,107,107,.12); color:#ff6b6b; }

.nature-badges { display:flex; gap:8px; flex-wrap:wrap; }
.nature-badges .nb { border:1px solid #263244; border-radius:999px; padding:6px 16px; font-size:13px; color:#8fa0b3; }
.nature-badges .nb.active { background:#4cd6a0; border-color:#4cd6a0; color:#0a0e14; font-weight:700; }

.watch-table { table-layout: fixed; }
.watch-table th:first-child, .watch-table td:first-child { width: 170px; }
.watch-table .watch-when { color:#4cd6a0; font-weight:700; }

.attr-table th:nth-child(1), .attr-table td:nth-child(1) { width: 14%; }
.attr-table th:nth-child(2), .attr-table td:nth-child(2) { width: 27%; }
.attr-table th:nth-child(3), .attr-table td:nth-child(3) { width: 27%; }
.attr-table th:nth-child(4), .attr-table td:nth-child(4) { width: 14%; white-space:nowrap; }
.attr-table th:nth-child(5), .attr-table td:nth-child(5) { width: 18%; }

.error-box {
  border:1px solid rgba(255,107,107,.4); background:rgba(255,107,107,.08);
  border-radius:10px; padding:20px; color:#ff6b6b; margin-bottom:16px;
}
.error-box h3 { margin-bottom:8px; }

footer { text-align:center; color:#5c6b7c; font-size:12px; padding:20px 0 40px; line-height:1.8; }
footer b { color:#ff6b6b; }
/* 历史报告页底部声明：与主页 footer 同字号（12px 小字），保持一整块不分割 */
.disclaimer {
  text-align:center; color:#5c6b7c; font-size:12px; line-height:1.8;
  margin-top:24px;
}
.disclaimer b { color:#ff6b6b; }
.kofi {
  display:inline-block; border:1px solid #263244; border-radius:8px;
  padding:8px 20px; color:#8fa0b3; text-decoration:none; font-size:13px;
  margin-bottom:16px; transition:border-color .15s, color .15s;
}
.kofi:hover { border-color:#4cd6a0; color:#e8edf4; }

@media(max-width:640px){
  .hero h1{font-size:26px;}
  .query input,.query select{flex:1 1 100%;}
  .query button{width:100%;}
}
