:root {
  color-scheme: dark;
  /* ===== 般语投研设计系统 · Banyu Finance Design Tokens ===== */
  --bg: #0b0c10;
  --bg-rail: #0d0f14;
  --surface: #13151b;
  --surface-2: #191c24;
  --surface-3: #20242e;
  --line: #252a35;
  --line-strong: #333a48;
  --text: #f4f6f9;
  --muted: #8e99a8;
  --soft: #c3cbd6;
  --gold: #d9a84e;
  --gold-strong: #e7bc66;
  --gold-ink: #1d1503;
  --blue: #5b9cff;
  --cyan: #4cc3d9;
  --green: #3dd68c;
  --red: #f2555a;
  --amber: #e3a93e;
  --purple: #a78bfa;
  --radius: 12px;
  --radius-sm: 8px;
  --shadow-card: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px -16px rgba(0, 0, 0, .5);
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Consolas, monospace;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  background:
    radial-gradient(1100px 480px at 85% -10%, rgba(217, 168, 78, .05), transparent 60%),
    var(--bg);
  color: var(--text);
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}

main {
  width: min(1560px, 100%);
  margin: 0 auto;
  padding: 16px 20px 40px;
  display: grid;
  grid-template-columns: 228px minmax(0, 1fr);
  grid-template-areas:
    "sidebar header"
    "sidebar status"
    "sidebar content"
    "sidebar footer";
  gap: 0 20px;
  align-items: start;
}

/* ===== 顶栏 ===== */
header {
  grid-area: header;
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin-bottom: 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(217, 168, 78, .045), transparent 55%), var(--surface);
  box-shadow: var(--shadow-card);
}

h1, h2, h3, p { margin: 0; }

h1 {
  font-size: 19px;
  font-weight: 700;
  letter-spacing: .01em;
}

header > div:first-child p {
  margin-top: 4px;
  font-size: 12.5px;
}

h2 { font-size: 15px; font-weight: 650; letter-spacing: .01em; }
h3 { font-size: 13px; color: var(--soft); }
p { color: var(--muted); line-height: 1.55; }

/* ===== 表单控件 ===== */
button, input, select, textarea {
  min-height: 36px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: var(--surface-2);
  color: var(--text);
  padding: 8px 11px;
  font-size: 13.5px;
  font-family: inherit;
}

input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: none;
  border-color: rgba(217, 168, 78, .55);
  box-shadow: 0 0 0 3px rgba(217, 168, 78, .14);
}

button {
  background: linear-gradient(180deg, var(--gold-strong), var(--gold));
  border-color: rgba(231, 188, 102, .4);
  color: var(--gold-ink);
  font-weight: 700;
  cursor: pointer;
  transition: filter .15s ease, transform .05s ease;
}

button:hover { filter: brightness(1.06); }
button:active { transform: translateY(1px); }

button.secondary {
  background: var(--surface-3);
  border-color: var(--line-strong);
  color: var(--soft);
  font-weight: 600;
}

button.secondary:hover {
  border-color: rgba(217, 168, 78, .45);
  color: var(--text);
  filter: none;
}

input { min-width: 0; }
input, select { font-variant-numeric: tabular-nums; }

.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.button-row button { min-width: 0; }

/* ===== 任务状态条 ===== */
.run-status {
  grid-area: status;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  margin: 0 0 12px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.toolbar {
  display: grid;
  grid-template-columns: 118px 120px auto;
  gap: 8px;
  align-items: center;
}

/* ===== 左侧导航 ===== */
.page-nav {
  grid-area: sidebar;
  position: sticky;
  top: 16px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 0;
  padding: 14px 10px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--bg-rail);
  box-shadow: var(--shadow-card);
}

.brand {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 4px 6px 14px;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--line);
}

.brand-logo {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: linear-gradient(145deg, var(--gold-strong), #b8862f);
  color: var(--gold-ink);
  font-size: 19px;
  font-weight: 800;
}

.brand strong {
  display: block;
  font-size: 14.5px;
  letter-spacing: .02em;
}

.brand > div > span {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 11px;
  letter-spacing: .03em;
}

.nav-group-label {
  margin: 10px 8px 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.page-tab {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 36px;
  padding: 8px 10px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  color: var(--soft);
  font-size: 13.5px;
  font-weight: 600;
  text-align: left;
  transition: background .15s ease, color .15s ease;
}

.page-tab::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 2px;
  background: currentColor;
  opacity: .45;
  flex: none;
}

.page-tab:hover {
  background: var(--surface-2);
  color: var(--text);
  filter: none;
}

.page-tab.active {
  background: linear-gradient(90deg, rgba(217, 168, 78, .16), rgba(217, 168, 78, .05));
  border-color: rgba(217, 168, 78, .35);
  color: var(--gold-strong);
}

.page-tab.active::before { opacity: 1; }

.nav-foot {
  margin-top: 14px;
  padding: 11px 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.nav-foot strong {
  display: block;
  font-size: 12.5px;
}

.nav-foot span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.nav-foot .badge { margin-top: 7px; }

/* ===== 页脚免责声明 ===== */
.app-footer {
  grid-area: footer;
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.app-footer strong { color: var(--soft); }

.view-hidden { display: none !important; }

/* ===== 内容网格 ===== */
.grid {
  grid-area: content;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 12px;
}

.page-shell {
  grid-column: span 12;
  display: grid;
  gap: 12px;
  min-width: 0;
}

.review-shell,
.account-shell,
.research-shell,
.stock-shell,
.intraday-shell,
.debug-shell,
.market-shell {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 390px);
  align-items: start;
}

.review-shell > .page-titlebar,
.account-shell > .page-titlebar,
.stock-shell > .page-titlebar,
.intraday-shell > .page-titlebar,
.debug-shell > .page-titlebar,
.review-overview-grid,
.review-workflow-band,
.user-guide-band,
.market-shell > .page-titlebar,
.market-overview-grid {
  grid-column: 1 / -1;
}

.review-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  min-width: 0;
}

.review-workflow-band,
.user-guide-band {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-card);
}

.review-report-panel { min-height: 520px; }

.market-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
  gap: 12px;
  min-width: 0;
}

.page-main,
.page-side {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.page-shell .panel { grid-column: auto; }

/* ===== 栏目标题区 ===== */
.page-titlebar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
  gap: 14px;
  align-items: end;
  padding: 18px;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(217, 168, 78, .05), transparent 60%), var(--surface);
  box-shadow: var(--shadow-card);
}

.page-titlebar h2 { font-size: 19px; }
.page-titlebar p { margin-top: 7px; font-size: 12.5px; }

.page-kicker {
  display: block;
  margin-bottom: 6px;
  color: var(--gold);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.research-query-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.stock-query-bar {
  display: grid;
  grid-template-columns: minmax(92px, 140px) auto;
  gap: 8px;
  align-items: center;
}

.stock-query-bar input {
  width: 100%;
  color: var(--soft);
  background: var(--surface-3);
  font-family: var(--font-mono);
}

.research-query-bar input,
.research-side input,
.research-side textarea {
  width: 100%;
}

.research-primary-panel { min-height: 560px; }
.stock-primary-panel { min-height: 560px; }
.stock-side { align-content: start; }
.intraday-primary-panel { min-height: 560px; }
.intraday-action-bar { justify-content: end; }
.intraday-side { align-content: start; }
.debug-jobs-panel,
.debug-json-panel { min-height: 300px; }
.debug-side { align-content: start; }
.research-result { margin-top: 10px; }

.utility-panel { padding: 14px; }
.utility-panel .panel-head { align-items: start; }
.utility-panel .button-row { justify-content: flex-end; }

/* ===== 卡片 ===== */
.panel {
  grid-column: span 4;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px;
  min-width: 0;
  box-shadow: var(--shadow-card);
  transition: border-color .2s ease;
}

.panel:hover { border-color: var(--line-strong); }

.span-3 { grid-column: span 3; }
.span-4 { grid-column: span 4; }
.span-5 { grid-column: span 5; }
.span-6 { grid-column: span 6; }
.span-7 { grid-column: span 7; }
.span-8 { grid-column: span 8; }
.span-12 { grid-column: span 12; }

.panel-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}

.muted { color: var(--muted); }
.small { font-size: 12px; }
.nowrap { white-space: nowrap; }

.kpi {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.metric {
  font-size: clamp(32px, 6vw, 56px);
  line-height: 1;
  font-weight: 800;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.02em;
  background: linear-gradient(180deg, var(--text), var(--soft));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

/* ===== 徽章与标签 ===== */
.tag, .badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  border-radius: 999px;
  border: 1px solid var(--line-strong);
  background: var(--surface-2);
  color: var(--soft);
  padding: 3px 9px;
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .01em;
}

.badge.green { color: var(--green); border-color: rgba(61, 214, 140, .4); background: rgba(61, 214, 140, .08); }
.badge.red { color: var(--red); border-color: rgba(242, 85, 90, .4); background: rgba(242, 85, 90, .08); }
.badge.amber { color: var(--gold-strong); border-color: rgba(217, 168, 78, .42); background: rgba(217, 168, 78, .08); }
.badge.blue { color: var(--blue); border-color: rgba(91, 156, 255, .4); background: rgba(91, 156, 255, .08); }

.status-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.status-card {
  min-width: 0;
  padding: 11px;
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  border: 1px solid var(--line);
}

.status-card h3 { margin-bottom: 6px; }

.compact-status-grid { grid-template-columns: 1fr; }

.status-card p {
  font-size: 12px;
  color: var(--soft);
  overflow-wrap: anywhere;
}

.status-meter {
  height: 6px;
  margin: 8px 0;
  border-radius: 999px;
  background: #0a0c11;
  overflow: hidden;
}

.status-fill {
  display: block;
  height: 100%;
  width: var(--status-width, 0%);
  border-radius: inherit;
  background: linear-gradient(90deg, var(--gold), var(--green));
}

.validation-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.status-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}

.event-flow {
  display: grid;
  gap: 8px;
  margin-bottom: 10px;
}

.event-filter-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 132px 132px;
  gap: 8px;
  margin-bottom: 10px;
}

.workflow-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.guide-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.workflow-card {
  display: grid;
  gap: 6px;
  min-height: 92px;
  padding: 13px;
  text-align: left;
  background: var(--surface-2);
  border: 1px solid var(--line);
  color: var(--text);
  font-weight: 600;
  transition: border-color .15s ease, background .15s ease;
}

.workflow-card:hover {
  border-color: rgba(217, 168, 78, .5);
  background: var(--surface-3);
  filter: none;
}

.guide-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 6px 10px;
  align-items: start;
  min-width: 0;
  padding: 13px;
  text-align: left;
  background: var(--surface-2);
  border: 1px solid var(--line);
  color: var(--text);
  font-weight: 600;
  transition: border-color .15s ease, background .15s ease;
}

.guide-card:hover {
  border-color: rgba(217, 168, 78, .5);
  background: var(--surface-3);
  filter: none;
}

.guide-card strong,
.guide-card span:last-child {
  min-width: 0;
  overflow-wrap: anywhere;
}

.guide-card span:last-child {
  grid-column: 2;
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
}

.workflow-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.event-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
  padding: 11px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: var(--surface-2);
  cursor: pointer;
  transition: border-color .15s ease;
}

.event-card:hover { border-color: rgba(91, 156, 255, .5); }
.event-card p { font-size: 12px; }

.relation-graph-card { grid-column: 1 / -1; }

.relation-graph {
  display: grid;
  grid-template-columns: auto 34px minmax(0, 1fr) 34px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  margin-top: 10px;
}

.graph-column {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.graph-node {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  max-width: 100%;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: #0e1016;
  color: var(--soft);
  padding: 6px 8px;
  font-size: 12px;
  overflow-wrap: anywhere;
}

.graph-node-source { color: var(--blue); border-color: rgba(91, 156, 255, .4); }
.graph-node-topic { color: var(--gold-strong); border-color: rgba(217, 168, 78, .42); }
.graph-node-stock { color: var(--green); border-color: rgba(61, 214, 140, .4); }

.graph-edge {
  color: var(--muted);
  font-size: 12px;
  text-align: center;
}

.report-actions { margin-top: 8px; }

.premium-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 10px;
}

.premium-cost-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.premium-cost-card {
  min-width: 0;
  padding: 11px;
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  border: 1px solid var(--line);
}

.premium-cost-card p {
  margin-top: 8px;
  font-size: 12px;
  overflow-wrap: anywhere;
}

.compact-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.compact-facts .fact { padding: 8px; }

.user-guide-summary { display: grid; gap: 10px; }

.user-guide-summary .fact strong {
  font-size: 14px;
  line-height: 1.45;
}

.plain-action-list { display: grid; gap: 8px; }
.list { display: grid; gap: 8px; }
.checklist { display: grid; gap: 8px; }

.check-item {
  display: grid;
  gap: 4px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface-2);
}

.check-item span {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 11px;
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  border: 1px solid rgba(255, 255, 255, .04);
  min-width: 0;
}

.row strong, .cell strong {
  display: block;
  overflow-wrap: anywhere;
}

.score {
  font-weight: 800;
  color: var(--gold-strong);
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

.progress {
  width: 100%;
  height: 6px;
  border-radius: 999px;
  background: #0a0c11;
  overflow: hidden;
  margin-top: 6px;
}

.bar {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--gold), var(--green));
}

.mini-chart { display: grid; gap: 8px; }

.chart-row {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr) 54px;
  gap: 8px;
  align-items: center;
  font-size: 12px;
  color: var(--soft);
  font-variant-numeric: tabular-nums;
}

.chart-track {
  height: 9px;
  border-radius: 999px;
  background: #0a0c11;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .04);
}

.chart-bar {
  display: block;
  min-width: 3px;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--blue), var(--cyan));
}

.chart-bar.green { background: linear-gradient(90deg, #1f9d63, var(--green)); }
.chart-bar.red { background: linear-gradient(90deg, #b13a3e, var(--red)); }
.chart-bar.amber { background: linear-gradient(90deg, #9a7224, var(--gold-strong)); }

.risk-meter {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.dial {
  width: 108px;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: conic-gradient(var(--red) var(--risk-angle, 0deg), #0e1016 0);
  border: 1px solid var(--line);
}

.dial-inner {
  width: 76px;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--surface);
  font-size: 22px;
  font-weight: 800;
  font-family: var(--font-mono);
}

.signal-timeline { display: grid; gap: 8px; }

.session-summary {
  display: grid;
  gap: 8px;
  margin: 10px 0;
}

.session-head {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.session-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.session-card {
  min-width: 0;
  padding: 11px;
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  border: 1px solid var(--line);
}

.session-card p {
  margin: 8px 0 4px;
  font-size: 12px;
}

.signal-item {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  padding: 11px;
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  border: 1px solid rgba(255, 255, 255, .04);
}

.signal-item p { font-size: 12px; }

/* ===== 表格 ===== */
.table {
  display: grid;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.tr {
  display: grid;
  grid-template-columns: 1.1fr .7fr .8fr 1fr;
}

#indices { display: contents; }

.th, .td {
  padding: 10px 11px;
  border-bottom: 1px solid var(--line);
  min-width: 0;
  overflow-wrap: anywhere;
  font-variant-numeric: tabular-nums;
}

.th {
  background: var(--surface-3);
  color: var(--muted);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.tr:last-child .td { border-bottom: 0; }

.stock-card {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 12px;
}

.stock-card .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.quote {
  padding: 13px;
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  border: 1px solid rgba(255, 255, 255, .04);
}

.quote p { color: var(--soft); }

.facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.fact {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 10px;
  background: #0e1016;
}

.fact span {
  display: block;
  color: var(--muted);
  font-size: 11.5px;
  letter-spacing: .02em;
}

.fact strong {
  display: block;
  margin-top: 4px;
  overflow-wrap: anywhere;
  font-variant-numeric: tabular-nums;
}

.two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.section-card {
  padding: 11px;
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  min-width: 0;
}

.wide-card { grid-column: 1 / -1; }

.strategy-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.strategy-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.strategy-card p {
  margin: 0;
  color: var(--soft);
  font-size: 12px;
  overflow-wrap: anywhere;
}

.strategy-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

ul.clean {
  margin: 8px 0 0;
  padding-left: 18px;
  color: var(--soft);
}

ul.clean li {
  margin: 5px 0;
  overflow-wrap: anywhere;
}

.dense-list li { margin-bottom: 4px; }

.message-preview {
  margin: 10px 0 0;
  max-height: 180px;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 11px;
  background: var(--surface);
  color: var(--soft);
  font-size: 12px;
  line-height: 1.6;
}

.report-query {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  gap: 8px;
}

.compact-head {
  margin-top: 12px;
  margin-bottom: 8px;
}

.check-line {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  white-space: nowrap;
}

.check-line input {
  min-height: auto;
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--gold);
}

.compensation-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
}

.compensation-form input,
.compensation-form button {
  width: 100%;
}

.answer {
  min-height: 82px;
  padding: 12px;
  border-radius: var(--radius-sm);
  background: #0e1016;
  border: 1px solid var(--line);
  color: var(--soft);
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.compact-answer {
  min-height: 64px;
  margin-top: 8px;
  font-size: 13px;
}

.account-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.account-grid input, .account-grid select, .account-grid button { width: 100%; }

.account-shell { grid-template-columns: minmax(210px, 270px) minmax(0, 1fr); }

.account-side,
.account-main,
.account-section { min-width: 0; }

.account-side {
  align-self: start;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-card);
}

.account-main {
  display: grid;
  gap: 12px;
}

.sub-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 12px;
}

.account-nav {
  display: grid;
  grid-template-columns: 1fr;
  margin: 0;
}

.sub-tab {
  min-height: 34px;
  padding: 8px 10px;
  background: transparent;
  border: 1px solid transparent;
  color: var(--soft);
  font-weight: 600;
  text-align: left;
  transition: background .15s ease, color .15s ease;
}

.sub-tab:hover {
  background: var(--surface-2);
  color: var(--text);
  filter: none;
}

.sub-tab.active {
  background: linear-gradient(90deg, rgba(217, 168, 78, .16), rgba(217, 168, 78, .05));
  border-color: rgba(217, 168, 78, .35);
  color: var(--gold-strong);
}

.account-section {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-card);
}

.account-content { margin-top: 2px; }

.account-actions {
  display: flex;
  justify-content: flex-end;
}

.account-actions button { min-width: 136px; }

.plan-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.plan-card {
  padding: 11px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: var(--surface-2);
}

.compact-metric {
  margin: 4px 0 6px;
  font-size: 24px;
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.feature-card {
  min-width: 0;
  padding: 11px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: #0e1016;
}

.feature-card p {
  margin-top: 4px;
  font-size: 12px;
}

.audit-row { grid-template-columns: minmax(0, 1fr) auto; }

.audit-meta {
  display: grid;
  justify-items: end;
  gap: 4px;
}

details {
  grid-column: span 12;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  overflow: hidden;
}

summary {
  padding: 12px 14px;
  cursor: pointer;
  color: var(--soft);
}

pre {
  margin: 0;
  padding: 12px;
  max-height: 420px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: #07080c;
  color: #d9e2ea;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.5;
}

.error { color: var(--red); }

/* ===== 响应式 ===== */
@media (max-width: 1060px) {
  main {
    grid-template-columns: 1fr;
    grid-template-areas:
      "sidebar"
      "header"
      "status"
      "content"
      "footer";
  }
  .page-nav {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 12px;
  }
  .brand {
    padding: 0 6px;
    margin: 0;
    border-bottom: 0;
    margin-right: 8px;
  }
  .nav-group-label { display: none; }
  .nav-foot { display: none; }
  .panel, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8 { grid-column: span 6; }
  .span-12 { grid-column: span 12; }
  .review-shell, .account-shell, .research-shell, .stock-shell, .intraday-shell, .debug-shell, .market-shell { grid-template-columns: 1fr; }
  .page-titlebar { grid-template-columns: 1fr; }
  .review-overview-grid { grid-template-columns: 1fr; }
  .market-overview-grid { grid-template-columns: 1fr; }
  .stock-card { grid-template-columns: 1fr; }
  .status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workflow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .premium-cost-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  main { padding: 14px 10px 28px; }
  header { grid-template-columns: 1fr; align-items: start; }
  .toolbar { grid-template-columns: 1fr 1fr; width: 100%; }
  .toolbar button { grid-column: span 2; }
  .page-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brand { grid-column: 1 / -1; }
  .panel, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-12 { grid-column: span 12; }
  .facts, .two-col, .feature-grid, .plan-grid, .status-grid, .premium-cost-grid { grid-template-columns: 1fr; }
  .strategy-grid, .strategy-columns { grid-template-columns: 1fr; }
  .workflow-grid, .session-grid, .guide-grid { grid-template-columns: 1fr; }
  .page-shell, .review-shell, .account-shell, .research-shell, .stock-shell, .intraday-shell, .debug-shell, .market-shell, .page-main, .page-side, .page-titlebar, .research-query-bar, .stock-query-bar, .review-overview-grid, .market-overview-grid { grid-template-columns: 1fr; }
  .review-report-panel { min-height: 0; }
  .research-primary-panel { min-height: 0; }
  .stock-primary-panel { min-height: 0; }
  .intraday-primary-panel { min-height: 0; }
  .risk-meter, .signal-item { grid-template-columns: 1fr; }
  .event-filter-grid, .relation-graph { grid-template-columns: 1fr; }
  .account-grid { grid-template-columns: 1fr; }
  .sub-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .button-row { display: grid; grid-template-columns: 1fr; }
  .event-card { grid-template-columns: 1fr; }
  .audit-row { grid-template-columns: 1fr; }
  .audit-meta { justify-items: start; }
  .tr { grid-template-columns: 1fr; }
  .th { display: none; }
  .td { border-bottom: 0; padding: 7px 10px; }
  .tr { border-bottom: 1px solid var(--line); }
  .tr:last-child { border-bottom: 0; }
  .report-query { grid-template-columns: 1fr; }
}
