* { box-sizing: border-box; }
body { margin: 0; font-family: "Segoe UI", "Microsoft YaHei", system-ui, sans-serif;
  background: #f4f6f9; color: #24292f; font-size: 14px; }
header { background: #0d2440; color: #fff; padding: 0 20px; display: flex; align-items: center;
  gap: 28px; box-shadow: 0 1px 4px rgba(0,0,0,.2); position: sticky; top: 0; z-index: 10; }
.brand { font-size: 18px; font-weight: 700; padding: 14px 0; }
.brand span { font-size: 12px; font-weight: 400; color: #9db4d0; margin-left: 4px; }
nav { display: flex; gap: 4px; }
nav a { color: #c9d6e5; text-decoration: none; padding: 16px 14px; font-size: 14px; border-bottom: 3px solid transparent; }
nav a:hover { color: #fff; }
nav a.active { color: #fff; border-bottom-color: #4a9eff; }
main { max-width: 1280px; margin: 22px auto; padding: 0 20px; }
footer { text-align: center; color: #8a94a6; font-size: 12px; padding: 24px; }
h1 { font-size: 20px; margin: 0 0 18px; }
h2 { font-size: 16px; margin: 24px 0 12px; }
.cards { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.card { background: #fff; border-radius: 8px; padding: 18px 22px; box-shadow: 0 1px 3px rgba(0,0,0,.08); flex: 1; min-width: 160px; }
.card .num { font-size: 28px; font-weight: 700; color: #0d2440; }
.card .lbl { color: #6b7785; font-size: 13px; margin-top: 4px; }
table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 8px; overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.08); }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #eef1f5; font-size: 13px; vertical-align: top; }
th { background: #f0f3f7; color: #4a5568; font-weight: 600; }
tr:hover td { background: #fafbfc; }
.tag { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 12px; background: #e7eef7; color: #2d5a8c; }
.tag.ok { background: #e3f6e8; color: #1a7f37; }
.tag.fail { background: #fde8e8; color: #cf222e; }
.tag.run { background: #fff4d6; color: #9a6700; }
.tag.muted { background: #eceff3; color: #8a94a6; }
form.inline { display: inline; }
input, select, button, textarea { font-family: inherit; font-size: 13px; padding: 7px 10px;
  border: 1px solid #d0d7de; border-radius: 6px; }
input:focus, select:focus, textarea:focus { outline: none; border-color: #4a9eff; }
button, .btn { background: #1f6feb; color: #fff; border: none; cursor: pointer; padding: 7px 14px; border-radius: 6px; text-decoration: none; display: inline-block; }
button:hover, .btn:hover { background: #1a5fd0; }
button.sm { padding: 4px 10px; font-size: 12px; }
button.danger { background: #cf222e; }
button.gray { background: #6b7785; }
.toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; background: #fff; padding: 14px;
  border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,.08); margin-bottom: 16px; }
.panel { background: #fff; padding: 18px; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,.08); margin-bottom: 18px; }
.row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.row label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: #6b7785; }
.row label input, .row label select { min-width: 200px; }
.muted { color: #8a94a6; }
.pager { margin-top: 14px; display: flex; gap: 6px; align-items: center; }
.pager a { padding: 5px 10px; background: #fff; border: 1px solid #d0d7de; border-radius: 6px; text-decoration: none; color: #1f6feb; }
.chips span { display: inline-block; background: #eef2f6; border-radius: 4px; padding: 1px 7px; margin: 1px; font-size: 12px; }
pre { background: #0d1117; color: #c9d1d9; padding: 14px; border-radius: 8px; overflow: auto; font-size: 12px; }
details summary { cursor: pointer; color: #1f6feb; }
.flash { padding: 10px 14px; border-radius: 6px; margin-bottom: 14px; }
.userbox { margin-left: auto; display: flex; align-items: center; gap: 12px; color: #c9d6e5; font-size: 13px; }
.userbox .who { color: #fff; }
.userbox .role { background: #2a4a6b; color: #cfe0f2; border-radius: 10px; padding: 1px 8px; font-size: 11px; margin-left: 4px; }
.userbox .role.admin { background: #1a7f37; color: #fff; }
.userbox a { color: #9db4d0; text-decoration: none; }
.userbox a:hover { color: #fff; }
.login-wrap { max-width: 360px; margin: 80px auto; }
.login-card { background: #fff; border-radius: 10px; box-shadow: 0 4px 20px rgba(0,0,0,.1); padding: 32px; }
.login-card h1 { text-align: center; font-size: 20px; }
.login-logo { width: 22px; height: 22px; color: #1f6feb; vertical-align: -3px; }
.login-card .sub { text-align: center; color: #8a94a6; font-size: 13px; margin-bottom: 22px; }
.login-card label { display: block; margin-bottom: 14px; font-size: 13px; color: #4a5568; }
.login-card input { width: 100%; margin-top: 5px; padding: 10px; }
.login-card button { width: 100%; padding: 11px; margin-top: 6px; font-size: 15px; }
.login-err { background: #fde8e8; color: #cf222e; padding: 9px 12px; border-radius: 6px; font-size: 13px; margin-bottom: 14px; }
/* 语言切换 */
.langsw { font-size: 13px; }
.langsw a { color: #9db4d0; text-decoration: none; padding: 0 3px; }
.langsw a.on { color: #fff; font-weight: 700; }
.langsw .sep { color: #4a5b75; }
.login-lang { position: absolute; top: 14px; right: 18px; }
.login-lang a { color: #6b7785; text-decoration: none; padding: 0 3px; }
.login-lang a.on { color: #1f6feb; font-weight: 700; }
/* 搜索页概览组件 */
.overview { display: grid; grid-template-columns: 360px 1fr; gap: 16px; margin-bottom: 18px; }
@media (max-width: 980px){ .overview { grid-template-columns: 1fr; } }
.ov-card { background:#fff; border-radius:8px; box-shadow:0 1px 3px rgba(0,0,0,.08); padding:14px 16px; }
.ov-card h3 { margin:0 0 10px; font-size:14px; color:#0d2440; }
.top10 { list-style:none; margin:0; padding:0; }
.top10 li { display:flex; align-items:center; gap:8px; padding:6px 0; border-bottom:1px solid #eef1f5; font-size:13px; }
.top10 li:last-child { border-bottom:none; }
.top10 .rk { width:20px; height:20px; border-radius:50%; background:#e7eef7; color:#2d5a8c; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; flex:0 0 auto; }
.top10 .rk.t3 { background:#1f6feb; color:#fff; }
.top10 .nm { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.top10 .ct { font-weight:700; color:#0d2440; }
.top10 .tm { color:#8a94a6; font-size:11px; }
#worldmap { width:100%; height:380px; }
.intl-list { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.intl-list span { background:#eef2f6; border-radius:4px; padding:2px 8px; font-size:12px; }
.intl-list b { color:#0d2440; }

/* ============ 独立搜索首页（专业合规蓝） ============ */
.sp-body { background:#f7f9fc; min-height:100vh; display:flex; flex-direction:column; }

/* 顶部栏 */
.sp-topbar { display:flex; align-items:center; gap:20px; padding:0 28px; height:60px;
  background:#0d2440; color:#fff; box-shadow:0 1px 10px rgba(13,36,64,.28); position:sticky; top:0; z-index:20; }
.sp-brand { display:flex; align-items:center; gap:10px; }
.sp-logo { display:inline-flex; align-items:center; color:#4a9eff; }
.sp-logo svg { width:23px; height:23px; }
.sp-name { font-size:18px; font-weight:700; letter-spacing:.3px; display:flex; align-items:baseline; gap:8px; }
.sp-name b { font-size:12px; font-weight:500; color:#9db4d0; letter-spacing:1px; padding-left:9px; border-left:1px solid #2f4a6d; }
.sp-actions { margin-left:auto; display:flex; align-items:center; gap:16px; font-size:13px; }
.sp-who { color:#dce6f2; }
.sp-who .role { background:#2a4a6b; color:#cfe0f2; border-radius:10px; padding:1px 8px; font-size:11px; margin-left:5px; }
.sp-who .role.admin { background:#1a7f37; color:#fff; }
.sp-console { display:inline-flex; align-items:center; gap:7px; background:#1f6feb; color:#fff;
  padding:8px 15px; border-radius:7px; text-decoration:none; font-weight:600; font-size:13px;
  box-shadow:0 2px 8px rgba(31,111,235,.4); transition:background .15s,transform .15s; }
.sp-console:hover { background:#3a82ff; transform:translateY(-1px); }
.sp-console svg { opacity:.95; }
.sp-apidoc { display:inline-flex; align-items:center; gap:6px; color:#c9d6e5; text-decoration:none;
  font-size:13px; font-weight:500; padding:7px 12px; border:1px solid rgba(255,255,255,.18);
  border-radius:7px; transition:background .15s,color .15s,border-color .15s; }
.sp-apidoc:hover { color:#fff; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.35); }
.sp-apidoc svg { opacity:.9; }
/* API 文档页 */
.api-doc .api-sub { color:#6b7280; font-size:14px; margin:0 0 8px; }
.api-endpoint { background:#fff; border:1px solid #e7ecf3; border-radius:10px; padding:14px 18px;
  font-family:ui-monospace,Menlo,monospace; font-size:14px; color:#0d2440; box-shadow:0 1px 3px rgba(13,36,64,.05); overflow-x:auto; }
.api-method { display:inline-block; background:#1a7f37; color:#fff; font-weight:700; font-size:12px;
  padding:2px 9px; border-radius:6px; margin-right:10px; font-family:inherit; letter-spacing:.5px; }
.api-p { color:#4a5568; font-size:13.5px; line-height:1.75; margin:10px 0 0; }
.api-table { width:100%; border-collapse:collapse; font-size:13px; }
.api-table th { text-align:left; background:#f5f7fa; color:#5a6675; font-size:12px; padding:10px 14px; border-bottom:1px solid #e6eaf0; }
.api-table td { padding:10px 14px; border-bottom:1px solid #f0f2f6; vertical-align:top; color:#3a4658; }
.api-table tr:last-child td { border-bottom:none; }
.api-table code, .api-endpoint code, .det-lbl code, .api-notes code { font-family:ui-monospace,Menlo,monospace;
  background:#eef2f6; color:#1f4b7a; padding:1px 6px; border-radius:5px; font-size:12.5px; }
.api-pre { background:#0d1b2a; color:#c9e0f5; border-radius:10px; padding:16px 18px; overflow-x:auto;
  font-family:ui-monospace,Menlo,monospace; font-size:12.5px; line-height:1.6; margin:0; }
.api-notes { margin:0; padding-left:20px; color:#4a5568; font-size:13.5px; line-height:1.9; }
.api-notes li { margin:2px 0; }
.sp-logout { color:#9db4d0; text-decoration:none; }
.sp-logout:hover { color:#fff; }
.sp-topbar .langsw a { color:#9db4d0; }
.sp-topbar .langsw a.on { color:#fff; }
.sp-topbar .langsw .sep { color:#3a5573; }

/* 英雄搜索区 */
.sp-hero { background:linear-gradient(180deg,#102c4d 0%,#0d2440 100%); color:#fff;
  padding:64px 20px 128px; text-align:center; position:relative; overflow:hidden; }
.sp-hero-inner { max-width:840px; margin:0 auto; position:relative; z-index:1; }
.sp-badge { display:inline-block; font-size:12px; letter-spacing:2px; text-transform:uppercase;
  color:#8fb2dc; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16);
  padding:5px 14px; border-radius:20px; margin-bottom:20px; }
.sp-title { font-size:42px; font-weight:800; margin:0 0 14px; letter-spacing:.5px; line-height:1.15;
  text-shadow:0 2px 22px rgba(0,0,0,.3); }
.sp-sub { color:#adc3dc; font-size:16px; margin:0 0 34px; }

.sp-search { max-width:760px; margin:0 auto; }
.sp-searchbar { display:flex; align-items:center; background:#fff; border-radius:16px;
  padding:9px 9px 9px 22px; box-shadow:0 22px 60px rgba(4,15,32,.5); }
.sp-search-icon { color:#9aa4b2; flex:0 0 auto; }
.sp-searchbar input { flex:1; border:none; outline:none; font-size:18px; padding:15px 16px; color:#24292f;
  background:transparent; box-shadow:none; min-width:0; }
.sp-searchbar input::placeholder { color:#a7b0bd; }
.sp-searchbar button { flex:0 0 auto; padding:15px 40px; font-size:16px; font-weight:700; border-radius:11px;
  background:#1f6feb; box-shadow:0 6px 16px rgba(31,111,235,.4); }
.sp-searchbar button:hover { background:#1a5fd0; }

.sp-filters { display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:center; margin-top:20px; }
.sp-filters select { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); color:#fff;
  padding:9px 14px; border-radius:9px; font-size:13px; }
.sp-filters select option { color:#24292f; }
.sp-filters select:focus { border-color:#4a9eff; background:rgba(255,255,255,.18); }
.sp-check { display:flex; align-items:center; gap:6px; color:#cdddef; font-size:13px; cursor:pointer; }
.sp-check input { width:15px; height:15px; accent-color:#4a9eff; }
.sp-reset { color:#9db4d0; text-decoration:none; font-size:13px; border-bottom:1px dashed #4a5b75; padding-bottom:1px; }
.sp-reset:hover { color:#fff; }

/* 概览统计（叠在英雄区底部） */
.sp-stats { max-width:1040px; margin:-72px auto 0; padding:0 20px; display:flex; gap:18px;
  justify-content:center; position:relative; z-index:5; }
.sp-stat { flex:1; max-width:330px; background:#fff; border-radius:16px; padding:20px 24px;
  box-shadow:0 12px 34px rgba(11,31,56,.14); display:flex; align-items:center; gap:16px; }
.sp-stats.one { justify-content:center; }
.sp-stats.one .sp-stat { flex:0 0 auto; min-width:280px; max-width:none; }
.sp-stat .ic { width:48px; height:48px; border-radius:13px; background:#eef2f7; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center; color:#1f4b7a; }
.sp-stat .ic svg { width:24px; height:24px; }
.sp-stat .n { display:block; font-size:27px; font-weight:800; color:#0d2440; letter-spacing:.4px; line-height:1.1; white-space:nowrap; }
.sp-stat .n.sm { font-size:21px; letter-spacing:0; }
.sp-stat > div { min-width:0; }
.sp-stat .l { display:block; font-size:13px; color:#6b7785; margin-top:3px; white-space:nowrap; }

/* 结果区 */
.sp-main { max-width:1180px; width:100%; margin:40px auto 0; padding:0 20px 48px; flex:1;
  position:relative; z-index:2; }
.sp-results-head { display:flex; align-items:baseline; gap:12px; margin:0 0 18px; padding:0 2px; }
.sp-results-head h2 { font-size:19px; font-weight:700; color:#0d2440; margin:0; }
.sp-count { color:#7a8598; font-size:13px; font-weight:500; }

.ent-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(430px, 1fr)); gap:16px; }
.ent-card { display:block; background:#fff; border:1px solid #e7ecf3; border-radius:16px; padding:18px 20px 18px 22px;
  text-decoration:none; color:inherit; transition:transform .16s, box-shadow .16s, border-color .16s;
  box-shadow:inset 4px 0 0 #d12626, 0 1px 3px rgba(13,36,64,.05); }
.ent-card:hover { transform:translateY(-3px); border-color:#f0c2c2;
  box-shadow:inset 4px 0 0 #d12626, 0 14px 30px rgba(13,36,64,.13); }
.ent-top { display:flex; gap:14px; align-items:flex-start; }
.ent-avatar { width:46px; height:46px; border-radius:13px; flex:0 0 auto; display:flex;
  align-items:center; justify-content:center; }
.ent-avatar svg { width:23px; height:23px; }
.ent-avatar.t-person { background:#e8f0fe; color:#1f6feb; }
.ent-avatar.t-organization { background:#e7f7ee; color:#1a7f37; }
.ent-avatar.t-vessel { background:#e4f4fb; color:#0e7490; }
.ent-avatar.t-aircraft { background:#f2ecfe; color:#7c3aed; }
.ent-avatar.t-other { background:#eef1f5; color:#6b7785; }
.ent-headline { flex:1; min-width:0; }
.ent-name { display:block; font-size:16px; font-weight:700; color:#c1121f; line-height:1.35;
  overflow-wrap:anywhere; }
.ent-card:hover .ent-name { color:#e5484d; }
.ent-meta { display:flex; flex-wrap:wrap; gap:6px 10px; margin-top:7px; align-items:center; }
/* 红色制裁标识徽章 */
.ent-sanc { display:inline-flex; align-items:center; gap:4px; background:#fdecec; color:#cf222e;
  border:1px solid #f5c6c6; border-radius:6px; padding:2px 8px; font-size:11.5px; font-weight:700;
  letter-spacing:.3px; }
.ent-sanc svg { width:13px; height:13px; }
.ent-meta .mi { display:inline-flex; align-items:center; gap:4px; color:#6b7785; font-size:12px; }
.ent-meta .mi svg { width:13px; height:13px; color:#9aa4b2; flex:0 0 auto; }
.ent-status { flex:0 0 auto; font-size:11.5px; font-weight:700; padding:4px 11px; border-radius:20px; }
.ent-status.ok { background:#e3f6e8; color:#1a7f37; }
.ent-status.off { background:#eceff3; color:#8a94a6; }
.ent-aliases { margin-top:13px; font-size:12.5px; color:#4a5568; line-height:1.55;
  padding-top:12px; border-top:1px dashed #eef1f5; }
.ent-aliases .lbl { color:#9aa4b2; font-size:10.5px; letter-spacing:.5px; text-transform:uppercase;
  margin-right:7px; font-weight:600; }
.ent-aliases .more { color:#9aa4b2; }
.ent-foot { margin-top:13px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ent-progs { display:flex; flex-wrap:wrap; gap:5px; min-width:0; }
.ent-progs .prog { background:#eef2f8; color:#3a5573; border-radius:7px; padding:3px 9px; font-size:11px; font-weight:600; }
.ent-progs .prog.more { background:transparent; color:#9aa4b2; padding:3px 2px; }
.ent-src { display:inline-flex; align-items:center; gap:5px; color:#cf222e; font-size:11.5px;
  font-weight:600; white-space:nowrap; flex:0 0 auto; }
.ent-src::before { content:""; width:7px; height:7px; border-radius:50%; background:#cf222e;
  box-shadow:0 0 0 3px rgba(207,34,46,.14); flex:0 0 auto; }

/* ===== 制裁相邻类（涉恐/出口管制/开发银行除名/战争制裁）：琥珀色「观察名单」区分 ===== */
.ent-card.adj { box-shadow:inset 4px 0 0 #d97706, 0 1px 3px rgba(13,36,64,.05); }
.ent-card.adj:hover { border-color:#f0dcb0; box-shadow:inset 4px 0 0 #d97706, 0 14px 30px rgba(13,36,64,.13); }
.ent-card.adj .ent-name { color:#b45309; }
.ent-card.adj:hover .ent-name { color:#d97706; }
.ent-card.adj .ent-src { color:#b45309; }
.ent-card.adj .ent-src::before { background:#d97706; box-shadow:0 0 0 3px rgba(217,119,6,.15); }
.ent-sanc.adj { background:#fef3e2; color:#b45309; border-color:#f3d6a3; }
.src-item.adj .src-dot { background:#d97706; box-shadow:0 0 0 3px rgba(217,119,6,.15); }
.src-item.adj .src-name { color:#b45309; }
.det-main.adj .det-title { color:#b45309; }
.det-main.adj .det-card { border-left-color:#d97706; }
.det-main.adj .det-val.src { color:#b45309; }

.sp-pager { justify-content:center; margin-top:26px; }
.sp-empty { background:#fff; border-radius:16px; box-shadow:0 6px 24px rgba(13,36,64,.08);
  padding:64px 20px; text-align:center; color:#9aa4b2; }
.sp-empty svg { color:#c3ccd8; margin-bottom:12px; }
.sp-empty p { margin:0; font-size:14px; }
.sp-footer { text-align:center; color:#8a94a6; font-size:12px; padding:24px; }

/* 实体详情页 */
.det-body { background:#f7f9fc; }
.det-main { max-width:900px; width:100%; margin:28px auto 0; padding:0 20px 48px; flex:1; }
.det-back { display:inline-flex; align-items:center; gap:6px; color:#1f6feb; text-decoration:none;
  font-size:13.5px; font-weight:600; margin-bottom:20px; }
.det-back:hover { text-decoration:underline; }
.det-header { display:flex; align-items:center; gap:18px; margin-bottom:22px; }
.det-header .ent-avatar { width:60px; height:60px; border-radius:16px; }
.det-header .ent-avatar svg { width:30px; height:30px; }
.det-title { font-size:26px; font-weight:800; color:#c1121f; margin:0 0 8px; line-height:1.25; overflow-wrap:anywhere; }
.det-badges { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.det-card { background:#fff; border:1px solid #e7ecf3; border-left:3px solid #d12626; border-radius:16px;
  overflow:hidden; box-shadow:0 6px 24px rgba(13,36,64,.08); }
.det-row { display:grid; grid-template-columns:168px 1fr; gap:16px; padding:14px 22px; border-bottom:1px solid #f2f4f8; }
.det-row:last-child { border-bottom:none; }
.det-row:nth-child(even) { background:#fafbfd; }
.det-lbl { color:#7a8598; font-size:13px; font-weight:600; }
.det-val { color:#24324a; font-size:13.5px; line-height:1.6; overflow-wrap:anywhere; }
.det-val.mono { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12.5px; color:#3a5573; }
.det-val.src { color:#cf222e; font-weight:700; }
.det-val.chips span { display:inline-block; background:#eef2f6; border-radius:6px; padding:2px 9px; margin:2px 3px 2px 0; font-size:12px; }
.det-val.chips.prog span { background:#eef2f8; color:#3a5573; font-weight:600; }
.det-raw { margin-top:20px; background:#fff; border:1px solid #e7ecf3; border-radius:14px; padding:14px 20px;
  box-shadow:0 1px 3px rgba(13,36,64,.05); }
.det-raw summary { cursor:pointer; color:#1f6feb; font-weight:600; font-size:14px; }
.det-raw pre { margin:14px 0 0; }
/* 无制裁日期提示 */
.muted-note { color:#9aa4b2; font-style:italic; }
/* 关联制裁区块 */
.rel-hint { color:#6b7280; font-size:12.5px; margin:0 0 12px; }
.rel-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(320px,1fr)); gap:12px; }
.rel-card { display:block; background:#fff; border:1px solid #e7ecf3; border-radius:12px; padding:14px 16px;
  text-decoration:none; color:inherit; box-shadow:0 1px 3px rgba(13,36,64,.05); transition:transform .15s,box-shadow .15s,border-color .15s; }
.rel-card:hover { transform:translateY(-2px); border-color:#c4d8f5; box-shadow:0 10px 24px rgba(13,36,64,.12); }
.rel-main { display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.rel-name { font-weight:700; color:#0d2440; font-size:14px; overflow-wrap:anywhere; }
.rel-card:hover .rel-name { color:#1f6feb; }
.rel-src { color:#cf222e; font-size:11.5px; font-weight:600; white-space:nowrap; flex:0 0 auto; }
.rel-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:9px; flex-wrap:wrap; }
.rel-date { font-size:12px; color:#3a5573; }
.rel-match { font-size:10.5px; color:#7a8598; background:#eef2f6; border-radius:6px; padding:2px 8px; }
/* 详情富展示区块 */
.det-source-line { color:#6b7280; font-size:12.5px; margin-top:9px; }
.det-block { margin-top:24px; }
.det-block h2 { font-size:15px; font-weight:700; color:#0d2440; margin:0 0 11px; padding-left:10px; border-left:3px solid #1f6feb; }
.det-main.sanc .det-block h2 { border-left-color:#d12626; }
.det-main.adj .det-block h2 { border-left-color:#d97706; }
.sanc-card { background:#fff; border:1px solid #e7ecf3; border-left:3px solid #d12626; border-radius:12px;
  padding:4px 18px; margin-bottom:12px; box-shadow:0 1px 3px rgba(13,36,64,.05); }
.det-main.adj .sanc-card { border-left-color:#d97706; }
.src-link { display:inline-block; color:#1f6feb; text-decoration:none; word-break:break-all; margin:2px 14px 2px 0; font-size:12.5px; }
.src-link:hover { text-decoration:underline; }
.src-list-links { list-style:none; margin:0; padding:0; background:#fff; border:1px solid #e7ecf3;
  border-radius:12px; box-shadow:0 1px 3px rgba(13,36,64,.05); overflow:hidden; }
.src-list-links li { padding:11px 18px; border-bottom:1px solid #f0f2f6; }
.src-list-links li:last-child { border-bottom:none; }
.topic-badge { display:inline-block; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700; }
.tp-sanction { background:#fdecec; color:#cf222e; }
.tp-warn { background:#fff2e5; color:#b45309; }
.tp-crime { background:#f3e8ff; color:#7c3aed; }
.tp-other { background:#eef2f6; color:#5a6675; }
@media (max-width:640px){
  .det-row { grid-template-columns:1fr; gap:4px; }
  .det-title { font-size:22px; }
}

/* 默认制裁信息介绍区 */
.intro { }
.intro-head { max-width:820px; margin:0 auto 30px; text-align:center; }
.intro-head h2 { font-size:23px; font-weight:800; color:#0d2440; margin:0 0 12px; }
.intro-head p { color:#5a6675; font-size:14.5px; line-height:1.85; margin:0; }
.intro-cats { display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:16px; margin-bottom:28px; }
.cat { background:#fff; border:1px solid #e7ecf3; border-radius:16px; padding:24px 22px;
  box-shadow:0 1px 3px rgba(13,36,64,.05); transition:transform .16s, box-shadow .16s; }
.cat:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(13,36,64,.12); }
.cat-ic { width:52px; height:52px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  margin-bottom:15px; background:#eef2f7; color:#1f4b7a; }
.cat-ic svg { width:26px; height:26px; }
.cat h3 { font-size:16px; font-weight:700; color:#0d2440; margin:0 0 8px; }
.cat p { color:#6b7785; font-size:13px; line-height:1.7; margin:0; }

.intro-sources { background:#fff; border:1px solid #e7ecf3; border-radius:16px; padding:24px 26px;
  box-shadow:0 1px 3px rgba(13,36,64,.05); }
.intro-sources h3 { font-size:16px; font-weight:700; color:#0d2440; margin:0 0 16px; }
.src-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:10px 20px; }
.src-item { display:flex; align-items:baseline; gap:8px; padding:9px 0; border-bottom:1px solid #f2f4f8; min-width:0; flex-wrap:wrap; }
.src-item .src-dot { align-self:center; }
.src-dot { width:8px; height:8px; border-radius:50%; background:#cf222e; flex:0 0 auto; box-shadow:0 0 0 3px rgba(207,34,46,.15); }
.src-name { color:#cf222e; font-size:13.5px; font-weight:600; min-width:0; overflow-wrap:anywhere; }
.src-pub { color:#9aa4b2; font-size:12px; margin-left:auto; padding-left:8px;
  overflow-wrap:anywhere; text-align:right; white-space:normal; }
.intro-hint { display:flex; align-items:center; justify-content:center; gap:7px; color:#7a8598;
  font-size:13.5px; margin:30px 0 0; }
.intro-hint svg { color:#1f6feb; }

@media (max-width:900px){
  .sp-stats { flex-wrap:wrap; }
  .sp-stat { min-width:200px; }
}
@media (max-width:640px){
  .sp-title { font-size:30px; }
  .sp-sub { font-size:14px; }
  .sp-searchbar { padding:7px 7px 7px 16px; }
  .sp-searchbar input { font-size:16px; padding:13px 12px; }
  .sp-searchbar button { padding:13px 22px; }
  .sp-hero { padding:48px 16px 118px; }
  .ent-grid { grid-template-columns:1fr; }
  .sp-topbar { gap:12px; padding:0 16px; }
  .sp-console span, .sp-who { display:none; }
}
