:root {
  --bg: #f1f3f6;
  --sidebar: #ffffff;
  --panel: #ffffff;
  --panel-2: #f7f8fa;
  --line: #d6dce4;
  --line-soft: #e6eaf0;
  --text: #182536;
  --muted: #697789;
  --subtle: #8a96a5;
  --blue: #2563a6;
  --blue-soft: #eaf2fa;
  --cyan: #2563a6;
  --gold: #b7791f;
  --gold-soft: #fff8e8;
  --rise: #d52b34;
  --fall: #16834b;
  --warn: #b7791f;
  --danger: #c64952;
  --shadow: 0 8px 24px rgba(36, 54, 76, .07);
}

* { box-sizing: border-box; }
html { color-scheme: light; background: var(--bg); color: var(--text); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
body { margin: 0; background: linear-gradient(180deg, #f6f8fa, var(--bg) 260px); }
button, input { font: inherit; }
button { color: inherit; cursor: pointer; }
a { color: inherit; }

.market-index-strip { position: sticky; top: 0; z-index: 45; display: flex; min-width: 0; min-height: 34px; align-items: stretch; border-bottom: 1px solid var(--line); background: rgba(248, 250, 252, .98); box-shadow: 0 2px 8px rgba(36, 54, 76, .04); }
.market-session { display: flex; flex: 0 0 132px; align-items: center; gap: 10px; border-right: 1px solid var(--line); padding: 0 14px; white-space: nowrap; }
.market-session small { color: var(--muted); font-size: 8px; }
.market-session b { color: var(--blue); font-size: 9px; }
.index-tickers { display: grid; min-width: 0; flex: 1; grid-template-columns: repeat(7, minmax(112px, 1fr)); overflow-x: auto; scrollbar-width: none; }
.index-tickers::-webkit-scrollbar { display: none; }
.index-loading { align-self: center; padding: 0 14px; color: var(--subtle); font-size: 8px; white-space: nowrap; }
.index-ticker { display: flex; min-width: 112px; align-items: center; justify-content: center; gap: 7px; border-right: 1px solid var(--line); padding: 0 8px; white-space: nowrap; }
.index-ticker small { color: var(--muted); font-size: 8px; }
.index-ticker b { color: var(--text); font: 700 10px ui-monospace, SFMono-Regular, Menlo, monospace; }
.index-ticker em { color: var(--subtle); font-size: 8px; font-style: normal; }
.index-sync { display: grid; flex: 0 0 76px; place-content: center; color: var(--subtle); font-size: 8px; white-space: nowrap; }

.app-shell { display: grid; min-height: 100vh; grid-template-columns: 220px minmax(0, 1fr); }
.sidebar { position: sticky; top: 34px; z-index: 20; display: flex; height: calc(100vh - 34px); flex-direction: column; border-right: 1px solid var(--line); background: rgba(255, 255, 255, .98); }
.brand { display: flex; align-items: center; gap: 12px; min-height: 76px; padding: 0 18px; border-bottom: 1px solid var(--line); }
.brand-mark { display: grid; width: 36px; height: 36px; place-content: center; border: 1px solid #1f4f82; color: #ffffff; background: #1f4f82; font: 800 16px Georgia, serif; box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .12); }
.brand div { display: grid; gap: 4px; }
.brand b { font-size: 14px; letter-spacing: .03em; }
.brand small { color: var(--subtle); font-size: 7px; letter-spacing: .14em; }
.sidebar-state { display: grid; grid-template-columns: auto 1fr; gap: 3px 8px; align-items: center; padding: 13px 18px; border-bottom: 1px solid var(--line-soft); }
.live-dot { grid-row: 1 / 3; width: 7px; height: 7px; border-radius: 50%; background: var(--fall); box-shadow: 0 0 10px rgba(54, 186, 125, .7); }
.sidebar-state b { color: var(--text); font-size: 9px; }
.sidebar-state small { color: var(--subtle); font-size: 7px; }
.primary-nav { display: grid; gap: 2px; padding: 12px 10px; }
.nav-item { display: grid; grid-template-columns: 25px 1fr auto; gap: 9px; align-items: center; min-height: 42px; border: 0; border-left: 2px solid transparent; background: transparent; padding: 0 10px; color: var(--muted); text-align: left; }
.nav-item i { display: grid; width: 22px; height: 22px; place-content: center; border: 1px solid var(--line); color: var(--subtle); font-size: 9px; font-style: normal; }
.nav-item span { font-size: 11px; }
.nav-item em { min-width: 20px; border-radius: 10px; background: #edf1f5; padding: 2px 6px; color: var(--muted); font-size: 8px; font-style: normal; text-align: center; }
.nav-item:hover, .nav-item.active { border-left-color: var(--blue); color: var(--text); background: linear-gradient(90deg, rgba(37, 99, 166, .12), rgba(37, 99, 166, .02)); }
.nav-item.active i { border-color: #8aafd3; color: var(--blue); background: #edf5fc; }
.sidebar-foot { display: grid; gap: 5px; margin-top: auto; padding: 16px 18px 20px; border-top: 1px solid var(--line); }
.sidebar-foot span { color: var(--subtle); font-size: 7px; letter-spacing: .12em; }
.sidebar-foot b { color: var(--text); font-size: 9px; }
.sidebar-foot small { color: var(--gold); font-size: 7px; }

.main-stage { min-width: 0; }
.topbar { position: sticky; top: 34px; z-index: 15; display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .94); padding: 0 28px; backdrop-filter: blur(14px); }
.topbar small { color: var(--blue); font-size: 7px; font-weight: 800; letter-spacing: .16em; }
.topbar h1 { margin: 4px 0 0; font-size: 18px; font-weight: 650; }
.topbar-meta { display: flex; align-items: center; gap: 16px; }
.topbar-meta span { color: var(--muted); font-size: 9px; }
.topbar-meta .freshness { border: 1px solid var(--line); background: var(--panel-2); padding: 5px 7px; font-size: 7px; }
.topbar-meta .freshness.fresh { border-color: #92c6ad; color: var(--fall); background: #f1faf6; }
.topbar-meta .freshness.stale { border-color: #dfb0b4; color: var(--danger); background: #fff4f4; }
.topbar-meta .freshness.pending { border-color: #d8bd85; color: var(--gold); background: var(--gold-soft); }
.topbar-meta button, .panel-heading button, .empty-state button { border: 1px solid #9db4cc; background: #f4f8fc; padding: 7px 10px; color: var(--blue); font-size: 8px; }
.topbar-meta button:hover, .panel-heading button:hover, .empty-state button:hover { border-color: var(--blue); }
.topbar-meta button:disabled { opacity: .5; cursor: wait; }
.global-error { margin: 16px 28px 0; border: 1px solid #e2b8bb; background: #fff3f3; padding: 10px 12px; color: #a9444b; font-size: 9px; }

.view { display: none; padding: 22px 28px 34px; }
.view.active { display: block; }
.panel { border: 1px solid var(--line); background: var(--panel); box-shadow: var(--shadow); }
.panel-heading { display: flex; min-height: 56px; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); padding: 10px 14px; }
.panel-heading small, .section-intro small { color: var(--blue); font-size: 7px; font-weight: 800; letter-spacing: .15em; }
.panel-heading h2 { margin: 4px 0 0; font-size: 13px; }
.panel-heading > span { color: var(--subtle); font-size: 8px; }
.loading-copy { display: grid; min-height: 130px; place-content: center; color: var(--subtle); font-size: 9px; }
.skeleton-card { min-height: 230px; }

.decision-hero { display: grid; grid-template-columns: minmax(300px, 1.05fr) minmax(480px, 1.25fr); overflow: hidden; border: 1px solid var(--line); background: linear-gradient(130deg, #f7fbff, #ffffff 58%, #fbfcfd); box-shadow: var(--shadow); }
.decision-hero.active { border-top: 3px solid var(--fall); }
.decision-hero.caution { border-top: 3px solid var(--gold); }
.decision-hero.defense { border-top: 3px solid var(--danger); }
.decision-hero.pending { border-top: 3px solid var(--subtle); }
.decision-primary { padding: 22px 24px; }
.decision-primary > small { color: var(--blue); font-size: 8px; letter-spacing: .1em; }
.decision-primary h2 { margin: 7px 0 8px; font-size: clamp(22px, 2.4vw, 34px); letter-spacing: -.03em; }
.decision-primary p { max-width: 610px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.7; }
.strategy-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.strategy-chips span { border: 1px solid #b8cbe0; background: #f1f7fc; padding: 5px 8px; color: var(--blue); font-size: 8px; }
.decision-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-left: 1px solid var(--line); background: rgba(247, 249, 251, .72); }
.decision-metrics article { display: grid; align-content: center; gap: 7px; min-height: 105px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 14px 18px; }
.decision-metrics article:nth-child(even) { border-right: 0; }
.decision-metrics article:nth-child(n+3) { border-bottom: 0; }
.decision-metrics span { color: var(--subtle); font-size: 8px; }
.decision-metrics b { font: 700 24px ui-monospace, SFMono-Regular, Menlo, monospace; }
.decision-metrics small { color: var(--muted); font-size: 8px; }
.decision-alerts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); background: #fbfcfd; }
.decision-alerts span { display: flex; align-items: center; gap: 9px; padding: 10px 16px; color: var(--muted); font-size: 8px; }
.decision-alerts span + span { border-left: 1px solid var(--line); }
.decision-alerts b { color: var(--gold); }

.decision-ops { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.ops-card { position: relative; display: grid; align-content: start; gap: 8px; min-height: 166px; overflow: hidden; padding: 14px 16px; }
.ops-card::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: var(--blue); content: ""; }
.ops-card.gate-active::before { background: var(--fall); }
.ops-card.gate-caution::before { background: var(--gold); }
.ops-card.gate-defense::before { background: var(--danger); }
.ops-card.gate-pending::before { background: var(--subtle); }
.ops-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ops-head small { color: var(--blue); font-size: 7px; font-weight: 800; letter-spacing: .13em; }
.ops-head span { color: var(--subtle); font-size: 7px; }
.ops-card h3 { margin: 2px 0 0; font-size: 14px; }
.ops-card p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.6; }
.ops-foot { display: grid; gap: 4px; margin-top: auto; border-top: 1px solid var(--line-soft); padding-top: 8px; }
.ops-foot b { color: var(--blue); font-size: 8px; }
.ops-foot span { overflow: hidden; color: var(--subtle); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.snapshot-counts { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line-soft); background: var(--panel-2); }
.snapshot-counts span { display: grid; gap: 3px; border-right: 1px solid var(--line-soft); padding: 8px 5px; color: var(--subtle); font-size: 7px; text-align: center; }
.snapshot-counts span:last-child { border-right: 0; }
.snapshot-counts b { color: var(--text); font: 700 13px ui-monospace, monospace; }
.ops-card button { justify-self: start; margin-top: auto; border: 0; border-bottom: 1px solid #9db4cc; background: transparent; padding: 3px 0; color: var(--blue); font-size: 8px; }
.push-lines { display: grid; gap: 4px; }
.push-lines span { overflow: hidden; color: var(--muted); font-size: 7px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }

.decision-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(390px, .85fr); gap: 14px; margin-top: 14px; }
.focus-list, .rotation-list { min-height: 245px; }
.focus-row { display: grid; grid-template-columns: 28px minmax(120px, 1fr) minmax(170px, 1.4fr) 80px 100px; gap: 10px; align-items: center; width: 100%; min-height: 61px; border: 0; border-bottom: 1px solid var(--line-soft); background: transparent; padding: 8px 14px; text-align: left; }
.focus-row:hover { background: #f5f8fb; }
.focus-row .rank { color: #48525e; font: 700 9px ui-monospace, monospace; }
.stock-name, .focus-row > span { display: grid; gap: 4px; min-width: 0; }
.stock-name b, .focus-row > span b { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.stock-name small, .focus-row > span small { color: var(--subtle); font-size: 7px; }
.focus-price { text-align: right; }
.focus-row em { border: 1px solid var(--line); padding: 5px 6px; color: var(--subtle); font-size: 7px; font-style: normal; text-align: center; }
.focus-row em.support { border-color: #9ccbb6; color: var(--fall); background: #f0faf5; }
.focus-row em.risk { border-color: #dfb0b4; color: #b84d55; background: #fff4f4; }
.rotation-row { display: grid; grid-template-columns: 24px minmax(120px, 1fr) 52px 36px 62px; gap: 8px; align-items: center; width: 100%; min-height: 49px; border: 0; border-bottom: 1px solid var(--line-soft); background: transparent; padding: 7px 12px; text-align: left; }
.rotation-row:hover { background: #f5f8fb; }
.rotation-row > span { color: #4f5a66; font-size: 8px; }
.rotation-row div { display: grid; gap: 3px; }
.rotation-row b { font-size: 9px; }
.rotation-row small { color: var(--subtle); font-size: 7px; }
.rotation-row em { border: 1px solid #d8bd85; padding: 3px 4px; color: var(--gold); background: #fffaf0; font-size: 7px; font-style: normal; text-align: center; }
.rotation-row strong { color: var(--blue); font: 700 13px ui-monospace, monospace; }
.rotation-row i { font-size: 8px; font-style: normal; text-align: right; }
.hotspot-panel { margin-top: 14px; }
.hotspot-head, .hotspot-row { display: grid; grid-template-columns: minmax(180px, 1.6fr) 70px 52px 100px 96px; gap: 12px; align-items: center; }
.hotspot-head { min-height: 28px; background: var(--panel-2); padding: 0 14px; color: var(--subtle); font-size: 7px; }
.hotspot-row { width: 100%; min-height: 48px; border: 0; border-bottom: 1px solid var(--line-soft); background: transparent; padding: 7px 14px; text-align: left; }
.hotspot-row:hover { background: #f5f8fb; }
.hotspot-row > span { display: grid; gap: 3px; }
.hotspot-row b { font-size: 9px; }
.hotspot-row small { color: var(--subtle); font-size: 7px; }
.hotspot-row strong, .hotspot-row em, .hotspot-row i { font-size: 8px; font-style: normal; }
.hotspot-row u { border: 1px solid var(--line); padding: 4px 6px; font-size: 7px; text-align: center; text-decoration: none; }
.hotspot-row u.tradable { border-color: #92c6ad; color: var(--fall); background: #f1faf6; }
.hotspot-row u.anchor { border-color: #d8bd85; color: var(--gold); background: #fffaf0; }

.section-intro { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.section-intro h2 { margin: 5px 0 6px; font-size: 22px; }
.section-intro p { margin: 0; color: var(--muted); font-size: 9px; }
.legend { display: flex; gap: 8px; }
.legend span { border: 1px solid var(--line); padding: 5px 7px; color: var(--subtle); font-size: 7px; }
.legend .tone-support { border-color: #92c6ad; color: var(--fall); background: #f1faf6; }
.legend .tone-risk { border-color: #dfb0b4; color: #b84d55; background: #fff4f4; }
.session-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.session-tabs button { display: grid; grid-template-columns: 1fr auto; gap: 4px 8px; min-height: 59px; border: 1px solid var(--line); background: var(--panel); padding: 10px 12px; text-align: left; }
.session-tabs button span { font-size: 9px; }
.session-tabs button b { color: var(--blue); font-size: 10px; }
.session-tabs button small { grid-column: 1 / -1; color: var(--subtle); font-size: 7px; }
.session-tabs button.active { border-color: #8fb2d4; background: linear-gradient(120deg, #eef6fd, #ffffff); box-shadow: inset 0 2px var(--blue); }
.candidate-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 12px; align-items: start; }
.table-panel { min-width: 0; overflow: hidden; }
.table-wrap { overflow-x: auto; }
.session-notice { border-bottom: 1px solid #e3cd91; background: #fff9e9; padding: 9px 12px; color: #806316; font-size: 8px; line-height: 1.5; }
.open-news-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--line); background: #f8fafc; }
.open-news-summary article { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; min-width: 0; border-right: 1px solid var(--line); padding: 11px 13px; }
.open-news-summary article:last-child { border-right: 0; }
.open-news-summary small { grid-column: 1 / -1; color: var(--blue); font-size: 7px; font-weight: 800; letter-spacing: .12em; }
.open-news-summary b { font-size: 9px; }
.open-news-summary strong { grid-row: 2 / 4; grid-column: 2; color: var(--blue); font: 700 18px ui-monospace, monospace; }
.open-news-summary span { color: var(--muted); font-size: 7px; line-height: 1.45; }
.rejection-summary { border-bottom: 1px solid var(--line); background: #fff; }
.rejection-summary summary { display: flex; justify-content: space-between; gap: 12px; padding: 9px 12px; color: var(--muted); font-size: 8px; cursor: pointer; }
.rejection-summary summary b { color: var(--text); }
.rejection-summary > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-soft); }
.rejection-summary article { min-width: 0; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); padding: 9px 11px; }
.rejection-summary article:nth-child(3n) { border-right: 0; }
.rejection-summary article span, .rejection-summary article strong { display: block; }
.rejection-summary article span { color: #a03b43; font-size: 7px; }
.rejection-summary article strong { margin-top: 3px; font-size: 12px; }
.rejection-summary article p, .rejection-summary article small, .rejection-summary > p { color: var(--subtle); font-size: 7px; line-height: 1.45; }
.rejection-summary article p { min-height: 30px; margin: 6px 0 3px; }
.rejection-summary > p { margin: 0; padding: 7px 11px; }
.discovery-coverage { border-left: 3px solid var(--blue); }
.discovery-coverage article span { color: #286b54; }
.drawer-tracks { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
.drawer-tracks span { border: 1px solid #a9c5df; background: #edf5fb; padding: 3px 5px; color: var(--blue); font-size: 7px; }
.dense-table { width: 100%; border-collapse: collapse; font-size: 8px; }
.dense-table th { height: 34px; background: var(--panel-2); color: var(--muted); font-size: 7px; font-weight: 600; text-align: left; white-space: nowrap; }
.dense-table th, .dense-table td { border-bottom: 1px solid var(--line-soft); padding: 8px 10px; vertical-align: middle; }
.dense-table tbody tr:hover, .dense-table tbody tr.selected { background: #f1f6fb; }
.dense-table td { color: var(--muted); }
.dense-table td strong { color: var(--text); }
.stock-cell { display: grid; gap: 3px; min-width: 90px; border: 0; background: transparent; padding: 0; text-align: left; }
.stock-cell b { font-size: 9px; }
.stock-cell small, .audit-table td small { color: var(--subtle); font-size: 7px; }
.strategy-cell { display: block; max-width: 155px; color: var(--blue); line-height: 1.45; }
.fusion-pill { display: inline-block; min-width: 74px; border: 1px solid var(--line); padding: 4px 5px; font-size: 7px; text-align: center; }
.fusion-pill.support { border-color: #92c6ad; color: var(--fall); background: #f1faf6; }
.fusion-pill.risk { border-color: #dfb0b4; color: #b84d55; background: #fff4f4; }
.candidate-drawer { position: sticky; top: 124px; max-height: calc(100vh - 146px); overflow: auto; border: 1px solid var(--line); background: var(--panel); box-shadow: var(--shadow); }
.empty-drawer { display: grid; gap: 8px; min-height: 220px; place-content: center; padding: 30px; text-align: center; }
.empty-drawer b { font-size: 12px; }
.empty-drawer span { color: var(--muted); font-size: 8px; line-height: 1.7; }
.drawer-head { display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); padding: 16px; }
.drawer-head > div { min-width: 0; }
.drawer-head small { color: var(--blue); font-size: 7px; }
.drawer-head h3 { margin: 4px 0; font-size: 20px; }
.drawer-head p { margin: 0; color: var(--muted); font-size: 8px; }
.drawer-head > span { display: grid; align-content: start; gap: 2px; text-align: right; }
.drawer-head > span b { color: var(--blue); font: 700 26px ui-monospace, monospace; }
.drawer-head > span small { color: var(--muted); }
.execution-card { display: grid; gap: 10px; border-bottom: 1px solid var(--line); border-left: 3px solid var(--blue); background: linear-gradient(120deg, #f5f9fd, #ffffff); padding: 14px 16px; }
.execution-card.tone-active { border-left-color: var(--fall); }
.execution-card.tone-caution { border-left-color: var(--gold); }
.execution-card.tone-defense { border-left-color: var(--danger); background: linear-gradient(120deg, #fff7f7, #ffffff); }
.execution-card > div:first-child { display: flex; align-items: end; justify-content: space-between; gap: 8px; }
.execution-card > div:first-child small { color: var(--blue); font-size: 7px; }
.execution-card h4 { margin: 4px 0 0; font-size: 12px; }
.execution-card > b { color: var(--gold); font-size: 8px; }
.execution-grid { display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid var(--line); }
.execution-grid span { display: grid; gap: 4px; min-width: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 8px; }
.execution-grid span:nth-child(even) { border-right: 0; }
.execution-grid span:nth-child(n+3) { border-bottom: 0; }
.execution-grid small { color: var(--subtle); font-size: 7px; }
.execution-grid strong { overflow: hidden; font-size: 8px; line-height: 1.45; text-overflow: ellipsis; }
.no-buy { display: grid; gap: 4px; border-left: 2px solid var(--danger); background: #fff5f5; padding: 7px 9px; }
.no-buy small { color: var(--danger); font-size: 7px; font-weight: 700; }
.no-buy span { color: var(--muted); font-size: 7px; line-height: 1.45; }
.ready-note { border-left: 2px solid var(--fall); background: #f1faf6; padding: 7px 9px; color: var(--fall); font-size: 7px; line-height: 1.5; }
.execution-card > button { justify-self: start; border: 1px solid #9db4cc; background: #ffffff; padding: 6px 8px; color: var(--blue); font-size: 7px; }
.drawer-strategy { padding: 14px 16px; border-bottom: 1px solid var(--line); }
.drawer-strategy small { color: var(--subtle); font-size: 7px; }
.drawer-strategy b { display: block; margin: 4px 0; color: var(--blue); font-size: 10px; }
.drawer-strategy p, .drawer-block p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.65; }
.price-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-bottom: 1px solid var(--line); }
.price-grid span { padding: 10px 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.price-grid span:nth-child(even) { border-right: 0; }
.price-grid span:nth-child(n+5) { border-bottom: 0; }
.price-grid small, .price-grid b { display: block; }
.price-grid small { color: var(--subtle); font-size: 7px; }
.price-grid b { margin-top: 4px; font: 700 10px ui-monospace, monospace; line-height: 1.45; }
.drawer-block { display: grid; gap: 7px; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.drawer-block h4 { display: flex; justify-content: space-between; margin: 0 0 2px; font-size: 9px; }
.drawer-block h4 em { color: var(--gold); font-size: 7px; font-style: normal; }
.evidence { display: grid; gap: 3px; border-left: 2px solid var(--line); background: var(--panel-2); padding: 7px 9px; }
.evidence b { font-size: 8px; }
.evidence span { color: var(--muted); font-size: 7px; line-height: 1.5; }
.evidence.support { border-left-color: var(--fall); }
.evidence.support b { color: var(--fall); }
.evidence.risk { border-left-color: var(--danger); }
.evidence.risk b { color: #b84d55; }
.gate-row { display: grid; grid-template-columns: 46px 1fr; gap: 8px; }
.gate-row span { color: var(--subtle); font-size: 7px; }
.gate-row b { color: var(--muted); font-size: 7px; font-weight: 500; line-height: 1.5; }
.drawer-block ul { margin: 0; padding-left: 17px; color: var(--gold); font-size: 7px; line-height: 1.7; }
.drawer-block .risk-copy { margin-top: 5px; color: var(--danger); }
.drawer-block a { display: grid; gap: 3px; border-bottom: 1px dashed var(--line); padding: 5px 0; text-decoration: none; }
.drawer-block a b { color: var(--blue); font-size: 7px; line-height: 1.5; }
.drawer-block a span { color: var(--subtle); font-size: 7px; }
.regulatory-panel { display: grid; gap: 8px; border-bottom: 1px solid var(--line); border-left: 3px solid #8393a5; background: #f8fafc; padding: 12px 14px; }
.regulatory-panel.regulatory-normal { border-left-color: var(--fall); }
.regulatory-panel.regulatory-attention { border-left-color: #c6992b; background: #fffdf5; }
.regulatory-panel.regulatory-near { border-left-color: #d56f21; background: #fff8f0; }
.regulatory-panel.regulatory-triggered { border-left-color: var(--danger); background: #fff4f4; }
.regulatory-head { display: flex; align-items: end; justify-content: space-between; gap: 8px 12px; }
.regulatory-head > div { display: grid; gap: 4px; }
.regulatory-head small { color: var(--blue); font-size: 7px; letter-spacing: .08em; }
.regulatory-head h4 { margin: 0; color: var(--text); font-size: 12px; }
.regulatory-head > span { color: var(--subtle); font-size: 7px; text-align: right; }
.regulatory-formula { margin: 0; border-left: 3px solid #7b93aa; background: #eef4f8; padding: 7px 8px; color: #435b72; font-size: 8px; font-weight: 650; line-height: 1.55; }
.regulatory-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--line-soft); background: var(--line-soft); }
.regulatory-metrics > span { display: grid; min-width: 0; gap: 4px; align-content: start; background: #fff; padding: 8px 9px; }
.regulatory-metrics small { color: var(--subtle); font-size: 7px; line-height: 1.4; }
.regulatory-metrics b { color: var(--blue); font: 700 10px ui-monospace, monospace; }
.regulatory-metrics em { color: var(--gold); font-size: 7px; font-style: normal; line-height: 1.45; overflow-wrap: anywhere; }
.regulatory-action { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.55; }
.regulatory-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.regulatory-meta span, .regulatory-meta a, .regulatory-meta small { color: var(--subtle); font-size: 7px; line-height: 1.45; }
.regulatory-meta a { color: var(--blue); text-decoration: none; }
.regulatory-meta small { flex: 1 1 100%; }
.mini-lifecycle { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid var(--line); }
.mini-lifecycle > span { display: grid; gap: 3px; min-width: 0; border-right: 1px solid var(--line); padding: 7px 5px; }
.mini-lifecycle > span:last-child { border-right: 0; }
.mini-lifecycle small { color: var(--subtle); font-size: 6px; }
.mini-lifecycle b { overflow: hidden; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.mini-lifecycle em { color: var(--blue); font-size: 6px; font-style: normal; }
.mini-lifecycle .present { background: #f1faf6; }
.mini-lifecycle .removed { background: #fff4f4; }
.mini-lifecycle .waiting { background: var(--panel-2); }

.rotation-board { display: grid; gap: 10px; }
.rotation-card { display: grid; grid-template-columns: 44px minmax(0, 1fr) minmax(260px, .55fr); border: 1px solid var(--line); background: var(--panel); box-shadow: var(--shadow); }
.rotation-index { display: grid; place-content: center; border-right: 1px solid var(--line); color: #4b5967; font: 700 12px ui-monospace, monospace; }
.rotation-card[class*="stage-启动"] { border-left: 3px solid var(--fall); }
.rotation-card[class*="stage-扩散"] { border-left: 3px solid var(--blue); }
.rotation-card[class*="stage-加速"] { border-left: 3px solid var(--gold); }
.rotation-card[class*="stage-分歧"], .rotation-card[class*="stage-衰退"] { border-left: 3px solid var(--danger); }
.rotation-main { padding: 14px 16px; }
.rotation-title { display: flex; align-items: center; gap: 9px; }
.rotation-title span { border: 1px solid #d8bd85; background: var(--gold-soft); padding: 3px 6px; color: var(--gold); font-size: 7px; }
.rotation-title h3 { margin: 0; font-size: 15px; }
.rotation-title strong { margin-left: auto; color: var(--blue); font: 700 18px ui-monospace, monospace; }
.rotation-main > p { margin: 8px 0; color: var(--muted); font-size: 8px; line-height: 1.55; }
.rotation-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); }
.rotation-metrics span { padding: 7px 8px; border-right: 1px solid var(--line); }
.rotation-metrics span:last-child { border-right: 0; }
.rotation-metrics small, .rotation-metrics b { display: block; }
.rotation-metrics small { color: var(--subtle); font-size: 7px; }
.rotation-metrics b { margin-top: 3px; font-size: 8px; }
.rotation-action { display: flex; gap: 8px; margin-top: 8px; border-left: 2px solid var(--blue); background: #f1f7fc; padding: 7px 8px; font-size: 8px; }
.rotation-action b { color: var(--blue); }
.rotation-action span { color: var(--muted); }
.impact-chain { display: flex; gap: 8px; margin-top: 7px; border-top: 1px dashed var(--line); padding-top: 7px; font-size: 7px; line-height: 1.5; }
.impact-chain b { color: var(--gold); white-space: nowrap; }
.impact-chain span { color: var(--muted); }
.representatives { border-left: 1px solid var(--line); background: #fafbfc; }
.representatives button { display: grid; grid-template-columns: 1fr 60px 75px; gap: 8px; align-items: center; width: 100%; min-height: 42px; border: 0; border-bottom: 1px solid var(--line-soft); background: transparent; padding: 6px 10px; text-align: left; }
.representatives button:hover { background: #eef5fb; }
.representatives span { display: grid; gap: 2px; }
.representatives b { font-size: 8px; }
.representatives small { color: var(--subtle); font-size: 7px; }
.representatives strong, .representatives em { font-size: 7px; font-style: normal; text-align: right; }
.representatives em { color: var(--gold); }
.representatives em.verified-role { color: var(--blue); }
.representatives em.unverified-role { color: var(--subtle); }
.empty-mini { padding: 14px; color: var(--subtle); font-size: 8px; }

.emotion-summary { margin-bottom: 12px; overflow: hidden; border-top: 3px solid var(--blue); }
.emotion-summary.blocked { border-top-color: var(--danger); }
.emotion-head { display: flex; align-items: start; justify-content: space-between; gap: 18px; padding: 16px 18px; }
.emotion-head small { color: var(--blue); font-size: 7px; letter-spacing: .12em; }
.emotion-head h3 { margin: 5px 0 4px; font-size: 20px; }
.emotion-head p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.55; }
.emotion-head > strong { color: var(--blue); font: 700 31px ui-monospace, monospace; }
.emotion-head > strong small { display: block; color: var(--subtle); text-align: right; }
.emotion-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 1px solid var(--line); background: var(--line); gap: 1px; }
.emotion-metrics span { display: grid; gap: 5px; min-width: 0; background: var(--panel-2); padding: 11px 12px; }
.emotion-metrics small, .emotion-guidance-body small, .emotion-profit-body small { color: var(--subtle); font-size: 7px; }
.emotion-metrics b, .emotion-guidance-body b, .emotion-profit-body b { overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.emotion-boundary { display: flex; gap: 10px; border-top: 1px solid var(--line); background: #fffaf0; padding: 9px 12px; font-size: 7px; line-height: 1.5; }
.emotion-boundary b { color: var(--gold); white-space: nowrap; }
.emotion-boundary span { color: var(--muted); }
.emotion-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.emotion-guidance, .emotion-profit { overflow: hidden; }
.emotion-guidance-body { display: grid; grid-template-columns: repeat(3, 1fr); }
.emotion-profit-body { display: grid; grid-template-columns: repeat(4, 1fr); }
.emotion-guidance-body span, .emotion-profit-body span { display: grid; gap: 5px; min-width: 0; border-right: 1px solid var(--line-soft); padding: 12px; }
.emotion-guidance-body span:last-child, .emotion-profit-body span:last-child { border-right: 0; }
.emotion-guidance > p, .emotion-profit > p { margin: 0; border-top: 1px solid var(--line-soft); padding: 9px 12px; color: var(--muted); font-size: 7px; line-height: 1.55; }
.emotion-panel { margin-bottom: 12px; overflow: hidden; }
.emotion-themes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.emotion-theme { display: grid; grid-template-columns: 145px minmax(0, 1fr); min-width: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.emotion-theme:nth-child(even) { border-right: 0; }
.emotion-theme > div:first-child { padding: 12px; }
.emotion-theme > div:first-child span { color: var(--gold); font-size: 7px; }
.emotion-theme h3 { margin: 5px 0; font-size: 12px; }
.emotion-theme > div:first-child strong { color: var(--blue); font: 700 18px ui-monospace, monospace; }
.emotion-theme > div:first-child p { margin: 5px 0 0; color: var(--muted); font-size: 7px; }
.emotion-role-list { border-left: 1px solid var(--line-soft); }
.emotion-role-list button { display: grid; grid-template-columns: minmax(90px, 1fr) 58px 50px minmax(100px, 1.2fr); gap: 7px; align-items: center; width: 100%; min-height: 42px; border: 0; border-bottom: 1px solid var(--line-soft); background: transparent; padding: 6px 8px; text-align: left; }
.emotion-role-list button:hover { background: #eef5fb; }
.emotion-role-list button > span { display: grid; gap: 2px; }
.emotion-role-list b { font-size: 8px; }
.emotion-role-list small { overflow: hidden; color: var(--subtle); font-size: 6px; text-overflow: ellipsis; white-space: nowrap; }
.emotion-role-list em { color: var(--gold); font-size: 7px; font-style: normal; }
.emotion-role-list em.verified-role { color: var(--blue); }
.emotion-role-list strong { font-size: 7px; text-align: right; }
.emotion-timeline { display: flex; overflow-x: auto; }
.emotion-timeline article { display: grid; flex: 1 0 150px; gap: 4px; min-height: 105px; border-right: 1px solid var(--line); padding: 12px; }
.emotion-timeline article:last-child { border-right: 0; }
.emotion-timeline article.verified { border-top: 2px solid var(--blue); }
.emotion-timeline article.blocked { border-top: 2px solid var(--danger); }
.emotion-timeline small, .emotion-timeline time { color: var(--subtle); font-size: 7px; }
.emotion-timeline b { font-size: 10px; }
.emotion-timeline strong { color: var(--blue); font: 700 18px ui-monospace, monospace; }
.emotion-timeline span { color: var(--muted); font-size: 7px; }

.stealth-summary { display: grid; grid-template-columns: repeat(3, 130px) minmax(0, 1fr); border: 1px solid var(--line); background: var(--panel); box-shadow: var(--shadow); }
.stealth-summary article { display: grid; gap: 4px; align-content: center; min-height: 110px; border-right: 1px solid var(--line); padding: 14px; }
.stealth-summary article small { color: var(--subtle); font-size: 7px; }
.stealth-summary article b { color: var(--blue); font: 700 26px ui-monospace, monospace; }
.stealth-summary article span { color: var(--muted); font-size: 7px; }
.stealth-summary > div { display: grid; align-content: center; gap: 5px; padding: 14px 18px; }
.stealth-summary > div b { font-size: 11px; }
.stealth-summary > div p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.6; }
.stealth-summary > div small { color: var(--gold); font-size: 7px; }
.stealth-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 12px; }
.stealth-group .panel-heading h2 { margin: 0; }
.stealth-group > button { display: grid; grid-template-columns: 1fr 38px 70px; gap: 8px; align-items: center; width: 100%; min-height: 45px; border: 0; border-bottom: 1px solid var(--line-soft); background: transparent; padding: 7px 10px; text-align: left; }
.stealth-group > button span { display: grid; gap: 3px; }
.stealth-group > button b { font-size: 8px; }
.stealth-group > button small { color: var(--subtle); font-size: 7px; }
.stealth-group > button strong { color: var(--blue); font-size: 12px; }
.stealth-group > button em { color: var(--gold); font-size: 7px; font-style: normal; }

.diagnosis-form { display: flex; align-items: end; gap: 9px; max-width: 520px; margin-bottom: 14px; }
.diagnosis-form label { display: grid; flex: 1; gap: 5px; }
.diagnosis-form label span { color: var(--subtle); font-size: 7px; }
.diagnosis-form input { height: 40px; border: 1px solid var(--line); outline: 0; background: #ffffff; padding: 0 12px; color: var(--text); font: 10px ui-monospace, monospace; }
.diagnosis-form input:focus { border-color: var(--blue); }
.diagnosis-form button { height: 40px; border: 1px solid #1f568f; background: var(--blue); padding: 0 15px; color: #ffffff; font-size: 9px; }
.diagnosis-result { display: grid; gap: 12px; }
.diagnosis-hero { display: flex; align-items: center; justify-content: space-between; padding: 18px; }
.diagnosis-hero small { color: var(--blue); font-size: 7px; }
.diagnosis-hero h2 { margin: 5px 0; font-size: 22px; }
.diagnosis-hero p { margin: 0; color: var(--muted); font-size: 8px; }
.diagnosis-hero > span { display: grid; gap: 3px; text-align: right; }
.diagnosis-hero > span b { font: 700 28px ui-monospace, monospace; }
.diagnosis-hero > span small { color: var(--subtle); }
.diagnosis-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.chart-panel svg { width: 100%; height: 210px; padding: 20px; background: repeating-linear-gradient(0deg, transparent 0 39px, rgba(112, 128, 148, .18) 40px), #fbfcfd; }
.chart-panel polyline { fill: none; stroke: var(--blue); stroke-width: 1; vector-effect: non-scaling-stroke; }
.chart-empty { display: grid; min-height: 210px; place-content: center; color: var(--subtle); font-size: 8px; }
.ohlc { display: flex; justify-content: space-around; padding: 9px; color: var(--muted); font: 8px ui-monospace, monospace; }
.fund-grid { display: grid; grid-template-columns: repeat(2, 1fr); }
.fund-grid span { min-height: 59px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 10px 12px; }
.fund-grid span:nth-child(even) { border-right: 0; }
.fund-grid small, .fund-grid b { display: block; }
.fund-grid small { color: var(--subtle); font-size: 7px; }
.fund-grid b { margin-top: 5px; font: 700 11px ui-monospace, monospace; }
.announcement-panel > a { display: grid; grid-template-columns: 90px 1fr; gap: 12px; border-bottom: 1px solid var(--line-soft); padding: 9px 13px; text-decoration: none; }
.announcement-panel > a:hover { background: #f3f7fb; }
.announcement-panel > a span { color: var(--subtle); font-size: 7px; }
.announcement-panel > a b { color: var(--text); font-size: 8px; font-weight: 500; }
.event-calendar-panel { margin-top: 12px; }
.calendar-note { margin: 0; border-bottom: 1px solid var(--line-soft); background: var(--panel-2); padding: 9px 14px; color: var(--muted); font-size: 7px; }
.event-calendar { display: grid; grid-template-columns: repeat(2, 1fr); }
.event-calendar > a { display: grid; gap: 4px; min-height: 62px; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); padding: 9px 12px; text-decoration: none; }
.event-calendar > a:nth-child(even) { border-right: 0; }
.event-calendar > a:hover { background: #f3f7fb; }
.event-calendar a > span { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--subtle); font-size: 7px; }
.event-calendar em { border: 1px solid var(--line); padding: 2px 4px; font-style: normal; }
.event-calendar b { font-size: 8px; line-height: 1.5; }
.event-calendar .event-hard em { border-color: #dfb0b4; color: var(--danger); background: #fff4f4; }
.event-calendar .event-watch em { border-color: #d8bd85; color: var(--gold); background: var(--gold-soft); }
.event-calendar .event-catalyst em { border-color: #92c6ad; color: var(--fall); background: #f1faf6; }

.review-timeline { display: grid; gap: 0; }
.lifecycle-panel { margin-bottom: 12px; overflow: hidden; }
.lifecycle-board { overflow-x: auto; }
.lifecycle-head, .lifecycle-row { display: grid; min-width: 900px; grid-template-columns: 150px repeat(5, minmax(120px, 1fr)); }
.lifecycle-head { min-height: 30px; align-items: center; background: var(--panel-2); color: var(--subtle); font-size: 7px; }
.lifecycle-head span, .lifecycle-row > span, .lifecycle-row > button { border-right: 1px solid var(--line-soft); padding: 7px 10px; }
.lifecycle-row { min-height: 52px; border-top: 1px solid var(--line-soft); }
.lifecycle-row > span, .lifecycle-row > button { display: grid; align-content: center; gap: 3px; border-top: 0; border-bottom: 0; border-left: 0; background: transparent; text-align: left; }
.lifecycle-stock b { font-size: 8px; }
.lifecycle-stock small, .lifecycle-row > span small, .lifecycle-row > button small { color: var(--subtle); font-size: 7px; }
.lifecycle-row > span b, .lifecycle-row > button b { color: var(--blue); font-size: 8px; }
.lifecycle-row .life-present, .lifecycle-row .life-return { background: #f1faf6; }
.lifecycle-row .life-present small, .lifecycle-row .life-return small { color: var(--fall); }
.lifecycle-row .life-removed { background: #fff4f4; }
.lifecycle-row .life-removed small { color: var(--danger); }
.lifecycle-row .life-waiting { background: var(--panel-2); }
.timeline-item { display: grid; grid-template-columns: 150px 1fr; min-height: 112px; }
.timeline-time { position: relative; display: grid; grid-template-columns: 25px 1fr; gap: 3px 10px; align-content: start; padding: 18px 16px 18px 0; }
.timeline-time::after { position: absolute; top: 0; right: 0; width: 1px; height: 100%; background: var(--line); content: ""; }
.timeline-time > span { z-index: 1; grid-row: 1 / 3; display: grid; width: 25px; height: 25px; place-content: center; border: 1px solid var(--line); border-radius: 50%; background: var(--bg); color: var(--blue); font-size: 7px; }
.timeline-item.locked .timeline-time > span { border-color: #92c6ad; color: var(--fall); background: #f1faf6; }
.timeline-time b { font-size: 9px; }
.timeline-time small { color: var(--subtle); font-size: 7px; }
.timeline-body { margin: 8px 0 8px 18px; border: 1px solid var(--line); background: var(--panel); padding: 13px 15px; }
.timeline-body > div:first-child { display: flex; justify-content: space-between; gap: 12px; }
.timeline-body h3 { margin: 0; font-size: 11px; }
.timeline-body > div span { color: var(--subtle); font-size: 7px; }
.timeline-body p { margin: 13px 0 0; color: var(--muted); font-size: 8px; line-height: 1.6; }
.timeline-stocks { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.timeline-stocks button { display: grid; grid-template-columns: auto auto; gap: 3px 8px; border: 1px solid var(--line); background: #f8fafc; padding: 7px 9px; text-align: left; }
.timeline-stocks b { font-size: 8px; }
.timeline-stocks span { font-size: 7px; }
.timeline-stocks em { grid-column: 1 / -1; color: var(--blue); font-size: 7px; font-style: normal; }

.data-status { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 12px; }
.data-status article { display: grid; gap: 5px; min-height: 130px; border: 1px solid var(--line); background: var(--panel); padding: 13px; }
.data-status small { color: var(--blue); font-size: 7px; letter-spacing: .1em; }
.data-status b { font-size: 14px; }
.data-status span { color: var(--subtle); font-size: 7px; }
.data-status p { margin: auto 0 0; color: var(--muted); font-size: 7px; line-height: 1.5; }
.audit-summary { display: grid; grid-template-columns: repeat(4, 105px) 1fr; border-bottom: 1px solid var(--line); }
.audit-summary > span { display: grid; gap: 4px; min-height: 83px; align-content: center; border-right: 1px solid var(--line); padding: 12px; }
.audit-summary small { color: var(--subtle); font-size: 7px; }
.audit-summary b { color: var(--blue); font: 700 22px ui-monospace, monospace; }
.audit-summary > div { display: grid; align-content: center; gap: 6px; padding: 12px 16px; }
.audit-summary > div b { color: var(--gold); font-size: 9px; }
.audit-summary > div span { color: var(--muted); font-size: 8px; line-height: 1.55; }
.shadow-panel { margin-bottom: 12px; }
.shadow-scorecard { display: grid; grid-template-columns: minmax(470px, 1.1fr) minmax(360px, .9fr); }
.shadow-metrics { display: grid; grid-template-columns: repeat(4, 1fr); }
.shadow-metrics span { display: grid; align-content: center; gap: 5px; min-height: 104px; border-right: 1px solid var(--line); padding: 12px; }
.shadow-metrics small { color: var(--subtle); font-size: 7px; }
.shadow-metrics b { color: var(--blue); font: 700 16px ui-monospace, monospace; }
.shadow-verdict { display: grid; align-content: center; gap: 6px; border-left: 1px solid var(--line); padding: 14px 18px; }
.shadow-verdict b { color: var(--gold); font-size: 10px; }
.shadow-verdict.ready b { color: var(--fall); }
.shadow-verdict span { color: var(--muted); font-size: 8px; line-height: 1.55; }
.shadow-verdict small { color: var(--subtle); font-size: 7px; line-height: 1.5; }
.audit-table { min-width: 1120px; }
.audit-table td { max-width: 260px; line-height: 1.5; vertical-align: top; }
.audit-table td:first-child { min-width: 110px; }
.audit-table td:first-child b, .audit-table td:first-child small { display: block; }
.audit-table [class^="mode-"] { display: inline-block; min-width: 58px; border: 1px solid var(--line); padding: 4px; text-align: center; }
.mode-support { border-color: #92c6ad !important; color: var(--fall); background: #f1faf6; }
.mode-conditional { border-color: #9dbad8 !important; color: var(--blue); background: #f1f7fc; }
.mode-anchor { border-color: #d8bd85 !important; color: var(--gold); background: #fffaf0; }
.mode-reject { border-color: #dfb0b4 !important; color: #b84d55; background: #fff4f4; }

.validation-method { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 12px; }
.validation-method > div { display: grid; min-height: 112px; align-content: center; gap: 6px; border-right: 1px solid var(--line); padding: 13px 15px; }
.validation-method > div:last-child { border-right: 0; }
.validation-method small { color: var(--blue); font-size: 7px; letter-spacing: .1em; }
.validation-method b { font-size: 10px; }
.validation-method span { color: var(--muted); font-size: 7px; line-height: 1.55; }
.validation-lifecycle-panel { margin-bottom: 12px; overflow: hidden; }
.validation-lifecycle { border-bottom: 1px solid var(--line); }
.validation-lifecycle-metrics { display: grid; grid-template-columns: repeat(6, 1fr); }
.validation-lifecycle-metrics span { display: grid; min-width: 0; gap: 5px; border-right: 1px solid var(--line-soft); padding: 12px 11px; }
.validation-lifecycle-metrics span:last-child { border-right: 0; }
.validation-lifecycle-metrics small { color: var(--subtle); font-size: 7px; }
.validation-lifecycle-metrics b { color: var(--blue); font: 700 16px ui-monospace, monospace; }
.validation-lifecycle > p { margin: 0; border-top: 1px solid var(--line-soft); background: var(--panel-2); padding: 9px 12px; color: var(--muted); font-size: 7px; line-height: 1.55; }
.validation-lifecycle > p b { color: var(--gold); }
.validation-session-table { min-width: 760px; }
.validation-cohorts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.validation-cohort { min-width: 0; overflow: hidden; }
.validation-cohort-head { display: flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 8px; border-bottom: 1px solid var(--line); padding: 10px 13px; }
.validation-cohort-head span { font-size: 11px; font-weight: 700; }
.validation-cohort-head em { border: 1px solid var(--line); padding: 4px 6px; color: var(--subtle); font-size: 7px; font-style: normal; }
.validation-cohort-head .sample-preliminary { border-color: #92c6ad; color: var(--fall); background: #f1faf6; }
.validation-cohort-head .sample-exploratory { border-color: #d8bd85; color: var(--gold); background: #fffaf0; }
.validation-cohort-counts, .validation-cohort-result { display: grid; grid-template-columns: repeat(4, 1fr); }
.validation-cohort-counts span, .validation-cohort-result span { display: grid; gap: 4px; min-width: 0; border-right: 1px solid var(--line-soft); padding: 10px 8px; }
.validation-cohort-counts span:last-child, .validation-cohort-result span:last-child { border-right: 0; }
.validation-cohort-counts { border-bottom: 1px solid var(--line-soft); background: var(--panel-2); }
.validation-cohort small { color: var(--subtle); font-size: 7px; }
.validation-cohort-counts b { color: var(--blue); font: 700 15px ui-monospace, monospace; }
.validation-cohort-result b { overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.validation-cohort > p { margin: 0; border-top: 1px solid var(--line-soft); padding: 9px 12px; color: var(--muted); font-size: 7px; line-height: 1.55; }
.validation-table-panel { margin-bottom: 12px; overflow: hidden; }
.validation-table { min-width: 820px; }
.validation-table td b, .validation-table td small { display: block; }
.validation-table td small { margin-top: 3px; color: var(--subtle); font-size: 7px; }
.validation-note { margin: 0; border-top: 1px solid var(--line-soft); background: #fbfcfd; padding: 8px 11px; color: var(--subtle); font-size: 7px; line-height: 1.55; }
.signal-ledger { min-width: 1080px; }
.opportunity-ledger { min-width: 1280px; }
.opportunity-ledger td i { margin: 0 3px; color: var(--subtle); font-style: normal; }
.lifecycle-step { display: inline-block; border: 1px solid var(--line); padding: 3px 5px; font-size: 7px; font-style: normal; white-space: nowrap; }
.cohort-step-baseline { border-color: #9dbad8; color: var(--blue); background: #f1f7fc; }
.cohort-step-leader_shadow { border-color: #d8bd85; color: var(--gold); background: #fffaf0; }
.cohort-step-blocked_pool { border-color: #dfb0b4; color: #b84d55; background: #fff4f4; }
.cohort-baseline { border-top: 3px solid var(--blue); }
.cohort-leader_shadow { border-top: 3px solid var(--gold); }
.cohort-blocked_pool { border-top: 3px solid var(--danger); }

.empty-state { display: grid; gap: 7px; min-height: 150px; place-content: center; padding: 22px; text-align: center; }
.empty-state.large { min-height: 310px; }
.empty-state b { font-size: 11px; }
.empty-state span { max-width: 560px; color: var(--muted); font-size: 8px; line-height: 1.65; }
.empty-state button { justify-self: center; margin-top: 4px; }
.rise { color: var(--rise) !important; }
.fall { color: var(--fall) !important; }
.footer { display: flex; gap: 22px; border-top: 1px solid var(--line); padding: 10px 28px 20px; color: var(--subtle); font-size: 7px; }
.footer span:last-child { margin-left: auto; }
.mobile-nav { display: none; }

@media (max-width: 1180px) {
  .market-session { flex-basis: 112px; }
  .index-sync { display: none; }
  .index-tickers { display: flex; }
  .index-ticker { flex: 1 0 122px; }
  .app-shell { grid-template-columns: 190px minmax(0, 1fr); }
  .decision-hero { grid-template-columns: 1fr; }
  .decision-metrics { border-top: 1px solid var(--line); border-left: 0; }
  .candidate-layout { grid-template-columns: 1fr; }
  .candidate-drawer { position: static; max-height: none; }
  .rotation-card { grid-template-columns: 42px 1fr; }
  .representatives { grid-column: 2; border-top: 1px solid var(--line); border-left: 0; }
  .data-status { grid-template-columns: repeat(2, 1fr); }
  .decision-ops { grid-template-columns: 1fr 1fr; }
  .push-card { grid-column: 1 / -1; min-height: 140px; }
  .shadow-scorecard { grid-template-columns: 1fr; }
  .shadow-verdict { border-top: 1px solid var(--line); border-left: 0; }
  .validation-method { grid-template-columns: repeat(2, 1fr); }
  .validation-method > div:nth-child(2) { border-right: 0; }
  .validation-method > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .validation-cohorts { grid-template-columns: 1fr; }
  .validation-lifecycle-metrics { grid-template-columns: repeat(3, 1fr); }
  .validation-lifecycle-metrics span:nth-child(3n) { border-right: 0; }
  .validation-lifecycle-metrics span:nth-child(-n+3) { border-bottom: 1px solid var(--line-soft); }
  .emotion-metrics { grid-template-columns: repeat(3, 1fr); }
  .emotion-themes { grid-template-columns: 1fr; }
  .emotion-theme { border-right: 0; }
}

@media (max-width: 760px) {
  body { padding-bottom: 62px; }
  .app-shell { display: block; }
  .sidebar { display: none; }
  .market-index-strip { min-height: 34px; }
  .market-session { flex-basis: 94px; gap: 6px; padding: 0 9px; }
  .market-session small, .market-session b { font-size: 7px; }
  .index-ticker { flex-basis: 132px; gap: 5px; padding: 0 7px; }
  .index-ticker small, .index-ticker em { font-size: 7px; }
  .index-ticker b { font-size: 9px; }
  .topbar { min-height: 62px; padding: 0 14px; }
  .topbar h1 { font-size: 16px; }
  .topbar-meta { gap: 8px; }
  .topbar-meta span { display: none; }
  .topbar-meta #data-freshness { display: inline; max-width: 118px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .topbar-meta button { padding: 6px 8px; }
  .view { padding: 14px 10px 24px; }
  .global-error { margin: 10px 10px 0; }
  .decision-hero { grid-template-columns: 1fr; }
  .decision-primary { padding: 18px 16px; }
  .decision-primary h2 { font-size: 25px; }
  .decision-metrics article { min-height: 83px; padding: 11px 12px; }
  .decision-metrics b { font-size: 19px; }
  .decision-alerts { grid-template-columns: 1fr; }
  .decision-alerts span + span { border-top: 1px solid var(--line); border-left: 0; }
  .decision-ops { grid-template-columns: 1fr; }
  .ops-card, .push-card { grid-column: auto; min-height: 145px; }
  .decision-grid { grid-template-columns: 1fr; }
  .focus-row { grid-template-columns: 22px 1fr 70px; }
  .focus-row > span:nth-child(3), .focus-row > em { display: none; }
  .hotspot-head, .hotspot-row { grid-template-columns: 1fr 58px 70px; }
  .hotspot-head span:nth-child(3), .hotspot-head span:nth-child(4), .hotspot-row em, .hotspot-row i { display: none; }
  .section-intro { display: block; }
  .section-intro h2 { font-size: 19px; }
  .legend { margin-top: 10px; }
  .session-tabs { display: flex; overflow-x: auto; padding-bottom: 4px; }
  .session-tabs button { min-width: 126px; }
  .candidate-drawer { order: -1; }
  .regulatory-panel { gap: 9px; padding: 12px; }
  .regulatory-head { align-items: start; }
  .regulatory-head small, .regulatory-head > span, .regulatory-metrics small, .regulatory-metrics em, .regulatory-meta span, .regulatory-meta a, .regulatory-meta small { font-size: 9px; }
  .regulatory-head h4 { font-size: 15px; }
  .regulatory-formula, .regulatory-action { font-size: 10px; }
  .regulatory-metrics b { font-size: 12px; }
  .open-news-summary, .rejection-summary > div { grid-template-columns: 1fr; }
  .open-news-summary article, .rejection-summary article { border-right: 0; }
  .rotation-card { grid-template-columns: 32px minmax(0, 1fr); }
  .rotation-index { font-size: 9px; }
  .rotation-main { padding: 12px; }
  .rotation-metrics { grid-template-columns: repeat(2, 1fr); }
  .rotation-metrics span { border-bottom: 1px solid var(--line); }
  .representatives { grid-column: 1 / -1; }
  .emotion-grid { grid-template-columns: 1fr; }
  .emotion-metrics { grid-template-columns: repeat(2, 1fr); }
  .emotion-theme { grid-template-columns: 112px minmax(0, 1fr); }
  .emotion-role-list button { grid-template-columns: minmax(90px, 1fr) 54px 46px; }
  .emotion-role-list button > small { display: none; }
  .stealth-summary { grid-template-columns: repeat(3, 1fr); }
  .stealth-summary article { min-height: 86px; padding: 10px; }
  .stealth-summary > div { grid-column: 1 / -1; border-top: 1px solid var(--line); }
  .stealth-board { grid-template-columns: 1fr; }
  .diagnosis-grid { grid-template-columns: 1fr; }
  .diagnosis-form { max-width: none; }
  .event-calendar { grid-template-columns: 1fr; }
  .event-calendar > a { border-right: 0; }
  .timeline-item { grid-template-columns: 100px 1fr; }
  .timeline-body > div:first-child { display: grid; }
  .data-status { grid-template-columns: 1fr 1fr; }
  .audit-summary { grid-template-columns: repeat(2, 1fr); }
  .audit-summary > span { min-height: 65px; }
  .audit-summary > div { grid-column: 1 / -1; border-top: 1px solid var(--line); }
  .shadow-metrics { grid-template-columns: repeat(2, 1fr); }
  .shadow-metrics span { min-height: 82px; border-bottom: 1px solid var(--line); }
  .footer { display: grid; padding: 10px 12px; }
  .footer span:last-child { margin-left: 0; }
  .validation-method { grid-template-columns: 1fr; }
  .validation-method > div { min-height: 84px; border-right: 0; border-bottom: 1px solid var(--line); }
  .validation-method > div:last-child { border-bottom: 0; }
  .validation-lifecycle-metrics { grid-template-columns: repeat(2, 1fr); }
  .validation-lifecycle-metrics span { border-bottom: 1px solid var(--line-soft); }
  .validation-lifecycle-metrics span:nth-child(odd) { border-right: 1px solid var(--line-soft); }
  .validation-lifecycle-metrics span:nth-child(even) { border-right: 0; }
  .validation-lifecycle-metrics span:nth-last-child(-n+2) { border-bottom: 0; }
  .validation-cohort-counts, .validation-cohort-result { grid-template-columns: repeat(2, 1fr); }
  .validation-cohort-counts span:nth-child(2), .validation-cohort-result span:nth-child(2) { border-right: 0; }
  .validation-cohort-counts span:nth-child(-n+2), .validation-cohort-result span:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .mobile-nav { position: fixed; right: 0; bottom: 0; left: 0; z-index: 50; display: grid; grid-template-columns: repeat(7, 1fr); border-top: 1px solid var(--line); background: rgba(255, 255, 255, .97); padding-bottom: env(safe-area-inset-bottom); backdrop-filter: blur(12px); }
  .mobile-nav button { display: grid; gap: 3px; min-height: 58px; place-content: center; border: 0; background: transparent; color: var(--subtle); }
  .mobile-nav i { font-size: 9px; font-style: normal; }
  .mobile-nav span { font-size: 7px; }
  .mobile-nav button.active { color: var(--blue); background: linear-gradient(180deg, rgba(37, 99, 166, .12), transparent); }
}

@media (max-width: 430px) {
  .data-status { grid-template-columns: 1fr; }
  .hotspot-panel { display: none; }
  .decision-primary p { font-size: 9px; }
  .session-tabs { margin-right: -10px; }
  .diagnosis-hero h2 { font-size: 18px; }
  .diagnosis-hero > span b { font-size: 21px; }
}
