/* ============================================================
   台账看板样式 v0.2 阶段二 · 依附 shared.css 设计 token
   发射看板 / 星座进度条 / IPO 雷达 / 晨报
   ============================================================ */

/* === masthead 元信息行 === */
.board-meta { font-family:var(--mono); font-size:11px; color:var(--ink-soft); line-height:2;
  border-top:1px solid var(--ink); border-bottom:1px solid var(--rule); padding:10px 0; margin-top:14px; }
.board-meta b { color:var(--ink); }

/* === CSV 会员入口（决策①：预挂不拦截） === */
.csv-link { font-family:var(--mono); font-size:10.5px; border-bottom:none; margin-left:10px; white-space:nowrap; }
.lock-pill { display:inline-block; font-family:var(--mono); font-size:9px; letter-spacing:1.5px;
  color:var(--hold); border:1px solid var(--hold); padding:1px 7px; margin-right:6px; vertical-align:1px; }

/* === KPI 条 === */
.kpi-strip { display:flex; flex-wrap:wrap; border:1px solid var(--rule); background:var(--bg-2); margin:22px 0 8px; }
.kpi { flex:1 1 110px; padding:14px 18px 12px; border-left:1px solid var(--rule-faint); }
.kpi:first-child { border-left:none; }
.kpi .v { font-family:var(--mono); font-weight:600; font-size:23px; line-height:1.2; }
.kpi .v small { font-size:13px; font-weight:400; color:var(--ink-faint); }
.kpi .v.ok { color:var(--up); }
.kpi .v.no { color:var(--down); }
.kpi .k { font-size:11px; color:var(--ink-soft); margin-top:3px; }

/* === 区块小标题 === */
.board-h2 { font-weight:700; font-size:16px; margin:34px 0 12px; padding-bottom:8px;
  border-bottom:1px solid var(--ink); display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.board-h2 small { font-family:var(--mono); font-weight:400; font-size:10px; color:var(--ink-faint); letter-spacing:1px; }

/* === 通用台账表 === */
.board-table { width:100%; border-collapse:collapse; background:var(--bg-2); border:1px solid var(--rule); margin:0 0 10px; }
.board-table thead th { font-family:var(--mono); font-weight:600; font-size:10px; letter-spacing:.8px;
  text-transform:uppercase; color:var(--ink-soft); text-align:left; padding:9px 12px; border-bottom:1px solid var(--ink); white-space:nowrap; }
.board-table tbody td { font-size:12.5px; line-height:1.7; padding:8px 12px; border-bottom:1px solid var(--rule-faint); vertical-align:top; }
.board-table tbody tr:last-child td { border-bottom:1px solid var(--rule); }
.board-table .num { text-align:right; font-family:var(--mono); font-size:12px; }
.board-table td.num.ok, .board-table .ok { color:var(--up); }
.board-table td.num.no { color:var(--down); }
.board-table td.num.hold { color:var(--hold); }
.board-table .mono { font-family:var(--mono); font-size:11.5px; }
.board-table .nowrap { white-space:nowrap; }
.board-table.wide .src-cell { font-size:11.5px; color:var(--ink-soft); min-width:150px; }
.board-table.wide .src-cell a { white-space:nowrap; }
.board-table .note-cell { font-size:11.5px; color:var(--ink-soft); min-width:180px; }
.board-note { max-width:900px; border-top:1px solid var(--rule); margin:18px 0 8px; padding:11px 2px;
  font-size:12px; color:var(--ink-soft); line-height:1.8; }
.pill-todo { font-family:var(--mono); font-size:9.5px; color:var(--ink-faint); border:1px dashed var(--rule); padding:1px 7px; }

/* === 星座进度条 === */
.const-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:20px; }
@media (max-width:980px){ .const-grid { grid-template-columns:1fr; } }
.const-card { border:1px solid var(--rule); background:var(--bg-2); padding:16px 18px 14px; }
.const-card .head { display:flex; align-items:baseline; gap:9px; flex-wrap:wrap; margin-bottom:12px; }
.const-card .dot { width:9px; height:9px; border-radius:1px; align-self:center; flex:0 0 auto; }
.const-card .dot.cn { background:var(--stamp); }
.const-card .dot.us { background:var(--accent); }
.const-card .t { font-weight:700; font-size:15.5px; }
.const-card .bar { height:10px; border:1px solid var(--rule); background:var(--bg-3); }
.const-card .bar-in { height:100%; }
.const-card .bar-in.cn { background:var(--stamp); }
.const-card .bar-in.us { background:var(--accent); }
.const-card .pct { font-size:11px; color:var(--ink-soft); margin:6px 0 10px; }
.const-card .mrows { border-top:1px solid var(--rule-faint); padding-top:8px; }
.mrow { display:flex; gap:12px; padding:3.5px 0; font-size:12.5px; align-items:baseline; }
.mrow .k { font-family:var(--mono); font-size:10.5px; color:var(--ink-faint); flex:0 0 96px; letter-spacing:.5px; }
.mrow .v { color:var(--ink); }
.mrow .v small { color:var(--ink-faint); font-size:11px; }
.const-card .hist { margin:12px 0 0; }
.const-card .src-line, .ipo-card .src-line, .brief-card .src-line {
  font-size:11px; color:var(--ink-faint); border-top:1px solid var(--rule-faint);
  margin-top:12px; padding-top:8px; line-height:1.8; }

/* === IPO 雷达 === */
.ipo-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:20px; }
@media (max-width:980px){ .ipo-grid { grid-template-columns:1fr; } }
.ipo-card { border:1px solid var(--rule); background:var(--bg-2); padding:16px 18px 14px; }
.ipo-card .head { display:flex; align-items:baseline; gap:9px; flex-wrap:wrap; margin-bottom:12px; }
.ipo-card .head .t { font-weight:700; font-size:15.5px; }
.ipo-card .head .t a { border-bottom:none; }
.ipo-card .track { display:flex; gap:4px; margin-bottom:10px; }
.ipo-card .seg { flex:1; border:1px solid var(--rule); background:var(--bg-3); padding:4px 0; text-align:center;
  font-family:var(--mono); font-size:9.5px; letter-spacing:1px; color:var(--ink-faint); }
.ipo-card .seg.on { background:rgba(31,106,58,.10); border-color:var(--up); color:var(--up); font-weight:600; }
.ipo-card .raise { font-size:12.5px; margin-bottom:4px; }
.ipo-card .raise b { font-family:var(--mono); font-weight:600; }
.ipo-card .sec { font-size:11.5px; color:var(--ink-soft); margin-bottom:8px; }
.ipo-card .tl { list-style:none; margin:6px 0 0; }
.ipo-card .tl li { display:flex; gap:10px; align-items:baseline; padding:4px 0;
  border-bottom:1px solid var(--rule-faint); font-size:12px; }
.ipo-card .tl li:last-child { border-bottom:none; }
.ipo-card .tl .d { font-family:var(--mono); font-size:10.5px; color:var(--ink-faint); flex:0 0 76px; }
.ipo-card .tl .n { color:var(--ink-soft); font-size:11.5px; }

/* === 晨报（看板先行） === */
.brief-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:4px; }
@media (max-width:980px){ .brief-grid { grid-template-columns:1fr; } }
.brief-card { border:1px solid var(--rule); background:var(--bg-2); padding:16px 18px 14px; }
.brief-card .head { display:flex; gap:12px; align-items:baseline; margin-bottom:8px; }
.brief-card .head .t { font-weight:700; font-size:14.5px; }
.brief-card .tick { list-style:none; margin:6px 0 0; }
.brief-card .tick li { padding:5px 0 5px 18px; position:relative; font-size:12.5px;
  border-bottom:1px solid var(--rule-faint); line-height:1.7; }
.brief-card .tick li:last-child { border-bottom:none; }
.brief-card .tick li::before { content:""; position:absolute; left:2px; top:15px; width:7px; height:1px; background:var(--stamp); }

/* === 频轨 D-Day 倒计时 === */
.rule-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:20px; }
@media (max-width:980px){ .rule-grid { grid-template-columns:1fr; } }
.rule-card { border:1px solid var(--rule); background:var(--bg-2); padding:14px 16px 12px; }
.rule-card .t { font-weight:700; font-size:13.5px; margin-bottom:6px; }
.rule-card .d { font-size:12px; color:var(--ink-soft); line-height:1.75; }
.freq-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:14px; }
@media (max-width:980px){ .freq-grid { grid-template-columns:1fr; } }
.freq-card { border:1px solid var(--rule); background:var(--bg-2); padding:16px 18px 14px; }
.freq-card .head { display:flex; align-items:baseline; gap:9px; flex-wrap:wrap; margin-bottom:10px; }
.freq-card .head .t { font-weight:700; font-size:15.5px; }
.freq-card .dls { border-top:1px solid var(--rule); margin-top:10px; padding-top:4px; }
.dl-row { display:flex; gap:14px; align-items:flex-start; padding:10px 0; border-bottom:1px solid var(--rule-faint); }
.dl-row:last-child { border-bottom:none; }
.dl-row .lab { font-weight:600; font-size:13px; }
.dl-row .n { font-size:11.5px; color:var(--ink-soft); line-height:1.7; margin-top:2px; }
.dl-row .src-line { margin-top:6px; padding-top:0; border-top:none; }
.dday { flex:0 0 auto; text-align:right; min-width:96px; }
.dday-n { display:block; font-family:var(--mono); font-weight:600; font-size:20px; color:var(--accent); }
.dday-n.over { color:var(--stamp); }
.dday.alarm .dday-n { color:var(--stamp); animation:none; }
.dday-d { display:block; font-size:10px; color:var(--ink-faint); margin-top:2px; }
.callout-box { border:1px solid var(--rule); background:var(--bg-2); padding:16px 18px 12px; margin-top:14px; max-width:920px; }
.callout-box .t { font-weight:700; font-size:14px; margin-bottom:6px; }
.callout-box .tick { list-style:none; margin:6px 0 0; }
.callout-box .tick li { padding:5px 0 5px 18px; position:relative; font-size:12.5px; border-bottom:1px solid var(--rule-faint); line-height:1.7; }
.callout-box .tick li:last-child { border-bottom:none; }
.callout-box .tick li::before { content:""; position:absolute; left:2px; top:15px; width:7px; height:1px; background:var(--stamp); }
