/* ===== 牛散持仓跟踪 niudan.css（Tarsign · A股决策台）
   皮肤令牌沿用 house 基准层：主色靛青蓝 #27548c / 强调赭石 #b45309
   语义色：新进·增持 = 红 #e03131；减持·退出 = 绿 #0ca678（与股东跟踪两页一致） */
:root{
  --nd-blue:#27548c; --nd-blue-d:#1d3f6b; --nd-accent:#b45309;
  --nd-up:#e03131; --nd-dn:#0ca678; --nd-hold:#f59f00;
  --nd-bd:#e3e4e6; --nd-line:#f0f0f2; --nd-mut:#8a93a5;
  --nd-ink:#0a0a0a; --nd-sub:#48484a;
}
body{background:#fafafa;}

/* ---------------- 视图切换条 ---------------- */
.nd-tabs{display:flex;gap:6px;border-bottom:1px solid var(--nd-bd);margin:-4px 0 16px;flex-wrap:wrap;}
.nd-tab{border:0;background:none;font:600 13.5px/1 inherit;color:#86868b;padding:11px 15px;
  cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:.15s;}
.nd-tab:hover{color:var(--nd-blue);}
.nd-tab.on{color:var(--nd-blue);border-bottom-color:var(--nd-blue);}
.nd-tab i{font-style:normal;font-size:11px;font-weight:600;color:#b3bccb;margin-left:5px;}

/* ---------------- KPI ---------------- */
.nd-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;}
.nd-kpi{border:1px solid var(--nd-bd);border-radius:14px;background:#fff;padding:13px 15px;min-width:0;
  position:relative;overflow:hidden;}
.nd-kpi::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#e3e4e6;}
.nd-kpi.t1::before{background:var(--nd-blue);}
.nd-kpi.t2::before{background:var(--nd-accent);}
.nd-kpi.t3::before{background:var(--nd-up);}
.nd-kpi.t4::before{background:var(--nd-dn);}
.nd-kpi .k{font-size:11.5px;color:var(--nd-mut);font-weight:600;}
.nd-kpi .v{font-size:22px;font-weight:700;margin-top:5px;font-variant-numeric:tabular-nums;
  color:var(--nd-ink);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nd-kpi .v.up{color:var(--nd-up);} .nd-kpi .v.dn{color:var(--nd-dn);} .nd-kpi .v.ac{color:var(--nd-accent);}
.nd-kpi .s{font-size:11.5px;color:#9aa3b2;margin-top:4px;line-height:1.7;}

/* ---------------- 筛选条 ---------------- */
.nd-bar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:12px;position:relative;}
.nd-bar input{flex:1;min-width:220px;border:1px solid var(--nd-bd);border-radius:9px;padding:10px 13px;
  font-size:13.5px;font-family:inherit;color:var(--nd-ink);background:#fff;outline:none;box-sizing:border-box;}
.nd-bar input:focus{border-color:var(--nd-blue);box-shadow:0 0 0 3px rgba(39,84,140,.10);}
.nd-bar .seg{display:flex;border:1px solid var(--nd-bd);border-radius:9px;overflow:hidden;background:#fff;}
.nd-bar .seg button{border:0;background:none;font:600 12.5px/1 inherit;color:#86868b;padding:9px 13px;cursor:pointer;
  white-space:nowrap;transition:.15s;}
.nd-bar .seg button+button{border-left:1px solid var(--nd-line);}
.nd-bar .seg button:hover{color:var(--nd-blue);background:#f7faff;}
.nd-bar .seg button.on{background:var(--nd-blue);color:#fff;}
.nd-bar .tip{font-size:11.5px;color:var(--nd-mut);margin-left:auto;}
.nd-bar .tip b{color:var(--nd-blue);}
.nd-sbar{position:relative;}

/* 搜索下拉 */
.nd-sug{position:absolute;top:calc(100% + 4px);left:0;min-width:320px;max-width:560px;z-index:130;
  background:#fff;border:1px solid #e3e6ec;border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.14);
  overflow:hidden;max-height:330px;overflow-y:auto;}
.nd-sug[hidden]{display:none;}
.nd-sug .it{display:flex;align-items:center;gap:9px;padding:8px 12px;cursor:pointer;font-size:12.5px;}
.nd-sug .it:hover{background:#f2f7ff;}
.nd-sug .it b{color:var(--nd-ink);}
.nd-sug .it .cd{font-family:ui-monospace,Consolas,monospace;color:#86868b;font-size:11.5px;}
.nd-sug .it .mt{margin-left:auto;color:#9aa3b2;font-size:11px;}
.nd-sug .grp{padding:7px 12px 4px;font-size:11px;font-weight:700;color:#9aa3b2;background:#fafbfd;}

/* ---------------- 表 ---------------- */
.nd-tbl{overflow-x:auto;}
.nd-tbl table{width:100%;border-collapse:collapse;font-size:12.5px;white-space:nowrap;}
.nd-tbl th,.nd-tbl td{padding:8px 14px;border-bottom:1px solid var(--nd-line);text-align:left;}
.nd-tbl th{font-size:11.5px;font-weight:700;color:#5a6478;background:#f6f8fb;position:sticky;top:0;
  cursor:pointer;user-select:none;z-index:3;vertical-align:top;}
.nd-tbl th.static{cursor:default;}
.nd-tbl th.num,.nd-tbl td.num{text-align:right;font-variant-numeric:tabular-nums;padding-right:18px;}
/* 变动列（徽标起始列）：与数字列之间稍宽 */
.nd-tbl th.colchg,.nd-tbl td.colchg{padding-left:22px;}
/* 明细表：铺满整行；字号加大让内容自然填满，摊余空白最小化 */
#ndDetail .nd-tbl table{font-size:13.5px;}
#ndDetail .nd-tbl th{font-size:12.5px;}
#ndDetail .nd-tbl th,#ndDetail .nd-tbl td{padding:9px 16px;}
.nd-tbl td.nm{font-weight:700;color:var(--nd-ink);}
.nd-tbl td.nm .self{font-size:10.5px;font-weight:700;color:var(--nd-blue);background:#eef3fa;
  border-radius:4px;padding:1px 5px;margin-left:6px;}
.nd-tbl td.c{color:var(--nd-mut);font-variant-numeric:tabular-nums;}
.nd-tbl td.up{color:var(--nd-up);} .nd-tbl td.dn{color:var(--nd-dn);}
.nd-tbl td.na{color:#c8cdd8;}
.nd-tbl tbody tr{transition:.12s;}
.nd-tbl tbody tr.click{cursor:pointer;}
.nd-tbl tbody tr.click:hover td{background:#f7fafe;}
.nd-tbl tbody tr.sel td{background:#eef3fa;box-shadow:inset 3px 0 0 var(--nd-blue);}
.nd-tbl td .tag{display:inline-block;font-size:10.5px;padding:0 6px;border-radius:4px;line-height:18px;
  font-weight:700;vertical-align:middle;margin-right:7px;}
.nd-tbl th small{display:block;margin:3px 0 1px;font-size:10.5px;font-weight:500;color:#8a93a5;white-space:nowrap;}
.nd-tbl td .tag.n{color:#fff;background:var(--nd-up);}
.nd-tbl td .tag.o{color:#fff;background:var(--nd-dn);}
.nd-tbl td .tag.u{color:#b02a37;background:#fdf0f0;}
.nd-tbl td .tag.d{color:#0b7a58;background:#e9f8f3;}
.nd-tbl td .tag.k{color:#946c00;background:#fdf6e3;}
.nd-tbl td .tag.lb{color:#7c6f64;background:#f1f3f5;}
.nd-tbl td .tag.og{color:#8a4b06;background:#fdf4e9;border:1px solid #ecd9bd;}
.nd-tbl .chips{display:flex;gap:5px;flex-wrap:wrap;}
.nd-tbl .chips span{font-size:11px;background:#f4f6f9;border:1px solid #eaeef4;border-radius:6px;
  padding:2px 7px;color:#5a6478;line-height:1.6;}
.nd-tbl .chips span b{color:var(--nd-ink);font-weight:600;}

/* ---------------- 近几年持仓金额变动 ---------------- */
.nd-sec{margin-top:20px;}
.nd-sec-h{display:flex;align-items:baseline;gap:8px;font-size:14px;font-weight:700;color:var(--nd-ink);
  margin-bottom:10px;padding-left:9px;border-left:3px solid var(--nd-blue);}
.nd-sec-h small{font-size:11.5px;font-weight:500;color:var(--nd-mut);}
.nd-sec-h .r{margin-left:auto;font-size:11.5px;font-weight:600;color:var(--nd-mut);}
.nd-trend{width:100%;height:300px;}
.nd-trend .nd-load,.nd-trend .nd-err{height:100%;display:flex;align-items:center;justify-content:center;
  color:#9aa3b2;font-size:13px;text-align:center;line-height:2;}
.nd-trend .nd-err{color:#b02a37;}

/* ---------------- Top100 牛散总持仓时序 ---------------- */
.nd-ts{width:100%;height:300px;margin-top:10px;}
.nd-ts .nd-load{height:100%;display:flex;align-items:center;justify-content:center;color:#9aa3b2;font-size:13px;}
.nd-ts .nd-err{height:100%;display:flex;align-items:center;justify-content:center;color:#b02a37;font-size:13px;}
.nd-ts-meta{display:flex;gap:22px;flex-wrap:wrap;margin:2px 0 6px 2px;font-size:12px;color:var(--nd-mut);}
.nd-ts-meta b{color:var(--nd-ink);font-variant-numeric:tabular-nums;}
.nd-ts-meta .u{color:var(--nd-up);} .nd-ts-meta .d{color:var(--nd-dn);}

/* ---------------- 明细表头 ---------------- */
.nd-vs{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;padding:0 0 12px;
  border-bottom:1px solid var(--nd-bd);margin-bottom:12px;}
.nd-vs h3{margin:0;font-size:19px;font-weight:700;color:var(--nd-ink);letter-spacing:.2px;}
.nd-vs .px{display:flex;gap:16px;margin-left:auto;flex-wrap:wrap;}
.nd-vs .px div{text-align:right;}
.nd-vs .px .k{font-size:11px;color:var(--nd-mut);}
.nd-vs .px .v{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--nd-ink);}
.nd-vs .px .v.up{color:var(--nd-up);} .nd-vs .px .v.dn{color:var(--nd-dn);}
.nd-kv{display:flex;gap:11px;flex-wrap:wrap;width:100%;margin-top:2px;}
.nd-kv span{font-size:12px;color:var(--nd-mut);background:#f5f8fd;border:1px solid #eaeff7;
  border-radius:7px;padding:4px 10px;}
.nd-kv span b{color:var(--nd-ink);font-weight:700;}

/* ---- 报告期切换（完整期 / 披露中期） ---- */
.nd-pseg{display:inline-flex;margin-left:12px;vertical-align:2px;border:1px solid #dfe4ec;
  border-radius:8px;overflow:hidden;}
.nd-pseg button{border:0;background:#fff;color:var(--nd-mut);font-size:11.5px;padding:4px 10px;
  cursor:pointer;font-family:inherit;}
.nd-pseg button + button{border-left:1px solid #dfe4ec;}
.nd-pseg button.on{background:#27548c;color:#fff;font-weight:600;}
.nd-live-warn{width:100%;margin-top:8px;font-size:12px;color:#7a5a14;background:#fff8e8;
  border:1px solid #f0e2b8;border-radius:8px;padding:8px 12px;line-height:1.7;}

/* ---------------- 反查 ---------------- */
.nd-more{text-align:center;padding:12px 0 4px;}
.nd-more button{border:1px solid var(--nd-bd);background:#fff;border-radius:9px;padding:8px 22px;
  font:600 12.5px/1 inherit;color:#5a6478;cursor:pointer;transition:.15s;}
.nd-more button:hover{color:var(--nd-blue);border-color:#b3c7e2;background:#f7faff;}

/* ---------------- 说明 / 空态 ---------------- */
.nd-note{font-size:11.5px;color:#9aa3b2;line-height:1.95;border-top:1px dashed var(--nd-line);
  margin-top:14px;padding:11px 2px 2px;}
.nd-note b{color:#5a6478;}
.nd-empty{color:#9aa3b2;font-size:13px;padding:34px 0;text-align:center;line-height:2;}
.nd-empty .big{font-size:26px;display:block;margin-bottom:8px;opacity:.5;}
.nd-warn{font-size:12px;color:#946c00;background:#fdf8ec;border:1px solid #f2e3c0;border-radius:9px;
  padding:9px 12px;line-height:1.8;margin-bottom:12px;}

/* ---------------- 骨架 / 加载 ---------------- */
.nd-load{height:220px;display:flex;align-items:center;justify-content:center;color:#9aa3b2;font-size:13px;}

/* ---------------- 响应式 ---------------- */
@media (max-width:1024px){
  .nd-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:760px){
  .nd-kpis{grid-template-columns:minmax(0,1fr);}
  .nd-tbl th,.nd-tbl td{padding:6px 7px;font-size:12px;}
  .nd-vs .px{margin-left:0;}
}

/* ===== house 版式基准层（与 holder.css 对齐）===== */
.hero, .hero-sm { background:transparent;border:0;border-radius:0;box-shadow:none; padding: 14px 0 10px; }
.hero h1, .hero-sm h1 { font-size: 20px; letter-spacing: -.2px; margin-bottom: 4px; }
.hero p, .hero-sm p { font-size: 12px; color: #8a93a5; line-height: 1.7; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nd-tbl th{background:#f6f8fb;}

/* ---- 三季报（披露中）增量列 ---- */
.nd-tbl td.collive,.nd-tbl th.collive{white-space:nowrap;}
.nd-tbl td.collive .sub{font-size:11px;color:#5b6478;margin-top:2px;line-height:1.5;}
.nd-tbl td.collive .sub b{color:#0a0a0a;}

/* 披露中期醒目提示条（全页签可见，2026-10-28） */
.nd-livebar { max-width: 1180px; margin: 10px auto 0; padding: 10px 16px;
  border: 1px solid #f0d9ad; border-left: 4px solid #b45309; background: #fdf6e7;
  color: #5c4a1e; font-size: 13px; line-height: 1.8; border-radius: 6px; }
.nd-livebar b { color: #b45309; }
.nd-tbl th.collive small { color: #b45309; }
