/* Portfolio and governance workspaces. Kept separate from the legacy bundle. */
.sidebar { gap: 18px; overflow-y: auto; }
.nav { gap: 2px; }
.nav button { min-height: 39px; }
.content { max-width: 1680px; }
.workspace-heading {
  min-height: 72px; margin-bottom: 14px; padding: 4px 0 16px;
  border-bottom: 1px solid var(--line); display: flex; align-items: flex-end;
  justify-content: space-between; gap: 28px;
}
.workspace-heading span { color: var(--blue); font-size: 12px; font-weight: 700; }
.workspace-heading h2 { margin: 4px 0 0; font-size: 21px; font-weight: 700; }
.workspace-heading p { max-width: 620px; margin: 0; color: var(--muted); font-size: 12px; text-align: right; }
.governance-kpis {
  margin: 12px 0 16px; border: 1px solid var(--line-soft);
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px; background: var(--line-soft);
}
#portfolio-center-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.platform-section > h3 { margin:16px 0 8px; font-size:16px; }
.platform-section > details { margin:0; border-width:0 0 1px; }
@media (min-width:901px) { #platform-kpis { grid-template-columns:repeat(5,minmax(0,1fr)); } }
.portfolio-settings-band { margin: 14px 0; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
/* R26-W09：组合页严格按 DOM 顺序排列。此前用跨容器 order 把工具条提到账本
   面板之前，导致小屏时"当前组合"落在 1953px、"保存"落在 2161px——用户先
   填完交易才看到自己在写哪个组合。order 已全部移除，DOM 顺序即视觉顺序：
   组合身份 → 版本与草稿状态 → 页签 → 当前任务内容。 */
#view-portfolio.active { display: flex; flex-direction: column; }
.portfolio-advanced { display: block; }
.portfolio-advanced > summary {
  min-height: 40px; padding: 8px 0; cursor: pointer;
  display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap;
}
.portfolio-advanced > summary::marker { color: var(--muted); }
.portfolio-advanced > summary strong { font-size: 13px; }
.portfolio-advanced > summary span { color: var(--muted); font-size: 12px; }
.portfolio-advanced[open] > summary { margin-bottom: 8px; }
.portfolio-advanced > .section-head { display: none; }
.ledger-filter {
  display: grid; grid-template-columns: 140px 160px 150px 150px;
  gap: 10px; margin: 12px 0; align-items: end;
}
.ledger-filter .field { min-width: 0; }
.ledger-filter input, .ledger-filter select { width: 100%; min-width: 0; }
.ledger-pager {
  min-height: 44px; margin: 8px 0; display: flex; align-items: center;
  justify-content: space-between; gap: 12px; flex-wrap: wrap;
  color: var(--muted); font-size: 12px;
}
.ledger-pager-actions { display: flex; align-items: center; gap: 8px; }
.ledger-pager-actions span { font-variant-numeric: tabular-nums; }
.draft-recovery {
  margin: 0 0 12px; padding: 11px 13px; display: flex; align-items: center;
  justify-content: space-between; gap: 12px; flex-wrap: wrap;
  border: 1px solid rgba(232,179,92,.45); background: var(--panel-2);
}
.draft-recovery[hidden] { display: none; }
.draft-recovery strong { display: block; font-size: 12px; }
.draft-recovery span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.draft-recovery .row-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.analysis-stale-banner {
  margin: 12px 0; padding: 11px 13px;
  border: 1px solid rgba(232,179,92,.5); border-left-width: 3px; background: var(--panel-2);
}
.analysis-stale-banner[hidden] { display: none; }
.analysis-stale-banner strong { display: block; color: var(--amber); font-size: 12px; }
.analysis-stale-banner span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.analysis-stale-note { margin: 6px 0 0; color: var(--amber); font-size: 12px; }
#portfolio-center-content.analysis-stale > .analysis-band,
#portfolio-center-content.analysis-stale .portfolio-chart-shell { opacity: .72; }
#portfolio-center-kpis.analysis-stale > div > strong { opacity: .7; }
.portfolio-rule-table input { width: 92px; min-width: 0; }
.portfolio-transaction-editor {
  display: grid;
  grid-template-columns: 120px 150px 150px repeat(4,minmax(110px,1fr)) auto;
  gap: 10px;
  align-items: end;
}
.portfolio-transaction-editor .field { min-width:0; }
.portfolio-transaction-editor input,.portfolio-transaction-editor select { width:100%; min-width:0; max-width:100%; }
#portfolio-draft-state.warning { color: var(--amber); }
.portfolio-scenario-editor { display: grid; grid-template-columns: minmax(240px,1fr) repeat(3,minmax(100px,140px)); gap: 12px; margin-top: 14px; align-items: end; }
.lookthrough-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:14px; }
.lookthrough-list { display:grid; gap:8px; }
.lookthrough-list div { display:grid; grid-template-columns:minmax(0,1fr) 72px; gap:10px; align-items:center; font-size:12px; }
.lookthrough-list i { height:6px; background:var(--line-soft); border-radius:3px; overflow:hidden; }
.lookthrough-list b { display:block; height:100%; background:var(--blue); border-radius:3px; }
.btn.danger { color:var(--red); }
.governance-kpis > div { min-width: 0; min-height: 82px; padding: 13px 15px; background: var(--panel-3); }
.governance-kpis span,.governance-kpis small,.governance-kpis strong { display: block; }
.governance-kpis span { color: var(--muted); font-size: 12px; }
.governance-kpis strong { margin-top:5px; font-size:18px; font-variant-numeric:tabular-nums; white-space:normal; overflow-wrap:anywhere; }
.governance-kpis small { margin-top:3px; color:var(--muted); font-size:12px; white-space:normal; overflow-wrap:anywhere; line-height:1.7; }
.governance-layout,.portfolio-analytics-layout { display: grid; gap: 14px; }
.analysis-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.analysis-band { min-width: 0; border: 1px solid var(--line); background: var(--panel-3); }
.analysis-band > .section-head { min-height: 48px; margin: 0; padding: 10px 14px; border-bottom: 1px solid var(--line-soft); }
.analysis-band > .section-head h3 { font-size: 13px; }
.analysis-band > .section-head span { color: var(--muted); font-size: 12px; }
.analysis-band .table-wrap { margin: 0; border: 0; }
.analysis-band table { min-width: 620px; }
.analysis-band th { background: var(--panel); }
.metric-list { margin: 0; }
.metric-list > div { min-height: 44px; padding: 9px 14px; border-top: 1px solid var(--line-soft); display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.metric-list > div:first-child { border-top: 0; }
.metric-list dt { color: var(--muted); font-size: 12px; }
.metric-list dd { margin: 0; font-size: 12px; font-weight: 650; font-variant-numeric: tabular-nums; text-align: right; }
.exposure-bars { padding: 12px 14px 4px; display: grid; gap: 10px; }
.exposure-bars > div { display: grid; grid-template-columns: 64px minmax(80px,1fr) 52px; align-items: center; gap: 10px; font-size: 12px; }
.exposure-bars i { height: 7px; overflow: hidden; background: var(--line-soft); }
.exposure-bars b { display: block; height: 100%; background: var(--blue); }
.exposure-bars strong { text-align: right; font-variant-numeric: tabular-nums; }
.portfolio-chart-shell { position: relative; min-height: 270px; padding: 10px 14px; }
.portfolio-return-chart { width:100%; height:280px; }
.portfolio-print-header,.portfolio-print-only { display:none; }
.compact-empty { min-height: 220px; }
.status-tag { display: inline-flex; min-height: 21px; padding: 2px 7px; border: 1px solid var(--line); align-items: center; color: var(--muted); font-size: 12px; text-transform: uppercase; }
.status-tag.active,.status-tag.done { border-color: rgba(66,201,165,.45); color: var(--green); }
.status-tag.shadow,.status-tag.running { border-color: rgba(232,179,92,.45); color: var(--amber); }
.status-tag.monitor,.status-tag.missed { border-color: rgba(232,179,92,.45); color: var(--amber); }
.status-tag.validated { border-color: rgba(66,201,165,.45); color: var(--green); }
.status-tag.failed,.status-tag.rejected { border-color: rgba(255,111,115,.45); color: var(--red); }
.health-good { color: var(--green) !important; }
.health-bad { color: var(--red) !important; }
.cross-sectional-audit { margin: 12px 0; border: 1px solid var(--line-soft); }
.cross-sectional-audit > div { min-height: 42px; padding: 9px 12px; border-top: 1px solid var(--line-soft); display: grid; grid-template-columns: 86px minmax(0,1fr); align-items: center; gap: 12px; }
.cross-sectional-audit > div:first-child { border-top: 0; }
.cross-sectional-audit b { font-size: 12px; }
.cross-sectional-audit span { color: var(--muted); font-size: 12px; line-height: 1.55; }
.forward-ablation { margin-top: 14px; border-top: 1px solid var(--line-soft); }
.forward-ablation > small { display: block; padding: 10px 14px 14px; color: var(--muted); }

@media (max-width: 1250px) {
  #portfolio-center-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .governance-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-transaction-editor { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .workspace-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .workspace-heading p { text-align: left; }
  .analysis-columns { grid-template-columns: 1fr; }
  .portfolio-scenario-editor,.lookthrough-grid { grid-template-columns:1fr 1fr; }
  .portfolio-transaction-editor { grid-template-columns:1fr 1fr; }
  .ledger-filter { grid-template-columns: 1fr 1fr; }
  #portfolio-center-toolbar { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  #portfolio-center-toolbar .field { grid-column: 1 / -1; }
  #portfolio-center-toolbar .btn { min-width: 0; width: 100%; white-space: normal; }
  #platform-toolbar { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  #platform-toolbar .field { grid-column: 1 / -1; }
  #platform-toolbar .btn { min-width: 0; width: 100%; white-space: normal; }
}
@media (max-width: 620px) {
  #portfolio-center-kpis,.governance-kpis { grid-template-columns: 1fr 1fr; }
  .portfolio-scenario-editor,.lookthrough-grid { grid-template-columns:1fr; }
  .portfolio-transaction-editor { grid-template-columns:1fr 1fr; }
  .portfolio-transaction-editor .btn { grid-column:1 / -1; min-height:44px; }
  .ledger-filter { grid-template-columns: 1fr 1fr; }
  .ledger-pager { align-items: flex-start; flex-direction: column; }
  .ledger-pager-actions { width: 100%; justify-content: space-between; }
  .ledger-pager-actions .btn { min-height: 40px; }
  .governance-kpis > div { min-height: 72px; padding: 11px; }
  .governance-kpis strong { font-size: 16px; }
  #portfolio-center-toolbar { grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; }
  #portfolio-center-toolbar .field { grid-column: 1 / -1 !important; }
  #portfolio-center-toolbar .btn { min-height:44px; }
  #portfolio-center-toolbar #portfolio-analyze { grid-column:1 / -1; }
  #platform-toolbar { grid-template-columns: minmax(0,1fr) !important; }
  #platform-toolbar > * { grid-column: 1 / -1 !important; }
}
@media (max-width: 420px) {
  .ledger-filter { grid-template-columns: 1fr; }
}
@media (max-width: 360px) {
  .portfolio-transaction-editor { grid-template-columns:1fr; }
}
@media print {
  @page { size:A4; margin:12mm; }
  html,body { background:#fff !important; color:#111 !important; }
  .sidebar,.topbar,#portfolio-center-toolbar,.portfolio-settings-band,#portfolio-ledger-editor,#portfolio-center-status { display:none !important; }
  .main,.content,.view { margin:0 !important; padding:0 !important; width:100% !important; max-width:none !important; }
  #view-portfolio { display:block !important; }
  #view-portfolio>.workspace-heading { display:none !important; }
  .portfolio-print-header { display:block !important; margin:0 0 7mm; padding:0 0 5mm; border-bottom:2px solid #222; }
  .portfolio-print-header span { display:block; color:#555; font-size:9pt; letter-spacing:.08em; }
  .portfolio-print-header h1 { margin:2mm 0 1mm; color:#111; font-size:20pt; }
  .portfolio-print-header p { margin:0; color:#333; font-size:9pt; }
  .portfolio-print-only { display:inline !important; }
  .analysis-band,.governance-kpis>div,.portfolio-chart-shell { break-inside:avoid; page-break-inside:avoid; background:#fff !important; color:#111 !important; border-color:#bbb !important; }
  .analysis-columns { display:block !important; }
  .analysis-columns>.analysis-band { margin-bottom:8mm; }
  table { width:100% !important; min-width:0 !important; color:#111 !important; }
  thead { display:table-header-group; }
  tr { break-inside:avoid; page-break-inside:avoid; }
  th,.analysis-band th { background:#eee !important; color:#111 !important; }
  td,.section-head span,.detail-note,.metric-list dt { color:#333 !important; }
  .portfolio-print-audit { display:block !important; border-top:1px solid #999; padding-top:4mm; }
}
.echart-host {
  width: 100%;
  min-height: 280px;
  position: relative;
}

.detail-nav-chart.echart-host {
  min-height: 260px;
}
.audit-dialog { width:min(1040px,calc(100vw - 32px)); max-height:calc(100vh - 40px); padding:0; border:1px solid var(--line); background:var(--panel-3); color:var(--text); box-shadow:0 24px 80px rgba(0,0,0,.55); }
.audit-dialog::backdrop { background:rgba(4,8,11,.72); backdrop-filter:blur(3px); }
.audit-dialog-head { position:sticky; top:0; z-index:2; min-height:70px; padding:14px 18px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:16px; background:var(--panel-3); }
.audit-dialog-head span { color:var(--blue); font-size:12px; font-weight:700; }
.audit-dialog-head h2 { margin:4px 0 0; font-size:18px; }
#valuation-replay-content { padding:16px; display:grid; gap:14px; }
.replay-summary,.replay-input-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft); }
.replay-input-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.replay-summary>div,.replay-input-grid>div { min-width:0; padding:13px 14px; background:var(--panel-2); }
.replay-summary span,.replay-summary strong,.replay-summary small,.replay-input-grid span,.replay-input-grid strong,.replay-input-grid small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.replay-summary span,.replay-input-grid span { color:var(--muted); font-size:12px; }
.replay-summary strong,.replay-input-grid strong { margin-top:5px; font-size:14px; }
.replay-summary small,.replay-input-grid small { margin-top:3px; color:var(--muted); font-size:12px; }
.evidence-bars b { background:var(--green); }
@media (max-width:700px) { .replay-summary,.replay-input-grid { grid-template-columns:1fr 1fr; } .audit-dialog { width:calc(100vw - 16px); max-height:calc(100vh - 16px); } }
.opportunity-head-actions { display:flex; align-items:center; gap:14px; }
.decision-log-button { min-height:34px; padding:6px 10px; }
.decision-form { padding:18px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; }
.decision-form .wide,.decision-form-actions { grid-column:1 / -1; }
.decision-form textarea { width:100%; min-height:90px; resize:vertical; }
.decision-form-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.decision-form-actions span { margin-right:auto; color:var(--muted); font-size:12px; }
.decision-journal { margin-top:16px; }
.decision-journal-list { display:grid; gap:1px; background:var(--line-soft); }
.decision-journal-list article { position:relative; padding:14px 96px 14px 16px; background:var(--panel-3); display:grid; grid-template-columns:minmax(180px,.6fr) auto minmax(260px,1.4fr); gap:10px 16px; align-items:start; }
.decision-journal-list article>div span,.decision-journal-list article>div strong,.decision-journal-list article>small { display:block; }
.decision-journal-list article>div span,.decision-journal-list article small { color:var(--muted); font-size:12px; }
.decision-journal-list article p { margin:0; font-size:12px; line-height:1.55; }
.decision-journal-list article>.table-action { position:absolute; top:14px; right:14px; }
@media (max-width:700px) { .opportunity-head-actions { width:100%; justify-content:space-between; } .decision-form { grid-template-columns:1fr; } .decision-form .wide,.decision-form-actions { grid-column:1; } .decision-journal-list article { padding-right:70px; grid-template-columns:1fr; } }
.fund-event-list { padding:0 14px; }
.fund-event-list>div { min-height:58px; padding:11px 0; border-top:1px solid var(--line-soft); display:grid; grid-template-columns:110px 64px minmax(150px,.7fr) minmax(240px,1.3fr); gap:12px; align-items:center; }
.fund-event-list>div:first-child { border-top:0; }
.fund-event-list time,.fund-event-list span { color:var(--muted); font-size:12px; }
.fund-event-list strong { font-size:12px; }
.fund-event-list p { margin:0; color:var(--muted); font-size:12px; line-height:1.45; }
@media (max-width:700px) { .fund-event-list>div { grid-template-columns:1fr auto; gap:5px 10px; } .fund-event-list strong,.fund-event-list p { grid-column:1 / -1; } }
