/* ================= 景气度数据台 · assets/prosperity.css =================
   定位：纯数据呈现工具。全部用靛青单色阶 + 中性灰，不用颜色表达好/坏。
   仅表格数字的正负号沿用全站约定（红涨绿跌），表示数值符号，不含评价。 */

/* ---------- 顶栏 ---------- */
.ps-hero{ background:transparent;border:0;border-radius:0;box-shadow:none; padding:14px 0 10px; }
.ps-hero h1{ font-size:20px; margin-bottom:4px; }
.ps-hero p{ font-size:12px; max-width:100%; line-height:1.7; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ps-hero p b{ color:var(--gl-ink); }
.ps-hero .tags span{ display:inline-flex; align-items:center; gap:6px; }
.ps-hero .tags a{ display:inline-flex; align-items:center; gap:5px; text-decoration:none;
  color:var(--gl-blue-d); font-weight:700; }
.ps-hero .tags a:hover{ text-decoration:underline; }

/* ---------- 分节 ---------- */
.ps-sec{ margin-top:26px; }
.ps-sec-h{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.ps-sec-h h2{ font-size:17px; font-weight:700; margin:0; color:var(--gl-ink); letter-spacing:-.2px; }
.ps-sec-h .bdg{ font-size:10.5px; font-weight:700; padding:2px 7px; border-radius:5px; background:var(--gl-blue-l); color:var(--gl-blue-d); }
.ps-sec-h .bdg.a{ background:#fdf3e6; color:#b45309; }
.ps-sec-d{ font-size:12.5px; color:var(--gl-ink-3); line-height:1.9; margin:6px 0 13px; max-width:1240px; }
.ps-sec-d b{ color:var(--gl-ink); }
.ps-sec-d code{ background:#f4f6fa; border-radius:4px; padding:1px 5px; font-size:12px; color:var(--ps-alert); }

/* ---------- 工具条 ---------- */
.ps-toolbar{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:0 0 10px; }
.ps-toolbar input[type=text]{ border:1px solid var(--gl-line); border-radius:9px; padding:6px 11px;
  font-size:12.5px; width:196px; outline:none; background:#fff; }
.ps-toolbar input[type=text]:focus{ border-color:var(--gl-blue); background:#fbfcff; }
.ps-toolbar .cnt{ margin-left:auto; font-size:12px; color:var(--gl-sub); }
.ps-lb{ font-size:12px; color:var(--gl-sub); display:inline-flex; align-items:center; gap:6px; }
.ps-sel{ border:1px solid var(--gl-line); border-radius:9px; padding:6px 9px; font-size:12.5px;
  background:#fff; color:var(--gl-ink-2); outline:none; cursor:pointer; }
.ps-sel:focus{ border-color:var(--gl-blue); }
.ps-btn{ border:1px solid var(--gl-line); background:#fff; border-radius:9px; padding:6px 12px;
  font-size:12px; color:var(--gl-ink-2); cursor:pointer; transition:.12s; }
.ps-btn:hover{ border-color:var(--gl-blue); color:var(--gl-blue-d); }
.ps-btn.primary{ background:var(--gl-blue); border-color:var(--gl-blue); color:#fff; font-weight:700; }
.ps-btn.primary:hover{ background:var(--gl-blue-d); border-color:var(--gl-blue-d); color:#fff; }

/* ---------- 图表容器 ---------- */
.ps-chart{ width:100%; height:340px; }
.ps-chart.tall{ height:430px; }
.ps-chart.mid{ height:300px; }
.ps-cbox{ border:1px solid var(--gl-line-l); border-radius:14px; padding:10px 12px 4px; background:#fff; }
.ps-cbox .cap{ font-size:12px; font-weight:700; color:var(--gl-blue-d); padding:2px 4px 6px; }
.ps-cbox .cap small{ font-weight:400; color:var(--gl-ink-3); margin-left:6px; font-size:11.5px; }
.ps-2col{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }

/* ---------- 表格 ---------- */
.ps-tbwrap{ border:1px solid var(--gl-line-l); border-radius:14px; overflow:auto; max-height:452px; background:#fff; }
table.ps-tb{ width:100%; border-collapse:collapse; font-size:12.5px; }
.ps-tb th,.ps-tb td{ border-bottom:1px solid var(--gl-line-l); padding:6px 9px; text-align:right; white-space:nowrap; }
.ps-tb th{ position:sticky; top:0; z-index:2; background:#f8f9fb; color:var(--gl-blue-d); font-weight:700;
  font-size:12px; cursor:pointer; user-select:none; }
.ps-tb th.nosort{ cursor:default; }
.ps-tb th:hover{ background:#eef3fa; }
.ps-tb th.nosort:hover{ background:#f8f9fb; }
.ps-tb th.srt::after{ content:'\25BE'; margin-left:4px; color:var(--gl-sub); font-size:10px; }
.ps-tb th.srt.asc::after{ content:'\25B4'; }
.ps-tb th:first-child,.ps-tb td:first-child{ text-align:left; }
.ps-tb td:first-child{ color:var(--gl-ink); font-weight:600; }
.ps-tb tbody tr:hover{ background:#f6f9fd; }
.ps-tb tbody tr.on{ background:#eff4fb; }
.ps-tb td.up{ color:var(--gl-up); } .ps-tb td.dn{ color:var(--gl-dn); }
.ps-tb td.mut{ color:var(--gl-sub); }
.ps-tb td.wrap{ white-space:normal; line-height:1.75; text-align:left; }
.ps-tb td .tag{ display:inline-block; font-size:11px; color:var(--gl-blue-d); background:var(--gl-blue-l);
  border-radius:4px; padding:0 5px; margin-left:4px; }
.ps-tb .emp{ text-align:center; color:var(--gl-sub); padding:26px 0; }
.ps-dict td:nth-child(2),.ps-dict th:nth-child(2),
.ps-dict td:nth-child(4),.ps-dict th:nth-child(4),
.ps-dict td:nth-child(5),.ps-dict th:nth-child(5){ text-align:left; }

/* ---------- 权重计算器 ---------- */
.ps-wcalc{ display:grid; grid-template-columns:repeat(auto-fit,minmax(228px,1fr)); gap:10px; margin-bottom:12px; }
.ps-wf{ border:1px solid var(--gl-line-l); border-radius:12px; padding:10px 12px; background:#fff; }
.ps-wf label{ display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700;
  color:var(--gl-ink); cursor:pointer; }
.ps-wf label input[type=checkbox]{ width:14px; height:14px; accent-color:var(--gl-blue); cursor:pointer; }
.ps-wf .u{ font-size:11px; color:var(--gl-sub); font-weight:400; margin-left:auto; }
.ps-wf .wrow{ display:flex; align-items:center; gap:7px; margin-top:8px; }
.ps-wf .wrow span{ font-size:11.5px; color:var(--gl-sub); }
.ps-wf input[type=number]{ width:74px; border:1px solid var(--gl-line); border-radius:8px; padding:5px 8px;
  font-size:12.5px; text-align:right; outline:none; font-variant-numeric:tabular-nums; }
.ps-wf input[type=number]:focus{ border-color:var(--gl-blue); background:#fbfcff; }
.ps-wf .ex{ font-size:11.5px; color:var(--gl-ink-3); margin-top:7px; line-height:1.7; }

/* ---------- 说明 ---------- */
.ps-note{ background:#f8fafd; border-left:3px solid var(--gl-blue); border-radius:0 9px 9px 0;
  padding:10px 14px; font-size:12.5px; color:#5a6478; line-height:1.95; margin:10px 0 0; }
.ps-note b{ color:var(--gl-ink); }
.ps-note code{ background:#eef2f8; border-radius:4px; padding:1px 5px; font-size:12px; color:#27548c; }
.ps-refs{ display:grid; gap:10px; }
.ps-ref{ border:1px solid var(--gl-line-l); border-radius:12px; padding:11px 14px; background:#fff; }
.ps-ref .h{ font-size:12.5px; font-weight:700; color:var(--gl-blue-d); margin-bottom:5px; }
.ps-ref .b{ font-size:12.5px; color:#5a6478; line-height:2; }

@media (max-width:1080px){
  .ps-2col{ grid-template-columns:1fr; }
  .ps-toolbar .cnt{ margin-left:0; }
}


/* ============ 增强模块（快照总览 / 二维定位 / 筛选器 / 合规披露）============ */
.ps-ov{ display:grid; grid-template-columns:repeat(auto-fit,minmax(196px,1fr)); gap:10px; }
.ps-ovc{ border:1px solid var(--gl-line-l); border-radius:13px; padding:11px 13px; background:#fff; }
.ps-ovc.hd{ background:linear-gradient(180deg,#f5f8fc,#fff); border-color:#dae3f0; }
.ps-ovc .t{ font-size:11.5px; color:var(--gl-sub); font-weight:700; letter-spacing:.2px; }
.ps-ovc .v{ font-size:21px; font-weight:800; color:var(--gl-blue-d); margin:5px 0 3px; letter-spacing:-.6px; line-height:1.1; }
.ps-ovc .v small{ font-size:11.5px; font-weight:600; color:var(--gl-sub); margin-left:3px; letter-spacing:0; }
.ps-ovc .s{ font-size:11px; color:var(--gl-ink-3); line-height:1.62; }
.ps-ovc .s b{ color:var(--gl-ink); }
.ps-ovc .bar{ height:5px; border-radius:3px; background:#eef2f8; margin:7px 0 6px; overflow:hidden; }
.ps-ovc .bar i{ display:block; height:100%; background:var(--gl-blue); opacity:.75; }

.ps-frow{ display:grid; grid-template-columns:minmax(140px,1.5fr) 88px minmax(86px,.9fr) 30px;
  gap:8px; align-items:center; margin-bottom:7px; }
.ps-frow select,.ps-frow input{ border:1px solid var(--gl-line); border-radius:9px; padding:6px 9px;
  font-size:12.5px; background:#fff; color:var(--gl-ink); font-family:inherit; }
.ps-frow select:focus,.ps-frow input:focus{ outline:none; border-color:var(--gl-blue); }
.ps-frow .del{ border:1px solid var(--gl-line); background:#fff; border-radius:9px; width:30px; height:30px;
  cursor:pointer; color:var(--gl-sub); font-size:14px; line-height:1; }
.ps-frow .del:hover{ border-color:#e03131; color:#e03131; }
.ps-tb td.hit{ color:var(--gl-blue-d); font-weight:700; }
.ps-tb td.miss{ color:#c3cad6; }
.ps-tb td.ix{ text-align:center; }

.ps-disc{ border:1px solid #e8d9c2; background:#fdf9f3; border-radius:13px; padding:14px 16px;
  font-size:12.5px; line-height:1.95; color:#5c4a2e; }
.ps-disc b{ color:#8a5a12; }
.ps-disc .h{ font-weight:800; color:#8a5a12; font-size:13px; margin-bottom:6px; }
.ps-disc ul{ margin:6px 0 0 18px; padding:0; }
.ps-disc li{ margin-bottom:4px; }
