
:root {
  --bg: #f6f7f9;
  --panel: #ffffff;
  --ink: #182230;
  --muted: #657080;
  --line: #dde3ea;
  --soft: #eef3f8;
  --brand: #166c77;
  --brand-dark: #0f4f58;
  --accent: #a15c2f;
  --blue: #2563eb;
  --purple: #7c3aed;
  --gold: #b7791f;
  --bad: #b42318;
  --good: #0f7b4f;
  --pos: #c02f2f;
  --neg: #12805c;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--bg);
  font-family: "Microsoft YaHei", "PingFang SC", "Segoe UI", Arial, sans-serif;
  line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--line);
}
.topbar-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 220px;
}
.brand-mark {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  background: var(--brand);
  color: #fff;
  border-radius: 6px;
  font-weight: 700;
}
.brand small { display: block; color: var(--muted); font-size: 12px; margin-top: 1px; }
.nav {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  gap: 8px;
  flex-wrap: nowrap;
  justify-content: flex-end;
  overflow-x: auto;
  scrollbar-width: thin;
}
.nav-link {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 6px;
  color: #405063;
  font-size: 14px;
  white-space: nowrap;
}
.nav-link:hover, .nav-link.is-active { background: var(--soft); color: var(--brand-dark); }
body {
  padding-left: 248px;
}
.topbar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 30;
  width: 248px;
  overflow-y: auto;
  background: rgba(255, 255, 255, 0.98);
  border-right: 1px solid var(--line);
  border-bottom: 0;
  box-shadow: 1px 0 0 rgba(16, 24, 40, 0.02);
}
.topbar-inner {
  min-height: 100vh;
  max-width: none;
  margin: 0;
  padding: 18px 14px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 18px;
}
.brand {
  min-width: 0;
  width: 100%;
  padding: 0 4px 14px;
  border-bottom: 1px solid var(--line);
}
.nav {
  display: grid;
  flex: 0 0 auto;
  min-width: 0;
  gap: 15px;
  justify-content: stretch;
  overflow: visible;
}
.nav-group {
  display: grid;
  gap: 5px;
}
.nav-group-title {
  padding: 0 10px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.3;
  font-weight: 800;
}
.nav-link {
  display: flex;
  align-items: center;
  min-height: 34px;
  width: 100%;
  padding: 8px 10px;
  border-radius: 7px;
  border-bottom: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  font-weight: 650;
}
.page-shell,
.global-quality-gate {
  max-width: 1440px;
}
.page-shell { max-width: 1440px; margin: 0 auto; padding: 22px 24px 44px; }
.global-quality-gate {
  max-width: 1440px;
  margin: 14px auto 0;
  padding: 0 24px;
  box-sizing: border-box;
}
.internal-test-notice {
  margin: 5px 0 0;
  color: #b42318;
  font-size: 12px;
  line-height: 1.55;
  font-weight: 750;
}
.page-loading-status {
  margin: 16px 0;
  border: 1px solid #f0b8b0;
  border-radius: 8px;
  background: #fff6f3;
  color: #b42318;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 750;
}
.page-loading-status[hidden] { display: none !important; }
.ai-candidate-note {
  font-size: 12px;
  line-height: 1.6;
}
.quality-gate-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 12px 14px;
  box-shadow: 0 6px 18px rgba(16, 24, 40, 0.04);
}
.quality-gate-card.is-warn { border-color: #ecd59d; background: #fffaf0; }
.quality-gate-card.is-bad { border-color: #efc2bc; background: #fff5f2; }
.quality-gate-card.is-ok { border-color: #cfe8dc; background: #f7fcfa; }
.quality-gate-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  margin-bottom: 8px;
}
.quality-gate-head a { color: var(--brand); font-weight: 700; font-size: 13px; white-space: nowrap; }
.quality-gate-card ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.quality-gate-card li {
  min-width: 0;
  border: 1px solid rgba(16, 24, 40, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
  padding: 9px 10px;
}
.quality-gate-card strong,
.quality-gate-card span,
.quality-gate-card em { display: block; overflow-wrap: anywhere; }
.quality-gate-card strong { font-size: 13px; color: var(--ink); }
.quality-gate-card span { margin-top: 4px; font-weight: 700; color: #8a5a13; }
.quality-gate-card em { margin-top: 3px; font-size: 12px; color: var(--muted); font-style: normal; }
.page-title {
  margin: 0 0 16px;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-end;
}
.title-pills { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; max-width: 760px; }
h1 { margin: 0; font-size: 24px; line-height: 1.25; }
h2 { margin: 0; font-size: 18px; }
h3 { margin: 0 0 10px; font-size: 15px; }
.desc { margin: 6px 0 0; color: var(--muted); font-size: 13px; }
.panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
  min-width: 0;
}
.system-page-title h1 { font-size: 28px; }
.system-home-hero {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  gap:16px;
  align-items:stretch;
  margin-bottom:16px;
  padding:18px;
  border:1px solid #cfe2e6;
  border-radius:8px;
  background:linear-gradient(135deg,#f5fbfc 0%,#ffffff 58%,#fff8f2 100%);
  box-shadow:0 8px 24px rgba(16,24,40,.04);
}
.system-home-copy { min-width:0; display:grid; align-content:start; gap:12px; }
.system-home-copy h2 { font-size:22px; line-height:1.35; color:#172033; max-width:880px; }
.system-home-copy p { margin:0; color:#526174; font-size:13px; line-height:1.75; max-width:860px; }
.system-cta-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.system-home-status-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.system-status-card {
  min-width:0;
  border:1px solid #d7e0ea;
  border-radius:8px;
  background:rgba(255,255,255,.9);
  padding:12px;
  box-shadow:0 1px 2px rgba(16,24,40,.04);
}
.system-status-card span { display:block; color:#667085; font-size:12px; line-height:1.35; font-weight:750; }
.system-status-card strong { display:block; margin-top:5px; color:#172033; font-size:18px; line-height:1.28; overflow-wrap:anywhere; }
.system-status-card p { margin:6px 0 0; color:#526174; font-size:12px; line-height:1.55; }
.system-focus-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px;
}
.system-focus-card {
  border:1px solid #dbe4ee;
  border-radius:8px;
  background:#fff;
  padding:14px;
}
.system-focus-card strong { display:block; color:#172033; font-size:15px; }
.system-focus-card p { margin:6px 0 0; color:#526174; font-size:13px; line-height:1.7; }
.system-module { background:#fff; }
.system-module .row-detail-body { overflow-x:auto; }
.system-module summary {
  display:grid;
  grid-template-columns:minmax(0,.35fr) minmax(0,.65fr);
  gap:12px;
  align-items:center;
}
.system-module summary span { color:#172033; font-size:15px; font-weight:800; }
.system-module summary em { color:#667085; font-size:12px; font-style:normal; line-height:1.5; font-weight:500; }
.system-capability-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}
.system-capability-step {
  min-width:0;
  border:1px solid #dbe4ee;
  border-top:3px solid var(--brand);
  border-radius:8px;
  background:#fbfdff;
  padding:11px;
}
.system-capability-step strong,
.system-page-card strong,
.system-discussion-item strong { display:block; color:#172033; font-size:13px; line-height:1.4; }
.system-capability-step p,
.system-page-card p,
.system-discussion-item span {
  display:block;
  margin:6px 0 0;
  color:#526174;
  font-size:12px;
  line-height:1.65;
  overflow-wrap:anywhere;
}
.system-capability-step em {
  display:inline-flex;
  margin-top:8px;
  border:1px solid #cfe2e6;
  border-radius:999px;
  background:#f6fbfc;
  color:var(--brand-dark);
  padding:2px 7px;
  font-size:11px;
  font-style:normal;
  font-weight:750;
}
.system-page-grid,
.system-question-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.system-page-card {
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:10px;
  border:1px solid #dbe4ee;
  border-radius:8px;
  background:#fbfdff;
  padding:11px;
}
.system-discussion-list { display:grid; gap:9px; }
.system-discussion-item {
  min-width:0;
  border:1px solid #dbe4ee;
  border-radius:8px;
  background:#fbfdff;
  padding:10px 11px;
}
.system-quality-layout { display:grid; gap:12px; }
.system-flow-line {
  display:grid;
  grid-template-columns:auto 1fr auto 1fr auto 1fr auto 1fr auto;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border:1px solid #dbe4ee;
  border-radius:8px;
  background:#f8fafc;
}
.system-flow-line span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  border-radius:7px;
  background:#fff;
  border:1px solid #dbe4ee;
  color:#344054;
  font-size:12px;
  font-weight:800;
  padding:0 10px;
  white-space:nowrap;
}
.system-flow-line i { height:1px; background:#cfd8e3; }
.system-module > .row-detail-body > .system-inner-panel {
  border:0;
  padding:0;
  background:transparent;
  margin:0 0 18px;
}
.system-module > .row-detail-body > .system-inner-panel:last-child { margin-bottom:0; }
.system-module .rank-row strong,
.system-module .rank-row span {
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}
.system-overview-strip {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  border:1px solid #d7e0ea;
  border-radius:8px;
  background:#fff;
  margin-bottom:22px;
  overflow:hidden;
}
.system-stat-tile {
  min-width:0;
  padding:13px 14px;
  border-left:1px solid #e5eaf0;
  box-shadow:inset 0 3px 0 #8795a8;
}
.system-stat-tile:first-child { border-left:0; }
.system-stat-tile.tone-time { box-shadow:inset 0 3px 0 #7a8798; }
.system-stat-tile.tone-strategy,
.system-stat-tile.tone-sample { box-shadow:inset 0 3px 0 #39779a; }
.system-stat-tile.tone-fund,
.system-stat-tile.tone-nav,
.system-stat-tile.tone-ok { box-shadow:inset 0 3px 0 #4f856a; }
.system-stat-tile.tone-warning { box-shadow:inset 0 3px 0 #b7791f; background:#fffdf8; }
.system-stat-tile span,
.system-stat-tile small { display:block; color:#667085; font-size:11px; line-height:1.45; }
.system-stat-tile strong { display:block; margin:6px 0 4px; color:#172033; font-size:18px; line-height:1.2; overflow-wrap:anywhere; }
.system-visual-section {
  margin-bottom:26px;
  padding-top:18px;
  border-top:1px solid #d7e0ea;
}
.system-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:13px; }
.system-section-head h2 { color:#172033; font-size:18px; }
.system-section-head p { margin:5px 0 0; color:#667085; font-size:12px; line-height:1.55; }
.system-data-map { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.system-data-lane {
  min-width:0;
  border:1px solid #d7e0ea;
  border-radius:8px;
  background:#fff;
  overflow:hidden;
}
.system-data-lane > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; border-bottom:1px solid #e5eaf0; background:#f8fafc; }
.system-data-lane.tone-strategy > header { border-left:4px solid #39779a; }
.system-data-lane.tone-fund > header { border-left:4px solid #4f856a; }
.system-data-lane > header span { display:block; color:#667085; font-size:11px; }
.system-data-lane > header strong { display:block; margin-top:3px; color:#172033; font-size:16px; }
.system-data-lane > header em { color:#526174; font-size:11px; font-style:normal; font-weight:750; }
.system-lane-body { display:grid; grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr); align-items:stretch; gap:8px; padding:12px; }
.system-data-stage { min-width:0; padding:2px; }
.system-data-stage b { display:block; margin-bottom:8px; color:#344054; font-size:12px; }
.system-data-stage.is-derived b { color:#7a5312; }
.system-tag-list { display:flex; flex-wrap:wrap; gap:6px; }
.system-tag-list span { display:inline-flex; align-items:center; min-height:25px; border:1px solid #dbe4ee; border-radius:5px; background:#f8fafc; color:#42526a; padding:3px 7px; font-size:11px; line-height:1.3; }
.system-data-stage.is-derived .system-tag-list span { border-color:#e6d2ae; background:#fffaf0; color:#6e501e; }
.system-lane-arrow { align-self:center; color:#98a2b3; font-size:18px; font-style:normal; text-align:center; }
.system-coverage-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; margin-top:13px; padding:13px 14px; border:1px solid #d7e0ea; border-radius:8px; background:#f8fafc; }
.system-coverage-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px 12px; align-items:end; min-width:0; }
.system-coverage-row strong { display:block; color:#344054; font-size:12px; }
.system-coverage-row span { display:block; margin-top:2px; color:#667085; font-size:11px; line-height:1.4; }
.system-coverage-value { display:flex; align-items:baseline; gap:7px; white-space:nowrap; }
.system-coverage-value b { color:#344054; font-size:11px; }
.system-coverage-value em { color:#39779a; font-size:12px; font-style:normal; font-weight:800; }
.system-coverage-meter { grid-column:1/-1; height:6px; border-radius:3px; background:#dfe5ec; overflow:hidden; }
.system-coverage-meter i { display:block; height:100%; border-radius:3px; background:#39779a; }
.system-architecture { display:grid; gap:10px; }
.system-architecture-track { display:grid; grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr); gap:5px; align-items:center; }
.system-architecture-track > i,
.system-hierarchy > i { color:#98a2b3; font-size:16px; font-style:normal; text-align:center; }
.system-architecture-node { min-width:0; min-height:108px; display:grid; align-content:start; gap:5px; border:1px solid #d7e0ea; border-top:3px solid #7a8798; border-radius:7px; background:#fff; padding:10px; }
.system-architecture-node.tone-source,
.system-architecture-node.tone-collect { border-top-color:#39779a; }
.system-architecture-node.tone-store,
.system-architecture-node.tone-process { border-top-color:#b7791f; }
.system-architecture-node.tone-deliver,
.system-architecture-node.tone-use { border-top-color:#4f856a; }
.system-architecture-node span { color:#98a2b3; font-size:10px; font-weight:800; }
.system-architecture-node strong { color:#172033; font-size:13px; line-height:1.35; }
.system-architecture-node small { color:#667085; font-size:11px; line-height:1.5; }
.system-audit-rail { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:12px; align-items:center; border:1px solid #dfc99f; border-radius:7px; background:#fffaf0; padding:9px 11px; }
.system-audit-rail strong { color:#6e501e; font-size:12px; }
.system-audit-rail span { color:#6f614c; font-size:11px; line-height:1.5; }
.system-hierarchy { display:grid; grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr) 20px minmax(0,1fr) 20px minmax(0,1fr); gap:6px; align-items:stretch; }
.system-hierarchy-step { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); gap:9px; border:1px solid #d7e0ea; border-radius:7px; background:#fff; padding:11px; }
.system-hierarchy-step > span { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; background:#eef2f6; color:#526174; font-size:10px; font-weight:850; }
.system-hierarchy-step strong { display:block; color:#172033; font-size:13px; }
.system-hierarchy-step small { display:block; margin-top:5px; color:#667085; font-size:11px; line-height:1.55; }
.system-hierarchy-step.tone-fact { border-top:3px solid #39779a; }
.system-hierarchy-step.tone-standard { border-top:3px solid #7a8798; }
.system-hierarchy-step.tone-metric { border-top:3px solid #b7791f; }
.system-hierarchy-step.tone-business { border-top:3px solid #9c4f45; }
.system-boundary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:12px; }
.system-boundary-grid .system-discussion-item { border-left:3px solid #8795a8; background:#f8fafc; }
.system-function-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; border:1px solid #d7e0ea; border-radius:8px; background:#e5eaf0; overflow:hidden; }
.system-function-card { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; background:#fff; padding:13px; }
.system-function-card strong { display:block; color:#172033; font-size:13px; }
.system-function-card span { display:block; margin-top:4px; color:#667085; font-size:11px; line-height:1.5; }
.hero-panel { padding: 0; overflow: hidden; }
.strategy-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(340px, 0.9fr);
  gap: 16px;
  padding: 18px;
  background: linear-gradient(135deg, #f7fbfc 0%, #ffffff 52%, #fff8f2 100%);
}
.hero-title { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.hero-title h1 { font-size: 26px; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.hero-dates { display:grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap:8px; margin-top:14px; }
.date-card { min-width:0; border:1px solid #cfe2e6; border-radius:8px; background:#f4fbfc; padding:9px 10px; }
.date-card span { display:block; color:#486172; font-size:12px; }
.date-card strong { display:block; margin-top:3px; font-size:16px; line-height:1.25; color:#0f4f58; overflow-wrap:anywhere; }
.date-card.is-date strong { font-size:20px; }
.hero-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
.hero-kpi { border: 1px solid #d7e0ea; border-radius: 8px; background: rgba(255,255,255,.82); padding: 10px; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.hero-kpi span { display:block; color: #56657a; font-size:12px; }
.hero-kpi strong { display:block; margin-top:4px; font-size:20px; letter-spacing:0; color:#172033; }
.hero-kpi strong .ret-pos, .hero-kpi strong .ret-neg, .hero-kpi strong .ret-zero { font-size:22px; font-weight:750; }
.hero-kpi.is-pos { border-color:#efc2bc; background:#fff5f2; }
.hero-kpi.is-neg { border-color:#b7dfcf; background:#f2fbf7; }
.hero-kpi.is-zero { border-color:#cbd5e1; background:#f8fafc; }
.hero-kpi.is-pos span { color:#8f2e25; }
.hero-kpi.is-neg span { color:#1f6f4a; }
.hero-kpi.is-pos strong, .hero-kpi.is-pos strong .ret-pos { color:var(--pos); }
.hero-kpi.is-neg strong, .hero-kpi.is-neg strong .ret-neg { color:var(--neg); }
.hero-kpi.is-zero strong, .hero-kpi.is-zero strong .ret-zero { color:#42526a; }
.return-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:10px; align-self:start; }
.return-cell { min-width:0; border:1px solid #d7e0ea; border-radius:8px; background:rgba(255,255,255,.88); padding:10px; box-shadow:0 1px 2px rgba(16,24,40,.04); }
.return-cell span { display:block; color:#56657a; font-size:12px; line-height:1.2; }
.return-cell strong { display:block; margin-top:5px; font-size:21px; line-height:1.15; color:#172033; overflow-wrap:anywhere; }
.return-cell em { display:block; margin-top:5px; color:#6b7688; font-size:11px; font-style:normal; }
.return-cell.is-pos { border-color:#efc2bc; background:#fff5f2; }
.return-cell.is-neg { border-color:#b7dfcf; background:#f2fbf7; }
.return-cell.is-zero { border-color:#cbd5e1; background:#f8fafc; }
.return-cell.is-pos span, .return-cell.is-pos em { color:#8f2e25; }
.return-cell.is-neg span, .return-cell.is-neg em { color:#1f6f4a; }
.return-cell.is-pos strong { color:var(--pos); }
.return-cell.is-neg strong { color:var(--neg); }
.return-cell.is-zero strong { color:#42526a; }
.hero-support { padding: 0 18px 18px; }
.hero-support + .hero-support { border-top: 1px solid var(--line); padding-top: 14px; }
.profile-block h3 { color:#24364a; }
.profile-block { min-width:0; }
.profile-compact { display: grid; grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr); gap: 12px 16px; align-items: start; }
.strategy-info-block { grid-column: 1; }
.evaluation-block { grid-column: 1; }
.classification-block { grid-column: 2; grid-row: span 2; }
.benchmark-asset-block { grid-column: 1 / -1; }
.profile-compact .value-row { border-bottom-color: rgba(221,227,234,.72); }
.benchmark-strip { grid-column: 1 / -1; border:1px solid #f0b8b0; border-left:4px solid var(--pos); border-radius:8px; background:#fff6f3; padding:10px 12px; }
.benchmark-strip strong { display:block; color:#b42318; font-size:12px; margin-bottom:4px; }
.benchmark-strip span { display:block; color:#9f241c; font-size:13px; line-height:1.65; font-weight:650; overflow-wrap:anywhere; }
.core-metric-board { display:grid; gap:8px; }
.core-line { display:grid; grid-template-columns: 76px minmax(0, 1fr); gap:10px; align-items:center; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:9px 10px; }
.core-line h4 { margin:0; color:#234255; font-size:13px; white-space:nowrap; }
.core-line-values { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap:8px; }
.core-cell { min-width:0; border-left:2px solid #d5e2ea; border-radius:6px; background:#fff; padding:6px 8px; }
.core-cell span { display:block; color:#647287; font-size:11px; line-height:1.2; }
.core-cell strong { display:block; color:#162336; font-size:15px; line-height:1.25; margin-top:2px; overflow-wrap:anywhere; }
.core-cell strong .ret-pos, .core-cell strong .ret-neg, .core-cell strong .ret-zero { font-size:16px; font-weight:750; }
.core-cell.is-pos { border-left-color:var(--pos); background:#fff7f4; }
.core-cell.is-neg { border-left-color:var(--neg); background:#f3fbf7; }
.core-cell.is-zero { border-left-color:#8aa0b6; background:#f8fafc; }
.core-cell.is-pos span { color:#8f2e25; }
.core-cell.is-neg span { color:#1f6f4a; }
.core-cell.is-pos strong, .core-cell.is-pos strong .ret-pos { color:var(--pos); }
.core-cell.is-neg strong, .core-cell.is-neg strong .ret-neg { color:var(--neg); }
.classification-summary { display:grid; gap:10px; }
.class-chip-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:8px; }
.class-chip, .class-metric { min-width:0; border:1px solid #dbe4ee; border-radius:7px; background:#fbfdff; padding:8px 9px; }
.class-chip > span, .class-metric > span { display:block; color:#627289; font-size:11px; line-height:1.25; }
.class-chip > strong, .class-metric > strong { display:block; margin-top:3px; color:#172033; font-size:14px; line-height:1.25; overflow-wrap:anywhere; }
.class-chip.is-main { border-color:#efc2bc; background:#fff6f3; }
.class-chip.is-main strong { color:var(--pos); }
.class-section-title { color:#344054; font-weight:700; font-size:12px; margin-top:2px; }
.class-metric-grid { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap:8px; }
.class-basis { border:1px solid #dbe4ee; border-left:4px solid #0f766e; border-radius:8px; background:#f7fbfb; padding:9px 10px; }
.class-basis strong { display:block; color:#21525b; font-size:12px; margin-bottom:4px; }
.class-basis span { display:block; color:#526174; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.strategy-detail-page .page-shell { max-width:1320px; }
.strategy-section { scroll-margin-top:72px; }
.strategy-overview { padding:18px 20px 16px; }
.strategy-back-link { display:inline-flex; align-items:center; color:var(--brand-dark); font-size:13px; font-weight:700; margin-bottom:12px; }
.strategy-back-link:hover { color:var(--brand); }
.strategy-identity-row { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; }
.strategy-identity { min-width:0; }
.strategy-title-line { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.strategy-title-line h1 { font-size:27px; color:#172033; }
.strategy-identity > p { margin:5px 0 0; color:#405063; font-size:15px; font-weight:650; }
.strategy-status-list { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:6px; max-width:520px; }
.strategy-status-list span { display:inline-flex; align-items:center; min-height:28px; border:1px solid #d7e0e8; border-radius:6px; background:#f8fafb; padding:4px 8px; color:#405063; font-size:12px; font-weight:650; }
.strategy-status-list span:first-child { border-color:#b9ddd6; background:#f1faf7; color:#176348; }
.strategy-title-line .internal-test-notice { order:3; flex:1 0 100%; margin:4px 0 0; color:#b42318; font-size:12px; font-weight:700; }
.strategy-key-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:16px; border:1px solid #dbe2e9; border-radius:7px; overflow:hidden; background:#fff; }
.strategy-key-fact { min-width:0; min-height:68px; padding:10px 12px; border-right:1px solid #e5eaf0; border-bottom:1px solid #e5eaf0; }
.strategy-key-fact:nth-child(3n) { border-right:0; }
.strategy-key-fact:nth-last-child(-n+3) { border-bottom:0; }
.strategy-key-fact span { display:block; color:#68768a; font-size:11px; line-height:1.3; }
.strategy-key-fact strong { display:block; margin-top:5px; color:#172033; font-size:14px; line-height:1.45; overflow-wrap:anywhere; }
.strategy-primary-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:12px; }
.strategy-primary-metric { min-width:0; border:1px solid #dbe2e9; border-top:3px solid #8795a8; border-radius:7px; background:#fff; padding:10px 12px; }
.strategy-primary-metric span { display:block; color:#657080; font-size:12px; }
.strategy-primary-metric strong { display:block; margin-top:4px; color:#172033; font-size:23px; line-height:1.2; }
.strategy-primary-metric em { display:block; margin-top:4px; color:#748094; font-size:11px; font-style:normal; }
.strategy-primary-metric.is-pos { border-top-color:var(--pos); background:#fffafa; }
.strategy-primary-metric.is-pos strong { color:var(--pos); }
.strategy-primary-metric.is-neg { border-top-color:var(--neg); background:#f8fcfa; }
.strategy-primary-metric.is-neg strong { color:var(--neg); }
.strategy-primary-metric.is-risk { border-top-color:#b7791f; background:#fffaf2; }
.strategy-primary-metric.is-risk strong { color:#8a5410; }
.strategy-overview-foot { margin-top:10px; color:#7a8798; font-size:11px; text-align:right; }
.strategy-section-nav { position:sticky; top:0; z-index:18; display:grid; grid-template-columns:repeat(5,minmax(96px,1fr)); margin:0 0 16px; border:1px solid #d4dde6; border-radius:7px; background:rgba(255,255,255,.97); box-shadow:0 5px 14px rgba(16,24,40,.06); overflow:hidden; }
.strategy-section-nav a { display:flex; align-items:center; justify-content:center; min-height:42px; border-right:1px solid #e1e7ed; color:#526174; font-size:13px; font-weight:700; }
.strategy-section-nav a:last-child { border-right:0; }
.strategy-section-nav a:hover { background:#f5f9fa; color:var(--brand-dark); }
.strategy-section-nav a.is-active { color:var(--brand-dark); background:#edf7f7; box-shadow:inset 0 -3px 0 var(--brand); }
.strategy-section-head { align-items:center; }
.strategy-section-head h2 { font-size:19px; }
.strategy-performance-tabs { flex-wrap:wrap; }
.strategy-chart-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.strategy-main-chart { min-height:360px; }
.strategy-source-details { margin-top:10px; border-top:1px solid #e4e9ee; }
.strategy-source-details > summary { cursor:pointer; list-style:none; padding:10px 2px 2px; color:#657080; font-size:12px; font-weight:700; }
.strategy-source-details > summary::-webkit-details-marker { display:none; }
.strategy-source-details > summary::after { content:"展开"; float:right; color:var(--brand-dark); font-weight:700; }
.strategy-source-details[open] > summary::after { content:"收起"; }
.strategy-risk-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid #dbe2e9; border-radius:7px; overflow:hidden; }
.strategy-risk-item { min-width:0; min-height:84px; padding:13px 14px; border-right:1px solid #e5eaf0; border-bottom:1px solid #e5eaf0; background:#fff; }
.strategy-risk-item:nth-child(4n) { border-right:0; }
.strategy-risk-item:nth-last-child(-n+4) { border-bottom:0; }
.strategy-risk-item span { display:block; color:#657080; font-size:12px; }
.strategy-risk-item strong { display:block; margin-top:7px; color:#172033; font-size:19px; overflow-wrap:anywhere; }
.strategy-section-meta { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
.strategy-section-meta span { display:inline-flex; border:1px solid #d7e0e8; border-radius:6px; background:#f8fafb; padding:5px 8px; color:#526174; font-size:12px; font-weight:700; }
.strategy-subsection-title { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:16px 0 8px; }
.strategy-subsection-title:first-child { margin-top:0; }
.strategy-subsection-title h3 { margin:0; color:#24364a; font-size:14px; }
.strategy-subsection-title p { margin:0; color:#7a8798; font-size:11px; }
.strategy-asset-allocation { border:1px solid #dbe2e9; border-radius:7px; background:#fbfcfd; padding:12px; }
.strategy-asset-bar { display:flex; height:16px; border-radius:4px; overflow:hidden; background:#e9edf2; }
.strategy-asset-bar span { display:block; min-width:2px; }
.strategy-asset-bar .is-equity, .strategy-asset-legend i.is-equity { background:#c84a4a; }
.strategy-asset-bar .is-fixed, .strategy-asset-legend i.is-fixed { background:#397c9b; }
.strategy-asset-bar .is-cash, .strategy-asset-legend i.is-cash { background:#2f8a69; }
.strategy-asset-bar .is-fund, .strategy-asset-legend i.is-fund { background:#bd852c; }
.strategy-asset-bar .is-other, .strategy-asset-legend i.is-other { background:#8b96a6; }
.strategy-asset-legend { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:9px; color:#647287; font-size:12px; }
.strategy-asset-legend span { display:inline-flex; align-items:center; gap:5px; }
.strategy-asset-legend i { width:8px; height:8px; border-radius:2px; }
.strategy-asset-legend strong { color:#25364a; }
.strategy-holding-table th, .strategy-holding-table td { white-space:normal; vertical-align:middle; }
.strategy-holding-table th:first-child, .strategy-holding-table td:first-child { min-width:210px; }
.strategy-fund-name { display:grid; gap:2px; min-width:0; }
.strategy-fund-name > a { font-weight:700; line-height:1.35; }
.strategy-fund-name small { color:#8792a3; font-size:10px; }
.strategy-holding-cards { display:none; }
.strategy-latest-rebalance { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr) minmax(320px,1.5fr); gap:0; border:1px solid #d8e1e9; border-left:4px solid var(--brand); border-radius:7px; overflow:hidden; background:#fbfdfd; }
.strategy-latest-rebalance > div { min-width:0; padding:12px 14px; border-right:1px solid #e1e7ed; }
.strategy-latest-rebalance > div:last-child { border-right:0; }
.strategy-latest-rebalance-head span { display:block; color:#657080; font-size:11px; }
.strategy-latest-rebalance-head strong { display:block; margin-top:2px; color:#173e49; font-size:20px; }
.strategy-latest-rebalance-head p { margin:6px 0 0; color:#526174; font-size:12px; line-height:1.5; }
.strategy-rebalance-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:#e2e8ee; padding:0 !important; }
.strategy-rebalance-stats div { display:grid; place-content:center; text-align:center; background:#fff; padding:8px 5px; }
.strategy-rebalance-stats span { color:#6b7789; font-size:11px; }
.strategy-rebalance-stats strong { color:#24364a; font-size:18px; }
.strategy-rebalance-reason strong { color:#24364a; font-size:12px; }
.strategy-rebalance-reason p { margin:5px 0 0; color:#526174; font-size:12px; line-height:1.65; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.strategy-rebalance-workspace { display:grid; grid-template-columns:250px minmax(0,1fr); gap:16px; align-items:start; margin-top:16px; }
.strategy-rebalance-timeline { min-width:0; }
.strategy-rebalance-timeline .rebalance-list { max-height:660px; }
.strategy-rebalance-timeline .rebalance-item { position:relative; padding-left:20px; }
.strategy-rebalance-timeline .rebalance-item::before { content:""; position:absolute; left:8px; top:16px; width:6px; height:6px; border-radius:50%; background:#9ba8b8; }
.strategy-rebalance-timeline .rebalance-item.is-active::before { background:var(--brand); box-shadow:0 0 0 3px #dceff0; }
.strategy-rebalance-detail { min-width:0; }
.strategy-contribution-block { margin-top:14px; padding-top:14px; border-top:1px solid #e2e8ee; }
.strategy-contribution-block .panel-head { margin-bottom:8px; }
.strategy-contribution-chart { min-height:280px; }
.strategy-more-list { border:1px solid #dbe2e9; border-radius:7px; overflow:hidden; }
.strategy-more-block { background:#fff; border-bottom:1px solid #e2e8ee; }
.strategy-more-block:last-child { border-bottom:0; }
.strategy-more-block > summary { display:grid; grid-template-columns:minmax(0,1fr) 22px; gap:12px; align-items:center; min-height:58px; padding:10px 14px; cursor:pointer; list-style:none; }
.strategy-more-block > summary::-webkit-details-marker { display:none; }
.strategy-more-block > summary::after { content:"+"; display:grid; place-items:center; width:22px; height:22px; border:1px solid #cfd8e2; border-radius:4px; color:#526174; font-size:16px; }
.strategy-more-block[open] > summary::after { content:"−"; }
.strategy-more-block > summary:hover { background:#f8fafb; }
.strategy-more-block > summary strong { display:block; color:#24364a; font-size:14px; }
.strategy-more-block > summary span { display:block; margin-top:3px; color:#7a8798; font-size:11px; overflow-wrap:anywhere; }
.strategy-more-body { padding:14px; border-top:1px solid #e5eaf0; background:#fbfcfd; }
.strategy-more-body .benchmark-strip { margin-top:12px; }
.strategy-secondary-modules { display:grid; gap:12px; margin-top:14px; }
.strategy-secondary-modules > .panel,
.strategy-secondary-modules > details.panel,
.strategy-detailed-holdings > .panel { margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.strategy-secondary-modules > .panel + .panel { border-top:1px solid #e2e8ee; padding-top:12px; }
.strategy-detailed-holdings .portfolio-table-wrap { max-height:560px; }
.panel-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 12px;
}
.grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.metric {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  min-height: 92px;
}
.metric-value { font-size: 24px; font-weight: 700; margin-top: 8px; }
.metric-sub { color: var(--muted); font-size: 12px; margin-top: 2px; }
.two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.table-wrap { overflow-x: auto; max-width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 8px; }
table { width: 100%; border-collapse: collapse; background: #fff; font-size: 13px; }
th, td { padding: 9px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; white-space: nowrap; }
th { background: var(--soft); color: #2c3a4a; font-weight: 650; }
tr:last-child td { border-bottom: 0; }
.strategy-table-shell { border: 1px solid var(--line); border-radius: 8px; background: #fff; overflow: hidden; }
.strategy-scrollbar { overflow-x: auto; overflow-y: hidden; height: 16px; border-bottom: 1px solid var(--line); background: #f2f5f8; }
.strategy-scrollbar.is-bottom { border-top:1px solid var(--line); border-bottom:0; }
.strategy-scrollbar-inner { height: 1px; }
.strategy-table-wrap { max-height: 650px; overflow: auto; scrollbar-gutter: stable; }
.strategy-table { min-width: 2760px; width: max-content; table-layout: fixed; }
.strategy-table thead th { position: sticky; top: 0; z-index: 4; }
.strategy-table tbody tr { --row-bg: #fff; background: var(--row-bg); }
.strategy-table tbody tr:nth-child(even) { --row-bg: #f7fbff; }
.strategy-table tbody tr:hover { --row-bg: #eef7f8; }
.strategy-table th, .strategy-table td { width: 118px; }
.ai-candidate-table tbody tr { --row-bg:#ffffff; }
.ai-candidate-table tbody tr:nth-child(even) { --row-bg:#eef6ff; }
.ai-candidate-table tbody tr:hover { --row-bg:#e4f4f3; }
.ai-candidate-table th, .ai-candidate-table td { vertical-align:top; }
.strategy-table .ai-sticky-select,
.strategy-table .ai-sticky-hit,
.strategy-table .ai-sticky-name,
.strategy-table .ai-sticky-advisor,
.strategy-table .ai-sticky-channel {
  position:sticky;
  z-index:5;
  background:var(--row-bg, #fff);
  box-shadow:1px 0 0 var(--line);
}
.strategy-table thead .ai-sticky-select,
.strategy-table thead .ai-sticky-hit,
.strategy-table thead .ai-sticky-name,
.strategy-table thead .ai-sticky-advisor,
.strategy-table thead .ai-sticky-channel { z-index:8; background:var(--soft); }
.strategy-table .ai-sticky-select { left:0; width:46px; min-width:46px; max-width:46px; }
.strategy-table .ai-sticky-hit { left:46px; width:92px; min-width:92px; max-width:92px; text-align:center; }
.strategy-table .ai-sticky-name { left:138px; width:260px; min-width:260px; max-width:260px; }
.strategy-table .ai-sticky-advisor { left:398px; width:170px; min-width:170px; max-width:170px; }
.strategy-table .ai-sticky-channel { left:568px; width:150px; min-width:150px; max-width:150px; }
.ai-hit-reason-col .ai-hit-reason-btn { min-width:58px; }
.strategy-table .sticky-name { position: sticky; left: 0; z-index: 3; width: 260px; min-width: 260px; max-width: 260px; background: var(--row-bg, var(--soft)); box-shadow: 1px 0 0 var(--line); }
.strategy-table .sticky-channel { position: sticky; left: 260px; z-index: 3; width: 170px; min-width: 170px; max-width: 170px; background: var(--row-bg, var(--soft)); box-shadow: 1px 0 0 var(--line); }
.strategy-table thead .sticky-name, .strategy-table thead .sticky-channel { z-index: 6; background: var(--soft); }
.strategy-table .wide { width: 180px; min-width: 180px; }
.strategy-table .narrow { width: 96px; min-width: 96px; }
.strategy-table .status-col { width: 100px; min-width: 100px; }
.strategy-name-cell { white-space: normal; line-height: 1.35; }
.sort-head { display:inline-flex; align-items:center; gap:5px; border:0; background:transparent; color:inherit; font:inherit; font-weight:650; cursor:pointer; padding:0; text-align:left; }
.sort-head:hover { color:var(--brand-dark); }
.sort-arrow { color:#94a3b8; font-size:10px; min-width:10px; }
.sort-head.is-active .sort-arrow { color:var(--brand-dark); }
.ret-pos { color: var(--pos); font-weight: 700; }
.ret-neg { color: var(--neg); font-weight: 700; }
.ret-zero { color: #4b5968; font-weight: 650; }
.status-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; padding: 2px 8px; border-radius: 999px; font-weight: 650; border: 1px solid transparent; }
.status-badge.ok { color: var(--good); background: #e6f4ee; border-color: #b9e2d0; }
.status-badge.bad { color: var(--bad); background: #fde8e6; border-color: #f6c6c1; }
.pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 12px 0; }
.pager-controls { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pager button { height: 32px; min-width: 34px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--ink); cursor: pointer; }
.pager button:disabled { cursor: not-allowed; color: #a0aaba; background: #f4f6f8; }
.quality-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.quality-card { border: 1px solid var(--line); border-radius: 8px; padding: 12px; background: #fbfcfd; min-width: 0; }
.quality-card h3 { margin: 0 0 8px; font-size: 14px; }
.quality-card p { margin: 8px 0 0; color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.field-label { display: inline-flex; align-items: center; gap: 5px; }
.derived-star { color: var(--bad); font-weight: 800; font-size: 12px; line-height: 1; margin-left: -2px; }
.info-button {
  width: 17px;
  height: 17px;
  border: 1px solid #b8c2ce;
  border-radius: 50%;
  background: #fff;
  color: #405063;
  font-size: 11px;
  line-height: 15px;
  cursor: pointer;
  padding: 0;
}
.info-button:hover { border-color: var(--brand); color: var(--brand); }
.filter-field { display:grid; grid-template-columns:minmax(0, 1fr) 34px; gap:6px; min-width:0; }
.classification-info-button {
  width:34px;
  height:36px;
  border:1px solid #efd29d;
  border-radius:7px;
  background:#fff8e8;
  color:#9a5a16;
  font-weight:850;
  font-size:15px;
  cursor:pointer;
  padding:0;
}
.classification-info-button:hover { background:#fff2d4; border-color:#c87918; color:#7c3f08; }
.filters {
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) repeat(7, minmax(132px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.strategy-filter-grid { grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)); align-items:start; }
.strategy-filter-field { display:grid; gap:5px; min-width:0; color:#475467; font-size:12px; font-weight:750; }
.strategy-filter-field > span { color:#344054; font-size:12px; }
.strategy-filter-field em { color:#7a8699; font-size:11px; font-style:normal; line-height:1.35; min-height:30px; }
.filter-help-details { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:9px 11px; margin:0 0 14px; }
.filter-help-details > summary { cursor:pointer; color:#0f4f58; font-weight:800; font-size:12px; }
.filter-help-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:8px; margin-top:10px; color:#526174; font-size:12px; line-height:1.55; }
.filter-help-grid span { border:1px solid #edf2f7; border-radius:7px; background:#fff; padding:8px; }
.filter-help-grid b { color:#172033; }
.classification-explain { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:12px; margin: 0 0 12px; }
.classification-empty { color:var(--muted); font-size:12px; }
.classification-note-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.classification-note-head strong { color:#24364a; font-size:13px; }
.classification-note-head button { border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--brand-dark); height:28px; padding:0 9px; cursor:pointer; }
.classification-summary-card { border:1px solid #cfe2e6; border-left:4px solid var(--brand); border-radius:8px; background:#f6fbfc; padding:10px 12px; margin-bottom:10px; color:#42566d; font-size:12px; line-height:1.65; }
.classification-rule-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
.classification-rule-card { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:10px 11px; }
.classification-rule-card.is-selected { border-color:#efc2bc; background:#fff7f4; }
.classification-rule-card b { display:block; color:#0f4f58; font-size:13px; margin-bottom:5px; }
.classification-rule-card.is-selected b { color:#b42318; }
.classification-rule-card span { display:block; color:#53657a; font-size:12px; line-height:1.62; overflow-wrap:anywhere; }
.classification-note-lines { display:grid; gap:8px; }
.control { width: 100%; height: 36px; border: 1px solid var(--line); border-radius: 6px; padding: 0 9px; background: #fff; color: var(--ink); }
.metric-search-row { display:grid; grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr); gap:12px; align-items:start; margin-bottom:14px; }
.metric-search-box { display:grid; gap:6px; color:#475467; font-size:12px; font-weight:700; }
.metric-search-results { display:flex; flex-wrap:wrap; gap:8px; align-content:start; min-height:36px; }
.metric-result { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; color:#344054; padding:7px 9px; display:grid; gap:2px; min-width:128px; max-width:220px; text-align:left; cursor:pointer; }
.metric-result strong { font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#172033; }
.metric-result span { font-size:11px; color:#667085; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.metric-result:hover, .metric-result.is-active { border-color:#95c3ca; background:#f2fafb; color:var(--brand-dark); }
.metric-analysis-card { display:grid; gap:14px; }
.metric-analysis-title { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:12px; }
.metric-analysis-title h3 { margin:0; font-size:18px; }
.metric-kpis { margin:0; }
.metric-lineage { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
.metric-lineage > div { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:10px; }
.metric-lineage strong { display:block; color:#24364a; margin-bottom:5px; font-size:13px; }
.metric-lineage p { margin:0; color:#526174; line-height:1.65; font-size:12px; overflow-wrap:anywhere; white-space:pre-wrap; }
.metric-factor-list { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.metric-factor-link { cursor:pointer; }
.metric-alert-panel { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:12px; display:grid; gap:10px; }
.metric-alert-panel h3 { margin:0; font-size:15px; color:#24364a; }
.metric-alert-panel-muted { background:#fbfdff; }
.metric-alert-list { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.metric-alert-item { border:1px solid #dbe4ee; border-left-width:4px; border-radius:8px; background:#fbfdff; padding:9px 10px; display:grid; grid-template-columns:42px minmax(0,1fr); gap:8px; align-items:start; }
.metric-alert-item span { display:inline-flex; justify-content:center; align-items:center; border-radius:999px; height:22px; font-size:12px; font-weight:700; }
.metric-alert-item p { margin:0; color:#475467; font-size:12px; line-height:1.65; overflow-wrap:anywhere; }
.metric-alert-item.is-high { border-left-color:#d92d20; background:#fff7f5; }
.metric-alert-item.is-high span { color:#b42318; background:#fee4e2; }
.metric-alert-item.is-mid { border-left-color:#dc8603; background:#fffaf0; }
.metric-alert-item.is-mid span { color:#8a5a13; background:#fef0c7; }
.metric-alert-item.is-low { border-left-color:#2e90fa; background:#f5faff; }
.metric-alert-item.is-low span { color:#175cd3; background:#d1e9ff; }
.metric-table-link { border:0; background:transparent; color:var(--brand-dark); font-weight:700; padding:0; cursor:pointer; text-align:left; font:inherit; }
.metric-table-link:hover { text-decoration:underline; }
.muted-text { color:#667085; font-size:12px; }
.status-badge { display:inline-flex; align-items:center; white-space:nowrap; border-radius:999px; border:1px solid #dbe4ee; padding:4px 9px; font-size:12px; font-weight:700; }
.status-badge.status-ok { color:#0f7b4f; border-color:#b9decf; background:#f2fbf7; }
.status-badge.status-warn { color:#8a5a13; border-color:#ecd59d; background:#fff8e6; }
.status-badge.status-bad { color:#b42318; border-color:#efc2bc; background:#fff5f2; }
.small { color: var(--muted); font-size: 12px; }
.link { color: var(--brand-dark); font-weight: 650; }
.pill {
  display: inline-block;
  padding: 2px 7px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-size: 12px;
  color: #405063;
}
.ai-query-panel { border-left: 4px solid var(--brand); }
.ai-query-box {
  min-height: 92px;
  height: auto;
  padding: 10px 12px;
  resize: vertical;
  font: inherit;
  line-height: 1.6;
}
.ai-action-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:10px; }
.ai-action-row button {
  height: 34px;
  border: 1px solid #cdd6e1;
  border-radius: 7px;
  background: #fff;
  color: var(--brand-dark);
  padding: 0 12px;
  font-weight: 700;
  cursor: pointer;
}
.ai-action-row button:first-of-type { background: var(--brand); border-color: var(--brand); color: #fff; }
.ai-action-row button:hover { box-shadow: 0 1px 3px rgba(16,24,40,.12); }
.checkline { display:inline-flex; align-items:center; gap:6px; color:#405063; font-size:13px; }
.checkline input { width:14px; height:14px; margin:0; accent-color:var(--brand); }
.ai-model-panel { margin-top:12px; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; overflow:hidden; }
.ai-model-summary { cursor:pointer; list-style:none; display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:10px 12px; }
.ai-model-summary::-webkit-details-marker { display:none; }
.ai-model-summary::after { content:"展开设置"; flex:0 0 auto; border:1px solid #b7c4d4; border-radius:999px; background:#fff; color:#344054; padding:4px 10px; font-size:12px; font-weight:800; }
.ai-model-panel[open] .ai-model-summary::after { content:"收起设置"; }
.ai-model-summary strong { display:block; color:#172033; font-size:13px; line-height:1.4; }
.ai-model-summary span { display:block; color:#667085; font-size:12px; line-height:1.45; margin-top:2px; }
.ai-model-body { border-top:1px solid #e4ebf3; padding:12px; background:#fff; display:grid; gap:10px; }
.ai-model-fixed-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.ai-model-fixed-grid > div { min-width:0; border:1px solid #e4ebf3; border-radius:6px; background:#f8fafc; padding:9px 10px; display:grid; gap:3px; }
.ai-model-fixed-grid span { color:#667085; font-size:11px; font-weight:750; }
.ai-model-fixed-grid strong { color:#172033; font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.ai-model-fixed-grid .ai-model-fixed-wide { grid-column:span 2; }
.ai-model-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; align-items:start; }
.ai-model-grid label { display:grid; gap:5px; min-width:0; color:#526174; font-size:12px; font-weight:750; }
.ai-model-grid .control { width:100%; min-width:0; height:34px; font-size:12px; }
.ai-model-grid .ai-model-wide { grid-column:span 2; }
.ai-model-headers { height:auto !important; min-height:74px; font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace; line-height:1.45; resize:vertical; }
.ai-model-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ai-model-actions button {
  min-height:32px;
  border:1px solid #cdd6e1;
  border-radius:7px;
  background:#fff;
  color:var(--brand-dark);
  padding:0 10px;
  font-size:12px;
  font-weight:750;
  cursor:pointer;
}
.ai-model-actions button:first-child { background:var(--brand); border-color:var(--brand); color:#fff; }
.ai-model-actions button:hover { box-shadow:0 1px 3px rgba(16,24,40,.12); }
.ai-model-test-result { color:#667085; font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.ai-model-test-result.is-running { color:#175cd3; font-weight:750; }
.ai-model-test-result.is-ok { color:#087443; font-weight:750; }
.ai-model-test-result.is-bad { color:#b42318; font-weight:750; }
.ai-model-help {
  display:grid;
  gap:6px;
  padding:10px 12px;
  border:1px solid #dbe4ee;
  border-radius:8px;
  background:#f8fafc;
  color:#526174;
  font-size:12px;
  line-height:1.55;
}
.ai-model-help strong { color:#172033; font-size:13px; }
.ai-model-help code {
  display:block;
  width:100%;
  overflow-x:auto;
  padding:7px 8px;
  border:1px solid #e4ebf3;
  border-radius:6px;
  background:#fff;
  color:#344054;
  font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;
  white-space:nowrap;
}
.ai-kpi-grid { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap:12px; margin-bottom:16px; }
.ai-kpi { border:1px solid var(--line); border-radius:8px; background:#fff; padding:13px 14px; min-width:0; }
.ai-kpi span, .ai-kpi small { display:block; color:var(--muted); font-size:12px; line-height:1.35; }
.ai-kpi strong { display:block; color:#172033; font-size:21px; line-height:1.25; margin:5px 0 3px; overflow-wrap:anywhere; }
.ai-kpi.is-ok { border-left:4px solid var(--good); }
.ai-kpi.is-warn { border-left:4px solid var(--accent); background:#fffaf5; }
.ai-chip-row { display:flex; gap:8px; flex-wrap:wrap; }
.ai-chip { display:inline-flex; align-items:center; min-height:26px; border:1px solid #cfe2e6; border-radius:999px; background:#f4fbfc; color:#0f4f58; padding:3px 9px; font-size:12px; font-weight:700; }
.ai-semantic-panel { border-left:4px solid #39779a; }
.ai-condition-panel-details { padding:0; overflow:hidden; }
.ai-condition-panel-summary {
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px;
}
.ai-condition-panel-summary::-webkit-details-marker { display:none; }
.ai-condition-panel-summary h2 { margin:0; color:#172033; font-size:18px; }
.ai-condition-panel-summary .desc { margin:4px 0 0; }
.ai-condition-panel-summary .pill { margin-left:auto; flex:0 0 auto; }
.ai-condition-panel-summary::after {
  content:"收起";
  flex:0 0 auto;
  min-width:48px;
  border:1px solid #9fb4c2;
  border-radius:7px;
  background:#fff;
  color:#245d76;
  padding:5px 10px;
  text-align:center;
  font-size:12px;
  font-weight:800;
}
.ai-condition-panel-details:not([open]) .ai-condition-panel-summary::after { content:"展开"; }
.ai-condition-panel-details[open] .ai-condition-panel-summary { border-bottom:1px solid var(--line); }
.ai-condition-panel-body { padding:12px 14px 14px; }
.ai-recognized-grid { display:grid; gap:8px; }
.ai-recognized-condition {
  min-width:0;
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  gap:10px;
  align-items:start;
  border:1px solid #dbe4ee;
  border-radius:8px;
  background:#fbfdff;
  padding:10px 11px;
}
.ai-recognized-condition.is-pending { border-color:#edcf9b; background:#fffaf2; }
.ai-recognized-condition.is-dirty { border-color:#39779a; box-shadow:inset 3px 0 0 #39779a; }
.ai-recognized-index { display:flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:#eaf3f7; color:#245d76; font-size:12px; font-weight:850; }
.ai-recognized-main { min-width:0; display:grid; gap:9px; }
.ai-recognized-overview { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; min-width:0; }
.ai-recognized-title { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.ai-recognized-title strong { color:#172033; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
.ai-recognized-title span,
.ai-recognized-title em { display:inline-flex; align-items:center; min-height:22px; border-radius:999px; padding:2px 7px; font-size:11px; line-height:1.25; font-style:normal; font-weight:800; }
.ai-recognized-title span { border:1px solid #c7dce6; background:#f2f8fb; color:#245d76; }
.ai-recognized-title em { border:1px solid #efc878; background:#fff3d6; color:#8a4b08; }
.ai-recognized-counts { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.ai-recognized-counts span { min-width:88px; border-left:1px solid #dbe4ee; padding-left:9px; color:#667085; font-size:11px; line-height:1.35; }
.ai-recognized-counts strong { display:block; margin-top:2px; color:#172033; font-size:15px; }
.ai-inline-condition-editor { display:grid; grid-template-columns:minmax(190px,1.15fr) minmax(132px,.7fr) minmax(210px,1.25fr) auto; gap:8px; align-items:end; }
.ai-inline-condition-editor label { min-width:0; display:grid; gap:4px; }
.ai-inline-condition-editor label > span { color:#667085; font-size:11px; font-weight:700; }
.ai-inline-condition-editor .control { width:100%; min-width:0; height:36px; font-size:13px; }
.ai-inline-condition-editor .ai-remove-filter { height:36px; }
.ai-recognition-reason { margin:0; color:#667085; font-size:12px; line-height:1.5; }
.ai-recognition-reason b { color:#475467; }
.ai-inline-alternatives { border-top:1px dashed #dfc58f; padding-top:9px; }
.ai-inline-alternatives-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; }
.ai-inline-alternatives-head strong { color:#7a4108; font-size:12px; }
.ai-inline-alternatives-head span { color:#805018; font-size:11px; }
.ai-condition-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; }
.ai-condition-actions > span { color:#667085; font-size:12px; }
.ai-pending-section { margin-top:12px; border:1px solid #edcf9b; border-radius:8px; background:#fffaf2; padding:11px; }
.ai-pending-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.ai-pending-head strong { display:block; color:#7a4108; font-size:14px; }
.ai-pending-head span { display:block; margin-top:3px; color:#805018; font-size:12px; line-height:1.5; }
.ai-pending-head > b { flex:0 0 auto; color:#8a4b08; font-size:12px; }
.ai-pending-groups { display:grid; gap:10px; margin-top:10px; }
.ai-pending-group { min-width:0; margin:0; border:1px solid #efd7a8; border-radius:8px; background:#fff; padding:10px; }
.ai-pending-group legend { padding:0 5px; color:#344054; font-size:12px; font-weight:800; }
.ai-semantic-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.ai-semantic-option { min-width:0; display:grid; grid-template-columns:18px minmax(0,1fr) auto; gap:8px; align-items:start; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:9px; cursor:pointer; }
.ai-semantic-option:hover { border-color:#9bb8c8; }
.ai-semantic-option.is-selected { border-color:#39779a; background:#f1f8fb; box-shadow:inset 0 0 0 1px #39779a; }
.ai-semantic-option input { width:15px; height:15px; margin:2px 0 0; accent-color:#39779a; }
.ai-semantic-option-main { min-width:0; display:grid; gap:3px; }
.ai-semantic-option-main small { color:#667085; font-size:11px; line-height:1.35; }
.ai-semantic-option-main strong { color:#172033; font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.ai-semantic-option-main em { color:#526174; font-size:11px; line-height:1.4; font-style:normal; }
.ai-semantic-option > b { color:#245d76; font-size:12px; }
.ai-filter-editor-details { margin-top:12px; border:1px solid var(--line); border-radius:8px; background:#fbfcfd; overflow:hidden; }
.ai-filter-editor-details > summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; }
.ai-filter-editor-details > summary::-webkit-details-marker { display:none; }
.ai-filter-editor-details > summary span { min-width:0; }
.ai-filter-editor-details > summary strong { color:#172033; font-size:13px; }
.ai-filter-editor-details > summary em { margin-left:8px; color:#667085; font-size:12px; font-style:normal; font-weight:500; }
.ai-filter-editor-details > summary b { flex:0 0 auto; color:#245d76; font-size:12px; }
.ai-filter-editor-details > summary::after { content:"展开"; flex:0 0 auto; border:1px solid #b7c4d4; border-radius:999px; background:#fff; color:#344054; padding:3px 9px; font-size:11px; font-weight:800; }
.ai-filter-editor-details[open] > summary::after { content:"收起"; }
.ai-filter-editor { border-top:1px solid var(--line); background:#fbfcfd; padding:10px; }
.ai-editor-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:9px; }
.ai-editor-head strong { display:block; color:#172033; font-size:14px; }
.ai-editor-head span { display:block; color:var(--muted); font-size:12px; line-height:1.45; margin-top:2px; }
.ai-editor-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.ai-editor-actions button, .ai-remove-filter {
  min-height:32px;
  border:1px solid #cdd6e1;
  border-radius:7px;
  background:#fff;
  color:var(--brand-dark);
  padding:0 10px;
  font-weight:700;
  cursor:pointer;
}
.ai-editor-actions button:last-child { background:var(--brand); border-color:var(--brand); color:#fff; }
.ai-editor-actions button:hover, .ai-remove-filter:hover { box-shadow:0 1px 3px rgba(16,24,40,.12); }
.ai-remove-filter:disabled, .ai-condition-row.is-system .control { opacity:.68; cursor:not-allowed; }
.ai-condition-wrap { margin:0; }
.ai-condition-table { min-width:760px; }
.ai-condition-table th { font-size:12px; }
.ai-condition-table td { vertical-align:top; }
.ai-condition-table .control { width:100%; min-width:0; height:34px; font-size:13px; }
.ai-condition-table .small { margin-top:4px; color:#7a4a12; }
.ai-condition-field-cell { min-width:220px; }
.ai-field-summary { border:1px solid #dbe4ee; border-radius:7px; background:#fff; padding:7px 9px; min-width:0; }
.ai-field-summary span { display:block; color:#667085; font-size:11px; font-weight:750; line-height:1.25; }
.ai-field-summary strong { display:block; margin-top:3px; color:#172033; font-size:13px; line-height:1.35; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ai-field-picker { margin-top:6px; }
.ai-field-picker summary { cursor:pointer; color:#0f4f58; font-size:12px; font-weight:750; line-height:1.4; }
.ai-field-picker.is-disabled summary { color:#667085; cursor:not-allowed; }
.ai-field-picker .ai-filter-field { margin-top:5px; max-width:100%; }
.ai-compare-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid #dbe4ee;
  border-radius:8px;
  background:#fbfdff;
  padding:10px 12px;
  margin-bottom:10px;
}
.ai-compare-toolbar strong { display:block; color:#172033; font-size:13px; }
.ai-compare-toolbar span { display:block; color:#667085; font-size:12px; line-height:1.45; margin-top:2px; max-width:680px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ai-compare-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.ai-compare-actions button {
  min-height:32px;
  border:1px solid #cdd6e1;
  border-radius:7px;
  background:#fff;
  color:var(--brand-dark);
  padding:0 10px;
  font-size:12px;
  font-weight:750;
  cursor:pointer;
}
.ai-compare-actions button:last-child { background:var(--brand); border-color:var(--brand); color:#fff; }
.ai-compare-actions button:disabled { opacity:.45; cursor:not-allowed; }
.ai-select-head, .ai-select-cell { width:46px; text-align:center !important; white-space:nowrap; }
.ai-select-cell input { width:16px; height:16px; margin:0; accent-color:var(--brand); }
.ai-notes { margin-top:10px; display:grid; gap:6px; }
.ai-notes p { margin:0; border:1px solid #efd29d; border-radius:7px; background:#fff8e8; color:#7a4a12; padding:7px 9px; font-size:12px; line-height:1.55; }
.ai-parse-panel { padding:0; overflow:hidden; }
.ai-parse-summary { cursor:pointer; display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:14px 16px; list-style:none; }
.ai-parse-summary::-webkit-details-marker { display:none; }
.ai-parse-summary h2 { margin:0; }
.ai-parse-summary span { flex:0 0 auto; color:#c2410c; font-size:13px; line-height:1.45; font-weight:850; border:1px solid #fed7aa; background:#fff7ed; border-radius:999px; padding:4px 10px; }
.ai-parse-summary span::before { content:"展开"; }
.ai-parse-panel[open] .ai-parse-summary span::before { content:"收起"; }
.ai-parse-body { border-top:1px solid var(--line); padding:12px 16px 16px; background:#fff; }
.ai-help-panel { border-left:4px solid #0e9384; }
.ai-help-summary { cursor:pointer; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; list-style:none; }
.ai-help-summary::-webkit-details-marker { display:none; }
.ai-help-summary::after { content:"展开"; flex:0 0 auto; border:1px solid #b7c4d4; border-radius:999px; color:#344054; background:#fff; padding:4px 10px; font-size:12px; font-weight:800; }
.ai-help-panel[open] .ai-help-summary::after { content:"收起"; }
.ai-help-body { margin-top:12px; }
.ai-help-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
.ai-help-grid section { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:10px; }
.ai-help-grid h3 { margin:0 0 8px; color:#172033; font-size:14px; }
.ai-help-detail { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; margin-top:10px; overflow:hidden; }
.ai-help-detail summary { cursor:pointer; padding:10px 12px; color:#172033; font-weight:800; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.ai-help-detail summary span { color:#667085; font-size:12px; font-weight:700; }
.ai-help-detail .table-wrap { margin:0; border-left:0; border-right:0; border-bottom:0; border-radius:0; }
.ai-help-table table { min-width:780px; }
.ai-help-table td { white-space:normal; max-width:260px; vertical-align:top; }
.ai-dsl { margin-top:12px; border:1px solid var(--line); border-radius:8px; background:#fbfcfd; overflow:hidden; }
.ai-dsl summary { cursor:pointer; padding:9px 11px; color:#344054; font-weight:700; }
.ai-json { margin:0; border-top:1px solid var(--line); padding:12px; overflow:auto; background:#0f172a; color:#e5e7eb; font-size:12px; line-height:1.55; }
.ai-result-table table { min-width: 1320px; }
.ai-result-table td { white-space: normal; max-width: 220px; }
.ai-hit-reason-btn {
  min-height: 28px;
  border: 1px solid #cdd6e1;
  border-radius: 7px;
  background: #fff;
  color: var(--brand-dark);
  padding: 0 10px;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}
.ai-hit-reason-btn:hover { box-shadow:0 1px 3px rgba(16,24,40,.12); }
.ai-hit-dialog {
  width: min(720px, calc(100vw - 32px));
  border: 1px solid #d0d7e2;
  border-radius: 8px;
  padding: 0;
  background: #fff;
  box-shadow: 0 22px 60px rgba(15, 23, 42, .24);
}
.ai-hit-dialog::backdrop { background: rgba(15, 23, 42, .28); }
.ai-hit-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:13px 14px; border-bottom:1px solid var(--line); }
.ai-hit-dialog-head strong { display:block; color:#172033; font-size:15px; line-height:1.35; }
.ai-hit-dialog-head span { display:block; color:#667085; font-size:12px; margin-top:3px; overflow-wrap:anywhere; }
.ai-hit-dialog-head button { min-height:30px; border:1px solid #cdd6e1; border-radius:7px; background:#fff; color:#344054; padding:0 10px; cursor:pointer; }
.ai-hit-dialog-body { padding:12px 14px 14px; display:grid; gap:8px; max-height:min(56vh, 520px); overflow:auto; }
.ai-hit-dialog-body p { margin:0; border:1px solid #e2e8f0; border-left:3px solid var(--brand); border-radius:7px; background:#fbfdff; color:#344054; padding:8px 10px; font-size:13px; line-height:1.55; overflow-wrap:anywhere; }
.ai-hit-reason-list { display:grid; gap:10px; }
.ai-hit-reason-item { display:grid; grid-template-columns:minmax(160px, 220px) minmax(0, 1fr); gap:10px; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:10px; }
.ai-hit-reason-condition { border-radius:7px; background:#f2f7fb; border:1px solid #dce8f4; padding:8px 9px; min-width:0; }
.ai-hit-reason-condition span { display:block; color:#667085; font-size:11px; line-height:1.35; font-weight:750; margin-bottom:4px; }
.ai-hit-reason-condition strong { display:block; color:#172033; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
.ai-hit-reason-result { min-width:0; display:grid; gap:7px; align-content:start; }
.ai-hit-reason-result > p { border:0; border-left:3px solid #12b76a; background:#f3fbf6; color:#1d4730; padding:8px 10px; font-weight:750; }
.ai-hit-reason-result em { color:#667085; font-style:normal; font-size:12px; line-height:1.4; }
.ai-hit-reason-result ul { margin:0; padding:0; display:grid; gap:6px; list-style:none; }
.ai-hit-reason-result li { display:grid; grid-template-columns:minmax(120px, 1fr) auto; gap:6px 10px; align-items:start; border:1px solid #e4ebf3; border-radius:7px; background:#fbfdff; padding:7px 8px; min-width:0; }
.ai-hit-reason-result li b { color:#25374b; font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
.ai-hit-reason-result li strong { color:#0f766e; font-size:12px; line-height:1.4; white-space:nowrap; }
.ai-hit-reason-result li small { grid-column:1 / -1; color:#667085; font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.ai-scatter-card { margin-top:12px; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:11px 12px 12px; }
.ai-scatter-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:8px; }
.ai-scatter-head strong { display:block; color:#172033; font-size:14px; }
.ai-scatter-head span:not(.pill) { display:block; color:#667085; font-size:12px; line-height:1.45; margin-top:2px; }
.ai-scatter-controls { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.ai-scatter-control { display:grid; grid-template-columns:auto minmax(120px, 170px); align-items:center; gap:6px; color:#526174; font-size:12px; font-weight:700; }
.ai-scatter-control .control { min-height:30px; padding:4px 8px; font-size:12px; }
.ai-scatter-legend { display:flex; align-items:center; gap:8px 14px; flex-wrap:wrap; margin:4px 0 10px; color:#526174; font-size:12px; }
.ai-scatter-legend span { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
.ai-scatter-legend i { width:9px; height:9px; border-radius:50%; box-shadow:0 0 0 1px rgba(15,23,42,.12); }
.ai-scatter-layout { display:grid; grid-template-columns:minmax(520px, 1fr) minmax(260px, 330px); gap:12px; align-items:stretch; }
.ai-scatter-wrap { overflow:auto; }
.ai-scatter-svg { display:block; width:100%; min-width:720px; height:auto; }
.ai-scatter-bg { fill:#fbfdff; stroke:#dbe4ee; }
.ai-scatter-grid { stroke:#e6edf5; stroke-width:1; }
.ai-scatter-axis-line { stroke:#98a5b7; stroke-width:1.2; }
.ai-scatter-axis, .ai-scatter-label { fill:#59697d; font-size:12px; }
.ai-scatter-threshold { stroke:#b42318; stroke-width:1.4; stroke-dasharray:5 4; }
.ai-scatter-threshold-text { fill:#b42318; font-size:12px; font-weight:700; }
.ai-scatter-dot { opacity:.78; stroke:#fff; stroke-width:1; cursor:pointer; outline:none; }
.ai-scatter-dot:hover, .ai-scatter-dot:focus { opacity:1; stroke:#172033; stroke-width:1.5; }
.ai-scatter-dot.is-selected { opacity:1; stroke:#111827; stroke-width:2.4; }
.ai-scatter-metric-input { min-width:160px; }
.ai-scatter-detail-slot { min-width:0; }
.ai-scatter-detail { height:100%; min-height:210px; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:10px 11px; display:grid; align-content:start; gap:10px; }
.ai-scatter-detail.is-empty { color:#667085; }
.ai-scatter-detail.is-empty strong { color:#172033; }
.ai-scatter-detail.is-empty p { margin:0; font-size:12px; line-height:1.55; }
.ai-scatter-detail-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; border-bottom:1px solid #e4ebf3; padding-bottom:9px; }
.ai-scatter-detail-head strong { display:block; color:#172033; font-size:14px; line-height:1.35; overflow-wrap:anywhere; }
.ai-scatter-detail-head span { display:block; color:#667085; font-size:12px; line-height:1.45; margin-top:3px; overflow-wrap:anywhere; }
.ai-scatter-detail-head button { flex:0 0 auto; min-height:30px; border:1px solid #cdd6e1; border-radius:7px; background:#fff; color:#344054; padding:0 9px; cursor:pointer; font-size:12px; }
.ai-scatter-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.ai-scatter-detail-grid div { min-width:0; border:1px solid #e4ebf3; border-radius:7px; background:#fff; padding:7px 8px; }
.ai-scatter-detail-grid span { display:block; color:#667085; font-size:11px; line-height:1.35; overflow-wrap:anywhere; }
.ai-scatter-detail-grid strong { display:block; margin-top:2px; color:#25374b; font-size:12px; line-height:1.35; overflow-wrap:anywhere; }
.mixed-control-panel .panel-head { margin-bottom:12px; }
.mixed-filter-grid { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:10px; align-items:end; }
.mixed-filter-grid label { display:grid; gap:5px; color:#526174; font-size:12px; font-weight:750; min-width:0; }
.mixed-filter-grid .mixed-check { display:flex; align-items:center; gap:7px; min-height:36px; border:1px solid #dbe4ee; border-radius:7px; background:#fbfdff; padding:0 10px; color:#344054; }
.mixed-reset-filters, .mixed-restore-filter { flex:0 0 auto; min-height:32px; border:1px solid #cdd6e1; border-radius:7px; background:#fff; color:#344054; padding:0 10px; font-size:12px; font-weight:850; cursor:pointer; }
.mixed-reset-filters:hover, .mixed-reset-filters:focus, .mixed-restore-filter:hover, .mixed-restore-filter:focus { border-color:#175cd3; color:#175cd3; outline:none; }
.mixed-reset-filters:disabled { cursor:not-allowed; opacity:.45; border-color:#dbe4ee; color:#8a98aa; }
.mixed-multi-control { position:relative; min-width:0; }
.mixed-multi-control summary { list-style:none; min-height:36px; border:1px solid #dbe4ee; border-radius:7px; background:#fff; color:#526174; padding:5px 28px 5px 10px; cursor:pointer; display:grid; gap:1px; line-height:1.25; }
.mixed-multi-control summary::-webkit-details-marker { display:none; }
.mixed-multi-control summary::after { content:""; position:absolute; right:10px; top:18px; width:0; height:0; border-left:4px solid transparent; border-right:4px solid transparent; border-top:5px solid #667085; }
.mixed-multi-control[open] summary { border-color:#98a5b7; box-shadow:0 0 0 2px rgba(21,112,239,.10); }
.mixed-multi-control[open] summary::after { transform:rotate(180deg); }
.mixed-multi-control summary span { color:#526174; font-size:11px; font-weight:750; }
.mixed-multi-control summary b { color:#172033; font-size:12px; font-weight:850; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mixed-multi-panel { position:absolute; z-index:20; left:0; right:0; top:calc(100% + 4px); max-height:280px; overflow:auto; border:1px solid #d6e0ea; border-radius:8px; background:#fff; box-shadow:0 12px 28px rgba(15,23,42,.14); padding:6px; display:grid; gap:3px; }
.mixed-multi-option { display:flex !important; align-items:center; gap:7px !important; min-height:28px; border-radius:6px; padding:4px 6px; color:#344054 !important; font-size:12px !important; font-weight:750 !important; cursor:pointer; }
.mixed-multi-option:hover { background:#f5f9fd; }
.mixed-multi-option.is-all { border-bottom:1px solid #edf2f7; border-radius:6px 6px 0 0; margin-bottom:2px; color:#175cd3 !important; }
.mixed-multi-option input { width:14px; height:14px; margin:0; accent-color:#0f766e; }
.mixed-kpi-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.mixed-metric .metric-value { font-size:20px; line-height:1.25; overflow-wrap:anywhere; }
.mixed-metric .metric-sub { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mixed-scatter-panel { overflow:hidden; }
.mixed-scatter-layout { display:grid; grid-template-columns:minmax(560px,1fr) minmax(290px,360px); gap:12px; align-items:stretch; }
.mixed-scatter-stage { position:relative; width:920px; max-width:100%; aspect-ratio:920 / 520; }
.mixed-scatter-canvas,
.mixed-scatter-stage .mixed-scatter-svg { position:absolute; inset:0; display:block; width:100%; height:100%; }
.mixed-scatter-stage .mixed-scatter-svg { z-index:1; pointer-events:none; }
.mixed-scatter-canvas { z-index:2; }
.mixed-scatter-tooltip { position:absolute; z-index:3; max-width:300px; padding:7px 9px; border:1px solid #cbd5e1; background:rgba(255,255,255,.97); color:#172033; box-shadow:0 4px 14px rgba(15,23,42,.12); font-size:12px; line-height:1.45; pointer-events:none; }
.mixed-scatter-legend i { width:12px; height:12px; box-shadow:none; }
.mixed-scatter-legend .mixed-market-fund-legend i { background:#bbf7d0; border:1px solid #15803d; }
.mixed-scatter-legend .mixed-market-strategy-legend i { background:#60a5fa; border:1px solid #1d4ed8; }
.mixed-scatter-legend .mixed-gf-fund-legend i { background:#facc15; border:1px solid #a16207; }
.mixed-scatter-legend .mixed-gf-strategy-legend i { background:#ef4444; border:1px solid #991b1b; }
.mixed-scatter-dot { opacity:1; stroke:#15803d; stroke-width:1; cursor:pointer; }
.mixed-scatter-dot:hover { opacity:1; stroke:#172033; stroke-width:1.8; }
.mixed-scatter-dot.is-selected { opacity:1; stroke:#111827; stroke-width:2.6; }
.mixed-scatter-dot.is-market-fund { fill:#bbf7d0; stroke:#15803d; }
.mixed-scatter-dot.is-market-strategy { fill:#60a5fa; stroke:#1d4ed8; }
.mixed-scatter-dot.is-gf-fund { fill:#facc15; stroke:#a16207; }
.mixed-scatter-dot.is-gf-strategy { fill:#ef4444; stroke:#991b1b; }
.mixed-scatter-dot.is-guangfa { opacity:1; stroke-width:2.2; paint-order:stroke; }
.mixed-scatter-dot.is-guangfa.is-selected { stroke:#7f1d1d; stroke-width:3.2; }
.mixed-peer-line { stroke:#475569; stroke-width:1.4; stroke-dasharray:6 5; pointer-events:none; }
.mixed-peer-label { fill:#334155; font-size:11px; font-weight:700; pointer-events:none; }
.mixed-zero-line { stroke:#98a5b7; stroke-width:1; stroke-dasharray:4 4; }
.mixed-detail.is-market-fund { border-left:4px solid #15803d; }
.mixed-detail.is-market-strategy { border-left:4px solid #1d4ed8; }
.mixed-detail.is-gf-fund { border-color:#fde68a; border-left:4px solid #a16207; background:#fffceb; }
.mixed-detail.is-gf-strategy { border-color:#fecaca; border-left:4px solid #991b1b; background:#fff5f5; }
.mixed-detail .ai-scatter-detail-head a { color:#172033; text-decoration:none; }
.mixed-detail .ai-scatter-detail-head a:hover { color:#175cd3; text-decoration:underline; }
.mixed-detail-link { flex:0 0 auto; min-height:30px; display:inline-flex; align-items:center; border:1px solid #cdd6e1; border-radius:7px; background:#fff; color:#344054; padding:0 9px; font-size:12px; font-weight:750; text-decoration:none; }
.mixed-badge-row { display:flex; flex-wrap:wrap; gap:6px; }
.mixed-category-badge { border:1px solid transparent; }
.mixed-category-badge.is-market-fund { background:#ecfdf3; color:#166534; border-color:#bbf7d0; }
.mixed-category-badge.is-market-strategy { background:#eff6ff; color:#1d4ed8; border-color:#bfdbfe; }
.mixed-category-badge.is-gf-fund { background:#fef9c3; color:#854d0e; border-color:#fde68a; }
.mixed-category-badge.is-gf-strategy { background:#fee2e2; color:#991b1b; border-color:#fecaca; }
.mixed-benchmark { border:1px solid #e4ebf3; border-radius:7px; background:#fff; padding:8px 9px; display:grid; gap:4px; }
.mixed-benchmark strong { color:#172033; font-size:12px; }
.mixed-benchmark p { margin:0; color:#344054; font-size:12px; line-height:1.55; overflow-wrap:anywhere; }
.mixed-benchmark span { color:#667085; font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.mixed-table-wrap { max-height:680px; overflow:auto; }
.mixed-table { min-width:1580px; }
.mixed-table thead th { position:sticky; top:0; z-index:3; background:var(--soft); }
.mixed-pager { margin:0 0 10px; padding:10px 12px; border:1px solid #e4ebf3; border-radius:8px; background:#fbfdff; }
.mixed-pager-info { color:#526174; font-size:12px; font-weight:750; }
.mixed-pager button.is-active { background:#172033; color:#fff; border-color:#172033; font-weight:850; }
.mixed-pager-ellipsis { color:#8a98aa; font-weight:750; padding:0 2px; }
.mixed-page-size { display:inline-flex; align-items:center; gap:6px; color:#526174; font-size:12px; font-weight:750; }
.mixed-page-size select { min-width:74px; height:32px; padding-top:0; padding-bottom:0; }
.mixed-sort-head { color:#24364a; }
.mixed-sort-head.is-active { color:var(--brand-dark); }
.mixed-sort-head:focus-visible { outline:2px solid rgba(21,112,239,.35); outline-offset:2px; border-radius:4px; }
.mixed-table tbody tr { cursor:pointer; }
.mixed-table tbody tr:hover { background:#f6fbff; }
.mixed-table tbody tr.is-market-fund { box-shadow:inset 4px 0 0 #86efac; }
.mixed-table tbody tr.is-market-strategy { box-shadow:inset 4px 0 0 #93c5fd; }
.mixed-table tbody tr.is-gf-fund { background:#fffde8; box-shadow:inset 4px 0 0 #eab308; }
.mixed-table tbody tr.is-gf-strategy { background:#fff5f5; box-shadow:inset 4px 0 0 #dc2626; }
.mixed-table tbody tr.is-gf-fund:hover { background:#fef7c3; }
.mixed-table tbody tr.is-gf-strategy:hover { background:#fee2e2; }
.mixed-product-cell { min-width:220px; max-width:320px; white-space:normal; }
.mixed-product-cell a { display:block; color:#172033; font-weight:850; line-height:1.35; text-decoration:none; overflow-wrap:anywhere; }
.mixed-product-cell a:hover { color:#175cd3; text-decoration:underline; }
.mixed-product-cell span { display:inline-block; margin-top:3px; color:#667085; font-size:12px; }
.mixed-product-cell em { display:inline-flex; align-items:center; height:20px; margin-left:6px; padding:0 7px; border-radius:999px; background:#fff2d6; border:1px solid #f2d08a; color:#9a5b00; font-size:12px; font-style:normal; font-weight:800; }
.mixed-table tbody tr.is-gf-fund .mixed-product-cell em { background:#fef9c3; border-color:#fde68a; color:#854d0e; }
.mixed-table tbody tr.is-gf-strategy .mixed-product-cell em { background:#fee2e2; border-color:#fecaca; color:#991b1b; }
.mixed-rank-value { display:grid; gap:2px; min-width:112px; line-height:1.25; }
.mixed-rank-value b { color:#172033; font-size:12px; font-weight:850; }
.mixed-rank-value small { color:#667085; font-size:11px; overflow-wrap:anywhere; }
.mixed-highlight-panel .panel-head { margin-bottom:10px; }
.mixed-highlight-collapsible { padding:0; overflow:hidden; }
.mixed-highlight-summary { display:grid; grid-template-columns:minmax(0,1fr) auto 28px; align-items:center; gap:12px; padding:14px 16px; cursor:pointer; list-style:none; }
.mixed-highlight-summary::-webkit-details-marker { display:none; }
.mixed-highlight-summary::after { content:"+"; display:grid; place-items:center; width:28px; height:28px; border:1px solid #cdd6e1; border-radius:6px; background:#fff; color:#344054; font-size:18px; font-weight:700; line-height:1; }
.mixed-highlight-collapsible[open] > .mixed-highlight-summary { border-bottom:1px solid #e4ebf3; }
.mixed-highlight-collapsible[open] > .mixed-highlight-summary::after { content:"-"; }
.mixed-highlight-summary:hover::after, .mixed-highlight-summary:focus::after { border-color:#98a5b7; color:#175cd3; }
.mixed-highlight-summary:focus { outline:2px solid rgba(23,92,211,.18); outline-offset:-2px; }
.mixed-highlight-summary h2 { margin:0; color:#172033; font-size:18px; line-height:1.35; }
.mixed-highlight-summary p { margin:3px 0 0; color:#667085; font-size:12px; line-height:1.5; }
.mixed-highlight-body { padding:12px 16px 16px; }
.mixed-highlight-body > .mixed-highlight-actions { margin-bottom:10px; }
.mixed-highlight-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.mixed-advantage-scope { display:inline-flex; align-items:center; flex-wrap:wrap; gap:4px; border:1px solid #dbe4ee; border-radius:8px; background:#f8fbff; padding:3px; }
.mixed-advantage-scope button { min-height:26px; border:0; border-radius:6px; background:transparent; color:#526174; padding:0 8px; font-size:12px; font-weight:850; cursor:pointer; display:inline-flex; align-items:center; gap:5px; }
.mixed-advantage-scope button:hover, .mixed-advantage-scope button:focus { color:#175cd3; background:#fff; outline:none; }
.mixed-advantage-scope button.is-active { background:#172033; color:#fff; box-shadow:0 1px 2px rgba(15,23,42,.12); }
.mixed-advantage-scope button span { opacity:.78; font-size:11px; font-weight:800; }
.mixed-advantage-method { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; margin:0 0 12px; border:1px solid #e4ebf3; border-radius:8px; background:#fbfdff; padding:10px 12px; color:#526174; font-size:12px; line-height:1.55; }
.mixed-advantage-method strong { color:#172033; font-size:13px; }
.mixed-advantage-method span { display:inline-flex; align-items:center; max-width:100%; overflow-wrap:anywhere; }
.mixed-strength-groups { display:grid; gap:12px; }
.mixed-strength-section { min-width:0; border:1px solid #e4ebf3; border-radius:8px; background:#fbfdff; padding:12px; }
.mixed-strength-section.is-obvious { border-color:#fed7aa; background:#fffaf0; }
.mixed-strength-section.is-strong { border-color:#fde68a; background:#fffdf2; }
.mixed-strength-section.is-partial { border-color:#bfdbfe; background:#f8fbff; }
.mixed-strength-section.is-watch { border-color:#d9e2ec; background:#fbfdff; }
.mixed-strength-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.mixed-strength-head h3 { display:flex; align-items:center; gap:8px; margin:0; color:#172033; font-size:15px; line-height:1.35; }
.mixed-strength-head p { margin:3px 0 0; color:#667085; font-size:12px; line-height:1.55; }
.mixed-strength-head > span { flex:0 0 auto; border:1px solid #d6e0ea; border-radius:999px; background:#fff; padding:3px 8px; color:#526174; font-size:12px; font-weight:800; }
.mixed-strength-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.mixed-advantage-card { min-width:0; border:1px solid #e4ebf3; border-radius:8px; background:#fff; padding:10px; display:grid; gap:8px; cursor:pointer; }
.mixed-advantage-card:hover, .mixed-advantage-card:focus { border-color:#98a5b7; box-shadow:0 2px 8px rgba(15,23,42,.08); outline:none; }
.mixed-advantage-card.is-gf-fund { border-color:#fde68a; background:#fffde8; }
.mixed-advantage-card.is-gf-strategy { border-color:#fecaca; background:#fff6f6; }
.mixed-advantage-card.is-selected { border-color:#172033; box-shadow:0 0 0 2px rgba(23,32,51,.16); }
.mixed-opportunity-panel { border-top:4px solid #0f766e; }
.mixed-opportunity-summary { grid-template-columns:minmax(0,1fr) auto auto; background:#f0fdfa; }
.mixed-opportunity-summary::after { display:none; }
.mixed-opportunity-toggle { min-width:112px; min-height:36px; border:1px solid #0f766e; border-radius:6px; background:#0f766e; color:#fff; padding:0 13px; display:inline-flex; align-items:center; justify-content:center; gap:7px; font-size:13px; font-weight:900; box-shadow:0 2px 5px rgba(15,118,110,.2); }
.mixed-opportunity-toggle::before { content:"展开分析"; }
.mixed-opportunity-toggle::after { content:"↓"; font-size:15px; line-height:1; }
.mixed-opportunity-panel[open] .mixed-opportunity-toggle::before { content:"收起分析"; }
.mixed-opportunity-panel[open] .mixed-opportunity-toggle::after { content:"↑"; }
.mixed-opportunity-summary:hover .mixed-opportunity-toggle, .mixed-opportunity-summary:focus .mixed-opportunity-toggle { background:#115e59; border-color:#115e59; box-shadow:0 3px 8px rgba(15,118,110,.28); }
.mixed-opportunity-section.is-opportunity-comprehensive { border-color:#fed7aa; background:#fff8ed; }
.mixed-opportunity-section.is-opportunity-steady { border-color:#bbf7d0; background:#f3fcf6; }
.mixed-opportunity-section.is-opportunity-offensive { border-color:#fecaca; background:#fff5f5; }
.mixed-opportunity-section.is-opportunity-scenario { border-color:#bfdbfe; background:#f7fbff; }
.mixed-opportunity-section.is-opportunity-improvement { border-color:#ddd6fe; background:#fbfaff; }
.mixed-opportunity-card { position:relative; }
.mixed-opportunity-card::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; border-radius:8px 0 0 8px; background:#94a3b8; }
.mixed-opportunity-card.is-opportunity-comprehensive::before { background:#f97316; }
.mixed-opportunity-card.is-opportunity-steady::before { background:#16a34a; }
.mixed-opportunity-card.is-opportunity-offensive::before { background:#ef4444; }
.mixed-opportunity-card.is-opportunity-scenario::before { background:#2563eb; }
.mixed-opportunity-card.is-opportunity-improvement::before { background:#7c3aed; }
.mixed-opportunity-card .mixed-advantage-card-head { padding-left:3px; }
.mixed-opportunity-card.is-opportunity-comprehensive { background:linear-gradient(180deg,#fff8ed 0%,#fff 62%); border-color:#fed7aa; }
.mixed-opportunity-card.is-opportunity-steady { background:linear-gradient(180deg,#f3fcf6 0%,#fff 62%); border-color:#bbf7d0; }
.mixed-opportunity-card.is-opportunity-offensive { background:linear-gradient(180deg,#fff5f5 0%,#fff 62%); border-color:#fecaca; }
.mixed-opportunity-card.is-opportunity-scenario { background:linear-gradient(180deg,#f7fbff 0%,#fff 62%); border-color:#bfdbfe; }
.mixed-opportunity-card.is-opportunity-improvement { background:linear-gradient(180deg,#fbfaff 0%,#fff 62%); border-color:#ddd6fe; }
.mixed-opportunity-badge-row { display:flex; align-items:center; flex-wrap:wrap; gap:6px; color:#526174; font-size:11px; line-height:1.35; }
.mixed-opportunity-badge { display:inline-flex; align-items:center; min-height:20px; border:1px solid #cdd6e1; border-radius:999px; background:#fff; color:#172033; padding:0 7px; font-weight:850; }
.mixed-opportunity-focus { border:1px solid rgba(15,118,110,.18); border-radius:8px; background:rgba(240,253,250,.78); padding:8px 9px; }
.mixed-opportunity-focus b { display:block; color:#0f766e; font-size:11px; line-height:1.3; margin-bottom:3px; }
.mixed-opportunity-focus p { margin:0; color:#172033; font-size:13px; line-height:1.55; font-weight:800; overflow-wrap:anywhere; }
.mixed-opportunity-actions { display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.mixed-advantage-card-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:start; }
.mixed-advantage-score { display:grid; justify-items:end; gap:1px; min-width:58px; }
.mixed-advantage-score b { color:#172033; font-size:18px; line-height:1; }
.mixed-advantage-score small { color:#667085; font-size:10px; line-height:1.2; }
.mixed-star-rating { display:inline-flex; align-items:center; gap:0; color:#f59e0b; font-size:12px; line-height:1; letter-spacing:0; white-space:nowrap; }
.mixed-star-rating i { color:#d0d5dd; font-style:normal; }
.mixed-highlight-basis { margin:0 0 8px; border:1px dashed #d6e0ea; border-radius:7px; background:#fff; padding:6px 7px; color:#526174; font-size:11px; line-height:1.45; }
.mixed-highlight-basis b { color:#344054; }
.mixed-highlight-main { display:grid; gap:2px; min-width:0; }
.mixed-highlight-main a, .mixed-highlight-main strong { color:#172033; font-size:13px; font-weight:850; line-height:1.35; text-decoration:none; overflow-wrap:anywhere; }
.mixed-highlight-main a:hover { color:#175cd3; text-decoration:underline; }
.mixed-highlight-main span { color:#667085; font-size:11px; line-height:1.35; overflow-wrap:anywhere; }
.mixed-highlight-rank .mixed-rank-value { min-width:0; }
.mixed-highlight-metrics { display:flex; flex-wrap:wrap; gap:4px 8px; color:#526174; font-size:11px; line-height:1.4; }
.mixed-evidence-list { display:grid; gap:4px; }
.mixed-evidence-list span { border-left:3px solid #d6e0ea; background:rgba(255,255,255,.72); padding:4px 6px; color:#405063; font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.mixed-advantage-card.is-gf-fund .mixed-evidence-list span { border-left-color:#f59e0b; }
.mixed-advantage-card.is-gf-strategy .mixed-evidence-list span { border-left-color:#ef4444; }
.mixed-advantage-detail { border-top:1px solid rgba(148,163,184,.28); padding-top:6px; color:#526174; font-size:11px; line-height:1.6; }
.mixed-advantage-detail summary { cursor:pointer; color:#344054; font-weight:850; list-style-position:inside; }
.mixed-advantage-view { margin-top:7px; border:1px solid rgba(214,224,234,.8); border-radius:7px; background:rgba(255,255,255,.78); padding:7px; }
.mixed-advantage-view b { display:block; margin-bottom:3px; color:#172033; font-size:11px; }
.mixed-advantage-view p { margin:0; color:#405063; font-size:11px; line-height:1.65; overflow-wrap:anywhere; }
.mixed-highlight-select { justify-self:start; min-height:28px; border:1px solid #cdd6e1; border-radius:6px; background:#fff; color:#344054; padding:0 8px; font-size:11px; font-weight:850; cursor:pointer; }
.mixed-highlight-select:hover, .mixed-highlight-select:focus { border-color:#175cd3; color:#175cd3; outline:none; }
.mixed-profile-modal { position:fixed; inset:0; z-index:80; display:flex; align-items:center; justify-content:center; background:rgba(15,23,42,.44); padding:22px; }
.mixed-profile-dialog { position:relative; width:min(1120px, calc(100vw - 44px)); max-height:calc(100vh - 44px); overflow:auto; border:1px solid #dbe4ee; border-radius:10px; background:#fff; box-shadow:0 24px 70px rgba(15,23,42,.28); padding:18px; }
.mixed-profile-close { position:absolute; top:12px; right:12px; width:32px; height:32px; border:1px solid #d6e0ea; border-radius:999px; background:#fff; color:#344054; font-size:20px; line-height:1; cursor:pointer; }
.mixed-profile-close:hover, .mixed-profile-close:focus { border-color:#172033; color:#172033; outline:none; }
.mixed-profile-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:start; padding-right:40px; margin-bottom:14px; }
.mixed-profile-head h2 { margin:8px 0 3px; color:#172033; font-size:24px; line-height:1.25; overflow-wrap:anywhere; }
.mixed-profile-head p { margin:0; color:#667085; font-size:12px; line-height:1.45; }
.mixed-profile-score { display:grid; justify-items:end; gap:3px; min-width:86px; }
.mixed-profile-score b { color:#172033; font-size:30px; line-height:1; }
.mixed-profile-score span { color:#667085; font-size:11px; font-weight:850; }
.mixed-profile-summary { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:10px; margin-bottom:14px; }
.mixed-profile-summary > div { min-width:0; border:1px solid #e4ebf3; border-radius:8px; background:#fbfdff; padding:10px; }
.mixed-profile-summary strong { display:block; color:#0f766e; font-size:12px; margin-bottom:4px; }
.mixed-profile-summary p { margin:0; color:#24364a; font-size:13px; line-height:1.6; font-weight:750; overflow-wrap:anywhere; }
.mixed-profile-body { display:grid; grid-template-columns:minmax(300px,.86fr) minmax(360px,1.14fr); gap:14px; align-items:start; }
.mixed-profile-radar-card, .mixed-profile-evidence-card { min-width:0; border:1px solid #e4ebf3; border-radius:8px; background:#fff; padding:12px; }
.mixed-profile-radar-card h3, .mixed-profile-evidence-card h3 { margin:0 0 8px; color:#172033; font-size:15px; }
.mixed-profile-radar { display:block; width:100%; max-width:360px; margin:0 auto; }
.mixed-profile-radar-grid { fill:none; stroke:#e4ebf3; stroke-width:1; }
.mixed-profile-radar-spoke { stroke:#edf2f7; stroke-width:1; }
.mixed-profile-radar-area { fill:rgba(15,118,110,.24); stroke:#0f766e; stroke-width:2; }
.mixed-profile-radar-point { fill:#0f766e; stroke:#fff; stroke-width:1.5; }
.mixed-profile-radar-label { fill:#405063; font-size:11px; font-weight:800; }
.mixed-profile-ability-table { display:grid; gap:7px; }
.mixed-profile-ability-row { display:grid; grid-template-columns:minmax(0,1fr) 52px 76px 96px; gap:8px; align-items:center; border:1px solid #edf2f7; border-radius:7px; background:#fbfdff; padding:8px; }
.mixed-profile-ability-row strong { display:block; color:#172033; font-size:13px; line-height:1.35; }
.mixed-profile-ability-row span { display:block; margin-top:2px; color:#667085; font-size:11px; line-height:1.45; }
.mixed-profile-ability-row b { justify-self:end; color:#0f766e; font-size:20px; line-height:1; }
.mixed-profile-ability-row em { color:#24364a; font-size:12px; font-style:normal; font-weight:850; text-align:right; }
.mixed-profile-ability-row small { color:#667085; font-size:11px; text-align:right; line-height:1.35; }
.mixed-profile-views { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:14px; }
.mixed-profile-views > div { min-width:0; border:1px solid #e4ebf3; border-radius:8px; background:#fbfdff; padding:10px; }
.mixed-profile-views b { display:block; color:#172033; font-size:13px; margin-bottom:5px; }
.mixed-profile-views p { margin:0; color:#405063; font-size:12px; line-height:1.65; overflow-wrap:anywhere; }
.mixed-profile-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-top:14px; border-top:1px solid #edf2f7; padding-top:12px; }
.mixed-profile-link, .mixed-profile-close-secondary { min-height:30px; display:inline-flex; align-items:center; border:1px solid #cdd6e1; border-radius:6px; background:#fff; color:#344054; padding:0 10px; font-size:12px; font-weight:850; text-decoration:none; cursor:pointer; }
.mixed-profile-link:hover, .mixed-profile-close-secondary:hover { border-color:#175cd3; color:#175cd3; }
.mixed-note-panel p { margin:0; color:#526174; font-size:12px; line-height:1.7; }
.ai-diagnostic-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:14px; }
.ai-diagnostic-card { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:10px 11px; min-width:0; }
.ai-diagnostic-card strong { display:block; color:#172033; font-size:13px; margin-bottom:5px; overflow-wrap:anywhere; }
.ai-diagnostic-card span { display:block; color:#59697d; font-size:12px; line-height:1.55; }
.entity-panel { border-left:4px solid #1570ef; }
.collapsible-panel { padding:0; overflow:hidden; }
.collapsible-panel > .collapsible-summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:14px; cursor:pointer; padding:18px; }
.collapsible-panel > .collapsible-summary::-webkit-details-marker { display:none; }
.collapsible-panel > .collapsible-summary::after { content:"展开"; flex:0 0 auto; border:1px solid #cdd6e1; border-radius:999px; background:#fff; color:#0f4f58; padding:4px 9px; font-size:12px; font-weight:800; }
.collapsible-panel[open] > .collapsible-summary::after { content:"收起"; }
.collapsible-body { border-top:1px solid #edf2f7; padding:16px 18px 18px; }
.collapsible-summary h2 { margin:0; }
.collapsible-summary .desc { margin:4px 0 0; }
.fund-hero-panel { border-top:4px solid #1570ef; }
.fund-chip-row { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
.fund-chip-row span { display:inline-flex; align-items:center; gap:5px; border:1px solid #dbe4ee; border-radius:999px; background:#f8fbfd; color:#405063; padding:4px 8px; font-size:12px; }
.fund-chip-row .field-label .info-button { display:none; }
.fund-hero-metrics .stat-grid { margin-top:6px; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); }
.fund-profile-details { margin-top:14px; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:10px; }
.fund-profile-details > summary { cursor:pointer; color:#172033; font-weight:850; font-size:13px; margin-bottom:10px; }
.fund-profile-details .stat-grid { grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
.fund-table-panel .table-wrap { border-radius:8px; }
.fund-table-panel table tbody tr:nth-child(even) { background:#f8fbfd; }
.fund-table-panel table td:first-child, .fund-table-panel table th:first-child { position:sticky; left:0; background:inherit; box-shadow:1px 0 0 #edf2f7; z-index:1; }
.fund-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.86fr); gap:18px; padding:18px; background:linear-gradient(135deg,#f7fbfc 0%,#fff 58%,#fff7f2 100%); }
.fund-hero h1 { font-size:28px; line-height:1.2; overflow-wrap:anywhere; }
.fund-hero-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; align-content:start; }
.fund-hero-metrics .hero-kpi { min-width:0; }
.fund-profile-panel { border-left:4px solid #0f766e; }
.fund-info-section { margin-top:14px; }
.fund-info-section:first-of-type { margin-top:0; }
.fund-info-section h3 { margin:0 0 8px; color:#172033; font-size:14px; }
.fund-info-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.fund-info-card { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:9px 10px; }
.fund-info-card span { display:block; color:#667085; font-size:12px; line-height:1.35; }
.fund-info-card strong { display:block; margin-top:4px; color:#172033; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
.fund-info-card .field-label .info-button, .fund-kpi-strip .field-label .info-button { display:none; }
.fund-theme-tags { display:flex; flex-wrap:wrap; gap:7px; margin:10px 0 4px; }
.fund-theme-tags span { border:1px solid #dbe4ee; border-radius:999px; background:#fff; color:#405063; padding:4px 8px; font-size:12px; }
.fund-entity-section .panel-head { margin-bottom:6px; }
.fund-nav-panel, .fund-asset-panel, .fund-holding-report-panel, .fund-classification-panel { border-left:4px solid #d92d20; }
.fund-kpi-strip { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:9px; margin:12px 0; }
.fund-kpi-strip > div { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:8px 9px; min-width:0; }
.fund-kpi-strip span { display:block; color:#667085; font-size:12px; line-height:1.35; }
.fund-kpi-strip strong { display:block; margin-top:3px; color:#172033; font-size:14px; line-height:1.35; overflow-wrap:anywhere; }
.fund-nav-svg-wrap { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; overflow:hidden; }
.fund-nav-svg-wrap { position:relative; }
.fund-nav-svg-wrap svg { display:block; width:100%; min-height:320px; }
.fund-nav-legend { display:flex; flex-wrap:wrap; gap:12px; padding:10px 12px 0; color:#526174; font-size:12px; }
.fund-nav-legend span { display:inline-flex; align-items:center; gap:6px; }
.fund-nav-legend i { width:10px; height:10px; border-radius:50%; display:inline-block; }
.fund-nav-hover-capture { fill:rgba(255,255,255,.001); cursor:crosshair; pointer-events:all; }
.fund-nav-hover-line { stroke:#344054; stroke-width:1.2; stroke-dasharray:4 4; }
.fund-nav-tooltip { position:absolute; z-index:12; min-width:270px; max-width:320px; border:1px solid #cdd6e1; border-radius:8px; background:#fff; box-shadow:0 12px 28px rgba(16,24,40,.16); padding:10px 12px; color:#344054; font-size:12px; pointer-events:none; }
.fund-nav-tooltip strong { display:block; margin-bottom:7px; color:#172033; font-size:13px; }
.fund-nav-tip-row { display:grid; grid-template-columns:minmax(0,1fr) 58px 76px; gap:8px; align-items:center; line-height:1.8; }
.fund-nav-tip-row span { display:flex; align-items:center; gap:6px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fund-nav-tip-row i { width:9px; height:9px; border-radius:50%; display:inline-block; flex:none; }
.fund-nav-tip-row b, .fund-nav-tip-row em { text-align:right; font-style:normal; white-space:nowrap; }
.fund-report-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:12px 0; }
.fund-report-card, .fund-report-block { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:12px; }
.fund-report-block { margin-top:12px; }
.fund-report-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.fund-report-card-head h3 { margin:0; color:#172033; font-size:14px; line-height:1.35; }
.fund-report-card-head span { color:#667085; font-size:12px; font-weight:700; text-align:right; line-height:1.35; }
.fund-report-meta { display:flex; flex-wrap:wrap; gap:8px 14px; color:#667085; font-size:12px; margin-top:10px; }
.fund-asset-bars { display:grid; gap:8px; }
.fund-asset-bars.compact { margin-top:8px; }
.fund-asset-bar { display:grid; grid-template-columns:minmax(70px,110px) minmax(120px,1fr) 58px; gap:9px; align-items:center; }
.fund-asset-bar span { color:#344054; font-size:12px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fund-asset-bar > div { height:10px; border-radius:999px; background:#edf2f7; overflow:hidden; }
.fund-asset-bar i { display:block; height:100%; border-radius:999px; background:#1570ef; }
.fund-asset-bar strong { color:#172033; font-size:12px; text-align:right; }
.fund-two-col { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:12px; align-items:start; }
.fund-two-col .fund-report-block { margin-top:0; }
.fund-industry-bars { display:grid; gap:8px; }
.fund-industry-bar { display:grid; grid-template-columns:minmax(76px,130px) minmax(120px,1fr) 58px 44px; gap:8px; align-items:center; }
.fund-industry-bar span { color:#344054; font-size:12px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fund-industry-bar > div { height:10px; border-radius:999px; background:#edf2f7; overflow:hidden; }
.fund-industry-bar i { display:block; height:100%; border-radius:999px; background:#0f766e; }
.fund-industry-bar strong { color:#172033; font-size:12px; text-align:right; }
.fund-industry-bar em { color:#667085; font-size:11px; font-style:normal; text-align:right; }
.fund-coverage-panel { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:12px; margin:12px 0; }
.fund-coverage-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; }
.fund-coverage-grid div { min-width:0; border:1px solid #e5eaf0; border-radius:7px; background:#fff; padding:8px; }
.fund-coverage-grid span { display:block; color:#667085; font-size:11px; line-height:1.35; }
.fund-coverage-grid strong { display:block; margin-top:3px; color:#172033; font-size:13px; line-height:1.35; overflow-wrap:anywhere; }
.fund-coverage-grid .field-label .info-button { display:none; }
.fund-coverage-panel p { margin:10px 0 0; color:#526174; font-size:12px; line-height:1.65; }
.fund-lookthrough-notice { border:1px solid #fedf89; border-left:4px solid #f79009; border-radius:8px; background:#fffbeb; padding:10px 12px; margin:12px 0; }
.fund-lookthrough-notice strong { display:block; color:#7a4a12; font-size:13px; margin-bottom:4px; }
.fund-lookthrough-notice p { margin:0; color:#5f4313; font-size:12px; line-height:1.65; }
.entity-group { margin-top:12px; }
.entity-group h3 { margin:0 0 8px; color:#172033; font-size:14px; }
.entity-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.entity-badge { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:9px 10px; display:grid; gap:6px; }
.entity-badge > div { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.entity-badge strong { display:block; color:#172033; font-size:13px; line-height:1.35; overflow-wrap:anywhere; }
.entity-badge span { display:block; color:#667085; font-size:11px; line-height:1.35; margin-top:2px; overflow-wrap:anywhere; }
.entity-badge em { flex:0 0 auto; color:#0f4f58; font-size:12px; font-style:normal; font-weight:800; white-space:nowrap; }
.entity-badge p { margin:0; color:#59697d; font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.portfolio-holding-panel { border-left:4px solid #d92d20; }
.portfolio-table-wrap { overflow:auto; max-width:100%; min-width:0; border:1px solid #d8e0ea; border-radius:8px; background:#fff; }
.portfolio-holding-table { width:100%; min-width:1180px; border-collapse:separate; border-spacing:0; font-size:12px; line-height:1.35; }
.portfolio-holding-table th, .portfolio-holding-table td { border-right:1px solid #e4e9f0; border-bottom:1px solid #edf1f5; padding:7px 8px; vertical-align:middle; }
.portfolio-holding-table th:last-child, .portfolio-holding-table td:last-child { border-right:0; }
.portfolio-holding-table thead th { text-align:center; color:#263342; background:#ffe7e7; font-weight:800; white-space:nowrap; }
.portfolio-holding-table thead .portfolio-super-head th { background:#e92828; color:#fff; font-size:13px; letter-spacing:0; border-color:#f56b6b; }
.portfolio-holding-table tbody tr:nth-child(even) td:not(.portfolio-category) { background:#fafbfc; }
.portfolio-holding-table tfoot td { background:#f7f9fb; color:#172033; font-weight:850; }
.portfolio-category { min-width:72px; text-align:center; background:#f3f5f8; color:#263342; font-weight:850; }
.portfolio-code { font-family:Consolas,"SFMono-Regular",monospace; font-weight:800; white-space:nowrap; }
.portfolio-name { min-width:190px; max-width:260px; font-weight:750; }
.portfolio-name .link { display:inline-block; color:#172033; line-height:1.35; }
.portfolio-name .link:hover, .portfolio-code .link:hover { color:#175cd3; text-decoration:underline; }
.portfolio-weight { display:grid; grid-template-columns:minmax(42px,1fr) 54px; gap:6px; align-items:center; min-width:104px; }
.portfolio-weight span { height:13px; border-radius:999px; background:#f3d6d8; overflow:hidden; display:block; }
.portfolio-weight i { display:block; height:100%; min-width:2px; border-radius:999px; background:linear-gradient(90deg,#ffb2b2,#d92d20); }
.portfolio-weight b { color:#172033; font-weight:850; text-align:right; white-space:nowrap; }
.portfolio-holding-table .ret-pos { color:#b42318; font-weight:800; }
.portfolio-holding-table .ret-neg { color:#0f766e; font-weight:800; }
.portfolio-holding-table .ret-zero { color:#526174; font-weight:800; }
.value-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
.value-row { border: 1px solid #e2e8f0; border-left: 3px solid #9ab7c2; border-radius: 7px; background: linear-gradient(180deg, #ffffff 0%, #f8fbfd 100%); padding: 8px 10px; min-width: 0; }
.value-row strong { display: block; color: #52627a; font-size: 12px; margin-bottom: 3px; font-weight:650; }
.value-row span { display: block; overflow-wrap: anywhere; color:#172033; font-weight:600; }
.value-row span .ret-pos, .value-row span .ret-neg, .value-row span .ret-zero { font-size:15px; font-weight:750; }
.value-row.is-pos { border-left-color:var(--pos); background:#fff7f4; }
.value-row.is-neg { border-left-color:var(--neg); background:#f3fbf7; }
.value-row.is-zero { border-left-color:#8aa0b6; background:#f8fafc; }
.value-row.benchmark-row { grid-column:1 / -1; border-left-color:var(--pos); background:#fff6f3; }
.value-row.benchmark-row strong, .value-row.benchmark-row span { color:#b42318; }
.value-em { color:#0f4f58; font-weight:700; }
.value-code { font-family: Consolas, "SFMono-Regular", monospace; color:#344054; background:#f3f6f9; border-radius:4px; padding:1px 4px; }
.value-date { color:#0f4f58; font-weight:650; }
.value-muted { color:var(--muted); }
.fold-block { border:1px solid var(--line); border-radius:8px; background:#fbfcfd; margin-top:12px; overflow:hidden; }
.fold-block summary { cursor:pointer; padding:10px 12px; color:#344054; font-weight:650; }
.fold-block[open] summary { border-bottom:1px solid var(--line); }
.fold-block .value-list { padding:10px 12px 12px; }
.source-note-list { border:1px solid #dbe4ee; border-left:4px solid var(--brand); border-radius:8px; background:#fbfdff; padding:10px 12px; margin-top:10px; }
.source-note-list p { margin:4px 0; color:#526174; font-size:12px; line-height:1.65; overflow-wrap:anywhere; }
.source-note-list p.warn { color:var(--bad); background:#fff6f3; border:1px solid #f4c7c1; border-radius:6px; padding:6px 8px; }
.source-note-list b { color:#24364a; font-weight:700; margin-right:4px; }
.chart-panel { position: relative; }
.chart-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.chart-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.chart-actions .filter-field { grid-template-columns:auto minmax(150px, 220px); align-items:center; margin:0; }
.chart-actions .filter-field span { color:#647287; font-size:12px; font-weight:700; white-space:nowrap; }
.chart-actions .filter-field:has(#gfOpportunityFundType),
.chart-actions .filter-field:has(#holdingFundType),
.chart-actions .filter-field:has(#gfHoldingFundType),
.chart-actions .filter-field:has(#rebalanceFundSecondaryCategoryRank),
.chart-actions .filter-field:has(#rebalanceFundCompanyRank) { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:6px 8px; }
.chart-actions .filter-field:has(#gfOpportunityFundType) > span::before,
.chart-actions .filter-field:has(#holdingFundType) > span::before,
.chart-actions .filter-field:has(#gfHoldingFundType) > span::before { content:"仓位分析 · "; color:#0f766e; font-weight:850; }
.chart-actions .filter-field:has(#rebalanceFundSecondaryCategoryRank) > span::before,
.chart-actions .filter-field:has(#rebalanceFundCompanyRank) > span::before { content:"调仓分析 · "; color:#b7791f; font-weight:850; }
.benchmark-select { width: min(260px, 100%); }
.range-tabs { display:inline-flex; gap:4px; padding:3px; background:#f1f4f7; border:1px solid var(--line); border-radius:8px; }
.range-tabs button { border:0; background:transparent; padding:6px 10px; border-radius:6px; color:#405063; cursor:pointer; }
.range-tabs button.is-active { background:#fff; color:var(--brand-dark); box-shadow:0 1px 3px rgba(16,24,40,.10); }
.data-tabs { display:inline-flex; gap:4px; padding:3px; background:#f1f4f7; border:1px solid var(--line); border-radius:8px; }
.data-tabs button { border:0; background:transparent; padding:6px 12px; border-radius:6px; color:#405063; cursor:pointer; }
.data-tabs button.is-active { background:#fff; color:var(--brand-dark); box-shadow:0 1px 3px rgba(16,24,40,.10); }
.chart { width: 100%; height: 330px; border: 1px solid var(--line); border-radius: 8px; background: #fbfcfd; position: relative; overflow:hidden; display:flex; flex-direction:column; }
.chart svg { display:block; width:100%; flex:1; min-height:0; }
.chart-tooltip { position:absolute; pointer-events:none; min-width:210px; max-width:360px; background:rgba(255,255,255,.96); border:1px solid #cfd8e3; border-radius:8px; padding:10px 12px; box-shadow:0 12px 30px rgba(15,23,42,.16); font-size:12px; color:#263342; z-index:5; }
.chart-tooltip strong { display:block; margin-bottom:6px; font-size:13px; }
.chart-tip-row { display:flex; justify-content:space-between; gap:14px; line-height:1.8; }
.chart-tip-row span:first-child { display:inline-flex; align-items:center; gap:6px; }
.chart-dot { width:8px; height:8px; border-radius:50%; display:inline-block; }
.legend { display:flex; flex-wrap:wrap; gap:10px 14px; color:#405063; font-size:12px; padding:10px 12px 0; }
.legend-item { display:inline-flex; align-items:center; gap:6px; cursor:pointer; user-select:none; }
.legend-item input { width:13px; height:13px; margin:0; accent-color:var(--brand); }
.legend span { display:inline-flex; align-items:center; gap:6px; }
.legend i { width:18px; height:3px; border-radius:999px; display:inline-block; }
.hover-line { stroke:#64748b; stroke-width:1.2; stroke-dasharray:4 4; }
.axis-text { fill:#657080; font-size:11px; }
.tick-line { stroke:#e5ebf2; }
.interval-matrix th:first-child, .interval-matrix td:first-child { position: sticky; left: 0; background: #fff; z-index: 2; font-weight:650; }
.position-layout { display:grid; grid-template-columns: 280px minmax(0,1fr); gap:14px; align-items:start; min-width:0; }
.position-detail { min-width:0; overflow-x:auto; }
.rebalance-list { border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff; max-height:520px; overflow-y:auto; }
.rebalance-item { display:block; width:100%; text-align:left; border:0; border-bottom:1px solid var(--line); background:#fff; padding:10px 12px; cursor:pointer; color:var(--ink); }
.rebalance-item:hover { background:#f6fafb; }
.rebalance-item.is-active { background:#eaf6f7; box-shadow: inset 3px 0 0 var(--brand); }
.rebalance-item strong { display:block; font-size:13px; margin-bottom:3px; }
.rebalance-item span { display:block; color:var(--muted); font-size:12px; }
.holding-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:10px; }
.holding-head h3 { margin:0; }
.holding-head p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.rebalance-research { border:1px solid #dbe4ee; border-left:4px solid var(--brand); border-radius:8px; background:#fbfdff; padding:10px 12px; margin:0 0 10px; }
.rebalance-research-meta { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.rebalance-research-meta span { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px; background:#fff; padding:2px 8px; color:#405063; font-size:12px; }
.rebalance-research-grid { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:10px; }
.rebalance-research-grid div { min-width:0; }
.rebalance-research-grid strong { display:block; color:#24364a; font-size:12px; margin-bottom:4px; }
.rebalance-research-grid p { margin:0; color:#526174; line-height:1.65; font-size:12px; overflow-wrap:anywhere; white-space:normal; }
.compact-table th, .compact-table td { padding:8px 9px; }
.modal {
  position: fixed;
  inset: 0;
  background: rgba(16, 24, 40, 0.35);
  display: grid;
  place-items: center;
  padding: 20px;
  z-index: 50;
  overflow: auto;
}
.modal[hidden] { display: none; }
.modal-panel {
  width: min(1080px, calc(100vw - 40px));
  max-height: calc(100vh - 40px);
  background: #fff;
  border-radius: 8px;
  padding: 20px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
  position: relative;
  margin: auto;
  overflow: hidden;
}
.modal-close {
  position: absolute;
  right: 12px;
  top: 10px;
  width: 30px;
  height: 30px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  font-size: 18px;
}
.modal-panel #fieldModalBody { margin-bottom: 0; color: #344054; white-space: pre-line; line-height:1.7; max-height:calc(100vh - 150px); overflow:auto; }
.modal-summary { display:grid; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:8px; margin:0 0 12px; white-space:normal; }
.modal-summary span { display:block; border:1px solid var(--line); border-radius:8px; padding:8px; background:#f8fafc; color:#647287; font-size:12px; }
.modal-summary b { display:block; color:#101828; font-size:14px; margin-top:2px; }
.detail-table { border:1px solid var(--line); border-radius:8px; overflow:auto; max-height:min(54vh, 500px); white-space:normal; }
.detail-table table { width:100%; border-collapse:collapse; font-size:12px; min-width:760px; }
.detail-table th, .detail-table td { padding:8px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.detail-table th { position:sticky; top:0; z-index:1; background:#fff; color:#475467; }
.detail-table tr:last-child td { border-bottom:0; }
.fund-adjust-list { display:grid; gap:5px; min-width:260px; }
.fund-adjust-list span { display:grid; grid-template-columns:minmax(120px, 1fr) auto auto; gap:8px; align-items:center; padding:5px 7px; border-radius:6px; background:#f8fafc; }
.fund-adjust-list b { color:#25374b; font-weight:650; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fund-adjust-list em { color:#647287; font-style:normal; white-space:nowrap; }
.fund-adjust-list strong { font-weight:750; white-space:nowrap; }
.fund-adjust-list .is-add strong { color:#b42318; }
.fund-adjust-list .is-reduce strong { color:#0f766e; }
.fund-adjust-list small { color:#647287; }
.detail-button { border:1px solid var(--line); background:#fff; color:var(--brand); border-radius:6px; padding:5px 8px; cursor:pointer; font-weight:700; }
.detail-button:hover { background:#f6fafb; }
.detail-button.is-primary { background:var(--brand); color:#fff; border-color:var(--brand); }
.detail-button.is-primary:hover { background:var(--brand-dark); }
.detail-note { color:#647287; font-size:12px; margin:8px 0 0; white-space:normal; }
@media (max-width: 720px) {
  .modal { padding:12px; }
  .modal-panel { width:calc(100vw - 24px); max-height:calc(100vh - 24px); padding:16px; }
  .modal-panel #fieldModalBody { max-height:calc(100vh - 130px); }
}
.empty { color: var(--muted); padding: 18px; }
.warn { color: var(--bad); }
.insight-filters { display:grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap:10px; margin-bottom:14px; }
.insight-filters .filter-field { display:grid; grid-template-columns:1fr; gap:4px; min-width:0; }
.insight-filters .filter-field span { color:#647287; font-size:11px; font-weight:700; line-height:1.2; }
.insight-sticky-controls { position:sticky; top:64px; z-index:18; box-shadow:0 10px 22px rgba(15,23,42,.07); }
.insight-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:2px 0 14px; }
.insight-tab-button { border:1px solid var(--line); background:#fff; color:#344054; border-radius:8px; padding:8px 12px; cursor:pointer; font-weight:650; }
.insight-tab-button:hover { background:#f6fafb; }
.insight-tab-button.is-active { color:#fff; background:var(--brand); border-color:var(--brand); }
.insight-layout { display:grid; grid-template-columns: 1fr; gap:16px; align-items:start; }
.insight-panel-stack { display:grid; gap:16px; }
.insight-mini-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:10px; }
.insight-dimension-grid { display:grid; grid-template-columns: 1fr; gap:16px; }
.insight-conclusion-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:10px; }
.insight-conclusion-card { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:11px 12px; }
.insight-conclusion-card.is-good { border-left:4px solid var(--good); background:#f5fbf8; }
.insight-conclusion-card.is-warn { border-left:4px solid var(--gold); background:#fffaf2; }
.insight-conclusion-card.is-bad { border-left:4px solid var(--bad); background:#fff6f3; }
.insight-conclusion-card strong { display:block; color:#172033; font-size:14px; margin-bottom:6px; }
.insight-conclusion-card p { margin:0; color:#526174; font-size:12px; line-height:1.6; }
.fvla-grid { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap:8px; margin-top:8px; }
.fvla-item { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:8px 9px; font-size:12px; line-height:1.55; color:#526174; }
.fvla-item b { display:block; margin-bottom:3px; color:#172033; font-size:12px; }
.weekly-rank-list { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:12px; }
.weekly-rank-card { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:10px 12px; }
.weekly-rank-card h3 { margin:0 0 8px; font-size:14px; color:#172033; }
.weekly-rank-card ol { margin:0; padding-left:20px; display:grid; gap:6px; color:#526174; font-size:12px; line-height:1.55; }
.focus-decision-list { display:grid; gap:10px; }
.focus-decision-card { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:12px; display:grid; gap:8px; }
.focus-decision-card.is-good { border-left:4px solid var(--good); background:#f5fbf8; }
.focus-decision-card.is-warn { border-left:4px solid var(--gold); background:#fffaf2; }
.focus-decision-card.is-bad { border-left:4px solid var(--bad); background:#fff6f3; }
.focus-decision-card strong { color:#172033; font-size:15px; }
.focus-decision-card p { margin:0; color:#526174; font-size:12px; line-height:1.65; }
.insight-exec-grid { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap:10px; }
.insight-goal-grid { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap:10px; }
.goal-card { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:12px; }
.goal-card.is-good { border-left:4px solid var(--good); background:#f5fbf8; }
.goal-card.is-warn { border-left:4px solid var(--gold); background:#fffaf2; }
.goal-card.is-bad { border-left:4px solid var(--bad); background:#fff6f3; }
.goal-card strong { display:block; color:#172033; font-size:15px; margin-bottom:5px; }
.goal-card span { display:block; color:#667085; font-size:12px; line-height:1.4; margin-bottom:7px; }
.goal-card p { margin:0; color:#344054; font-size:12px; line-height:1.6; }
.focus-section-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:12px; align-items:start; }
.focus-list { display:grid; gap:8px; }
.focus-list-item { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:10px; font-size:12px; line-height:1.6; color:#526174; }
.focus-list-item strong { display:block; color:#172033; font-size:13px; margin-bottom:3px; }
.focus-list-item .small { display:block; margin-top:3px; }
.insight-callout { border:1px solid #dbe4ee; border-left:4px solid var(--brand); border-radius:8px; background:#fbfdff; padding:10px 12px; color:#526174; font-size:12px; line-height:1.7; }
.insight-callout strong { color:#172033; }
.strategy-decision-summary { display:grid; gap:12px; margin:12px 0 14px; }
.strategy-decision-head { display:grid; grid-template-columns:minmax(0, 1fr) minmax(260px, .75fr); gap:12px; align-items:start; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:12px; }
.strategy-decision-head strong { display:block; color:#172033; font-size:15px; margin-bottom:4px; }
.strategy-decision-head span { color:#526174; font-size:12px; line-height:1.6; }
.strategy-type-strip { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.strategy-type-strip span { display:inline-flex; align-items:center; gap:5px; border:1px solid #dbe4ee; border-radius:999px; background:#fff; color:#526174; padding:3px 8px; font-size:12px; }
.strategy-type-strip b { color:#172033; }
.strategy-decision-kpis { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:10px; }
.strategy-decision-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; align-items:start; }
.strategy-decision-card { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fff; overflow:hidden; }
.strategy-decision-card.is-good { border-left:4px solid var(--good); }
.strategy-decision-card.is-warn { border-left:4px solid var(--gold); }
.strategy-decision-card.is-bad { border-left:4px solid var(--bad); }
.strategy-decision-card header { padding:10px 12px; border-bottom:1px solid #e6edf4; background:#f8fbfd; }
.strategy-decision-card header strong { display:block; color:#172033; font-size:14px; }
.strategy-decision-card header span { display:block; margin-top:3px; color:#667085; font-size:12px; line-height:1.4; }
.strategy-decision-list { display:grid; gap:0; }
.strategy-decision-item { display:grid; grid-template-columns:minmax(0, 1fr) 102px 98px; gap:8px; align-items:start; padding:10px 12px; border-bottom:1px solid #eef2f6; }
.strategy-decision-item:last-child { border-bottom:0; }
.strategy-decision-item span, .strategy-decision-item small { display:block; color:#667085; font-size:12px; line-height:1.45; margin-top:3px; overflow-wrap:anywhere; }
.strategy-decision-item b { color:#172033; font-size:12px; line-height:1.45; text-align:right; }
.strategy-decision-item em { color:#7a8797; font-style:normal; font-size:12px; line-height:1.45; text-align:right; }
.insight-hero { display:grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap:10px; }
.insight-kpi { min-width:0; border:1px solid #d7e0ea; border-radius:8px; background:#fff; padding:11px 12px; }
.insight-kpi span { display:block; color:#647287; font-size:12px; line-height:1.25; }
.insight-kpi strong { display:block; margin-top:5px; color:#172033; font-size:22px; line-height:1.15; overflow-wrap:anywhere; }
.insight-kpi small { display:block; margin-top:4px; color:#7a8797; font-size:11px; line-height:1.35; }
.insight-kpi.is-good { border-left:4px solid var(--good); background:#f5fbf8; }
.insight-kpi.is-warn { border-left:4px solid var(--gold); background:#fffaf2; }
.insight-kpi.is-bad { border-left:4px solid var(--bad); background:#fff6f3; }
.insight-grid { display:grid; grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr); gap:16px; align-items:start; }
.insight-stack { display:grid; gap:16px; }
.insight-section-note { color:#5d6b7c; font-size:12px; line-height:1.7; margin:0 0 10px; }
.insight-bar-list { display:grid; gap:9px; }
.insight-bar-row { display:grid; grid-template-columns: minmax(112px, 160px) minmax(0, 1fr) minmax(180px, 230px); align-items:center; gap:10px; font-size:12px; color:#526174; }
.insight-bar-track { position:relative; height:18px; border-radius:999px; background:#eef3f8; overflow:hidden; }
.insight-bar-fill { position:absolute; inset:0 auto 0 0; border-radius:999px; background:#166c77; min-width:2px; }
.insight-bar-fill.is-target { background:#b42318; height:8px; top:5px; }
.insight-bar-label { color:#25374b; font-weight:650; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.insight-bar-row b { text-align:right; line-height:1.35; overflow-wrap:anywhere; }
.signal-direction-chart { display:grid; gap:9px; margin:4px 0 14px; }
.signal-chart-axis { display:flex; justify-content:space-between; gap:12px; color:#647287; font-size:12px; padding:0 4px; }
.signal-x-axis { display:grid; grid-template-columns:minmax(140px, 210px) minmax(260px, 1fr) minmax(230px, 300px); gap:10px; align-items:end; min-height:24px; font-size:11px; color:#647287; }
.signal-x-track { position:relative; height:22px; border-bottom:1px solid #cfd8e3; }
.signal-x-track span { position:absolute; bottom:0; transform:translateX(-50%); white-space:nowrap; }
.signal-x-track span::before { content:""; display:block; width:1px; height:6px; margin:0 auto 3px; background:#aab7c5; }
.signal-chart-row { display:grid; grid-template-columns:minmax(140px, 210px) minmax(260px, 1fr) minmax(230px, 300px); gap:10px; align-items:center; font-size:12px; }
.signal-chart-label { color:#25374b; font-weight:650; line-height:1.35; overflow-wrap:anywhere; }
.signal-chart-track { position:relative; height:24px; border-radius:6px; background:linear-gradient(90deg,#eef7f5 0 50%,#fff1f0 50% 100%); border:1px solid #dbe4ee; overflow:hidden; }
.signal-zero { position:absolute; top:0; bottom:0; left:50%; width:1px; background:#647287; opacity:.8; }
.signal-bar { position:absolute; top:5px; height:12px; border-radius:999px; min-width:2px; }
.signal-bar.is-add { background:#b42318; }
.signal-bar.is-reduce { background:#0f766e; }
.signal-chart-meta { display:grid; gap:2px; text-align:right; color:#526174; min-width:0; }
.signal-chart-meta b { color:#25374b; }
.signal-chart-meta span { overflow-wrap:anywhere; line-height:1.25; }
.compact-control { width:auto; min-width:136px; max-width:190px; }
.institution-control { width:auto; min-width:180px; max-width:260px; }
.scatter-hover-tip { white-space:normal; line-height:1.55; transform:translate(0, 0); }
.scatter-hover-tip span { display:block; overflow-wrap:anywhere; }
.asset-company-list { display:flex; flex-wrap:wrap; gap:6px; min-width:360px; white-space:normal; }
.asset-company-item { display:inline-grid; grid-template-columns:auto auto; gap:2px 6px; align-items:center; border:1px solid #dbe4ee; border-radius:7px; background:#f8fbfd; padding:4px 7px; color:#405063; }
.asset-company-item.is-gf { border-color:#f2b9ad; background:#fff6f3; box-shadow:inset 0 0 0 1px rgba(180,35,24,.08); }
.asset-company-item b { color:#172033; font-weight:750; }
.asset-company-item em { color:#b42318; font-style:normal; font-weight:750; }
.asset-company-item small { grid-column:1 / -1; color:#7a8797; font-size:11px; }
.asset-trend-layout { display:grid; grid-template-columns:minmax(0, 1.2fr) minmax(280px, .8fr); gap:12px; align-items:start; }
.asset-trend-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
.asset-trend-card { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:10px; }
.asset-trend-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; margin-bottom:8px; }
.asset-trend-head strong { color:#172033; font-size:13px; line-height:1.3; overflow-wrap:anywhere; }
.asset-trend-head span { color:#526174; font-size:12px; font-weight:700; white-space:nowrap; }
.asset-month-bars { display:grid; grid-template-columns:repeat(6, minmax(24px, 1fr)); align-items:end; gap:6px; height:148px; padding-top:6px; border-bottom:1px solid #dbe4ee; }
.asset-month-bar { position:relative; min-width:0; height:100%; display:grid; grid-template-rows:minmax(0, 1fr) 18px; gap:5px; align-items:end; text-align:center; color:#647287; font-size:11px; }
.asset-month-bar i { align-self:end; display:block; width:100%; min-height:3px; border-radius:5px 5px 0 0; background:#8aa0b6; }
.asset-month-bar.is-up i { background:#b42318; }
.asset-month-bar.is-down i { background:#0f766e; }
.asset-month-bar.is-flat i, .asset-month-bar.is-base i { background:#8aa0b6; }
.asset-month-bar span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.asset-month-tip { display:none; position:absolute; left:50%; bottom:100%; transform:translate(-50%, -8px); z-index:8; min-width:150px; max-width:210px; border:1px solid #cfd8e3; border-radius:8px; background:rgba(255,255,255,.98); box-shadow:0 12px 28px rgba(15,23,42,.16); padding:8px 10px; color:#263342; font-style:normal; font-size:12px; line-height:1.55; text-align:left; white-space:normal; pointer-events:none; }
.asset-month-bar:hover .asset-month-tip { display:block; }
.asset-trend-legend { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 8px; color:#526174; font-size:12px; }
.asset-trend-legend span { display:inline-flex; align-items:center; gap:5px; }
.asset-trend-legend i { width:10px; height:10px; border-radius:2px; display:inline-block; }
.heatmap-wrap { overflow:auto; border:1px solid #dbe4ee; border-radius:8px; background:#fff; }
.heatmap-table { min-width:920px; font-size:12px; }
.heatmap-table th, .heatmap-table td { text-align:center; padding:8px 9px; }
.heatmap-table thead th { position:sticky; top:0; z-index:2; background:#f7fafc; }
.heatmap-table th:first-child { position:sticky; left:0; z-index:3; text-align:left; background:#f7fafc; }
.heat-cell { font-weight:800; border-left:1px solid rgba(255,255,255,.35); line-height:1.35; min-width:108px; }
.advisor-heat-cell { min-width:148px; }
.heat-cell b { display:block; font-size:12px; }
.heat-cell small { display:block; font-size:10px; font-weight:650; opacity:.92; white-space:nowrap; }
.heatmap-note { margin-top:10px; }
.insight-pager { margin-top:10px; justify-content:flex-end; }
.pager-btn { height:32px; min-width:64px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); cursor:pointer; }
.pager-btn:disabled { cursor:not-allowed; color:#a0aaba; background:#f4f6f8; }
.insight-chip { display:inline-flex; align-items:center; justify-content:center; min-width:56px; border-radius:999px; padding:2px 8px; font-size:12px; border:1px solid #dbe4ee; background:#f8fbfd; color:#405063; }
.insight-chip.good { color:var(--good); background:#edf8f2; border-color:#bde5d2; }
.insight-chip.warn { color:#9a5a16; background:#fff8e8; border-color:#efd29d; }
.insight-chip.bad { color:var(--bad); background:#fff1ef; border-color:#f4c7c1; }
.insight-secondary-row td { background:#fbfdff; border-top:0; padding-top:0; }
.link-button { border:0; background:transparent; padding:0; color:var(--brand-dark); font:inherit; font-weight:700; cursor:pointer; text-align:left; }
.link-button:hover { text-decoration:underline; }
.fund-name-actions { display:flex; align-items:center; gap:8px; min-width:190px; }
.fund-name-actions .link-button { min-width:0; white-space:normal; line-height:1.35; }
.mini-link { display:inline-flex; align-items:center; justify-content:center; border:1px solid #cfe2e6; border-radius:6px; padding:2px 6px; color:var(--brand-dark); background:#f7fbfc; font-size:12px; font-weight:700; white-space:nowrap; }
.mini-link:hover { background:#eaf5f7; }
.fund-row { cursor:pointer; }
.fund-row.is-open td { background:#f6fbfc; }
.fund-detail-block { padding:10px 0 4px; min-width:680px; }
.fund-detail-title { color:#344054; font-size:12px; font-weight:750; margin:0 0 8px; }
.fund-link-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.fund-hero .classification-summary { gap:8px; }
.class-metric em { display:block; margin-top:4px; color:#667085; font-size:11px; font-style:normal; line-height:1.35; }
.exposure-list { display:flex; flex-wrap:wrap; gap:6px; }
.exposure-list span { border:1px solid #dbe4ee; background:#fbfdff; border-radius:6px; padding:4px 7px; color:#26384c; font-size:12px; font-weight:700; }
.sort-label { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.sort-th { width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #cdd6e1; border-radius:5px; background:#fff; color:#41546a; cursor:pointer; font-size:12px; line-height:1; }
.sort-th:hover { border-color:var(--brand); color:var(--brand-dark); background:#f6fbfc; }
.row-detail { border:1px solid #dbe4ee; border-radius:8px; background:#fff; overflow:hidden; }
.row-detail > summary { cursor:pointer; list-style:none; padding:9px 11px; color:#344054; font-size:12px; font-weight:700; display:flex; gap:8px; align-items:center; justify-content:space-between; }
.row-detail > summary::-webkit-details-marker { display:none; }
.row-detail > summary::after { content:"展开"; color:#0f4f58; font-weight:750; }
.row-detail[open] > summary { border-bottom:1px solid #dbe4ee; background:#f7fbfc; }
.row-detail[open] > summary::after { content:"收起"; }
.row-detail-body { padding:10px 11px 12px; display:grid; gap:10px; }
.product-compare-note { color:#526174; font-size:12px; line-height:1.6; display:grid; gap:4px; }
.product-compare-table { overflow:auto; border:1px solid #e2e8f0; border-radius:8px; }
.product-compare-table table { min-width:860px; font-size:12px; }
.product-compare-table th { background:#f7fafc; color:#526174; }
.product-compare-table td, .product-compare-table th { padding:7px 8px; border-bottom:1px solid #edf2f7; text-align:left; vertical-align:top; }
.compare-scope { display:inline-flex; align-items:center; border-radius:999px; padding:2px 7px; border:1px solid #dbe4ee; background:#f8fbfd; color:#405063; font-size:11px; font-weight:700; }
.compare-scope.gf { border-color:#f4c7c1; background:#fff6f3; color:#b42318; }
.compare-scope.market { border-color:#bde5d2; background:#edf8f2; color:#0f7a4f; }
.opportunity-list { display:grid; gap:10px; }
.opportunity-row { display:grid; grid-template-columns: 86px minmax(0,1fr) 86px; gap:10px; align-items:center; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:10px; }
.opportunity-row strong { color:#172033; }
.opportunity-row p { margin:4px 0 0; color:#647287; font-size:12px; line-height:1.55; }
.score-badge { display:inline-flex; align-items:center; justify-content:center; width:58px; height:58px; border-radius:50%; background:#fff3f1; color:var(--bad); border:1px solid #f2b8b1; font-weight:800; }
.score-badge.mid { background:#fff8e8; color:#9a5a16; border-color:#efd29d; }
.score-badge.low { background:#edf8f2; color:var(--good); border-color:#bde5d2; }
.rank-list { display:grid; gap:8px; }
.rank-row { display:grid; grid-template-columns: minmax(0,1fr) 72px 70px; gap:10px; align-items:center; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:9px 10px; }
.rank-row strong { display:block; color:#172033; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rank-row span { display:block; margin-top:3px; color:#667085; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rank-value { text-align:right; font-weight:800; color:#172033; }
.logic-chip { display:inline-flex; align-items:center; border-radius:999px; border:1px solid #dbe4ee; background:#f8fbfd; color:#344054; padding:2px 8px; font-size:12px; font-style:normal; white-space:nowrap; }
.insight-table table { font-size:12px; }
.insight-table td, .insight-table th { padding:8px 9px; }
.insight-table .small { display:block; margin-top:3px; line-height:1.45; white-space:normal; }
.source-method { border:1px solid #dbe4ee; border-left:4px solid var(--brand); border-radius:8px; background:#fbfdff; padding:10px 12px; color:#526174; font-size:12px; line-height:1.7; }
.compare-selector-panel { display:grid; gap:14px; }
.compare-search-row { display:grid; grid-template-columns:minmax(280px,1fr) 220px; gap:12px; align-items:end; }
.compare-search-box, .compare-peer-box { display:grid; gap:6px; color:#475467; font-size:12px; font-weight:700; }
.compare-peer-fixed { display:flex; align-items:center; min-height:38px; background:#f0fdfa; border-color:#99d5ca; color:#115e59; font-weight:900; }
.compare-peer-box em { color:#667085; font-size:11px; font-style:normal; font-weight:650; line-height:1.4; }
.compare-basket { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:10px; display:grid; gap:8px; }
.compare-basket-head { display:flex; justify-content:space-between; align-items:center; color:#344054; font-size:12px; }
.compare-chip-list { display:flex; flex-wrap:wrap; gap:8px; min-height:34px; align-items:center; }
.compare-chip { display:inline-grid; grid-template-columns:minmax(90px,1fr) auto; grid-template-areas:"name close" "meta close"; gap:1px 8px; align-items:center; max-width:310px; border:1px solid #cdd6e1; border-radius:999px; background:#fff; padding:6px 8px 6px 12px; }
.compare-chip b { grid-area:name; color:#172033; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.compare-chip b .link { color:#172033; text-decoration:none; }
.compare-chip b .link:hover { color:#175cd3; text-decoration:underline; }
.compare-chip em { grid-area:meta; color:#667085; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; font-style:normal; }
.compare-chip button { grid-area:close; width:22px; height:22px; border:0; border-radius:50%; background:#eef2f6; color:#475467; cursor:pointer; }
.empty-inline { color:#98a2b3; font-size:12px; }
.compare-pick-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.compare-pick-card { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:10px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
.compare-pick-card strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.compare-pick-card span { display:block; margin-top:3px; color:#667085; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.compare-pick-card button, .compare-recommend-list button, .ghost-button { border:1px solid #cdd6e1; background:#fff; color:#0f4f58; border-radius:7px; padding:6px 10px; font-size:12px; font-weight:750; cursor:pointer; }
.compare-pick-card button:disabled, .compare-recommend-list button:disabled { opacity:.45; cursor:not-allowed; }
.compare-pick-metrics { text-align:right; font-size:12px; }
.compare-pick-metrics b { display:block; color:#172033; white-space:nowrap; }
.compare-pick-metrics em { display:block; color:#667085; font-style:normal; margin-top:3px; white-space:nowrap; }
.compare-return-chart { min-height:360px; }
.compare-return-chart svg path { stroke-width:3.6 !important; }
.compare-asset-list { display:grid; gap:12px; }
.compare-asset-row { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:12px; display:grid; gap:9px; }
.compare-row-title { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.compare-row-title strong { color:#172033; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.compare-row-title span { color:#667085; font-size:12px; white-space:nowrap; }
.compare-stack-bar { height:16px; border-radius:999px; overflow:hidden; background:#eef2f6; display:flex; }
.compare-stack-bar.is-thick { height:20px; }
.compare-stack-bar i { display:block; min-width:1px; }
.compare-asset-legend, .compare-tool-metrics { display:flex; flex-wrap:wrap; gap:8px 12px; color:#526174; font-size:12px; }
.compare-asset-legend span, .compare-tool-metrics span { display:inline-flex; align-items:center; gap:5px; }
.compare-asset-legend i { width:9px; height:9px; border-radius:50%; display:inline-block; }
.compare-asset-legend b, .compare-tool-metrics b { color:#172033; }
.compare-advisor-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.compare-advisor-card { min-width:0; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:12px; display:grid; gap:10px; }
.compare-advisor-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.compare-advisor-head strong { display:block; color:#172033; font-size:14px; line-height:1.35; }
.compare-advisor-head span { display:block; color:#667085; font-size:12px; margin-top:2px; }
.compare-advisor-head > b { color:#b42318; background:#fff3f0; border:1px solid #f4c7c1; border-radius:999px; padding:2px 7px; font-size:11px; white-space:nowrap; }
.compare-advisor-tags { display:flex; flex-wrap:wrap; gap:5px; min-height:24px; }
.compare-advisor-tags span { border:1px solid #dbe4ee; border-radius:999px; background:#f8fbfd; color:#405063; padding:2px 7px; font-size:11px; }
.compare-advisor-kpis, .compare-advisor-meta { display:grid; gap:7px; }
.compare-advisor-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
.compare-advisor-meta { grid-template-columns:1fr; }
.compare-advisor-kpis span, .compare-advisor-meta span { border:1px solid #edf2f7; border-radius:7px; background:#fbfdff; padding:7px; color:#667085; font-size:11px; min-width:0; }
.compare-advisor-kpis b, .compare-advisor-meta b { display:block; margin-top:3px; color:#172033; font-size:13px; overflow-wrap:anywhere; }
.compare-advisor-card p { margin:0; color:#526174; font-size:12px; line-height:1.55; max-height:54px; overflow:auto; }
.compare-strategy-distribution { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
.compare-strategy-dist-card { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:12px; display:grid; gap:9px; min-width:0; }
.compare-dist-funds { display:grid; gap:4px; color:#526174; font-size:12px; line-height:1.5; }
.compare-dist-funds b { color:#172033; }
.compare-dist-funds span { overflow-wrap:anywhere; }
.compare-fund-grid, .compare-rebalance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.compare-fund-card, .compare-rebalance-card { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:12px; overflow:auto; }
.compare-fund-card h3, .compare-rebalance-card h3 { margin:0 0 8px; font-size:14px; color:#172033; }
.compare-fund-card h3 .link, .compare-rebalance-card h3 .link, .compare-row-title strong .link, .overlap-matrix th .link { color:#172033; text-decoration:none; }
.compare-fund-card h3 .link:hover, .compare-rebalance-card h3 .link:hover, .compare-row-title strong .link:hover, .overlap-matrix th .link:hover { color:#175cd3; text-decoration:underline; }
.compare-fund-card table, .compare-rebalance-card table { width:100%; border-collapse:collapse; font-size:12px; min-width:520px; }
.compare-fund-card th, .compare-fund-card td, .compare-rebalance-card th, .compare-rebalance-card td { text-align:left; border-bottom:1px solid #edf2f7; padding:7px 6px; vertical-align:top; }
.compare-rebalance-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:10px 0; }
.compare-rebalance-kpis span { border:1px solid #edf2f7; border-radius:7px; padding:7px; background:#fbfdff; color:#667085; font-size:11px; }
.compare-rebalance-kpis b { display:block; margin-top:4px; font-size:13px; }
.compare-selection-bars { display:grid; gap:7px; margin:8px 0 10px; }
.compare-selection-bars div { display:grid; grid-template-columns:56px minmax(0,1fr) 70px; gap:8px; align-items:center; color:#667085; font-size:12px; }
.compare-selection-bars i { height:10px; border-radius:999px; background:#d92d20; display:block; min-width:2px; }
.compare-selection-bars i.is-neg { background:#12805c; }
.compare-selection-bars b { color:#172033; text-align:right; }
.compare-reason, .compare-ai-summary { display:grid; gap:4px; margin:8px 0; color:#475467; font-size:12px; line-height:1.55; }
.compare-ai-summary span { max-height:82px; overflow:auto; }
.compare-scatter-wrap { display:grid; gap:8px; }
.compare-scatter-wrap svg { width:100%; min-height:330px; display:block; }
.compare-scatter-point { opacity:.68; stroke:#fff; stroke-width:1.5; cursor:pointer; transition:opacity .12s ease, stroke-width .12s ease; }
.compare-scatter-point.is-background { opacity:.42; stroke:#f8fafc; stroke-width:1; }
.compare-scatter-point.is-background:hover { opacity:.8; stroke:#475467; stroke-width:1.8; }
.compare-scatter-point.is-gf { opacity:.86; }
.compare-scatter-point.is-background.is-gf { opacity:.42; }
.compare-scatter-point.is-selected { opacity:1; stroke:#fff; stroke-width:2.8; filter:drop-shadow(0 2px 3px rgba(15,23,42,.28)); }
.compare-scatter-point.is-point-selected { opacity:1; stroke:#101828; stroke-width:3.5; filter:drop-shadow(0 2px 5px rgba(15,23,42,.36)); }
.compare-scatter-label { font-size:11px; font-weight:800; paint-order:stroke; stroke:#fff; stroke-width:3px; stroke-linejoin:round; }
.compare-quadrant-label { fill:#98a2b3; font-size:10px; font-weight:750; }
.compare-scatter-legend { display:flex; flex-wrap:wrap; gap:12px; color:#667085; font-size:12px; }
.compare-scatter-legend span { display:inline-flex; align-items:center; gap:5px; }
.compare-scatter-legend i { width:9px; height:9px; border-radius:50%; background:#7a8699; display:inline-block; }
.compare-scatter-legend i.is-gf { background:#0f766e; }
.compare-scatter-legend i.is-selected { background:#d92d20; }
.compare-scatter-legend .is-selected-strategy { color:#172033; font-weight:750; }
.compare-scatter-legend .is-peer-sample, .compare-scatter-legend .is-peer-category { color:#7a8699; }
.compare-scatter-legend .is-peer-sample i { background:#cbd5e1; }
.compare-recommend-list { display:grid; gap:8px; }
.overlap-matrix-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
.overlap-matrix-card { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:10px; overflow:auto; }
.overlap-matrix-card h3 { margin:0 0 8px; font-size:13px; color:#172033; }
.overlap-matrix { width:100%; border-collapse:separate; border-spacing:2px; font-size:11px; min-width:360px; }
.overlap-matrix th { max-width:110px; color:#526174; font-weight:750; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:5px; }
.overlap-cell { border-radius:5px; padding:0; text-align:center; font-weight:800; }
.overlap-cell button { width:100%; min-width:54px; border:0; background:transparent; color:inherit; font:inherit; padding:6px 7px; cursor:pointer; border-radius:5px; }
.overlap-cell button:hover { outline:2px solid rgba(21,112,239,.34); outline-offset:-2px; }
.overlap-cell.is-empty { background:#f8fafc; color:#98a2b3; padding:6px 7px; }
.overlap-cell.is-self { background:#f1f5f9; color:#98a2b3; padding:6px 7px; font-weight:700; }
.overlap-cell.is-selected { box-shadow:inset 0 0 0 2px #101828; }
.overlap-detail-panel { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:12px; display:grid; gap:10px; margin-top:4px; }
.overlap-detail-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.overlap-detail-head strong { color:#172033; display:block; font-size:14px; }
.overlap-detail-head span { color:#667085; display:block; margin-top:3px; font-size:12px; }
.overlap-detail-head b { color:#172033; font-size:18px; white-space:nowrap; }
.overlap-detail-panel p { color:#526174; font-size:12px; line-height:1.6; margin:0; }
.overlap-detail-table { overflow:auto; border:1px solid #e5eaf0; border-radius:8px; background:#fff; }
.overlap-detail-table table { width:100%; min-width:680px; border-collapse:collapse; font-size:12px; }
.overlap-detail-table th, .overlap-detail-table td { text-align:left; border-bottom:1px solid #edf2f7; padding:7px 8px; vertical-align:top; }
.overlap-detail-table th { background:#f8fafc; color:#526174; font-weight:750; }
.compare-ai-panel { border-left:4px solid #1570ef; }
.compare-ai-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.compare-ai-grid > div { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:12px; }
.compare-ai-grid h3 { margin:0 0 8px; color:#172033; font-size:14px; }
.compare-ai-grid p { margin:0 0 7px; color:#475467; font-size:12px; line-height:1.6; }
.compare-distribution-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.compare-distribution-card { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:12px; display:grid; gap:10px; align-content:start; }
.compare-distribution-card h3 { margin:0; color:#172033; font-size:14px; }
.compare-distribution-card p { margin:0; color:#526174; font-size:12px; line-height:1.6; }
.compare-share-list { display:grid; gap:9px; }
.compare-share-row { display:grid; grid-template-columns:minmax(120px,1.1fr) minmax(120px,1fr) auto; gap:9px; align-items:center; }
.compare-share-row strong { display:block; color:#172033; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.compare-share-row span { display:block; color:#667085; font-size:11px; margin-top:2px; }
.compare-share-row b { color:#172033; font-size:12px; white-space:nowrap; }
.compare-share-bar { height:9px; background:#eef2f6; border-radius:999px; overflow:hidden; }
.compare-share-bar i { display:block; height:100%; background:#1570ef; border-radius:999px; }
.compare-selection-card .table-wrap { margin-top:8px; }
.compare-exposure-list { margin-top:2px; }
.compare-exposure-row .compare-asset-legend { max-height:68px; overflow:auto; }
.compare-profit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:12px; }
.compare-profit-card { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:12px; display:grid; gap:9px; min-width:0; }
.compare-point-detail { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:12px; display:grid; gap:9px; }
.compare-point-detail strong { display:block; color:#172033; font-size:14px; }
.compare-point-title-link { color:#172033; text-decoration:none; }
.compare-point-title-link:hover { color:#175cd3; text-decoration:underline; }
.compare-point-detail span, .compare-point-detail p { color:#526174; font-size:12px; line-height:1.55; margin:0; }
.compare-point-kpis { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; }
.compare-point-kpis span { border:1px solid #e5eaf0; border-radius:7px; background:#fff; padding:7px; color:#667085; font-size:11px; }
.compare-point-kpis b { display:block; color:#172033; margin-top:3px; }
.compare-point-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.compare-point-actions button { border:1px solid #cdd6e1; background:#fff; color:#0f4f58; border-radius:7px; padding:6px 10px; font-size:12px; font-weight:750; cursor:pointer; }
.compare-point-actions button:disabled { opacity:.45; cursor:not-allowed; }

.topic-selector-panel { border-left:4px solid #0f766e; }
.topic-selector-panel .panel-head { align-items:flex-start; }
.topic-selector-panel .control { max-width:280px; }
.topic-selector-controls { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; align-items:center; }
.topic-selector-group { display:grid; gap:8px; margin-top:12px; }
.topic-selector-group strong { color:#172033; font-size:13px; }
.topic-chip-row { display:flex; flex-wrap:wrap; gap:8px; }
.topic-theme-chip { border:1px solid #dbe4ee; border-radius:8px; background:#fff; color:#172033; padding:8px 10px; display:grid; gap:4px; min-width:172px; max-width:260px; text-align:left; cursor:pointer; }
.topic-theme-chip span { font-size:13px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.topic-theme-chip em { color:#667085; font-style:normal; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.topic-chip-bar { display:block; height:4px; border-radius:999px; background:#edf2f7; overflow:hidden; margin-top:2px; }
.topic-chip-bar b { display:block; height:100%; border-radius:999px; background:#0f766e; }
.topic-theme-chip:hover { border-color:#98a2b3; background:#fbfdff; }
.topic-theme-chip.is-active { border-color:#0f766e; box-shadow:0 0 0 2px rgba(15,118,110,.12); background:#f0fdfa; }
.topic-theme-chip.is-active .topic-chip-bar b { background:#d92d20; }
.topic-skipped { margin-top:12px; border:1px dashed #dbe4ee; border-radius:8px; background:#fbfdff; padding:9px 10px; color:#526174; font-size:12px; }
.topic-skipped summary { cursor:pointer; color:#344054; font-weight:750; }
.topic-skipped p { margin:6px 0 0; line-height:1.5; }
.topic-kpi-grid { margin-bottom:16px; }
.topic-method-panel { border-left:4px solid #1570ef; }
.topic-threshold { border:1px solid #f4c7c1; background:#fff6f3; color:#b42318; border-radius:999px; padding:4px 10px; font-size:12px; font-weight:750; white-space:nowrap; }
.topic-filter-panel { border-left:4px solid #d92d20; }
.topic-filter-controls { display:grid; grid-template-columns:minmax(180px,.75fr) minmax(260px,1.2fr) minmax(280px,1fr); gap:12px; align-items:end; }
.topic-filter-controls label { display:grid; gap:5px; color:#405063; font-size:12px; font-weight:750; min-width:0; }
.topic-threshold-control { display:grid; grid-template-columns:minmax(160px,1fr) 84px 18px; gap:8px; align-items:center; }
.topic-threshold-control input[type="range"] { width:100%; accent-color:#d92d20; }
.topic-filter-counts { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.topic-filter-counts span { border:1px solid #dbe4ee; border-radius:999px; background:#fff; color:#526174; padding:6px 9px; font-size:12px; }
.topic-filter-counts b { color:#172033; }
.topic-logic-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.topic-logic-grid > div { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:12px; min-width:0; }
.topic-logic-grid strong { display:block; color:#172033; font-size:13px; margin-bottom:5px; }
.topic-logic-grid p { margin:0; color:#526174; font-size:12px; line-height:1.65; }
.topic-keyword-row { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.topic-keyword-row span { border:1px solid #dbe4ee; border-radius:999px; background:#fff; color:#405063; padding:4px 8px; font-size:12px; }
.topic-chart { position:relative; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:12px; overflow:visible; }
.topic-chart svg, .topic-scatter-wrap svg { display:block; width:100%; min-height:320px; }
.topic-chart-legend, .topic-scatter-legend { display:flex; flex-wrap:wrap; gap:12px; color:#526174; font-size:12px; margin-bottom:8px; }
.topic-chart-legend span, .topic-scatter-legend span { display:inline-flex; align-items:center; gap:6px; }
.topic-chart-legend i, .topic-scatter-legend i { width:10px; height:10px; border-radius:50%; display:inline-block; }
.topic-trend-controls { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:0 0 12px; }
.topic-select-label { display:grid; gap:5px; min-width:280px; color:#405063; font-size:12px; font-weight:750; }
.topic-select-label .control { min-height:34px; }
.topic-benchmark-checks { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; max-width:720px; }
.topic-check { display:inline-flex; align-items:center; gap:5px; border:1px solid #dbe4ee; border-radius:999px; background:#fff; padding:5px 9px; color:#405063; font-size:12px; font-weight:700; cursor:pointer; }
.topic-check input { margin:0; }
.topic-axis-text { fill:#405063; font-size:12px; font-weight:700; }
.topic-axis-title { fill:#344054; font-size:12px; font-weight:800; }
.topic-line-dot { pointer-events:none; }
.topic-hover-capture { fill:transparent; cursor:crosshair; }
.topic-hover-line { stroke:#344054; stroke-width:1.2; stroke-dasharray:4 4; pointer-events:none; }
.topic-hover-point { pointer-events:none; }
.topic-chart-tooltip { position:absolute; z-index:20; min-width:230px; max-width:286px; border:1px solid #cdd6e1; border-radius:8px; background:#fff; box-shadow:0 10px 28px rgba(16,24,40,.16); padding:9px 10px; color:#344054; font-size:12px; line-height:1.45; pointer-events:none; }
.topic-chart-tooltip strong { display:block; margin-bottom:6px; color:#172033; font-size:12px; }
.topic-tip-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:2px 0; }
.topic-tip-row span { display:flex; align-items:center; gap:6px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.topic-tip-row i { flex:none; width:9px; height:9px; border-radius:50%; display:inline-block; }
.topic-tip-row b { white-space:nowrap; }
.topic-benchmark-note { margin-top:10px; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:11px 12px; color:#526174; font-size:12px; line-height:1.65; }
.topic-benchmark-note strong { display:block; color:#172033; font-size:13px; margin:0 0 3px; }
.topic-benchmark-note p { margin:0 0 8px; }
.topic-benchmark-note ul { margin:0; padding-left:18px; }
.topic-benchmark-note li { margin:2px 0; }
.topic-scatter-legend .is-selected { background:#d92d20; }
.topic-scatter-legend .is-background { background:#cbd5e1; }
.topic-line-path { filter:drop-shadow(0 1px 1px rgba(16,24,40,.08)); }
.topic-scatter-wrap { display:grid; gap:10px; }
.topic-scatter-point { cursor:pointer; transition:opacity .12s ease, stroke-width .12s ease, r .12s ease; }
.topic-scatter-point.is-background { opacity:.55; stroke:#fff; stroke-width:1; }
.topic-scatter-point.is-background:hover { opacity:.9; stroke:#475467; stroke-width:1.8; }
.topic-scatter-point.is-selected { opacity:1; stroke:#fff; stroke-width:2.4; filter:drop-shadow(0 2px 5px rgba(15,23,42,.28)); }
.topic-scatter-point.is-selected:hover { stroke:#101828; stroke-width:3; }
.topic-scatter-label { font-size:10px; font-weight:800; paint-order:stroke; stroke:#fff; stroke-width:3px; stroke-linejoin:round; }
.topic-point-detail { border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:12px; display:grid; gap:9px; }
.topic-point-detail strong { color:#172033; font-size:14px; }
.topic-point-kpis { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; }
.topic-point-kpis span { border:1px solid #e5eaf0; border-radius:7px; background:#fff; padding:7px; color:#667085; font-size:11px; min-width:0; }
.topic-point-kpis b { display:block; color:#172033; margin-top:3px; overflow-wrap:anywhere; }
.topic-fund-chip-row { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.topic-fund-chip { display:inline-flex; align-items:center; gap:5px; border:1px solid #dbe4ee; border-radius:999px; background:#fff; color:#405063; padding:4px 8px; max-width:260px; font-size:12px; }
.topic-fund-chip strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; color:#172033; }
.topic-fund-chip span, .topic-fund-chip em { color:#667085; font-style:normal; white-space:nowrap; }
.topic-fund-chip:hover { border-color:#98a2b3; color:#175cd3; }
.topic-selected-table table { min-width:1180px; }
.topic-sort-head { color:#24364a; }
.topic-sort-head.is-active { color:var(--brand-dark); }
.topic-sort-head:focus-visible { outline:2px solid rgba(21,112,239,.35); outline-offset:2px; border-radius:4px; }
.topic-selected-table td:first-child { min-width:160px; }
.topic-selected-table td:last-child { min-width:260px; }
.target-profit-kpis .metric-value .ret-pos,
.target-profit-kpis .metric-value .ret-neg,
.target-profit-kpis .metric-value .ret-zero { font-size:24px; }
.target-profit-method-panel { border-left:4px solid #0f766e; }
.target-profit-guide-grid { margin-bottom:12px; }
.target-profit-quality-row { display:flex; flex-wrap:wrap; gap:8px; color:#526174; font-size:12px; }
.target-profit-quality-row span { border:1px solid #dbe4ee; border-radius:999px; background:#fff; padding:5px 9px; }
.target-profit-quality-row b { color:#172033; }
.target-profit-filter-panel { border-left:4px solid #d92d20; }
.target-profit-search { grid-column:span 2; }
.button.ghost { border:1px solid #cdd6e1; background:#fff; color:#0f4f58; border-radius:7px; padding:7px 10px; font-size:12px; font-weight:750; cursor:pointer; }
.button.ghost:hover { background:#f6fafb; box-shadow:0 1px 3px rgba(16,24,40,.10); }
.target-bar-list { display:grid; gap:9px; }
.target-bar-row { display:grid; grid-template-columns:minmax(180px, 260px) minmax(240px,1fr) minmax(190px,240px); gap:10px; align-items:center; width:100%; border:1px solid #dbe4ee; border-radius:8px; background:#fbfdff; padding:9px 10px; text-align:left; cursor:pointer; font:inherit; }
.target-bar-row:hover { border-color:#98a2b3; background:#f6fafb; box-shadow:0 1px 3px rgba(16,24,40,.10); }
.target-bar-row.is-active { border-color:#0f766e; background:#ecfdf3; box-shadow:inset 0 0 0 1px rgba(15,118,110,.28); }
.target-bar-label strong { display:block; color:#172033; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.target-bar-label span { display:block; margin-top:2px; color:#667085; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.target-bar-track { height:22px; border:1px solid #dbe4ee; border-radius:999px; background:#eef3f8; overflow:hidden; }
.target-bar-track b { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#0f766e,#1570ef); }
.target-bar-meta { text-align:right; color:#526174; font-size:12px; }
.target-bar-meta b { display:block; color:#172033; font-size:13px; }
.target-scatter-panel { border-left:4px solid #1570ef; }
.target-scatter-controls { justify-content:flex-end; }
.target-scatter-controls .filter-field { min-width:170px; }
.target-scatter-hint { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:8px 0 4px; color:#667085; font-size:12px; }
.target-scatter-hint span { display:inline-flex; align-items:center; gap:5px; border:1px solid #dbe4ee; border-radius:999px; background:#fff; padding:3px 8px; }
.target-scatter-hint i { width:9px; height:9px; border-radius:999px; background:#cbd5e1; box-shadow:0 0 0 1px #fff; }
.target-scatter-hint i.is-active { background:#1570ef; }
.target-scatter-hint i.is-gf { width:12px; height:12px; border-radius:0; background:#175cd3; box-shadow:none; clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 94%,50% 72%,21% 94%,32% 57%,2% 35%,39% 35%); }
.target-scatter-wrap svg { min-height:360px; }
.target-selected-detail { margin-top:10px; }
.target-selected-detail > strong { color:#172033; font-size:15px; }
.target-period-mini-list { display:flex; flex-wrap:wrap; gap:7px; }
.target-period-mini-list .link { border:1px solid #dbe4ee; border-radius:999px; background:#fff; color:#0f4f58; padding:4px 8px; font-size:12px; max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.target-line-panel { border-left:4px solid #b7791f; }
.target-line-chart svg { min-height:360px; }
.target-status-legend { margin:2px 0 4px; align-items:center; }
.target-status-chip { display:inline-flex; align-items:center; gap:6px; border:1px solid #dbe4ee; border-radius:999px; background:#fff; color:#405063; min-height:28px; padding:4px 9px; font-size:12px; font-weight:750; cursor:pointer; }
.target-status-chip i { width:9px; height:9px; border-radius:999px; display:inline-block; flex:none; }
.target-status-chip em { font-style:normal; color:#667085; font-weight:700; }
.target-status-chip:hover { border-color:#98a2b3; background:#f8fbfe; }
.target-status-chip.is-active { border-color:#172033; color:#172033; background:#f2f4f7; box-shadow:inset 0 0 0 1px rgba(23,32,51,.12); }
.target-status-chip.readonly { cursor:default; min-height:24px; padding:3px 8px; font-weight:700; background:#f8fbfe; }
.target-dot-plot .target-dot { vector-effect:non-scaling-stroke; stroke:#fff; stroke-width:.9px; fill-opacity:.68; }
.target-series-dot-plot .target-dot.is-colored { fill-opacity:.72; }
.target-detail-dot-plot .target-dot.is-colored { fill-opacity:.56; }
.target-dot-plot .target-dot.is-background { fill-opacity:.42; stroke:#fff; stroke-width:.9px; }
.target-dot-plot .target-dot.is-muted { fill-opacity:.44; opacity:.58; }
.target-dot-plot .target-dot.is-highlighted { fill-opacity:.95; stroke:#172033; stroke-width:2.2px; filter:drop-shadow(0 2px 5px rgba(16,24,40,.18)); }
.target-dot-plot .target-dot.is-selected { fill-opacity:1; stroke:#101828; stroke-width:2.6px; filter:drop-shadow(0 2px 6px rgba(15,23,42,.30)); }
.target-dot-plot .target-dot:hover { fill-opacity:1; stroke:#101828; stroke-width:2px; }
.target-gf-ring { fill:none; stroke:#175cd3; stroke-width:1.7px; opacity:.9; pointer-events:none; vector-effect:non-scaling-stroke; }
.target-gf-ring.is-muted { opacity:.72; stroke-width:1.6px; }
.target-dot-plot .target-dot.is-gf-advisor { stroke:#175cd3; stroke-width:1.45px; }
.target-dot-plot .target-dot.is-gf-advisor.is-selected { stroke:#101828; stroke-width:2.8px; }
.target-dot-plot .target-gf-star { stroke:#175cd3; stroke-width:1.6px; paint-order:stroke fill; }
.topic-scatter-point.is-muted { opacity:.58; stroke:#fff; stroke-width:1; }
.topic-scatter-point.is-highlighted { opacity:1; stroke:#172033; stroke-width:2.4px; filter:drop-shadow(0 2px 5px rgba(16,24,40,.18)); }
.target-life-dot { stroke:#fff; stroke-width:1.1px; cursor:pointer; transition:opacity .15s ease, stroke-width .15s ease, fill-opacity .15s ease; }
.target-life-dot:hover { opacity:1; stroke:#172033; stroke-width:2px; }
.target-life-dot.is-selected { opacity:1; stroke:#172033; stroke-width:2.6px; filter:drop-shadow(0 2px 5px rgba(16,24,40,.22)); }
.target-lifecycle-strip { display:grid; gap:7px; max-height:420px; overflow:auto; border:1px solid #dbe4ee; border-radius:8px; background:#f8fbfe; padding:10px; margin-bottom:12px; }
.target-life-row { display:grid; grid-template-columns:minmax(210px, 310px) minmax(260px,1fr) minmax(230px,300px); gap:10px; align-items:center; border:1px solid #e4ebf3; border-radius:7px; background:#fff; padding:7px 9px; }
.target-life-name { min-width:0; }
.target-life-name .link { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.target-life-name span { display:block; color:#667085; font-size:12px; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.target-life-track { height:20px; border:1px solid #dbe4ee; border-radius:999px; background:#eef3f8; overflow:hidden; }
.target-life-track b { display:block; height:100%; border-radius:999px; }
.target-life-track b.is-active { background:linear-gradient(90deg,#0f766e,#12b76a); }
.target-life-track b.is-hit { background:linear-gradient(90deg,#dc6803,#f79009); }
.target-life-track b.is-closed { background:linear-gradient(90deg,#667085,#98a2b3); }
.target-life-meta { display:flex; align-items:center; justify-content:flex-end; gap:8px; color:#526174; font-size:12px; min-width:0; }
.target-life-meta span { border:1px solid #dbe4ee; border-radius:999px; padding:2px 7px; background:#fff; white-space:nowrap; }
.target-life-meta b { min-width:72px; text-align:right; }
.target-life-meta em { font-style:normal; min-width:58px; text-align:right; color:#667085; }
.target-line-hover-point { opacity:0; cursor:crosshair; }
.target-line-hover-point:hover { opacity:.88; stroke:#fff; stroke-width:2px; }
.target-chart-tooltip { position:absolute; z-index:30; max-width:360px; border:1px solid #cdd6e1; border-radius:8px; background:#fff; box-shadow:0 12px 28px rgba(16,24,40,.16); padding:9px 11px; color:#344054; font-size:12px; line-height:1.5; pointer-events:none; }
.target-table-panel .panel-head { margin-bottom:8px; }
.target-series-controls { justify-content:flex-end; }
.target-series-controls .filter-field { min-width:180px; }
.target-selected-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.target-table-wrap { max-height:620px; overflow:auto; }
.target-table { min-width:1540px; }
.target-table thead th { position:sticky; top:0; z-index:3; }
.target-table tbody tr:nth-child(even) { background:#f7fbff; }
.target-table tbody tr:hover { background:#eef7f8; }
.target-table tbody tr.is-selected { background:#fff7ed; box-shadow:inset 3px 0 0 #d92d20; }
.target-table td:first-child,
.target-table th:first-child { position:sticky; left:0; z-index:2; background:inherit; box-shadow:1px 0 0 var(--line); }
.target-table thead th:first-child { z-index:4; background:var(--soft); }
.target-status { display:inline-flex; align-items:center; border:1px solid #dbe4ee; border-radius:999px; background:#fff; padding:2px 7px; color:#405063; font-size:12px; font-weight:750; }
.target-related-panel { border-left:4px solid #0f766e; }
.target-related-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:8px; max-height:360px; overflow:auto; padding-right:2px; }
.target-related-chip { display:block; border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:9px 10px; text-decoration:none; color:#344054; }
.target-related-chip:hover { border-color:#9ccfcb; background:#f5fbfa; }
.target-related-chip.is-current { border-color:#0f766e; background:#ecfdf3; }
.target-related-chip strong { display:block; color:#172033; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.target-related-chip span { display:block; margin-top:4px; color:#667085; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.signal-panel .panel-head { align-items:flex-start; }
.signal-metric-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:12px 0 16px; }
.signal-metric { border:1px solid var(--line); border-radius:8px; background:#fff; padding:10px 12px; min-width:0; }
.signal-metric span { display:block; color:#667085; font-size:12px; margin-bottom:4px; }
.signal-metric strong { display:block; color:#172033; font-size:18px; line-height:1.25; overflow-wrap:anywhere; }
.signal-metric em { display:block; margin-top:4px; color:#667085; font-style:normal; font-size:12px; }
.signal-event-list { display:grid; gap:10px; }
.signal-event-card { border:1px solid var(--line); border-radius:8px; background:#fff; overflow:hidden; }
.signal-event-card summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; list-style:none; }
.signal-event-card summary::-webkit-details-marker { display:none; }
.signal-event-card summary strong { display:block; color:#172033; font-size:14px; }
.signal-event-card summary span { display:block; color:#667085; font-size:13px; margin-top:3px; }
.signal-event-card summary em { color:#475467; font-style:normal; font-size:12px; white-space:nowrap; }
.signal-event-body { border-top:1px solid var(--line); padding:12px 14px 14px; background:#f8fafc; }
.signal-direction { display:inline-flex; align-items:center; justify-content:center; min-width:42px; padding:2px 8px; border-radius:999px; font-size:12px; font-weight:700; }
.signal-direction.is-buy { color:#067647; background:#ecfdf3; }
.signal-direction.is-sell { color:#b42318; background:#fef3f2; }
.signal-direction.is-neutral { color:#475467; background:#f2f4f7; }
.signal-rating { display:block; margin-top:2px; color:#667085; font-size:11px; }
.signal-instruction-table td { vertical-align:top; }
.advisor-rank-controls .panel-head { align-items:center; }
.advisor-rank-filter-grid { display:grid; grid-template-columns: 160px minmax(220px, 1fr) 170px minmax(260px, 1fr); gap:12px; align-items:start; }
.advisor-rank-segment-row { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; margin-top:12px; }
.advisor-rank-segment { flex-wrap:wrap; }
.rank-check, .rank-page-size { display:inline-flex; align-items:center; gap:6px; color:#405063; font-size:13px; }
.rank-page-size select { min-width:72px; }
.advisor-rank-grid { margin-bottom:16px; }
.advisor-rank-metric .metric-value { color:#162336; }
.rank-tag { display:inline-flex; align-items:center; height:22px; padding:0 7px; border-radius:999px; background:#eef3f8; color:#405063; font-size:12px; font-weight:700; vertical-align:middle; }
.rank-tag.is-strategy { background:#eaf5f3; color:#0f5f55; }
.rank-tag.is-fof { background:#eef2ff; color:#354c9a; }
.rank-tag.is-gf { background:#fff2d6; color:#9a5b00; border:1px solid #f2d08a; }
.advisor-rank-chart { display:grid; gap:8px; }
.rank-chart-row { display:grid; grid-template-columns: minmax(260px, .72fr) minmax(180px, 1fr) 88px; gap:10px; align-items:center; padding:8px 10px; border:1px solid #edf1f5; border-radius:8px; background:#fff; }
.rank-chart-row.is-gf-row, .advisor-rank-table tr.is-gf-row { background:#fffaf0; }
.rank-chart-row.is-gf-row { border-color:#f2d08a; }
.rank-chart-label { display:grid; grid-template-columns:38px minmax(0, 1fr); gap:8px; align-items:center; min-width:0; }
.rank-chart-label strong { color:#475467; font-size:12px; text-align:right; }
.rank-chart-label span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:650; }
.rank-chart-bar-track { height:12px; border-radius:999px; background:#edf2f7; overflow:hidden; }
.rank-chart-bar-track i { display:block; height:100%; border-radius:999px; background:#94a3b8; }
.rank-chart-bar-track i.is-pos { background:var(--pos); }
.rank-chart-bar-track i.is-neg { background:var(--neg); }
.rank-chart-bar-track i.is-zero { background:#8aa0b6; }
.rank-chart-value { text-align:right; font-weight:700; }
.advisor-scatter-card { display:grid; gap:14px; }
.advisor-scatter-head { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.advisor-scatter-controls { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.advisor-scatter-control { display:grid; grid-template-columns:auto minmax(180px, 240px); gap:7px; align-items:center; color:#405063; font-size:13px; font-weight:700; }
.advisor-scatter-control select { width:100%; min-width:0; }
.advisor-scatter-legend { display:flex; gap:12px; flex-wrap:wrap; color:#526174; font-size:12px; font-weight:700; }
.advisor-scatter-legend span { display:inline-flex; align-items:center; gap:5px; }
.legend-dot { width:10px; height:10px; border-radius:999px; display:inline-block; background:#94a3b8; }
.legend-dot.is-strategy { background:#0f766e; }
.legend-dot.is-fof { background:#3b82f6; }
.legend-dot.is-gf { background:#fff7e6; border:2px solid #d97706; }
.advisor-scatter-layout { display:grid; grid-template-columns:minmax(0, 1fr) 330px; gap:16px; align-items:stretch; }
.advisor-scatter-wrap { min-width:0; overflow:auto; border:1px solid #dbe4ee; border-radius:8px; background:#fff; }
.advisor-scatter-svg { display:block; min-width:760px; width:100%; height:auto; }
.advisor-scatter-bg { fill:#fbfdff; }
.advisor-scatter-grid { stroke:#e5edf5; stroke-width:1; }
.advisor-scatter-axis-line { stroke:#98a7b8; stroke-width:1.2; }
.advisor-scatter-axis { fill:#667085; font-size:11px; font-weight:700; }
.advisor-scatter-label { fill:#344054; font-size:12px; font-weight:800; }
.advisor-scatter-dot { cursor:pointer; opacity:.78; stroke:#fff; stroke-width:1.4; transition:opacity .15s ease, stroke-width .15s ease, r .15s ease; }
.advisor-scatter-dot:hover, .advisor-scatter-dot.is-selected { opacity:1; stroke:#172033; stroke-width:2.4; }
.advisor-scatter-dot.is-strategy { fill:#0f766e; }
.advisor-scatter-dot.is-fof { fill:#3b82f6; }
.advisor-scatter-dot.is-gf { stroke:#d97706; stroke-width:2.8; opacity:.96; }
.advisor-scatter-dot.is-gf.is-selected { stroke:#7a3a00; stroke-width:3.4; }
.advisor-scatter-detail { border:1px solid #dbe4ee; border-radius:8px; background:#fff; padding:14px; display:grid; gap:12px; align-content:start; }
.advisor-scatter-detail.is-empty { color:#667085; }
.advisor-scatter-detail-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.advisor-scatter-detail-head strong { display:block; font-size:15px; line-height:1.35; }
.advisor-scatter-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.advisor-scatter-detail-grid div { border:1px solid #edf1f5; border-radius:8px; padding:9px 10px; background:#fbfdff; }
.advisor-scatter-detail-grid span { display:block; color:#667085; font-size:12px; margin-bottom:3px; }
.advisor-scatter-detail-grid b { display:block; color:#172033; font-size:13px; overflow-wrap:anywhere; }
.category-chip-list { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap:10px; }
.category-chip-button { min-width:0; border:1px solid #dbe4ee; background:#fff; border-radius:8px; padding:10px 11px; text-align:left; cursor:pointer; }
.category-chip-button:hover, .category-chip-button.is-active { border-color:#9cc9cf; background:#f2fbfc; }
.category-chip-button strong, .category-chip-button span { display:block; overflow-wrap:anywhere; }
.category-chip-button strong { color:#172033; font-size:13px; line-height:1.25; }
.category-chip-button span { margin-top:4px; color:#667085; font-size:12px; }
.advisor-rank-table-wrap { max-height:720px; }
.advisor-rank-table { min-width:1380px; }
.advisor-rank-table th { position:sticky; top:0; z-index:3; }
.advisor-rank-table td { vertical-align:top; }
.advisor-rank-table .rank-no { color:#344054; font-weight:800; text-align:right; }
.rank-name-cell { min-width:220px; }
.advisor-rank-table .is-pos { color:var(--pos); font-weight:750; }
.advisor-rank-table .is-neg { color:var(--neg); font-weight:750; }
.advisor-rank-table .is-zero { color:#475467; font-weight:750; }
@media (max-width: 1100px) {
  .system-overview-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .system-stat-tile:nth-child(4) { border-left:0; }
  .system-architecture-track { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .system-architecture-track > i,
  .system-hierarchy > i { display:none; }
  .system-hierarchy { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .system-function-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quality-gate-card ul { grid-template-columns: 1fr; }
  .two-col { grid-template-columns: 1fr; }
  .filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quality-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strategy-hero, .position-layout { grid-template-columns: 1fr; }
  .profile-compact { grid-template-columns: 1fr; }
  .strategy-info-block, .evaluation-block, .classification-block, .benchmark-asset-block { grid-column:auto; grid-row:auto; }
  .fund-hero, .fund-two-col { grid-template-columns: 1fr; }
  .fund-info-grid, .fund-kpi-strip, .fund-coverage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fund-report-grid { grid-template-columns: 1fr; }
  .hero-kpis, .return-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .core-line-values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .class-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .insight-hero { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .insight-grid, .insight-layout, .insight-dimension-grid, .asset-trend-layout, .compare-fund-grid, .compare-rebalance-grid, .compare-search-row, .metric-search-row, .metric-lineage, .overlap-matrix-grid, .compare-ai-grid, .compare-distribution-grid, .compare-advisor-grid, .compare-strategy-distribution, .compare-profit-grid, .topic-logic-grid, .topic-filter-controls, .signal-metric-grid, .target-bar-row, .target-life-row { grid-template-columns: 1fr; }
  .target-scatter-controls { justify-content:flex-start; }
  .target-bar-meta { text-align:left; }
  .target-life-meta { justify-content:flex-start; flex-wrap:wrap; }
  .entity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compare-pick-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .compare-point-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .topic-point-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .topic-filter-counts { justify-content:flex-start; }
  .topic-trend-controls { align-items:stretch; flex-direction:column; }
  .topic-benchmark-checks { justify-content:flex-start; max-width:none; }
  .topic-select-label { min-width:0; width:100%; }
  .ai-kpi-grid, .ai-diagnostic-grid, .ai-help-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-semantic-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ai-inline-condition-editor { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ai-inline-condition-editor .ai-remove-filter { justify-self:start; }
  .ai-editor-head { align-items:flex-start; flex-direction:column; }
  .ai-editor-actions { justify-content:flex-start; }
  .ai-compare-toolbar { align-items:flex-start; flex-direction:column; }
  .ai-compare-actions { justify-content:flex-start; }
  .ai-compare-toolbar span { max-width:none; white-space:normal; }
  .ai-model-grid, .ai-model-fixed-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ai-scatter-layout, .advisor-scatter-layout { grid-template-columns:1fr; }
  .advisor-scatter-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .insight-conclusion-grid, .classification-rule-grid, .fvla-grid, .weekly-rank-list, .focus-section-grid, .insight-exec-grid, .insight-goal-grid, .strategy-decision-grid { grid-template-columns: 1fr; }
  .strategy-decision-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strategy-decision-head { grid-template-columns: 1fr; }
  .strategy-type-strip { justify-content:flex-start; }
  .insight-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .advisor-rank-filter-grid, .category-chip-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mixed-filter-grid, .mixed-kpi-grid, .mixed-highlight-grid, .mixed-strength-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mixed-scatter-layout { grid-template-columns: 1fr; }
  .mixed-profile-body, .mixed-profile-summary, .mixed-profile-views { grid-template-columns: 1fr; }
  .rank-chart-row { grid-template-columns: minmax(220px, .85fr) minmax(160px, 1fr) 82px; }
}
@media (max-width: 960px) {
  body { padding-left: 0; }
  .topbar {
    position: sticky;
    inset: auto;
    width: auto;
    max-height: 52vh;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .topbar-inner {
    min-height: 0;
    padding: 12px 14px;
    gap: 12px;
  }
  .brand {
    padding: 0 0 10px;
  }
  .nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
  }
}
@media (max-width: 680px) {
  .topbar-inner { align-items: flex-start; flex-direction: column; }
  .brand { min-width: 0; }
  .nav { width: 100%; justify-content: flex-start; }
  .page-shell { padding: 16px; }
  .page-title { align-items: flex-start; flex-direction: column; }
  .title-pills { justify-content: flex-start; max-width: none; }
  .grid, .filters, .value-list { grid-template-columns: 1fr; }
  .ai-condition-table { min-width:640px; }
  .quality-grid { grid-template-columns: 1fr; }
  .hero-kpis, .return-grid, .hero-dates, .core-line-values, .class-chip-grid, .class-metric-grid, .fund-hero-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-compact, .core-line { grid-template-columns: 1fr; }
  .system-home-hero, .system-focus-grid, .system-module summary { grid-template-columns:1fr; }
  .system-capability-grid, .system-page-grid, .system-question-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .system-overview-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .system-stat-tile:nth-child(odd) { border-left:0; }
  .system-stat-tile:nth-child(4) { border-left:1px solid #e5eaf0; }
  .system-data-map,
  .system-coverage-grid,
  .system-hierarchy,
  .system-boundary-grid,
  .system-function-grid { grid-template-columns:1fr; }
  .system-lane-body { grid-template-columns:1fr; }
  .system-lane-arrow { transform:rotate(90deg); }
  .system-architecture-track { grid-template-columns:1fr; }
  .system-audit-rail { grid-template-columns:1fr; gap:5px; align-items:start; }
  .system-section-head { align-items:flex-start; flex-direction:column; }
  .system-flow-line { grid-template-columns:1fr; }
  .system-flow-line i { display:none; }
  .insight-filters, .insight-hero, .insight-bar-row, .signal-chart-row, .signal-x-axis, .opportunity-row, .insight-mini-grid, .rank-row, .metric-search-row, .metric-lineage, .strategy-decision-kpis, .strategy-decision-item, .compare-pick-grid, .compare-pick-card, .compare-point-kpis, .compare-share-row, .topic-point-kpis, .topic-threshold-control, .fund-info-grid, .fund-kpi-strip, .fund-coverage-grid, .fund-asset-bar, .fund-industry-bar { grid-template-columns: 1fr; }
  .target-profit-search { grid-column:auto; }
  .topic-threshold { white-space:normal; border-radius:7px; }
  .metric-analysis-title { flex-direction:column; }
  .ai-kpi-grid, .ai-diagnostic-grid, .ai-help-grid { grid-template-columns: 1fr; }
  .ai-semantic-options { grid-template-columns:1fr; }
  .ai-condition-panel-summary { align-items:flex-start; flex-wrap:wrap; }
  .ai-condition-panel-summary .pill { margin-left:0; }
  .ai-recognized-overview { flex-direction:column; }
  .ai-recognized-counts { justify-content:flex-start; }
  .ai-inline-condition-editor { grid-template-columns:1fr; }
  .ai-inline-condition-editor .ai-remove-filter { width:100%; }
  .ai-inline-alternatives-head, .ai-condition-actions { align-items:flex-start; flex-direction:column; }
  .ai-pending-head { flex-direction:column; }
  .ai-filter-editor-details > summary { align-items:flex-start; flex-wrap:wrap; }
  .ai-filter-editor-details > summary em { display:block; margin:3px 0 0; }
  .ai-model-grid, .ai-model-grid .ai-model-wide, .ai-model-fixed-grid, .ai-model-fixed-grid .ai-model-fixed-wide { grid-template-columns:1fr; grid-column:auto; }
  .ai-scatter-head, .advisor-scatter-head { flex-direction:column; align-items:flex-start; }
  .ai-scatter-controls { justify-content:flex-start; width:100%; }
  .ai-scatter-control { grid-template-columns:1fr; width:100%; }
  .advisor-scatter-controls, .advisor-scatter-control { width:100%; }
  .advisor-scatter-control { grid-template-columns:1fr; }
  .advisor-scatter-detail-grid { grid-template-columns:1fr; }
  .ai-scatter-detail-grid { grid-template-columns:1fr; }
  .mixed-highlight-panel .panel-head { align-items:flex-start; flex-direction:column; }
  .mixed-highlight-panel .panel-head > div:first-child { width:100%; }
  .mixed-highlight-summary { grid-template-columns:minmax(0,1fr) 28px; gap:8px 10px; }
  .mixed-highlight-summary > div { grid-column:1; }
  .mixed-highlight-summary > .pill { grid-column:1; justify-self:start; }
  .mixed-highlight-summary::after { grid-column:2; grid-row:1 / span 2; }
  .mixed-opportunity-summary { grid-template-columns:1fr; }
  .mixed-opportunity-summary > div, .mixed-opportunity-summary > .pill, .mixed-opportunity-toggle { grid-column:1; justify-self:stretch; }
  .mixed-opportunity-toggle { width:100%; }
  .mixed-highlight-actions { justify-content:flex-start; align-self:stretch; width:100%; }
  .mixed-advantage-scope { width:100%; }
  .mixed-advantage-scope button { flex:1 1 86px; justify-content:center; }
  .ai-hit-reason-item { grid-template-columns:1fr; }
  .ai-hit-reason-result li { grid-template-columns:1fr; }
  .ai-hit-reason-result li strong { white-space:normal; }
  .fund-link-actions { justify-content:flex-start; }
  .signal-chart-meta { text-align:left; }
  .strategy-decision-item b, .strategy-decision-item em { text-align:left; }
  .insight-sticky-controls { top:0; }
  .asset-trend-grid { grid-template-columns:1fr; }
  .compact-control, .institution-control { width:100%; max-width:none; }
  .asset-company-list { min-width:0; }
  .advisor-rank-filter-grid, .category-chip-list, .rank-chart-row, .rank-chart-label { grid-template-columns:1fr; }
  .mixed-filter-grid, .mixed-kpi-grid, .mixed-highlight-grid, .mixed-strength-grid { grid-template-columns:1fr; }
  .mixed-profile-modal { align-items:flex-start; padding:10px; }
  .mixed-profile-dialog { width:calc(100vw - 20px); max-height:calc(100vh - 20px); padding:14px; }
  .mixed-profile-head { grid-template-columns:1fr; padding-right:36px; }
  .mixed-profile-score { justify-items:start; }
  .mixed-profile-ability-row { grid-template-columns:1fr; }
  .mixed-profile-ability-row b, .mixed-profile-ability-row em, .mixed-profile-ability-row small { justify-self:start; text-align:left; }
  .advisor-rank-segment-row { align-items:flex-start; flex-direction:column; }
  .rank-chart-label strong, .rank-chart-value { text-align:left; }
}
@media (max-width: 520px) {
  .system-overview-strip { grid-template-columns:1fr; }
  .system-stat-tile,
  .system-stat-tile:nth-child(4) { border-left:0; }
  .system-home-status-grid, .system-capability-grid, .system-page-grid, .system-question-grid { grid-template-columns:1fr; }
  .system-home-copy h2 { font-size:18px; }
  .system-status-card strong { font-size:16px; }
}
@media (max-width: 620px) {
  .nav { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
  .hero-kpis, .return-grid, .hero-dates, .core-line-values, .class-chip-grid, .class-metric-grid, .entity-grid, .fund-hero-metrics { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
  .strategy-key-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .strategy-key-fact,
  .strategy-key-fact:nth-child(3n),
  .strategy-key-fact:nth-last-child(-n+3) { border-right:1px solid #e5eaf0; border-bottom:1px solid #e5eaf0; }
  .strategy-key-fact:nth-child(even) { border-right:0; }
  .strategy-key-fact:nth-last-child(-n+2) { border-bottom:0; }
  .strategy-risk-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .strategy-risk-item,
  .strategy-risk-item:nth-child(4n),
  .strategy-risk-item:nth-last-child(-n+4) { border-right:1px solid #e5eaf0; border-bottom:1px solid #e5eaf0; }
  .strategy-risk-item:nth-child(even) { border-right:0; }
  .strategy-risk-item:nth-last-child(-n+2) { border-bottom:0; }
  .strategy-latest-rebalance { grid-template-columns:1fr 1fr; }
  .strategy-rebalance-reason { grid-column:1 / -1; border-top:1px solid #e1e7ed; }
  .strategy-latest-rebalance > .strategy-rebalance-stats { border-right:0; }
  .strategy-rebalance-workspace { grid-template-columns:220px minmax(0,1fr); }
}

@media (max-width: 960px) {
  body.strategy-detail-page { padding-left:0; }
  body.strategy-detail-page .topbar { position:sticky; inset:auto; width:auto; max-height:none; border-right:0; border-bottom:1px solid var(--line); overflow:hidden; }
  body.strategy-detail-page .topbar-inner { min-height:54px; padding:9px 14px; flex-direction:row; align-items:center; }
  body.strategy-detail-page .brand { width:auto; padding:0; border-bottom:0; }
  body.strategy-detail-page .brand small { display:none; }
  body.strategy-detail-page .nav { display:none; }
  .strategy-section { scroll-margin-top:112px; }
  .strategy-section-nav { top:54px; }
}

@media (max-width: 680px) {
  .strategy-detail-page .page-shell { padding:12px 12px 32px; }
  .strategy-overview { padding:14px; }
  .strategy-identity-row { flex-direction:column; gap:10px; }
  .strategy-title-line h1 { font-size:23px; }
  .strategy-status-list { justify-content:flex-start; max-width:none; }
  .strategy-title-line .internal-test-notice { line-height:1.55; }
  .strategy-key-facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; border:0; border-radius:0; background:transparent; }
  .strategy-key-fact,
  .strategy-key-fact:nth-child(3n),
  .strategy-key-fact:nth-child(even),
  .strategy-key-fact:nth-last-child(-n+3),
  .strategy-key-fact:nth-last-child(-n+2) { min-height:64px; border:1px solid #dbe2e9; border-radius:6px; background:#fff; padding:9px 10px; }
  .strategy-key-fact.is-wide { grid-column:1 / -1; }
  .strategy-primary-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  .strategy-primary-metric { padding:9px 10px; }
  .strategy-primary-metric strong { font-size:20px; }
  .strategy-overview-foot { text-align:left; line-height:1.6; }
  .strategy-section-nav { grid-template-columns:repeat(5,minmax(68px,1fr)); overflow-x:auto; scrollbar-width:none; }
  .strategy-section-nav::-webkit-scrollbar { display:none; }
  .strategy-section-nav a { min-height:40px; padding:0 6px; font-size:12px; white-space:nowrap; }
  .strategy-section-head { align-items:flex-start; flex-direction:column; }
  .strategy-performance-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .strategy-performance-tabs button { width:100%; }
  .strategy-chart-toolbar { align-items:stretch; flex-direction:column; }
  .strategy-chart-toolbar .benchmark-select { width:100%; max-width:none; }
  .strategy-chart-toolbar .range-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; }
  .strategy-chart-toolbar .range-tabs button { padding:6px 4px; }
  .strategy-main-chart, .strategy-contribution-chart { min-height:270px; }
  .strategy-risk-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .strategy-risk-item { min-height:74px; padding:10px; }
  .strategy-section-meta { justify-content:flex-start; }
  .strategy-subsection-title { align-items:flex-start; flex-direction:column; gap:2px; }
  .strategy-asset-legend { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 10px; }
  .strategy-holding-table-wrap { display:none; }
  .strategy-holding-cards { display:grid; gap:0; border:1px solid #dbe2e9; border-radius:7px; overflow:hidden; }
  .strategy-holding-card { min-width:0; padding:11px; border-bottom:1px solid #e4e9ee; background:#fff; }
  .strategy-holding-card:last-child { border-bottom:0; }
  .strategy-holding-card > div > strong { display:block; font-size:13px; line-height:1.45; }
  .strategy-holding-card > div > span { display:block; margin-top:3px; color:#7a8798; font-size:10px; }
  .strategy-holding-card dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin:10px 0 0; }
  .strategy-holding-card dl div { min-width:0; border-left:2px solid #d9e2ea; padding-left:7px; }
  .strategy-holding-card dt { color:#7a8798; font-size:10px; }
  .strategy-holding-card dd { margin:2px 0 0; color:#25364a; font-size:13px; font-weight:700; overflow-wrap:anywhere; }
  .strategy-holding-card dd.is-pos { color:var(--pos); }
  .strategy-holding-card dd.is-neg { color:var(--neg); }
  .strategy-latest-rebalance { grid-template-columns:1fr; }
  .strategy-latest-rebalance > div { border-right:0; border-bottom:1px solid #e1e7ed; }
  .strategy-latest-rebalance > div:last-child { border-bottom:0; }
  .strategy-rebalance-reason { grid-column:auto; border-top:0; }
  .strategy-rebalance-workspace { grid-template-columns:1fr; gap:12px; }
  .strategy-rebalance-timeline .rebalance-list { max-height:250px; }
  .holding-head { align-items:flex-start; flex-direction:column; }
  .rebalance-research-grid { grid-template-columns:1fr; }
  .strategy-contribution-block .panel-head { align-items:flex-start; flex-direction:column; }
  .strategy-contribution-block .chart-actions, .strategy-contribution-block .benchmark-select { width:100%; max-width:none; }
  .strategy-more-block > summary { padding:10px 11px; }
  .strategy-more-body { padding:11px; }
}

@media (max-width: 420px) {
  .strategy-status-list span { min-height:26px; font-size:11px; }
  .strategy-key-fact strong { font-size:13px; }
  .strategy-primary-metric strong { font-size:19px; }
  .strategy-risk-item strong { font-size:16px; }
  .strategy-asset-legend { grid-template-columns:1fr 1fr; }
}
